From bb3110871ed633c0c108297038ef39c9840ca841 Mon Sep 17 00:00:00 2001 From: cxl Date: Sun, 23 Jun 2019 17:41:10 +0000 Subject: [PATCH] ide: Fixed Inser color UHD layout git-svn-id: svn://ultimatepp.org/upp/trunk@13431 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlLib/DlgColor.cpp | 12 ++++----- uppsrc/IconDes/AlphaCtrl.cpp | 32 +++++++++++----------- uppsrc/IconDes/IconDes.h | 3 +++ uppsrc/IconDes/RGBACtrl.cpp | 50 +++++++++++++++++++++++++---------- uppsrc/ide/Insert.cpp | 16 +++++++++-- uppsrc/ide/icon.ico | Bin 10134 -> 10134 bytes uppsrc/ide/ide.lay | 15 +++++------ 7 files changed, 82 insertions(+), 46 deletions(-) diff --git a/uppsrc/CtrlLib/DlgColor.cpp b/uppsrc/CtrlLib/DlgColor.cpp index 289bf32c0..77f0f9fe2 100644 --- a/uppsrc/CtrlLib/DlgColor.cpp +++ b/uppsrc/CtrlLib/DlgColor.cpp @@ -257,7 +257,7 @@ Color HSV16toRGB(int h16, int s16, int v16) static void PaintArrowRaw(Draw& draw, const Rect& rc, int y) { Size size = CtrlImg::column_cursor().GetSize(); - draw.DrawImage(rc.left - size.cx - 2, y - (size.cy >> 1), CtrlImg::column_cursor()); + draw.DrawImage(rc.left - size.cx - DPI(2), y - (size.cy >> 1), CtrlImg::column_cursor()); } static void PaintArrow(Draw& draw, const Rect& rc, int pos) @@ -294,21 +294,21 @@ WheelRampCtrl::~WheelRampCtrl() void WheelRampCtrl::Layout() { - Size size = max(GetSize(), Size(10, 10)); + Size size = max(GetSize(), DPI(Size(10, 10))); round_step = 1; - if(size.cx <= 20) + if(size.cx <= DPI(20)) column_rect = Null; else { int col_wd = size.cx >> 3; column_rect = Rect(size.cx - col_wd, 0, size.cx, size.cy); - column_rect.Deflate(1, 5); - size.cx -= col_wd + 8; + column_rect.Deflate(1, DPI(5)); + size.cx -= col_wd + DPI(8); while(round_step < 32768 && round_step * column_rect.Height() <= 65535) round_step <<= 1; } wheel_rect = Rect(size); - wheel_rect.Deflate(1, 5); + wheel_rect.Deflate(1, DPI(5)); Refresh(); } diff --git a/uppsrc/IconDes/AlphaCtrl.cpp b/uppsrc/IconDes/AlphaCtrl.cpp index c000270d7..1f10a146d 100644 --- a/uppsrc/IconDes/AlphaCtrl.cpp +++ b/uppsrc/IconDes/AlphaCtrl.cpp @@ -15,17 +15,17 @@ void AlphaCtrl::Paint(Draw& w) DrawFrame(w, 0, isz.cy, sz.cx, sz.cy - isz.cy, SColorText()); int h = sz.cy - isz.cy - 2; if(!mask) { - w.DrawRect(15, isz.cy + 1, 1, h, SColorPaper()); - w.DrawRect(16, isz.cy + 1, 1, h, SColorText()); - w.DrawRect(17, isz.cy + 1, 1, h, SColorPaper()); - w.DrawRect(sz.cx - 17, isz.cy + 1, 1, h, SColorPaper()); - w.DrawRect(sz.cx - 16, isz.cy + 1, 1, h, SColorText()); - w.DrawRect(sz.cx - 15, isz.cy + 1, 1, h, SColorPaper()); + w.DrawRect(DPI(15), isz.cy + 1, 1, h, SColorPaper()); + w.DrawRect(DPI(16), isz.cy + 1, 1, h, SColorText()); + w.DrawRect(DPI(17), isz.cy + 1, 1, h, SColorPaper()); + w.DrawRect(sz.cx - DPI(17), isz.cy + 1, 1, h, SColorPaper()); + w.DrawRect(sz.cx - DPI(16), isz.cy + 1, 1, h, SColorText()); + w.DrawRect(sz.cx - DPI(15), isz.cy + 1, 1, h, SColorPaper()); } int a = mask ? maskvalue : alpha; - int x = a == 0 ? 8 - isz.cx / 2 : - a == 255 ? sz.cx - 8 - isz.cx / 2 - : 16 + a * (sz.cx - 32) / 255 - isz.cx / 2; + int x = a == 0 ? DPI(8) - isz.cx / 2 : + a == 255 ? sz.cx - DPI(8) - isz.cx / 2 + : DPI(16) + a * (sz.cx - DPI(32)) / 255 - isz.cx / 2; w.DrawImage(x, 0, IconDesImg::Alpha()); } @@ -35,13 +35,13 @@ void AlphaCtrl::DoPoint(Point p) if(mask) maskvalue = p.x < sz.cx / 2 ? 0 : 255; else - if(p.x < 16 || sz.cx < 32) + if(p.x < DPI(16) || sz.cx < DPI(32)) alpha = 0; else - if(p.x > sz.cx - 16) + if(p.x > sz.cx - DPI(16)) alpha = 255; else - alpha = 255 * (p.x - 16) / (sz.cx - 32); + alpha = 255 * (p.x - DPI(16)) / (sz.cx - DPI(32)); Refresh(); UpdateActionRefresh(); } @@ -71,7 +71,7 @@ void AlphaCtrl::MakeImage() { Size sz = GetSize(); sz.cy -= IconDesImg::Alpha().GetHeight(); - if(sz.cx <= 32 || sz.cy < 0) { + if(sz.cx <= DPI(32) || sz.cy < 0) { img = Null; return; } @@ -79,10 +79,10 @@ void AlphaCtrl::MakeImage() Color c = mask ? Black() : color; for(int i = 1; i < sz.cx; i++) { int a = mask ? i < sz.cx / 2 ? 0 : 255 - : i < 16 ? 0 : i > sz.cx - 16 ? 255 : min(255, 255 * i / (sz.cx - 32) - 1); + : i < DPI(16) ? 0 : i > sz.cx - DPI(16) ? 255 : min(255, 255 * i / (sz.cx - DPI(32)) - 1); int h = sz.cy / 2; - sPaintCol(b, i, 0, h, Blend((i & 8) ? White : Black, c, a)); - sPaintCol(b, i, h, h, Blend((i & 8) ? Black : White, c, a)); + sPaintCol(b, i, 0, h, Blend((i & DPI(8)) ? White : Black, c, a)); + sPaintCol(b, i, h, h, Blend((i & DPI(8)) ? Black : White, c, a)); } img = b; Refresh(); diff --git a/uppsrc/IconDes/IconDes.h b/uppsrc/IconDes/IconDes.h index 010abb23f..c8e2909a7 100644 --- a/uppsrc/IconDes/IconDes.h +++ b/uppsrc/IconDes/IconDes.h @@ -69,6 +69,7 @@ private: void Ramp(); void Alpha(); void SyncText(); + int DoLayout(Size sz, bool set); public: typedef RGBACtrl CLASSNAME; @@ -83,6 +84,8 @@ public: void Mask(bool b); void SubCtrl(Ctrl *c); + + int GetHeight(int cx); RGBACtrl(); }; diff --git a/uppsrc/IconDes/RGBACtrl.cpp b/uppsrc/IconDes/RGBACtrl.cpp index a8c09fbe7..d09ed5957 100644 --- a/uppsrc/IconDes/RGBACtrl.cpp +++ b/uppsrc/IconDes/RGBACtrl.cpp @@ -41,22 +41,44 @@ Color RGBACtrl::GetColor(int i) const void RGBACtrl::Layout() { - Size sz = GetSize(); - int ah = IconDesImg::Alpha().GetHeight() + 20; + DoLayout(GetSize(), true); +} + +int RGBACtrl::DoLayout(Size sz, bool set) +{ + int ah = IconDesImg::Alpha().GetHeight() + DPI(20); int th = text.GetStdHeight(text.GetFont()); - int eh = 4 - 20 - ah - th - 4; + int eh = DPI(4 - 20) - ah - th - DPI(4); int rh = min(sz.cx - (sz.cx >> 3), sz.cy - eh); - ramp.BottomPos(0, rh).HSizePos(); - int y = sz.cy - rh - 4 - ah; - alpha.TopPos(y, ah).HSizePos(1, 0); - text.TopPos((y -= 4 + th), th).HSizePos(1, 0); - cbox.cx = (sz.cx - 3) / 18; - cbox.cy = minmax(cbox.cx, 4, Zy(16)); - int ch = 14 * cbox.cy; - cs.x = (sz.cx - 18 * cbox.cx) / 2 + 1; - cs.y = (y -= ch + 4); - if(subctrl) - subctrl->TopPos(0, y - 4).HSizePos(1, 0); + if(set) + ramp.BottomPos(0, rh).HSizePos(); + int y = sz.cy - rh - DPI(4) - ah; + if(set) + alpha.TopPos(y, ah).HSizePos(1, 0); + y -= DPI(4) + th; + if(set) + text.TopPos(y, th).HSizePos(1, 0); + int cbcy = minmax(cbox.cx, 4, Zy(16)); + int ch = 14 * cbcy; + y -= ch + DPI(4); + if(set) { + cbox.cx = (sz.cx - 3) / 18; + cbox.cy = cbcy; + int ch = 14 * cbox.cy; + cs.x = (sz.cx - 18 * cbox.cx) / 2 + 1; + cs.y = y; + } + if(subctrl) { + if(set) + subctrl->TopPos(0, y - DPI(4)).HSizePos(1, 0); + y -= DPI(4); + } + return y; +} + +int RGBACtrl::GetHeight(int cx) +{ + return 100000 - DoLayout(Size(cx, 100000), false); } void RGBACtrl::Paint(Draw& w) diff --git a/uppsrc/ide/Insert.cpp b/uppsrc/ide/Insert.cpp index 6d89fdad7..abfbd0c69 100644 --- a/uppsrc/ide/Insert.cpp +++ b/uppsrc/ide/Insert.cpp @@ -4,10 +4,12 @@ class InsertColorDlg : public WithInsertColorLayout { typedef InsertColorDlg CLASSNAME; String r[5]; - bool canceled; + bool canceled = true; void Sync(); void Select(int i); + + RGBACtrl rgbactrl; public: String result; @@ -40,7 +42,7 @@ void InsertColorDlg::Sync() qtf.SetLabel(r[4]); } -InsertColorDlg::InsertColorDlg() : canceled(true) +InsertColorDlg::InsertColorDlg() { CtrlLayoutCancel(*this, "Insert color"); rgbactrl <<= THISBACK(Sync); @@ -50,6 +52,16 @@ InsertColorDlg::InsertColorDlg() : canceled(true) hex <<= THISBACK1(Select, 3); qtf <<= THISBACK1(Select, 4); Sync(); + + int m = color.GetRect().top; + int cx = color.GetRect().left - 2 * m; + int cy = rgbactrl.GetHeight(cx); + Rect r = GetRect(); + r.bottom = r.top + cy + 2 * m; + rgbactrl.SetRect(m, m, cx, cy); + Add(rgbactrl); + SetMinSize(r.GetSize()); + SetRect(r); } bool InsertColorDlg::IsCanceled() diff --git a/uppsrc/ide/icon.ico b/uppsrc/ide/icon.ico index f85a52a400a3ddc9c62dd2a7d4accd54f789b7cc..29d431b885ab9f52895589e1ac5b7e35bd324b80 100644 GIT binary patch literal 10134 zcmeHNKW`&N6d!vHwzlD1&`>~RPRdoGaOx<9(_Rs2TNtS-1&A!0ers2gXM2l|P-AQE970BAe|#jwEUDInW{SH^J?>!xTg;g=TGzDnoSCTEMq4M^zXR0W+L`g~ z?H?g-sSkd6j`exgT;&({64v@^vGz!a=AhzRHpX5!vea;0`kml%_%Y+-Ue~QTFs@x> zKDqhusG%rwKDiw6p>guivB44FwLf_LNDfDfAIRaT@jW^08DBm(JiBeH_H^y@u+?7r zCzwUGb8Ma|eNPq?UH;TgDCux6fzfy$XCGE*7NR!V58IX*xTpO1@zDvl56DsH>*HJl zmuy|4Hrfx{azydyigjrVc(VTEQPYNP$IZCSBD2VgYb$Jqymv@TH_?T2m4_~^X- z!#hWfU(W$K>U@2iYp_aZA!?)ju&q_UK7B?X_KdIc+CG2qF^lCu@ptgWMSCvfIpm-A z**ACyqhdQg4*CA$*oYs>0XZHkzAuNrIX=#!)dM$&BgBv9aHROb91aj4p8+4?{Oehu zIc+)51EnJa%bJRdo0i+riiP=M>WCbx5l+FQZ)5Nh@7JgOXas&kLfY_hdKgaYP7 zJ9MBtrLU8sp!Hga_k3$6M6%2B*_wNZ!Ak|UzYnD^QHieUdk&X6&6fE7o9{%YXo+8c zUWiV!5N*7IXuqI6a!22Doaoen|4|2U{>}9km!9rMizF$5Nu!Z27D-BssWYFa?ZqOU zD;b;Z_ChMtG$Bfx?KW<(C*`Is&znuHXS?~lsqItvZ_(2JS#B9}r;{eFR@$jjBwwx4 zK6*os`GDUC%Q-vo{JRt8><{LgZ4@+f>6|r^)0};aKVPTPA{{ViEbb%F|GFwVgbuBw z>C6=JyHEgEPm>))(_I2+#6v8JCNBuno&hN&pI!mNdI^Z=8Q|)5BJ?()7Yw~}ERr?T zHEk*YziY6;Wa=d#qGv!zPj4#@5!5R{ST6w)Jp*ET0Bn8L40>A_{qx`;^O7!LOlISd_g~74l75SI<5NHTXt8&-#^@J*4eB4k@#lwYJ_XQe?MLl zg7~@Qk3I0s=J6KSb@q?}PyB}YbU9dGL9@KX)uF@wJ}3J$q5os#(k{Qx{mDK#mH5Qf zu;1s}m2#C=^0M3QuJU33s@vuEuCt6*aemu_aWUOVM z=>B{>x+6|GNVzv2+w%GNYeWCo>)G;c@7&U7y`C-K_AX5OEYmV)@sMS=7cw6@5E&hb zEW0r3dl+QdrWm+@La_QBl*&l4b_(0 Ie|jFg0qC^cwg3PC literal 10134 zcmeHNzi(qj5MIZ|_*I+>8k$4~Dc7ZNN=r%MbdgSqcpVZ&gmtbW0gCCcgaq#3&!FOO za6v;uMNLh4#7Qm%(qq2ao&ELRZhVgMQQSuRW@l%*)zrMWk;zA zjSdd9{xi-0PIK1&o>JEzdiI`De}3fb&s$1;|FN_GwWriCpD6X5=nw+5ExsysO1wL4 z6~&5sE`01;(L}XeF1fG4#eVboyh4XR@WKJzw>2bEp%FrNU@wi%b=fed*dPgoE-i^CFJ1>Z20qXQ9NR3vMiK-2X7Pqk^3qaQ(Bd0> zycCe9t(f77bh0Pv51wW`ZXtNF-Zk({V*GU-fYo@|Y;F9^_1NUBYlV35bsTPRohfnm?HB_CEY6t&>ZjD@oSB=mji%nU%_~6Ft?iknxy>Ww zk+SjaK9>C~(&U$CNn4xN63mg3&B4SEFy34`vbONLvHWsbT-iSs;?8qWgi} z7dD+MKN}5?Trfpk<{3&ziR;TShb%q_wt-SxzvSU^SZkddgl5R2^&v0#ylZPz!0ysl z?W&^wN~sT;`ckR(I=u<&&mjhP6FB@nl)glzc1quK#I3j2Q9pk7gX&cs^~bNjsoq|t z-p4D5<|~>bx)|~VJjr*gQM?N&Gj*BXyT^ z4)6Q9vDDLXI2+HAY8yF=zr?NUiTZo#ktWjIh}U3u_)TqiqUk60p_$m3ib2RNbHO|KOYIc0Dp(N z@U!0W^j@!McREGSrAS;Ii_Z>F$L)O|tk2nb!{427&i>?|v#pBGT)MBVHr>K^=WP91 z#Q7l4Hui1Q&Gxo}ef_f(c;Nunw^@`M;9dxXV|fbepi4aG#vbNa$A@+o+O0EQuW%rL zvFT@*xr8FHd3MeV9Gl@$50`T;zVGM8QcuU>Y(f4sjpB>H#I5Uz`fm;Y*3a4OS+%y2 zPG@c@K-W0Lb~@S7=ycZ(bi_lojZR)Poc8QcKx?uahqPTgWbEt^+a(cto6rk}UO7S2 zYo=>4G7kK%!2~zot{pOVc1YRjZN(vycH@w?Yln=T9ddR!gmza9dRtN>d(`Cqb&Nw? zUuV}289O_q?DRI~5J|gnNZYkT&EDh2%SMO-s`u8Hh1#9hw`?BKglzei`Dqy1eVn?uC=z!&vUv?bNU~nxUKVf z?hWfyTSYB(If T5QQY^$G+~F)*Zg3?}z>cSm}l# diff --git a/uppsrc/ide/ide.lay b/uppsrc/ide/ide.lay index 5af471461..935a2ff9a 100644 --- a/uppsrc/ide/ide.lay +++ b/uppsrc/ide/ide.lay @@ -716,14 +716,13 @@ LAYOUT(PrintLayout, 164, 128) ITEM(Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(84, 72).BottomPosZ(8, 24)) END_LAYOUT -LAYOUT(InsertColorLayout, 432, 520) - ITEM(RGBACtrl, rgbactrl, LeftPosZ(4, 276).TopPosZ(4, 512)) - ITEM(Button, color, SetLabel(t_("Cancel")).LeftPosZ(284, 144).TopPosZ(4, 24)) - ITEM(Button, rgba, SetLabel(t_("Cancel")).LeftPosZ(284, 144).TopPosZ(32, 24)) - ITEM(Button, ahex, SetLabel(t_("Cancel")).LeftPosZ(284, 144).TopPosZ(60, 24)) - ITEM(Button, hex, SetLabel(t_("Cancel")).LeftPosZ(284, 144).TopPosZ(88, 24)) - ITEM(Button, qtf, SetLabel(t_("Cancel")).LeftPosZ(284, 144).TopPosZ(116, 24)) - ITEM(Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(284, 144).TopPosZ(492, 24)) +LAYOUT(InsertColorLayout, 380, 708) + ITEM(Button, color, SetLabel(t_("Cancel")).LeftPosZ(232, 144).TopPosZ(4, 24)) + ITEM(Button, rgba, SetLabel(t_("Cancel")).LeftPosZ(232, 144).TopPosZ(32, 24)) + ITEM(Button, ahex, SetLabel(t_("Cancel")).LeftPosZ(232, 144).TopPosZ(60, 24)) + ITEM(Button, hex, SetLabel(t_("Cancel")).LeftPosZ(232, 144).TopPosZ(88, 24)) + ITEM(Button, qtf, SetLabel(t_("Cancel")).LeftPosZ(232, 144).TopPosZ(116, 24)) + ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 144).BottomPosZ(4, 24)) END_LAYOUT LAYOUT(AbbreviationsLayout, 664, 476)