[maemo-commits] [maemo-commits] r12719 - in projects/haf/trunk/hildon-desktop: . src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Wed Jul 11 16:43:34 EEST 2007
- Previous message: [maemo-commits] r12718 - in projects/haf/trunk/hildon-desktop: . libhildondesktop
- Next message: [maemo-commits] r12720 - in projects/haf/trunk/hildon-desktop: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: moimart Date: 2007-07-11 16:43:32 +0300 (Wed, 11 Jul 2007) New Revision: 12719 Added: projects/haf/trunk/hildon-desktop/src/hd-marshalers.list Modified: projects/haf/trunk/hildon-desktop/ChangeLog projects/haf/trunk/hildon-desktop/src/Makefile.am projects/haf/trunk/hildon-desktop/src/hd-panel-window-dialog.c projects/haf/trunk/hildon-desktop/src/statusbar.xml Log: 2007-07-11 Moises Martinez <moises.martinez at nokia.com> * src/Makefile.am: - Added marshaler for container's signal * src/hd-marshalers.list: - New marshaler for hd-panel-window-dialog.c * src/hd-panel-window-dialog.c: (hd_panel_window_dialog_notify_condition), (hd_panel_window_dialog_cadd), (hd_panel_window_dialog_queued), (hd_panel_window_dialog_constructor), (hd_panel_window_dialog_class_init): - Moved signal to gobject code to get advantage of dbus binding. - Connect only if the object hasn't been connected before. * src/statusbar.xml: - added signal Modified: projects/haf/trunk/hildon-desktop/ChangeLog =================================================================== --- projects/haf/trunk/hildon-desktop/ChangeLog 2007-07-11 13:40:05 UTC (rev 12718) +++ projects/haf/trunk/hildon-desktop/ChangeLog 2007-07-11 13:43:32 UTC (rev 12719) @@ -1,3 +1,19 @@ +2007-07-11 Moises Martinez <moises.martinez at nokia.com> + + * src/Makefile.am: + - Added marshaler for container's signal + * src/hd-marshalers.list: + - New marshaler for hd-panel-window-dialog.c + * src/hd-panel-window-dialog.c: + (hd_panel_window_dialog_notify_condition), + (hd_panel_window_dialog_cadd), (hd_panel_window_dialog_queued), + (hd_panel_window_dialog_constructor), + (hd_panel_window_dialog_class_init): + - Moved signal to gobject code to get advantage of dbus binding. + - Connect only if the object hasn't been connected before. + * src/statusbar.xml: + - added signal + 2007-07-10 Johan Bilien <johan.bilien at nokia.com> * libhildondesktop/hildon-home-area.c: Fixed compiler warning Modified: projects/haf/trunk/hildon-desktop/src/Makefile.am =================================================================== --- projects/haf/trunk/hildon-desktop/src/Makefile.am 2007-07-11 13:40:05 UTC (rev 12718) +++ projects/haf/trunk/hildon-desktop/src/Makefile.am 2007-07-11 13:43:32 UTC (rev 12719) @@ -2,7 +2,7 @@ pkgincludedir = $(includedir)/hildon-desktop/hildon-desktop pkgconfig_DATA = hildon-desktop.pc pkginclude_HEADERS = hd-plugin-loader.h \ - hd-config.h + hd-config.h bin_PROGRAMS = hd-hung-app-handler hildon-desktop @@ -112,6 +112,7 @@ $(OTHERS_BUTTON_SOURCES) \ hd-desktop.c \ hd-desktop.h \ + hd-marshalers.c \ hd-select-plugins-dialog.c \ hd-select-plugins-dialog.h \ hd-panel-window.c \ @@ -137,6 +138,13 @@ hd-applications-menu-settings-l10n.h \ hd-applications-menu-settings.c +hd-marshalers.c: + $(LIBTOOL) --mode=execute $(GLIB_GENMARSHAL) hd-marshalers.list --body --header >> hd-marshalers.c + +hd-marshalers.h: + $(LIBTOOL) --mode=execute $(GLIB_GENMARSHAL) hd-marshalers.list --header >| hd-marshalers.h + + EXTRA_DIST = statusbar.xml CLEANFILES = *~ $(BUILT_SOURCES) Added: projects/haf/trunk/hildon-desktop/src/hd-marshalers.list =================================================================== --- projects/haf/trunk/hildon-desktop/src/hd-marshalers.list 2007-07-11 13:40:05 UTC (rev 12718) +++ projects/haf/trunk/hildon-desktop/src/hd-marshalers.list 2007-07-11 13:43:32 UTC (rev 12719) @@ -0,0 +1 @@ +VOID:STRING,BOOLEAN Modified: projects/haf/trunk/hildon-desktop/src/hd-panel-window-dialog.c =================================================================== --- projects/haf/trunk/hildon-desktop/src/hd-panel-window-dialog.c 2007-07-11 13:40:05 UTC (rev 12718) +++ projects/haf/trunk/hildon-desktop/src/hd-panel-window-dialog.c 2007-07-11 13:43:32 UTC (rev 12719) @@ -38,14 +38,26 @@ #include "hd-panel-window-dialog.h" #include "hd-panel-window-dialog-service.h" +#include "hd-marshalers.h" + #define HD_PANEL_WINDOW_DIALOG_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), HD_TYPE_PANEL_WINDOW_DIALOG, HDPanelWindowDialogPrivate)) +enum +{ + HD_WD_UPDATE_SB, + HD_WD_SIGNALS +}; + +static gint hd_wd_signals [HD_WD_SIGNALS]; + G_DEFINE_TYPE (HDPanelWindowDialog, hd_panel_window_dialog, HILDON_DESKTOP_TYPE_PANEL_WINDOW_DIALOG); struct _HDPanelWindowDialogPrivate { DBusGConnection *connection; + + GHashTable *plugins; }; #undef HD_PANEL_WINDOW_DIALOG_NEW_THEME @@ -99,46 +111,38 @@ static void hd_panel_window_dialog_notify_condition (GObject *object, gboolean condition, - gpointer user_data) + HDPanelWindowDialog *window) { - HDPanelWindowDialog *window; - HildonDesktopItem *item; - DBusMessage *message; - const gchar *id; - - window = HD_PANEL_WINDOW_DIALOG (user_data); - item = HILDON_DESKTOP_ITEM (object); - - id = hildon_desktop_item_get_id (item); - - message = dbus_message_new_signal ("/org/hildon/Statusbar", - "org.hildon.Statusbar", - "update-status"); + g_signal_emit_by_name (window, "update-status", HILDON_DESKTOP_ITEM (object)->id, condition); +} - dbus_message_append_args (message, - DBUS_TYPE_STRING, &id, - DBUS_TYPE_BOOLEAN, &condition, - DBUS_TYPE_INVALID); +static void +hd_panel_window_dialog_cadd (HildonDesktopPanelExpandable *container, + GtkWidget *widget, + gpointer object) +{ + gulong *previous_id = NULL, *signal_id = g_new0 (gulong,1); - dbus_connection_send (dbus_g_connection_get_connection (window->priv->connection), - message, - NULL); - - dbus_message_unref (message); + previous_id = g_object_get_data (G_OBJECT (widget), "signal-id"); + + if (previous_id) + return; + + *signal_id = g_signal_connect (G_OBJECT (widget), + "notify::condition", + G_CALLBACK (hd_panel_window_dialog_notify_condition), + object); + + g_object_set_data_full (G_OBJECT (widget), "signal-id", signal_id, g_free); } static void -hd_panel_window_dialog_cadd (HildonDesktopPanelExpandable *container, - GtkWidget *widget, - gpointer user_data) +hd_panel_window_dialog_queued (HildonDesktopPanelExpandable *container, + GtkWidget *widget, + gpointer object) { gtk_widget_set_name (widget, HD_PANEL_WINDOW_DIALOG_BUTTON_NAME); gtk_widget_set_name (GTK_BIN (widget)->child, HD_PANEL_WINDOW_DIALOG_BUTTON_NAME); - - g_signal_connect (G_OBJECT (widget), - "notify::condition", - G_CALLBACK (hd_panel_window_dialog_notify_condition), - user_data); } static void @@ -170,9 +174,19 @@ g_signal_connect (G_OBJECT (HILDON_DESKTOP_WINDOW (object)->container), "queued-button", + G_CALLBACK (hd_panel_window_dialog_queued), + object); + + g_signal_connect (G_OBJECT (HILDON_DESKTOP_WINDOW (object)->container), + "add", G_CALLBACK (hd_panel_window_dialog_cadd), object); + g_signal_connect (G_OBJECT (HILDON_DESKTOP_WINDOW (object)->container), + "remove", + G_CALLBACK (hd_panel_window_dialog_cadd), + object); + g_signal_connect (G_OBJECT (hdwm), "fullscreen", G_CALLBACK (hd_panel_window_dialog_fullscreen), @@ -205,6 +219,16 @@ #endif g_type_class_add_private (window_class, sizeof (HDPanelWindowDialogPrivate)); + + hd_wd_signals[HD_WD_UPDATE_SB] = + g_signal_new ("update-status", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_user_marshal_VOID__STRING_BOOLEAN, + G_TYPE_NONE, + 2, G_TYPE_STRING, G_TYPE_BOOLEAN); + } static void Modified: projects/haf/trunk/hildon-desktop/src/statusbar.xml =================================================================== --- projects/haf/trunk/hildon-desktop/src/statusbar.xml 2007-07-11 13:40:05 UTC (rev 12718) +++ projects/haf/trunk/hildon-desktop/src/statusbar.xml 2007-07-11 13:43:32 UTC (rev 12719) @@ -10,6 +10,11 @@ <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="hd_panel_window_dialog_refresh_items_status"/> </method> + <signal name="UpdateStatus"> + <arg type="s" name="id"/> + <arg type="b" name="status"/> + </signal> + </interface> </node>
- Previous message: [maemo-commits] r12718 - in projects/haf/trunk/hildon-desktop: . libhildondesktop
- Next message: [maemo-commits] r12720 - in projects/haf/trunk/hildon-desktop: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]