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