#include "e_mod_main.h"
/***************************************************************************/
- /**/
+/**/
/* gadcon requirements */
static E_Gadcon_Client *_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style);
-static void _gc_shutdown(E_Gadcon_Client *gcc);
-static void _gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient);
-static const char *_gc_label(E_Gadcon_Client_Class *client_class);
-static Evas_Object *_gc_icon(E_Gadcon_Client_Class *client_class, Evas *evas);
-static const char *_gc_id_new(E_Gadcon_Client_Class *client_class);
+static void _gc_shutdown(E_Gadcon_Client *gcc);
+static void _gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient);
+static const char *_gc_label(E_Gadcon_Client_Class *client_class);
+static Evas_Object *_gc_icon(E_Gadcon_Client_Class *client_class, Evas *evas);
+static const char *_gc_id_new(E_Gadcon_Client_Class *client_class);
/* and actually define the gadcon class that this module provides (just 1) */
static E_Gadcon_Client_Class _gadcon_class = {
/**/
/* actual module specifics */
-typedef struct _Tasks Tasks;
+typedef struct _Tasks Tasks;
typedef struct _Tasks_Item Tasks_Item;
struct _Tasks
{
- E_Gadcon_Client *gcc; // The gadcon client
- Evas_Object *o_items; // Table of items
- Eina_List *items; // List of items
- E_Zone *zone; // Current Zone
- Config_Item *config; // Configuration
- int horizontal;
+ E_Gadcon_Client *gcc; // The gadcon client
+ Evas_Object *o_items; // Table of items
+ Eina_List *items; // List of items
+ E_Zone *zone; // Current Zone
+ Config_Item *config; // Configuration
+ int horizontal;
};
struct _Tasks_Item
{
- Tasks *tasks; // Parent tasks
- E_Border *border; // The border this item points to
- Evas_Object *o_item; // The edje theme object
- Evas_Object *o_icon; // The icon
+ Tasks *tasks; // Parent tasks
+ E_Border *border; // The border this item points to
+ Evas_Object *o_item; // The edje theme object
+ Evas_Object *o_icon; // The icon
};
-static Tasks *_tasks_new(Evas *evas, E_Zone *zone, const char *id);
-static void _tasks_free(Tasks *tasks);
-static void _tasks_refill(Tasks *tasks);
-static void _tasks_refill_all();
-static void _tasks_refill_border(E_Border *border);
-static void _tasks_signal_emit(E_Border *border, char *sig, char *src);
+static Tasks *_tasks_new(Evas *evas, E_Zone *zone, const char *id);
+static void _tasks_free(Tasks *tasks);
+static void _tasks_refill(Tasks *tasks);
+static void _tasks_refill_all();
+static void _tasks_refill_border(E_Border *border);
+static void _tasks_signal_emit(E_Border *border, char *sig, char *src);
-static Tasks_Item *_tasks_item_find(Tasks *tasks, E_Border *border);
-static Tasks_Item *_tasks_item_new(Tasks *tasks, E_Border *border);
+static Tasks_Item *_tasks_item_find(Tasks *tasks, E_Border *border);
+static Tasks_Item *_tasks_item_new(Tasks *tasks, E_Border *border);
-static int _tasks_item_check_add(Tasks *tasks, E_Border *border);
-static void _tasks_item_add(Tasks *tasks, E_Border *border);
-static void _tasks_item_remove(Tasks_Item *item);
-static void _tasks_item_refill(Tasks_Item *item);
-static void _tasks_item_fill(Tasks_Item *item);
-static void _tasks_item_free(Tasks_Item *item);
-static void _tasks_item_signal_emit(Tasks_Item *item, char *sig, char *src);
+static int _tasks_item_check_add(Tasks *tasks, E_Border *border);
+static void _tasks_item_add(Tasks *tasks, E_Border *border);
+static void _tasks_item_remove(Tasks_Item *item);
+static void _tasks_item_refill(Tasks_Item *item);
+static void _tasks_item_fill(Tasks_Item *item);
+static void _tasks_item_free(Tasks_Item *item);
+static void _tasks_item_signal_emit(Tasks_Item *item, char *sig, char *src);
static Config_Item *_tasks_config_item_get(const char *id);
-static void _tasks_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi);
-static void _tasks_cb_item_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void _tasks_cb_item_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info);
-
-static Eina_Bool _tasks_cb_event_border_add(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_event_border_remove(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_event_border_iconify(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_event_border_uniconify(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_event_border_icon_change(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_event_border_zone_set(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_event_border_desk_set(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_window_focus_in(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_window_focus_out(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_event_border_property(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_event_desk_show(void *data, int type, void *event);
-static Eina_Bool _tasks_cb_event_border_urgent_change(void *data, int type, void *event);
+static void _tasks_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _tasks_cb_item_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _tasks_cb_item_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info);
+
+static Eina_Bool _tasks_cb_event_border_add(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_event_border_remove(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_event_border_iconify(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_event_border_uniconify(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_event_border_icon_change(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_event_border_zone_set(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_event_border_desk_set(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_window_focus_in(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_window_focus_out(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_event_border_property(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_event_desk_show(void *data, int type, void *event);
+static Eina_Bool _tasks_cb_event_border_urgent_change(void *data, int type, void *event);
static E_Config_DD *conf_edd = NULL;
static E_Config_DD *conf_item_edd = NULL;
if (!tasks_config)
{
Config_Item *config;
-
+
tasks_config = E_NEW(Config, 1);
-
+
config = E_NEW(Config_Item, 1);
config->id = eina_stringshare_add("0");
config->show_all = 0;
tasks_config->module = m;
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_ADD, _tasks_cb_event_border_add, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_REMOVE, _tasks_cb_event_border_remove, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_ICONIFY, _tasks_cb_event_border_iconify, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_UNICONIFY, _tasks_cb_event_border_uniconify, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_ICON_CHANGE, _tasks_cb_event_border_icon_change, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_DESK_SET, _tasks_cb_event_border_desk_set, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_ZONE_SET, _tasks_cb_event_border_zone_set, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_FOCUS_IN, _tasks_cb_window_focus_in, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_FOCUS_OUT, _tasks_cb_window_focus_out, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_PROPERTY, _tasks_cb_event_border_property, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_DESK_SHOW, _tasks_cb_event_desk_show, NULL));
tasks_config->handlers = eina_list_append
- (tasks_config->handlers, ecore_event_handler_add
+ (tasks_config->handlers, ecore_event_handler_add
(E_EVENT_BORDER_URGENT_CHANGE, _tasks_cb_event_border_urgent_change, NULL));
-
+
tasks_config->borders = eina_list_clone(e_border_client_list());
-
+
e_gadcon_provider_register(&_gadcon_class);
return m;
}
/* int cx, cy, cw, ch; */
tasks = _tasks_new(gc->evas, gc->zone, id);
-
+
o = tasks->o_items;
gcc = e_gadcon_client_new(gc, name, id, E_GADCON_CLIENT_STYLE_INSET, o);
gcc->data = tasks;
tasks->gcc = gcc;
-
+
/* e_gadcon_canvas_zone_geometry_get(gcc->gadcon, &cx, &cy, &cw, &ch); */
/* evas_object_geometry_get(o, &x, &y, &w, &h); */
-
+
tasks_config->tasks = eina_list_append(tasks_config->tasks, tasks);
e_gadcon_client_autoscroll_toggle_disabled_set(gcc, 1);
_gc_shutdown(E_Gadcon_Client *gcc)
{
Tasks *tasks;
-
+
tasks = (Tasks *)gcc->data;
tasks_config->tasks = eina_list_remove(tasks_config->tasks, tasks);
_tasks_free(tasks);
case E_GADCON_ORIENT_CORNER_TR:
case E_GADCON_ORIENT_CORNER_BL:
case E_GADCON_ORIENT_CORNER_BR:
- if (!tasks->horizontal)
- {
+ if (!tasks->horizontal)
+ {
tasks->horizontal = 1;
e_box_orientation_set(tasks->o_items, tasks->horizontal);
_tasks_refill(tasks);
- }
- break;
+ }
+ break;
+
case E_GADCON_ORIENT_VERT:
case E_GADCON_ORIENT_LEFT:
case E_GADCON_ORIENT_RIGHT:
case E_GADCON_ORIENT_CORNER_RT:
case E_GADCON_ORIENT_CORNER_LB:
case E_GADCON_ORIENT_CORNER_RB:
- if (tasks->horizontal)
- {
+ if (tasks->horizontal)
+ {
tasks->horizontal = 0;
e_box_orientation_set(tasks->o_items, tasks->horizontal);
_tasks_refill(tasks);
- }
- break;
+ }
+ break;
+
default:
- break;
+ break;
}
e_box_align_set(tasks->o_items, 0.5, 0.5);
}
_tasks_free(Tasks *tasks)
{
Tasks_Item *item;
- EINA_LIST_FREE(tasks->items, item) _tasks_item_free(item);
+ EINA_LIST_FREE(tasks->items, item)
+ _tasks_item_free(item);
evas_object_del(tasks->o_items);
free(tasks);
}
-static void
+static void
_tasks_refill(Tasks *tasks)
{
Eina_List *l;
if (tasks->items)
{
item = tasks->items->data;
- edje_object_size_min_calc(item->o_item, &w, &h);
+ edje_object_size_min_calc(item->o_item, &w, &h);
if (tasks->horizontal)
{
if (w < tasks->config->minw) w = tasks->config->minw;
{
if (h < tasks->config->minh) h = tasks->config->minh;
}
- if (!tasks->gcc->resizable)
- {
- if (tasks->horizontal)
- e_gadcon_client_min_size_set(tasks->gcc,
+ if (!tasks->gcc->resizable)
+ {
+ if (tasks->horizontal)
+ e_gadcon_client_min_size_set(tasks->gcc,
w * eina_list_count(tasks->items),
h);
- else
- e_gadcon_client_min_size_set(tasks->gcc,
+ else
+ e_gadcon_client_min_size_set(tasks->gcc,
w,
h * eina_list_count(tasks->items));
}
}
}
-
static void
_tasks_refill_border(E_Border *border)
{
const Eina_List *l;
Tasks *tasks;
-
+
EINA_LIST_FOREACH(tasks_config->tasks, l, tasks)
{
- const Eina_List *m;
- Tasks_Item *item;
- EINA_LIST_FOREACH(tasks->items, m, item)
+ const Eina_List *m;
+ Tasks_Item *item;
+ EINA_LIST_FOREACH(tasks->items, m, item)
{
if (item->border == border) _tasks_item_refill(item);
}
}
}
-static void
+static void
_tasks_signal_emit(E_Border *border, char *sig, char *src)
{
const Eina_List *l;
Tasks *tasks;
-
+
EINA_LIST_FOREACH(tasks_config->tasks, l, tasks)
{
- const Eina_List *m;
- Tasks_Item *item;
-
- EINA_LIST_FOREACH(tasks->items, m, item)
+ const Eina_List *m;
+ Tasks_Item *item;
+
+ EINA_LIST_FOREACH(tasks->items, m, item)
{
if (item->border == border)
_tasks_item_signal_emit(item, sig, src);
item->border = border;
item->o_item = edje_object_add(evas_object_evas_get(tasks->o_items));
if (tasks->horizontal)
- e_theme_edje_object_set(item->o_item,
- "base/theme/modules/tasks",
+ e_theme_edje_object_set(item->o_item,
+ "base/theme/modules/tasks",
"modules/tasks/item");
else
{
- if (!e_theme_edje_object_set(item->o_item,
- "base/theme/modules/tasks",
+ if (!e_theme_edje_object_set(item->o_item,
+ "base/theme/modules/tasks",
"modules/tasks/item_vert"))
- e_theme_edje_object_set(item->o_item,
- "base/theme/modules/tasks",
+ e_theme_edje_object_set(item->o_item,
+ "base/theme/modules/tasks",
"modules/tasks/item");
}
evas_object_event_callback_add(item->o_item, EVAS_CALLBACK_MOUSE_DOWN,
evas_object_event_callback_add(item->o_item, EVAS_CALLBACK_MOUSE_UP,
_tasks_cb_item_mouse_up, item);
evas_object_show(item->o_item);
-
+
_tasks_item_fill(item);
return item;
}
if (!(tasks->config->show_all))
{
if (border->zone != tasks->zone) return 1;
- if ((border->desk != e_desk_current_get(border->zone)) &&
+ if ((border->desk != e_desk_current_get(border->zone)) &&
(!border->sticky))
return 1;
}
0.5, 0.5, /* align */
1, 1, /* min */
9999, 9999 /* max */
- );
+ );
tasks->items = eina_list_append(tasks->items, item);
}
_tasks_item_fill(Tasks_Item *item)
{
const char *label;
-
+
item->o_icon = e_border_icon_add(item->border, evas_object_evas_get(item->tasks->o_items));
edje_object_part_swallow(item->o_item, "e.swallow.icon", item->o_icon);
evas_object_pass_events_set(item->o_icon, 1);
evas_object_show(item->o_icon);
-
+
label = e_border_name_get(item->border);
edje_object_part_text_set(item->o_item, "e.text.label", label);
-
+
if (item->border->iconic)
_tasks_item_signal_emit(item, "e,state,iconified", "e");
else
Eina_List *l;
Config_Item *config;
char buf[128];
-
+
if (!id)
{
int num = 0;
-
+
/* Create id */
if (tasks_config->items)
{
const char *p;
-
+
config = eina_list_last(tasks_config->items)->data;
p = strrchr(config->id, '.');
if (p) num = atoi(p + 1) + 1;
}
else
{
- EINA_LIST_FOREACH(tasks_config->items, l, config)
+ EINA_LIST_FOREACH(tasks_config->items, l, config)
{
if (!config->id) continue;
if (!strcmp(config->id, id)) return config;
{
const Eina_List *l;
Tasks *tasks;
-
+
if (!tasks_config) return;
EINA_LIST_FOREACH(tasks_config->tasks, l, tasks)
{
{
Tasks *tasks;
- tasks = (Tasks *) data;
+ tasks = (Tasks *)data;
_config_tasks_module(tasks->config);
}
{
Evas_Event_Mouse_Down *ev;
Tasks_Item *item;
-
- item = (Tasks_Item *) data;
+
+ item = (Tasks_Item *)data;
ev = event_info;
- if (ev->button == 3)
+ if (ev->button == 3)
{
E_Menu *m;
- E_Menu_Item *mi;
+ E_Menu_Item *mi;
int cx, cy, cw, ch;
-
+
e_gadcon_canvas_zone_geometry_get(item->tasks->gcc->gadcon, &cx, &cy, &cw, &ch);
-
- e_int_border_menu_create(item->border);
-
- mi = e_menu_item_new(item->border->border_menu);
- e_menu_item_separator_set(mi, 1);
-
- m = e_menu_new();
+
+ e_int_border_menu_create(item->border);
+
+ mi = e_menu_item_new(item->border->border_menu);
+ e_menu_item_separator_set(mi, 1);
+
+ m = e_menu_new();
mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Settings"));
- e_util_menu_item_theme_icon_set(mi, "preferences-system");
- e_menu_item_callback_set(mi, _tasks_cb_menu_configure, item->tasks);
-
- m = e_gadcon_client_util_menu_items_append(item->tasks->gcc, m, 0);
-
+ e_menu_item_label_set(mi, _("Settings"));
+ e_util_menu_item_theme_icon_set(mi, "preferences-system");
+ e_menu_item_callback_set(mi, _tasks_cb_menu_configure, item->tasks);
+
+ m = e_gadcon_client_util_menu_items_append(item->tasks->gcc, m, 0);
+
mi = e_menu_item_new(item->border->border_menu);
e_menu_item_label_set(mi, _("Tasks"));
e_menu_item_submenu_set(mi, m);
- e_util_menu_item_theme_icon_set(mi, "preferences-system");
-
- e_menu_activate_mouse(item->border->border_menu,
+ e_util_menu_item_theme_icon_set(mi, "preferences-system");
+
+ e_menu_activate_mouse(item->border->border_menu,
e_util_zone_current_get(e_manager_current_get()),
cx + ev->output.x, cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
evas_event_feed_mouse_up(item->tasks->gcc->gadcon->evas, ev->button,
EVAS_BUTTON_NONE, ev->timestamp, NULL);
}
-
}
static void
{
Evas_Event_Mouse_Up *ev;
Tasks_Item *item;
-
+
ev = event_info;
item = data;
if (ev->button == 1)
{
E_Event_Border_Icon_Change *ev;
E_Border *border;
-
+
ev = event;
border = ev->border;
if (border) _tasks_refill_border(border);
}
/***************************************************************************/
- /**/
+/**/
- /**/
+/**/
/***************************************************************************/