Changeset 6716
- Timestamp:
- Mar 28, 2006, 9:14:51 AM (20 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/kii/event/InterpretKeys.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/kii/event/InterpretKeys.c
r6674 r6716 3 3 int InterpretKeys (Graphic *graphic, Layout *layout, XEvent *event) { 4 4 5 double X, Y ;6 int status;5 double X, Y, offset; 6 int modstate; 7 7 char string[10]; 8 8 KeySym keysym; … … 12 12 keyevent = (XKeyEvent *) event; 13 13 XLookupString (keyevent, string, 9, &keysym, &composestatus); 14 14 modstate = keyevent[0].state; 15 16 // offset is in image pixels: 17 // 0.5 image pixels is 1 screen pixel for expand == +2 18 // 2.0 image pixels is 1 screen pixel for expand == -2 19 if (layout[0].expand == 0) layout[0].expand = 1; 20 offset = (layout[0].expand > 0) ? 1.0 / layout[0].expand : -layout[0].expand; 21 if (modstate & ControlMask) offset *= 100; 15 22 16 23 switch (keysym) { 17 24 25 case XK_KP_Home: 26 case XK_Home: 27 layout[0].expand = 1; 28 Reorient (graphic, layout, layout[0].X, layout[0].Y, 0); 29 break; 30 case XK_KP_End: 31 case XK_End: 32 layout[0].expand = 1; 33 Reorient (graphic, layout, 0, 0, 0); 34 break; 18 35 case XK_KP_Enter: 36 case XK_KP_Begin: 19 37 case XK_Return: 20 38 Screen_to_Image (&X, &Y, (double)keyevent[0].x, (double)keyevent[0].y, layout); … … 24 42 break; 25 43 case XK_Prior: 44 case XK_KP_Prior: 26 45 Reorient (graphic, layout, layout[0].X, layout[0].Y, +1); 27 46 break; 28 47 case XK_Next: 48 case XK_KP_Next: 29 49 Reorient (graphic, layout, layout[0].X, layout[0].Y, -1); 30 50 break; 31 51 case XK_Up: 32 Reorient (graphic, layout, layout[0].X, layout[0].Y + 50, 0); 52 case XK_KP_Up: 53 Reorient (graphic, layout, layout[0].X, layout[0].Y + offset, 0); 33 54 break; 34 55 case XK_Down: 35 Reorient (graphic, layout, layout[0].X, layout[0].Y - 50, 0); 56 case XK_KP_Down: 57 Reorient (graphic, layout, layout[0].X, layout[0].Y - offset, 0); 36 58 break; 37 59 case XK_Left: 38 Reorient (graphic, layout, layout[0].X + 50, layout[0].Y, 0); 60 case XK_KP_Left: 61 Reorient (graphic, layout, layout[0].X + offset, layout[0].Y, 0); 39 62 break; 40 63 case XK_Right: 41 Reorient (graphic, layout, layout[0].X - 50, layout[0].Y, 0); 64 case XK_KP_Right: 65 Reorient (graphic, layout, layout[0].X - offset, layout[0].Y, 0); 42 66 break; 43 67 … … 45 69 MOVE_POINTER = MOVE_POINTER ^ TRUE; 46 70 if (MOVE_POINTER) UpdatePointer (graphic, layout, (XMotionEvent *)event); 47 status = TRUE;48 71 break; 49 50 default:51 status = TRUE;52 72 } 53 73 54 return (status); 55 74 return (TRUE); 56 75 } 57 76 77 /* other keys we might want to use: 58 78 79 59 80 60 61 /************* the stuff below this line is old - remove eventually */62 /*63 case XK_Right:64 case XK_Left:65 this is all old, but a good example for putting in the cursor motion.66 67 break;68 81 */ 69 82
Note:
See TracChangeset
for help on using the changeset viewer.
