From 899dcba1581467abb7028e97ab9e03d38003225f Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Tue, 7 Jul 2020 20:23:40 +0100 Subject: [PATCH] WindowServer+LibGUI: Add "wait" cursor --- Base/etc/WindowServer/WindowServer.ini | 1 + Base/res/cursors/wait.png | Bin 0 -> 4236 bytes Libraries/LibGUI/Window.h | 1 + Services/WindowServer/Cursor.cpp | 2 ++ Services/WindowServer/Cursor.h | 1 + Services/WindowServer/WindowManager.cpp | 1 + Services/WindowServer/WindowManager.h | 2 ++ 7 files changed, 8 insertions(+) create mode 100755 Base/res/cursors/wait.png diff --git a/Base/etc/WindowServer/WindowServer.ini b/Base/etc/WindowServer/WindowServer.ini index 74e22cb6e1..1c01de478b 100644 --- a/Base/etc/WindowServer/WindowServer.ini +++ b/Base/etc/WindowServer/WindowServer.ini @@ -19,6 +19,7 @@ Move=/res/cursors/move.png Hand=/res/cursors/hand.png Help=/res/cursors/help.png Drag=/res/cursors/drag.png +Wait=/res/cursors/wait.png [Input] DoubleClickSpeed=250 diff --git a/Base/res/cursors/wait.png b/Base/res/cursors/wait.png new file mode 100755 index 0000000000000000000000000000000000000000..ac9a162270d0880a7f438c67cd90d0f9b631e35f GIT binary patch literal 4236 zcmeAS@N?(olHy`uVBq!ia0vp@3=9my9Bd2>4BqDL(-|1}n5se|N`ey06$*;-(=u~X z6-p`#QWa7wGSe6sDsCN}l{xLP1z*em&mzSv?@kx)Xn22?_t}rnjZ-!otv1Sj`K~fJ zZ+S|jlB0qE$A#P{_W$oai~rNTFH$&o<<6%$KgFYS_7w-c{d@gfeEQ>`)&JK%e_mKZ72|F7vFUNhTw*21He_z*Y zD^?s6S(}Yz0UK>_j_O6D+<4!d~ESg$0?@z?_U_-u_&mt=ueGnEq}CUPWa={ z-0hPe=vcpfU>aLIZ$-}IMbYbazkMRJeD(~9y%kB1_RhDPlRZ_!)V^~fcVK+pZ=tA& zg+e=D9u?Rn@n^Q~yEC`X)m#oui|dQtn{04gIey=n^ZWixo_@1>Rrj2=*Zm(b?cSp# zZfsKYYx-`Ej@$lsE){-w{k7%(zQg+ipw zY`%WFK)BIEadPxjj?yO4WF~vnFoP?>9)?S&1bbdxGOdcw^4XMPy-3e>(*u$`Ri_7K zWiGuQknC%EJt#YOtNDEqUMuddfKM#{kH{pF02k+ z!T)uove54n%;LiT|2~<)aa8N`ycu7m{cVm5ZDUEx-DkqM$HzX$YxSHJPxob~KFrQP zUcJp=`{%05tM;AVXvXxwXt7sIiQC^N8FA{VFO@Uxm)loAdwlWi-qksqRn0WFCf+Xz zn9Fy)_O29JjMcHq&ToprE@A`_^qI zrpZ3KV>&U``^0lobI+M~^74MfD004=7Nd35+`yynT>IN!d1}I3?m984dAq&D#WK^+ ztzf->{NtT7-cI+z6fF5ft+N;TZ9nIH;b_8Fw@Yzrlk2kYt+%c5Iit5UFgK~}T?G`cHJvIE4zbNdYYWezO$5bPf^YK;@?3o;`a^B3wwXruMh2H&03oKBV!W}PozTj zZJ9%ll{NTg&)%`8$g%E=)x#TlD-+jDm&@+mY<|*qn^>*Ovx*46D*fBvS2{(l`gzN> z=54iYcV~sVb#KTd$0Jzg?!0na2;guI`3(dX1rZ_kWyr0;?yh!?iuZ@1O zv3q2mm=p8j_ggn-2ZyzJeO$}B@%Z{@+{X_cc71ce@W72KgB4TW1b^P?8Fg?yn@H`M zI=`7W)gLcb+kD-IGqd`lq!j+YU3eSIc#Vkro ziJ2Rlws7}E>jPWXc-|^)5%Vr)b`?DF`oZLFG7Tvk&i&-x=G`Q7%xWY11PfPJtAFQe z7v`}i-nKjaD*M6YMsD}nSN`h+D=-FG@6hTlQP`g$bKdIAvBXt3i&$H|$AcQ~roMxGV9Bk{{_&8KbO=6tl;Bwl^pO76^K#ch`UJAx0iPnvSs z&2781E06r8wVdS>vrATlDK*|WUh!e_)E(QuJ#oyq<#FtTRtTqt+v2IGmWD5VrJXtN z#TjiG4VCr2$(Op!6k53s_uX5kZ@M)&BJ<3)UVVx9uH_%Lv^+K{^$@5H%Biqfej?|$ z_@M(6W~<*hV82HzYg4#FN!l$BAOE{SwFj18O|v{|IXP|DG_kxzvsW;L9N4?6uIj4r z?I%1OA5~{btL_szpKQD+v2WFb&g3?2x0ykABD?|%Tr@Vc2xRooyxvQ6TzjIBRa3^9_sA>KZH=$mRBO4w^RH|EGGg_a;UeV_;@_fB}&yK%3pIqNvv-`rgbMuNfN4)OiP=W|@?pOwMy*DbtENwNTy5QSH?3R-*+O2RD23dvO2i zS|{SNao)5YLb2O5ZcgiC>X4bfeqJQYS>DroShyyucg{+&&tU((f_(|It(!5^BhDm2 z-Hj2ZQyf;NwBC{7SnJ@TcclArv#QZY;We}8zuISiV9!sfFZna(_gAs7mF-XXkZ|W^ zl_=Y?BeP`_;x4}HsL0~_xAud`d&XiDN9LqkRmp3`{yyDh)*A9nM03@b?farrJ-nyy&NySrRisU)x^@KE-_EtoA$|LwN22nCvxw0DR`=6vxtjUF0Ork zZlTv2%VoPh2xfHkUTZ0{2{Lh%>p0>sx2-vQuHGbR_7~d}mp&9brO2~I&uPZ9>wT*l z7s)*J+`hXcez~FRCAE8U`vbMh7p!bMcG6&b{_KaxFQ+|lR@k>XP4nq(o-I>uRTr$8 z#C`Shx2wG&n-@z@^mI3`sw`3VbZdOpJ=IxdLc;X~6JDMs&49Op?`64;vp-?3lfCM9 zH^sL0kKCQ*JHO~nW?24AXl9B?$^N^)YJ*)KuDFnVU(khjt}jPoU+=!da~6r(1qQr& zGtVz0==?T^jZ=Qk?UPeF6dt&WqcU?s+NAwm8cUBGyuKD{^DtBLm0gp1l$RE33~To( zS)s-67c{so%rSIYA96?|PxQybrR9gNPIa#}oc2mTG=B1}g_Ab_+-P;PrAuK_$$DK$ zlj+x{Sz9kUb+7ch^@3&WC(cey|JG7uQsclap=g`rlYOPt{91^hpji2h+3EIIzQ}w1 z`gKQZaoXK)-^vrdOTH4|wm2QrFfrOdX%A!Nvo9gRa-6Gvwahp)xg+|P(9CcLk@o&n z{Y{bPs%tLB&R)$H{X1l@VzlX7HRnS-VGQc7i3{(9opsNDutleB2Tv5wLgUV&lal8I zivFIB%|Dm);I&@qwU<`cZ_73OJgU|>jfqwMRMmz38o{w?SzMCSViH_lxHcsoCEz!x>l;}nNhvCVUvQ@oLSxB2RSvDPC8ruTiE@?|EU~OPAfzT zXRCT0ULEfB^X1flg(4m6r8(D1rMiFi$__XakhR)=cRl<1L&+alHBvb4E?ywBrBmmO zosiOkO!Y5!gEhM%RyGX=QnrUfjF6+wFU$ZCA zxIJAo=;dqQWxJ1uy!BkH-}h|Zi+eXGJb!Xn)>-hqCc8=DZY6;u)?XU+PiWrVCp61r z>XEiL4Hl-;BO9L;U5%*=`svbAw}|mjUxZSWZS2%bjAv`6KX~SE^hc#);_4gruSyU7 z&)(ao=u3MS`npL{;I!m%c3bCKF@yc%k}xz*5A8l zmp#+ZX}V_{aJF{&uV*WgYFHjGU!&FNSGxM>#g%h(eu=n=Mn zgMJ~LOX5Gj+@vVSCcVU*^@qxe$z`S!ulg>Te4to`MRk@-#G>v+(sDaY+Z)?->ey2v zJ@ef9t6wbny4-wEVC+>{rK^^`ccSF8zDrhRFwQAn>H71WwZiPoy+VEOd>9XUyq$Xe zoXDFa1tssw)3q#)OkCt!zHHK?qaAs^z4;9v-DOWy-FCcG=eFH`zO0JU)!P$yMA^&^ z%Hq+=F4u%&_ z1~!x}Glkx<8N0x z-j+-9|BfX6`e{tiscVRRBGtKh+-}#%-UW$Q%u_e>lIl$A|8P*$QV5pc=JJHtT zu!BU~{bgRRT1{aBg(m{$>U4BjWQleKC|==OYc(V07rU?2BoT41{(bTCw z=2Vq)Q*U%!TsJvM(e-(u{Qn8Br=M6lVKs|eA8W`0 z$Fjc<>Obt>9#&U$$eZhU<2mu;KP4EQb~`M7W^w;`-(?HNrt=4;-uo2(>cAQGms_Wa z*)mmaZ|r_OZP^>f>DC7xOjew|Nt-p3^QX;+I=A~%Sbya=zB65)f3|pz9Yf};&`)d@ z7A$VuQ}(|5{BGU1eSf1bzq!xYhW{YAVDIwD3=9mM1s;*b z3=G`DAk4@xYmNj10|R@Br>`sf6LxlC1>>kg{tOHZ4Aq`4jv*T7_fB@?YcSwo5q~UP zb=>}k@c;UcsudGvEo)dS^W@SbgPTidGj%H2K4spl%egQ}pU2^z*IgOi7S9a!h928B z&r&iU$ f7pPq@;+!k~*kty8!MpD~LGJK$^>bP0l+XkK!4wD} literal 0 HcmV?d00001 diff --git a/Libraries/LibGUI/Window.h b/Libraries/LibGUI/Window.h index 9a7b4ada74..3070072979 100644 --- a/Libraries/LibGUI/Window.h +++ b/Libraries/LibGUI/Window.h @@ -52,6 +52,7 @@ enum class StandardCursor { Help, Drag, Move, + Wait, }; class Window : public Core::Object { diff --git a/Services/WindowServer/Cursor.cpp b/Services/WindowServer/Cursor.cpp index 6dd0e48c25..876b92634e 100644 --- a/Services/WindowServer/Cursor.cpp +++ b/Services/WindowServer/Cursor.cpp @@ -78,6 +78,8 @@ RefPtr Cursor::create(StandardCursor standard_cursor) return WindowManager::the().drag_cursor(); case StandardCursor::Move: return WindowManager::the().move_cursor(); + case StandardCursor::Wait: + return WindowManager::the().wait_cursor(); } ASSERT_NOT_REACHED(); } diff --git a/Services/WindowServer/Cursor.h b/Services/WindowServer/Cursor.h index 45e57303e4..c0b6f1aed3 100644 --- a/Services/WindowServer/Cursor.h +++ b/Services/WindowServer/Cursor.h @@ -44,6 +44,7 @@ enum class StandardCursor { Help, Drag, Move, + Wait, }; class Cursor : public RefCounted { diff --git a/Services/WindowServer/WindowManager.cpp b/Services/WindowServer/WindowManager.cpp index 6a0df85054..3ab981117f 100644 --- a/Services/WindowServer/WindowManager.cpp +++ b/Services/WindowServer/WindowManager.cpp @@ -124,6 +124,7 @@ void WindowManager::reload_config(bool set_screen) m_disallowed_cursor = get_cursor("Disallowed"); m_move_cursor = get_cursor("Move"); m_drag_cursor = get_cursor("Drag"); + m_wait_cursor = get_cursor("Wait"); } const Gfx::Font& WindowManager::font() const diff --git a/Services/WindowServer/WindowManager.h b/Services/WindowServer/WindowManager.h index 6b49230eaa..96588e6a2a 100644 --- a/Services/WindowServer/WindowManager.h +++ b/Services/WindowServer/WindowManager.h @@ -133,6 +133,7 @@ public: const Cursor& disallowed_cursor() const { return *m_disallowed_cursor; } const Cursor& move_cursor() const { return *m_move_cursor; } const Cursor& drag_cursor() const { return *m_drag_cursor; } + const Cursor& wait_cursor() const { return *m_wait_cursor; } void invalidate(const Gfx::IntRect&); void invalidate(); @@ -216,6 +217,7 @@ private: RefPtr m_disallowed_cursor; RefPtr m_move_cursor; RefPtr m_drag_cursor; + RefPtr m_wait_cursor; InlineLinkedList m_windows_in_order;