Enlightenment CVS committal Author : pfritz Project : e17 Module : libs/ewl
Dir : e17/libs/ewl/src/lib Modified Files: ewl_seeker.c ewl_seeker.h Log Message: add key support to the seekers =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_seeker.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- ewl_seeker.c 26 May 2006 19:01:56 -0000 1.17 +++ ewl_seeker.c 3 Jun 2006 16:18:11 -0000 1.18 @@ -131,6 +131,8 @@ ewl_seeker_mouse_up_cb, NULL); ewl_callback_append(w, EWL_CALLBACK_MOUSE_MOVE, ewl_seeker_mouse_move_cb, NULL); + ewl_callback_append(w, EWL_CALLBACK_KEY_DOWN, + ewl_seeker_key_down_cb, NULL); /* * Append a callback for catching mouse movements on the button and @@ -739,6 +741,64 @@ s->timer = NULL; s->start_time = 0; s->dragstart = 0; + + DLEAVE_FUNCTION(DLEVEL_STABLE); +} + +/** + * @internal + * @param w: The widget to work with + * @param ev_data: The Ewl_Event_Key_Down data + * @param user_data: UNUSED + * @return Returns no value + * @brief The key down callback + */ +void +ewl_seeker_key_down_cb(Ewl_Widget *w, void *ev_data, + void *user_data __UNUSED__) +{ + Ewl_Seeker *s; + Ewl_Event_Key_Down *ev; + double start, end; + + void (*increase)(Ewl_Seeker *s); + void (*decrease)(Ewl_Seeker *s); + + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("w", w); + DCHECK_PARAM_PTR("ev_data", ev_data); + DCHECK_TYPE("w", w, EWL_WIDGET_TYPE); + + ev = ev_data; + s = EWL_SEEKER(w); + + if (!s->invert) { + increase = ewl_seeker_increase; + decrease = ewl_seeker_decrease; + start = 0.0; + end = s->range; + } + else { + increase = ewl_seeker_decrease; + decrease = ewl_seeker_increase; + start = s->range; + end = 0.0; + } + + if (!strcmp(ev->keyname, "Home")) + ewl_seeker_value_set(s, start); + else if (!strcmp(ev->keyname, "End")) + ewl_seeker_value_set(s, end); + else if (!strcmp(ev->keyname, "Left") + || !strcmp(ev->keyname, "KP_Left") + || !strcmp(ev->keyname, "Up") + || !strcmp(ev->keyname, "KP_Up")) + decrease(s); + else if (!strcmp(ev->keyname, "Right") + || !strcmp(ev->keyname, "KP_Right") + || !strcmp(ev->keyname, "Down") + || !strcmp(ev->keyname, "KP_Down")) + increase(s); DLEAVE_FUNCTION(DLEVEL_STABLE); } =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_seeker.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- ewl_seeker.h 26 May 2006 19:58:00 -0000 1.11 +++ ewl_seeker.h 3 Jun 2006 16:18:11 -0000 1.12 @@ -90,6 +90,7 @@ void ewl_seeker_mouse_move_cb(Ewl_Widget *w, void *ev_data, void *user_data); void ewl_seeker_mouse_down_cb(Ewl_Widget *w, void *ev_data, void *user_data); void ewl_seeker_mouse_up_cb(Ewl_Widget *w, void *ev_data, void *user_data); +void ewl_seeker_key_down_cb(Ewl_Widget *w, void *ev_data, void *user_data); void ewl_seeker_child_show_cb(Ewl_Container *p, Ewl_Widget * w); /** _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs