From 94d1761b8468393a64827af2f6b39fa29c5b9adf Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Fri, 22 Apr 2016 14:24:30 +0300 Subject: [PATCH] tweal Tetris example for High DPI --- examples/tetris/src/gui.d | 29 +++++++++++++++--- examples/tetris/src/tetris.d | 2 ++ examples/tetris/views/res/hdpi_arrow-down.png | Bin 0 -> 2853 bytes examples/tetris/views/res/hdpi_arrow-left.png | Bin 0 -> 2891 bytes .../tetris/views/res/hdpi_arrow-right.png | Bin 0 -> 810 bytes examples/tetris/views/res/hdpi_levelup.png | Bin 0 -> 3675 bytes examples/tetris/views/res/hdpi_pause.png | Bin 0 -> 3402 bytes examples/tetris/views/res/hdpi_rotate.png | Bin 0 -> 5669 bytes examples/tetris/views/resources.list | 6 ++++ 9 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 examples/tetris/views/res/hdpi_arrow-down.png create mode 100644 examples/tetris/views/res/hdpi_arrow-left.png create mode 100644 examples/tetris/views/res/hdpi_arrow-right.png create mode 100644 examples/tetris/views/res/hdpi_levelup.png create mode 100644 examples/tetris/views/res/hdpi_pause.png create mode 100644 examples/tetris/views/res/hdpi_rotate.png diff --git a/examples/tetris/src/gui.d b/examples/tetris/src/gui.d index 9bdd5113..d83e4724 100644 --- a/examples/tetris/src/gui.d +++ b/examples/tetris/src/gui.d @@ -493,12 +493,14 @@ class StatusWidget : VerticalLayout { private TextWidget _rowsDestroyed; private TextWidget _score; private CupWidget _cup; + private TextWidget[] _labels; void setCup(CupWidget cup) { _cup = cup; } TextWidget createTextWidget(dstring str, uint color) { TextWidget res = new TextWidget(null, str); - res.layoutWidth(FILL_PARENT).alignment(Align.Center).fontSize(25).textColor(color); + res.layoutWidth(FILL_PARENT).alignment(Align.Center).fontSize(18.pointsToPixels).textColor(color); + _labels ~= res; return res; } @@ -507,10 +509,12 @@ class StatusWidget : VerticalLayout { res.colCount = 3; foreach(const Action a; CUP_ACTIONS) { ImageButton btn = new ImageButton(a); + btn.padding = 5.pointsToPixels; btn.focusable = false; res.addChild(btn); } - res.layoutWidth(WRAP_CONTENT).layoutHeight(WRAP_CONTENT).margins(Rect(10, 10, 10, 10)).alignment(Align.Center); + res.alignment = Align.Center; + res.layoutWidth(WRAP_CONTENT).layoutHeight(WRAP_CONTENT).margins(Rect(10.pointsToPixels, 10.pointsToPixels, 10.pointsToPixels, 10.pointsToPixels)).alignment(Align.Center); return res; } @@ -541,12 +545,27 @@ class StatusWidget : VerticalLayout { addChild(createTextWidget("Score:"d, 0x800000)); addChild((_score = createTextWidget(""d, 0x800000))); addChild(new VSpacer()); - addChild(createControls()); + HorizontalLayout h = new HorizontalLayout(); + h.layoutWidth = FILL_PARENT; + h.layoutHeight = FILL_PARENT; + h.addChild(new HSpacer()); + h.addChild(createControls()); + h.addChild(new HSpacer()); + addChild(h); addChild(new VSpacer()); - layoutWidth(FILL_PARENT).layoutHeight(FILL_PARENT).layoutWeight(2).padding(Rect(10, 10, 10, 10)); + layoutWidth(FILL_PARENT).layoutHeight(FILL_PARENT).layoutWeight(2).padding(Rect(5.pointsToPixels, 5.pointsToPixels, 5.pointsToPixels, 5.pointsToPixels)); } + /// Measure widget according to desired width and height constraints. (Step 1 of two phase layout). + override void measure(int parentWidth, int parentHeight) { + int minw = min(parentWidth, parentHeight); + foreach(lbl; _labels) { + lbl.fontSize = minw / 20; + } + super.measure(parentWidth, parentHeight); + } + void setLevel(int level) { _level.text = toUTF32(to!string(level)); } @@ -574,6 +593,8 @@ class CupPage : HorizontalLayout { _status = new StatusWidget(); _cup = new CupWidget(_status); _status.setCup(_cup); + _cup.layoutWidth = 50.makePercentSize; + _status.layoutWidth = 50.makePercentSize; addChild(_cup); addChild(_status); } diff --git a/examples/tetris/src/tetris.d b/examples/tetris/src/tetris.d index d3f38f2f..9d99f327 100644 --- a/examples/tetris/src/tetris.d +++ b/examples/tetris/src/tetris.d @@ -33,6 +33,8 @@ extern (C) int UIAppMain(string[] args) { // load theme from file "theme_default.xml" Platform.instance.uiTheme = "theme_default"; + //SCREEN_DPI = 150; + // create window Window window = Platform.instance.createWindow("DLangUI: Tetris game example"d, null, WindowFlag.Modal, 600, 400); diff --git a/examples/tetris/views/res/hdpi_arrow-down.png b/examples/tetris/views/res/hdpi_arrow-down.png new file mode 100644 index 0000000000000000000000000000000000000000..51f357aff61d2cabd3b60d770f4361e2f97a1990 GIT binary patch literal 2853 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 DYFljv literal 0 HcmV?d00001 diff --git a/examples/tetris/views/res/hdpi_arrow-left.png b/examples/tetris/views/res/hdpi_arrow-left.png new file mode 100644 index 0000000000000000000000000000000000000000..33818261b10754fa274374027edcf256248ac00b GIT binary patch literal 2891 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 literal 0 HcmV?d00001 diff --git a/examples/tetris/views/res/hdpi_pause.png b/examples/tetris/views/res/hdpi_pause.png new file mode 100644 index 0000000000000000000000000000000000000000..e61797227cdfaf6fd5e6930da24ef33d4d4783a1 GIT binary patch literal 3402 zcmV-Q4Yl%#P)0b000McNliru-~<*61qdaZj5h!P4BJUWK~!ko zotay29oKcoe{1&4x$}smM4O}~%5p42bX6G;EX1`O*QlF*fFhCNR^OmcQGgUhnlyE4 z6fIEqsmMbfV>gi+^u0mdx{eaZuuGwdF0Le27O7GflIGF5pE)yo^1%%yKYX9j zOD6yImw?6cJ@@^sz)mwog?%h>P@ZOQTv}n_&NsYVu8MjztizW@P_N{)h z$G7qDfWMfa=JVJ~=XizVJgv7!lBbJbT0vOGHSQjC>F(HQ4|H#Z6OGPhlk)HNSCXu@H4Km$>){&H*|9U z$0E=zae|llBG2lyPHEm^iQF9zF_98C`0n=b^75Q4$VqPS5x?wyNb5I1;9J03?(=u^ zc217+8ZYyr7L}NYm>3;-DShh5Q!p5O41#p{gkSK!Uh+1-+nc2GPy}>8r}R}l%)Azr zh(2BVSOQ9vsZbywz{dbF5q(8qk z;3RKwLdzCQpAd^+2q-Z{l`2JYmaUV$L!No|F~bx^^5h8|$euIV$e|Dt(%?S#xl50d!@(=d3(Uwd zdFRcG-|0;t@J--vQ$48a^SsU(Jz|OJ(`X-f}1;bjJ|T1A2znbxDZ`X%i7J%>m|_We*kd_=%Zi#+Rtxz&tI6 zfN2)F!z$Z!F_g&zvLt6%;QL%2Gs6^iR*h%xw7C=+1lQ=^ZP!=I58bh-GA9c{m@a5mKesd7SJ zV zc9`WQeVO^#Ioc9WIMpkWb5eQE<&Kh#6FMJ*1){}eM0LN7c0N$JHAPKe`Jh@FjiL{vCH#0Cwbapnvyh(ozzVz}mJ~}&l=%rE#}n))WswD@Mx>9}BFZdZ$umVT#7dtU-63PlGfj@j{lZdWkuEoBV+jfH zr{p+We8Q#=w!-teZ1W*)ax8L?IVu@>!6QeVOWXrz=gI;nm>rV3#((e`phQ?KPxCs9 zPIko-Ak6YC!X4U_kdn77x2b@C)`a_5)I#F>OFY3-&h)(OhKNnpNrF?785|o;URdWU zsRxaTI0+aGiibggDVFH5MS~o^NP$K6oi$!~SP$5eB_;-P%({?chH@PccXrlAy(n`) z=`r{O2r&^MJ^ER$lpLW!D6+^RMW>_|ThasJVPBW^pcZ2ylpJLj?Sl+{Z%EAsDcK|g zUY44KM2-P6!}JgWs!UTMj}j%eaFDuhe_IbxuteZONb2=v2mzdFMeY#B8Azl`@__`Q zlrh0zon2V+OjD&zAA?uWLxQh|bb*|uPmU?}kVCR$bJ*;XLmDKdI+ne(Z^za-J^59&S*tV;yg=~F>W(EwgoQhiJTQMfk3JOA$AA>b>uCA;8SG^NklMI zu)bEbq+Y^+?-DM_V%w;qrE=O`5Ex+4cj?)%^y={RDUydoK#vmE*Qyq*Q7jM)xu0?Q zT0Eddi#B~E)AGTU9zd5Kj3B^J05cRQAXqHccqKevs~V`WSRj`nFdp+l?z2XR4sDb? zZR{8Vt}LWUh(E-jj4)v+Qb34N)M%NUuLbpxMDIQPk&ruJA*R7L9a=O{$}}=VOA$)c zuS1JIg$WHx_woqv-H{<0V0?xWiigzenS?EN*dnItQtsjPkS;yCw1_Zc_>5LTk|l5g z_}bMV32bSgkzJTblq`Wc#-}%N1kSx?CF{ek#778#YM;JOor31o29oSEe@_z%GmV!HGk0~$+`C-Bv0)v#WysqnMQ4ORW}pLClQ3Y$7#N@u z)1~X29I>`(`r1@aZOTB;dAY$WI+Ew467Gh;?&~^KIY3M&V?Zr!n!fI+r*Yz|+O&vv zMIa5UewHK4F61ZI$IF(8It}OIG^WXpubcQp;1TnH8sSKxHBd+oAD_Sxm~1PUvGrjD zQssn@Z9XST7>szJn?5&zFbSF|1L+GEFFOL`wzo-czY7Apt?LjAAcSnQO`IH2$Q^F_ z{94g&fh`5DtfW4X2 zLWD5Q@AJw~d$P>j2m`ZxnOB_jpp@8$x~5I+?iyFPmb5C6HrMouG{FaLu);oFkg`vY zCihvR%mM+ibFfN|r*?@CgOkoNKe5^$fq#>m{4X^sN!Hnr6;`wXK1fY3Xpxi53x+%$ zt`JjV$`xatLt)bN9?|h8&T=HhQ0G6nOq+aaA2t1%T#y?0@Q-~qPG98)2c>8Th`2+Z zC8j9j5oZ={hVo?Dg{+R)y*l8PK0WSogEeAui5MNd!POsc4EG5)`G`Go+$#r!blBoE z@*Es0Fmd(2(_oiwPLjtFw^?f1VVza((V~#V(H1Lw#HRBvU*i&RR8az1lG!9ICs#h} z4Gl=hNSM;G+h&HB+J1`-KIIyB>5)$uSm$5(fYr-A_*&K>smq7>`U3M(HWaa}(*t6j zChziKZ^0Xr~-kQ-&C;D`#v%^g;vqlr8Ob!oev&IGe`MK3c zOiW~*ck~WtCOdb`XE-tC>f!uR}4&K zHrs5`CdOo47Fu$b>wLiZ^Q)6|9y&9U+x$>3>TA5ri(WA)suKOK(crdo%Y!;vhg@&L zwWkuN%ZmO&-j_?mn*WHo;VIy}`}~!%{7y2qV_K)Qq+;FlEE=nUJXd%oX_>)8RNB&@ zmW=K6!=JP!_kZl%P}}k`tNfH@{SwDznSya0pMlAZcTKa(y2mwL5jVI@z20v)J3i&Q zA^)5rv6zf*S)`=JY;fXfS^_Dt#I8jW(v=QvHn_qH7k=VKw}0sRjpzSAvtu^-cRopm z*K&|-cr7K$8i0%puNfL%Q+xd8^6;gv0{=Ah{j`anW0|9Jh&g6-Y;M1&07*qoM6N<$g0Zt}mjD0& literal 0 HcmV?d00001 diff --git a/examples/tetris/views/res/hdpi_rotate.png b/examples/tetris/views/res/hdpi_rotate.png new file mode 100644 index 0000000000000000000000000000000000000000..30712b5ecbef60539fdd2409e0aff2db17aa7ea2 GIT binary patch literal 5669 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 E56L0eNdN!< literal 0 HcmV?d00001 diff --git a/examples/tetris/views/resources.list b/examples/tetris/views/resources.list index 03c36c37..f80322e4 100644 --- a/examples/tetris/views/resources.list +++ b/examples/tetris/views/resources.list @@ -8,3 +8,9 @@ res/popup_background.9.png res/rotate.png res/tetris_logo_big.png res/tx_fabric.jpg +res/hdpi_arrow-down.png +res/hdpi_arrow-left.png +res/hdpi_arrow-right.png +res/hdpi_levelup.png +res/hdpi_pause.png +res/hdpi_rotate.png