1use glib::object::IsA;
6use glib::translate::*;
7use gtk_sys;
8use pango;
9use std::fmt;
10use Buildable;
11use IconSize;
12use Orientation;
13use ReliefStyle;
14use SizeGroup;
15use ToolbarStyle;
16use Widget;
17
18glib_wrapper! {
19 pub struct ToolShell(Interface<gtk_sys::GtkToolShell>) @requires Widget, Buildable;
20
21 match fn {
22 get_type => || gtk_sys::gtk_tool_shell_get_type(),
23 }
24}
25
26pub const NONE_TOOL_SHELL: Option<&ToolShell> = None;
27
28pub trait ToolShellExt: 'static {
29 fn get_ellipsize_mode(&self) -> pango::EllipsizeMode;
30
31 fn get_icon_size(&self) -> IconSize;
32
33 fn get_orientation(&self) -> Orientation;
34
35 fn get_relief_style(&self) -> ReliefStyle;
36
37 fn get_style(&self) -> ToolbarStyle;
38
39 fn get_text_alignment(&self) -> f32;
40
41 fn get_text_orientation(&self) -> Orientation;
42
43 fn get_text_size_group(&self) -> Option<SizeGroup>;
44
45 fn rebuild_menu(&self);
46}
47
48impl<O: IsA<ToolShell>> ToolShellExt for O {
49 fn get_ellipsize_mode(&self) -> pango::EllipsizeMode {
50 unsafe {
51 from_glib(gtk_sys::gtk_tool_shell_get_ellipsize_mode(
52 self.as_ref().to_glib_none().0,
53 ))
54 }
55 }
56
57 fn get_icon_size(&self) -> IconSize {
58 unsafe {
59 from_glib(gtk_sys::gtk_tool_shell_get_icon_size(
60 self.as_ref().to_glib_none().0,
61 ))
62 }
63 }
64
65 fn get_orientation(&self) -> Orientation {
66 unsafe {
67 from_glib(gtk_sys::gtk_tool_shell_get_orientation(
68 self.as_ref().to_glib_none().0,
69 ))
70 }
71 }
72
73 fn get_relief_style(&self) -> ReliefStyle {
74 unsafe {
75 from_glib(gtk_sys::gtk_tool_shell_get_relief_style(
76 self.as_ref().to_glib_none().0,
77 ))
78 }
79 }
80
81 fn get_style(&self) -> ToolbarStyle {
82 unsafe {
83 from_glib(gtk_sys::gtk_tool_shell_get_style(
84 self.as_ref().to_glib_none().0,
85 ))
86 }
87 }
88
89 fn get_text_alignment(&self) -> f32 {
90 unsafe { gtk_sys::gtk_tool_shell_get_text_alignment(self.as_ref().to_glib_none().0) }
91 }
92
93 fn get_text_orientation(&self) -> Orientation {
94 unsafe {
95 from_glib(gtk_sys::gtk_tool_shell_get_text_orientation(
96 self.as_ref().to_glib_none().0,
97 ))
98 }
99 }
100
101 fn get_text_size_group(&self) -> Option<SizeGroup> {
102 unsafe {
103 from_glib_none(gtk_sys::gtk_tool_shell_get_text_size_group(
104 self.as_ref().to_glib_none().0,
105 ))
106 }
107 }
108
109 fn rebuild_menu(&self) {
110 unsafe {
111 gtk_sys::gtk_tool_shell_rebuild_menu(self.as_ref().to_glib_none().0);
112 }
113 }
114}
115
116impl fmt::Display for ToolShell {
117 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
118 write!(f, "ToolShell")
119 }
120}