[maemo-commits] [maemo-commits] r9551 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Feb 2 11:21:46 EET 2007
Author: lucasr
Date: 2007-02-02 11:21:44 +0200 (Fri, 02 Feb 2007)
New Revision: 9551

Modified:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.h
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-panel-window.c
Log:
2007-02-02  Lucas Rocha  <lucas.rocha at nokia.com>

	* src/hd-panel-window.c: added theme code for panel itself in addition
	the plugin's.
	* libhildondesktop/hildon-desktop-panel-window.[ch]: added
	"orientation-changed" signal.


Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2007-02-02 09:09:13 UTC (rev 9550)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2007-02-02 09:21:44 UTC (rev 9551)
@@ -1,3 +1,10 @@
+2007-02-02  Lucas Rocha  <lucas.rocha at nokia.com>
+
+	* src/hd-panel-window.c: added theme code for panel itself in addition
+	the plugin's.
+	* libhildondesktop/hildon-desktop-panel-window.[ch]: added
+	"orientation-changed" signal.
+
 2007-02-01  Johan Bilien  <johan.bilien at nokia.com>
 
 	* libhildondesktop/hildon-home-area.c: Fixed a double free of

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.c	2007-02-02 09:09:13 UTC (rev 9550)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.c	2007-02-02 09:21:44 UTC (rev 9551)
@@ -51,6 +51,14 @@
   PROP_MAG_HEIGHT
 };
 
+enum
+{
+  SIGNAL_ORIENTATION_CHANGED,
+  N_SIGNALS
+};
+
+static gint signals[N_SIGNALS];  
+
 typedef enum
 {
   HILDON_DESKTOP_PANEL_WINDOW_GRAB_NONE = 0,
@@ -93,18 +101,48 @@
 
 /*static void set_focus_forall_cb (GtkWidget *widget, gpointer data);*/
 static void hildon_desktop_panel_window_finalize (GObject *self);
-static GObject *hildon_desktop_panel_window_constructor (GType gtype, guint n_params, GObjectConstructParam *params);
-static void hildon_desktop_panel_window_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);		   
-static void hildon_desktop_panel_window_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
+
+static GObject *hildon_desktop_panel_window_constructor (GType gtype, 
+                                                         guint n_params, 
+                                                         GObjectConstructParam *params);
+
+static void hildon_desktop_panel_window_get_property (GObject *object, 
+                                                      guint prop_id, 
+                                                      GValue *value, 
+                                                      GParamSpec *pspec);		   
+
+static void hildon_desktop_panel_window_set_property (GObject *object, 
+                                                      guint prop_id, 
+                                                      const GValue *value, 
+                                                      GParamSpec *pspec);
+
 static void hildon_desktop_panel_window_check_resize (GtkContainer *container);
-static gboolean hildon_desktop_panel_press_button_event (GtkWidget *widget, GdkEventButton *event);
-static gboolean hildon_desktop_panel_release_button_event (GtkWidget *widget, GdkEventButton *event);
-static gboolean hildon_desktop_panel_motion_notify_event (GtkWidget *widget, GdkEventMotion *event);
-static void hildon_desktop_panel_size_request (GtkWidget *widget, GtkRequisition *requisition);
-static void hildon_desktop_panel_size_allocate (GtkWidget *widget, GtkAllocation  *allocation);
-static void hildon_desktop_panel_stop_grab (HildonDesktopPanelWindow *window, guint32 timestamp);
-static gboolean hildon_desktop_panel_grab_motion_event (HildonDesktopPanelWindow *window, GdkEventMotion *event);
-static void hildon_desktop_panel_calc_orientation (HildonDesktopPanelWindow *window, gint px, gint py);
+
+static gboolean hildon_desktop_panel_press_button_event (GtkWidget *widget, 
+                                                         GdkEventButton *event);
+
+static gboolean hildon_desktop_panel_release_button_event (GtkWidget *widget, 
+                                                           GdkEventButton *event);
+
+static gboolean hildon_desktop_panel_motion_notify_event (GtkWidget *widget, 
+                                                          GdkEventMotion *event);
+
+static void hildon_desktop_panel_size_request (GtkWidget *widget, 
+                                               GtkRequisition *requisition);
+
+static void hildon_desktop_panel_size_allocate (GtkWidget *widget, 
+                                                GtkAllocation *allocation);
+
+static void hildon_desktop_panel_stop_grab (HildonDesktopPanelWindow *window, 
+                                            guint32 timestamp);
+
+static gboolean hildon_desktop_panel_grab_motion_event (HildonDesktopPanelWindow *window, 
+                                                        GdkEventMotion *event);
+
+static void hildon_desktop_panel_calc_orientation (HildonDesktopPanelWindow *window, 
+                                                   gint px, 
+                                                   gint py);
+
 static void hildon_desktop_panel_begin_grab (HildonDesktopPanelWindow *window,
                                              HildonDesktopPanelWindowState state,
                                              gboolean grab_keyboard,
@@ -167,6 +205,16 @@
 
   container_class->check_resize = hildon_desktop_panel_window_check_resize;
   
+  signals[SIGNAL_ORIENTATION_CHANGED] =
+        g_signal_new ("orientation-changed",
+                      G_OBJECT_CLASS_TYPE (object_class),
+                      G_SIGNAL_RUN_FIRST,
+		      G_STRUCT_OFFSET (HildonDesktopPanelWindowClass, orientation_changed),
+                      NULL, NULL,
+                      g_cclosure_marshal_VOID__INT,
+                      G_TYPE_NONE, 1,
+                      G_TYPE_INT);
+
   g_object_class_install_property (object_class,
 		  		   PROP_HOR_W,
 				   g_param_spec_int(
@@ -535,9 +583,12 @@
 
   if (orientation != window->priv->orientation)
     change_position = TRUE;
-
+    
   if (change_position)  
+  {
     window->priv->orientation = orientation;
+    g_signal_emit (window, signals[SIGNAL_ORIENTATION_CHANGED], 0, orientation);
+  }
 
   if (HILDON_DESKTOP_WINDOW (window)->container && rotate)
   {

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.h	2007-02-02 09:09:13 UTC (rev 9550)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.h	2007-02-02 09:21:44 UTC (rev 9551)
@@ -73,11 +73,14 @@
 {
   HildonDesktopWindowClass parent_class;
 
-  void (*set_sensitive) (HildonDesktopPanelWindow *window,
-      		         gboolean                  sensitive);
+  void (*set_sensitive)         (HildonDesktopPanelWindow *window,
+      		                 gboolean                  sensitive);
   
-  void (*set_focus)     (HildonDesktopPanelWindow *window,
-			 gboolean                  focus);
+  void (*set_focus)             (HildonDesktopPanelWindow *window,
+			         gboolean                  focus);
+  
+  void (*orientation_changed)   (HildonDesktopPanelWindow *window,
+			         HildonDesktopPanelWindowOrientation new_orientation);
 };
 
 GType                hildon_desktop_panel_window_get_type       (void);

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-panel-window.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-panel-window.c	2007-02-02 09:09:13 UTC (rev 9550)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-panel-window.c	2007-02-02 09:21:44 UTC (rev 9551)
@@ -37,11 +37,50 @@
 
 G_DEFINE_TYPE (HDPanelWindow, hd_panel_window, HILDON_DESKTOP_TYPE_PANEL_WINDOW);
 
-#define HD_PANEL_BUTTON_NAME_1      "hildon-navigator-button-one"
-#define HD_PANEL_BUTTON_NAME_2      "hildon-navigator-button-two"
-#define HD_PANEL_BUTTON_NAME_MIDDLE "hildon-navigator-button-three"
+#define HD_PANEL_WINDOW_NAME_TOP            "hildon-navigator-panel-top"
+#define HD_PANEL_WINDOW_NAME_BOTTOM         "hildon-navigator-panel-bottom"
+#define HD_PANEL_WINDOW_NAME_LEFT           "hildon-navigator-panel-left"
+#define HD_PANEL_WINDOW_NAME_RIGHT          "hildon-navigator-panel-right"
+#define HD_PANEL_WINDOW_BUTTON_NAME_1       "hildon-navigator-button-one"
+#define HD_PANEL_WINDOW_BUTTON_NAME_2       "hildon-navigator-button-two"
+#define HD_PANEL_WINDOW_BUTTON_NAME_MIDDLE  "hildon-navigator-button-three"
 
 static void
+hd_panel_window_set_style (HDPanelWindow *window, 
+                           HildonDesktopPanelWindowOrientation orientation)
+{
+  switch (orientation)
+  {
+    case HILDON_DESKTOP_PANEL_WINDOW_ORIENTATION_TOP:
+      gtk_widget_set_name (GTK_WIDGET (window), HD_PANEL_WINDOW_NAME_TOP);
+      break;
+
+    case HILDON_DESKTOP_PANEL_WINDOW_ORIENTATION_BOTTOM:
+      gtk_widget_set_name (GTK_WIDGET (window), HD_PANEL_WINDOW_NAME_BOTTOM);
+      break;
+
+    case HILDON_DESKTOP_PANEL_WINDOW_ORIENTATION_LEFT:
+      gtk_widget_set_name (GTK_WIDGET (window), HD_PANEL_WINDOW_NAME_LEFT);
+      break;
+
+    case HILDON_DESKTOP_PANEL_WINDOW_ORIENTATION_RIGHT:
+      gtk_widget_set_name (GTK_WIDGET (window), HD_PANEL_WINDOW_NAME_RIGHT);
+      break;
+
+    default:
+      gtk_widget_set_name (GTK_WIDGET (window), HD_PANEL_WINDOW_NAME_LEFT);
+      break;
+  }
+}
+
+static void
+hd_panel_window_orientation_changed (HildonDesktopPanelWindow *window, 
+                                     HildonDesktopPanelWindowOrientation new_orientation)
+{
+  hd_panel_window_set_style (HD_PANEL_WINDOW (window), new_orientation);
+}
+
+static void
 hd_panel_window_cadd (GtkContainer *container,
 		      GtkWidget *widget,
 		      gpointer user_data)
@@ -51,18 +90,18 @@
  
   if (position == 0)
   {
-    gtk_widget_set_name (widget, HD_PANEL_BUTTON_NAME_1);
-    gtk_widget_set_name (GTK_BIN (widget)->child, HD_PANEL_BUTTON_NAME_1);
+    gtk_widget_set_name (widget, HD_PANEL_WINDOW_BUTTON_NAME_1);
+    gtk_widget_set_name (GTK_BIN (widget)->child, HD_PANEL_WINDOW_BUTTON_NAME_1);
   }
   else if ((position % 2) != 0)
   {
-    gtk_widget_set_name (widget, HD_PANEL_BUTTON_NAME_2);
-    gtk_widget_set_name (GTK_BIN (widget)->child, HD_PANEL_BUTTON_NAME_2);
+    gtk_widget_set_name (widget, HD_PANEL_WINDOW_BUTTON_NAME_2);
+    gtk_widget_set_name (GTK_BIN (widget)->child, HD_PANEL_WINDOW_BUTTON_NAME_2);
   }
   else
   {
-    gtk_widget_set_name (widget, HD_PANEL_BUTTON_NAME_MIDDLE);
-    gtk_widget_set_name (GTK_BIN (widget)->child, HD_PANEL_BUTTON_NAME_MIDDLE);
+    gtk_widget_set_name (widget, HD_PANEL_WINDOW_BUTTON_NAME_MIDDLE);
+    gtk_widget_set_name (GTK_BIN (widget)->child, HD_PANEL_WINDOW_BUTTON_NAME_MIDDLE);
   }
 }
 
@@ -72,6 +111,7 @@
                              GObjectConstructParam  *params)
 {
   GObject *object;
+  HildonDesktopPanelWindowOrientation orientation;
   
   object = G_OBJECT_CLASS (hd_panel_window_parent_class)->constructor (gtype,
                                                                        n_params,
@@ -82,20 +122,30 @@
                     G_CALLBACK (hd_panel_window_cadd),
                     NULL);
 
+  g_object_get (G_OBJECT (object), 
+                "orientation", &orientation,
+                NULL);
+
+  hd_panel_window_set_style (HD_PANEL_WINDOW (object), orientation);
+  
   return object;
 }
-  
+ 
 static void
 hd_panel_window_class_init (HDPanelWindowClass *window_class)
 {
   GObjectClass *object_class;
-
+  HildonDesktopPanelWindowClass *panel_window_class;
+  
   object_class = G_OBJECT_CLASS (window_class);
-
-  object_class->constructor  = hd_panel_window_constructor;
+  panel_window_class = HILDON_DESKTOP_PANEL_WINDOW_CLASS (window_class);
+  
+  object_class->constructor = hd_panel_window_constructor;
+  panel_window_class->orientation_changed = hd_panel_window_orientation_changed;
 }
 
 static void
 hd_panel_window_init (HDPanelWindow *window)
 {
+  hd_panel_window_set_style (window, HILDON_DESKTOP_PANEL_WINDOW_ORIENTATION_LEFT);
 }


More information about the maemo-commits mailing list