Enlightenment CVS committal

Author  : rephorm
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.h e_border.c 


Log Message:


the start of minimize / maximize actions.
don't allow resize while shaded.


===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- e_border.h  11 Dec 2004 04:02:26 -0000      1.7
+++ e_border.h  18 Dec 2004 05:47:08 -0000      1.8
@@ -114,12 +114,18 @@
    unsigned char   new_client : 1;
    unsigned char   re_manage : 1;
    unsigned char   shaded : 1;
+   unsigned char   maximized : 1;
+   unsigned char   minimized : 1;
 
    unsigned char   changed : 1;
 
    unsigned char   ignore_first_unmap;
    unsigned char   resize_mode;
-   
+  
+   struct {
+      int x, y, w, h;
+   } saved;
+
    struct {
       unsigned int visible : 1;
       unsigned int pos : 1;
@@ -151,6 +157,10 @@
 EAPI void      e_border_focus_set(E_Border *bd, int focus, int set);
 EAPI void      e_border_shade(E_Border *bd);
 EAPI void      e_border_unshade(E_Border *bd);
+EAPI void      e_border_maximize(E_Border *bd);
+EAPI void      e_border_unmaximize(E_Border *bd);
+EAPI void      e_border_minimize(E_Border *bd);
+EAPI void      e_border_unminimize(E_Border *bd);
     
 EAPI E_Border *e_border_find_by_client_window(Ecore_X_Window win);
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- e_border.c  15 Dec 2004 11:48:38 -0000      1.18
+++ e_border.c  18 Dec 2004 05:47:08 -0000      1.19
@@ -389,6 +389,8 @@
        bd->shaded = 1;
        bd->changes.shaded = 1;
        bd->changed = 1;
+
+       edje_object_signal_emit(bd->bg_object, "shade", "");
      }
 }
 
@@ -404,9 +406,86 @@
        bd->shaded = 0;
        bd->changes.shaded = 1;
        bd->changed = 1;
+
+       edje_object_signal_emit(bd->bg_object, "unshade", "");
+     }
+}
+
+void
+e_border_maximize(E_Border *bd)
+{
+   E_OBJECT_CHECK(bd);
+   if (!bd->maximized)
+     {
+       printf("MAXIMIZE!!\n");
+       bd->saved.x = bd->x;
+       bd->saved.y = bd->y;
+       bd->saved.w = bd->w;
+       bd->saved.h = bd->h;
+
+       /* FIXME maximize intelligently */
+    e_border_move_resize(bd, 0, 0, bd->container->w, bd->container->h);
+    bd->maximized = 1;
+       bd->changes.pos = 1;
+       bd->changes.size = 1;
+       bd->changed = 1;
+
+       edje_object_signal_emit(bd->bg_object, "maximize", "");
      }
 }
 
+void
+e_border_unmaximize(E_Border *bd)
+{
+   E_OBJECT_CHECK(bd);
+   if (bd->maximized)
+     {
+       printf("UNMAXIMIZE!!\n");
+    e_border_move_resize(bd, bd->saved.x, bd->saved.y, bd->saved.w, 
bd->saved.h);
+
+    bd->maximized = 0;
+       bd->changes.pos = 1;
+       bd->changes.size = 1;
+       bd->changed = 1;
+
+       edje_object_signal_emit(bd->bg_object, "unmaximize", "");
+     }
+}
+
+void
+e_border_minimize(E_Border *bd)
+{
+   E_OBJECT_CHECK(bd);
+   if (!bd->minimized)
+     {
+       printf("MINIMIZE!!\n");
+
+       /* FIXME set hints, etc */
+       e_border_hide(bd);
+
+       bd->minimized = 1;
+
+       edje_object_signal_emit(bd->bg_object, "minimize", "");
+     }
+}
+
+void
+e_border_unminimize(E_Border *bd)
+{
+   E_OBJECT_CHECK(bd);
+   if (bd->minimized)
+     {
+       printf("UNMINIMIZE!!\n");
+       /* FIXME set hints, etc */
+       e_border_show(bd);
+
+       bd->minimized = 1;
+
+       edje_object_signal_emit(bd->bg_object, "unminimize", "");
+     }
+}
+
+
 E_Border *
 e_border_find_by_client_window(Ecore_X_Window win)
 {
@@ -841,6 +920,9 @@
    E_Border *bd;
    
    bd = data;
+
+   if (bd->shaded) return;
+
    bd->resize_mode = RESIZE_TL;
    _e_border_moveinfo_gather(bd, source);
    GRAV_SET(bd, ECORE_X_GRAVITY_SE);
@@ -852,6 +934,9 @@
    E_Border *bd;
    
    bd = data;
+
+   if (bd->shaded) return;
+
    bd->resize_mode = RESIZE_T;
    _e_border_moveinfo_gather(bd, source);
    GRAV_SET(bd, ECORE_X_GRAVITY_S);
@@ -864,6 +949,9 @@
    E_Border *bd;
    
    bd = data;
+
+   if (bd->shaded) return;
+
    bd->resize_mode = RESIZE_TR;
    _e_border_moveinfo_gather(bd, source);
    GRAV_SET(bd, ECORE_X_GRAVITY_SW);
@@ -875,6 +963,9 @@
    E_Border *bd;
    
    bd = data;
+
+   if (bd->shaded) return;
+
    bd->resize_mode = RESIZE_R;
    _e_border_moveinfo_gather(bd, source);
    GRAV_SET(bd, ECORE_X_GRAVITY_W);
@@ -886,6 +977,9 @@
    E_Border *bd;
    
    bd = data;
+
+   if (bd->shaded) return;
+
    bd->resize_mode = RESIZE_BR;
    _e_border_moveinfo_gather(bd, source);
    GRAV_SET(bd, ECORE_X_GRAVITY_NW);
@@ -897,6 +991,9 @@
    E_Border *bd;
    
    bd = data;
+
+   if (bd->shaded) return;
+
    bd->resize_mode = RESIZE_B;
    _e_border_moveinfo_gather(bd, source);
    GRAV_SET(bd, ECORE_X_GRAVITY_N);
@@ -908,6 +1005,9 @@
    E_Border *bd;
    
    bd = data;
+
+   if (bd->shaded) return;
+
    bd->resize_mode = RESIZE_BL;
    _e_border_moveinfo_gather(bd, source);
    GRAV_SET(bd, ECORE_X_GRAVITY_NE);
@@ -919,6 +1019,9 @@
    E_Border *bd;
    
    bd = data;
+
+   if (bd->shaded) return;
+
    bd->resize_mode = RESIZE_L;
    _e_border_moveinfo_gather(bd, source);
    GRAV_SET(bd, ECORE_X_GRAVITY_E);
@@ -931,6 +1034,9 @@
    int x, y;
    
    bd = data;
+
+   if (bd->shaded) return;
+
    _e_border_resize_handle(bd);
    bd->resize_mode = RESIZE_NONE;
    bd->changes.reset_gravity = 1;
@@ -956,11 +1062,26 @@
             e_object_del(E_OBJECT(bd));
          }
      }
+
    else if (!strcmp(source, "shade"))
      {
        if (bd->shaded) e_border_unshade(bd);
        else e_border_shade(bd);
      }
+   
+   else if (!strcmp(source, "maximize"))
+     {
+       if (bd->maximized) e_border_unmaximize(bd);
+       else e_border_maximize(bd);
+     }
+   
+   else if (!strcmp(source, "minimize"))
+     {
+       if (bd->minimized) e_border_unminimize(bd);
+       else e_border_minimize(bd);
+     }
+   
+         
 }
 
 static int




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to