From 16c04c433fc9de84b490822102101e67f3c668b9 Mon Sep 17 00:00:00 2001 From: omigamedev Date: Tue, 7 Aug 2018 00:27:46 +0200 Subject: [PATCH] add grids panel (part 2) --- data/ui/grid.png | Bin 0 -> 10729 bytes engine/node_panel_grid.cpp | 33 +++++++++++++++++++++++++++++++++ engine/node_panel_grid.h | 25 +++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 data/ui/grid.png create mode 100644 engine/node_panel_grid.cpp create mode 100644 engine/node_panel_grid.h diff --git a/data/ui/grid.png b/data/ui/grid.png new file mode 100644 index 0000000000000000000000000000000000000000..1a18e887105ec22f54c1e2a0d3e168239c558263 GIT binary patch literal 10729 zcmeIY_dnJDAOHV6_RJpPg=A%~kWG}4l|8ak*~-o=TZpoETF71@qtGEco5)CHOZGV5 z`+0x=g3k}1-#%R~U5-v1&+~lT@3;HycD5 zij!XwJBkvc(xfVuv{QXIssyygB&Y64SPa}cI1sUx8XmsvuRI)gd}@{MX0SS3--J1s zeKa7Cu6ekm$%?1UNL@WeK#5nt%8B6F+NdK$U)r7{l;L5QQ0zpw*Kw362_o@A*~!R= z5oJb3YUGKC$p8Ds|C8HeJ0htR$0F-<%ataYw!&$YuU31Ig%cq@JsxkR4@r!Vw+#r8 zc{47aaf|oLm9SAKqkoxi-n_9%pIBtOcronfmhPXc{<$~({TuwW>!;(D*q{GB5fB!R znq*;K3H~>9^KjLqHS@dkDmis1o?G*tF`^{GsH&w!%Ig0s>7`Y9S=j}PIu{h;!4fq; zZ!357>&42SKN^!)T_u_8+-73`{(XojaZ-PFE^m(9n67{K&&oP*N6qEONBx@l7rF|c z^UnYAc(9~ZIR|ezTenvaD3Bsu-Q8iGcFGb=+JAypiT|QHD!tc?cMeuoc>I7Lx2KKM z_3k%ALKH*Ow?CcjPhV+$YsHR2o~NX6?MEx*QRL+0OjO^~{Z`&&*Gcm0*DoZx4}<>t zb#Qhz_wQO}pQEV&{mz7g*cCAxB($zha>w_^4Fcmb%PY+By;qae@j{MztT_*wY}*Oc zHci%^Bgg`}fA^DJvm)}rvf=jWe!g1o`E zY(C@A($m95%KC10G(1{HI^N0(w;aCWI4JQZ6GoiJ%jiOMb#)6%OUY06H?)qthlhtf z`>u{hqk~)7?%cVveH3`5)u-x8=xv-GeLS%F)^_UkNGbzt)-}A=0;7dQ?gI` zeOn5<7j}8`^YQ5!8F8^z3-Isj6>(=EyjSs8R#%e` zQ7jh-%Nket)bQ>fY|g+_)YEfegsghMa%-Oz;Ip?7ZU;2qcXjPNKRcmo*e^CJv8kR! zkfHmAl}C!t1L>5Cs1UU0%E}65;_&zHde+tyO*6TFoo^QEf7+jNUJz{;v3nM(FIs~T zDJ!UKm5=<$vt{faxy(q$Cy60s_eA=Agp61egDwBzO0!&enUZp)PU2wlUS3RsdiCTp zX19;Zl_z5yk#wO9R({H-8+!pmKYl#>`t^odSx#0Kzu7qn!PAw^%}Dg3{;%Wiw}>W* zlD&Q53L&L2JH4>ghpyVfAzrJHGw+=VxBA6Csh@`Hv$c`7_;X*G-SM{l4>zLNg5OWn zmVf%INlQx`jV{n5YHn_hy<_c)f*bLrtBWW!9dU4Qu<4AYi=7-C91Q*a+YzbMSGsd2 zhr^T7yyH2}_W8+HT&p}Qg-)(qOySK$KA*Ftp0v2u%Sl9Ep}r<3izfCiMry3$>V2c2 zB#GcWSo4z6H!vvdddSYshX4A_oB6^-h1;v>K3;KnMIzG zlJXIAenMwKESlBF$ikwkp+S6$o96HCuD+4cn~A;JCl8jsrF@#Y!K-0l@WM|1zXHW) zsp4&VmqTM?Np=>Or7zIX(8Nwdr$5il6=K!Z*1p7YfnSEO*1XiC!E)g$v^Gvy=qt(e zTig!!?!^r}y=!*s)-7K8MD~ffhYcM=dJ;^X-s5+obQRAGMVUvw!V4eXQna_XpQv?a zunIo9>nX1=I^iOT6}gX_jcZ7UB&MdmesOQynjz=5rpMl>$>Py+UR3)$f{;;A*h66+ zu32MZJ)}QGlZPoGa9|{3r4~GOYVPjBR(|vNHMO-@IBu|@ZTm8>`u%y6*6}DwUA3|( zonEAuNJ(84)e*o9ihMBpm?BJxeJSGsUTj=k<^3U!9ce}~J3Bj^jg5`;%*@*#1Wi*@ zSh8+$s}}0}$+1qhzDa(;qiY8*Dw5S_!$<%+1%jV^hEwD?kSj0kF&Fw#Fl*W0W%iTV zt?yz#MSC5jgLk9Qi^>KDH0Bl-bhWmVRd;!Xgy<8m7f=QS1kmQi_STTS|95)=l#p`= z(RoMHlO}B9rIEZSt-%sH>eOkUDF61p?E9EYcypf#*=R$m1>#^BoF24djD92>&ave# zQ;`u2O;49ZFUzxL^`&}=KmU#cRTi_e0J2f;i65jmyK(k-|{BSXL zDxW@*GW2A#N%vI#+O?RsZ@If$ytul0dplM~OF9=lq@Tsa5UWv#awexo_Be0FZLnwP#1f;suwX&=}5#65748T*R6RtWYicYH+{4ZYCTaz;i*$qcfT zL^cl}QZEnWnfyr2*vENaDK|AX#+^X`3M*jUV(Dp-@SkjCj;wDinyh^ew5fVwqd)>) zD!f-%ZonRX6l62@#tgB5MID(?nwFfS8NIx`JR>u+!4LXKTh8X@Zim}~w30&`47|>9-$0-RkY3ix))Eo%ibLKH43gOH)+bL>T7j&!jX zRajF)3#AiVA9uUg0u`;hwsde}w0nx%mdvHaDV!vN*;-pO=wvM!&6MD;FmInpNVw1~ z(dJlf`{(j8rBbT4wzkj?3Y%K<&mv^0LU)Q|wOP>fIli-0_~!RZrrnyfQ}#8uc6E@2 zk`oNls(ih8RQ_* zT;f1$Q$M{kVxU_zrch*OMck$v{Fi2@e(;1%#!EfLhM8T`>zVKwe#Z?YC@3iTjqn?d zY#buH{I>|!0#Z|Ncu4E%>t8DS#Y>L%^gEdG$FRqzsW6!St6ytmV^5eeEa7r`s!EVXo)p7H9PE6?;4R};_q?uI*11#~`=8(6GwJu7wEkQnb}Mnwx(L({~Eg`qSI z)4q$4Jv}}S(5OnX5s5A;x?+@ic~L_WU(W)OPPp#tTQ4B+v8w8Jr9(kCjPd83Np~3u zn5EpZr7nHh<+wZuBQhH6Ju4Zy*Y*~AGsN$^xfz!pR7`Ii{!MEY@b^CpR_xDHOa!6i zOZDfWN?5E2*mKgbqfWgmDkk=15uIr70Cw?!OIkH7ZAX7Gm*7( zaPT?bM(3_vRduyzJGoS}UB4#_DCO_Y1mzi0C4K#*;@!Y6AAdaT5sWo@q)FG9hr@U^ zPqsk82|ulmtFfQ>quY#3_a|@YOc*a3;|(bt4q}&hcy6Yi`344Bri@s`{QCV{(`EN4 z(4%Rlc>1d+%iq6$Ih`@!37ItcsMElY15!N#HVBg|CpOTPtbLNI)U~@3|=x zd320{g$48ZUU^7CbMu`PZD}Qe8wK`>epV{eWia$NK_s6_Go^X5l^_ z#Jq@R>fv=$0>hH!L>^IABwEcdH6=wujIRWR_ME7+CnO*wcPoFAk~BTq_vYRPCDy-8l?Y$d>ihp{4-Cp=WN6 zjXI;Qa=x1^=Vx0XacBq>pbfK+w~R*1deqWzw)@QjT)zYHiGSg@zN6*JE55~qR%cpxq6M^3`R(6MW zb}r4pV5$EZ+~lbG&u%CM=|DS>YKi>!-+zbe)dM4vgn*q5De&DVNop5_@Q6rKsnm zI;ntpje6Bd;-a+YxuTfZt2%!q+5KcRlLCq6`lbF47vzM$?4yeDq&hiFxO;g)+}&cX zwdR%3_TZx5yUwZ=f&vW;2=$&#PfrgG4(8WAKL;VB@WJFD5MG;H;z> zhSS)XaSU6VgV<-c`oa$%ZgEsOiHV4W`p){_eAw?IxyBcg?~{8dU>S0@mz*}dbr9EZ z{!*Ysp4rUItZH3Rpy$ilo}Gt>UJ4F-_h36M65Wa0v8)|!eL>*Lm7#D`PnIaG4SLeV z7^!Szl(K$jkZ-kqL2diHmT*jK#BA%EH~54XSoEePl2%uppbNG7BUCPF!%#nahI~b% zhsMWwvIvOYwAXMLgI-kWgGo#IRBe7kRyUA<+CbzeP(gG$F*S0OlwRO@?->ZHG|Shy zxqQdpm?x#xTzEs@qVUy8qj2(g#7j#{Q#j3yXl!W*zklb*tu_@<*VRRTjb|Q}+c9=yljT?vy;+CwS%owh3pDXC{Cor!us{!?YY zW-IX2C5>TRNt168^W(!XQ#qwqY;AD&D=H}I=;$&ts(?Y9og6Ge>nvRRT<0EgGVPQl z#Xoib^TlZ44$2tSxgEbj2x9F~6eX^i;f;+lW{I@WD0=}$B^W81YBikV913=-`sthz z?1&ji3rm#Y3Lclc5wSNQH!jP2Tv--6ARsJ!GK+bpWq_yIjTj{%r(G z9m{QYq^V=DF0`+&@4l1M?P)n;Y_Y5;+MX*)OTW*!tBI07LXiA7Z`6KYhhGa0eXRFk zej9)hP#O8|YmmH}wpuJ6ZSdvijKy7U`N%`LcE-ca4GA#6XqHXA<&>uvGvg-prPCjI%l_Rz6kBw%=qaDvUWf~US)$58rQMGSBPGOnpp7S; z@Zt#7>nP50AxfHjFuCswFZ-;%t5`;xCkr+>)%Lw8xPtn)lxo2#{4Vuz2)pqM8*o_3 zk5sl4B_v)q94Urgls_}4L)hzt*+p5EOfLus3XW#?K|JuooE>lx-vWWbA{q-JV`gpQ zHlUR}=LuV9%uGxYQfUOgWNE`p56cIZ+q=4=i}982sU+eILQD0$yI(yC?hGn}BC5Th zE`}PEq~Lm#L%}Ne)Yg-ktr1DxCysbZT{V0#FQE}VS4Xa7OM9xg?m9qdE@*6Ix_0f_ z!nNGxPO8vMHH~}rl5C-=EKWOQhA zWf?rdKZ6cpTCXKMg)5twfKp>hep_jr_2GlSq=$|vhK-f=>-KiV6gT(XIvci98JzZc zk^WqHek$ZeH{QG9m{+ejXc-usbw0sW&$mb2Ekq)1xBm_6mblI?@4t6N5VM9Q$W-99 zynKD_ZETREqa&v*-b+xGM}L>zgAn8}q#_q1hq7k`dN{zX7>kTLh=tiQIygE)vS0&0 zVW0x<8+;W--T)7QCGqsr-QC?vmq{_eVD$4IrUpJ)eU9ss)r4zfr8NI_lC`(}@v__f z-IvV5;8YNBmp!YGdwSxs!}pzlW{5kP0q@(En{^!>-*!lT-c(}G?>Lq9w0ehY5fJ?o8AwmV%Pi9v`di12r4P#^D+lp#|64eoOZ1*+HBJE#@p`Z$y0y0LaHWFBaIi2 z1~&G4D4<@RDcO*?{pj*9j|1w9L2-(9& zkM3@)`80{j%acQi74?4I0bBuQ@XH^s*k!+5^zq(WQd-(Ob0hxI8;G{Hc5<2rcv28~ zFt}e^f=(#oZx}szJ_%~X%gfugQU6m&wZhu`Uzd}m~6Piy(d zrLpSHzHh6>LG^Ec-)_9@P9`so3=P!z$N5NRhh^Y|;P)=D%Ds=_(-MbnOXSi@Ri9-8 zfrEPnzDq(v;yxd)fgFTxP{FT)^*>-TO}dyi`3SDAu43`kN9|%ic53JMP#?f}@@s32 zk}dU};Y1)Ye;Yf1&UpLoov57LhYSub@gxCCb?GrDUJp4}SJ(91+|&u7TNj<3oH&y* z%-ffDZGmorJEa^T9*xKg+BY+DxowG18*r)>>SH~iVhAfaIeDg!YJ;WF$k^Do8;Hs& z24wHo(g;WO2L7PAW`zS7#S3so$&a9&!G8hk;1v)soT*lz0gt#cR5;P(Ti$yP8S8^} ztCeRKt$UHfgBBhho}usGp8(kHWS+at%g3hz0Pk1!Tm%^HuaH2vgBW&t_mc){j7+t# z0zy*yH45MPiiL;RX|Q6Q`%j@Obi&~_7|1(@KUmfBd=`RNz{#}!Oq`vyflNJb zRmXf)NRy`*W(u?SZSH70)YQ)$wv8G59oaLV*f-AHCjozRB`~ zn57SC?g|{emGFi^YU7-WR#yy zyNyvb*$g5{1qGMDc=WtQec5aSq39z>CdR`-twS{6b^v=0-XPCzK$!~V2l$T*{iULz zsma0sU*X;tz*?_fsidBYGsQo-Yc|u15thIid`f|YG9JF*MW7JC8^ivfswi`8PWl3m zZf?iBykNd-?vkL7$huXKp~<1{W=+J0AfBnh!uc6!pFzYY-O;eeV#5q^~Y-gpkyP5 zDESrlf)26nc@IX`M8bRh*+Xhu6bR5B(~lkn>z^vl6=h_Ki_9a$lU&5Lt1veyur&p)HI#jb|Bmm6ID=3(f&F~wef}>YD05kvb(Y<1(*J{Z}sL%=Cwxx#!Z{OaaepGJs zQ`%9za8RGXOjAkE8I+~wD1>2a>7Zw&a zrekpPP7udqDfw_5(r3?}0o1Uj_M>B?w=_16eDVaR?w?HQimxU@7(a2|lTVg&z2w>5Z|@Q?_(}Iwc#) zut6rdfx?m!t<(T*BGUeWf$<1f=N36!zm5w)fO8pZG=!}aYMsa5u1{T|f?D+$zvHXX zUnvlW9kkxwf8HJth60kB{L415Yhz|?i5U+#ZEcIV9kSLs)ifxww`=K?p zl#N-bF-$I6I=V{$9T{E$!Z0^CPd>&$=Asl&Z8ghemj!pB;q`s&VOs<=3i>fqCpAeO zpg+BUDZ6Yr`bg1Zp4H0za;Q3I@(2ZVGr$5^26$Jp@Pf;L@xU7wU->__k40L)Pct7K z*O-)=bMdEMB*OEWJR$8?q)x;9FWijHoU(oVNEMoEj1!v9#_nkluO}zL!$S!0x9XJK zT#XTbeWLQZk0O-z&y(4M-=~wkMF^+cK|Gjxf~VM0aC5ui?(QC&>9&cr-u(P8)a;2* zFcAoQsXG#TPm;&_6kX1Pf>0bjy`jTI?^0>%RsH{8C!4}E$co+mpi+`qJB4g#_jSsp z?%`BC80I!B{s3?bAhws6*IZZ9KefM zPT`rVVrZY^Q;_Z8U{^Lion~4vG4Ei4{vbTrFh>V zyxo@N+C$Y;wimXH@b&4xcZxaH&V4aR;6c;RlxEW~C8hPVL{|A?rRu)_Komees;IOB zH(J5|-08reA5~_B{o}^DH;@}Ky^*@~lClc#&jT#Ty$6#P=u6akE-dogT8@6d&KX`3 z;lbJ7Zl};nh)8q*g?^`-cLTD7n4r{6priRf`y?@7DPYrNhodJ*kL1LY2K@-|!ojHw zLS4RmIXO{n8#ler5q6dw!os>H!^~L0=l*s8O(>8nGBPsGctTjDz>Uf5r_Y9n z1RGfRQJ=0^aq!h(`{q|m%Fn-yAE^i~JZ$hl|L3dTPy7f22b(S9O@fPy%O~-3$sWj* zm6ediIj+J021_XZEL;@#6!k;`CP^t1pPLJLsya$$+15`dWo5+`7xUd&zwnF)wxnPW zu=8xa#WXdC#=4DxI&?WN#Ok5I>tpHwjB5LylDYZRv!0MIBaU`ggpOiU* znsmdGFHI0>J=<{SLhr;V$jZukPo7u^&>I>WcKKjXd1ws0`r0cjIMO2FJ2lajcaQ_s z*2p7m7XdokH85}!6ky$_Y3i*NHPm)>HI1y#x)LvK@@dwnlbWsVrOi*f{XOR=X?r!} z<<^O6ar7Gf5$(1xld+(xBZj8RH8Y@X-Xr>Yr|QBkrpV~qQQSk(>7YFs66j;tFr*xz z!VxB0`?TCtTzmj;32cf9fPpppNeBMMg%eq)BB#HlT9a5FvG53;c>DM`H8yU!e6$n- zExpXoujLaGkcYvoK0*GaGRa*8UM;4m6lm(9tc(J$<1O_Kc1|!%KlkUzzHkfF)Y58y zN}=Fq7IKnou~0Yd2BN(n2Fz; zpg^P{+Q09m;ypx#FDc2Fc|k(Xmh%_;!`tQ}xwzT1mFjKD(9T7wWQS@$bigj$8#m52 zd}P0U`<6_fMmvUq=s)MvbeGkv*{0G|Xa#S?VvBJAw!@K8QFnupO9IkTQVcMR8z=u` z)IH^8A3_PzDj$8O2=?d>IY`dk$EA>aE+Kv6{j*049mF4J+-j#+tFYlqLqp^HHIAMt zyM4B12<&ljcq6<2+nzx@5I;uYu_an1hjUWLsCq#7&3Jm}W2*%OujK3D!i{tg={H+3 z!QIzvH@EfzJb(9Il#r4tnYods4G6ioxERY?mm~gJV{b7-0^Udyf`}?AEl98jUlWm% zGD%BNV&8AhfiT(Rv+)GIm~@&2pA?a1NsU;tj*g=bb*SyZA2^(wV}~;pD)KMmVT{c1 zJkpKE9GskigCATvZf)yaKNztD4`o@kWC2Wu{O6znfL?B+Ql{H=9H!1tH((0?P z+f-4ZXIyW&au(4LvM{D553SjG>KOw%i1$?4^URt8U&+y~jt)VUnmlNs6kj5w{PF}S zN@ohIe1g|P5GrPAbIv4N2%-%2xlpyTjR8tCVXvJr?bu#1HJzQ(7a&HSjP=v)mdr>dDOw44z(f9_xD5;g`!G-vtT8 zv^n4^q$RJTFo?1OcNz`r!b#O1{V6xC#DQSGy!+>`f?2AXkB=m{Ffnm)F8u_R;857e z{O}sqhJ~D}G|Sk`SO6JHt~BL{U3?af=lq*oAi;PcA!AP^JIwZ?kHm0bYdR_Jt?x|2`Y& z%3ob<<+_9KcQ_w)m(>OUO+KT%?3V=?n>LKxf4-+z;OZrwoZtImR~e1Zy^xVOVC=EU zZP86xEc<5?l}^+yV#9c&?$zgAIZ3x4(GcXY19kdJ2F*51x#UoW&(5oR0aPRrUiB_w zG+_LJy;r>#$z7h`J%W0mic$UDd6s#L8!Q_rO@?naY$4@X56{m1clAMK;W?OqU8@~ literal 0 HcmV?d00001 diff --git a/engine/node_panel_grid.cpp b/engine/node_panel_grid.cpp new file mode 100644 index 0000000..bef48c8 --- /dev/null +++ b/engine/node_panel_grid.cpp @@ -0,0 +1,33 @@ +#include "pch.h" +#include "log.h" +#include "node_panel_grid.h" +#include "canvas.h" + +Node* NodePanelGrid::clone_instantiate() const +{ + return new NodePanelGrid(); +} + +void NodePanelGrid::clone_finalize(Node* dest) const +{ + NodePanelGrid* n = static_cast(dest); + n->init_controls(); +} + +void NodePanelGrid::init() +{ + init_template("tpl-panel-grid"); + init_controls(); +} + +void NodePanelGrid::init_controls() +{ + m_groud_opacity = find("grid-ground-opacity"); + m_groud_scale = find("grid-ground-scale"); + m_groud_value = find("grid-ground-value"); + m_groud_height = find("grid-ground-height"); + m_box_opacity = find("grid-box-opacity"); + m_box_width = find("grid-box-width"); + m_box_height = find("grid-box-height"); + m_box_depth = find("grid-box-depth"); +} diff --git a/engine/node_panel_grid.h b/engine/node_panel_grid.h new file mode 100644 index 0000000..68c7953 --- /dev/null +++ b/engine/node_panel_grid.h @@ -0,0 +1,25 @@ +#pragma once +#include "node.h" +#include "node_stroke_preview.h" +#include "node_slider.h" +#include "brush.h" +#include "node_checkbox.h" +#include "node_combobox.h" + +class NodePanelGrid : public Node +{ +public: + NodeSliderH* m_groud_opacity; + NodeSliderH* m_groud_scale; + NodeSliderH* m_groud_value; + NodeSliderH* m_groud_height; + NodeSliderH* m_box_opacity; + NodeSliderH* m_box_width; + NodeSliderH* m_box_height; + NodeSliderH* m_box_depth; + + virtual Node* clone_instantiate() const override; + virtual void clone_finalize(Node* dest) const override; + virtual void init() override; + void init_controls(); +};