diff --git a/iris b/iris index 62aa028..38266de 160000 --- a/iris +++ b/iris @@ -1 +1 @@ -Subproject commit 62aa02847a5d159e6545d81fa6478ea572aff1ed +Subproject commit 38266debb6e3b5a9b6dbd75da8293cca34b9d7db diff --git a/src/bin/client/main.rs b/src/bin/client/main.rs index 2194b0f..1766a85 100644 --- a/src/bin/client/main.rs +++ b/src/bin/client/main.rs @@ -69,7 +69,7 @@ impl DefaultAppState for Client { notif, proxy, }; - connect_screen(&mut s, ui, state).set_ptr(&s.main_ui, ui); + start_screen(&mut s, ui).set_ptr(&s.main_ui, ui); s } diff --git a/src/bin/client/ui/login.rs b/src/bin/client/ui/login.rs index d04b774..7a3ca31 100644 --- a/src/bin/client/ui/login.rs +++ b/src/bin/client/ui/login.rs @@ -5,16 +5,38 @@ use crate::{net::AppHandle, state::ClientState}; use super::*; -// pub fn start_screen(client: &mut Client) -> WidgetId { -// (wtext("Select Account").text_align(Align::CENTER).size(30),) -// .span(Dir::DOWN) -// .gap(10) -// .pad(15) -// .width(400) -// .align(Align::CENTER) -// .add(&mut client.ui) -// .any() -// } +pub fn start_screen(client: &mut Client, ui: &mut Ui) -> WidgetId { + let mut accounts = Span::empty(Dir::DOWN); + + accounts.push( + wtext("no accounts") + .size(20) + .center_text() + .color(Color::GRAY) + .height(60) + .add(ui) + .any(), + ); + + ( + wtext("Select Account").text_align(Align::CENTER).size(30), + accounts, + ( + submit_button("connect", |_, _| {}), + submit_button("create", |_, _| {}), + ) + .span(Dir::RIGHT) + .gap(10), + ) + .span(Dir::DOWN) + .gap(10) + .pad(15) + .background(rect(Color::BLACK.brighter(0.2)).radius(15)) + .width(400) + .align(Align::CENTER) + .add(ui) + .any() +} pub fn connect_screen(client: &mut Client, ui: &mut Ui, state: &UiState) -> WidgetId { let Client { data, proxy, .. } = client; diff --git a/src/bin/client/ui/misc.rs b/src/bin/client/ui/misc.rs index 1c3facb..e4545e0 100644 --- a/src/bin/client/ui/misc.rs +++ b/src/bin/client/ui/misc.rs @@ -37,14 +37,23 @@ pub fn submit_button( text: &str, on_submit: impl Fn(&mut Client, &mut Ui) + 'static, ) -> impl WidgetRet { - let color = Color::GREEN; + let color = Color::rgb(0, 200, 0); rect(color) .radius(15) .on(CursorSense::click(), move |ctx| { - ctx.ui[ctx.id].color = color.darker(0.3); + ctx.ui[ctx.id].color = color.darker(0.2); on_submit(ctx.state, ctx.ui); }) - .height(40) - .foreground(wtext(text).size(20).text_align(Align::CENTER)) + .on( + CursorSense::HoverStart | CursorSense::unclick(), + move |ctx| { + ctx.ui[ctx.id].color = color.brighter(0.1); + }, + ) + .on(CursorSense::HoverEnd, move |ctx| { + ctx.ui[ctx.id].color = color; + }) + .height(60) + .foreground(wtext(text).size(25).text_align(Align::CENTER)) .to_any() }