From 9fadc019eee8e8e9f9b7c8dc8fc6cf147113ac5b Mon Sep 17 00:00:00 2001 From: jiangwenyu1 Date: Fri, 28 Jul 2023 17:28:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE=E9=BC=A0?= =?UTF-8?q?=E6=A0=87=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- etc/icon/Colorsucker.png | Bin 0 -> 665 bytes etc/icon/Copy.png | Bin 0 -> 913 bytes etc/icon/Cross.png | Bin 0 -> 366 bytes etc/icon/East.png | Bin 0 -> 310 bytes etc/icon/Forbid.png | Bin 0 -> 1138 bytes etc/icon/Hand_Grabbing.png | Bin 0 -> 762 bytes etc/icon/Hand_Open.png | Bin 0 -> 1014 bytes etc/icon/Hand_Pointing.png | Bin 0 -> 832 bytes etc/icon/Help.png | Bin 0 -> 1034 bytes etc/icon/MID_Btn_East.png | Bin 0 -> 499 bytes etc/icon/MID_Btn_North.png | Bin 0 -> 577 bytes etc/icon/MID_Btn_North_East.png | Bin 0 -> 688 bytes etc/icon/MID_Btn_North_South.png | Bin 0 -> 637 bytes etc/icon/MID_Btn_North_South_West_East.png | Bin 0 -> 761 bytes etc/icon/MID_Btn_North_West.png | Bin 0 -> 683 bytes etc/icon/MID_Btn_South.png | Bin 0 -> 589 bytes etc/icon/MID_Btn_South_East.png | Bin 0 -> 648 bytes etc/icon/MID_Btn_South_West.png | Bin 0 -> 622 bytes etc/icon/MID_Btn_West.png | Bin 0 -> 512 bytes etc/icon/Move.png | Bin 0 -> 698 bytes etc/icon/North.png | Bin 0 -> 390 bytes etc/icon/North_East.png | Bin 0 -> 384 bytes etc/icon/North_East_South_West.png | Bin 0 -> 520 bytes etc/icon/North_South.png | Bin 0 -> 396 bytes etc/icon/North_West.png | Bin 0 -> 400 bytes etc/icon/North_West_South_East.png | Bin 0 -> 511 bytes etc/icon/Resize_Left_Right.png | Bin 0 -> 567 bytes etc/icon/Resize_Up_Down.png | Bin 0 -> 549 bytes etc/icon/Screenshot_Cross.png | Bin 0 -> 631 bytes etc/icon/Screenshot_Cursor.png | Bin 0 -> 857 bytes etc/icon/South.png | Bin 0 -> 356 bytes etc/icon/South_East.png | Bin 0 -> 416 bytes etc/icon/South_West.png | Bin 0 -> 413 bytes etc/icon/Text_Cursor.png | Bin 0 -> 480 bytes etc/icon/West.png | Bin 0 -> 337 bytes etc/icon/West_East.png | Bin 0 -> 374 bytes etc/icon/Zoom_In.png | Bin 0 -> 798 bytes etc/icon/Zoom_Out.png | Bin 0 -> 756 bytes .../ft_pointer_draw_manager_adapter.cpp | 5 +- .../ft_pointer_draw/pointer_draw_manager.cpp | 79 +++++++++++++++--- .../ft_pointer_draw/pointer_draw_manager.h | 6 +- 41 files changed, 75 insertions(+), 15 deletions(-) create mode 100644 etc/icon/Colorsucker.png create mode 100644 etc/icon/Copy.png create mode 100644 etc/icon/Cross.png create mode 100644 etc/icon/East.png create mode 100644 etc/icon/Forbid.png create mode 100644 etc/icon/Hand_Grabbing.png create mode 100644 etc/icon/Hand_Open.png create mode 100644 etc/icon/Hand_Pointing.png create mode 100644 etc/icon/Help.png create mode 100644 etc/icon/MID_Btn_East.png create mode 100644 etc/icon/MID_Btn_North.png create mode 100644 etc/icon/MID_Btn_North_East.png create mode 100644 etc/icon/MID_Btn_North_South.png create mode 100644 etc/icon/MID_Btn_North_South_West_East.png create mode 100644 etc/icon/MID_Btn_North_West.png create mode 100644 etc/icon/MID_Btn_South.png create mode 100644 etc/icon/MID_Btn_South_East.png create mode 100644 etc/icon/MID_Btn_South_West.png create mode 100644 etc/icon/MID_Btn_West.png create mode 100644 etc/icon/Move.png create mode 100644 etc/icon/North.png create mode 100644 etc/icon/North_East.png create mode 100644 etc/icon/North_East_South_West.png create mode 100644 etc/icon/North_South.png create mode 100644 etc/icon/North_West.png create mode 100644 etc/icon/North_West_South_East.png create mode 100644 etc/icon/Resize_Left_Right.png create mode 100644 etc/icon/Resize_Up_Down.png create mode 100644 etc/icon/Screenshot_Cross.png create mode 100644 etc/icon/Screenshot_Cursor.png create mode 100644 etc/icon/South.png create mode 100644 etc/icon/South_East.png create mode 100644 etc/icon/South_West.png create mode 100644 etc/icon/Text_Cursor.png create mode 100644 etc/icon/West.png create mode 100644 etc/icon/West_East.png create mode 100644 etc/icon/Zoom_In.png create mode 100644 etc/icon/Zoom_Out.png diff --git a/etc/icon/Colorsucker.png b/etc/icon/Colorsucker.png new file mode 100644 index 0000000000000000000000000000000000000000..40e19e94e129682fdeb461cceef0f0a57c64d66d GIT binary patch literal 665 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(MNL;aou{tnv<&|DxJ+8ui%*|TP>QC zq|Er1<>Ks`%@YdT9;VnD9+j)PQ@Pvt^X>e+_aaX6w;10xlsQ;0kiEc{!M=qV%1v0$ z>@ua*?E=dyXa8?uJCvjoX1)G;>qLstlkdM*253x3lz3gwc(UO1(@7ibiY#P4ow;8HvGcw;sUFo3d9qKp zXs681yYGZ8*q)RX-!3!}IUOV3cF6V3h0SYC51OuDy-0$0hs6WC(@%{ydM&-QzWdI* zn>okMm5N-Bmw9GmKKbE-?_NtkNpP^ZY`-nKFu=p_XrHKr@X3@(_4f0-w|~CJ`5=Br z*=}8_-nJX>zX$!SiDOz9rv0qo250ij?uT`^qSjx3SzsYBf9KH}`NysqhBADa+i&L< z%-!UZb-jiA!J`=N&lTnB3)pvOML*jqa?a?Yt{Q`0*2S=wcXYGjrwBJRhpkqfzt#Bs zo!W;LtPFoVmS6r99liSM8RAj6$r;E$_>(P&-XSY7v)395OV literal 0 HcmV?d00001 diff --git a/etc/icon/Copy.png b/etc/icon/Copy.png new file mode 100644 index 0000000000000000000000000000000000000000..212517131bf176661ae85c7513def022dbb50559 GIT binary patch literal 913 zcmV;C18)3@P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91D4+uX1ONa40RR91C;$Ke0D9(TtN;K4`$)A(Md>5kLsWM*gVCa@%v_wvtgGs)y%==FLZTdmd?Aw(8TEC?ow#bUSF zY<@Qqk^phx%!O2d#zHy)jf8Xq8VBhGXcXi)Kw}{N0F8ju0j@e^5WrQ13<{_q=~~40 z<3_5agk^282g3o1p(|0B&J@K_LP3AF>%+-vaD{s zUhiZwnOh3(;-}Lyolf^UzW7r(VL~&h1q_}flk4X0?tYBm@fL=!_$W#y7-KI;`s}-t z2mAg0a|}#}nMyFW$T>g$aPQOCVaDllnKR+s+Y^`Y$lMknxU)ZKn*r-H2A3b~dv+)2 z7+u~FkX8zoZsfh>@68uP9D=7hK&$T5|A3?-^gr6fuymd5tkPvuAyP22P&pn{^1JRc=k$?*+ldb_60fJ^rNXnW8z#n n#WS*kDnPXfKRcZ~Mz;R~fdlaz2k4jM00000NkvXXu0mjfuTYJF literal 0 HcmV?d00001 diff --git a/etc/icon/Cross.png b/etc/icon/Cross.png new file mode 100644 index 0000000000000000000000000000000000000000..58625855d1cd96ea8a29ab9c3c201d90ac717e83 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(A(pF?@W;zzc+2noWh@yaq!L(DFO>=l| zzqbD2!QQ;~wvl?j&F1jidrzLX4Euaf`mFm7)jrLo6SjU6xb!f|Tq?Q7%W&M`IRQhvSqxumJHxhAfR*ZKB;Z_B~>iOmWeb>0oaPMcS*+M2SXxTf$^ j#;g`Gjs^yfn3)H-omU-yB+tAR6lM&bu6{1-oD!M19d<}yV3s(*z-G|E z$P>b|WXd#&$J2`EY2CiBFS_B)9BU_z-JTwdING#5l#Fq-_o%Bj-G$OE+{&b)wW X&Hk5m?gTe~DWM4fL+xE# literal 0 HcmV?d00001 diff --git a/etc/icon/Forbid.png b/etc/icon/Forbid.png new file mode 100644 index 0000000000000000000000000000000000000000..c5c43d4b4b8aaf6d53931586e519a583d064fec7 GIT binary patch literal 1138 zcmV-&1daQNP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91D4+uX1ONa40RR91C;$Ke0D9(TtN;K5+(|@1R9FekmtBaAQ5eUcGas3; z*qBDMSkcO?l5(f^#%3jvk0>{Lu|$z5DO!nGS+=A|6tNd>6!}g<)`hZHB4tMwyV%`! zL(9BocxUD~|Fd(Zch1c2e74?Gv*+u1p7VR3bI$XeCDSyY8HVwSbM7ZQ76HavT3Y^w z!{HCMgan{)oP8k`plu9}-0AE#A zMV+0UhTrc$;q`itsSo*7DO0cb!`;JRES5-B6R;)`~9323E-@bujAKyt?=vWIr z7`Clr#k3tV2y2=+a}Iw%dd|4sP8A!QXwuGRO-gi4lYX}Dm$J~&OE%lOOs>8wnIY2T zCe$@hth-BkDV*F|K%#`twaQxkfhQr0OJua4Rl_4SvQLS{l}cY0L(ZAiBbOmLrl3ZH zG(&I5)3DlNA=y-^F>@yG5t)ngkyT`Z1_@c{WE9vg zv0#h4g^e^o1YyKEgc3cx=#bHex5!mfOUBjnnJ6Q+Gsg=Uap1|M%OgW1h6ZGuBez?h zmKR0c?#iQQr7U#xlFha*ldJE*dk#U>Dv0zo+;%_);b|9cNKabl(T3+@{h!Ghm?dTP zln0xzt?L!qm$`UwY4Bo#_*PvR*#rR_F%h8zw-p6v4%-SZ<3sc;0vQLfOVc|-+t4nh z6!2JR5RZjwxz>0-79=26wd->$^)SWz4UbK{=Zf7D=)y+1-h$vrc~C*w?a80=paR6# z;M1& literal 0 HcmV?d00001 diff --git a/etc/icon/Hand_Grabbing.png b/etc/icon/Hand_Grabbing.png new file mode 100644 index 0000000000000000000000000000000000000000..09ab3121d15e27a975fbaa228aadb2399e4492b9 GIT binary patch literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(;JX9>gnf1bU=S)LR;nnVFhc z*t$cAWi~T2+mWv~B$BV~J!xJ&aksWj*|#0uT|XaKZhl<-dEei(XJ>_!6hs8LI9OYl zoER521UP7Xn6LeS&0g|b)Fc&VUEcP?@)!0sq$d97+oZF<^)CzasWn%#0z*UB+Eud! zew)u}-Dqpobi%`WE}yCIWu>d{ziTo}pHDHG&d}?&m@Uq!byvE?_fMOqR50iLu>bnA zrb=(RvPT{-I}_t-U$x0wB6M~!Y>Hd|^l#n&Jt10}3juJfiXeQwM8-)!G?eOCN2LUh~@O;JiPH*Z)5_zE;8S z+0PQI)Thndi!XLawJj`SwJfQd>9tfZFV{et|7K2EZw+g^<<3JYa~?%*zrEG*^{G^& znE_LlaHo7MOx@M~S<|b{ZuZ%ni8>-&yN*9jyng@j!MA1m-Oa4#pMS4nDZ!IrAn}JU zzAU}C`L~F?QNrQ+Ln~{h`z^npV)_VqCaBgWIP+AH*-I7FFUyJ;Ersy hBo=6dKUmLH&+zfgqTV@nbMisy&ePS;Wt~$(695I0LFWJf literal 0 HcmV?d00001 diff --git a/etc/icon/Hand_Open.png b/etc/icon/Hand_Open.png new file mode 100644 index 0000000000000000000000000000000000000000..e1cb7a972ec2d372f0d75cbe80159c4a66e74e10 GIT binary patch literal 1014 zcmVPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91D4+uX1ONa40RR91C;$Ke0D9(TtN;K5U`a$lR9Fe^S4&76Q51b+CLfa; zqt;@fpe4aVY)V_Qs7=w8NFYd2=%S10#*MahU9fHn?jm(7g|6(PLMUC-h0u)(-Pj_S zLKh{gV4A9FKA6vBGClW|s4JN_fws`OaPr=pxz}^%zTcHG)65K*8897K^2_u&^MnudlO? zj*e&0!W2beKA%s*yIZZTt#$g_ct#v0fJEK|gsd5XFSob1)sc}AR;g6H5LG=oI%0i& zeXLwA``X*vDYL9zuS;m|L+}T*pMiUTZZj+pqCReJZWbYog~MUBTCFA7BOM&P$hCgW07m5q*$GPH7`KpXhCVeFt@GMRK!>+yJ4I-OS0{Xt{B zCMuBpqd)|ZakS)8sTAw#>f(GmJ3G9kpZ@-S3$@6g6bJ-J7&|!n(reT9<*c`ln_GfBps9PG@|1d08d4xw$z7 z=UriSb@i;CbNh5wg3~U_E8>5nt*z}Ci=7MU>FH6T(dfCN8ZYBI& zrZ;SiQ7{UN{rSwy%&{I}xIjjdqA+y<*12RIi+H6aNl&^;ZC#pud2%)_e@;mO%=vUki!@x7}|4im@MlynsCo)z@oQV1wl>$=pQN5 k%nXKj{pDw07*qoM6N<$f}{(+ZvX%Q literal 0 HcmV?d00001 diff --git a/etc/icon/Hand_Pointing.png b/etc/icon/Hand_Pointing.png new file mode 100644 index 0000000000000000000000000000000000000000..f0daa0dad6154a1846fb9fe4b7f441b3ab6f8b5b GIT binary patch literal 832 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(gn5}GC;IzS0p_S1yz5WMtlf8oPtS_0ltd2*UO*B;m z*Yhu$Ah3bMC1CNo`}bb@&XX+qct>WA-n!{Y?DJ~x-<(-~FMa;cC?~V-gpCne6|RZ* zbIktAZ++~bV321vJ4B$xIH0QF_Le>smT3zEI;w2s9u@6ema$tu)4n3qYs3AwW#K)n z9ziqO+0#`#HB^7BzWmZ4>B#%<_Zur&Y*@D(SS#Wr=K>Q z?&Lb_WXg_s9kH8IOZUe0NB^*MxahR;UB=FseLg2Tb3SvlAGS59UZ%2JdG*z*C=C(4 zq>U1dRyNlQcHEUKu#m}_doOg7g0wZmq{{~rHuPpl*D6iq2>!5h63b1spIzB&d%kW9 zmNQWOS~Yj>)ca*zQ*Qngy*7D=;(6YwUQ3GPE>8a+ z5z~2pxAx!22#2F`C+-|BnVewYQIISk9%k1WcIeb1pj=z~ZF~wnJ6U*$U zN0T=GX!!3a=oOowY~VEOV#boptx;?-)m1+4PhZU{Rg(0c_{yH;e@f!33P$MzSFG4? o#Qqh2!ITv!8h{1fXlL5bXwrN6@Q);o?V!}_>FVdQ&MBb@0I>^JF8}}l literal 0 HcmV?d00001 diff --git a/etc/icon/Help.png b/etc/icon/Help.png new file mode 100644 index 0000000000000000000000000000000000000000..ffea2f1c072f1682ca8e837ddb947352a553917e GIT binary patch literal 1034 zcmV+l1oiugP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91D4+uX1ONa40RR91C;$Ke0D9(TtN;K5bV)=(R9FekmrZCBK@@=B>~6XV zw3nvAwg_4T6>oa$rFyMGMNtG>lzQynV)UyaCKdKX0?I!lvFO zvn(qWi9`~?VDPMfYdOH%6N%)h3_w55yzV?GvowGazu!FZ<0hMP?(4mk;S}#eGo3MZ zm&}{`5GzNVOqy8~3c9r_#EZNeyH*q+_-~z533`!NkSVrS85WVBS zT!nR6lRO|r&f@T(YB=E@A$0~j>J`Z>AboT3Wb%X8X%$SRB~5q0G}qVTo6JrnEeI#L z=0b+$uF|iYTz1va7Jl&4b~j2vo! z?oAquy~*ja4MjJu=X}G}BDKc{Ty(ezJ4nY02J^o;jK8x%9>2}iSGDBVSXmF1e3vyU zQ5tkYl<0~cZ#=UwN> zgO}48n3%GoYWJ{fm3-ShoZ<#lPvJ(6b*UCB+>Lb56(B)dlca37;TaM$9-ERC0+*)+gE#HTH=O3!9 zXq3-kh9})_3;o_7^Z{M&gjqS??t065X|&T*J}2u?sHdNU><>brQc@?MwVop68fO7O z`DB5z4oWrwQzZhfNhl{oU-igjh$FubQvOECW=)WP6V`g=f&`eIVyXyHE#=QgPyo`~ zQ?jW68+Nz4>8FVelTAG%CwTseplF~{h2PFX9wqC40Bu$>5beq|z5oCK07*qoM6N<$ Ef<{fe+5i9m literal 0 HcmV?d00001 diff --git a/etc/icon/MID_Btn_East.png b/etc/icon/MID_Btn_East.png new file mode 100644 index 0000000000000000000000000000000000000000..921cd4ceea8d97ffb6d4c45008d6428cda998cce GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(CktgZ>12o9_@LM(V`A(ZeB0!#1;3KKYO|B9-xjpET{3z4I=qp8Be!SI?}h8K zb0ye*?yHwN9%y_uVXNBC2ZD=P)$*Em2@jZ0n_r7}PKeO({7XRavzkK6Q$Ns%4p`mBJg;);0Y)*Zv zI&=O^jjm_8ckdWCzn^k^&)xQ_NR_;z-TQYf^|Wk-`JYkoLpF;YWArx8Cr(_=OF#kc M>FVdQ&MBb@04_D#ngS$R7y5nUtzg~tiKld>v+teL50ZDhblzcgqc2uA#%Gqr3_i7UXO1o8n$lVI zyWXWusIyaS=i$94Iqm;jPOmQ75uN? znRUzO+3$51GgjnnUmdnOlw-w9+3%0Db=g#BE`M7#`^)dYC7W*^*?sq2aMk&SS#mN` zTg=ThyX{W3f7p8e{r#oiy4YSET<946B)?3*`*zd31jUZN1WElsz7ny2GawE1DdiHk)qO02R>q*51b%l*yJ&X)VMt&97_BHN%t zCn{`?otW>)|87RgdW-#^stY$i2%Qvmv%$IfTaa`4biXN;{HLE@%Gw&Wv>zz8Eu^Gv z$FT=9-T(8~_8#2&yz*L!m2N3hyW6o{At9oQzrB9U v*Bzd<^`$#Ki%mIau=p^kF@l3MAew2v(8rs6_ib+UfTGXS)z4*}Q$iB}M%eIU literal 0 HcmV?d00001 diff --git a/etc/icon/MID_Btn_North_East.png b/etc/icon/MID_Btn_North_East.png new file mode 100644 index 0000000000000000000000000000000000000000..3daf141241dec309c98ae10266bb153af163f3d9 GIT binary patch literal 688 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 literal 0 HcmV?d00001 diff --git a/etc/icon/MID_Btn_South_East.png b/etc/icon/MID_Btn_South_East.png new file mode 100644 index 0000000000000000000000000000000000000000..44284a6e04a19ca8453b46ea81db099ad84cfaa2 GIT binary patch literal 648 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(RwbmiO|8(!$qTJ2>kYf2$tZ>Gzi{FX)3b$22Q1b5=z@*M;3z zJexW>_f35LS==~;^W)OM%=Zrrr&s^`ey9JxsyJ(-`8$U42I~W|5BLh$cQF6I$9ODa z-Xb@{81`R3H%mJUTo=hdn>IPsNK&lRC9Kiz*o5Y1ISUvxrh55^xN6TnyQygB9#sZi*2O!#*rnHVJUMvM66s$ebvv*AFLluIm|*cdrRztH-Tv7= zYMahK-_6_V6lldgz0twp!|%U^OfpXOfxQnFi#-3$T^5*EAOVh$59~5O*os7V_^x>D QQwT~0p00i_>zopr04aC~4h4v`B@41=Ta_4Zmp>5OBO|@3zp; zQbxu{|B811od2YIbBvxmqtp*Uk*}Yx>?q_~X0|Nz7{kgXmov?cX7-#&+dTiqzusk; z&tEK6;<2~=d+i64i?Lw;@u@#+@*bM+iqN@NsJ2fbP0l+XkKs2>4x literal 0 HcmV?d00001 diff --git a/etc/icon/MID_Btn_West.png b/etc/icon/MID_Btn_West.png new file mode 100644 index 0000000000000000000000000000000000000000..7460bc18d63e000689755b39b8ead3c3609ee4f5 GIT binary patch literal 512 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(ga>k%`hD_CF8Q4DQSxRL$P@XZ&2ZDNy*#BaE9WGkhxv8CTXWAy*`vF|oAH)b#hCouUma2hbGeOS-op(%gj{ncff*G@2h65bgh zV|dLZbo@4r==!K zv;|);J%2^wNnfFiw@^WujJukrk#&;q<#Q(%vTdE+sS@?iqObXRrTngSr+2Mm&#G{j zYY=K#lIdl?U;5gFXb-kmdKI;Vst0E^zh7ytkO literal 0 HcmV?d00001 diff --git a/etc/icon/Move.png b/etc/icon/Move.png new file mode 100644 index 0000000000000000000000000000000000000000..00f64e54dca0d0731b595b4ddc9e0f7294c40c72 GIT binary patch literal 698 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(tO?(G~x6~H-FZ?udT_yx98yJm_i;4HW}u=#t?~)MJr6^`nj)pvwV?=*SX69 zE)LyCldin}dg{V+b1B}YJ)dg-+w%T(f2pwJXU)GmFH5Ech-_T6|53~=pQy$=ta`=@ zjO%8k_#NcoO3z3Pt2`iD$nk_c}wrVf4(t(#%=XeUxiXNPQUKh<m6LasM(_URrgu+u#!Sl{+PC%8f*Dq>6E7^SVRN4AI?p=q@4bDcXC0pW=8>!V z*JH$~cisHP{$tvy91Nmq9I|sV-r@O5_uRM3+=q~QZF;)z- zw@*I#L{9RNQ+)dVyJ49-j@GRWi)MBFz-77mI8$kaD8rQJ*VdOW5fiv}URS$7NhLjK zk@RQ#iEA3I?V>vzXNxJAuTy9`!(;K&(dxvR#>xBvhE literal 0 HcmV?d00001 diff --git a/etc/icon/North.png b/etc/icon/North.png new file mode 100644 index 0000000000000000000000000000000000000000..b022ac2e92d4cfb07efde7f3bf4b7ada8454e594 GIT binary patch literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(IL(kR5ci2tkN%h-cK-5DO26`u09%=vh( zrjE^X(t?8wJO{vNhs1_!?_TZF+gbc3=<%e@rJhlz5*Ms{eahzi_bJ+!Oj1uY3q0Bu z^852|p6lD*hI&;lKdMvSRXvY8^U`bAWe>ubE!nqoomiHs7ddUO-D`%gmO*~;p`nhS z3uj;ZGZ5L@YXd zP=HOk`K{wG$@#s8oaKGZf{z>x7?`2RApHU30-w#-dfa%6L1EzO>gTe~DWM4fb6|%b literal 0 HcmV?d00001 diff --git a/etc/icon/North_East.png b/etc/icon/North_East.png new file mode 100644 index 0000000000000000000000000000000000000000..f6134237f38cd681b319c95bf1b77017bc1524b4 GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(7R@SHVFE6 z$bsXbjql~)TaTX4*==gQCgAI}sPrCArir=}%$biIyZ8IF0Z+eBO7Q{yCtF!|vVFJ^ zQu+4mJG9$Vb|+V-mT#LU^z*^_@t6qFZKCEaLp sy^?oEbIvw{&P#UDQVSTNXhq%wR@W1XJ9jI@E&}=9)78&qol`;+01K;ztN;K2 literal 0 HcmV?d00001 diff --git a/etc/icon/North_East_South_West.png b/etc/icon/North_East_South_West.png new file mode 100644 index 0000000000000000000000000000000000000000..908886aeb3f8df976bb67b2261e8e52e7222e622 GIT binary patch literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(FF(iWX z?bNebEd~M&u2CNzYz_aqW}l0H>^Ih^Up#M>r|s)ga$U*xD&H!2hN{cvH|t6_w{y14 z$WXgqH#tSNom)DAIj4blL*r~Cg{60TAOB!pyYWit-$Y)i72jL~YuXbv7?UY7NI4}L07yR(UOrA%|SF@LtUaj9K za47TkwU@vDG1j+S-IOBGz*ik)dpFF%w}GWIT%g8yxBB%%_vT71$eiWRP+?MQ?|a#H pkF@Xm$~n9n7|jl_-Dr?y-mhM{*l%{Fgf}P_JYD@<);T3K0RX>h#X|r9 literal 0 HcmV?d00001 diff --git a/etc/icon/North_South.png b/etc/icon/North_South.png new file mode 100644 index 0000000000000000000000000000000000000000..b15678a6b178ca0d9b13f7c7f58d025ab7a1ce12 GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(Z&`1BVcOg5Xue^AvG1`3j^arLvuq}v{9t_Gd2`AI2@wqj z)&&eAH(VPf9$&Tmp7QvYUiZ7L9L!&9|8KljWwvg0qtC+^&C0W-PRPuWI$>%dI^nRv zo}U`5X(x+$j$f*{E96u$p=+`e%YJK%mrK}=-g|v1wJdpsh=K5?m9MvCh8^`}&=Hm9 zayl5q>h=6FpWLzsHdoI&UMdNn^vXaERotFv&3o#%cpClcfFtHFLyZP%m{S&zko*l=t#@k!83GK Qfg!-)>FVdQ&MBb@060F5J^%m! literal 0 HcmV?d00001 diff --git a/etc/icon/North_West.png b/etc/icon/North_West.png new file mode 100644 index 0000000000000000000000000000000000000000..cfbe4c8910575c12afde4b5904d79b5beda0c162 GIT binary patch literal 400 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(V^9}nJPdpyEVab7IQ#LVe=rr+NYq)G`_&P_%?+>{iyy76I?g7l4>a>qZ$gkH7Yk+XBB zUyhkWi}vYHi{JmAD=ZK#z$fsqYtaSoL#$>CqTd9HtTf;W6=2EV{zLy&vR22b)X1_k z$4z{n?^^fOqVIe+Q%tobW6(KM-^HJ8;`vpWgk+w{*x1dOuwq5H>c=_Fit>wD(?JA3>bo(^vH~q_tKPWHUz1{-EZ$9$nKv(n2BCdB&W-3^! zGQMNg>hqh#a;Go#GUw$;0cn+k2U+$vc${%uRAjM*%YkpwgF3DstD|}pwwdu9j=f&$ zm7QDsG2PspC7?!M_inOK)#BzG(Q7Qy&IwAy)-vbqtNW+Se*3}u!}n%42}Otqu(~h? dKA5lhfirB{evK(Qyw^d2@9FC2vd$@?2>@LjzJ>q* literal 0 HcmV?d00001 diff --git a/etc/icon/Resize_Left_Right.png b/etc/icon/Resize_Left_Right.png new file mode 100644 index 0000000000000000000000000000000000000000..83e7671e3ffea65260bdb36d8b392fa78d55cd4e GIT binary patch literal 567 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(?@_14>T9KD&z6wP4(|n?EGcY-V*Q)nDLhd4 z?Ps;|&AD^E<@|in(nH`goF{M;NvrL8RgLgxrrhb=iVJx;Ulw>n2tK11K{ zGv8}lZaE*heQ%RW*pUj=>o;sW|9m^J^20q*c9-mfhTos4lvi*4H+R!f*T5Tpx3E@T zSXZCBaZ}T_TzQ$}l_jy?g>!$typq>mVQN*k`r&=ko4RL6KQWOI(X;lEj+Nb_{{b6Mw<&;$UKDCBnl literal 0 HcmV?d00001 diff --git a/etc/icon/Resize_Up_Down.png b/etc/icon/Resize_Up_Down.png new file mode 100644 index 0000000000000000000000000000000000000000..db8bccf89b6e5260db3875a22b5200fabd30c23c GIT binary patch literal 549 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(o_h}Y4;UkO8IK)ldGLLP&8M`Wg$Z+4 zZd6&?|LyDR{(gJb^To4^4_H2sDd3YRT=06=>{YAcRtDs_T$#ebc(wHJywscOqFrkn zrxaK`?CUa}pkwpsc_Kn z`V~jZDbg$lrP}+QH>Ewue)e|h!GqZ*cNWKV_1*YhUi4!5vyd;jg7ypRm2dS)Gp(v` zGSqIhUC7yFEUdJDPfaQ3u$*+OeB!f*5?41~v-RkzsbA?bZHwcj=4Vg- zMDgh{8ko9q3%uVWZuNNOp@87ZEBwA|z0b_DUuXF8e@&P8S`~xWT+{3qoDlzdFVw+L zNlI-03US7yN4pnkJhC}IwITDCzLFucTi_Pn!ylNBZ=P;-ZAR$fxr=Lc&M-|r*&wrT z(M3BO1tYO|qvbzYC7Nw4Wp=M@+QR0?nkhS{f#>w5n$4fKPgab53k*98_J0eQGx~9)eDLuPgg&ebxsLQ0LxX^g8%>k literal 0 HcmV?d00001 diff --git a/etc/icon/Screenshot_Cross.png b/etc/icon/Screenshot_Cross.png new file mode 100644 index 0000000000000000000000000000000000000000..27460c082507e71082d11cd8a20eee2fc24da28d GIT binary patch literal 631 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(!7L3VG;X4^58T|S_1S8;tVgJOY!Tz@71IivmkA59CmBz6i< zbidiR@v+d22j|`_S|%+1&FYXigC{Ud7AsBlKDlvMi^5?QPgU*Oyt#UIE*GsIh-z#$ z_u*??yvfzIIPN0L=4i0``s+&~g);6*Nmg^M_Qsv(JseO|WjM9! z{AZy*O53M3-R$1-^SqF!;^`cHwtZID zGAC7wJUn=Q_l^Y`yJuV%l=iw=!eO`g7V`mnH$l%y*^K=MSOT_%`fk!v41H+1kEw0) z$vMu?enzg8IeC|1s?T(V^LKPVu*mSSHBWKbe}DOXW{VX|WP~NQPf}YMelF{r5}E+z CP5vwZ literal 0 HcmV?d00001 diff --git a/etc/icon/Screenshot_Cursor.png b/etc/icon/Screenshot_Cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..71abea4ca351988a92b8a5b2b2228321df31aecc GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(euD#CfD;6|+hqFtI965M$VejSyuC(6CPRct{CYBWlX*W5_ z$V9Vqb9pJ0c{Yi;-0@i!_VMeTaCw#5^S|>w8M`P6-n*V)&~X2K{JXbrYaJ$O?qu1-GV#vs zxb@!+rFswDy*oF?POYZAT-vpszs7vrvSMnxh$z2hxmT|wY#b-*MAsjeAw!v+COVcN?dv)pV}<2Qd}{y*r6uf zZvOhx(OYZP{-@wLgY({fygZoN7$%Zmn4)x?J$x`}Ysu zyzyxfls?#T-fWYoiwZ1EPXIS zZPu|;?WT&tX20dlj~^!o@+K)ue7xy)O%o5t>xlhKEU=L2UuGe|@!`fU#zbA` zxeAk5_N!zskI-;>cQD0>vuf`=^RsEjC!Q7sXo#?gpPZW770K~$ON7pq-2p4~cvw#F zyqvYwK!&gWq3&m=j_Fa6=N>FQ{d7{7=uHkou_Bd%sh@+UJke+7KKS|a3s4yJ9D)N8_xj- zDB5E1VDJ8YpC6QV&s$w(AT2AA7PsEYKD=gz_m?8shOOmHY>6ALIlTRO_I!fZ%X#-t zJ4-ZAv0Syc_w)XD=FG<=`mfzuvNgB={jMZ8z%sa)5Yw6K`tVQNq3l`p?VHLuTk zEVV9|EzB&c>5i&(B!Yh_`>~Tg;(d;4o}aGyCiPv(xwRghEw literal 0 HcmV?d00001 diff --git a/etc/icon/South_West.png b/etc/icon/South_West.png new file mode 100644 index 0000000000000000000000000000000000000000..2ae8e9a9fa396bb6ed0f385b7b99b66830357a40 GIT binary patch literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(rwngx5VO z?Z76T^^OcmUIz}$YCQeYPRK8Yo6XT!z=ds+%;R}v!6xY5x?~I z*S`O2U;pZHjF~ZOndQN{8+jj9vaS6bna-uOPd>_67Tdgmy* rGQFEH_eT8P+hq>2FuNIeQcO26R)2V7@!Vf|F33Bcu6{1-oD!Mgo%;>B(ixP0|Izo^?Db=XCipG)tv~bSjut8!MlD;aPh4fGe|!0~FP# zE|^l(Wq2>hOZ;`W_qz_MD^c02J{34}JbX8&`ozwN*$U#OE2bvPdzge-Fdm*en<4Nr zZxLTO_YKw}PCv%Pi@O3A`v*_H_gh;k>vNcO)uQcRqGOL=UBOa(u07wJ1x cXR<+>*zopr09NvIZU6uP literal 0 HcmV?d00001 diff --git a/etc/icon/Zoom_In.png b/etc/icon/Zoom_In.png new file mode 100644 index 0000000000000000000000000000000000000000..2e928ec070fcd05a44cd9b1abd041128287b0528 GIT binary patch literal 798 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(RS#Xb5C(=?5N(Mc{H?pf%n^UVV+`2JEnfGYu+VT-@Si9_apy;#KMQ`?(Qm3 zjo2mFCI9~E&sA!di<=rvo@9zlI;AYmmjCRYadFYRGbtiUn>-pJ@cPPzDM8U|!{RU0 zvcm3os=6TGyQCGV5 zo8d8;XL25F>s3yBg<2G@zkd1qZ`;mFspK<>dWJ_1@t-^3^mtd&%N2dIV-{bWkmHxk zSKO&MEt%!m1nbG&^IvzXmIy73*P6QK*}HV0`l23hj$<`VSL*i5UpDd8=sNWE>FF8X zJR2ES>~mPRMEd&X=gJ{F=AKPk6t$LX%9%qZvwaQa`q%!sn4wZ|rNe1q!rx~_mKWca zt-a%;rrdUT;RA_z>P;S^c0hv9I0HZ%?D_`A>bnf(ka@{NuO$a=!ZHP6OX!eo;}a zl<1u?+hVkynml7#91vKO`Rv?``1|Xd?rTl$vXtOClDGYH_r{{mlg~fj`Ki2r$+>ff z-|hJ^qx1OVBD?waNj?4P{xy6LE;Y}Z?_77>fz!R%{}{F+>0Df^?kdd-14 z!_M`mnNE8>^*E=tGeXBn`DNu@ucbjkyJsHZS!X$I>Z!^Jd$@fZpC1VLJfB;;?7RG( zn7XDL;YZf+9^BOQWbx!D3-3IfP$E=!lKrIhgnf0BUVr`d@Yd8l<&$d~93OtyUnyT@ ze>!)vj##(Q{D6DH_gnp*+-Olbxu21}=wNJ8|3nMXmMBfUa5XD*dz9{O<1{{LyB}U>QZ**5IM}o_$n$j5uCUdS=P&tO{-e816r}&d z!E$cNJ(H%0hDPkT{8D1}SvG^~ZM^a|or+<{4w^39krW?jb;Xk9xxnLQeZwP@lntEx z)Mn5B>&hw1u|6KCYMP8AQ=jERnWne%J|}H{`$Nci4MSf)W6gVYkB}b*QoSKdg93w$ zte3^DUtPEVz0|zZPeXR!-BxQnv**>cYX*`i0RT$QFZs?V5QpL!dA{8YaAcjyQAoiW>X-CY;8{(4<AK*4;4kjpeDXBE1RM8#Q;#j<`}& znmG0HUnTSD^O?%D&3-!sgf-UOYP~bfTINLTgWBZAJz_6Dx5wy+^*>+t9p662D``O^w$#HJ`J}-c)8)V!gMD ash;8IXT@{HiOSue6zA#c=d#Wzp$PzH>qbKW literal 0 HcmV?d00001 diff --git a/window_manager/ft_pointer_draw/ft_pointer_draw_manager_adapter.cpp b/window_manager/ft_pointer_draw/ft_pointer_draw_manager_adapter.cpp index 954db52..f171808 100644 --- a/window_manager/ft_pointer_draw/ft_pointer_draw_manager_adapter.cpp +++ b/window_manager/ft_pointer_draw/ft_pointer_draw_manager_adapter.cpp @@ -84,15 +84,14 @@ bool FTPtrDrawMgrUpdataDispInfo(const uintptr_t instanceHdl, int32_t displayId, return true; } -bool FTPtrDrawMgrDrawPointer(const uintptr_t instanceHdl, int32_t displayId, int32_t physicalX, int32_t physicalY) +bool FTPtrDrawMgrDrawPointer(const uintptr_t instanceHdl, int32_t displayId, int32_t physicalX, int32_t physicalY, int32_t style) { - int32_t defaultStyle = 0; PointerDrawPtr instance = FindPointerDraw(instanceHdl); if (instance == nullptr) { return false; } - instance->DrawPointer(displayId, physicalX, physicalY, defaultStyle); + instance->DrawPointer(displayId, physicalX, physicalY, style); return true; } diff --git a/window_manager/ft_pointer_draw/pointer_draw_manager.cpp b/window_manager/ft_pointer_draw/pointer_draw_manager.cpp index 437ab96..e7a93f7 100644 --- a/window_manager/ft_pointer_draw/pointer_draw_manager.cpp +++ b/window_manager/ft_pointer_draw/pointer_draw_manager.cpp @@ -61,16 +61,21 @@ bool PointerDrawingManager::Init() void PointerDrawingManager::DrawPointer(int32_t displayId, int32_t physicalX, int32_t physicalY, int32_t mouseStyle) { - (void)mouseStyle; - if (!isDrawing_) { - if (InitLayerNode(physicalX, physicalY) != WMError::WM_OK) { - WLOGFE("InitLayerNode fail"); + if (InitSurfaceNode(physicalX, physicalY) != WMError::WM_OK) { + WLOGFE("init surface node fail"); return; } Rosen::DisplayManagerServiceInner::GetInstance().UpdateRSTree(0, 0, surfaceNode_, true, false); isDrawing_ = true; - return; + } + + if (lastMouseStyle_ != mouseStyle) { + if (DrawPointerByStyle(mouseStyle) != WMError::WM_OK) { + WLOGFE("draw pointer by style fail"); + return; + } + lastMouseStyle_ = (MOUSE_ICON)mouseStyle; } if (handler_ == nullptr) { @@ -127,8 +132,12 @@ WMError PointerDrawingManager::MoveTo(int32_t x, int32_t y) return WMError::WM_OK; } -WMError PointerDrawingManager::InitLayerNode(int32_t x, int32_t y) +WMError PointerDrawingManager::InitSurfaceNode(int32_t x, int32_t y) { + if (isDrawing_) { + return WMError::WM_OK; // surface node is inited, just return + } + Rosen::RSSurfaceNodeConfig config; surfaceNode_ = Rosen::RSSurfaceNode::Create(config); if (surfaceNode_ == nullptr) { @@ -154,7 +163,14 @@ WMError PointerDrawingManager::InitLayerNode(int32_t x, int32_t y) WLOGFE("create renderContext fail"); } #endif + return WMError::WM_OK; +} +WMError PointerDrawingManager::DrawPointerByStyle(int mouseStyle) +{ + if (rsSurface_ == nullptr) { + return WMError::WM_ERROR_NULLPTR; + } auto framePtr = rsSurface_->RequestFrame(ICON_WIDTH, ICON_HEIGHT); if (framePtr == nullptr) { WLOGFE("RequestFrame fail"); @@ -172,11 +188,13 @@ WMError PointerDrawingManager::InitLayerNode(int32_t x, int32_t y) paint.setColor(SK_ColorBLUE); canvas->drawRect(SkRect::MakeXYWH(0, 0, ICON_WIDTH, ICON_HEIGHT), paint); #else - if (mouseIcons_.size() == 0) { - WLOGFE("can not find icon pixel file"); - return WMError::WM_ERROR_NULLPTR; + auto it = mouseIcons_.find(MOUSE_ICON(mouseStyle)); + if (it == mouseIcons_.end()) { + WLOGFE("unsupport mouse style=%{public}d", mouseStyle); + return WMError::WM_ERROR_INVALID_PARAM; } - auto pixelmap = DecodeImageToPixelMap(mouseIcons_[DEFAULT].iconPath); + + auto pixelmap = DecodeImageToPixelMap(mouseIcons_[MOUSE_ICON(mouseStyle)].iconPath); if (pixelmap == nullptr) { WLOGFE("DecodeImageToPixelMap fail"); return WMError::WM_ERROR_NULLPTR; @@ -192,7 +210,6 @@ WMError PointerDrawingManager::InitLayerNode(int32_t x, int32_t y) #endif framePtr->SetDamageRegion(0, 0, ICON_WIDTH, ICON_HEIGHT); rsSurface_->FlushFrame(framePtr); - return WMError::WM_OK; } @@ -201,7 +218,47 @@ WMError PointerDrawingManager::InitIconPixel() #ifndef USE_IMITATE_POINTER mouseIcons_ = { {DEFAULT, {ANGLE_NW, POINTER_PIXEL_PATH + "Default.png"}}, + {EAST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "East.png"}}, + {WEST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "West.png"}}, + {SOUTH, {ANGLE_CENTER, POINTER_PIXEL_PATH + "South.png"}}, + {NORTH, {ANGLE_CENTER, POINTER_PIXEL_PATH + "North.png"}}, + {WEST_EAST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "West_East.png"}}, + {NORTH_SOUTH, {ANGLE_CENTER, POINTER_PIXEL_PATH + "North_South.png"}}, + {NORTH_EAST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "North_East.png"}}, + {NORTH_WEST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "North_West.png"}}, + {SOUTH_EAST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "South_East.png"}}, + {SOUTH_WEST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "South_West.png"}}, + {NORTH_EAST_SOUTH_WEST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "North_East_South_West.png"}}, + {NORTH_WEST_SOUTH_EAST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "North_West_South_East.png"}}, + {CROSS, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Cross.png"}}, + {CURSOR_COPY, {ANGLE_NW, POINTER_PIXEL_PATH + "Copy.png"}}, + {CURSOR_FORBID, {ANGLE_NW, POINTER_PIXEL_PATH + "Forbid.png"}}, + {COLOR_SUCKER, {ANGLE_SW, POINTER_PIXEL_PATH + "Colorsucker.png"}}, + {HAND_GRABBING, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Hand_Grabbing.png"}}, + {HAND_OPEN, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Hand_Open.png"}}, + {HAND_POINTING, {ANGLE_NW, POINTER_PIXEL_PATH + "Hand_Pointing.png"}}, + {HELP, {ANGLE_NW, POINTER_PIXEL_PATH + "Help.png"}}, + {CURSOR_MOVE, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Move.png"}}, + {RESIZE_LEFT_RIGHT, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Resize_Left_Right.png"}}, + {RESIZE_UP_DOWN, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Resize_Up_Down.png"}}, + {SCREENSHOT_CHOOSE, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Screenshot_Cross.png"}}, + {SCREENSHOT_CURSOR, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Screenshot_Cursor.png"}}, + {TEXT_CURSOR, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Text_Cursor.png"}}, + {ZOOM_IN, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Zoom_In.png"}}, + {ZOOM_OUT, {ANGLE_CENTER, POINTER_PIXEL_PATH + "Zoom_Out.png"}}, + {MIDDLE_BTN_EAST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "MID_Btn_East.png"}}, + {MIDDLE_BTN_WEST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "MID_Btn_West.png"}}, + {MIDDLE_BTN_SOUTH, {ANGLE_CENTER, POINTER_PIXEL_PATH + "MID_Btn_South.png"}}, + {MIDDLE_BTN_NORTH, {ANGLE_CENTER, POINTER_PIXEL_PATH + "MID_Btn_North.png"}}, + {MIDDLE_BTN_NORTH_SOUTH, {ANGLE_CENTER, POINTER_PIXEL_PATH + "MID_Btn_North_South.png"}}, + {MIDDLE_BTN_NORTH_EAST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "MID_Btn_North_East.png"}}, + {MIDDLE_BTN_NORTH_WEST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "MID_Btn_North_West.png"}}, + {MIDDLE_BTN_SOUTH_EAST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "MID_Btn_South_East.png"}}, + {MIDDLE_BTN_SOUTH_WEST, {ANGLE_CENTER, POINTER_PIXEL_PATH + "MID_Btn_South_West.png"}}, + {MIDDLE_BTN_NORTH_SOUTH_WEST_EAST, {ANGLE_CENTER, POINTER_PIXEL_PATH + + "MID_Btn_North_South_West_East.png"}}, }; + for (auto iter = mouseIcons_.begin(); iter != mouseIcons_.end();) { if (CheckPixelFile(iter->second.iconPath) != WMError::WM_OK) { iter = mouseIcons_.erase(iter); diff --git a/window_manager/ft_pointer_draw/pointer_draw_manager.h b/window_manager/ft_pointer_draw/pointer_draw_manager.h index c69301c..c80cdbd 100644 --- a/window_manager/ft_pointer_draw/pointer_draw_manager.h +++ b/window_manager/ft_pointer_draw/pointer_draw_manager.h @@ -88,6 +88,8 @@ enum MOUSE_ICON { MIDDLE_BTN_SOUTH_EAST = 36, MIDDLE_BTN_SOUTH_WEST = 37, MIDDLE_BTN_NORTH_SOUTH_WEST_EAST = 38, + + INVALID_MOUSE_ICON, }; enum ICON_TYPE { @@ -146,7 +148,8 @@ private: std::string iconPath; }; - OHOS::WMError InitLayerNode(int32_t x, int32_t y); + OHOS::WMError InitSurfaceNode(int32_t x, int32_t y); + OHOS::WMError DrawPointerByStyle(int mouseStyle); OHOS::WMError InitIconPixel(); OHOS::WMError CheckPixelFile(const std::string &filePath); OHOS::WMError MoveTo(int32_t x, int32_t y); @@ -156,6 +159,7 @@ private: bool isDrawing_ = false; int32_t displayId_ = 0; std::map mouseIcons_; + MOUSE_ICON lastMouseStyle_ = INVALID_MOUSE_ICON; OHOS::Rosen::RSSurfaceNode::SharedPtr surfaceNode_ = nullptr; std::shared_ptr rsSurface_ = nullptr; std::shared_ptr runner_ = nullptr; -- Gitee