From b53836d2c965bacab540c89402d5cdfe38c15480 Mon Sep 17 00:00:00 2001 From: Ines Almeida Date: Sun, 31 May 2015 19:15:10 +0200 Subject: [PATCH] UI: tweaks to ID and non ID preview templates - label is shown on a UI_UNIT_Y heigh instead of 0.2 * total button size - vertically centering non-ID previews labels - making some constants dependent on ui units --- .../editors/interface/interface_templates.c | 4 +-- .../editors/interface/interface_widgets.c | 26 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index df27c4e89c4..bb4ae062708 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -187,7 +187,7 @@ static uiBlock *id_search_menu(bContext *C, ARegion *ar, void *arg_litem) /* preview thumbnails */ if (template.prv_rows > 0 && template.prv_cols > 0) { int w = 4 * U.widget_unit * template.prv_cols; - int h = ((int)(5.25f * U.widget_unit)) * template.prv_rows; + int h = 5 * U.widget_unit * template.prv_rows; /* fake button, it holds space for search items */ uiDefBut(block, UI_BTYPE_LABEL, 0, "", 10, 26, w, h, NULL, 0, 0, 0, 0, NULL); @@ -1668,7 +1668,7 @@ static uiBlock *ui_icon_view_menu_cb(bContext *C, ARegion *ar, void *arg_litem) int x, y; /* XXX hardcoded size to 5 units */ const int w = UI_UNIT_X * 5; - const int h = args.show_labels ? (int)(6.25f * UI_UNIT_Y) : UI_UNIT_Y * 5; + const int h = args.show_labels ? 6 * UI_UNIT_Y : UI_UNIT_Y * 5; x = (a % 8) * w; y = (a / 8) * h; diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 478d1b478ce..d4e4dcb5c29 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -1526,17 +1526,14 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB /* Big previews with optional text label below */ if (but->flag & UI_BUT_ICON_PREVIEW && ui_block_is_menu(but->block)) { const BIFIconID icon = (but->flag & UI_HAS_ICON) ? but->icon + but->iconadd : ICON_NONE; - const int icon_size_i = BLI_rcti_size_y(rect); - float icon_size, text_size; + int icon_size = BLI_rcti_size_y(rect); + int text_size = 0; /* This is a bit britle, but avoids adding an 'UI_BUT_HAS_LABEL' flag to but... */ - if (icon_size_i > BLI_rcti_size_x(rect)) { - icon_size = 0.8f * (float)icon_size_i; - text_size = 0.2f * (float)icon_size_i; - } - else { - icon_size = (float)icon_size_i; - text_size = 0.0f; + if (icon_size > BLI_rcti_size_x(rect)) { + /* button is not square, it has extra height for label */ + text_size = UI_UNIT_Y; + icon_size -= text_size; } /* draw icon in rect above the space reserved for the label */ @@ -1545,9 +1542,12 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB widget_draw_preview(icon, alpha, rect); glDisable(GL_BLEND); - /* offset rect to draw label in*/ + /* offset rect to draw label in */ rect->ymin -= text_size; rect->ymax -= icon_size; + + /* vertically centering text */ + rect->ymin += UI_UNIT_Y / 2; } /* Icons on the left with optional text label on the right */ else if (but->flag & UI_HAS_ICON || show_menu_icon) { @@ -4113,7 +4113,7 @@ void ui_draw_menu_item(uiFontStyle *fstyle, rcti *rect, const char *name, int ic void ui_draw_preview_item(uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int state) { rcti trect = *rect; - const float text_size = 0.2f * BLI_rcti_size_y(rect); + const float text_size = UI_UNIT_Y; float font_dims[2] = {0.0f, 0.0f}; uiWidgetType *wt = widget_type(UI_WTYPE_MENU_ITEM); @@ -4131,8 +4131,8 @@ void ui_draw_preview_item(uiFontStyle *fstyle, rcti *rect, const char *name, int /* text rect */ trect.xmin += 0; - trect.xmax = trect.xmin + font_dims[0] + 10; - trect.ymin += 10; + trect.xmax = trect.xmin + font_dims[0] + U.widget_unit / 2; + trect.ymin += U.widget_unit / 2; trect.ymax = trect.ymin + font_dims[1]; if (trect.xmax > rect->xmax - PREVIEW_PAD) trect.xmax = rect->xmax - PREVIEW_PAD;