diff --git a/configure.in b/configure.in index 03214a8b5..ada37d584 100644 --- a/configure.in +++ b/configure.in @@ -214,6 +214,7 @@ src/modules/pager/Makefile src/modules/battery/Makefile src/modules/temperature/Makefile src/modules/cpufreq/Makefile +src/modules/ibox/Makefile data/Makefile data/fonts/Makefile data/images/Makefile diff --git a/data/themes/Makefile.am b/data/themes/Makefile.am index ad2b12e97..ef154454a 100644 --- a/data/themes/Makefile.am +++ b/data/themes/Makefile.am @@ -26,7 +26,8 @@ default_resize.edc \ default_move.edc \ default_temperature.edc \ default_error.edc \ -default_cpufreq.edc +default_cpufreq.edc \ +default_ibox.edc default.edj: Makefile $(EXTRA_DIST) $(EDJE_CC) $(EDJE_FLAGS) \ diff --git a/data/themes/default.edc b/data/themes/default.edc index 40cd72b0f..8c966485a 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -36,5 +36,6 @@ collections { #include "default_temperature.edc" #include "default_error.edc" #include "default_cpufreq.edc" +#include "default_ibox.edc" } diff --git a/src/bin/e_border.h b/src/bin/e_border.h index 7cb961169..41020f4a6 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -190,7 +190,7 @@ struct _E_Border unsigned char need_shape_export : 1; unsigned char fullscreen : 1; unsigned char already_unparented : 1; - + unsigned char changed : 1; unsigned char ignore_first_unmap; diff --git a/src/modules/Makefile.am b/src/modules/Makefile.am index c563f95d6..bb1822602 100644 --- a/src/modules/Makefile.am +++ b/src/modules/Makefile.am @@ -7,4 +7,5 @@ clock \ pager \ battery \ temperature \ -cpufreq +cpufreq \ +ibox diff --git a/src/modules/ibar/Makefile.am b/src/modules/ibar/Makefile.am index 9911d9e77..6f0b845a5 100644 --- a/src/modules/ibar/Makefile.am +++ b/src/modules/ibar/Makefile.am @@ -1,5 +1,5 @@ MAINTAINERCLEANFILES = Makefile.in -MODULE = ibar +MODULE = ibox # data files for the module filesdir = $(libdir)/enlightenment/modules/$(MODULE) diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 11629233e..2b6fd6115 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -7,9 +7,7 @@ /* TODO List: * - * * Listen to change of main e_app! - * - * * Create separate config for each bar + * * Create separate config for each box * * Fix menu * * * icon labels & label tooltips supported for the name of the app @@ -23,100 +21,87 @@ * * BONUS Features (maybe do this later): * - * * allow ibar icons to be dragged around to re-order/delete + * * allow ibox icons to be dragged around to re-order/delete * */ -static int bar_count; +static int box_count; static E_Config_DD *conf_edd; -static E_Config_DD *conf_bar_edd; - -static int drag, drag_start; -static int drag_x, drag_y; +static E_Config_DD *conf_box_edd; /* const strings */ -static const char *_ibar_main_orientation[] = +static const char *_ibox_main_orientation[] = {"left", "right", "top", "bottom"}; /* module private routines */ -static IBar *_ibar_new(); -static void _ibar_free(IBar *ib); -static void _ibar_app_change(void *data, E_App *a, E_App_Change ch); -static void _ibar_config_menu_new(IBar *ib); +static IBox *_ibox_new(); +static void _ibox_free(IBox *ib); +static void _ibox_config_menu_new(IBox *ib); -static IBar_Bar *_ibar_bar_new(IBar *ib, E_Container *con); -static void _ibar_bar_free(IBar_Bar *ibb); -static void _ibar_bar_menu_new(IBar_Bar *ibb); -static void _ibar_bar_enable(IBar_Bar *ibb); -static void _ibar_bar_disable(IBar_Bar *ibb); -static void _ibar_bar_frame_resize(IBar_Bar *ibb); -static void _ibar_bar_edge_change(IBar_Bar *ibb, int edge); -static void _ibar_bar_update_policy(IBar_Bar *ibb); -static void _ibar_bar_motion_handle(IBar_Bar *ibb, Evas_Coord mx, Evas_Coord my); -static void _ibar_bar_timer_handle(IBar_Bar *ibb); -static void _ibar_bar_follower_reset(IBar_Bar *ibb); +static IBox_Box *_ibox_box_new(IBox *ib, E_Container *con); +static void _ibox_box_free(IBox_Box *ibb); +static void _ibox_box_menu_new(IBox_Box *ibb); +static void _ibox_box_enable(IBox_Box *ibb); +static void _ibox_box_disable(IBox_Box *ibb); +static void _ibox_box_frame_resize(IBox_Box *ibb); +static void _ibox_box_edge_change(IBox_Box *ibb, int edge); +static void _ibox_box_update_policy(IBox_Box *ibb); +static void _ibox_box_motion_handle(IBox_Box *ibb, Evas_Coord mx, Evas_Coord my); +static void _ibox_box_timer_handle(IBox_Box *ibb); +static void _ibox_box_follower_reset(IBox_Box *ibb); -static IBar_Icon *_ibar_icon_new(IBar_Bar *ibb, E_App *a); -static void _ibar_icon_free(IBar_Icon *ic); -static IBar_Icon *_ibar_icon_find(IBar_Bar *ibb, E_App *a); -static void _ibar_icon_reorder_after(IBar_Icon *ic, IBar_Icon *after); +static IBox_Icon *_ibox_icon_new(IBox_Box *ibb, E_Border *bd); +static void _ibox_icon_free(IBox_Icon *ic); +static IBox_Icon *_ibox_icon_find(IBox_Box *ibb, E_Border *bd); -static void _ibar_bar_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change change); -static void _ibar_bar_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord y); -static void _ibar_bar_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coord h); -static void _ibar_bar_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _ibar_bar_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _ibar_bar_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _ibar_bar_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _ibar_bar_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); -static int _ibar_bar_cb_timer(void *data); -static int _ibar_bar_cb_animator(void *data); +static void _ibox_box_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change change); +static void _ibox_box_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord y); +static void _ibox_box_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coord h); +static void _ibox_box_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _ibox_box_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _ibox_box_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _ibox_box_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _ibox_box_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); +static int _ibox_box_cb_timer(void *data); +static int _ibox_box_cb_animator(void *data); -static void _ibar_bar_cb_enter(void *data, const char *type, void *event); -static void _ibar_bar_cb_move(void *data, const char *type, void *event); -static void _ibar_bar_cb_leave(void *data, const char *type, void *event); -static void _ibar_bar_cb_drop(void *data, const char *type, void *event); -static void _ibar_bar_cb_finished(E_Drag *drag, int dropped); +static int _ibox_box_cb_event_border_iconify(void *data, int type, void *event); +static int _ibox_box_cb_event_border_uniconify(void *data, int type, void *event); -static void _ibar_icon_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord y); -static void _ibar_icon_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coord h); -static void _ibar_icon_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _ibar_icon_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _ibar_icon_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _ibar_icon_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _ibar_icon_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _ibox_icon_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord y); +static void _ibox_icon_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coord h); +static void _ibox_icon_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _ibox_icon_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _ibox_icon_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _ibar_bar_cb_width_auto(void *data, E_Menu *m, E_Menu_Item *mi); -#if 0 -static void _ibar_icon_reorder_before(IBar_Icon *ic, IBar_Icon *before); -#endif -static void _ibar_bar_iconsize_change(IBar_Bar *ibb); -static void _ibar_bar_cb_iconsize_microscopic(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_iconsize_tiny(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_iconsize_very_small(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_iconsize_small(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_iconsize_medium(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_iconsize_large(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_iconsize_very_large(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_iconsize_extremely_large(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_iconsize_huge(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_iconsize_enormous(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_iconsize_gigantic(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_width_auto(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_iconsize_change(IBox_Box *ibb); +static void _ibox_box_cb_iconsize_microscopic(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_iconsize_tiny(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_iconsize_very_small(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_iconsize_small(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_iconsize_medium(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_iconsize_large(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_iconsize_very_large(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_iconsize_extremely_large(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_iconsize_huge(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_iconsize_enormous(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_iconsize_gigantic(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_menu_enabled(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ibar_bar_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_menu_enabled(void *data, E_Menu *m, E_Menu_Item *mi); +static void _ibox_box_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi); /* public module routines. all modules must have these */ void * e_modapi_init(E_Module *m) { - IBar *ib; + IBox *ib; /* check module api version */ if (m->api->version < E_MODULE_API_VERSION) { e_error_dialog_show(_("Module API Error"), - _("Error initializing Module: IBar\n" + _("Error initializing Module: IBox\n" "It requires a minimum module API version of: %i.\n" "The module API advertized by Enlightenment is: %i.\n" "Aborting module."), @@ -124,8 +109,8 @@ e_modapi_init(E_Module *m) m->api->version); return NULL; } - /* actually init ibar */ - ib = _ibar_new(); + /* actually init ibox */ + ib = _ibox_new(); m->config_menu = ib->config_menu; return ib; } @@ -133,24 +118,24 @@ e_modapi_init(E_Module *m) int e_modapi_shutdown(E_Module *m) { - IBar *ib; + IBox *ib; if (m->config_menu) m->config_menu = NULL; ib = m->data; if (ib) - _ibar_free(ib); + _ibox_free(ib); return 1; } int e_modapi_save(E_Module *m) { - IBar *ib; + IBox *ib; ib = m->data; - e_config_domain_save("module.ibar", conf_edd, ib->conf); + e_config_domain_save("module.ibox", conf_edd, ib->conf); return 1; } @@ -159,7 +144,7 @@ e_modapi_info(E_Module *m) { char buf[4096]; - m->label = strdup(_("IBar")); + m->label = strdup(_("IBox")); snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m)); m->icon_file = strdup(buf); return 1; @@ -168,8 +153,8 @@ e_modapi_info(E_Module *m) int e_modapi_about(E_Module *m) { - e_error_dialog_show(_("Enlightenment IBar Module"), - _("This is the IBar Application Launcher bar module for Enlightenment.\n" + e_error_dialog_show(_("Enlightenment IBox Module"), + _("This is the IBox Application Launcher box module for Enlightenment.\n" "It is a first example module and is being used to flesh out several\n" "Interfaces in Enlightenment 0.17.0. It is under heavy development,\n" "so expect it to break often and change as it improves.")); @@ -177,73 +162,52 @@ e_modapi_about(E_Module *m) } /* module private routines */ -static IBar * -_ibar_new() +static IBox * +_ibox_new() { - IBar *ib; - char buf[4096]; + IBox *ib; Evas_List *managers, *l, *l2, *cl; - bar_count = 0; - ib = E_NEW(IBar, 1); + box_count = 0; + ib = E_NEW(IBox, 1); if (!ib) return NULL; - conf_bar_edd = E_CONFIG_DD_NEW("IBar_Config_Bar", Config_Bar); + conf_box_edd = E_CONFIG_DD_NEW("IBox_Config_Box", Config_Box); #undef T #undef D -#define T Config_Bar -#define D conf_bar_edd +#define T Config_Box +#define D conf_box_edd E_CONFIG_VAL(D, T, enabled, UCHAR); - conf_edd = E_CONFIG_DD_NEW("IBar_Config", Config); + conf_edd = E_CONFIG_DD_NEW("IBox_Config", Config); #undef T #undef D #define T Config #define D conf_edd - E_CONFIG_VAL(D, T, appdir, STR); E_CONFIG_VAL(D, T, follow_speed, DOUBLE); E_CONFIG_VAL(D, T, autoscroll_speed, DOUBLE); E_CONFIG_VAL(D, T, iconsize, INT); E_CONFIG_VAL(D, T, width, INT); - E_CONFIG_LIST(D, T, bars, conf_bar_edd); + E_CONFIG_LIST(D, T, boxes, conf_box_edd); - ib->conf = e_config_domain_load("module.ibar", conf_edd); + ib->conf = e_config_domain_load("module.ibox", conf_edd); if (!ib->conf) { ib->conf = E_NEW(Config, 1); - ib->conf->appdir = strdup("bar"); ib->conf->follow_speed = 0.9; ib->conf->autoscroll_speed = 0.95; ib->conf->iconsize = 24; - ib->conf->width = IBAR_WIDTH_AUTO; + ib->conf->width = IBOX_WIDTH_AUTO; } E_CONFIG_LIMIT(ib->conf->follow_speed, 0.01, 1.0); E_CONFIG_LIMIT(ib->conf->autoscroll_speed, 0.01, 1.0); E_CONFIG_LIMIT(ib->conf->iconsize, 2, 400); E_CONFIG_LIMIT(ib->conf->width, -2, -1); - _ibar_config_menu_new(ib); - - if (ib->conf->appdir[0] != '/') - { - char *homedir; - - homedir = e_user_homedir_get(); - if (homedir) - { - snprintf(buf, sizeof(buf), "%s/.e/e/applications/%s", homedir, ib->conf->appdir); - free(homedir); - } - } - else - strcpy(buf, ib->conf->appdir); - - ib->apps = e_app_new(buf, 0); - if (ib->apps) e_app_subdir_scan(ib->apps, 0); - e_app_change_callback_add(_ibar_app_change, ib); + _ibox_config_menu_new(ib); managers = e_manager_list(); - cl = ib->conf->bars; + cl = ib->conf->boxes; for (l = managers; l; l = l->next) { E_Manager *man; @@ -252,19 +216,19 @@ _ibar_new() for (l2 = man->containers; l2; l2 = l2->next) { E_Container *con; - IBar_Bar *ibb; + IBox_Box *ibb; /* Config */ con = l2->data; - ibb = _ibar_bar_new(ib, con); + ibb = _ibox_box_new(ib, con); if (ibb) { E_Menu_Item *mi; if (!cl) { - ibb->conf = E_NEW(Config_Bar, 1); + ibb->conf = E_NEW(Config_Box, 1); ibb->conf->enabled = 1; - ib->conf->bars = evas_list_append(ib->conf->bars, ibb->conf); + ib->conf->boxes = evas_list_append(ib->conf->boxes, ibb->conf); } else { @@ -272,9 +236,9 @@ _ibar_new() cl = cl->next; } /* Menu */ - _ibar_bar_menu_new(ibb); + _ibox_box_menu_new(ibb); - /* Add main menu to bar menu */ + /* Add main menu to box menu */ mi = e_menu_item_new(ibb->menu); e_menu_item_label_set(mi, "Options"); e_menu_item_submenu_set(mi, ib->config_menu_options); @@ -289,7 +253,7 @@ _ibar_new() /* Setup */ if (!ibb->conf->enabled) - _ibar_bar_disable(ibb); + _ibox_box_disable(ibb); } } @@ -298,133 +262,36 @@ _ibar_new() } static void -_ibar_free(IBar *ib) +_ibox_free(IBox *ib) { E_CONFIG_DD_FREE(conf_edd); - E_CONFIG_DD_FREE(conf_bar_edd); + E_CONFIG_DD_FREE(conf_box_edd); - while (ib->bars) - _ibar_bar_free(ib->bars->data); - if (ib->apps) - e_object_unref(E_OBJECT(ib->apps)); + while (ib->boxes) + _ibox_box_free(ib->boxes->data); - E_FREE(ib->conf->appdir); - e_app_change_callback_del(_ibar_app_change, ib); e_object_del(E_OBJECT(ib->config_menu_options)); e_object_del(E_OBJECT(ib->config_menu_size)); e_object_del(E_OBJECT(ib->config_menu)); - evas_list_free(ib->conf->bars); + evas_list_free(ib->conf->boxes); free(ib->conf); free(ib); } -static void -_ibar_app_change(void *data, E_App *a, E_App_Change ch) +static IBox_Box * +_ibox_box_new(IBox *ib, E_Container *con) { - IBar *ib; - Evas_List *l, *ll; - - ib = data; - for (l = ib->bars; l; l = l->next) - { - IBar_Bar *ibb; - - ibb = l->data; - switch (ch) - { - case E_APP_ADD: - if (e_app_is_parent(ib->apps, a)) - { - IBar_Icon *ic; - - ic = _ibar_icon_new(ibb, a); - if (ic) - { - for (ll = ib->apps->subapps; ll; ll = ll->next) - { - E_App *a2; - - a2 = ll->data; - ic = _ibar_icon_find(ibb, a2); - if (ic) _ibar_icon_reorder_after(ic, NULL); - } - _ibar_bar_frame_resize(ibb); - } - } - break; - case E_APP_DEL: - if (e_app_is_parent(ib->apps, a)) - { - IBar_Icon *ic; - - ic = _ibar_icon_find(ibb, a); - if (ic) _ibar_icon_free(ic); - _ibar_bar_frame_resize(ibb); - } - break; - case E_APP_CHANGE: - if (e_app_is_parent(ib->apps, a)) - { - IBar_Icon *ic; - - ic = _ibar_icon_find(ibb, a); - if (ic) _ibar_icon_free(ic); - evas_image_cache_flush(ibb->evas); - evas_image_cache_reload(ibb->evas); - ic = _ibar_icon_new(ibb, a); - if (ic) - { - for (ll = ib->apps->subapps; ll; ll = ll->next) - { - E_App *a2; - - a2 = ll->data; - ic = _ibar_icon_find(ibb, a2); - if (ic) _ibar_icon_reorder_after(ic, NULL); - } - _ibar_bar_frame_resize(ibb); - } - } - break; - case E_APP_ORDER: - if (a == ib->apps) - { - for (ll = ib->apps->subapps; ll; ll = ll->next) - { - IBar_Icon *ic; - E_App *a2; - - a2 = ll->data; - ic = _ibar_icon_find(ibb, a2); - if (ic) _ibar_icon_reorder_after(ic, NULL); - } - } - break; - case E_APP_EXEC: - break; - case E_APP_READY: - break; - case E_APP_EXIT: - break; - default: - break; - } - } -} - -static IBar_Bar * -_ibar_bar_new(IBar *ib, E_Container *con) -{ - IBar_Bar *ibb; - Evas_List *l; + IBox_Box *ibb; Evas_Object *o; E_Gadman_Policy policy; Evas_Coord x, y, w, h; + E_Border_List *bl; + E_Border *bd; - ibb = E_NEW(IBar_Bar, 1); + ibb = E_NEW(IBox_Box, 1); if (!ibb) return NULL; - ibb->ibar = ib; - ib->bars = evas_list_append(ib->bars, ibb); + ibb->ibox = ib; + ib->boxes = evas_list_append(ib->boxes, ibb); ibb->con = con; e_object_ref(E_OBJECT(con)); @@ -434,16 +301,16 @@ _ibar_bar_new(IBar *ib, E_Container *con) evas_event_freeze(ibb->evas); o = edje_object_add(ibb->evas); - ibb->bar_object = o; - e_theme_edje_object_set(o, "base/theme/modules/ibar", - "modules/ibar/main"); + ibb->box_object = o; + e_theme_edje_object_set(o, "base/theme/modules/ibox", + "modules/ibox/main"); evas_object_show(o); o = edje_object_add(ibb->evas); ibb->overlay_object = o; evas_object_layer_set(o, 1); - e_theme_edje_object_set(o, "base/theme/modules/ibar", - "modules/ibar/follower"); + e_theme_edje_object_set(o, "base/theme/modules/ibox", + "modules/ibox/follower"); evas_object_show(o); o = evas_object_rectangle_add(ibb->evas); @@ -451,58 +318,55 @@ _ibar_bar_new(IBar *ib, E_Container *con) evas_object_layer_set(o, 2); evas_object_repeat_events_set(o, 1); evas_object_color_set(o, 0, 0, 0, 0); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN, _ibar_bar_cb_mouse_in, ibb); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_OUT, _ibar_bar_cb_mouse_out, ibb); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _ibar_bar_cb_mouse_down, ibb); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _ibar_bar_cb_mouse_up, ibb); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, _ibar_bar_cb_mouse_move, ibb); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN, _ibox_box_cb_mouse_in, ibb); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_OUT, _ibox_box_cb_mouse_out, ibb); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _ibox_box_cb_mouse_down, ibb); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _ibox_box_cb_mouse_up, ibb); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, _ibox_box_cb_mouse_move, ibb); evas_object_show(o); o = e_box_add(ibb->evas); - ibb->box_object = o; - evas_object_intercept_move_callback_add(o, _ibar_bar_cb_intercept_move, ibb); - evas_object_intercept_resize_callback_add(o, _ibar_bar_cb_intercept_resize, ibb); + ibb->item_object = o; + evas_object_intercept_move_callback_add(o, _ibox_box_cb_intercept_move, ibb); + evas_object_intercept_resize_callback_add(o, _ibox_box_cb_intercept_resize, ibb); e_box_freeze(o); - edje_object_part_swallow(ibb->bar_object, "items", o); + edje_object_part_swallow(ibb->box_object, "items", o); evas_object_show(o); - if (ibb->ibar->apps) + ibb->ev_handler_border_iconify = + ecore_event_handler_add(E_EVENT_BORDER_ICONIFY, _ibox_box_cb_event_border_iconify, ibb); + ibb->ev_handler_border_uniconify = + ecore_event_handler_add(E_EVENT_BORDER_ICONIFY, _ibox_box_cb_event_border_uniconify, ibb); + + bl = e_container_border_list_first(ibb->con); + while ((bd = e_container_border_list_next(bl))) { - for (l = ibb->ibar->apps->subapps; l; l = l->next) - { - E_App *a; - IBar_Icon *ic; + IBox_Icon *ic; - a = l->data; - ic = _ibar_icon_new(ibb, a); - } + if (!bd->iconic) continue; + + ic = _ibox_icon_new(ibb, bd); } + e_container_border_list_free(bl); + ibb->align_req = 0.5; ibb->align = 0.5; - e_box_align_set(ibb->box_object, 0.5, 0.5); + e_box_align_set(ibb->item_object, 0.5, 0.5); - e_box_thaw(ibb->box_object); - - evas_object_resize(ibb->bar_object, 1000, 1000); - edje_object_calc_force(ibb->bar_object); - edje_object_part_geometry_get(ibb->bar_object, "items", &x, &y, &w, &h); + evas_object_resize(ibb->box_object, 1000, 1000); + edje_object_calc_force(ibb->box_object); + edje_object_part_geometry_get(ibb->box_object, "items", &x, &y, &w, &h); ibb->inset.l = x; ibb->inset.r = 1000 - (x + w); ibb->inset.t = y; ibb->inset.b = 1000 - (y + h); - ibb->drop_handler = e_drop_handler_add(ibb, - _ibar_bar_cb_enter, _ibar_bar_cb_move, - _ibar_bar_cb_leave, _ibar_bar_cb_drop, - "enlightenment/eapp", - ibb->x + ibb->inset.l, ibb->y + ibb->inset.t, - ibb->w - (ibb->inset.l + ibb->inset.r), - ibb->h - (ibb->inset.t + ibb->inset.b)); + e_box_thaw(ibb->item_object); ibb->gmc = e_gadman_client_new(ibb->con->gadman); - e_gadman_client_domain_set(ibb->gmc, "module.ibar", bar_count++); + e_gadman_client_domain_set(ibb->gmc, "module.ibox", box_count++); policy = E_GADMAN_POLICY_EDGES | E_GADMAN_POLICY_HMOVE | E_GADMAN_POLICY_VMOVE; - if (ibb->ibar->conf->width == IBAR_WIDTH_FIXED) + if (ibb->ibox->conf->width == IBOX_WIDTH_FIXED) policy |= E_GADMAN_POLICY_HSIZE; e_gadman_client_policy_set(ibb->gmc, policy); e_gadman_client_min_size_set(ibb->gmc, 8, 8); @@ -510,7 +374,7 @@ _ibar_bar_new(IBar *ib, E_Container *con) e_gadman_client_auto_size_set(ibb->gmc, -1, -1); e_gadman_client_align_set(ibb->gmc, 0.5, 1.0); e_gadman_client_resize(ibb->gmc, 400, 32 + ibb->inset.t + ibb->inset.b); - e_gadman_client_change_func_set(ibb->gmc, _ibar_bar_cb_gmc_change, ibb); + e_gadman_client_change_func_set(ibb->gmc, _ibox_box_cb_gmc_change, ibb); e_gadman_client_edge_set(ibb->gmc, E_GADMAN_EDGE_BOTTOM); e_gadman_client_load(ibb->gmc); @@ -518,10 +382,10 @@ _ibar_bar_new(IBar *ib, E_Container *con) /* We need to resize, if the width is auto and the number * of apps has changed since last startup */ - _ibar_bar_frame_resize(ibb); + _ibox_box_frame_resize(ibb); /* - edje_object_signal_emit(ibb->bar_object, "passive", ""); + edje_object_signal_emit(ibb->box_object, "passive", ""); edje_object_signal_emit(ibb->overlay_object, "passive", ""); */ @@ -529,34 +393,35 @@ _ibar_bar_new(IBar *ib, E_Container *con) } static void -_ibar_bar_free(IBar_Bar *ibb) +_ibox_box_free(IBox_Box *ibb) { e_object_unref(E_OBJECT(ibb->con)); - e_object_del(E_OBJECT(ibb->menu)); + ecore_event_handler_del(ibb->ev_handler_border_iconify); + ecore_event_handler_del(ibb->ev_handler_border_uniconify); while (ibb->icons) - _ibar_icon_free(ibb->icons->data); + _ibox_icon_free(ibb->icons->data); if (ibb->timer) ecore_timer_del(ibb->timer); if (ibb->animator) ecore_animator_del(ibb->animator); - evas_object_del(ibb->bar_object); - evas_object_del(ibb->overlay_object); evas_object_del(ibb->box_object); + evas_object_del(ibb->overlay_object); + evas_object_del(ibb->item_object); evas_object_del(ibb->event_object); e_gadman_client_save(ibb->gmc); e_object_del(E_OBJECT(ibb->gmc)); - ibb->ibar->bars = evas_list_remove(ibb->ibar->bars, ibb); + ibb->ibox->boxes = evas_list_remove(ibb->ibox->boxes, ibb); free(ibb->conf); free(ibb); - bar_count--; + box_count--; } static void -_ibar_bar_menu_new(IBar_Bar *ibb) +_ibox_box_menu_new(IBox_Box *ibb) { E_Menu *mn; E_Menu_Item *mi; @@ -570,77 +435,80 @@ _ibar_bar_menu_new(IBar_Bar *ibb) e_menu_item_label_set(mi, "Enabled"); e_menu_item_check_set(mi, 1); if (ibb->conf->enabled) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_menu_enabled, ibb); + e_menu_item_callback_set(mi, _ibox_box_cb_menu_enabled, ibb); */ /* Edit */ mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Edit Mode")); - e_menu_item_callback_set(mi, _ibar_bar_cb_menu_edit, ibb); + e_menu_item_callback_set(mi, _ibox_box_cb_menu_edit, ibb); } static void -_ibar_bar_enable(IBar_Bar *ibb) +_ibox_box_enable(IBox_Box *ibb) { ibb->conf->enabled = 1; - evas_object_show(ibb->bar_object); - evas_object_show(ibb->overlay_object); evas_object_show(ibb->box_object); + evas_object_show(ibb->overlay_object); + evas_object_show(ibb->item_object); evas_object_show(ibb->event_object); e_config_save_queue(); } static void -_ibar_bar_disable(IBar_Bar *ibb) +_ibox_box_disable(IBox_Box *ibb) { ibb->conf->enabled = 0; - evas_object_hide(ibb->bar_object); - evas_object_hide(ibb->overlay_object); evas_object_hide(ibb->box_object); + evas_object_hide(ibb->overlay_object); + evas_object_hide(ibb->item_object); evas_object_hide(ibb->event_object); e_config_save_queue(); } -static IBar_Icon * -_ibar_icon_new(IBar_Bar *ibb, E_App *a) +static IBox_Icon * +_ibox_icon_new(IBox_Box *ibb, E_Border *bd) { - IBar_Icon *ic; + IBox_Icon *ic; char *str; Evas_Object *o; Evas_Coord bw, bh; + const char *file, *part; - ic = E_NEW(IBar_Icon, 1); + /* FIXME: Add default icon! */ + if (!bd->icon_object) return NULL; + + ic = E_NEW(IBox_Icon, 1); if (!ic) return NULL; ic->ibb = ibb; - ic->app = a; - e_object_ref(E_OBJECT(a)); + ic->border = bd; + e_object_ref(E_OBJECT(bd)); ibb->icons = evas_list_append(ibb->icons, ic); o = evas_object_rectangle_add(ibb->evas); ic->event_object = o; evas_object_layer_set(o, 1); - evas_object_clip_set(o, evas_object_clip_get(ibb->box_object)); + evas_object_clip_set(o, evas_object_clip_get(ibb->item_object)); evas_object_color_set(o, 0, 0, 0, 0); evas_object_repeat_events_set(o, 1); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN, _ibar_icon_cb_mouse_in, ic); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_OUT, _ibar_icon_cb_mouse_out, ic); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _ibar_icon_cb_mouse_down, ic); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _ibar_icon_cb_mouse_up, ic); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, _ibar_icon_cb_mouse_move, ic); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN, _ibox_icon_cb_mouse_in, ic); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_OUT, _ibox_icon_cb_mouse_out, ic); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _ibox_icon_cb_mouse_up, ic); evas_object_show(o); o = edje_object_add(ibb->evas); ic->bg_object = o; - evas_object_intercept_move_callback_add(o, _ibar_icon_cb_intercept_move, ic); - evas_object_intercept_resize_callback_add(o, _ibar_icon_cb_intercept_resize, ic); - e_theme_edje_object_set(o, "base/theme/modules/ibar", - "modules/ibar/icon"); + evas_object_intercept_move_callback_add(o, _ibox_icon_cb_intercept_move, ic); + evas_object_intercept_resize_callback_add(o, _ibox_icon_cb_intercept_resize, ic); + e_theme_edje_object_set(o, "base/theme/modules/ibox", + "modules/ibox/icon"); evas_object_show(o); o = edje_object_add(ibb->evas); ic->icon_object = o; - edje_object_file_set(o, ic->app->path, "icon"); - edje_extern_object_min_size_set(o, ibb->ibar->conf->iconsize, ibb->ibar->conf->iconsize); + edje_object_file_get(ic->border->icon_object, &file, &part); + edje_object_file_set(o, file, part); + edje_extern_object_min_size_set(o, ibb->ibox->conf->iconsize, ibb->ibox->conf->iconsize); edje_object_part_swallow(ic->bg_object, "item", o); edje_object_size_min_calc(ic->bg_object, &bw, &bh); evas_object_pass_events_set(o, 1); @@ -648,22 +516,15 @@ _ibar_icon_new(IBar_Bar *ibb, E_App *a) o = edje_object_add(ibb->evas); ic->overlay_object = o; - evas_object_intercept_move_callback_add(o, _ibar_icon_cb_intercept_move, ic); - evas_object_intercept_resize_callback_add(o, _ibar_icon_cb_intercept_resize, ic); - e_theme_edje_object_set(o, "base/theme/modules/ibar", - "modules/ibar/icon_overlay"); - evas_object_show(o); - - o = edje_object_add(ibb->evas); - ic->extra_icons = evas_list_append(ic->extra_icons, o); - edje_object_file_set(o, ic->app->path, "icon"); - edje_object_part_swallow(ic->overlay_object, "item", o); - evas_object_pass_events_set(o, 1); + evas_object_intercept_move_callback_add(o, _ibox_icon_cb_intercept_move, ic); + evas_object_intercept_resize_callback_add(o, _ibox_icon_cb_intercept_resize, ic); + e_theme_edje_object_set(o, "base/theme/modules/ibox", + "modules/ibox/icon_overlay"); evas_object_show(o); evas_object_raise(ic->event_object); - e_box_pack_end(ibb->box_object, ic->bg_object); + e_box_pack_end(ibb->item_object, ic->bg_object); e_box_pack_options_set(ic->bg_object, 1, 1, /* fill */ 0, 0, /* expand */ @@ -684,42 +545,34 @@ _ibar_icon_new(IBar_Bar *ibb, E_App *a) } static void -_ibar_icon_free(IBar_Icon *ic) +_ibox_icon_free(IBox_Icon *ic) { ic->ibb->icons = evas_list_remove(ic->ibb->icons, ic); if (ic->bg_object) evas_object_del(ic->bg_object); if (ic->overlay_object) evas_object_del(ic->overlay_object); if (ic->icon_object) evas_object_del(ic->icon_object); if (ic->event_object) evas_object_del(ic->event_object); - while (ic->extra_icons) - { - Evas_Object *o; - - o = ic->extra_icons->data; - ic->extra_icons = evas_list_remove_list(ic->extra_icons, ic->extra_icons); - evas_object_del(o); - } - e_object_unref(E_OBJECT(ic->app)); + e_object_unref(E_OBJECT(ic->border)); free(ic); } -static IBar_Icon * -_ibar_icon_find(IBar_Bar *ibb, E_App *a) +static IBox_Icon * +_ibox_icon_find(IBox_Box *ibb, E_Border *bd) { Evas_List *l; for (l = ibb->icons; l; l = l->next) { - IBar_Icon *ic; + IBox_Icon *ic; ic = l->data; - if (ic->app == a) return ic; + if (ic->border == bd) return ic; } return NULL; } void -_ibar_config_menu_new(IBar *ib) +_ibox_config_menu_new(IBox *ib) { E_Menu *mn; E_Menu_Item *mi; @@ -733,8 +586,8 @@ _ibar_config_menu_new(IBar *ib) mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Auto fit icons")); e_menu_item_check_set(mi, 1); - if (ib->conf->width == IBAR_WIDTH_AUTO) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_width_auto, ib); + if (ib->conf->width == IBOX_WIDTH_AUTO) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _ibox_box_cb_width_auto, ib); mn = e_menu_new(); ib->config_menu_size = mn; @@ -744,77 +597,77 @@ _ibar_config_menu_new(IBar *ib) e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 8) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_microscopic, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_microscopic, ib); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Tiny")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 12) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_tiny, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_tiny, ib); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Very Small")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 16) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_very_small, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_very_small, ib); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Small")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 24) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_small, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_small, ib); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Medium")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 32) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_medium, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_medium, ib); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Large")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 40) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_large, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_large, ib); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Very Large")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 48) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_very_large, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_very_large, ib); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Extremely Large")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 56) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_extremely_large, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_extremely_large, ib); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Huge")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 64) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_huge, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_huge, ib); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Enormous")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 96) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_enormous, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_enormous, ib); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Gigantic")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); if (ib->conf->iconsize == 128) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _ibar_bar_cb_iconsize_gigantic, ib); + e_menu_item_callback_set(mi, _ibox_box_cb_iconsize_gigantic, ib); /* Submenus */ mi = e_menu_item_new(ib->config_menu); @@ -826,68 +679,8 @@ _ibar_config_menu_new(IBar *ib) e_menu_item_submenu_set(mi, ib->config_menu_size); } -#if 0 static void -_ibar_icon_reorder_before(IBar_Icon *ic, IBar_Icon *before) -{ - Evas_Coord bw, bh; - - e_box_freeze(ic->ibb->box_object); - e_box_unpack(ic->bg_object); - ic->ibb->icons = evas_list_remove(ic->ibb->icons, ic); - if (before) - { - ic->ibb->icons = evas_list_prepend_relative(ic->ibb->icons, ic, before); - e_box_pack_before(ic->ibb->box_object, ic->bg_object, before->bg_object); - } - else - { - ic->ibb->icons = evas_list_prepend(ic->ibb->icons, ic); - e_box_pack_start(ic->ibb->box_object, ic->bg_object); - } - edje_object_size_min_calc(ic->bg_object, &bw, &bh); - e_box_pack_options_set(ic->bg_object, - 1, 1, /* fill */ - 0, 0, /* expand */ - 0.5, 0.5, /* align */ - bw, bh, /* min */ - bw, bh /* max */ - ); - e_box_thaw(ic->ibb->box_object); -} -#endif - -static void -_ibar_icon_reorder_after(IBar_Icon *ic, IBar_Icon *after) -{ - Evas_Coord bw, bh; - - e_box_freeze(ic->ibb->box_object); - e_box_unpack(ic->bg_object); - ic->ibb->icons = evas_list_remove(ic->ibb->icons, ic); - if (after) - { - ic->ibb->icons = evas_list_append_relative(ic->ibb->icons, ic, after); - e_box_pack_after(ic->ibb->box_object, ic->bg_object, after->bg_object); - } - else - { - ic->ibb->icons = evas_list_append(ic->ibb->icons, ic); - e_box_pack_end(ic->ibb->box_object, ic->bg_object); - } - edje_object_size_min_calc(ic->bg_object, &bw, &bh); - e_box_pack_options_set(ic->bg_object, - 1, 1, /* fill */ - 0, 0, /* expand */ - 0.5, 0.5, /* align */ - bw, bh, /* min */ - bw, bh /* max */ - ); - e_box_thaw(ic->ibb->box_object); -} - -static void -_ibar_bar_frame_resize(IBar_Bar *ibb) +_ibox_box_frame_resize(IBox_Box *ibb) { Evas_Coord w, h, bw, bh; /* Not finished loading config yet! */ @@ -898,19 +691,19 @@ _ibar_bar_frame_resize(IBar_Bar *ibb) return; evas_event_freeze(ibb->evas); - e_box_freeze(ibb->box_object); + e_box_freeze(ibb->item_object); - e_box_min_size_get(ibb->box_object, &w, &h); - edje_extern_object_min_size_set(ibb->box_object, w, h); - edje_object_part_swallow(ibb->bar_object, "items", ibb->box_object); - edje_object_size_min_calc(ibb->bar_object, &bw, &bh); - edje_extern_object_min_size_set(ibb->box_object, 0, 0); - edje_object_part_swallow(ibb->bar_object, "items", ibb->box_object); + e_box_min_size_get(ibb->item_object, &w, &h); + edje_extern_object_min_size_set(ibb->item_object, w, h); + edje_object_part_swallow(ibb->box_object, "items", ibb->item_object); + edje_object_size_min_calc(ibb->box_object, &bw, &bh); + edje_extern_object_min_size_set(ibb->item_object, 0, 0); + edje_object_part_swallow(ibb->box_object, "items", ibb->item_object); - e_box_thaw(ibb->box_object); + e_box_thaw(ibb->item_object); evas_event_thaw(ibb->evas); - if (ibb->ibar->conf->width == IBAR_WIDTH_AUTO) + if (ibb->ibox->conf->width == IBOX_WIDTH_AUTO) { e_gadman_client_resize(ibb->gmc, bw, bh); } @@ -919,20 +712,20 @@ _ibar_bar_frame_resize(IBar_Bar *ibb) if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_LEFT) || (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_RIGHT)) { - /* h is the width of the bar */ + /* h is the width of the box */ e_gadman_client_resize(ibb->gmc, bw, ibb->h); } else if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_TOP) || (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_BOTTOM)) { - /* w is the width of the bar */ + /* w is the width of the box */ e_gadman_client_resize(ibb->gmc, ibb->w, bh); } } } static void -_ibar_bar_edge_change(IBar_Bar *ibb, int edge) +_ibox_box_edge_change(IBox_Box *ibb, int edge) { Evas_List *l; Evas_Coord bw, bh, tmp; @@ -941,28 +734,28 @@ _ibar_bar_edge_change(IBar_Bar *ibb, int edge) int changed; evas_event_freeze(ibb->evas); - o = ibb->bar_object; - edje_object_signal_emit(o, "set_orientation", _ibar_main_orientation[edge]); + o = ibb->box_object; + edje_object_signal_emit(o, "set_orientation", _ibox_main_orientation[edge]); edje_object_message_signal_process(o); o = ibb->overlay_object; - edje_object_signal_emit(o, "set_orientation", _ibar_main_orientation[edge]); + edje_object_signal_emit(o, "set_orientation", _ibox_main_orientation[edge]); edje_object_message_signal_process(o); - e_box_freeze(ibb->box_object); + e_box_freeze(ibb->item_object); for (l = ibb->icons; l; l = l->next) { - IBar_Icon *ic; + IBox_Icon *ic; ic = l->data; o = ic->bg_object; - edje_object_signal_emit(o, "set_orientation", _ibar_main_orientation[edge]); + edje_object_signal_emit(o, "set_orientation", _ibox_main_orientation[edge]); edje_object_message_signal_process(o); edje_object_size_min_calc(ic->bg_object, &bw, &bh); o = ic->overlay_object; - edje_object_signal_emit(o, "set_orientation", _ibar_main_orientation[edge]); + edje_object_signal_emit(o, "set_orientation", _ibox_main_orientation[edge]); edje_object_message_signal_process(o); e_box_pack_options_set(ic->bg_object, @@ -976,17 +769,17 @@ _ibar_bar_edge_change(IBar_Bar *ibb, int edge) ibb->align_req = 0.5; ibb->align = 0.5; - e_box_align_set(ibb->box_object, 0.5, 0.5); + e_box_align_set(ibb->item_object, 0.5, 0.5); policy = E_GADMAN_POLICY_EDGES | E_GADMAN_POLICY_HMOVE | E_GADMAN_POLICY_VMOVE; if ((edge == E_GADMAN_EDGE_BOTTOM) || (edge == E_GADMAN_EDGE_TOP)) { - changed = (e_box_orientation_get(ibb->box_object) != 1); + changed = (e_box_orientation_get(ibb->item_object) != 1); if (changed) { - e_box_orientation_set(ibb->box_object, 1); - if (ibb->ibar->conf->width == IBAR_WIDTH_FIXED) + e_box_orientation_set(ibb->item_object, 1); + if (ibb->ibox->conf->width == IBOX_WIDTH_FIXED) policy |= E_GADMAN_POLICY_HSIZE; e_gadman_client_policy_set(ibb->gmc, policy); tmp = ibb->w; @@ -997,11 +790,11 @@ _ibar_bar_edge_change(IBar_Bar *ibb, int edge) else if ((edge == E_GADMAN_EDGE_LEFT) || (edge == E_GADMAN_EDGE_RIGHT)) { - changed = (e_box_orientation_get(ibb->box_object) != 0); + changed = (e_box_orientation_get(ibb->item_object) != 0); if (changed) { - e_box_orientation_set(ibb->box_object, 0); - if (ibb->ibar->conf->width == IBAR_WIDTH_FIXED) + e_box_orientation_set(ibb->item_object, 0); + if (ibb->ibox->conf->width == IBOX_WIDTH_FIXED) policy |= E_GADMAN_POLICY_VSIZE; e_gadman_client_policy_set(ibb->gmc, policy); tmp = ibb->w; @@ -1010,14 +803,14 @@ _ibar_bar_edge_change(IBar_Bar *ibb, int edge) } } - e_box_thaw(ibb->box_object); + e_box_thaw(ibb->item_object); evas_event_thaw(ibb->evas); - _ibar_bar_frame_resize(ibb); + _ibox_box_frame_resize(ibb); } static void -_ibar_bar_update_policy(IBar_Bar *ibb) +_ibox_box_update_policy(IBox_Box *ibb) { E_Gadman_Policy policy; @@ -1025,26 +818,26 @@ _ibar_bar_update_policy(IBar_Bar *ibb) if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_BOTTOM) || (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_TOP)) { - if (ibb->ibar->conf->width == IBAR_WIDTH_FIXED) + if (ibb->ibox->conf->width == IBOX_WIDTH_FIXED) policy |= E_GADMAN_POLICY_HSIZE; e_gadman_client_policy_set(ibb->gmc, policy); } else if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_LEFT) || (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_RIGHT)) { - if (ibb->ibar->conf->width == IBAR_WIDTH_FIXED) + if (ibb->ibox->conf->width == IBOX_WIDTH_FIXED) policy |= E_GADMAN_POLICY_VSIZE; e_gadman_client_policy_set(ibb->gmc, policy); } } static void -_ibar_bar_motion_handle(IBar_Bar *ibb, Evas_Coord mx, Evas_Coord my) +_ibox_box_motion_handle(IBox_Box *ibb, Evas_Coord mx, Evas_Coord my) { Evas_Coord x, y, w, h; double relx, rely; - evas_object_geometry_get(ibb->box_object, &x, &y, &w, &h); + evas_object_geometry_get(ibb->item_object, &x, &y, &w, &h); if (w > 0) relx = (double)(mx - x) / (double)w; else relx = 0.0; if (h > 0) rely = (double)(my - y) / (double)h; @@ -1064,21 +857,21 @@ _ibar_bar_motion_handle(IBar_Bar *ibb, Evas_Coord mx, Evas_Coord my) } static void -_ibar_bar_timer_handle(IBar_Bar *ibb) +_ibox_box_timer_handle(IBox_Box *ibb) { if (!ibb->timer) - ibb->timer = ecore_timer_add(0.01, _ibar_bar_cb_timer, ibb); + ibb->timer = ecore_timer_add(0.01, _ibox_box_cb_timer, ibb); if (!ibb->animator) - ibb->animator = ecore_animator_add(_ibar_bar_cb_animator, ibb); + ibb->animator = ecore_animator_add(_ibox_box_cb_animator, ibb); } static void -_ibar_bar_follower_reset(IBar_Bar *ibb) +_ibox_box_follower_reset(IBox_Box *ibb) { Evas_Coord ww, hh, bx, by, bw, bh, d1, d2, mw, mh; evas_output_viewport_get(ibb->evas, NULL, NULL, &ww, &hh); - evas_object_geometry_get(ibb->box_object, &bx, &by, &bw, &bh); + evas_object_geometry_get(ibb->item_object, &bx, &by, &bw, &bh); edje_object_size_min_get(ibb->overlay_object, &mw, &mh); if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_BOTTOM) || (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_TOP)) @@ -1109,9 +902,9 @@ _ibar_bar_follower_reset(IBar_Bar *ibb) } static void -_ibar_icon_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord y) +_ibox_icon_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord y) { - IBar_Icon *ic; + IBox_Icon *ic; ic = data; evas_object_move(o, x, y); @@ -1120,9 +913,9 @@ _ibar_icon_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coor } static void -_ibar_icon_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coord h) +_ibox_icon_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coord h) { - IBar_Icon *ic; + IBox_Icon *ic; ic = data; evas_object_resize(o, w, h); @@ -1131,9 +924,9 @@ _ibar_icon_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Co } static void -_ibar_bar_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord y) +_ibox_box_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord y) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = data; evas_object_move(o, x, y); @@ -1141,9 +934,9 @@ _ibar_bar_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord } static void -_ibar_bar_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coord h) +_ibox_box_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coord h) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = data; @@ -1152,10 +945,10 @@ _ibar_bar_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coo } static void -_ibar_icon_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info) +_ibox_icon_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_In *ev; - IBar_Icon *ic; + IBox_Icon *ic; ev = event_info; ic = data; @@ -1171,10 +964,10 @@ _ibar_icon_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info) } static void -_ibar_icon_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info) +_ibox_icon_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_Out *ev; - IBar_Icon *ic; + IBox_Icon *ic; ev = event_info; ic = data; @@ -1184,119 +977,48 @@ _ibar_icon_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info) } static void -_ibar_icon_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Event_Mouse_Down *ev; - IBar_Icon *ic; - - ev = event_info; - ic = data; - if (ev->button == 1) - { -#if 0 - edje_object_signal_emit(ic->bg_object, "start", ""); - edje_object_signal_emit(ic->overlay_object, "start", ""); - edje_object_signal_emit(ic->ibb->overlay_object, "start", ""); - e_app_exec(ic->app); -#else - drag_x = ev->output.x; - drag_y = ev->output.y; - drag_start = 1; - drag = 0; -#endif - } -} - -static void -_ibar_icon_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) +_ibox_icon_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_Up *ev; - IBar_Icon *ic; + IBox_Icon *ic; ev = event_info; ic = data; if (ev->button == 1) - { -#if 0 - edje_object_signal_emit(ic->bg_object, "start_end", ""); - edje_object_signal_emit(ic->overlay_object, "start_end", ""); - edje_object_signal_emit(ic->ibb->overlay_object, "start_end", ""); -#else - if (!drag) - e_app_exec(ic->app); - drag = 0; - drag_start = 0; -#endif - } + e_border_uniconify(ic->border); } static void -_ibar_icon_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Event_Mouse_Move *ev; - IBar_Icon *ic; - - ev = event_info; - ic = data; - - if (drag_start) - { - double dist; - - dist = sqrt(pow((ev->cur.output.x - drag_x), 2) + pow((ev->cur.output.y - drag_y), 2)); - if (dist > 10) - { - E_Drag *d; - Evas_Object *o; - - drag = 1; - drag_start = 0; - - d = e_drag_new(ic->ibb->con, "enlightenment/eapp", - ic->app, _ibar_bar_cb_finished); - o = edje_object_add(e_drag_evas_get(d)); - edje_object_file_set(o, ic->app->path, "icon"); - e_drag_object_set(d, o); - - e_drag_resize(d, ic->ibb->ibar->conf->iconsize, ic->ibb->ibar->conf->iconsize); - e_drag_start(d); - evas_event_feed_mouse_up(ic->ibb->evas, 1, EVAS_BUTTON_NONE, NULL); - e_app_remove(ic->app); - } - } -} - -static void -_ibar_bar_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info) +_ibox_box_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_In *ev; - IBar_Bar *ibb; + IBox_Box *ibb; ev = event_info; ibb = data; edje_object_signal_emit(ibb->overlay_object, "active", ""); - _ibar_bar_motion_handle(ibb, ev->canvas.x, ev->canvas.y); - _ibar_bar_timer_handle(ibb); + _ibox_box_motion_handle(ibb, ev->canvas.x, ev->canvas.y); + _ibox_box_timer_handle(ibb); } static void -_ibar_bar_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info) +_ibox_box_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_Out *ev; - IBar_Bar *ibb; + IBox_Box *ibb; ev = event_info; ibb = data; edje_object_signal_emit(ibb->overlay_object, "passive", ""); - _ibar_bar_follower_reset(ibb); - _ibar_bar_timer_handle(ibb); + _ibox_box_follower_reset(ibb); + _ibox_box_timer_handle(ibb); } static void -_ibar_bar_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) +_ibox_box_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_Down *ev; - IBar_Bar *ibb; + IBox_Box *ibb; ev = event_info; ibb = data; @@ -1310,38 +1032,38 @@ _ibar_bar_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) } static void -_ibar_bar_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) +_ibox_box_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_Up *ev; - IBar_Bar *ibb; + IBox_Box *ibb; ev = event_info; ibb = data; } static void -_ibar_bar_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) +_ibox_box_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_Move *ev; - IBar_Bar *ibb; + IBox_Box *ibb; ev = event_info; ibb = data; - _ibar_bar_motion_handle(ibb, ev->cur.canvas.x, ev->cur.canvas.y); - _ibar_bar_timer_handle(ibb); + _ibox_box_motion_handle(ibb, ev->cur.canvas.x, ev->cur.canvas.y); + _ibox_box_timer_handle(ibb); } static int -_ibar_bar_cb_timer(void *data) +_ibox_box_cb_timer(void *data) { - IBar_Bar *ibb; + IBox_Box *ibb; double dif, dif2; double v; ibb = data; - v = ibb->ibar->conf->autoscroll_speed; + v = ibb->ibox->conf->autoscroll_speed; ibb->align = (ibb->align_req * (1.0 - v)) + (ibb->align * v); - v = ibb->ibar->conf->follow_speed; + v = ibb->ibox->conf->follow_speed; ibb->follow = (ibb->follow_req * (1.0 - v)) + (ibb->follow * v); dif = ibb->align - ibb->align_req; @@ -1361,9 +1083,9 @@ _ibar_bar_cb_timer(void *data) } static int -_ibar_bar_cb_animator(void *data) +_ibox_box_cb_animator(void *data) { - IBar_Bar *ibb; + IBox_Box *ibb; Evas_Coord x, y, w, h, mw, mh; ibb = data; @@ -1371,9 +1093,9 @@ _ibar_bar_cb_animator(void *data) if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_BOTTOM) || (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_TOP)) { - e_box_align_set(ibb->box_object, ibb->align, 0.5); + e_box_align_set(ibb->item_object, ibb->align, 0.5); - evas_object_geometry_get(ibb->box_object, &x, &y, &w, &h); + evas_object_geometry_get(ibb->item_object, &x, &y, &w, &h); edje_object_size_min_get(ibb->overlay_object, &mw, &mh); evas_object_resize(ibb->overlay_object, mw, h); evas_object_move(ibb->overlay_object, x + (w * ibb->follow) - (mw / 2), y); @@ -1381,9 +1103,9 @@ _ibar_bar_cb_animator(void *data) else if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_LEFT) || (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_RIGHT)) { - e_box_align_set(ibb->box_object, 0.5, ibb->align); + e_box_align_set(ibb->item_object, 0.5, ibb->align); - evas_object_geometry_get(ibb->box_object, &x, &y, &w, &h); + evas_object_geometry_get(ibb->item_object, &x, &y, &w, &h); edje_object_size_min_get(ibb->overlay_object, &mw, &mh); evas_object_resize(ibb->overlay_object, w, mh); evas_object_move(ibb->overlay_object, x, y + (h * ibb->follow) - (mh / 2)); @@ -1393,169 +1115,42 @@ _ibar_bar_cb_animator(void *data) return 0; } -static void -_ibar_bar_cb_enter(void *data, const char *type, void *event) +static int +_ibox_box_cb_event_border_iconify(void *data, int type, void *event) { - E_Event_Dnd_Enter *ev; - Evas_Object *o; - IBar_Bar *ibb; + E_Event_Border_Iconify *ev; + IBox_Box *ibb; + IBox_Icon *ic; ev = event; ibb = data; - o = evas_object_rectangle_add(ibb->evas); - ibb->drag_object = o; - evas_object_color_set(o, 255, 0, 0, 255); - evas_object_resize(o, 32, 32); + if (!_ibox_icon_find(ibb, ev->border)) + ic = _ibox_icon_new(ibb, ev->border); + + return 1; } -static void -_ibar_bar_cb_move(void *data, const char *type, void *event) +static int +_ibox_box_cb_event_border_uniconify(void *data, int type, void *event) { - E_Event_Dnd_Move *ev; - IBar_Bar *ibb; - IBar_Icon *ic; - Evas_Coord x, y, w, h; - double iw; - int pos; + E_Event_Border_Uniconify *ev; + IBox_Box *ibb; + IBox_Icon *ic; ev = event; ibb = data; - x = ev->x - (ibb->x + ibb->inset.l); - y = ev->y - (ibb->y + ibb->inset.t); - w = ibb->w - (ibb->inset.l + ibb->inset.r); - h = ibb->h - (ibb->inset.t + ibb->inset.b); + ic = _ibox_icon_find(ibb, ev->border); + _ibox_icon_free(ic); - if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_BOTTOM) || - (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_TOP)) - { - iw = w / (double) evas_list_count(ibb->icons); - pos = round(x / iw); - } - else if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_LEFT) || - (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_RIGHT)) - { - iw = h / (double) evas_list_count(ibb->icons); - pos = round(y / iw); - } - else - return; - - ic = evas_list_nth(ibb->icons, pos); - - e_box_freeze(ibb->box_object); - evas_object_show(ibb->drag_object); - e_box_unpack(ibb->drag_object); - if (ic) - { - /* Add new eapp before this icon */ - e_box_pack_before(ibb->box_object, ibb->drag_object, ic->bg_object); - } - else - { - /* Add at the end */ - e_box_pack_end(ibb->box_object, ibb->drag_object); - } - edje_object_size_min_calc(ibb->drag_object, &w, &h); - e_box_pack_options_set(ibb->drag_object, - 1, 1, /* fill */ - 0, 0, /* expand */ - 0.5, 0.5, /* align */ - 32, 32, /* min */ - 32, 32 /* max */ - ); - e_box_thaw(ibb->box_object); - - _ibar_bar_frame_resize(ibb); + return 1; } static void -_ibar_bar_cb_leave(void *data, const char *type, void *event) +_ibox_box_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change change) { - E_Event_Dnd_Leave *ev; - IBar_Bar *ibb; - - ev = event; - ibb = data; - - e_box_freeze(ibb->box_object); - e_box_unpack(ibb->drag_object); - evas_object_del(ibb->drag_object); - e_box_thaw(ibb->box_object); - - _ibar_bar_frame_resize(ibb); -} - -static void -_ibar_bar_cb_drop(void *data, const char *type, void *event) -{ - E_Event_Dnd_Drop *ev; - E_App *app; - IBar_Bar *ibb; - IBar_Icon *ic; - Evas_Coord x, y, w, h; - double iw; - int pos; - - ev = event; - ibb = data; - app = ev->data; - - /* remove drag marker */ - e_box_freeze(ibb->box_object); - e_box_unpack(ibb->drag_object); - evas_object_del(ibb->drag_object); - e_box_thaw(ibb->box_object); - - _ibar_bar_frame_resize(ibb); - - /* add dropped element */ - x = ev->x - (ibb->x + ibb->inset.l); - y = ev->y - (ibb->y + ibb->inset.t); - w = ibb->w - (ibb->inset.l + ibb->inset.r); - h = ibb->h - (ibb->inset.t + ibb->inset.b); - - if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_BOTTOM) || - (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_TOP)) - { - iw = w / (double) evas_list_count(ibb->icons); - pos = round(x / iw); - } - else if ((e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_LEFT) || - (e_gadman_client_edge_get(ibb->gmc) == E_GADMAN_EDGE_RIGHT)) - { - iw = h / (double) evas_list_count(ibb->icons); - pos = round(y / iw); - } - else - return; - - ic = evas_list_nth(ibb->icons, pos); - if (ic) - { - /* Add new eapp before this icon */ - e_app_prepend_relative(app, ic->app); - } - else - { - /* Add at the end */ - e_app_append(app, ibb->ibar->apps); - } -} - -static void -_ibar_bar_cb_finished(E_Drag *drag, int dropped) -{ - /* Unref the object so it will be deleted. */ - if (!dropped) - e_object_unref(E_OBJECT(drag->data)); -} - -static void -_ibar_bar_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change change) -{ - IBar_Bar *ibb; + IBox_Box *ibb; ibb = data; switch (change) @@ -1563,84 +1158,78 @@ _ibar_bar_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change change case E_GADMAN_CHANGE_MOVE_RESIZE: e_gadman_client_geometry_get(ibb->gmc, &ibb->x, &ibb->y, &ibb->w, &ibb->h); - edje_extern_object_min_size_set(ibb->box_object, 0, 0); - edje_object_part_swallow(ibb->bar_object, "items", ibb->box_object); + edje_extern_object_min_size_set(ibb->item_object, 0, 0); + edje_object_part_swallow(ibb->box_object, "items", ibb->item_object); - evas_object_move(ibb->bar_object, ibb->x, ibb->y); + evas_object_move(ibb->box_object, ibb->x, ibb->y); evas_object_move(ibb->overlay_object, ibb->x, ibb->y); - evas_object_resize(ibb->bar_object, ibb->w, ibb->h); + evas_object_resize(ibb->box_object, ibb->w, ibb->h); evas_object_resize(ibb->overlay_object, ibb->w, ibb->h); - _ibar_bar_follower_reset(ibb); - _ibar_bar_timer_handle(ibb); + _ibox_box_follower_reset(ibb); + _ibox_box_timer_handle(ibb); - e_drop_handler_geometry_set(ibb->drop_handler, - ibb->x + ibb->inset.l, ibb->y + ibb->inset.t, - ibb->w - (ibb->inset.l + ibb->inset.r), - ibb->h - (ibb->inset.t + ibb->inset.b)); break; case E_GADMAN_CHANGE_EDGE: - _ibar_bar_edge_change(ibb, e_gadman_client_edge_get(ibb->gmc)); + _ibox_box_edge_change(ibb, e_gadman_client_edge_get(ibb->gmc)); break; case E_GADMAN_CHANGE_RAISE: case E_GADMAN_CHANGE_ZONE: - /* FIXME - * Must we do something here? - */ + /* Ignore */ break; } } static void -_ibar_bar_cb_width_auto(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_width_auto(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; - IBar_Bar *ibb; + IBox *ib; + IBox_Box *ibb; unsigned char enabled; Evas_List *l; ib = data; enabled = e_menu_item_toggle_get(mi); - if ((enabled) && (ib->conf->width == IBAR_WIDTH_FIXED)) + if ((enabled) && (ib->conf->width == IBOX_WIDTH_FIXED)) { - ib->conf->width = IBAR_WIDTH_AUTO; - for (l = ib->bars; l; l = l->next) + ib->conf->width = IBOX_WIDTH_AUTO; + for (l = ib->boxes; l; l = l->next) { ibb = l->data; - _ibar_bar_update_policy(ibb); - _ibar_bar_frame_resize(ibb); + _ibox_box_update_policy(ibb); + _ibox_box_frame_resize(ibb); } } - else if (!(enabled) && (ib->conf->width == IBAR_WIDTH_AUTO)) + else if (!(enabled) && (ib->conf->width == IBOX_WIDTH_AUTO)) { - ib->conf->width = IBAR_WIDTH_FIXED; - for (l = ib->bars; l; l = l->next) + ib->conf->width = IBOX_WIDTH_FIXED; + for (l = ib->boxes; l; l = l->next) { ibb = l->data; - _ibar_bar_update_policy(ibb); - _ibar_bar_frame_resize(ibb); + _ibox_box_update_policy(ibb); + _ibox_box_frame_resize(ibb); } } e_config_save_queue(); } static void -_ibar_bar_iconsize_change(IBar_Bar *ibb) +_ibox_box_iconsize_change(IBox_Box *ibb) { Evas_List *l; - e_box_freeze(ibb->box_object); + e_box_freeze(ibb->item_object); for (l = ibb->icons; l; l = l->next) { - IBar_Icon *ic; + IBox_Icon *ic; Evas_Object *o; Evas_Coord bw, bh; ic = l->data; o = ic->icon_object; - edje_extern_object_min_size_set(o, ibb->ibar->conf->iconsize, ibb->ibar->conf->iconsize); + edje_extern_object_min_size_set(o, ibb->ibox->conf->iconsize, ibb->ibox->conf->iconsize); - evas_object_resize(o, ibb->ibar->conf->iconsize, ibb->ibar->conf->iconsize); + evas_object_resize(o, ibb->ibox->conf->iconsize, ibb->ibox->conf->iconsize); edje_object_part_swallow(ic->bg_object, "item", o); edje_object_size_min_calc(ic->bg_object, &bw, &bh); @@ -1653,230 +1242,230 @@ _ibar_bar_iconsize_change(IBar_Bar *ibb) bw, bh /* max */ ); } - e_box_thaw(ibb->box_object); - _ibar_bar_frame_resize(ibb); + e_box_thaw(ibb->item_object); + _ibox_box_frame_resize(ibb); } static void -_ibar_bar_cb_iconsize_microscopic(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_microscopic(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 8; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_iconsize_tiny(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_tiny(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 12; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_iconsize_very_small(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_very_small(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 16; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_iconsize_small(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_small(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 24; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_iconsize_medium(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_medium(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 32; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_iconsize_large(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_large(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 40; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_iconsize_very_large(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_very_large(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 48; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_iconsize_extremely_large(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_extremely_large(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 56; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_iconsize_huge(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_huge(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 64; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_iconsize_enormous(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_enormous(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 96; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_iconsize_gigantic(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_iconsize_gigantic(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar *ib; + IBox *ib; Evas_List *l; ib = data; ib->conf->iconsize = 128; - for (l = ib->bars; l; l = l->next) + for (l = ib->boxes; l; l = l->next) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = l->data; - _ibar_bar_iconsize_change(ibb); + _ibox_box_iconsize_change(ibb); } e_config_save_queue(); } static void -_ibar_bar_cb_menu_enabled(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_menu_enabled(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar_Bar *ibb; + IBox_Box *ibb; unsigned char enabled; ibb = data; enabled = e_menu_item_toggle_get(mi); if ((ibb->conf->enabled) && (!enabled)) { - _ibar_bar_disable(ibb); + _ibox_box_disable(ibb); } else if ((!ibb->conf->enabled) && (enabled)) { - _ibar_bar_enable(ibb); + _ibox_box_enable(ibb); } } static void -_ibar_bar_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi) +_ibox_box_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi) { - IBar_Bar *ibb; + IBox_Box *ibb; ibb = data; e_gadman_mode_set(ibb->gmc->gadman, E_GADMAN_MODE_EDIT); diff --git a/src/modules/ibar/e_mod_main.h b/src/modules/ibar/e_mod_main.h index 636e0e919..163f14edb 100644 --- a/src/modules/ibar/e_mod_main.h +++ b/src/modules/ibar/e_mod_main.h @@ -5,33 +5,31 @@ #define E_MOD_MAIN_H typedef struct _Config Config; -typedef struct _Config_Bar Config_Bar; -typedef struct _IBar IBar; -typedef struct _IBar_Bar IBar_Bar; -typedef struct _IBar_Icon IBar_Icon; +typedef struct _Config_Box Config_Box; +typedef struct _IBox IBox; +typedef struct _IBox_Box IBox_Box; +typedef struct _IBox_Icon IBox_Icon; -#define IBAR_WIDTH_AUTO -1 -#define IBAR_WIDTH_FIXED -2 +#define IBOX_WIDTH_AUTO -1 +#define IBOX_WIDTH_FIXED -2 struct _Config { - char *appdir; double follow_speed; double autoscroll_speed; int iconsize; int width; - Evas_List *bars; + Evas_List *boxes; }; -struct _Config_Bar +struct _Config_Box { unsigned char enabled; }; -struct _IBar +struct _IBox { - E_App *apps; - Evas_List *bars; + Evas_List *boxes; E_Menu *config_menu; E_Menu *config_menu_options; E_Menu *config_menu_size; @@ -39,20 +37,22 @@ struct _IBar Config *conf; }; -struct _IBar_Bar +struct _IBox_Box { - IBar *ibar; + IBox *ibox; E_Container *con; Evas *evas; E_Menu *menu; - Evas_Object *bar_object; - Evas_Object *overlay_object; Evas_Object *box_object; + Evas_Object *overlay_object; + Evas_Object *item_object; Evas_Object *event_object; - Evas_Object *drag_object; Evas_List *icons; + + Ecore_Event_Handler *ev_handler_border_iconify; + Ecore_Event_Handler *ev_handler_border_uniconify; double align, align_req; double follow, follow_req; @@ -63,24 +63,21 @@ struct _IBar_Bar struct { Evas_Coord l, r, t, b; } inset; - + E_Gadman_Client *gmc; - Config_Bar *conf; - - E_Drop_Handler *drop_handler; + Config_Box *conf; }; -struct _IBar_Icon +struct _IBox_Icon { - IBar_Bar *ibb; - E_App *app; + IBox_Box *ibb; + E_Border *border; Evas_Object *bg_object; Evas_Object *overlay_object; Evas_Object *icon_object; Evas_Object *event_object; - Evas_List *extra_icons; - + unsigned char raise_on_hilight : 1; };