Top | ![]() |
![]() |
![]() |
![]() |
GtefActionInfoStore contains a set of GtefActionInfo's.
GtefActionInfoStore is add-only, a GtefActionInfo cannot be removed. If needed, the remove operation will be added in the future.
A GtkApplication can be associated so that when a widget is created,
gtk_application_set_accels_for_action()
is called. See
gtef_action_info_store_create_menu_item()
for more details. Note that this
happens on widget creation, not when adding a GtefActionInfo to the store,
so that the accelerator is bound to the application only if the
GtefActionInfo is actually used.
GtefActionInfoStore is designed so that libraries can provide their own
store, to share action information (with translations) and possibly the
GAction implementations as well. Application-specific GtefActionInfo's can
be added to the store returned by
gtef_application_get_app_action_info_store()
.
A library GtefActionInfoStore must namespace the action names to not have
conflicts when a GtefActionInfo is added to the GtefActionInfoCentralStore.
Examples of namespaced action names: "win.gtef-save"
or "app.gtef-quit"
.
GtefActionInfoStore *
gtef_action_info_store_new (GtkApplication *application
);
Creates a new GtefActionInfoStore object. Associating a GtkApplication is optional.
Since: 2.0
GtkApplication *
gtef_action_info_store_get_application
(GtefActionInfoStore *store
);
void gtef_action_info_store_add (GtefActionInfoStore *store
,GtefActionInfo *info
);
Inserts info
into store
and into the GtefActionInfoCentralStore. Both the
store
and central store must not already contain a
GtefActionInfo with the same action name. The stores take their own
reference on info
.
Since: 2.0
void gtef_action_info_store_add_entries (GtefActionInfoStore *store
,const GtefActionInfoEntry *entries
,gint n_entries
,const gchar *translation_domain
);
Calls gtef_action_info_store_add()
for each entry.
If translation_domain
is not NULL
, g_dgettext()
is used to translate the
label
and tooltip
of each entry before setting them to the GtefActionInfo.
An API similar to g_action_map_add_action_entries()
.
store |
||
entries |
a pointer to the first item in an array of GtefActionInfoEntry structs. |
[array length=n_entries][element-type GtefActionInfoEntry] |
n_entries |
the length of |
|
translation_domain |
a gettext domain, or |
[nullable] |
Since: 2.0
const GtefActionInfo * gtef_action_info_store_lookup (GtefActionInfoStore *store
,const gchar *action_name
);
Since: 2.0
GtkWidget * gtef_action_info_store_create_menu_item (GtefActionInfoStore *store
,const gchar *action_name
);
Creates a new GtkMenuItem for action_name
. The store
must contain a
GtefActionInfo for action_name
.
gtk_actionable_set_action_name() is called on the menu item with
action_name
. The label is set with the “use-underline” property
enabled. The first accelerator is set to the GtkAccelLabel of the menu item.
The icon is set. And the tooltip is set with
gtef_menu_item_set_long_description()
.
If “application” is non-NULL
, this function also calls
gtk_application_set_accels_for_action()
with the accelerators returned by
gtef_action_info_get_accels()
(this will erase previously set accelerators
for that action, if any).
Since: 2.0
void
gtef_action_info_store_check_all_used (GtefActionInfoStore *store
);
Checks that all GtefActionInfo's of store
have been used by
gtef_action_info_store_create_menu_item()
. If not, a warning is printed and
might indicate dead code.
You probably want to call this function on the store returned by
gtef_application_get_app_action_info_store()
. But it can also be useful for a
store provided by a library, to easily see which actions you don't use.
Since: 2.0
“application”
property“application” GtkApplication *
The associated GtkApplication. GtefActionInfoStore has a weak reference to the GtkApplication.
Flags: Read / Write / Construct Only
Since: 2.0