Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_gadman.c e_gadman.h e_int_menus.c e_int_menus.h e_main.c 
        e_manager.c e_zone.c 


Log Message:


some more gadman stuff - innocuous for now. hooked in soem gadman
enable/disable edit mode and fixed a stakcign issue with new windows vs. menus.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadman.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_gadman.c  15 Jan 2005 15:21:57 -0000      1.2
+++ e_gadman.c  17 Jan 2005 08:54:37 -0000      1.3
@@ -6,6 +6,25 @@
 /* local subsystem functions */
 static void _e_gadman_free(E_Gadman *gm);
 static void _e_gadman_client_free(E_Gadman_Client *gmc);
+static void _e_gadman_client_edit_begin(E_Gadman_Client *gmc);
+static void _e_gadman_client_edit_end(E_Gadman_Client *gmc);
+
+
+static void _e_gadman_cb_signal_move_start(void *data, Evas_Object *obj, const 
char *emission, const char *source);
+static void _e_gadman_cb_signal_move_stop(void *data, Evas_Object *obj, const 
char *emission, const char *source);
+static void _e_gadman_cb_signal_move_go(void *data, Evas_Object *obj, const 
char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_left_start(void *data, Evas_Object 
*obj, const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_left_stop(void *data, Evas_Object *obj, 
const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_left_go(void *data, Evas_Object *obj, 
const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_right_start(void *data, Evas_Object 
*obj, const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_right_stop(void *data, Evas_Object 
*obj, const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_right_go(void *data, Evas_Object *obj, 
const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_up_start(void *data, Evas_Object *obj, 
const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_up_stop(void *data, Evas_Object *obj, 
const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_up_go(void *data, Evas_Object *obj, 
const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_down_start(void *data, Evas_Object 
*obj, const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_down_stop(void *data, Evas_Object *obj, 
const char *emission, const char *source);
+static void _e_gadman_cb_signal_resize_down_go(void *data, Evas_Object *obj, 
const char *emission, const char *source);
 
 /* externally accessible functions */
 int
@@ -41,6 +60,7 @@
    if (!gmc) return NULL;
    gmc->gadman = gm;
    gmc->policy = E_GADMAN_POLICY_ANYWHERE;
+   gmc->zone = e_zone_current_get(gm->container);
    gmc->minw = 1;
    gmc->minh = 1;
    gmc->maxw = 0;
@@ -54,24 +74,61 @@
 }
 
 void
-e_gadman_client_domain_set(E_Gadman_Client *gmc, char *domain, int instance)
+e_gadman_mode_set(E_Gadman *gm, E_Gadman_Mode mode)
 {
-   E_OBJECT_CHECK(gmc);
-   if (gmc->domain) free(gmc->domain);
-   gmc->domain = strdup(domain);
-   gmc->instance = instance;
+   Evas_List *l;
+   
+   E_OBJECT_CHECK(gm);
+   if (gm->mode == mode) return;
+   gm->mode = mode;
+   if (gm->mode == E_GADMAN_MODE_EDIT)
+     {
+       for (l = gm->clients; l; l = l->next)
+         _e_gadman_client_edit_begin(l->data);
+     }
+   else if (gm->mode == E_GADMAN_MODE_NORMAL)
+     {
+       for (l = gm->clients; l; l = l->next)
+         _e_gadman_client_edit_end(l->data);
+     }
+}
+
+E_Gadman_Mode
+e_gadman_mode_get(E_Gadman *gm)
+{
+   E_OBJECT_CHECK_RETURN(gm, E_GADMAN_MODE_NORMAL);
+   return gm->mode;
 }
 
 void
 e_gadman_client_save(E_Gadman_Client *gmc, char *domain, int instance)
 {
    E_OBJECT_CHECK(gmc);
+   /* cave all values */
 }
 
 void
 e_gadman_client_load(E_Gadman_Client *gmc, char *domain, int instance)
 {
    E_OBJECT_CHECK(gmc);
+   /* load all the vales */
+   /* implement all the values */
+}
+
+void
+e_gadman_client_domain_set(E_Gadman_Client *gmc, char *domain, int instance)
+{
+   E_OBJECT_CHECK(gmc);
+   if (gmc->domain) free(gmc->domain);
+   gmc->domain = strdup(domain);
+   gmc->instance = instance;
+}
+
+void
+e_gadman_client_zone_set(E_Gadman_Client *gmc, E_Zone *zone)
+{
+   E_OBJECT_CHECK(gmc);
+   gmc->zone = zone;
 }
 
 void
@@ -145,3 +202,174 @@
    if (gmc->domain) free(gmc->domain);
    free(gmc);
 }
+
+static void
+_e_gadman_client_edit_begin(E_Gadman_Client *gmc)
+{
+   gmc->control_object = edje_object_add(gmc->gadman->container->bg_evas);
+   evas_object_layer_set(gmc->control_object, 100);
+   evas_object_move(gmc->control_object, gmc->x, gmc->y);
+   evas_object_resize(gmc->control_object, gmc->w, gmc->h);
+   edje_object_file_set(gmc->control_object,
+                       /* FIXME: "default.eet" needs to come from conf */
+                       e_path_find(path_themes, "default.eet"),
+                       "gadman/control");
+   edje_object_signal_callback_add(gmc->control_object, "move_start", "*",
+                                  _e_gadman_cb_signal_move_start, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "move_stop", "*",
+                                  _e_gadman_cb_signal_move_stop, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "move_go", "*",
+                                  _e_gadman_cb_signal_move_go, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_start", "left",
+                                  _e_gadman_cb_signal_resize_left_start, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_stop", "left",
+                                  _e_gadman_cb_signal_resize_left_stop, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_go", "left",
+                                  _e_gadman_cb_signal_resize_left_go, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_start", 
"right",
+                                  _e_gadman_cb_signal_resize_right_start, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_stop", "right",
+                                  _e_gadman_cb_signal_resize_right_stop, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_go", "right",
+                                  _e_gadman_cb_signal_resize_right_go, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_start", "up",
+                                  _e_gadman_cb_signal_resize_up_start, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_stop", "up",
+                                  _e_gadman_cb_signal_resize_up_stop, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_go", "up",
+                                  _e_gadman_cb_signal_resize_up_go, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_start", "down",
+                                  _e_gadman_cb_signal_resize_down_start, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_stop", "down",
+                                  _e_gadman_cb_signal_resize_down_stop, gmc);
+   edje_object_signal_callback_add(gmc->control_object, "resize_go", "down",
+                                  _e_gadman_cb_signal_resize_down_go, gmc);
+   evas_object_show(gmc->control_object);
+}
+
+static void
+_e_gadman_client_edit_end(E_Gadman_Client *gmc)
+{
+   evas_object_del(gmc->control_object);
+}
+
+static void
+_e_gadman_cb_signal_move_start(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_move_stop(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_move_go(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_left_start(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_left_stop(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_left_go(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_right_start(void *data, Evas_Object *obj, const 
char *emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_right_stop(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_right_go(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_up_start(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_up_stop(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_up_go(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_down_start(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_down_stop(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
+static void
+_e_gadman_cb_signal_resize_down_go(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+}
+
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadman.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_gadman.h  15 Jan 2005 15:21:57 -0000      1.2
+++ e_gadman.h  17 Jan 2005 08:54:37 -0000      1.3
@@ -20,9 +20,15 @@
 typedef enum _E_Gadman_Change
 {
    E_GADMAN_CHANGE_MOVE,
-   E_GADMAN_CHANGE_RESIZE,
+   E_GADMAN_CHANGE_RESIZE
 } E_Gadman_Change;
 
+typedef enum _E_Gadman_Mode
+{
+   E_GADMAN_MODE_NORMAL,
+   E_GADMAN_MODE_EDIT
+} E_Gadman_Mode;
+
 typedef struct _E_Gadman        E_Gadman;
 typedef struct _E_Gadman_Client E_Gadman_Client;
 
@@ -35,6 +41,7 @@
    E_Object             e_obj_inherit;
    E_Container         *container;
    Evas_List           *clients;
+   E_Gadman_Mode        mode;
 };
 
 struct _E_Gadman_Client
@@ -44,6 +51,7 @@
    
    Evas_Object         *control_object;
    char                *domain;
+   E_Zone              *zone;
    int                  instance;
    E_Gadman_Policy      policy;
    Evas_Coord           x, y, w, h;
@@ -56,11 +64,14 @@
 
 EAPI int              e_gadman_init(void);
 EAPI int              e_gadman_shutdown(void);
+EAPI void             e_gadman_mode_set(E_Gadman *gm, E_Gadman_Mode mode);
+EAPI E_Gadman_Mode    e_gadman_mode_get(E_Gadman *gm);
 EAPI E_Gadman        *e_gadman_new(E_Container *con);
 EAPI E_Gadman_Client *e_gadman_client_new(E_Gadman *gm);
-EAPI void             e_gadman_client_domain_set(E_Gadman_Client *gmc, char 
*domain, int instance);
 EAPI void             e_gadman_client_save(E_Gadman_Client *gmc, char *domain, 
int instance);
 EAPI void             e_gadman_client_load(E_Gadman_Client *gmc, char *domain, 
int instance);
+EAPI void             e_gadman_client_domain_set(E_Gadman_Client *gmc, char 
*domain, int instance);
+EAPI void             e_gadman_client_zone_set(E_Gadman_Client *gmc, E_Zone 
*zone);
 EAPI void             e_gadman_client_policy_set(E_Gadman_Client *gmc, 
E_Gadman_Policy pol);
 EAPI void             e_gadman_client_min_size_set(E_Gadman_Client *gmc, 
Evas_Coord minw, Evas_Coord minh);
 EAPI void             e_gadman_client_max_size_set(E_Gadman_Client *gmc, 
Evas_Coord maxw, Evas_Coord maxh);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_menus.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -3 -r1.32 -r1.33
--- e_int_menus.c       14 Jan 2005 14:01:07 -0000      1.32
+++ e_int_menus.c       17 Jan 2005 08:54:37 -0000      1.33
@@ -12,6 +12,7 @@
    E_Menu *desktops;
    E_Menu *clients;
    E_Menu *modules;
+   E_Menu *gadgets;
 };
 
 /* local subsystem functions */
@@ -33,6 +34,8 @@
 static void _e_int_menus_desktops_row_del_cb (void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void _e_int_menus_desktops_col_add_cb (void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void _e_int_menus_desktops_col_del_cb (void *data, E_Menu *m, 
E_Menu_Item *mi);
+static void _e_int_menus_gadgets_pre_cb      (void *data, E_Menu *m);
+static void _e_int_menus_gadgets_edit_mode_cb(void *data, E_Menu *m, 
E_Menu_Item *mi);
 
 /* externally accessible functions */
 E_Menu *
@@ -83,6 +86,14 @@
                             "windows");
    e_menu_item_submenu_set(mi, subm);
   
+   subm = e_int_menus_gadgets_new();
+   dat->gadgets = subm;
+   mi = e_menu_item_new(m);
+   e_menu_item_label_set(mi, "Gadgets");
+   e_menu_item_icon_edje_set(mi, e_path_find(path_icons, "default.eet"),
+                            "gadgets");
+   e_menu_item_submenu_set(mi, subm);
+  
    mi = e_menu_item_new(m);
    e_menu_item_separator_set(mi, 1);
    
@@ -133,7 +144,6 @@
    e_menu_pre_activate_callback_set(m, _e_int_menus_desktops_pre_cb, NULL);
    return m;
 }
-   
 
 E_Menu *
 e_int_menus_favorite_apps_new(void)
@@ -163,6 +173,16 @@
    return m;
 }
 
+E_Menu *
+e_int_menus_gadgets_new(void)
+{
+   E_Menu *m;
+
+   m = e_menu_new();
+   e_menu_pre_activate_callback_set(m, _e_int_menus_gadgets_pre_cb, NULL);
+   return m;
+}
+
 /* local subsystem functions */
 static void
 _e_int_menus_main_del_hook(void *obj)
@@ -178,6 +198,7 @@
        e_object_del(E_OBJECT(dat->modules));
        e_object_del(E_OBJECT(dat->desktops));
        e_object_del(E_OBJECT(dat->clients));
+       e_object_del(E_OBJECT(dat->gadgets));
        free(dat);
      }
 }
@@ -481,3 +502,42 @@
    e_border_raise(bd);
    e_border_focus_set(bd, 1, 1);
 }
+
+static void
+_e_int_menus_gadgets_pre_cb(void *data, E_Menu *m)
+{
+   E_Menu_Item *mi;
+   E_Menu *root;
+
+   e_menu_pre_activate_callback_set(m, NULL, NULL);
+   root = e_menu_root_get(m);
+   if ((root) && (root->zone))
+     {
+       mi = e_menu_item_new(m);
+         e_menu_item_check_set(mi, 1);
+       if (e_gadman_mode_get(root->zone->container->gadman) == 
E_GADMAN_MODE_EDIT)
+         e_menu_item_toggle_set(mi, 1);
+       else
+         e_menu_item_toggle_set(mi, 0);
+       e_menu_item_label_set(mi, "Edit Mode");
+       e_menu_item_callback_set(mi, _e_int_menus_gadgets_edit_mode_cb, 
root->zone->container->gadman);
+     }
+   else
+     {
+       mi = e_menu_item_new(m);
+       e_menu_item_label_set(mi, "(Unused)");
+       e_menu_item_callback_set(mi, NULL, NULL);
+     }
+}
+
+static void
+_e_int_menus_gadgets_edit_mode_cb(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Gadman *gm;
+   
+   gm = data;
+   if (e_menu_item_toggle_get(mi))
+     e_gadman_mode_set(gm, E_GADMAN_MODE_EDIT);
+   else
+     e_gadman_mode_set(gm, E_GADMAN_MODE_NORMAL);
+}
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_menus.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- e_int_menus.h       12 Jan 2005 16:03:08 -0000      1.8
+++ e_int_menus.h       17 Jan 2005 08:54:37 -0000      1.9
@@ -8,6 +8,7 @@
 EAPI E_Menu *e_int_menus_clients_new(void);
 EAPI E_Menu *e_int_menus_apps_new(char *dir);
 EAPI E_Menu *e_int_menus_favorite_apps_new(void);
+EAPI E_Menu *e_int_menus_gadgets_new(void);
     
 #endif
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- e_main.c    15 Jan 2005 09:50:26 -0000      1.27
+++ e_main.c    17 Jan 2005 08:54:37 -0000      1.28
@@ -534,6 +534,16 @@
                                  i);
             return 0;
          }
+       /* FIXME: testing... */
+         {
+            E_Gadman_Client *gmc;
+            
+            gmc = e_gadman_client_new(con->gadman);
+            gmc->x = 100;
+            gmc->y = 100;
+            gmc->w = 150;
+            gmc->h = 150;
+         }
      }
    free(roots);
    ecore_x_sync();
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_manager.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- e_manager.c 13 Jan 2005 14:24:24 -0000      1.7
+++ e_manager.c 17 Jan 2005 08:54:37 -0000      1.8
@@ -192,7 +192,11 @@
        if (!e_border_find_by_client_window(e->win))
          {
             bd = e_border_new(con, e->win, 0);
-            if (bd) e_border_show(bd);
+            if (bd)
+              {
+                 e_border_raise(bd);
+                 e_border_show(bd);
+              }
             else ecore_x_window_show(e->win);
          }
      }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_zone.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- e_zone.c    15 Jan 2005 08:31:38 -0000      1.18
+++ e_zone.c    17 Jan 2005 08:54:37 -0000      1.19
@@ -89,7 +89,6 @@
    e_zone_desk_count_set(zone,
                         e_config->zone_desks_x_count,
                         e_config->zone_desks_y_count);
-
    return zone;
 }
 




-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to