gtk4/subclass/
mod.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3// rustdoc-stripper-ignore-next
4//! Traits intended for creating custom types.
5
6// rustdoc-stripper-ignore-next
7/// Struct to hold a pointer and free it on `Drop::drop`
8pub(crate) struct PtrHolder<T, F: Fn(*mut T) + 'static>(*mut T, F);
9
10impl<T, F: Fn(*mut T) + 'static> Drop for PtrHolder<T, F> {
11    #[inline]
12    fn drop(&mut self) {
13        (self.1)(self.0)
14    }
15}
16
17#[cfg(feature = "v4_10")]
18#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
19pub mod accessible;
20#[cfg(feature = "v4_10")]
21#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
22pub mod accessible_range;
23#[cfg(feature = "v4_14")]
24#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
25pub mod accessible_text;
26pub mod actionable;
27pub mod adjustment;
28pub mod application;
29pub mod application_window;
30pub mod box_;
31pub mod buildable;
32pub mod builder_scope;
33pub mod button;
34pub mod cell_area;
35pub mod cell_area_context;
36pub mod cell_editable;
37pub mod cell_layout;
38pub mod cell_renderer;
39pub mod cell_renderer_text;
40pub mod check_button;
41pub mod color_chooser;
42pub mod combo_box;
43pub mod dialog;
44pub mod drawing_area;
45pub mod editable;
46pub mod entry;
47pub mod entry_buffer;
48pub mod filter;
49pub mod fixed;
50pub mod flow_box_child;
51pub mod font_chooser;
52pub mod frame;
53pub mod gl_area;
54pub mod grid;
55pub mod im_context;
56pub mod layout_child;
57pub mod layout_manager;
58pub mod list_box_row;
59pub mod media_file;
60pub mod media_stream;
61pub mod native_dialog;
62pub mod orientable;
63pub mod popover;
64pub mod print_operation;
65pub mod print_operation_preview;
66pub mod range;
67pub mod recent_manager;
68pub mod scale;
69pub mod scale_button;
70pub mod scrollable;
71#[cfg(feature = "v4_12")]
72#[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
73pub mod section_model;
74pub mod selection_model;
75pub mod shortcut_manager;
76pub mod sorter;
77pub mod style_context;
78#[cfg(feature = "v4_6")]
79#[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
80pub mod symbolic_paintable;
81pub mod text_buffer;
82pub mod text_view;
83pub mod toggle_button;
84pub mod tree_drag_dest;
85pub mod tree_drag_source;
86pub mod tree_model_filter;
87pub mod tree_view;
88pub mod widget;
89pub mod window;
90pub mod window_group;
91
92// rustdoc-stripper-ignore-next
93/// Traits intended for blanket imports.
94pub mod prelude {
95    #[doc(hidden)]
96    pub use gdk::subclass::prelude::*;
97
98    #[cfg(feature = "v4_10")]
99    #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
100    pub use super::accessible::{AccessibleImpl, AccessibleImplExt};
101    #[cfg(feature = "v4_10")]
102    #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
103    pub use super::accessible_range::{AccessibleRangeImpl, AccessibleRangeImplExt};
104    #[cfg(feature = "v4_14")]
105    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
106    pub use super::accessible_text::{AccessibleTextImpl, AccessibleTextImplExt};
107    #[cfg(feature = "v4_12")]
108    #[cfg_attr(docsrs, doc(cfg(feature = "v4_12")))]
109    pub use super::section_model::{SectionModelImpl, SectionModelImplExt};
110    #[cfg(feature = "v4_6")]
111    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
112    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
113    pub use super::symbolic_paintable::{SymbolicPaintableImpl, SymbolicPaintableImplExt};
114    pub use super::{
115        actionable::{ActionableImpl, ActionableImplExt},
116        adjustment::{AdjustmentImpl, AdjustmentImplExt},
117        application::{GtkApplicationImpl, GtkApplicationImplExt},
118        application_window::ApplicationWindowImpl,
119        box_::BoxImpl,
120        buildable::{BuildableImpl, BuildableImplExt},
121        builder_scope::{BuilderCScopeImpl, BuilderScopeImpl, BuilderScopeImplExt},
122        button::{ButtonImpl, ButtonImplExt},
123        cell_area::{CellAreaClassExt, CellAreaImpl, CellAreaImplExt},
124        cell_area_context::{CellAreaContextImpl, CellAreaContextImplExt},
125        cell_editable::{CellEditableImpl, CellEditableImplExt},
126        cell_layout::{CellLayoutImpl, CellLayoutImplExt},
127        cell_renderer::{CellRendererImpl, CellRendererImplExt},
128        cell_renderer_text::{CellRendererTextImpl, CellRendererTextImplExt},
129        check_button::{CheckButtonImpl, CheckButtonImplExt},
130        color_chooser::{ColorChooserImpl, ColorChooserImplExt},
131        combo_box::{ComboBoxImpl, ComboBoxImplExt},
132        dialog::{DialogImpl, DialogImplExt},
133        drawing_area::{DrawingAreaImpl, DrawingAreaImplExt},
134        editable::{EditableImpl, EditableImplExt},
135        entry::{EntryImpl, EntryImplExt},
136        entry_buffer::{EntryBufferImpl, EntryBufferImplExt},
137        filter::{FilterImpl, FilterImplExt},
138        fixed::FixedImpl,
139        flow_box_child::{FlowBoxChildImpl, FlowBoxChildImplExt},
140        font_chooser::{FontChooserImpl, FontChooserImplExt},
141        frame::{FrameImpl, FrameImplExt},
142        gl_area::{GLAreaImpl, GLAreaImplExt},
143        grid::GridImpl,
144        im_context::{IMContextImpl, IMContextImplExt},
145        layout_child::LayoutChildImpl,
146        layout_manager::{LayoutManagerImpl, LayoutManagerImplExt},
147        list_box_row::{ListBoxRowImpl, ListBoxRowImplExt},
148        media_file::{MediaFileImpl, MediaFileImplExt},
149        media_stream::{MediaStreamImpl, MediaStreamImplExt},
150        native_dialog::{NativeDialogImpl, NativeDialogImplExt},
151        orientable::OrientableImpl,
152        popover::{PopoverImpl, PopoverImplExt},
153        print_operation::{PrintOperationImpl, PrintOperationImplExt},
154        print_operation_preview::PrintOperationPreviewImpl,
155        range::{RangeImpl, RangeImplExt},
156        recent_manager::{RecentManagerImpl, RecentManagerImplExt},
157        scale::{ScaleImpl, ScaleImplExt},
158        scale_button::{ScaleButtonImpl, ScaleButtonImplExt},
159        scrollable::{ScrollableImpl, ScrollableImplExt},
160        selection_model::{SelectionModelImpl, SelectionModelImplExt},
161        shortcut_manager::{ShortcutManagerImpl, ShortcutManagerImplExt},
162        sorter::{SorterImpl, SorterImplExt},
163        style_context::{StyleContextImpl, StyleContextImplExt},
164        text_buffer::{TextBufferImpl, TextBufferImplExt},
165        text_view::{TextViewImpl, TextViewImplExt},
166        toggle_button::{ToggleButtonImpl, ToggleButtonImplExt},
167        tree_drag_dest::{TreeDragDestImpl, TreeDragDestImplExt},
168        tree_drag_source::{TreeDragSourceImpl, TreeDragSourceImplExt},
169        tree_model_filter::{TreeModelFilterImpl, TreeModelFilterImplExt},
170        tree_view::{TreeViewImpl, TreeViewImplExt},
171        widget::{
172            CompositeTemplate, CompositeTemplateCallbacks, CompositeTemplateCallbacksClass,
173            CompositeTemplateClass, CompositeTemplateDisposeExt, CompositeTemplateInitializingExt,
174            CompositeTemplateInstanceCallbacksClass, TemplateChild, WidgetClassExt, WidgetImpl,
175            WidgetImplExt,
176        },
177        window::{WindowImpl, WindowImplExt},
178        window_group::WindowGroupImpl,
179    };
180}