gnome-shell-3.6.3.1/src/gactionobservable.c

No issues found

 1 /*
 2  * Copyright Š 2011 Canonical Limited
 3  *
 4  * This program is free software: you can redistribute it and/or modify
 5  * it under the terms of the GNU Lesser General Public License as
 6  * published by the Free Software Foundation; either version 2 of the
 7  * licence or (at your option) any later version.
 8  *
 9  * This library is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,
17  * USA.
18  *
19  * Authors: Ryan Lortie <desrt@desrt.ca>
20  */
21 
22 #include "config.h"
23 
24 #include "gactionobservable.h"
25 
26 G_DEFINE_INTERFACE (GActionObservable, g_action_observable, G_TYPE_OBJECT)
27 
28 /*
29  * SECTION:gactionobserable
30  * @short_description: an interface implemented by objects that report
31  *                     changes to actions
32  */
33 
34 void
35 g_action_observable_default_init (GActionObservableInterface *iface)
36 {
37 }
38 
39 /*
40  * g_action_observable_register_observer:
41  * @observable: a #GActionObservable
42  * @action_name: the name of the action
43  * @observer: the #GActionObserver to which the events will be reported
44  *
45  * Registers @observer as being interested in changes to @action_name on
46  * @observable.
47  */
48 void
49 g_action_observable_register_observer (GActionObservable *observable,
50                                        const gchar       *action_name,
51                                        GActionObserver   *observer)
52 {
53   g_return_if_fail (G_IS_ACTION_OBSERVABLE (observable));
54 
55   G_ACTION_OBSERVABLE_GET_IFACE (observable)
56     ->register_observer (observable, action_name, observer);
57 }
58 
59 /*
60  * g_action_observable_unregister_observer:
61  * @observable: a #GActionObservable
62  * @action_name: the name of the action
63  * @observer: the #GActionObserver to which the events will be reported
64  *
65  * Removes the registration of @observer as being interested in changes
66  * to @action_name on @observable.
67  *
68  * If the observer was registered multiple times, it must be
69  * unregistered an equal number of times.
70  */
71 void
72 g_action_observable_unregister_observer (GActionObservable *observable,
73                                          const gchar       *action_name,
74                                          GActionObserver   *observer)
75 {
76   g_return_if_fail (G_IS_ACTION_OBSERVABLE (observable));
77 
78   G_ACTION_OBSERVABLE_GET_IFACE (observable)
79     ->unregister_observer (observable, action_name, observer);
80 }