1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // DO NOT EDIT use gio_sys; use glib::object::IsA; use glib::translate::*; use std::fmt; use Action; glib_wrapper! { /// The GActionMap interface is implemented by `ActionGroup` /// implementations that operate by containing a number of /// named `Action` instances, such as `SimpleActionGroup`. /// /// One useful application of this interface is to map the /// names of actions from various action groups to unique, /// prefixed names (e.g. by prepending "app." or "win."). /// This is the motivation for the 'Map' part of the interface /// name. /// /// # Implements /// /// [`ActionMapExt`](trait.ActionMapExt.html) pub struct ActionMap(Interface<gio_sys::GActionMap>); match fn { get_type => || gio_sys::g_action_map_get_type(), } } pub const NONE_ACTION_MAP: Option<&ActionMap> = None; /// Trait containing all `ActionMap` methods. /// /// # Implementors /// /// [`ActionMap`](struct.ActionMap.html), [`Application`](struct.Application.html), [`SimpleActionGroup`](struct.SimpleActionGroup.html) pub trait ActionMapExt: 'static { /// Adds an action to the `self`. /// /// If the action map already contains an action with the same name /// as `action` then the old action is dropped from the action map. /// /// The action map takes its own reference on `action`. /// ## `action` /// a `Action` fn add_action<P: IsA<Action>>(&self, action: &P); //fn add_action_entries(&self, entries: /*Ignored*/&[&ActionEntry], user_data: /*Unimplemented*/Option<Fundamental: Pointer>); /// Looks up the action with the name `action_name` in `self`. /// /// If no such action exists, returns `None`. /// ## `action_name` /// the name of an action /// /// # Returns /// /// a `Action`, or `None` fn lookup_action(&self, action_name: &str) -> Option<Action>; /// Removes the named action from the action map. /// /// If no action of this name is in the map then nothing happens. /// ## `action_name` /// the name of the action fn remove_action(&self, action_name: &str); } impl<O: IsA<ActionMap>> ActionMapExt for O { fn add_action<P: IsA<Action>>(&self, action: &P) { unsafe { gio_sys::g_action_map_add_action( self.as_ref().to_glib_none().0, action.as_ref().to_glib_none().0, ); } } //fn add_action_entries(&self, entries: /*Ignored*/&[&ActionEntry], user_data: /*Unimplemented*/Option<Fundamental: Pointer>) { // unsafe { TODO: call gio_sys:g_action_map_add_action_entries() } //} fn lookup_action(&self, action_name: &str) -> Option<Action> { unsafe { from_glib_none(gio_sys::g_action_map_lookup_action( self.as_ref().to_glib_none().0, action_name.to_glib_none().0, )) } } fn remove_action(&self, action_name: &str) { unsafe { gio_sys::g_action_map_remove_action( self.as_ref().to_glib_none().0, action_name.to_glib_none().0, ); } } } impl fmt::Display for ActionMap { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "ActionMap") } }