pub struct WindowBuilder(/* private fields */);
Expand description
A builder type for creating new windows.
Implementations§
Source§impl WindowBuilder
impl WindowBuilder
Sourcepub fn new(app: Application) -> WindowBuilder
pub fn new(app: Application) -> WindowBuilder
Create a new WindowBuilder
.
Takes the Application
that this window is for.
Examples found in repository?
More examples
138fn main() {
139 tracing_subscriber::fmt().init();
140 let app = Application::new().unwrap();
141 let mut builder = WindowBuilder::new(app.clone());
142 let perf_test = PerfTest {
143 size: Size::ZERO,
144 handle: Default::default(),
145 start_time: time::Instant::now(),
146 last_time: time::Instant::now(),
147 red: true,
148 };
149 builder.set_handler(Box::new(perf_test));
150 builder.set_title("Performance tester");
151
152 let window = builder.build().unwrap();
153 window.show();
154
155 app.run(None);
156}
104fn main() {
105 tracing_subscriber::fmt().init();
106 let app = Application::new().unwrap();
107 let mut builder = WindowBuilder::new(app.clone());
108 let inv_test = InvalidateTest {
109 size: Size::ZERO,
110 handle: Default::default(),
111 start_time: Instant::now(),
112 rect: Rect::from_origin_size(Point::ZERO, (10.0, 20.0)),
113 cursor: Rect::from_origin_size(Point::ZERO, (2.0, 100.0)),
114 color: Color::WHITE,
115 };
116 builder.set_handler(Box::new(inv_test));
117 builder.set_title("Invalidate tester");
118
119 let window = builder.build().unwrap();
120 window.show();
121 app.run(None);
122}
69fn main() {
70 tracing_subscriber::fmt().init();
71 let app = Application::new().unwrap();
72
73 let mut file_menu = Menu::new();
74 file_menu.add_item(
75 0x100,
76 "E&xit",
77 Some(&HotKey::new(SysMods::Cmd, "q")),
78 None,
79 true,
80 );
81
82 let mut menubar = Menu::new();
83 menubar.add_dropdown(file_menu, "Application", true);
84
85 let mut builder = WindowBuilder::new(app.clone());
86 builder.set_handler(Box::<QuitState>::default());
87 builder.set_title("Quit example");
88 builder.set_menu(menubar);
89
90 let window = builder.build().unwrap();
91 window.show();
92
93 app.run(None);
94}
136fn main() {
137 tracing_subscriber::fmt().init();
138 let mut file_menu = Menu::new();
139 file_menu.add_item(
140 0x100,
141 "E&xit",
142 Some(&HotKey::new(SysMods::Cmd, "q")),
143 None,
144 true,
145 );
146 file_menu.add_item(
147 0x101,
148 "O&pen",
149 Some(&HotKey::new(SysMods::Cmd, "o")),
150 None,
151 true,
152 );
153 file_menu.add_item(
154 0x102,
155 "S&ave",
156 Some(&HotKey::new(SysMods::Cmd, "s")),
157 None,
158 true,
159 );
160 let mut menubar = Menu::new();
161 menubar.add_dropdown(Menu::new(), "Application", true);
162 menubar.add_dropdown(file_menu, "&File", true);
163
164 let app = Application::new().unwrap();
165 let mut builder = WindowBuilder::new(app.clone());
166 builder.set_handler(Box::<HelloState>::default());
167 builder.set_title("Hello example");
168 builder.set_menu(menubar);
169
170 let window = builder.build().unwrap();
171 window.show();
172
173 app.run(None);
174}
Sourcepub fn set_handler(&mut self, handler: Box<dyn WinHandler>)
pub fn set_handler(&mut self, handler: Box<dyn WinHandler>)
Set the WinHandler
for this window.
This is the object that will receive callbacks from this window.
Examples found in repository?
More examples
138fn main() {
139 tracing_subscriber::fmt().init();
140 let app = Application::new().unwrap();
141 let mut builder = WindowBuilder::new(app.clone());
142 let perf_test = PerfTest {
143 size: Size::ZERO,
144 handle: Default::default(),
145 start_time: time::Instant::now(),
146 last_time: time::Instant::now(),
147 red: true,
148 };
149 builder.set_handler(Box::new(perf_test));
150 builder.set_title("Performance tester");
151
152 let window = builder.build().unwrap();
153 window.show();
154
155 app.run(None);
156}
104fn main() {
105 tracing_subscriber::fmt().init();
106 let app = Application::new().unwrap();
107 let mut builder = WindowBuilder::new(app.clone());
108 let inv_test = InvalidateTest {
109 size: Size::ZERO,
110 handle: Default::default(),
111 start_time: Instant::now(),
112 rect: Rect::from_origin_size(Point::ZERO, (10.0, 20.0)),
113 cursor: Rect::from_origin_size(Point::ZERO, (2.0, 100.0)),
114 color: Color::WHITE,
115 };
116 builder.set_handler(Box::new(inv_test));
117 builder.set_title("Invalidate tester");
118
119 let window = builder.build().unwrap();
120 window.show();
121 app.run(None);
122}
69fn main() {
70 tracing_subscriber::fmt().init();
71 let app = Application::new().unwrap();
72
73 let mut file_menu = Menu::new();
74 file_menu.add_item(
75 0x100,
76 "E&xit",
77 Some(&HotKey::new(SysMods::Cmd, "q")),
78 None,
79 true,
80 );
81
82 let mut menubar = Menu::new();
83 menubar.add_dropdown(file_menu, "Application", true);
84
85 let mut builder = WindowBuilder::new(app.clone());
86 builder.set_handler(Box::<QuitState>::default());
87 builder.set_title("Quit example");
88 builder.set_menu(menubar);
89
90 let window = builder.build().unwrap();
91 window.show();
92
93 app.run(None);
94}
136fn main() {
137 tracing_subscriber::fmt().init();
138 let mut file_menu = Menu::new();
139 file_menu.add_item(
140 0x100,
141 "E&xit",
142 Some(&HotKey::new(SysMods::Cmd, "q")),
143 None,
144 true,
145 );
146 file_menu.add_item(
147 0x101,
148 "O&pen",
149 Some(&HotKey::new(SysMods::Cmd, "o")),
150 None,
151 true,
152 );
153 file_menu.add_item(
154 0x102,
155 "S&ave",
156 Some(&HotKey::new(SysMods::Cmd, "s")),
157 None,
158 true,
159 );
160 let mut menubar = Menu::new();
161 menubar.add_dropdown(Menu::new(), "Application", true);
162 menubar.add_dropdown(file_menu, "&File", true);
163
164 let app = Application::new().unwrap();
165 let mut builder = WindowBuilder::new(app.clone());
166 builder.set_handler(Box::<HelloState>::default());
167 builder.set_title("Hello example");
168 builder.set_menu(menubar);
169
170 let window = builder.build().unwrap();
171 window.show();
172
173 app.run(None);
174}
Sourcepub fn set_size(&mut self, size: Size)
pub fn set_size(&mut self, size: Size)
Set the window’s initial drawing area size in display points.
The actual window size in pixels will depend on the platform DPI settings.
This should be considered a request to the platform to set the size of the window. The
platform might choose a different size depending on its DPI or other platform-dependent
configuration. To know the actual size of the window you should handle the
WinHandler::size
method.
Sourcepub fn set_min_size(&mut self, size: Size)
pub fn set_min_size(&mut self, size: Size)
Set the window’s minimum drawing area size in display points.
The actual minimum window size in pixels will depend on the platform DPI settings.
This should be considered a request to the platform to set the minimum size of the window. The platform might increase the size a tiny bit due to DPI.
Sourcepub fn show_titlebar(&mut self, show_titlebar: bool)
pub fn show_titlebar(&mut self, show_titlebar: bool)
Set whether the window should have a titlebar and decorations.
Sourcepub fn set_always_on_top(&mut self, always_on_top: bool)
pub fn set_always_on_top(&mut self, always_on_top: bool)
Set whether the window should be always positioned above all other windows.
Sourcepub fn set_transparent(&mut self, transparent: bool)
pub fn set_transparent(&mut self, transparent: bool)
Set whether the window background should be transparent
Sourcepub fn set_position(&mut self, position: Point)
pub fn set_position(&mut self, position: Point)
Sets the initial window position in display points. For windows with a parent, the position is relative to the parent. For windows without a parent, it is relative to the origin of the virtual screen. See also set_level
Sourcepub fn set_level(&mut self, level: WindowLevel)
pub fn set_level(&mut self, level: WindowLevel)
Sets the initial WindowLevel
.
Sourcepub fn set_title(&mut self, title: impl Into<String>)
pub fn set_title(&mut self, title: impl Into<String>)
Set the window’s initial title.
Examples found in repository?
More examples
138fn main() {
139 tracing_subscriber::fmt().init();
140 let app = Application::new().unwrap();
141 let mut builder = WindowBuilder::new(app.clone());
142 let perf_test = PerfTest {
143 size: Size::ZERO,
144 handle: Default::default(),
145 start_time: time::Instant::now(),
146 last_time: time::Instant::now(),
147 red: true,
148 };
149 builder.set_handler(Box::new(perf_test));
150 builder.set_title("Performance tester");
151
152 let window = builder.build().unwrap();
153 window.show();
154
155 app.run(None);
156}
104fn main() {
105 tracing_subscriber::fmt().init();
106 let app = Application::new().unwrap();
107 let mut builder = WindowBuilder::new(app.clone());
108 let inv_test = InvalidateTest {
109 size: Size::ZERO,
110 handle: Default::default(),
111 start_time: Instant::now(),
112 rect: Rect::from_origin_size(Point::ZERO, (10.0, 20.0)),
113 cursor: Rect::from_origin_size(Point::ZERO, (2.0, 100.0)),
114 color: Color::WHITE,
115 };
116 builder.set_handler(Box::new(inv_test));
117 builder.set_title("Invalidate tester");
118
119 let window = builder.build().unwrap();
120 window.show();
121 app.run(None);
122}
69fn main() {
70 tracing_subscriber::fmt().init();
71 let app = Application::new().unwrap();
72
73 let mut file_menu = Menu::new();
74 file_menu.add_item(
75 0x100,
76 "E&xit",
77 Some(&HotKey::new(SysMods::Cmd, "q")),
78 None,
79 true,
80 );
81
82 let mut menubar = Menu::new();
83 menubar.add_dropdown(file_menu, "Application", true);
84
85 let mut builder = WindowBuilder::new(app.clone());
86 builder.set_handler(Box::<QuitState>::default());
87 builder.set_title("Quit example");
88 builder.set_menu(menubar);
89
90 let window = builder.build().unwrap();
91 window.show();
92
93 app.run(None);
94}
136fn main() {
137 tracing_subscriber::fmt().init();
138 let mut file_menu = Menu::new();
139 file_menu.add_item(
140 0x100,
141 "E&xit",
142 Some(&HotKey::new(SysMods::Cmd, "q")),
143 None,
144 true,
145 );
146 file_menu.add_item(
147 0x101,
148 "O&pen",
149 Some(&HotKey::new(SysMods::Cmd, "o")),
150 None,
151 true,
152 );
153 file_menu.add_item(
154 0x102,
155 "S&ave",
156 Some(&HotKey::new(SysMods::Cmd, "s")),
157 None,
158 true,
159 );
160 let mut menubar = Menu::new();
161 menubar.add_dropdown(Menu::new(), "Application", true);
162 menubar.add_dropdown(file_menu, "&File", true);
163
164 let app = Application::new().unwrap();
165 let mut builder = WindowBuilder::new(app.clone());
166 builder.set_handler(Box::<HelloState>::default());
167 builder.set_title("Hello example");
168 builder.set_menu(menubar);
169
170 let window = builder.build().unwrap();
171 window.show();
172
173 app.run(None);
174}
Set the window’s menu.
Examples found in repository?
69fn main() {
70 tracing_subscriber::fmt().init();
71 let app = Application::new().unwrap();
72
73 let mut file_menu = Menu::new();
74 file_menu.add_item(
75 0x100,
76 "E&xit",
77 Some(&HotKey::new(SysMods::Cmd, "q")),
78 None,
79 true,
80 );
81
82 let mut menubar = Menu::new();
83 menubar.add_dropdown(file_menu, "Application", true);
84
85 let mut builder = WindowBuilder::new(app.clone());
86 builder.set_handler(Box::<QuitState>::default());
87 builder.set_title("Quit example");
88 builder.set_menu(menubar);
89
90 let window = builder.build().unwrap();
91 window.show();
92
93 app.run(None);
94}
More examples
136fn main() {
137 tracing_subscriber::fmt().init();
138 let mut file_menu = Menu::new();
139 file_menu.add_item(
140 0x100,
141 "E&xit",
142 Some(&HotKey::new(SysMods::Cmd, "q")),
143 None,
144 true,
145 );
146 file_menu.add_item(
147 0x101,
148 "O&pen",
149 Some(&HotKey::new(SysMods::Cmd, "o")),
150 None,
151 true,
152 );
153 file_menu.add_item(
154 0x102,
155 "S&ave",
156 Some(&HotKey::new(SysMods::Cmd, "s")),
157 None,
158 true,
159 );
160 let mut menubar = Menu::new();
161 menubar.add_dropdown(Menu::new(), "Application", true);
162 menubar.add_dropdown(file_menu, "&File", true);
163
164 let app = Application::new().unwrap();
165 let mut builder = WindowBuilder::new(app.clone());
166 builder.set_handler(Box::<HelloState>::default());
167 builder.set_title("Hello example");
168 builder.set_menu(menubar);
169
170 let window = builder.build().unwrap();
171 window.show();
172
173 app.run(None);
174}
Sourcepub fn set_window_state(&mut self, state: WindowState)
pub fn set_window_state(&mut self, state: WindowState)
Sets the initial state of the window.
Sourcepub fn build(self) -> Result<WindowHandle, Error>
pub fn build(self) -> Result<WindowHandle, Error>
Attempt to construct the platform window.
If this fails, your application should exit.
Examples found in repository?
More examples
138fn main() {
139 tracing_subscriber::fmt().init();
140 let app = Application::new().unwrap();
141 let mut builder = WindowBuilder::new(app.clone());
142 let perf_test = PerfTest {
143 size: Size::ZERO,
144 handle: Default::default(),
145 start_time: time::Instant::now(),
146 last_time: time::Instant::now(),
147 red: true,
148 };
149 builder.set_handler(Box::new(perf_test));
150 builder.set_title("Performance tester");
151
152 let window = builder.build().unwrap();
153 window.show();
154
155 app.run(None);
156}
104fn main() {
105 tracing_subscriber::fmt().init();
106 let app = Application::new().unwrap();
107 let mut builder = WindowBuilder::new(app.clone());
108 let inv_test = InvalidateTest {
109 size: Size::ZERO,
110 handle: Default::default(),
111 start_time: Instant::now(),
112 rect: Rect::from_origin_size(Point::ZERO, (10.0, 20.0)),
113 cursor: Rect::from_origin_size(Point::ZERO, (2.0, 100.0)),
114 color: Color::WHITE,
115 };
116 builder.set_handler(Box::new(inv_test));
117 builder.set_title("Invalidate tester");
118
119 let window = builder.build().unwrap();
120 window.show();
121 app.run(None);
122}
69fn main() {
70 tracing_subscriber::fmt().init();
71 let app = Application::new().unwrap();
72
73 let mut file_menu = Menu::new();
74 file_menu.add_item(
75 0x100,
76 "E&xit",
77 Some(&HotKey::new(SysMods::Cmd, "q")),
78 None,
79 true,
80 );
81
82 let mut menubar = Menu::new();
83 menubar.add_dropdown(file_menu, "Application", true);
84
85 let mut builder = WindowBuilder::new(app.clone());
86 builder.set_handler(Box::<QuitState>::default());
87 builder.set_title("Quit example");
88 builder.set_menu(menubar);
89
90 let window = builder.build().unwrap();
91 window.show();
92
93 app.run(None);
94}
136fn main() {
137 tracing_subscriber::fmt().init();
138 let mut file_menu = Menu::new();
139 file_menu.add_item(
140 0x100,
141 "E&xit",
142 Some(&HotKey::new(SysMods::Cmd, "q")),
143 None,
144 true,
145 );
146 file_menu.add_item(
147 0x101,
148 "O&pen",
149 Some(&HotKey::new(SysMods::Cmd, "o")),
150 None,
151 true,
152 );
153 file_menu.add_item(
154 0x102,
155 "S&ave",
156 Some(&HotKey::new(SysMods::Cmd, "s")),
157 None,
158 true,
159 );
160 let mut menubar = Menu::new();
161 menubar.add_dropdown(Menu::new(), "Application", true);
162 menubar.add_dropdown(file_menu, "&File", true);
163
164 let app = Application::new().unwrap();
165 let mut builder = WindowBuilder::new(app.clone());
166 builder.set_handler(Box::<HelloState>::default());
167 builder.set_title("Hello example");
168 builder.set_menu(menubar);
169
170 let window = builder.build().unwrap();
171 window.show();
172
173 app.run(None);
174}