Skip to content

Commit fa44d08

Browse files
authored
Merge pull request #32 from compio-rs/next
feat: next release
2 parents af7d69e + 6277abe commit fa44d08

70 files changed

Lines changed: 890 additions & 818 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "winio"
3-
version = "0.6.1"
3+
version = "0.7.0"
44
edition = "2021"
55
description = "Single-threaded async GUI runtime based on compio."
66
license = "MIT"
@@ -180,7 +180,6 @@ objc-static = [
180180
"objc2/unstable-static-sel-inlined",
181181
"objc2-foundation/unstable-static-nsstring",
182182
]
183-
clang-lto = []
184183

185184
[profile.release]
186185
lto = true

README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use winio::{
1515
};
1616

1717
fn main() {
18-
App::new().run::<MainModel>(());
18+
App::new("rs.compio.winio.example").run::<MainModel>(());
1919
}
2020

2121
struct MainModel {
@@ -34,25 +34,24 @@ impl Component for MainModel {
3434

3535
fn init(_init: Self::Init<'_>, _sender: &ComponentSender<Self>) -> Self {
3636
// create & initialize the window
37-
let mut window = Child::<Window>::init(());
38-
window.set_text("Basic example");
39-
window.set_size(Size::new(800.0, 600.0));
37+
init! {
38+
window: Window = (()) => {
39+
text: "Basic example",
40+
size: Size::new(800.0, 600.0),
41+
}
42+
}
4043
window.show();
4144
Self { window }
4245
}
4346

44-
async fn start(&mut self, sender: &ComponentSender<Self>) {
47+
async fn start(&mut self, sender: &ComponentSender<Self>) -> ! {
4548
// listen to events
46-
self.window
47-
.start(
48-
sender,
49-
|e| match e {
50-
WindowEvent::Close => Some(MainMessage::Close),
51-
_ => None,
52-
},
53-
|| MainMessage::Noop,
54-
)
55-
.await;
49+
start! {
50+
sender, default: MainMessage::Noop,
51+
self.window => {
52+
WindowEvent::Close => MainMessage::Close,
53+
}
54+
}
5655
}
5756

5857
async fn update(&mut self, message: Self::Message, sender: &ComponentSender<Self>) -> bool {
@@ -71,6 +70,7 @@ impl Component for MainModel {
7170
}
7271

7372
fn render(&mut self, _sender: &ComponentSender<Self>) {
73+
self.window.render();
7474
// adjust layout and draw widgets here
7575
}
7676
}

build.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,16 @@ fn main() {
1616
qt_build_utils::QtBuild::new(vec!["Core".into(), "Gui".into(), "Widgets".into()])
1717
.unwrap();
1818

19+
let major = qbuild.version().major;
20+
if major != 5 && major != 6 {
21+
panic!("Unsupported Qt version: {major}");
22+
}
23+
println!("cargo::rustc-check-cfg=cfg(qtver, values(\"5\", \"6\"))");
24+
println!("cargo::rustc-cfg=qtver=\"{major}\"");
25+
1926
let sources = [
2027
"src/runtime/qt",
28+
"src/ui/qt/common",
2129
"src/ui/qt/widget",
2230
"src/ui/qt/monitor",
2331
"src/ui/qt/msgbox",
@@ -44,10 +52,8 @@ fn main() {
4452
build
4553
.std("c++17")
4654
.files(sources.map(|s| format!("{s}.cpp")))
47-
.includes(inc);
48-
if cfg!(feature = "clang-lto") && std::env::var("PROFILE").as_deref() == Ok("release") {
49-
build.flag("-flto").compiler("clang++");
50-
}
55+
.includes(inc)
56+
.cpp(true);
5157
qbuild.cargo_link_libraries(&mut build);
5258
build.compile("winio");
5359
}

examples/basic.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ fn main() {
1515
.with_max_level(compio_log::Level::INFO)
1616
.init();
1717

18-
App::new().run::<MainModel>(0usize);
18+
App::new("rs.compio.winio.basic").run::<MainModel>(0usize);
1919
}
2020

2121
struct MainModel {
@@ -74,7 +74,7 @@ impl Component for MainModel {
7474
}
7575
}
7676

77-
async fn start(&mut self, sender: &ComponentSender<Self>) {
77+
async fn start(&mut self, sender: &ComponentSender<Self>) -> ! {
7878
start! {
7979
sender, default: MainMessage::Noop,
8080
self.window => {

examples/fs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ fn main() {
1616
.with_max_level(compio_log::Level::INFO)
1717
.init();
1818

19-
App::new().run::<MainModel>("Cargo.toml")
19+
App::new("rs.compio.winio.fs").run::<MainModel>("Cargo.toml")
2020
}
2121

2222
struct MainModel {
@@ -79,7 +79,7 @@ impl Component for MainModel {
7979
}
8080
}
8181

82-
async fn start(&mut self, sender: &winio::ComponentSender<Self>) {
82+
async fn start(&mut self, sender: &winio::ComponentSender<Self>) -> ! {
8383
start! {
8484
sender, default: MainMessage::Noop,
8585
self.window => {

examples/gallery.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ fn main() {
1919
.with_max_level(compio_log::Level::INFO)
2020
.init();
2121

22-
App::new().run::<MainModel>(dirs::picture_dir())
22+
App::new("rs.compio.winio.gallery").run::<MainModel>(dirs::picture_dir())
2323
}
2424

2525
struct MainModel {
@@ -89,7 +89,7 @@ impl Component for MainModel {
8989
}
9090
}
9191

92-
async fn start(&mut self, sender: &winio::ComponentSender<Self>) {
92+
async fn start(&mut self, sender: &winio::ComponentSender<Self>) -> ! {
9393
start! {
9494
sender, default: MainMessage::Noop,
9595
self.window => {

examples/mdi.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fn main() {
99
.with_max_level(compio_log::Level::INFO)
1010
.init();
1111

12-
App::new().run::<MainModel>(());
12+
App::new("rs.compio.winio.mdi").run::<MainModel>(());
1313
}
1414

1515
struct MainModel {
@@ -44,7 +44,7 @@ impl Component for MainModel {
4444
Self { window, cwindow }
4545
}
4646

47-
async fn start(&mut self, sender: &ComponentSender<Self>) {
47+
async fn start(&mut self, sender: &ComponentSender<Self>) -> ! {
4848
start! {
4949
sender, default: MainMessage::Noop,
5050
self.window => {
@@ -118,7 +118,7 @@ impl Component for ChildModel {
118118
Self { window, check }
119119
}
120120

121-
async fn start(&mut self, sender: &ComponentSender<Self>) {
121+
async fn start(&mut self, sender: &ComponentSender<Self>) -> ! {
122122
start! {
123123
sender, default: ChildMessage::Noop,
124124
self.window => {

examples/net.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ fn main() {
1414
.with_max_level(compio_log::Level::INFO)
1515
.init();
1616

17-
App::new().run::<MainModel>("https://www.example.com/");
17+
App::new("rs.compio.winio.net").run::<MainModel>("https://www.example.com/");
1818
}
1919

2020
struct MainModel {
@@ -80,7 +80,7 @@ impl Component for MainModel {
8080
}
8181
}
8282

83-
async fn start(&mut self, sender: &winio::ComponentSender<Self>) {
83+
async fn start(&mut self, sender: &winio::ComponentSender<Self>) -> ! {
8484
start! {
8585
sender, default: MainMessage::Noop,
8686
self.window => {

examples/widgets.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ fn main() {
1414
.with_max_level(compio_log::Level::INFO)
1515
.init();
1616

17-
App::new().run::<MainModel>(());
17+
App::new("rs.compio.winio.widgets").run::<MainModel>(());
1818
}
1919

2020
struct MainModel {
@@ -146,7 +146,7 @@ impl Component for MainModel {
146146
}
147147
}
148148

149-
async fn start(&mut self, sender: &ComponentSender<Self>) {
149+
async fn start(&mut self, sender: &ComponentSender<Self>) -> ! {
150150
let mut radio_group = RadioButtonGroup::new([&mut *self.r1, &mut self.r2, &mut self.r3]);
151151
start! {
152152
sender, default: MainMessage::Noop,

src/elm/button.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ impl Component for Button {
7979
Self { widget }
8080
}
8181

82-
async fn start(&mut self, sender: &ComponentSender<Self>) {
82+
async fn start(&mut self, sender: &ComponentSender<Self>) -> ! {
8383
loop {
8484
self.widget.wait_click().await;
8585
sender.output(ButtonEvent::Click);

0 commit comments

Comments
 (0)