[maemo-commits] [maemo-commits] r11575 - in projects/haf/trunk/hildon-desktop: . libhildondesktop

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu May 10 15:21:55 EEST 2007
Author: moimart
Date: 2007-05-10 15:21:52 +0300 (Thu, 10 May 2007)
New Revision: 11575

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
Log:
	* libhildondesktop/hildon-desktop-popup-menu.c:
        - Added "resize-parent" property if you don't want the menu to resize
        the parent.
	* ChangeLog updated.



Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-05-10 12:11:55 UTC (rev 11574)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-05-10 12:21:52 UTC (rev 11575)
@@ -1,3 +1,9 @@
+2007-05-10  Moises Martinez  <moises.martinez at nokia.com>
+
+	* libhildondesktop/hildon-desktop-popup-menu.c:
+	- Added "resize-parent" property if you don't want the menu to resize
+	the parent.
+
 2007-05-10  Lucas Rocha  <lucas.rocha at nokia.com>
 
 	* libhildondesktop/hildon-desktop-notification-manager.[ch]: added

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c	2007-05-10 12:11:55 UTC (rev 11574)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c	2007-05-10 12:21:52 UTC (rev 11575)
@@ -41,7 +41,8 @@
 
 enum
 {
-  PROP_POPUP_ITEM_HEIGHT=1
+  PROP_POPUP_ITEM_HEIGHT=1,
+  PROP_POPUP_RESIZE_PARENT	  
 };
 
 enum
@@ -69,6 +70,8 @@
   gdouble upper_hack;
 
   GtkMenuItem *selected_item;
+
+  gboolean     resize_parent;
 };
 
 static GObject *hildon_desktop_popup_menu_constructor (GType gtype,
@@ -100,6 +103,8 @@
   menu->priv->item_height  =
   menu->priv->n_items = 0;
 
+  menu->priv->resize_parent = TRUE;
+
   menu->priv->controls_on = FALSE;
 
   menu->priv->selected_item = NULL;
@@ -142,6 +147,16 @@
                                             G_MAXINT,
                                             40,
                                             G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+  g_object_class_install_property (object_class,
+                                   PROP_POPUP_RESIZE_PARENT,
+                                   g_param_spec_boolean(
+                                           "resize-parent",
+                                           "resize-parent",
+                                           "Whether resize or not parent window of menu",
+                                            TRUE,
+                                            G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
 }
 
 static GObject *
@@ -229,6 +244,10 @@
       g_value_set_uint (value, menu->priv->item_height);
       break;
 
+    case PROP_POPUP_RESIZE_PARENT:
+      g_value_set_boolean (value, menu->priv->resize_parent);
+      break;
+
    default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -249,6 +268,10 @@
       menu->priv->item_height = g_value_get_uint (value);
       break;
 
+   case PROP_POPUP_RESIZE_PARENT:
+      menu->priv->resize_parent = g_value_get_boolean (value);
+      break;
+
    default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -525,26 +548,29 @@
 	
   g_assert (HILDON_DESKTOP_IS_POPUP_MENU (menu));
   g_return_if_fail (GTK_IS_MENU_ITEM (item));
+  
+  if (menu->priv->resize_parent)
+  {	  
+    GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (menu));
+	  
+    if (GTK_IS_WINDOW (parent))
+    {
+      gtk_widget_size_request (parent, &req);
 
-  GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (menu));
-	
-  if (GTK_IS_WINDOW (parent))
-  {
-    gtk_widget_size_request (parent, &req);
+      if (GTK_IS_SEPARATOR_MENU_ITEM (item))
+      {
+        GtkRequisition req_sep;
 
-    if (GTK_IS_SEPARATOR_MENU_ITEM (item))
-    {
-      GtkRequisition req_sep;
+        gtk_widget_size_request (GTK_WIDGET (item), &req_sep);
+        gtk_widget_set_size_request (GTK_WIDGET (item), req.width, req_sep.height);	    
+      }
+      else
+        gtk_widget_set_size_request (GTK_WIDGET (item), req.width, menu->priv->item_height);
 
-      gtk_widget_size_request (GTK_WIDGET (item), &req_sep);
-      gtk_widget_set_size_request (GTK_WIDGET (item), req.width, req_sep.height);	    
-    }
-    else
-      gtk_widget_set_size_request (GTK_WIDGET (item), req.width, menu->priv->item_height);
+      gtk_widget_set_size_request (menu->priv->box_buttons, req.width, menu->priv->item_height);
+    }	  
+  }
 
-    gtk_widget_set_size_request (menu->priv->box_buttons, req.width, menu->priv->item_height);
-  }	  
-
   gtk_box_pack_end (GTK_BOX (menu->priv->box_items),
 		    GTK_WIDGET (item),
 		    FALSE, FALSE, 0);
@@ -552,7 +578,8 @@
 
   menu->priv->n_items++;
 
-  hildon_desktop_popup_menu_parent_size (menu);
+  if (menu->priv->resize_parent)
+    hildon_desktop_popup_menu_parent_size (menu);
 }
 
 void 
@@ -566,7 +593,8 @@
  
   menu->priv->n_items--;
 
-  hildon_desktop_popup_menu_parent_size (menu);
+  if (menu->priv->resize_parent)
+    hildon_desktop_popup_menu_parent_size (menu);
 }
 
 GList *


More information about the maemo-commits mailing list