webkit_web_process_extension6/auto/
context_menu_item.rs1use crate::{ContextMenu, ContextMenuAction, ffi};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "WebKitContextMenuItem")]
11 pub struct ContextMenuItem(Object<ffi::WebKitContextMenuItem, ffi::WebKitContextMenuItemClass>);
12
13 match fn {
14 type_ => || ffi::webkit_context_menu_item_get_type(),
15 }
16}
17
18impl ContextMenuItem {
19 #[doc(alias = "webkit_context_menu_item_new_from_gaction")]
20 #[doc(alias = "new_from_gaction")]
21 pub fn from_gaction(
22 action: &impl IsA<gio::Action>,
23 label: &str,
24 target: Option<&glib::Variant>,
25 ) -> ContextMenuItem {
26 assert_initialized_main_thread!();
27 unsafe {
28 from_glib_none(ffi::webkit_context_menu_item_new_from_gaction(
29 action.as_ref().to_glib_none().0,
30 label.to_glib_none().0,
31 target.to_glib_none().0,
32 ))
33 }
34 }
35
36 #[doc(alias = "webkit_context_menu_item_new_from_stock_action")]
37 #[doc(alias = "new_from_stock_action")]
38 pub fn from_stock_action(action: ContextMenuAction) -> ContextMenuItem {
39 assert_initialized_main_thread!();
40 unsafe {
41 from_glib_none(ffi::webkit_context_menu_item_new_from_stock_action(
42 action.into_glib(),
43 ))
44 }
45 }
46
47 #[doc(alias = "webkit_context_menu_item_new_from_stock_action_with_label")]
48 #[doc(alias = "new_from_stock_action_with_label")]
49 pub fn from_stock_action_with_label(action: ContextMenuAction, label: &str) -> ContextMenuItem {
50 assert_initialized_main_thread!();
51 unsafe {
52 from_glib_none(
53 ffi::webkit_context_menu_item_new_from_stock_action_with_label(
54 action.into_glib(),
55 label.to_glib_none().0,
56 ),
57 )
58 }
59 }
60
61 #[doc(alias = "webkit_context_menu_item_new_separator")]
62 pub fn new_separator() -> ContextMenuItem {
63 assert_initialized_main_thread!();
64 unsafe { from_glib_none(ffi::webkit_context_menu_item_new_separator()) }
65 }
66
67 #[doc(alias = "webkit_context_menu_item_new_with_submenu")]
68 #[doc(alias = "new_with_submenu")]
69 pub fn with_submenu(label: &str, submenu: &ContextMenu) -> ContextMenuItem {
70 skip_assert_initialized!();
71 unsafe {
72 from_glib_none(ffi::webkit_context_menu_item_new_with_submenu(
73 label.to_glib_none().0,
74 submenu.to_glib_none().0,
75 ))
76 }
77 }
78
79 #[doc(alias = "webkit_context_menu_item_get_gaction")]
80 #[doc(alias = "get_gaction")]
81 pub fn gaction(&self) -> Option<gio::Action> {
82 unsafe {
83 from_glib_none(ffi::webkit_context_menu_item_get_gaction(
84 self.to_glib_none().0,
85 ))
86 }
87 }
88
89 #[cfg(feature = "v2_52")]
90 #[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
91 #[doc(alias = "webkit_context_menu_item_get_gaction_target")]
92 #[doc(alias = "get_gaction_target")]
93 pub fn gaction_target(&self) -> Option<glib::Variant> {
94 unsafe {
95 from_glib_none(ffi::webkit_context_menu_item_get_gaction_target(
96 self.to_glib_none().0,
97 ))
98 }
99 }
100
101 #[doc(alias = "webkit_context_menu_item_get_stock_action")]
102 #[doc(alias = "get_stock_action")]
103 pub fn stock_action(&self) -> ContextMenuAction {
104 unsafe {
105 from_glib(ffi::webkit_context_menu_item_get_stock_action(
106 self.to_glib_none().0,
107 ))
108 }
109 }
110
111 #[doc(alias = "webkit_context_menu_item_get_submenu")]
112 #[doc(alias = "get_submenu")]
113 pub fn submenu(&self) -> Option<ContextMenu> {
114 unsafe {
115 from_glib_none(ffi::webkit_context_menu_item_get_submenu(
116 self.to_glib_none().0,
117 ))
118 }
119 }
120
121 #[cfg(feature = "v2_52")]
122 #[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
123 #[doc(alias = "webkit_context_menu_item_get_title")]
124 #[doc(alias = "get_title")]
125 pub fn title(&self) -> Option<glib::GString> {
126 unsafe {
127 from_glib_none(ffi::webkit_context_menu_item_get_title(
128 self.to_glib_none().0,
129 ))
130 }
131 }
132
133 #[doc(alias = "webkit_context_menu_item_is_separator")]
134 pub fn is_separator(&self) -> bool {
135 unsafe {
136 from_glib(ffi::webkit_context_menu_item_is_separator(
137 self.to_glib_none().0,
138 ))
139 }
140 }
141
142 #[doc(alias = "webkit_context_menu_item_set_submenu")]
143 pub fn set_submenu(&self, submenu: Option<&ContextMenu>) {
144 unsafe {
145 ffi::webkit_context_menu_item_set_submenu(
146 self.to_glib_none().0,
147 submenu.to_glib_none().0,
148 );
149 }
150 }
151}