Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_gadcon.c e_gadcon.h e_int_menus.c e_shelf.c e_shelf.h 


Log Message:


now config comes off a menu as does editing of items

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- e_gadcon.c  23 Apr 2006 06:56:22 -0000      1.20
+++ e_gadcon.c  23 Apr 2006 13:20:57 -0000      1.21
@@ -196,11 +196,9 @@
    E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE);
    ok = 0;
    e_gadcon_layout_freeze(gc->o_container);
-   printf("e_config->gadcons = %p\n", e_config->gadcons);
    for (l = e_config->gadcons; l; l = l->next)
      {
        cf_gc = l->data;
-       printf("%s == %s, %s == %s\n", cf_gc->name, gc->name, cf_gc->id, 
gc->id);
        if ((!strcmp(cf_gc->name, gc->name)) &&
            (!strcmp(cf_gc->id, gc->id)))
          {
@@ -371,6 +369,7 @@
    E_OBJECT_CHECK(gc);
    E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE);
    e_gadcon_layout_freeze(gc->o_container);
+   gc->editing = 1;
    for (l = gc->clients; l; l = l->next)
      {
        E_Gadcon_Client *gcc;
@@ -389,6 +388,7 @@
    E_OBJECT_CHECK(gc);
    E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE);
    e_gadcon_layout_freeze(gc->o_container);
+   gc->editing = 0;
    for (l = gc->clients; l; l = l->next)
      {
        E_Gadcon_Client *gcc;
@@ -723,7 +723,6 @@
    E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE);
    gcc->aspect.w = w;
    gcc->aspect.h = h;
-   printf("ASPECt: %i %i\n", w, h);
    if ((!gcc->autoscroll) && (!gcc->resizable))
      {
        if (gcc->o_frame)
@@ -856,6 +855,18 @@
    e_gadcon_populate(gc);
 }
 
+static void
+_e_gadcon_client_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Gadcon_Client *gcc;
+   
+   gcc = data;
+   if (gcc->o_control)
+     e_gadcon_client_edit_end(gcc);
+   else
+     e_gadcon_client_edit_begin(gcc);
+}
+
 EAPI void
 e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu, int 
flags)
 {
@@ -884,6 +895,14 @@
    e_menu_item_check_set(mi, 1);
    if (gcc->resizable) e_menu_item_toggle_set(mi, 1);
    e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_resizable, gcc);
+
+   mi = e_menu_item_new(menu);
+   if (gcc->o_control)
+     e_menu_item_label_set(mi, _("Stop editing"));
+   else
+     e_menu_item_label_set(mi, _("Begin editing"));
+   e_util_menu_item_edje_icon_set(mi, "enlightenment/edit");
+   e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_edit, gcc);
 }
 
 static void 
@@ -1196,7 +1215,27 @@
    ev = event_info;
    if (ev->button == 3)
      {
-       printf("THREE! %p\n", gcc);
+       E_Menu *mn;
+       E_Menu_Item *mi;
+       int cx, cy, cw, ch;
+
+       mn = e_menu_new();
+       e_menu_post_deactivate_callback_set(mn, _e_gadcon_client_cb_menu_post,
+                                           gcc);
+       gcc->menu = mn;
+       
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, _("Stop editing"));
+       e_util_menu_item_edje_icon_set(mi, "enlightenment/edit");
+       e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_edit, gcc);
+       
+       e_gadcon_canvas_zone_geometry_get(gcc->gadcon, &cx, &cy, &cw, &ch);
+       e_menu_activate_mouse(mn,
+                             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(gcc->gadcon->evas, ev->button,
+                                EVAS_BUTTON_NONE, ev->timestamp, NULL);
      }
 }
 
@@ -1878,7 +1917,6 @@
    x = sd->x; y = sd->y; w = sd->w; h = sd->h;
    min = mino = cur = 0;
 
-   printf("HORIZ: %i\n", sd->horizontal);
    for (l = sd->items; l; l = l->next)
      {
        E_Gadcon_Layout_Item *bi;
@@ -1943,8 +1981,6 @@
          }
      }
    
-   printf("CUR = %i | %i %i\n", cur, min, mino);
-   
    if (sd->horizontal)
      {
        if (cur <= w)
@@ -1958,7 +1994,6 @@
             sub = cur - w; /* we need to find "sub" extra pixels */
             if (min <= w)
               {
-                 printf("blum\n");
                  for (l = sd->items; l; l = l->next)
                    {
                       E_Gadcon_Layout_Item *bi;
@@ -1970,13 +2005,11 @@
                       if (give < sub) give = sub;
                       bi->ask.size2 = bi->ask.size - give;
                       sub -= give;
-                      printf("GIVE: %i\n", give);
                       if (sub <= 0) break;
                    }
               }
             else
               { /* EEK - all items just cant fit at their minimum! what do we 
do? */
-                 printf("EEK - nofit!\n");
                  num = 0;
                  num = evas_list_count(sd->items);
                  give = min - w; // how much give total below minw we need
@@ -2016,7 +2049,6 @@
             sub = cur - h; /* we need to find "sub" extra pixels */
             if (min <= h)
               {
-                 printf("blum\n");
                  for (l = sd->items; l; l = l->next)
                    {
                       E_Gadcon_Layout_Item *bi;
@@ -2028,13 +2060,11 @@
                       if (give < sub) give = sub;
                       bi->ask.size2 = bi->ask.size - give;
                       sub -= give;
-                      printf("GIVE: %i\n", give);
                       if (sub <= 0) break;
                    }
               }
             else
               { /* EEK - all items just cant fit at their minimum! what do we 
do? */
-                 printf("EEK - nofit!\n");
                  num = 0;
                  num = evas_list_count(sd->items);
                  give = min - h; // how much give total below minw we need
@@ -2429,7 +2459,6 @@
    evas_list_free(list_e);
    evas_list_free(list);
    
-   printf("-------------------v\n");
    for (l = sd->items; l; l = l->next)
      {
        E_Gadcon_Layout_Item *bi;
@@ -2449,13 +2478,9 @@
             xx = x + ((w - bi->w) / 2);
             yy = y + bi->y;
          }
-       printf("%p -> %i,%i [%i,%i], %ix%i\n",
-              obj, 
-              xx, yy, bi->x, bi->y, bi->w, bi->h);
        evas_object_move(obj, xx, yy);
        evas_object_resize(obj, bi->w, bi->h);
      }
-   printf("-------------------^\n");
    sd->doing_config = 0;
    if (sd->redo_config)
      {
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- e_gadcon.h  20 Apr 2006 11:30:24 -0000      1.14
+++ e_gadcon.h  23 Apr 2006 13:20:57 -0000      1.15
@@ -70,6 +70,8 @@
       Evas_Object *(*func) (void *data, E_Gadcon_Client *gcc, const char 
*style);
       void *data;
    } frame_request;
+   
+   unsigned char       editing : 1;
 };
 
 #define GADCON_CLIENT_CLASS_VERSION 1
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_menus.c,v
retrieving revision 1.134
retrieving revision 1.135
diff -u -3 -r1.134 -r1.135
--- e_int_menus.c       2 Mar 2006 12:03:48 -0000       1.134
+++ e_int_menus.c       23 Apr 2006 13:20:57 -0000      1.135
@@ -822,12 +822,12 @@
    gm = data;
    if (e_menu_item_toggle_get(mi))
      {
-       e_gadcon_all_edit_begin();
+//     e_gadcon_all_edit_begin();
        e_gadman_mode_set(gm, E_GADMAN_MODE_EDIT);
      }
    else
      {
-       e_gadcon_all_edit_end();
+//     e_gadcon_all_edit_end();
        e_gadman_mode_set(gm, E_GADMAN_MODE_NORMAL);
      }
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- e_shelf.c   23 Apr 2006 06:56:22 -0000      1.16
+++ e_shelf.c   23 Apr 2006 13:20:57 -0000      1.17
@@ -422,6 +422,12 @@
 static void
 _e_shelf_free(E_Shelf *es)
 {
+   if (es->menu)
+     {
+       e_menu_post_deactivate_callback_set(es->menu, NULL, NULL);
+       e_object_del(E_OBJECT(es->menu));
+       es->menu = NULL;
+     }
    if (es->config_dialog) e_object_del(E_OBJECT(es->config_dialog));
    shelves = evas_list_remove(shelves, es);
    e_object_del(E_OBJECT(es->gadcon));
@@ -509,7 +515,6 @@
    nw = es->w;
    nh = es->h;
    ww = hh = 0;
-   printf("req = %i %i\n", w, h);
    evas_object_geometry_get(gc->o_container, NULL, NULL, &ww, &hh);
    switch (gc->orient)
      {
@@ -537,10 +542,8 @@
       default:
        break;
      }
-   printf("adj min = %i %i\n", w, h);
    e_gadcon_swallowed_min_size_set(gc, w, h);
    edje_object_size_min_calc(es->o_base, &nw, &nh);
-   printf("new w, h = %i %i\n", nw, nh);
    switch (gc->orient)
      {
       case E_GADCON_ORIENT_FLOAT:
@@ -688,6 +691,38 @@
 }
 
 static void
+_e_shelf_cb_menu_config(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Shelf *es;
+   
+   es = data;
+   if (!es->config_dialog) e_int_shelf_config(es);
+}
+
+static void
+_e_shelf_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Shelf *es;
+   
+   es = data;
+   if (es->gadcon->editing)
+     e_gadcon_edit_end(es->gadcon);
+   else
+     e_gadcon_edit_begin(es->gadcon);
+}
+
+static void
+_e_shelf_cb_menu_post(void *data, E_Menu *m)
+{
+   E_Shelf *es;
+   
+   es = data;
+   if (!es->menu) return;
+   e_object_del(E_OBJECT(es->menu));
+   es->menu = NULL;
+}
+
+static void
 _e_shelf_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void 
*event_info)
 {
    Evas_Event_Mouse_Down *ev;
@@ -697,7 +732,34 @@
    ev = event_info;
    if (ev->button == 3)
      {
-       if (!es->config_dialog) e_int_shelf_config(es);
+        E_Menu *mn;
+       E_Menu_Item *mi;
+       int cx, cy, cw, ch;
+       
+       mn = e_menu_new();
+       e_menu_post_deactivate_callback_set(mn, _e_shelf_cb_menu_post, es);
+       es->menu = mn;
+       
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, _("Configuration"));
+       e_util_menu_item_edje_icon_set(mi, "enlightenment/config");
+       e_menu_item_callback_set(mi, _e_shelf_cb_menu_config, es);
+
+       mi = e_menu_item_new(mn);
+       if (es->gadcon->editing)
+         e_menu_item_label_set(mi, _("Stop editing items"));
+       else
+         e_menu_item_label_set(mi, _("Begin editing items"));
+       e_util_menu_item_edje_icon_set(mi, "enlightenment/edit");
+       e_menu_item_callback_set(mi, _e_shelf_cb_menu_edit, es);
+       
+       e_gadcon_canvas_zone_geometry_get(es->gadcon, &cx, &cy, &cw, &ch);
+       e_menu_activate_mouse(mn,
+                             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(es->gadcon->evas, ev->button,
+                                EVAS_BUTTON_NONE, ev->timestamp, NULL);
      }
 }
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- e_shelf.h   23 Apr 2006 06:56:22 -0000      1.12
+++ e_shelf.h   23 Apr 2006 13:20:57 -0000      1.13
@@ -31,6 +31,7 @@
    unsigned char        fit_size : 1;
    int                  size;
    E_Config_Dialog     *config_dialog;
+   E_Menu              *menu;
 };
 
 EAPI int              e_shelf_init(void);




-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to