diff options
author | Tianwei Shen <shentianweipku@gmail.com> | 2017-03-21 19:05:08 +0300 |
---|---|---|
committer | Tianwei Shen <shentianweipku@gmail.com> | 2017-03-21 19:05:08 +0300 |
commit | 0624a2d0f2a3ec1ddbaebce9b50a9c885251be0a (patch) | |
tree | 53040f21dd8cf2327c96a5f5f9b91d4a448a9e42 /source/blender/editors/interface | |
parent | bb332043f0fb85bb9bcf3556b1f84f9dc1ebdb98 (diff) | |
parent | a0f16e12a03c686e05f9315634e4d081a0aa6a80 (diff) |
Merge branch 'master' into soc-2016-multiview
Diffstat (limited to 'source/blender/editors/interface')
6 files changed, 28 insertions, 17 deletions
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 682db20af55..57f3d228a17 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -2288,7 +2288,7 @@ char *ui_but_string_get_dynamic(uiBut *but, int *r_str_size) #ifdef WITH_PYTHON -static bool ui_set_but_string_eval_num_unit(bContext *C, uiBut *but, const char *str, double *value) +static bool ui_set_but_string_eval_num_unit(bContext *C, uiBut *but, const char *str, double *r_value) { char str_unit_convert[256]; const int unit_type = UI_but_unit_type_get(but); @@ -2300,13 +2300,13 @@ static bool ui_set_but_string_eval_num_unit(bContext *C, uiBut *but, const char bUnit_ReplaceString(str_unit_convert, sizeof(str_unit_convert), but->drawstr, ui_get_but_scale_unit(but, 1.0), but->block->unit->system, RNA_SUBTYPE_UNIT_VALUE(unit_type)); - return BPY_execute_string_as_number(C, str_unit_convert, value, true); + return BPY_execute_string_as_number(C, str_unit_convert, true, r_value); } #endif /* WITH_PYTHON */ -bool ui_but_string_set_eval_num(bContext *C, uiBut *but, const char *str, double *value) +bool ui_but_string_set_eval_num(bContext *C, uiBut *but, const char *str, double *r_value) { bool ok = false; @@ -2315,13 +2315,13 @@ bool ui_but_string_set_eval_num(bContext *C, uiBut *but, const char *str, double if (str[0] != '\0') { bool is_unit_but = (ui_but_is_float(but) && ui_but_is_unit(but)); /* only enable verbose if we won't run again with units */ - if (BPY_execute_string_as_number(C, str, value, is_unit_but == false)) { + if (BPY_execute_string_as_number(C, str, is_unit_but == false, r_value)) { /* if the value parsed ok without unit conversion this button may still need a unit multiplier */ if (is_unit_but) { char str_new[128]; - BLI_snprintf(str_new, sizeof(str_new), "%f", *value); - ok = ui_set_but_string_eval_num_unit(C, but, str_new, value); + BLI_snprintf(str_new, sizeof(str_new), "%f", *r_value); + ok = ui_set_but_string_eval_num_unit(C, but, str_new, r_value); } else { ok = true; /* parse normal string via py (no unit conversion needed) */ @@ -2329,7 +2329,7 @@ bool ui_but_string_set_eval_num(bContext *C, uiBut *but, const char *str, double } else if (is_unit_but) { /* parse failed, this is a unit but so run replacements and parse again */ - ok = ui_set_but_string_eval_num_unit(C, but, str, value); + ok = ui_set_but_string_eval_num_unit(C, but, str, r_value); } } @@ -3913,6 +3913,8 @@ uiBut *uiDefIconTextButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int o uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, const char *str, int x, int y, short width, short height, const char *tip) { wmOperatorType *ot = WM_operatortype_find(opname, 0); + if (str[0] == '\0') + return uiDefIconButO_ptr(block, type, ot, opcontext, icon, x, y, width, height, tip); return uiDefIconTextButO_ptr(block, type, ot, opcontext, icon, str, x, y, width, height, tip); } diff --git a/source/blender/editors/interface/interface_eyedropper.c b/source/blender/editors/interface/interface_eyedropper.c index 5154a77ad21..f3859154dfb 100644 --- a/source/blender/editors/interface/interface_eyedropper.c +++ b/source/blender/editors/interface/interface_eyedropper.c @@ -1082,7 +1082,7 @@ static int depthdropper_poll(bContext *C) return 1; } } - else { + else { RegionView3D *rv3d = CTX_wm_region_view3d(C); if (rv3d && rv3d->persp == RV3D_CAMOB) { View3D *v3d = CTX_wm_view3d(C); diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index ce1153911da..c62fb4cadd6 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1274,7 +1274,7 @@ static void ui_item_rna_size( if (!w) { if (type == PROP_ENUM && icon_only) { w = ui_text_icon_width(layout, "", ICON_BLANK1, 0); - w += 0.5f * UI_UNIT_X; + w += 0.6f * UI_UNIT_X; } else { w = ui_text_icon_width(layout, name, icon, 0); @@ -2238,8 +2238,9 @@ static void ui_litem_layout_row(uiLayout *litem) /* add extra pixel */ uiItem *last_item = litem->items.last; extra_pixel = litem->w - (x - litem->x); - if (extra_pixel > 0 && litem->alignment == UI_LAYOUT_ALIGN_EXPAND && - last_free_item && last_item && last_item->flag & UI_ITEM_FIXED) { + if (extra_pixel > 0 && litem->alignment == UI_LAYOUT_ALIGN_EXPAND && + last_free_item && last_item && last_item->flag & UI_ITEM_FIXED) + { ui_item_move(last_free_item, 0, extra_pixel); for (item = last_free_item->next; item; item = item->next) ui_item_move(item, extra_pixel, extra_pixel); diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c index 40ebc946e79..fb95cdf389b 100644 --- a/source/blender/editors/interface/interface_ops.c +++ b/source/blender/editors/interface/interface_ops.c @@ -739,6 +739,7 @@ static int editsource_text_edit( if (text == NULL) { text = BKE_text_load(bmain, filepath, bmain->name); + id_us_ensure_real(&text->id); } if (text == NULL) { diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 62f12cd7967..131584dd405 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -430,7 +430,7 @@ static void template_ID( uiLayoutRow(layout, true); } else if (flag & UI_ID_BROWSE) { - but = uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X * 1.5, UI_UNIT_Y, + but = uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X * 1.6, UI_UNIT_Y, TIP_(template_id_browse_tip(type))); ui_def_but_icon(but, RNA_struct_ui_icon(type), UI_HAS_ICON); /* default dragging of icon for id browse buttons */ diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 6e871b8ec92..5ec0c49a8cd 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -873,15 +873,18 @@ static void widget_draw_icon( if (icon && icon != ICON_BLANK1) { float ofs = 1.0f / aspect; - if (but->drawflag & UI_BUT_ICON_LEFT || ui_block_is_pie_menu(but->block)) { + if (but->drawflag & UI_BUT_ICON_LEFT) { if (but->block->flag & UI_BLOCK_LOOP) { if (but->type == UI_BTYPE_SEARCH_MENU) xs = rect->xmin + 4.0f * ofs; else - xs = rect->xmin + 2.0f * ofs; + xs = rect->xmin + ofs; } else { - xs = rect->xmin + 2.0f * ofs; + if (but->dt == UI_EMBOSS_NONE || but->type == UI_BTYPE_LABEL) + xs = rect->xmin + 2.0f * ofs; + else + xs = rect->xmin + 4.0f * ofs; } ys = (rect->ymin + rect->ymax - height) / 2.0f; } @@ -1554,11 +1557,15 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB /* Icons on the left with optional text label on the right */ else if (but->flag & UI_HAS_ICON || show_menu_icon) { const BIFIconID icon = (but->flag & UI_HAS_ICON) ? but->icon + but->iconadd : ICON_NONE; - const float icon_size = ICON_DEFAULT_WIDTH; + const float icon_size = ICON_DEFAULT_WIDTH_SCALE; /* menu item - add some more padding so menus don't feel cramped. it must * be part of the button so that this area is still clickable */ - if (ui_block_is_menu(but->block) && !ui_block_is_pie_menu(but->block)) + if (ui_block_is_pie_menu(but->block)) { + if (but->dt == UI_EMBOSS_RADIAL) + rect->xmin += 0.3f * U.widget_unit; + } + else if (ui_block_is_menu(but->block)) rect->xmin += 0.3f * U.widget_unit; widget_draw_icon(but, icon, alpha, rect, show_menu_icon); |