1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use crate::Builder;
use glib::object::IsA;
use glib::translate::*;
use std::fmt;
glib::wrapper! {
/// GtkBuildable allows objects to extend and customize their deserialization
/// from [GtkBuilder UI descriptions][BUILDER-UI].
/// The interface includes methods for setting names and properties of objects,
/// parsing custom tags and constructing child objects.
///
/// The GtkBuildable interface is implemented by all widgets and
/// many of the non-widget objects that are provided by GTK+. The
/// main user of this interface is [`Builder`][crate::Builder]. There should be
/// very little need for applications to call any of these functions directly.
///
/// An object only needs to implement this interface if it needs to extend the
/// [`Builder`][crate::Builder] format or run any extra routines at deserialization time.
///
/// # Implements
///
/// [`BuildableExt`][trait@crate::prelude::BuildableExt], [`BuildableExtManual`][trait@crate::prelude::BuildableExtManual]
#[doc(alias = "GtkBuildable")]
pub struct Buildable(Interface<ffi::GtkBuildable, ffi::GtkBuildableIface>);
match fn {
type_ => || ffi::gtk_buildable_get_type(),
}
}
impl Buildable {
pub const NONE: Option<&'static Buildable> = None;
}
/// Trait containing all [`struct@Buildable`] methods.
///
/// # Implementors
///
/// [`AboutDialog`][struct@crate::AboutDialog], [`AccelLabel`][struct@crate::AccelLabel], [`ActionBar`][struct@crate::ActionBar], [`AppChooserButton`][struct@crate::AppChooserButton], [`AppChooserDialog`][struct@crate::AppChooserDialog], [`AppChooserWidget`][struct@crate::AppChooserWidget], [`ApplicationWindow`][struct@crate::ApplicationWindow], [`AspectFrame`][struct@crate::AspectFrame], [`Assistant`][struct@crate::Assistant], [`Bin`][struct@crate::Bin], [`Box`][struct@crate::Box], [`Buildable`][struct@crate::Buildable], [`ButtonBox`][struct@crate::ButtonBox], [`Button`][struct@crate::Button], [`Calendar`][struct@crate::Calendar], [`CellAreaBox`][struct@crate::CellAreaBox], [`CellArea`][struct@crate::CellArea], [`CellView`][struct@crate::CellView], [`CheckButton`][struct@crate::CheckButton], [`CheckMenuItem`][struct@crate::CheckMenuItem], [`ColorButton`][struct@crate::ColorButton], [`ColorChooserDialog`][struct@crate::ColorChooserDialog], [`ColorChooserWidget`][struct@crate::ColorChooserWidget], [`ComboBoxText`][struct@crate::ComboBoxText], [`ComboBox`][struct@crate::ComboBox], [`Container`][struct@crate::Container], [`Dialog`][struct@crate::Dialog], [`DrawingArea`][struct@crate::DrawingArea], [`EntryCompletion`][struct@crate::EntryCompletion], [`Entry`][struct@crate::Entry], [`EventBox`][struct@crate::EventBox], [`Expander`][struct@crate::Expander], [`FileChooserButton`][struct@crate::FileChooserButton], [`FileChooserDialog`][struct@crate::FileChooserDialog], [`FileChooserWidget`][struct@crate::FileChooserWidget], [`FileFilter`][struct@crate::FileFilter], [`Fixed`][struct@crate::Fixed], [`FlowBoxChild`][struct@crate::FlowBoxChild], [`FlowBox`][struct@crate::FlowBox], [`FontButton`][struct@crate::FontButton], [`FontChooserDialog`][struct@crate::FontChooserDialog], [`FontChooserWidget`][struct@crate::FontChooserWidget], [`Frame`][struct@crate::Frame], [`GLArea`][struct@crate::GLArea], [`Grid`][struct@crate::Grid], [`HeaderBar`][struct@crate::HeaderBar], [`IconView`][struct@crate::IconView], [`Image`][struct@crate::Image], [`InfoBar`][struct@crate::InfoBar], [`Invisible`][struct@crate::Invisible], [`Label`][struct@crate::Label], [`Layout`][struct@crate::Layout], [`LevelBar`][struct@crate::LevelBar], [`LinkButton`][struct@crate::LinkButton], [`ListBoxRow`][struct@crate::ListBoxRow], [`ListBox`][struct@crate::ListBox], [`ListStore`][struct@crate::ListStore], [`LockButton`][struct@crate::LockButton], [`MenuBar`][struct@crate::MenuBar], [`MenuButton`][struct@crate::MenuButton], [`MenuItem`][struct@crate::MenuItem], [`MenuShell`][struct@crate::MenuShell], [`MenuToolButton`][struct@crate::MenuToolButton], [`Menu`][struct@crate::Menu], [`MessageDialog`][struct@crate::MessageDialog], [`Misc`][struct@crate::Misc], [`ModelButton`][struct@crate::ModelButton], [`Notebook`][struct@crate::Notebook], [`OffscreenWindow`][struct@crate::OffscreenWindow], [`Overlay`][struct@crate::Overlay], [`Paned`][struct@crate::Paned], [`PlacesSidebar`][struct@crate::PlacesSidebar], [`Plug`][struct@crate::Plug], [`PopoverMenu`][struct@crate::PopoverMenu], [`Popover`][struct@crate::Popover], [`ProgressBar`][struct@crate::ProgressBar], [`RadioButton`][struct@crate::RadioButton], [`RadioMenuItem`][struct@crate::RadioMenuItem], [`RadioToolButton`][struct@crate::RadioToolButton], [`Range`][struct@crate::Range], [`RecentChooserDialog`][struct@crate::RecentChooserDialog], [`RecentChooserMenu`][struct@crate::RecentChooserMenu], [`RecentChooserWidget`][struct@crate::RecentChooserWidget], [`RecentFilter`][struct@crate::RecentFilter], [`Revealer`][struct@crate::Revealer], [`ScaleButton`][struct@crate::ScaleButton], [`Scale`][struct@crate::Scale], [`Scrollbar`][struct@crate::Scrollbar], [`ScrolledWindow`][struct@crate::ScrolledWindow], [`SearchBar`][struct@crate::SearchBar], [`SearchEntry`][struct@crate::SearchEntry], [`SeparatorMenuItem`][struct@crate::SeparatorMenuItem], [`SeparatorToolItem`][struct@crate::SeparatorToolItem], [`Separator`][struct@crate::Separator], [`ShortcutLabel`][struct@crate::ShortcutLabel], [`ShortcutsGroup`][struct@crate::ShortcutsGroup], [`ShortcutsSection`][struct@crate::ShortcutsSection], [`ShortcutsShortcut`][struct@crate::ShortcutsShortcut], [`ShortcutsWindow`][struct@crate::ShortcutsWindow], [`SizeGroup`][struct@crate::SizeGroup], [`Socket`][struct@crate::Socket], [`SpinButton`][struct@crate::SpinButton], [`Spinner`][struct@crate::Spinner], [`StackSidebar`][struct@crate::StackSidebar], [`StackSwitcher`][struct@crate::StackSwitcher], [`Stack`][struct@crate::Stack], [`Statusbar`][struct@crate::Statusbar], [`Switch`][struct@crate::Switch], [`TextTagTable`][struct@crate::TextTagTable], [`TextView`][struct@crate::TextView], [`ToggleButton`][struct@crate::ToggleButton], [`ToggleToolButton`][struct@crate::ToggleToolButton], [`ToolButton`][struct@crate::ToolButton], [`ToolItemGroup`][struct@crate::ToolItemGroup], [`ToolItem`][struct@crate::ToolItem], [`ToolPalette`][struct@crate::ToolPalette], [`Toolbar`][struct@crate::Toolbar], [`TreeStore`][struct@crate::TreeStore], [`TreeViewColumn`][struct@crate::TreeViewColumn], [`TreeView`][struct@crate::TreeView], [`Viewport`][struct@crate::Viewport], [`VolumeButton`][struct@crate::VolumeButton], [`Widget`][struct@crate::Widget], [`Window`][struct@crate::Window]
pub trait BuildableExt: 'static {
/// Adds a child to `self`. `type_` is an optional string
/// describing how the child should be added.
/// ## `builder`
/// a [`Builder`][crate::Builder]
/// ## `child`
/// child to add
/// ## `type_`
/// kind of child or [`None`]
#[doc(alias = "gtk_buildable_add_child")]
fn add_child(
&self,
builder: &impl IsA<Builder>,
child: &impl IsA<glib::Object>,
type_: Option<&str>,
);
/// Constructs a child of `self` with the name `name`.
///
/// [`Builder`][crate::Builder] calls this function if a “constructor” has been
/// specified in the UI definition.
/// ## `builder`
/// [`Builder`][crate::Builder] used to construct this object
/// ## `name`
/// name of child to construct
///
/// # Returns
///
/// the constructed child
#[doc(alias = "gtk_buildable_construct_child")]
fn construct_child(&self, builder: &impl IsA<Builder>, name: &str) -> Option<glib::Object>;
//#[doc(alias = "gtk_buildable_custom_finished")]
//fn custom_finished(&self, builder: &impl IsA<Builder>, child: Option<&impl IsA<glib::Object>>, tagname: &str, data: /*Unimplemented*/Option<Basic: Pointer>);
//#[doc(alias = "gtk_buildable_custom_tag_end")]
//fn custom_tag_end(&self, builder: &impl IsA<Builder>, child: Option<&impl IsA<glib::Object>>, tagname: &str, data: /*Unimplemented*/Option<Basic: Pointer>);
//#[doc(alias = "gtk_buildable_custom_tag_start")]
//fn custom_tag_start(&self, builder: &impl IsA<Builder>, child: Option<&impl IsA<glib::Object>>, tagname: &str, parser: /*Ignored*/glib::MarkupParser, data: /*Unimplemented*/&mut Option<Basic: Pointer>) -> bool;
/// Get the internal child called `childname` of the `self` object.
/// ## `builder`
/// a [`Builder`][crate::Builder]
/// ## `childname`
/// name of child
///
/// # Returns
///
/// the internal child of the buildable object
#[doc(alias = "gtk_buildable_get_internal_child")]
#[doc(alias = "get_internal_child")]
fn internal_child(&self, builder: &impl IsA<Builder>, childname: &str) -> Option<glib::Object>;
/// Called when the builder finishes the parsing of a
/// [GtkBuilder UI definition][BUILDER-UI].
/// Note that this will be called once for each time
/// `gtk_builder_add_from_file()` or [`BuilderExtManual::add_from_string()`][crate::prelude::BuilderExtManual::add_from_string()]
/// is called on a builder.
/// ## `builder`
/// a [`Builder`][crate::Builder]
#[doc(alias = "gtk_buildable_parser_finished")]
fn parser_finished(&self, builder: &impl IsA<Builder>);
/// Sets the property name `name` to `value` on the `self` object.
/// ## `builder`
/// a [`Builder`][crate::Builder]
/// ## `name`
/// name of property
/// ## `value`
/// value of property
#[doc(alias = "gtk_buildable_set_buildable_property")]
fn set_buildable_property(&self, builder: &impl IsA<Builder>, name: &str, value: &glib::Value);
}
impl<O: IsA<Buildable>> BuildableExt for O {
fn add_child(
&self,
builder: &impl IsA<Builder>,
child: &impl IsA<glib::Object>,
type_: Option<&str>,
) {
unsafe {
ffi::gtk_buildable_add_child(
self.as_ref().to_glib_none().0,
builder.as_ref().to_glib_none().0,
child.as_ref().to_glib_none().0,
type_.to_glib_none().0,
);
}
}
fn construct_child(&self, builder: &impl IsA<Builder>, name: &str) -> Option<glib::Object> {
unsafe {
from_glib_full(ffi::gtk_buildable_construct_child(
self.as_ref().to_glib_none().0,
builder.as_ref().to_glib_none().0,
name.to_glib_none().0,
))
}
}
//fn custom_finished(&self, builder: &impl IsA<Builder>, child: Option<&impl IsA<glib::Object>>, tagname: &str, data: /*Unimplemented*/Option<Basic: Pointer>) {
// unsafe { TODO: call ffi:gtk_buildable_custom_finished() }
//}
//fn custom_tag_end(&self, builder: &impl IsA<Builder>, child: Option<&impl IsA<glib::Object>>, tagname: &str, data: /*Unimplemented*/Option<Basic: Pointer>) {
// unsafe { TODO: call ffi:gtk_buildable_custom_tag_end() }
//}
//fn custom_tag_start(&self, builder: &impl IsA<Builder>, child: Option<&impl IsA<glib::Object>>, tagname: &str, parser: /*Ignored*/glib::MarkupParser, data: /*Unimplemented*/&mut Option<Basic: Pointer>) -> bool {
// unsafe { TODO: call ffi:gtk_buildable_custom_tag_start() }
//}
fn internal_child(&self, builder: &impl IsA<Builder>, childname: &str) -> Option<glib::Object> {
unsafe {
from_glib_none(ffi::gtk_buildable_get_internal_child(
self.as_ref().to_glib_none().0,
builder.as_ref().to_glib_none().0,
childname.to_glib_none().0,
))
}
}
fn parser_finished(&self, builder: &impl IsA<Builder>) {
unsafe {
ffi::gtk_buildable_parser_finished(
self.as_ref().to_glib_none().0,
builder.as_ref().to_glib_none().0,
);
}
}
fn set_buildable_property(&self, builder: &impl IsA<Builder>, name: &str, value: &glib::Value) {
unsafe {
ffi::gtk_buildable_set_buildable_property(
self.as_ref().to_glib_none().0,
builder.as_ref().to_glib_none().0,
name.to_glib_none().0,
value.to_glib_none().0,
);
}
}
}
impl fmt::Display for Buildable {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str("Buildable")
}
}