1use glib::translate::*;
4use libc::c_int;
5
6use crate::{ffi, prelude::*, Notebook, Widget};
7
8impl Notebook {
9 #[doc(alias = "gtk_notebook_append_page")]
10 pub fn append_page(
11 &self,
12 child: &impl IsA<Widget>,
13 tab_label: Option<&impl IsA<Widget>>,
14 ) -> u32 {
15 unsafe {
16 let ret = ffi::gtk_notebook_append_page(
17 self.to_glib_none().0,
18 child.as_ref().to_glib_none().0,
19 tab_label.map(|p| p.as_ref()).to_glib_none().0,
20 );
21 debug_assert!(ret >= 0);
22 ret as u32
23 }
24 }
25
26 #[doc(alias = "gtk_notebook_append_page_menu")]
27 pub fn append_page_menu(
28 &self,
29 child: &impl IsA<Widget>,
30 tab_label: Option<&impl IsA<Widget>>,
31 menu_label: Option<&impl IsA<Widget>>,
32 ) -> u32 {
33 unsafe {
34 let ret = ffi::gtk_notebook_append_page_menu(
35 self.to_glib_none().0,
36 child.as_ref().to_glib_none().0,
37 tab_label.map(|p| p.as_ref()).to_glib_none().0,
38 menu_label.map(|p| p.as_ref()).to_glib_none().0,
39 );
40 debug_assert!(ret >= 0);
41 ret as u32
42 }
43 }
44
45 #[doc(alias = "gtk_notebook_get_current_page")]
46 #[doc(alias = "get_current_page")]
47 pub fn current_page(&self) -> Option<u32> {
48 unsafe {
49 let ret = ffi::gtk_notebook_get_current_page(self.to_glib_none().0);
50 if ret >= 0 {
51 Some(ret as u32)
52 } else {
53 None
54 }
55 }
56 }
57
58 #[doc(alias = "gtk_notebook_get_n_pages")]
59 #[doc(alias = "get_n_pages")]
60 pub fn n_pages(&self) -> u32 {
61 unsafe {
62 let ret = ffi::gtk_notebook_get_n_pages(self.to_glib_none().0);
63 debug_assert!(ret >= 0);
64 ret as u32
65 }
66 }
67
68 #[doc(alias = "gtk_notebook_get_nth_page")]
69 #[doc(alias = "get_nth_page")]
70 pub fn nth_page(&self, page_num: Option<u32>) -> Option<Widget> {
71 unsafe {
72 from_glib_none(ffi::gtk_notebook_get_nth_page(
73 self.to_glib_none().0,
74 page_num.map_or(-1, |n| n as c_int),
75 ))
76 }
77 }
78
79 #[doc(alias = "gtk_notebook_insert_page")]
80 pub fn insert_page(
81 &self,
82 child: &impl IsA<Widget>,
83 tab_label: Option<&impl IsA<Widget>>,
84 position: Option<u32>,
85 ) -> u32 {
86 unsafe {
87 let ret = ffi::gtk_notebook_insert_page(
88 self.to_glib_none().0,
89 child.as_ref().to_glib_none().0,
90 tab_label.map(|p| p.as_ref()).to_glib_none().0,
91 position.map_or(-1, |n| n as c_int),
92 );
93 debug_assert!(ret >= 0);
94 ret as u32
95 }
96 }
97
98 #[doc(alias = "gtk_notebook_insert_page_menu")]
99 pub fn insert_page_menu(
100 &self,
101 child: &impl IsA<Widget>,
102 tab_label: Option<&impl IsA<Widget>>,
103 menu_label: Option<&impl IsA<Widget>>,
104 position: Option<u32>,
105 ) -> u32 {
106 unsafe {
107 let ret = ffi::gtk_notebook_insert_page_menu(
108 self.to_glib_none().0,
109 child.as_ref().to_glib_none().0,
110 tab_label.map(|p| p.as_ref()).to_glib_none().0,
111 menu_label.map(|p| p.as_ref()).to_glib_none().0,
112 position.map_or(-1, |n| n as c_int),
113 );
114 debug_assert!(ret >= 0);
115 ret as u32
116 }
117 }
118 #[doc(alias = "gtk_notebook_page_num")]
119 pub fn page_num(&self, child: &impl IsA<Widget>) -> Option<u32> {
120 unsafe {
121 let ret =
122 ffi::gtk_notebook_page_num(self.to_glib_none().0, child.as_ref().to_glib_none().0);
123 if ret >= 0 {
124 Some(ret as u32)
125 } else {
126 None
127 }
128 }
129 }
130 #[doc(alias = "gtk_notebook_prepend_page")]
131 pub fn prepend_page(
132 &self,
133 child: &impl IsA<Widget>,
134 tab_label: Option<&impl IsA<Widget>>,
135 ) -> u32 {
136 unsafe {
137 let ret = ffi::gtk_notebook_prepend_page(
138 self.to_glib_none().0,
139 child.as_ref().to_glib_none().0,
140 tab_label.map(|p| p.as_ref()).to_glib_none().0,
141 );
142 debug_assert!(ret >= 0);
143 ret as u32
144 }
145 }
146
147 #[doc(alias = "gtk_notebook_prepend_page_menu")]
148 pub fn prepend_page_menu(
149 &self,
150 child: &impl IsA<Widget>,
151 tab_label: Option<&impl IsA<Widget>>,
152 menu_label: Option<&impl IsA<Widget>>,
153 ) -> u32 {
154 unsafe {
155 let ret = ffi::gtk_notebook_prepend_page_menu(
156 self.to_glib_none().0,
157 child.as_ref().to_glib_none().0,
158 tab_label.map(|p| p.as_ref()).to_glib_none().0,
159 menu_label.map(|p| p.as_ref()).to_glib_none().0,
160 );
161 debug_assert!(ret >= 0);
162 ret as u32
163 }
164 }
165
166 #[doc(alias = "gtk_notebook_remove_page")]
167 pub fn remove_page(&self, page_num: Option<u32>) {
168 unsafe {
169 ffi::gtk_notebook_remove_page(
170 self.to_glib_none().0,
171 page_num.map_or(-1, |n| n as c_int),
172 );
173 }
174 }
175
176 #[doc(alias = "gtk_notebook_reorder_child")]
177 pub fn reorder_child(&self, child: &impl IsA<Widget>, position: Option<u32>) {
178 unsafe {
179 ffi::gtk_notebook_reorder_child(
180 self.to_glib_none().0,
181 child.as_ref().to_glib_none().0,
182 position.map_or(-1, |n| n as c_int),
183 );
184 }
185 }
186
187 #[doc(alias = "gtk_notebook_set_current_page")]
188 pub fn set_current_page(&self, page_num: Option<u32>) {
189 unsafe {
190 ffi::gtk_notebook_set_current_page(
191 self.to_glib_none().0,
192 page_num.map_or(-1, |n| n as c_int),
193 );
194 }
195 }
196}