From cb623f4d884a6901cbc1f302f60619ac247efe41 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Thu, 11 Nov 2021 12:34:27 -0600 Subject: [PATCH] UI tweaks --- lib/pages/games.rb | 6 ++++-- lib/pages/login.rb | 36 ++++++++++++++++++++++++++++++++ lib/states/interface.rb | 44 ++++++++++++++++++++++++++++++++------- lib/window.rb | 6 ++++++ media/ui_icons/cross.png | Bin 0 -> 15480 bytes media/ui_icons/minus.png | Bin 0 -> 15146 bytes 6 files changed, 83 insertions(+), 9 deletions(-) create mode 100644 media/ui_icons/cross.png create mode 100644 media/ui_icons/minus.png diff --git a/lib/pages/games.rb b/lib/pages/games.rb index b796592..65dfff8 100644 --- a/lib/pages/games.rb +++ b/lib/pages/games.rb @@ -26,7 +26,9 @@ class W3DHub W3DHub::Game.games.each do |game| selected = game == @focused_game - game_button = stack(width: 1.0, border_thickness_left: 4, border_color_left: selected ? 0xff_00acff : 0x00_000000, hover: { background: 0xff_444444 }) do + game_button = stack(width: 1.0, border_thickness_left: 4, + border_color_left: selected ? 0xff_00acff : 0x00_000000, hover: { background: 0xff_444444 }, + padding_top: 4, padding_bottom: 4) do background game.background_color if selected flow(width: 1.0, height: 48) do @@ -134,7 +136,7 @@ class W3DHub flow(width: 0.5, height: 128, margin: 4) do # background 0x88_000000 - image game.icon, width: 0.4 + image game.icon, width: 0.4, padding: 4 stack(width: 0.6, height: 1.0) do stack(width: 1.0, height: 112) do diff --git a/lib/pages/login.rb b/lib/pages/login.rb index 410cee4..032d509 100644 --- a/lib/pages/login.rb +++ b/lib/pages/login.rb @@ -35,12 +35,48 @@ class W3DHub # Todo lock whole UI until response or timeout # Do network stuff + + Thread.new do + sleep 0.2 + + main_thread_queue << proc { populate_account_info; page(W3DHub::Pages::Games) } + end end end end end end end + + def populate_account_info + @host.instance_variable_get(:"@account_container").clear do + stack(width: 0.7, height: 1.0) do + # background 0xff_222222 + tagline "#{@username.value}" + + flow(width: 1.0) do + link("Logout", text_size: 16) { depopulate_account_info } + link "Profile", text_size: 16 + end + end + + image "#{GAME_ROOT_PATH}/media/ui_icons/singleplayer.png", height: 1.0 + end + end + + def depopulate_account_info + @host.instance_variable_get(:"@account_container").clear do + stack(width: 0.7, height: 1.0) do + # background 0xff_222222 + tagline "Not Logged In", text_wrap: :none + + flow(width: 1.0) do + link("Log in", text_size: 16) { page(W3DHub::Pages::Login) } + link "Register", text_size: 16 + end + end + end + end end end end diff --git a/lib/states/interface.rb b/lib/states/interface.rb index 5654171..21bcd95 100644 --- a/lib/states/interface.rb +++ b/lib/states/interface.rb @@ -20,6 +20,7 @@ class W3DHub text_shadow: false, }, TextBlock: { + # font: "Inconsolata", text_border: false, text_shadow: true, text_shadow_size: 1, @@ -68,7 +69,7 @@ class W3DHub @app_info_container = flow(width: 1.0, height: 0.65) do # background 0xff_8855ff - stack(width: 0.75, height: 1.0) do + stack(width: 0.6749, height: 1.0) do title "W3D Hub Launcher", height: 0.5 flow(width: 1.0, height: 0.5) do button( @@ -102,19 +103,48 @@ class W3DHub end @account_container = flow(width: 0.25, height: 1.0) do - # background 0xff_22ff00 - stack(width: 0.7, height: 1.0) do # background 0xff_222222 - tagline "Cyberarm" + tagline "Not Logged In", text_wrap: :none flow(width: 1.0) do - link("Logout", text_size: 14) { page(W3DHub::Pages::Login) } - link "Profile", text_size: 14 + link("Log in", text_size: 16) { page(W3DHub::Pages::Login) } + link "Register", text_size: 16 end end + end - image BLACK_IMAGE, height: 1.0 + flow(width: 0.075, height: 1.0) do + button( + get_image("#{GAME_ROOT_PATH}/media/ui_icons/minus.png"), + image_width: 16, + padding_left: 4, + padding_top: 4, + padding_right: 4, + padding_bottom: 4, + margin_left: 4 + ) do + # window.minimize + end + + button( + get_image("#{GAME_ROOT_PATH}/media/ui_icons/cross.png"), + image_width: 16, + padding_left: 4, + padding_top: 4, + padding_right: 4, + padding_bottom: 4, + margin_left: 4, + background: 0xff_800000, + hover: { + background: 0xff_a00000 + }, + active: { + background: 0xff_600000 + } + ) do + window.close + end end end diff --git a/lib/window.rb b/lib/window.rb index b53ea54..becb5d0 100644 --- a/lib/window.rb +++ b/lib/window.rb @@ -5,5 +5,11 @@ class W3DHub push_state(W3DHub::States::Boot) end + + def button_down(id) + super + + self.borderless = !self.borderless? if id == Gosu::KB_F7 + end end end diff --git a/media/ui_icons/cross.png b/media/ui_icons/cross.png new file mode 100644 index 0000000000000000000000000000000000000000..e21d5ac103af953a9ef5fc507ddc3c599c869f1f GIT binary patch literal 15480 zcmeI3eQXow9mg-BOOxPq5p=<{DY?2z38nV={FeA?8yvqhW;Nu+9btmP`R++_!uA>8 z1)E4=i0~G~Xp7vcMRZMzD2TpHL){CS)UpcNvaMUuIyRMVqm=&9sbWm)*eXryp7ZMy z$L3*D|9mVt_sjEqf8Xbx&+~g8-#<6qzxv^p=DV6HifRe<`3K=u)V_@k@Ne?UQxSM+ zO7^W&C~E#f?OR73KBA{6=hISTSRD>O!U=NR#EWtim@@GsR8y2|MJCA$n}JG4!KjpQ z8~*n5Hx0BTx(#dXVRJa?17lL(L<$T|td0m1n+2z6Sm9}QWjJUM2P#iz;<1FnW!#3G zF9&0-nK95giMrWs@M;6n!{L6~C#L{yH`$GX*}~G@P7`alIa&5W+G1v{3~OdAP9w{5 zwr-Af(1nk|(+ne5N*v(^{lUU;@ISX}`sY-H!)_nP>Jg&M825q3yr!cR0vNTXaDX@bSnGBy~Sd*El zkrWQ!JS`rtnyILRpggmx11gbiNx%#OMIKKH0Lt&Hb_pGYw><8fjWjJ}p;M z`K5NjLgsuaz^ig9BFiyPzFhl@cTf9#bk|xbAICqmIiCni3wK;7g-9`|#0wWM@z!-J#tWku2oWLQPZB9Nn$=T_1to^bu zuGLV%T7=fNfZb;E_I5igz97p6Y(2d_R+cj=Oaod#6gF+4D_8lk9ovJNh3-$!Ow%YeIC$)S((A<^p7OTxP=WNG0BdKNQ z5{B|rD@q!oUz3vHiO$CmR@w^wKbWgnAU6Ts;4poX0=LdKWPEMj+POLew#;rVcEqGx zT$s}Gz|)N51?|N4C_G$T7n3{Tif!ea%4cW;RDgx|nLsNS1c?Yo!e-@ws|n zUCf-eO8v05@nhpTeYeF7Kk#V-ehR5*cV+6jo2R1Pm8s>-M-!6ju@pwDXhyQMAE-Qx zA^1=RJPy0vYIiY}&6OGbQU=6^{SrJ&6>W#WsTGncd#YxxtC@-P6f*P0fIL9uY9-$a zAJ5>EAyaxZoLxqxjrlbPK}8rYcN!XiQi1Q$vJ8xveuM5ut^LTO-Qf(wfX6%bq~4Qxzs zVG*GMf(xaAjR`I+B2++dp){~D!G%SH3J5Ng1~w+Ru!v9r!G+Sm#sn7@5h@_KP#V~n z;KCw81q2sL0~-@uSVX9R;6iC&V}c8d2o(@qC=F~(aA6Ul0)h*rfsF|+EFx4uaG^A? zF~NmJgbD~Qlm<2?xUh&&0l|gRz{WSl)m(nr5+vXomTCAZWy^+49KME03w?uOikj%8 zs2x)j_2pOa`WZ!ynx~2AvK7;g?LXxnN}rw@Y;OO- zuH$FugI?Vg{n_%ReM*0p-RCV_jtqEzL%FseJoU*R)gyb~+dt7!=c0Ok`QTOh@AvOr zNL_NT_@w^KiNd?w=dq?-SqsAY}c}rEOl9b#whF+|Gegd7l$n7H{Sd7 z-KGEh@VP_ZXU{$Ga$B=;&s(Ru@7{fv4|E*b-TU|pud^R53e@}J$KPlRH27M?mi>3` zF}!Q)O6gD1UwNNA+u!iz{6L%Uo~ujmlyp?juI*26d~D5M?)~;?cK6kpnYz>MA2)88 z-g188j%QmszjgFtXtFJ<9yt8+D;EY%Zu;P{8wd9fwj4d@5pCI%`d1x$j?P5h89P0+ z_F-w~g$4e_#})@Sw+6B=>D?={{fC7w>IYVSw)4WmU5k(19h6&x+1K>o~<(&vBtx#ik-F8*izD(7!s>HNpUKI_M8mNsnBMO)t~FM6Q_+NT zM|)?`3r2$pi3vtyhzW_22OmUVd^m_=Oo&Qil<0#JB>qj5kno^BAP?tkx9v{4g?0n`o(|y_3#>bx6FtB|90I*>+o0&l0s{2{D7X3AUeKU`~)|=UB8-NG5 zxSu|7`kie6h;M26DQ7D8w4@m2kgOU77^;>{qy`|dw`$7DVdyXgIHT#wz^w}x1B|97 z0|%oyE@!6Utd?D{;N-$sURgM-h-zSOY9LXSkU<$bGE*&=bX%$>12ta>#cnejU}_TQ za56CD4#-U9#+kHXK_(iC1{F@=nL#ncMoURuvYOU>T*@ zhyverF6OM^81}5u17NeeCq_pr_F&=m^h|?Qtw);MtppgpL{j=UllT-)lC%SofU?Z~8oj_mHNkk|GWk z<8i(a!NwBt!vq+zs|K!sESlHtg`H+w6Z({SyP`$uzsUI zW}^8EAf=6xVWGnerosufTQipBp8alVBT90u9?((K(ble?ayNcyuBIOpICP<>4RqC0 z@$UB2>AR=m-R-G<=Ciuyq=fotZOvGg`vc{{m_!d{FcphN!_frW-rSxsu2o@aDx;yZ z)OL3Wnp!=ny{BvDbk9tzr=IB*1NHz_s}-*mJ)WT_L$>*7*jh%-jd`B~e@ge+7`LN? z;53La#YIGf3n(s}1~I0%h=_0j#f8%##uOJ35iX#(a2mvz;vyo#1r!%fgBVj>L`1lN z;=*YVV~UH22p3RXI1OSar$LMhZ3xGKefE$MZklqI15#!YJ zmqq~S+c=sT%2%)6y!On7&$(@{TzT%~V!ye#<~^ow{mIQ#L|f4{rD6>Q$btXh@Xx43TIroMZL_h@I-(+BVT9o@CGYx*VSx62QQ z&iuIh{r(rPy}t9p&JVATeW`tW@$21REq$>?`0v<(OXGvzuUUPfHca2U=l0$B?9TKH ztCu!DWZm5SyKwOb`=d9GWUb|YhA#bd>(%p%{%xIDS$yUAb%bqsxgVVTWb)WAPxhZj P|ANusvCO&shmQXb0ZV5K literal 0 HcmV?d00001