手势计算

手势事件定义

      1、window 窗口设置俘获touch event

      2、window 接受 touch 事件

          2.1、直接传给用户程序处理

          2.2、转换成手势事件传给用户程序处理

          2.3、(未完成)转换成普通键盘鼠标事件,并发送给 mousewp 冒泡处理

#define XK_FINGER1_MOVE 0x7A11 //两个值: x y 方向

#define XK_FINGER2_MOVE 0x7A21 //两个值:x y 方向

#define XK_FINGERS_MOVE 0x7A31 //两个值: x y 方向

#define XK_FINGER2_SCALE 0x7A22 //(x,y)表示拉伸的中心点,a表示拉伸的比例,a是浮点数

#define XK_FINGER2_ROTATE 0x7A23 //(x,y)表示旋转的中心点,a表示顺时针旋转弧度,a是浮点数

示例

static void get_gesture(void *obj, T_ID event, TTable *in, void *arg, TExist *exist)
{
    Tint code, x, y;
    TFloat a;
    code = TTableGetInt(in, TStringID(code));
    x = TTableGetInt(in, TStringID(x));
    y = TTableGetInt(in, TStringID(y));
    a = TTableGetFloat(in, TStringID(a));

    switch(code)
    {
        case XK_FINGER1_MOVE:
        case XK_FINGER2_MOVE:
            TLogD(move offset: x=%d, y=%dn, x, y);
            break;
        case XK_FINGER2_SCALE:
            TLogD(scale at point:%d, %d, %fn, x, y, a);
            break;
        case XK_FINGER2_ROTATE:
            TLogD(rotate at point:%d, %d, %fn, x, y, a);
            break;
     }
     TwUpdateShow();
     return;
 }

TObjectAddEventHandler(win, TW_WINDOW_EVENT_GESTURE, get_gesture, NULL);

results matching ""

    No results matching ""