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 109 110 111 112
// 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 crate::Action; use glib::object::IsA; use glib::translate::*; use std::fmt; glib::wrapper! { /// The GActionMap interface is implemented by [`ActionGroup`][crate::ActionGroup] /// implementations that operate by containing a number of /// named [`Action`][crate::Action] instances, such as [`SimpleActionGroup`][crate::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@crate::prelude::ActionMapExt] #[doc(alias = "GActionMap")] pub struct ActionMap(Interface<ffi::GActionMap, ffi::GActionMapInterface>); match fn { type_ => || ffi::g_action_map_get_type(), } } pub const NONE_ACTION_MAP: Option<&ActionMap> = None; /// Trait containing all [`struct@ActionMap`] methods. /// /// # Implementors /// /// [`ActionMap`][struct@crate::ActionMap], [`Application`][struct@crate::Application], [`SimpleActionGroup`][struct@crate::SimpleActionGroup] 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`][crate::Action] #[doc(alias = "g_action_map_add_action")] fn add_action<P: IsA<Action>>(&self, action: &P); //#[doc(alias = "g_action_map_add_action_entries")] //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`][crate::Action], or [`None`] #[doc(alias = "g_action_map_lookup_action")] 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 #[doc(alias = "g_action_map_remove_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 { ffi::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 ffi:g_action_map_add_action_entries() } //} fn lookup_action(&self, action_name: &str) -> Option<Action> { unsafe { from_glib_none(ffi::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 { ffi::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 { f.write_str("ActionMap") } }