From b361039f88baa2e8de79fa9f3e970567c2ee43cd Mon Sep 17 00:00:00 2001 From: Vulpovile Date: Tue, 16 Mar 2021 02:10:57 -0700 Subject: [PATCH] Deleted DataModelV1.1, made BaseGuiInstance, fixed delete ear rape --- Blocks3D.vcproj | 278 +-- Dialogs.aps | Bin 96968 -> 0 bytes Dialogs.rc | 142 +- resource.h | 2064 +++++++++++++++++ src/include/DataModel/BaseButtonInstance.h | 26 - src/include/DataModel/DataModelInstance.h | 57 - src/include/DataModel/GroupInstance.h | 16 - src/include/DataModel/GuiRootInstance.h | 24 - src/include/DataModel/ImageButtonInstance.h | 27 - src/include/DataModel/Instance.h | 37 - src/include/DataModel/LevelInstance.h | 16 - src/include/DataModel/PVInstance.h | 34 - src/include/DataModel/PartInstance.h | 85 - src/include/DataModel/TextButtonInstance.h | 35 - .../DataModel/ToggleImageButtonInstance.h | 29 - src/include/DataModel/WorkspaceInstance.h | 12 - src/include/DataModelV2/BaseGuiInstance.h | 49 + src/source/Application.cpp | 5 +- src/source/DataModel/BaseButtonInstance.cpp | 62 - src/source/DataModel/DataModelInstance.cpp | 613 ----- src/source/DataModel/GroupInstance.cpp | 77 - src/source/DataModel/GuiRootInstance.cpp | 538 ----- src/source/DataModel/ImageButtonInstance.cpp | 133 -- src/source/DataModel/Instance.cpp | 169 -- src/source/DataModel/LevelInstance.cpp | 73 - src/source/DataModel/PVInstance.cpp | 108 - src/source/DataModel/PartInstance.cpp | 1124 --------- src/source/DataModel/TextButtonInstance.cpp | 117 - .../DataModel/ToggleImageButtonInstance.cpp | 139 -- src/source/DataModel/WorkspaceInstance.cpp | 14 - src/source/DataModelV2/BaseGuiInstance.cpp | 1 + src/source/Globals.cpp | 6 +- src/source/PropertyWindow.cpp | 2 +- 33 files changed, 2379 insertions(+), 3733 deletions(-) delete mode 100644 Dialogs.aps create mode 100644 resource.h delete mode 100644 src/include/DataModel/BaseButtonInstance.h delete mode 100644 src/include/DataModel/DataModelInstance.h delete mode 100644 src/include/DataModel/GroupInstance.h delete mode 100644 src/include/DataModel/GuiRootInstance.h delete mode 100644 src/include/DataModel/ImageButtonInstance.h delete mode 100644 src/include/DataModel/Instance.h delete mode 100644 src/include/DataModel/LevelInstance.h delete mode 100644 src/include/DataModel/PVInstance.h delete mode 100644 src/include/DataModel/PartInstance.h delete mode 100644 src/include/DataModel/TextButtonInstance.h delete mode 100644 src/include/DataModel/ToggleImageButtonInstance.h delete mode 100644 src/include/DataModel/WorkspaceInstance.h create mode 100644 src/include/DataModelV2/BaseGuiInstance.h delete mode 100644 src/source/DataModel/BaseButtonInstance.cpp delete mode 100644 src/source/DataModel/DataModelInstance.cpp delete mode 100644 src/source/DataModel/GroupInstance.cpp delete mode 100644 src/source/DataModel/GuiRootInstance.cpp delete mode 100644 src/source/DataModel/ImageButtonInstance.cpp delete mode 100644 src/source/DataModel/Instance.cpp delete mode 100644 src/source/DataModel/LevelInstance.cpp delete mode 100644 src/source/DataModel/PVInstance.cpp delete mode 100644 src/source/DataModel/PartInstance.cpp delete mode 100644 src/source/DataModel/TextButtonInstance.cpp delete mode 100644 src/source/DataModel/ToggleImageButtonInstance.cpp delete mode 100644 src/source/DataModel/WorkspaceInstance.cpp create mode 100644 src/source/DataModelV2/BaseGuiInstance.cpp diff --git a/Blocks3D.vcproj b/Blocks3D.vcproj index 01d89c1..2b1e136 100644 --- a/Blocks3D.vcproj +++ b/Blocks3D.vcproj @@ -359,28 +359,6 @@ - - - - - - - - @@ -425,50 +403,6 @@ /> - - - - - - - - - - - - - - - - @@ -557,50 +491,6 @@ /> - - - - - - - - - - - - - - - - @@ -623,6 +513,124 @@ /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - @@ -812,14 +816,6 @@ RelativePath=".\src\include\DataModelV2\GroupInstance.h" > - - - - @@ -836,18 +832,38 @@ RelativePath=".\src\include\DataModelV2\PVInstance.h" > - - - - + + + + + + + + + + + + + + ah!I^~>mN8>k5^%sBUejbC+!|=Q4R$UeUrsdavK@HTuJ~g?_8>em|UD@l9QK*F-SdrYr&mzR@H-N+TBFS>i=BXoxSZabt0{hl#>u(sUr$%`QV zk#nB=3(q`f_qi7y5ay>=Tb-3g-xV$@Oe5BP-PD5}=qTX+4MaH1O|2tFxwPJD_&5&; z7%27b>VSkwvEYu137w(FFW|G9=LKkmUNUVq~F*)V#(cSB4VdI7$RM*wcP7QU(bD@%;GP% zI<4i=G6{|T3aZdEnu}U=_e0cV$Nx{%8Fzm-HCSC=Y}HYRtR(~ni`~^ux4)dUQLaB1 zCQyb_(?&u8VcLgo8a*>;G0>qWwLqfDpH>nL&{n}E$OI=5%v6^rgs z0)tTo9_^-B8|+%>K&X@gsHl;3jG2ys7)=IpY#CTWMQF_CsNEi**EBjPbU8|%D|Q8h z)%6~_N@rMWcL%M`0)R{B^v2eP16+_La6BeLZIbF zXT)&HohIR4G8%B?7t8JmnkMPBhUm3`D(;B_EhXq32v55wNq8~oEHp+EW!miwkVke2 zvVGLqE~#eSh5*f0N3)%CyL}psG4J*WfbVQ?@k8@&uK9oibGFHf-HCIjhe8|Pc+@xf)08~jbA7g+_?hu`mHYOxm0xL z2|#hqaLGMI!i`Ry!Lr*g!Nu;fq_4OG5^gu74NBAQd8ATz0Xn1QUQ)++zi6i5ULHa0{xe1QiU?xwpDDRlMo^hh*}W=)DugQT)e$sJ zXxhCdf@TQKxJx2vme8zwZ3N8`nscv`?)3sKL&UXu?KNVFdxKy}oy|Q{b(czT z(15T>ARh_V+#3}fRfl~DV`6ppCc)6zT9p2P8t%;swN_+`xM-&7-Xcho)iPUfmuZMK zGFx5q=yq#CUNh!ps-VQS6NW_sk!%9P#CJa_gYXmYPi3%ps>_*S6h%g%@y4H zEJ&v2itZWCrd%p%T6cH@D4_J^~%~jk7El95BrrkjclB>BH_aO_CtGQYC_Yy>J zYYrIB(-6o)9#(gt~W2(nmjH4i# zb>GU7`i&-53yUPpxo_u4SVK@UB=hb&c^uPNO;RN8yE#fTS?Ts$!^VKgs_uI^qKVn0 z=DsiZO1C{)#`;hNVN!QLjA4_iNyGgphD8=9P4{B~v3_nPx?1Px<>Xr}xSvF{Uca%j z9%w~(V??v^RZH%s2<^3#H7rMTPOX;RPleV_MxELsR&gyhSGD4PmV#td1=Xgsy@m*AsBLyTU~kQkLB*f(*EO5@g!-1qnMYL1)|$ zXtIu#Eq7vw>vjlW!J=D}V6EM%Eg4pFr%F!fMa?c6Rr8;9rwO{$YPTbJ&OJfkMklGZ zjg`bb(Pz+a)cXmW3p`idx`&6lVg*=pPZDsUG0eca+ZluHMrUEj{(|@ow@XO9MAw{v znr=fN?yi&rtQvL;bjqmFU&C^EfGs_C?2-jG8hbM$w^|C9-RT04N1t(LSo9W071SUl zcb3NNCxb?HX+f6Tz$@;_f)CaPwQd{RPrsH2ZQAWq8upmBla##X+}VNy!+&v##GRul zP&3#J8VMaJ7xg@eQ*W%~HV^n<)txUS-ya~PmHV2zKnP9D&hhu^?x}(gTg%xl1Q|8l zg@Wr=lAqChn(iXO(M@Wj{y^57g#wmF7Yn@Hg*fmZmlW8qJWX?2Y_;ooQpr7CNNBK8 zW3bkN076Y;3-b(t(K{gjsblCgDG)%axW5#VbOi3t6`pZ_B`}djzI{rw?pZ?PeyQGG zs10=-VrTPg!3Vu=x83MdO=GYgj;aw8dx`i+cGbI;T0vX9B| zx_iFhE0F5LZiYA93j{|y^kcl~UMRQ>LDgdw$_4i#0Z|!jJ7J|(&onsJoYE@gZBFu3)=V zitbe&U+#2=t)|Mb3N}cBYv=EE2h#UKvKjZ9O~{yaB-2@UiBNmpRn-(0D%d1VP4!m$ z>)j>jQ{Je5H@SW}=Gfvk_a+4fqX7nZy^p0cHGM_*<}rMLH5#-pZ&A30)m^KWv@wMe zFT2aEEWNdQGUUP-B~0Ag6cyddb}Xe;Z2(f$T`r`!;0S3k?&0x-IYQd)^v@F_$BvlfowGar0lK|1cT1xj#k}t#l1%e$`V$}%ZYZK>1p@g zsi{u0zn*jkEmY0b8X7?iagdkX`v|N{UqMw|BOzhCzXpBY`z2eh=P{gY#a<}PR^11M zFc_{uPe2Li+jzF-4vvwmeP`?LLqe&y2Ap)YhNSef4fpp#Laz^Hg6vh zuv3dBRP5nCW@tR6VlVe`A315)!ZeCa-9H+>*usp2KEnpW=I);i&L$pg@&4JsoG`;) z?_UH5%M>$SVq(+xuYyy)McK@`Pg*u2Gs7g0t<|TDV9Gw*G!zP0W_&tNl8plh*aGGW z^=iA;7PVa=!7k84LJmSx3#H^P0c)9!m7&9azr-}hiX?^*W)At2*+;tMe6 zZW0i4^*ZLO{*YoD%4MEQD5G_EbBF;6I6-f?Uj+IDvFUyph`H}J-LI6;X$`SAZFfcL z7qQ^_jo`?MhepBz7FxFmDC?mJFS*|e&XtB%D|EZJ3bYusAB7^;Q@07Y5`)w3b^)EaIK;+>h; z*s=Vfb=?w3oKmIiSh*Y?P{@I7<}706vQzcc1hCNJDdD5J_yO2bP=Mv4kdmJ_eWSyJEqWcpK=x(Lt?xjI8h*s8foqG$` zlv5@Rc#<+y|XP(mcuzsI_DmB*wk`o9SyhWXSO1C z_K%hnBBg^c!NICKHp9L2CVZU0W3syhp>ljo(0){+svw3lAy&d}uPCH3sa+~mTq!2_ ztfpN#hU2VeTt!G@^14)*b<;7yXEo<$VmQuf-pwkBEB)2QhMqH(3W=K+d`yCuumLrU83C;Jn} zd{4uG6;_Qh?=J8ZNV(7i*hyU^xU?qMeqq#NKXtK^(3*Kl$vsUdb(mE&!LaB>N|0Jl z_unvGbM~Ezdxp?tmc}+&*UG{*)}_x1w5X?HVfyTVGl4453ni>fpA!+nY|m3@&9UO1 z8zN*AT?xz7=LOtPbR{fOpC8a@FH)MDb1w>nXfad50mX}Bf(>7sQoKZ95sQn^P|1{D z!V>l68IGf2Rb7>^2z`a%o!WScf_rsLiPDtZYlMPRMV7S;;rbQ@RA~sL=q?kahk+o? zU&e5Lt48t%(`87~w+S@DslVn_ahD5%^Z9zCpY4yzg=zQph>}q4#m$qndl`q~?+~gD z87RX@wG7Litl$b6rEHE1l#P^w*{@$E3VP{zvbgBb+YFkGe0AmR=R0XnT{jZ}t! z`-tX?B`CJW^)N}7r{~-!awI>QlyNZpNzJUeBa1(Sy_ZKrRBSsxEufl+WU;aJ{9Hr` z3Feya^O}n&-{vsIxGxI8Z92;WvnqEjk-@3!axPzVU$>wh#FyMREX>oYvioKhlK2(( ztqjp5)9%{_Rl6_|S%!7ZcXEIvoOR#Lftq&CeebZTMJ#>$(B~a?i#Zr(I0g4J2CapP?&lK1RL0Fn$=%E#_5dOm%kCEpF5pCuYrBg3rBJ!T z%+OyEljzg#fB3iG7RFM21dhO7*w@5X8Av0NHj*6+V8q$ zYOp-)uA9jhx*|L0k%m_7P#Rd#{jq^b6?SW_=HkdyeUPtz5^~{Qt~&x5b6FN+&fR+p zjMUb{`l09^m;*3SVReU2@@E1^mQ!VS)EH!OEAG#?OmPvgK7jQC=05jO3s+k-t$G-E zLY?s#j7DM*Iqq14yfqjt`Hu5gFl8&b<1>u5U>I(N3=!kGiYqE&^_KtAjMB(ltLB83 zeR5Wbk=2++2;ZO628M64>T+`Bn zaj0l(I<-&E_H!j$F0(#p6^w)|zMWATygc7*EfRXVVD`+5KZd-ur z8O5mX3{W*ITc#kA*24maMUVIt+B?fyzAe*PgvS!law3B}KAq+p=nr|q6Cl;I+dRI^X%x7zMG zLd5*1>u38?+dWqkB~>%qKu+?dwtJpXe4Cg?B&2(RQca2ks-=CQ=8Ek~-Q|19-w4G- z6-YjR_hKPXzA!UTqJq36%gzolbD0|UQi+xINP~~b#icA5taHPQRe}brE;W#SRl}Y? zFl9hiJY;#}Lk-4oRqG;Aw{UPM=VhmR1iz@)DsN(m9( z=_4#-Q*XmrQlr1M-Mc(>h?7k#qE9^s`jwupv_@U`)XV@KsO{eE=_$bbblfu-be7D{EJ*7XyNnBF*2T0oI+wKFN-X8Yzbmq`@ z9}IL@y5`h=$`+y=^ihPb@i>~zhkP8HN^Jcr^=HHD!#)bNvCy`J`V;Zdb|3L{Nancu zMeelSKX~${V+CC=YZmRffU=g@=05Jz+aAn5!GX4U;;b8l{H$AUbN}cw!vP#t^&-bj zq`6OcTBqCUV9npcLFO8kd(xSuE>NeR^^uf@#uKuav7htgXpx7y6q(6Z`|_5l+Q6?3 zbdaU-iz<{s%oWVKZwgvn8#ZLU6=rutQ zS+aKAcZ7fyv=y8E&wUSIb6t#Litc9;02|9m53A*$OK=(5E{cp^3x>UAce8+lHJtWU z+%F_hZ#8k*;+OI_*5*xY1%D+0SSCr%v+jQ^VimV5el36dUH-iLjfSBa;o&zHOt%Qo zXHM8Z{Z>M&)a+mfb*qHz^jO(0yW0e8bf898ULACuw+pyPMViA_>W~DnMomZ z_|3MP5kl01gcVHfvqI3$7_8i^>gR;!7v9P|C-f5pr)~o$QB}-ddNj`noX$_o$T=D( z^OJ-&>R^_Kbx!C3WbtuA8Y8f4oGgTF*TC;kP_S(|~H1x8BkW69B#e&Q=x2F;36vp$ZrSzy)D^7>4+_mIAY^6!YK zzV?tjSDR~$Ggu!V4du2wO(|hGMA4q0B;Vzcr~mVbO0iA>g8j9wxF3!n_&=Ydlx%2$ zmIZctYL;W@i@TKO`x(;tKQ|7a8r0Ugn?PMQ(HGoVg4l^m6TQ(rSrHsI%Vj{u!|c6J zQCsCpY8>30Ehvwd!ra|m-%qlgOx%nr$#Jg9uCfJ3P2dBV+t6;ZGY z1;t7f_X)Y=5F7=&Nbq39*DRt?7YpXAm>Hm0PZw|*sweb6Zz$I+qHNC)3RkhHHd~@M zizweSg^=}OmJjB%eA3oKs($1OIx8>3-EY4o6&WX`fqE;A~Y^pFn_|`d1KIkp9VX4@-NNx8y#hm?dYmeOeJ{L$!`7?lX#1amFvHrrl>1 z!Qq1DGvhv|2&6rX(8${~_6q-QVA7ZS)BLz(@*j%pu@+JJ{1+6ZO*s#Cd0Iu9eB_IV zPtmCY%7mK{N>l#7s)UIDYZW2?k_Y2e+}9Ls?7&XXGACi$U1vGtn7ZE@ED7f`?s`S@ z#re8{Rva=E=XaxhLJsRl6sB%cG%l5t#DDLnq>It?|L`wUHkaJ58Im&|>?ME0K)*2* zOW#`@<}ex?;|kpC1nc; zE`i(bzJZdhB6NRtKcRHGJgd<=N4h<`zu?%4qdK6z7j24crXC;!ELiK^j@sabxfi zK4J!z-6LbLqt{7rRqz;v{k2tG^qF?s1Y-l3B^H|u7X%*_#f3S$+*1Q#);(GX;1;S@ ze`laN=N_Z+^DyqU`PlqItvj;Y5LMi66AEECc4&yrVF8y5kN5d-h^Vnq0oMx)KA#xI z>7a*kl({TE4hpznSPEH37m{j4R~EeAfaN+|ho}`?p;mGgpG)Y6wThdzOqOX~F4y*P zaxv{@1jbnOhAD;GjGGlOLuTEaAkF2W)T}gCZO+YGo*mqE?Jh$>pywX7d3S;@*%LURWb4bTj#3ER$A7%fcN1#SC7wFLZ@uKIKI7%2kJ|=X$T}Qe_(VAzUN3z7 zHZ~mE3>Ya{py|_P5W8=E+ARnL3Xohy*Js?K5Lk(%Ac7Wa*0ub%pxvXA*e({;=iIXY z${1zdb+%4b2kX7jU@`O6K`Drzwp$S**8ZE(Arn`HE{mpc7{rtijXQ)y*)>VVE^|%D zviTkVF68H_LM;cgW9Er_CvEo^A=h!@40f(Ul+&&pH?wW`1R>E7X8dcA%1;cLZpzPm z+pS9ssRT7GR)%mv{z*c~cJ(@ifLv|6okAO~^%}SwpQ&C7&9>VmBpybDfypc>^fxq> zAFukQw%a4Htke8AI1%g>cuZeJWz6Z}3(`A~jcDo45ICB}L}}1=X9^xqdAN4PE^w9* z{6RmmkxAppf=1{0Ajq__PY5gdjBr}oc4rHPb=Yn#*_3GNp>u>ZHjSEs=v<*?MvKY; z@;grmO}Iz00^<9CpCYgn(3%?EJ5=<3P&+)K>}^6?#oaF)f!T6Ml0lYTo@F_96bxzh_K@co4Z`dl zS*Bw|$gy_{kzz1hxs(q=kX<390UU-|Lkj^?>|H`&-N6J8lj&+7r$Sx?6>2!wl?a=N zz&g%sg*GOh3Rt$hM+oDm9`a3y$M-6g9k;&N?VlRH$HnsBMMS@nm4rpiNLNS1eEEx* zl-?)Q35i_9C$A9_mJx04j=5(rV`#~mqV|Il1E=pWy>97Zk2DI~4;d*^RI9lCun@F| zWrF~zM9KRR{U)`z)YJM>iiG_Kr5QiDv?6FfD)hmqvt)P5y{`RZLf}o8d?9q9{&A&Z zG_}P}#ve_8e{iA1w>;v>flhD2Se;DmU|NyfU~;|Xz;fCFCj%0 zFKzkXiiZ89G~ibwP_(|vB{I1-WRj^+we`Lx6ih6%52tx7DpV$h&Jbtp2zXw%x$C!1 zwK4O>6DO+s2a4hXz4bQK_78nbGon*D+IBxu+`K@A%|-z=@M9%~F)yE$`e7yfWQ@9! z^jpDU16%S&jj)LQuAIhb)v`TrQVJwgZWF;a{i%{@6fi{NCGEwAc@NW}_A{jmySNB8 zTK48$ZTE8}aWe}=x>(N31!;0D4Ro_cKy}kFA08Z}CrUH@LP<91!>^*>dg^ZYmrCxS z_sW%RZKq#(RCCh7^=k!1-Ky(T9aXm|j)@mX-`M>hleHTfl>s)F+EADtKm%%Kw9VbR zb*jc#k?clOr;766+usqDIm{g)u|00b0vN!U$flHbC+&LJ7>M1#~2CnAj%ADr)?QQSPJ=p_Ne$nJBHD@ zI7HW@jR-Yt4fD8P>|k;97^6T$usU!dyX}q*S!Gv>S;FHC$DtGNtcE1``te2*L1YBn z!-PaJ0?Go-t8LqH-x4lS!&jto?W7Miu+x=|1UE+B#I&%>RSd-?;jFqg+;sK@DfGJ6 z4HR~}8KZf}4wOA^E(X_w*9mA&=W`VC9SZx&HawQ7m@m2$j-cWd6O6J@nycVA;js!X zx8MS&vk-am%09-> zUt!JBV=h5ny%vii&Xp+k0~DsYy}y+WdE@@n;8q(ee191j)qWIQ0z;q9JDN5)slc!4o-bxzC`OMSp;T zL`D(%dO_pWatW$?1K|uA#}wR9va5NtsW&ijYJGx2FkQoXjPp3^_(aA0={l1bX zCVkF)r(#85p9Z&&_k_5HSuIr(hPjF-ynw8&N>KPE>lsD2qjVmMDd(9(wG9+idkU;G!X;JOGYpj| z9V1d8qZ&scv!HH9Rjw!+*B5)_4uxUpfMZVGle0tqg~D7`wBYkpJiKxt<<{NQ2*V@W zA{OcGmJozqbyTmf1xH#Xy1gYuCb*~yDs+Dv2tIf2;`bVko-28wUvSgoPB)xK{Sdg? ze5iyo6c25M(x0gisuI2`2N+Nq88vX0kDN&X*1$eD)kAY&dtwbzq~BXYex#6#irWvL z-moYQodAP|GXEllJ6)Qfn1eNvFoj&Kq+BNf1=GRPd?FkSt1SzY;0F`p(>+a%N~6^Q zBVc}ehDJ#0+);*AH;G(%Khr0#i}O_#<|J~B2B)_yL)P7abLIUk#ic2Z@iDLjwE}N* z&(;Xqh~qJ|fZN=2{HIwJJKT6QtDQ(3Z+n7!$QShL}%B0 zrBb-lmsFA&hbR06lMh|R>$U{(3-l07Jlex>?Ms)ygjqY{N69wsdpAIPz0#zcWqq5@ zf0;yJKSC);-x%S3|IcjRr1<2%fi_=iSD75WBdf_zO<;#{EwZwnXC`e^TWDV0~|^8EzO zeWlXIE)}4quTlaeP&E5CWT8ac%I(T zgFF*y1kyE1;=#Pl$!wqZE6Q~WWM#-qdI$UqGqdsD0YAeEcQ6THac+BVSrx$Pu+p;K zp0vz|fkTk!R=L~5Dm2)T7TrH7F_wEJ_s(_HtClXmx}PVo1ErA`m&N_PG5x;gRBoYfc}rANfs910n;l**xvtXN$6R# zYxkB-86a)`6{Sy%OOXrzrNpS8N~8aGlqdTH=MZW2uezxOtsbk>i}booaNEhZ=}DRJL@3(mo6;_T$KngrT|*)XCCm- z8aFGo-R&%l6LE)PEGesT)L)BpsJUNhBpR^9gn9RCCBT9RnjU?PvehseuChD$^;6lZ z^;~pQQv$IqadTOEcL^S^1mvu!28n`K+!n=kT=|wdTtT^!jlqFpZdC+|Ln=n0ShT}_ z6!eIxus__rdyj1mv2(`04m&4v(^hU2_%4gV>WT^*lw;y}+qfq*AUli7MR_#5LEa}s zO6o9K7|Z0*aC30q5M$KYG){RNA6&6d(HD3ABb9A@W5vj_YtPfCw{b^mbnkB^A7y46 zcc&Jm*TsQso<6(HJuuMy6ASq$bKBgXg(z~VWP*N_3ssL-cFsB9DxZ!i;c0vXsUV70 z*^~;1*LkQc789GuKrcf@w%LX=@x8umv6%d`wT zHjj4}FwmIiG|q?(9JOJlt8p=4rVWO%UxJb#E}X^8cyN)HOd?Y%+%ij1G3GE@w5U6A zd&*FpRLL{|N7M$@Q6u8-8ct(Q@EDviFOnnJ(VpnB5l+_t!6xz~gW&lX!%y;?caQZT zOnH3GO}ob#+Dsb#t}+R$;gbW}hjUNV(mc1|!Z-9*o}XPV@gVMAE8iR3l1oI^SxpNF z>)4t{8(mo0NU`BWtsYRAP)e=M@>Lm44_kIQxtViK4~@3-aSCaQS#I(r;$j2lK;k8O zH=mzT4B9nDgHd$LL-0HiT5ONoZZPg$A_cC$B6eXfH3X6Y(qkI%ouNoIf#Ov9YO598 zvVq$ZtkksfV3OD|6wkdt7|`u&WfzqNl71-}EH1aCJHjHl7tmAXDo=SY)dd={+d&2_ z11ygF0mONxjE)l31sZX!zp%ywRjh7?hG8AGqFll!*2se`7^L~(1)o?ehA+eL428A$ zd-?p1WDNfp;=#PUhiZci0!&ZFl?}HR;7+SIl0v~%&Zz-KTS+gi?4gE1bHH5LwHkzt z?`Z~i@a%{TF<5Rt!DD!r0qQO-ue{YGIp7Tid1L~{#L!L%)I*Na&0!$>q=5B@qXk&i za@@gEdZ)+vZckOZ(2UzwVVkYK}PS)OQs+4VUAf&)-ySK$Le8mrMp%@Nz_&hr?& zJ^?B2p|(V0jrvRW(Y@4`2sm2m!&29}Qi)FnDcr9!Kg`|dd*sxrjBY4}FED7O)fm$4 zl(blBCm#?Rzz}C*YI#9PC^8OO!{0k?2 z?xIp;jM{Es))uX9VS{RsG4j$#?ld6l-BgQ=QAc>h1f)IGi;R(~$s&6b$$P0B86%&9 zxt2W_i^W$(L{9eWd}B`%!ro|{Rzpc)(jWpKCPx_=9uO$SxwnA|1_u4Qm?`qvCI4+7 zN6uzj&6epNF(8@~4jg!sdqYO8+f0u> zf9V*y4rP;xO!V3}W>i}Wtg8iSkqR9Du|Sg9w#3Jr#z}baMN0wI&N!{69izfWp2le% zG4z?HW@nt#Xlc1|LuitSws%z(tfyZ-8EHFiMi_mLDx&c(z(TxL#RVJd^6!|8 zfyy#<>`tnT#xtNP11>d)3T78oN8=GrZ7o-mDlW>Pg*K=?8jsMUtnT&Ltr%xFwMae= zUKX-7Q;{!H<>7ogUNu2RrK68((aL=To+te(EUd9KhB*h0 zzjSC%^T{k9iEsK@_C>y(HHOE`eJG>))fg_!qc&MzCHD^z8DmpfF1n9qFfLGM3n>i3 zk7XoTGvRh4R!%0Qi+q^NbED*He}oGL(0*`%fvEB>M2XLJ`FOe>2xm%5 z$dPOpsc@T&&{@N^8?{sx^_!1DwR>0`q0Il9CC*6e)qZj+`me8nPh^p3b`3levnBV* zNop);%hcrg&%+s@U)dDhrzUV*$=-p1E#tOCE#FwWb(n`W^l8X4^?c*xg%LD0tZE$q zpPh_R<7=uorc>!MO|9T~CSVcrg*nVnJ2+0RcX_iFOyWqkhgFJBC%8j485L{0#;GIh zGML$%`;W;ObaTCI>yUY>7{|YcgIk#fc2dnaPQi?Rg!x1xv z!HThn9n^nM#=&G-AK^t7W>Vs#apPRFF@z7sDDx4y@fbZk=L4UGXmu{Gc*!n`v+7sS z7)sYo;7}`dun?7*Kop%m?-3TZcn=K=VHkTMSERlnOD)t$w0u1xas8W(pCVPFAyc8n zqo>3t>v&)iuWI>HoM3+YxxNE$`H=~#IP(<$ECgm@L)FGx4b{NXeA~mX#dckxP;|oCd+wllN02SS>E@;Gd z@54*n@;>y&`TLq@?muuotCb4<`@1PX?VX0~-Ai@ec?Ztm3u+SK&m~yWV9`BDf@KZL z)5(Zj(V)DUjG(kx1rz*3Br>0zLsrv#DH&8gIEUa2-%3VsPJ^>FNkMR4gLAY*K@h`I zV$ak5gkj@rC(TY6HpX`Gab$*#vkmI=7&g{+)2xJH<82QWdk8P?*>|2({8)`(-0r15 zZ{rNK0lyD6$`aJifs2X+^=n{aT7vp9@Gv7m{T5h&W(`?s&fs89f?5yQ|IbTM>j8It zPmrM21GfB7qLB@)2kiDw(y;NhlgcyFjj>%+n=x#hZBSvxu(7tA+A@ZXw>?ypF>K83 zrIKv_&fS_lcEt-4)ZF1-by0$vIsB!!B&d1AP5O2TYSwU&z9d1-84p0TC8))Q@@H9s zT5RZiIug`k!}WPrf>vxO`Fa{QzIIX>MK+DGUDQJ{Y@BUS2gR_lwwwAVhK;v9R6Q|l z%Gb{QY4-410i_Uvnmc@_pC&=g94|dQL4uk$9Hl?eP3_%(wxz95_k*CN6}1n7 zmR7Vq2wK`%>Us8WoNsAG!GoZs71a)cmUbs~ItW_YUDW2BxpA(g-Jl`|K})-vIvfNo z?H=lG5VW*=skJ$9{)VQ7dhT2aYFemo&Xb^~g|XaIB&cbj7TGUBtx70o4oFaI5_;(K zC8*7etM?a3P@5S(E1oJrZD#1nE|j1(Gju-}Y1sJMNy`P?7&g{+ z(s56@9SbA$L82b2PMjOsZWR{r1- zu%8UzDj~hg?{tZ5>)2lyy7(yRNmp_ z;t~le>u`nvy#lgQ&Y|poodlI}IM;Z+1eI@i-*|%rm2JEOeW?Vk+3^VU8#SzK&+McQ zfNUCLySVXZ*f`su9S6h4+HP*}88+Vba97W;F}If+`Hi!8Y4&g&bA<#ocf9)iE(vPp zc=q{932NT6W$u8HRZh?~$Mu8&5yKSAtq>y#4%l64YYj@n>vU$%eKT zUVna{hK;YC+?I{u=EjO)<82S0fM(d3+si%EfsOr|J=_{$ zV}hXOj#nMNBtgv_FH3(}f|@s;lg2Isku~f23O5x9YR-5&`YRIDV$aWT#{jApdw!Oi z1FWU=yLja6dN)O*Z@$C{B_%up;yCd}ocr^s^D)A#y9wvod?5f%SuOG$7plEJ{N)W{ z5D?&bE>UTs9UzGBpTlNW@9Ae~k&9NIP-jqyNB?@7uOI|PaT*f+mt$~&aD|IkCsCrJ5QaP;0-&6f(&{5 zA(?N_ePN}fxj{tV;leT(2ft6$nNnhe1~G@WB|c?8F+{ z=!x85u0RBW&RB9UoP^_) zVD2!uFCluoqPXDz2S`%zX(betuwKno7gCgrfF!U@8u-sM6)L-I)ZTJTKrL4S!Slrw zFrS^y=ND5^|1(NO@y+3F_#it6K8TF~t1gP*b6^DIfUN-|NKLJ0Y_Yn)7Iq3oEtf#` zX>pgHyq&02yc1=m^>o%A@;(W4I4Rt$-A+~#OnkEb1a=>9tZZNh!Hnwtl`J;C zUsX6f>59nm-J0SnJ49z8DBUg86;?|fs8rQGiI8y(xgpfjrra(X4GdtI@XB64V+3rs zB06lg!)rGBY1HHPC;|`lM*d#8#6VG&q6j$7%xuUQ0ae+K=>C4C=FXBWN7N23lzodhZd8qz7D0>cw4N-^cC2b+VjftEi}cB zm=2lRps8@iFWO>_F`95BI~c$#Nds@;__~m78ffeA@dXJE3u8@)hs-36NMLwpQhOJS zAnw!{pN?Q)dT7sXP=Ho=Sib^y!0VVTVcx0L?z7u48cY*leT}Ds8gRs>M7e5!gz#^? zEU#&0yrU;#!$umeEa6IuTBT?uqvWS6ZP3T;7mW<`t}~PZ_d%FG{2L`qhlW2Zqwzh~ zUN(DBct1I#=IW7Rd!N!)c|9NgYOJnUb`Z}|BI`D)Fn$umbCrmLux=CjaxZ&j%7d>A zrPA^HV6f7HmAN<%vv~=U3w|>+3fm9oj1zGnpW57GvZ|oQhW%u8^I3QR{Xk65c><>B z#6u7<9p_p8WdxmT@E}A?*YtD^r)*L};$aAlBIR6$OJVp7Q}UdUFN|}bParg%MzE>> z;_(P|-y?0h!)BIc+@$;A17P48aRzNXhSxsT%W$%Q7}(xswZs@T7!5$i2p_@*B4N+# zFRi&L`P<3=zneP!ISKzf48Myou&LtTH2tg)3hu5)${&K=6Zl>rXTl2QT=WoHyy@Re zaTtD22ek)tmi?&x1EB7Lb;o%~`+WT7^Z%S=8|TlPo|wnmBfN}<@|<)AR{Pb8K7(I^nd@fj#>VoR*xkd;gxZcAmCSuJiZU<^|`RRzGv+zH^}z-M@jk ze5NKgCZJj?C&}12gYw&>$UvLS{eye;Sl%=fDhSKf-6B{HH-{1}{zF z-(z7Wb^&6XCNU16_AbC*8;E@z2DgI+8uRM`I~QVLKXN!5Yr-aKcOT*$z~9F}F@hH> zq2xRb(+O*xahcOz)b-KOUY&{11xUFMp#iW9z|WbWAB}XUfnJj@>_d$6k>*^aKO6Dt znA%Q5ymOG_K1s6&tEvkH*^O8iBG=z%9$DiDP?n9~Yc4MUkL)SO;rI8ky*ZxG#(x{= z8~f1@eqZ_AjXupW^ZQwgI%>{A9sa&@NDI8vf6qtsQ*EShobacI-~8Nh>=bdzR;?)@3 zg4yi43#gl2FabPiqzTX;XXow(5FbCs_Sob(wx>)SRgV+GQMD(Goh*BJ^8;c}z0(6= zM9|eSeNJM<4GW)6tBJi2I|&S_YS4i3SwO@Shv%bZ5*qy#Y~b!ZD*CqGH-c3ad`2)e zAbT57gSd{gPSvI=7eXApE6khoysauxS8^}j353xRujv)D=M=gA!}oft{dMu?Ykv<$ z&_LnJPec3>Yn)CKj{|ma4?t36kG>-b0^={b1I;~&2a5{5jOrteOv4fCoy+^G&s70-O8oMs&+Y-oXo+4Pw8+_$IsBmdImTZY``)73}%W^LM0~CBVrmvLv8Lo8Qm`aq=P`z|HR9 z0iL`a2aqFw{0qih0VU$9x1m*w1h%h2UK8 zhzB%`DpR`o;|hXzrUO&jqz;Vuohh_HYYj|OldM9kw)xZm?K$dBr-n?xDaz@9a?qv& zA62~h$WsJ@U@C~b;tIrjftarPUDK{8n5g4aTP_L42_Z}ZgApDT6PR;=Zwdi84dAA2 z(pP$z2&j?bdQ2kOL?DNP)C8hnG7;#NW(i{^2v0q;+aKgv-d$J&2hLSRrygz)8oXH&aC2#5)mC z&J}q_It0xH2_=QGd?$WZ5ScT>grf{*qLV|;O#)#QGG1;9-vq~_ zCWeV7XGb2z$YvTgqx7oKT9YQ?Q9_%2@|NB)U1y=Z-EBl4x2%mxn^@11%-P7dwKq}) z&ZCJj4ZM^?#Q3IX4@fj7$Khf_uD-)xBfqlgiXX?GV8XubGpVI^o$kAh*62l8)Zfi6WA79KrG|B1_=!SE%SfH4Ylex`tP0^Y+dsCBD{n=IMb<*~mAcmAfJwk$r7P_d+A8uW5hlG9p<;=j&3K@n80}J$cJ6%Enjt z`28tHSqh1y~$<|5Fk~{lajK&krM8|9TYuMD4;v z&Of36Kq@x&mjTR|&uTVzyE-EKy34MmMntQ<_*P^@^_3Fe7$Z4s;Y{>4ctb(v=fJhp zfuW%eL@o)q2x+3ec_fH>$X;GXPWE~h{z6T}uSWops?auNN0#(sRgt?%jwGJ!t77sJ zZWPHE`p)jbF{;f-2`#XsKUC@Y2HZ#(eIesnD#GAU5jxxi#c*qxyDQDj^!WDjSF1?} zkhuJ#gI1DY6NsI1=Ja1c$l$S;zrmS|U%p_Czq5D95a1k>dv*etOffkZvH&@qpaYAi z6}p)N6sD7Gnh{(k4ou2<2XmT+lgFgbI_3|)H*t;zifq_o*IK~t)E^dToB{H#mjG&K z$^5MV@}0qkP3Bf0qWO-JyNDgpeIFUS0Ld7u)Q`g~sX^mA=^Hq@VB<*;t(}-yRytZJ zdsiIs!vk^no0H+B|11!sRK{b-daPWLO9Z6wL|?G68{|<8U$p$qO-9g8@AaH8#|DV5 zu3lZWd%~2DDsbr-8iD15+MTW)6&QQ<4$&iD-7@pYh}p@Uq@2bOKOmqlinU+l-GNNn zY~#xr--D0HzL44NQxdT=p|zG*P4N*vh2@cT)Amy^$FC2-Op!&_5v?guX8#mCX!%$D z7?}m81-7>{+!e|S)L$PK&=<$b8at~XXJduU-|CMd_~MS;r$r2IvP9Q~+J#}Im*G6~ z)D{(RamY0$4D1mBh4U}lBP3-(ClDXk(r_?t3yKpxYTML393n~U>IB4ZNkU&FD{#*L z29kKPZ{EC{f+&J7aqfOF=qPV^Bd`FIQ7JGUZOaNQpcGhpv20&ZXwwl&L|iREN+~;f z!-W5G(4=g!`zBzXc`IA&JS3v}qD?qhh~oItVbSDoH-n01u#!Y>lnbzYW&cD2S{Id- zC<+umXoEv-#8RgHMN_uP9>QaM2e&2>$upF@Pz^d*(&HuR8ck)z)g z?59dx9BMzcQRA1X^;UId+Tj8qvW%KW6b@sr4)|jDgCb;ZGs>7UWWq~;vTKu}ie2H= z-mOrC42mCpT=GQ%^c$I`bSXyHQsH<`6t%blML90!gnhavmZRcjvf3q%- z_x`5IQ40NnU!S5qXlLMbQ*)r) z%`)*z0NyuwjGQ6^WEf~)j6x!{s~7`)5r=W~TE%8ZEgs^}(7 zyO-daKK4bYSwO;x&Abi>wm+Ut9QC0?mBa@7=_qW{6vuoNtA+Rg19F8d$K9*C+Mg?= zvrG2Q1!8e(+58O$5M_oLf7SrFpJ685%ri$!G3>qhEu%5uCzuHb*ht8^L?p9Jxly?} zm2Bo&mz+>2@^}T&^%LlkSQSaV=^#dB%KaPPr!?bieDm5@>^l>=B9D%)mf_C;VYVig zW%Ya(LQ)3uegriKNC`3};uRTSR)TxSwT`uiz>*l-nVch6O}*H~xd)PaG0NAXTOF=> zcz2N^K}nLuAn%e zNGwtfiJ5Lp+AB?Sh}}>rj%qe<;JD1L46xd9x3o4?D@nx>FF0VwHFsZ}Cj3lO#wn!j zE=#YHNHK6U=)uW7?s#Tz5i3a;8h7BRrSiUpk!=uX{bV(~SE;CEkn}N|t0aO`Urj#f zBt3L~3bT?IX3MytiCdys7DCW0GGD)%9=D2A6qdXc(|agc;!KL+CL=l(zvP8jxbsr- zLTm+>+lJjNwcw~KndFc%2rJyXiQ{F$YTVx{_+-t7XApTG(;ANtWkcqIBY@G?8ueih zQ5A4kMKeI$7|w>nn6G7xElWE3_YQp%?s!3xO7tc&_-=&eT?A`3xah`1$xt2ex9c;( zX@Ymbt8u}gEs3N!S+&byHNUkdBwk8_LtG~IV%j!EOpp86pk#ttjZ74UOsv6w^}s~6 zf>hj%Kl6kfD8Z}ovqZ!o!Z&$o2NcThU0br^B zrO2f(F!T=4$2Bc6eyMsevpq+jNKr>XWoxOMKMVkE!HYzttPB>duyUUlfIEHx`vT2TZ<{j<=bJkYyLfP%RGDvtGvu-v;Ua%PxI3Uug4xn z2lL));cQ$pkLx&F-rxoK%oDOto_8dy$>nM&yMQi}ycsUbgiHHACC(vYAIh61MT;Vh z7a9JII6z)pn7jhw`v@=Q>vwfy0mmzvwH8V}8fd=R44C)w?Ky}&qRexg!-db5_p`^@5!lmuT9Z2 zBO?>hk~%xtjBn2Y{C{JN$RcybH!8NPu;;}V8WDZNViN>8%eBmmpLzA=DdMcA=Vds&sd0c0@pJZVsYVl2BFo( z1{4)oHc*ux*3V6-W)QOy3F{?SM!pw61&tYucJhbx95o^a2} zVBw0#z_~i{I^RRN5&DJ(!&plZ6 zh$kqx#$o-)N+%>W(9iFF1VsZTw<{ zd9dfgQ;}x?Z`}{E3j&B(VdP+whgg2`(5YqWZ3QJK4n%l0@;T+Uf{IHt_GEZF(rD;* z+{}0tK)|^Tj6NbmQOgo5@P$b)HXy;FLgp$7-iwesJ{F#Wh65u-aNZ7yTU*C{7!f*f zWt0(`+t=Z6bCH|JaU9-fK;Rx4-i~r9hFExXmxSW0iyuK=?XLKYhXbTs0@!R*)dfdL z3b(!99nOz{NC%Sbc(D3Y0?N}5QM0}V-!eGnpko%*Rwllv?M(5TWF5?+%cizaPy%y~ zB4-`S=Ur{r+H%leNPOwrrl(D^u45+J87ICzxC>+jC0PfuxSkDPMOAt9td9k}G-Q(X zCZBo4imyPQ2n!lm;d2^FeD~_q>=+_r%FB44s^7q2oV>M=sKDm{wp5-yA)uCg8fXc) z7)eC_YlB%UMC|#=AtZuvy?C!k{5;_)&13~jVhlUx>1T~j%`{dS>wa?e=}ZHX_z5H= z@qGJ6bl=bXCnC1}Ok!#5>xmy_2Fn)`KR;vf(t`0QS2CR7*;T62 znK2MB!l9Y~QYa{fder!E&a{%nmu`#r*f)pxzAI~dtM#gMX3e>8Z|xNn%(8~RZp<{Q z)~`yR)vU7wp(7_FxNXNNf;^;Al|Gxr?XaD}x$nwti!B8XDwnGCU#7}l-ck%4SrV*h zDQc_IYY|n93Zv-0H)qi)bF0!_L(VW@FgF!}fck|7)o%o=(p8oJ81|i!qDk10K8OI4 zlam_U->A^9`rgT?y|z3QP?esCFr)Gae}~qJ?~sg27dez`Rq1p9(2!7@*Uit2!l(|$ zg`Q6HmCgnLT*PsG9~2hw{DU~wsY(~r$gmAsR#!)gTE0?azEd(Wr=*(iiDW)HBd+-# zXFlM3ud7Ai^c!J-$uV{P` zJL&~!_B2aBUfH!{+_!=B*|-_%z8Rp<$W>(BHw7z+6#w3O-M0w7jZ=(B|5^8~g0GBG z;z7h!Og--Z+-hJ|t8+U09+%hH6lDN6960L80InMAad%BPt{PtIF%$0n07*@ulVhFj z6_X7wz=+|lJYsnvWtW;&quB6sE8}^qmxh-%I8<2@iPG@%BEO0WQNg&x+p+QFS90YL`X%NnHLJO@6XYD`&B2wzXEHEUn!g!0tnXn>X;-X` z&Iyhk&5u<2{__$2p-o5WZ3 zZ+5@Hvf=KK%|7;?GxGsu@&RBHushT>pa?O`NK2~AG3s@+@Lpnba4UlAk3o)8W1}dJ z;8A;7JxLEjmWumar2{FNWh|XT!F=A*9h5D35mKsDx&%PTJKo~!^MOx!6WEMHios}% zF>q`*LHDgq`UFu%vt^G0W#0{iPHTu2WVTA!VV(TWoPYo2n8Y5#s+4{2>&a{b#W>9?* zV#DAG%NSb=6|+-UM9%Gmis3Ys`S5f@z8a25iDF*Lj$Ml3_!E|TR)&mQJ=rvFFNQupG(v6FF?kQACEY#fI2+(hu!mfj5X)$KgQB(`XT`6yMQ3 zg;!ZZGT+-hu`1I5^7C!x2~Z$tcD~s>L098maOlZb#3RdW&yeDYObof@jx0o3$&#VY z#H_w9+B!%v_@T1_n%ky(7;-FfL}4hTL#OLiR&?CT9H7v^LHr78c|325H@veN9`p7o zD8{gB!hx+S{wyQPtGu1L5h$)?N0xO}PXR}w$Mp+9!%o<);Dafsy?w}NemyaJd zk)q~g$LM5J$A7$kmb!;PF(kl>b92L7N4ol%Kf{!0% znM*<7;qfGqO&P_DJnp!CZ!HC>2Nj?l=#_%dF#4#s4yNca`N|I8Let;vrW+@YYkohFTQ#1Rhz0*=M3QN2MU`fK!Pb z&G@BYase8IuCQv1hMokKH8v?GFiPQ^Us{u@Sg*q?h0}hvW}f0(lLo=OxhxBa5?;vA zF@dj}jw<_(A4W1^V~q=&0$(pd4NY3q(}I#&r|58zrW6#&N(d7__3qLvK|8Ep^K)J) z=z}Gp?OjVj157kJ@GQZly%vasXkAlMbuGG&5p0;L&K5A#aU4yHcvMy9_fk-lj^loT zWhsJph*D61>bPtqE838%&dlU+7_qpWrp(qxGFQPnGy%k1sJAfv27zq^uxUFA7<+g& zu;bO9T@JF+FOLz+x3AX{l=Uhla)RSk+>*%7XUmy<6bh^xlqfx=j7Nc#R~uy5N%Vrd z=5mmeSWT>sk$j7YrhSa&ySOcv#;9IovL}y`ywHTd_F7f>^nPT^;kJcJk6IP~>f?Xq zAR}$jHkPYjV9L@1PV@csAqent!8ewHt(;XuImlQeM?$b1gluMNQx2xb;uf1jpd6Nc z0)aKNU@r%uNE2^rz;snw4kD3iEga3m;j(|n9`BcEb9s{QbY(r|3?6s~Ew$7$h=U+<1v60T~1<6ICuSIl?V7DnXC zMqS}GcHp9>Olh8krHw>i#jPv3!e@l>SG>>+e8eis6~U4QWeg)&)}Y8}1gZ7`3o>>Q zq|ygL5yuEp<%6KCW)P&p2SFL02vXgHpzOd9;D+%ar??PRqwY>e&l zVdHGWhmEz}K5V@0@nK_bFT-@Y2=Dj!KWbhZLq`c8wGzHUP(Q2V1XTU14iNqB=}2x@)k&_Yn_LkARsRv$W$7&gA7J{UH}q&^rn&ZIsVHrAv* z7&hLdJ{UIUq(1nll@wdoEC_1ux>P|>GuH(Qf||FkOAyqobwz@p=B(=w1hv?@0zpuV ztqTtXwb;7WK+uY<7MlzkUs7y_jWH=U!^W8un_**3ip{X`CdFphn3H11Z+D?r#BX;-QsVgSE~VOcrM!65NqJUFKLjFqRToXG&8+5eplUO#5gdZn%y`yCV_P%hfp!ZUW75owZ=6XpGivy`mtxrXl43J#j7hN>HqKO*BW$cmu}L@HRF)%b z%t^8NsFf63mqG|??z%BTP&3#45Q3Vw?t&21taZ+2G2x_r) zql2Io8*g`^Q!;FPNwFC=#-!K`8)s5%hK)5THp9l76q{jVP6v7Pb{EG$^mdm9HFGs= z0af!>YZe4GYrNg1ku_&ET>({#ttKl7YO(Ql7b3@RcWE$w78OXg*3c7Xyf(yiSbNxh zZdx}?7Oy2cGsCzY&b?JTpxA)DWm%t`7iCzK&Q8ln*FM;L1 z5WNHj0xs)A6N!rM57!o;r^c;AG!hs7SY%_b4C}K2ht!-l9oO=*z}B0X8DSvDFY!5x zr5IFU8G@T8!%iFlZ7YzE^K6Z<8f2DF8C7Z)SsA_YE; zJyECzZ`O#m@1YY!ROJ92YP8&0#35CVsC;ywj|Q!^usDnovazBT_g{mf53sIh*rmCO z4n2Z+-G|#bXi-#^MWXD%NW^>SI6kRKGVkq#5oA0v0$g4*EZZ`M^=6@9BGHKHtyRR5 zH4C`#7)FM|uK*8MLa6 zWLe@0GfdBYeugl09$~W81ZN`5NZ4g6C^`li!c;`$RiG>$QlfJVG@_J?NwLp{H$h}( zC2g%YcA(iIo_L-Y2>dQ|Z4Aq@jY**})RGD!CFS^N;qAR#JoI3k)^!DxX@F5DKz@N5 zB1D_frj{x~8w(=s>*I8A9a2!OcT0(Dhj2WI)LNT{u4+uJD<6}UFr$s@^W^P%f?7O8 zgo>B%6%iAz8L`7s%;?ITVQZWjU7Hi(WdxpzQcI4gx`^)Lq`i#`c8~=vptHISBHG83 z9zdZ`D7b_f)o>KW?}svZ)jh#bBrzr+BKi)gCP^zv z#|uO-t7R*XfaApxaJ)1EhQjEn8*>aL!CPUzj1o7LhXl{5?q$fSMrTPSb|@20Bx_wf zn$~C6o7KGy<3|Pp#6#)S6a|p(Lm0IxX8}yEn-Tvx>sdkw#S=cXa|t07kpydBA>;~b zO)P{^P#cxAx^MAc4OON47iuDVoPjaT%3MJay6*2Dd609L9)S(J3-F&9#kctjo;JeV z;Zy0{ksZ(n9P@@uqnuVa6L~_cqZB=>=_om~h>~&uNv+do)7T{v-9rJ~q)Z2F$1+Xx zK0*Yi=gU61YJrHFV^{Fev|F4&c?K1x@FsM2mMaZfBV2nh;`?*oW(O zU{)JVyDtGyPAu%?r&-Xm62Le>@gPpL^kfE4Cc!UkY@bnqaXe0iOb91Jn`_uzkZ@~-^cF{@OuM(ziPkNTlky!_ZugkeDXI>e9BY4 zcfS;s^#A&O{TqI|W#7IZA9eK6KiGEIVc*&2+_&-jP5gds>y91Y-|Ev|cG-;wljNHR zw`{rLpmSe8xaF{G4<51g{~Wx_)-T%cm+|j^9z1-@wFeKIy8d9L@~wlwb={#yKKOHolKD>_I)2-i4&CL5 z?;UdP$A`{4?-y4x?L!~(-SqBv`)>M&clpn>@~DI9GtYTTdg)8vnO^>?tJ1f)~A`o~A!kUsRG-%BsP_-D`D?Asd~H~!Ju+Kn$h?zkVM_q*@4 z>G6;H$MmcxU723;qBp1KZCsPy_g-JaQ+z*6k9p*`uVVTscLT!LrH?r3VEVMP-;`ea zg*T-?`qn$ro4#>bdehe~O>esX()7k}T$+CEzuuZ&_QtEz;~)Jg@cY&DFaF|3l0N3) z^wV#;*HZfjS3m6G-$?Iv*H5K0$A2Jw*$dy6e*P1$Nxygf^V0Xd_0{R49`Sj6^jqmY z|KPKd{%&{sW{S2=Pb^%OzV(u~q__U&J?S04y&^sIvp1xNZh8%VFG&ym;*#{%TV9ub zc%RYe$FG0zgKtRhdH2tyCrw|IzTg>ePp|#b8`Iz1 z{HpY}Uq3hf%tv0C&R0I2ZrSpU^!`Wwi+um#5C2wrw?F)9T07x==~ZukcY5fKYtr;r zm!|0tUy`Oj!tW1Xnx;Q_Y5Ke0{%v~W_g|Mj^MZrvLyrD(y0Dmi|H)_n?14*5Klu2A z9&~+ruRs2`w0hFj>E*A#JpI9$9FG41w#^yy1pd-G8jUi9;$R(Aa4$_GFAy7V4*`?qwdesy}u%dSYjb^SZi z+itl$O@EED{QNcP9lv>b`rluAQ@S?#WP0QuU7Ozj-k+B5FL%C&K6PFC=tq1weeEl+ z!S_Furng-I9x%k@_btfdE$Q!We`9*z>`P}lR^w6P8)34ufdHSR$eloq+ zpL{Jn@*ba)@2@}UN9ld;eSLcLQ6EWP_SYXwZ~N^>)AZ2$()4!laN9eT7ySLZL+?oM zK=_KwKa@_FzmPuc;onXl`?&9?4|y=_{8Q;EOV^~Az2Uv-559vsyzTG)Z+TY&UR8Ci z6GW|6>9ehUROQuv)}rqzRiAZu)mmv4Z9lC;gIF9<1`9@}SecPYL<0mI2&0G~Bn)8) z5FjBFWF`Yi$UH#?l8^)lgW9s*zt1{n-F?rw_i}F>%KP5-?0wf>`(NXpa+8af&Yg>b z9>{<78T?pHXON5B-1YS26Pa}773I|9a<>2G-&^ULYbvPc)q80Aq#bmoGl}RNd^ooS zbrULlQI$5qhfTC?>u&n({ke4U#Z`34B}Mepe@~zRPi~H<0wCW z55>gnrLeK-@H>w#zpNbly^1colUqp^lD3DlSTUbH|u`N$jGM0 z9xJ44koPeowo`LsI`W){@l5R9eNO~pF*BYpo&A;^pCH~psxru7ggzY)$E)?#8gbT-V{&oOpB*e zCl6t~7&RZc&qeH6^udBOdbD2#{qn{fy6UQYoR>v(iQ$7fd)bE`SLUP*dF5cQQKOE9 z+;K-8U3y6dJ@&^$oN+nWgEi1sY3fz_UA3T~j9z`Ugl@humBx+TN9}DD$a^JfDe_Q4 zM;i}PO7a0(vM8ITPtBqsuV&HXf6Bq0&7~jzC?98^@}ZKh|5+Zr@?v4g#EESozxmB! zLm7cy^NTgX#S)g%5~ zy6cX3+PX2FI@*-|Q>bmW+D=D~9HWScdQ$gHaBwMIet9X~bW<7qj? zrkOfB+mMG2I-7V_M44cHq6xLXrx?W#2Rt72C6 z+fh{>T(zmGjg~HLpqp=I`}lbZ=a9;2DSj>}hac56bLL@+k8h%~vSw;Kc8tFGqTTR8 z>8Yq_p&>)+unr294&-b#@3L&Kpw zc))-o(LcQE5bl6fS{R;2jrGd@NmQr(j^oEDHnxH8y34Y!&J=Z~sjBEQ_*F*V|Gx60 zg8KI_rHJ_lsk*Wf^U;bm(n{mUA4a|mOu4c@Y*WS}ac>jddv7^)3qAyUDsHyRd2r<-IJlgyyz(I3bLU=)-I9rYRgW{dou*H3pq@RI zzooE2!C_&|(Y<L?X+xJ zBi;O;Rq&7P&z;*A-Mcq_4(ygjFa9-w3JZ#`R+K$!4Y<~UT0__Xt*&2}MNw#oju3SP3LeM+A` z)!2^*=a_;>=6d?{VVp@V z(9wZ&vJLhd=+;}SWd4^e>-a(6zP0eDh<M`J3A=g6t_w)Jrv!AJZh}WOW!SLaYIlX&V;w&k~`-WnA_~CMT>7^xgJQo~`Rw{HJmLEC>H@Ll(R41?FB67@jEmjk2d-v`hCPn+wn4>o>_ zp?>QT9CXubmP|Lu40Xt;-+kPMU%{wfcLWFZG{*6@>yA>15*Aq!SF%XVC!N?I6Jdy1liu+e)#ZV>HeP} zY;)?PtB2z!OcyyXo%D;-k@uH-gsr$Yef>QrJq}%f%yZ|?RaaM|72iN-W@bwF>l1N* zd@nhC=-xSlUR-6FNqx zzYV-Mo&NCCBh;^oe3Z4Lo(R?3Xu=csTnfS^l^I%r|%+!C~EKp#JN! ze$oM%@KdM2utTiJEiM6oumCo~FFfuS9}56O0O+;?#j`9@1XX&Xbef063WJqbw!jq2 zRRA+$=flHIIY2i3EXE?@5}!ccTJgt8h;k1@#_gj#H}54wz14B@of>ow8`3#CZ3|Pp z0>SYL7=5ON(1+Mp=9D&d-ny)PK-AGbi(7+c9iNfj($sM#CnqN^Hny>`MWlogHbs%9>3Nz9J9HO zyvgqj$Xz)xXXTW=?+xBG>XF^Qo|AD+V)j*e2fx=)7W|c@-9~&<_YqIDt~^lxby?6* zXyZ7$0hwTNeL*^D-Nbp7YXG(QwXSE+HGsnN{eo5}xGNmpA7Sc*4?N3CjERs$$||6Lux&Fs9+5 zauPQVKZeiD^uZUvc`@2@^=myNG(8*MXuu>EGaa5@Ag)s921b`3mj+Pk7M}w>(&A>k7-+nO z5A4cbG&1kgsky7BWiA`Pd&YAcM?SLVl?RsfzkBsP&zE*PWAj0}n_KeuVa|x`Kl9VF z=|z47>5ag$QOjFfJU|BOzfC!`*%aCUT{EGS8jI3HtHxYQ%eVj9sJZwxj!TL7tc{v@ zzE*gHcx(X>aS(yxS(d}))@DV9bfm(tuR@6HhP+ylHrbHz~7hzf( zmGy7VzM2S?b88_9)JTnJ+kX2&&<4-msPtH1!HXK<=w4}~ZkcD*mOd4W6tU`v$j^Aq zK%r3g#Gy^{^X=j@7rx%u*w}<>mE`1PiBSj)t{eT7I2`|Ap$nL%2hn>dtV(4@ z`$1PT>e9ffv>}&27~%pYTx^!W1P8DUcf{f24Vn_a^j~QB?2kf^9z9wx?HPVRd%Ta1 zHaAC)eOjgJVtWY@%S;qJy8$ERGJ(_;_T>yrBv2zK}F`NWz>~ zrVM`Mz!jeVFdFE6WKFO6>TUma&3{Q0uNEvA-JFav(FGGqo3SoEw8jwlc!hp%$~C^* z;@9|Y>sjNw;rY_B?Ge2TfGyrGbU9orXkEPu6MYWWh?i5MSZ)ss8DJY8vaX^u8ImrR z8^tD+Y7{mggp;YAS`xJ(>1u?}1P24})uX&M32%H6hemx3>$G5mkPM0+!r|nA4+41h zKoJIuyKb$g7*Cz~a>{2%UL5gB_KMK-Rg;oFd3{U7pw-L5*UWq&X-R0yF%R#O;4mzR zho(hk)vf3Np&21vov>VPSfg_KcW&! zxCjS?a3r)q^dveZbrv36KpqVn9hyVQerQZVko1bqRU$|^+ds`d+ zjeu&~xT-!#E*8~}4>`z$md;i8QAtc}<(B#CEz;_7Wvj;F;|)bC!U~p-&W#*(V9^^X zk#Ftqga3C%VEHjk{PIY7)a=?lD~s37D&4a1!18e)&U|Ua?gBOmUvt%5pBhKml{sZX8}$p1Ljzlej}FzEuXOi}VY3lF6L4J~rAF%tt@A}3Smcn4jTVd$h|4r@z1SjU09w;4z&v?k zGTp;WO-lpZ5>`O!6&#F82q3_578}Nx31Ot>3SJ@C<5&P#ND#T%$U-!>jM2>!XX@t=A{!J8vz$l!0AG!P*t-Mcz{#GI0) z?l z@t8v%6)@wSNGFE{!8cSJJ(nqE3qCUj1j9^c7=~6SbQ)qtSNDo(Rw%6v0IU2c-5`}7 z*9`^Q#usq_kw7jsS};PGA&V0R0VeaM1;HX}+}#bgt~Sc}+}vDTMw>Tp-V(blYTl^i zMT1k8zP4}0gp|dvZ;KqVb^f2%Py9{7{8s_yRbgwP&pE_Q*3T`ZtccB5aBMJR8dT1_ z^VO)X7Bs*r7w0Ri(;FCkn|t5{>JMBnq}&?zOX)I3xeK=oyPpnJ|AmIfo0=0RPRQSn zPMkRD@jg0v@+3aIjgYh72tS=lRZ(-iJ%^T#tB9DBJnrv2#ev4lQWf3)d3ed{BfFO4 zS+QznSmNYO@BcOJ!_X}CiMs*G5yMvx`fbitc_!GgoP_^v+((YM?CY7=2`>`gEs)UG z#S|G)yDd{k$A@xnQFwF48y+VB$H<3+v*j%bJ{Q)57F`TETOBW8PARvxl**8RL6}G_ z7&FW6!hkUnZWyE?fW|7uu#1TFmUV=2WNik4NBO1Rvf;yd@Jp#(h-1Vd2rZD>_l_xjQcv(ud zmwZ(>DK2jP!Z%aj-nMCK$)<=y8|G$w6q-DDFg|e?GxE`lYm;1HZ7u1{Z|^>0D_V4F znORKiOTP+M6ht&7ek}<-!1L0+mAhNlJpt{(87E#p4M6jGBCWn38L2ybUc7*vn^E#B zLjpFO^lJ)O)=ia)+a+ssj1(G7blHmH`%!e4Y&4{898)vAQMTM4puO-juCF%*-Tjfw zdo*Mya|uWWm|$z5bq^KV?v~-D6$nOkywGXUGd54Te_KTVq(y^Lmb{+*`6OIPagi^_ zhKJ;Am<^b13BeA_^73GtpoK4*Sr(D{z`$wi@se;CKp|PV5vwgL9=d=f+**OwTaj4+ z0SuH|&VcaCA6V6u+nm4c7zN_{{cc{|Y|5ji^f}s{5$yvxJ(h%hg+?b?;Vw z{%*zU*`=#y7O$LMxO`f6#HjtVW~bk5{@b@e9_+A`(t%sq>$%J#;8`ey91 z$^8e+N?kPu7%U9<>Aa74$XYm4MVn5rEH5+A@J$~D9q9TuL;_epHghZvH`pb#piu-C zs6VpsSdYh6pQ%9gUugJ>bu)Z?U|S!;hqqN$r!4aQ?E9N~4=zuj@rs~}xa6zDb2lE| zx}Z8Hyew*V+4}eJIq*Xp=VdP*vwiHtE|_I>NKpqr&LQ6%%r&nc9oA+4dFAj@v9&xT zRsu31QhpKvDTkkd;yt<{XNVAhF&z+Iz{r^48)wem@{kQ|%ek`)EfBHmI$vL`2w{^D zz7K*=PP9%8$7x3apBC^WPNubBE^a9!g}UpI~Rc7zN_(*oeTKi|V@gZ>e*ml;3p&1K@r!JVRkT~Ax&XozV3gMgzD7Y_k7Px{^KHnSibgaVn&HUgE+`9iREUAj~@mk(k$yidF?|gw4cx zqX66+#+gi=W0PVZY)o{)7p6`NQzuTHI&q{VWyP{xdD|D1r>|?NujWy?P(bMT@18#I zvJrsOw}d_wPUgir)I5@b3!>!Xom=&QA~fSOFYc^jxwdfGq`ZY=i*GvU)ckesBWUxn zf1S3zd(PS5prBvC$47#m3F?biB7A9*SuE-n^#6eB!a&F{Ow|Vr*(v`=U0Y9`gcY>0ja!?bj+=SvEq7u2;%x! z$MkVv)c1s!;9J51`JQm~-QYdX`I2D|^zQ~&-|+paPZ{TTfU9r9nhhCm-~X+?SL=x% V1Y_Lu_iCx{(3)Y4d;Sis{{`<`oYepT diff --git a/Dialogs.rc b/Dialogs.rc index c366169..641d31a 100644 --- a/Dialogs.rc +++ b/Dialogs.rc @@ -1,43 +1,121 @@ -// Generated by ResEdit 1.6.6 -// Copyright (C) 2006-2015 -// http://www.resedit.net - -#include -#include -#include -#include "src/include/resource.h" - - - - +// Microsoft Visual C++ generated resource script. // -// Bitmap resources +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// // +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Neutral resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) +#ifdef _WIN32 +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON1 ICON "roblox_RN1_icon.ico" +#endif // Neutral resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (Canada) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC) +#ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN -IDB_BITMAP1 BITMAP "Parts.bmp" - - +#pragma code_page(1252) +#endif //_WIN32 +///////////////////////////////////////////////////////////////////////////// // -// Dialog resources +// Bitmap // -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -IDD_DIALOG1 DIALOG 0, 0, 295, 43 -STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFOREGROUND | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU -EXSTYLE WS_EX_WINDOWEDGE -CAPTION "Insert Object" -FONT 8, "Ms Shell Dlg" -{ - EDITTEXT IDE_EDIT, 35, 6, 195, 14, ES_AUTOHSCROLL, WS_EX_LEFT - LTEXT "Class:", 0, 10, 9, 20, 9, SS_LEFT, WS_EX_LEFT - PUSHBUTTON "Cancel", IDCANCEL, 237, 24, 50, 14, 0, WS_EX_LEFT - DEFPUSHBUTTON "OK", IDOK, 237, 6, 50, 14, 0, WS_EX_LEFT -} + +IDB_BITMAP1 BITMAP "Parts.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_DIALOG1 DIALOGEX 0, 0, 304, 46 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Dialog" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,247,7,50,14 + PUSHBUTTON "Cancel",IDCANCEL,247,24,50,14 + EDITTEXT IDC_EDIT1,68,7,162,14,ES_AUTOHSCROLL + LTEXT "Class:",-1,43,7,20,8 +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + + +3 TEXTINCLUDE +BEGIN + "\r\n" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_DIALOG1, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 297 + TOPMARGIN, 7 + BOTTOMMARGIN, 39 + END +END +#endif // APSTUDIO_INVOKED + +#endif // English (Canada) resources +///////////////////////////////////////////////////////////////////////////// +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// // -// Icon resources +// Generated from the TEXTINCLUDE 3 resource. // -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -IDI_ICON1 ICON "roblox_RN1_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/resource.h b/resource.h new file mode 100644 index 0000000..2f38c74 --- /dev/null +++ b/resource.h @@ -0,0 +1,2064 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Dialogs.rc +// +#define SW_HIDE 0 +#define HIDE_WINDOW 0 +#define WM_NULL 0x0000 +#define WA_INACTIVE 0 +#define HTNOWHERE 0 +#define SMTO_NORMAL 0x0000 +#define ICON_SMALL 0 +#define SIZE_RESTORED 0 +#define BN_CLICKED 0 +#define BST_UNCHECKED 0x0000 +#define HDS_HORZ 0x0000 +#define TBS_HORZ 0x0000 +#define TBS_BOTTOM 0x0000 +#define TBS_RIGHT 0x0000 +#define LVS_ICON 0x0000 +#define LVS_ALIGNTOP 0x0000 +#define TCS_TABS 0x0000 +#define TCS_SINGLELINE 0x0000 +#define TCS_RIGHTJUSTIFY 0x0000 +#define DTS_SHORTDATEFORMAT 0x0000 +#define PGS_VERT 0x00000000 +#define LANG_NEUTRAL 0x00 +#define SUBLANG_NEUTRAL 0x00 +#define SORT_DEFAULT 0x0 +#define SORT_JAPANESE_XJIS 0x0 +#define SORT_CHINESE_BIG5 0x0 +#define SORT_CHINESE_PRCP 0x0 +#define SORT_KOREAN_KSC 0x0 +#define SORT_HUNGARIAN_DEFAULT 0x0 +#define SORT_GEORGIAN_TRADITIONAL 0x0 +#define PSP_DEFAULT 0x00000000 +#define PSPCB_ADDREF 0 +#define PSH_DEFAULT 0x00000000 +#define PSNRET_NOERROR 0 +#define PSBTN_BACK 0 +#define CDRF_DODEFAULT 0x00000000 +#define ILC_COLOR 0x00000000 +#define ILD_NORMAL 0x00000000 +#define ILS_NORMAL 0x00000000 +#define ILCF_MOVE 0x00000000 +#define HDFT_ISSTRING 0x0000 +#define HDF_LEFT 0x0000 +#define TBSTYLE_BUTTON 0x0000 +#define IDB_STD_SMALL_COLOR 0 +#define STD_CUT 0 +#define VIEW_LARGEICONS 0 +#define HIST_BACK 0 +#define HICF_OTHER 0x00000000 +#define TBDDRET_DEFAULT 0 +#define TTDT_AUTOMATIC 0 +#define TTI_NONE 0 +#define TBTS_TOP 0 +#define TB_LINEUP 0 +#define DL_CURSORSET 0 +#define LVSIL_NORMAL 0 +#define LVNI_ALL 0x0000 +#define LVIR_BOUNDS 0 +#define LVA_DEFAULT 0x0000 +#define LVCFMT_LEFT 0x0000 +#define LVBKIF_SOURCE_NONE 0x00000000 +#define LVBKIF_STYLE_NORMAL 0x00000000 +#define LVCDI_ITEM 0x00000000 +#define TVSIL_NORMAL 0 +#define TVGN_ROOT 0x0000 +#define TVC_UNKNOWN 0x0000 +#define TVNRET_DEFAULT 0 +#define MCSC_BACKGROUND 0 +#define MCHT_NOWHERE 0x00000000 +#define GMR_VISIBLE 0 +#define GDT_VALID 0 +#define PGF_INVISIBLE 0 +#define PGB_TOPORLEFT 0 +#define FSB_REGULAR_MODE 0 +#define ICM_NOTOPEN 0x0000 +#define EPR_0 0 +#define CTFMODEBIAS_DEFAULT 0x0000 +#define EMO_EXIT 0 +#define EMO_EXPANDSELECTION 0 +#define ENM_NONE 0x00000000 +#define ES_EX_NOCALLOLEINIT 0x00000000 +#define CFU_UNDERLINENONE 0 +#define SCF_DEFAULT 0x0000 +#define PFNS_PAREN 0x000 +#define SEL_EMPTY 0x0000 +#define ST_DEFAULT 0 +#define GT_DEFAULT 0 +#define GTL_DEFAULT 0 +#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1 +#define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID 1 +#define SW_SHOWNORMAL 1 +#define SW_NORMAL 1 +#define SHOW_OPENWINDOW 1 +#define SW_PARENTCLOSING 1 +#define VK_LBUTTON 0x01 +#define WM_CREATE 0x0001 +#define WA_ACTIVE 1 +#define PWR_OK 1 +#define PWR_SUSPENDREQUEST 1 +#define NFR_ANSI 1 +#define UIS_SET 1 +#define UISF_HIDEFOCUS 0x1 +#define XBUTTON1 0x0001 +#define WMSZ_LEFT 1 +#define HTCLIENT 1 +#define SMTO_BLOCK 0x0001 +#define MA_ACTIVATE 1 +#define ICON_BIG 1 +#define SIZE_MINIMIZED 1 +#define MK_LBUTTON 0x0001 +#define TME_HOVER 0x00000001 +#define CS_VREDRAW 0x0001 +#define CF_TEXT 1 +#define IDOK 1 +#define BN_PAINT 1 +#define BST_CHECKED 0x0001 +#define TTS_ALWAYSTIP 0x01 +#define TBS_AUTOTICKS 0x0001 +#define UDS_WRAP 0x0001 +#define PBS_SMOOTH 0x01 +#define LVS_REPORT 0x0001 +#define TVS_HASBUTTONS 0x0001 +#define TCS_SCROLLOPPOSITE 0x0001 +#define ACS_CENTER 0x0001 +#define MCS_DAYSTATE 0x0001 +#define DTS_UPDOWN 0x0001 +#define PGS_HORZ 0x00000001 +#define NFS_EDIT 0x0001 +#define LANG_ARABIC 0x01 +#define SUBLANG_DEFAULT 0x01 +#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 +#define SUBLANG_AZERI_LATIN 0x01 +#define SUBLANG_CHINESE_TRADITIONAL 0x01 +#define SUBLANG_DUTCH 0x01 +#define SUBLANG_ENGLISH_US 0x01 +#define SUBLANG_FRENCH 0x01 +#define SUBLANG_GERMAN 0x01 +#define SUBLANG_ITALIAN 0x01 +#define SUBLANG_KOREAN 0x01 +#define SUBLANG_LITHUANIAN 0x01 +#define SUBLANG_MALAY_MALAYSIA 0x01 +#define SUBLANG_NORWEGIAN_BOKMAL 0x01 +#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01 +#define SUBLANG_SPANISH 0x01 +#define SUBLANG_SWEDISH 0x01 +#define SUBLANG_URDU_PAKISTAN 0x01 +#define SUBLANG_UZBEK_LATIN 0x01 +#define SORT_JAPANESE_UNICODE 0x1 +#define SORT_CHINESE_UNICODE 0x1 +#define SORT_KOREAN_UNICODE 0x1 +#define SORT_GERMAN_PHONE_BOOK 0x1 +#define SORT_HUNGARIAN_TECHNICAL 0x1 +#define SORT_GEORGIAN_MODERN 0x1 +#define VS_VERSION_INFO 1 +#define VFFF_ISSHAREDFILE 0x0001 +#define VFF_CURNEDEST 0x0001 +#define VIFF_FORCEINSTALL 0x0001 +#define PSP_DLGINDIRECT 0x00000001 +#define PSPCB_RELEASE 1 +#define PSH_PROPTITLE 0x00000001 +#define PSCB_INITIALIZED 1 +#define PSNRET_INVALID 1 +#define PSWIZB_BACK 0x00000001 +#define PSBTN_NEXT 1 +#define ICC_LISTVIEW_CLASSES 0x00000001 +#define CDDS_PREPAINT 0x00000001 +#define CDIS_SELECTED 0x0001 +#define ILC_MASK 0x00000001 +#define ILD_TRANSPARENT 0x00000001 +#define ILS_GLOW 0x00000001 +#define ILCF_SWAP 0x00000001 +#define HDFT_ISNUMBER 0x0001 +#define HDI_WIDTH 0x0001 +#define HDF_RIGHT 0x0001 +#define HHT_NOWHERE 0x0001 +#define TBSTATE_CHECKED 0x01 +#define TBSTYLE_SEP 0x0001 +#define TBSTYLE_EX_DRAWDDARROWS 0x00000001 +#define IDB_STD_LARGE_COLOR 1 +#define STD_COPY 1 +#define VIEW_SMALLICONS 1 +#define HIST_FORWARD 1 +#define TBIMHT_AFTER 0x00000001 +#define TBBF_LARGE 0x0001 +#define TBIF_IMAGE 0x00000001 +#define HICF_MOUSE 0x00000001 +#define TBNRF_HIDEHELP 0x00000001 +#define TBNF_IMAGE 0x00000001 +#define TBDDRET_NODEFAULT 1 +#define RBIM_IMAGELIST 0x00000001 +#define RBBS_BREAK 0x00000001 +#define RBBIM_STYLE 0x00000001 +#define RBNM_ID 0x00000001 +#define RBHT_NOWHERE 0x0001 +#define TTF_IDISHWND 0x0001 +#define TTDT_RESHOW 1 +#define TTI_INFO 1 +#define TBTS_LEFT 1 +#define TB_LINEDOWN 1 +#define TBCD_TICS 0x0001 +#define DL_STOPCURSOR 1 +#define HOTKEYF_SHIFT 0x01 +#define HKCOMB_NONE 0x0001 +#define LVSIL_SMALL 1 +#define LVIF_TEXT 0x0001 +#define LVIS_FOCUSED 0x0001 +#define LVNI_FOCUSED 0x0001 +#define LVFI_PARAM 0x0001 +#define LVIR_ICON 1 +#define LVHT_NOWHERE 0x0001 +#define LVA_ALIGNLEFT 0x0001 +#define LVCF_FMT 0x0001 +#define LVCFMT_RIGHT 0x0001 +#define LVSICF_NOINVALIDATEALL 0x00000001 +#define LVS_EX_GRIDLINES 0x00000001 +#define LVBKIF_SOURCE_HBITMAP 0x00000001 +#define LVKF_ALT 0x0001 +#define LVCDI_GROUP 0x00000001 +#define LVGIT_UNFOLDED 0x0001 +#define TVIF_TEXT 0x0001 +#define TVE_COLLAPSE 0x0001 +#define TVGN_NEXT 0x0001 +#define TVHT_NOWHERE 0x0001 +#define TVC_BYMOUSE 0x0001 +#define TVNRET_SKIPOLD 1 +#define CBEIF_TEXT 0x00000001 +#define CBES_EX_NOEDITIMAGE 0x00000001 +#define CBENF_KILLFOCUS 1 +#define TCS_EX_FLATSEPARATORS 0x00000001 +#define TCIF_TEXT 0x0001 +#define TCIS_BUTTONPRESSED 0x0001 +#define TCHT_NOWHERE 0x0001 +#define ACN_START 1 +#define MCSC_TEXT 1 +#define GMR_DAYSTATE 1 +#define GDTR_MIN 0x0001 +#define GDT_NONE 1 +#define PGF_NORMAL 1 +#define PGB_BOTTOMORRIGHT 1 +#define PGF_SCROLLUP 1 +#define PGK_SHIFT 1 +#define PGF_CALCWIDTH 1 +#define DPAS_SORTED 0x0001 +#define FSB_ENCARTA_MODE 1 +#define SES_EMULATESYSEDIT 1 +#define IMF_AUTOKEYBOARD 0x0001 +#define ICM_LEVEL3 0x0001 +#define TO_ADVANCEDTYPOGRAPHY 1 +#define EPR_270 1 +#define CTFMODEBIAS_FILENAME 0x0001 +#define IMF_SMODE_PLAURALCLAUSE 0x0001 +#define ICT_RESULTREADSTR 1 +#define EMO_ENTER 1 +#define EMO_EXPANDDOCUMENT 1 +#define ENM_CHANGE 0x00000001 +#define ECO_AUTOWORDSELECTION 0x00000001 +#define ECOOP_SET 0x0001 +#define PC_FOLLOWING 1 +#define IMF_FORCENONE 0x0001 +#define CFM_BOLD 0x00000001 +#define CFE_BOLD 0x0001 +#define CFU_UNDERLINE 1 +#define SCF_SELECTION 0x0001 +#define SF_TEXT 0x0001 +#define PFM_STARTINDENT 0x00000001 +#define PFN_BULLET 1 +#define PFA_LEFT 1 +#define SEL_TEXT 0x0001 +#define OLEOP_DOVERB 1 +#define ST_KEEPUNDO 1 +#define GT_USECRLF 1 +#define GTL_USECRLF 1 +#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2 +#define SW_SHOWMINIMIZED 2 +#define SHOW_ICONWINDOW 2 +#define SW_OTHERZOOM 2 +#define VK_RBUTTON 0x02 +#define WM_DESTROY 0x0002 +#define WA_CLICKACTIVE 2 +#define PWR_SUSPENDRESUME 2 +#define NFR_UNICODE 2 +#define UIS_CLEAR 2 +#define UISF_HIDEACCEL 0x2 +#define XBUTTON2 0x0002 +#define WMSZ_RIGHT 2 +#define HTCAPTION 2 +#define SMTO_ABORTIFHUNG 0x0002 +#define MA_ACTIVATEANDEAT 2 +#define SIZE_MAXIMIZED 2 +#define MK_RBUTTON 0x0002 +#define TME_LEAVE 0x00000002 +#define CS_HREDRAW 0x0002 +#define CF_BITMAP 2 +#define IDCANCEL 2 +#define BN_HILITE 2 +#define BST_INDETERMINATE 0x0002 +#define HDS_BUTTONS 0x0002 +#define TTS_NOPREFIX 0x02 +#define TBS_VERT 0x0002 +#define UDS_SETBUDDYINT 0x0002 +#define LVS_SMALLICON 0x0002 +#define TVS_HASLINES 0x0002 +#define TCS_BOTTOM 0x0002 +#define TCS_RIGHT 0x0002 +#define ACS_TRANSPARENT 0x0002 +#define MCS_MULTISELECT 0x0002 +#define DTS_SHOWNONE 0x0002 +#define PGS_AUTOSCROLL 0x00000002 +#define NFS_STATIC 0x0002 +#define LANG_BULGARIAN 0x02 +#define SUBLANG_SYS_DEFAULT 0x02 +#define SUBLANG_ARABIC_IRAQ 0x02 +#define SUBLANG_AZERI_CYRILLIC 0x02 +#define SUBLANG_CHINESE_SIMPLIFIED 0x02 +#define SUBLANG_DUTCH_BELGIAN 0x02 +#define SUBLANG_ENGLISH_UK 0x02 +#define SUBLANG_FRENCH_BELGIAN 0x02 +#define SUBLANG_GERMAN_SWISS 0x02 +#define SUBLANG_ITALIAN_SWISS 0x02 +#define SUBLANG_KASHMIRI_INDIA 0x02 +#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 +#define SUBLANG_NEPALI_INDIA 0x02 +#define SUBLANG_NORWEGIAN_NYNORSK 0x02 +#define SUBLANG_PORTUGUESE 0x02 +#define SUBLANG_SERBIAN_LATIN 0x02 +#define SUBLANG_SPANISH_MEXICAN 0x02 +#define SUBLANG_SWEDISH_FINLAND 0x02 +#define SUBLANG_URDU_INDIA 0x02 +#define SUBLANG_UZBEK_CYRILLIC 0x02 +#define SORT_CHINESE_PRC 0x2 +#define VFF_FILEINUSE 0x0002 +#define VIFF_DONTDELETEOLD 0x0002 +#define PSP_USEHICON 0x00000002 +#define PSPCB_CREATE 2 +#define PSH_USEHICON 0x00000002 +#define PSCB_PRECREATE 2 +#define PSNRET_INVALID_NOCHANGEPAGE 2 +#define PSWIZB_NEXT 0x00000002 +#define PSBTN_FINISH 2 +#define ID_PSRESTARTWINDOWS 0x2 +#define ICC_TREEVIEW_CLASSES 0x00000002 +#define CDRF_NEWFONT 0x00000002 +#define CDDS_POSTPAINT 0x00000002 +#define CDIS_GRAYED 0x0002 +#define ILD_BLEND25 0x00000002 +#define ILS_SHADOW 0x00000002 +#define HDI_TEXT 0x0002 +#define HDF_CENTER 0x0002 +#define HHT_ONHEADER 0x0002 +#define CMB_MASKED 0x02 +#define TBSTATE_PRESSED 0x02 +#define TBSTYLE_CHECK 0x0002 +#define STD_PASTE 2 +#define VIEW_LIST 2 +#define HIST_FAVORITES 2 +#define TBIMHT_BACKGROUND 0x00000002 +#define TBIF_TEXT 0x00000002 +#define HICF_ARROWKEYS 0x00000002 +#define TBNRF_ENDCUSTOMIZE 0x00000002 +#define TBNF_TEXT 0x00000002 +#define TBDDRET_TREATPRESSED 2 +#define RBBS_FIXEDSIZE 0x00000002 +#define RBBIM_COLORS 0x00000002 +#define RBNM_STYLE 0x00000002 +#define RBHT_CAPTION 0x0002 +#define TTF_CENTERTIP 0x0002 +#define TTDT_AUTOPOP 2 +#define TTI_WARNING 2 +#define TBTS_BOTTOM 2 +#define TB_PAGEUP 2 +#define TBCD_THUMB 0x0002 +#define DL_COPYCURSOR 2 +#define HOTKEYF_CONTROL 0x02 +#define HKCOMB_S 0x0002 +#define LVSIL_STATE 2 +#define LVIF_IMAGE 0x0002 +#define LVIS_SELECTED 0x0002 +#define LVNI_SELECTED 0x0002 +#define LVFI_STRING 0x0002 +#define LVIR_LABEL 2 +#define LVHT_ONITEMICON 0x0002 +#define LVA_ALIGNTOP 0x0002 +#define LVCF_WIDTH 0x0002 +#define LVCFMT_CENTER 0x0002 +#define LVSICF_NOSCROLL 0x00000002 +#define LVS_EX_SUBITEMIMAGES 0x00000002 +#define LVBKIF_SOURCE_URL 0x00000002 +#define LVKF_CONTROL 0x0002 +#define TVIF_IMAGE 0x0002 +#define TVIS_SELECTED 0x0002 +#define TVE_EXPAND 0x0002 +#define TVSIL_STATE 2 +#define TVGN_PREVIOUS 0x0002 +#define TVHT_ONITEMICON 0x0002 +#define TVC_BYKEYBOARD 0x0002 +#define TVNRET_SKIPNEW 2 +#define CBEIF_IMAGE 0x00000002 +#define CBES_EX_NOEDITIMAGEINDENT 0x00000002 +#define CBENF_RETURN 2 +#define TCS_EX_REGISTERDROP 0x00000002 +#define TCIF_IMAGE 0x0002 +#define TCIS_HIGHLIGHTED 0x0002 +#define TCHT_ONITEMICON 0x0002 +#define ACN_STOP 2 +#define MCSC_TITLEBK 2 +#define GDTR_MAX 0x0002 +#define PGF_GRAYED 2 +#define PGF_SCROLLDOWN 2 +#define PGK_CONTROL 2 +#define PGF_CALCHEIGHT 2 +#define DPAS_INSERTBEFORE 0x0002 +#define FSB_FLAT_MODE 2 +#define SES_BEEPONMAXTEXT 2 +#define IMF_AUTOFONT 0x0002 +#define ICM_LEVEL2 0x0002 +#define TO_SIMPLELINEBREAK 2 +#define EPR_180 2 +#define CTFMODEBIAS_NAME 0x0002 +#define IMF_SMODE_NONE 0x0002 +#define EMO_PROMOTE 2 +#define VM_OUTLINE 2 +#define ENM_UPDATE 0x00000002 +#define ECOOP_OR 0x0002 +#define PC_LEADING 2 +#define IMF_FORCEENABLE 0x0002 +#define CFM_ITALIC 0x00000002 +#define CFE_ITALIC 0x0002 +#define CFU_UNDERLINEWORD 2 +#define SCF_WORD 0x0002 +#define SF_RTF 0x0002 +#define PFM_RIGHTINDENT 0x00000002 +#define PFN_ARABIC 2 +#define PFA_RIGHT 2 +#define SEL_OBJECT 0x0002 +#define ST_SELECTION 2 +#define GT_SELECTION 2 +#define GTL_PRECISE 2 +#define IDC_STATIC 2 +#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3 +#define SW_SHOWMAXIMIZED 3 +#define SW_MAXIMIZE 3 +#define SHOW_FULLSCREEN 3 +#define SW_PARENTOPENING 3 +#define VK_CANCEL 0x03 +#define WM_MOVE 0x0003 +#define PWR_CRITICALRESUME 3 +#define NF_QUERY 3 +#define UIS_INITIALIZE 3 +#define WMSZ_TOP 3 +#define HTSYSMENU 3 +#define MA_NOACTIVATE 3 +#define SIZE_MAXSHOW 3 +#define CF_METAFILEPICT 3 +#define IDABORT 3 +#define BN_UNHILITE 3 +#define LVS_LIST 0x0003 +#define LVS_TYPEMASK 0x0003 +#define LANG_CATALAN 0x03 +#define SUBLANG_ARABIC_EGYPT 0x03 +#define SUBLANG_CHINESE_HONGKONG 0x03 +#define SUBLANG_ENGLISH_AUS 0x03 +#define SUBLANG_FRENCH_CANADIAN 0x03 +#define SUBLANG_GERMAN_AUSTRIAN 0x03 +#define SUBLANG_SERBIAN_CYRILLIC 0x03 +#define SUBLANG_SPANISH_MODERN 0x03 +#define SORT_CHINESE_BOPOMOFO 0x3 +#define PSNRET_MESSAGEHANDLED 3 +#define PSBTN_OK 3 +#define CDDS_PREERASE 0x00000003 +#define HDF_JUSTIFYMASK 0x0003 +#define STD_UNDO 3 +#define VIEW_DETAILS 3 +#define HIST_ADDTOFAVORITES 3 +#define RBHT_CLIENT 0x0003 +#define TTDT_INITIAL 3 +#define TTI_ERROR 3 +#define TBTS_RIGHT 3 +#define TB_PAGEDOWN 3 +#define TBCD_CHANNEL 0x0003 +#define DL_MOVECURSOR 3 +#define LVIR_SELECTBOUNDS 3 +#define LVCFMT_JUSTIFYMASK 0x0003 +#define LVBKIF_SOURCE_MASK 0x00000003 +#define TVE_TOGGLE 0x0003 +#define TVGN_PARENT 0x0003 +#define CBENF_ESCAPE 3 +#define MCSC_TITLETEXT 3 +#define ICM_LEVEL2_5 0x0003 +#define EPR_90 3 +#define CTFMODEBIAS_READING 0x0003 +#define EMO_EXPAND 3 +#define ECOOP_AND 0x0003 +#define WB_CLASSIFY 3 +#define PC_OVERFLOW 3 +#define CFU_UNDERLINEDOUBLE 3 +#define SF_RTFNOOBJS 0x0003 +#define PFN_LCLETTER 3 +#define PFA_CENTER 3 +#define SW_SHOWNOACTIVATE 4 +#define SHOW_OPENNOACTIVATE 4 +#define SW_OTHERUNZOOM 4 +#define VK_MBUTTON 0x04 +#define NF_REQUERY 4 +#define WMSZ_TOPLEFT 4 +#define HTGROWBOX 4 +#define MA_NOACTIVATEANDEAT 4 +#define SIZE_MAXHIDE 4 +#define MK_SHIFT 0x0004 +#define CF_SYLK 4 +#define IDRETRY 4 +#define BN_DISABLE 4 +#define BST_PUSHED 0x0004 +#define HDS_HOTTRACK 0x0004 +#define TBS_TOP 0x0004 +#define TBS_LEFT 0x0004 +#define UDS_ALIGNRIGHT 0x0004 +#define PBS_VERTICAL 0x04 +#define LVS_SINGLESEL 0x0004 +#define TVS_LINESATROOT 0x0004 +#define TCS_MULTISELECT 0x0004 +#define ACS_AUTOPLAY 0x0004 +#define MCS_WEEKNUMBERS 0x0004 +#define DTS_LONGDATEFORMAT 0x0004 +#define PGS_DRAGNDROP 0x00000004 +#define NFS_LISTCOMBO 0x0004 +#define LANG_CHINESE 0x04 +#define SUBLANG_ARABIC_LIBYA 0x04 +#define SUBLANG_CHINESE_SINGAPORE 0x04 +#define SUBLANG_ENGLISH_CAN 0x04 +#define SUBLANG_FRENCH_SWISS 0x04 +#define SUBLANG_GERMAN_LUXEMBOURG 0x04 +#define SUBLANG_SPANISH_GUATEMALA 0x04 +#define VFF_BUFFTOOSMALL 0x0004 +#define PSP_USEICONID 0x00000004 +#define PSH_USEICONID 0x00000004 +#define PSWIZB_FINISH 0x00000004 +#define PSBTN_APPLYNOW 4 +#define ICC_BAR_CLASSES 0x00000004 +#define CDRF_SKIPDEFAULT 0x00000004 +#define CDDS_POSTERASE 0x00000004 +#define CDIS_DISABLED 0x0004 +#define ILC_COLOR4 0x00000004 +#define ILD_BLEND50 0x00000004 +#define ILS_SATURATE 0x00000004 +#define HDI_FORMAT 0x0004 +#define HDF_RTLREADING 0x0004 +#define HHT_ONDIVIDER 0x0004 +#define TBSTATE_ENABLED 0x04 +#define TBSTYLE_GROUP 0x0004 +#define IDB_VIEW_SMALL_COLOR 4 +#define STD_REDOW 4 +#define VIEW_SORTNAME 4 +#define HIST_VIEWTREE 4 +#define TBIF_STATE 0x00000004 +#define HICF_ACCELERATOR 0x00000004 +#define RBBS_CHILDEDGE 0x00000004 +#define RBBIM_TEXT 0x00000004 +#define RBNM_LPARAM 0x00000004 +#define RBHT_GRABBER 0x0004 +#define TTF_RTLREADING 0x0004 +#define TB_THUMBPOSITION 4 +#define HOTKEYF_ALT 0x04 +#define HKCOMB_C 0x0004 +#define LVIF_PARAM 0x0004 +#define LVIS_CUT 0x0004 +#define LVNI_CUT 0x0004 +#define LVHT_ONITEMLABEL 0x0004 +#define LVCF_TEXT 0x0004 +#define LVS_EX_CHECKBOXES 0x00000004 +#define LVKF_SHIFT 0x0004 +#define TVIF_PARAM 0x0004 +#define TVIS_CUT 0x0004 +#define TVGN_CHILD 0x0004 +#define TVHT_ONITEMLABEL 0x0004 +#define CBEIF_SELECTEDIMAGE 0x00000004 +#define CBES_EX_PATHWORDBREAKPROC 0x00000004 +#define CBENF_DROPDOWN 4 +#define TCIF_RTLREADING 0x0004 +#define TCHT_ONITEMLABEL 0x0004 +#define MCSC_MONTHBK 4 +#define PGF_DEPRESSED 4 +#define PGF_SCROLLLEFT 4 +#define PGK_MENU 4 +#define DPAS_INSERTAFTER 0x0004 +#define SES_EXTENDBACKCOLOR 4 +#define IMF_IMECANCELCOMPLETE 0x0004 +#define ICM_LEVEL2_SUI 0x0004 +#define TO_DISABLECUSTOMTEXTOUT 4 +#define CTFMODEBIAS_DATETIME 0x0004 +#define EMO_MOVESELECTION 4 +#define VM_NORMAL 4 +#define ENM_SCROLL 0x00000004 +#define ECOOP_XOR 0x0004 +#define WB_MOVEWORDLEFT 4 +#define WB_MOVEWORDPREV 4 +#define PC_DELIMITER 4 +#define IMF_FORCEDISABLE 0x0004 +#define CFM_UNDERLINE 0x00000004 +#define CFE_UNDERLINE 0x0004 +#define CFU_UNDERLINEDOTTED 4 +#define SCF_ALL 0x0004 +#define SF_TEXTIZED 0x0004 +#define PFM_OFFSET 0x00000004 +#define PFN_UCLETTER 4 +#define PFA_JUSTIFY 4 +#define PFA_FULL_INTERWORD 4 +#define SEL_MULTICHAR 0x0004 +#define ST_NEWCHARS 4 +#define GT_RAWTEXT 4 +#define GTL_CLOSE 4 +#define BOM_NEUTRALOVERRIDE 0x0004 +#define BOE_NEUTRALOVERRIDE 0x0004 +#define SW_SHOW 5 +#define VK_XBUTTON1 0x05 +#define WM_SIZE 0x0005 +#define WMSZ_TOPRIGHT 5 +#define HTMENU 5 +#define CF_DIF 5 +#define IDIGNORE 5 +#define BN_DOUBLECLICKED 5 +#define LANG_CZECH 0x05 +#define SUBLANG_ARABIC_ALGERIA 0x05 +#define SUBLANG_CHINESE_MACAU 0x05 +#define SUBLANG_ENGLISH_NZ 0x05 +#define SUBLANG_FRENCH_LUXEMBOURG 0x05 +#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 +#define SUBLANG_SPANISH_COSTA_RICA 0x05 +#define PSBTN_CANCEL 5 +#define COMCTL32_VERSION 5 +#define IDB_VIEW_LARGE_COLOR 5 +#define STD_DELETE 5 +#define VIEW_SORTSIZE 5 +#define TB_THUMBTRACK 5 +#define LVA_SNAPTOGRID 0x0005 +#define TVGN_FIRSTVISIBLE 0x0005 +#define MCSC_TRAILINGTEXT 5 +#define ICM_CTF 0x0005 +#define CTFMODEBIAS_CONVERSATION 0x0005 +#define EMO_GETVIEWMODE 5 +#define WB_MOVEWORDRIGHT 5 +#define WB_MOVEWORDNEXT 5 +#define CFU_UNDERLINEDASH 5 +#define PFN_LCROMAN 5 +#define PFA_FULL_INTERLETTER 5 +#define SW_MINIMIZE 6 +#define VK_XBUTTON2 0x06 +#define WM_ACTIVATE 0x0006 +#define WMSZ_BOTTOM 6 +#define HTHSCROLL 6 +#define CF_TIFF 6 +#define IDYES 6 +#define BN_SETFOCUS 6 +#define LANG_DANISH 0x06 +#define SUBLANG_ARABIC_MOROCCO 0x06 +#define SUBLANG_ENGLISH_EIRE 0x06 +#define SUBLANG_FRENCH_MONACO 0x06 +#define SUBLANG_SPANISH_PANAMA 0x06 +#define PSBTN_HELP 6 +#define PSBTN_MAX 6 +#define STD_FILENEW 6 +#define VIEW_SORTDATE 6 +#define TB_TOP 6 +#define TVGN_NEXTVISIBLE 0x0006 +#define CTFMODEBIAS_NUMERIC 0x0006 +#define WB_LEFTBREAK 6 +#define WB_PREVBREAK 6 +#define CFU_UNDERLINEDASHDOT 6 +#define PFN_UCROMAN 6 +#define PFA_FULL_SCALED 6 +#define SW_SHOWMINNOACTIVE 7 +#define WM_SETFOCUS 0x0007 +#define WMSZ_BOTTOMLEFT 7 +#define HTVSCROLL 7 +#define CF_OEMTEXT 7 +#define IDNO 7 +#define BN_KILLFOCUS 7 +#define LANG_GERMAN 0x07 +#define SUBLANG_ARABIC_TUNISIA 0x07 +#define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 +#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 +#define STD_FILEOPEN 7 +#define VIEW_SORTTYPE 7 +#define TB_BOTTOM 7 +#define TVGN_PREVIOUSVISIBLE 0x0007 +#define CTFMODEBIAS_HIRAGANA 0x0007 +#define WB_RIGHTBREAK 7 +#define WB_NEXTBREAK 7 +#define CFU_UNDERLINEDASHDOTDOT 7 +#define PFA_FULL_GLYPHS 7 +#define SW_SHOWNA 8 +#define VK_BACK 0x08 +#define WM_KILLFOCUS 0x0008 +#define WMSZ_BOTTOMRIGHT 8 +#define HTMINBUTTON 8 +#define SMTO_NOTIMEOUTIFNOTHUNG 0x0008 +#define MK_CONTROL 0x0008 +#define CS_DBLCLKS 0x0008 +#define CF_DIB 8 +#define IDCLOSE 8 +#define BST_FOCUS 0x0008 +#define HDS_HIDDEN 0x0008 +#define TBS_BOTH 0x0008 +#define UDS_ALIGNLEFT 0x0008 +#define LVS_SHOWSELALWAYS 0x0008 +#define TVS_EDITLABELS 0x0008 +#define TCS_FLATBUTTONS 0x0008 +#define ACS_TIMER 0x0008 +#define MCS_NOTODAYCIRCLE 0x0008 +#define NFS_BUTTON 0x0008 +#define LANG_GREEK 0x08 +#define SUBLANG_ARABIC_OMAN 0x08 +#define SUBLANG_ENGLISH_JAMAICA 0x08 +#define SUBLANG_SPANISH_VENEZUELA 0x08 +#define PSP_USETITLE 0x00000008 +#define PSH_PROPSHEETPAGE 0x00000008 +#define PSWIZB_DISABLEDFINISH 0x00000008 +#define ICC_TAB_CLASSES 0x00000008 +#define CDIS_CHECKED 0x0008 +#define ILC_COLOR8 0x00000008 +#define ILS_ALPHA 0x00000008 +#define HDI_LPARAM 0x0008 +#define HHT_ONDIVOPEN 0x0008 +#define TBSTATE_HIDDEN 0x08 +#define TBSTYLE_DROPDOWN 0x0008 +#define TBSTYLE_EX_MIXEDBUTTONS 0x00000008 +#define IDB_HIST_SMALL_COLOR 8 +#define STD_FILESAVE 8 +#define VIEW_PARENTFOLDER 8 +#define TBIF_STYLE 0x00000008 +#define HICF_DUPACCEL 0x00000008 +#define RBBS_HIDDEN 0x00000008 +#define RBBIM_IMAGE 0x00000008 +#define RBHT_CHEVRON 0x0008 +#define TB_ENDTRACK 8 +#define HOTKEYF_EXT 0x08 +#define HKCOMB_A 0x0008 +#define LVIF_STATE 0x0008 +#define LVIS_DROPHILITED 0x0008 +#define LVNI_DROPHILITED 0x0008 +#define LVFI_PARTIAL 0x0008 +#define LVHT_ONITEMSTATEICON 0x0008 +#define LVHT_ABOVE 0x0008 +#define LVCF_SUBITEM 0x0008 +#define LVS_EX_TRACKSELECT 0x00000008 +#define TVIF_STATE 0x0008 +#define TVIS_DROPHILITED 0x0008 +#define TVGN_DROPHILITE 0x0008 +#define TVHT_ONITEMINDENT 0x0008 +#define CBEIF_OVERLAY 0x00000008 +#define CBES_EX_NOSIZELIMIT 0x00000008 +#define TCIF_PARAM 0x0008 +#define PGF_HOT 8 +#define PGF_SCROLLRIGHT 8 +#define SES_MAPCPS 8 +#define IMF_IMEALWAYSSENDNOTIFY 0x0008 +#define TO_ADVANCEDLAYOUT 8 +#define CTFMODEBIAS_KATAKANA 0x0008 +#define ENM_SCROLLEVENTS 0x00000008 +#define ES_NOOLEDRAGDROP 0x00000008 +#define IMF_CLOSESTATUSWINDOW 0x0008 +#define CFM_STRIKEOUT 0x00000008 +#define CFE_STRIKEOUT 0x0008 +#define CFU_UNDERLINEWAVE 8 +#define SCF_USEUIRULES 0x0008 +#define PFM_ALIGNMENT 0x00000008 +#define PFA_SNAP_GRID 8 +#define SEL_MULTIOBJECT 0x0008 +#define GT_NOHIDDENTEXT 8 +#define GTL_NUMCHARS 8 +#define BOM_CONTEXTREADING 0x0008 +#define BOE_CONTEXTREADING 0x0008 +#define SW_RESTORE 9 +#define VK_TAB 0x09 +#define HTMAXBUTTON 9 +#define CF_PALETTE 9 +#define IDHELP 9 +#define DTS_TIMEFORMAT 0x0009 +#define LANG_ENGLISH 0x09 +#define SUBLANG_ARABIC_YEMEN 0x09 +#define SUBLANG_ENGLISH_CARIBBEAN 0x09 +#define SUBLANG_SPANISH_COLOMBIA 0x09 +#define IDB_HIST_LARGE_COLOR 9 +#define STD_PRINTPRE 9 +#define VIEW_NETCONNECT 9 +#define TVGN_CARET 0x0009 +#define CTFMODEBIAS_HANGUL 0x0009 +#define VM_PAGE 9 +#define CFU_UNDERLINETHICK 9 +#define SW_SHOWDEFAULT 10 +#define WM_ENABLE 0x000A +#define HTLEFT 10 +#define CF_PENDATA 10 +#define IDTRYAGAIN 10 +#define HELP_CONTEXTMENU 0x000a +#define LANG_SPANISH 0x0a +#define SUBLANG_ARABIC_SYRIA 0x0a +#define SUBLANG_ENGLISH_BELIZE 0x0a +#define SUBLANG_SPANISH_PERU 0x0a +#define STD_PROPERTIES 10 +#define VIEW_NETDISCONNECT 10 +#define TVGN_LASTVISIBLE 0x000A +#define CTFMODEBIAS_HALFWIDTHKATAKANA 0x000A +#define CFU_UNDERLINEHAIRLINE 10 +#define SW_FORCEMINIMIZE 11 +#define SW_MAX 11 +#define WM_SETREDRAW 0x000B +#define HTRIGHT 11 +#define CF_RIFF 11 +#define IDCONTINUE 11 +#define HELP_FINDER 0x000b +#define LANG_FINNISH 0x0b +#define SUBLANG_ARABIC_JORDAN 0x0b +#define SUBLANG_ENGLISH_TRINIDAD 0x0b +#define SUBLANG_SPANISH_ARGENTINA 0x0b +#define STD_HELP 11 +#define VIEW_NEWFOLDER 11 +#define CTFMODEBIAS_FULLWIDTHALPHANUMERIC 0x000B +#define CFU_UNDERLINEDOUBLEWAVE 11 +#define VK_CLEAR 0x0C +#define WM_SETTEXT 0x000C +#define HTTOP 12 +#define CF_WAVE 12 +#define HELP_WM_HELP 0x000c +#define DTS_SHORTDATECENTURYFORMAT 0x000C +#define LANG_FRENCH 0x0c +#define SUBLANG_ARABIC_LEBANON 0x0c +#define SUBLANG_ENGLISH_ZIMBABWE 0x0c +#define SUBLANG_SPANISH_ECUADOR 0x0c +#define STD_FIND 12 +#define VIEW_VIEWMENU 12 +#define CTFMODEBIAS_HALFWIDTHALPHANUMERIC 0x000C +#define CFU_UNDERLINEHEAVYWAVE 12 +#define VK_RETURN 0x0D +#define WM_GETTEXT 0x000D +#define HTTOPLEFT 13 +#define CF_UNICODETEXT 13 +#define HELP_SETPOPUP_POS 0x000d +#define LANG_HEBREW 0x0d +#define SUBLANG_ARABIC_KUWAIT 0x0d +#define SUBLANG_ENGLISH_PHILIPPINES 0x0d +#define SUBLANG_SPANISH_CHILE 0x0d +#define STD_REPLACE 13 +#define CFU_UNDERLINELONGDASH 13 +#define WM_GETTEXTLENGTH 0x000E +#define HTTOPRIGHT 14 +#define CF_ENHMETAFILE 14 +#define LANG_HUNGARIAN 0x0e +#define SUBLANG_ARABIC_UAE 0x0e +#define SUBLANG_SPANISH_URUGUAY 0x0e +#define STD_PRINT 14 +#define CFU_UNDERLINETHICKDASH 14 +#define WM_PAINT 0x000F +#define HTBOTTOM 15 +#define CF_HDROP 15 +#define LANG_ICELANDIC 0x0f +#define SUBLANG_ARABIC_BAHRAIN 0x0f +#define SUBLANG_SPANISH_PARAGUAY 0x0f +#define CFU_UNDERLINETHICKDASHDOT 15 +#define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID 16 +#define VK_SHIFT 0x10 +#define WM_CLOSE 0x0010 +#define HTBOTTOMLEFT 16 +#define WVR_ALIGNTOP 0x0010 +#define MK_MBUTTON 0x0010 +#define TME_NONCLIENT 0x00000010 +#define CF_LOCALE 16 +#define HELP_TCARD_DATA 0x0010 +#define TTS_NOANIMATE 0x10 +#define TBS_NOTICKS 0x0010 +#define UDS_AUTOBUDDY 0x0010 +#define LVS_SORTASCENDING 0x0010 +#define TVS_DISABLEDRAGDROP 0x0010 +#define TCS_FORCEICONLEFT 0x0010 +#define MCS_NOTODAY 0x0010 +#define DTS_APPCANPARSE 0x0010 +#define NFS_ALL 0x0010 +#define LANG_ITALIAN 0x10 +#define SUBLANG_ARABIC_QATAR 0x10 +#define SUBLANG_SPANISH_BOLIVIA 0x10 +#define PSP_RTLREADING 0x00000010 +#define PSH_WIZARDHASFINISH 0x00000010 +#define ICC_UPDOWN_CLASS 0x00000010 +#define CDRF_NOTIFYPOSTPAINT 0x00000010 +#define CDIS_FOCUS 0x0010 +#define ILC_COLOR16 0x00000010 +#define ILD_MASK 0x00000010 +#define HDI_BITMAP 0x0010 +#define HHT_ONFILTER 0x0010 +#define TBSTATE_INDETERMINATE 0x10 +#define TBSTYLE_AUTOSIZE 0x0010 +#define TBSTYLE_EX_HIDECLIPPEDBUTTONS 0x00000010 +#define TBIF_LPARAM 0x00000010 +#define HICF_ENTERING 0x00000010 +#define RBBS_NOVERT 0x00000010 +#define RBBIM_CHILD 0x00000010 +#define TTF_SUBCLASS 0x0010 +#define HKCOMB_SC 0x0010 +#define LVIF_INDENT 0x0010 +#define LVIS_GLOW 0x0010 +#define LVHT_BELOW 0x0010 +#define LVCF_IMAGE 0x0010 +#define LVS_EX_HEADERDRAGDROP 0x00000010 +#define LV_MAX_WORKAREAS 16 +#define LVBKIF_STYLE_TILE 0x00000010 +#define LVBKIF_STYLE_MASK 0x00000010 +#define TVIF_HANDLE 0x0010 +#define TVIS_BOLD 0x0010 +#define TVHT_ONITEMBUTTON 0x0010 +#define CBEIF_INDENT 0x00000010 +#define CBES_EX_CASESENSITIVE 0x00000010 +#define TCIF_STATE 0x0010 +#define SES_EMULATE10 16 +#define IMF_AUTOFONTSIZEADJUST 0x0010 +#define ENM_DRAGDROPDONE 0x00000010 +#define WBF_WORDWRAP 0x010 +#define CFM_PROTECTED 0x00000010 +#define CFE_PROTECTED 0x0010 +#define CFU_UNDERLINETHICKDASHDOTDOT 16 +#define SCF_ASSOCIATEFONT 0x0010 +#define SF_UNICODE 0x0010 +#define PFM_TABSTOPS 0x00000010 +#define GTL_NUMBYTES 16 +#define BOM_CONTEXTALIGNMENT 0x0010 +#define BOE_CONTEXTALIGNMENT 0x0010 +#define VK_CONTROL 0x11 +#define WM_QUERYENDSESSION 0x0011 +#define HTBOTTOMRIGHT 17 +#define CF_DIBV5 17 +#define HELP_TCARD_OTHER_CALLER 0x0011 +#define LANG_JAPANESE 0x11 +#define SUBLANG_SPANISH_EL_SALVADOR 0x11 +#define CFU_UNDERLINETHICKDOTTED 17 +#define VK_MENU 0x12 +#define WM_QUIT 0x0012 +#define HTBORDER 18 +#define CF_MAX 18 +#define LANG_KOREAN 0x12 +#define SUBLANG_SPANISH_HONDURAS 0x12 +#define CFU_UNDERLINETHICKLONGDASH 18 +#define VK_PAUSE 0x13 +#define WM_QUERYOPEN 0x0013 +#define HTOBJECT 19 +#define LANG_DUTCH 0x13 +#define SUBLANG_SPANISH_NICARAGUA 0x13 +#define VK_CAPITAL 0x14 +#define WM_ERASEBKGND 0x0014 +#define HTCLOSE 20 +#define LANG_NORWEGIAN 0x14 +#define SUBLANG_SPANISH_PUERTO_RICO 0x14 +#define VK_KANA 0x15 +#define VK_HANGEUL 0x15 +#define VK_HANGUL 0x15 +#define WM_SYSCOLORCHANGE 0x0015 +#define HTHELP 21 +#define LANG_POLISH 0x15 +#define WM_ENDSESSION 0x0016 +#define LANG_PORTUGUESE 0x16 +#define VK_JUNJA 0x17 +#define RT_MANIFEST 24 +#define VK_FINAL 0x18 +#define WM_SHOWWINDOW 0x0018 +#define LANG_ROMANIAN 0x18 +#define ILC_COLOR24 0x00000018 +#define VK_HANJA 0x19 +#define VK_KANJI 0x19 +#define LANG_RUSSIAN 0x19 +#define WM_WININICHANGE 0x001A +#define LANG_CROATIAN 0x1a +#define LANG_SERBIAN 0x1a +#define VK_ESCAPE 0x1B +#define WM_DEVMODECHANGE 0x001B +#define LANG_SLOVAK 0x1b +#define VK_CONVERT 0x1C +#define WM_ACTIVATEAPP 0x001C +#define LANG_ALBANIAN 0x1c +#define VK_NONCONVERT 0x1D +#define WM_FONTCHANGE 0x001D +#define LANG_SWEDISH 0x1d +#define VK_ACCEPT 0x1E +#define WM_TIMECHANGE 0x001E +#define LANG_THAI 0x1e +#define VK_MODECHANGE 0x1F +#define WM_CANCELMODE 0x001F +#define LANG_TURKISH 0x1f +#define VK_SPACE 0x20 +#define WM_SETCURSOR 0x0020 +#define WVR_ALIGNLEFT 0x0020 +#define MK_XBUTTON1 0x0020 +#define CS_OWNDC 0x0020 +#define TTS_NOFADE 0x20 +#define TBS_ENABLESELRANGE 0x0020 +#define UDS_ARROWKEYS 0x0020 +#define LVS_SORTDESCENDING 0x0020 +#define TVS_SHOWSELALWAYS 0x0020 +#define TCS_FORCELABELLEFT 0x0020 +#define DTS_RIGHTALIGN 0x0020 +#define NFS_USEFONTASSOC 0x0020 +#define LANG_URDU 0x20 +#define PSP_HASHELP 0x00000020 +#define PSH_WIZARD 0x00000020 +#define ICC_PROGRESS_CLASS 0x00000020 +#define CDRF_NOTIFYITEMDRAW 0x00000020 +#define CDRF_NOTIFYSUBITEMDRAW 0x00000020 +#define CDIS_DEFAULT 0x0020 +#define ILC_COLOR32 0x00000020 +#define ILD_IMAGE 0x00000020 +#define HDI_IMAGE 0x0020 +#define HHT_ONFILTERBUTTON 0x0020 +#define TBSTATE_WRAP 0x20 +#define TBSTYLE_NOPREFIX 0x0020 +#define TBIF_COMMAND 0x00000020 +#define HICF_LEAVING 0x00000020 +#define RBBS_FIXEDBMP 0x00000020 +#define RBBIM_CHILDSIZE 0x00000020 +#define TTF_TRACK 0x0020 +#define HKCOMB_SA 0x0020 +#define LVIS_ACTIVATING 0x0020 +#define LVFI_WRAP 0x0020 +#define LVHT_TORIGHT 0x0020 +#define LVCF_ORDER 0x0020 +#define LVS_EX_FULLROWSELECT 0x00000020 +#define TVIF_SELECTEDIMAGE 0x0020 +#define TVIS_EXPANDED 0x0020 +#define TVHT_ONITEMRIGHT 0x0020 +#define CBEIF_LPARAM 0x00000020 +#define SES_USECRLF 32 +#define IMF_UIFONTS 0x0020 +#define ENM_PARAGRAPHEXPANDED 0x00000020 +#define WBF_WORDBREAK 0x020 +#define IMF_VERTICAL 0x0020 +#define CFM_LINK 0x00000020 +#define CFE_LINK 0x0020 +#define SCF_NOKBUPDATE 0x0020 +#define SF_USECODEPAGE 0x0020 +#define MAX_TAB_STOPS 32 +#define PFM_NUMBERING 0x00000020 +#define VK_PRIOR 0x21 +#define WM_MOUSEACTIVATE 0x0021 +#define LANG_INDONESIAN 0x21 +#define VK_NEXT 0x22 +#define WM_CHILDACTIVATE 0x0022 +#define LANG_UKRAINIAN 0x22 +#define VK_END 0x23 +#define WM_QUEUESYNC 0x0023 +#define LANG_BELARUSIAN 0x23 +#define VK_HOME 0x24 +#define WM_GETMINMAXINFO 0x0024 +#define LANG_SLOVENIAN 0x24 +#define VK_LEFT 0x25 +#define LANG_ESTONIAN 0x25 +#define VK_UP 0x26 +#define WM_PAINTICON 0x0026 +#define LANG_LATVIAN 0x26 +#define VK_RIGHT 0x27 +#define WM_ICONERASEBKGND 0x0027 +#define LANG_LITHUANIAN 0x27 +#define VK_DOWN 0x28 +#define WM_NEXTDLGCTL 0x0028 +#define VK_SELECT 0x29 +#define LANG_FARSI 0x29 +#define VK_PRINT 0x2A +#define WM_SPOOLERSTATUS 0x002A +#define LANG_VIETNAMESE 0x2a +#define VK_EXECUTE 0x2B +#define WM_DRAWITEM 0x002B +#define LANG_ARMENIAN 0x2b +#define VK_SNAPSHOT 0x2C +#define WM_MEASUREITEM 0x002C +#define LANG_AZERI 0x2c +#define VK_INSERT 0x2D +#define WM_DELETEITEM 0x002D +#define LANG_BASQUE 0x2d +#define VK_DELETE 0x2E +#define WM_VKEYTOITEM 0x002E +#define VK_HELP 0x2F +#define WM_CHARTOITEM 0x002F +#define LANG_MACEDONIAN 0x2f +#define WM_SETFONT 0x0030 +#define WM_GETFONT 0x0031 +#define WM_SETHOTKEY 0x0032 +#define WM_GETHOTKEY 0x0033 +#define LANG_AFRIKAANS 0x36 +#define WM_QUERYDRAGICON 0x0037 +#define LANG_GEORGIAN 0x37 +#define LANG_FAEROESE 0x38 +#define WM_COMPAREITEM 0x0039 +#define LANG_HINDI 0x39 +#define WM_GETOBJECT 0x003D +#define LANG_MALAY 0x3e +#define LANG_KAZAK 0x3f +#define MAX_TABLE_CELLS 63 +#define WVR_ALIGNBOTTOM 0x0040 +#define MK_XBUTTON2 0x0040 +#define CS_CLASSDC 0x0040 +#define HDS_DRAGDROP 0x0040 +#define TTS_BALLOON 0x40 +#define TBS_FIXEDLENGTH 0x0040 +#define UDS_HORZ 0x0040 +#define LVS_SHAREIMAGELISTS 0x0040 +#define TVS_RTLREADING 0x0040 +#define TCS_HOTTRACK 0x0040 +#define LANG_KYRGYZ 0x40 +#define PSP_USEREFPARENT 0x00000040 +#define PSH_USEPSTARTPAGE 0x00000040 +#define ICC_HOTKEY_CLASS 0x00000040 +#define CDRF_NOTIFYPOSTERASE 0x00000040 +#define CDIS_HOT 0x0040 +#define ILD_ROP 0x00000040 +#define HDI_DI_SETITEM 0x0040 +#define TBSTATE_ELLIPSES 0x40 +#define BTNS_SHOWTEXT 0x0040 +#define TBIF_SIZE 0x00000040 +#define HICF_RESELECT 0x00000040 +#define RBBS_VARIABLEHEIGHT 0x00000040 +#define RBBIM_SIZE 0x00000040 +#define HKCOMB_CA 0x0040 +#define LVFI_NEARESTXY 0x0040 +#define LVHT_TOLEFT 0x0040 +#define LVS_EX_ONECLICKACTIVATE 0x00000040 +#define TVIF_CHILDREN 0x0040 +#define TVIS_EXPANDEDONCE 0x0040 +#define TVHT_ONITEMSTATEICON 0x0040 +#define SES_USEAIMM 64 +#define ENM_PAGECHANGE 0x00000040 +#define ECO_AUTOVSCROLL 0x00000040 +#define WBF_OVERFLOW 0x040 +#define IMF_FORCEACTIVE 0x0040 +#define CFM_SMALLCAPS 0x0040 +#define SCF_ASSOCIATEFONT2 0x0040 +#define SF_NCRFORNONASCII 0x40 +#define PFM_SPACEBEFORE 0x00000040 +#define WM_COMPACTING 0x0041 +#define LANG_SWAHILI 0x41 +#define LANG_UZBEK 0x43 +#define WM_COMMNOTIFY 0x0044 +#define LANG_TATAR 0x44 +#define LANG_BENGALI 0x45 +#define WM_WINDOWPOSCHANGING 0x0046 +#define LANG_PUNJABI 0x46 +#define WM_WINDOWPOSCHANGED 0x0047 +#define LANG_GUJARATI 0x47 +#define WM_POWER 0x0048 +#define LANG_ORIYA 0x48 +#define LANG_TAMIL 0x49 +#define WM_COPYDATA 0x004A +#define LANG_TELUGU 0x4a +#define WM_CANCELJOURNAL 0x004B +#define LANG_KANNADA 0x4b +#define LANG_MALAYALAM 0x4c +#define LANG_ASSAMESE 0x4d +#define WM_NOTIFY 0x004E +#define LANG_MARATHI 0x4e +#define LANG_SANSKRIT 0x4f +#define WM_INPUTLANGCHANGEREQUEST 0x0050 +#define LANG_MONGOLIAN 0x50 +#define WIZ_CXBMP 80 +#define WM_INPUTLANGCHANGE 0x0051 +#define WM_TCARD 0x0052 +#define WM_HELP 0x0053 +#define WM_USERCHANGED 0x0054 +#define WM_NOTIFYFORMAT 0x0055 +#define LANG_GALICIAN 0x56 +#define LANG_KONKANI 0x57 +#define LANG_MANIPURI 0x58 +#define LANG_SINDHI 0x59 +#define LANG_SYRIAC 0x5a +#define VK_LWIN 0x5B +#define VK_RWIN 0x5C +#define WIZ_BODYX 92 +#define VK_APPS 0x5D +#define VK_SLEEP 0x5F +#define VK_NUMPAD0 0x60 +#define LANG_KASHMIRI 0x60 +#define VK_NUMPAD1 0x61 +#define LANG_NEPALI 0x61 +#define VK_NUMPAD2 0x62 +#define VK_NUMPAD3 0x63 +#define VK_NUMPAD4 0x64 +#define VS_USER_DEFINED 100 +#define MAXPROPPAGES 100 +#define ODT_HEADER 100 +#define VK_NUMPAD5 0x65 +#define LANG_DIVEHI 0x65 +#define ODT_TAB 101 +#define IDD_DIALOG1 101 +#define VK_NUMPAD6 0x66 +#define ODT_LISTVIEW 102 +#define IDI_ICON1 102 +#define VK_NUMPAD7 0x67 +#define IDB_BITMAP1 103 +#define VK_NUMPAD8 0x68 +#define VK_NUMPAD9 0x69 +#define VK_MULTIPLY 0x6A +#define VK_ADD 0x6B +#define VK_SEPARATOR 0x6C +#define VK_SUBTRACT 0x6D +#define VK_DECIMAL 0x6E +#define VK_DIVIDE 0x6F +#define VK_F1 0x70 +#define VK_F2 0x71 +#define VK_F3 0x72 +#define VK_F4 0x73 +#define VK_F5 0x74 +#define VK_F6 0x75 +#define VK_F7 0x76 +#define VK_F8 0x77 +#define VK_F9 0x78 +#define WHEEL_DELTA 120 +#define VK_F10 0x79 +#define VK_F11 0x7A +#define VK_F12 0x7B +#define WM_CONTEXTMENU 0x007B +#define VK_F13 0x7C +#define WM_STYLECHANGING 0x007C +#define VK_F14 0x7D +#define WM_STYLECHANGED 0x007D +#define VK_F15 0x7E +#define WM_DISPLAYCHANGE 0x007E +#define VK_F16 0x7F +#define WM_GETICON 0x007F +#define LANG_INVARIANT 0x7f +#define VK_F17 0x80 +#define WM_SETICON 0x0080 +#define WVR_ALIGNRIGHT 0x0080 +#define CS_PARENTDC 0x0080 +#define CF_OWNERDISPLAY 0x0080 +#define HDS_FULLDRAG 0x0080 +#define TTS_CLOSE 0x80 +#define TBS_NOTHUMB 0x0080 +#define UDS_NOTHOUSANDS 0x0080 +#define LVS_NOLABELWRAP 0x0080 +#define TVS_NOTOOLTIPS 0x0080 +#define TCS_VERTICAL 0x0080 +#define PSP_USECALLBACK 0x00000080 +#define PSH_NOAPPLYNOW 0x00000080 +#define ICC_ANIMATE_CLASS 0x00000080 +#define CDIS_MARKED 0x0080 +#define HDI_ORDER 0x0080 +#define TBSTATE_MARKED 0x80 +#define BTNS_WHOLEDROPDOWN 0x0080 +#define HICF_LMOUSE 0x00000080 +#define RBBS_GRIPPERALWAYS 0x00000080 +#define RBBIM_BACKGROUND 0x00000080 +#define TTF_ABSOLUTE 0x0080 +#define HKCOMB_SCA 0x0080 +#define LVS_EX_TWOCLICKACTIVATE 0x00000080 +#define TVIF_INTEGRAL 0x0080 +#define TVIS_EXPANDPARTIAL 0x0080 +#define SES_NOIME 128 +#define IMF_DUALFONT 0x0080 +#define ECO_AUTOHSCROLL 0x00000080 +#define WBF_LEVEL1 0x080 +#define IMF_FORCEINACTIVE 0x0080 +#define CFM_ALLCAPS 0x0080 +#define SFF_WRITEXTRAPAR 0x80 +#define PFM_SPACEAFTER 0x00000080 +#define VK_F18 0x81 +#define WM_NCCREATE 0x0081 +#define CF_DSPTEXT 0x0081 +#define VK_F19 0x82 +#define WM_NCDESTROY 0x0082 +#define CF_DSPBITMAP 0x0082 +#define VK_F20 0x83 +#define WM_NCCALCSIZE 0x0083 +#define CF_DSPMETAFILEPICT 0x0083 +#define VK_F21 0x84 +#define WM_NCHITTEST 0x0084 +#define VK_F22 0x85 +#define WM_NCPAINT 0x0085 +#define VK_F23 0x86 +#define WM_NCACTIVATE 0x0086 +#define VK_F24 0x87 +#define WM_GETDLGCODE 0x0087 +#define WM_SYNCPAINT 0x0088 +#define WIZ_CYDLG 140 +#define CF_DSPENHMETAFILE 0x008E +#define VK_NUMLOCK 0x90 +#define VK_SCROLL 0x91 +#define VK_OEM_NEC_EQUAL 0x92 +#define VK_OEM_FJ_JISHO 0x92 +#define VK_OEM_FJ_MASSHOU 0x93 +#define VK_OEM_FJ_TOUROKU 0x94 +#define VK_OEM_FJ_LOYA 0x95 +#define VK_OEM_FJ_ROYA 0x96 +#define VK_LSHIFT 0xA0 +#define WM_NCMOUSEMOVE 0x00A0 +#define VK_RSHIFT 0xA1 +#define WM_NCLBUTTONDOWN 0x00A1 +#define VK_LCONTROL 0xA2 +#define WM_NCLBUTTONUP 0x00A2 +#define VK_RCONTROL 0xA3 +#define WM_NCLBUTTONDBLCLK 0x00A3 +#define VK_LMENU 0xA4 +#define WM_NCRBUTTONDOWN 0x00A4 +#define VK_RMENU 0xA5 +#define WM_NCRBUTTONUP 0x00A5 +#define VK_BROWSER_BACK 0xA6 +#define WM_NCRBUTTONDBLCLK 0x00A6 +#define VK_BROWSER_FORWARD 0xA7 +#define WM_NCMBUTTONDOWN 0x00A7 +#define VK_BROWSER_REFRESH 0xA8 +#define WM_NCMBUTTONUP 0x00A8 +#define VK_BROWSER_STOP 0xA9 +#define WM_NCMBUTTONDBLCLK 0x00A9 +#define VK_BROWSER_SEARCH 0xAA +#define VK_BROWSER_FAVORITES 0xAB +#define WM_NCXBUTTONDOWN 0x00AB +#define VK_BROWSER_HOME 0xAC +#define WM_NCXBUTTONUP 0x00AC +#define VK_VOLUME_MUTE 0xAD +#define WM_NCXBUTTONDBLCLK 0x00AD +#define VK_VOLUME_DOWN 0xAE +#define VK_VOLUME_UP 0xAF +#define VK_MEDIA_NEXT_TRACK 0xB0 +#define EM_GETSEL 0x00B0 +#define VK_MEDIA_PREV_TRACK 0xB1 +#define EM_SETSEL 0x00B1 +#define VK_MEDIA_STOP 0xB2 +#define EM_GETRECT 0x00B2 +#define VK_MEDIA_PLAY_PAUSE 0xB3 +#define EM_SETRECT 0x00B3 +#define VK_LAUNCH_MAIL 0xB4 +#define EM_SETRECTNP 0x00B4 +#define VK_LAUNCH_MEDIA_SELECT 0xB5 +#define EM_SCROLL 0x00B5 +#define VK_LAUNCH_APP1 0xB6 +#define EM_LINESCROLL 0x00B6 +#define VK_LAUNCH_APP2 0xB7 +#define EM_SCROLLCARET 0x00B7 +#define EM_GETMODIFY 0x00B8 +#define WIZ_BODYCX 184 +#define EM_SETMODIFY 0x00B9 +#define VK_OEM_1 0xBA +#define EM_GETLINECOUNT 0x00BA +#define VK_OEM_PLUS 0xBB +#define EM_LINEINDEX 0x00BB +#define VK_OEM_COMMA 0xBC +#define EM_SETHANDLE 0x00BC +#define PROP_SM_CYDLG 188 +#define VK_OEM_MINUS 0xBD +#define EM_GETHANDLE 0x00BD +#define VK_OEM_PERIOD 0xBE +#define EM_GETTHUMB 0x00BE +#define VK_OEM_2 0xBF +#define VK_OEM_3 0xC0 +#define EM_LINELENGTH 0x00C1 +#define EM_REPLACESEL 0x00C2 +#define EM_GETLINE 0x00C4 +#define EM_LIMITTEXT 0x00C5 +#define EM_CANUNDO 0x00C6 +#define EM_UNDO 0x00C7 +#define EM_FMTLINES 0x00C8 +#define EM_LINEFROMCHAR 0x00C9 +#define EM_SETTABSTOPS 0x00CB +#define EM_SETPASSWORDCHAR 0x00CC +#define EM_EMPTYUNDOBUFFER 0x00CD +#define EM_GETFIRSTVISIBLELINE 0x00CE +#define EM_SETREADONLY 0x00CF +#define EM_SETWORDBREAKPROC 0x00D0 +#define EM_GETWORDBREAKPROC 0x00D1 +#define EM_GETPASSWORDCHAR 0x00D2 +#define EM_SETMARGINS 0x00D3 +#define EM_GETMARGINS 0x00D4 +#define PROP_SM_CXDLG 212 +#define EM_GETLIMITTEXT 0x00D5 +#define EM_POSFROMCHAR 0x00D6 +#define EM_CHARFROMPOS 0x00D7 +#define PROP_MED_CYDLG 215 +#define EM_SETIMESTATUS 0x00D8 +#define EM_GETIMESTATUS 0x00D9 +#define PROP_LG_CYDLG 218 +#define VK_OEM_4 0xDB +#define VK_OEM_5 0xDC +#define VK_OEM_6 0xDD +#define VK_OEM_7 0xDE +#define VK_OEM_8 0xDF +#define VK_OEM_AX 0xE1 +#define VK_OEM_102 0xE2 +#define VK_ICO_HELP 0xE3 +#define PROP_MED_CXDLG 227 +#define VK_ICO_00 0xE4 +#define VK_PROCESSKEY 0xE5 +#define VK_ICO_CLEAR 0xE6 +#define VK_PACKET 0xE7 +#define VK_OEM_RESET 0xE9 +#define VK_OEM_JUMP 0xEA +#define VK_OEM_PA1 0xEB +#define VK_OEM_PA2 0xEC +#define VK_OEM_PA3 0xED +#define VK_OEM_WSCTRL 0xEE +#define VK_OEM_CUSEL 0xEF +#define VK_OEM_ATTN 0xF0 +#define BM_GETCHECK 0x00F0 +#define VK_OEM_FINISH 0xF1 +#define BM_SETCHECK 0x00F1 +#define VK_OEM_COPY 0xF2 +#define BM_GETSTATE 0x00F2 +#define VK_OEM_AUTO 0xF3 +#define BM_SETSTATE 0x00F3 +#define VK_OEM_ENLW 0xF4 +#define BM_SETSTYLE 0x00F4 +#define VK_OEM_BACKTAB 0xF5 +#define BM_CLICK 0x00F5 +#define VK_ATTN 0xF6 +#define BM_GETIMAGE 0x00F6 +#define VK_CRSEL 0xF7 +#define BM_SETIMAGE 0x00F7 +#define VK_EXSEL 0xF8 +#define VK_EREOF 0xF9 +#define VK_PLAY 0xFA +#define VK_ZOOM 0xFB +#define VK_NONAME 0xFC +#define PROP_LG_CXDLG 252 +#define VK_PA1 0xFD +#define VK_OEM_CLEAR 0xFE +#define ILC_COLORDDB 0x000000FE +#define CFU_INVERT 0xFE +#define ICC_WIN95_CLASSES 0x000000FF +#define SB_SIMPLEID 0x00ff +#define CFU_CF1UNDERLINE 0xFF +#define WM_KEYFIRST 0x0100 +#define WM_KEYDOWN 0x0100 +#define WVR_HREDRAW 0x0100 +#define HDS_FILTERBAR 0x0100 +#define RBS_TOOLTIPS 0x0100 +#define SBARS_SIZEGRIP 0x0100 +#define TBS_TOOLTIPS 0x0100 +#define UDS_HOTTRACK 0x0100 +#define LVS_AUTOARRANGE 0x0100 +#define TVS_CHECKBOXES 0x0100 +#define TCS_BUTTONS 0x0100 +#define PSH_USECALLBACK 0x00000100 +#define ICC_DATE_CLASSES 0x00000100 +#define CDIS_INDETERMINATE 0x0100 +#define HDI_FILTER 0x0100 +#define HHT_ABOVE 0x0100 +#define TBSTYLE_TOOLTIPS 0x0100 +#define HICF_TOGGLEDROPDOWN 0x00000100 +#define RBBS_NOGRIPPER 0x00000100 +#define RBBIM_ID 0x00000100 +#define TTF_TRANSPARENT 0x0100 +#define SBT_NOBORDERS 0x0100 +#define LVNI_ABOVE 0x0100 +#define LVS_EX_FLATSB 0x00000100 +#define TVHT_ABOVE 0x0100 +#define SES_ALLOWBEEPS 256 +#define ECO_NOHIDESEL 0x00000100 +#define WBF_LEVEL2 0x100 +#define IMF_FORCEREMEMBER 0x0100 +#define CFM_HIDDEN 0x0100 +#define PFM_LINESPACING 0x00000100 +#define PFNS_PARENS 0x100 +#define WM_KEYUP 0x0101 +#define WM_CHAR 0x0102 +#define WM_DEADCHAR 0x0103 +#define WM_SYSKEYDOWN 0x0104 +#define CBEMAXSTRLEN 260 +#define WM_SYSKEYUP 0x0105 +#define WM_SYSCHAR 0x0106 +#define WM_SYSDEADCHAR 0x0107 +#define WM_KEYLAST 0x0108 +#define WM_UNICHAR 0x0109 +#define WM_IME_STARTCOMPOSITION 0x010D +#define WM_IME_ENDCOMPOSITION 0x010E +#define WM_IME_COMPOSITION 0x010F +#define WM_IME_KEYLAST 0x010F +#define WM_INITDIALOG 0x0110 +#define WM_COMMAND 0x0111 +#define WM_SYSCOMMAND 0x0112 +#define WM_TIMER 0x0113 +#define WM_HSCROLL 0x0114 +#define WIZ_CXDLG 276 +#define WM_VSCROLL 0x0115 +#define WM_INITMENU 0x0116 +#define WM_INITMENUPOPUP 0x0117 +#define WM_MENUSELECT 0x011F +#define WM_MENUCHAR 0x0120 +#define WM_ENTERIDLE 0x0121 +#define WM_MENURBUTTONUP 0x0122 +#define WM_MENUDRAG 0x0123 +#define WM_MENUGETOBJECT 0x0124 +#define WM_UNINITMENUPOPUP 0x0125 +#define WM_MENUCOMMAND 0x0126 +#define WM_CHANGEUISTATE 0x0127 +#define WM_UPDATEUISTATE 0x0128 +#define WM_QUERYUISTATE 0x0129 +#define WM_CTLCOLORMSGBOX 0x0132 +#define WM_CTLCOLOREDIT 0x0133 +#define WM_CTLCOLORLISTBOX 0x0134 +#define WM_CTLCOLORBTN 0x0135 +#define WM_CTLCOLORDLG 0x0136 +#define WM_CTLCOLORSCROLLBAR 0x0137 +#define WM_CTLCOLORSTATIC 0x0138 +#define MN_GETHMENU 0x01E1 +#define WM_MOUSEFIRST 0x0200 +#define WM_MOUSEMOVE 0x0200 +#define WVR_VREDRAW 0x0200 +#define CS_NOCLOSE 0x0200 +#define CF_PRIVATEFIRST 0x0200 +#define RBS_VARHEIGHT 0x0200 +#define TBS_REVERSED 0x0200 +#define LVS_EDITLABELS 0x0200 +#define TVS_TRACKSELECT 0x0200 +#define TCS_MULTILINE 0x0200 +#define PSH_HASHELP 0x00000200 +#define ICC_USEREX_CLASSES 0x00000200 +#define HHT_BELOW 0x0200 +#define TBSTYLE_WRAPABLE 0x0200 +#define RBBS_USECHEVRON 0x00000200 +#define RBBIM_IDEALSIZE 0x00000200 +#define SBT_POPOUT 0x0200 +#define LVNI_BELOW 0x0200 +#define LVS_EX_REGIONAL 0x00000200 +#define TVHT_BELOW 0x0200 +#define SES_UPPERCASE 512 +#define WBF_CUSTOM 0x200 +#define CFM_OUTLINE 0x0200 +#define PFNS_PERIOD 0x200 +#define WM_LBUTTONDOWN 0x0201 +#define WM_LBUTTONUP 0x0202 +#define WM_LBUTTONDBLCLK 0x0203 +#define WM_RBUTTONDOWN 0x0204 +#define WM_RBUTTONUP 0x0205 +#define WM_RBUTTONDBLCLK 0x0206 +#define WM_MBUTTONDOWN 0x0207 +#define WM_MBUTTONUP 0x0208 +#define WM_MBUTTONDBLCLK 0x0209 +#define WM_MOUSEWHEEL 0x020A +#define WM_XBUTTONDOWN 0x020B +#define WM_XBUTTONUP 0x020C +#define WM_XBUTTONDBLCLK 0x020D +#define WM_MOUSELAST 0x020D +#define WM_PARENTNOTIFY 0x0210 +#define WM_ENTERMENULOOP 0x0211 +#define WM_EXITMENULOOP 0x0212 +#define WM_NEXTMENU 0x0213 +#define WM_SIZING 0x0214 +#define WM_CAPTURECHANGED 0x0215 +#define WM_MOVING 0x0216 +#define WM_POWERBROADCAST 0x0218 +#define WM_DEVICECHANGE 0x0219 +#define WM_MDICREATE 0x0220 +#define WM_MDIDESTROY 0x0221 +#define WM_MDIACTIVATE 0x0222 +#define WM_MDIRESTORE 0x0223 +#define WM_MDINEXT 0x0224 +#define WM_MDIMAXIMIZE 0x0225 +#define WM_MDITILE 0x0226 +#define WM_MDICASCADE 0x0227 +#define WM_MDIICONARRANGE 0x0228 +#define WM_MDIGETACTIVE 0x0229 +#define WM_MDISETMENU 0x0230 +#define WM_ENTERSIZEMOVE 0x0231 +#define WM_EXITSIZEMOVE 0x0232 +#define WM_DROPFILES 0x0233 +#define WM_MDIREFRESHMENU 0x0234 +#define WM_IME_SETCONTEXT 0x0281 +#define WM_IME_NOTIFY 0x0282 +#define WM_IME_CONTROL 0x0283 +#define WM_IME_COMPOSITIONFULL 0x0284 +#define WM_IME_SELECT 0x0285 +#define WM_IME_CHAR 0x0286 +#define WM_IME_REQUEST 0x0288 +#define WM_IME_KEYDOWN 0x0290 +#define WM_IME_KEYUP 0x0291 +#define WM_NCMOUSEHOVER 0x02A0 +#define WM_MOUSEHOVER 0x02A1 +#define WM_NCMOUSELEAVE 0x02A2 +#define WM_MOUSELEAVE 0x02A3 +#define lDefaultTab 720 +#define CF_PRIVATELAST 0x02FF +#define WM_CUT 0x0300 +#define CF_GDIOBJFIRST 0x0300 +#define _RICHEDIT_VER 0x0300 +#define PFNS_PLAIN 0x300 +#define WM_COPY 0x0301 +#define WM_PASTE 0x0302 +#define WM_CLEAR 0x0303 +#define WM_UNDO 0x0304 +#define WM_RENDERFORMAT 0x0305 +#define WM_RENDERALLFORMATS 0x0306 +#define WM_DESTROYCLIPBOARD 0x0307 +#define WM_DRAWCLIPBOARD 0x0308 +#define WM_PAINTCLIPBOARD 0x0309 +#define WM_VSCROLLCLIPBOARD 0x030A +#define WM_SIZECLIPBOARD 0x030B +#define WM_ASKCBFORMATNAME 0x030C +#define WM_CHANGECBCHAIN 0x030D +#define WM_HSCROLLCLIPBOARD 0x030E +#define WM_QUERYNEWPALETTE 0x030F +#define WM_PALETTEISCHANGING 0x0310 +#define WM_PALETTECHANGED 0x0311 +#define WM_HOTKEY 0x0312 +#define WM_PRINT 0x0317 +#define WM_PRINTCLIENT 0x0318 +#define WM_APPCOMMAND 0x0319 +#define WM_HANDHELDFIRST 0x0358 +#define WM_HANDHELDLAST 0x035F +#define WM_AFXFIRST 0x0360 +#define WM_AFXLAST 0x037F +#define WM_PENWINFIRST 0x0380 +#define WM_PENWINLAST 0x038F +#define WM_DDE_FIRST 0x03E0 +#define IDC_EDIT1 1000 +#define CF_GDIOBJLAST 0x03FF +#define WM_USER 0x0400 +#define WVR_VALIDRECTS 0x0400 +#define RBS_BANDBORDERS 0x0400 +#define TBS_DOWNISLEFT 0x0400 +#define LVS_OWNERDRAWFIXED 0x0400 +#define TVS_SINGLEEXPAND 0x0400 +#define TCS_FIXEDWIDTH 0x0400 +#define ctlFirst 0x0400 +#define psh1 0x0400 +#define PSP_PREMATURE 0x00000400 +#define PSH_MODELESS 0x00000400 +#define ICC_COOL_CLASSES 0x00000400 +#define INFOTIPSIZE 1024 +#define HHT_TORIGHT 0x0400 +#define TBSTYLE_ALTDRAG 0x0400 +#define RBBS_HIDETITLE 0x00000400 +#define RBBIM_LPARAM 0x00000400 +#define SBT_RTLREADING 0x0400 +#define LVNI_TOLEFT 0x0400 +#define LVS_EX_INFOTIP 0x00000400 +#define TVHT_TORIGHT 0x0400 +#define SES_LOWERCASE 1024 +#define IMF_MULTIPLEEDIT 0x0400 +#define CFM_SHADOW 0x0400 +#define PFM_STYLE 0x00000400 +#define PFNS_NONUMBER 0x400 +#define psh2 0x0401 +#define psh3 0x0402 +#define psh4 0x0403 +#define psh5 0x0404 +#define psh6 0x0405 +#define psh7 0x0406 +#define psh8 0x0407 +#define psh9 0x0408 +#define psh10 0x0409 +#define psh11 0x040a +#define psh12 0x040b +#define psh13 0x040c +#define psh14 0x040d +#define psh15 0x040e +#define psh16 0x040f +#define _WIN32_WINDOWS 0x0410 +#define chx1 0x0410 +#define chx2 0x0411 +#define chx3 0x0412 +#define chx4 0x0413 +#define chx5 0x0414 +#define chx6 0x0415 +#define chx7 0x0416 +#define chx8 0x0417 +#define chx9 0x0418 +#define chx10 0x0419 +#define chx11 0x041a +#define chx12 0x041b +#define chx13 0x041c +#define chx14 0x041d +#define chx15 0x041e +#define chx16 0x041f +#define rad1 0x0420 +#define rad2 0x0421 +#define rad3 0x0422 +#define rad4 0x0423 +#define rad5 0x0424 +#define rad6 0x0425 +#define rad7 0x0426 +#define rad8 0x0427 +#define rad9 0x0428 +#define rad10 0x0429 +#define rad11 0x042a +#define rad12 0x042b +#define rad13 0x042c +#define rad14 0x042d +#define rad15 0x042e +#define rad16 0x042f +#define grp1 0x0430 +#define grp2 0x0431 +#define grp3 0x0432 +#define grp4 0x0433 +#define frm1 0x0434 +#define frm2 0x0435 +#define frm3 0x0436 +#define frm4 0x0437 +#define rct1 0x0438 +#define rct2 0x0439 +#define rct3 0x043a +#define rct4 0x043b +#define ico1 0x043c +#define ico2 0x043d +#define ico3 0x043e +#define ico4 0x043f +#define stc1 0x0440 +#define stc2 0x0441 +#define stc3 0x0442 +#define stc4 0x0443 +#define stc5 0x0444 +#define stc6 0x0445 +#define stc7 0x0446 +#define stc8 0x0447 +#define stc9 0x0448 +#define stc10 0x0449 +#define stc11 0x044a +#define stc12 0x044b +#define stc13 0x044c +#define stc14 0x044d +#define stc15 0x044e +#define stc16 0x044f +#define stc17 0x0450 +#define stc18 0x0451 +#define stc19 0x0452 +#define stc20 0x0453 +#define stc21 0x0454 +#define stc22 0x0455 +#define stc23 0x0456 +#define stc24 0x0457 +#define stc25 0x0458 +#define stc26 0x0459 +#define stc27 0x045a +#define stc28 0x045b +#define stc29 0x045c +#define stc30 0x045d +#define stc31 0x045e +#define stc32 0x045f +#define lst1 0x0460 +#define lst2 0x0461 +#define lst3 0x0462 +#define lst4 0x0463 +#define lst5 0x0464 +#define lst6 0x0465 +#define lst7 0x0466 +#define lst8 0x0467 +#define lst9 0x0468 +#define lst10 0x0469 +#define lst11 0x046a +#define lst12 0x046b +#define lst13 0x046c +#define lst14 0x046d +#define lst15 0x046e +#define lst16 0x046f +#define cmb1 0x0470 +#define cmb2 0x0471 +#define cmb3 0x0472 +#define cmb4 0x0473 +#define cmb5 0x0474 +#define cmb6 0x0475 +#define cmb7 0x0476 +#define cmb8 0x0477 +#define cmb9 0x0478 +#define cmb10 0x0479 +#define cmb11 0x047a +#define cmb12 0x047b +#define cmb13 0x047c +#define cmb14 0x047d +#define cmb15 0x047e +#define cmb16 0x047f +#define edt1 0x0480 +#define edt2 0x0481 +#define edt3 0x0482 +#define edt4 0x0483 +#define edt5 0x0484 +#define edt6 0x0485 +#define edt7 0x0486 +#define edt8 0x0487 +#define edt9 0x0488 +#define edt10 0x0489 +#define edt11 0x048a +#define edt12 0x048b +#define edt13 0x048c +#define edt14 0x048d +#define edt15 0x048e +#define edt16 0x048f +#define scr1 0x0490 +#define scr2 0x0491 +#define scr3 0x0492 +#define scr4 0x0493 +#define scr5 0x0494 +#define scr6 0x0495 +#define scr7 0x0496 +#define scr8 0x0497 +#define ctl1 0x04A0 +#define ctlLast 0x04ff +#define _WIN32_WINNT 0x0500 +#define WINVER 0x0501 +#define _WIN32_IE 0x0501 +#define FILEOPENORD 1536 +#define MULTIFILEOPENORD 1537 +#define PRINTDLGORD 1538 +#define PRNSETUPDLGORD 1539 +#define FINDDLGORD 1540 +#define REPLACEDLGORD 1541 +#define FONTDLGORD 1542 +#define FORMATDLGORD31 1543 +#define FORMATDLGORD30 1544 +#define RUNDLGORD 1545 +#define PAGESETUPDLGORD 1546 +#define NEWFILEOPENORD 1547 +#define PRINTDLGEXORD 1549 +#define PAGESETUPDLGORDMOTIF 1550 +#define COLORMGMTDLGORD 1551 +#define NEWFILEOPENV2ORD 1552 +#define yHeightCharPtsMost 1638 +#define EN_MSGFILTER 0x0700 +#define SF_RTFVAL 0x0700 +#define EN_REQUESTRESIZE 0x0701 +#define EN_SELCHANGE 0x0702 +#define EN_DROPFILES 0x0703 +#define EN_PROTECTED 0x0704 +#define EN_CORRECTTEXT 0x0705 +#define EN_STOPNOUNDO 0x0706 +#define EN_IMECHANGE 0x0707 +#define EN_SAVECLIPBOARD 0x0708 +#define EN_OLEOPFAILED 0x0709 +#define EN_OBJECTPOSITIONS 0x070a +#define EN_LINK 0x070b +#define EN_DRAGDROPDONE 0x070c +#define EN_PARAGRAPHEXPANDED 0x070d +#define EN_PAGECHANGE 0x070e +#define EN_LOWFIRTF 0x070f +#define EN_ALIGNLTR 0x0710 +#define EN_ALIGNRTL 0x0711 +#define IDC_PROPERTYGRID 2000 +#define CS_SAVEBITS 0x0800 +#define RBS_FIXEDORDER 0x0800 +#define SBARS_TOOLTIPS 0x0800 +#define SBT_TOOLTIPS 0x0800 +#define LVS_ALIGNLEFT 0x0800 +#define TVS_INFOTIP 0x0800 +#define TCS_RAGGEDRIGHT 0x0800 +#define PSP_HIDEHEADER 0x00000800 +#define PSH_RTLREADING 0x00000800 +#define ICC_INTERNET_CLASSES 0x00000800 +#define ILC_PALETTE 0x00000800 +#define HDF_IMAGE 0x0800 +#define HHT_TOLEFT 0x0800 +#define TBSTYLE_FLAT 0x0800 +#define RBBS_TOPALIGN 0x00000800 +#define RBBIM_HEADERSIZE 0x00000800 +#define SBT_NOTABPARSING 0x0800 +#define LVIF_NORECOMPUTE 0x0800 +#define LVNI_TORIGHT 0x0800 +#define LVCFMT_IMAGE 0x0800 +#define LVS_EX_UNDERLINEHOT 0x00000800 +#define TVHT_TOLEFT 0x0800 +#define SES_NOINPUTSEQUENCECHK 2048 +#define ECO_READONLY 0x00000800 +#define CFM_EMBOSS 0x0800 +#define SFF_PWD 0x0800 +#define PFM_BORDER 0x00000800 +#define LVS_ALIGNMASK 0x0c00 +#define ILD_OVERLAYMASK 0x00000F00 +#define LVIS_OVERLAYMASK 0x0F00 +#define TVIS_OVERLAYMASK 0x0F00 +#define CS_BYTEALIGNCLIENT 0x1000 +#define RBS_REGISTERDROP 0x1000 +#define LVS_OWNERDATA 0x1000 +#define TVS_FULLROWSELECT 0x1000 +#define TCS_FOCUSONBUTTONDOWN 0x1000 +#define PSP_USEHEADERTITLE 0x00001000 +#define PSH_WIZARDCONTEXTHELP 0x00001000 +#define ICC_PAGESCROLLER_CLASS 0x00001000 +#define LVM_FIRST 0x1000 +#define ILD_PRESERVEALPHA 0x00001000 +#define HDF_BITMAP_ON_RIGHT 0x1000 +#define TBSTYLE_LIST 0x1000 +#define TTF_PARSELINKS 0x1000 +#define SBT_OWNERDRAW 0x1000 +#define LVCFMT_BITMAP_ON_RIGHT 0x1000 +#define LVS_EX_UNDERLINECOLD 0x00001000 +#define LVIF_DI_SETITEM 0x1000 +#define TVIF_DI_SETITEM 0x1000 +#define MCM_FIRST 0x1000 +#define DTM_FIRST 0x1000 +#define SES_BIDI 4096 +#define ECO_WANTRETURN 0x00001000 +#define CFM_IMPRINT 0x1000 +#define SFF_KEEPDOCINFO 0x1000 +#define PFM_SHADING 0x00001000 +#define TV_FIRST 0x1100 +#define HDM_FIRST 0x1200 +#define TCM_FIRST 0x1300 +#define PGM_FIRST 0x1400 +#define CS_BYTEALIGNWINDOW 0x2000 +#define RBS_AUTOSIZE 0x2000 +#define LVS_NOSCROLL 0x2000 +#define TVS_NOSCROLL 0x2000 +#define TCS_OWNERDRAWFIXED 0x2000 +#define PSP_USEHEADERSUBTITLE 0x00002000 +#define ICC_NATIVEFNTCTL_CLASS 0x00002000 +#define CCM_FIRST 0x2000 +#define ILD_SCALE 0x00002000 +#define HDF_BITMAP 0x2000 +#define TBSTYLE_CUSTOMERASE 0x2000 +#define LVS_EX_MULTIWORKAREAS 0x00002000 +#define SES_SCROLLONKILLFOCUS 8192 +#define ES_DISABLENOSCROLL 0x00002000 +#define CFM_DISABLED 0x2000 +#define SFF_PERSISTVIEWSCALE 0x2000 +#define PFM_NUMBERINGSTYLE 0x00002000 +#define CS_GLOBALCLASS 0x4000 +#define RBS_VERTICALGRIPPER 0x4000 +#define LVS_NOCOLUMNHEADER 0x4000 +#define TVS_NONEVENHEIGHT 0x4000 +#define TCS_TOOLTIPS 0x4000 +#define ILD_DPISCALE 0x00004000 +#define HDF_STRING 0x4000 +#define TBSTYLE_REGISTERDROP 0x4000 +#define LVS_EX_LABELTIP 0x00004000 +#define TVE_EXPANDPARTIAL 0x4000 +#define SES_XLTCRCRLFTOCR 16384 +#define ES_SUNKEN 0x00004000 +#define CFM_REVISED 0x4000 +#define SFF_PLAINRTF 0x4000 +#define PFM_NUMBERINGTAB 0x00004000 +#define MSGF_COMMCTRL_BEGINDRAG 0x4200 +#define MSGF_COMMCTRL_SIZEHEADER 0x4201 +#define MSGF_COMMCTRL_DRAGSELECT 0x4202 +#define MSGF_COMMCTRL_TOOLBARCUST 0x4203 +#define IDH_NO_HELP 28440 +#define IDH_MISSING_CONTEXT 28441 +#define IDH_GENERIC_HELP_BUTTON 28442 +#define IDH_OK 28443 +#define IDH_CANCEL 28444 +#define IDH_HELP 28445 +#define IDTIMEOUT 32000 +#define OCR_NORMAL 32512 +#define OIC_SAMPLE 32512 +#define IDI_APPLICATION 32512 +#define OCR_IBEAM 32513 +#define OIC_HAND 32513 +#define IDI_HAND 32513 +#define OCR_WAIT 32514 +#define OIC_QUES 32514 +#define IDI_QUESTION 32514 +#define OCR_CROSS 32515 +#define OIC_BANG 32515 +#define IDI_EXCLAMATION 32515 +#define OCR_UP 32516 +#define OIC_NOTE 32516 +#define IDI_ASTERISK 32516 +#define OIC_WINLOGO 32517 +#define IDI_WINLOGO 32517 +#define OCR_SIZE 32640 +#define OCR_ICON 32641 +#define OCR_SIZENWSE 32642 +#define OCR_SIZENESW 32643 +#define OCR_SIZEWE 32644 +#define OCR_SIZENS 32645 +#define OCR_SIZEALL 32646 +#define OCR_ICOCUR 32647 +#define OCR_NO 32648 +#define OCR_HAND 32649 +#define OCR_APPSTARTING 32650 +#define OBM_LFARROWI 32734 +#define OBM_RGARROWI 32735 +#define OBM_DNARROWI 32736 +#define OBM_UPARROWI 32737 +#define OBM_COMBO 32738 +#define OBM_MNARROW 32739 +#define OBM_LFARROWD 32740 +#define OBM_RGARROWD 32741 +#define OBM_DNARROWD 32742 +#define OBM_UPARROWD 32743 +#define OBM_RESTORED 32744 +#define OBM_ZOOMD 32745 +#define OBM_REDUCED 32746 +#define OBM_RESTORE 32747 +#define OBM_ZOOM 32748 +#define OBM_REDUCE 32749 +#define OBM_LFARROW 32750 +#define OBM_RGARROW 32751 +#define OBM_DNARROW 32752 +#define OBM_UPARROW 32753 +#define OBM_CLOSE 32754 +#define OBM_OLD_RESTORE 32755 +#define OBM_OLD_ZOOM 32756 +#define OBM_OLD_REDUCE 32757 +#define OBM_BTNCORNERS 32758 +#define OBM_CHECKBOXES 32759 +#define OBM_CHECK 32760 +#define OBM_BTSIZE 32761 +#define OBM_OLD_LFARROW 32762 +#define OBM_OLD_RGARROW 32763 +#define OBM_OLD_DNARROW 32764 +#define OBM_OLD_UPARROW 32765 +#define OBM_SIZE 32766 +#define OBM_OLD_CLOSE 32767 +#define UD_MAXVAL 0x7fff +#define cchTextLimitDefault 32767 +#define WM_APP 0x8000 +#define HELP_TCARD 0x8000 +#define RBS_DBLCLKTOGGLE 0x8000 +#define LVS_NOSORTHEADER 0x8000 +#define TVS_NOHSCROLL 0x8000 +#define TCS_FOCUSNEVER 0x8000 +#define PSH_WATERMARK 0x00008000 +#define HDFT_HASNOVALUE 0x8000 +#define HDF_OWNERDRAW 0x8000 +#define TBSTYLE_TRANSPARENT 0x8000 +#define TTF_DI_SETITEM 0x8000 +#define LVCFMT_COL_HAS_IMAGES 0x8000 +#define LVS_EX_BORDERSELECT 0x00008000 +#define TVE_COLLAPSERESET 0x8000 +#define SES_DRAFTMODE 32768 +#define ES_SAVESEL 0x00008000 +#define ECO_SAVESEL 0x00008000 +#define CFM_REVAUTHOR 0x00008000 +#define SFF_SELECTION 0x8000 +#define PFM_NUMBERINGSTART 0x00008000 +#define PFNS_NEWNUMBER 0x8000 +#define GCM_RIGHTMOUSEDROP 0x8000 +#define SC_SIZE 0xF000 +#define LVIS_STATEIMAGEMASK 0xF000 +#define TVIS_STATEIMAGEMASK 0xF000 +#define TVIS_USERMASK 0xF000 +#define SC_SEPARATOR 0xF00F +#define SC_MOVE 0xF010 +#define SC_MINIMIZE 0xF020 +#define SC_MAXIMIZE 0xF030 +#define SC_NEXTWINDOW 0xF040 +#define SC_PREVWINDOW 0xF050 +#define SC_CLOSE 0xF060 +#define SC_VSCROLL 0xF070 +#define SC_HSCROLL 0xF080 +#define SC_MOUSEMENU 0xF090 +#define SC_KEYMENU 0xF100 +#define SC_ARRANGE 0xF110 +#define SC_RESTORE 0xF120 +#define SC_TASKLIST 0xF130 +#define SC_SCREENSAVE 0xF140 +#define SC_HOTKEY 0xF150 +#define SC_DEFAULT 0xF160 +#define SC_MONITORPOWER 0xF170 +#define SC_CONTEXTHELP 0xF180 +#define LVS_TYPESTYLEMASK 0xfc00 +#define HTERROR -2 +#define I_IMAGENONE -2 +#define LVSCW_AUTOSIZE_USEHEADER -2 +#define PWR_FAIL -1 +#define HTTRANSPARENT -1 +#define I_INDENTCALLBACK -1 +#define I_IMAGECALLBACK -1 +#define LVSCW_AUTOSIZE -1 +#define I_CHILDRENCALLBACK -1 +#define GDT_ERROR -1 +#define DPA_ERR -1 +#define DSA_ERR -1 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/src/include/DataModel/BaseButtonInstance.h b/src/include/DataModel/BaseButtonInstance.h deleted file mode 100644 index 1e48e6d..0000000 --- a/src/include/DataModel/BaseButtonInstance.h +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once -#include "Instance.h" -#include "Listener/ButtonListener.h" - -class ButtonListener; -class Instance; - -class BaseButtonInstance : public Instance -{ -public: - BaseButtonInstance(void); - virtual ~BaseButtonInstance(void); - virtual void render(RenderDevice* rd); - virtual void drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown); - virtual bool mouseInButton(float, float, RenderDevice* rd); - virtual void onMouseClick(); - void setButtonListener(ButtonListener&); - bool floatBottom; - bool floatRight; - bool floatCenter; - volatile bool disabled; - bool selected; -protected: - bool mouseInArea(float, float, float, float, float, float); - class ButtonListener* listener; -}; diff --git a/src/include/DataModel/DataModelInstance.h b/src/include/DataModel/DataModelInstance.h deleted file mode 100644 index fb0d19a..0000000 --- a/src/include/DataModel/DataModelInstance.h +++ /dev/null @@ -1,57 +0,0 @@ -#pragma once -#include "WorkspaceInstance.h" -#include "LevelInstance.h" -#include "PartInstance.h" -#include "rapidxml/rapidxml.hpp" -#include "GuiRootInstance.h" - -class GuiRootInstance; - -class DataModelInstance : - public Instance -{ -public: - DataModelInstance(void); - ~DataModelInstance(void); - void setMessage(std::string); - void setMessageBrickCount(); - void clearMessage(); - bool debugGetOpen(); - bool getOpen(); - bool load(const char* filename,bool clearObjects); - bool readXMLFileStream(std::ifstream* file); - void drawMessage(RenderDevice*); - WorkspaceInstance* getWorkspace(); - LevelInstance * getLevel(); - std::string message; - std::string _loadedFileName; - bool showMessage; - G3D::GFontRef font; - GuiRootInstance* getGuiRoot(); - //float mousex; - //float mousey; - //Vector2 getMousePos(); - //void setMousePos(int x,int y); - //void setMousePos(Vector2 pos); - //bool mouseButton1Down; - PartInstance* makePart(); - void clearLevel(); - void toggleRun(); - bool isRunning(); -#if _DEBUG - void modXMLLevel(float modY); -#endif -private: - bool isBrickCount; - bool scanXMLObject(rapidxml::xml_node<>* node); - rapidxml::xml_node<>* getNode(rapidxml::xml_node<> * node,const char* name ); - float getFloatValue(rapidxml::xml_node<> * node,const char* name); - bool _successfulLoad; - std::string _errMsg; - bool _legacyLoad; - float _modY; - WorkspaceInstance* workspace; - LevelInstance * level; - GuiRootInstance* guiRoot; - bool running; -}; diff --git a/src/include/DataModel/GroupInstance.h b/src/include/DataModel/GroupInstance.h deleted file mode 100644 index 08baed3..0000000 --- a/src/include/DataModel/GroupInstance.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once -#include "PartInstance.h" - -class GroupInstance : - public PVInstance -{ -public: - GroupInstance(void); - ~GroupInstance(void); - GroupInstance(const GroupInstance &oinst); - virtual std::vector getProperties(); - virtual void PropUpdate(LPPROPGRIDITEM &pItem); - std::vector unGroup(); - PartInstance * primaryPart; - void render(RenderDevice * r); -}; diff --git a/src/include/DataModel/GuiRootInstance.h b/src/include/DataModel/GuiRootInstance.h deleted file mode 100644 index 5f916d0..0000000 --- a/src/include/DataModel/GuiRootInstance.h +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once -#include "Instance.h" - -class ImageButtonInstance; - -class TextButtonInstance; - -class GuiRootInstance : public Instance -{ -public: - GuiRootInstance(); - GuiRootInstance::~GuiRootInstance(); - TextButtonInstance* makeTextButton(); - void drawButtons(RenderDevice* rd); - ImageButtonInstance* makeImageButton(G3D::TextureRef newImage, G3D::TextureRef overImage, G3D::TextureRef downImage, G3D::TextureRef disableImage); - void renderGUI(G3D::RenderDevice* rd, double fps); - void setDebugMessage(std::string msg, G3D::RealTime msgTime); - void update(); - bool mouseInGUI(G3D::RenderDevice* renderDevice,int x,int y); - void onMouseLeftUp(G3D::RenderDevice* renderDevice, int x,int y); -private: - std::string _message; - G3D::RealTime _messageTime; -}; \ No newline at end of file diff --git a/src/include/DataModel/ImageButtonInstance.h b/src/include/DataModel/ImageButtonInstance.h deleted file mode 100644 index 9b1dfd8..0000000 --- a/src/include/DataModel/ImageButtonInstance.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once -#include "BaseButtonInstance.h" - -class BaseButtonInstance; - -class ImageButtonInstance : public BaseButtonInstance -{ -public: - //ImageButtonInstance(G3D::TextureRef); - //ImageButtonInstance(G3D::TextureRef,G3D::TextureRef); - //ImageButtonInstance(G3D::TextureRef,G3D::TextureRef,G3D::TextureRef); - ImageButtonInstance(G3D::TextureRef,G3D::TextureRef,G3D::TextureRef,G3D::TextureRef); - ~ImageButtonInstance(void); - void drawObj(RenderDevice*, Vector2, bool); - Vector2 size; - Vector2 position; - - G3D::TextureRef image; - int openGLID; - G3D::TextureRef image_ovr; - int openGLID_ovr; - G3D::TextureRef image_dn; - int openGLID_dn; - G3D::TextureRef image_ds; - int openGLID_ds; - bool mouseInButton(float, float, RenderDevice*); -}; diff --git a/src/include/DataModel/Instance.h b/src/include/DataModel/Instance.h deleted file mode 100644 index 7e25dce..0000000 --- a/src/include/DataModel/Instance.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once -#include -#include "propertyGrid.h" -#include "map" - -class Instance -{ -public: - bool canDelete; - Instance(void); - Instance(const Instance&); - virtual ~Instance(void); - std::string name; - virtual void render(RenderDevice*); - virtual void update(); - std::vector children; // All children. - std::string getClassName(); - Instance* findFirstChild(std::string); - std::vector getChildren(); - std::vector getAllChildren(); - virtual void setParent(Instance*); - void setName(std::string newName); - void addChild(Instance*); - void removeChild(Instance*); - void clearChildren(); - Instance* getParent(); - virtual Instance* clone() const { return new Instance(*this); } - virtual std::vector getProperties(); - virtual void PropUpdate(LPPROPGRIDITEM &pItem); - int listicon; -protected: - std::string className; - Instance* parent; // Another pointer. - PROPGRIDITEM createPGI(LPSTR catalog, LPSTR propName, LPSTR propDesc, LPARAM curVal, INT type, TCHAR choices[] = NULL); -private: - static const std::map g_logLevelsDescriptions; -}; diff --git a/src/include/DataModel/LevelInstance.h b/src/include/DataModel/LevelInstance.h deleted file mode 100644 index f29ca78..0000000 --- a/src/include/DataModel/LevelInstance.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once -#include "instance.h" - -class LevelInstance : - public Instance -{ -public: - LevelInstance(void); - ~LevelInstance(void); - float timer; - int score; - virtual std::vector getProperties(); - std::string winMessage; - std::string loseMessage; - virtual void PropUpdate(LPPROPGRIDITEM &pItem); -}; diff --git a/src/include/DataModel/PVInstance.h b/src/include/DataModel/PVInstance.h deleted file mode 100644 index c22436f..0000000 --- a/src/include/DataModel/PVInstance.h +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once -#include "instance.h" -#include "enum.h" - -class PVInstance : - public Instance -{ -public: - PVInstance(void); - ~PVInstance(void); - PVInstance(const PVInstance &oinst); - virtual void postRender(RenderDevice* rd); - virtual std::vector getProperties(); - virtual void PropUpdate(LPPROPGRIDITEM &pItem); - bool nameShown; - bool controllerFlagShown; - Enum::Controller::Value controller; -protected: - static G3D::Color3 getControllerColor(int controller) - { - switch(controller) - { - case Enum::Controller::KeyboardLeft: - return Color3::red(); - case Enum::Controller::KeyboardRight: - return Color3::blue(); - case Enum::Controller::Chase: - return Color3::black(); - case Enum::Controller::Flee: - return Color3::yellow(); - } - return Color3::gray(); - } -}; diff --git a/src/include/DataModel/PartInstance.h b/src/include/DataModel/PartInstance.h deleted file mode 100644 index 6df56b7..0000000 --- a/src/include/DataModel/PartInstance.h +++ /dev/null @@ -1,85 +0,0 @@ -#pragma once -#include "PVInstance.h" -#include "Enum.h" -#define _USE_MATH_DEFINES -#include - -#define NEW_BOX_RENDER - -class PartInstance : public PVInstance -{ -public: - - PartInstance(void); - PartInstance(const PartInstance &oinst); - Instance* clone() const { return new PartInstance(*this); } - virtual void PartInstance::postRender(RenderDevice* rd); - ~PartInstance(void); - virtual void render(RenderDevice*); - Enum::SurfaceType::Value top; - Enum::SurfaceType::Value front; - Enum::SurfaceType::Value right; - Enum::SurfaceType::Value back; - Enum::SurfaceType::Value left; - Enum::SurfaceType::Value bottom; - Enum::Shape::Value shape; - CoordinateFrame cFrame; - Color3 color; - Vector3 getPosition(); - Vector3 getVelocity(); - Vector3 getRotVelocity(); - void setParent(Instance* parent); - void setPosition(Vector3); - void setVelocity(Vector3); - bool collides(PartInstance * part); - void setRotVelocity(Vector3); - CoordinateFrame getCFrame(); - void setCFrame(CoordinateFrame); - Box getBox(); - Sphere getSphere(); - Box getScaledBox(); - CoordinateFrame getCFrameRenderBased(); - Vector3 getSize(); - void setSize(Vector3); - void setShape(Enum::Shape::Value shape); - bool canCollide; - bool anchored; - bool collides(Box); - virtual std::vector getProperties(); - virtual void PropUpdate(LPPROPGRIDITEM &pItem); - #ifdef NEW_BOX_RENDER - void addVertex(Vector3 vertexPos,Color3 color); - void addNormals(Vector3 normal); - void addSingularNormal(Vector3 normal); - void addTriangle(Vector3 vertexPos,Vector3 vertexPos2, Vector3 vertexPos3); - void addQuad(Vector3 v1,Vector3 v2, Vector3 v3, Vector3 v4); - void genSmoothNormals(int); - void addSmoothTriangle(Vector3 vertexPos,Vector3 vertexPos2, Vector3 vertexPos3); - void makeSmoothFace(int vertex1, int vertex2, int vertex3); - void addPlus(Vector3 v1); - void addPlus2(Vector3 v1); - void debugPrintVertexIDs(RenderDevice* rd, GFontRef font, Matrix3 camRot); - void makeFace(int vertex1, int vertex2, int vertex3); - void fromArrays(float verts[], float norms[], float ind[], unsigned int countVN, unsigned int countInd); - bool isUniqueVertex(Vector3 pos); - #endif -private: - Vector3 position; - Vector3 size; - Vector3 velocity; - Vector3 rotVelocity; - float _bevelSize; - int _parseVert; - int _debugTimer; - std::vector _debugUniqueVertices; - #ifdef NEW_BOX_RENDER - std::vector _vertices; - std::vector _normals; - #else - GLfloat _vertices[96]; - #endif - std::vector _indices; - bool changed; - Box itemBox; - GLuint glList; -}; diff --git a/src/include/DataModel/TextButtonInstance.h b/src/include/DataModel/TextButtonInstance.h deleted file mode 100644 index cc53f7f..0000000 --- a/src/include/DataModel/TextButtonInstance.h +++ /dev/null @@ -1,35 +0,0 @@ -#pragma once -#include "BaseButtonInstance.h" -class TextButtonInstance : public BaseButtonInstance -{ -public: - TextButtonInstance(void); - ~TextButtonInstance(void); - void setAllColorsSame(); - Vector2 boxBegin; - Vector2 boxEnd; - Vector2 fontLocationRelativeTo; - Color4 textColor; - Color4 textOutlineColor; - Color4 boxColor; - Color4 boxOutlineColor; - Color4 textColorOvr; - Color4 textOutlineColorOvr; - Color4 boxColorOvr; - Color4 boxOutlineColorOvr; - Color4 textColorDn; - Color4 textOutlineColorDn; - Color4 boxColorDn; - Color4 boxOutlineColorDn; - Color4 textColorDis; - Color4 textOutlineColorDis; - Color4 boxColorDis; - Color4 boxOutlineColorDis; - bool centeredWithinBox; - std::string title; - G3D::GFontRef font; - bool visible; - int textSize; - void drawObj(RenderDevice*, Vector2, bool); - bool mouseInButton(float, float, RenderDevice*); -}; \ No newline at end of file diff --git a/src/include/DataModel/ToggleImageButtonInstance.h b/src/include/DataModel/ToggleImageButtonInstance.h deleted file mode 100644 index 0e6f685..0000000 --- a/src/include/DataModel/ToggleImageButtonInstance.h +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once -#include "imagebuttoninstance.h" - - -class ToggleImageButtonInstance : public ImageButtonInstance -{ -public: - //ImageButtonInstance(G3D::TextureRef); - //ImageButtonInstance(G3D::TextureRef,G3D::TextureRef); - //ImageButtonInstance(G3D::TextureRef,G3D::TextureRef,G3D::TextureRef); - ToggleImageButtonInstance(G3D::TextureRef newImage,G3D::TextureRef overImage = NULL, - G3D::TextureRef downImage = NULL, - G3D::TextureRef disableImage = NULL, - G3D::TextureRef newImage2 = NULL, - G3D::TextureRef overImage2 = NULL, - G3D::TextureRef downImage2 = NULL, - G3D::TextureRef disableImage2 = NULL); - ~ToggleImageButtonInstance(void); - void drawObj(RenderDevice*, Vector2, bool); - bool checked; - G3D::TextureRef image2; - int openGLID2; - G3D::TextureRef image_ovr2; - int openGLID2_ovr; - G3D::TextureRef image_dn2; - int openGLID2_dn; - G3D::TextureRef image_ds2; - int openGLID2_ds; -}; diff --git a/src/include/DataModel/WorkspaceInstance.h b/src/include/DataModel/WorkspaceInstance.h deleted file mode 100644 index c854d6d..0000000 --- a/src/include/DataModel/WorkspaceInstance.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once -#include "GroupInstance.h" -#include "PartInstance.h" - -class WorkspaceInstance : - public GroupInstance -{ -public: - WorkspaceInstance(void); - ~WorkspaceInstance(void); - std::vector partObjects; -}; diff --git a/src/include/DataModelV2/BaseGuiInstance.h b/src/include/DataModelV2/BaseGuiInstance.h new file mode 100644 index 0000000..1f8895d --- /dev/null +++ b/src/include/DataModelV2/BaseGuiInstance.h @@ -0,0 +1,49 @@ +#pragma once +#include "Instance.h" + +struct UDim +{ + float scale; + float offset; + UDim() + { + scale = offset = 0; + } + UDim(float scale_, float offset_) + { + scale = scale_; + offset = offset_; + } +}; + +struct UDim2 +{ + UDim x; + UDim y; + UDim2(UDim x_, UDim y_) + { + x = x_; + y = y_; + } + UDim2(float scale_x, float offset_x, float scale_y, float offset_y) + { + x = UDim(scale_x, offset_x); + y = UDim(scale_y, offset_y); + } +}; + +class Instance; + +class BaseGuiInstance : public Instance +{ +public: + BaseGuiInstance(void); + virtual ~BaseGuiInstance(void); + virtual void render(RenderDevice* rd); + virtual bool mouseHovered(float, float, RenderDevice* rd); + UDim2 position; + UDim2 size; +protected: + bool mouseInArea(float, float, float, float, float, float); + class ButtonListener* listener; +}; diff --git a/src/source/Application.cpp b/src/source/Application.cpp index b7467e3..24120dd 100644 --- a/src/source/Application.cpp +++ b/src/source/Application.cpp @@ -153,6 +153,7 @@ void Application::navigateToolbox(std::string path) void Application::deleteInstance() { + int deletedInstances = 0; if(g_selectedInstances.size() > 0) { size_t undeletable = 0; @@ -160,7 +161,7 @@ void Application::deleteInstance() { if(g_selectedInstances.at(0)->canDelete) { - AudioPlayer::playSound(GetFileInPath("/content/sounds/pageturn.wav")); + deletedInstances++; Instance* selectedInstance = g_selectedInstances.at(0); selectedInstance->setParent(NULL); delete selectedInstance; @@ -173,6 +174,8 @@ void Application::deleteInstance() } } } + if(deletedInstances > 0) + AudioPlayer::playSound(GetFileInPath("/content/sounds/pageturn.wav")); if(g_selectedInstances.size() == 0) g_usableApp->_propWindow->ClearProperties(); } diff --git a/src/source/DataModel/BaseButtonInstance.cpp b/src/source/DataModel/BaseButtonInstance.cpp deleted file mode 100644 index 4a31eb2..0000000 --- a/src/source/DataModel/BaseButtonInstance.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "DataModel/BaseButtonInstance.h" -#include "Globals.h" -#include "Application.h" - - -ButtonListener* listener = NULL; - -BaseButtonInstance::BaseButtonInstance(void) -{ - Instance::Instance(); - listener = NULL; -} - -void BaseButtonInstance::render(RenderDevice* rd) -{ - DataModelInstance* dataModel = g_dataModel; - Vector2 pos = Vector2(g_usableApp->mouse.x,g_usableApp->mouse.y); - drawObj(rd, pos, g_usableApp->mouse.isMouseDown()); - Instance::render(rd); -} - -BaseButtonInstance::~BaseButtonInstance(void) -{ - if(listener != NULL && listener->doDelete) - { - delete listener; - listener = NULL; - } -} - -void BaseButtonInstance::setButtonListener(ButtonListener& buttonListener) -{ - listener = buttonListener; -} - -void BaseButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown){} - -bool BaseButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice* rd){return false;} - -void BaseButtonInstance::onMouseClick() -{ - if(listener != NULL) - { - listener->onButton1MouseClick(this); - - } -} - - -bool BaseButtonInstance::mouseInArea(float point1x, float point1y, float point2x, float point2y, float mousex, float mousey) -{ - - - if(mousex >= point1x && mousey >= point1y) - { - if(mousex < point2x && mousey < point2y) - { - return true; - } - } - return false; -} \ No newline at end of file diff --git a/src/source/DataModel/DataModelInstance.cpp b/src/source/DataModel/DataModelInstance.cpp deleted file mode 100644 index 1ac2fdc..0000000 --- a/src/source/DataModel/DataModelInstance.cpp +++ /dev/null @@ -1,613 +0,0 @@ -#include -#include "DataModel/GuiRootInstance.h" -#include "DataModel/DataModelInstance.h" -#include -#include -#include -#include -#include "ErrorFunctions.h" - -using namespace std; -using namespace rapidxml; - - -DataModelInstance::DataModelInstance(void) -{ - Instance::Instance(); - workspace = new WorkspaceInstance(); - guiRoot = new GuiRootInstance(); - level = new LevelInstance(); - //children.push_back(workspace); - //children.push_back(level); - className = "dataModel"; - //mousex = 0; - //mousey = 0; - //mouseButton1Down = false; - showMessage = false; - canDelete = false; - _modY=0; - workspace->setParent(this); - level->setParent(this); - _loadedFileName="..//skooter.rbxm"; - listicon = 5; - running = false; - -} - -void DataModelInstance::toggleRun() -{ - running = !running; -} -bool DataModelInstance::isRunning() -{ - return running; -} - -DataModelInstance::~DataModelInstance(void) -{ -} - -#ifdef _DEBUG -void DataModelInstance::modXMLLevel(float modY) -{ - _modY += modY; - clearLevel(); - debugGetOpen(); - -} -#endif - -void DataModelInstance::clearLevel() -{ - workspace->clearChildren(); -} -PartInstance* DataModelInstance::makePart() -{ - PartInstance* part = new PartInstance(); - return part; -} - -rapidxml::xml_node<>* DataModelInstance::getNode(xml_node<> * node,const char* name) -{ - xml_node<> * tempNode = node->first_node(name); - if (!tempNode) - { - _errMsg = "Expected <"; - _errMsg += name; - _errMsg+="> tag."; - _successfulLoad=false; - return 0; - } - return tempNode; -} -float DataModelInstance::getFloatValue(xml_node<> * node,const char* name) -{ - xml_node<> * tempNode = node->first_node(name); - if (!tempNode) - { - _errMsg = "Expected <"; - _errMsg += name; - _errMsg+="> tag."; - _successfulLoad=false; - return 0; - } - float newFloat; - stringstream converter; - converter << tempNode->value(); - converter >> newFloat; - return newFloat; -} - - -Color3 bcToRGB(short bc) -{ - switch(bc) - { - case 1: return Color3(0.94901967048645F,0.95294123888016F,0.95294123888016F); - case 2: return Color3(0.63137257099152F,0.64705884456635F,0.63529413938522F); - case 3: return Color3(0.9764706492424F,0.91372555494308F,0.60000002384186F); - case 5: return Color3(0.84313732385635F,0.77254909276962F,0.60392159223557F); - case 6: return Color3(0.7607843875885F,0.85490202903748F,0.72156864404678F); - case 9: return Color3(0.90980398654938F,0.7294117808342F,0.78431379795074F); - case 11: return Color3(0.50196081399918F,0.73333334922791F,0.85882359743118F); - case 12: return Color3(0.79607850313187F,0.51764708757401F,0.258823543787F); - case 18: return Color3(0.80000007152557F,0.55686277151108F,0.41176474094391F); - case 21: return Color3(0.76862752437592F,0.15686275064945F,0.10980392992496F); - case 22: return Color3(0.76862752437592F,0.43921571969986F,0.62745100259781F); - case 23: return Color3(0.050980396568775F,0.41176474094391F,0.6745098233223F); - case 24: return Color3(0.96078437566757F,0.80392163991928F,0.18823531270027F); - case 25: return Color3(0.38431376218796F,0.27843138575554F,0.19607844948769F); - case 26: return Color3(0.10588236153126F,0.16470588743687F,0.20784315466881F); - case 27: return Color3(0.42745101451874F,0.43137258291245F,0.42352944612503F); - case 28: return Color3(0.15686275064945F,0.49803924560547F,0.27843138575554F); - case 29: return Color3(0.63137257099152F,0.76862752437592F,0.54901963472366F); - case 36: return Color3(0.95294123888016F,0.8117647767067F,0.60784316062927F); - case 37: return Color3(0.29411765933037F,0.59215688705444F,0.29411765933037F); - case 38: return Color3(0.62745100259781F,0.37254902720451F,0.20784315466881F); - case 39: return Color3(0.75686281919479F,0.79215693473816F,0.8705883026123F); - case 40: return Color3(0.92549026012421F,0.92549026012421F,0.92549026012421F); - case 41: return Color3(0.80392163991928F,0.32941177487373F,0.29411765933037F); - case 42: return Color3(0.75686281919479F,0.87450987100601F,0.94117653369904F); - case 43: return Color3(0.48235297203064F,0.71372550725937F,0.90980398654938F); - case 44: return Color3(0.96862751245499F,0.94509810209274F,0.55294120311737F); - case 45: return Color3(0.70588237047195F,0.82352948188782F,0.89411771297455F); - case 47: return Color3(0.85098046064377F,0.52156865596771F,0.42352944612503F); - case 48: return Color3(0.51764708757401F,0.71372550725937F,0.55294120311737F); - case 49: return Color3(0.97254908084869F,0.94509810209274F,0.51764708757401F); - case 50: return Color3(0.92549026012421F,0.90980398654938F,0.8705883026123F); - case 100: return Color3(0.93333339691162F,0.76862752437592F,0.71372550725937F); - case 101: return Color3(0.85490202903748F,0.52549022436142F,0.47843140363693F); - case 102: return Color3(0.43137258291245F,0.60000002384186F,0.79215693473816F); - case 103: return Color3(0.78039222955704F,0.75686281919479F,0.71764707565308F); - case 104: return Color3(0.41960787773132F,0.19607844948769F,0.48627454042435F); - case 105: return Color3(0.88627457618713F,0.60784316062927F,0.25098040699959F); - case 106: return Color3(0.85490202903748F,0.52156865596771F,0.2549019753933F); - case 107: return Color3(0,0.56078433990479F,0.61176472902298F); - case 108: return Color3(0.4078431725502F,0.36078432202339F,0.26274511218071F); - case 110: return Color3(0.26274511218071F,0.32941177487373F,0.57647061347961F); - case 111: return Color3(0.74901962280273F,0.71764707565308F,0.69411766529083F); - case 112: return Color3(0.4078431725502F,0.45490199327469F,0.6745098233223F); - case 113: return Color3(0.89411771297455F,0.678431391716F,0.78431379795074F); - case 115: return Color3(0.78039222955704F,0.82352948188782F,0.23529413342476F); - case 116: return Color3(0.33333334326744F,0.64705884456635F,0.68627452850342F); - case 118: return Color3(0.71764707565308F,0.84313732385635F,0.83529418706894F); - case 119: return Color3(0.64313727617264F,0.74117648601532F,0.27843138575554F); - case 120: return Color3(0.85098046064377F,0.89411771297455F,0.65490198135376F); - case 121: return Color3(0.90588241815567F,0.6745098233223F,0.34509804844856F); - case 123: return Color3(0.82745105028152F,0.43529415130615F,0.29803922772408F); - case 124: return Color3(0.57254904508591F,0.22352942824364F,0.47058826684952F); - case 125: return Color3(0.91764712333679F,0.72156864404678F,0.57254904508591F); - case 126: return Color3(0.64705884456635F,0.64705884456635F,0.79607850313187F); - case 127: return Color3(0.86274516582489F,0.73725491762161F,0.50588238239288F); - case 128: return Color3(0.68235296010971F,0.47843140363693F,0.34901961684227F); - case 131: return Color3(0.61176472902298F,0.63921570777893F,0.65882354974747F); - case 133: return Color3(0.83529418706894F,0.45098042488098F,0.23921570181847F); - case 134: return Color3(0.84705889225006F,0.8666667342186F,0.33725491166115F); - case 135: return Color3(0.45490199327469F,0.52549022436142F,0.61568629741669F); - case 136: return Color3(0.52941179275513F,0.48627454042435F,0.56470590829849F); - case 137: return Color3(0.87843143939972F,0.59607845544815F,0.39215689897537F); - case 138: return Color3(0.58431375026703F,0.54117649793625F,0.45098042488098F); - case 140: return Color3(0.12549020349979F,0.22745099663734F,0.33725491166115F); - case 141: return Color3(0.15294118225574F,0.27450981736183F,0.17647059261799F); - case 143: return Color3(0.8117647767067F,0.88627457618713F,0.96862751245499F); - case 145: return Color3(0.47450983524323F,0.53333336114883F,0.63137257099152F); - case 146: return Color3(0.58431375026703F,0.55686277151108F,0.63921570777893F); - case 147: return Color3(0.57647061347961F,0.52941179275513F,0.40392160415649F); - case 148: return Color3(0.34117648005486F,0.34509804844856F,0.34117648005486F); - case 149: return Color3(0.086274512112141F,0.11372549831867F,0.19607844948769F); - case 150: return Color3(0.67058825492859F,0.678431391716F,0.6745098233223F); - case 151: return Color3(0.47058826684952F,0.56470590829849F,0.50980395078659F); - case 153: return Color3(0.58431375026703F,0.47450983524323F,0.46666669845581F); - case 154: return Color3(0.48235297203064F,0.1803921610117F,0.1843137294054F); - case 157: return Color3(1,0.96470594406128F,0.48235297203064F); - case 158: return Color3(0.88235300779343F,0.64313727617264F,0.7607843875885F); - case 168: return Color3(0.4588235616684F,0.42352944612503F,0.38431376218796F); - case 176: return Color3(0.59215688705444F,0.41176474094391F,0.35686275362968F); - case 178: return Color3(0.70588237047195F,0.51764708757401F,0.33333334326744F); - case 179: return Color3(0.53725492954254F,0.52941179275513F,0.53333336114883F); - case 180: return Color3(0.84313732385635F,0.66274511814117F,0.29411765933037F); - case 190: return Color3(0.9764706492424F,0.83921575546265F,0.1803921610117F); - case 191: return Color3(0.90980398654938F,0.67058825492859F,0.17647059261799F); - case 192: return Color3(0.41176474094391F,0.25098040699959F,0.15686275064945F); - case 193: return Color3(0.8117647767067F,0.37647062540054F,0.14117647707462F); - case 195: return Color3(0.27450981736183F,0.40392160415649F,0.64313727617264F); - case 196: return Color3(0.13725490868092F,0.27843138575554F,0.54509806632996F); - case 198: return Color3(0.55686277151108F,0.258823543787F,0.52156865596771F); - case 199: return Color3(0.38823533058167F,0.37254902720451F,0.38431376218796F); - case 200: return Color3(0.50980395078659F,0.54117649793625F,0.3647058904171F); - case 208: return Color3(0.89803928136826F,0.89411771297455F,0.87450987100601F); - case 209: return Color3(0.69019609689713F,0.55686277151108F,0.26666668057442F); - case 210: return Color3(0.43921571969986F,0.58431375026703F,0.47058826684952F); - case 211: return Color3(0.47450983524323F,0.70980393886566F,0.70980393886566F); - case 212: return Color3(0.6235294342041F,0.76470595598221F,0.91372555494308F); - case 213: return Color3(0.42352944612503F,0.50588238239288F,0.71764707565308F); - case 216: return Color3(0.56078433990479F,0.29803922772408F,0.16470588743687F); - case 217: return Color3(0.48627454042435F,0.36078432202339F,0.27450981736183F); - case 218: return Color3(0.58823531866074F,0.43921571969986F,0.6235294342041F); - case 219: return Color3(0.41960787773132F,0.38431376218796F,0.60784316062927F); - case 220: return Color3(0.65490198135376F,0.66274511814117F,0.80784320831299F); - case 221: return Color3(0.80392163991928F,0.38431376218796F,0.59607845544815F); - case 222: return Color3(0.89411771297455F,0.678431391716F,0.78431379795074F); - case 223: return Color3(0.86274516582489F,0.56470590829849F,0.58431375026703F); - case 224: return Color3(0.94117653369904F,0.83529418706894F,0.62745100259781F); - case 225: return Color3(0.9215686917305F,0.72156864404678F,0.49803924560547F); - case 226: return Color3(0.99215692281723F,0.91764712333679F,0.55294120311737F); - case 232: return Color3(0.49019610881805F,0.73333334922791F,0.8666667342186F); - case 268: return Color3(0.2039215862751F,0.16862745583057F,0.4588235616684F); - case 1001: return Color3(0.97254908084869F,0.97254908084869F,0.97254908084869F); - case 1002: return Color3(0.80392163991928F,0.80392163991928F,0.80392163991928F); - case 1003: return Color3(0.066666670143604F,0.066666670143604F,0.066666670143604F); - case 1004: return Color3(1,0,0); - case 1005: return Color3(1,0.68627452850342F,0); - case 1006: return Color3(0.70588237047195F,0.50196081399918F,1); - case 1007: return Color3(0.63921570777893F,0.29411765933037F,0.29411765933037F); - case 1008: return Color3(0.75686281919479F,0.74509805440903F,0.258823543787F); - case 1009: return Color3(1,1,0); - case 1010: return Color3(0,0,1); - case 1011: return Color3(0,0.12549020349979F,0.37647062540054F); - case 1012: return Color3(0.1294117718935F,0.32941177487373F,0.72549021244049F); - case 1013: return Color3(0.015686275437474F,0.68627452850342F,0.92549026012421F); - case 1014: return Color3(0.66666668653488F,0.33333334326744F,0); - case 1015: return Color3(0.66666668653488F,0,0.66666668653488F); - case 1016: return Color3(1,0.40000003576279F,0.80000007152557F); - case 1017: return Color3(1,0.68627452850342F,0); - case 1018: return Color3(0.070588238537312F,0.93333339691162F,0.83137261867523F); - case 1019: return Color3(0,1,1); - case 1020: return Color3(0,1,0); - case 1021: return Color3(0.22745099663734F,0.49019610881805F,0.082352943718433F); - case 1022: return Color3(0.49803924560547F,0.55686277151108F,0.39215689897537F); - case 1023: return Color3(0.54901963472366F,0.35686275362968F,0.6235294342041F); - case 1024: return Color3(0.68627452850342F,0.8666667342186F,1); - case 1025: return Color3(1,0.78823536634445F,0.78823536634445F); - case 1026: return Color3(0.69411766529083F,0.65490198135376F,1); - case 1027: return Color3(0.6235294342041F,0.95294123888016F,0.91372555494308F); - case 1028: return Color3(0.80000007152557F,1,0.80000007152557F); - case 1029: return Color3(1,1,0.80000007152557F); - case 1030: return Color3(1,0.80000007152557F,0.60000002384186F); - case 1031: return Color3(0.38431376218796F,0.14509804546833F,0.81960791349411F); - case 1032: return Color3(1,0,0.74901962280273F); - default: return Color3::gray(); - } -} - - - -bool DataModelInstance::scanXMLObject(xml_node<> * scanNode) -{ - xml_node<> * watchFirstNode = scanNode->first_node(); - - for (xml_node<> *node = scanNode->first_node();node; node = node->next_sibling()) - { - - if (strncmp(node->name(),"Item",4)==0) - { - xml_attribute<> *classAttr = node->first_attribute("class"); - std::string className = classAttr->value(); - if (className=="Part") { - xml_node<> *propNode = node->first_node(); - xml_node<> *cFrameNode=0; - xml_node<> *sizeNode=0; - xml_node<> *shapeNode=0; - xml_node<> *colorNode=0; - xml_node<> *brickColorNode=0; - xml_node<> *nameNode=0; - - for (xml_node<> *partPropNode = propNode->first_node();partPropNode; partPropNode = partPropNode->next_sibling()) - { - for (xml_attribute<> *attr = partPropNode->first_attribute();attr; attr = attr->next_attribute()) - { - std::string xmlName = attr->name(); - std::string xmlValue = attr->value(); - - if (xmlValue=="CFrame" | xmlValue=="CoordinateFrame") - { - cFrameNode = partPropNode; - } - if (xmlValue=="Name") - { - nameNode = partPropNode; - } - if (xmlValue=="shape") - { - shapeNode = partPropNode; - _legacyLoad=false; - } - if (xmlValue=="Color") - { - colorNode=partPropNode; - } - if (xmlValue=="BrickColor") - { - brickColorNode=partPropNode; - } - if (xmlValue=="size") - { - sizeNode = partPropNode; - _legacyLoad=false; - } - if (xmlValue=="Part") - { - for (xml_node<> *featureNode = partPropNode->first_node();featureNode; featureNode = featureNode->next_sibling()) - { - for (xml_attribute<> *attr = featureNode->first_attribute();attr; attr = attr->next_attribute()) - { - std::string xmlName = attr->name(); - std::string xmlValue = attr->value(); - if (xmlValue=="shape") - { - shapeNode = featureNode; - _legacyLoad=true; - } - if (xmlValue=="size") - { - sizeNode=featureNode; - _legacyLoad=true; - } - } - } - } - } - } - - if (!cFrameNode) { - _errMsg="CFrame is missing in Part"; - return false; - } - if (!sizeNode) { - _errMsg="Size is missing in Part"; - return false; - } - - float R=1; - float G=1; - float B=1; - - if (colorNode) - { - R = getFloatValue(colorNode,"R"); - G = getFloatValue(colorNode,"G"); - B = getFloatValue(colorNode,"B"); - } - - Enum::Shape::Value partshape = Enum::Shape::Block; - std::string pshape = shapeNode->value(); - if (shapeNode) - { - if(pshape == "0" || pshape == "Ball"){ - partshape = Enum::Shape::Ball; - } - if(pshape == "1" || pshape == "Block"){ - partshape = Enum::Shape::Block; - } - if(pshape == "2" || pshape == "Cylinder"){ - partshape = Enum::Shape::Cylinder; - } - } - - std::string newName = nameNode->value(); - float X = getFloatValue(cFrameNode,"X"); - float Y = getFloatValue(cFrameNode,"Y"); - float Z = getFloatValue(cFrameNode,"Z"); - float R00 = getFloatValue(cFrameNode,"R00"); - float R01 = getFloatValue(cFrameNode,"R01"); - float R02 = getFloatValue(cFrameNode,"R02"); - float R10 = getFloatValue(cFrameNode,"R10"); - float R11 = getFloatValue(cFrameNode,"R11"); - float R12 = getFloatValue(cFrameNode,"R12"); - float R20 = getFloatValue(cFrameNode,"R20"); - float R21 = getFloatValue(cFrameNode,"R21"); - float R22 = getFloatValue(cFrameNode,"R22"); - - float sizeX = getFloatValue(sizeNode,"X"); - float sizeY = getFloatValue(sizeNode,"Y"); - float sizeZ = getFloatValue(sizeNode,"Z"); - //sizeX=1; - //sizeY=1; - //sizeZ=1; - if (_successfulLoad) { - PartInstance* test = makePart(); - test->setParent(getWorkspace()); - test->color = Color3(R,G,B); - test->shape = partshape; - if(brickColorNode) - { - test->color = bcToRGB(atoi(brickColorNode->value())); - } - test->setSize(Vector3(sizeX,sizeY+_modY,sizeZ)); - test->setName(newName); - CoordinateFrame cf; - - if (_legacyLoad) - { - - cf = CoordinateFrame(Vector3(-X,Y,Z))*CoordinateFrame(Vector3(-sizeX/2,(sizeY+_modY)/2,sizeZ/2)*Matrix3(R00,R01,R02,R10,R11,R12,R20,R21,R22)); - cf.rotation = Matrix3(R00,R01,R02,R10,R11,R12,R20,R21,R22); - } - else - { - cf.translation = Vector3(X,Y,Z); - cf.rotation = Matrix3(R00,R01,R02,R10,R11,R12,R20,R21,R22); - } - - test->setCFrame(cf); - } - else - { - return false; - } - - } - } - /* - for (xml_attribute<> *attr = node->first_attribute();attr; attr = attr->next_attribute()) - { - std::string xmlName = attr->name(); - std::string xmlValue = attr->value(); - } - */ - scanXMLObject(node); - } - - return true; -} - -bool DataModelInstance::load(const char* filename, bool clearObjects) -{ - ifstream levelFile(filename,ios::binary); - if (levelFile) - { - if (clearObjects) - clearLevel(); - readXMLFileStream(&levelFile); - std::string sfilename = std::string(filename); - std::size_t begin = sfilename.rfind('\\') + 1; - std::size_t end = sfilename.find(".rbx"); - std::string hname = sfilename.substr(begin); - std::string tname = hname.substr(0, hname.length() - 5); - name = tname; - return true; - } - else - { - std::stringstream msg; - msg << "Failed to load file:" << std::endl << filename << std::endl << strerror(errno); - MessageBoxStr(msg.str()); - return false; - } -} - -bool DataModelInstance::readXMLFileStream(std::ifstream* file) -{ - file->seekg(0,file->end); - int length = file->tellg(); - if (length<0) - { - MessageBoxStr("File is empty"); - file->close(); - return false; - } - file->seekg(0,file->beg); - char * buffer = new char[length+1]; - buffer[length]=0; - - file->read(buffer,length); - file->close(); - - if (!file) - { - stringstream msg; - msg << "Something went wrong." << endl << strerror(errno); - MessageBoxStr(msg.str()); - return false; - } - _successfulLoad = true; - xml_document<> doc; - doc.parse<0>(buffer); - xml_node<> *mainNode = doc.first_node(); - _legacyLoad=false; - //std::string xmlName = mainNode->name(); - //node = node->first_node(); - //xmlName = node->name(); - scanXMLObject(mainNode); - delete[] buffer; - return true; -} - -bool DataModelInstance::debugGetOpen() -{ - ifstream levelFile(_loadedFileName.c_str(),ios::binary); - if (levelFile) - readXMLFileStream(&levelFile); - else - getOpen(); - return true; -} - -bool DataModelInstance::getOpen() -{ - _modY=0; - OPENFILENAME of; - ZeroMemory( &of , sizeof( of)); - of.lStructSize = sizeof(OPENFILENAME); - of.lpstrFilter = "Roblox Files\0*.rbxm;*.rbxl\0\0"; - char szFile[512]; - of.lpstrFile = szFile ; - of.lpstrFile[0]='\0'; - of.nMaxFile=500; - of.lpstrTitle="Hello"; - of.Flags = OFN_FILEMUSTEXIST; - ShowCursor(TRUE); - BOOL file = GetOpenFileName(&of); - if (file) - { - _loadedFileName = of.lpstrFile; - load(of.lpstrFile,true); - } - return true; -} -void DataModelInstance::setMessage(std::string msg) -{ - message = msg; - isBrickCount = false; - showMessage = true; -} - -void DataModelInstance::clearMessage() -{ - showMessage = false; - isBrickCount = false; - message = ""; -} - -void DataModelInstance::setMessageBrickCount() -{ - isBrickCount = true; - showMessage = true; -} - -void DataModelInstance::drawMessage(RenderDevice* rd) -{ - if(isBrickCount) - { - int brickCount = 0; - int instCount = 0; - std::vector inst = getAllChildren(); - for(size_t i = 0; i < inst.size(); i++) - { - if(PartInstance* moveTo = dynamic_cast(inst.at(i))) - { - brickCount++; - } - else - { - instCount++; - } - } - char brkc[12]; - sprintf_s(brkc, "%d", brickCount); - char instc[12]; - sprintf_s(instc, "%d", instCount); - message = "Bricks: "; - message += brkc; - message += " Snaps: "; - message += instc; - } - if(showMessage && !font.isNull()) - { - int x = rd->getWidth()/2; - int y = rd->getHeight()/2; - int width = rd->getWidth()/2 + 100; - int height = width / 3; - Draw::box(Box(Vector3(x-(width/2), y-(height/2), 0), Vector3(x+(width/2), y+(height/2), 0)), rd, Color4::fromARGB(0x55B2B2B2), Color3::fromARGB(0xB2B2B2)); - font->draw2D(rd, message, Vector2(x,y), height/8, Color3::white(), Color4::clear(), GFont::XALIGN_CENTER, GFont::YALIGN_CENTER); - } -} - -WorkspaceInstance* DataModelInstance::getWorkspace() -{ - return workspace; -} -/*Vector2 DataModelInstance::getMousePos() -{ - return Vector2(mousex,mousey); -} -void DataModelInstance::setMousePos(int x,int y) -{ - mousex=x; - mousey=y; -} -void DataModelInstance::setMousePos(Vector2 pos) -{ - mousex=pos.x; - mousey=pos.y; -}*/ -GuiRootInstance* DataModelInstance::getGuiRoot() -{ - return guiRoot; -} - - -LevelInstance* DataModelInstance::getLevel() -{ - return level; -} \ No newline at end of file diff --git a/src/source/DataModel/GroupInstance.cpp b/src/source/DataModel/GroupInstance.cpp deleted file mode 100644 index 959e191..0000000 --- a/src/source/DataModel/GroupInstance.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include "DataModel/GroupInstance.h" - -GroupInstance::GroupInstance(void) -{ - PVInstance::PVInstance(); - name = "Model"; - className = "GroupInstance"; - listicon = 12; - primaryPart = NULL; -} - -GroupInstance::GroupInstance(const GroupInstance &oinst) -{ - PVInstance::PVInstance(oinst); - name = "Model"; - className = "GroupInstance"; - listicon = 12; - primaryPart = NULL; -} - -GroupInstance::~GroupInstance(void) -{ -} - -std::vector GroupInstance::getProperties() -{ - std::vector properties = PVInstance::getProperties(); - return properties; -} -void GroupInstance::PropUpdate(LPPROPGRIDITEM &pItem) -{ - PVInstance::PropUpdate(pItem); -} - -std::vector GroupInstance::unGroup() -{ - std::vector child; - while(children.size() > 0) - { - child.push_back(children[0]); - children[0]->setParent(parent); - } - return child; -} - -void GroupInstance::render(RenderDevice * rd) -{ - Instance::render(rd); - if(primaryPart != NULL && controllerFlagShown && getControllerColor(controller) != Color3::gray()) - { - rd->disableLighting(); - Vector3 vec = Vector3(0,0,0); - Vector3 up = Vector3(0,8,0); - rd->setColor(getControllerColor(controller)); - rd->setObjectToWorldMatrix(primaryPart->cFrame); - rd->beforePrimitive(); - - glBegin(GL_LINES); - glVertex3f(vec.x, vec.y, vec.z); - glVertex3f(up.x, up.y, up.z); - glEnd(); - - glBegin( GL_TRIANGLES ); - glVertex3f(up.x, up.y-2, up.z); - glVertex3f(up.x, up.y-1, up.z-2); - glVertex3f(up.x, up.y, up.z); - - glVertex3f(up.x, up.y, up.z); - glVertex3f(up.x, up.y-1, up.z-2); - glVertex3f(up.x, up.y-2, up.z); - - glEnd(); - rd->afterPrimitive(); - rd->setColor(Color3::white()); - rd->enableLighting(); - } -} \ No newline at end of file diff --git a/src/source/DataModel/GuiRootInstance.cpp b/src/source/DataModel/GuiRootInstance.cpp deleted file mode 100644 index b1aa15e..0000000 --- a/src/source/DataModel/GuiRootInstance.cpp +++ /dev/null @@ -1,538 +0,0 @@ -#include -#include -#include "G3DAll.h" -#include "DataModel/BaseButtonInstance.h" -#include "DataModel/TextButtonInstance.h" -#include "DataModel/ImageButtonInstance.h" -#include "DataModel/ToggleImageButtonInstance.h" -#include "DataModel/GuiRootInstance.h" -#include "DataModel/ImageButtonInstance.h" -#include "Globals.h" -#include "StringFunctions.h" - -#include "Listener/GUDButtonListener.h" -#include "Listener/ModeSelectionListener.h" -#include "Listener/MenuButtonListener.h" -#include "Listener/RotateButtonListener.h" -#include "Listener/CameraButtonListener.h" -#include "Listener/DeleteListener.h" -#include "Listener/ToolbarListener.h" - - -ImageButtonInstance* GuiRootInstance::makeImageButton(G3D::TextureRef newImage = NULL, G3D::TextureRef overImage = NULL, G3D::TextureRef downImage = NULL, G3D::TextureRef disableImage = NULL) -{ - ImageButtonInstance* part = new ImageButtonInstance(newImage,overImage, downImage, disableImage); -// instances.push_back(part); -// instances_2D.push_back(part); - return part; -} - -TextButtonInstance* GuiRootInstance::makeTextButton() -{ - TextButtonInstance* part = new TextButtonInstance(); - return part; -} -ToolbarListener * toolbar; -GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0) -{ - toolbar = new ToolbarListener(); - toolbar->doDelete = false; - g_fntdominant = GFont::fromFile(GetFileInPath("/content/font/dominant.fnt")); - g_fntlighttrek = GFont::fromFile(GetFileInPath("/content/font/lighttrek.fnt")); - - //Bottom Left - TextButtonInstance* button = makeTextButton(); - button->boxBegin = Vector2(0, -24); - button->boxEnd = Vector2(80, 0); - button->floatBottom = true; - button->setParent(this); - button->font = g_fntlighttrek; - button->textColor = Color3(0,255,255); - button->textOutlineColor = Color4::clear(); - button->title = "Hopper"; - button->fontLocationRelativeTo = Vector2(10, 3); - button->setAllColorsSame(); - button->boxOutlineColorOvr = Color3(0,255,255); - button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F); - button->setButtonListener(toolbar); - toolbar->addButtonRef(button); - - - button = makeTextButton(); - button->boxBegin = Vector2(0, -48); - button->boxEnd = Vector2(80, -24); - button->floatBottom = true; - button->setParent(this); - button->font = g_fntlighttrek; - button->textColor = Color3(0,255,255); - button->textOutlineColor = Color4::clear(); - button->title = "Controller"; - button->fontLocationRelativeTo = Vector2(10, 3); - button->setAllColorsSame(); - button->boxOutlineColorOvr = Color3(0,255,255); - button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F); - button->setButtonListener(toolbar); - toolbar->addButtonRef(button); - - button = makeTextButton(); - button->boxBegin = Vector2(0, -72); - button->boxEnd = Vector2(80, -48); - button->floatBottom = true; - button->setParent(this); - button->font = g_fntlighttrek; - button->textColor = Color3(0,255,255); - button->textOutlineColor = Color4::clear(); - button->title = "Color"; - button->fontLocationRelativeTo = Vector2(10, 3); - button->setAllColorsSame(); - button->boxOutlineColorOvr = Color3(0,255,255); - button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F); - button->setButtonListener(toolbar); - toolbar->addButtonRef(button); - - button = makeTextButton(); - button->boxBegin = Vector2(0, -96); - button->boxEnd = Vector2(80, -72); - button->floatBottom = true; - button->setParent(this); - button->font = g_fntlighttrek; - button->textColor = Color3(0,255,255); - button->textOutlineColor = Color4::clear(); - button->title = "Surface"; - button->fontLocationRelativeTo = Vector2(10, 3); - button->setAllColorsSame(); - button->boxOutlineColorOvr = Color3(0,255,255); - button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F); - button->setButtonListener(toolbar); - toolbar->addButtonRef(button); - - button = makeTextButton(); - button->boxBegin = Vector2(0, -120); - button->boxEnd = Vector2(80, -96); - button->floatBottom = true; - button->setParent(this); - button->font = g_fntlighttrek; - button->textColor = Color3(0,255,255); - button->title = "Model"; - button->selected = true; - button->fontLocationRelativeTo = Vector2(10, 3); - button->setAllColorsSame(); - button->boxOutlineColorOvr = Color3(0,255,255); - button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F); - button->setButtonListener(toolbar); - toolbar->addButtonRef(button); - - //Top bar - button = makeTextButton(); - button->boxBegin = Vector2(0, 0); - button->boxEnd = Vector2(125, 25); - button->setParent(this); - button->font = g_fntlighttrek; - button->textColor = Color3::white(); - button->boxColor = Color4::clear(); - button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F); - button->title = "File"; - button->textSize = 16; - button->fontLocationRelativeTo = Vector2(10, 0); - button->setAllColorsSame(); - button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F); - button->name = "file"; - button->setButtonListener(new MenuButtonListener()); - - button = makeTextButton(); - button->boxBegin = Vector2(125, 0); - button->boxEnd = Vector2(250, 25); - button->setParent(this); - button->font = g_fntlighttrek; - button->textColor = Color3::white(); - button->boxColor = Color4::clear(); - button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F); - button->title = "Edit"; - button->textSize = 16; - button->fontLocationRelativeTo = Vector2(10, 0); - button->setAllColorsSame(); - button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F); - - button = makeTextButton(); - button->boxBegin = Vector2(250, 0); - button->boxEnd = Vector2(375, 25); - button->setParent(this); - button->font = g_fntlighttrek; - button->textColor = Color3::white(); - button->boxColor = Color4::clear(); - button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F); - button->title = "View"; - button->textSize = 16; - button->fontLocationRelativeTo = Vector2(10, 0); - button->setAllColorsSame(); - button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F); - - button = makeTextButton(); - button->boxBegin = Vector2(375, 0); - button->boxEnd = Vector2(500, 25); - button->setParent(this); - button->font = g_fntlighttrek; - button->textColor = Color3::white(); - button->boxColor = Color4::clear(); - button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F); - button->title = "Insert"; - button->textSize = 16; - button->fontLocationRelativeTo = Vector2(10, 0); - button->setAllColorsSame(); - button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F); - - button = makeTextButton(); - button->boxBegin = Vector2(500, 0); - button->boxEnd = Vector2(625, 25); - button->setParent(this); - button->font = g_fntlighttrek; - button->textColor = Color3::white(); - button->boxColor = Color4::clear(); - button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F); - button->title = "Format"; - button->textSize = 16; - button->fontLocationRelativeTo = Vector2(10, 0); - button->setAllColorsSame(); - button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F); - - - //Menu - button = makeTextButton(); - button->boxBegin = Vector2(0,215); - button->boxEnd = Vector2(80,235); - button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F); - button->textColor = Color3::white(); - button->boxColor = Color4::clear(); - button->textSize = 12; - button->title = "Group"; - button->name = "Group"; - button->setAllColorsSame(); - button->textColorDis = Color3(0.8F,0.8F,0.8F); - button->font = g_fntlighttrek; - button->fontLocationRelativeTo = Vector2(10, 0); - button->setParent(this); - button->setButtonListener(new GUDButtonListener()); - - button = makeTextButton(); - button->boxBegin = Vector2(0,240); - button->boxEnd = Vector2(80,260); - button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F); - button->textColor = Color3::white(); - button->boxColor = Color4::clear(); - button->textSize = 12; - button->title = "UnGroup"; - button->name = "UnGroup"; - button->setAllColorsSame(); - button->textColorDis = Color3(0.8F,0.8F,0.8F); - button->font = g_fntlighttrek; - button->fontLocationRelativeTo = Vector2(10, 0); - button->setParent(this); - button->setButtonListener(new GUDButtonListener()); - - button = makeTextButton(); - button->boxBegin = Vector2(0,265); - button->boxEnd = Vector2(80,285); - button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F); - button->textColor = Color3::white(); - button->boxColor = Color4::clear(); - button->textSize = 12; - button->title = "Duplicate"; - button->setAllColorsSame(); - button->textColorDis = Color3(0.8F,0.8F,0.8F); - button->font = g_fntlighttrek; - button->fontLocationRelativeTo = Vector2(10, 0); - button->setParent(this); - button->name = "Duplicate"; - button->setButtonListener(new GUDButtonListener()); - - ImageButtonInstance* instance = new ToggleImageButtonInstance( - Texture::fromFile(GetFileInPath("/content/images/Run.png")), - Texture::fromFile(GetFileInPath("/content/images/Run_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/Run_dn.png")), - NULL, - Texture::fromFile(GetFileInPath("/content/images/Stop.png")), - Texture::fromFile(GetFileInPath("/content/images/Stop_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/Stop_dn.png")) - ); - instance->setButtonListener(new MenuButtonListener()); - instance->name = "go"; - instance->size = Vector2(65,65); - instance->position = Vector2(6.5, 25); - instance->setParent(this); - - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/ArrowTool.png")), - Texture::fromFile(GetFileInPath("/content/images/ArrowTool_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/ArrowTool_dn.png")), - Texture::fromFile(GetFileInPath("/content/images/ArrowTool_ds.png"))); - instance->size = Vector2(50,50); - instance->position = Vector2(15, 90); - instance->setParent(this); - instance->name = "Cursor"; - instance->setButtonListener(new ModeSelectionListener()); - - instance = makeImageButton(Texture::fromFile(GetFileInPath("/content/images/ScaleTool.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_ovr.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_dn.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_ds.png"))); - instance->size = Vector2(40,40); - instance->position = Vector2(0, 140); - instance->setParent(this); - instance->name = "Resize"; - instance->setButtonListener(new ModeSelectionListener()); - - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/MoveTool.png")), - Texture::fromFile(GetFileInPath("/content/images/MoveTool_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/MoveTool_dn.png")), - Texture::fromFile(GetFileInPath("/content/images/MoveTool_ds.png"))); - instance->size = Vector2(40,40); - instance->position = Vector2(40, 140); - instance->setParent(this); - instance->name = "Arrows"; - instance->setButtonListener(new ModeSelectionListener()); - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/SelectionRotate.png")), - Texture::fromFile(GetFileInPath("/content/images/SelectionRotate_ovr.png")), - NULL, - Texture::fromFile(GetFileInPath("/content/images/SelectionRotate_ds.png"))); - instance->size = Vector2(30,30); - instance->position = Vector2(10, 175); - instance->setParent(this); - instance->name = "Rotate"; - instance->setButtonListener(new RotateButtonListener()); - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/SelectionTilt.png")), - Texture::fromFile(GetFileInPath("/content/images/SelectionTilt_ovr.png")), - NULL, - Texture::fromFile(GetFileInPath("/content/images/SelectionTilt_ds.png"))); - instance->size = Vector2(30,30); - instance->position = Vector2(40, 175); - instance->setParent(this); - instance->name = "Tilt"; - instance->setButtonListener(new RotateButtonListener()); - - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/Delete.png")), - Texture::fromFile(GetFileInPath("/content/images/Delete_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/Delete_dn.png")), - Texture::fromFile(GetFileInPath("/content/images/Delete_ds.png"))); - instance->size = Vector2(40,46); - instance->position = Vector2(20, 284); - instance->setParent(this); - instance->name = "Delete"; - instance->setButtonListener(new DeleteListener()); - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/CameraZoomIn.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraZoomIn_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraZoomIn_dn.png"))); - instance->size = Vector2(34,25); - instance->floatBottom = true; - instance->floatRight = true; - instance->position = Vector2(-77, -90); - instance->setParent(this); - instance->name = "ZoomIn"; - instance->setButtonListener(new CameraButtonListener()); - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/CameraZoomOut.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraZoomOut_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraZoomOut_dn.png"))); - instance->size = Vector2(34,26); - instance->floatBottom = true; - instance->floatRight = true; - instance->position = Vector2(-77, -31); - instance->setParent(this); - instance->name = "ZoomOut"; - instance->setButtonListener(new CameraButtonListener()); - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/CameraPanLeft.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraPanLeft_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraPanLeft_dn.png"))); - instance->size = Vector2(34,34); - instance->floatBottom = true; - instance->floatRight = true; - instance->position = Vector2(-110, -50); - instance->setParent(this); - instance->name = "PanLeft"; - instance->setButtonListener(new CameraButtonListener()); - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/CameraPanRight.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraPanRight_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraPanRight_dn.png"))); - instance->size = Vector2(34,34); - instance->floatBottom = true; - instance->floatRight = true; - instance->position = Vector2(-45, -50); - instance->setParent(this); - instance->name = "PanRight"; - instance->setButtonListener(new CameraButtonListener()); - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/CameraCenter.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraCenter_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraCenter_dn.png"))); - instance->size = Vector2(34,20); - instance->floatBottom = true; - instance->floatRight = true; - instance->position = Vector2(-77, -60); - instance->setParent(this); - instance->name = "CenterCam"; - instance->setButtonListener(new CameraButtonListener()); - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/CameraTiltUp.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraTiltUp_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraTiltUp_dn.png"))); - instance->size = Vector2(24,24); - instance->floatBottom = true; - instance->floatRight = true; - instance->position = Vector2(-105, -75); - instance->setParent(this); - instance->name = "TiltUp"; - instance->setButtonListener(new CameraButtonListener()); - - instance = makeImageButton( - Texture::fromFile(GetFileInPath("/content/images/CameraTiltDown.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraTiltDown_ovr.png")), - Texture::fromFile(GetFileInPath("/content/images/CameraTiltDown_dn.png"))); - instance->size = Vector2(24,24); - instance->floatBottom = true; - instance->floatRight = true; - instance->position = Vector2(-40, -75); - instance->setParent(this); - instance->name = "TiltDown"; - instance->setButtonListener(new CameraButtonListener()); -} - - -void GuiRootInstance::drawButtons(RenderDevice* rd) -{ - rd->pushState(); - rd->beforePrimitive(); - //this->render(rd); - rd->afterPrimitive(); - rd->popState(); -} - -void GuiRootInstance::setDebugMessage(std::string msg, G3D::RealTime msgTime) -{ - _messageTime = msgTime; - _message = msg; -} - -//void GuiRootInstance::render(G3D::RenderDevice* renderDevice) {} - -void GuiRootInstance::renderGUI(G3D::RenderDevice* rd, double fps) -{ - //TODO--Move these to their own instance - - std::stringstream stream; - stream << std::fixed << std::setprecision(1) << g_dataModel->getLevel()->timer; - g_fntdominant->draw2D(rd, "Timer: " + stream.str(), Vector2(rd->getWidth() - 120, 25), 20, Color3::fromARGB(0x81C518), Color3::black()); - g_fntdominant->draw2D(rd, "Score: " + Convert(g_dataModel->getLevel()->score), Vector2(rd->getWidth() - 120, 50), 20, Color3::fromARGB(0x81C518), Color3::black()); - //FPS -#ifdef _DEBUG - stream.str(""); - stream.clear(); - stream << std::fixed << std::setprecision(3) << fps; - g_fntdominant->draw2D(rd, "FPS: " + stream.str(), Vector2(120, 25), 10, Color3::fromARGB(0xFFFF00), Color3::black()); -#endif - //GUI Boxes - Draw::box(G3D::Box(Vector3(0,25,0),Vector3(80,355,0)),rd,Color4(0.6F,0.6F,0.6F,0.4F), Color4(0,0,0,0)); - Draw::box(G3D::Box(Vector3(rd->getWidth() - 120,rd->getHeight() - 117,0),Vector3(rd->getWidth(),rd->getHeight(),0)),rd,Color4(0.6F,0.6F,0.6F,0.4F), Color4(0,0,0,0)); - - //Camera menu title - g_fntlighttrek->draw2D(rd, "CameraMenu", Vector2(rd->getWidth()-(g_fntlighttrek->get2DStringBounds("CameraMenu", 14).x+1),rd->getHeight() - 120), 14, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F)); - - //Tools menu - Draw::box(G3D::Box(Vector3(5, 210,0),Vector3(75, 210,0)),rd,Color4(0.6F,0.6F,0.6F,0.4F), Color4(0.6F,0.6F,0.6F,0.4F)); - g_fntlighttrek->draw2D(rd,"MENU", Vector2(10,332), 14, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F)); - - - //drawButtons(rd); - if(System::time() - 3 < _messageTime) - { - g_fntdominant->draw2D(rd, _message, Vector2((rd->getWidth()/2)-(g_fntdominant->get2DStringBounds(_message, 20).x/2),(rd->getHeight()/2)-(g_fntdominant->get2DStringBounds(_message, 20).y/2)), 20, Color3::yellow(), Color3::black()); - } - - g_dataModel->drawMessage(rd); - render(rd); -} - -bool GuiRootInstance::mouseInGUI(G3D::RenderDevice* renderDevice,int x,int y) -{ - std::vector instances_2D = g_dataModel->getGuiRoot()->getAllChildren(); - for(size_t i = 0; i < instances_2D.size(); i++) - { - if(BaseButtonInstance* button = dynamic_cast(instances_2D.at(i))) - { - if(button->mouseInButton(x,y, renderDevice)) - { - return true; - } - } - } - return false; -} - -void GuiRootInstance::update() -{ - Instance * obj6 = this->findFirstChild("Delete"); - Instance * obj = this->findFirstChild("Duplicate"); - Instance * obj2 = this->findFirstChild("Group"); - Instance * obj3 = this->findFirstChild("UnGroup"); - Instance * obj4 = this->findFirstChild("Rotate"); - Instance * obj5 = this->findFirstChild("Tilt"); - if(obj != NULL && obj2 != NULL && obj3 != NULL && obj4 !=NULL && obj5 != NULL && obj6 != NULL) - { - BaseButtonInstance* button = (BaseButtonInstance*)obj; - BaseButtonInstance* button2 = (BaseButtonInstance*)obj2; - BaseButtonInstance* button3 = (BaseButtonInstance*)obj3; - BaseButtonInstance* button4 = (BaseButtonInstance*)obj4; - BaseButtonInstance* button5 = (BaseButtonInstance*)obj5; - BaseButtonInstance* button6 = (BaseButtonInstance*)obj6; - button->disabled = true; - button2->disabled = true; - button3->disabled = true; - button4->disabled = true; - button5->disabled = true; - button6->disabled = true; - for(size_t i = 0; i < g_selectedInstances.size(); i++) - if(g_selectedInstances.at(i)->canDelete) - { - button->disabled = false; - button2->disabled = false; - button3->disabled = false; - button4->disabled = false; - button5->disabled = false; - button6->disabled = false; - break; - } - } -} - -GuiRootInstance::~GuiRootInstance() -{ - delete toolbar; -} - -void GuiRootInstance::onMouseLeftUp(G3D::RenderDevice* renderDevice, int x,int y) -{ - std::vector instances_2D = this->getAllChildren(); - for(size_t i = 0; i < instances_2D.size(); i++) - { - if(BaseButtonInstance* button = dynamic_cast(instances_2D[i])) - { - if(button->mouseInButton(x, y, renderDevice)) - { - button->onMouseClick(); - } - } - } -} diff --git a/src/source/DataModel/ImageButtonInstance.cpp b/src/source/DataModel/ImageButtonInstance.cpp deleted file mode 100644 index f57ef47..0000000 --- a/src/source/DataModel/ImageButtonInstance.cpp +++ /dev/null @@ -1,133 +0,0 @@ -#include "DataModel/ImageButtonInstance.h" - -ImageButtonInstance::ImageButtonInstance(G3D::TextureRef newImage, G3D::TextureRef overImage = NULL, G3D::TextureRef downImage = NULL, G3D::TextureRef disableImage = NULL) -{ - BaseButtonInstance::BaseButtonInstance(); - image = newImage; - openGLID = image->getOpenGLID(); - image_ovr = overImage; - if(!image_ovr.isNull()) - openGLID_ovr = image_ovr->getOpenGLID(); - image_dn = downImage; - if(!image_dn.isNull()) - openGLID_dn = image_dn->getOpenGLID(); - image_ds = disableImage; - if(!image_ds.isNull()) - openGLID_ds = image_ds->getOpenGLID(); - Vector2 size = Vector2(0,0); - Vector2 position = Vector2(0,0); - floatCenter = false; - floatBottom = false; - floatRight = false; - disabled = false; - className = "ImageButton"; -} - -ImageButtonInstance::~ImageButtonInstance(void) -{ - //Delete everything on destruction - image.~ReferenceCountedPointer(); - delete image.getPointer(); - image_ovr.~ReferenceCountedPointer(); - delete image_ovr.getPointer(); - image_ds.~ReferenceCountedPointer(); - delete image_ds.getPointer(); - image_dn.~ReferenceCountedPointer(); - delete image_dn.getPointer(); - image = NULL; - image_ovr = NULL; - image_ds = NULL; - image_dn = NULL; - delete listener; - listener = NULL; - selected = false; -} - -bool ImageButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice* rd) -{ - Vector2 positionRelative = position; - if(floatRight && floatBottom) - { - positionRelative = Vector2(rd->getWidth() + position.x, rd->getHeight() + position.y); - } - else if(floatBottom) - { - positionRelative = Vector2(position.x, rd->getHeight() + position.y); - } - else if(floatRight) - { - positionRelative = Vector2(rd->getWidth() + position.x, position.y); - } - if(mousex >= positionRelative.x && mousey >= positionRelative.y) - { - if(mousex < positionRelative.x + size.x && mousey < positionRelative.y + size.y) - { - return true; - } - } - return false; -} - -void ImageButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown) -{ - bool drawDisabledBox = false; - Vector2 positionRelative = position; - if(floatRight && floatBottom) - { - positionRelative = Vector2(rd->getWidth() + position.x, rd->getHeight() + position.y); - } - else if(floatBottom) - { - positionRelative = Vector2(position.x, rd->getHeight() + position.y); - } - else if(floatRight) - { - positionRelative = Vector2(rd->getWidth() + position.x, position.y); - } - int renderimage = openGLID; - if(selected == true && !image_dn.isNull() && !disabled) - { - renderimage = openGLID_dn; - } - else if(disabled) - { - if(!image_ds.isNull()) - renderimage = openGLID_ds; - else - drawDisabledBox = true; - } - else if(mouseInArea(positionRelative.x, positionRelative.y, positionRelative.x + size.x, positionRelative.y + size.y, mousePos.x, mousePos.y)) - { - if(mouseDown && !image_dn.isNull()) - { - renderimage = openGLID_dn; - } - else if(!image_ovr.isNull()) - { - renderimage = openGLID_ovr; - } - } - - - - glEnable( GL_TEXTURE_2D ); - glEnable(GL_BLEND);// you enable blending function - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glBindTexture( GL_TEXTURE_2D, renderimage); - glBegin( GL_QUADS ); - glTexCoord2d(0.0,0.0); - glVertex2f( positionRelative.x, positionRelative.y ); - glTexCoord2d( 1.0,0.0 ); - glVertex2f( positionRelative.x + size.x, positionRelative.y ); - glTexCoord2d( 1.0,1.0 ); - glVertex2f( positionRelative.x + size.x, positionRelative.y + size.y ); - glTexCoord2d( 0.0,1.0 ); - glVertex2f( positionRelative.x, positionRelative.y + size.y ); - glEnd(); - glDisable( GL_TEXTURE_2D ); - - if(drawDisabledBox) - { - Draw::box(Box(Vector3(positionRelative.x, positionRelative.y, 0), Vector3(positionRelative.x+size.x, positionRelative.y+size.y, 0)), rd, Color4(0.7F,0.7F,0.7F,0.3F), Color4::clear()); - } -} \ No newline at end of file diff --git a/src/source/DataModel/Instance.cpp b/src/source/DataModel/Instance.cpp deleted file mode 100644 index a74a1aa..0000000 --- a/src/source/DataModel/Instance.cpp +++ /dev/null @@ -1,169 +0,0 @@ -#define WINVER 0x0400 -#include -#include "DataModel/Instance.h" - - - -Instance::Instance(void) -{ - parent = NULL; - name = "Default Game Instance"; - className = "BaseInstance"; - listicon = 1; - canDelete = true; -} - -Instance::Instance(const Instance &oinst) -{ - - name = oinst.name; - className = oinst.className; - canDelete = oinst.canDelete; - listicon = oinst.listicon; - //setParent(oinst.parent); -} - - - -void Instance::render(RenderDevice* rd) -{ - for(size_t i = 0; i < children.size(); i++) - { - children[i]->render(rd); - } -} - -void Instance::update() -{ -} - -PROPGRIDITEM Instance::createPGI(LPSTR catalog, LPSTR propName, LPSTR propDesc, LPARAM curVal, INT type, TCHAR choices[]) -{ - PROPGRIDITEM pItem; - PropGrid_ItemInit(pItem); - pItem.lpszCatalog=catalog; - pItem.lpszPropName=propName; - pItem.lpszPropDesc=propDesc; - pItem.lpCurValue=curVal; - pItem.iItemType=type; - if(choices != NULL) - pItem.lpszzCmbItems = choices; - return pItem; -} - -void Instance::PropUpdate(LPPROPGRIDITEM &item) -{ - if(strcmp(item->lpszPropName, "Name") == 0) - { - name = (LPSTR)item->lpCurValue; - } -} - -std::vector Instance::getProperties() -{ - std::vector properties; - - - properties.push_back(createPGI( - "Properties", - "Name", - "The name of this instance", - (LPARAM)name.c_str(), - PIT_EDIT - )); - return properties; -} - - - -Instance::~Instance(void) -{ - for(size_t i = 0; i < children.size(); i++) - { - delete children.at(i); - } -} - -void Instance::setName(std::string newName) -{ - name = newName; -} - -std::string Instance::getClassName() -{ - return className; -} - -std::vector Instance::getChildren() -{ - return children; -} - -std::vector Instance::getAllChildren() -{ - if(!children.empty()) - { - std::vector totalchildren = children; - for(size_t i = 0; i < children.size(); i++) - { - std::vector subchildren = children.at(i)->getAllChildren(); - if(!subchildren.empty()) - totalchildren.insert(totalchildren.end(), subchildren.begin(), subchildren.end()); - } - return totalchildren; - } - return children; -} - -void Instance::setParent(Instance* newParent) -{ - if(parent != NULL) - { - parent->removeChild(this); - } - parent = newParent; - if(newParent != NULL) - { - newParent->addChild(this); - } -} - -Instance* Instance::getParent() -{ - return parent; -} - -void Instance::addChild(Instance* newChild) -{ - children.push_back(newChild); -} - -void Instance::clearChildren() -{ - children.clear(); -} -void Instance::removeChild(Instance* oldChild) -{ - for(size_t i = 0; i < children.size(); i++) - { - if(children.at(i) == oldChild) - { - children.erase(children.begin() + i); - } - } -} - -Instance* Instance::findFirstChild(std::string name) -{ - for(size_t i = 0; i < children.size(); i++) - { - if(children.at(i)->name.compare(name) == 0) - { - return children.at(i); - } - } - return NULL; -} - - - diff --git a/src/source/DataModel/LevelInstance.cpp b/src/source/DataModel/LevelInstance.cpp deleted file mode 100644 index 5d0fdb2..0000000 --- a/src/source/DataModel/LevelInstance.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include "DataModel/LevelInstance.h" - -LevelInstance::LevelInstance(void) -{ - Instance::Instance(); - name = "Level"; - winMessage = "You Won!"; - loseMessage = "You Lost. Try Again"; - timer = 60.0F; - score = 0; - canDelete = false; -} - -LevelInstance::~LevelInstance(void) -{ -} - - -char timerTxt[12]; -char scoreTxt[12]; -std::vector LevelInstance::getProperties() -{ - std::vector properties = Instance::getProperties(); - - - - properties.push_back(createPGI("Messages", - "WinMessage", - "The message that shows when the player wins.", - (LPARAM)winMessage.c_str(), - PIT_EDIT)); - properties.push_back(createPGI("Messages", - "LoseMessage", - "The message that shows when the player loses.", - (LPARAM)loseMessage.c_str(), - PIT_EDIT)); - - - sprintf_s(timerTxt, "%g", timer); - sprintf_s(scoreTxt, "%d", score); - properties.push_back(createPGI("Gameplay", - "InitialTimerValue", - "The ammount of time in seconds the player has to complete this level.\r\n\r\nPut 0 if time is limitless.", - (LPARAM)timerTxt, - PIT_EDIT)); - properties.push_back(createPGI("Gameplay", - "InitialScoreValue", - "The ammount of points the player starts with.", - (LPARAM)scoreTxt, - PIT_EDIT)); - return properties; -} -void LevelInstance::PropUpdate(LPPROPGRIDITEM &pItem) -{ - if(strcmp(pItem->lpszPropName, "InitialTimerValue") == 0) - { - timer = atoi((LPSTR)pItem->lpCurValue); - } - if(strcmp(pItem->lpszPropName, "InitialScoreValue") == 0) - { - score = atof((LPSTR)pItem->lpCurValue); - } - if(strcmp(pItem->lpszPropName, "LoseMessage") == 0) - { - loseMessage = (LPSTR)pItem->lpCurValue; - } - if(strcmp(pItem->lpszPropName, "WinMessage") == 0) - { - winMessage = (LPSTR)pItem->lpCurValue; - } - else - Instance::PropUpdate(pItem); -} \ No newline at end of file diff --git a/src/source/DataModel/PVInstance.cpp b/src/source/DataModel/PVInstance.cpp deleted file mode 100644 index 8bdf6af..0000000 --- a/src/source/DataModel/PVInstance.cpp +++ /dev/null @@ -1,108 +0,0 @@ -#include "DataModel/PVInstance.h" - -PVInstance::PVInstance(void) -{ - Instance::Instance(); - nameShown = false; - controllerFlagShown = true; - className = "PVInstance"; - listicon = 0; - controller = (Enum::Controller::Value)0; -} - -PVInstance::PVInstance(const PVInstance &oinst) -{ - Instance::Instance(oinst); -} - -PVInstance::~PVInstance(void) -{ -} - -void PVInstance::postRender(RenderDevice* rd) -{ -} - -static TCHAR* enumStr(int controller) -{ - switch(controller) - { - case Enum::Controller::None: - return "None"; - case Enum::Controller::KeyboardLeft: - return "KeyboardLeft"; - case Enum::Controller::KeyboardRight: - return "KeyboardRight"; - case Enum::Controller::Joypad1: - return "Joypad1"; - case Enum::Controller::Joypad2: - return "Joypad2"; - case Enum::Controller::Chase: - return "Joypad1"; - case Enum::Controller::Flee: - return "Joypad2"; - } - return "None"; -} - -static Enum::Controller::Value strEnum(TCHAR * tval) -{ - if(strcmp(tval, "KeyboardLeft") == 0) - return Enum::Controller::KeyboardLeft; - if(strcmp(tval, "KeyboardRight") == 0) - return Enum::Controller::KeyboardRight; - if(strcmp(tval, "Joypad1") == 0) - return Enum::Controller::Joypad1; - if(strcmp(tval, "Joypad2") == 0) - return Enum::Controller::Joypad2; - if(strcmp(tval, "Chase") == 0) - return Enum::Controller::Chase; - if(strcmp(tval, "Flee") == 0) - return Enum::Controller::Flee; - return Enum::Controller::None; -} - - - -std::vector PVInstance::getProperties() -{ - std::vector properties = Instance::getProperties(); - properties.push_back(createPGI( - "Item", - "NameShown", - "This chooses whether the item name is shown", - nameShown, - PIT_CHECK)); - properties.push_back(createPGI( - "Item", - "ControllerFlagShown", - "This chooses whether the item's ControllerFlag is shown", - controllerFlagShown, - PIT_CHECK)); - properties.push_back(createPGI( - "Behaviour", - "Controller", - "This chooses what type of controller is used", - (LPARAM)enumStr(controller), - PIT_COMBO, - TEXT("None\0KeyboardRight\0KeyboardLeft\0Joypad1\0Joypad2\0Chase\0Flee") - )); - - return properties; -} -void PVInstance::PropUpdate(LPPROPGRIDITEM &pItem) -{ - if(strcmp(pItem->lpszPropName, "NameShown") == 0) - { - nameShown = pItem->lpCurValue == TRUE; - } - if(strcmp(pItem->lpszPropName, "ControllerFlagShown") == 0) - { - controllerFlagShown = pItem->lpCurValue == TRUE; - } - if(strcmp(pItem->lpszPropName, "Controller") == 0) - { - controller = strEnum((TCHAR *)pItem->lpCurValue); - } - else Instance::PropUpdate(pItem); -} diff --git a/src/source/DataModel/PartInstance.cpp b/src/source/DataModel/PartInstance.cpp deleted file mode 100644 index b8760ac..0000000 --- a/src/source/DataModel/PartInstance.cpp +++ /dev/null @@ -1,1124 +0,0 @@ -#include "DataModel/PartInstance.h" -#include "Globals.h" -#include -#include - - -PartInstance::PartInstance(void) : _bevelSize(0.07f), _parseVert(0), _debugTimer(0) -{ - PVInstance::PVInstance(); - glList = glGenLists(1); - name = "Unnamed PVItem"; - className = "Part"; - canCollide = true; - anchored = false; - size = Vector3(2,1,4); - setCFrame(CoordinateFrame(Vector3(0,0,0))); - color = Color3::gray(); - velocity = Vector3(0,0,0); - rotVelocity = Vector3(0,0,0); - top = Enum::SurfaceType::Smooth; - front = Enum::SurfaceType::Smooth; - right = Enum::SurfaceType::Smooth; - back = Enum::SurfaceType::Smooth; - left = Enum::SurfaceType::Smooth; - bottom = Enum::SurfaceType::Smooth; - shape = Enum::Shape::Block; -} - - -Vector3 PartInstance::getVelocity() -{ - return velocity; -} -Vector3 PartInstance::getRotVelocity() -{ - return rotVelocity; -} - -void PartInstance::setVelocity(Vector3 v) -{ - velocity = v; -} -void PartInstance::setRotVelocity(Vector3 v) -{ - rotVelocity = v; -} - -void PartInstance::postRender(RenderDevice *rd) -{ - if(!nameShown) - return; - G3D::GFontRef fnt = NULL; - Instance* dm = parent; - while(dm != NULL) - { - if(DataModelInstance* mod = dynamic_cast(dm)) - { - fnt = mod->font; - break; - } - dm = dm->getParent(); - } - if(!fnt.isNull()) - { - Vector3 gamepoint = position + Vector3(0,1.5,0); - Vector3 camerapoint = rd->getCameraToWorldMatrix().translation; - float distance = pow(pow((double)gamepoint.x - (double)camerapoint.x, 2) + pow((double)gamepoint.y - (double)camerapoint.y, 2) + pow((double)gamepoint.z - (double)camerapoint.z, 2), 0.5); - if(distance < 100 && distance > -100) - { - if(distance < 0) - distance = distance*-1; - glDisable(GL_DEPTH_TEST); - fnt->draw3D(rd, name, CoordinateFrame(rd->getCameraToWorldMatrix().rotation, gamepoint), 0.03*distance, Color3::yellow(), Color3::black(), G3D::GFont::XALIGN_CENTER, G3D::GFont::YALIGN_CENTER); - glEnable(GL_DEPTH_TEST); - } - } -} - -void PartInstance::setParent(Instance* prnt) -{ - Instance * cparent = getParent(); - while(cparent != NULL) - { - if(WorkspaceInstance* workspace = dynamic_cast(cparent)) - { - std::cout << "Removed from partarray " << std::endl; - workspace->partObjects.erase(std::remove(workspace->partObjects.begin(), workspace->partObjects.end(), this), workspace->partObjects.end()); - break; - } - cparent = cparent->getParent(); - } - Instance::setParent(prnt); - while(parent != NULL) - { - if(WorkspaceInstance* workspace = dynamic_cast(parent)) - { - workspace->partObjects.push_back(this); - break; - } - parent = parent->getParent(); - } -} - -PartInstance::PartInstance(const PartInstance &oinst) : _bevelSize(0.07f), _parseVert(0), _debugTimer(0) -{ - PVInstance::PVInstance(oinst); - glList = glGenLists(1); - //name = oinst.name; - //className = "Part"; - name = oinst.name; - canCollide = oinst.canCollide; - setParent(oinst.parent); - anchored = oinst.anchored; - size = oinst.size; - setCFrame(oinst.cFrame); - color = oinst.color; - velocity = oinst.velocity; - rotVelocity = oinst.rotVelocity; - top = oinst.top; - front = oinst.front; - right = oinst.right; - back = oinst.back; - left = oinst.left; - bottom = oinst.bottom; - shape = oinst.shape; - changed = true; -} - -void PartInstance::setSize(Vector3 newSize) -{ - int minsize = 1; - int maxsize = 512; - changed = true; - int sizex = (int)newSize.x; - if(sizex <= 0) - sizex = 1; - if(sizex > 512) - sizex = 512; - - int sizey = (int)newSize.y; - if(sizey <= 0) - sizey = 1; - if(sizey > 512) - sizey = 512; - - int sizez = (int)newSize.z; - if(sizez <= 0) - sizez = 1; - if(sizez > 512) - sizez = 512; - - if(shape != Enum::Shape::Block) - { - int max = sizex; - if(sizey > max) - max = sizey; - if(sizez > max) - max = sizez; - sizex = sizey = sizez = max; - } - - size = Vector3(sizex, sizey, sizez); - - - -} -Vector3 PartInstance::getSize() -{ - return size; -} -Vector3 PartInstance::getPosition() -{ - return position; -} -void PartInstance::setShape(Enum::Shape::Value shape) -{ - switch(shape) - { - case Enum::Shape::Block: - this->shape = shape; - break; - default: - this->shape = shape; - this->setSize(this->getSize()); - } - changed = true; -} - -void PartInstance::setPosition(Vector3 pos) -{ - position = pos; - cFrame = CoordinateFrame(cFrame.rotation, pos); - changed = true; -} - -CoordinateFrame PartInstance::getCFrame() -{ - return cFrame; -} -void PartInstance::setCFrame(CoordinateFrame coordinateFrame) -{ - cFrame = coordinateFrame; - position = coordinateFrame.translation; - changed = true; -} -// Can probably be deleted -CoordinateFrame PartInstance::getCFrameRenderBased() -{ - return cFrame;//CoordinateFrame(getCFrame().rotation,Vector3(getCFrame().translation.x, getCFrame().translation.y, getCFrame().translation.z)); -} - -bool PartInstance::collides(PartInstance * part) -{ - if(shape == Enum::Shape::Block) - { - if(part->shape == Enum::Shape::Block) - return G3D::CollisionDetection::fixedSolidBoxIntersectsFixedSolidBox(getBox(), part->getBox()); - else - return G3D::CollisionDetection::fixedSolidSphereIntersectsFixedSolidBox(part->getSphere(), getBox()); - } - else - { - if(part->shape == Enum::Shape::Block) - return G3D::CollisionDetection::fixedSolidSphereIntersectsFixedSolidBox(getSphere(), part->getBox()); - else - return G3D::CollisionDetection::fixedSolidSphereIntersectsFixedSolidSphere(getSphere(), part->getSphere()); - } -} - -#ifdef NEW_BOX_RENDER -Box PartInstance::getBox() -{ - Box box = Box(Vector3(size.x/2, size.y/2, size.z/2) ,Vector3(-size.x/2,-size.y/2,-size.z/2)); - CoordinateFrame c = getCFrameRenderBased(); - itemBox = c.toWorldSpace(box); - return itemBox; -} -Sphere PartInstance::getSphere() -{ - Sphere sphere = Sphere(Vector3(0,0,0), size.y/2); - CoordinateFrame c = getCFrameRenderBased(); - //itemBox = c.toWorldSpace(Sphere); - return sphere;//itemBox; -} -#else -Box PartInstance::getBox() -{ - if(changed) - { - Box box = Box(Vector3(0+size.x/4, 0+size.y/4, 0+size.z/4) ,Vector3(0-size.x/4,0-size.y/4,0-size.z/4)); - CoordinateFrame c = getCFrameRenderBased(); - itemBox = c.toWorldSpace(box); - Vector3 v0,v1,v2,v3; - for (int f = 0; f < 6; f++) { - itemBox.getFaceCorners(f, v0,v1,v2,v3); - _vertices[f*16] = v0.x; - _vertices[(f*16)+1] = v0.y; - _vertices[(f*16)+2] = v0.z; - _vertices[(f*16)+3] = v1.x; - _vertices[(f*16)+4] = v1.y; - _vertices[(f*16)+5] = v1.z; - _vertices[(f*16)+6] = v2.x; - _vertices[(f*16)+7] = v2.y; - _vertices[(f*16)+8] = v2.z; - _vertices[(f*16)+9] = v3.x; - _vertices[(f*16)+10] = v3.y; - _vertices[(f*16)+11] = v3.z; - _vertices[(f*16)+12] = color.r; - _vertices[(f*16)+13] = color.g; - _vertices[(f*16)+14] = color.b; - _vertices[(f*16)+15] = 1; - } - } - return itemBox; -} -#endif - -bool PartInstance::collides(Box box) -{ - return CollisionDetection::fixedSolidBoxIntersectsFixedSolidBox(getBox(), box); -} -#ifdef NEW_BOX_RENDER -void PartInstance::addVertex(Vector3 vertexPos,Color3 color) -{ - _vertices.push_back(vertexPos.x); - _vertices.push_back(vertexPos.y); - _vertices.push_back(vertexPos.z); - _vertices.push_back(color.r); - _vertices.push_back(color.g); - _vertices.push_back(color.b); -} - void PartInstance::addNormals(Vector3 normal) -{ - for (unsigned int i=0;i<3;i+=1) { - _normals.push_back(normal.x); - _normals.push_back(normal.y); - _normals.push_back(normal.z); - } -} - void PartInstance::addSingularNormal(Vector3 normal) -{ - _normals.push_back(normal.x); - _normals.push_back(normal.y); - _normals.push_back(normal.z); -} - void PartInstance::addTriangle(Vector3 v1,Vector3 v2,Vector3 v3) -{ - addVertex(v1,color); - addVertex(v2,color); - addVertex(v3,color); - //addNormals(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(v3-v2,v1-v2).direction()); - addSingularNormal(cross(v1-v3,v2-v3).direction()); -} - -void PartInstance::addQuad(Vector3 v1,Vector3 v2, Vector3 v3, Vector3 v4) -{ - addTriangle(v1, v2, v3); - addTriangle(v1, v3, v4); -} - -void PartInstance::genSmoothNormals(int count = -1) -{ - if(count < 0) - { - - } -} - -void PartInstance::addSmoothTriangle(Vector3 v1, Vector3 v2, Vector3 v3) -{ - addVertex(v1,color); - addVertex(v2,color); - addVertex(v3,color); - //addNormals(cross(v2-v1,v3-v1).direction()); - //addSingularNormal(Vector3(cross(v2-v1,v3-v1) + cross(v3-v2,v1-v2) + cross(v1-v3,v2-v3)).direction()); - addSingularNormal(v1.direction()); - addSingularNormal(v2.direction()); - addSingularNormal(v3.direction()); -} - - -void PartInstance::addPlus(Vector3 v1) -{ - float renderY = max(size.z, max(size.x, size.y))/2 * 0.775; - Vector3 vx1 = v1 + Vector3(0, -renderY, -0.1f); - Vector3 vx2 = v1 + Vector3(0, -renderY, 0.1f); - Vector3 vx3 = v1 + Vector3(0, renderY, 0.1f); - - addVertex(vx1,Color3::WHITE); - addVertex(vx2,Color3::WHITE); - addVertex(vx3,Color3::WHITE); - //addNormals(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(vx2-vx1,vx3-vx1).direction()); - addSingularNormal(cross(vx3-vx2,vx1-vx2).direction()); - addSingularNormal(cross(vx1-vx3,vx2-vx3).direction()); - - vx1 = v1 + Vector3(0, renderY, 0.1f); - vx2 = v1 + Vector3(0, renderY, -0.1f); - vx3 = v1 + Vector3(0, -renderY, -0.1f); - - addVertex(vx1,Color3::WHITE); - addVertex(vx2,Color3::WHITE); - addVertex(vx3,Color3::WHITE); - //addNormals(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(vx2-vx1,vx3-vx1).direction()); - addSingularNormal(cross(vx3-vx2,vx1-vx2).direction()); - addSingularNormal(cross(vx1-vx3,vx2-vx3).direction()); - - vx3 = v1 + Vector3(0, -0.1f, -renderY); - vx2 = v1 + Vector3(0, 0.1f, -renderY); - vx1 = v1 + Vector3(0, 0.1f, renderY); - - addVertex(vx1,Color3::WHITE); - addVertex(vx2,Color3::WHITE); - addVertex(vx3,Color3::WHITE); - //addNormals(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(vx2-vx1,vx3-vx1).direction()); - addSingularNormal(cross(vx3-vx2,vx1-vx2).direction()); - addSingularNormal(cross(vx1-vx3,vx2-vx3).direction()); - - vx3 = v1 + Vector3(0, 0.1f, renderY); - vx2 = v1 + Vector3(0, -0.1f, renderY); - vx1 = v1 + Vector3(0, -0.1f, -renderY); - - addVertex(vx1,Color3::WHITE); - addVertex(vx2,Color3::WHITE); - addVertex(vx3,Color3::WHITE); - //addNormals(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(vx2-vx1,vx3-vx1).direction()); - addSingularNormal(cross(vx3-vx2,vx1-vx2).direction()); - addSingularNormal(cross(vx1-vx3,vx2-vx3).direction()); - -} - - -void PartInstance::addPlus2(Vector3 v1) -{ - float renderY = max(size.z, max(size.x, size.y))/2 * 0.775; - Vector3 vx3 = v1 + Vector3(0, -renderY, -0.1f); - Vector3 vx2 = v1 + Vector3(0, -renderY, 0.1f); - Vector3 vx1 = v1 + Vector3(0, renderY, 0.1f); - - addVertex(vx1,Color3::WHITE); - addVertex(vx2,Color3::WHITE); - addVertex(vx3,Color3::WHITE); - //addNormals(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(vx2-vx1,vx3-vx1).direction()); - addSingularNormal(cross(vx3-vx2,vx1-vx2).direction()); - addSingularNormal(cross(vx1-vx3,vx2-vx3).direction()); - - vx3 = v1 + Vector3(0, renderY, 0.1f); - vx2 = v1 + Vector3(0, renderY, -0.1f); - vx1 = v1 + Vector3(0, -renderY, -0.1f); - - addVertex(vx1,Color3::WHITE); - addVertex(vx2,Color3::WHITE); - addVertex(vx3,Color3::WHITE); - //addNormals(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(vx2-vx1,vx3-vx1).direction()); - addSingularNormal(cross(vx3-vx2,vx1-vx2).direction()); - addSingularNormal(cross(vx1-vx3,vx2-vx3).direction()); - - vx1 = v1 + Vector3(0, -0.1f, -renderY); - vx2 = v1 + Vector3(0, 0.1f, -renderY); - vx3 = v1 + Vector3(0, 0.1f, renderY); - - addVertex(vx1,Color3::WHITE); - addVertex(vx2,Color3::WHITE); - addVertex(vx3,Color3::WHITE); - //addNormals(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(vx2-vx1,vx3-vx1).direction()); - addSingularNormal(cross(vx3-vx2,vx1-vx2).direction()); - addSingularNormal(cross(vx1-vx3,vx2-vx3).direction()); - - vx1 = v1 + Vector3(0, 0.1f, renderY); - vx2 = v1 + Vector3(0, -0.1f, renderY); - vx3 = v1 + Vector3(0, -0.1f, -renderY); - - addVertex(vx1,Color3::WHITE); - addVertex(vx2,Color3::WHITE); - addVertex(vx3,Color3::WHITE); - //addNormals(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(vx2-vx1,vx3-vx1).direction()); - addSingularNormal(cross(vx3-vx2,vx1-vx2).direction()); - addSingularNormal(cross(vx1-vx3,vx2-vx3).direction()); - -} - void PartInstance::debugPrintVertexIDs(RenderDevice* rd,GFontRef font,Matrix3 rot) -{ - _debugUniqueVertices.clear(); - glDisable(GL_DEPTH_TEST); - - for (unsigned int i=0;i<_vertices.size();i+=6) - { - std::stringstream stream; - stream << std::fixed << std::setprecision(1) << i; - Vector3 testVector = Vector3(_vertices[i],_vertices[i+1],_vertices[i+2]); - if (isUniqueVertex(testVector)) - { - - font->draw3D(rd, stream.str(), CoordinateFrame(testVector) * -rot, 0.05, Color3::fromARGB(0xFF4F0000), Color4::clear()); - _debugUniqueVertices.push_back(testVector); - } - } - glEnable(GL_DEPTH_TEST); -} - void PartInstance::makeFace(int vertex1,int vertex2, int vertex3) -{ - addTriangle(Vector3(_vertices[vertex1],_vertices[vertex1+1],_vertices[vertex1+2]), - Vector3(_vertices[vertex2],_vertices[vertex2+1],_vertices[vertex2+2]), - Vector3(_vertices[vertex3],_vertices[vertex3+1],_vertices[vertex3+2])); -} - void PartInstance::fromArrays(float verts[], float norms[], float ind[], unsigned int countVN, unsigned int countInd) -{ - for(unsigned int i = 0; i < countVN; i++) - { - _vertices.push_back(verts[i]); - _normals.push_back(norms[i]); - } - for(unsigned int i = 0; i < countInd; i++) - { - _indices.push_back(ind[i]); - } - -} -void PartInstance::makeSmoothFace(int vertex1,int vertex2, int vertex3) -{ - addSmoothTriangle(Vector3(_vertices[vertex1],_vertices[vertex1+1],_vertices[vertex1+2]), - Vector3(_vertices[vertex2],_vertices[vertex2+1],_vertices[vertex2+2]), - Vector3(_vertices[vertex3],_vertices[vertex3+1],_vertices[vertex3+2])); -} -bool PartInstance::isUniqueVertex(Vector3 pos) -{ - for (unsigned int i=0;i<_debugUniqueVertices.size();i+=1) - { - if (pos==_debugUniqueVertices[i]) - { - return false; - } - } - return true; -} -//int rings = 15; -//int sectors = 15; -void PartInstance::render(RenderDevice* rd) { - int sectorCount = 12; - int stackCount = 12; - float radius = 0.5F; - //if(nameShown) - //postRenderStack.push_back(this); - if (changed) - { - - getBox(); - _vertices.clear(); - _normals.clear(); - _indices.clear(); - //std::vector(_vertices).swap(_vertices); //Clear the memory - Vector3 renderSize = size/2; - switch(this->shape) - { - case Enum::Shape::Ball: - { - glNewList(glList, GL_COMPILE); - glColor(this->color); - glPushMatrix(); - glScalef(renderSize.x, renderSize.y, renderSize.z); - gluSphere(gluNewQuadric(), 1, 20, 20); - glPopMatrix(); - glEndList(); - rd->setObjectToWorldMatrix(cFrame); - glCallList(glList); - changed = false; - return; - } - break; - case Enum::Shape::Block: - { - // Front - addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z), - Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z), - Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,renderSize.z) - ); - - addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,renderSize.z), - Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z), - Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z) - ); - - // Top - addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y,renderSize.z-_bevelSize), - Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize), - Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize) - ); - addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize), - Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize), - Vector3(-renderSize.x+_bevelSize,renderSize.y,-renderSize.z+_bevelSize) - ); - - // Back - addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z), - Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,-renderSize.z), - Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z) - ); - addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z), - Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z), - Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,-renderSize.z) - ); - - // Bottom - addTriangle(Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize), - Vector3(renderSize.x-_bevelSize,-renderSize.y,renderSize.z-_bevelSize), - Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize) - ); - addTriangle(Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize), - Vector3(-renderSize.x+_bevelSize,-renderSize.y,-renderSize.z+_bevelSize), - Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize) - ); - // Left - addTriangle(Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize), - Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize), - Vector3(-renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize) - ); - addTriangle(Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize), - Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize), - Vector3(-renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize) - ); - - // Right - addTriangle(Vector3(renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize), - Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize), - Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize) - ); - addTriangle(Vector3(renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize), - Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize), - Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize) - ); - - - // Bevel Top Front - makeFace(0,36,48); - makeFace(48,18,0); - // Bevel Left Front Corner - makeFace(18,156,162); - makeFace(24,18,162); - // Bevel Left Front Top Corner - makeFace(48,156,18); - // Bevel Left Front Bottom Corner - makeFace(120,6,150); - // Bevel Left Top - makeFace(48,66,156); - makeFace(144,156,66); - // Bevel Bottom - makeFace(6,120,114); - makeFace(114,12,6); - // Left Bottom - makeFace(120,150,174); - makeFace(174,132,120); - // Right Front Top Corner - makeFace(36,0,180); - // Right Front Corner - makeFace(180,0,12); - makeFace(186,180,12); - // Right Front Bottom Corner - makeFace(186,12,114); - // Right Bottom - makeFace(186,114,108); - makeFace(108,198,186); - // Right Top Corner - makeFace(180,192,36); - makeFace(192,42,36); - // Right Back Top Corner - makeFace(72,42,192); - // Right Back Bottom Corner - makeFace(78,198,108); - // Right Back Corner - makeFace(72,192,198); - makeFace(198,78,72); - // Back Bottom Corner - makeFace(78,108,132); - makeFace(132,84,78); - // Back Top - makeFace(42,72,102); - makeFace(102,66,42); - // Back Left Top Corner - makeFace(144,66,102); - // Back Left Corner - makeFace(144,102,84); - makeFace(84,174,144); - // Back Left Bottom Corner - makeFace(174,84,132); - for (unsigned short i=0;i<_vertices.size()/6;i++) { - _indices.push_back(i); - } - } - break; - case Enum::Shape::Cylinder: - { - /*int fsize = renderSize.y/(pi()/2); - //makeFace(0,0,48); - // Front - addTriangle(Vector3(renderSize.x,renderSize.y-fsize,renderSize.z), - Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z), - Vector3(renderSize.x,-renderSize.y+fsize,renderSize.z) - ); - - addTriangle(Vector3(-renderSize.x,renderSize.y-fsize,renderSize.z), - Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z), - Vector3(renderSize.x,renderSize.y-fsize,renderSize.z) - ); - - // Top - addTriangle(Vector3(renderSize.x,renderSize.y,renderSize.z-fsize), - Vector3(renderSize.x,renderSize.y,-renderSize.z+fsize), - Vector3(-renderSize.x,renderSize.y,renderSize.z-fsize) - ); - addTriangle(Vector3(-renderSize.x,renderSize.y,renderSize.z-fsize), - Vector3(renderSize.x,renderSize.y,-renderSize.z+fsize), - Vector3(-renderSize.x,renderSize.y,-renderSize.z+fsize) - ); - - // Back - addTriangle(Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z), - Vector3(renderSize.x,-renderSize.y+fsize,-renderSize.z), - Vector3(-renderSize.x,-renderSize.y+fsize,-renderSize.z) - ); - addTriangle(Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z), - Vector3(-renderSize.x,-renderSize.y+fsize,-renderSize.z), - Vector3(-renderSize.x,renderSize.y-fsize,-renderSize.z) - ); - - // Bottom - addTriangle(Vector3(renderSize.x,-renderSize.y,-renderSize.z+fsize), - Vector3(renderSize.x,-renderSize.y,renderSize.z-fsize), - Vector3(-renderSize.x,-renderSize.y,renderSize.z-fsize) - ); - addTriangle(Vector3(-renderSize.x,-renderSize.y,renderSize.z-fsize), - Vector3(-renderSize.x,-renderSize.y,-renderSize.z+fsize), - Vector3(renderSize.x,-renderSize.y,-renderSize.z+fsize) - ); - // Left - /*addTriangle(Vector3(-renderSize.x,renderSize.y-fsize,-renderSize.z+fsize), - Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z-fsize), - Vector3(-renderSize.x,renderSize.y-fsize,renderSize.z-fsize) - ); - addTriangle(Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z-fsize), - Vector3(-renderSize.x,renderSize.y-fsize,-renderSize.z+fsize), - Vector3(-renderSize.x,-renderSize.y+fsize,-renderSize.z+fsize) - ); - // Right - addTriangle(Vector3(renderSize.x,renderSize.y-fsize,renderSize.z-fsize), - Vector3(renderSize.x,-renderSize.y+fsize,renderSize.z-fsize), - Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z+fsize) - ); - addTriangle(Vector3(renderSize.x,-renderSize.y+fsize,-renderSize.z+fsize), - Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z+fsize), - Vector3(renderSize.x,-renderSize.y+fsize,renderSize.z-fsize) - );//*/ - - - /*// Bevel Top Front - makeFace(0,36,48); - makeFace(48,18,0); - // Bevel Left Front Corner - makeFace(18,156,162); - makeFace(24,18,162); - // Bevel Left Front Top Corner - makeFace(48,156,18); - // Bevel Left Front Bottom Corner - makeFace(120,6,150); - // Bevel Left Top - makeFace(48,66,156); - makeFace(144,156,66); - // Bevel Bottom - makeFace(6,120,114); - makeFace(114,12,6); - // Left Bottom - makeFace(120,150,174); - makeFace(174,132,120); - // Right Front Top Corner - makeFace(36,0,180); - // Right Front Corner - makeFace(180,0,12); - makeFace(186,180,12); - // Right Front Bottom Corner - makeFace(186,12,114); - // Right Bottom - makeFace(186,114,108); - makeFace(108,198,186); - // Right Top Corner - makeFace(180,192,36); - makeFace(192,42,36); - // Right Back Top Corner - makeFace(72,42,192); - // Right Back Bottom Corner - makeFace(78,198,108); - // Right Back Corner - makeFace(72,192,198); - makeFace(198,78,72); - // Back Bottom Corner - makeFace(78,108,132); - makeFace(132,84,78); - // Back Top - makeFace(42,72,102); - makeFace(102,66,42); - // Back Left Top Corner - makeFace(144,66,102); - // Back Left Corner - makeFace(144,102,84); - makeFace(84,174,144); - // Back Left Bottom Corner - makeFace(174,84,132);*/ - /*float radius = renderSize.y + (renderSize.y * (1 - cos(pi() / 12))); - Vector2 xy[13]; - for(int i = 0; i < 13; i++) - { - //Get the next point - float y = radius * cos(((double)i-G3D::toRadians(29)) * pi()/6); - float z = radius * sin(((double)i-G3D::toRadians(29)) * pi()/6); - xy[i] = Vector2(y,z); - } - for(int i = 0; i < 12; i++) - { - //Create a Quad for the face (i to i+1) - addSmoothTriangle( - Vector3(renderSize.x, xy[i].x, xy[i].y), - Vector3(-renderSize.x, xy[i].x, xy[i].y), - Vector3(-renderSize.x, xy[i+1].x, xy[i+1].y)); - addSmoothTriangle( - Vector3(renderSize.x, xy[i].x, xy[i].y), - Vector3(-renderSize.x, xy[i+1].x, xy[i+1].y), - Vector3(renderSize.x, xy[i+1].x, xy[i+1].y)); - //Cap on the right - addTriangle( - Vector3(renderSize.x, xy[0].x, xy[0].y), - Vector3(renderSize.x, xy[i].x, xy[i].y), - Vector3(renderSize.x, xy[i+1].x, xy[i+1].y)); - //Cap on the left - addTriangle( - Vector3(-renderSize.x, xy[i+1].x, xy[i+1].y), - Vector3(-renderSize.x, xy[i].x, xy[i].y), - Vector3(-renderSize.x, xy[0].x, xy[0].y)); - }*/ - /*float facetRatio = renderSize.x / (pi() * 0.5F); - addQuad( - Vector3(renderSize.x, renderSize.y, renderSize.z-facetRatio), - Vector3(renderSize.x, renderSize.y, -renderSize.z+facetRatio), - Vector3(-renderSize.x, renderSize.y, -renderSize.z+facetRatio), - Vector3(-renderSize.x, renderSize.y, renderSize.z-facetRatio)); - - addQuad( - Vector3(renderSize.x, renderSize.y-facetRatio, renderSize.z), - Vector3(-renderSize.x, renderSize.y-facetRatio, renderSize.z), - Vector3(-renderSize.x, -renderSize.y+facetRatio, renderSize.z), - Vector3(renderSize.x, -renderSize.y+facetRatio, renderSize.z)); - addQuad( - Vector3(-renderSize.x, -renderSize.y, renderSize.z-facetRatio), - Vector3(-renderSize.x, -renderSize.y, -renderSize.z+facetRatio), - Vector3(renderSize.x, -renderSize.y, -renderSize.z+facetRatio), - Vector3(renderSize.x, -renderSize.y, renderSize.z-facetRatio)); - addQuad( - Vector3(renderSize.x, -renderSize.y+facetRatio, -renderSize.z), - Vector3(-renderSize.x, -renderSize.y+facetRatio, -renderSize.z), - Vector3(-renderSize.x, renderSize.y-facetRatio, -renderSize.z), - Vector3(renderSize.x, renderSize.y-facetRatio, -renderSize.z));*/ - - /*addPlus(Vector3(-renderSize.x-0.01,0,0)); - addPlus2(Vector3(renderSize.x+0.01,0,0)); - - for (unsigned short i=0;i<_vertices.size()/6;i++) { - _indices.push_back(i); - } - //std::reverse(_vertices.begin(), _vertices.end()); - //std::reverse(_normals.begin(), _normals.end()); - )*/ - GLUquadric* q = gluNewQuadric(); - - addPlus(Vector3(-renderSize.x-0.01,0,0)); - addPlus2(Vector3(renderSize.x+0.01,0,0)); - for (unsigned short i=0;i<_vertices.size()/6;i++) { - _indices.push_back(i); - } - glVertexPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[0]); - glColorPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[3]); - glNormalPointer(GL_FLOAT,3 * sizeof(GLfloat), &_normals[0]); - glNewList(glList, GL_COMPILE); - glColor(this->color); - glPushMatrix(); - glRotatef(90, 0, 1, 0); - glScalef(renderSize.x, renderSize.y, renderSize.z); - glTranslatef(0,0,1); - gluDisk(q, 0, 1, 12, 12); - glTranslatef(0,0,-2); - gluCylinder(q, 1, 1, 2, 12, 1); - glRotatef(180, 1, 0, 0); - gluDisk(q, 0, 1, 12, 12); - glPopMatrix(); - glDrawElements(GL_TRIANGLES, _indices.size(), GL_UNSIGNED_SHORT, &_indices[0]); - glEndList(); - rd->setObjectToWorldMatrix(cFrame); - glCallList(glList); - changed = false; - return; - - } - break; - } - - changed=false; - glVertexPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[0]); - glColorPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[3]); - glNormalPointer(GL_FLOAT,3 * sizeof(GLfloat), &_normals[0]); - glNewList(glList, GL_COMPILE); - //glPushMatrix(); - //glTranslatef(2,7,0); - glDrawElements(GL_TRIANGLES, _indices.size(), GL_UNSIGNED_SHORT, &_indices[0]); - //glPopMatrix(); - glEndList(); - } - rd->setObjectToWorldMatrix(cFrame); - glCallList(glList); - postRender(rd); - //rd->setObjectToWorldMatrix(cFrame); - -} -#else -void PartInstance::render(RenderDevice* rd) -{ - - if(changed) - { - Box box = getBox(); - changed = false; - glNewList(glList, GL_COMPILE); - glColor(color); - /*glEnable( GL_TEXTURE_2D ); - glEnable(GL_BLEND);// you enable blending function - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glBindTexture( GL_TEXTURE_2D, Globals::surfaceId); - glBegin(GL_QUADS);*/ - for(int i = 0; i < 96; i+=16) - { - /*double add = 0.8; - Enum::SurfaceType::Value face; - if(i == 0)//Back - face = back; - else if(i == 16)//Right - face = right; - else if(i == 32)//Front - face = front; - else if(i == 48)//Top - face = top; - else if(i == 64)//Left - face = left; - else if(i == 80)//Bottom - face = bottom; - - /*if(face == Snaps) - add = 0.0; - else if(face == Inlets) - add = 0.2;*/ - - Vector3 v0 = Vector3(_vertices[i], _vertices[i+1], _vertices[i+2]), v1 = Vector3(_vertices[i+3], _vertices[i+4], _vertices[i+5]), v3 = Vector3(_vertices[i+9], _vertices[i+10], _vertices[i+11]); - /*glNormal3fv((v1 - v0).cross(v3 - v0).direction()); - glTexCoord2f(0.0F,0.0F); - glVertex3fv(v0); - glTexCoord2f(1.0F,0.0F); - glVertex3fv(v1); - glTexCoord2f(1.0F,0.25F); - glVertex3f(_vertices[i+6], _vertices[i+7], _vertices[i+8]); - glTexCoord2f(0.0F,0.25F); - glVertex3fv(v3);*/ - - glEnable(GL_BLEND);// you enable blending function - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glBegin( GL_QUADS ); - glNormal3fv((v1 - v0).cross(v3 - v0).direction()); - //glTexCoord2d(0.0,0.0+add); - glVertex3fv(v0); - //glTexCoord2d( 1.0,0.0+add); - glVertex3fv(v1); - //glTexCoord2d(1.0,0.2+add); - glVertex3f(_vertices[i+6], _vertices[i+7], _vertices[i+8]); - //glTexCoord2d( 0.0,0.2+add); - glVertex3fv(v3); - glEnd(); - //glDisable( GL_TEXTURE_2D ); - } - glEndList(); - /*glEnd(); - glDisable(GL_TEXTURE_2D);*/ - } - glCallList(glList); - glColor(Color3::white()); - if(!children.empty()) - { - for(size_t i = 0; i < children.size(); i++) - { - children.at(i)->render(rd); - } - } - -} -#endif - -PartInstance::~PartInstance(void) -{ - glDeleteLists(glList, 1); -} -char pto[512]; -char pto2[512]; -#include - -static Enum::Shape::Value strEnum(TCHAR* shape) -{ - if(strcmp("Block", shape) == 0) - return Enum::Shape::Block; - if(strcmp("Cylinder", shape) == 0) - return Enum::Shape::Cylinder; - return Enum::Shape::Ball; -} - -static TCHAR* enumStr(int shape) -{ - switch(shape) - { - case Enum::Shape::Block: - return "Block"; - case Enum::Shape::Ball: - return "Ball"; - case Enum::Shape::Cylinder: - return "Cylinder"; - } - return "Block"; -} - -void PartInstance::PropUpdate(LPPROPGRIDITEM &item) -{ - if(strcmp(item->lpszPropName, "Color3") == 0) - { - color = Color3(GetRValue(item->lpCurValue)/255.0F,GetGValue(item->lpCurValue)/255.0F,GetBValue(item->lpCurValue)/255.0F); - changed=true; - } - if(strcmp(item->lpszPropName, "Anchored") == 0) - { - anchored= item->lpCurValue == TRUE; - changed=true; - } - else if(strcmp(item->lpszPropName, "Offset") == 0) - { - std::string str = (LPTSTR)item->lpCurValue; - std::vector vect; - std::stringstream ss(str); - float i; - - while (ss >> i) - { - vect.push_back(i); - - if (ss.peek() == ',') - ss.ignore(); - } - - //if(vect.size() != 3) - //{ - //sprintf(pto, "%g, %g, %g", cFrame.translation.x, cFrame.translation.y, cFrame.translation.z, "what"); - //LPCSTR str = LPCSTR(pto); - //item->lpCurValue = (LPARAM)str; - //} - //else - if(vect.size() == 3) - { - Vector3 pos(vect.at(0),vect.at(1),vect.at(2)); - setPosition(pos); - } - } - - else if(strcmp(item->lpszPropName, "Size") == 0) - { - std::string str = (LPTSTR)item->lpCurValue; - std::vector vect; - std::stringstream ss(str); - float i; - - while (ss >> i) - { - vect.push_back(i); - - if (ss.peek() == ',') - ss.ignore(); - } - - /*if(vect.size() != 3) - { - sprintf(pto, "%g, %g, %g", cFrame.translation.x, cFrame.translation.y, cFrame.translation.z, "what"); - LPCSTR str = LPCSTR(pto); - item->lpCurValue = (LPARAM)str; - } - else*/ - if(vect.size() == 3) - { - Vector3 size(vect.at(0),vect.at(1),vect.at(2)); - setSize(size); - } - } - if(strcmp(item->lpszPropName, "Shape") == 0) - { - printf("%s", enumStr(strEnum((TCHAR*)item->lpCurValue))); - setShape(strEnum((TCHAR*)item->lpCurValue)); - } - else PVInstance::PropUpdate(item); -} - - - -std::vector PartInstance::getProperties() -{ - std::vector properties = PVInstance::getProperties(); - - - properties.push_back(createPGI( - "Properties", - "Color3", - "The color of the selected part", - RGB((color.r*255),(color.g*255),(color.b*255)), - PIT_COLOR - )); - properties.push_back(createPGI( - "Item", - "Anchored", - "Whether the block can move or not", - (LPARAM)anchored, - PIT_CHECK - )); - sprintf_s(pto, "%g, %g, %g", position.x, position.y, position.z); - properties.push_back(createPGI( - "Item", - "Offset", - "The position of the object in the workspace", - (LPARAM)pto, - PIT_EDIT - )); - sprintf_s(pto2, "%g, %g, %g", size.x, size.y, size.z); - properties.push_back(createPGI( - "Item", - "Size", - "The position of the object in the workspace", - (LPARAM)pto2, - PIT_EDIT - )); - properties.push_back(createPGI( - "Item", - "Shape", - "The shape of the object in the workspace", - (LPARAM)enumStr(shape), - PIT_COMBO, - TEXT("Ball\0Block\0Cylinder\0") - )); - return properties; -} - - diff --git a/src/source/DataModel/TextButtonInstance.cpp b/src/source/DataModel/TextButtonInstance.cpp deleted file mode 100644 index ae73feb..0000000 --- a/src/source/DataModel/TextButtonInstance.cpp +++ /dev/null @@ -1,117 +0,0 @@ -#include "DataModel/TextButtonInstance.h" - - -TextButtonInstance::TextButtonInstance(void) -{ - BaseButtonInstance::BaseButtonInstance(); - boxBegin = Vector2(0,0); - boxEnd = Vector2(0,0); - fontLocationRelativeTo = Vector2(0,0); - centeredWithinBox = false; - title = "TextBox"; - textColor = Color4(1, 1, 1, 1); - textOutlineColor = Color4(0, 0, 0, 0); - boxColor = Color4(0.6F,0.6F,0.6F,0.4F); - boxOutlineColor = Color4(0, 0, 0, 0); - setAllColorsSame(); - textSize = 12; - floatBottom = false; - floatRight = false; - floatCenter = false; - visible = true; - className = "TextButton"; - disabled = false; - selected = false; -} - -bool TextButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice* rd) -{ - Vector3 point1; - Vector3 point2; - if(floatBottom) - { - point1 = Vector3(boxBegin.x, rd->getHeight() + boxBegin.y,0); - point2 = Vector3(boxEnd.x, rd->getHeight() + boxEnd.y,0); - - } - else - { - point1 = Vector3(boxBegin.x, boxBegin.y,0); - point2 = Vector3(boxEnd.x, boxEnd.y,0); - } - if(mousex >= point1.x && mousey >= point1.y) - { - if(mousex < point2.x && mousey < point2.y) - { - return true; - } - } - return false; -} - -void TextButtonInstance::setAllColorsSame() -{ - textColorOvr = textColor; - textOutlineColorOvr = textOutlineColor; - boxColorOvr = boxColor; - boxOutlineColorOvr = boxOutlineColor; - textColorDn = textColor; - textOutlineColorDn = textOutlineColor; - boxColorDn = boxColor; - boxOutlineColorDn = boxOutlineColor; - textColorDis = textColor; - textOutlineColorDis = textOutlineColor; - boxColorDis = boxColor; - boxOutlineColorDis = boxOutlineColor; -} - -TextButtonInstance::~TextButtonInstance(void) -{ -} - -void TextButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown) -{ - Vector3 point1; - Vector3 point2; - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - - if(floatBottom) - { - point1 = Vector3(boxBegin.x, rd->getHeight() + boxBegin.y,0); - point2 = Vector3(boxEnd.x, rd->getHeight() + boxEnd.y,0); - - } - else - { - point1 = Vector3(boxBegin.x, boxBegin.y,0); - point2 = Vector3(boxEnd.x, boxEnd.y,0); - } - Vector2 RelativeTo = Vector2(point1.x + fontLocationRelativeTo.x, point1.y + fontLocationRelativeTo.y); - if(disabled) - { - Draw::box(Box(point1, point2), rd, boxColorDis, boxOutlineColorDis); - font->draw2D(rd, title, RelativeTo, textSize, textColorDis, textOutlineColorDis); - } - else if(mouseInArea(point1.x, point1.y, point2.x, point2.y, mousePos.x, mousePos.y) && mouseDown) - { - Draw::box(Box(point1, point2), rd, boxColorDn, boxOutlineColorDn); - font->draw2D(rd, title, RelativeTo, textSize, textColorDn, textOutlineColorDn); - } - else if(selected || mouseInArea(point1.x, point1.y, point2.x, point2.y, mousePos.x, mousePos.y)) - { - Draw::box(Box(point1, point2), rd, boxColorOvr, boxOutlineColorOvr); - font->draw2D(rd, title, RelativeTo, textSize, textColorOvr, textOutlineColorOvr); - } - else - { - Draw::box(Box(point1, point2), rd, boxColor, boxOutlineColor); - font->draw2D(rd, title, RelativeTo, textSize, textColor, textOutlineColor); - } - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); -} - -void doNullCheck() -{ -} \ No newline at end of file diff --git a/src/source/DataModel/ToggleImageButtonInstance.cpp b/src/source/DataModel/ToggleImageButtonInstance.cpp deleted file mode 100644 index b14f794..0000000 --- a/src/source/DataModel/ToggleImageButtonInstance.cpp +++ /dev/null @@ -1,139 +0,0 @@ -#include "DataModel/ToggleImageButtonInstance.h" - -ToggleImageButtonInstance::ToggleImageButtonInstance(G3D::TextureRef newImage, - G3D::TextureRef overImage, - G3D::TextureRef downImage, - G3D::TextureRef disableImage, - G3D::TextureRef newImage2, - G3D::TextureRef overImage2, - G3D::TextureRef downImage2, - G3D::TextureRef disableImage2) : ImageButtonInstance(newImage, overImage, downImage, disableImage) -{ - image2 = newImage2; - openGLID2 = image2->getOpenGLID(); - image_ovr2 = overImage2; - if(!image_ovr2.isNull()) - openGLID2_ovr = image_ovr2->getOpenGLID(); - image_dn2 = downImage2; - if(!image_dn2.isNull()) - openGLID2_dn = image_dn2->getOpenGLID(); - image_ds2 = disableImage2; - if(!image_ds2.isNull()) - openGLID2_ds = image_ds2->getOpenGLID(); - checked = false; - className = "ToggleImageButton"; -} - -ToggleImageButtonInstance::~ToggleImageButtonInstance(void) -{ - //Delete everything on destruction - image2.~ReferenceCountedPointer(); - delete image2.getPointer(); - image_ovr2.~ReferenceCountedPointer(); - delete image_ovr2.getPointer(); - image_ds2.~ReferenceCountedPointer(); - delete image_ds2.getPointer(); - image_dn2.~ReferenceCountedPointer(); - delete image_dn2.getPointer(); - image = NULL; - image_ovr = NULL; - image_ds = NULL; - image_dn = NULL; - delete listener; - listener = NULL; - selected = false; -} - - -void ToggleImageButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown) -{ - bool drawDisabledBox = false; - Vector2 positionRelative = position; - if(floatRight && floatBottom) - { - positionRelative = Vector2(rd->getWidth() + position.x, rd->getHeight() + position.y); - } - else if(floatBottom) - { - positionRelative = Vector2(position.x, rd->getHeight() + position.y); - } - else if(floatRight) - { - positionRelative = Vector2(rd->getWidth() + position.x, position.y); - } - int renderimage = openGLID; - if(checked) - { - renderimage = openGLID2; - if(selected == true && !image_dn2.isNull() && !disabled) - { - renderimage = openGLID2_dn; - } - else if(disabled) - { - if(!image_ds2.isNull()) - renderimage = openGLID2_ds; - else - drawDisabledBox = true; - } - else if(mouseInArea(positionRelative.x, positionRelative.y, positionRelative.x + size.x, positionRelative.y + size.y, mousePos.x, mousePos.y)) - { - if(mouseDown && !image_dn2.isNull()) - { - renderimage = openGLID2_dn; - } - else if(!image_ovr2.isNull()) - { - renderimage = openGLID2_ovr; - } - } - } - else - { - if(selected == true && !image_dn.isNull() && !disabled) - { - renderimage = openGLID_dn; - } - else if(disabled) - { - if(!image_ds.isNull()) - renderimage = openGLID_ds; - else - drawDisabledBox = true; - } - else if(mouseInArea(positionRelative.x, positionRelative.y, positionRelative.x + size.x, positionRelative.y + size.y, mousePos.x, mousePos.y)) - { - if(mouseDown && !image_dn.isNull()) - { - renderimage = openGLID_dn; - } - else if(!image_ovr.isNull()) - { - renderimage = openGLID_ovr; - } - } - } - - - - glEnable( GL_TEXTURE_2D ); - glEnable(GL_BLEND);// you enable blending function - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glBindTexture( GL_TEXTURE_2D, renderimage); - glBegin( GL_QUADS ); - glTexCoord2d(0.0,0.0); - glVertex2f( positionRelative.x, positionRelative.y ); - glTexCoord2d( 1.0,0.0 ); - glVertex2f( positionRelative.x + size.x, positionRelative.y ); - glTexCoord2d( 1.0,1.0 ); - glVertex2f( positionRelative.x + size.x, positionRelative.y + size.y ); - glTexCoord2d( 0.0,1.0 ); - glVertex2f( positionRelative.x, positionRelative.y + size.y ); - glEnd(); - glDisable( GL_TEXTURE_2D ); - - if(drawDisabledBox) - { - Draw::box(Box(Vector3(positionRelative.x, positionRelative.y, 0), Vector3(positionRelative.x+size.x, positionRelative.y+size.y, 0)), rd, Color4(0.7F,0.7F,0.7F,0.3F), Color4::clear()); - } -} \ No newline at end of file diff --git a/src/source/DataModel/WorkspaceInstance.cpp b/src/source/DataModel/WorkspaceInstance.cpp deleted file mode 100644 index 46b2fae..0000000 --- a/src/source/DataModel/WorkspaceInstance.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "DataModel/WorkspaceInstance.h" - - -WorkspaceInstance::WorkspaceInstance(void) -{ - GroupInstance::GroupInstance(); - name = "Workspace"; - className = "Workspace"; - canDelete = false; -} - -WorkspaceInstance::~WorkspaceInstance(void) -{ -} diff --git a/src/source/DataModelV2/BaseGuiInstance.cpp b/src/source/DataModelV2/BaseGuiInstance.cpp new file mode 100644 index 0000000..9dba0cd --- /dev/null +++ b/src/source/DataModelV2/BaseGuiInstance.cpp @@ -0,0 +1 @@ +#include "DataModelV2/BaseGuiInstance.h" \ No newline at end of file diff --git a/src/source/Globals.cpp b/src/source/Globals.cpp index fc67cba..851c2df 100644 --- a/src/source/Globals.cpp +++ b/src/source/Globals.cpp @@ -2,9 +2,9 @@ #include "Application.h" int const Globals::gen = 0; -int const Globals::major = 100; -int const Globals::minor = 4; -int const Globals::patch = 3; +int const Globals::major = 0; +int const Globals::minor = 104; +int const Globals::patch = 5; int Globals::surfaceId = 2; //bool Globals::showMouse = true; bool Globals::useMousePoint = false; diff --git a/src/source/PropertyWindow.cpp b/src/source/PropertyWindow.cpp index d32641b..7de57b8 100644 --- a/src/source/PropertyWindow.cpp +++ b/src/source/PropertyWindow.cpp @@ -79,7 +79,7 @@ LRESULT CALLBACK PropProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) break; case WM_DRAWITEM: { - std::cout << "Drawing?" << "\r\n"; + //std::cout << "Drawing?" << "\r\n"; COLORREF clrBackground; COLORREF clrForeground; TEXTMETRIC tm;