1#[doc(hidden)]
2#[macro_export]
3macro_rules! impl_button_ext {
5 ($name: ident, $flname: ident) => {
6 paste::paste! {
7 unsafe impl ButtonExt for $name {
8 fn shortcut(&self) -> $crate::enums::Shortcut {
9 unsafe {
10 std::mem::transmute([<$flname _shortcut>](self.inner.widget() as _))
11 }
12 }
13
14 fn set_shortcut(&mut self, shortcut: $crate::enums::Shortcut) {
15 unsafe {
16 [<$flname _set_shortcut>](self.inner.widget() as _, shortcut.bits() as i32)
17 }
18 }
19
20 fn clear(&mut self) {
21 unsafe {
22 [<$flname _clear>](self.inner.widget() as _);
23 }
24 }
25
26 fn is_set(&self) -> bool {
27 unsafe {
28 [<$flname _value>](self.inner.widget() as _) != 0
29 }
30 }
31
32 fn set(&mut self, flag: bool) {
33 unsafe {
34 [<$flname _set_value>](self.inner.widget() as _, i32::from(flag))
35 }
36 }
37
38 fn value(&self) -> bool {
39 unsafe {
40 [<$flname _value>](self.inner.widget() as _) != 0
41 }
42 }
43
44 fn set_value(&mut self, flag: bool) {
45 unsafe {
46 [<$flname _set_value>](self.inner.widget() as _, i32::from(flag))
47 }
48 }
49
50 fn set_down_frame(&mut self, f: $crate::enums::FrameType) {
51 unsafe { [<$flname _set_down_box>](self.inner.widget() as _, f.as_i32()) }
52 }
53
54 fn down_frame(&self) -> $crate::enums::FrameType {
55 unsafe { $crate::enums::FrameType::from_i32([<$flname _down_box>](self.inner.widget() as _)) }
56 }
57 }
58 }
59 };
60}
61
62pub use impl_button_ext;