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
use ffi; use glib::translate::{FromGlib, ToGlib, ToGlibPtr, ToGlibPtrMut, from_glib}; use glib::value::{FromValue, FromValueOptional, SetValue}; use glib::{StaticType, Type, Value}; use gobject_ffi; #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] pub enum ResponseType { None, Reject, Accept, DeleteEvent, Ok, Cancel, Close, Yes, No, Apply, Help, Other(u16), #[doc(hidden)] __Unknown(i32), } #[doc(hidden)] impl ToGlib for ResponseType { type GlibType = ffi::GtkResponseType; fn to_glib(&self) -> ffi::GtkResponseType { match *self { ResponseType::None => ffi::GTK_RESPONSE_NONE, ResponseType::Reject => ffi::GTK_RESPONSE_REJECT, ResponseType::Accept => ffi::GTK_RESPONSE_ACCEPT, ResponseType::DeleteEvent => ffi::GTK_RESPONSE_DELETE_EVENT, ResponseType::Ok => ffi::GTK_RESPONSE_OK, ResponseType::Cancel => ffi::GTK_RESPONSE_CANCEL, ResponseType::Close => ffi::GTK_RESPONSE_CLOSE, ResponseType::Yes => ffi::GTK_RESPONSE_YES, ResponseType::No => ffi::GTK_RESPONSE_NO, ResponseType::Apply => ffi::GTK_RESPONSE_APPLY, ResponseType::Help => ffi::GTK_RESPONSE_HELP, ResponseType::Other(value) => value as ffi::GtkResponseType, ResponseType::__Unknown(value) => value, } } } #[doc(hidden)] impl FromGlib<ffi::GtkResponseType> for ResponseType { fn from_glib(value: ffi::GtkResponseType) -> Self { skip_assert_initialized!(); match value { -1 => ResponseType::None, -2 => ResponseType::Reject, -3 => ResponseType::Accept, -4 => ResponseType::DeleteEvent, -5 => ResponseType::Ok, -6 => ResponseType::Cancel, -7 => ResponseType::Close, -8 => ResponseType::Yes, -9 => ResponseType::No, -10 => ResponseType::Apply, -11 => ResponseType::Help, value if value >= 0 && value <= ::std::u16::MAX as i32 => ResponseType::Other(value as u16), value => ResponseType::__Unknown(value), } } } impl StaticType for ResponseType { fn static_type() -> Type { unsafe { from_glib(ffi::gtk_response_type_get_type()) } } } impl<'a> FromValueOptional<'a> for ResponseType { unsafe fn from_value_optional(value: &Value) -> Option<Self> { Some(FromValue::from_value(value)) } } impl<'a> FromValue<'a> for ResponseType { unsafe fn from_value(value: &Value) -> Self { from_glib(gobject_ffi::g_value_get_enum(value.to_glib_none().0)) } } impl SetValue for ResponseType { unsafe fn set_value(value: &mut Value, this: &Self) { gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib()) } }