CtrlLib: Chameleon fixes

git-svn-id: svn://ultimatepp.org/upp/trunk@13916 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2020-01-18 17:15:43 +00:00
parent 555a2a0672
commit f7a00a4a2e
3 changed files with 14 additions and 6 deletions

View file

@ -2,8 +2,6 @@
- GUILock docs
CH:
- WithDropChoice ch issue (again...)
- Redmond scrollbars width
DONE:
@ -81,3 +79,4 @@ DONE:
- Ide split buttons look unexpected
- Issue with editfield text clipping in the right
- Possible issue with Capture (e.g. ide about box)
- WithDropChoice ch issue (again...)

View file

@ -382,13 +382,15 @@ void ChSynthetic(Image button100x100[4], Color text[4])
}
if(i == CTRL_DISABLED) {
ProgressIndicator::Style& s = ProgressIndicator::StyleDefault().Write();
s.hlook = MakeButton(roundness, m, DPI(1), ink);
ImageBuffer ib(1, 8);
ImageBuffer ibb(1, 8);
for(int i = 0; i < 8; i++) {
int a[] = { 20, 40, 10, 0, -10, -20, -30, -40 };
ib[i][0] = AdjustColor(SColorHighlight(), a[i]);
ibb[i][0] = Blend(SColorFace(), SColorPaper(), i * 255 / 7);
}
s.hchunk = MakeButton(roundness, Magnify(ib, 10, 1), DPI(1), ink);
s.hlook = MakeButton(roundness, Magnify(ibb, 10, 1), DPI(1), ink);
s.bound = true;
s.nomargins = true;
}

View file

@ -358,12 +358,17 @@ Rect MultiButton::Paint0(Draw& w, bool getcr)
Color fpaper = Null;
Color text = SColorLabel;
bool hotpressed = false;
if(!nobg && !ComplexFrame() && frm) {
if(mst == CTRL_HOT && !IsTrivial())
if(mst == CTRL_HOT && !IsTrivial()) {
fpaper = Blend(SColorHighlight, SColorPaper, 235);
hotpressed = true;
}
else
if(mst == CTRL_PRESSED && !IsTrivial())
if(mst == CTRL_PRESSED && !IsTrivial()) {
fpaper = Blend(SColorHighlight, SColorFace, 235);
hotpressed = true;
}
else
if(HasFocus()) {
fpaper = SColorHighlight();
@ -380,7 +385,9 @@ Rect MultiButton::Paint0(Draw& w, bool getcr)
w.Clip(l, 0, r - l, sz.cy);
}
ChPaint(w, sz, style->edge[style->activeedge ? mst : 0]);
Color p = Nvl(fpaper, paper);
Color p = paper;
if(hotpressed)
p = Nvl(fpaper, paper);
if(!IsNull(p) && !IsNull(style->coloredge))
ChPaint(w, sz, style->coloredge, p);
if(style->clipedge)