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

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Mar 1 17:36:21 EET 2007
Author: jobi
Date: 2007-03-01 17:36:18 +0200 (Thu, 01 Mar 2007)
New Revision: 10296

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-home-applet.c
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-home-area.c
   projects/haf/trunk/hildon-desktop/src/hd-home-l10n.h
   projects/haf/trunk/hildon-desktop/src/hd-home-window.c
Log:

2007-03-01  Johan Bilien  <johan.bilien at nokia.com>

	* libhildondesktop/hildon-home-area.c:
	- added snap-to-grid boolean property
	* libhildondesktop/hildon-home-applet.c:
	- check the parent property to know whether to snap to grid
	* src/hd-home-window.c:
	- Added check menu item connected to this property
	


Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-03-01 15:16:29 UTC (rev 10295)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-03-01 15:36:18 UTC (rev 10296)
@@ -1,6 +1,15 @@
 2007-03-01  Johan Bilien  <johan.bilien at nokia.com>
 
+	* libhildondesktop/hildon-home-area.c:
+	- added snap-to-grid boolean property
 	* libhildondesktop/hildon-home-applet.c:
+	- check the parent property to know whether to snap to grid
+	* src/hd-home-window.c:
+	- Added check menu item connected to this property
+	
+2007-03-01  Johan Bilien  <johan.bilien at nokia.com>
+
+	* libhildondesktop/hildon-home-applet.c:
 	- added hildon_home_snap_to_grid
 	- call the latter when releasing the drag
 

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-home-applet.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-home-applet.c	2007-03-01 15:16:29 UTC (rev 10295)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-home-applet.c	2007-03-01 15:36:18 UTC (rev 10296)
@@ -78,8 +78,6 @@
   gboolean      layout_mode;
   HildonHomeAppletResizeType resize_type;
 
-  gboolean      snap_to_grid;
-
   GdkPixbuf    *close_button;
   GdkWindow    *close_button_window;
   GdkPixbuf    *resize_handle;
@@ -434,7 +432,6 @@
   priv = HILDON_HOME_APPLET_GET_PRIVATE (self);
 
   priv->layout_mode = FALSE;
-  priv->snap_to_grid = TRUE;
   
   if (klass->close_button)
     {
@@ -1402,8 +1399,14 @@
 
   if (priv->timeout)
     {
+      gboolean snap_to_grid = FALSE;
 
-      if (priv->snap_to_grid)
+      if (applet->parent)
+        g_object_get (G_OBJECT (applet->parent),
+                      "snap-to-grid", &snap_to_grid,
+                      NULL);
+
+      if (snap_to_grid)
         hildon_home_applet_snap_to_grid (HILDON_HOME_APPLET (applet));
 
       g_source_remove (priv->timeout);

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-home-area.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-home-area.c	2007-03-01 15:16:29 UTC (rev 10295)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-home-area.c	2007-03-01 15:36:18 UTC (rev 10296)
@@ -35,7 +35,8 @@
 
 enum
 {
-  HILDON_HOME_AREA_PROPERTY_LAYOUT_MODE = 1
+  HILDON_HOME_AREA_PROPERTY_LAYOUT_MODE = 1,
+  HILDON_HOME_AREA_PROPERTY_SNAP_TO_GRID
 };
 
 typedef struct HildonHomeAreaPriv_
@@ -43,6 +44,8 @@
   gboolean      layout_mode;
   gboolean      layout_changed;
 
+  gboolean      snap_to_grid;
+
   GHashTable   *layout;
 
   GList        *to_add;
@@ -250,11 +253,21 @@
                                  "Whether the home area is in layout "
                                  "mode",
                                  FALSE,
-                                 G_PARAM_READABLE | G_PARAM_WRITABLE);
+                                 G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
 
   g_object_class_install_property (object_class,
                                    HILDON_HOME_AREA_PROPERTY_LAYOUT_MODE,
                                    pspec);
+  
+  pspec =  g_param_spec_boolean ("snap-to-grid",
+                                 "Snap to grid",
+                                 "Whether applets should snap to grid",
+                                 TRUE,
+                                 G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+
+  g_object_class_install_property (object_class,
+                                   HILDON_HOME_AREA_PROPERTY_SNAP_TO_GRID,
+                                   pspec);
                 
 }
 
@@ -286,6 +299,9 @@
                                const GValue *value,
                                GParamSpec   *pspec)
 {
+  HildonHomeAreaPriv      *priv;
+  priv = HILDON_HOME_AREA_GET_PRIVATE (HILDON_HOME_AREA (object));
+
   switch (property_id)
     {
       case HILDON_HOME_AREA_PROPERTY_LAYOUT_MODE:
@@ -293,6 +309,10 @@
                                             g_value_get_boolean (value));
            break;
 
+      case HILDON_HOME_AREA_PROPERTY_SNAP_TO_GRID:
+           priv->snap_to_grid = g_value_get_boolean (value);
+           break;
+
       default:
           G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
           break;
@@ -313,6 +333,10 @@
       case HILDON_HOME_AREA_PROPERTY_LAYOUT_MODE:
           g_value_set_boolean (value, priv->layout_mode);
           break;
+      
+      case HILDON_HOME_AREA_PROPERTY_SNAP_TO_GRID:
+           g_value_set_boolean (value, priv->snap_to_grid);
+           break;
 
       default:
           G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);

Modified: projects/haf/trunk/hildon-desktop/src/hd-home-l10n.h
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-home-l10n.h	2007-03-01 15:16:29 UTC (rev 10295)
+++ projects/haf/trunk/hildon-desktop/src/hd-home-l10n.h	2007-03-01 15:36:18 UTC (rev 10296)
@@ -54,6 +54,7 @@
 #define HH_MENU_LAYOUT_SELECT       _MAD("home_me_layout_select_applets")
 #define HH_MENU_LAYOUT_ACCEPT       _MAD("home_me_layout_accept_layout")
 #define HH_MENU_LAYOUT_CANCEL       _MAD("home_me_layout_cancel")
+#define HH_MENU_LAYOUT_SNAP_TO_GRID "Snap to grid"
 #define HH_MENU_LAYOUT_HELP         _MAD("home_me_layout_help")
 
 /* applet settings unavailable banner */

Modified: projects/haf/trunk/hildon-desktop/src/hd-home-window.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-home-window.c	2007-03-01 15:16:29 UTC (rev 10295)
+++ projects/haf/trunk/hildon-desktop/src/hd-home-window.c	2007-03-01 15:36:18 UTC (rev 10296)
@@ -37,6 +37,8 @@
 #include <libhildondesktop/hildon-home-area.h>
 #include <libhildondesktop/hildon-home-titlebar.h>
 
+#include <gtk/gtkcheckmenuitem.h>
+
 #ifdef HAVE_LIBHILDON
 #include <hildon/hildon-banner.h>
 #include <hildon/hildon-note.h>
@@ -165,6 +167,9 @@
 hd_home_window_layout_mode_cancel (HildonHomeWindow *window);
 
 static void
+hd_home_window_snap_toggled (HDHomeWindow *window, GtkCheckMenuItem *item);
+
+static void
 hd_home_window_show_layout_mode_banner (HDHomeWindow *window);
 
 static gboolean
@@ -736,8 +741,9 @@
 static GtkWidget *
 hd_home_window_build_layout_menu (HDHomeWindow *window)
 {
-  GtkWidget *menu;
-  GtkWidget *mi;
+  GtkWidget    *menu;
+  GtkWidget    *mi;
+  GtkWidget    *area;
 
   menu = gtk_menu_new ();
 
@@ -762,6 +768,20 @@
                             window);
   gtk_widget_show (mi);
 
+  mi = gtk_check_menu_item_new_with_label (HH_MENU_LAYOUT_SNAP_TO_GRID);
+  gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
+  g_signal_connect_swapped (mi, "toggled",
+                            G_CALLBACK (hd_home_window_snap_toggled),
+                            window);
+  area = hildon_home_window_get_area (HILDON_HOME_WINDOW (window));
+  if (area)
+    {
+      gboolean snap_to_grid;
+      g_object_get (G_OBJECT (area), "snap-to-grid", &snap_to_grid, NULL);
+      gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (mi), snap_to_grid);
+    }
+  gtk_widget_show (mi);
+
 #ifdef HAVE_LIBOSSOHELP
   mi = gtk_menu_item_new_with_label (HH_MENU_LAYOUT_HELP);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
@@ -904,6 +924,20 @@
 #endif
 
 static void
+hd_home_window_snap_toggled (HDHomeWindow *window, GtkCheckMenuItem *item)
+{
+  GtkWidget *area;
+
+  area = hildon_home_window_get_area (HILDON_HOME_WINDOW (window));
+
+  if (area)
+    g_object_set (area,
+                  "snap-to-grid", gtk_check_menu_item_get_active (item),
+                  NULL);
+
+}
+
+static void
 hd_home_window_ensure_menu_status (HDHomeWindow *window)
 {
   HDHomeWindowPrivate  *priv;


More information about the maemo-commits mailing list