コード例 #1
0
ファイル: nuklear.c プロジェクト: Alexandre-Garcia/RetroArch
static void nk_menu_input_mouse_movement(struct nk_context *ctx)
{
   int16_t mouse_x = menu_input_mouse_state(MENU_MOUSE_X_AXIS);
   int16_t mouse_y = menu_input_mouse_state(MENU_MOUSE_Y_AXIS);

   nk_input_motion(ctx, mouse_x, mouse_y);
   nk_input_scroll(ctx, menu_input_mouse_state(MENU_MOUSE_WHEEL_UP) -
      menu_input_mouse_state(MENU_MOUSE_WHEEL_DOWN));

}
コード例 #2
0
ファイル: nuklear_headless.c プロジェクト: glegris/nuklear4j
NK_API int
nk_headless_handle_event(void)
{

	printf("nk_headless_handle_event\n");
	return nk_true;

#if 0

    struct nk_context *ctx = &headless.ctx;
    if (evt->type == SDL_VIDEORESIZE) {
        /* Do nothing */
    } else if (evt->type == SDL_KEYUP || evt->type == SDL_KEYDOWN) {
        /* key events */
        int down = evt->type == SDL_KEYDOWN;
        SDLMod state = SDL_GetModState();
        SDLKey sym = evt->key.keysym.sym;

        if (sym == SDLK_RSHIFT || sym == SDLK_LSHIFT) nk_input_key(ctx, NK_KEY_SHIFT, down);
        else if (sym == SDLK_DELETE)    nk_input_key(ctx, NK_KEY_DEL, down);
        else if (sym == SDLK_RETURN)    nk_input_key(ctx, NK_KEY_ENTER, down);
        else if (sym == SDLK_TAB)       nk_input_key(ctx, NK_KEY_TAB, down);
        else if (sym == SDLK_LEFT)      nk_input_key(ctx, NK_KEY_LEFT, down);
        else if (sym == SDLK_RIGHT)     nk_input_key(ctx, NK_KEY_RIGHT, down);
        else if (sym == SDLK_BACKSPACE) nk_input_key(ctx, NK_KEY_BACKSPACE, down);
        else if (sym == SDLK_HOME)      nk_input_key(ctx, NK_KEY_TEXT_START, down);
        else if (sym == SDLK_END)       nk_input_key(ctx, NK_KEY_TEXT_END, down);
        else if (sym == SDLK_SPACE && !down) nk_input_char(ctx, ' ');
        else {
            if (sym == SDLK_c && state == SDLK_LCTRL)
                nk_input_key(ctx, NK_KEY_COPY, down);
            else if (sym == SDLK_v && state == SDLK_LCTRL)
                nk_input_key(ctx, NK_KEY_PASTE, down);
            else if (sym == SDLK_x && state == SDLK_LCTRL)
                nk_input_key(ctx, NK_KEY_CUT, down);
            else if (sym == SDLK_z && state == SDLK_LCTRL)
                nk_input_key(ctx, NK_KEY_TEXT_UNDO, down);
            else if (sym == SDLK_r && state == SDLK_LCTRL)
                nk_input_key(ctx, NK_KEY_TEXT_REDO, down);
            else if (sym == SDLK_LEFT && state == SDLK_LCTRL)
                nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);
            else if (sym == SDLK_RIGHT && state == SDLK_LCTRL)
                nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, down);
            else if (sym == SDLK_b && state == SDLK_LCTRL)
                nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down);
            else if (sym == SDLK_e && state == SDLK_LCTRL)
                nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down);
            else if (!down) {
                /* This demo does not provide full unicode support since the default
                 * sdl1.2 font only allows runes in range 0-255. But this demo
                 * already is quite limited and not really meant for full blown Apps
                 * anyway. So I think ASCII support for Debugging Tools should be enough */
                if (sym >= SDLK_0 && sym <= SDLK_9) {
                    nk_rune rune = '0' + sym - SDLK_0;
                    nk_input_unicode(ctx, rune);
                } else if (sym >= SDLK_a && sym <= SDLK_z) {
                    nk_rune rune = 'a' + sym - SDLK_a;
                    rune = ((state == KMOD_LSHIFT) ? (nk_rune)nk_to_upper((int)rune):rune);
                    nk_input_unicode(ctx, rune);
                }
            }
        }
    } else if (evt->type == SDL_MOUSEBUTTONDOWN || evt->type == SDL_MOUSEBUTTONUP) {
        /* mouse button */
        int down = evt->type == SDL_MOUSEBUTTONDOWN;
        const int x = evt->button.x, y = evt->button.y;
        if (evt->button.button == SDL_BUTTON_LEFT)
            nk_input_button(ctx, NK_BUTTON_LEFT, x, y, down);
        if (evt->button.button == SDL_BUTTON_MIDDLE)
            nk_input_button(ctx, NK_BUTTON_MIDDLE, x, y, down);
        if (evt->button.button == SDL_BUTTON_RIGHT)
            nk_input_button(ctx, NK_BUTTON_RIGHT, x, y, down);
        if (evt->button.button == SDL_BUTTON_WHEELUP)
            nk_input_scroll(ctx, 1.0f);
        if (evt->button.button == SDL_BUTTON_WHEELDOWN)
            nk_input_scroll(ctx, -1.0f);
    } else if (evt->type == SDL_MOUSEMOTION) {
        nk_input_motion(ctx, evt->motion.x, evt->motion.y);
    }
	
#endif
}