Exemple #1
0
static void
key(struct XWindow *xw, struct zr_input *in, XEvent *evt, zr_bool down)
{
    int ret;
    KeySym *code = XGetKeyboardMapping(xw->dpy, (KeyCode)evt->xkey.keycode, 1, &ret);
    if (*code == XK_Shift_L || *code == XK_Shift_R)
        zr_input_key(in, ZR_KEY_SHIFT, down);
    else if (*code == XK_Delete)
        zr_input_key(in, ZR_KEY_DEL, down);
    else if (*code == XK_Return)
        zr_input_key(in, ZR_KEY_ENTER, down);
    else if (*code == XK_space)
        zr_input_key(in, ZR_KEY_SPACE, down);
    else if (*code == XK_Left)
        zr_input_key(in, ZR_KEY_LEFT, down);
    else if (*code == XK_Right)
        zr_input_key(in, ZR_KEY_RIGHT, down);
    else if (*code == XK_BackSpace)
        zr_input_key(in, ZR_KEY_BACKSPACE, down);
    else if (*code > 32 && *code < 128) {
        if (*code == 'c')
            zr_input_key(in, ZR_KEY_COPY, down && (evt->xkey.state & ControlMask));
        else if (*code == 'v')
            zr_input_key(in, ZR_KEY_PASTE, down && (evt->xkey.state & ControlMask));
        else if (*code == 'x')
            zr_input_key(in, ZR_KEY_CUT, down && (evt->xkey.state & ControlMask));
        if (!down) zr_input_char(in, (char)*code);
    }
    XFree(code);
}
Exemple #2
0
static void zrmenu_input_keyboard(struct zr_context *ctx)
{
   /* placeholder, it just presses 1 on right click
      needs to be hooked up correctly
   */
   if(menu_input_mouse_state(MENU_MOUSE_RIGHT_BUTTON))
      zr_input_char(ctx, '1');
}
Exemple #3
0
static void
text(struct zr_input *in, MSG *msg)
{
    char glyph;
    if (msg->wParam < 32 && msg->wParam >= 128) return;
    glyph = (zr_char)msg->wParam;
    zr_input_char(in, glyph);
}