pub struct FrameBuilder { /* private fields */ }Implementations§
Source§impl FrameBuilder
impl FrameBuilder
Sourcepub fn flags(self, flags: FrameFlags) -> FrameBuilder
pub fn flags(self, flags: FrameFlags) -> FrameBuilder
Examples found in repository?
examples/partials.rs (line 162)
141 fn build_ui(mut data: PartialDemo) -> Result<Rc<PartialDemoUi>, nwg::NwgError> {
142 use nwg::Event as E;
143
144 // Controls
145 nwg::Window::builder()
146 .size((500, 400))
147 .position((300, 300))
148 .title("Many UI")
149 .build(&mut data.window)?;
150
151 nwg::ListBox::builder()
152 .collection(vec!["People", "Animals", "Food"])
153 .focus(true)
154 .parent(&data.window)
155 .build(&mut data.menu)?;
156
157 nwg::Frame::builder()
158 .parent(&data.window)
159 .build(&mut data.frame1)?;
160
161 nwg::Frame::builder()
162 .flags(nwg::FrameFlags::BORDER)
163 .parent(&data.window)
164 .build(&mut data.frame2)?;
165
166 nwg::Frame::builder()
167 .flags(nwg::FrameFlags::BORDER)
168 .parent(&data.window)
169 .build(&mut data.frame3)?;
170
171 // Partials
172 PeopleUi::build_partial(&mut data.people_ui, Some(&data.frame1))?;
173 AnimalUi::build_partial(&mut data.animal_ui, Some(&data.frame2))?;
174 FoodUi::build_partial(&mut data.food_ui, Some(&data.frame3))?;
175
176 // Wrap-up
177 let ui = Rc::new(PartialDemoUi {
178 inner: data,
179 default_handler: Default::default(),
180 });
181
182 // Events
183 let mut window_handles = vec![&ui.window.handle];
184 window_handles.append(&mut ui.people_ui.handles());
185 window_handles.append(&mut ui.animal_ui.handles());
186 window_handles.append(&mut ui.food_ui.handles());
187
188 for handle in window_handles.iter() {
189 let evt_ui = ui.clone();
190 let handle_events = move |evt, evt_data, handle| {
191 evt_ui.people_ui.process_event(evt, &evt_data, handle);
192 evt_ui.animal_ui.process_event(evt, &evt_data, handle);
193 evt_ui.food_ui.process_event(evt, &evt_data, handle);
194
195 match evt {
196 E::OnListBoxSelect => {
197 if &handle == &evt_ui.menu {
198 PartialDemo::change_interface(&evt_ui.inner);
199 }
200 }
201 E::OnWindowClose => {
202 if &handle == &evt_ui.window {
203 PartialDemo::exit(&evt_ui.inner);
204 }
205 }
206 E::OnButtonClick => {
207 if &handle == &evt_ui.people_ui.save_btn
208 || &handle == &evt_ui.animal_ui.save_btn
209 || &handle == &evt_ui.food_ui.save_btn
210 {
211 PartialDemo::save(&evt_ui.inner);
212 }
213 }
214 _ => {}
215 }
216 };
217
218 ui.default_handler
219 .borrow_mut()
220 .push(nwg::full_bind_event_handler(handle, handle_events));
221 }
222
223 // Layout
224 use nwg::stretch::{geometry::Size, style::Dimension as D};
225
226 nwg::FlexboxLayout::builder()
227 .parent(&ui.window)
228 .child(&ui.menu)
229 .child_size(Size {
230 width: D::Percent(0.3),
231 height: D::Auto,
232 })
233 .child(&ui.frame1)
234 .child_size(Size {
235 width: D::Percent(1.0),
236 height: D::Auto,
237 })
238 .build(&ui.layout)?;
239
240 return Ok(ui);
241 }pub fn ex_flags(self, flags: u32) -> FrameBuilder
pub fn size(self, size: (i32, i32)) -> FrameBuilder
pub fn position(self, pos: (i32, i32)) -> FrameBuilder
pub fn enabled(self, e: bool) -> FrameBuilder
Sourcepub fn parent<C: Into<ControlHandle>>(self, p: C) -> FrameBuilder
pub fn parent<C: Into<ControlHandle>>(self, p: C) -> FrameBuilder
Examples found in repository?
examples/partials.rs (line 158)
141 fn build_ui(mut data: PartialDemo) -> Result<Rc<PartialDemoUi>, nwg::NwgError> {
142 use nwg::Event as E;
143
144 // Controls
145 nwg::Window::builder()
146 .size((500, 400))
147 .position((300, 300))
148 .title("Many UI")
149 .build(&mut data.window)?;
150
151 nwg::ListBox::builder()
152 .collection(vec!["People", "Animals", "Food"])
153 .focus(true)
154 .parent(&data.window)
155 .build(&mut data.menu)?;
156
157 nwg::Frame::builder()
158 .parent(&data.window)
159 .build(&mut data.frame1)?;
160
161 nwg::Frame::builder()
162 .flags(nwg::FrameFlags::BORDER)
163 .parent(&data.window)
164 .build(&mut data.frame2)?;
165
166 nwg::Frame::builder()
167 .flags(nwg::FrameFlags::BORDER)
168 .parent(&data.window)
169 .build(&mut data.frame3)?;
170
171 // Partials
172 PeopleUi::build_partial(&mut data.people_ui, Some(&data.frame1))?;
173 AnimalUi::build_partial(&mut data.animal_ui, Some(&data.frame2))?;
174 FoodUi::build_partial(&mut data.food_ui, Some(&data.frame3))?;
175
176 // Wrap-up
177 let ui = Rc::new(PartialDemoUi {
178 inner: data,
179 default_handler: Default::default(),
180 });
181
182 // Events
183 let mut window_handles = vec![&ui.window.handle];
184 window_handles.append(&mut ui.people_ui.handles());
185 window_handles.append(&mut ui.animal_ui.handles());
186 window_handles.append(&mut ui.food_ui.handles());
187
188 for handle in window_handles.iter() {
189 let evt_ui = ui.clone();
190 let handle_events = move |evt, evt_data, handle| {
191 evt_ui.people_ui.process_event(evt, &evt_data, handle);
192 evt_ui.animal_ui.process_event(evt, &evt_data, handle);
193 evt_ui.food_ui.process_event(evt, &evt_data, handle);
194
195 match evt {
196 E::OnListBoxSelect => {
197 if &handle == &evt_ui.menu {
198 PartialDemo::change_interface(&evt_ui.inner);
199 }
200 }
201 E::OnWindowClose => {
202 if &handle == &evt_ui.window {
203 PartialDemo::exit(&evt_ui.inner);
204 }
205 }
206 E::OnButtonClick => {
207 if &handle == &evt_ui.people_ui.save_btn
208 || &handle == &evt_ui.animal_ui.save_btn
209 || &handle == &evt_ui.food_ui.save_btn
210 {
211 PartialDemo::save(&evt_ui.inner);
212 }
213 }
214 _ => {}
215 }
216 };
217
218 ui.default_handler
219 .borrow_mut()
220 .push(nwg::full_bind_event_handler(handle, handle_events));
221 }
222
223 // Layout
224 use nwg::stretch::{geometry::Size, style::Dimension as D};
225
226 nwg::FlexboxLayout::builder()
227 .parent(&ui.window)
228 .child(&ui.menu)
229 .child_size(Size {
230 width: D::Percent(0.3),
231 height: D::Auto,
232 })
233 .child(&ui.frame1)
234 .child_size(Size {
235 width: D::Percent(1.0),
236 height: D::Auto,
237 })
238 .build(&ui.layout)?;
239
240 return Ok(ui);
241 }Sourcepub fn build(self, out: &mut Frame) -> Result<(), NwgError>
pub fn build(self, out: &mut Frame) -> Result<(), NwgError>
Examples found in repository?
examples/partials.rs (line 159)
141 fn build_ui(mut data: PartialDemo) -> Result<Rc<PartialDemoUi>, nwg::NwgError> {
142 use nwg::Event as E;
143
144 // Controls
145 nwg::Window::builder()
146 .size((500, 400))
147 .position((300, 300))
148 .title("Many UI")
149 .build(&mut data.window)?;
150
151 nwg::ListBox::builder()
152 .collection(vec!["People", "Animals", "Food"])
153 .focus(true)
154 .parent(&data.window)
155 .build(&mut data.menu)?;
156
157 nwg::Frame::builder()
158 .parent(&data.window)
159 .build(&mut data.frame1)?;
160
161 nwg::Frame::builder()
162 .flags(nwg::FrameFlags::BORDER)
163 .parent(&data.window)
164 .build(&mut data.frame2)?;
165
166 nwg::Frame::builder()
167 .flags(nwg::FrameFlags::BORDER)
168 .parent(&data.window)
169 .build(&mut data.frame3)?;
170
171 // Partials
172 PeopleUi::build_partial(&mut data.people_ui, Some(&data.frame1))?;
173 AnimalUi::build_partial(&mut data.animal_ui, Some(&data.frame2))?;
174 FoodUi::build_partial(&mut data.food_ui, Some(&data.frame3))?;
175
176 // Wrap-up
177 let ui = Rc::new(PartialDemoUi {
178 inner: data,
179 default_handler: Default::default(),
180 });
181
182 // Events
183 let mut window_handles = vec![&ui.window.handle];
184 window_handles.append(&mut ui.people_ui.handles());
185 window_handles.append(&mut ui.animal_ui.handles());
186 window_handles.append(&mut ui.food_ui.handles());
187
188 for handle in window_handles.iter() {
189 let evt_ui = ui.clone();
190 let handle_events = move |evt, evt_data, handle| {
191 evt_ui.people_ui.process_event(evt, &evt_data, handle);
192 evt_ui.animal_ui.process_event(evt, &evt_data, handle);
193 evt_ui.food_ui.process_event(evt, &evt_data, handle);
194
195 match evt {
196 E::OnListBoxSelect => {
197 if &handle == &evt_ui.menu {
198 PartialDemo::change_interface(&evt_ui.inner);
199 }
200 }
201 E::OnWindowClose => {
202 if &handle == &evt_ui.window {
203 PartialDemo::exit(&evt_ui.inner);
204 }
205 }
206 E::OnButtonClick => {
207 if &handle == &evt_ui.people_ui.save_btn
208 || &handle == &evt_ui.animal_ui.save_btn
209 || &handle == &evt_ui.food_ui.save_btn
210 {
211 PartialDemo::save(&evt_ui.inner);
212 }
213 }
214 _ => {}
215 }
216 };
217
218 ui.default_handler
219 .borrow_mut()
220 .push(nwg::full_bind_event_handler(handle, handle_events));
221 }
222
223 // Layout
224 use nwg::stretch::{geometry::Size, style::Dimension as D};
225
226 nwg::FlexboxLayout::builder()
227 .parent(&ui.window)
228 .child(&ui.menu)
229 .child_size(Size {
230 width: D::Percent(0.3),
231 height: D::Auto,
232 })
233 .child(&ui.frame1)
234 .child_size(Size {
235 width: D::Percent(1.0),
236 height: D::Auto,
237 })
238 .build(&ui.layout)?;
239
240 return Ok(ui);
241 }Auto Trait Implementations§
impl Freeze for FrameBuilder
impl RefUnwindSafe for FrameBuilder
impl !Send for FrameBuilder
impl !Sync for FrameBuilder
impl Unpin for FrameBuilder
impl UnwindSafe for FrameBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more