diff options
author | Lars Uebernickel <lars.uebernickel@canonical.com> | 2013-06-04 15:35:59 -0400 |
---|---|---|
committer | Lars Uebernickel <lars.uebernickel@canonical.com> | 2013-06-04 15:35:59 -0400 |
commit | 4fc790c377f4ca154ea5fc8beca6fd9078edf2ee (patch) | |
tree | 240a394865e0012ed0b439c71b437771ec2182b2 /libqmenumodel/src/gtk/gtkactionobservable.c | |
parent | 885710fa1a01644cdc736074a06aef0616f06abe (diff) | |
download | qmenumodel-4fc790c377f4ca154ea5fc8beca6fd9078edf2ee.tar.gz qmenumodel-4fc790c377f4ca154ea5fc8beca6fd9078edf2ee.tar.bz2 qmenumodel-4fc790c377f4ca154ea5fc8beca6fd9078edf2ee.zip |
Introduce UnityMenuModel and UnityQmlMenuModel
UnityMenuModel serves the same purpose as QMenuModel, but it is based on
GtkMenuTracker and has a different API.
GtkMenuTracker is maintained in gtk, but meant to be copy-and-pasted into other
consumers of menu models. It does not introduce new dependencies. It does give
us access to all the features that GMenuModel has.
Diffstat (limited to 'libqmenumodel/src/gtk/gtkactionobservable.c')
-rw-r--r-- | libqmenumodel/src/gtk/gtkactionobservable.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/libqmenumodel/src/gtk/gtkactionobservable.c b/libqmenumodel/src/gtk/gtkactionobservable.c new file mode 100644 index 0000000..ab90df2 --- /dev/null +++ b/libqmenumodel/src/gtk/gtkactionobservable.c @@ -0,0 +1,78 @@ +/* + * Copyright © 2011 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: Ryan Lortie <desrt@desrt.ca> + */ + +#include "config.h" + +#include "gtkactionobservable.h" + +G_DEFINE_INTERFACE (GtkActionObservable, gtk_action_observable, G_TYPE_OBJECT) + +/* + * SECTION:gtkactionobserable + * @short_description: an interface implemented by objects that report + * changes to actions + */ + +void +gtk_action_observable_default_init (GtkActionObservableInterface *iface) +{ +} + +/** + * gtk_action_observable_register_observer: + * @observable: a #GtkActionObservable + * @action_name: the name of the action + * @observer: the #GtkActionObserver to which the events will be reported + * + * Registers @observer as being interested in changes to @action_name on + * @observable. + */ +void +gtk_action_observable_register_observer (GtkActionObservable *observable, + const gchar *action_name, + GtkActionObserver *observer) +{ + g_return_if_fail (GTK_IS_ACTION_OBSERVABLE (observable)); + + GTK_ACTION_OBSERVABLE_GET_IFACE (observable) + ->register_observer (observable, action_name, observer); +} + +/** + * gtk_action_observable_unregister_observer: + * @observable: a #GtkActionObservable + * @action_name: the name of the action + * @observer: the #GtkActionObserver to which the events will be reported + * + * Removes the registration of @observer as being interested in changes + * to @action_name on @observable. + * + * If the observer was registered multiple times, it must be + * unregistered an equal number of times. + */ +void +gtk_action_observable_unregister_observer (GtkActionObservable *observable, + const gchar *action_name, + GtkActionObserver *observer) +{ + g_return_if_fail (GTK_IS_ACTION_OBSERVABLE (observable)); + + GTK_ACTION_OBSERVABLE_GET_IFACE (observable) + ->unregister_observer (observable, action_name, observer); +} |