Enlightenment CVS committal

Author  : devilhorns
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_toolbar.h e_toolbar.c 


Log Message:
Add callback signals for efm modules. Almost ready for primetime :)

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_toolbar.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_toolbar.h 9 Nov 2007 23:12:13 -0000       1.3
+++ e_toolbar.h 11 Nov 2007 15:46:06 -0000      1.4
@@ -26,18 +26,20 @@
    Evas_Object *o_base, *o_event;
 };
 
-EAPI int        e_toolbar_init          (void);
-EAPI int        e_toolbar_shutdown      (void);
-EAPI E_Toolbar *e_toolbar_new           (Evas *evas, const char *name, E_Win 
*fwin, Evas_Object *fm2);
-EAPI void       e_toolbar_fwin_set      (E_Toolbar *tbar, E_Win *fwin);
-EAPI void       e_toolbar_fm2_set       (E_Toolbar *tbar, Evas_Object *fm2);
-EAPI void       e_toolbar_show          (E_Toolbar *tbar);
-EAPI void       e_toolbar_move          (E_Toolbar *tbar, int x, int y);
-EAPI void       e_toolbar_resize        (E_Toolbar *tbar, int w, int h);
-EAPI void       e_toolbar_move_resize   (E_Toolbar *tbar, int x, int y, int w, 
int h);
-EAPI void       e_toolbar_orient        (E_Toolbar *tbar, E_Gadcon_Orient 
orient);
-EAPI void       e_toolbar_position_calc (E_Toolbar *tbar);
-EAPI void       e_toolbar_populate      (E_Toolbar *tbar);
+EAPI int          e_toolbar_init          (void);
+EAPI int          e_toolbar_shutdown      (void);
+EAPI E_Toolbar   *e_toolbar_new           (Evas *evas, const char *name, E_Win 
*fwin, Evas_Object *fm2);
+EAPI void         e_toolbar_fwin_set      (E_Toolbar *tbar, E_Win *fwin);
+EAPI E_Win       *e_toolbar_fwin_get      (E_Toolbar *tbar);
+EAPI void         e_toolbar_fm2_set       (E_Toolbar *tbar, Evas_Object *fm2);
+EAPI Evas_Object *e_toolbar_fm2_get       (E_Toolbar *tbar);
+EAPI void         e_toolbar_show          (E_Toolbar *tbar);
+EAPI void         e_toolbar_move          (E_Toolbar *tbar, int x, int y);
+EAPI void         e_toolbar_resize        (E_Toolbar *tbar, int w, int h);
+EAPI void         e_toolbar_move_resize   (E_Toolbar *tbar, int x, int y, int 
w, int h);
+EAPI void         e_toolbar_orient        (E_Toolbar *tbar, E_Gadcon_Orient 
orient);
+EAPI void         e_toolbar_position_calc (E_Toolbar *tbar);
+EAPI void         e_toolbar_populate      (E_Toolbar *tbar);
 
 #endif
 #endif
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_toolbar.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_toolbar.c 9 Nov 2007 23:53:38 -0000       1.6
+++ e_toolbar.c 11 Nov 2007 15:46:06 -0000      1.7
@@ -12,6 +12,12 @@
 static void _e_toolbar_menu_cb_contents(void *data, E_Menu *mn, E_Menu_Item 
*mi);
 static void _e_toolbar_gadcon_size_request(void *data, E_Gadcon *gc, 
Evas_Coord w, Evas_Coord h);
 static const char *_e_toolbar_orient_string_get(E_Toolbar *tbar);
+static void _e_toolbar_fm2_changed(void *data, Evas_Object *obj, void 
*event_info);
+static void _e_toolbar_fm2_dir_changed(void *data, Evas_Object *obj, void 
*event_info);
+static void _e_toolbar_fm2_dir_deleted(void *data, Evas_Object *obj, void 
*event_info);
+static void _e_toolbar_fm2_files_deleted(void *data, Evas_Object *obj, void 
*event_info);
+static void _e_toolbar_fm2_selected(void *data, Evas_Object *obj, void 
*event_info);
+static void _e_toolbar_fm2_selection_changed(void *data, Evas_Object *obj, 
void *event_info);
 
 /* local vars */
 static Evas_List *toolbars = NULL;
@@ -55,6 +61,19 @@
    tbar->fwin = fwin;
    tbar->fm2 = fm2;
 
+   evas_object_smart_callback_add(tbar->fm2, "changed", 
+                                 _e_toolbar_fm2_changed, tbar);
+   evas_object_smart_callback_add(tbar->fm2, "dir_changed", 
+                                 _e_toolbar_fm2_dir_changed, tbar);
+   evas_object_smart_callback_add(tbar->fm2, "dir_deleted", 
+                                 _e_toolbar_fm2_dir_deleted, tbar);
+   evas_object_smart_callback_add(tbar->fm2, "files_deleted", 
+                                 _e_toolbar_fm2_files_deleted, tbar);
+   evas_object_smart_callback_add(tbar->fm2, "selected", 
+                                 _e_toolbar_fm2_selected, tbar);
+   evas_object_smart_callback_add(tbar->fm2, "selection_change", 
+                                 _e_toolbar_fm2_selection_changed, tbar);
+
    tbar->o_event = evas_object_rectangle_add(evas);
    evas_object_color_set(tbar->o_event, 0, 0, 0, 0);
    evas_object_resize(tbar->o_event, tbar->w, tbar->h);
@@ -94,6 +113,14 @@
    tbar->fwin = fwin;
 }
 
+EAPI E_Win *
+e_toolbar_fwin_get(E_Toolbar *tbar) 
+{
+   E_OBJECT_CHECK_RETURN(tbar, NULL);
+   E_OBJECT_TYPE_CHECK_RETURN(tbar, E_TOOLBAR_TYPE, NULL);
+   return tbar->fwin;
+}
+
 EAPI void 
 e_toolbar_fm2_set(E_Toolbar *tbar, Evas_Object *fm2) 
 {
@@ -102,6 +129,14 @@
    tbar->fm2 = fm2;
 }
 
+EAPI Evas_Object *
+e_toolbar_fm2_get(E_Toolbar *tbar) 
+{
+   E_OBJECT_CHECK_RETURN(tbar, NULL);
+   E_OBJECT_TYPE_CHECK_RETURN(tbar, E_TOOLBAR_TYPE, NULL);
+   return tbar->fm2;
+}
+
 EAPI void 
 e_toolbar_show(E_Toolbar *tbar) 
 {
@@ -152,7 +187,7 @@
 e_toolbar_orient(E_Toolbar *tbar, E_Gadcon_Orient orient) 
 {
    char buf[4096];
-   
+
    E_OBJECT_CHECK(tbar);
    E_OBJECT_TYPE_CHECK(tbar, E_TOOLBAR_TYPE);
    e_gadcon_orient(tbar->gadcon, orient);
@@ -465,4 +500,112 @@
        break;
      }
    return sig;
+}
+
+static void 
+_e_toolbar_fm2_changed(void *data, Evas_Object *obj, void *event_info) 
+{
+   E_Toolbar *tbar;
+   Evas_List *l = NULL;
+
+   tbar = data;
+   if (!tbar) return;
+   for (l = tbar->gadcon->clients; l; l = l->next) 
+     {
+       E_Gadcon_Client *gcc = NULL;
+
+       gcc = l->data;
+       if (!gcc) continue;
+       evas_object_smart_callback_call(gcc->o_base, "changed", tbar);
+     }
+}
+
+static void 
+_e_toolbar_fm2_dir_changed(void *data, Evas_Object *obj, void *event_info) 
+{
+   E_Toolbar *tbar;
+   Evas_List *l = NULL;
+
+   tbar = data;
+   if (!tbar) return;
+   for (l = tbar->gadcon->clients; l; l = l->next) 
+     {
+       E_Gadcon_Client *gcc = NULL;
+
+       gcc = l->data;
+       if (!gcc) continue;
+       evas_object_smart_callback_call(gcc->o_base, "dir_changed", tbar);
+     }
+}
+
+static void 
+_e_toolbar_fm2_dir_deleted(void *data, Evas_Object *obj, void *event_info) 
+{
+   E_Toolbar *tbar;
+   Evas_List *l = NULL;
+
+   tbar = data;
+   if (!tbar) return;
+   for (l = tbar->gadcon->clients; l; l = l->next) 
+     {
+       E_Gadcon_Client *gcc = NULL;
+
+       gcc = l->data;
+       if (!gcc) continue;
+       evas_object_smart_callback_call(gcc->o_base, "dir_deleted", tbar);
+     }
+}
+
+static void 
+_e_toolbar_fm2_files_deleted(void *data, Evas_Object *obj, void *event_info) 
+{
+   E_Toolbar *tbar;
+   Evas_List *l = NULL;
+
+   tbar = data;
+   if (!tbar) return;
+   for (l = tbar->gadcon->clients; l; l = l->next) 
+     {
+       E_Gadcon_Client *gcc = NULL;
+
+       gcc = l->data;
+       if (!gcc) continue;
+       evas_object_smart_callback_call(gcc->o_base, "files_deleted", tbar);
+     }
+}
+
+static void 
+_e_toolbar_fm2_selected(void *data, Evas_Object *obj, void *event_info) 
+{
+   E_Toolbar *tbar;
+   Evas_List *l = NULL;
+
+   tbar = data;
+   if (!tbar) return;
+   for (l = tbar->gadcon->clients; l; l = l->next) 
+     {
+       E_Gadcon_Client *gcc = NULL;
+
+       gcc = l->data;
+       if (!gcc) continue;
+       evas_object_smart_callback_call(gcc->o_base, "selected", tbar);
+     }
+}
+
+static void 
+_e_toolbar_fm2_selection_changed(void *data, Evas_Object *obj, void 
*event_info) 
+{
+   E_Toolbar *tbar;
+   Evas_List *l = NULL;
+
+   tbar = data;
+   if (!tbar) return;
+   for (l = tbar->gadcon->clients; l; l = l->next) 
+     {
+       E_Gadcon_Client *gcc = NULL;
+
+       gcc = l->data;
+       if (!gcc) continue;
+       evas_object_smart_callback_call(gcc->o_base, "selection_changed", tbar);
+     }
 }



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to