1 // This file was generated by gir (https://github.com/gtk-rs/gir)
2 // from gir-files (https://github.com/gtk-rs/gir-files)
3 // DO NOT EDIT
4 
5 use glib;
6 use glib::object::Cast;
7 use glib::object::IsA;
8 use glib::signal::connect_raw;
9 use glib::signal::SignalHandlerId;
10 use glib::translate::*;
11 use glib::GString;
12 use glib_sys;
13 use gtk_sys;
14 use std::boxed::Box as Box_;
15 use std::fmt;
16 use std::mem::transmute;
17 use Buildable;
18 use Widget;
19 
20 glib_wrapper! {
21     pub struct Actionable(Interface<gtk_sys::GtkActionable>) @requires Widget, Buildable;
22 
23     match fn {
24         get_type => || gtk_sys::gtk_actionable_get_type(),
25     }
26 }
27 
28 pub const NONE_ACTIONABLE: Option<&Actionable> = None;
29 
30 pub trait ActionableExt: 'static {
get_action_name(&self) -> Option<GString>31     fn get_action_name(&self) -> Option<GString>;
32 
get_action_target_value(&self) -> Option<glib::Variant>33     fn get_action_target_value(&self) -> Option<glib::Variant>;
34 
set_action_name(&self, action_name: Option<&str>)35     fn set_action_name(&self, action_name: Option<&str>);
36 
37     //fn set_action_target(&self, format_string: &str, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
38 
set_action_target_value(&self, target_value: Option<&glib::Variant>)39     fn set_action_target_value(&self, target_value: Option<&glib::Variant>);
40 
set_detailed_action_name(&self, detailed_action_name: &str)41     fn set_detailed_action_name(&self, detailed_action_name: &str);
42 
connect_property_action_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId43     fn connect_property_action_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
44 
connect_property_action_target_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId45     fn connect_property_action_target_notify<F: Fn(&Self) + 'static>(
46         &self,
47         f: F,
48     ) -> SignalHandlerId;
49 }
50 
51 impl<O: IsA<Actionable>> ActionableExt for O {
get_action_name(&self) -> Option<GString>52     fn get_action_name(&self) -> Option<GString> {
53         unsafe {
54             from_glib_none(gtk_sys::gtk_actionable_get_action_name(
55                 self.as_ref().to_glib_none().0,
56             ))
57         }
58     }
59 
get_action_target_value(&self) -> Option<glib::Variant>60     fn get_action_target_value(&self) -> Option<glib::Variant> {
61         unsafe {
62             from_glib_none(gtk_sys::gtk_actionable_get_action_target_value(
63                 self.as_ref().to_glib_none().0,
64             ))
65         }
66     }
67 
set_action_name(&self, action_name: Option<&str>)68     fn set_action_name(&self, action_name: Option<&str>) {
69         unsafe {
70             gtk_sys::gtk_actionable_set_action_name(
71                 self.as_ref().to_glib_none().0,
72                 action_name.to_glib_none().0,
73             );
74         }
75     }
76 
77     //fn set_action_target(&self, format_string: &str, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) {
78     //    unsafe { TODO: call gtk_sys:gtk_actionable_set_action_target() }
79     //}
80 
set_action_target_value(&self, target_value: Option<&glib::Variant>)81     fn set_action_target_value(&self, target_value: Option<&glib::Variant>) {
82         unsafe {
83             gtk_sys::gtk_actionable_set_action_target_value(
84                 self.as_ref().to_glib_none().0,
85                 target_value.to_glib_none().0,
86             );
87         }
88     }
89 
set_detailed_action_name(&self, detailed_action_name: &str)90     fn set_detailed_action_name(&self, detailed_action_name: &str) {
91         unsafe {
92             gtk_sys::gtk_actionable_set_detailed_action_name(
93                 self.as_ref().to_glib_none().0,
94                 detailed_action_name.to_glib_none().0,
95             );
96         }
97     }
98 
connect_property_action_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId99     fn connect_property_action_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
100         unsafe extern "C" fn notify_action_name_trampoline<P, F: Fn(&P) + 'static>(
101             this: *mut gtk_sys::GtkActionable,
102             _param_spec: glib_sys::gpointer,
103             f: glib_sys::gpointer,
104         ) where
105             P: IsA<Actionable>,
106         {
107             let f: &F = &*(f as *const F);
108             f(&Actionable::from_glib_borrow(this).unsafe_cast())
109         }
110         unsafe {
111             let f: Box_<F> = Box_::new(f);
112             connect_raw(
113                 self.as_ptr() as *mut _,
114                 b"notify::action-name\0".as_ptr() as *const _,
115                 Some(transmute(notify_action_name_trampoline::<Self, F> as usize)),
116                 Box_::into_raw(f),
117             )
118         }
119     }
120 
connect_property_action_target_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId121     fn connect_property_action_target_notify<F: Fn(&Self) + 'static>(
122         &self,
123         f: F,
124     ) -> SignalHandlerId {
125         unsafe extern "C" fn notify_action_target_trampoline<P, F: Fn(&P) + 'static>(
126             this: *mut gtk_sys::GtkActionable,
127             _param_spec: glib_sys::gpointer,
128             f: glib_sys::gpointer,
129         ) where
130             P: IsA<Actionable>,
131         {
132             let f: &F = &*(f as *const F);
133             f(&Actionable::from_glib_borrow(this).unsafe_cast())
134         }
135         unsafe {
136             let f: Box_<F> = Box_::new(f);
137             connect_raw(
138                 self.as_ptr() as *mut _,
139                 b"notify::action-target\0".as_ptr() as *const _,
140                 Some(transmute(
141                     notify_action_target_trampoline::<Self, F> as usize,
142                 )),
143                 Box_::into_raw(f),
144             )
145         }
146     }
147 }
148 
149 impl fmt::Display for Actionable {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result150     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
151         write!(f, "Actionable")
152     }
153 }
154