From b27925f54f70d29f6206274d30f0f2aab86d81e1 Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Tue, 6 May 2014 16:24:56 +0400 Subject: [PATCH] Menu improvements --- examples/example1/res/hdpi/document-close.png | Bin 0 -> 1504 bytes .../res/hdpi/document-open-recent.png | Bin 0 -> 1576 bytes examples/example1/res/hdpi/document-open.png | Bin 0 -> 1798 bytes .../example1/res/hdpi/document-save-as.png | Bin 0 -> 2152 bytes examples/example1/res/hdpi/document-save.png | Bin 0 -> 1263 bytes examples/example1/res/hdpi/edit-clear.png | Bin 0 -> 2066 bytes examples/example1/res/hdpi/edit-copy.png | Bin 0 -> 828 bytes examples/example1/res/hdpi/edit-cut.png | Bin 0 -> 892 bytes examples/example1/res/hdpi/edit-delete.png | Bin 0 -> 1259 bytes examples/example1/res/hdpi/edit-paste.png | Bin 0 -> 1406 bytes examples/example1/res/hdpi/edit-redo.png | Bin 0 -> 1998 bytes examples/example1/res/hdpi/edit-undo.png | Bin 0 -> 2020 bytes {res => examples/example1/res}/i18n/en.ini | 0 {res => examples/example1/res}/i18n/ru.ini | 0 examples/example1/res/mdpi/document-close.png | Bin 0 -> 605 bytes .../res/mdpi/document-open-recent.png | Bin 0 -> 593 bytes examples/example1/res/mdpi/document-open.png | Bin 0 -> 701 bytes .../example1/res/mdpi/document-properties.png | Bin 0 -> 635 bytes .../example1/res/mdpi/document-save-as.png | Bin 0 -> 771 bytes examples/example1/res/mdpi/document-save.png | Bin 0 -> 559 bytes examples/example1/res/mdpi/edit-copy.png | Bin 0 -> 436 bytes examples/example1/res/mdpi/edit-cut.png | Bin 0 -> 368 bytes examples/example1/res/mdpi/edit-paste.png | Bin 0 -> 598 bytes examples/example1/res/mdpi/edit-redo.png | Bin 0 -> 753 bytes examples/example1/res/mdpi/edit-undo.png | Bin 0 -> 810 bytes examples/example1/src/main.d | 28 ++- src/dlangui/core/events.d | 187 +++++++++++++- src/dlangui/core/i18n.d | 3 +- src/dlangui/widgets/editors.d | 236 +++++++++--------- src/dlangui/widgets/menu.d | 30 ++- src/dlangui/widgets/styles.d | 3 + 31 files changed, 349 insertions(+), 138 deletions(-) create mode 100644 examples/example1/res/hdpi/document-close.png create mode 100644 examples/example1/res/hdpi/document-open-recent.png create mode 100644 examples/example1/res/hdpi/document-open.png create mode 100644 examples/example1/res/hdpi/document-save-as.png create mode 100644 examples/example1/res/hdpi/document-save.png create mode 100644 examples/example1/res/hdpi/edit-clear.png create mode 100644 examples/example1/res/hdpi/edit-copy.png create mode 100644 examples/example1/res/hdpi/edit-cut.png create mode 100644 examples/example1/res/hdpi/edit-delete.png create mode 100644 examples/example1/res/hdpi/edit-paste.png create mode 100644 examples/example1/res/hdpi/edit-redo.png create mode 100644 examples/example1/res/hdpi/edit-undo.png rename {res => examples/example1/res}/i18n/en.ini (100%) rename {res => examples/example1/res}/i18n/ru.ini (100%) create mode 100644 examples/example1/res/mdpi/document-close.png create mode 100644 examples/example1/res/mdpi/document-open-recent.png create mode 100644 examples/example1/res/mdpi/document-open.png create mode 100644 examples/example1/res/mdpi/document-properties.png create mode 100644 examples/example1/res/mdpi/document-save-as.png create mode 100644 examples/example1/res/mdpi/document-save.png create mode 100644 examples/example1/res/mdpi/edit-copy.png create mode 100644 examples/example1/res/mdpi/edit-cut.png create mode 100644 examples/example1/res/mdpi/edit-paste.png create mode 100644 examples/example1/res/mdpi/edit-redo.png create mode 100644 examples/example1/res/mdpi/edit-undo.png diff --git a/examples/example1/res/hdpi/document-close.png b/examples/example1/res/hdpi/document-close.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcfe981630a13e513e3053404df96c831caa025 GIT binary patch literal 1504 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 literal 0 HcmV?d00001 diff --git a/examples/example1/res/hdpi/document-save-as.png b/examples/example1/res/hdpi/document-save-as.png new file mode 100644 index 0000000000000000000000000000000000000000..9695a56424eda300496caf56addc00657abfbc75 GIT binary patch literal 2152 zcmV-u2$%PXP)40bdUMYLM+G3ZQN z8LL)XFtx&fw8ct8%YYeeJ3z}IZAWEl2`x>3bQ~(SpKmZbDK&86oGA%j)ch5Hv z^n0=YH5Jcx^kFTnxiua~LRIm>4>sYJl`CN}0))l)oQ9Pv12fXh!1X7~0%oQ_Pex&! z`WgyCF1&S|;kiQwB9RE1Mn`e*-b%#Z9KvKG0fPjXHcc>VdI?O+oST5fh&L@f(>ppn zQn4Fxn32fiE5ZBx|faI-}h}E^AtA7k7VIKj`C;?5(O~3*S zda=AX$jj~6VB31k59{a~G_YZhfP|K^!Pnkbg8Kp{;KK87!K|XqO2f> zh;k>+qk*yzpt=WVjDsU`WJ=u+TgJZ+I~dz1D#fJ^8fRFk-O? znzshAxHJMytwTp*9sB_aq9nuZ^OEQ?ea|ul=Ng!{zjZkpXm5K9H-<+MTC^1H?f=5h z_J0Un&-QzRgfG@kAYm2b*KgE=$;aUFcHg7Jmn_B!j6I-^^(@ii`m5Imh{YR+Y#O zpH9FVDp?;aT_S{QX^ORg+n4J{@V)y4Bn=h2U#TZhFTm`eY|%|6lN^+%mXBPt9AH`& zII2UG6Qji*TI=)sF+m!Uv+0+rm)(247U@Anv4O3RU4vH-x8f&jO-PjLH9K4gmHAQR zQvh&qFPMEu8JL=yasX&_GC`y5I+2nkDKke7{;mK{-aaAaO!UQHfv72oXfL$rIn2)= z#TvR;3`YjAy@jEBz=a2Iu0T~)75;wY2!Zivbq?wXi=uZ*kOj|>)G0f*2s3vAfks)B z5Q|0;2nI6*PMnSHzRuGHuQYl7#SJK5O}BkgT*f&K8D90n9m9VzJLGbrSV0h zkx2e0`qfGIo?q+%nIkm12j&u?^K9rkZ$pQGB#QR@;NYO$J@V#tUw!n#(6CTj?(TfM z_2NS>9zHpq7Yu&8thDrLNtC=G(+%AQl4W^XnrXCCpH2U?Lx*op#_R0NIl{aYm@aFR zljrKI0>yuL<#+^un>;TXi=9lSQY|h;Er9@5Rb4H%zW3e&HDih-%Zef^sw9aD^}i&D z{0IVrAn?NLmc{gR+At!~s3xmQ&(MXT6tksw>0(doOd@nlZvNA|tpKhdUr4TGTQfr9 z`ZKu%!0hhsHv9YgQxug+3oX8wh*%Vj#pfu+CS}2*uO9Pyy%uH4;=d0M52q<}QuhBr e0ggFDQvU;t#p**?D{M;u0000M8$}SF`)$W|Vz+h^3K1d&siN<^An_F5_&0!O z)Rzj0@&v6^_10 zg~*Nh4_Qv0^%;Z#{w#!k|1X#ZQ;;@Dp6+HDfFwzvR;z(y+w7a5d4<3CPl}Rf7-tVSvZMG^9)A0BAQf8V&LJ zVG9{>Z3|Y_U^M`ViOHx#!ZB013K_`6*9ZV_uqB#YC@zDZ2d0D?f6(P|tQ3#a@s(2L z01}P3@xh-TA45^onUU7wF%q&o*g97OmE=lL4uFOcKDoWQ{=CRE|L5o=qZ!D84eqm0 z(TY!}fpk-G0x@+f4Xgl&tX`6`UHUODLTUZqH4rBXBHE6TT3rHJy|_6BfHj~JeTEX? z(^0ITcRZGj$IvMk;Sv)L>kUjP&dLt6R- zyYa=Bbgatf8{D{glU698=svQ`7Y~CniEsL{qWLobmqjQA_hgE!!xHWaYvFXB9A-fFUE*Y87hrIt&Mc0u2-(v~0T& zKomz11c4+VD@>5(9wI1v4m741bguyr;G&{9J{<$#x*U9p55;jL|g$=_H zfzf=j5U4rdp6zxU`u#o_*fcf*z=O+|E`3m`*1o|~wbT1m=)U#UEdfQHwk8G7iBS9~ z3|T7zz%osq?{>Q^UTjrN8wdl&ql1G#H#RoD-hSocXL!RJi!cf~kv-Q!YQ;po(4Rhx zD7a`UT{6*-j6*c%v3CUk-TC)uH2Mye-|{@~A`$TRl`GZ{4<78euIssuZ~ literal 0 HcmV?d00001 diff --git a/examples/example1/res/hdpi/edit-clear.png b/examples/example1/res/hdpi/edit-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..631ed4457342d9e6f224012c842463ef09bfb8c7 GIT binary patch literal 2066 zcmV+t2<`WYP)x*e)JWac-SH#wQ-nR8CQ z??V9a&birHyP>V2D6Oi1xANEi_WvUA?O=O#N1Yt{FO}b!bpZ~OI%n`&{aCwN2zNS9 z<;}Xl^-CIRSECYcHRXZsglPS&3*5WjSf$N705{Jm`}F5o6%ZbYHS29I`~HkF7JAMW z9h!B4-ixPvn@;edOOyWUnB?HHSr-`S)M$I}4mtW`5AwSp2HFJOx?;+$L~N8m^(Bff|Ht{ui9&=7Wp`+_rHI)*!@x7XeD= zg~}9-Dj8ZUgp)(O_~DmAA;#H!Tty@*5nA)#^~VwVxSGK4al`P7qet=I3Kh7;_ETI< zB;HCO%6|(-!i#t%PmY*8D?9w+No*|EXCf&P-%sP>910ptM#xTIn~somDMGgf#@e37#LwL%m)+;BfE*HhU`HL`UPBN&7IH zg6{4`C^QS9zW%5{{3vSQbj`!CP&}f_#V1V+AD%?We#Y=5wo7uolKVr0G9HxaQBab3 z0OanQ{(ghzgunFh!TnU~RBp2vxHE={1r&sDgi`Tf5OexFeeU!2;}Zm~LTKlVM-b22 zw!bbv?p3!o4Vp_6K`ROdb#??Kc-o&XHZ-``>-`zNzI{9Hb#}%*B-cGX@YmcB+~@77 z|7Z@}RYn4;mp0bn;M;a;fJP2ssoG ziJo0{xZCbexXae|O~}~}-w6uBePm4i@xfS0;Q7<=83>RUMf%0={<8(KaJf7QE|eya z90W}U6Lcav$Pf9p>FZ=fB3IuDuTA)>g9E<0Wee_dalu_X-EhOaxwy@71{#^bp8BM12vn=r`+xhI4vboUDhwTr_v+mZ|YjpPBLS4Rh1s zc9(U-H_ge}aL!P_0R<138sp2Kufyp?BArP5qJSW5o1#oW1O2V`d*M|Y<+xh z;oR@;n;H&1FfhR1n3>=!uA6Zxkq{7xpA|?B+7ezZ^m~>OxdU2?BS9@q|v_3JGcuf()^)G z9t@gvI@F1opi1_$fOX49 zMb2w@HL~D8W;m=4-SOUnp$?kI@DHX&L(ho7GlcNOMq8|Q-GQ?#EErSpcEMId`2ja4 z1=qFzQV|C-BAuZvKO8RRv!VWIAk<{hq3Y-!(5BI#DK`kTS%FXxEOyFAZ|kN;vCvQu;@{m4DddIe+e>emV{RWNwbfY^-qQI%}MY zP$?OM5mLv}%ue!sw|hESb)U+hy_6i-0hi<)&`BAS4e5bX5@mcJXe$f>ozM@|nR}qK zBpeD7sIA2Tn|mr4&QCjH111t3t)Jw1+l%TXtk3ImLN+vrLzdUcg669QG-I))B{gB0 z<->lK{~LIj9zL}LIuUzGd758v5@%~~ZI(Zr6EonPoIP1DrcX9zFyMR+lg!-@+7wJs z6M^p1Fz7tKcQQAASBX|c7pQ#fJ7tbmqXoX7iECxS+Zv=S>sm3xLM^44snxVO`imI| z1V%Yam+n4dZ2Ywzo{Nz2o6%2ophgzo%gv^!w-4V@Z#_QvJ+GxFmd8k&x zVrryx$1|Bs%l7=p-?j?`hI;T@Jrk;Fv^i7uQqIB}8U6hRF=M$}#I(zfbx%%WZ&OwA zcRxKL@P1hq?=>QfcJHf~F`XL}jO7)%f%D!1Je{At0f9cGD^0o4CKZCfdHOw3C3tK~ w4tEYMH2CfEFY~e(IA|La%m4rY07*qoM6N<$f+Lgg_5c6? literal 0 HcmV?d00001 diff --git a/examples/example1/res/hdpi/edit-copy.png b/examples/example1/res/hdpi/edit-copy.png new file mode 100644 index 0000000000000000000000000000000000000000..477e83a6abd5d7b2f83f57f76406086e4bbcc2a0 GIT binary patch literal 828 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U^EKw332`Z|36R!D{yvo1&aFy z`o||FC8woE#l@uOWM$=L@7S~V_T77j4j(>$;X?0(-o6PFCQX|%bN1|+b7n1AxNzyR zWh+;%T(uem)~;Q(_7Cuwm1tP209@+qrY+u6_G=@7{gz;K4(O4jn#n_{515 zr%#_gd-m+PbLW5tUb}Yf#*G`df#B}FJ9lnBeE9IuqeqV)KYsG$$sPPA;0+kO1%r2B@c#X~4lYCH`t=(G{`~p#_wV0-|Ne2@JbMZlE}|tte!&ckOw6j*uHHTsjgw|9Tet1V z_h0}1U7Yx(6BxWpJY5_^DsJ^oz8Ut&LBut1qww>}cVW!uKHHS6zWbnqt&zu7$Y9#a z5C8Wk+}$M_e5$!NuHwe*UDX@KX1GYvNSpT4)PTT3s1?vA6*xS|6c7rxp0!vz57R5-%j4J*YL1i5Sx{;!iF#EU2gTe~ HDWM4fC}qXE literal 0 HcmV?d00001 diff --git a/examples/example1/res/hdpi/edit-cut.png b/examples/example1/res/hdpi/edit-cut.png new file mode 100644 index 0000000000000000000000000000000000000000..073232808a62fba614f56f1daeac9e4addc97ccd GIT binary patch literal 892 zcmV-?1B3jDP)kdg00002b3#c}2nbc| zMg#x=010qNS#tmY19kua19ky@)q>0b000?uMObuGZ)S9NVRB^vcXxL#X>MzCV_|S* zE^l&Yo9;Xs0008}Nklpqd-%TR z|2P*vK`+{{^o5}LLo7{%!9>5_s(X6h6!4&|@wG|7Gj({ZFmArnqtBeLl6m=@OEcNdT02My0)1X$-i2NUA8lO)N72t?3bsjBer@&O??6`$nZpH-O9m zi>d@lw6_?3>DfIM8k)(`ECAxBjVa}-nylHg^2CV=nJ&2iWC1{&#t#Y%3^+N=Ol&$k zmH5&}t1SXR8D(Oq@$%7hZ>Ul+5|rGf1r`G2{YfZ;L{gG4)v~>Yh7|ZQ?i3HQ6rlap zlTe|%n{0{I`c@4w$_2F8VgN*eAB9qAv<(+-&%2sm~ONpS6-?k>+_aRT8l%mV()gRX@>3M$+ogXIGs+SLs_r&rYOhGu<^&tH?Z}VX` zW1Za1j(aYFNs<}>#EO=M4o|h9VIEvYjr}?}pJNfpc(FnL?I{Qh*8{xysR(ES`5lbW z`Rdp?pt)gtx+{3_eFzFF%7EWZJ%F2^iR8a=kNIjIoLWG}<5U&Q?9)ZJMfc`{`$`XR zvsh-A*A1~JTvZ3au^ZsZQQjDArrz|KuMFVjX1p SYgWbp0000~INfC^Ha& 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 M07*qoM6N<$f>H#b?EnA( literal 0 HcmV?d00001 diff --git a/examples/example1/res/hdpi/edit-redo.png b/examples/example1/res/hdpi/edit-redo.png new file mode 100644 index 0000000000000000000000000000000000000000..d759f1367b60716926c7904c4cfdc8fe88cbb8ff GIT binary patch literal 1998 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 literal 0 HcmV?d00001 diff --git a/examples/example1/res/hdpi/edit-undo.png b/examples/example1/res/hdpi/edit-undo.png new file mode 100644 index 0000000000000000000000000000000000000000..c893a1a65e2d8bac79d3ed7313780605ff0b6d74 GIT binary patch literal 2020 zcmVK~#9!#g}Vr6xS8U|L4xk?(D7~>&Id+COl+kAtcZM0fj0O zQY2L6Th)Rh)HYOVo3<#e2z?}KB}CPvACk~2X()=4K9aUbMNQj$NTpU$n}mcmJOZYK zhXXcXn>D*@_BFdZGxy%p8+T=4gpC_Mxi`p%l9C!YD*X`+!#20kfb{hr$m15{!%1H0hdwzLvU&d{DW5b4j$XN#%9sR{! ze)UXwaqrKDa2-dEtcg2S^=&ZiNV+{8iMWGUG73AEf)#HEAqwS((1AiwuE86>f_&z{ zRfOuN%B${P@x_dH(*WlOwhuP!aHHP3Sb{I zLJNIyFE8rPSmNmH<>p08MSK!vM9>iwMUvkohcR zISaBZMA~~`x6XmvwFr@pHsHERGpguYeg_5z#~ym&(Uucm+g*BQ>I(j~wz#NyRSQFb zM5C)I+{nPjV0;9HbMHadt3aqhMh+RQ88%CxL9Ayvn$l}Q_6=rHl6c{le=g6BiQB%h zr%x6h!~p5Q~*R10hlE!Bk!Z0KMz=dZ`(LAV&Qy-kSU;At1D0##=8>=pGk-4 z8a@d>JA{_y8{xDz<606fA>Eg5K63QrUH}imAkYY)m4q^~3Zb=;L$I+tb`*YX2ox8% zToicqkXs)dkM1VNP4C&4PyFgng+$NX#HUIk_T26_UH_lwY^b`2QvY8eJs;W+rg-1l zUR=!bXLo&>+{p<^A)`=L!&mT zyVLEu>htF(S5U4f@<#g+6o#RLIVVUOX9~R+YnkIfH8MB+8?2p_(;& zFJFN2$Dx7(*d|1p7a`Wxh3+*Kw6^FUeE9bLeVB%MNxW;jP6oi3sueTJuaD~gIcChp zEL|yi%#-hcU)NiXcwMjh<7#2(D@e)EDhEQAEn;>o6Tkt*91?D%l{@F8im6tf2Vej< zpl?g2Jo;Scm}E-Yq-)B%Duv?)06e3cusK@tw7+W?2^)sbZ9RPqz!FTu%RlMCmmV9& z>>;pfFB2w+$x22F%MF-SjkR>8RDslp?%c`R#ti&$TNg>mLJ(-rt{(Z#owEz^!EaOM zkg{eGYXEiSSiS(Vy?? z#?3gfZ@!}~(c5h65<7MkLKFZLjaQAsFm)hj7do2h!$yD`)Av1Qwk^Q6s5P#|y-O@> zc#PebpX|bP9NOO_0>@ewL9|Y~UNQHU%rmO6L>{WrIf>xhV(h@~8_0uj_bb6?1SLqK3E z6T^Yl&Q;%a@}9I-FAPu3_)&WH`8cs{8!f>4D1^nZ1gadT6T?*~r(G!2MN^zaXEJ6b zP_o;jF&EWBE0l_pQVvPwKq_Twgrtl@N_y?=96NI*pLyyp^8FbnU>YL*a7my3btf&| zn&Zhg{ErK9&+RTC>YA*msTMf!04A`ihOjN4h`=BR3`Go^nM1G$^Yu3S{AG_;&R6|2 zewH79X%V^lD$-vqGN$1_uis7}5?~OR1!*mybcB?OL8&N7sUej`p|s4kqofsiy+3M& z5+vnECl?dK7Grta9ym3kT61B3(;pbO8enROcUBX$ zhG|YPUelZ+PK>;4Rg9d!A|H6duLC^Iuh}hf{NNg*aN^Usxded32#5rSkY z2Y&xvG7_=Vk%+V5_ixV;U10XVAZQpSG);$IDx+LBV3;N-HT!;On7;i8dAXfm9S-@R;%G}K9Bg!3^q^rU?{uT zTaH3~5k)P#iw~!LctZ3;3IybV9mheV(Lic_9dE@pwvPMo`5a;A3LzQt;fcT@`aMXL{PwOYNnu8UkQhjcpK zOQBF;Xv*^+*aEa|8})jf0V!y=+vs#U94YH|yI{s6a0Do;_rVNsc#WTnVqL*ZdIX}f zr+Pok-DNTv{K;nVaAhUV+#tcg>b#~XinzLnEiQgxW{_ZL`<7+lm#99su;76`f?*$y rhhbK__a8mp=!ZGp<2*d4B-EFG{*ujozX)tM00000NkvXXu0mjf0Gko@ literal 0 HcmV?d00001 diff --git a/examples/example1/res/mdpi/document-open-recent.png b/examples/example1/res/mdpi/document-open-recent.png new file mode 100644 index 0000000000000000000000000000000000000000..15847ce445e7f6265a5fe2ac848c8266a986dee1 GIT binary patch literal 593 zcmV-X0gmnOM`fmqJd&s z+ahABm4dwp0gc!+W`m8i=EwYGck{EGY+h#;7u*c{!OI7;JkQH8ECE31^wYR((?2vy zjtP&*@dpud^zH=NJA8yOj5P%=*i2$ehTFRYUo?s6r=+pnzBeGFmoIRF-?<#}g(Cix zN+?$<*e;Z?=iE~)CW>gN8YZWvP_9atc(I0^XC@Wm3GcQD3dMhLxr|D+3g5FB4&3g!K?W>tgNmgyPe12SPbNp5ViSlie{XznY>wTMQB4$B+dE`YdBOjB-$MWEE{Fkwy8&~CSl{WkU<9{)5B-3sIEjSylh9~tE4 zo{_=LX47ak1)WX@x~`ks2ph(50tVA|4(@ilEbNSaS5c7^oiZbwfWl@w2iNKKL{Y@% zuPprIfkk$IUSQMC&Qhrq-74+{gK-n)1SZ@oU{9OQi0}sj7MK&*O}~TIX7QTU-Bp_I?#hm zV{_(grov1Ksu7uPW}!~a+)B|l&>BwnAzs}+?@Q)rH~hHn=l;0fkB77B{VlT^WL2MD=uEXjq;WW zXiaWps?FdAM{_keT_{QhYipoo&Kl)DpAU_VjlB13c^U4RX`IL|#kGfa#OGE@21l~4 zgG?d~_?!6semtQ!*cR&{WE50DkyR!c9LOlazO+)_qo?x45E+ESA&~O_V6|G&)7=eo zM+aV5ELidV#14g0GT5J5jGe~||NMh+Xmc@yS@%3fK0D#~G>+ksF$~&A@$S6?uWcXT z`Zf<1mmnGJPPzoPHyw+M9ymtF@R1gJ``Zht>Z!0&`XxB zeoTijjKdxnhJL_6+UD3C@}Tb76lx3;s3!CT&t*ij8|Mqk!E!20s5O0owsjm;GCCQ- z;6$}?iyA_Z5j*KBi|8g)nszjFy2xajQ!lGX)Dd?g>ZDYg!riVpD2udUNmrYYqVB<& zo0e^)L}(;wnm!yncLgk8Z>H~=<*s!^y`=mcS*!i4*I@aMoMHh?dCSlzw9U}BJE42( zgqF0tb&_b8lYI6!CNY+Z>#g0)+jEP)Xi%%w{vE(0iX^`YPa+cR!LH7Be46XU!y6}9S{Ds;T9$y4s#5bLK0NM6 zw`V&Rp7bF&JqDU=qsZ{FHQ?RTYxp=jj4qE83-i4Q+%)7Cv0kq;)(OUZTVK2n4WM&J zJ3fc|5tu&7pQ|x8%ZWq+u~-bzXcX~yyvDz?AzwJ%@!;*tKxOZqo%lj>@YX4d%&jc) zoRA$-%Ize<%U1WB^mc_4cALWP8MRf6dU!Ire|GRkJX9Dm~v}{o-2CR!8 z_ZbWq2lMijf8M1dGb3Xtb#W?}I|b#_2e_yE)WqhgG!x>2ER$k_E;^MoLz!Wc0^RzIjLSiumsSo5vWwl|YgZ&2&W| z-6w;&-duo5>`yWz$pT-oyr`HDpGO$_&6B=%yuFEJT4M=O26LfSL3fjps@fyithVuj zh4U9skniC2`(bLEIyu^Sf{~|NS>@29QmLrh9>ld%YSQc_9BXjnu;(LYWWoG-0`_Hj z48DBJodgEcNwCh#6UsFlR0~8EM>awQ+ubFj}n^>w-XDv;>eM zC{Tr|#Hky_zt0#$%*cW{aq(O{5<^%0G-76IFzS`OY7JylNjw&dh5Gt>1_lO*(MF?< zj3UiyL(Is6P0nn(8e*9p8-*}e&BL?)tji5Rr_M^ literal 0 HcmV?d00001 diff --git a/examples/example1/res/mdpi/document-save.png b/examples/example1/res/mdpi/document-save.png new file mode 100644 index 0000000000000000000000000000000000000000..3f7fd63cb9d6dd2d024290892c6f6077cd75bc66 GIT binary patch literal 559 zcmV+~0?_@5P)aB)o!U!^iJPX2-yDW~-xn5#GXPG7Kd$?Hm6gjYc)yd@*-0`VkWB4D zPVXW`(u8GM=XhY*yM%z>k7`53k-*<;O%?T47tKx&ZKVgLtKr47=U|=V0q-Rbo<4p8 zMb+>snbmpC$XUFRbBLvK(6qliOC2%bUUcKpgNNw$G<1|M6hbH0?x<+CRWw=(YK;zR zbh0dU#DMFf3-|p29M;>Y^f_c|EtIP*{61>pXQhEsxz4lH5d#Zz^Vqy|7vFwW5q_7_ z*?KF3+m`WiJBj`8WuB#u7?^X;;`Ys3`1JJ$a$oxFmyl)lO8B^UfXwFuWC_bsM+`U} z4s5L7I1%cIf$7O9tX=b+2zA83G8q($MHCAK6bOCh^7%Y$W(&+?MxLXN z7#O$NvF!13@pv4bMK}M6iA16wzdTlp1*>!usUrr=MiX4~3tTiB#mv++tR^#Jv6#*h zT^^PVY~Ew17%+~GmM83XIH?%k3S-=A!-zDDNF<^&>zLu+Z>+6jYD0000-?)JUISV`@i-D@I zgD|6$#_S59pk#?_L`iUdT1k0gQ7S`udAVL@UUqSEVnM22eo^}DcQ#T$MejXb978H@ z<@Oq8F$Ida_AlUg=iqzbmh20?rl|@>J}bFBvZddo?kbdj=ip)NEYWoIwxfrjspE&I zf7kzXeO5gCv;OnD{r8;bw;$;L!puHH-#BVsl-uWB6J%O8F5eg^B)IOC*`2?k$%mE* zZGZSqJ26OnS7zPD-qf;-Cd;FRd6qBT6YZ6_>Ilp2AJ^pTp`U_QHfz-`{!$52l`)9UY%*8-9&1?@*h#)SHUM zk6ZgL_O)%DJ$u9RPC53rhxZrmt-AK^znEXmL=D9W5yeH^`@hV2(!JrW#zdgk89ZJ6 KT-G@yGywp$wU*=n literal 0 HcmV?d00001 diff --git a/examples/example1/res/mdpi/edit-paste.png b/examples/example1/res/mdpi/edit-paste.png new file mode 100644 index 0000000000000000000000000000000000000000..3f71b1c789383aacdc29032a8b6b0f680921b91c GIT binary patch literal 598 zcmV-c0;&CpP)#*HAYs8O5+gQ(y_1t9?!YKJ^SHk}aYBoCplC5M zoyYe6x#y<6iZ&r19F(H!JAa+Jf-{26W)rnqjjK+l19t7L;9nSx##bJXXDt?sQLR=H zi9{GY5e|nLS`&#x@Or&-tJUhi5a{*#ZYUIDq*5t}*=&ZvU_izFCo~!jg25oeHrqTW zfXQS+sZ>HN7DGH9zo<&30);{Wolb`f0WDG;x-S+BESF2PS}mm0X|BrUGItG$L_&gh zY<;8>3Wcu)6pxJtVmuyWI-PQ&Xf%pvU~q(Fp9N~Qniota6Fvn+C+_P%@Uz)OyYmab zyIu79ee~J+tT&s#0;N((GvEdD`J59Z5(yB^b{pMZ4};+lqlX8K**%l#^q4>l}dpa4u^cQ)oO(e8-2Uo9tCo_90r2{ z#GyNFqUjT3I{YNv?RMDj_h1<2C{U?X&}y}O0uoS%OeOO9Ir)4Z1a&82y02Ye{ z1SO*AcX#(F6bg8J+~NAo^>^+t@!|G%WwY7fbUHbS-EQZ8X}G7*bLMh6xLmGp>@kbr kKX^$)V(Zgcy*Si#%4mzz$vDOwpio2FrZMq*&*gPKH%g#W@w=pl##3&{uDObs!^ zkidF~{DU|*-KMB(NlKPUK3McF6+URqV*7P=QJEI?(8K56bNPM0pK~r81OPig7G%Iy zd}~h|&n;-ma45}7Opn9p*I+rmLUDuZJ$GlLn9qE~s_g8Qm2MIg&#gdovQ zB}84hl$MUi&o0pXk>6Vx5}LvcB+- zm=uV3@8<6n(j=%H5QEGi1)VDaNEVXZ37jAp*w75CmK383kH{t(3hxrkVk_#|ET<4w z4!h%jq`R~M)0jSBav1!^kvM<)kY)p0&?+Yo53qx@jqb+7*edGeJ3<5p2ww=m(Tsek z39X<;^Z_-XIdl`%219ewN5Wn-jII+dEBnLha1&lew^3B+1v5X>@sh`)7_D7`cU(MT zsh2df9i)7YP{fWfC)MrZD!PuUMU^NARUm=+xgO`*c zEEwTsMvaON#=E46CuR(iELWT`#~#O+J$kN`Jg%T(ox4uJJ-QG|d!jZ(jzz1OUPe zo)1aVX}s1#$L?N9pk7vg&d^@u+F#8>SvWgp*|R{@KeW?!3fxz47$#1qCH6_Y)^y5H zFib~-aq$M`CM?fzU}@|U$SOTo#9WkucPXo&vB2K&eIgE|bw0-T(%|)#nK)Sc{AX5X zIWXIK##ob14q*wyDlklNU<++L7^Y&uFc|~-!AO{IKaDvBOR`X$$6{h|77ub^ps^|y z@hyVorLkzxE2BU^9tFCgFqp3K1eL%6WF<}}X}+szD2o9fg+8#Ph}aT;>%R=;NxN6^ zTbv-8ut4|b3g|{6U|~2MCR^ChTgEaKC)ux7-lsJ^PbRA}nwbcU4XA6=i!6g4>T`XP|J5%#wT3-^=I~qQWyqB2C1H_ z_Me+?4L0-^9XAQ?kmH0TldgX)VE^c=aNbnZcyEq2A2q2uJxpWGE*p|Gavqm`%@Q#W z38dLJis=%!hEL*?QgvCt%%ga6-E0rSv|=_efIkj~u&`hia8X517NcV-o8oKpY%2!R zm>szsnsM8u7~qjeox1WMKkXTaknYw+SY5C^YeS z2csdwiC&Q6hH#OEDXr!rU1uJ%@Lh>*$V47J6bmAsBv4|U6>byYGSUbfk$D~#xucHK z{Zv!lu04uMceeV4v#+L{6@Vo{eGhCx%J0&2Sm19dTTu(y$TBP2jv!^5H#OdTc&DoF zfSX$6?4fzaau?mB-@@gq<{k6mUm5H6LvOo$DP@b7ou<~qR$lC4S9y(2GiMgTKheDM oL#k?5npWtHR9tJvD)=vc0s@|Dx>pGq$N&HU07*qoM6N<$f=L-|8vp 0; } @@ -80,15 +86,33 @@ class MenuItem { /// widget to draw menu item class MenuItemWidget : HorizontalLayout { protected MenuItem _item; + protected ImageWidget _icon; + protected TextWidget _accel; protected TextWidget _label; @property MenuItem item() { return _item; } this(MenuItem item) { id="menuitem"; _item = item; styleId = "MENU_ITEM"; - _label = new TextWidget("MENU_LABEL"); + // icon + if (_item.action && _item.action.iconId.length) { + _icon = new ImageWidget("MENU_ICON", _item.action.iconId); + _icon.styleId = "MENU_ICON"; + addChild(_icon); + } + // label + _label = new TextWidget("MENU_LABEL"); _label.text = _item.label; - addChild(_label); + _label.styleId = "MENU_LABEL"; + addChild(_label); + // accelerator + dstring acc = _item.acceleratorText; + if (acc !is null) { + _accel = new TextWidget("MENU_ACCEL"); + _accel.styleId = "MENU_ACCEL"; + _accel.text = acc; + addChild(_accel); + } trackHover = true; clickable = true; } diff --git a/src/dlangui/widgets/styles.d b/src/dlangui/widgets/styles.d index 62acf8bb..f7934a92 100644 --- a/src/dlangui/widgets/styles.d +++ b/src/dlangui/widgets/styles.d @@ -705,6 +705,9 @@ Theme createDefaultTheme() { menuItem.createState(State.Pressed, State.Pressed).backgroundColor(0x4080C000); menuItem.createState(State.Selected, State.Selected).backgroundColor(0x00F8F9Fa); menuItem.createState(State.Hovered, State.Hovered).backgroundColor(0xC0FFFF00); + res.createSubstyle("MENU_ICON").margins(Rect(4,2,4,2)).alignment(Align.VCenter|Align.Left); + res.createSubstyle("MENU_LABEL").margins(Rect(8,2,8,2)).alignment(Align.VCenter|Align.Left); + res.createSubstyle("MENU_ACCEL").margins(Rect(4,2,4,2)).alignment(Align.VCenter|Align.Left); Style transparentButtonBackground = res.createSubstyle("TRANSPARENT_BUTTON_BACKGROUND").backgroundImageId("transparent_button_background").padding(Rect(4,2,4,2)); //.backgroundColor(0xE0E080) ; //transparentButtonBackground.createState(State.Focused, State.Focused).backgroundColor(0xC0C0C000);