[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.orgDate: Fri Feb 2 11:21:46 EET 2007
- Previous message: [maemo-commits] r9550 - in projects/haf/branches: . hildon-theme-plankton
- Next message: [maemo-commits] r9552 - projects/haf/trunk/libhildonmime/docs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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); }
- Previous message: [maemo-commits] r9550 - in projects/haf/branches: . hildon-theme-plankton
- Next message: [maemo-commits] r9552 - projects/haf/trunk/libhildonmime/docs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]