gtk/auto/bin.rs
1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::{Buildable, Container, Widget};
6use glib::{prelude::*, translate::*};
7use std::fmt;
8
9glib::wrapper! {
10 /// The [`Bin`][crate::Bin] widget is a container with just one child.
11 /// It is not very useful itself, but it is useful for deriving subclasses,
12 /// since it provides common code needed for handling a single child widget.
13 ///
14 /// Many GTK+ widgets are subclasses of [`Bin`][crate::Bin], including [`Window`][crate::Window],
15 /// [`Button`][crate::Button], [`Frame`][crate::Frame], `GtkHandleBox` or [`ScrolledWindow`][crate::ScrolledWindow].
16 ///
17 /// This is an Abstract Base Class, you cannot instantiate it.
18 ///
19 /// # Implements
20 ///
21 /// [`BinExt`][trait@crate::prelude::BinExt], [`ContainerExt`][trait@crate::prelude::ContainerExt], [`WidgetExt`][trait@crate::prelude::WidgetExt], [`trait@glib::ObjectExt`], [`BuildableExt`][trait@crate::prelude::BuildableExt], [`ContainerExtManual`][trait@crate::prelude::ContainerExtManual], [`WidgetExtManual`][trait@crate::prelude::WidgetExtManual], [`BuildableExtManual`][trait@crate::prelude::BuildableExtManual]
22 #[doc(alias = "GtkBin")]
23 pub struct Bin(Object<ffi::GtkBin, ffi::GtkBinClass>) @extends Container, Widget, @implements Buildable;
24
25 match fn {
26 type_ => || ffi::gtk_bin_get_type(),
27 }
28}
29
30impl Bin {
31 pub const NONE: Option<&'static Bin> = None;
32}
33
34mod sealed {
35 pub trait Sealed {}
36 impl<T: super::IsA<super::Bin>> Sealed for T {}
37}
38
39/// Trait containing all [`struct@Bin`] methods.
40///
41/// # Implementors
42///
43/// [`ActionBar`][struct@crate::ActionBar], [`Bin`][struct@crate::Bin], [`Button`][struct@crate::Button], [`ComboBox`][struct@crate::ComboBox], [`EventBox`][struct@crate::EventBox], [`Expander`][struct@crate::Expander], [`FlowBoxChild`][struct@crate::FlowBoxChild], [`Frame`][struct@crate::Frame], [`ListBoxRow`][struct@crate::ListBoxRow], [`MenuItem`][struct@crate::MenuItem], [`Overlay`][struct@crate::Overlay], [`Popover`][struct@crate::Popover], [`Revealer`][struct@crate::Revealer], [`ScrolledWindow`][struct@crate::ScrolledWindow], [`SearchBar`][struct@crate::SearchBar], [`StackSidebar`][struct@crate::StackSidebar], [`ToolItem`][struct@crate::ToolItem], [`Viewport`][struct@crate::Viewport], [`Window`][struct@crate::Window]
44pub trait BinExt: IsA<Bin> + sealed::Sealed + 'static {
45 /// Gets the child of the [`Bin`][crate::Bin], or [`None`] if the bin contains
46 /// no child widget. The returned widget does not have a reference
47 /// added, so you do not need to unref it.
48 ///
49 /// # Returns
50 ///
51 /// the child of `self`, or [`None`] if it does
52 /// not have a child.
53 #[doc(alias = "gtk_bin_get_child")]
54 #[doc(alias = "get_child")]
55 fn child(&self) -> Option<Widget> {
56 unsafe { from_glib_none(ffi::gtk_bin_get_child(self.as_ref().to_glib_none().0)) }
57 }
58}
59
60impl<O: IsA<Bin>> BinExt for O {}
61
62impl fmt::Display for Bin {
63 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
64 f.write_str("Bin")
65 }
66}