1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 25 module gio.ActionMapT; 26 27 public import gio.Action; 28 public import gio.ActionIF; 29 public import glib.Str; 30 public import gobject.ObjectG; 31 public import gtkc.gio; 32 public import gtkc.giotypes; 33 34 35 /** 36 * The GActionMap interface is implemented by #GActionGroup 37 * implementations that operate by containing a number of 38 * named #GAction instances, such as #GSimpleActionGroup. 39 * 40 * One useful application of this interface is to map the 41 * names of actions from various action groups to unique, 42 * prefixed names (e.g. by prepending "app." or "win."). 43 * This is the motivation for the 'Map' part of the interface 44 * name. 45 */ 46 public template ActionMapT(TStruct) 47 { 48 /** Get the main Gtk struct */ 49 public GActionMap* getActionMapStruct() 50 { 51 return cast(GActionMap*)getStruct(); 52 } 53 54 55 /** 56 * Adds an action to the @action_map. 57 * 58 * If the action map already contains an action with the same name 59 * as @action then the old action is dropped from the action map. 60 * 61 * The action map takes its own reference on @action. 62 * 63 * Params: 64 * action = a #GAction 65 * 66 * Since: 2.32 67 */ 68 public void addAction(ActionIF action) 69 { 70 g_action_map_add_action(getActionMapStruct(), (action is null) ? null : action.getActionStruct()); 71 } 72 73 /** 74 * A convenience function for creating multiple #GSimpleAction instances 75 * and adding them to a #GActionMap. 76 * 77 * Each action is constructed as per one #GActionEntry. 78 * 79 * |[<!-- language="C" --> 80 * static void 81 * activate_quit (GSimpleAction *simple, 82 * GVariant *parameter, 83 * gpointer user_data) 84 * { 85 * exit (0); 86 * } 87 * 88 * static void 89 * activate_print_string (GSimpleAction *simple, 90 * GVariant *parameter, 91 * gpointer user_data) 92 * { 93 * g_print ("%s\n", g_variant_get_string (parameter, NULL)); 94 * } 95 * 96 * static GActionGroup * 97 * create_action_group (void) 98 * { 99 * const GActionEntry entries[] = { 100 * { "quit", activate_quit }, 101 * { "print-string", activate_print_string, "s" } 102 * }; 103 * GSimpleActionGroup *group; 104 * 105 * group = g_simple_action_group_new (); 106 * g_action_map_add_action_entries (G_ACTION_MAP (group), entries, G_N_ELEMENTS (entries), NULL); 107 * 108 * return G_ACTION_GROUP (group); 109 * } 110 * ]| 111 * 112 * Params: 113 * entries = a pointer to 114 * the first item in an array of #GActionEntry structs 115 * nEntries = the length of @entries, or -1 if @entries is %NULL-terminated 116 * userData = the user data for signal connections 117 * 118 * Since: 2.32 119 */ 120 public void addActionEntries(GActionEntry[] entries, void* userData) 121 { 122 g_action_map_add_action_entries(getActionMapStruct(), entries.ptr, cast(int)entries.length, userData); 123 } 124 125 /** 126 * Looks up the action with the name @action_name in @action_map. 127 * 128 * If no such action exists, returns %NULL. 129 * 130 * Params: 131 * actionName = the name of an action 132 * 133 * Return: a #GAction, or %NULL 134 * 135 * Since: 2.32 136 */ 137 public ActionIF lookupAction(string actionName) 138 { 139 auto p = g_action_map_lookup_action(getActionMapStruct(), Str.toStringz(actionName)); 140 141 if(p is null) 142 { 143 return null; 144 } 145 146 return ObjectG.getDObject!(Action, ActionIF)(cast(GAction*) p); 147 } 148 149 /** 150 * Removes the named action from the action map. 151 * 152 * If no action of this name is in the map then nothing happens. 153 * 154 * Params: 155 * actionName = the name of the action 156 * 157 * Since: 2.32 158 */ 159 public void removeAction(string actionName) 160 { 161 g_action_map_remove_action(getActionMapStruct(), Str.toStringz(actionName)); 162 } 163 }