BButton: Use BControlLook for label spacing instead of a constant.

This gets button proportions under HiDPI much closer to the ones
under a default font size. Still not quite there yet, though.
This commit is contained in:
Augustin Cavalier
2020-07-04 18:43:30 -04:00
parent 2d68cd06c7
commit 9a0cae9d28
+4 -6
View File
@@ -35,9 +35,6 @@ enum {
};
static const float kLabelMargin = 3;
BButton::BButton(BRect frame, const char* name, const char* label,
BMessage* message, uint32 resizingMode, uint32 flags)
:
@@ -157,7 +154,8 @@ BButton::Draw(BRect updateRect)
}
// always leave some room around the label
rect.InsetBy(kLabelMargin, kLabelMargin);
float labelMargin = be_control_look->DefaultLabelSpacing() / 2;
rect.InsetBy(labelMargin, labelMargin);
const BBitmap* icon = IconBitmap(
(Value() == B_CONTROL_OFF
@@ -651,7 +649,7 @@ BButton::_ValidatePreferredSize()
left, top, right, bottom);
// width
float width = left + right + 2 * kLabelMargin - 1;
float width = left + right + be_control_look->DefaultLabelSpacing() - 1;
const char* label = Label();
if (label != NULL) {
@@ -667,7 +665,7 @@ BButton::_ValidatePreferredSize()
width += be_control_look->DefaultLabelSpacing();
// height
float minHorizontalMargins = top + bottom + 2 * kLabelMargin;
float minHorizontalMargins = top + bottom + be_control_look->DefaultLabelSpacing();
float height = -1;
if (label != NULL) {