98{
99 wxSize size = GetSize();
100 wxSize textSize;
101 auto label = GetLabel();
102 if (!label.IsEmpty()) textSize = dc.GetTextExtent(label);
103 wxRect titleRect{{0, 0}, size};
104 titleRect.height = wxMax(
icon.GetBmpHeight(), textSize.GetHeight());
105 int contentWidth =
icon.GetBmpWidth() + ((
icon.bmp().IsOk() && textSize.GetWidth() > 0) ? 5 : 0) +
106 textSize.GetWidth();
107 if (
vertical) titleRect.Deflate((size.GetWidth() - contentWidth) / 2, 0);
108 if (
icon.bmp().IsOk()) {
109 dc.DrawBitmap(
icon.bmp(), {0, (size.y - icon.GetBmpHeight()) / 2});
110 titleRect.x +=
icon.GetBmpWidth() + 5;
111 }
112 if (!label.IsEmpty()) {
114 dc.DrawText(label, titleRect.x, (size.GetHeight() - textSize.GetHeight()) / 2);
115 titleRect.x += textSize.GetWidth() + 5;
116 }
119 size.x /= 2;
120 if (titleRect.y > 0) titleRect.y += 5;
121 dc.DrawLine(size.x, titleRect.y, size.x, size.y);
122 } else {
123 size.y /= 2;
124 dc.DrawLine(titleRect.x, size.y, size.x, size.y);
125 }
126}
static wxColour darkModeColorFor(wxColour const &color)
Definition StateColor.cpp:219