浏览代码

Merge pull request #762 from jagannathhari/demo-select-all

Add select-all text handling in demo
Rob Loach 8 月之前
父节点
当前提交
c09aaa5185

+ 1 - 0
demo/glfw_opengl2/nuklear_glfw_gl2.h

@@ -352,6 +352,7 @@ nk_glfw3_new_frame(void)
         nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, glfwGetKey(win, GLFW_KEY_RIGHT) == GLFW_PRESS);
         nk_input_key(ctx, NK_KEY_TEXT_LINE_START, glfwGetKey(win, GLFW_KEY_B) == GLFW_PRESS);
         nk_input_key(ctx, NK_KEY_TEXT_LINE_END, glfwGetKey(win, GLFW_KEY_E) == GLFW_PRESS);
+        nk_input_key(ctx, NK_KEY_TEXT_SELECT_ALL, glfwGetKey(win, GLFW_KEY_A) == GLFW_PRESS);
     } else {
         nk_input_key(ctx, NK_KEY_LEFT, glfwGetKey(win, GLFW_KEY_LEFT) == GLFW_PRESS);
         nk_input_key(ctx, NK_KEY_RIGHT, glfwGetKey(win, GLFW_KEY_RIGHT) == GLFW_PRESS);

+ 1 - 0
demo/glfw_opengl3/nuklear_glfw_gl3.h

@@ -470,6 +470,7 @@ nk_glfw3_new_frame(struct nk_glfw* glfw)
         nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, glfwGetKey(win, GLFW_KEY_RIGHT) == GLFW_PRESS);
         nk_input_key(ctx, NK_KEY_TEXT_LINE_START, glfwGetKey(win, GLFW_KEY_B) == GLFW_PRESS);
         nk_input_key(ctx, NK_KEY_TEXT_LINE_END, glfwGetKey(win, GLFW_KEY_E) == GLFW_PRESS);
+        nk_input_key(ctx, NK_KEY_TEXT_SELECT_ALL, glfwGetKey(win, GLFW_KEY_A) == GLFW_PRESS);
     } else {
         nk_input_key(ctx, NK_KEY_LEFT, glfwGetKey(win, GLFW_KEY_LEFT) == GLFW_PRESS);
         nk_input_key(ctx, NK_KEY_RIGHT, glfwGetKey(win, GLFW_KEY_RIGHT) == GLFW_PRESS);

+ 4 - 0
demo/sdl_opengl2/nuklear_sdl_gl2.h

@@ -294,6 +294,10 @@ nk_sdl_handle_event(SDL_Event *evt)
                     case SDLK_e:         nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && state[SDL_SCANCODE_LCTRL]); break;
                     case SDLK_UP:        nk_input_key(ctx, NK_KEY_UP, down); break;
                     case SDLK_DOWN:      nk_input_key(ctx, NK_KEY_DOWN, down); break;
+                    case SDLK_a:
+                        if(state[SDL_SCANCODE_LCTRL])
+                            nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
+                        break;
                     case SDLK_LEFT:
                         if (state[SDL_SCANCODE_LCTRL])
                             nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);

+ 4 - 0
demo/sdl_opengl3/nuklear_sdl_gl3.h

@@ -404,6 +404,10 @@ nk_sdl_handle_event(SDL_Event *evt)
                     case SDLK_e:         nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && state[SDL_SCANCODE_LCTRL]); break;
                     case SDLK_UP:        nk_input_key(ctx, NK_KEY_UP, down); break;
                     case SDLK_DOWN:      nk_input_key(ctx, NK_KEY_DOWN, down); break;
+                    case SDLK_a:
+                        if(state[SDL_SCANCODE_LCTRL])
+                            nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
+                        break;
                     case SDLK_LEFT:
                         if (state[SDL_SCANCODE_LCTRL])
                             nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);

+ 4 - 0
demo/sdl_opengles2/nuklear_sdl_gles2.h

@@ -404,6 +404,10 @@ nk_sdl_handle_event(SDL_Event *evt)
                     case SDLK_e:         nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && state[SDL_SCANCODE_LCTRL]); break;
                     case SDLK_UP:        nk_input_key(ctx, NK_KEY_UP, down); break;
                     case SDLK_DOWN:      nk_input_key(ctx, NK_KEY_DOWN, down); break;
+                    case SDLK_a:
+                        if(state[SDL_SCANCODE_LCTRL])
+                            nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
+                        break;
                     case SDLK_LEFT:
                         if (state[SDL_SCANCODE_LCTRL])
                             nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);

+ 4 - 0
demo/sdl_renderer/nuklear_sdl_renderer.h

@@ -327,6 +327,10 @@ nk_sdl_handle_event(SDL_Event *evt)
                     case SDLK_e:         nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && state[SDL_SCANCODE_LCTRL]); break;
                     case SDLK_UP:        nk_input_key(ctx, NK_KEY_UP, down); break;
                     case SDLK_DOWN:      nk_input_key(ctx, NK_KEY_DOWN, down); break;
+                    case SDLK_a:
+                        if(state[SDL_SCANCODE_LCTRL])
+                            nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
+                        break;
                     case SDLK_LEFT:
                         if (state[SDL_SCANCODE_LCTRL])
                             nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);

+ 4 - 0
demo/sdl_vulkan/nuklear_sdl_vulkan.h

@@ -1323,6 +1323,10 @@ NK_API int nk_sdl_handle_event(SDL_Event *evt) {
         case SDLK_DOWN:
             nk_input_key(ctx, NK_KEY_DOWN, down);
             break;
+        case SDLK_a:
+            if(state[SDL_SCANCODE_LCTRL])
+                nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
+            break;
         case SDLK_LEFT:
             if (state[SDL_SCANCODE_LCTRL])
                 nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);

+ 2 - 0
demo/x11/nuklear_xlib.h

@@ -774,6 +774,8 @@ nk_xlib_handle_event(Display *dpy, int screen, Window win, XEvent *evt)
                 nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down);
             else if (*code == 'e' && (evt->xkey.state & ControlMask))
                 nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down);
+            else if (*code == 'a' && (evt->xkey.state & ControlMask))
+                nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
             else {
                 if (*code == 'i')
                     nk_input_key(ctx, NK_KEY_TEXT_INSERT_MODE, down);

+ 2 - 0
demo/x11_xft/nuklear_xlib.h

@@ -859,6 +859,8 @@ nk_xlib_handle_event(Display *dpy, int screen, Window win, XEvent *evt)
                 nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down);
             else if (*code == 'e' && (evt->xkey.state & ControlMask))
                 nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down);
+            else if (*code == 'a' && (evt->xkey.state & ControlMask))
+                nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
             else {
                 if (*code == 'i')
                     nk_input_key(ctx, NK_KEY_TEXT_INSERT_MODE, down);