From bacf29e47409c20292b6861e6ef40bfc2119eb7b Mon Sep 17 00:00:00 2001 From: jpbruyere Date: Mon, 7 Sep 2015 08:32:29 +0200 Subject: [PATCH] * XCursor.cs: * move: * help: * hand: * cross: * arrow: * top_left_corner: * top_right_corner: * bottom_left_corner: * bottom_right_corner: Mouse xCursors * Window.goml: * Checkbox.goml: * Group.cs: * Popper.cs: * Checkbox.cs: * Expandable.cs: * RadioButton.cs: * GraphicObject.cs: * PrivateContainer.cs: * TemplatedControl.cs: Focus handling improvment * GOLib.csproj: * OpenTKGameWindow.cs: * Window.cs: cursors --- GOLib.csproj | 12 ++ Images/Icons/Cursors/arrow | Bin 0 -> 69120 bytes Images/Icons/Cursors/bottom_left_corner | Bin 0 -> 69120 bytes Images/Icons/Cursors/bottom_right_corner | Bin 0 -> 69120 bytes Images/Icons/Cursors/cross | Bin 0 -> 69120 bytes Images/Icons/Cursors/hand | Bin 0 -> 69120 bytes Images/Icons/Cursors/help | Bin 0 -> 69120 bytes Images/Icons/Cursors/move | Bin 0 -> 69120 bytes Images/Icons/Cursors/top_left_corner | Bin 0 -> 69120 bytes Images/Icons/Cursors/top_right_corner | Bin 0 -> 69120 bytes Templates/Checkbox.goml | 2 +- Templates/Window.goml | 11 +- src/GraphicObjects/Checkbox.cs | 8 +- src/GraphicObjects/Expandable.cs | 7 +- src/GraphicObjects/GraphicObject.cs | 6 +- src/GraphicObjects/Group.cs | 6 - src/GraphicObjects/Popper.cs | 7 +- src/GraphicObjects/PrivateContainer.cs | 8 -- src/GraphicObjects/RadioButton.cs | 6 + src/GraphicObjects/TemplatedControl.cs | 1 - src/GraphicObjects/Window.cs | 36 +++-- src/OpenTKGameWindow.cs | 18 ++- src/XCursor.cs | 173 +++++++++++++++++++++++ 23 files changed, 262 insertions(+), 39 deletions(-) create mode 100644 Images/Icons/Cursors/arrow create mode 100644 Images/Icons/Cursors/bottom_left_corner create mode 100644 Images/Icons/Cursors/bottom_right_corner create mode 100644 Images/Icons/Cursors/cross create mode 100644 Images/Icons/Cursors/hand create mode 100644 Images/Icons/Cursors/help create mode 100644 Images/Icons/Cursors/move create mode 100644 Images/Icons/Cursors/top_left_corner create mode 100644 Images/Icons/Cursors/top_right_corner create mode 100644 src/XCursor.cs diff --git a/GOLib.csproj b/GOLib.csproj index 25fa70bc..70181412 100644 --- a/GOLib.csproj +++ b/GOLib.csproj @@ -115,6 +115,7 @@ + @@ -182,5 +183,16 @@ + + + + + + + + + + + diff --git a/Images/Icons/Cursors/arrow b/Images/Icons/Cursors/arrow new file mode 100644 index 0000000000000000000000000000000000000000..61f968efb0951f51adcd2215e54cec28fa914cb3 GIT binary patch literal 69120 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 thmma?2{$-C3CPJm0x@?mhQ+e!uVO<(~V! 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 literal 0 HcmV?d00001 diff --git a/Images/Icons/Cursors/hand b/Images/Icons/Cursors/hand new file mode 100644 index 0000000000000000000000000000000000000000..23939b7473de012201004de8c885a60e880c3035 GIT binary patch literal 69120 zcmeI52b>f|_QwSTlq5-#3QI--MKJ?{D~h6sAfSQ?5fvk1z*A5^h7-?l=PBwbcjkm( zz!Sr%c%EVo=%I3A4wywnKw;_s?_2Jhe@)XpJF~m94AAxY{HANFyQ|)Nm0!K8K6uO- z6B=%StF}Q+{Z`+gBxs@Qex?2*UB_?ydw37|uW9+azn}b%_W9j^r2GpfZ?HiJUG4p9 z@)Hlx>n`r?bX~_?wc537*R58qS}pNeT|f+#<*HwH*=5%)UApwQ@4x?k>6vGqd8s1a zNT`f7s%^B9lU)i&8=la4?A^wWyH_ue}= zMUR?Y?{`ljHu3ftZ#l^+JgAYC!^ytwem@;L`s&BvjcIgj4 z{IKlfk3ary(4awww`kF#UG?hKNiSQzYDhj?5r3;zt%B{g+b%ffm}3I`JMOq+uyEnR zfOPlYfB#^~k|iZyef8Dyk3Rb7`+)-ojw({S8NY6BgidG1DXU6< zh@Op;|E90J^2(w;_Shrm_;=fFx8Q>hK3Jl-2V{u9e*gac$A9z9H_O!~ugnE%pMKqQ z&pmHY+&c-hfl-e7-9+;5+o(~alZ3N{b3E`LoFz;Y&J@lNPFFr3rFVPtzL2S%;9i~5 z=bGsng-sO>ntEs?KksFVTelPEOTflRMGB-*o`wIQ8#v-d`&6@R;`i>%{%6JVr^5uxT=HLGIx7*dXtvLVu z^Mi{nx+tLSJMFa7uGT%;3C2PBa-?5(&YU@~{qvvy3>Z&>ciwqtrN$YL>RuOtu~EKc zKzrBl>8GEb=coVfyYH_2)1UtIr0#7i&@SdP{l-fFO+Wnw3l^-@SdsL53iSl&%m)p` z+gS2{lQC+s#;SnyUw!q}&!$hG{`A#XUwu>Cwr#i3bN)Q2vS>-AKV!y>V22%caQNT< z{za8x>z)|SAR}ZU!MFyhSaSl$p6+`Zw)rzd~=6;?zt!B zCrsmu;O3ie4!U*g7VNUiE`i4MB}U5^UwrZ1$tRyYN%7<&lWJRSwbeFLr%s)wJf5xi zew;RKnj5<^em(v4(^G!_lQ)umD(r?EZU`>E_~Kx%z4i*OxZ;Z7x8HtSrTOfwqM>mq zPrAf9_^z!w{?Y5Nzg}|hz4tP9U3J}c*SWDRV_nK1R|D-5V{ZF@;)y2)ojZ3<{r~&l z{~kQ?#1ro--mXI2_{#{Y(Ykf(9>}j(uU>8}`PN%+m0Wx6wW)EX+T)a8FS)Y7)qpIZ z#r|J^{q>~(zW(NGK+db1UYb_Mf@pmRoM={!1^Dq9Moh>)v$JO|xdto?T+``q!Oz-r3FBNK5nK zfVnNQV17;7%!!yYb?DH+%`A8{B^T?T_An|NXJ)TfEs`b4_1u&8){Bdn{7^*{10~cgG!f1mfpy zh4mH6D*tuWUS1|0Oo?CC{P=S5ck0y1=}IO{nDCI^>m!s^|7)u}ZKpQp3)%qsIq99! zARSSO#$Z`NaRhVc&izv3)>D->Qx5upOpboDiRSyeNuO}lsi&U$(8P%oANO(m@y9na1yX)FdKo?gQ&^vY$P)}#8 zLxl$VY{oS77vvfA82FE_u`DoGs4tK%eL3+aE|EY=0v+UI9i@k^6b`O{ff5soL`NVY zBrcJ_`Y8d|4{0o0Q{&5`X3d(>f1>Z8f3*2+A@(VbZsxwy7hS5clv^`mPNli}rzf0n z!dar9z7byNXA6l3XaTjP+qeOmSFKtVXv`I8O^v_K9eeDt=js{sU*((#tCXx~ut z&xV>eFIll-MR3X~r#QXYKKtzB=HoE%?|=XMEj`D4xQW0xr%>{M@=#lIJ2wZ{dP_?0 zhwksV8<{Obv#UO;9*U+r@s6h{n8ye{TO;uVD(q_C%>tE zS_Y3=+g&Q1;qB5HZ5F`?ae}IFtI>~cb*G(nN@2{HF|PdBk9aU|@YGXJy{Np{LWEKu z$PeqQ{d~zMFRRhNXwjlzn{Bp90o{<+F9P(ctd(;QofYjAPT_N;dwWy*g~j6S=La5m z;1Su2Fo&j%W!z!qi?k}6m(}Q({yIR1Vi-1TSU{h~T7ZRdMaLWGWH+%?dWf;o*Y$7L zu3dNOBgh~6JU?Ibx55tkiL<`ipWUEG_A-I=$thqxn-+ittJ(zE=aY~|{py?RkmQKuJPc;RJa1LS@t z4e8GU*#)IQ8$=)AhnXLnBg&Wkx2x=i9AEZ-`|Y=ppb=o1t7B z?M=hmZoBOvXdOLzbSfSCC0v+(J)e4}qW(&tpZeb9U;p~o3(!ivG@4io!iDKa{;ccy z>tnnV7fyYU?%us)aoe?$=x?U6`~qmjR@CBVT@4qe-|Q86PWp({^Q?KSd0r{A(?q1D1!yTi}8!os-H zcKQD+fqwehRvKsh0{#A)s-KSUmo2zkTc%uSO~%o~TJ!kv<6Rk|UFR9zp&iCP8b5Uy zJ%ArqCD6~t6$ZeVzXL#v5-8F1_^9 zw7es(N}!)HZEM-3u7G~*TEq0_^M57L-$wfcmP3DB`<*WyDvN&U)v_-CmC4I@-+hPJ zs3*rO-tzQcuKY_E^#So<4^Wx(Wr~Zo38(qp&wB0%VS6Fh{@1lX(sRxrF6J6$bCN0T zir%ALl1&py(hj_&_zo3V>dJNeL;u@U?Z|!_^DiMj)n&KGLHeDbJYau>*4r~e^^K%x ze|}aUc%f)u{9K;#ryIZN-S!&q9HVi>+oIpKr7nRy{m34xL^h-g)lXlhv>7`W3vGq+ zjQ{C_$+sS*uYALSOwM=L(I92anAzWUH%XCeH#`=HMSmO^$i!t+I z!kz+YLj!aATwH4YrI%Q8Z6{C;`w0Vu!NL#$J!dxH*#iXL1N(=7zIQ)?Id4Cqr$Cy} zZfha(=H!eA>H_%(AFYHo0&#Z`I%Wx;ZC?uBjY5&aTMI1(=q63lt}Z}Jd7bgWoPd0! zZK8dpkIogm7YE`6`OyC;+QcOiNFT54l53SR7l%MXls@L=@#7vGar}&nw*kIX+J?pC=w7$1o zd(R%wTJNrkw_d3%n6FiI?w2E(d3oG;uXWa0XPxWw9rjCKzeKhZ2a5{kzsyZ5WB!{L zrm~FGc(18-pRKiL#Oa{0d(@hGp#4D3UIe=lbJ}h%lj_qoCOPHmrGB{IeI;oc0{Uf3ZM2i2V@V_>;fjRO2$Rm%W_?PW1`QKmYA}|)9 z4WSLRGC3 z58^x!m6@^F94q`9o!xQIKmPHL+hwD3md1=l;*`ENs*bFQauLfvXAEH1>jR#}pF7{f z565q|{Z z%=c@5pJNdjarO)65@Pek8Iha`gYABllikB_YFnPrS$wRI*B9tZ{qbaF*A3zWv_qtW zKBJZRzt-qe-Z)!j?3E3i10;Ky)PD=NE9dm!XeTVpzh>H}VCl- z-29xOgkxU>=LqS1i9qMQ1Uh5Jh1-wLc6w1ZoQ$g&SK7D=+AHFW_ZqUPZKO0`vh<>^ z^n2Km`nctmTijkCKg{>Drv``ZsUL2B>`!HX<7^r&%&xRI>{l?Svrw-RvqgeGwyr4u zl%?9T5k1e+iM!J0=`5`@P<}bzCme47v8lyzPOF85uh8gAX{il-nH?1KJdX=Q~v)bKYPZIQPe%cUV7=J zK()?G5xNQJ8EFT~>)@aA(?IRc#l|CgJ%y!U?Kk(M`1fs={r7zT z!3Q6liq8)>|Jbo(WABIfe^BoX61EYV3yd4f>nQv5B~5fzTxwGpwwMY_fpgx>Me&af zz5jfazbrd;_Jl>fM_7peSqj6Bu7|++J&aMx>uC3oUvstl^Wc&FPx_w*?9$Ce@gIJ^ zvj69if9gJS(pHNWE&3K7pL_1PG~VImFMn}ciJS=5LH_Hh{I*vA>jt6BWy1NVb3HBl zBkMnXl)V$R-@(7{?^}7xqhGPHCS{L&<3+KvyT>n3QzaM98o9TYk zKDzK8qdew6^U8*@!yaP!i|!&!Z>Im~L&Ep@zJrC?nS}PAtN#w?to!%ax5OON56dI} z^nHz_&m3+1GY0k3F3S(EoM~#$N$2VI&f9pt`g#BVC6`4)j5>i>D(JWfR2Q~SrAptUs>tpn}4-8 z$5{T4(ODj4(Nop;^Uc3>JVzV<%z3Mtzp~P^ee2Muc^dP-${PRE{x{V=t5pA&&0M}L zdMo=r{iQjzPq$Sv|4pQ4?jiG@64KDQ@&%XwI``MuXaDtu;(vd^=D!u0|GDvx;_C3w zLl4chMA#D@HBQ%aRVo|$PR66=o_Xe(k43}r0{ZZ+1v}$O-f}s{|LD-#NUwRc=0K@^ zhU|m&_exSOv=_15@Z*Z}zxUpIX?rZSf74j!yqFalS6?ey#|i_4Ed}FYQY@BzALr;S%N6X2RUC`s@b=qpf2T6>Wf&R{eyZ{DT6ebFsQwi8_nhSV`_oG1EhBM?R zJ#eaUl5n&zLg+7`_p$;lYXAOC>C}SsPmi$M|p*J@(%hd;(QrU4p?7nCLrUELRW$EhTK_q z*v>;w`Llt&!~1a{e)=>6X`Re-b%qz#}0dW`RU z@UG|+mq;LyKq7%e0*M3?39RiB=pY6-Bj89~88C1KgfqxuP@1?z0*M3?2_zCoB#=lT zkw7AWL;{Hf5(y*{NFHU4(zr~Rk0@vY4O>W52f0nA$H_Y`T>GV5V+qPnF% zSY1f+K*ES|RyL76<+aW=*IaXBSjL=P!2VOdMfT1+?*x4FE6T}6ZlvNU60m=;JfN>m z@<2ieIg>rILG~N#J2cJp-QOR5+3Gw&_dOarON}evq}4v>w0+OKqq72TQ9Rft6$#jo z)ECSq#L`nx;v@l+2W1}_)$iQ7^RB+^`F`=f`|i8id2W^$d|$_RI_KbN#lzWV*hJA5 zH4?DP@%sY(O`Ifv{3-ji546<{^_{-KzC7p8pC2oG@_@ZTzSAD+xr%3iu)WY;pdGS0 zKt5ZZ%e!7XlY_NAj9HrY>eXwQFVC{%A1?per}VtyIY7Yv7F$HdL^e+#pDkT^*K22T zpiDA%!e+6VXPanCN%70Gs_s^XmA9M!R^NQziVQ<0Y&wMy3{}O`dDn(a$s9vb4Fbug+vZ`%n8*uJX^Ba=z0yQlC>??1366>>zXyYz{y=)(5Ze z`H+?T|NGzny0aTNzaa{Ich+}02MGC(*51&;I=5tRof}dty{L_W7~_%$)C2N?vG4kt z4_V1y-$)ILb)I4z!tIarrr#^iKDTcRlQ;OKvwKhaqVuI&B`=r{Gaq2wg)hQ%j82`eK0!hsz=ueXZ*l-Z2LcN z-n>9Mp;-L+&wq{*bH*^fL!vdz!Ah6?vE+l*2ihg-12p;hK^qlrr=Wjrc3H_EeLrVQ z#34@ptQW91ebJ&tLFs2v((**@+Iu?Vs=EZpH&N-I(NT~OjFV`aC=1LoYnxaTa~>PjxMw`ZSv>ZzA>mfQq=Yig3tzdl#CG2?YE-4LA<-ciE! z`whzv%M0VRkm`fcl(GGJ`Q?`b&d!Yk=gQ$`&YT(hjQ{Rjoj>P0&YS1kM4Z9byLWGw zhx%@xJL8P8Z?;bL<1L-Le1XooWWB-q3%~F7>%*F^3nqJLLjJU;w5^+~KRnFmnKP$l z>lO=r_sc!bne3UKvwPw7O3v-Jd*Q3TDHlBZY}%&;ebOTR8gnhyS)AwS%t6-v(Wy`` zEFZ%4LAR>Rnau5KvZt;>BjfPaj7NON=u?|FZypPkIrq5EXN!Htf8ReRjIyt9v1NRZ zvrFT?z2MUs_Uk;ZXLPP>SMh}I&*pj7XIov+ttxRQbFL|+_XR=Speax6K$35}H6LUWKy`)d=GBE|U;DxfFP!4jSC$|7b5?U4_zs7@xeOK2b0)0W$ z{czaXXP@oJBX*Y13vm13k9L94v-V5Ig|L3glg$ozD=j})GKVE`nExNrx zJInZpwl|;7Z|g~`o@_&=8%^0>X>U1iIu0kEc%nPcIPQK__~glxUGmJwqV9*o?AtIC zCQQicdB49PA<6%A@xPnUO)z^H`ht8qlRx#Wj&xlu(5v`z=NxR#cJ>ioPe=ZGKNcsP za6+K(rN!QldiTHs4|HTiol76}yuP#Lo)4cx9`!6?5%Qm`@Bu=2Jybz?bJpLYvudEZ z&HldZ)%QkzN5JN@_G~ut51)6h^fKm0*REZiEp=JX*?szKba(W-7MAH6A^!{Y{2*ax zfquZ+AbIoVkiRSYx;D}HAWcy(JDo^gY(AB({Q1^o)b}KmW@P+?^KAvr%gyvm_#S%j za9G^`2>Jg}&khl=iR>bowJScUs@e{vm}&g7(~Zg(Ckr zdZWS%ME=aNolUuPUZ?mnMc*4mH({ejrJ3J4{bSs-g&JNU@~7{mk7=oSOPbCBn~^x# zjTkY)&#FZJ5>z=I@~4k!r9CRse4(OGQFtVnlliW!_9yCFTv1_`UZ#8YjDOAbdEPCM z^3S}>t*L1J`axf&wDCTVzMp-KzRM*4xIUctqWVk!n`(ZVasH?{c($xODG>Ri<3r!t z`q4)pea@FD`x)bSHeHK7pGp3ihIo=lw9~@c)PX z`W9~N{Q{GJTiG(b@5>+kOPHTr|5HBW=5WLn&SSm_nW;<<9y~aWCUkU}Xc{?kWbFL{ zk-r=Ji-&g7wSDQ!pY@_lyk&b2+ry}5sTK5hNdDLWwAb3=Prm%4zBlUgm#u%|#EHR_DO22WpFU}ML*LH#4zZ80XSuQ-k9^5bKiu~hko>W0?V#^6r5T-NY6pBi z%JMTlL8jPVv6ee))~tYUQiaR1#UnjP@c8482Ooa;p|cm#xWKL1jvF^FQkK}v>3c*0 z>y^`|Pj}z0TqJv5zEN*+MqLX;{%-Co`a0Toi>(f18aGDqQ&t##A$0-WX}50OGRlUw zi80osNs|I}ePy+Uv`u^$o#*-PWH#ff0+GMdJ4<$*WH;cxn`iPbugaKxKU@3LS>G#M?$?3J>VNZ9ek&SpA(eme(phIH zr5zTAonJ+HEadmG+4h~r2dsZp_440@Cc>u)8cInN=n&*hBhGZP90n zf1FU&>+h!jX|Fvyzi*N#CG4xOz6vT!2T_@_t7u%UTeo)eZ(shJw>_?Sj}x#z=_6E? z{fX(Hi)5p^lVtvbPZ#=S=J%p!odEjQaJw&i%ipB;zCb)4BVd2Uxr|+es<6Le{fqS% z>`l9A&GANG{^r+rorBr4XFL50I+pT4XYM(j8+x~FamO8Z8`u4P2tH3Tj z%4tv8qv9Rg+oOa*LRH!y+WI?tKRQcSw(BF0Jn~8uo$F$l%EWxlGa2`sEZBKyRcU`~ z_CKtF6$w3LzdC5fj2SPii}E&}nBU93;}zMY((X|9#|pIl{eO^`#%4zM+J2Rew?y^({l0zs-YOokH%Ioz3I_`VgdK#A0=Cb{g!Uny zuDT+p4$u#?w~_t(^!>Df&@)17CF8U=;WF)EzG3+A;dcqsg?oh=rI@KJxGxiAv-P0X zqh{vWCjp+}y{UjKkO{KMr?dSp;XK$(iBb=@5q1%Zg@M8W z0y+}v>qudgK))4*!xZl0aQ&|c{J8K(rRj%38-Pw^O*tPXzyrJ>_g#e^0`2bR0_6{# zjLDwznNNrO!+F4*tf4>~*jgYTx(Pi6>S%AFudus7zQ9Ku`s-d4_EdN_hydifh z^EKqJYS}Bvl#9v->I3wV7tmTqfNn!Q`Qt#j$_L`o^TUlkyFxdB4**Z_MtKj*9XYHi zXL(>(s}s-&t=2|C``QAd+pZ>WzpNX-YfA1(x`_l52_zCoB#=lTkw7AWL;{Hf5(y*{ TNFcBEEZDGMuOOnRXcRP-m}u14VkNOR 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 Skd$wE=hghmy69F%3H(1W{7`WK literal 0 HcmV?d00001 diff --git a/Images/Icons/Cursors/move b/Images/Icons/Cursors/move new file mode 100644 index 0000000000000000000000000000000000000000..ab98f6a3263d293392e7ff5c47a27d4f25b1ba86 GIT binary patch literal 69120 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 literal 0 HcmV?d00001 diff --git a/Images/Icons/Cursors/top_left_corner b/Images/Icons/Cursors/top_left_corner new file mode 100644 index 0000000000000000000000000000000000000000..3493adc65014db24ddd2be45b844128f780e1666 GIT binary patch literal 69120 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îGmT-Svh3Fd%{d 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 DD+w8E literal 0 HcmV?d00001 diff --git a/Templates/Checkbox.goml b/Templates/Checkbox.goml index f9aca19d..c9dbe5b4 100755 --- a/Templates/Checkbox.goml +++ b/Templates/Checkbox.goml @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/Templates/Window.goml b/Templates/Window.goml index 97e980c2..afc63723 100755 --- a/Templates/Window.goml +++ b/Templates/Window.goml @@ -1,11 +1,10 @@  - - - - + + + + - diff --git a/src/GraphicObjects/Checkbox.cs b/src/GraphicObjects/Checkbox.cs index 930fce1a..f6b7bae3 100644 --- a/src/GraphicObjects/Checkbox.cs +++ b/src/GraphicObjects/Checkbox.cs @@ -23,7 +23,7 @@ namespace go Image _image; public Checkbox() : base() - { + { } protected override void loadTemplate(GraphicObject template = null) @@ -64,6 +64,12 @@ namespace go } } + [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true + public override bool Focusable + { + get { return base.Focusable; } + set { base.Focusable = value; } + } public override void onMouseClick (object sender, MouseButtonEventArgs e) { IsChecked = !IsChecked; diff --git a/src/GraphicObjects/Expandable.cs b/src/GraphicObjects/Expandable.cs index 8b3f4b1a..77054897 100644 --- a/src/GraphicObjects/Expandable.cs +++ b/src/GraphicObjects/Expandable.cs @@ -58,7 +58,12 @@ namespace go // this.Collapse += (object sender, EventArgs e) => {}; } - + [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true + public override bool Focusable + { + get { return base.Focusable; } + set { base.Focusable = value; } + } [XmlAttributeAttribute()][DefaultValue("Expandable")] public string Title { diff --git a/src/GraphicObjects/GraphicObject.cs b/src/GraphicObjects/GraphicObject.cs index e1e2963b..e1972669 100644 --- a/src/GraphicObjects/GraphicObject.cs +++ b/src/GraphicObjects/GraphicObject.cs @@ -659,7 +659,11 @@ namespace go #region Mouse handling public virtual bool MouseIsIn(Point m) { - return Visible & Focusable ? ScreenCoordinates(Slot).ContainsOrIsEqual (m) : false; + return Visible ? ScreenCoordinates(Slot).ContainsOrIsEqual (m) : false; + } + internal virtual void checkHoverWidget(Point m) + { + } public virtual void onMouseMove(object sender, MouseMoveEventArgs e) { diff --git a/src/GraphicObjects/Group.cs b/src/GraphicObjects/Group.cs index e7a4b2b6..e2d64c89 100644 --- a/src/GraphicObjects/Group.cs +++ b/src/GraphicObjects/Group.cs @@ -65,12 +65,6 @@ namespace go } #region GraphicObject overrides - [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true - public override bool Focusable - { - get { return base.Focusable; } - set { base.Focusable = value; } - } [XmlIgnore]public override bool DrawingIsValid { get { if (!base.DrawingIsValid) diff --git a/src/GraphicObjects/Popper.cs b/src/GraphicObjects/Popper.cs index 0bbe3a52..f03a166a 100644 --- a/src/GraphicObjects/Popper.cs +++ b/src/GraphicObjects/Popper.cs @@ -52,7 +52,12 @@ namespace go this.Unpop += (object sender, EventArgs e) => {_image.SvgSub = "collapsed";}; } - + [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true + public override bool Focusable + { + get { return base.Focusable; } + set { base.Focusable = value; } + } [XmlAttributeAttribute()][DefaultValue("Popper")] public string Title { diff --git a/src/GraphicObjects/PrivateContainer.cs b/src/GraphicObjects/PrivateContainer.cs index 025934f9..f863fae8 100644 --- a/src/GraphicObjects/PrivateContainer.cs +++ b/src/GraphicObjects/PrivateContainer.cs @@ -67,14 +67,6 @@ namespace go } #region GraphicObject Overrides - //check if not causing problems - [XmlAttributeAttribute()][DefaultValue(true)] - public override bool Focusable - { - get { return base.Focusable; } - set { base.Focusable = value; } - } - public override GraphicObject FindByName (string nameToFind) { if (Name == nameToFind) diff --git a/src/GraphicObjects/RadioButton.cs b/src/GraphicObjects/RadioButton.cs index 8c8000e2..9d7ef83e 100644 --- a/src/GraphicObjects/RadioButton.cs +++ b/src/GraphicObjects/RadioButton.cs @@ -35,6 +35,12 @@ namespace go _image.SvgSub = "unchecked"; } + [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true + public override bool Focusable + { + get { return base.Focusable; } + set { base.Focusable = value; } + } [XmlAttributeAttribute][DefaultValue("RadioButton")] public string Caption { diff --git a/src/GraphicObjects/TemplatedControl.cs b/src/GraphicObjects/TemplatedControl.cs index d8af0bdf..37da50cf 100644 --- a/src/GraphicObjects/TemplatedControl.cs +++ b/src/GraphicObjects/TemplatedControl.cs @@ -75,7 +75,6 @@ namespace go if (child == null)//trigger loading of default template if child is empty loadTemplate (); base.loadDefaultValues (); - this.Focusable = true; } public override GraphicObject FindByName (string nameToFind) diff --git a/src/GraphicObjects/Window.cs b/src/GraphicObjects/Window.cs index 0fd2b780..ad3ec5bb 100644 --- a/src/GraphicObjects/Window.cs +++ b/src/GraphicObjects/Window.cs @@ -36,23 +36,37 @@ namespace go void Window_MouseMove (object sender, OpenTK.Input.MouseMoveEventArgs e) { - -// if ((e.Position - this.Slot.TopLeft).Length < 3) -// System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.SizeNWSE; -// else -// System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default; - - if (!e.Mouse.IsButtonDown (MouseButton.Left)) - return; - - // - System.Windows.Forms.Cursor.Show();// = System.Windows.Forms.Cursors.SizeAll; + } + public override void onMouseMove (object sender, MouseMoveEventArgs e) + { + base.onMouseMove (sender, e); + + + OpenTKGameWindow otkgw = TopContainer as OpenTKGameWindow; + + if ((e.Position - this.Slot.TopLeft).Length < 5) + otkgw.Cursor = XCursor.NW; + else + otkgw.Cursor = XCursor.Cross; + + + if (TopContainer.activeWidget != this) + return; + this.TopContainer.redrawClip.AddRectangle (this.ScreenCoordinates(this.Slot)); this.Left += e.XDelta; this.Top += e.YDelta; this.registerForGraphicUpdate (); + + + } + public override void onMouseLeave (object sender, MouseMoveEventArgs e) + { + base.onMouseLeave (sender, e); + OpenTKGameWindow otkgw = TopContainer as OpenTKGameWindow; + otkgw.Cursor = XCursor.Default; } protected override void loadTemplate(GraphicObject template = null) diff --git a/src/OpenTKGameWindow.cs b/src/OpenTKGameWindow.cs index e9c7db08..d7cecd4e 100755 --- a/src/OpenTKGameWindow.cs +++ b/src/OpenTKGameWindow.cs @@ -32,6 +32,16 @@ namespace go // : base(_width, _height, new OpenTK.Graphics.GraphicsMode(32, 24, 0, 8), _title) { //VSync = VSyncMode.On; + + //Load cursors + XCursor.Cross = XCursorFile.Load("#go.Images.Icons.Cursors.cross").Cursors[0]; + XCursor.Default = XCursorFile.Load("#go.Images.Icons.Cursors.arrow").Cursors[0]; + XCursor.NW = XCursorFile.Load("#go.Images.Icons.Cursors.top_left_corner").Cursors[0]; + XCursor.NE = XCursorFile.Load("#go.Images.Icons.Cursors.top_right_corner").Cursors[0]; + XCursor.SW = XCursorFile.Load("#go.Images.Icons.Cursors.bottom_left_corner").Cursors[0]; + XCursor.SE = XCursorFile.Load("#go.Images.Icons.Cursors.bottom_right_corner").Cursors[0]; + + } #endregion @@ -288,7 +298,10 @@ namespace go // Debug.WriteLine("UPDATE: {0} ticks \t, {1} ms", // updateTime.ElapsedTicks, // updateTime.ElapsedMilliseconds); - + //update Mouse cursor + if (_hoverWidget is Window) { + + } } #endregion @@ -423,7 +436,7 @@ namespace go } GraphicObject g = _hoverWidget; - while (!g.Focusable) { + while (!g.Focusable) { g = g.Parent as GraphicObject; if (g == null) { return; @@ -433,6 +446,7 @@ namespace go _activeWidget = g; _activeWidget.onMouseButtonDown (this, e); } + void Mouse_WheelChanged(object sender, MouseWheelEventArgs e) { if (_hoverWidget == null) { diff --git a/src/XCursor.cs b/src/XCursor.cs new file mode 100644 index 00000000..a186fcfe --- /dev/null +++ b/src/XCursor.cs @@ -0,0 +1,173 @@ +// +// XCursor.cs +// +// Author: +// Jean-Philippe Bruyère +// +// Copyright (c) 2015 jp +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +using System; +using System.IO; +using System.Diagnostics; +using OpenTK; +using System.Collections.Generic; + +namespace go +{ + public class XCursorFile + { + const uint XC_TYPE_IMG = 0xfffd0002; + + class toc + { + public uint type; + public uint subtype; + public uint pos; + + public toc(BinaryReader sr) + { + type = sr.ReadUInt32(); + subtype = sr.ReadUInt32(); + pos = sr.ReadUInt32(); + } + } + + public List Cursors = new List(); + + static XCursorFile loadFromRessource (string resId) + { + Stream stream = null; + + //first, search for ressource in main executable assembly + stream = System.Reflection.Assembly.GetEntryAssembly().GetManifestResourceStream(resId); + if (stream == null)//try to find ressource in golib assembly + stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resId); + if (stream == null) { + Debug.WriteLine ("Ressource not found: " + resId); + return null; + } + + using (MemoryStream ms = new MemoryStream ()) { + stream.CopyTo (ms); + ms.Seek (0, SeekOrigin.Begin); + return loadFromStream (ms); + } + } + static XCursorFile loadFromFile (string path) + { + using (Stream s = new FileStream (path, + FileMode.Open, FileAccess.Read)) { + return loadFromStream (s); + } + } + static XCursorFile loadFromStream(Stream s) + { + List tocList = new List (); + XCursorFile tmp = new XCursorFile (); + + using (BinaryReader sr = new BinaryReader (s)) { + byte[] data; + //magic: CARD32 ’Xcur’ (0x58, 0x63, 0x75, 0x72) + if (new string (sr.ReadChars (4)) != "Xcur") { + Debug.WriteLine ("XCursor Load error: Wrong magic"); + return null; + } + //header: CARD32 bytes in this header + uint headerLength = sr.ReadUInt32 (); + //version: CARD32 file version number + uint version = sr.ReadUInt32 (); + //ntoc: CARD32 number of toc entries + uint nbToc = sr.ReadUInt32 (); + //toc: LISTofTOC table of contents + for (uint i = 0; i < nbToc; i++) { + tocList.Add (new toc (sr)); + } + + foreach (toc t in tocList) { + if (t.type != XC_TYPE_IMG) + continue; + + sr.BaseStream.Seek (t.pos, SeekOrigin.Begin); + tmp.Cursors.Add(imageLoad (sr)); + } + } + return tmp; + } + + public static XCursorFile Load(string path) + { + if (path.StartsWith ("#")) + return loadFromRessource (path.Substring(1)); + else + return loadFromFile (path); + } + + static XCursor imageLoad(BinaryReader sr) + { + XCursor tmp = new XCursor(); + // header: 36 Image headers are 36 bytes + uint header = sr.ReadUInt32(); + // type: 0xfffd0002 Image type is 0xfffd0002 + uint type = sr.ReadUInt32(); + // subtype: CARD32 Image subtype is the nominal size + uint subtype = sr.ReadUInt32(); + // version: 1 + uint version = sr.ReadUInt32(); + // width: CARD32 Must be less than or equal to 0x7fff + tmp.Width = sr.ReadUInt32(); + // height: CARD32 Must be less than or equal to 0x7fff + tmp.Height = sr.ReadUInt32(); + // xhot: CARD32 Must be less than or equal to width + tmp.Xhot = sr.ReadUInt32(); + // yhot: CARD32 Must be less than or equal to height + tmp.Yhot = sr.ReadUInt32(); + // delay: CARD32 Delay between animation frames in milliseconds + tmp.Delay = sr.ReadUInt32(); + // pixels: LISTofCARD32 Packed ARGB format pixels + tmp.data = sr.ReadBytes((int)(tmp.Width * tmp.Height * 4)); + return tmp; + } + } + public class XCursor + { + public static XCursor Default; + public static XCursor Cross; + public static XCursor Arrow; + public static XCursor SW; + public static XCursor SE; + public static XCursor NW; + public static XCursor NE; + public static XCursor N; + public static XCursor S; + + + + public uint Width; + public uint Height; + public uint Xhot; + public uint Yhot; + public uint Delay; + public byte[] data; + + public XCursor () + { + } + public static implicit operator MouseCursor(XCursor xc) + { + return new MouseCursor((int)xc.Xhot, (int)xc.Yhot, (int)xc.Width, (int)xc.Height,xc.data); + } + } +} + -- 2.47.3