diff options
author | Ted Gould <ted@gould.cx> | 2010-01-11 23:15:01 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-01-11 23:15:01 -0600 |
commit | 1e13ebd32270870255bb4e05d4369e2c25353dc8 (patch) | |
tree | 83bc40c4df0a817b625aa0057aec2cfc9debdebf | |
parent | c1010b61c9097212c9631b6cbc4e85fd62539364 (diff) | |
parent | f46676355e7a2a18b5ed2d590a5b4c258041b6fd (diff) | |
download | libayatana-appindicator-1e13ebd32270870255bb4e05d4369e2c25353dc8.tar.gz libayatana-appindicator-1e13ebd32270870255bb4e05d4369e2c25353dc8.tar.bz2 libayatana-appindicator-1e13ebd32270870255bb4e05d4369e2c25353dc8.zip |
* Upstream update
* Fixes for the mono binding properties
-rw-r--r-- | bindings/mono/ApplicationIndicator.custom | 26 | ||||
-rw-r--r-- | bindings/mono/Makefile.am | 21 | ||||
-rw-r--r-- | bindings/mono/libappindicator-api.metadata | 26 | ||||
-rw-r--r-- | debian/changelog | 7 | ||||
-rw-r--r-- | example/simple-client.c | 14 | ||||
-rw-r--r-- | src/libappindicator/app-indicator.c | 24 |
6 files changed, 97 insertions, 21 deletions
diff --git a/bindings/mono/ApplicationIndicator.custom b/bindings/mono/ApplicationIndicator.custom new file mode 100644 index 0000000..11d16a8 --- /dev/null +++ b/bindings/mono/ApplicationIndicator.custom @@ -0,0 +1,26 @@ +[DllImport ("libappindicator.so.0")] +static extern int app_indicator_get_status (IntPtr i); + +[DllImport ("libappindicator.so.0")] +static extern int app_indicator_get_category (IntPtr i); + +[DllImport ("libappindicator.so.0")] +static extern void app_indicator_set_status (IntPtr i, int s); + + [GLib.Property ("status")] + public Status Status { + get { + return (Status) app_indicator_get_status (Handle); + } + + set { + app_indicator_set_status (Handle, (int) value); + } + } + + [GLib.Property ("category")] + public Category Category { + get { + return (Category) app_indicator_get_category (Handle); + } + }
\ No newline at end of file diff --git a/bindings/mono/Makefile.am b/bindings/mono/Makefile.am index dedbeb7..2aef088 100644 --- a/bindings/mono/Makefile.am +++ b/bindings/mono/Makefile.am @@ -16,13 +16,15 @@ assembly_DATA = $(TARGET) CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb generated-stamp generated/*.cs $(API) $(RAW_API) $(TEST) DISTCLEANFILES = $(ASSEMBLY).config TEST_SOURCES = TestIndicator.cs -EXTRA_DIST = \ - $(RAW_API) \ - $(METADATA) \ - appindicator-sharp-0.1.pc.in \ - appindicator-sharp.dll.config.in \ - app-indicator.sources.xml \ - $(ASSEMBLY_NAME).snk \ +customs = ApplicationIndicator.custom +EXTRA_DIST = \ + $(RAW_API) \ + $(METADATA) \ + appindicator-sharp-0.1.pc.in \ + appindicator-sharp.dll.config.in \ + app-indicator.sources.xml \ + $(ASSEMBLY_NAME).snk \ + $(customs) \ $(TEST_SOURCES) GACUTIL_FLAGS="-package $(ASSEMBLY_NAME) -root $(DESTDIR)$(prefix)/lib" @@ -43,9 +45,12 @@ $(API): $(METADATA) $(RAW_API) api_includes = $(GTK_SHARP_CFLAGS) -generated-stamp: $(API) +build_customs = $(addprefix $(srcdir)/, $(customs)) + +generated-stamp: $(API) $(build_customs) rm -f generated/* && \ $(GAPI_CODEGEN) --generate $(API) $(api_includes) \ + --customdir=$(srcdir) \ --outdir=generated --assembly-name=$(ASSEMBLY_NAME) \ && touch generated-stamp diff --git a/bindings/mono/libappindicator-api.metadata b/bindings/mono/libappindicator-api.metadata index f019f0a..86f0f26 100644 --- a/bindings/mono/libappindicator-api.metadata +++ b/bindings/mono/libappindicator-api.metadata @@ -5,27 +5,27 @@ <attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='new_status']" name="name">NewStatus</attr> <attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='connection_changed']" name="name">ConnectionChanged</attr> <attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='new_icon']" name="name">NewIcon</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_ID_S']" name="name">ID</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_CATEGORY_S']" name="name">Category</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_CATEGORY_S']" name="type">AppIndicatorCategory</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_STATUS_S']" name="name">Status</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_STATUS_S']" name="type">AppIndicatorStatus</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_ICON_NAME_S']" name="name">IconName</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_ATTENTION_ICON_NAME_S']" name="name">AttentionIconName</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_MENU_S']" name="name">Menu</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_MENU_S']" name="type">GtkMenu*</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_CONNECTED_S']" name="name">Connected</attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='id']" name="name">ID</attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_CATEGORY_S']" name="hidden"></attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_CATEGORY_S']" name="hidden"></attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_STATUS_S']" name="hidden"></attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_STATUS_S']" name="hidden"></attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='icon-name']" name="name">IconName</attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='attention-icon-name']" name="name">AttentionIconName</attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='menu']" name="name">Menu</attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='menu']" name="type">GtkMenu*</attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='connected']" name="name">Connected</attr> <attr path="/api/namespace/object[@cname='AppIndicator']/method[@name='SetMenu']" name="name">SetMenu</attr> - + <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_id']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_status']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_icon']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_category']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_attention_icon']" /> - + <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_id']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_status']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_icon']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_category']" /> - <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_attention_icon']" /> + <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_attention_icon']" /> </metadata> diff --git a/debian/changelog b/debian/changelog index ab6faac..c924372 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +indicator-application (0.0.7-0ubuntu1~ppa2~mono1) UNRELEASED; urgency=low + + * Upstream update + * Fixes for the mono binding properties + + -- Ted Gould <ted@ubuntu.com> Mon, 11 Jan 2010 23:14:38 -0600 + indicator-application (0.0.7-0ubuntu1~ppa1) karmic; urgency=low * Upstream Release 0.0.7 diff --git a/example/simple-client.c b/example/simple-client.c index 8ce9fba..b1d9fc2 100644 --- a/example/simple-client.c +++ b/example/simple-client.c @@ -34,6 +34,15 @@ item_clicked_cb (GtkWidget *widget, gpointer data) g_print ("%s clicked!\n", text); } +static void +toggle_sensitivity_cb (GtkWidget *widget, gpointer data) +{ + GtkWidget *target = (GtkWidget *)data; + + gtk_menu_item_set_label (GTK_MENU_ITEM (target), "modified!!"); + gtk_widget_set_sensitive (target, !GTK_WIDGET_IS_SENSITIVE (target)); +} + int main (int argc, char ** argv) { @@ -68,6 +77,11 @@ main (int argc, char ** argv) G_CALLBACK (item_clicked_cb), "3"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + GtkWidget *toggle_item = gtk_menu_item_new_with_label ("Toggle 3"); + g_signal_connect (toggle_item, "activate", + G_CALLBACK (toggle_sensitivity_cb), item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), toggle_item); + app_indicator_set_menu (ci, GTK_MENU (menu)); mainloop = g_main_loop_new(NULL, FALSE); diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index 7560a97..f115068 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -740,6 +740,27 @@ menuitem_iterate (GtkWidget *widget, } static void +widget_notify_cb (GtkWidget *widget, + GParamSpec *pspec, + gpointer data) +{ + DbusmenuMenuitem *child = (DbusmenuMenuitem *)data; + + if (pspec->name == g_intern_static_string ("sensitive")) + { + dbusmenu_menuitem_property_set_bool (child, + DBUSMENU_MENUITEM_PROP_SENSITIVE, + GTK_WIDGET_IS_SENSITIVE (widget)); + } + else if (pspec->name == g_intern_static_string ("label")) + { + dbusmenu_menuitem_property_set (child, + DBUSMENU_MENUITEM_PROP_LABEL, + gtk_menu_item_get_label (GTK_MENU_ITEM (widget))); + } +} + +static void container_iterate (GtkWidget *widget, gpointer data) { @@ -826,6 +847,9 @@ container_iterate (GtkWidget *widget, } } + g_signal_connect (widget, "notify", + G_CALLBACK (widget_notify_cb), child); + g_signal_connect (G_OBJECT (child), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK (activate_menuitem), widget); |