Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_gadcon.c e_gadcon.h Log Message: instant edit! werd! :) =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.c,v retrieving revision 1.102 retrieving revision 1.103 diff -u -3 -r1.102 -r1.103 --- e_gadcon.c 4 Mar 2008 13:33:18 -0000 1.102 +++ e_gadcon.c 5 Mar 2008 12:39:55 -0000 1.103 @@ -29,6 +29,10 @@ static void _e_gadcon_cb_client_move(void *data, Evas *evas, Evas_Object *obj, void *event_info); static void _e_gadcon_cb_client_resize(void *data, Evas *evas, Evas_Object *obj, void *event_info); +static void _e_gadcon_client_move_start(E_Gadcon_Client *gcc); +static void _e_gadcon_client_move_stop(E_Gadcon_Client *gcc); +static void _e_gadcon_client_move_go(E_Gadcon_Client *gcc); + static void _e_gadcon_cb_signal_move_start(void *data, Evas_Object *obj, const char *emission, const char *source); static void _e_gadcon_cb_signal_move_stop(void *data, Evas_Object *obj, const char *emission, const char *source); static void _e_gadcon_cb_signal_move_go(void *data, Evas_Object *obj, const char *emission, const char *source); @@ -47,6 +51,8 @@ static int _e_gadcon_client_class_feature_check(E_Gadcon_Client_Class *cc, const char *name, void *feature); static void _e_gadcon_client_cb_menu_post(void *data, E_Menu *m); static void _e_gadcon_client_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_gadcon_client_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_gadcon_client_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _e_gadcon_client_cb_menu_style_plain(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_gadcon_client_cb_menu_style_inset(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_gadcon_client_cb_menu_autoscroll(void *data, E_Menu *m, E_Menu_Item *mi); @@ -414,6 +420,8 @@ _e_gadcon_client_save(gcc); if (gc->editing) e_gadcon_client_edit_begin(gcc); + if (gc->instant_edit) + e_gadcon_client_util_menu_attach(gcc); } } } @@ -481,6 +489,8 @@ _e_gadcon_client_save(gcc); if (gc->editing) e_gadcon_client_edit_begin(gcc); + if (gc->instant_edit) + e_gadcon_client_util_menu_attach(gcc); } } } @@ -1248,9 +1258,17 @@ E_OBJECT_CHECK(gcc); E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE); if (gcc->o_frame) - evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_MOUSE_DOWN, _e_gadcon_client_cb_mouse_down, gcc); + { + evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_MOUSE_DOWN, _e_gadcon_client_cb_mouse_down, gcc); + evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_MOUSE_UP, _e_gadcon_client_cb_mouse_up, gcc); + evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_MOUSE_MOVE, _e_gadcon_client_cb_mouse_move, gcc); + } else if (gcc->o_base) - evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOUSE_DOWN, _e_gadcon_client_cb_mouse_down, gcc); + { + evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOUSE_DOWN, _e_gadcon_client_cb_mouse_down, gcc); + evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOUSE_UP, _e_gadcon_client_cb_mouse_up, gcc); + evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOUSE_MOVE, _e_gadcon_client_cb_mouse_move, gcc); + } } /* @@ -1702,11 +1720,8 @@ } static void -_e_gadcon_cb_signal_move_start(void *data, Evas_Object *obj, const char *emission, const char *source) +_e_gadcon_client_move_start(E_Gadcon_Client *gcc) { - E_Gadcon_Client *gcc; - - gcc = data; evas_object_raise(gcc->o_event); evas_object_stack_below(gcc->o_control, gcc->o_event); gcc->moving = 1; @@ -1717,11 +1732,8 @@ } static void -_e_gadcon_cb_signal_move_stop(void *data, Evas_Object *obj, const char *emission, const char *source) +_e_gadcon_client_move_stop(E_Gadcon_Client *gcc) { - E_Gadcon_Client *gcc; - - gcc = data; gcc->moving = 0; gcc->state_info.state = E_LAYOUT_ITEM_STATE_NONE; @@ -1730,13 +1742,11 @@ } static void -_e_gadcon_cb_signal_move_go(void *data, Evas_Object *obj, const char *emission, const char *source) +_e_gadcon_client_move_go(E_Gadcon_Client *gcc) { - E_Gadcon_Client *gcc; Evas_Coord x, y, w, h; int cx, cy; - gcc = data; if (!gcc->moving) return; evas_pointer_canvas_xy_get(gcc->gadcon->evas, &cx, &cy); x = cx - gcc->dx; @@ -1818,6 +1828,24 @@ } static void +_e_gadcon_cb_signal_move_start(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + _e_gadcon_client_move_start(data); +} + +static void +_e_gadcon_cb_signal_move_stop(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + _e_gadcon_client_move_stop(data); +} + +static void +_e_gadcon_cb_signal_move_go(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + _e_gadcon_client_move_go(data); +} + +static void _e_gadcon_client_resize_start(E_Gadcon_Client *gcc) { evas_object_raise(gcc->o_event); @@ -2076,6 +2104,8 @@ if (new_gcc->client_class->func.orient) new_gcc->client_class->func.orient(new_gcc); new_gcc->state_info.resist = 1; + if (gc->instant_edit) + e_gadcon_client_util_menu_attach(new_gcc); } } } @@ -2229,6 +2259,51 @@ E_MENU_POP_DIRECTION_DOWN, ev->timestamp); e_util_evas_fake_mouse_up_later(gcc->gadcon->evas, ev->button); + } + else if (ev->button == 1) + { + if ((!gcc->o_control) && (gcc->gadcon->instant_edit)) + { + printf("EDIT\n"); + e_gadcon_client_edit_begin(gcc); + _e_gadcon_client_move_start(gcc); + } + } +} + +static void +_e_gadcon_client_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Event_Mouse_Up *ev; + E_Gadcon_Client *gcc; + + ev = event_info; + gcc = data; + + if ((ev->button == 1) && (gcc->gadcon->instant_edit)) + { + if (gcc->o_control) + { + printf("EDIT END\n"); + _e_gadcon_client_move_stop(gcc); + e_gadcon_client_edit_end(gcc); + } + } +} + +static void +_e_gadcon_client_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Event_Mouse_Move *ev; + E_Gadcon_Client *gcc; + + ev = event_info; + gcc = data; + + if ((gcc->gadcon->instant_edit)) + { + if (gcc->o_control) + _e_gadcon_client_move_go(gcc); } } =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.h,v retrieving revision 1.44 retrieving revision 1.45 diff -u -3 -r1.44 -r1.45 --- e_gadcon.h 13 Feb 2008 04:51:01 -0000 1.44 +++ e_gadcon.h 5 Mar 2008 12:39:55 -0000 1.45 @@ -93,6 +93,8 @@ E_Drop_Handler *drop_handler; E_Config_Gadcon *cf; + + unsigned char instant_edit : 1; }; #define GADCON_CLIENT_CLASS_VERSION 2 ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs