Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_container.c e_container.h 


Log Message:
Make the bg black when doing fullscreen.
Care about window constraints when doing fullscreen.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.266
retrieving revision 1.267
diff -u -3 -r1.266 -r1.267
--- e_border.c  18 Jun 2005 04:35:40 -0000      1.266
+++ e_border.c  18 Jun 2005 05:08:17 -0000      1.267
@@ -85,6 +85,7 @@
 static void _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_on_top(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_borderless(void *data, E_Menu *m, E_Menu_Item 
*mi);
+static void _e_border_menu_cb_fullscreen(void *data, E_Menu *m, E_Menu_Item 
*mi);
 static void _e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item 
*mi);
 static void _e_border_menu_cb_sendto(void *data, E_Menu *m, E_Menu_Item *mi);
 
@@ -1252,7 +1253,11 @@
    if ((bd->maximized) || (bd->shaded) || (bd->shading)) return;
    if (!bd->fullscreen)
      {
+       int x, y, w, h;
 //     printf("FULLSCREEEN!\n");
+       /* make container bg black and show it */
+       e_container_bg_black(bd->zone->container);
+
        bd->saved.x = bd->x;
        bd->saved.y = bd->y;
        bd->saved.w = bd->w;
@@ -1262,11 +1267,14 @@
 
        bd->layer = 200;
        e_border_raise(bd);
-       e_border_move_resize(bd,
-                            bd->zone->x - bd->client_inset.l,
-                            bd->zone->y - bd->client_inset.t,
-                            bd->zone->w + bd->client_inset.l + 
bd->client_inset.r,
-                            bd->zone->h + bd->client_inset.t + 
bd->client_inset.b);
+       x = bd->zone->x - bd->client_inset.l;
+       y = bd->zone->y - bd->client_inset.t;
+       w = bd->zone->w + bd->client_inset.l + bd->client_inset.r;
+       h = bd->zone->h + bd->client_inset.t + bd->client_inset.b;
+       _e_border_resize_limit(bd, &w, &h);
+       /* center x */
+       x = x + (bd->zone->w + bd->client_inset.l + bd->client_inset.r - w) / 2;
+       e_border_move_resize(bd, x, y, w, h);
 
        bd->fullscreen = 1;
        bd->changes.pos = 1;
@@ -1287,6 +1295,9 @@
    if (bd->fullscreen)
      {
 //     printf("UNFULLSCREEEN!\n");
+       /* make container bg white and hide it */
+       e_container_bg_white(bd->zone->container);
+
        e_hints_window_fullscreen_set(bd, 0);
        bd->fullscreen = 0;
 
@@ -4590,6 +4601,16 @@
                             "widgets/border/default/borderless");
 
    mi = e_menu_item_new(m);
+   e_menu_item_label_set(mi, _("Fullscreen"));
+   e_menu_item_check_set(mi, 1);
+   e_menu_item_toggle_set(mi, bd->fullscreen);
+   e_menu_item_callback_set(mi, _e_border_menu_cb_fullscreen, bd);
+   e_menu_item_icon_edje_set(mi,
+                            (char *)e_theme_edje_file_get("base/theme/borders",
+                                                          
"widgets/border/default/fullscreen"),
+                            "widgets/border/default/fullscreen");
+
+   mi = e_menu_item_new(m);
    e_menu_item_separator_set(mi, 1);
 
    mi = e_menu_item_new(m);
@@ -4742,11 +4763,11 @@
      }
    e_container_border_raise(bd);
 }
+
 static void
 _e_border_menu_cb_borderless(void *data, E_Menu *m, E_Menu_Item *mi)
 {
    E_Border *bd;
-
    int toggle;
 
    bd = data;
@@ -4763,6 +4784,21 @@
    bd->changed = 1;
 }
 
+static void
+_e_border_menu_cb_fullscreen(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Border *bd;
+   int toggle;
+
+   bd = data;
+   if (!bd) return;
+   
+   toggle = e_menu_item_toggle_get(mi);
+   if (toggle)
+     e_border_fullscreen(bd);
+   else
+     e_border_unfullscreen(bd);
+}
 
 static void
 _e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item *mi)
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_container.c,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -3 -r1.66 -r1.67
--- e_container.c       3 Jun 2005 11:41:19 -0000       1.66
+++ e_container.c       18 Jun 2005 05:08:17 -0000      1.67
@@ -292,6 +292,26 @@
 #endif
 }
 
+void
+e_container_bg_black(E_Container *con)
+{
+   Evas_Object *o;
+
+   o = con->bg_blank_object;
+   evas_object_layer_set(o, 100);
+   evas_object_color_set(o, 0, 0, 0, 255);
+}
+
+void
+e_container_bg_white(E_Container *con)
+{
+   Evas_Object *o;
+
+   o = con->bg_blank_object;
+   evas_object_layer_set(o, -100);
+   evas_object_color_set(o, 255, 255, 255, 255);
+}
+
 E_Zone *
 e_container_zone_at_point_get(E_Container *con, int x, int y)
 {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_container.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- e_container.h       26 May 2005 15:30:10 -0000      1.23
+++ e_container.h       18 Jun 2005 05:08:17 -0000      1.24
@@ -98,6 +98,9 @@
 EAPI void         e_container_move_resize(E_Container *con, int x, int y, int 
w, int h);
 EAPI void         e_container_raise(E_Container *con);
 EAPI void         e_container_lower(E_Container *con);
+EAPI void         e_container_bg_black(E_Container *con);
+EAPI void         e_container_bg_white(E_Container *con);
+
 
 EAPI E_Border_List *e_container_border_list_first(E_Container *con);
 EAPI E_Border_List *e_container_border_list_last(E_Container *con);




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to