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
//! User interface components and controls for AppCUI.
//!
//! This module provides a comprehensive set of UI controls and components for building
//! terminal-based user interfaces in the AppCUI framework. The UI module includes:
//!
//! # Core Components
//!
//! - [`Desktop`]: The main container for the application UI
//! - [`Window`]: Standard application windows
//! - [`Panel`]: Container for grouping related controls
//! - [`Layout`]: Management of control positioning and sizing
//!
//! # Input Controls
//!
//! - [`Button`]: Clickable button control
//! - [`TextField`]: Single-line text input
//! - [`TextArea`]: Multi-line text input and editing
//! - [`Password`]: Masked text input for secure data
//! - [`CheckBox`]: Boolean selection control
//! - [`RadioBox`]: Single selection from multiple options
//! - [`ThreeStateBox`]: Three-state checkbox (checked, unchecked, indeterminate)
//! - [`ComboBox`]: Editable dropdown list
//! - [`DropDownList`]: Non-editable dropdown list
//! - [`NumericSelector`]: Numeric value input and adjustment
//! - [`DatePicker`]: Date selection control
//! - [`KeySelector`]: Keyboard shortcut selector
//! - [`ColorPicker`]: Color selection control
//!
//! # Display Controls
//!
//! - [`Label`]: Static text display
//! - [`ProgressBar`]: Visual representation of progress
//! - [`ImageViewer`]: Display and manipulation of images
//! - [`Canvas`]: Custom drawing surface
//! - [`HLine`]/[`VLine`]: Horizontal and vertical separators
//!
//! # Navigation and Organization
//!
//! - [`Tab`]: Tabbed interface for organizing content
//! - [`Accordion`]: Collapsible sections of controls
//! - [`VSplitter`]/[`HSplitter`]: Resizable split views (vertical/horizontal)
//! - [`TreeView`]: Hierarchical data presentation
//! - [`ListBox`]: Simple list of selectable items
//! - [`ListView`]: Multi-column list with headers
//! - [`PathFinder`]: File system navigation control
//!
//! # Menus and Commands
//!
//! - [`Menu`]: Application menus
//! - [`CommandBar`]: Shortcut command interface
//!
//! # Example
//!
//! Creating a simple hello world window:
//!
//! ```rust, no_run
//! use appcui::prelude::*;
//!
//! fn main() -> Result<(), appcui::system::Error> {
//! // Initialize the application
//! let mut app = App::new().build()?;
//!
//! // Create a window with centered layout and specific size
//! let mut win = Window::new(
//! "First Window",
//! LayoutBuilder::new().alignment(Alignment::Center).width(30).height(9).build(),
//! window::Flags::Sizeable
//! );
//!
//! // Add a label to the window
//! win.add(Label::new("Hello World !", layout!("a:center,width:13,height:1")));
//!
//! // Add the window to the application and run
//! app.add_window(win);
//! app.run();
//!
//! Ok(())
//! }
// controls
// re-export
pub use ControlBase;
pub use ContainerBase;
pub use Desktop;
pub use CheckBox;
pub use RadioBox;
pub use Password;
pub use TextField;
pub use RichTextField;
pub use ThreeStateBox;
pub use Label;
pub use Panel;
pub use Window;
pub use ModalWindow;
pub use Button;
pub use Tab;
pub use Accordion;
pub use Canvas;
pub use ImageViewer;
pub use KeySelector;
pub use ColorPicker;
pub use CharPicker;
pub use Selector;
pub use ComboBox;
pub use DropDownList;
pub use CommandBar;
pub use Layout;
pub use LayoutBuilder;
pub use Dock;
pub use Alignment;
pub use Pivot;
pub use NumericSelector;
pub use VSplitter;
pub use HSplitter;
pub use HLine;
pub use VLine;
pub use DatePicker;
pub use ListBox;
pub use ListView;
pub use ToggleButton;
pub use Markdown;
pub use PathFinder;
pub use TreeView;
pub use ProgressBar;
pub use TextArea;
pub use TimePicker;
pub use Menu;
pub use AppBar;
pub use GraphView;