Skip to main content

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}