1use atk_sys;
6use glib::object::IsA;
7use glib::translate::*;
8use Table;
9
10pub trait TableExtManual: 'static {
11 fn get_selected_columns(&self) -> Vec<i32>;
12 fn get_selected_rows(&self) -> Vec<i32>;
13}
14
15impl<O: IsA<Table>> TableExtManual for O {
16 fn get_selected_columns(&self) -> Vec<i32> {
17 unsafe {
18 let mut selected = ::std::ptr::null_mut();
19 let nb = atk_sys::atk_table_get_selected_columns(
20 self.as_ref().to_glib_none().0,
21 &mut selected,
22 );
23 if nb <= 0 {
24 Vec::new()
25 } else {
26 Vec::from_raw_parts(selected, nb as usize, nb as usize)
27 }
28 }
29 }
30
31 fn get_selected_rows(&self) -> Vec<i32> {
32 unsafe {
33 let mut selected = ::std::ptr::null_mut();
34 let nb =
35 atk_sys::atk_table_get_selected_rows(self.as_ref().to_glib_none().0, &mut selected);
36 if nb <= 0 {
37 Vec::new()
38 } else {
39 Vec::from_raw_parts(selected, nb as usize, nb as usize)
40 }
41 }
42 }
43}