[win] online-installer: debug checkbox and radiobutton style

This commit is contained in:
SimplestStudio
2024-10-15 12:00:24 +03:00
parent 361002262d
commit 8051c0b6af
6 changed files with 22 additions and 5 deletions

View File

@ -45,6 +45,8 @@ template <class T>
static void setSelectorStyle(T *sel) // style for CheckBox and RadioButton
{
sel->metrics()->setMetrics(Metrics::TextMarginLeft, 6);
sel->metrics()->setMetrics(Metrics::PrimitiveRadius, 1);
sel->metrics()->setMetrics(Metrics::AlternatePrimitiveWidth, 2);
sel->palette()->setColor(Palette::Text, Palette::Disabled, 0x888888);
sel->palette()->setColor(Palette::Text, Palette::Normal, 0x333333);
sel->palette()->setColor(Palette::Text, Palette::Hover, 0x333333);
@ -54,7 +56,7 @@ static void setSelectorStyle(T *sel) // style for CheckBox and RadioButton
sel->palette()->setColor(Palette::Background, Palette::Hover, 0xfefefe);
sel->palette()->setColor(Palette::Background, Palette::Pressed, 0xfefefe);
sel->palette()->setColor(Palette::Primitive, Palette::Disabled, 0x888888);
sel->palette()->setColor(Palette::Primitive, Palette::Normal, 0x333333);
sel->palette()->setColor(Palette::Primitive, Palette::Normal, 0x888888);
sel->palette()->setColor(Palette::Primitive, Palette::Hover, 0x0055ff);
sel->palette()->setColor(Palette::Primitive, Palette::Pressed, 0x0055ff);
}

View File

@ -258,13 +258,18 @@ void DrawingEngine::DrawCheckBox(const std::wstring &text, bool checked)
SetLayout(m_memDC, LAYOUT_BITMAPORIENTATIONPRESERVED);
m_graphics = new Gdiplus::Graphics(m_memDC);
m_graphics->SetSmoothingMode(Gdiplus::SmoothingModeDefault);
m_graphics->SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
m_graphics->Clear(ColorFromColorRef(m_ds->palette()->color(Palette::Background)));
Gdiplus::Pen pen(ColorFromColorRef(m_ds->palette()->color(Palette::Primitive)), m_ds->metrics()->value(Metrics::PrimitiveWidth));
Gdiplus::Rect rc(x, y, m_ds->metrics()->value(Metrics::IconWidth) - 1, m_ds->metrics()->value(Metrics::IconHeight) - 1);
m_graphics->DrawRectangle(&pen, rc);
// m_graphics->DrawRectangle(&pen, rc);
Gdiplus::GraphicsPath ph;
RoundedPath(ph, rc.X, rc.Y, rc.Width, rc.Height, m_ds->metrics()->value(Metrics::PrimitiveRadius));
m_graphics->DrawPath(&pen, &ph);
if (checked) {
pen.SetWidth(m_ds->metrics()->value(Metrics::AlternatePrimitiveWidth));
pen.SetColor(ColorFromColorRef(m_ds->palette()->color(Palette::AlternatePrimitive)));
Gdiplus::PointF pts[3] = {
Gdiplus::PointF(float(x + 2), float(y + m_ds->metrics()->value(Metrics::IconHeight)/2 - 1)),
Gdiplus::PointF(float(x + m_ds->metrics()->value(Metrics::IconWidth)/2 - 2), float(y + m_ds->metrics()->value(Metrics::IconHeight) - 5)),
@ -323,8 +328,8 @@ void DrawingEngine::DrawRadioButton(const std::wstring &text, bool checked)
Gdiplus::Pen pen(ColorFromColorRef(m_ds->palette()->color(Palette::Primitive)), m_ds->metrics()->value(Metrics::PrimitiveWidth));
m_graphics->DrawEllipse(&pen, x, y, m_ds->metrics()->value(Metrics::IconHeight) - 1, m_ds->metrics()->value(Metrics::IconHeight) - 1);
if (checked) {
Gdiplus::SolidBrush chunkBrush(ColorFromColorRef(m_ds->palette()->color(Palette::Primitive)));
m_graphics->FillEllipse(&chunkBrush, x + 2, y + 2, m_ds->metrics()->value(Metrics::IconHeight) - 4 - 1, m_ds->metrics()->value(Metrics::IconHeight) - 4 - 1);
Gdiplus::SolidBrush chunkBrush(ColorFromColorRef(m_ds->palette()->color(Palette::AlternatePrimitive)));
m_graphics->FillEllipse(&chunkBrush, float(x) + 2.7f, float(y) + 2.7f, float(m_ds->metrics()->value(Metrics::IconHeight)) - 5.4f - 1.0f, float(m_ds->metrics()->value(Metrics::IconHeight)) - 5.4f - 1.0f);
}
if (!text.empty()) {
RECT rc;

View File

@ -15,6 +15,8 @@ Metrics::Metrics()
metrics[FontWidth] = 0;
metrics[FontHeight] = 18;
metrics[PrimitiveWidth] = 1;
metrics[PrimitiveRadius] = 0;
metrics[AlternatePrimitiveWidth] = 1;
metrics[ShadowWidth] = 10;
metrics[ShadowRadius] = 10;
metrics[TextMarginLeft] = 0;

View File

@ -31,6 +31,8 @@ public:
FontWidth,
FontHeight,
PrimitiveWidth,
AlternatePrimitiveWidth,
PrimitiveRadius,
ShadowWidth,
ShadowRadius,
TextMarginLeft,

View File

@ -27,6 +27,10 @@ Palette::Palette()
palette[Primitive][Normal] = 0xeeeeee;
palette[Primitive][Hover] = 0xeeeeee;
palette[Primitive][Pressed] = 0xeeeeee;
palette[AlternatePrimitive][Disabled] = 0x888888;
palette[AlternatePrimitive][Normal] = 0x333333;
palette[AlternatePrimitive][Hover] = 0x333333;
palette[AlternatePrimitive][Pressed] = 0x333333;
setCurrentState(Normal);
}
@ -55,5 +59,6 @@ void Palette::setCurrentState(State state)
currentColors[AlternateBase] = palette[AlternateBase][state];
currentColors[Text] = palette[Text][state];
currentColors[Primitive] = palette[Primitive][state];
currentColors[AlternatePrimitive] = palette[AlternatePrimitive][state];
currentState = state;
}

View File

@ -17,6 +17,7 @@ public:
AlternateBase,
Text,
Primitive,
AlternatePrimitive,
PALETTE_ROLE_COUNT
};