update iris

This commit is contained in:
2025-12-09 01:53:00 -05:00
parent 4aa7219d49
commit 34f57ce0b5
8 changed files with 64 additions and 28 deletions

24
Cargo.lock generated
View File

@@ -1459,16 +1459,36 @@ name = "iris"
version = "0.1.0"
dependencies = [
"arboard",
"bytemuck",
"cosmic-text",
"fxhash",
"image",
"iris-core",
"iris-macro",
"pollster",
"unicode-segmentation",
"wgpu",
"winit",
]
[[package]]
name = "iris-core"
version = "0.1.0"
dependencies = [
"bytemuck",
"cosmic-text",
"fxhash",
"image",
"wgpu",
"winit",
]
[[package]]
name = "iris-macro"
version = "0.1.0"
dependencies = [
"quote",
"syn",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.2"

2
iris

Submodule iris updated: 434e3c3af7...e44bb8eca4

View File

@@ -1,5 +1,5 @@
use crate::Client;
use iris::{prelude::*, winit::UiState};
use iris::prelude::*;
pub fn debug(_client: &mut Client, ui: &mut Ui, _state: &UiState) {
ui.debug_layers();

View File

@@ -6,7 +6,7 @@ use crate::{
state::{ClientState, LoggedIn, Login},
ui::*,
};
use iris::{prelude::*, winit::*};
use iris::prelude::*;
use openworm::{
net::{ClientMsg, ServerMsg, install_crypto_provider},
rsc::DataDir,
@@ -76,7 +76,7 @@ impl DefaultAppState for Client {
notif,
proxy,
};
start_screen(&mut s, ui).set_ptr(&s.main_ui, ui);
start_ui(&mut s, ui).set_ptr(&s.main_ui, ui);
s
}
@@ -101,7 +101,7 @@ impl DefaultAppState for Client {
&& let Some(msg_area) = &state.channel
{
let msg = msg_widget(&msg.user, &msg.content).add(ui);
msg_area.get_mut().children.push(msg.any());
msg_area.get_mut().children.push(msg);
}
}
ServerMsg::LoadMsgs(msgs) => {
@@ -111,7 +111,7 @@ impl DefaultAppState for Client {
for msg in msgs {
state.msgs.push(msg.clone());
let msg = msg_widget(&msg.user, &msg.content).add(ui);
msg_area.get_mut().children.push(msg.any());
msg_area.get_mut().children.push(msg);
}
}
}

View File

@@ -1,6 +1,6 @@
use super::*;
pub fn start_screen(client: &mut Client, ui: &mut Ui) -> WidgetRef {
pub fn start_ui(client: &mut Client, ui: &mut Ui) -> WidgetRef {
let mut accounts = Span::empty(Dir::DOWN);
accounts.push(
@@ -9,8 +9,7 @@ pub fn start_screen(client: &mut Client, ui: &mut Ui) -> WidgetRef {
.center_text()
.color(Color::GRAY)
.height(60)
.add(ui)
.any(),
.add(ui),
);
let connect = Button::submit("connect", ui);
@@ -22,6 +21,14 @@ pub fn start_screen(client: &mut Client, ui: &mut Ui) -> WidgetRef {
create_.disable();
});
let connect_ = connect.clone();
let create_ = create.clone();
ui.on(create.view(), Submit, move |ctx| {
connect_.disable();
create_.disable();
create_ui(ctx.ui).set_ptr(&ctx.state.main_ui, ctx.ui);
});
(
wtext("Select Account").text_align(Align::CENTER).size(30),
accounts,
@@ -29,12 +36,12 @@ pub fn start_screen(client: &mut Client, ui: &mut Ui) -> WidgetRef {
)
.span(Dir::DOWN)
.gap(30)
.pad(15)
.background(rect(color::MODAL_BG).radius(15))
.width(400)
.align(Align::CENTER)
.modal(400)
.add(ui)
.any()
}
pub fn create_ui(ui: &mut Ui) -> WidgetRef {
wtext("hi").add(ui)
}
// pub fn connect_screen(client: &mut Client, ui: &mut Ui, state: &UiState) -> WidgetRef {
@@ -77,7 +84,6 @@ pub fn start_screen(client: &mut Client, ui: &mut Ui) -> WidgetRef {
// .width(400)
// .align(Align::CENTER)
// .add(ui)
// .any()
// }
// pub fn login_screen(client: &mut Client, ui: &mut Ui) -> WidgetRef {
@@ -142,5 +148,4 @@ pub fn start_screen(client: &mut Client, ui: &mut Ui) -> WidgetRef {
// .width(400)
// .align(Align::CENTER)
// .add(ui)
// .any()
// }

View File

@@ -11,7 +11,7 @@ pub fn main_view(client: &mut Client, ui: &mut Ui) -> WidgetRef {
let msg_panel = msg_panel(ui, state);
let side_bar = rect(Color::BLACK.brighter(0.05)).width(80);
(side_bar, msg_panel).span(Dir::RIGHT).add(ui).any()
(side_bar, msg_panel).span(Dir::RIGHT).add(ui)
}
pub fn msg_widget(username: &str, content: &str) -> impl WidgetRet {
@@ -36,7 +36,7 @@ pub fn msg_widget(username: &str, content: &str) -> impl WidgetRet {
.to_any()
}
pub fn msg_panel(ui: &mut Ui, state: &mut LoggedIn) -> impl WidgetRet + use<> {
pub fn msg_panel(ui: &mut Ui, state: &mut LoggedIn) -> WidgetRef {
let msg_area = Span::empty(Dir::DOWN).gap(15).add(ui);
state.channel = Some(msg_area.clone());
@@ -65,7 +65,7 @@ pub fn msg_panel(ui: &mut Ui, state: &mut LoggedIn) -> impl WidgetRet + use<> {
};
state.network.send(ClientMsg::SendMsg(msg.clone()));
let msg = msg_widget(&state.username, &content).add(ctx.ui);
msg_area.get_mut().children.push(msg.any());
msg_area.get_mut().children.push(msg);
})
.pad(15)
.attr::<Selector>(send_text)
@@ -78,5 +78,5 @@ pub fn msg_panel(ui: &mut Ui, state: &mut LoggedIn) -> impl WidgetRet + use<> {
)
.span(Dir::DOWN)
.width(rest(1))
.to_any()
.add(ui)
}

View File

@@ -6,7 +6,6 @@ pub fn werror(ui: &mut Ui, msg: &str) -> WidgetRef {
.pad(10)
.background(rect(Color::RED).radius(10))
.add(ui)
.any()
}
pub fn hint(msg: impl Into<String>) -> TextBuilder {
@@ -28,7 +27,6 @@ pub fn field_box(field: WidgetRef<TextEdit>, ui: &mut Ui) -> WidgetRef {
.background(rect(Color::BLACK.brighter(0.1)).radius(15))
.attr::<Selector>(field)
.add(ui)
.any()
}
#[derive(Clone)]
@@ -70,8 +68,7 @@ impl Button {
})
.height(60)
.foreground(wtext(text).size(25).text_align(Align::CENTER))
.add(ui)
.any();
.add(ui);
let root_ = root.clone();
let enabled_ = enabled.clone();
rect.clone()
@@ -100,3 +97,17 @@ impl Button {
self.rect.get_mut().color = self.color.darker(0.8);
}
}
widget_trait! {
pub Stuff;
fn modal(self, width: impl UiNum) -> impl WidgetIdFn {
|ui| {
self
.pad(15)
.background(rect(color::MODAL_BG).radius(15))
.width(width)
.align(Align::CENTER)
.add(ui)
}
}
}

View File

@@ -2,12 +2,12 @@ use crate::Client;
use iris::prelude::*;
use len_fns::*;
mod login;
mod connect;
mod main;
mod misc;
pub mod color;
pub use login::*;
pub use connect::*;
pub use main::*;
pub use misc::*;