Enlightenment CVS committal Author : handyande Project : misc Module : engage
Dir : misc/engage/src/module Modified Files: e_mod_main.c Log Message: update from Florian Zähring - hide / show keep icon and remove icon as neccessary =================================================================== RCS file: /cvsroot/enlightenment/misc/engage/src/module/e_mod_main.c,v retrieving revision 1.69 retrieving revision 1.70 diff -u -3 -r1.69 -r1.70 --- e_mod_main.c 19 Oct 2005 04:26:30 -0000 1.69 +++ e_mod_main.c 29 Nov 2005 22:36:13 -0000 1.70 @@ -59,7 +59,7 @@ static Engage_Bar *_engage_bar_new(Engage *e, E_Container *con); static void _engage_bar_free(Engage_Bar *eb); -static void _engage_bar_menu_new(Engage_Bar *eb); +static void _engage_bar_menu_gen(Engage_Bar *eb); static void _engage_bar_enable(Engage_Bar *eb); static void _engage_bar_disable(Engage_Bar *eb); void _engage_bar_frame_resize(Engage_Bar *eb); @@ -83,7 +83,7 @@ static void _engage_bar_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _engage_bar_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _engage_bar_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); +//static void _engage_bar_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _engage_bar_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _engage_bar_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); @@ -320,7 +320,7 @@ E_CONFIG_LIMIT(eb->conf->tray, 0, 1); _engage_bar_iconsize_change(eb); /* Menu */ - _engage_bar_menu_new(eb); + _engage_bar_menu_gen(eb); /*add tray*/ if (eb->conf->tray) @@ -605,7 +605,7 @@ evas_object_color_set(o, 0, 0, 0, 0); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN, _engage_bar_cb_mouse_in, eb); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_OUT, _engage_bar_cb_mouse_out, eb); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _engage_bar_cb_mouse_down, eb); + //evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _engage_bar_cb_mouse_down, eb); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _engage_bar_cb_mouse_up, eb); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, _engage_bar_cb_mouse_move, eb); evas_object_show(o); @@ -747,7 +747,7 @@ } static void -_engage_bar_menu_new(Engage_Bar *eb) +_engage_bar_menu_gen(Engage_Bar *eb) { E_Menu *mn; E_Menu_Item *mi; @@ -775,17 +775,42 @@ mn = e_menu_new(); eb->icon_menu = mn; + //check if selected_ic is in .order + + int indotorder = 0; + if (eb->engage->apps && eb->selected_ic) + { + Evas_List *ll; + for (ll = eb->engage->apps->subapps; ll; ll = ll->next) + { + E_App *a; + Engage_Icon *ic; + + a = ll->data; + if (eb->selected_ic->app == a) + { + indotorder = 1; + break; + } + } + } + mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Edit Icon"); e_menu_item_callback_set(mi, _engage_bar_cb_menu_edit_icon, eb); - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, "Keep Icon"); - e_menu_item_callback_set(mi, _engage_bar_cb_menu_keep_icon, eb); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, "Remove Icon"); - e_menu_item_callback_set(mi, _engage_bar_cb_menu_remove_icon, eb); + if (!indotorder) + { + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, "Keep Icon"); + e_menu_item_callback_set(mi, _engage_bar_cb_menu_keep_icon, eb); + } + else + { + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, "Remove Icon"); + e_menu_item_callback_set(mi, _engage_bar_cb_menu_remove_icon, eb); + } mn = e_menu_new(); eb->menu = mn; @@ -822,6 +847,8 @@ mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "Icon Options"); e_menu_item_submenu_set(mi, eb->icon_menu); + if (eb->selected_ic) + e_menu_item_icon_edje_set(mi, eb->selected_ic->app->path, "icon"); mi = e_menu_item_new(mn); e_menu_item_separator_set(mi, 1); @@ -2054,6 +2081,14 @@ //set selected icon so we can access it //with the context menu ic->eb->selected_ic = ic; + + //I just dont like this: + //generating the menu on the icon and not eb itself + _engage_bar_menu_gen(ic->eb); + e_menu_activate_mouse(ic->eb->menu, e_zone_current_get(ic->eb->con), + ev->output.x, ev->output.y, 1, 1, + E_MENU_POP_DIRECTION_DOWN, ev->timestamp); + e_util_container_fake_mouse_up_all_later(ic->eb->con); } } @@ -2253,7 +2288,7 @@ return 1; } - +/* static void _engage_bar_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { @@ -2270,6 +2305,7 @@ e_util_container_fake_mouse_up_all_later(eb->con); } } +*/ static void _engage_bar_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs