aboutsummaryrefslogtreecommitdiff
path: root/libqmenumodel/src/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'libqmenumodel/src/gtk')
-rw-r--r--libqmenumodel/src/gtk/gtkactionobserveritem.c170
-rw-r--r--libqmenumodel/src/gtk/gtkactionobserveritem.h67
-rw-r--r--libqmenumodel/src/gtk/gtksimpleactionobserver.c160
-rw-r--r--libqmenumodel/src/gtk/gtksimpleactionobserver.h67
4 files changed, 227 insertions, 237 deletions
diff --git a/libqmenumodel/src/gtk/gtkactionobserveritem.c b/libqmenumodel/src/gtk/gtkactionobserveritem.c
deleted file mode 100644
index db4c544..0000000
--- a/libqmenumodel/src/gtk/gtkactionobserveritem.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright © 2013 Canonical Limited
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * licence or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Nick Dedekind <nick.dedekind@canonical.com
- */
-
-#include "gtkactionobserveritem.h"
-
-typedef GObjectClass GtkActionObserverItemClass;
-
-struct _GtkActionObserverItem
-{
- GObject parent_instance;
- GtkActionObservable *observable;
- gchar* action_name;
-
- GtkActionAddedFunc action_added;
- GtkActionEnabledChangedFunc action_enabled_changed;
- GtkActionStateChangedFunc action_state_changed;
- GtkActionRemovedFunc action_removed;
-};
-
-static void gtk_action_observer_item_init_observer_iface (GtkActionObserverInterface *iface);
-G_DEFINE_TYPE_WITH_CODE (GtkActionObserverItem, gtk_action_observer_item, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GTK_TYPE_ACTION_OBSERVER, gtk_action_observer_item_init_observer_iface))
-
-static void
-gtk_action_observer_item_finalize (GObject *object)
-{
- GtkActionObserverItem *self = GTK_ACTION_OBSERVER_ITEM (object);
-
- if (self->observable)
- g_object_unref (self->observable);
-
- if (self->action_name)
- g_free(self->action_name);
-
- G_OBJECT_CLASS (gtk_action_observer_item_parent_class)->finalize (object);
-}
-
-static void
-gtk_action_observer_item_init (GtkActionObserverItem * self)
-{
-}
-
-static void
-gtk_action_observer_item_class_init (GtkActionObserverItemClass *class)
-{
- class->finalize = gtk_action_observer_item_finalize;
-}
-
-static void
-gtk_action_observer_item_action_added (GtkActionObserver *observer,
- GtkActionObservable *observable,
- const gchar *action_name,
- const GVariantType *parameter_type,
- gboolean enabled,
- GVariant *state)
-{
- g_return_if_fail (GTK_IS_ACTION_OBSERVER_ITEM (observer));
-
- GtkActionObserverItem* self;
- self = GTK_ACTION_OBSERVER_ITEM (observer);
- self->action_added(self, action_name, enabled, state);
-}
-
-static void
-gtk_action_observer_item_action_enabled_changed (GtkActionObserver *observer,
- GtkActionObservable *observable,
- const gchar *action_name,
- gboolean enabled)
-{
- g_return_if_fail (GTK_IS_ACTION_OBSERVER_ITEM (observer));
-
- GtkActionObserverItem* self;
- self = GTK_ACTION_OBSERVER_ITEM (observer);
- self->action_enabled_changed(self, action_name, enabled);
-}
-
-static void
-gtk_action_observer_item_action_state_changed (GtkActionObserver *observer,
- GtkActionObservable *observable,
- const gchar *action_name,
- GVariant *state)
-{
- g_return_if_fail (GTK_IS_ACTION_OBSERVER_ITEM (observer));
-
- GtkActionObserverItem* self;
- self = GTK_ACTION_OBSERVER_ITEM (observer);
- self->action_state_changed(self, action_name, state);
-}
-
-static void
-gtk_action_observer_item_action_removed (GtkActionObserver *observer,
- GtkActionObservable *observable,
- const gchar *action_name)
-{
- g_return_if_fail (GTK_IS_ACTION_OBSERVER_ITEM (observer));
-
- GtkActionObserverItem* self;
- self = GTK_ACTION_OBSERVER_ITEM (observer);
- self->action_removed(self, action_name);
-}
-
-static void
-gtk_action_observer_item_init_observer_iface (GtkActionObserverInterface *iface)
-{
- iface->action_added = gtk_action_observer_item_action_added;
- iface->action_enabled_changed = gtk_action_observer_item_action_enabled_changed;
- iface->action_state_changed = gtk_action_observer_item_action_state_changed;
- iface->action_removed = gtk_action_observer_item_action_removed;
-}
-
-GtkActionObserverItem*
-gtk_action_observer_item_new (GtkActionObservable *observable,
- GtkActionAddedFunc action_added,
- GtkActionEnabledChangedFunc action_enabled_changed,
- GtkActionStateChangedFunc action_state_changed,
- GtkActionRemovedFunc action_removed)
-{
- GtkActionObserverItem* self;
- self = g_object_new (GTK_TYPE_ACTION_OBSERVER_ITEM, NULL);
- self->observable = g_object_ref (observable);
- self->action_name = NULL;
-
- self->action_added = action_added;
- self->action_enabled_changed = action_enabled_changed;
- self->action_state_changed = action_state_changed;
- self->action_removed = action_removed;
-
- return self;
-}
-
-void
-gtk_action_observer_item_register_action (GtkActionObserverItem *self,
- const gchar* action_name)
-{
- gtk_action_observer_item_unregister_action(self);
-
- if (action_name && g_strcmp0(action_name, "") != 0) {
- self->action_name = g_strdup (action_name);
-
- if (g_strcmp0(self->action_name, "") != 0) {
- gtk_action_observable_register_observer (self->observable, self->action_name, GTK_ACTION_OBSERVER (self));
- }
- }
-}
-
-void
-gtk_action_observer_item_unregister_action (GtkActionObserverItem *self)
-{
- if (self->action_name) {
- gtk_action_observable_unregister_observer(self->observable, self->action_name, GTK_ACTION_OBSERVER (self));
- g_free(self->action_name);
- self->action_name = NULL;
- }
-}
diff --git a/libqmenumodel/src/gtk/gtkactionobserveritem.h b/libqmenumodel/src/gtk/gtkactionobserveritem.h
deleted file mode 100644
index 315cadc..0000000
--- a/libqmenumodel/src/gtk/gtkactionobserveritem.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright © 2013 Canonical Limited
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * licence or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Nick Dedekind <nick.dedekind@canonical.com
- */
-
-#ifndef __GTK_ACTION_OBSERVER_ITEM_H__
-#define __GTK_ACTION_OBSERVER_ITEM_H__
-
-#include "gtkactionobserver.h"
-
-G_BEGIN_DECLS
-
-#define GTK_TYPE_ACTION_OBSERVER_ITEM (gtk_action_observer_item_get_type ())
-#define GTK_ACTION_OBSERVER_ITEM(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
- GTK_TYPE_ACTION_OBSERVER_ITEM, GtkActionObserverItem))
-#define GTK_IS_ACTION_OBSERVER_ITEM(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
- GTK_TYPE_ACTION_OBSERVER_ITEM))
-
-typedef struct _GtkActionObserverItem GtkActionObserverItem;
-
-typedef void (* GtkActionAddedFunc) (GtkActionObserverItem *observer_item,
- const gchar *action_name,
- gboolean enabled,
- GVariant *state);
-
-typedef void (* GtkActionEnabledChangedFunc) (GtkActionObserverItem *observer_item,
- const gchar *action_name,
- gboolean enabled);
-
-typedef void (* GtkActionStateChangedFunc) (GtkActionObserverItem *observer_item,
- const gchar *action_name,
- GVariant *state);
-
-typedef void (* GtkActionRemovedFunc) (GtkActionObserverItem *observer_item,
- const gchar *action_name);
-
-GType gtk_action_observer_item_get_type (void) G_GNUC_CONST;
-
-GtkActionObserverItem* gtk_action_observer_item_new (GtkActionObservable *observable,
- GtkActionAddedFunc action_added,
- GtkActionEnabledChangedFunc action_enabled_changed,
- GtkActionStateChangedFunc action_state_changed,
- GtkActionRemovedFunc action_removed);
-
-
-void gtk_action_observer_item_register_action (GtkActionObserverItem *self,
- const gchar* action_name);
-
-void gtk_action_observer_item_unregister_action (GtkActionObserverItem *self);
-
-G_END_DECLS
-
-#endif // __GTK_ACTION_OBSERVER_ITEM_H__ \ No newline at end of file
diff --git a/libqmenumodel/src/gtk/gtksimpleactionobserver.c b/libqmenumodel/src/gtk/gtksimpleactionobserver.c
new file mode 100644
index 0000000..054b82f
--- /dev/null
+++ b/libqmenumodel/src/gtk/gtksimpleactionobserver.c
@@ -0,0 +1,160 @@
+/*
+ * Copyright © 2013 Canonical Limited
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * licence or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Nick Dedekind <nick.dedekind@canonical.com
+ */
+
+#include "gtksimpleactionobserver.h"
+
+typedef GObjectClass GtkSimpleActionObserverClass;
+
+struct _GtkSimpleActionObserver
+{
+ GObject parent_instance;
+ GtkActionObservable *observable;
+ gchar* action_name;
+
+ GtkActionAddedFunc action_added;
+ GtkActionEnabledChangedFunc action_enabled_changed;
+ GtkActionStateChangedFunc action_state_changed;
+ GtkActionRemovedFunc action_removed;
+};
+
+static void gtk_simple_action_observer_init_observer_iface (GtkActionObserverInterface *iface);
+G_DEFINE_TYPE_WITH_CODE (GtkSimpleActionObserver, gtk_simple_action_observer, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE (GTK_TYPE_ACTION_OBSERVER, gtk_simple_action_observer_init_observer_iface))
+
+static void
+gtk_simple_action_observer_finalize (GObject *object)
+{
+ GtkSimpleActionObserver *self = GTK_SIMPLE_ACTION_OBSERVER (object);
+
+ g_clear_object (&self->observable);
+
+ g_free(self->action_name);
+
+ G_OBJECT_CLASS (gtk_simple_action_observer_parent_class)->finalize (object);
+}
+
+static void
+gtk_simple_action_observer_init (GtkSimpleActionObserver * self)
+{
+}
+
+static void
+gtk_simple_action_observer_class_init (GtkSimpleActionObserverClass *class)
+{
+ class->finalize = gtk_simple_action_observer_finalize;
+}
+
+static void
+gtk_simple_action_observer_action_added (GtkActionObserver *observer,
+ GtkActionObservable *observable,
+ const gchar *action_name,
+ const GVariantType *parameter_type,
+ gboolean enabled,
+ GVariant *state)
+{
+ GtkSimpleActionObserver* self;
+ self = GTK_SIMPLE_ACTION_OBSERVER (observer);
+ self->action_added(self, action_name, enabled, state);
+}
+
+static void
+gtk_simple_action_observer_action_enabled_changed (GtkActionObserver *observer,
+ GtkActionObservable *observable,
+ const gchar *action_name,
+ gboolean enabled)
+{
+ GtkSimpleActionObserver* self;
+ self = GTK_SIMPLE_ACTION_OBSERVER (observer);
+ self->action_enabled_changed(self, action_name, enabled);
+}
+
+static void
+gtk_simple_action_observer_action_state_changed (GtkActionObserver *observer,
+ GtkActionObservable *observable,
+ const gchar *action_name,
+ GVariant *state)
+{
+ GtkSimpleActionObserver* self;
+ self = GTK_SIMPLE_ACTION_OBSERVER (observer);
+ self->action_state_changed(self, action_name, state);
+}
+
+static void
+gtk_simple_action_observer_action_removed (GtkActionObserver *observer,
+ GtkActionObservable *observable,
+ const gchar *action_name)
+{
+ GtkSimpleActionObserver* self;
+ self = GTK_SIMPLE_ACTION_OBSERVER (observer);
+ self->action_removed(self, action_name);
+}
+
+static void
+gtk_simple_action_observer_init_observer_iface (GtkActionObserverInterface *iface)
+{
+ iface->action_added = gtk_simple_action_observer_action_added;
+ iface->action_enabled_changed = gtk_simple_action_observer_action_enabled_changed;
+ iface->action_state_changed = gtk_simple_action_observer_action_state_changed;
+ iface->action_removed = gtk_simple_action_observer_action_removed;
+}
+
+GtkSimpleActionObserver*
+gtk_simple_action_observer_new (GtkActionObservable *observable,
+ GtkActionAddedFunc action_added,
+ GtkActionEnabledChangedFunc action_enabled_changed,
+ GtkActionStateChangedFunc action_state_changed,
+ GtkActionRemovedFunc action_removed)
+{
+ GtkSimpleActionObserver* self;
+ self = g_object_new (GTK_TYPE_SIMPLE_ACTION_OBSERVER, NULL);
+ self->observable = g_object_ref (observable);
+ self->action_name = NULL;
+
+ self->action_added = action_added;
+ self->action_enabled_changed = action_enabled_changed;
+ self->action_state_changed = action_state_changed;
+ self->action_removed = action_removed;
+
+ return self;
+}
+
+void
+gtk_simple_action_observer_register_action (GtkSimpleActionObserver *self,
+ const gchar *action_name)
+{
+ gtk_simple_action_observer_unregister_action(self);
+
+ if (action_name && g_strcmp0(action_name, "") != 0) {
+ self->action_name = g_strdup (action_name);
+
+ if (g_strcmp0(self->action_name, "") != 0) {
+ gtk_action_observable_register_observer (self->observable, self->action_name, GTK_ACTION_OBSERVER (self));
+ }
+ }
+}
+
+void
+gtk_simple_action_observer_unregister_action (GtkSimpleActionObserver *self)
+{
+ if (self->action_name) {
+ gtk_action_observable_unregister_observer(self->observable, self->action_name, GTK_ACTION_OBSERVER (self));
+ g_free(self->action_name);
+ self->action_name = NULL;
+ }
+}
diff --git a/libqmenumodel/src/gtk/gtksimpleactionobserver.h b/libqmenumodel/src/gtk/gtksimpleactionobserver.h
new file mode 100644
index 0000000..4276786
--- /dev/null
+++ b/libqmenumodel/src/gtk/gtksimpleactionobserver.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright © 2013 Canonical Limited
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * licence or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Nick Dedekind <nick.dedekind@canonical.com
+ */
+
+#ifndef __GTK_SIMPLE_ACTION_OBSERVER_H__
+#define __GTK_SIMPLE_ACTION_OBSERVER_H__
+
+#include "gtkactionobserver.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_SIMPLE_ACTION_OBSERVER (gtk_simple_action_observer_get_type ())
+#define GTK_SIMPLE_ACTION_OBSERVER(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
+ GTK_TYPE_SIMPLE_ACTION_OBSERVER, GtkSimpleActionObserver))
+#define GTK_IS_SIMPLE_ACTION_OBSERVER(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
+ GTK_TYPE_SIMPLE_ACTION_OBSERVER))
+
+typedef struct _GtkSimpleActionObserver GtkSimpleActionObserver;
+
+typedef void (* GtkActionAddedFunc) (GtkSimpleActionObserver *observer_item,
+ const gchar *action_name,
+ gboolean enabled,
+ GVariant *state);
+
+typedef void (* GtkActionEnabledChangedFunc) (GtkSimpleActionObserver *observer_item,
+ const gchar *action_name,
+ gboolean enabled);
+
+typedef void (* GtkActionStateChangedFunc) (GtkSimpleActionObserver *observer_item,
+ const gchar *action_name,
+ GVariant *state);
+
+typedef void (* GtkActionRemovedFunc) (GtkSimpleActionObserver *observer_item,
+ const gchar *action_name);
+
+GType gtk_simple_action_observer_get_type (void) G_GNUC_CONST;
+
+GtkSimpleActionObserver* gtk_simple_action_observer_new (GtkActionObservable *observable,
+ GtkActionAddedFunc action_added,
+ GtkActionEnabledChangedFunc action_enabled_changed,
+ GtkActionStateChangedFunc action_state_changed,
+ GtkActionRemovedFunc action_removed);
+
+
+void gtk_simple_action_observer_register_action (GtkSimpleActionObserver *self,
+ const gchar *action_name);
+
+void gtk_simple_action_observer_unregister_action (GtkSimpleActionObserver *self);
+
+G_END_DECLS
+
+#endif // __GTK_SIMPLE_ACTION_OBSERVER_H__ \ No newline at end of file