1 /* 2 * Copyright © 2011 Canonical Limited 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the licence, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but 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, see <http://www.gnu.org/licenses/>. 16 * 17 * Author: Ryan Lortie <desrt@desrt.ca> 18 */ 19 20 #ifndef __GTK_ACTION_MUXER_H__ 21 #define __GTK_ACTION_MUXER_H__ 22 23 #include <gio/gio.h> 24 25 G_BEGIN_DECLS 26 27 #define GTK_TYPE_ACTION_MUXER (gtk_action_muxer_get_type ()) 28 #define GTK_ACTION_MUXER(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ 29 GTK_TYPE_ACTION_MUXER, GtkActionMuxer)) 30 #define GTK_IS_ACTION_MUXER(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ 31 GTK_TYPE_ACTION_MUXER)) 32 33 typedef struct _GtkActionMuxer GtkActionMuxer; 34 35 GType gtk_action_muxer_get_type (void); 36 GtkActionMuxer * gtk_action_muxer_new (void); 37 38 void gtk_action_muxer_insert (GtkActionMuxer *muxer, 39 const gchar *prefix, 40 GActionGroup *action_group); 41 42 void gtk_action_muxer_remove (GtkActionMuxer *muxer, 43 const gchar *prefix); 44 const gchar ** gtk_action_muxer_list_prefixes (GtkActionMuxer *muxer); 45 GActionGroup * gtk_action_muxer_lookup (GtkActionMuxer *muxer, 46 const gchar *prefix); 47 GtkActionMuxer * gtk_action_muxer_get_parent (GtkActionMuxer *muxer); 48 49 void gtk_action_muxer_set_parent (GtkActionMuxer *muxer, 50 GtkActionMuxer *parent); 51 52 void gtk_action_muxer_set_primary_accel (GtkActionMuxer *muxer, 53 const gchar *action_and_target, 54 const gchar *primary_accel); 55 56 const gchar * gtk_action_muxer_get_primary_accel (GtkActionMuxer *muxer, 57 const gchar *action_and_target); 58 59 /* No better place for these... */ 60 gchar * gtk_print_action_and_target (const gchar *action_namespace, 61 const gchar *action_name, 62 GVariant *target); 63 64 gchar * gtk_normalise_detailed_action_name (const gchar *detailed_action_name); 65 66 G_END_DECLS 67 68 #endif /* __GTK_ACTION_MUXER_H__ */ 69