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_main.c 


Log Message:


some more gadman work

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadman.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- e_gadman.c  17 Jan 2005 10:26:17 -0000      1.5
+++ e_gadman.c  17 Jan 2005 16:18:32 -0000      1.6
@@ -8,7 +8,15 @@
 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_client_down_store(E_Gadman_Client *gmc);
+static int  _e_gadman_client_is_being_modified(E_Gadman_Client *gmc);
+static void _e_gadman_client_geometry_to_align(E_Gadman_Client *gmc);
+static void _e_gadman_client_geometry_apply(E_Gadman_Client *gmc);
+
+static void _e_gadman_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, 
void *event_info);
+static void _e_gadman_cb_mouse_up(void *data, Evas *evas, Evas_Object *obj, 
void *event_info);
+static void _e_gadman_cb_mouse_in(void *data, Evas *evas, Evas_Object *obj, 
void *event_info);
+static void _e_gadman_cb_mouse_out(void *data, Evas *evas, Evas_Object *obj, 
void *event_info);
 
 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);
@@ -26,6 +34,16 @@
 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);
 
+static void _e_gadman_cb_menu_end(void *data, E_Menu *m);
+
+static void _e_gadman_cb_half_width(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_gadman_cb_full_width(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_gadman_cb_center_horiz(void *data, E_Menu *m, E_Menu_Item *mi);
+
+static void _e_gadman_cb_half_height(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_gadman_cb_full_height(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_gadman_cb_center_vert(void *data, E_Menu *m, E_Menu_Item *mi);
+
 /* externally accessible functions */
 int
 e_gadman_init(void)
@@ -59,7 +77,7 @@
    gmc = E_OBJECT_ALLOC(E_Gadman_Client, _e_gadman_client_free);
    if (!gmc) return NULL;
    gmc->gadman = gm;
-   gmc->policy = E_GADMAN_POLICY_ANYWHERE;
+   gmc->policy = E_GADMAN_POLICY_ANYWHERE | E_GADMAN_POLICY_HSIZE | 
E_GADMAN_POLICY_VSIZE | E_GADMAN_POLICY_HMOVE | E_GADMAN_POLICY_VMOVE;
    gmc->zone = e_zone_current_get(gm->container);
    gmc->minw = 1;
    gmc->minh = 1;
@@ -188,6 +206,67 @@
    gmc->data = data;
 }
 
+E_Menu *
+e_gadman_client_menu_new(E_Gadman_Client *gmc)
+{
+   E_Menu *m;
+   E_Menu_Item *mi;
+   
+   E_OBJECT_CHECK_RETURN(gmc, NULL);
+   m = e_menu_new();
+   
+   gmc->menu = m;
+
+   if (gmc->policy & E_GADMAN_POLICY_HSIZE)
+     {
+       mi = e_menu_item_new(m);
+       e_menu_item_label_set(mi, "Half Screen Width");
+       e_menu_item_icon_edje_set(mi, e_path_find(path_icons, "default.eet"),
+                                 "half_width");
+       e_menu_item_callback_set(mi, _e_gadman_cb_half_width, gmc);
+       mi = e_menu_item_new(m);
+       e_menu_item_label_set(mi, "Full Screen Width");
+       e_menu_item_icon_edje_set(mi, e_path_find(path_icons, "default.eet"),
+                                 "full_width");
+       e_menu_item_callback_set(mi, _e_gadman_cb_full_width, gmc);
+     }
+   if (gmc->policy & E_GADMAN_POLICY_HMOVE)
+     {
+       mi = e_menu_item_new(m);
+       e_menu_item_label_set(mi, "Center Horizontally");
+       e_menu_item_icon_edje_set(mi, e_path_find(path_icons, "default.eet"),
+                                 "center_horiz");
+       e_menu_item_callback_set(mi, _e_gadman_cb_center_horiz, gmc);
+     }
+   
+   mi = e_menu_item_new(m);
+   e_menu_item_separator_set(mi, 1);
+
+   if (gmc->policy & E_GADMAN_POLICY_VSIZE)
+     {
+       mi = e_menu_item_new(m);
+       e_menu_item_label_set(mi, "Half Screen Height");
+       e_menu_item_icon_edje_set(mi, e_path_find(path_icons, "default.eet"),
+                                 "half_height");
+       e_menu_item_callback_set(mi, _e_gadman_cb_half_height, gmc);
+       mi = e_menu_item_new(m);
+       e_menu_item_label_set(mi, "Full Screen Height");
+       e_menu_item_icon_edje_set(mi, e_path_find(path_icons, "default.eet"),
+                                 "full_height");
+       e_menu_item_callback_set(mi, _e_gadman_cb_full_height, gmc);
+     }
+   if (gmc->policy & E_GADMAN_POLICY_VMOVE)
+     {
+       mi = e_menu_item_new(m);
+       e_menu_item_label_set(mi, "Center Vertically");
+       e_menu_item_icon_edje_set(mi, e_path_find(path_icons, "default.eet"),
+                                 "center_vert");
+       e_menu_item_callback_set(mi, _e_gadman_cb_center_vert, gmc);
+     }
+   
+   return m;
+}
+
 /* local subsystem functions */
 static void
 _e_gadman_free(E_Gadman *gm)
@@ -198,6 +277,9 @@
 static void
 _e_gadman_client_free(E_Gadman_Client *gmc)
 {
+   if (gmc->menu) e_object_del(E_OBJECT(gmc->menu));
+   if (gmc->control_object) evas_object_del(gmc->control_object);
+   if (gmc->event_object) evas_object_del(gmc->event_object);
    gmc->gadman->clients = evas_list_remove(gmc->gadman->clients, gmc);
    if (gmc->domain) free(gmc->domain);
    free(gmc);
@@ -244,6 +326,17 @@
                                   _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);
+   gmc->event_object = 
evas_object_rectangle_add(gmc->gadman->container->bg_evas);
+   evas_object_color_set(gmc->event_object, 0, 0, 0, 0);
+   evas_object_repeat_events_set(gmc->event_object, 1);
+   evas_object_layer_set(gmc->event_object, 100);
+   evas_object_move(gmc->event_object, gmc->x, gmc->y);
+   evas_object_resize(gmc->event_object, gmc->w, gmc->h);
+   evas_object_event_callback_add(gmc->event_object, EVAS_CALLBACK_MOUSE_DOWN, 
_e_gadman_cb_mouse_down, gmc);
+   evas_object_event_callback_add(gmc->event_object, EVAS_CALLBACK_MOUSE_UP, 
_e_gadman_cb_mouse_up, gmc);
+   evas_object_event_callback_add(gmc->event_object, EVAS_CALLBACK_MOUSE_IN, 
_e_gadman_cb_mouse_in, gmc);
+   evas_object_event_callback_add(gmc->event_object, EVAS_CALLBACK_MOUSE_OUT, 
_e_gadman_cb_mouse_out, gmc);
+   evas_object_show(gmc->event_object);
    evas_object_show(gmc->control_object);
 }
 
@@ -251,18 +344,14 @@
 _e_gadman_client_edit_end(E_Gadman_Client *gmc)
 {
    evas_object_del(gmc->control_object);
+   gmc->control_object = NULL;
+   evas_object_del(gmc->event_object);
+   gmc->event_object = NULL;
 }
 
 static void
-_e_gadman_cb_signal_move_start(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+_e_gadman_client_down_store(E_Gadman_Client *gmc)
 {
-   E_Gadman_Client *gmc;
-   
-   gmc = data;
-   if ((gmc->moving) || 
-       (gmc->resizing_l) || (gmc->resizing_r) || 
-       (gmc->resizing_u) || (gmc->resizing_d)) return;
-   gmc->moving = 1;
    gmc->down_store_x = gmc->x;
    gmc->down_store_y = gmc->y;
    gmc->down_store_w = gmc->w;
@@ -270,6 +359,108 @@
    evas_pointer_canvas_xy_get(gmc->gadman->container->bg_evas, &gmc->down_x, 
&gmc->down_y);
 }
 
+static int
+_e_gadman_client_is_being_modified(E_Gadman_Client *gmc)
+{
+   if ((gmc->moving) || 
+       (gmc->resizing_l) || (gmc->resizing_r) || 
+       (gmc->resizing_u) || (gmc->resizing_d))
+     return 1;
+   return 0;
+}
+
+static void
+_e_gadman_client_geometry_to_align(E_Gadman_Client *gmc)
+{
+   if (gmc->w != gmc->zone->w)
+     gmc->ax = (double)gmc->x / (double)(gmc->zone->w - gmc->w);
+   else
+     gmc->ax = 0.0;
+   if (gmc->h != gmc->zone->h)
+     gmc->ay = (double)gmc->y / (double)(gmc->zone->h - gmc->h);
+   else
+     gmc->ay = 0.0;
+}
+
+static void
+_e_gadman_client_geometry_apply(E_Gadman_Client *gmc)
+{
+   evas_object_move(gmc->event_object, gmc->x, gmc->y);
+   evas_object_resize(gmc->event_object, gmc->w, gmc->h);
+   evas_object_move(gmc->control_object, gmc->x, gmc->y);
+   evas_object_resize(gmc->control_object, gmc->w, gmc->h);
+}
+
+static void
+_e_gadman_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void 
*event_info)
+{
+   Evas_Event_Mouse_Down *ev;
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   ev = event_info;
+   if (_e_gadman_client_is_being_modified(gmc)) return;
+   /* FIXME: how do we preent this if you donthave a right mouse button */
+   /*        maybe make this menu available in he modules menu? */
+   if (ev->button == 3)
+     {
+       E_Menu *m;
+       
+       m = e_gadman_client_menu_new(gmc);
+       if (m)
+         {
+            e_menu_post_deactivate_callback_set(m, _e_gadman_cb_menu_end, gmc);
+            e_menu_activate_mouse(m, gmc->zone, ev->output.x, ev->output.y, 1, 
1,
+                                  E_MENU_POP_DIRECTION_DOWN);
+            e_util_container_fake_mouse_up_all_later(gmc->zone->container);
+         }
+     }
+}
+
+static void
+_e_gadman_cb_mouse_up(void *data, Evas *evas, Evas_Object *obj, void 
*event_info)
+{
+   Evas_Event_Mouse_Up *ev;
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   ev = event_info;
+   if (_e_gadman_client_is_being_modified(gmc)) return;
+}
+
+static void
+_e_gadman_cb_mouse_in(void *data, Evas *evas, Evas_Object *obj, void 
*event_info)
+{
+   Evas_Event_Mouse_In *ev;
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   ev = event_info;
+   if (_e_gadman_client_is_being_modified(gmc)) return;
+}
+
+static void
+_e_gadman_cb_mouse_out(void *data, Evas *evas, Evas_Object *obj, void 
*event_info)
+{
+   Evas_Event_Mouse_Out *ev;
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   ev = event_info;
+   if (_e_gadman_client_is_being_modified(gmc)) return;
+}
+
+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;
+   if (_e_gadman_client_is_being_modified(gmc)) return;
+   _e_gadman_client_down_store(gmc);
+   gmc->moving = 1;
+}
+
 static void
 _e_gadman_cb_signal_move_stop(void *data, Evas_Object *obj, const char 
*emission, const char *source)
 {
@@ -277,6 +468,7 @@
    
    gmc = data;
    gmc->moving = 0;
+   _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
 }
 
@@ -293,8 +485,6 @@
    gmc->y = gmc->down_store_y + (y - gmc->down_y);
    gmc->w = gmc->down_store_w;
    gmc->h = gmc->down_store_h;
-   /* FIXME: limit to zone, edge, or handle zone jump */
-   /* limit to the zone */
    if (gmc->x < gmc->zone->x)
      gmc->x = gmc->zone->x;
    else if ((gmc->x + gmc->w) > (gmc->zone->x + gmc->zone->w))
@@ -303,8 +493,9 @@
      gmc->y = gmc->zone->y;
    else if ((gmc->y + gmc->h) > (gmc->zone->y + gmc->zone->h))
      gmc->y = gmc->zone->y + gmc->zone->h - gmc->h;
-   evas_object_move(gmc->control_object, gmc->x, gmc->y);
-   evas_object_resize(gmc->control_object, gmc->w, gmc->h);
+   /* FIXME: move resist */
+   /* FIXME: detect move from zone to zone */
+   _e_gadman_client_geometry_apply(gmc);
 }
 
 static void
@@ -313,15 +504,9 @@
    E_Gadman_Client *gmc;
    
    gmc = data;
-   if ((gmc->moving) || 
-       (gmc->resizing_l) || (gmc->resizing_r) || 
-       (gmc->resizing_u) || (gmc->resizing_d)) return;
+   if (_e_gadman_client_is_being_modified(gmc)) return;
+   _e_gadman_client_down_store(gmc);
    gmc->resizing_l = 1;
-   gmc->down_store_x = gmc->x;
-   gmc->down_store_y = gmc->y;
-   gmc->down_store_w = gmc->w;
-   gmc->down_store_h = gmc->h;
-   evas_pointer_canvas_xy_get(gmc->gadman->container->bg_evas, &gmc->down_x, 
&gmc->down_y);
 }
 
 static void
@@ -331,6 +516,7 @@
    
    gmc = data;
    gmc->resizing_l = 0;
+   _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
 }
 
@@ -356,9 +542,15 @@
    /* limit to min size */
    if (gmc->w < gmc->minw)
      {
-       gmc->x += (gmc->minw - gmc->w);
+       gmc->x = (gmc->down_store_x + gmc->down_store_w) - gmc->minw;
        gmc->w = gmc->minw;
      }
+   /* if we are atthe edge or beyond. assyme we want to be all the way there */
+   if (x <= gmc->zone->x)
+     {
+       gmc->w = (gmc->x + gmc->w) - gmc->zone->x;
+       gmc->x = gmc->zone->x;
+     }
    /* limit to max size */
    if (gmc->maxw > 0)
      {
@@ -368,10 +560,7 @@
             gmc->w = gmc->maxw;
          }
      }
-   /* FIXME: detect that the user ALMOST resized to full zone width/height */
-   /* and jump to it */
-   evas_object_move(gmc->control_object, gmc->x, gmc->y);
-   evas_object_resize(gmc->control_object, gmc->w, gmc->h);
+   _e_gadman_client_geometry_apply(gmc);
 }
 
 static void
@@ -380,15 +569,9 @@
    E_Gadman_Client *gmc;
    
    gmc = data;
-   if ((gmc->moving) || 
-       (gmc->resizing_l) || (gmc->resizing_r) || 
-       (gmc->resizing_u) || (gmc->resizing_d)) return;
+   if (_e_gadman_client_is_being_modified(gmc)) return;
+   _e_gadman_client_down_store(gmc);
    gmc->resizing_r = 1;
-   gmc->down_store_x = gmc->x;
-   gmc->down_store_y = gmc->y;
-   gmc->down_store_w = gmc->w;
-   gmc->down_store_h = gmc->h;
-   evas_pointer_canvas_xy_get(gmc->gadman->container->bg_evas, &gmc->down_x, 
&gmc->down_y);
 }
 
 static void
@@ -398,6 +581,7 @@
    
    gmc = data;
    gmc->resizing_r = 0;
+   _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
 }
 
@@ -424,6 +608,11 @@
      {
        gmc->w = gmc->minw;
      }
+   /* if we are atthe edge or beyond. assyme we want to be all the way there */
+   if (x >= (gmc->zone->x + gmc->zone->w - 1))
+     {
+       gmc->w = gmc->zone->x + gmc->zone->w - gmc->x;
+     }
    /* limit to max size */
    if (gmc->maxw > 0)
      {
@@ -432,10 +621,7 @@
             gmc->w = gmc->maxw;
          }
      }
-   /* FIXME: detect that the user ALMOST resized to full zone width/height */
-   /* and jump to it */
-   evas_object_move(gmc->control_object, gmc->x, gmc->y);
-   evas_object_resize(gmc->control_object, gmc->w, gmc->h);
+   _e_gadman_client_geometry_apply(gmc);
 }
 
 static void
@@ -444,15 +630,9 @@
    E_Gadman_Client *gmc;
    
    gmc = data;
-   if ((gmc->moving) || 
-       (gmc->resizing_l) || (gmc->resizing_r) || 
-       (gmc->resizing_u) || (gmc->resizing_d)) return;
+   if (_e_gadman_client_is_being_modified(gmc)) return;
+   _e_gadman_client_down_store(gmc);
    gmc->resizing_u = 1;
-   gmc->down_store_x = gmc->x;
-   gmc->down_store_y = gmc->y;
-   gmc->down_store_w = gmc->w;
-   gmc->down_store_h = gmc->h;
-   evas_pointer_canvas_xy_get(gmc->gadman->container->bg_evas, &gmc->down_x, 
&gmc->down_y);
 }
 
 static void
@@ -462,6 +642,7 @@
    
    gmc = data;
    gmc->resizing_u = 0;
+   _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
 }
 
@@ -487,9 +668,15 @@
    /* limit to min size */
    if (gmc->h < gmc->minh)
      {
-       gmc->y += (gmc->minh - gmc->h);
+       gmc->y = (gmc->down_store_y + gmc->down_store_h) - gmc->minh;
        gmc->h = gmc->minh;
      }
+   /* if we are atthe edge or beyond. assyme we want to be all the way there */
+   if (y <= gmc->zone->y)
+     {
+       gmc->h = (gmc->y + gmc->h) - gmc->zone->y;
+       gmc->y = gmc->zone->y;
+     }
    /* limit to max size */
    if (gmc->maxh > 0)
      {
@@ -499,10 +686,7 @@
             gmc->h = gmc->maxh;
          }
      }
-   /* FIXME: detect that the user ALMOST resized to full zone width/height */
-   /* and jump to it */
-   evas_object_move(gmc->control_object, gmc->x, gmc->y);
-   evas_object_resize(gmc->control_object, gmc->w, gmc->h);
+   _e_gadman_client_geometry_apply(gmc);
 }
 
 static void
@@ -511,15 +695,9 @@
    E_Gadman_Client *gmc;
    
    gmc = data;
-   if ((gmc->moving) || 
-       (gmc->resizing_l) || (gmc->resizing_r) || 
-       (gmc->resizing_u) || (gmc->resizing_d)) return;
+   if (_e_gadman_client_is_being_modified(gmc)) return;
+   _e_gadman_client_down_store(gmc);
    gmc->resizing_d = 1;
-   gmc->down_store_x = gmc->x;
-   gmc->down_store_y = gmc->y;
-   gmc->down_store_w = gmc->w;
-   gmc->down_store_h = gmc->h;
-   evas_pointer_canvas_xy_get(gmc->gadman->container->bg_evas, &gmc->down_x, 
&gmc->down_y);
 }
 
 static void
@@ -529,6 +707,7 @@
    
    gmc = data;
    gmc->resizing_d = 0;
+   _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
 }
 
@@ -555,6 +734,11 @@
      {
        gmc->h = gmc->minh;
      }
+   /* if we are atthe edge or beyond. assyme we want to be all the way there */
+   if (y >= (gmc->zone->y + gmc->zone->h - 1))
+     {
+       gmc->h = gmc->zone->y + gmc->zone->h - gmc->y;
+     }
    /* limit to max size */
    if (gmc->maxh > 0)
      {
@@ -563,9 +747,111 @@
             gmc->h = gmc->maxh;
          }
      }
-   /* FIXME: detect that the user ALMOST resized to full zone width/height */
-   /* and jump to it */
-   evas_object_move(gmc->control_object, gmc->x, gmc->y);
-   evas_object_resize(gmc->control_object, gmc->w, gmc->h);
+   _e_gadman_client_geometry_apply(gmc);
+}
+
+static void
+_e_gadman_cb_menu_end(void *data, E_Menu *m)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   e_object_del(E_OBJECT(m));
+   gmc->menu = NULL;
+}
+
+static void
+_e_gadman_cb_half_width(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   gmc->w = gmc->zone->w / 2;
+   if (gmc->w < gmc->minw) gmc->w = gmc->minw;
+   if (gmc->maxw > 0)
+     {
+       if (gmc->w > gmc->maxw) gmc->w = gmc->maxw;
+     }
+   _e_gadman_client_geometry_apply(gmc);
+   _e_gadman_client_geometry_to_align(gmc);
+   e_gadman_client_save(gmc);
+}
+
+static void
+_e_gadman_cb_full_width(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   gmc->w = gmc->zone->w;
+   if (gmc->w < gmc->minw) gmc->w = gmc->minw;
+   if (gmc->maxw > 0)
+     {
+       if (gmc->w > gmc->maxw) gmc->w = gmc->maxw;
+     }
+   gmc->x = gmc->zone->x + ((gmc->zone->w - gmc->w) / 2);
+   _e_gadman_client_geometry_apply(gmc);
+   _e_gadman_client_geometry_to_align(gmc);
+   e_gadman_client_save(gmc);
+}
+
+static void
+_e_gadman_cb_center_horiz(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   gmc->x = gmc->zone->x + ((gmc->zone->w - gmc->w) / 2);
+   _e_gadman_client_geometry_apply(gmc);
+   _e_gadman_client_geometry_to_align(gmc);
+   e_gadman_client_save(gmc);
+}
+
+static void
+_e_gadman_cb_half_height(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   gmc->h = gmc->zone->h / 2;
+   if (gmc->h < gmc->minh) gmc->h = gmc->minh;
+   if (gmc->maxh > 0)
+     {
+       if (gmc->h > gmc->maxh) gmc->h = gmc->maxh;
+     }
+   gmc->y = gmc->zone->y + ((gmc->zone->h - gmc->h) / 2);
+   _e_gadman_client_geometry_apply(gmc);
+   _e_gadman_client_geometry_to_align(gmc);
+   e_gadman_client_save(gmc);
+}
+
+static void
+_e_gadman_cb_full_height(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   gmc->h = gmc->zone->h;
+   if (gmc->h < gmc->minh) gmc->h = gmc->minh;
+   if (gmc->maxh > 0)
+     {
+       if (gmc->h > gmc->maxh) gmc->h = gmc->maxh;
+     }
+   gmc->y = gmc->zone->y + ((gmc->zone->h - gmc->h) / 2);
+   _e_gadman_client_geometry_apply(gmc);
+   _e_gadman_client_geometry_to_align(gmc);
+   e_gadman_client_save(gmc);
+}
+
+static void
+_e_gadman_cb_center_vert(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Gadman_Client *gmc;
+   
+   gmc = data;
+   gmc->y = gmc->zone->y + ((gmc->zone->h - gmc->h) / 2);
+   _e_gadman_client_geometry_apply(gmc);
+   _e_gadman_client_geometry_to_align(gmc);
+   e_gadman_client_save(gmc);
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadman.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_gadman.h  17 Jan 2005 10:05:15 -0000      1.4
+++ e_gadman.h  17 Jan 2005 16:18:34 -0000      1.5
@@ -50,6 +50,8 @@
    E_Gadman            *gadman;
    
    Evas_Object         *control_object;
+   Evas_Object         *event_object;
+   E_Menu              *menu;
    Evas_Coord           down_x, down_y;
    Evas_Coord           down_store_x, down_store_y, down_store_w, down_store_h;
    unsigned char        moving : 1;
@@ -86,6 +88,7 @@
 EAPI void             e_gadman_client_aspect_set(E_Gadman_Client *gmc, double 
mina, double maxa);
 EAPI void             e_gadman_client_geometry_get(E_Gadman_Client *gmc, 
Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
 EAPI void             e_gadman_client_change_func_set(E_Gadman_Client *gmc, 
void (*func) (void *data, E_Gadman_Client *gmc, E_Gadman_Change change), void 
*data);
+EAPI E_Menu          *e_gadman_client_menu_new(E_Gadman_Client *gmc);
 
 #endif
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -3 -r1.28 -r1.29
--- e_main.c    17 Jan 2005 08:54:37 -0000      1.28
+++ e_main.c    17 Jan 2005 16:18:34 -0000      1.29
@@ -543,6 +543,7 @@
             gmc->y = 100;
             gmc->w = 150;
             gmc->h = 150;
+            e_gadman_client_min_size_set(gmc, 20, 20);
          }
      }
    free(roots);




-------------------------------------------------------
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