@@ -10,7 +10,9 @@ use tcw3::{
10
10
pal,
11
11
};
12
12
13
- use crate::{model, stylesheet::elem_id};
13
+ use crate::{model, stylesheet::elem_id, view::toolbar::ToolbarView};
14
+
15
+ import!("view/toolbar.tcwdl");
14
16
15
17
#[widget]
16
18
comp crate::view::MainView {
@@ -135,94 +137,6 @@ comp crate::view::MainView {
135
137
on (init) get!(&this).init();
136
138
}
137
139
138
- use crate::view::toolbar::ToolbarView;
139
- #[widget]
140
- pub(crate) comp ToolbarView {
141
- const wm: pal::Wm { pub set; }
142
- const style_manager: &Manager { pub set; }
143
-
144
- pub prop wnd_state: Elem<model::WndState>;
145
- pub event dispatch(action: model::WndAction);
146
-
147
- on (init) get!(&this).init();
148
-
149
- pub const wrapper = StyledBox::new! {
150
- style_manager,
151
- class_set = elem_id::TOOLBAR,
152
- subview_generic = HView::new! {
153
- layout = TableLayout::stack_horz(
154
- [
155
- (get!(&toggle_sidebar_button.view), AlignFlags::JUSTIFY),
156
- (get!(&spacer1.view), AlignFlags::HORZ_JUSTIFY),
157
- (get!(&go_back_button.view), AlignFlags::JUSTIFY),
158
- (get!(&spacer2.view), AlignFlags::HORZ_JUSTIFY),
159
- (get!(&go_forward_button.view), AlignFlags::JUSTIFY),
160
- (get!(&spacer3.view), AlignFlags::CENTER),
161
- (get!(&search_bar.view), AlignFlags::RIGHT),
162
- ]
163
- .iter()
164
- .map(|&(view, align)| (view.clone(), align))
165
- ),
166
- },
167
- };
168
-
169
- pub const view: HView = get!(wrapper.view);
170
-
171
- const spacer1 = FixedSpacer::new! { wm, size = [5.0, 0.0].into() };
172
- const spacer2 = FixedSpacer::new! { wm, size = [5.0, 0.0].into() };
173
- const spacer3 = FixedSpacer::new! { wm };
174
-
175
- const toggle_sidebar_button = Button::new! {
176
- style_manager,
177
-
178
- class_set = theming::ClassSet::BUTTON
179
- | [elem_id::SIDEBAR_SHOW, elem_id::SIDEBAR_HIDE]
180
- [get!(&wnd_state).sidebar_visible as usize],
181
-
182
- // TODO: `on_activate` is set by `init` for now
183
- };
184
-
185
- on (toggle_sidebar_button.activated) get!(&this).toggle_sidebar();
186
-
187
- const go_back_button = Button::new! {
188
- style_manager,
189
- class_set = theming::ClassSet::BUTTON | elem_id::GO_BACK,
190
- };
191
-
192
- const go_forward_button = Button::new! {
193
- style_manager,
194
- class_set = theming::ClassSet::BUTTON | elem_id::GO_FORWARD,
195
- };
196
-
197
- on (go_back_button.activated) dbg!();
198
- on (go_forward_button.activated) dbg!();
199
-
200
- // TODO
201
- const search_bar = StyledBox::new! {
202
- style_manager,
203
- view_flags = {
204
- // Make `set_cursor_shape` work
205
- use tcw3::uicore::ViewFlags;
206
- ViewFlags::default() | ViewFlags::ACCEPT_MOUSE_OVER
207
- },
208
- class_set = elem_id::SEARCH_FIELD,
209
- subview_generic = get!(search_bar_placeholder.view),
210
- };
211
- on (init) {
212
- // TODO: find a prettier way
213
- get!(&search_bar).set_subelement(
214
- tcw3::ui::theming::Role::Generic,
215
- Some(get!(search_bar_placeholder.style_elem))
216
- );
217
- get!(&search_bar.view).set_cursor_shape(Some(tcw3::uicore::CursorShape::Text));
218
- }
219
-
220
- const search_bar_placeholder = Label::new! {
221
- style_manager,
222
- text = "Search",
223
- };
224
- }
225
-
226
140
use crate::view::PlaceholderView;
227
141
#[widget]
228
142
pub(crate) comp PlaceholderView {
0 commit comments