Cleanup: use braces for interface code

This commit is contained in:
2019-03-25 10:15:20 +11:00
parent 72ede30d0f
commit e86e0aad55
28 changed files with 2819 additions and 1308 deletions

View File

@@ -88,7 +88,10 @@ static void ui_def_but_rna__menu(bContext *UNUSED(C), uiLayout *layout, void *bu
/* avoid unneeded calls to ui_but_value_get */
#define UI_BUT_VALUE_UNSET DBL_MAX
#define UI_GET_BUT_VALUE_INIT(_but, _value) if (_value == DBL_MAX) { (_value) = ui_but_value_get(_but); } (void)0
#define UI_GET_BUT_VALUE_INIT(_but, _value) \
if (_value == DBL_MAX) { \
(_value) = ui_but_value_get(_but); \
} ((void)0)
#define B_NOP -1
@@ -345,8 +348,9 @@ static void ui_block_bounds_calc_text(uiBlock *block, float offset)
if (!ELEM(bt->type, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE, UI_BTYPE_SEPR_SPACER)) {
j = BLF_width(style->widget.uifont_id, bt->drawstr, sizeof(bt->drawstr));
if (j > i)
if (j > i) {
i = j;
}
}
if (bt->next && bt->rect.xmin < bt->next->rect.xmin) {
@@ -403,8 +407,12 @@ void ui_block_bounds_calc(uiBlock *block)
/* hardcoded exception... but that one is annoying with larger safety */
bt = block->buttons.first;
if (bt && STREQLEN(bt->str, "ERROR", 5)) xof = 10;
else xof = 40;
if (bt && STREQLEN(bt->str, "ERROR", 5)) {
xof = 10;
}
else {
xof = 40;
}
block->safety.xmin = block->rect.xmin - xof;
block->safety.ymin = block->rect.ymin - xof;
@@ -523,8 +531,9 @@ static void ui_block_bounds_calc_popup(
/* used for various cases */
void UI_block_bounds_set_normal(uiBlock *block, int addval)
{
if (block == NULL)
if (block == NULL) {
return;
}
block->bounds = addval;
block->bounds_type = UI_BLOCK_BOUNDS;
@@ -610,16 +619,16 @@ static bool ui_but_equals_old(const uiBut *but, const uiBut *oldbut)
{
/* various properties are being compared here, hopefully sufficient
* to catch all cases, but it is simple to add more checks later */
if (but->retval != oldbut->retval) return false;
if (but->rnapoin.data != oldbut->rnapoin.data) return false;
if (but->rnaprop != oldbut->rnaprop || but->rnaindex != oldbut->rnaindex) return false;
if (but->func != oldbut->func) return false;
if (but->funcN != oldbut->funcN) return false;
if (oldbut->func_arg1 != oldbut && but->func_arg1 != oldbut->func_arg1) return false;
if (oldbut->func_arg2 != oldbut && but->func_arg2 != oldbut->func_arg2) return false;
if (but->retval != oldbut->retval) { return false; }
if (but->rnapoin.data != oldbut->rnapoin.data) { return false; }
if (but->rnaprop != oldbut->rnaprop || but->rnaindex != oldbut->rnaindex) { return false; }
if (but->func != oldbut->func) { return false; }
if (but->funcN != oldbut->funcN) { return false; }
if (oldbut->func_arg1 != oldbut && but->func_arg1 != oldbut->func_arg1) { return false; }
if (oldbut->func_arg2 != oldbut && but->func_arg2 != oldbut->func_arg2) { return false; }
if (!but->funcN && ((but->poin != oldbut->poin && (uiBut *)oldbut->poin != oldbut) ||
(but->pointype != oldbut->pointype))) return false;
if (but->optype != oldbut->optype) return false;
(but->pointype != oldbut->pointype))) { return false; }
if (but->optype != oldbut->optype) { return false; }
return true;
}
@@ -888,8 +897,9 @@ static void ui_menu_block_set_keyaccels(uiBlock *block)
int tot_missing = 0;
/* only do it before bounding */
if (block->rect.xmin != block->rect.xmax)
if (block->rect.xmin != block->rect.xmax) {
return;
}
for (pass = 0; pass < 2; pass++) {
/* 2 Passes, on for first letter only, second for any letter if first fails
@@ -916,11 +926,13 @@ static void ui_menu_block_set_keyaccels(uiBlock *block)
if (pass == 0) {
/* Skip to next delimiter on first pass (be picky) */
while (isalpha(*str_pt))
while (isalpha(*str_pt)) {
str_pt++;
}
if (*str_pt)
if (*str_pt) {
str_pt++;
}
}
else {
/* just step over every char second pass and find first usable key */
@@ -1402,8 +1414,9 @@ void UI_block_update_from_old(const bContext *C, uiBlock *block)
uiBut *but_old;
uiBut *but;
if (!block->oldblock)
if (!block->oldblock) {
return;
}
but_old = block->oldblock->buttons.first;
@@ -1450,15 +1463,17 @@ void UI_block_end_ex(const bContext *C, uiBlock *block, const int xy[2], int r_x
if (but->optype) {
wmOperatorType *ot = but->optype;
if (but->context)
if (but->context) {
CTX_store_set((bContext *)C, but->context);
}
if (ot == NULL || WM_operator_poll_context((bContext *)C, ot, but->opcontext) == 0) {
but->flag |= UI_BUT_DISABLED;
}
if (but->context)
if (but->context) {
CTX_store_set((bContext *)C, NULL);
}
}
ui_but_anim_flag(but, (scene) ? scene->r.cfra : 0.0f);
@@ -1538,10 +1553,12 @@ void ui_fontscale(short *points, float aspect)
//aspect = sqrt(aspect);
pointsf /= aspect;
if (aspect > 1.0f)
if (aspect > 1.0f) {
*points = ceilf(pointsf);
else
}
else {
*points = floorf(pointsf);
}
}
}
@@ -1565,11 +1582,13 @@ void UI_block_draw(const bContext *C, uiBlock *block)
/* get menu region or area region */
ar = CTX_wm_menu(C);
if (!ar)
if (!ar) {
ar = CTX_wm_region(C);
}
if (!block->endblock)
if (!block->endblock) {
UI_block_end(C, block);
}
/* we set this only once */
GPU_blend_set_func_separate(GPU_SRC_ALPHA, GPU_ONE_MINUS_SRC_ALPHA, GPU_ONE, GPU_ONE_MINUS_SRC_ALPHA);
@@ -1591,12 +1610,15 @@ void UI_block_draw(const bContext *C, uiBlock *block)
wmOrtho2_region_pixelspace(ar);
/* back */
if (block->flag & UI_BLOCK_RADIAL)
if (block->flag & UI_BLOCK_RADIAL) {
ui_draw_pie_center(block);
else if (block->flag & UI_BLOCK_POPOVER)
}
else if (block->flag & UI_BLOCK_POPOVER) {
ui_draw_popover_back(ar, &style, block, &rect);
else if (block->flag & UI_BLOCK_LOOP)
}
else if (block->flag & UI_BLOCK_LOOP) {
ui_draw_menu_back(&style, block, &rect);
}
else if (block->panel) {
bool show_background = ar->alignment != RGN_ALIGN_FLOAT;
ui_draw_aligned_panel(
@@ -1615,8 +1637,9 @@ void UI_block_draw(const bContext *C, uiBlock *block)
/* XXX: figure out why invalid coordinates happen when closing render window */
/* and material preview is redrawn in main window (temp fix for bug #23848) */
if (rect.xmin < rect.xmax && rect.ymin < rect.ymax)
if (rect.xmin < rect.xmax && rect.ymin < rect.ymax) {
ui_draw_but(C, ar, &style, but, &rect);
}
}
}
@@ -1699,13 +1722,17 @@ int ui_but_is_pushed_ex(uiBut *but, double *value)
case UI_BTYPE_ICON_TOGGLE:
case UI_BTYPE_CHECKBOX:
UI_GET_BUT_VALUE_INIT(but, *value);
if (*value != (double)but->hardmin) is_push = true;
if (*value != (double)but->hardmin) {
is_push = true;
}
break;
case UI_BTYPE_ICON_TOGGLE_N:
case UI_BTYPE_TOGGLE_N:
case UI_BTYPE_CHECKBOX_N:
UI_GET_BUT_VALUE_INIT(but, *value);
if (*value == 0.0) is_push = true;
if (*value == 0.0) {
is_push = true;
}
break;
case UI_BTYPE_ROW:
case UI_BTYPE_LISTROW:
@@ -1728,10 +1755,14 @@ int ui_but_is_pushed_ex(uiBut *but, double *value)
UI_GET_BUT_VALUE_INIT(but, *value);
/* support for rna enum buts */
if (but->rnaprop && (RNA_property_flag(but->rnaprop) & PROP_ENUM_FLAG)) {
if ((int)*value & (int)but->hardmax) is_push = true;
if ((int)*value & (int)but->hardmax) {
is_push = true;
}
}
else {
if (*value == (double)but->hardmax) is_push = true;
if (*value == (double)but->hardmax) {
is_push = true;
}
}
break;
default:
@@ -1945,25 +1976,30 @@ void ui_but_v3_set(uiBut *but, const float vec[3])
bool ui_but_is_float(const uiBut *but)
{
if (but->pointype == UI_BUT_POIN_FLOAT && but->poin)
if (but->pointype == UI_BUT_POIN_FLOAT && but->poin) {
return true;
}
if (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_FLOAT)
if (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_FLOAT) {
return true;
}
return false;
}
bool ui_but_is_bool(const uiBut *but)
{
if (ELEM(but->type, UI_BTYPE_TOGGLE, UI_BTYPE_TOGGLE_N, UI_BTYPE_ICON_TOGGLE, UI_BTYPE_ICON_TOGGLE_N, UI_BTYPE_TAB))
if (ELEM(but->type, UI_BTYPE_TOGGLE, UI_BTYPE_TOGGLE_N, UI_BTYPE_ICON_TOGGLE, UI_BTYPE_ICON_TOGGLE_N, UI_BTYPE_TAB)) {
return true;
}
if (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_BOOLEAN)
if (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_BOOLEAN) {
return true;
}
if ((but->rnaprop && RNA_property_type(but->rnaprop) == PROP_ENUM) && (but->type == UI_BTYPE_ROW))
if ((but->rnaprop && RNA_property_type(but->rnaprop) == PROP_ENUM) && (but->type == UI_BTYPE_ROW)) {
return true;
}
return false;
}
@@ -1974,17 +2010,20 @@ bool ui_but_is_unit(const uiBut *but)
UnitSettings *unit = but->block->unit;
const int unit_type = UI_but_unit_type_get(but);
if (unit_type == PROP_UNIT_NONE)
if (unit_type == PROP_UNIT_NONE) {
return false;
}
#if 1 /* removed so angle buttons get correct snapping */
if (ui_but_is_unit_radians_ex(unit, unit_type))
if (ui_but_is_unit_radians_ex(unit, unit_type)) {
return false;
}
#endif
/* for now disable time unit conversion */
if (unit_type == PROP_UNIT_TIME)
if (unit_type == PROP_UNIT_TIME) {
return false;
}
if (unit->system == USER_UNIT_NONE) {
if (unit_type != PROP_UNIT_ROTATION) {
@@ -2000,20 +2039,25 @@ bool ui_but_is_unit(const uiBut *but)
*/
bool ui_but_is_compatible(const uiBut *but_a, const uiBut *but_b)
{
if (but_a->type != but_b->type)
if (but_a->type != but_b->type) {
return false;
if (but_a->pointype != but_b->pointype)
}
if (but_a->pointype != but_b->pointype) {
return false;
}
if (but_a->rnaprop) {
/* skip 'rnapoin.data', 'rnapoin.id.data'
* allow different data to have the same props edited at once */
if (but_a->rnapoin.type != but_b->rnapoin.type)
if (but_a->rnapoin.type != but_b->rnapoin.type) {
return false;
if (RNA_property_type(but_a->rnaprop) != RNA_property_type(but_b->rnaprop))
}
if (RNA_property_type(but_a->rnaprop) != RNA_property_type(but_b->rnaprop)) {
return false;
if (RNA_property_subtype(but_a->rnaprop) != RNA_property_subtype(but_b->rnaprop))
}
if (RNA_property_subtype(but_a->rnaprop) != RNA_property_subtype(but_b->rnaprop)) {
return false;
}
}
return true;
@@ -2046,8 +2090,12 @@ double ui_but_value_get(uiBut *but)
PropertyRNA *prop;
double value = 0.0;
if (but->editval) { return *(but->editval); }
if (but->poin == NULL && but->rnapoin.data == NULL) return 0.0;
if (but->editval) {
return *(but->editval);
}
if (but->poin == NULL && but->rnapoin.data == NULL) {
return 0.0;
}
if (but->rnaprop) {
prop = but->rnaprop;
@@ -2058,22 +2106,28 @@ double ui_but_value_get(uiBut *but)
switch (RNA_property_type(prop)) {
case PROP_BOOLEAN:
if (RNA_property_array_check(prop))
if (RNA_property_array_check(prop)) {
value = RNA_property_boolean_get_index(&rnapoin_eval, prop, but->rnaindex);
else
}
else {
value = RNA_property_boolean_get(&rnapoin_eval, prop);
}
break;
case PROP_INT:
if (RNA_property_array_check(prop))
if (RNA_property_array_check(prop)) {
value = RNA_property_int_get_index(&rnapoin_eval, prop, but->rnaindex);
else
}
else {
value = RNA_property_int_get(&rnapoin_eval, prop);
}
break;
case PROP_FLOAT:
if (RNA_property_array_check(prop))
if (RNA_property_array_check(prop)) {
value = RNA_property_float_get_index(&rnapoin_eval, prop, but->rnaindex);
else
}
else {
value = RNA_property_float_get(&rnapoin_eval, prop);
}
break;
case PROP_ENUM:
value = RNA_property_enum_get(&rnapoin_eval, prop);
@@ -2110,22 +2164,28 @@ void ui_but_value_set(uiBut *but, double value)
if (RNA_property_editable(&but->rnapoin, prop)) {
switch (RNA_property_type(prop)) {
case PROP_BOOLEAN:
if (RNA_property_array_check(prop))
if (RNA_property_array_check(prop)) {
RNA_property_boolean_set_index(&but->rnapoin, prop, but->rnaindex, value);
else
}
else {
RNA_property_boolean_set(&but->rnapoin, prop, value);
}
break;
case PROP_INT:
if (RNA_property_array_check(prop))
if (RNA_property_array_check(prop)) {
RNA_property_int_set_index(&but->rnapoin, prop, but->rnaindex, (int)value);
else
}
else {
RNA_property_int_set(&but->rnapoin, prop, (int)value);
}
break;
case PROP_FLOAT:
if (RNA_property_array_check(prop))
if (RNA_property_array_check(prop)) {
RNA_property_float_set_index(&but->rnapoin, prop, but->rnaindex, value);
else
}
else {
RNA_property_float_set(&but->rnapoin, prop, value);
}
break;
case PROP_ENUM:
if (RNA_property_flag(prop) & PROP_ENUM_FLAG) {
@@ -2163,21 +2223,29 @@ void ui_but_value_set(uiBut *but, double value)
}
else if (but->pointype == UI_BUT_POIN_FLOAT) {
float fval = (float)value;
if (fval >= -0.00001f && fval <= 0.00001f) fval = 0.0f; /* prevent negative zero */
if (fval >= -0.00001f && fval <= 0.00001f) {
/* prevent negative zero */
fval = 0.0f;
}
value = fval;
}
/* then set value with possible edit override */
if (but->editval)
if (but->editval) {
value = *but->editval = value;
else if (but->pointype == UI_BUT_POIN_CHAR)
}
else if (but->pointype == UI_BUT_POIN_CHAR) {
value = *((char *)but->poin) = (char)value;
else if (but->pointype == UI_BUT_POIN_SHORT)
}
else if (but->pointype == UI_BUT_POIN_SHORT) {
value = *((short *)but->poin) = (short)value;
else if (but->pointype == UI_BUT_POIN_INT)
}
else if (but->pointype == UI_BUT_POIN_INT) {
value = *((int *)but->poin) = (int)value;
else if (but->pointype == UI_BUT_POIN_FLOAT)
}
else if (but->pointype == UI_BUT_POIN_FLOAT) {
value = *((float *)but->poin) = (float)value;
}
}
ui_but_update_select_flag(but, &value);
@@ -2185,10 +2253,12 @@ void ui_but_value_set(uiBut *but, double value)
int ui_but_string_get_max_length(uiBut *but)
{
if (ELEM(but->type, UI_BTYPE_TEXT, UI_BTYPE_SEARCH_MENU))
if (ELEM(but->type, UI_BTYPE_TEXT, UI_BTYPE_SEARCH_MENU)) {
return but->hardmax;
else
}
else {
return UI_MAX_DRAW_STR;
}
}
uiBut *ui_but_drag_multi_edit_get(uiBut *but)
@@ -2313,14 +2383,20 @@ static void ui_get_but_string_unit(uiBut *but, char *str, int len_max, double va
int unit_type = UI_but_unit_type_get(but);
int precision;
if (unit->scale_length < 0.0001f) unit->scale_length = 1.0f; // XXX do_versions
if (unit->scale_length < 0.0001f) {
unit->scale_length = 1.0f; // XXX do_versions
}
/* Use precision override? */
if (float_precision == -1) {
/* Sanity checks */
precision = (int)but->a2;
if (precision > UI_PRECISION_FLOAT_MAX) precision = UI_PRECISION_FLOAT_MAX;
else if (precision == -1) precision = 2;
if (precision > UI_PRECISION_FLOAT_MAX) {
precision = UI_PRECISION_FLOAT_MAX;
}
else if (precision == -1) {
precision = 2;
}
}
else {
precision = float_precision;
@@ -2776,8 +2852,8 @@ bool ui_but_string_set(bContext *C, uiBut *but, const char *str)
}
/* not that we use hard limits here */
if (value < (double)but->hardmin) value = but->hardmin;
if (value > (double)but->hardmax) value = but->hardmax;
if (value < (double)but->hardmin) { value = but->hardmin; }
if (value > (double)but->hardmax) { value = but->hardmax; }
ui_but_value_set(but, value);
return true;
@@ -2810,12 +2886,15 @@ static double soft_range_round_up(double value, double max)
* checking for 0.0 prevents floating point exceptions */
double newmax = (value != 0.0) ? pow(10.0, ceil(log(value) / M_LN10)) : 0.0;
if (newmax * 0.2 >= max && newmax * 0.2 >= value)
if (newmax * 0.2 >= max && newmax * 0.2 >= value) {
return newmax * 0.2;
else if (newmax * 0.5 >= max && newmax * 0.5 >= value)
}
else if (newmax * 0.5 >= max && newmax * 0.5 >= value) {
return newmax * 0.5;
else
}
else {
return newmax;
}
}
static double soft_range_round_down(double value, double max)
@@ -2824,12 +2903,15 @@ static double soft_range_round_down(double value, double max)
* checking for 0.0 prevents floating point exceptions */
double newmax = (value != 0.0) ? pow(10.0, floor(log(value) / M_LN10)) : 0.0;
if (newmax * 5.0 <= max && newmax * 5.0 <= value)
if (newmax * 5.0 <= max && newmax * 5.0 <= value) {
return newmax * 5.0;
else if (newmax * 2.0 <= max && newmax * 2.0 <= value)
}
else if (newmax * 2.0 <= max && newmax * 2.0 <= value) {
return newmax * 2.0;
else
}
else {
return newmax;
}
}
/* note: this could be split up into functions which handle arrays and not */
@@ -2893,22 +2975,28 @@ static void ui_set_but_soft_range(uiBut *but)
/* if the value goes out of the soft/max range, adapt the range */
if (value_min + 1e-10 < softmin) {
if (value_min < 0.0)
if (value_min < 0.0) {
softmin = -soft_range_round_up(-value_min, -softmin);
else
}
else {
softmin = soft_range_round_down(value_min, softmin);
}
if (softmin < (double)but->hardmin)
if (softmin < (double)but->hardmin) {
softmin = (double)but->hardmin;
}
}
if (value_max - 1e-10 > softmax) {
if (value_max < 0.0)
if (value_max < 0.0) {
softmax = -soft_range_round_down(-value_max, -softmax);
else
}
else {
softmax = soft_range_round_up(value_max, softmax);
}
if (softmax > (double)but->hardmax)
if (softmax > (double)but->hardmax) {
softmax = but->hardmax;
}
}
but->softmin = softmin;
@@ -3053,8 +3141,9 @@ void UI_blocklist_free_inactive(const bContext *C, ListBase *lb)
BLI_remlink(lb, block);
UI_block_free(C, block);
}
else
else {
block->active = 0;
}
}
}
}
@@ -3114,8 +3203,9 @@ uiBlock *UI_block_begin(const bContext *C, ARegion *region, const char *name, sh
BLI_strncpy(block->name, name, sizeof(block->name));
if (region)
if (region) {
UI_block_region_set(block, region);
}
/* Set window matrix and aspect for region and OpenGL state. */
ui_update_window_matrix(window, region, block);
@@ -3348,14 +3438,18 @@ static void ui_but_update_ex(uiBut *but, const bool validate)
char *str = but->drawstr;
but->drawstr[0] = '\0';
if (but->modifier_key & KM_SHIFT)
if (but->modifier_key & KM_SHIFT) {
str += BLI_strcpy_rlen(str, "Shift ");
if (but->modifier_key & KM_CTRL)
}
if (but->modifier_key & KM_CTRL) {
str += BLI_strcpy_rlen(str, "Ctrl ");
if (but->modifier_key & KM_ALT)
}
if (but->modifier_key & KM_ALT) {
str += BLI_strcpy_rlen(str, "Alt ");
if (but->modifier_key & KM_OSKEY)
}
if (but->modifier_key & KM_OSKEY) {
str += BLI_strcpy_rlen(str, "Cmd ");
}
(void)str; /* UNUSED */
}
@@ -3363,8 +3457,9 @@ static void ui_but_update_ex(uiBut *but, const bool validate)
BLI_strncpy(but->drawstr, "Press a key", UI_MAX_DRAW_STR);
}
}
else
else {
BLI_strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR);
}
break;
@@ -3378,8 +3473,9 @@ static void ui_but_update_ex(uiBut *but, const bool validate)
}
/* if we are doing text editing, this will override the drawstr */
if (but->editstr)
if (but->editstr) {
but->drawstr[0] = '\0';
}
/* text clipping moved to widget drawing code itself */
}
@@ -3397,7 +3493,9 @@ void ui_but_update_edited(uiBut *but)
void UI_block_align_begin(uiBlock *block)
{
/* if other align was active, end it */
if (block->flag & UI_BUT_ALIGN) UI_block_align_end(block);
if (block->flag & UI_BUT_ALIGN) {
UI_block_align_end(block);
}
block->flag |= UI_BUT_ALIGN_DOWN;
block->alignnr++;
@@ -3497,16 +3595,18 @@ static uiBut *ui_def_but(
but->block = block; /* pointer back, used for frontbuffer status, and picker */
if ((block->flag & UI_BUT_ALIGN) && ui_but_can_align(but))
if ((block->flag & UI_BUT_ALIGN) && ui_but_can_align(but)) {
but->alignnr = block->alignnr;
}
but->func = block->func;
but->func_arg1 = block->func_arg1;
but->func_arg2 = block->func_arg2;
but->funcN = block->funcN;
if (block->func_argN)
if (block->func_argN) {
but->func_argN = MEM_dupallocN(block->func_argN);
}
but->pos = -1; /* cursor invisible */
@@ -3565,8 +3665,9 @@ static uiBut *ui_def_but(
BLI_addtail(&block->buttons, but);
if (block->curlayout)
if (block->curlayout) {
ui_layout_add_but(block->curlayout, but);
}
#ifdef WITH_PYTHON
/* if the 'UI_OT_editsource' is running, extract the source info from the button */
@@ -3637,16 +3738,20 @@ static void ui_def_but_rna__menu(bContext *UNUSED(C), uiLayout *layout, void *bu
/* Columns and row estimation. Ignore simple separators here. */
columns = (nbr_entries_nosepr + 20) / 20;
if (columns < 1)
if (columns < 1) {
columns = 1;
if (columns > 8)
}
if (columns > 8) {
columns = (nbr_entries_nosepr + 25) / 25;
}
rows = totitems / columns;
if (rows < 1)
if (rows < 1) {
rows = 1;
while (rows * columns < totitems)
}
while (rows * columns < totitems) {
rows++;
}
if (block->flag & UI_BLOCK_NO_FLIP) {
/* Title at the top for menus with categories. */
@@ -3810,8 +3915,9 @@ static uiBut *ui_def_but_rna(
icon = RNA_property_ui_icon(prop);
}
if (!tip && proptype != PROP_ENUM)
if (!tip && proptype != PROP_ENUM) {
tip = RNA_property_ui_description(prop);
}
if (min == max || a1 == -1 || a2 == -1) {
if (proptype == PROP_INT) {
@@ -3824,10 +3930,12 @@ static uiBut *ui_def_but_rna(
min = hardmin;
max = hardmax;
}
if (a1 == -1)
if (a1 == -1) {
a1 = step;
if (a2 == -1)
}
if (a2 == -1) {
a2 = 0;
}
}
else if (proptype == PROP_FLOAT) {
float hardmin, hardmax, softmin, softmax, step, precision;
@@ -3839,10 +3947,12 @@ static uiBut *ui_def_but_rna(
min = hardmin;
max = hardmax;
}
if (a1 == -1)
if (a1 == -1) {
a1 = step;
if (a2 == -1)
}
if (a2 == -1) {
a2 = precision;
}
}
else if (proptype == PROP_STRING) {
min = 0;
@@ -3857,10 +3967,12 @@ static uiBut *ui_def_but_rna(
but->rnapoin = *ptr;
but->rnaprop = prop;
if (RNA_property_array_check(but->rnaprop))
if (RNA_property_array_check(but->rnaprop)) {
but->rnaindex = index;
else
}
else {
but->rnaindex = 0;
}
if (icon) {
ui_def_but_icon(but, icon, UI_HAS_ICON);
@@ -3922,10 +4034,12 @@ static uiBut *ui_def_but_operator_ptr(uiBlock *block, int type, wmOperatorType *
uiBut *but;
if (!str) {
if (ot && ot->srna)
if (ot && ot->srna) {
str = RNA_struct_ui_name(ot->srna);
else
}
else {
str = "";
}
}
if ((!tip || tip[0] == '\0') && ot && ot->srna) {
@@ -4009,15 +4123,17 @@ void UI_autocomplete_update_name(AutoComplete *autocpl, const char *name)
int a;
for (a = 0; a < autocpl->maxlen - 1; a++) {
if (startname[a] == 0 || startname[a] != name[a])
if (startname[a] == 0 || startname[a] != name[a]) {
break;
}
}
/* found a match */
if (startname[a] == 0) {
autocpl->matches++;
/* first match */
if (truncate[0] == 0)
if (truncate[0] == 0) {
BLI_strncpy(truncate, name, autocpl->maxlen);
}
else {
/* remove from truncate what is not in bone->name */
for (a = 0; a < autocpl->maxlen - 1; a++) {
@@ -4025,8 +4141,9 @@ void UI_autocomplete_update_name(AutoComplete *autocpl, const char *name)
truncate[a] = 0;
break;
}
else if (truncate[a] != name[a])
else if (truncate[a] != name[a]) {
truncate[a] = 0;
}
}
}
}
@@ -4131,7 +4248,9 @@ uiBut *uiDefButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext
uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x, int y, short width, short height, const char *tip)
{
wmOperatorType *ot = WM_operatortype_find(opname, 0);
if (str == NULL && ot == NULL) str = opname;
if (str == NULL && ot == NULL) {
str = opname;
}
return uiDefButO_ptr(block, type, ot, opcontext, str, x, y, width, height, tip);
}
@@ -4291,8 +4410,9 @@ 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 && str[0] == '\0')
if (str && 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);
}
@@ -4305,9 +4425,11 @@ int UI_blocklist_min_y_get(ListBase *lb)
uiBlock *block;
int min = 0;
for (block = lb->first; block; block = block->next)
if (block == lb->first || block->rect.ymin < min)
for (block = lb->first; block; block = block->next) {
if (block == lb->first || block->rect.ymin < min) {
min = block->rect.ymin;
}
}
return min;
}
@@ -4323,15 +4445,23 @@ void UI_block_order_flip(uiBlock *block)
uiBut *but;
float centy, miny = 10000, maxy = -10000;
if (U.uiflag & USER_MENUFIXEDORDER)
if (U.uiflag & USER_MENUFIXEDORDER) {
return;
else if (block->flag & UI_BLOCK_NO_FLIP)
}
else if (block->flag & UI_BLOCK_NO_FLIP) {
return;
}
for (but = block->buttons.first; but; but = but->next) {
if (but->drawflag & UI_BUT_ALIGN) return;
if (but->rect.ymin < miny) miny = but->rect.ymin;
if (but->rect.ymax > maxy) maxy = but->rect.ymax;
if (but->drawflag & UI_BUT_ALIGN) {
return;
}
if (but->rect.ymin < miny) {
miny = but->rect.ymin;
}
if (but->rect.ymax > maxy) {
maxy = but->rect.ymax;
}
}
/* mirror trick */
centy = (miny + maxy) / 2.0f;
@@ -4748,8 +4878,9 @@ void UI_but_func_search_set(
/* search buttons show red-alert if item doesn't exist, not for menus */
if (0 == (but->block->flag & UI_BLOCK_LOOP)) {
/* skip empty buttons, not all buttons need input, we only show invalid */
if (but->drawstr[0])
if (but->drawstr[0]) {
ui_but_search_refresh(but);
}
}
}
@@ -4778,8 +4909,9 @@ static void operator_enum_search_cb(const struct bContext *C, void *but, const c
/* note: need to give the index rather than the
* identifier because the enum can be freed */
if (BLI_strcasestr(item->name, str)) {
if (false == UI_search_item_add(items, item->name, POINTER_FROM_INT(item->value), item->icon))
if (false == UI_search_item_add(items, item->name, POINTER_FROM_INT(item->value), item->icon)) {
break;
}
}
}
@@ -4898,21 +5030,26 @@ void UI_but_string_info_get(bContext *C, uiBut *but, ...)
if (but->tip_func) {
tmp = but->tip_func(C, but->tip_argN, but->tip);
}
else if (but->tip && but->tip[0])
else if (but->tip && but->tip[0]) {
tmp = BLI_strdup(but->tip);
else
}
else {
type = BUT_GET_RNA_TIP; /* Fail-safe solution... */
}
}
if (type == BUT_GET_RNAPROP_IDENTIFIER) {
if (but->rnaprop)
if (but->rnaprop) {
tmp = BLI_strdup(RNA_property_identifier(but->rnaprop));
}
}
else if (type == BUT_GET_RNASTRUCT_IDENTIFIER) {
if (but->rnaprop && but->rnapoin.data)
if (but->rnaprop && but->rnapoin.data) {
tmp = BLI_strdup(RNA_struct_identifier(but->rnapoin.type));
else if (but->optype)
}
else if (but->optype) {
tmp = BLI_strdup(but->optype->idname);
}
else if (ELEM(but->type, UI_BTYPE_MENU, UI_BTYPE_PULLDOWN)) {
MenuType *mt = UI_but_menutype_get(but);
if (mt) {
@@ -4928,21 +5065,25 @@ void UI_but_string_info_get(bContext *C, uiBut *but, ...)
}
else if (ELEM(type, BUT_GET_RNA_LABEL, BUT_GET_RNA_TIP)) {
if (but->rnaprop) {
if (type == BUT_GET_RNA_LABEL)
if (type == BUT_GET_RNA_LABEL) {
tmp = BLI_strdup(RNA_property_ui_name(but->rnaprop));
}
else {
const char *t = RNA_property_ui_description(but->rnaprop);
if (t && t[0])
if (t && t[0]) {
tmp = BLI_strdup(t);
}
}
}
else if (but->optype) {
if (type == BUT_GET_RNA_LABEL)
if (type == BUT_GET_RNA_LABEL) {
tmp = BLI_strdup(RNA_struct_ui_name(but->optype->srna));
}
else {
const char *t = RNA_struct_ui_description(but->optype->srna);
if (t && t[0])
if (t && t[0]) {
tmp = BLI_strdup(t);
}
}
}
else if (ELEM(but->type, UI_BTYPE_MENU, UI_BTYPE_PULLDOWN)) {
@@ -4950,12 +5091,14 @@ void UI_but_string_info_get(bContext *C, uiBut *but, ...)
if (mt) {
/* not all menus are from python */
if (mt->ext.srna) {
if (type == BUT_GET_RNA_LABEL)
if (type == BUT_GET_RNA_LABEL) {
tmp = BLI_strdup(RNA_struct_ui_name(mt->ext.srna));
}
else {
const char *t = RNA_struct_ui_description(mt->ext.srna);
if (t && t[0])
if (t && t[0]) {
tmp = BLI_strdup(t);
}
}
}
}
@@ -4963,14 +5106,17 @@ void UI_but_string_info_get(bContext *C, uiBut *but, ...)
}
else if (type == BUT_GET_RNA_LABEL_CONTEXT) {
const char *_tmp = BLT_I18NCONTEXT_DEFAULT;
if (but->rnaprop)
if (but->rnaprop) {
_tmp = RNA_property_translation_context(but->rnaprop);
else if (but->optype)
}
else if (but->optype) {
_tmp = RNA_struct_translation_context(but->optype->srna);
}
else if (ELEM(but->type, UI_BTYPE_MENU, UI_BTYPE_PULLDOWN)) {
MenuType *mt = UI_but_menutype_get(but);
if (mt)
if (mt) {
_tmp = RNA_struct_translation_context(mt->ext.srna);
}
}
if (BLT_is_default_context(_tmp)) {
_tmp = BLT_I18NCONTEXT_DEFAULT_BPYRNA;
@@ -5017,17 +5163,21 @@ void UI_but_string_info_get(bContext *C, uiBut *but, ...)
RNA_property_enum_items_gettexted(C, ptr, prop, &items, &totitems, &free_items);
for (i = 0, item = items; i < totitems; i++, item++) {
if (item->identifier[0] && item->value == value)
if (item->identifier[0] && item->value == value) {
break;
}
}
}
if (item && item->identifier) {
if (type == BUT_GET_RNAENUM_IDENTIFIER)
if (type == BUT_GET_RNAENUM_IDENTIFIER) {
tmp = BLI_strdup(item->identifier);
else if (type == BUT_GET_RNAENUM_LABEL)
}
else if (type == BUT_GET_RNAENUM_LABEL) {
tmp = BLI_strdup(item->name);
else if (item->description && item->description[0])
}
else if (item->description && item->description[0]) {
tmp = BLI_strdup(item->description);
}
}
}
}

View File

@@ -555,8 +555,12 @@ static void ui_block_align_calc_but(uiBut *first, short nr)
for (but = first; but && but->alignnr == nr; but = but->next) {
if (but->next && but->next->alignnr == nr) {
if (buts_are_horiz(but, but->next)) cols++;
else rows++;
if (buts_are_horiz(but, but->next)) {
cols++;
}
else {
rows++;
}
}
}
@@ -565,8 +569,9 @@ static void ui_block_align_calc_but(uiBut *first, short nr)
/* note; how it uses 'flag' in loop below (either set it, or OR it) is confusing */
for (but = first, prev = NULL; but && but->alignnr == nr; prev = but, but = but->next) {
next = but->next;
if (next && next->alignnr != nr)
if (next && next->alignnr != nr) {
next = NULL;
}
/* clear old flag */
but->drawflag &= ~UI_BUT_ALIGN;
@@ -574,10 +579,12 @@ static void ui_block_align_calc_but(uiBut *first, short nr)
if (flag == 0) { /* first case */
if (next) {
if (buts_are_horiz(but, next)) {
if (rows == 0)
if (rows == 0) {
flag = UI_BUT_ALIGN_RIGHT;
else
}
else {
flag = UI_BUT_ALIGN_DOWN | UI_BUT_ALIGN_RIGHT;
}
}
else {
flag = UI_BUT_ALIGN_DOWN;
@@ -587,10 +594,12 @@ static void ui_block_align_calc_but(uiBut *first, short nr)
else if (next == NULL) { /* last case */
if (prev) {
if (buts_are_horiz(prev, but)) {
if (rows == 0)
if (rows == 0) {
flag = UI_BUT_ALIGN_LEFT;
else
}
else {
flag = UI_BUT_ALIGN_TOP | UI_BUT_ALIGN_LEFT;
}
}
else {
flag = UI_BUT_ALIGN_TOP;
@@ -611,7 +620,9 @@ static void ui_block_align_calc_but(uiBut *first, short nr)
}
bt = bt->next;
}
if (bt == NULL || bt->alignnr != nr) flag = UI_BUT_ALIGN_TOP | UI_BUT_ALIGN_RIGHT;
if (bt == NULL || bt->alignnr != nr) {
flag = UI_BUT_ALIGN_TOP | UI_BUT_ALIGN_RIGHT;
}
}
}
else {
@@ -624,8 +635,9 @@ static void ui_block_align_calc_but(uiBut *first, short nr)
}
else { /* next button switches to new row */
if (prev && buts_are_horiz(prev, but))
if (prev && buts_are_horiz(prev, but)) {
flag |= UI_BUT_ALIGN_LEFT;
}
else {
flag &= ~UI_BUT_ALIGN_LEFT;
flag |= UI_BUT_ALIGN_TOP;
@@ -633,18 +645,21 @@ static void ui_block_align_calc_but(uiBut *first, short nr)
if ((flag & UI_BUT_ALIGN_TOP) == 0) { /* still top row */
if (prev) {
if (next && buts_are_horiz(but, next))
if (next && buts_are_horiz(but, next)) {
flag = UI_BUT_ALIGN_DOWN | UI_BUT_ALIGN_LEFT | UI_BUT_ALIGN_RIGHT;
}
else {
/* last button in top row */
flag = UI_BUT_ALIGN_DOWN | UI_BUT_ALIGN_LEFT;
}
}
else
else {
flag |= UI_BUT_ALIGN_DOWN;
}
}
else
else {
flag |= UI_BUT_ALIGN_TOP;
}
}
}
@@ -674,8 +689,9 @@ static void ui_block_align_calc_but(uiBut *first, short nr)
prev->rect.ymin = but->rect.ymax;
but->rect.xmin = prev->rect.xmin;
if (next && buts_are_horiz(but, next) == 0)
if (next && buts_are_horiz(but, next) == 0) {
but->rect.xmax = prev->rect.xmax;
}
}
else {
/* the previous button is not a single one in its row */

View File

@@ -86,16 +86,19 @@ void ui_but_anim_flag(uiBut *but, float cfra)
* we need to correct the frame number to "look inside" the
* remapped action
*/
if (adt)
if (adt) {
cfra = BKE_nla_tweakedit_remap(adt, cfra, NLATIME_CONVERT_UNMAP);
}
if (fcurve_frame_has_keyframe(fcu, cfra, 0))
if (fcurve_frame_has_keyframe(fcu, cfra, 0)) {
but->flag |= UI_BUT_ANIMATED_KEY;
}
/* XXX: this feature is totally broken and useless with NLA */
if (adt == NULL || adt->nla_tracks.first == NULL) {
if (fcurve_is_changed(but->rnapoin, but->rnaprop, fcu, cfra))
if (fcurve_is_changed(but->rnapoin, but->rnaprop, fcu, cfra)) {
but->drawflag |= UI_BUT_ANIMATED_CHANGED;
}
}
}
else {
@@ -196,15 +199,17 @@ bool ui_but_anim_expression_create(uiBut *but, const char *str)
/* button must have RNA-pointer to a numeric-capable property */
if (ELEM(NULL, but->rnapoin.data, but->rnaprop)) {
if (G.debug & G_DEBUG)
if (G.debug & G_DEBUG) {
printf("ERROR: create expression failed - button has no RNA info attached\n");
}
return false;
}
if (RNA_property_array_check(but->rnaprop) != 0) {
if (but->rnaindex == -1) {
if (G.debug & G_DEBUG)
if (G.debug & G_DEBUG) {
printf("ERROR: create expression failed - can't create expression for entire array\n");
}
return false;
}
}
@@ -214,8 +219,9 @@ bool ui_but_anim_expression_create(uiBut *but, const char *str)
* don't allow drivers to be created for them */
id = (ID *)but->rnapoin.id.data;
if ((id == NULL) || (GS(id->name) == ID_MA) || (GS(id->name) == ID_TE)) {
if (G.debug & G_DEBUG)
if (G.debug & G_DEBUG) {
printf("ERROR: create expression failed - invalid data-block for adding drivers (%p)\n", id);
}
return false;
}
@@ -262,8 +268,9 @@ void ui_but_anim_autokey(bContext *C, uiBut *but, Scene *scene, float cfra)
fcu = ui_but_get_fcurve(but, NULL, &action, &driven, &special);
if (fcu == NULL)
if (fcu == NULL) {
return;
}
if (special) {
/* NLA Strip property */

View File

@@ -139,8 +139,9 @@ static uiBlock *menu_add_shortcut(bContext *C, ARegion *ar, void *arg)
kmi_id = kmi->id;
/* copy properties, prop can be NULL for reset */
if (prop)
if (prop) {
prop = IDP_CopyProperty(prop);
}
WM_keymap_properties_reset(kmi, prop);
/* update and get pointers again */
@@ -407,8 +408,9 @@ bool ui_popup_context_menu_for_button(bContext *C, uiBut *but)
/* second slower test,
* saved people finding keyframe items in menus when its not possible */
if (is_anim)
if (is_anim) {
is_anim = RNA_property_path_from_ID_check(&but->rnapoin, but->rnaprop);
}
/* determine if we can key a single component of an array */
const bool is_array = RNA_property_array_length(&but->rnapoin, but->rnaprop) != 0;

View File

@@ -637,7 +637,9 @@ void ui_draw_but_IMAGE(ARegion *UNUSED(ar), uiBut *but, const uiWidgetColors *UN
#else
ImBuf *ibuf = (ImBuf *)but->poin;
if (!ibuf) return;
if (!ibuf) {
return;
}
float facx = 1.0f;
float facy = 1.0f;
@@ -732,8 +734,9 @@ static void histogram_draw_one(
float color[4] = {r, g, b, alpha};
/* that can happen */
if (res == 0)
if (res == 0) {
return;
}
GPU_line_smooth(true);
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE, GL_ONE, GL_ONE);
@@ -846,12 +849,15 @@ void ui_draw_but_HISTOGRAM(ARegion *UNUSED(ar), uiBut *but, const uiWidgetColors
histogram_draw_one(1.0, 1.0, 1.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_a, res, is_line, pos);
}
else {
if (hist->mode == HISTO_MODE_RGB || hist->mode == HISTO_MODE_R)
if (hist->mode == HISTO_MODE_RGB || hist->mode == HISTO_MODE_R) {
histogram_draw_one(1.0, 0.0, 0.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_r, res, is_line, pos);
if (hist->mode == HISTO_MODE_RGB || hist->mode == HISTO_MODE_G)
}
if (hist->mode == HISTO_MODE_RGB || hist->mode == HISTO_MODE_G) {
histogram_draw_one(0.0, 1.0, 0.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_g, res, is_line, pos);
if (hist->mode == HISTO_MODE_RGB || hist->mode == HISTO_MODE_B)
}
if (hist->mode == HISTO_MODE_RGB || hist->mode == HISTO_MODE_B) {
histogram_draw_one(0.0, 0.0, 1.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_b, res, is_line, pos);
}
}
immUnbindProgram();
@@ -891,7 +897,9 @@ void ui_draw_but_WAVEFORM(ARegion *UNUSED(ar), uiBut *but, const uiWidgetColors
float colors_alpha[3][3], colorsycc_alpha[3][3];
float min, max;
if (scopes == NULL) return;
if (scopes == NULL) {
return;
}
rctf rect = {
.xmin = (float)recti->xmin + 1,
@@ -900,8 +908,9 @@ void ui_draw_but_WAVEFORM(ARegion *UNUSED(ar), uiBut *but, const uiWidgetColors
.ymax = (float)recti->ymax - 1,
};
if (scopes->wavefrm_yfac < 0.5f)
if (scopes->wavefrm_yfac < 0.5f) {
scopes->wavefrm_yfac = 0.98f;
}
float w = BLI_rctf_size_x(&rect) - 7;
float h = BLI_rctf_size_y(&rect) * scopes->wavefrm_yfac;
float yofs = rect.ymin + (BLI_rctf_size_y(&rect) - h) * 0.5f;
@@ -1083,10 +1092,12 @@ void ui_draw_but_WAVEFORM(ARegion *UNUSED(ar), uiBut *but, const uiWidgetColors
/* min max */
if (scopes->wavefrm_mode != SCOPES_WAVEFRM_LUMA ) {
for (int c = 0; c < 3; c++) {
if (ELEM(scopes->wavefrm_mode, SCOPES_WAVEFRM_RGB_PARADE, SCOPES_WAVEFRM_RGB))
if (ELEM(scopes->wavefrm_mode, SCOPES_WAVEFRM_RGB_PARADE, SCOPES_WAVEFRM_RGB)) {
immUniformColor3f(colors[c][0] * 0.75f, colors[c][1] * 0.75f, colors[c][2] * 0.75f);
else
}
else {
immUniformColor3f(colorsycc[c][0] * 0.75f, colorsycc[c][1] * 0.75f, colorsycc[c][2] * 0.75f);
}
min = yofs + scopes->minmax[c][0] * h;
max = yofs + scopes->minmax[c][1] * h;
CLAMP(min, rect.ymin, rect.ymax);
@@ -1125,11 +1136,22 @@ static void vectorscope_draw_target(uint pos, float centerx, float centery, floa
float dangle, dampli, dangle2, dampli2;
rgb_to_yuv(colf[0], colf[1], colf[2], &y, &u, &v, BLI_YUV_ITU_BT709);
if (u > 0 && v >= 0) tangle = atanf(v / u);
else if (u > 0 && v < 0) tangle = atanf(v / u) + 2.0f * (float)M_PI;
else if (u < 0) tangle = atanf(v / u) + (float)M_PI;
else if (u == 0 && v > 0.0f) tangle = M_PI_2;
else if (u == 0 && v < 0.0f) tangle = -M_PI_2;
if (u > 0 && v >= 0) {
tangle = atanf(v / u);
}
else if (u > 0 && v < 0) {
tangle = atanf(v / u) + 2.0f * (float)M_PI;
}
else if (u < 0) {
tangle = atanf(v / u) + (float)M_PI;
}
else if (u == 0 && v > 0.0f) {
tangle = M_PI_2;
}
else if (u == 0 && v < 0.0f) {
tangle = -M_PI_2;
}
tampli = sqrtf(u * u + v * v);
/* small target vary by 2.5 degree and 2.5 IRE unit */
@@ -1249,8 +1271,9 @@ void ui_draw_but_VECTORSCOPE(ARegion *UNUSED(ar), uiBut *but, const uiWidgetColo
immEnd();
/* saturation points */
for (int i = 0; i < 6; i++)
for (int i = 0; i < 6; i++) {
vectorscope_draw_target(pos, centerx, centery, diam, colors[i]);
}
if (scopes->ok && scopes->vecscope != NULL) {
/* pixel point cloud */
@@ -1380,16 +1403,20 @@ static void ui_draw_colorband_handle(
ui_draw_colorband_handle_tri(shdr_pos, x, y1 + height, half_width, half_width, true);
if (active)
if (active) {
immUniformColor3ub(196, 196, 196);
else
}
else {
immUniformColor3ub(96, 96, 96);
}
ui_draw_colorband_handle_tri(shdr_pos, x, y1 + height, half_width, half_width, true);
if (active)
if (active) {
immUniformColor3ub(255, 255, 255);
else
}
else {
immUniformColor3ub(128, 128, 128);
}
ui_draw_colorband_handle_tri_hlight(shdr_pos, x, y1 + height - 1, (half_width - 1), (half_width - 1));
immUniformColor3ub(0, 0, 0);
@@ -1414,7 +1441,9 @@ void ui_draw_but_COLORBAND(uiBut *but, const uiWidgetColors *UNUSED(wcol), const
uint pos_id, col_id;
ColorBand *coba = (ColorBand *)(but->editcoba ? but->editcoba : but->poin);
if (coba == NULL) return;
if (coba == NULL) {
return;
}
float x1 = rect->xmin;
float sizex = rect->xmax - x1;
@@ -1454,8 +1483,9 @@ void ui_draw_but_COLORBAND(uiBut *but, const uiWidgetColors *UNUSED(wcol), const
for (int a = 0; a <= sizex; a++) {
float pos = ((float)a) / sizex;
BKE_colorband_evaluate(coba, pos, colf);
if (display)
if (display) {
IMB_colormanagement_scene_linear_to_display_v3(colf, display);
}
v1[0] = v2[0] = x1 + a;
@@ -1473,8 +1503,9 @@ void ui_draw_but_COLORBAND(uiBut *but, const uiWidgetColors *UNUSED(wcol), const
for (int a = 0; a <= sizex; a++) {
float pos = ((float)a) / sizex;
BKE_colorband_evaluate(coba, pos, colf);
if (display)
if (display) {
IMB_colormanagement_scene_linear_to_display_v3(colf, display);
}
v1[0] = v2[0] = x1 + a;
@@ -1553,10 +1584,12 @@ void ui_draw_but_UNITVEC(uiBut *but, const uiWidgetColors *wcol, const rcti *rec
/* transform to button */
GPU_matrix_push();
if (BLI_rcti_size_x(rect) < BLI_rcti_size_y(rect))
if (BLI_rcti_size_x(rect) < BLI_rcti_size_y(rect)) {
size = 0.5f * BLI_rcti_size_x(rect);
else
}
else {
size = 0.5f * BLI_rcti_size_y(rect);
}
GPU_matrix_translate_2f(rect->xmin + 0.5f * BLI_rcti_size_x(rect), rect->ymin + 0.5f * BLI_rcti_size_y(rect));
GPU_matrix_scale_1f(size);
@@ -1592,11 +1625,15 @@ static void ui_draw_but_curve_grid(uint pos, const rcti *rect, float zoomx, floa
{
float dx = step * zoomx;
float fx = rect->xmin + zoomx * (-offsx);
if (fx > rect->xmin) fx -= dx * (floorf(fx - rect->xmin));
if (fx > rect->xmin) {
fx -= dx * (floorf(fx - rect->xmin));
}
float dy = step * zoomy;
float fy = rect->ymin + zoomy * (-offsy);
if (fy > rect->ymin) fy -= dy * (floorf(fy - rect->ymin));
if (fy > rect->ymin) {
fy -= dy * (floorf(fy - rect->ymin));
}
float line_count = (
floorf((rect->xmax - fx) / dx) + 1.0f +
@@ -1775,12 +1812,15 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, const uiWidgetColors *wcol, cons
immVertex2f(pos, rect->xmin + zoomx * (lum - offsx), rect->ymax);
}
else {
if (cumap->cur == 0)
if (cumap->cur == 0) {
immUniformColor3ub(240, 100, 100);
else if (cumap->cur == 1)
}
else if (cumap->cur == 1) {
immUniformColor3ub(100, 240, 100);
else
}
else {
immUniformColor3ub(100, 100, 240);
}
immVertex2f(pos, rect->xmin + zoomx * (cumap->sample[cumap->cur] - offsx), rect->ymin);
immVertex2f(pos, rect->xmin + zoomx * (cumap->sample[cumap->cur] - offsx), rect->ymax);
@@ -1791,8 +1831,9 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, const uiWidgetColors *wcol, cons
if (cuma->table == NULL)
if (cuma->table == NULL) {
curvemapping_changed(cumap, false);
}
CurveMapPoint *cmp = cuma->table;
rctf line_range;
@@ -1937,8 +1978,9 @@ void ui_draw_but_TRACKPREVIEW(ARegion *UNUSED(ar), uiBut *but, const uiWidgetCol
((!scopes->track_preview) ||
(scopes->track_preview->x != width || scopes->track_preview->y != height)))
{
if (scopes->track_preview)
if (scopes->track_preview) {
IMB_freeImBuf(scopes->track_preview);
}
ImBuf *tmpibuf = BKE_tracking_sample_pattern(
scopes->frame_width, scopes->frame_height,
@@ -1946,13 +1988,16 @@ void ui_draw_but_TRACKPREVIEW(ARegion *UNUSED(ar), uiBut *but, const uiWidgetCol
&scopes->undist_marker, true, scopes->use_track_mask,
width, height, scopes->track_pos);
if (tmpibuf) {
if (tmpibuf->rect_float)
if (tmpibuf->rect_float) {
IMB_rect_from_float(tmpibuf);
}
if (tmpibuf->rect)
if (tmpibuf->rect) {
scopes->track_preview = tmpibuf;
else
}
else {
IMB_freeImBuf(tmpibuf);
}
}
}
@@ -2001,10 +2046,12 @@ void ui_draw_but_TRACKPREVIEW(ARegion *UNUSED(ar), uiBut *but, const uiWidgetCol
float x2 = pos_sel[i + 1] * (1 - axe);
float y2 = pos_sel[i + 1] * axe;
if (i % 2 == 1)
if (i % 2 == 1) {
immAttr4fv(col, col_sel);
else
}
else {
immAttr4fv(col, col_outline);
}
immVertex2f(pos, x1, y1);
immVertex2f(pos, x2, y2);
@@ -2082,16 +2129,18 @@ void ui_draw_but_NODESOCKET(ARegion *ar, uiBut *but, const uiWidgetColors *UNUSE
GPU_blend(true);
immBegin(GPU_PRIM_TRI_FAN, 16);
for (int a = 0; a < 16; a++)
for (int a = 0; a < 16; a++) {
immVertex2f(pos, x + size * si[a], y + size * co[a]);
}
immEnd();
immUniformColor4ub(0, 0, 0, 150);
GPU_line_width(1);
GPU_line_smooth(true);
immBegin(GPU_PRIM_LINE_LOOP, 16);
for (int a = 0; a < 16; a++)
for (int a = 0; a < 16; a++) {
immVertex2f(pos, x + size * si[a], y + size * co[a]);
}
immEnd();
GPU_line_smooth(false);
GPU_blend(false);
@@ -2200,10 +2249,12 @@ void ui_draw_dropshadow(const rctf *rct, float radius, float aspect, float alpha
{
float rad;
if (radius > (BLI_rctf_size_y(rct) - 10.0f) * 0.5f)
if (radius > (BLI_rctf_size_y(rct) - 10.0f) * 0.5f) {
rad = (BLI_rctf_size_y(rct) - 10.0f) * 0.5f;
else
}
else {
rad = radius;
}
int a, i = 12;
#if 0

View File

@@ -58,8 +58,9 @@ wmKeyMap *eyedropper_modal_keymap(wmKeyConfig *keyconf)
wmKeyMap *keymap = WM_modalkeymap_get(keyconf, "Eyedropper Modal Map");
/* this function is called for each spacetype, only needs to add map once */
if (keymap && keymap->modal_items)
if (keymap && keymap->modal_items) {
return NULL;
}
keymap = WM_modalkeymap_add(keyconf, "Eyedropper Modal Map", modal_items);
@@ -84,8 +85,9 @@ wmKeyMap *eyedropper_colorband_modal_keymap(wmKeyConfig *keyconf)
};
wmKeyMap *keymap = WM_modalkeymap_get(keyconf, "Eyedropper ColorRamp PointSampling Map");
if (keymap && keymap->modal_items)
if (keymap && keymap->modal_items) {
return keymap;
}
keymap = WM_modalkeymap_add(keyconf, "Eyedropper ColorRamp PointSampling Map", modal_items_point);

View File

@@ -134,10 +134,12 @@ static void driverdropper_sample(bContext *C, wmOperator *op, const wmEvent *eve
}
/* cleanup */
if (target_path)
if (target_path) {
MEM_freeN(target_path);
if (dst_path)
}
if (dst_path) {
MEM_freeN(dst_path);
}
}
}
@@ -207,8 +209,12 @@ static int driverdropper_exec(bContext *C, wmOperator *op)
static bool driverdropper_poll(bContext *C)
{
if (!CTX_wm_window(C)) return 0;
else return 1;
if (!CTX_wm_window(C)) {
return 0;
}
else {
return 1;
}
}
void UI_OT_eyedropper_driver(wmOperatorType *ot)

File diff suppressed because it is too large Load Diff

View File

@@ -206,8 +206,9 @@ static DrawInfo *def_internal_icon(ImBuf *bbuf, int icon_id, int xofs, int yofs,
iimg->rect = MEM_mallocN(size * size * sizeof(uint), "icon_rect");
/* Here we store the rect in the icon - same as before */
if (size == bbuf->x && size == bbuf->y && xofs == 0 && yofs == 0)
if (size == bbuf->x && size == bbuf->y && xofs == 0 && yofs == 0) {
memcpy(iimg->rect, bbuf->rect, size * size * sizeof(int));
}
else {
/* this code assumes square images */
imgsize = bbuf->x;
@@ -674,15 +675,17 @@ static void init_event_icons(void)
static void icon_verify_datatoc(IconImage *iimg)
{
/* if it has own rect, things are all OK */
if (iimg->rect)
if (iimg->rect) {
return;
}
if (iimg->datatoc_rect) {
ImBuf *bbuf = IMB_ibImageFromMemory(iimg->datatoc_rect,
iimg->datatoc_size, IB_rect, NULL, "<matcap icon>");
/* w and h were set on initialize */
if (bbuf->x != iimg->h && bbuf->y != iimg->w)
if (bbuf->x != iimg->h && bbuf->y != iimg->w) {
IMB_scaleImBuf(bbuf, iimg->w, iimg->h);
}
iimg->rect = bbuf->rect;
bbuf->rect = NULL;
@@ -718,17 +721,21 @@ static void init_internal_icons(void)
}
}
#endif
if (b16buf == NULL)
if (b16buf == NULL) {
b16buf = IMB_ibImageFromMemory((const uchar *)datatoc_blender_icons16_png,
datatoc_blender_icons16_png_size, IB_rect, NULL, "<blender icons>");
if (b16buf)
}
if (b16buf) {
IMB_premultiply_alpha(b16buf);
}
if (b32buf == NULL)
if (b32buf == NULL) {
b32buf = IMB_ibImageFromMemory((const uchar *)datatoc_blender_icons32_png,
datatoc_blender_icons32_png_size, IB_rect, NULL, "<blender icons>");
if (b32buf)
}
if (b32buf) {
IMB_premultiply_alpha(b32buf);
}
if (b16buf && b32buf) {
/* Free existing texture if any. */
@@ -835,8 +842,9 @@ static void init_iconfile_list(struct ListBase *list)
BLI_listbase_clear(list);
icondir = BKE_appdir_folder_id(BLENDER_DATAFILES, "icons");
if (icondir == NULL)
if (icondir == NULL) {
return;
}
totfile = BLI_filelist_dir_contents(icondir, &dir);
@@ -944,8 +952,9 @@ void UI_icons_free_drawinfo(void *drawinfo)
if (di) {
if (di->type == ICON_TYPE_BUFFER) {
if (di->data.buffer.image) {
if (di->data.buffer.image->rect)
if (di->data.buffer.image->rect) {
MEM_freeN(di->data.buffer.image->rect);
}
MEM_freeN(di->data.buffer.image);
}
}
@@ -1008,8 +1017,9 @@ int UI_icon_get_width(int icon_id)
icon = BKE_icon_get(icon_id);
if (icon == NULL) {
if (G.debug & G_DEBUG)
if (G.debug & G_DEBUG) {
printf("%s: Internal error, no icon for icon ID: %d\n", __func__, icon_id);
}
return 0;
}
@@ -1025,8 +1035,9 @@ int UI_icon_get_height(int icon_id)
{
Icon *icon = BKE_icon_get(icon_id);
if (icon == NULL) {
if (G.debug & G_DEBUG)
if (G.debug & G_DEBUG) {
printf("%s: Internal error, no icon for icon ID: %d\n", __func__, icon_id);
}
return 0;
}
@@ -1069,8 +1080,9 @@ static void icon_create_rect(struct PreviewImage *prv_img, enum eIconSizes size)
uint render_size = UI_preview_render_size(size);
if (!prv_img) {
if (G.debug & G_DEBUG)
if (G.debug & G_DEBUG) {
printf("%s, error: requested preview image does not exist", __func__);
}
}
else if (!prv_img->rect[size]) {
prv_img->w[size] = render_size;
@@ -1105,8 +1117,9 @@ static void ui_studiolight_free_function(StudioLight *sl, void *data)
wmWindowManager *wm = data;
/* Happens if job was canceled or already finished. */
if (wm == NULL)
if (wm == NULL) {
return;
}
// get icons_id, get icons and kill wm jobs
if (sl->icon_id_radiance) {
@@ -1195,8 +1208,9 @@ static void icon_set_image(
const bContext *C, Scene *scene, ID *id, PreviewImage *prv_img, enum eIconSizes size, const bool use_job)
{
if (!prv_img) {
if (G.debug & G_DEBUG)
if (G.debug & G_DEBUG) {
printf("%s: no preview image for this ID: %s\n", __func__, id->name);
}
return;
}
@@ -1321,8 +1335,9 @@ static void icon_draw_rect(float x, float y, int w, int h, float UNUSED(aspect),
immDrawPixelsTex(&state, draw_x, draw_y, draw_w, draw_h, GL_RGBA, GL_UNSIGNED_BYTE, GL_NEAREST, rect,
1.0f, 1.0f, col);
if (ima)
if (ima) {
IMB_freeImBuf(ima);
}
}
/* High enough to make a difference, low enough so that
@@ -1353,8 +1368,9 @@ void UI_icon_draw_cache_begin(void)
static void icon_draw_cache_flush_ex(void)
{
if (g_icon_draw_cache.calls == 0)
if (g_icon_draw_cache.calls == 0) {
return;
}
/* We need to flush widget base first to ensure correct ordering. */
UI_widgetbase_draw_cache_flush();
@@ -1388,8 +1404,9 @@ void UI_icon_draw_cache_end(void)
g_icon_draw_cache.enabled = false;
/* Don't change blend state if it's not needed. */
if (g_icon_draw_cache.calls == 0)
if (g_icon_draw_cache.calls == 0) {
return;
}
GPU_blend(true);
icon_draw_cache_flush_ex();
@@ -1418,8 +1435,12 @@ static void icon_draw_texture_cached(
call->tex.ymin = iy * icongltex.invh;
call->tex.ymax = (iy + ih) * icongltex.invh;
if (rgb) copy_v4_fl4(call->color, rgb[0], rgb[1], rgb[2], alpha);
else copy_v4_fl(call->color, alpha);
if (rgb) {
copy_v4_fl4(call->color, rgb[0], rgb[1], rgb[2], alpha);
}
else {
copy_v4_fl(call->color, alpha);
}
if (g_icon_draw_cache.calls == ICON_DRAW_CACHE_SIZE) {
icon_draw_cache_flush_ex();
@@ -1453,8 +1474,12 @@ static void icon_draw_texture(
GPUShader *shader = GPU_shader_get_builtin_shader(GPU_SHADER_2D_IMAGE_RECT_COLOR);
GPU_shader_bind(shader);
if (rgb) glUniform4f(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_COLOR), rgb[0], rgb[1], rgb[2], alpha);
else glUniform4f(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_COLOR), alpha, alpha, alpha, alpha);
if (rgb) {
glUniform4f(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_COLOR), rgb[0], rgb[1], rgb[2], alpha);
}
else {
glUniform4f(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_COLOR), alpha, alpha, alpha, alpha);
}
glUniform1i(GPU_shader_get_uniform_ensure(shader, "image"), 0);
glUniform4f(GPU_shader_get_uniform_ensure(shader, "rect_icon"), x1, y1, x2, y2);
@@ -1496,8 +1521,9 @@ static void icon_draw_size(
alpha *= btheme->tui.icon_alpha;
if (icon == NULL) {
if (G.debug & G_DEBUG)
if (G.debug & G_DEBUG) {
printf("%s: Internal error, no icon for icon ID: %d\n", __func__, icon_id);
}
return;
}
@@ -1583,7 +1609,10 @@ static void icon_draw_size(
#ifndef WITH_HEADLESS
icon_verify_datatoc(iimg);
#endif
if (!iimg->rect) return; /* something has gone wrong! */
if (!iimg->rect) {
/* something has gone wrong! */
return;
}
icon_draw_rect(x, y, w, h, aspect, iimg->w, iimg->h, iimg->rect, alpha, rgb, desaturate);
}
@@ -1592,7 +1621,10 @@ static void icon_draw_size(
if (pi) {
/* no create icon on this level in code */
if (!pi->rect[size]) return; /* something has gone wrong! */
if (!pi->rect[size]) {
/* Something has gone wrong! */
return;
}
/* Preview images use premultiplied alpha. */
GPU_blend_set_func_separate(GPU_ONE, GPU_ONE_MINUS_SRC_ALPHA, GPU_ONE, GPU_ONE_MINUS_SRC_ALPHA);
@@ -1643,8 +1675,9 @@ static void ui_id_icon_render(const bContext *C, ID *id, bool use_jobs)
PreviewImage *pi = BKE_previewimg_id_ensure(id);
enum eIconSizes i;
if (!pi)
if (!pi) {
return;
}
for (i = 0; i < NUM_ICON_SIZES; i++) {
/* check if rect needs to be created; changed
@@ -1809,8 +1842,9 @@ int UI_rnaptr_icon_get(bContext *C, PointerRNA *ptr, int rnaicon, const bool big
{
ID *id = NULL;
if (!ptr->data)
if (!ptr->data) {
return rnaicon;
}
/* try ID, material, texture or dynapaint slot */
if (RNA_struct_is_ID(ptr->type)) {
@@ -1825,12 +1859,15 @@ int UI_rnaptr_icon_get(bContext *C, PointerRNA *ptr, int rnaicon, const bool big
else if (RNA_struct_is_a(ptr->type, &RNA_DynamicPaintSurface)) {
DynamicPaintSurface *surface = ptr->data;
if (surface->format == MOD_DPAINT_SURFACE_F_PTEX)
if (surface->format == MOD_DPAINT_SURFACE_F_PTEX) {
return ICON_SHADING_TEXTURE;
else if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX)
}
else if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX) {
return ICON_OUTLINER_DATA_MESH;
else if (surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ)
}
else if (surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ) {
return ICON_FILE_IMAGE;
}
}
else if (RNA_struct_is_a(ptr->type, &RNA_StudioLight)) {
StudioLight *sl = ptr->data;

View File

@@ -236,8 +236,9 @@ static int ui_item_fit(int item, int pos, int all, int available, bool is_last,
if (all > available) {
/* contents is bigger than available space */
if (is_last)
if (is_last) {
return available - pos;
}
else {
float width = *extra_pixel + (item * available) / (float)all;
*extra_pixel = width - (int)width;
@@ -247,8 +248,9 @@ static int ui_item_fit(int item, int pos, int all, int available, bool is_last,
else {
/* contents is smaller or equal to available space */
if (alignment == UI_LAYOUT_ALIGN_EXPAND) {
if (is_last)
if (is_last) {
return available - pos;
}
else {
float width = *extra_pixel + (item * available) / (float)all;
*extra_pixel = width - (int)width;
@@ -286,8 +288,9 @@ static int ui_text_icon_width(uiLayout *layout, const char *name, int icon, bool
bool variable;
const int unit_x = UI_UNIT_X * (layout->scale[0] ? layout->scale[0] : 1.0f);
if (icon && !name[0])
if (icon && !name[0]) {
return unit_x; /* icon only */
}
variable = ui_layout_variable_size(layout);
@@ -315,14 +318,22 @@ static void ui_item_size(uiItem *item, int *r_w, int *r_h)
if (item->type == ITEM_BUTTON) {
uiButtonItem *bitem = (uiButtonItem *)item;
if (r_w) *r_w = BLI_rctf_size_x(&bitem->but->rect);
if (r_h) *r_h = BLI_rctf_size_y(&bitem->but->rect);
if (r_w) {
*r_w = BLI_rctf_size_x(&bitem->but->rect);
}
if (r_h) {
*r_h = BLI_rctf_size_y(&bitem->but->rect);
}
}
else {
uiLayout *litem = (uiLayout *)item;
if (r_w) *r_w = litem->w;
if (r_h) *r_h = litem->h;
if (r_w) {
*r_w = litem->w;
}
if (r_h) {
*r_h = litem->h;
}
}
}
@@ -331,12 +342,20 @@ static void ui_item_offset(uiItem *item, int *r_x, int *r_y)
if (item->type == ITEM_BUTTON) {
uiButtonItem *bitem = (uiButtonItem *)item;
if (r_x) *r_x = bitem->but->rect.xmin;
if (r_y) *r_y = bitem->but->rect.ymin;
if (r_x) {
*r_x = bitem->but->rect.xmin;
}
if (r_y) {
*r_y = bitem->but->rect.ymin;
}
}
else {
if (r_x) *r_x = 0;
if (r_y) *r_y = 0;
if (r_x) {
*r_x = 0;
}
if (r_y) {
*r_y = 0;
}
}
}
@@ -375,10 +394,12 @@ static void ui_item_move(uiItem *item, int delta_xmin, int delta_xmax)
else {
uiLayout *litem = (uiLayout *)item;
if (delta_xmin > 0)
if (delta_xmin > 0) {
litem->x += delta_xmin;
else
}
else {
litem->w += delta_xmax;
}
}
}
@@ -406,10 +427,12 @@ static uiLayout *ui_item_local_sublayout(uiLayout *test, uiLayout *layout, bool
{
uiLayout *sub;
if (uiLayoutGetLocalDir(test) == UI_LAYOUT_HORIZONTAL)
if (uiLayoutGetLocalDir(test) == UI_LAYOUT_HORIZONTAL) {
sub = uiLayoutRow(layout, align);
else
}
else {
sub = uiLayoutColumn(layout, align);
}
sub->space = 0;
return sub;
@@ -428,14 +451,17 @@ static void ui_layer_but_cb(bContext *C, void *arg_but, void *arg_index)
if (!shift) {
RNA_property_boolean_set_index(ptr, prop, index, true);
for (i = 0; i < len; i++)
if (i != index)
for (i = 0; i < len; i++) {
if (i != index) {
RNA_property_boolean_set_index(ptr, prop, i, 0);
}
}
RNA_property_update(C, ptr, prop);
for (cbut = but->block->buttons.first; cbut; cbut = cbut->next)
for (cbut = but->block->buttons.first; cbut; cbut = cbut->next) {
ui_but_update(cbut);
}
}
}
@@ -504,36 +530,42 @@ static void ui_item_array(
const uint layer_flag = (1u << layer_num);
if (layer_used & layer_flag) {
if (layer_active & layer_flag)
if (layer_active & layer_flag) {
icon = ICON_LAYER_ACTIVE;
else
}
else {
icon = ICON_LAYER_USED;
}
}
else {
icon = ICON_BLANK1;
}
but = uiDefAutoButR(block, ptr, prop, layer_num, "", icon, x + butw * a, y + buth, butw, buth);
if (subtype == PROP_LAYER_MEMBER)
if (subtype == PROP_LAYER_MEMBER) {
UI_but_func_set(but, ui_layer_but_cb, but, POINTER_FROM_INT(layer_num));
}
}
for (a = 0; a < colbuts; a++) {
const int layer_num = a + len / 2 + b * colbuts;
const uint layer_flag = (1u << layer_num);
if (layer_used & layer_flag) {
if (layer_active & layer_flag)
if (layer_active & layer_flag) {
icon = ICON_LAYER_ACTIVE;
else
}
else {
icon = ICON_LAYER_USED;
}
}
else {
icon = ICON_BLANK1;
}
but = uiDefAutoButR(block, ptr, prop, layer_num, "", icon, x + butw * a, y, butw, buth);
if (subtype == PROP_LAYER_MEMBER)
if (subtype == PROP_LAYER_MEMBER) {
UI_but_func_set(but, ui_layer_but_cb, but, POINTER_FROM_INT(layer_num));
}
}
UI_block_align_end(block);
@@ -547,7 +579,10 @@ static void ui_item_array(
UI_block_layout_set_current(block, uiLayoutAbsolute(layout, true));
totdim = RNA_property_array_dimension(ptr, prop, dim_size);
if (totdim != 2) return; /* only 2D matrices supported in UI so far */
if (totdim != 2) {
/* Only 2D matrices supported in UI so far. */
return;
}
w /= dim_size[0];
/* h /= dim_size[1]; */ /* UNUSED */
@@ -557,8 +592,9 @@ static void ui_item_array(
row = a / dim_size[0];
but = uiDefAutoButR(block, ptr, prop, a, "", ICON_NONE, x + w * col, y + (dim_size[1] * UI_UNIT_Y) - (row * UI_UNIT_Y), w, UI_UNIT_Y);
if (slider && but->type == UI_BTYPE_NUM)
if (slider && but->type == UI_BTYPE_NUM) {
but->type = UI_BTYPE_NUM_SLIDER;
}
}
}
else if (subtype == PROP_DIRECTION && !expand) {
@@ -608,12 +644,15 @@ static void ui_item_array(
min_ii(w, ui_text_icon_width(layout, str_buf, icon, false)) : w);
but = uiDefAutoButR(block, ptr, prop, a, str_buf, icon, 0, 0, width_item, UI_UNIT_Y);
if (slider && but->type == UI_BTYPE_NUM)
if (slider && but->type == UI_BTYPE_NUM) {
but->type = UI_BTYPE_NUM_SLIDER;
if (toggle && but->type == UI_BTYPE_CHECKBOX)
}
if (toggle && but->type == UI_BTYPE_CHECKBOX) {
but->type = UI_BTYPE_TOGGLE;
if ((a == 0) && (subtype == PROP_AXISANGLE))
}
if ((a == 0) && (subtype == PROP_AXISANGLE)) {
UI_but_unit_type_set(but, PROP_UNIT_ROTATION);
}
}
if (boolarr) {
@@ -665,10 +704,12 @@ static void ui_item_enum_expand_exec(
BLI_assert(RNA_property_type(prop) == PROP_ENUM);
if (radial)
if (radial) {
RNA_property_enum_items_gettexted_all(block->evil_C, ptr, prop, &item_array, NULL, &free);
else
}
else {
RNA_property_enum_items_gettexted(block->evil_C, ptr, prop, &item_array, NULL, &free);
}
/* we dont want nested rows, cols in menus */
if (radial) {
@@ -721,12 +762,15 @@ static void ui_item_enum_expand_exec(
value = item->value;
itemw = ui_text_icon_width(block->curlayout, icon_only ? "" : name, icon, 0);
if (icon && name[0] && !icon_only)
if (icon && name[0] && !icon_only) {
but = uiDefIconTextButR_prop(block, but_type, 0, icon, name, 0, 0, itemw, h, ptr, prop, -1, 0, value, -1, -1, NULL);
else if (icon)
}
else if (icon) {
but = uiDefIconButR_prop(block, but_type, 0, icon, 0, 0, (is_first) ? itemw : ceilf(itemw - U.pixelsize), h, ptr, prop, -1, 0, value, -1, -1, NULL);
else
}
else {
but = uiDefButR_prop(block, but_type, 0, name, 0, 0, itemw, h, ptr, prop, -1, 0, value, -1, -1, NULL);
}
if (RNA_property_flag(prop) & PROP_ENUM_FLAG) {
/* If this is set, assert since we're clobbering someone elses callback. */
@@ -734,8 +778,9 @@ static void ui_item_enum_expand_exec(
UI_but_func_set(but, ui_item_enum_expand_handle, but, POINTER_FROM_INT(value));
}
if (uiLayoutGetLocalDir(layout) != UI_LAYOUT_HORIZONTAL)
if (uiLayoutGetLocalDir(layout) != UI_LAYOUT_HORIZONTAL) {
but->drawflag |= UI_BUT_TEXT_LEFT;
}
/* Allow quick, inaccurate swipe motions to switch tabs
* (no need to keep cursor over them). */
@@ -849,8 +894,9 @@ static uiBut *ui_item_with_label(
but = uiDefButR_prop(block, UI_BTYPE_HOTKEY_EVENT, 0, buf, x, y, prop_but_width, h, ptr, prop, 0, 0, 0, -1, -1, NULL);
UI_but_func_set(but, ui_keymap_but_cb, but, NULL);
if (flag & UI_ITEM_R_IMMEDIATE)
if (flag & UI_ITEM_R_IMMEDIATE) {
UI_but_flag_enable(but, UI_BUT_IMMEDIATE);
}
}
}
else {
@@ -887,8 +933,9 @@ void UI_context_active_but_prop_get_filebrowser(
*r_prop = NULL;
*r_is_undo = false;
if (!ar)
if (!ar) {
return;
}
for (block = ar->uiblocks.first; block; block = block->next) {
for (but = block->buttons.first; but; but = but->next) {
@@ -932,8 +979,9 @@ static void ui_item_disabled(uiLayout *layout, const char *name)
UI_block_layout_set_current(block, layout);
if (!name)
if (!name) {
name = "";
}
w = ui_text_icon_width(layout, name, 0, 0);
@@ -958,14 +1006,17 @@ static uiBut *uiItemFullO_ptr_ex(
int w;
if (!name) {
if (ot && ot->srna && (flag & UI_ITEM_R_ICON_ONLY) == 0)
if (ot && ot->srna && (flag & UI_ITEM_R_ICON_ONLY) == 0) {
name = RNA_struct_ui_name(ot->srna);
else
}
else {
name = "";
}
}
if (layout->root->type == UI_LAYOUT_MENU && !icon)
if (layout->root->type == UI_LAYOUT_MENU && !icon) {
icon = ICON_BLANK1;
}
/* create button */
UI_block_layout_set_current(block, layout);
@@ -993,8 +1044,9 @@ static uiBut *uiItemFullO_ptr_ex(
assert(but->optype != NULL);
/* text alignment for toolbar buttons */
if ((layout->root->type == UI_LAYOUT_TOOLBAR) && !icon)
if ((layout->root->type == UI_LAYOUT_TOOLBAR) && !icon) {
but->drawflag |= UI_BUT_TEXT_LEFT;
}
if (flag & UI_ITEM_R_NO_BG) {
layout->emboss = prev_emboss;
@@ -1004,8 +1056,9 @@ static uiBut *uiItemFullO_ptr_ex(
but->flag |= UI_SELECT_DRAW;
}
if (layout->redalert)
if (layout->redalert) {
UI_but_flag_enable(but, UI_BUT_REDALERT);
}
/* assign properties */
if (properties || r_opptr) {
@@ -1139,8 +1192,9 @@ void uiItemEnumO_ptr(uiLayout *layout, wmOperatorType *ot, const char *name, int
RNA_property_enum_set(&ptr, prop, value);
if (!name)
if (!name) {
name = ui_menu_enumpropname(layout, &ptr, prop, value);
}
uiItemFullO_ptr(layout, ot, name, icon, ptr.data, layout->root->opcontext, 0, NULL);
}
@@ -1205,9 +1259,11 @@ void uiItemsFullEnumO_items(
/* Check if there are more visible items for the next level. If not, we don't
* add a new level and add the remaining item instead of the 'more' button. */
for (tmp = item + 1; tmp->identifier; tmp++)
if (tmp->name)
for (tmp = item + 1; tmp->identifier; tmp++) {
if (tmp->name) {
break;
}
}
if (tmp->identifier) { /* only true if loop above found item and did early-exit */
ui_pie_menu_level_create(block, ot, propname, properties, item_array, totitem, context, flag);
@@ -1374,8 +1430,9 @@ void uiItemEnumO_value(uiLayout *layout, const char *name, int icon, const char
RNA_property_enum_set(&ptr, prop, value);
/* same as uiItemEnumO */
if (!name)
if (!name) {
name = ui_menu_enumpropname(layout, &ptr, prop, value);
}
uiItemFullO_ptr(layout, ot, name, icon, ptr.data, layout->root->opcontext, 0, NULL);
}
@@ -1418,8 +1475,9 @@ void uiItemEnumO_string(uiLayout *layout, const char *name, int icon, const char
RNA_property_enum_set(&ptr, prop, value);
/* same as uiItemEnumO */
if (!name)
if (!name) {
name = ui_menu_enumpropname(layout, &ptr, prop, value);
}
uiItemFullO_ptr(layout, ot, name, icon, ptr.data, layout->root->opcontext, 0, NULL);
}
@@ -1525,8 +1583,9 @@ static void ui_item_rna_size(
if (!w) {
if (type == PROP_ENUM && icon_only) {
w = ui_text_icon_width(layout, "", ICON_BLANK1, compact);
if (index != RNA_ENUM_VALUE)
if (index != RNA_ENUM_VALUE) {
w += 0.6f * UI_UNIT_X;
}
}
else {
/* not compact for float/int buttons, looks too squashed */
@@ -1537,24 +1596,32 @@ static void ui_item_rna_size(
/* increase height for arrays */
if (index == RNA_NO_INDEX && len > 0) {
if (!name[0] && icon == ICON_NONE)
if (!name[0] && icon == ICON_NONE) {
h = 0;
if (layout->item.flag & UI_ITEM_PROP_SEP)
}
if (layout->item.flag & UI_ITEM_PROP_SEP) {
h = 0;
if (ELEM(subtype, PROP_LAYER, PROP_LAYER_MEMBER))
}
if (ELEM(subtype, PROP_LAYER, PROP_LAYER_MEMBER)) {
h += 2 * UI_UNIT_Y;
else if (subtype == PROP_MATRIX)
}
else if (subtype == PROP_MATRIX) {
h += ceilf(sqrtf(len)) * UI_UNIT_Y;
else
}
else {
h += len * UI_UNIT_Y;
}
}
else if (ui_layout_variable_size(layout)) {
if (type == PROP_BOOLEAN && name[0])
if (type == PROP_BOOLEAN && name[0]) {
w += UI_UNIT_X / 5;
else if (type == PROP_ENUM && !icon_only)
}
else if (type == PROP_ENUM && !icon_only) {
w += UI_UNIT_X / 4;
else if (type == PROP_FLOAT || type == PROP_INT)
}
else if (type == PROP_FLOAT || type == PROP_INT) {
w += UI_UNIT_X * 3;
}
}
*r_w = w;
@@ -1611,8 +1678,9 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
}
}
if (icon == ICON_NONE)
if (icon == ICON_NONE) {
icon = RNA_property_ui_icon(prop);
}
if (flag & UI_ITEM_R_ICON_ONLY) {
/* pass */
@@ -1802,12 +1870,15 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
}
/* enum item */
else if (type == PROP_ENUM && index == RNA_ENUM_VALUE) {
if (icon && name[0] && !icon_only)
if (icon && name[0] && !icon_only) {
uiDefIconTextButR_prop(block, UI_BTYPE_ROW, 0, icon, name, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL);
else if (icon)
}
else if (icon) {
uiDefIconButR_prop(block, UI_BTYPE_ROW, 0, icon, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL);
else
}
else {
uiDefButR_prop(block, UI_BTYPE_ROW, 0, name, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL);
}
}
/* expanded enum */
else if (type == PROP_ENUM && expand) {
@@ -1818,27 +1889,33 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
but = ui_item_with_label(layout, block, name, icon, ptr, prop, index, 0, 0, w, h, flag);
ui_but_add_search(but, ptr, prop, NULL, NULL);
if (layout->redalert)
if (layout->redalert) {
UI_but_flag_enable(but, UI_BUT_REDALERT);
}
if (layout->activate_init)
if (layout->activate_init) {
UI_but_flag_enable(but, UI_BUT_ACTIVATE_ON_INIT);
}
}
/* single button */
else {
but = uiDefAutoButR(block, ptr, prop, index, name, icon, 0, 0, w, h);
if (slider && but->type == UI_BTYPE_NUM)
if (slider && but->type == UI_BTYPE_NUM) {
but->type = UI_BTYPE_NUM_SLIDER;
}
if (toggle && but->type == UI_BTYPE_CHECKBOX)
if (toggle && but->type == UI_BTYPE_CHECKBOX) {
but->type = UI_BTYPE_TOGGLE;
}
if (layout->redalert)
if (layout->redalert) {
UI_but_flag_enable(but, UI_BUT_REDALERT);
}
if (layout->activate_init)
if (layout->activate_init) {
UI_but_flag_enable(but, UI_BUT_ACTIVATE_ON_INIT);
}
if (use_prop_sep && (use_prop_sep_split_label == false)) {
/* When the button uses it's own text right align it. */
@@ -2040,8 +2117,9 @@ void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, const char *propname
ui_but_tip_from_enum_item(bt, &item[i]);
}
else
else {
uiItemS(column);
}
}
}
@@ -2160,15 +2238,18 @@ void uiItemPointerR_prop(
/* get icon & name */
if (icon == ICON_NONE) {
if (type == PROP_POINTER)
if (type == PROP_POINTER) {
icontype = RNA_property_pointer_type(ptr, prop);
else
}
else {
icontype = RNA_property_pointer_type(searchptr, searchprop);
}
icon = RNA_struct_ui_icon(icontype);
}
if (!name)
if (!name) {
name = RNA_property_ui_name(prop);
}
if (use_prop_sep == false) {
name = ui_item_name_add_colon(name, namestr);
@@ -2239,10 +2320,12 @@ static uiBut *ui_item_menu(
UI_block_layout_set_current(block, layout);
if (!name)
if (!name) {
name = "";
if (layout->root->type == UI_LAYOUT_MENU && !icon)
}
if (layout->root->type == UI_LAYOUT_MENU && !icon) {
icon = ICON_BLANK1;
}
w = ui_text_icon_width(layout, name, icon, 1);
h = UI_UNIT_Y;
@@ -2304,8 +2387,9 @@ void uiItemM(uiLayout *layout, const char *menuname, const char *name, int icon)
name = CTX_IFACE_(mt->translation_context, mt->label);
}
if (layout->root->type == UI_LAYOUT_MENU && !icon)
if (layout->root->type == UI_LAYOUT_MENU && !icon) {
icon = ICON_BLANK1;
}
ui_item_menu(
layout, name, icon, ui_item_menutype_func, mt, NULL,
@@ -2404,10 +2488,12 @@ static uiBut *uiItemL_(uiLayout *layout, const char *name, int icon)
UI_block_layout_set_current(block, layout);
if (!name)
if (!name) {
name = "";
if (layout->root->type == UI_LAYOUT_MENU && !icon)
}
if (layout->root->type == UI_LAYOUT_MENU && !icon) {
icon = ICON_BLANK1;
}
w = ui_text_icon_width(layout, name, icon, 0);
@@ -2450,9 +2536,11 @@ void uiItemLDrag(uiLayout *layout, PointerRNA *ptr, const char *name, int icon)
{
uiBut *but = uiItemL_(layout, name, icon);
if (ptr && ptr->type)
if (RNA_struct_is_ID(ptr->type))
if (ptr && ptr->type) {
if (RNA_struct_is_ID(ptr->type)) {
UI_but_drag_set_id(but, ptr->id.data);
}
}
}
@@ -2466,19 +2554,24 @@ void uiItemV(uiLayout *layout, const char *name, int icon, int argval)
UI_block_layout_set_current(block, layout);
if (!name)
if (!name) {
name = "";
if (layout->root->type == UI_LAYOUT_MENU && !icon)
}
if (layout->root->type == UI_LAYOUT_MENU && !icon) {
icon = ICON_BLANK1;
}
w = ui_text_icon_width(layout, name, icon, 0);
if (icon && name[0])
if (icon && name[0]) {
uiDefIconTextButI(block, UI_BTYPE_BUT, argval, icon, name, 0, 0, w, UI_UNIT_Y, retvalue, 0.0, 0.0, 0, -1, "");
else if (icon)
}
else if (icon) {
uiDefIconButI(block, UI_BTYPE_BUT, argval, icon, 0, 0, w, UI_UNIT_Y, retvalue, 0.0, 0.0, 0, -1, "");
else
}
else {
uiDefButI(block, UI_BTYPE_BUT, argval, name, 0, 0, w, UI_UNIT_Y, retvalue, 0.0, 0.0, 0, -1, "");
}
}
/* separator item */
@@ -2522,8 +2615,9 @@ void uiItemSpacer(uiLayout *layout)
/* level items */
void uiItemMenuF(uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func, void *arg)
{
if (!func)
if (!func) {
return;
}
ui_item_menu(layout, name, icon, func, arg, NULL, "", false);
}
@@ -2533,8 +2627,9 @@ void uiItemMenuF(uiLayout *layout, const char *name, int icon, uiMenuCreateFunc
*/
void uiItemMenuFN(uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func, void *argN)
{
if (!func)
if (!func) {
return;
}
/* Second 'argN' only ensures it gets freed. */
ui_item_menu(layout, name, icon, func, argN, argN, "", false);
@@ -2576,8 +2671,9 @@ void uiItemMenuEnumO_ptr(
name = RNA_struct_ui_name(ot->srna);
}
if (layout->root->type == UI_LAYOUT_MENU && !icon)
if (layout->root->type == UI_LAYOUT_MENU && !icon) {
icon = ICON_BLANK1;
}
lvl = MEM_callocN(sizeof(MenuItemLevel), "MenuItemLevel");
BLI_strncpy(lvl->opname, ot->idname, sizeof(lvl->opname));
@@ -2632,10 +2728,12 @@ void uiItemMenuEnumR_prop(uiLayout *layout, struct PointerRNA *ptr, PropertyRNA
{
MenuItemLevel *lvl;
if (!name)
if (!name) {
name = RNA_property_ui_name(prop);
if (layout->root->type == UI_LAYOUT_MENU && !icon)
}
if (layout->root->type == UI_LAYOUT_MENU && !icon) {
icon = ICON_BLANK1;
}
lvl = MEM_callocN(sizeof(MenuItemLevel), "MenuItemLevel");
lvl->rnapoin = *ptr;
@@ -2687,8 +2785,9 @@ static void ui_litem_estimate_row(uiLayout *litem)
litem->w += itemw;
litem->h = MAX2(itemh, litem->h);
if (item->next)
if (item->next) {
litem->w += litem->space;
}
}
if (min_size_flag) {
@@ -2720,11 +2819,13 @@ static void ui_litem_layout_row(uiLayout *litem)
tot++;
}
if (totw == 0)
if (totw == 0) {
return;
}
if (w != 0)
if (w != 0) {
w -= (tot - 1) * litem->space;
}
fixedw = 0;
/* keep clamping items to fixed minimum size until all are done */
@@ -2736,16 +2837,19 @@ static void ui_litem_layout_row(uiLayout *litem)
extra_pixel = 0.0f;
for (item = litem->items.first; item; item = item->next) {
if (item->flag & UI_ITEM_FIXED)
if (item->flag & UI_ITEM_FIXED) {
continue;
}
ui_item_size(item, &itemw, &itemh);
minw = ui_litem_min_width(itemw);
if (w - lastw > 0)
if (w - lastw > 0) {
neww = ui_item_fit(itemw, x, totw, w - lastw, !item->next, litem->alignment, &extra_pixel);
else
}
else {
neww = 0; /* no space left, all will need clamping to minimum size */
}
x += neww;
@@ -2807,20 +2911,23 @@ static void ui_litem_layout_row(uiLayout *litem)
/* align right/center */
offset = 0;
if (litem->alignment == UI_LAYOUT_ALIGN_RIGHT) {
if (freew + fixedw > 0 && freew + fixedw < w)
if (freew + fixedw > 0 && freew + fixedw < w) {
offset = w - (fixedw + freew);
}
}
else if (litem->alignment == UI_LAYOUT_ALIGN_CENTER) {
if (freew + fixedw > 0 && freew + fixedw < w)
if (freew + fixedw > 0 && freew + fixedw < w) {
offset = (w - (fixedw + freew)) / 2;
}
}
/* position item */
ui_item_position(item, x + offset, y - itemh, itemw, itemh);
x += itemw;
if (item->next)
if (item->next) {
x += litem->space;
}
}
/* add extra pixel */
@@ -2830,8 +2937,9 @@ static void ui_litem_layout_row(uiLayout *litem)
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)
for (item = last_free_item->next; item; item = item->next) {
ui_item_move(item, extra_pixel, extra_pixel);
}
}
litem->w = x - litem->x;
@@ -2858,8 +2966,9 @@ static void ui_litem_estimate_column(uiLayout *litem, bool is_box)
litem->w = MAX2(litem->w, itemw);
litem->h += itemh;
if (item->next && (!is_box || item != litem->items.first))
if (item->next && (!is_box || item != litem->items.first)) {
litem->h += litem->space;
}
}
if (min_size_flag) {
@@ -2881,8 +2990,9 @@ static void ui_litem_layout_column(uiLayout *litem, bool is_box)
y -= itemh;
ui_item_position(item, x, y, litem->w, itemh);
if (item->next && (!is_box || item != litem->items.first))
if (item->next && (!is_box || item != litem->items.first)) {
y -= litem->space;
}
if (is_box) {
item->flag |= UI_ITEM_BOX_ITEM;
@@ -2914,8 +3024,9 @@ static RadialDirection ui_get_radialbut_vec(float vec[2], short itemnum)
static bool ui_item_is_radial_displayable(uiItem *item)
{
if ((item->type == ITEM_BUTTON) && (((uiButtonItem *)item)->but->type == UI_BTYPE_LABEL))
if ((item->type == ITEM_BUTTON) && (((uiButtonItem *)item)->but->type == UI_BTYPE_LABEL)) {
return false;
}
return true;
}
@@ -2923,8 +3034,9 @@ static bool ui_item_is_radial_displayable(uiItem *item)
static bool ui_item_is_radial_drawable(uiButtonItem *bitem)
{
if (ELEM(bitem->but->type, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE, UI_BTYPE_SEPR_SPACER))
if (ELEM(bitem->but->type, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE, UI_BTYPE_SEPR_SPACER)) {
return false;
}
return true;
}
@@ -2949,11 +3061,13 @@ static void ui_litem_layout_radial(uiLayout *litem)
int minx = x, miny = y, maxx = x, maxy = y;
/* first count total items */
for (item = litem->items.first; item; item = item->next)
for (item = litem->items.first; item; item = item->next) {
totitems++;
}
if (totitems < 5)
if (totitems < 5) {
litem->root->block->pie_data.flags |= UI_PIE_DEGREES_RANGE_LARGE;
}
for (item = litem->items.first; item; item = item->next) {
/* not all button types are drawn in a radial menu, do filtering here */
@@ -3024,12 +3138,15 @@ static void ui_litem_layout_root_radial(uiLayout *litem)
static void ui_litem_layout_root(uiLayout *litem)
{
if (litem->root->type == UI_LAYOUT_HEADER)
if (litem->root->type == UI_LAYOUT_HEADER) {
ui_litem_layout_row(litem);
else if (litem->root->type == UI_LAYOUT_PIEMENU)
}
else if (litem->root->type == UI_LAYOUT_PIEMENU) {
ui_litem_layout_root_radial(litem);
else
}
else {
ui_litem_layout_column(litem, false);
}
}
/* box layout */
@@ -3055,16 +3172,24 @@ static void ui_litem_layout_box(uiLayout *litem)
litem->x += style->boxspace;
litem->y -= style->boxspace;
if (w != 0) litem->w -= 2 * style->boxspace;
if (h != 0) litem->h -= 2 * style->boxspace;
if (w != 0) {
litem->w -= 2 * style->boxspace;
}
if (h != 0) {
litem->h -= 2 * style->boxspace;
}
ui_litem_layout_column(litem, true);
litem->x -= style->boxspace;
litem->y -= style->boxspace;
if (w != 0) litem->w += 2 * style->boxspace;
if (h != 0) litem->h += 2 * style->boxspace;
if (w != 0) {
litem->w += 2 * style->boxspace;
}
if (h != 0) {
litem->h += 2 * style->boxspace;
}
/* roundbox around the sublayout */
but = box->roundbox;
@@ -3607,10 +3732,12 @@ static void ui_litem_layout_absolute(uiLayout *litem)
totw -= minx;
toth -= miny;
if (litem->w && totw > 0)
if (litem->w && totw > 0) {
scalex = (float)litem->w / (float)totw;
if (litem->h && toth > 0)
}
if (litem->h && toth > 0) {
scaley = (float)litem->h / (float)toth;
}
x = litem->x;
y = litem->y - scaley * toth;
@@ -3655,8 +3782,9 @@ static void ui_litem_layout_split(uiLayout *litem)
const int tot = BLI_listbase_count(&litem->items);
int itemh, x, y, w, colw = 0;
if (tot == 0)
if (tot == 0) {
return;
}
x = litem->x;
y = litem->y;
@@ -3837,8 +3965,9 @@ uiLayout *uiLayoutRadial(uiLayout *layout)
uiItem *item;
/* radial layouts are only valid for radial menus */
if (layout->root->type != UI_LAYOUT_PIEMENU)
if (layout->root->type != UI_LAYOUT_PIEMENU) {
return ui_item_local_sublayout(layout, layout, 0);
}
/* only one radial wheel per root layout is allowed, so check and return that, if it exists */
for (item = layout->root->layout->items.first; item; item = item->next) {
@@ -4135,8 +4264,9 @@ static void ui_item_estimate(uiItem *item)
if (item->type != ITEM_BUTTON) {
uiLayout *litem = (uiLayout *)item;
for (subitem = litem->items.first; subitem; subitem = subitem->next)
for (subitem = litem->items.first; subitem; subitem = subitem->next) {
ui_item_estimate(subitem);
}
if (BLI_listbase_is_empty(&litem->items)) {
litem->w = 0;
@@ -4144,8 +4274,9 @@ static void ui_item_estimate(uiItem *item)
return;
}
if (litem->scale[0] != 0.0f || litem->scale[1] != 0.0f)
if (litem->scale[0] != 0.0f || litem->scale[1] != 0.0f) {
ui_item_scale(litem, litem->scale);
}
switch (litem->item.type) {
case ITEM_LAYOUT_COLUMN:
@@ -4247,15 +4378,19 @@ static void ui_item_layout(uiItem *item)
if (item->type != ITEM_BUTTON) {
uiLayout *litem = (uiLayout *)item;
if (BLI_listbase_is_empty(&litem->items))
if (BLI_listbase_is_empty(&litem->items)) {
return;
}
if (litem->align)
if (litem->align) {
ui_item_align(litem, ++litem->root->block->alignnr);
if (!litem->active)
}
if (!litem->active) {
ui_item_flag(litem, UI_BUT_INACTIVE);
if (!litem->enabled)
}
if (!litem->enabled) {
ui_item_flag(litem, UI_BUT_DISABLED);
}
switch (litem->item.type) {
case ITEM_LAYOUT_COLUMN:
@@ -4309,14 +4444,19 @@ static void ui_item_layout(uiItem *item)
static void ui_layout_end(uiBlock *block, uiLayout *layout, int *x, int *y)
{
if (layout->root->handlefunc)
if (layout->root->handlefunc) {
UI_block_func_handle_set(block, layout->root->handlefunc, layout->root->argv);
}
ui_item_estimate(&layout->item);
ui_item_layout(&layout->item);
if (x) *x = layout->x;
if (y) *y = layout->y;
if (x) {
*x = layout->x;
}
if (y) {
*y = layout->y;
}
}
static void ui_layout_free(uiLayout *layout)
@@ -4326,10 +4466,12 @@ static void ui_layout_free(uiLayout *layout)
for (item = layout->items.first; item; item = next) {
next = item->next;
if (item->type == ITEM_BUTTON)
if (item->type == ITEM_BUTTON) {
MEM_freeN(item);
else
}
else {
ui_layout_free((uiLayout *)item);
}
}
MEM_freeN(layout);
@@ -4375,8 +4517,9 @@ uiLayout *UI_block_layout(uiBlock *block, int dir, int type, int x, int y, int s
layout->context = NULL;
layout->emboss = UI_EMBOSS_UNDEFINED;
if (type == UI_LAYOUT_MENU || type == UI_LAYOUT_PIEMENU)
if (type == UI_LAYOUT_MENU || type == UI_LAYOUT_PIEMENU) {
layout->space = 0;
}
if (dir == UI_LAYOUT_HORIZONTAL) {
layout->h = size;
@@ -4462,8 +4605,12 @@ void UI_block_layout_resolve(uiBlock *block, int *x, int *y)
BLI_assert(block->active);
if (x) *x = 0;
if (y) *y = 0;
if (x) {
*x = 0;
}
if (y) {
*y = 0;
}
block->curlayout = NULL;

View File

@@ -257,8 +257,9 @@ static int reset_default_button_exec(bContext *C, wmOperator *op)
/* if there is a valid property that is editable... */
if (ptr.data && prop && RNA_property_editable(&ptr, prop)) {
if (RNA_property_reset(&ptr, prop, (all) ? -1 : index))
if (RNA_property_reset(&ptr, prop, (all) ? -1 : index)) {
return operator_button_property_finish(C, &ptr, prop);
}
}
return OPERATOR_CANCELLED;
@@ -316,8 +317,9 @@ static int assign_default_button_exec(bContext *C, wmOperator *UNUSED(op))
/* if there is a valid property that is editable... */
if (ptr.data && prop && RNA_property_editable(&ptr, prop)) {
if (RNA_property_assign_default(&ptr, prop))
if (RNA_property_assign_default(&ptr, prop)) {
return operator_button_property_finish(C, &ptr, prop);
}
}
return OPERATOR_CANCELLED;
@@ -1298,8 +1300,9 @@ static void edittranslation_find_po_file(const char *root, const char *uilng, ch
BLI_snprintf(tstr, sizeof(tstr), "%s.po", uilng);
BLI_join_dirfile(path, maxlen, root, uilng);
BLI_path_append(path, maxlen, tstr);
if (BLI_is_file(path))
if (BLI_is_file(path)) {
return;
}
/* Now try without the second iso code part (_ES in es_ES). */
{
@@ -1316,14 +1319,16 @@ static void edittranslation_find_po_file(const char *root, const char *uilng, ch
if (tstr[0]) {
/* Because of some codes like sr_SR@latin... */
tc = strchr(uilng, '@');
if (tc)
if (tc) {
BLI_strncpy(tstr + szt, tc, sizeof(tstr) - szt);
}
BLI_join_dirfile(path, maxlen, root, tstr);
strcat(tstr, ".po");
BLI_path_append(path, maxlen, tstr);
if (BLI_is_file(path))
if (BLI_is_file(path)) {
return;
}
}
}
@@ -1397,26 +1402,36 @@ static int edittranslation_exec(bContext *C, wmOperator *op)
ret = WM_operator_name_call_ptr(C, ot, WM_OP_INVOKE_DEFAULT, &ptr);
/* Clean up */
if (but_label.strinfo)
if (but_label.strinfo) {
MEM_freeN(but_label.strinfo);
if (rna_label.strinfo)
}
if (rna_label.strinfo) {
MEM_freeN(rna_label.strinfo);
if (enum_label.strinfo)
}
if (enum_label.strinfo) {
MEM_freeN(enum_label.strinfo);
if (but_tip.strinfo)
}
if (but_tip.strinfo) {
MEM_freeN(but_tip.strinfo);
if (rna_tip.strinfo)
}
if (rna_tip.strinfo) {
MEM_freeN(rna_tip.strinfo);
if (enum_tip.strinfo)
}
if (enum_tip.strinfo) {
MEM_freeN(enum_tip.strinfo);
if (rna_struct.strinfo)
}
if (rna_struct.strinfo) {
MEM_freeN(rna_struct.strinfo);
if (rna_prop.strinfo)
}
if (rna_prop.strinfo) {
MEM_freeN(rna_prop.strinfo);
if (rna_enum.strinfo)
}
if (rna_enum.strinfo) {
MEM_freeN(rna_enum.strinfo);
if (rna_ctxt.strinfo)
}
if (rna_ctxt.strinfo) {
MEM_freeN(rna_ctxt.strinfo);
}
return ret;
}
@@ -1544,8 +1559,9 @@ bool UI_drop_color_poll(struct bContext *C, wmDrag *drag, const wmEvent *UNUSED(
SpaceImage *sima = CTX_wm_space_image(C);
ARegion *ar = CTX_wm_region(C);
if (UI_but_active_drop_color(C))
if (UI_but_active_drop_color(C)) {
return 1;
}
if (sima && (sima->mode == SI_MODE_PAINT) &&
sima->image && (ar && ar->regiontype == RGN_TYPE_WINDOW))
@@ -1589,14 +1605,16 @@ static int drop_color_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(
}
if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA) {
if (!gamma)
if (!gamma) {
IMB_colormanagement_scene_linear_to_srgb_v3(color);
}
RNA_property_float_set_array(&but->rnapoin, but->rnaprop, color);
RNA_property_update(C, &but->rnapoin, but->rnaprop);
}
else if (RNA_property_subtype(but->rnaprop) == PROP_COLOR) {
if (gamma)
if (gamma) {
IMB_colormanagement_srgb_to_scene_linear_v3(color);
}
RNA_property_float_set_array(&but->rnapoin, but->rnaprop, color);
RNA_property_update(C, &but->rnapoin, but->rnaprop);
}

View File

@@ -134,16 +134,21 @@ typedef enum eSpaceButtons_Align {
static int panel_aligned(ScrArea *sa, ARegion *ar)
{
if (sa->spacetype == SPACE_PROPERTIES && ar->regiontype == RGN_TYPE_WINDOW)
if (sa->spacetype == SPACE_PROPERTIES && ar->regiontype == RGN_TYPE_WINDOW) {
return BUT_VERTICAL;
else if (sa->spacetype == SPACE_USERPREF && ar->regiontype == RGN_TYPE_WINDOW)
}
else if (sa->spacetype == SPACE_USERPREF && ar->regiontype == RGN_TYPE_WINDOW) {
return BUT_VERTICAL;
else if (sa->spacetype == SPACE_FILE && ar->regiontype == RGN_TYPE_CHANNELS)
}
else if (sa->spacetype == SPACE_FILE && ar->regiontype == RGN_TYPE_CHANNELS) {
return BUT_VERTICAL;
else if (sa->spacetype == SPACE_IMAGE && ar->regiontype == RGN_TYPE_PREVIEW)
}
else if (sa->spacetype == SPACE_IMAGE && ar->regiontype == RGN_TYPE_PREVIEW) {
return BUT_VERTICAL;
else if (ELEM(ar->regiontype, RGN_TYPE_UI, RGN_TYPE_TOOLS, RGN_TYPE_TOOL_PROPS, RGN_TYPE_HUD, RGN_TYPE_NAV_BAR, RGN_TYPE_EXECUTE))
}
else if (ELEM(ar->regiontype, RGN_TYPE_UI, RGN_TYPE_TOOLS, RGN_TYPE_TOOL_PROPS, RGN_TYPE_HUD, RGN_TYPE_NAV_BAR, RGN_TYPE_EXECUTE)) {
return BUT_VERTICAL;
}
return 0;
}
@@ -313,10 +318,12 @@ Panel *UI_panel_begin(ScrArea *sa, ARegion *ar, ListBase *lb, uiBlock *block, Pa
BLI_strncpy(pa->panelname, idname, sizeof(pa->panelname));
if (pt->flag & PNL_DEFAULT_CLOSED) {
if (align == BUT_VERTICAL)
if (align == BUT_VERTICAL) {
pa->flag |= PNL_CLOSEDY;
else
}
else {
pa->flag |= PNL_CLOSEDX;
}
}
pa->ofsx = 0;
@@ -378,13 +385,16 @@ Panel *UI_panel_begin(ScrArea *sa, ARegion *ar, ListBase *lb, uiBlock *block, Pa
if (newpanel) {
pa->sortorder = (palast) ? palast->sortorder + 1 : 0;
for (panext = lb->first; panext; panext = panext->next)
if (panext != pa && panext->sortorder >= pa->sortorder)
for (panext = lb->first; panext; panext = panext->next) {
if (panext != pa && panext->sortorder >= pa->sortorder) {
panext->sortorder++;
}
}
}
if (palast)
if (palast) {
palast->runtime_flag &= ~PNL_LAST_ADDED;
}
/* assign to block */
block->panel = pa;
@@ -395,8 +405,12 @@ Panel *UI_panel_begin(ScrArea *sa, ARegion *ar, ListBase *lb, uiBlock *block, Pa
*r_open = false;
if (pa->paneltab) return pa;
if (pa->flag & PNL_CLOSED) return pa;
if (pa->paneltab) {
return pa;
}
if (pa->flag & PNL_CLOSED) {
return pa;
}
*r_open = true;
@@ -429,15 +443,18 @@ void UI_panel_end(uiBlock *block, int width, int height)
/* check if we need to do an animation */
if (!ELEM(width, 0, pa->sizex) || !ELEM(height, 0, pa->sizey)) {
pa->runtime_flag |= PNL_ANIM_ALIGN;
if (height != 0)
if (height != 0) {
pa->ofsy += pa->sizey - height;
}
}
/* update width/height if non-zero */
if (width != 0)
if (width != 0) {
pa->sizex = width;
if (height != 0)
}
if (height != 0) {
pa->sizey = height;
}
}
}
@@ -639,10 +656,12 @@ static void ui_draw_aligned_panel_header(
uchar col_title[4];
/* + 0.001f to avoid flirting with float inaccuracy */
if (panel->control & UI_PNL_CLOSE)
if (panel->control & UI_PNL_CLOSE) {
pnl_icons = (panel->labelofs + (2.0f * PNL_ICON)) / block->aspect + 0.001f;
else
}
else {
pnl_icons = (panel->labelofs + (1.1f * PNL_ICON)) / block->aspect + 0.001f;
}
/* draw text label */
panel_title_color_get(show_background, col_title);
@@ -683,8 +702,12 @@ void ui_draw_aligned_panel(
* This may be changed in future. */
show_background);
if (panel->paneltab) return;
if (panel->type && (panel->type->flag & PNL_NO_HEADER)) return;
if (panel->paneltab) {
return;
}
if (panel->type && (panel->type->flag & PNL_NO_HEADER)) {
return;
}
/* calculate header rect */
/* + 0.001f to prevent flicker due to float inaccuracy */
@@ -787,8 +810,12 @@ void ui_draw_aligned_panel(
else {
/* in some occasions, draw a border */
if (panel->flag & PNL_SELECT) {
if (panel->control & UI_PNL_SOLID) UI_draw_roundbox_corner_set(UI_CNR_ALL);
else UI_draw_roundbox_corner_set(UI_CNR_NONE);
if (panel->control & UI_PNL_SOLID) {
UI_draw_roundbox_corner_set(UI_CNR_ALL);
}
else {
UI_draw_roundbox_corner_set(UI_CNR_NONE);
}
UI_GetThemeColorShade4fv(TH_BACK, -120, color);
UI_draw_roundbox_aa(false, 0.5f + rect->xmin, 0.5f + rect->ymin, 0.5f + rect->xmax, 0.5f + headrect.ymax + 1, 8, color);
@@ -806,8 +833,9 @@ void ui_draw_aligned_panel(
immRectf(pos, rect->xmin, rect->ymin, rect->xmax, rect->ymax);
}
if (panel->control & UI_PNL_SCALE)
if (panel->control & UI_PNL_SCALE) {
ui_draw_panel_scalewidget(pos, rect);
}
immUnbindProgram();
}
@@ -841,12 +869,15 @@ void ui_draw_aligned_panel(
rgb_uchar_to_float(tria_color, col_title);
tria_color[3] = 1.0f;
if (is_closed_y)
if (is_closed_y) {
ui_draw_anti_tria_rect(&itemrect, 'h', tria_color);
else if (is_closed_x)
}
else if (is_closed_x) {
ui_draw_anti_tria_rect(&itemrect, 'h', tria_color);
else
}
else {
ui_draw_anti_tria_rect(&itemrect, 'v', tria_color);
}
}
}
@@ -854,16 +885,18 @@ void ui_draw_aligned_panel(
static int get_panel_header(const Panel *pa)
{
if (pa->type && (pa->type->flag & PNL_NO_HEADER))
if (pa->type && (pa->type->flag & PNL_NO_HEADER)) {
return 0;
}
return PNL_HEADER;
}
static int get_panel_size_y(const Panel *pa)
{
if (pa->type && (pa->type->flag & PNL_NO_HEADER))
if (pa->type && (pa->type->flag & PNL_NO_HEADER)) {
return pa->sizey;
}
return PNL_HEADER + pa->sizey;
}
@@ -872,8 +905,9 @@ static int get_panel_real_size_y(const Panel *pa)
{
int sizey = (pa->flag & PNL_CLOSED) ? 0 : pa->sizey;
if (pa->type && (pa->type->flag & PNL_NO_HEADER))
if (pa->type && (pa->type->flag & PNL_NO_HEADER)) {
return sizey;
}
return PNL_HEADER + sizey;
}
@@ -887,17 +921,31 @@ int UI_panel_size_y(const Panel *pa)
* change sizey or location when closed */
static int get_panel_real_ofsy(Panel *pa)
{
if (pa->flag & PNL_CLOSEDY) return pa->ofsy + pa->sizey;
else if (pa->paneltab && (pa->paneltab->flag & PNL_CLOSEDY)) return pa->ofsy + pa->sizey;
else if (pa->paneltab) return pa->paneltab->ofsy;
else return pa->ofsy;
if (pa->flag & PNL_CLOSEDY) {
return pa->ofsy + pa->sizey;
}
else if (pa->paneltab && (pa->paneltab->flag & PNL_CLOSEDY)) {
return pa->ofsy + pa->sizey;
}
else if (pa->paneltab) {
return pa->paneltab->ofsy;
}
else {
return pa->ofsy;
}
}
static int get_panel_real_ofsx(Panel *pa)
{
if (pa->flag & PNL_CLOSEDX) return pa->ofsx + get_panel_header(pa);
else if (pa->paneltab && (pa->paneltab->flag & PNL_CLOSEDX)) return pa->ofsx + get_panel_header(pa);
else return pa->ofsx + pa->sizex;
if (pa->flag & PNL_CLOSEDX) {
return pa->ofsx + get_panel_header(pa);
}
else if (pa->paneltab && (pa->paneltab->flag & PNL_CLOSEDX)) {
return pa->ofsx + get_panel_header(pa);
}
else {
return pa->ofsx + pa->sizex;
}
}
typedef struct PanelSort {
@@ -916,10 +964,18 @@ static int find_leftmost_panel(const void *a1, const void *a2)
{
const PanelSort *ps1 = a1, *ps2 = a2;
if (ps1->pa->ofsx > ps2->pa->ofsx) return 1;
else if (ps1->pa->ofsx < ps2->pa->ofsx) return -1;
else if (ps1->pa->sortorder > ps2->pa->sortorder) return 1;
else if (ps1->pa->sortorder < ps2->pa->sortorder) return -1;
if (ps1->pa->ofsx > ps2->pa->ofsx) {
return 1;
}
else if (ps1->pa->ofsx < ps2->pa->ofsx) {
return -1;
}
else if (ps1->pa->sortorder > ps2->pa->sortorder) {
return 1;
}
else if (ps1->pa->sortorder < ps2->pa->sortorder) {
return -1;
}
return 0;
}
@@ -934,13 +990,25 @@ static int find_highest_panel(const void *a1, const void *a2)
if (ps1->pa->type->flag & PNL_NO_HEADER && ps2->pa->type->flag & PNL_NO_HEADER) {
/* skip and check for ofs and sortorder below */
}
else if (ps1->pa->type->flag & PNL_NO_HEADER) return -1;
else if (ps2->pa->type->flag & PNL_NO_HEADER) return 1;
else if (ps1->pa->type->flag & PNL_NO_HEADER) {
return -1;
}
else if (ps2->pa->type->flag & PNL_NO_HEADER) {
return 1;
}
if (ps1->pa->ofsy + ps1->pa->sizey < ps2->pa->ofsy + ps2->pa->sizey) return 1;
else if (ps1->pa->ofsy + ps1->pa->sizey > ps2->pa->ofsy + ps2->pa->sizey) return -1;
else if (ps1->pa->sortorder > ps2->pa->sortorder) return 1;
else if (ps1->pa->sortorder < ps2->pa->sortorder) return -1;
if (ps1->pa->ofsy + ps1->pa->sizey < ps2->pa->ofsy + ps2->pa->sizey) {
return 1;
}
else if (ps1->pa->ofsy + ps1->pa->sizey > ps2->pa->ofsy + ps2->pa->sizey) {
return -1;
}
else if (ps1->pa->sortorder > ps2->pa->sortorder) {
return 1;
}
else if (ps1->pa->sortorder < ps2->pa->sortorder) {
return -1;
}
return 0;
}
@@ -949,8 +1017,12 @@ static int compare_panel(const void *a1, const void *a2)
{
const PanelSort *ps1 = a1, *ps2 = a2;
if (ps1->pa->sortorder > ps2->pa->sortorder) return 1;
else if (ps1->pa->sortorder < ps2->pa->sortorder) return -1;
if (ps1->pa->sortorder > ps2->pa->sortorder) {
return 1;
}
else if (ps1->pa->sortorder < ps2->pa->sortorder) {
return -1;
}
return 0;
}
@@ -985,19 +1057,25 @@ static bool uiAlignPanelStep(ScrArea *sa, ARegion *ar, const float fac, const bo
bool has_category_tabs = UI_panel_category_is_visible(ar);
/* count active, not tabbed panels */
for (pa = ar->panels.first; pa; pa = pa->next)
if ((pa->runtime_flag & PNL_ACTIVE) && pa->paneltab == NULL)
for (pa = ar->panels.first; pa; pa = pa->next) {
if ((pa->runtime_flag & PNL_ACTIVE) && pa->paneltab == NULL) {
tot++;
}
}
if (tot == 0) return 0;
if (tot == 0) {
return 0;
}
/* extra; change close direction? */
for (pa = ar->panels.first; pa; pa = pa->next) {
if ((pa->runtime_flag & PNL_ACTIVE) && pa->paneltab == NULL) {
if ((pa->flag & PNL_CLOSEDX) && (align == BUT_VERTICAL))
if ((pa->flag & PNL_CLOSEDX) && (align == BUT_VERTICAL)) {
pa->flag ^= PNL_CLOSED;
else if ((pa->flag & PNL_CLOSEDY) && (align == BUT_HORIZONTAL))
}
else if ((pa->flag & PNL_CLOSEDY) && (align == BUT_HORIZONTAL)) {
pa->flag ^= PNL_CLOSED;
}
}
}
@@ -1015,17 +1093,21 @@ static bool uiAlignPanelStep(ScrArea *sa, ARegion *ar, const float fac, const bo
if (drag) {
/* while we are dragging, we sort on location and update sortorder */
if (align == BUT_VERTICAL)
if (align == BUT_VERTICAL) {
qsort(panelsort, tot, sizeof(PanelSort), find_highest_panel);
else
}
else {
qsort(panelsort, tot, sizeof(PanelSort), find_leftmost_panel);
}
for (ps = panelsort, a = 0; a < tot; a++, ps++)
for (ps = panelsort, a = 0; a < tot; a++, ps++) {
ps->orig->sortorder = a;
}
}
else
else {
/* otherwise use sortorder */
qsort(panelsort, tot, sizeof(PanelSort), compare_panel);
}
/* no smart other default start loc! this keeps switching f5/f6/etc compatible */
ps = panelsort;
@@ -1111,10 +1193,12 @@ static void ui_panels_size(ScrArea *sa, ARegion *ar, int *x, int *y)
}
}
if (sizex == 0)
if (sizex == 0) {
sizex = UI_PANEL_WIDTH;
if (sizey == 0)
}
if (sizey == 0) {
sizey = -UI_PANEL_WIDTH;
}
*x = sizex;
*y = sizey;
@@ -1173,9 +1257,11 @@ void UI_panels_end(const bContext *C, ARegion *ar, int *x, int *y)
Panel *panot, *panew, *patest, *pa, *firstpa;
/* offset contents */
for (block = ar->uiblocks.first; block; block = block->next)
if (block->active && block->panel)
for (block = ar->uiblocks.first; block; block = block->next) {
if (block->active && block->panel) {
ui_offset_panel_block(block);
}
}
/* consistency; are panels not made, whilst they have tabs */
for (panot = ar->panels.first; panot; panot = panot->next) {
@@ -1204,21 +1290,27 @@ void UI_panels_end(const bContext *C, ARegion *ar, int *x, int *y)
/* re-align, possibly with animation */
if (panels_need_realign(sa, ar, &pa)) {
if (pa)
if (pa) {
panel_activate_state(C, pa, PANEL_STATE_ANIMATION);
else
}
else {
uiAlignPanelStep(sa, ar, 1.0, false);
}
}
/* tag first panel */
firstpa = NULL;
for (block = ar->uiblocks.first; block; block = block->next)
if (block->active && block->panel)
if (!firstpa || block->panel->sortorder < firstpa->sortorder)
for (block = ar->uiblocks.first; block; block = block->next) {
if (block->active && block->panel) {
if (!firstpa || block->panel->sortorder < firstpa->sortorder) {
firstpa = block->panel;
}
}
}
if (firstpa)
if (firstpa) {
firstpa->runtime_flag |= PNL_FIRST;
}
/* compute size taken up by panel */
ui_panels_size(sa, ar, x, y);
@@ -1280,16 +1372,28 @@ static void check_panel_overlap(ARegion *ar, Panel *panel)
if (pa->paneltab == NULL && (pa->runtime_flag & PNL_ACTIVE)) {
float safex = 0.2, safey = 0.2;
if (pa->flag & PNL_CLOSEDX) safex = 0.05;
else if (pa->flag & PNL_CLOSEDY) safey = 0.05;
else if (panel->flag & PNL_CLOSEDX) safex = 0.05;
else if (panel->flag & PNL_CLOSEDY) safey = 0.05;
if (pa->flag & PNL_CLOSEDX) {
safex = 0.05;
}
else if (pa->flag & PNL_CLOSEDY) {
safey = 0.05;
}
else if (panel->flag & PNL_CLOSEDX) {
safex = 0.05;
}
else if (panel->flag & PNL_CLOSEDY) {
safey = 0.05;
}
if (pa->ofsx > panel->ofsx - safex * panel->sizex)
if (pa->ofsx + pa->sizex < panel->ofsx + (1.0f + safex) * panel->sizex)
if (pa->ofsy > panel->ofsy - safey * panel->sizey)
if (pa->ofsy + pa->sizey < panel->ofsy + (1.0f + safey) * panel->sizey)
if (pa->ofsx > panel->ofsx - safex * panel->sizex) {
if (pa->ofsx + pa->sizex < panel->ofsx + (1.0f + safex) * panel->sizex) {
if (pa->ofsy > panel->ofsy - safey * panel->sizey) {
if (pa->ofsy + pa->sizey < panel->ofsy + (1.0f + safey) * panel->sizey) {
pa->flag |= PNL_OVERLAP;
}
}
}
}
}
}
}
@@ -1305,8 +1409,9 @@ static void ui_do_drag(const bContext *C, const wmEvent *event, Panel *panel)
short align = panel_aligned(sa, ar), dx = 0, dy = 0;
/* first clip for window, no dragging outside */
if (!BLI_rcti_isect_pt_v(&ar->winrct, &event->x))
if (!BLI_rcti_isect_pt_v(&ar->winrct, &event->x)) {
return;
}
dx = (event->x - data->startx) & ~(PNL_GRID - 1);
dy = (event->y - data->starty) & ~(PNL_GRID - 1);
@@ -1317,8 +1422,9 @@ static void ui_do_drag(const bContext *C, const wmEvent *event, Panel *panel)
if (data->state == PANEL_STATE_DRAG_SCALE) {
panel->sizex = MAX2(data->startsizex + dx, UI_PANEL_MINX);
if (data->startsizey - dy < UI_PANEL_MINY)
if (data->startsizey - dy < UI_PANEL_MINY) {
dy = -UI_PANEL_MINY + data->startsizey;
}
panel->sizey = data->startsizey - dy;
panel->ofsy = data->startofsy + dy;
@@ -1331,7 +1437,9 @@ static void ui_do_drag(const bContext *C, const wmEvent *event, Panel *panel)
panel->ofsy = data->startofsy + dy;
check_panel_overlap(ar, panel);
if (align) uiAlignPanelStep(sa, ar, 0.2, true);
if (align) {
uiAlignPanelStep(sa, ar, 0.2, true);
}
}
ED_region_tag_redraw(ar);
@@ -1526,21 +1634,29 @@ static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, in
/* XXX weak code, currently it assumes layout style for location of widgets */
/* check open/collapsed button */
if (event == RETKEY)
if (event == RETKEY) {
button = 1;
else if (event == AKEY)
}
else if (event == AKEY) {
button = 1;
}
else if (ELEM(event, 0, RETKEY, LEFTMOUSE) && shift) {
block->panel->flag ^= PNL_PIN;
button = 2;
}
else if (block->panel->flag & PNL_CLOSEDX) {
if (my >= block->rect.ymax) button = 1;
if (my >= block->rect.ymax) {
button = 1;
}
}
else if (block->panel->control & UI_PNL_CLOSE) {
/* whole of header can be used to collapse panel (except top-right corner) */
if (mx <= block->rect.xmax - 8 - PNL_ICON) button = 2;
//else if (mx <= block->rect.xmin + 10 + 2 * PNL_ICON + 2) button = 1;
if (mx <= block->rect.xmax - 8 - PNL_ICON) {
button = 2;
}
//else if (mx <= block->rect.xmin + 10 + 2 * PNL_ICON + 2) {
// button = 1;
//}
}
else if (mx < rect_leftmost) {
button = 1;
@@ -1561,8 +1677,9 @@ static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, in
if (block->panel->flag & PNL_CLOSED) {
block->panel->flag &= ~PNL_CLOSED;
/* snap back up so full panel aligns with screen edge */
if (block->panel->snap & PNL_SNAP_BOTTOM)
if (block->panel->snap & PNL_SNAP_BOTTOM) {
block->panel->ofsy = 0;
}
if (event == LEFTMOUSE) {
ui_panel_drag_collapse_handler_add(C, false);
@@ -1578,8 +1695,9 @@ static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, in
else {
/* snap down to bottom screen edge */
block->panel->flag |= PNL_CLOSEDY;
if (block->panel->snap & PNL_SNAP_BOTTOM)
if (block->panel->snap & PNL_SNAP_BOTTOM) {
block->panel->ofsy = -block->panel->sizey;
}
if (event == LEFTMOUSE) {
ui_panel_drag_collapse_handler_add(C, true);
@@ -1588,8 +1706,12 @@ static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, in
for (pa = ar->panels.first; pa; pa = pa->next) {
if (pa->paneltab == block->panel) {
if (block->panel->flag & PNL_CLOSED) pa->flag |= PNL_CLOSED;
else pa->flag &= ~PNL_CLOSED;
if (block->panel->flag & PNL_CLOSED) {
pa->flag |= PNL_CLOSED;
}
else {
pa->flag &= ~PNL_CLOSED;
}
}
}
}
@@ -2129,8 +2251,9 @@ static int ui_handle_panel_category_cycling(const wmEvent *event, ARegion *ar, c
(event->mval[0] > ((PanelCategoryDyn *)ar->panels_category.first)->rect.xmin));
/* if mouse is inside non-tab region, ctrl key is required */
if (is_mousewheel && !event->ctrl && !inside_tabregion)
if (is_mousewheel && !event->ctrl && !inside_tabregion) {
return WM_UI_HANDLER_CONTINUE;
}
if (active_but && ui_but_supports_cycling(active_but)) {
@@ -2238,11 +2361,13 @@ int ui_handler_panel_region(bContext *C, const wmEvent *event, ARegion *ar, cons
if (event->type == AKEY && ((event->ctrl + event->oskey + event->shift + event->alt) == 0)) {
if (pa->flag & PNL_CLOSEDY) {
if ((block->rect.ymax <= my) && (block->rect.ymax + PNL_HEADER >= my))
if ((block->rect.ymax <= my) && (block->rect.ymax + PNL_HEADER >= my)) {
ui_handle_panel_header(C, block, mx, my, event->type, event->ctrl, event->shift);
}
}
else
else {
ui_handle_panel_header(C, block, mx, my, event->type, event->ctrl, event->shift);
}
retval = WM_UI_HANDLER_BREAK;
continue;
@@ -2305,11 +2430,13 @@ int ui_handler_panel_region(bContext *C, const wmEvent *event, ARegion *ar, cons
/* if panel is closed, only zoom if mouse is over the header */
if (pa->flag & (PNL_CLOSEDX | PNL_CLOSEDY)) {
if (inside_header)
if (inside_header) {
zoom = 1;
}
}
else
else {
zoom = 1;
}
if (zoom) {
ScrArea *sa = CTX_wm_area(C);
@@ -2317,8 +2444,12 @@ int ui_handler_panel_region(bContext *C, const wmEvent *event, ARegion *ar, cons
if (sa->spacetype != SPACE_PROPERTIES) {
if (!(pa->control & UI_PNL_SCALE)) {
if (event->type == PADPLUSKEY) sl->blockscale += 0.1;
else sl->blockscale -= 0.1;
if (event->type == PADPLUSKEY) {
sl->blockscale += 0.1;
}
else {
sl->blockscale -= 0.1;
}
CLAMP(sl->blockscale, 0.6, 1.0);
ED_region_tag_redraw(ar);
@@ -2349,28 +2480,35 @@ static int ui_handler_panel(bContext *C, const wmEvent *event, void *userdata)
ARegion *ar = CTX_wm_region(C);
int align = panel_aligned(sa, ar);
if (align)
if (align) {
panel_activate_state(C, panel, PANEL_STATE_ANIMATION);
else
}
else {
panel_activate_state(C, panel, PANEL_STATE_EXIT);
}
}
else if (event->type == MOUSEMOVE) {
if (data->state == PANEL_STATE_DRAG)
if (data->state == PANEL_STATE_DRAG) {
ui_do_drag(C, event, panel);
}
}
else if (event->type == TIMER && event->customdata == data->animtimer) {
if (data->state == PANEL_STATE_ANIMATION)
if (data->state == PANEL_STATE_ANIMATION) {
ui_do_animate(C, panel);
else if (data->state == PANEL_STATE_DRAG)
}
else if (data->state == PANEL_STATE_DRAG) {
ui_do_drag(C, event, panel);
}
}
data = panel->activedata;
if (data && data->state == PANEL_STATE_ANIMATION)
if (data && data->state == PANEL_STATE_ANIMATION) {
return WM_UI_HANDLER_CONTINUE;
else
}
else {
return WM_UI_HANDLER_BREAK;
}
}
static void ui_handler_remove_panel(bContext *C, void *userdata)
@@ -2386,8 +2524,9 @@ static void panel_activate_state(const bContext *C, Panel *pa, uiHandlePanelStat
wmWindow *win = CTX_wm_window(C);
ARegion *ar = CTX_wm_region(C);
if (data && data->state == state)
if (data && data->state == state) {
return;
}
if (state == PANEL_STATE_EXIT || state == PANEL_STATE_ANIMATION) {
if (data && data->state != PANEL_STATE_ANIMATION) {
@@ -2403,8 +2542,9 @@ static void panel_activate_state(const bContext *C, Panel *pa, uiHandlePanelStat
pa->flag &= ~PNL_SELECT;
}
else
else {
pa->flag |= PNL_SELECT;
}
if (data && data->animtimer) {
WM_event_remove_timer(CTX_wm_manager(C), win, data->animtimer);
@@ -2425,8 +2565,9 @@ static void panel_activate_state(const bContext *C, Panel *pa, uiHandlePanelStat
WM_event_add_ui_handler(C, &win->modalhandlers, ui_handler_panel, ui_handler_remove_panel, pa, 0);
}
if (ELEM(state, PANEL_STATE_ANIMATION, PANEL_STATE_DRAG))
if (ELEM(state, PANEL_STATE_ANIMATION, PANEL_STATE_DRAG)) {
data->animtimer = WM_event_add_timer(CTX_wm_manager(C), win, TIMER, ANIMATION_INTERVAL);
}
data->state = state;
data->startx = win->eventstate->x;

View File

@@ -81,18 +81,24 @@ bool ui_but_is_toggle(const uiBut *but)
bool ui_but_is_interactive(const uiBut *but, const bool labeledit)
{
/* note, UI_BTYPE_LABEL is included for highlights, this allows drags */
if ((but->type == UI_BTYPE_LABEL) && but->dragpoin == NULL)
if ((but->type == UI_BTYPE_LABEL) && but->dragpoin == NULL) {
return false;
if (ELEM(but->type, UI_BTYPE_ROUNDBOX, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE, UI_BTYPE_LISTBOX))
}
if (ELEM(but->type, UI_BTYPE_ROUNDBOX, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE, UI_BTYPE_LISTBOX)) {
return false;
if (but->flag & UI_HIDDEN)
}
if (but->flag & UI_HIDDEN) {
return false;
if (but->flag & UI_SCROLLED)
}
if (but->flag & UI_SCROLLED) {
return false;
if ((but->type == UI_BTYPE_TEXT) && (but->dt == UI_EMBOSS_NONE) && !labeledit)
}
if ((but->type == UI_BTYPE_TEXT) && (but->dt == UI_EMBOSS_NONE) && !labeledit) {
return false;
if ((but->type == UI_BTYPE_LISTROW) && labeledit)
}
if ((but->type == UI_BTYPE_LISTROW) && labeledit) {
return false;
}
return true;
}
@@ -175,13 +181,15 @@ static bool ui_but_isect_pie_seg(const uiBlock *block, const uiBut *but)
const float angle_range = (block->pie_data.flags & UI_PIE_DEGREES_RANGE_LARGE) ? M_PI_4 : M_PI_4 / 2.0;
float vec[2];
if (block->pie_data.flags & UI_PIE_INVALID_DIR)
if (block->pie_data.flags & UI_PIE_INVALID_DIR) {
return false;
}
ui_but_pie_dir(but->pie_dir, vec);
if (saacos(dot_v2v2(vec, block->pie_data.pie_dir)) < angle_range)
if (saacos(dot_v2v2(vec, block->pie_data.pie_dir)) < angle_range) {
return true;
}
return false;
}
@@ -195,8 +203,9 @@ bool ui_but_contains_point_px(const uiBut *but, const ARegion *ar, int x, int y)
{
uiBlock *block = but->block;
float mx, my;
if (!ui_region_contains_point_px(ar, x, y))
if (!ui_region_contains_point_px(ar, x, y)) {
return false;
}
mx = x;
my = y;
@@ -246,10 +255,12 @@ uiBut *ui_but_find_mouse_over_ex(ARegion *ar, const int x, const int y, const bo
uiBut *but, *butover = NULL;
float mx, my;
// if (!win->active)
// if (!win->active) {
// return NULL;
if (!ui_region_contains_point_px(ar, x, y))
// }
if (!ui_region_contains_point_px(ar, x, y)) {
return NULL;
}
for (block = ar->uiblocks.first; block; block = block->next) {
mx = x;
@@ -294,8 +305,9 @@ uiBut *ui_list_find_mouse_over_ex(ARegion *ar, int x, int y)
uiBut *but;
float mx, my;
if (!ui_region_contains_point_px(ar, x, y))
if (!ui_region_contains_point_px(ar, x, y)) {
return NULL;
}
for (block = ar->uiblocks.first; block; block = block->next) {
mx = x;
@@ -328,7 +340,9 @@ uiBut *ui_but_prev(uiBut *but)
{
while (but->prev) {
but = but->prev;
if (ui_but_is_editable(but)) return but;
if (ui_but_is_editable(but)) {
return but;
}
}
return NULL;
}
@@ -337,7 +351,9 @@ uiBut *ui_but_next(uiBut *but)
{
while (but->next) {
but = but->next;
if (ui_but_is_editable(but)) return but;
if (ui_but_is_editable(but)) {
return but;
}
}
return NULL;
}
@@ -348,7 +364,9 @@ uiBut *ui_but_first(uiBlock *block)
but = block->buttons.first;
while (but) {
if (ui_but_is_editable(but)) return but;
if (ui_but_is_editable(but)) {
return but;
}
but = but->next;
}
return NULL;
@@ -360,7 +378,9 @@ uiBut *ui_but_last(uiBlock *block)
but = block->buttons.last;
while (but) {
if (ui_but_is_editable(but)) return but;
if (ui_but_is_editable(but)) {
return but;
}
but = but->prev;
}
return NULL;
@@ -438,10 +458,13 @@ uiBut *ui_region_find_active_but(ARegion *ar)
uiBlock *block;
uiBut *but;
for (block = ar->uiblocks.first; block; block = block->next)
for (but = block->buttons.first; but; but = but->next)
if (but->active)
for (block = ar->uiblocks.first; block; block = block->next) {
for (but = block->buttons.first; but; but = but->next) {
if (but->active) {
return but;
}
}
}
return NULL;
}
@@ -461,8 +484,9 @@ bool ui_region_contains_point_px(const ARegion *ar, int x, int y)
/* check if the mouse is in the region */
if (!BLI_rcti_isect_pt(&winrct, x, y)) {
for (uiBlock *block = ar->uiblocks.first; block; block = block->next)
for (uiBlock *block = ar->uiblocks.first; block; block = block->next) {
block->auto_open = false;
}
return false;
}

View File

@@ -178,8 +178,9 @@ static void ui_update_color_picker_buts_rgb(
/* this updates button strings,
* is hackish... but button pointers are on stack of caller function */
for (bt = block->buttons.first; bt; bt = bt->next) {
if (bt->custom_data != cpicker)
if (bt->custom_data != cpicker) {
continue;
}
if (bt->rnaprop) {
ui_but_v3_set(bt, rgb);
@@ -201,9 +202,15 @@ static void ui_update_color_picker_buts_rgb(
IMB_colormanagement_scene_linear_to_srgb_v3(rgb_hex);
}
if (rgb_hex[0] > 1.0f) rgb_hex[0] = modf(rgb_hex[0], &intpart);
if (rgb_hex[1] > 1.0f) rgb_hex[1] = modf(rgb_hex[1], &intpart);
if (rgb_hex[2] > 1.0f) rgb_hex[2] = modf(rgb_hex[2], &intpart);
if (rgb_hex[0] > 1.0f) {
rgb_hex[0] = modf(rgb_hex[0], &intpart);
}
if (rgb_hex[1] > 1.0f) {
rgb_hex[1] = modf(rgb_hex[1], &intpart);
}
if (rgb_hex[2] > 1.0f) {
rgb_hex[2] = modf(rgb_hex[2], &intpart);
}
rgb_float_to_uchar(rgb_hex_uchar, rgb_hex);
BLI_snprintf(col, sizeof(col), "%02X%02X%02X", UNPACK3_EX((uint), rgb_hex_uchar, ));
@@ -252,8 +259,9 @@ static void ui_colorpicker_rna_cb(bContext *UNUSED(C), void *bt1, void *UNUSED(a
but, but->block, but->custom_data, rgb);
}
if (popup)
if (popup) {
popup->menuretval = UI_RETURN_UPDATE;
}
}
static void ui_color_wheel_rna_cb(bContext *UNUSED(C), void *bt1, void *UNUSED(arg))
@@ -271,8 +279,9 @@ static void ui_color_wheel_rna_cb(bContext *UNUSED(C), void *bt1, void *UNUSED(a
ui_update_color_picker_buts_rgb(but, but->block, cpicker, rgb);
if (popup)
if (popup) {
popup->menuretval = UI_RETURN_UPDATE;
}
}
static void ui_colorpicker_hex_rna_cb(bContext *UNUSED(C), void *bt1, void *hexcl)
@@ -292,8 +301,9 @@ static void ui_colorpicker_hex_rna_cb(bContext *UNUSED(C), void *bt1, void *hexc
ui_update_color_picker_buts_rgb(but, but->block, cpicker, rgb);
if (popup)
if (popup) {
popup->menuretval = UI_RETURN_UPDATE;
}
}
static void ui_popup_close_cb(bContext *UNUSED(C), void *bt1, void *UNUSED(arg))
@@ -589,10 +599,12 @@ static int ui_colorpicker_small_wheel_cb(const bContext *UNUSED(C), uiBlock *blo
{
float add = 0.0f;
if (event->type == WHEELUPMOUSE)
if (event->type == WHEELUPMOUSE) {
add = 0.05f;
else if (event->type == WHEELDOWNMOUSE)
}
else if (event->type == WHEELDOWNMOUSE) {
add = -0.05f;
}
if (add != 0.0f) {
uiBut *but;
@@ -615,8 +627,9 @@ static int ui_colorpicker_small_wheel_cb(const bContext *UNUSED(C), uiBlock *blo
ui_but_v3_set(but, rgb);
ui_update_color_picker_buts_rgb(but, block, cpicker, rgb);
if (popup)
if (popup) {
popup->menuretval = UI_RETURN_UPDATE;
}
return 1;
}

View File

@@ -75,8 +75,9 @@ static uiBlock *ui_block_func_PIE(bContext *UNUSED(C), uiPopupBlockHandle *handl
/* in some cases we create the block before the region,
* so we set it delayed here if necessary */
if (BLI_findindex(&handle->region->uiblocks, block) == -1)
if (BLI_findindex(&handle->region->uiblocks, block) == -1) {
UI_block_region_set(block, handle->region);
}
UI_block_layout_resolve(block, &width, &height);
@@ -134,8 +135,9 @@ uiPieMenu *UI_pie_menu_begin(struct bContext *C, const char *title, int icon, co
event_type = EVENT_NONE;
pie->block_radial->pie_data.flags |= UI_PIE_CLICK_STYLE;
}
else
else {
event_type = win->last_pie_event;
}
}
else {
event_type = event->type;

View File

@@ -480,8 +480,9 @@ void UI_popup_menu_reports(bContext *C, ReportList *reports)
uiPopupMenu *pup = NULL;
uiLayout *layout;
if (!CTX_wm_window(C))
if (!CTX_wm_window(C)) {
return;
}
for (report = reports->list.first; report; report = report->next) {
int icon;

View File

@@ -153,8 +153,9 @@ static uiBlock *ui_block_func_POPOVER(bContext *C, uiPopupBlockHandle *handle, v
/* If menu slides out of other menu, override direction. */
bool slideout = ui_block_is_menu(pup->but->block);
if (slideout)
if (slideout) {
UI_block_direction_set(block, UI_DIR_RIGHT);
}
/* Store the button location for positioning the popover arrow hint. */
if (!handle->refresh) {

View File

@@ -95,10 +95,12 @@ static void ui_popup_block_position(wmWindow *window, ARegion *butregion, uiBut
/* widget_roundbox_set has this correction too, keep in sync */
if (but->type != UI_BTYPE_PULLDOWN) {
if (but->drawflag & UI_BUT_ALIGN_TOP)
if (but->drawflag & UI_BUT_ALIGN_TOP) {
butrct.ymax += U.pixelsize;
if (but->drawflag & UI_BUT_ALIGN_LEFT)
}
if (but->drawflag & UI_BUT_ALIGN_LEFT) {
butrct.xmin -= U.pixelsize;
}
}
handle->prev_butrct = butrct;
@@ -148,44 +150,46 @@ static void ui_popup_block_position(wmWindow *window, ARegion *butregion, uiBut
const float max_size_y = max_ff(size_y, handle->max_size_y);
/* check if there's space at all */
if (butrct.xmin - max_size_x + center_x > 0.0f) left = 1;
if (butrct.xmax + max_size_x - center_x < win_x) right = 1;
if (butrct.ymin - max_size_y + center_y > 0.0f) down = 1;
if (butrct.ymax + max_size_y - center_y < win_y) top = 1;
if (butrct.xmin - max_size_x + center_x > 0.0f) { left = 1; }
if (butrct.xmax + max_size_x - center_x < win_x) { right = 1; }
if (butrct.ymin - max_size_y + center_y > 0.0f) { down = 1; }
if (butrct.ymax + max_size_y - center_y < win_y) { top = 1; }
if (top == 0 && down == 0) {
if (butrct.ymin - max_size_y < win_y - butrct.ymax - max_size_y)
if (butrct.ymin - max_size_y < win_y - butrct.ymax - max_size_y) {
top = 1;
else
}
else {
down = 1;
}
}
dir1 = (block->direction & UI_DIR_ALL);
/* Secondary directions. */
if (dir1 & (UI_DIR_UP | UI_DIR_DOWN)) {
if (dir1 & UI_DIR_LEFT) dir2 = UI_DIR_LEFT;
else if (dir1 & UI_DIR_RIGHT) dir2 = UI_DIR_RIGHT;
if (dir1 & UI_DIR_LEFT) { dir2 = UI_DIR_LEFT; }
else if (dir1 & UI_DIR_RIGHT) { dir2 = UI_DIR_RIGHT; }
dir1 &= (UI_DIR_UP | UI_DIR_DOWN);
}
if ((dir2 == 0) && (dir1 == UI_DIR_LEFT || dir1 == UI_DIR_RIGHT)) dir2 = UI_DIR_DOWN;
if ((dir2 == 0) && (dir1 == UI_DIR_UP || dir1 == UI_DIR_DOWN)) dir2 = UI_DIR_LEFT;
if ((dir2 == 0) && (dir1 == UI_DIR_LEFT || dir1 == UI_DIR_RIGHT)) { dir2 = UI_DIR_DOWN; }
if ((dir2 == 0) && (dir1 == UI_DIR_UP || dir1 == UI_DIR_DOWN)) { dir2 = UI_DIR_LEFT; }
/* no space at all? don't change */
if (left || right) {
if (dir1 == UI_DIR_LEFT && left == 0) dir1 = UI_DIR_RIGHT;
if (dir1 == UI_DIR_RIGHT && right == 0) dir1 = UI_DIR_LEFT;
if (dir1 == UI_DIR_LEFT && left == 0) { dir1 = UI_DIR_RIGHT; }
if (dir1 == UI_DIR_RIGHT && right == 0) { dir1 = UI_DIR_LEFT; }
/* this is aligning, not append! */
if (dir2 == UI_DIR_LEFT && right == 0) dir2 = UI_DIR_RIGHT;
if (dir2 == UI_DIR_RIGHT && left == 0) dir2 = UI_DIR_LEFT;
if (dir2 == UI_DIR_LEFT && right == 0) { dir2 = UI_DIR_RIGHT; }
if (dir2 == UI_DIR_RIGHT && left == 0) { dir2 = UI_DIR_LEFT; }
}
if (down || top) {
if (dir1 == UI_DIR_UP && top == 0) dir1 = UI_DIR_DOWN;
if (dir1 == UI_DIR_DOWN && down == 0) dir1 = UI_DIR_UP;
if (dir1 == UI_DIR_UP && top == 0) { dir1 = UI_DIR_DOWN; }
if (dir1 == UI_DIR_DOWN && down == 0) { dir1 = UI_DIR_UP; }
BLI_assert(dir2 != UI_DIR_UP);
// if (dir2 == UI_DIR_UP && top == 0) dir2 = UI_DIR_DOWN;
if (dir2 == UI_DIR_DOWN && down == 0) dir2 = UI_DIR_UP;
// if (dir2 == UI_DIR_UP && top == 0) { dir2 = UI_DIR_DOWN; }
if (dir2 == UI_DIR_DOWN && down == 0) { dir2 = UI_DIR_UP; }
}
handle->prev_dir1 = dir1;
@@ -203,18 +207,18 @@ static void ui_popup_block_position(wmWindow *window, ARegion *butregion, uiBut
if (dir1 == UI_DIR_LEFT) {
offset_x = butrct.xmin - block->rect.xmax;
if (dir2 == UI_DIR_UP) offset_y = butrct.ymin - block->rect.ymin - center_y - UI_MENU_PADDING;
else offset_y = butrct.ymax - block->rect.ymax + center_y + UI_MENU_PADDING;
if (dir2 == UI_DIR_UP) { offset_y = butrct.ymin - block->rect.ymin - center_y - UI_MENU_PADDING; }
else { offset_y = butrct.ymax - block->rect.ymax + center_y + UI_MENU_PADDING; }
}
else if (dir1 == UI_DIR_RIGHT) {
offset_x = butrct.xmax - block->rect.xmin;
if (dir2 == UI_DIR_UP) offset_y = butrct.ymin - block->rect.ymin - center_y - UI_MENU_PADDING;
else offset_y = butrct.ymax - block->rect.ymax + center_y + UI_MENU_PADDING;
if (dir2 == UI_DIR_UP) { offset_y = butrct.ymin - block->rect.ymin - center_y - UI_MENU_PADDING; }
else { offset_y = butrct.ymax - block->rect.ymax + center_y + UI_MENU_PADDING; }
}
else if (dir1 == UI_DIR_UP) {
offset_y = butrct.ymax - block->rect.ymin;
if (dir2 == UI_DIR_RIGHT) offset_x = butrct.xmax - block->rect.xmax + center_x;
else offset_x = butrct.xmin - block->rect.xmin - center_x;
if (dir2 == UI_DIR_RIGHT) { offset_x = butrct.xmax - block->rect.xmax + center_x; }
else { offset_x = butrct.xmin - block->rect.xmin - center_x; }
/* changed direction? */
if ((dir1 & block->direction) == 0) {
/* TODO: still do */
@@ -223,8 +227,8 @@ static void ui_popup_block_position(wmWindow *window, ARegion *butregion, uiBut
}
else if (dir1 == UI_DIR_DOWN) {
offset_y = butrct.ymin - block->rect.ymax;
if (dir2 == UI_DIR_RIGHT) offset_x = butrct.xmax - block->rect.xmax + center_x;
else offset_x = butrct.xmin - block->rect.xmin - center_x;
if (dir2 == UI_DIR_RIGHT) { offset_x = butrct.xmax - block->rect.xmax + center_x; }
else { offset_x = butrct.xmin - block->rect.xmin - center_x; }
/* changed direction? */
if ((dir1 & block->direction) == 0) {
/* TODO: still do */
@@ -257,23 +261,43 @@ static void ui_popup_block_position(wmWindow *window, ARegion *butregion, uiBut
/* when you are outside parent button, safety there should be smaller */
/* parent button to left */
if (midx < block->rect.xmin) block->safety.xmin = block->rect.xmin - 3;
else block->safety.xmin = block->rect.xmin - 40;
if (midx < block->rect.xmin) {
block->safety.xmin = block->rect.xmin - 3;
}
else {
block->safety.xmin = block->rect.xmin - 40;
}
/* parent button to right */
if (midx > block->rect.xmax) block->safety.xmax = block->rect.xmax + 3;
else block->safety.xmax = block->rect.xmax + 40;
if (midx > block->rect.xmax) {
block->safety.xmax = block->rect.xmax + 3;
}
else {
block->safety.xmax = block->rect.xmax + 40;
}
/* parent button on bottom */
if (midy < block->rect.ymin) block->safety.ymin = block->rect.ymin - 3;
else block->safety.ymin = block->rect.ymin - 40;
if (midy < block->rect.ymin) {
block->safety.ymin = block->rect.ymin - 3;
}
else {
block->safety.ymin = block->rect.ymin - 40;
}
/* parent button on top */
if (midy > block->rect.ymax) block->safety.ymax = block->rect.ymax + 3;
else block->safety.ymax = block->rect.ymax + 40;
if (midy > block->rect.ymax) {
block->safety.ymax = block->rect.ymax + 3;
}
else {
block->safety.ymax = block->rect.ymax + 40;
}
/* exception for switched pulldowns... */
if (dir1 && (dir1 & block->direction) == 0) {
if (dir2 == UI_DIR_RIGHT) block->safety.xmax = block->rect.xmax + 3;
if (dir2 == UI_DIR_LEFT) block->safety.xmin = block->rect.xmin - 3;
if (dir2 == UI_DIR_RIGHT) {
block->safety.xmax = block->rect.xmax + 3;
}
if (dir2 == UI_DIR_LEFT) {
block->safety.xmin = block->rect.xmin - 3;
}
}
block->direction = dir1;
}
@@ -335,8 +359,9 @@ static void ui_block_region_draw(const bContext *C, ARegion *ar)
{
uiBlock *block;
for (block = ar->uiblocks.first; block; block = block->next)
for (block = ar->uiblocks.first; block; block = block->next) {
UI_block_draw(C, block);
}
}
/**
@@ -409,11 +434,13 @@ void ui_popup_block_scrolltest(uiBlock *block)
block->flag &= ~(UI_BLOCK_CLIPBOTTOM | UI_BLOCK_CLIPTOP);
for (bt = block->buttons.first; bt; bt = bt->next)
for (bt = block->buttons.first; bt; bt = bt->next) {
bt->flag &= ~UI_SCROLLED;
}
if (block->buttons.first == block->buttons.last)
if (block->buttons.first == block->buttons.last) {
return;
}
/* mark buttons that are outside boundary */
for (bt = block->buttons.first; bt; bt = bt->next) {
@@ -430,12 +457,14 @@ void ui_popup_block_scrolltest(uiBlock *block)
/* mark buttons overlapping arrows, if we have them */
for (bt = block->buttons.first; bt; bt = bt->next) {
if (block->flag & UI_BLOCK_CLIPBOTTOM) {
if (bt->rect.ymin < block->rect.ymin + UI_MENU_SCROLL_ARROW)
if (bt->rect.ymin < block->rect.ymin + UI_MENU_SCROLL_ARROW) {
bt->flag |= UI_SCROLLED;
}
}
if (block->flag & UI_BLOCK_CLIPTOP) {
if (bt->rect.ymax > block->rect.ymax - UI_MENU_SCROLL_ARROW)
if (bt->rect.ymax > block->rect.ymax - UI_MENU_SCROLL_ARROW) {
bt->flag |= UI_SCROLLED;
}
}
}
}
@@ -454,8 +483,9 @@ static void ui_popup_block_remove(bContext *C, uiPopupBlockHandle *handle)
WM_event_add_mousemove(C);
}
if (handle->scrolltimer)
if (handle->scrolltimer) {
WM_event_remove_timer(CTX_wm_manager(C), win, handle->scrolltimer);
}
}
/**
@@ -485,10 +515,12 @@ uiBlock *ui_popup_block_refresh(
#endif
/* create ui block */
if (create_func)
if (create_func) {
block = create_func(C, ar, arg);
else
}
else {
block = handle_create_func(C, handle, arg);
}
/* callbacks _must_ leave this for us, otherwise we can't call UI_block_update_from_old */
BLI_assert(!block->endblock);
@@ -503,8 +535,9 @@ uiBlock *ui_popup_block_refresh(
MEM_freeN(handle);
handle = block->handle;
}
else
else {
block->handle = handle;
}
ar->regiondata = handle;
@@ -550,13 +583,21 @@ uiBlock *ui_popup_block_refresh(
/* only try translation if area is large enough */
if (BLI_rctf_size_x(&block->rect) < winx - (2.0f * win_width)) {
if (block->rect.xmin < win_width ) x_offset += win_width - block->rect.xmin;
if (block->rect.xmax > winx - win_width) x_offset += winx - win_width - block->rect.xmax;
if (block->rect.xmin < win_width ) {
x_offset += win_width - block->rect.xmin;
}
if (block->rect.xmax > winx - win_width) {
x_offset += winx - win_width - block->rect.xmax;
}
}
if (BLI_rctf_size_y(&block->rect) < winy - (2.0f * win_width)) {
if (block->rect.ymin < win_width ) y_offset += win_width - block->rect.ymin;
if (block->rect.ymax > winy - win_width) y_offset += winy - win_width - block->rect.ymax;
if (block->rect.ymin < win_width ) {
y_offset += win_width - block->rect.ymin;
}
if (block->rect.ymax > winy - win_width) {
y_offset += winy - win_width - block->rect.ymax;
}
}
/* if we are offsetting set up initial data for timeout functionality */
@@ -566,8 +607,9 @@ uiBlock *ui_popup_block_refresh(
UI_block_translate(block, x_offset, y_offset);
if (U.pie_initial_timeout > 0)
if (U.pie_initial_timeout > 0) {
block->pie_data.flags |= UI_PIE_INITIAL_DIRECTION;
}
}
ar->winrct.xmin = 0;

View File

@@ -108,8 +108,9 @@ bool UI_search_item_add(uiSearchItems *items, const char *name, void *poin, int
/* hijack for finding active item */
if (items->active) {
if (poin == items->active)
if (poin == items->active) {
items->offset_i = items->totitem;
}
items->totitem++;
return true;
}
@@ -125,12 +126,15 @@ bool UI_search_item_add(uiSearchItems *items, const char *name, void *poin, int
return true;
}
if (items->names)
if (items->names) {
BLI_strncpy(items->names[items->totitem], name, items->maxstrlen);
if (items->pointers)
}
if (items->pointers) {
items->pointers[items->totitem] = poin;
if (items->icons)
}
if (items->icons) {
items->icons[items->totitem] = iconid;
}
items->totitem++;
@@ -275,8 +279,9 @@ void ui_searchbox_event(bContext *C, ARegion *ar, uiBut *but, const wmEvent *eve
uiSearchboxData *data = ar->regiondata;
int type = event->type, val = event->val;
if (type == MOUSEPAN)
if (type == MOUSEPAN) {
ui_pan_to_scroll(event, &type, &val);
}
switch (type) {
case WHEELUPMOUSE:
@@ -354,8 +359,9 @@ void ui_searchbox_update(bContext *C, ARegion *ar, uiBut *but, const bool reset)
}
/* callback */
if (but->search_func)
if (but->search_func) {
but->search_func(C, but->search_arg, but->editstr, &data->items);
}
/* handle case where editstr is equal to one of items */
if (reset && data->active == -1) {
@@ -369,8 +375,9 @@ void ui_searchbox_update(bContext *C, ARegion *ar, uiBut *but, const bool reset)
break;
}
}
if (data->items.totitem == 1 && but->editstr[0])
if (data->items.totitem == 1 && but->editstr[0]) {
data->active = 0;
}
}
/* validate selected item */
@@ -521,8 +528,9 @@ ARegion *ui_searchbox_create_generic(bContext *C, ARegion *butregion, uiBut *but
/* special case, hardcoded feature, not draw backdrop when called from menus,
* assume for design that popup already added it */
if (but->block->flag & UI_BLOCK_SEARCH_MENU)
if (but->block->flag & UI_BLOCK_SEARCH_MENU) {
data->noback = true;
}
if (but->a1 > 0 && but->a2 > 0) {
data->preview = true;
@@ -605,8 +613,9 @@ ARegion *ui_searchbox_create_generic(bContext *C, ARegion *butregion, uiBut *but
if (rect_i.ymin < 0) {
int newy1 = but->rect.ymax + ofsy;
if (butregion->v2d.cur.xmin != butregion->v2d.cur.xmax)
if (butregion->v2d.cur.xmin != butregion->v2d.cur.xmax) {
newy1 = UI_view2d_view_to_region_y(&butregion->v2d, newy1);
}
newy1 += butregion->winrct.ymin;
@@ -645,8 +654,9 @@ ARegion *ui_searchbox_create_generic(bContext *C, ARegion *butregion, uiBut *but
data->items.names = MEM_callocN(data->items.maxitem * sizeof(void *), "search names");
data->items.pointers = MEM_callocN(data->items.maxitem * sizeof(void *), "search pointers");
data->items.icons = MEM_callocN(data->items.maxitem * sizeof(int), "search icons");
for (i = 0; i < data->items.maxitem; i++)
for (i = 0; i < data->items.maxitem; i++) {
data->items.names[i] = MEM_callocN(but->hardmax + 1, "search pointers");
}
return ar;
}
@@ -784,8 +794,9 @@ void ui_but_search_refresh(uiBut *but)
items->maxitem = 10;
items->maxstrlen = 256;
items->names = MEM_callocN(items->maxitem * sizeof(void *), "search names");
for (x1 = 0; x1 < items->maxitem; x1++)
for (x1 = 0; x1 < items->maxitem; x1++) {
items->names[x1] = MEM_callocN(but->hardmax + 1, "search names");
}
but->search_func(but->block->evil_C, but->search_arg, but->drawstr, items);

View File

@@ -839,20 +839,27 @@ static uiTooltipData *ui_tooltip_data_from_button(bContext *C, uiBut *but)
}
/* Free strinfo's... */
if (but_tip.strinfo)
if (but_tip.strinfo) {
MEM_freeN(but_tip.strinfo);
if (enum_label.strinfo)
}
if (enum_label.strinfo) {
MEM_freeN(enum_label.strinfo);
if (enum_tip.strinfo)
}
if (enum_tip.strinfo) {
MEM_freeN(enum_tip.strinfo);
if (op_keymap.strinfo)
}
if (op_keymap.strinfo) {
MEM_freeN(op_keymap.strinfo);
if (prop_keymap.strinfo)
}
if (prop_keymap.strinfo) {
MEM_freeN(prop_keymap.strinfo);
if (rna_struct.strinfo)
}
if (rna_struct.strinfo) {
MEM_freeN(rna_struct.strinfo);
if (rna_prop.strinfo)
}
if (rna_prop.strinfo) {
MEM_freeN(rna_prop.strinfo);
}
if (data->fields_len == 0) {
MEM_freeN(data);

View File

@@ -58,8 +58,9 @@ void ui_region_temp_remove(bContext *C, bScreen *sc, ARegion *ar)
BLI_assert(ar->regiontype == RGN_TYPE_TEMPORARY);
BLI_assert(BLI_findindex(&sc->regionbase, ar) != -1);
if (win)
if (win) {
wm_draw_region_clear(win, ar);
}
ED_region_exit(C, ar);
BKE_area_region_free(NULL, ar); /* NULL: no spacetype */

View File

@@ -257,16 +257,19 @@ void UI_fontstyle_draw_rotated(const uiFontStyle *fs, const rcti *rect, const ch
BLF_shadow_offset(fs->uifont_id, fs->shadx, fs->shady);
}
if (fs->kerning == 1)
if (fs->kerning == 1) {
BLF_enable(fs->uifont_id, BLF_KERNING_DEFAULT);
}
BLF_draw(fs->uifont_id, str, BLF_DRAW_STR_DUMMY_MAX);
BLF_disable(fs->uifont_id, BLF_ROTATION);
BLF_disable(fs->uifont_id, BLF_CLIPPING);
if (fs->shadow)
if (fs->shadow) {
BLF_disable(fs->uifont_id, BLF_SHADOW);
if (fs->kerning == 1)
}
if (fs->kerning == 1) {
BLF_disable(fs->uifont_id, BLF_KERNING_DEFAULT);
}
}
/**
@@ -277,16 +280,18 @@ void UI_fontstyle_draw_rotated(const uiFontStyle *fs, const rcti *rect, const ch
*/
void UI_fontstyle_draw_simple(const uiFontStyle *fs, float x, float y, const char *str, const uchar col[4])
{
if (fs->kerning == 1)
if (fs->kerning == 1) {
BLF_enable(fs->uifont_id, BLF_KERNING_DEFAULT);
}
UI_fontstyle_set(fs);
BLF_position(fs->uifont_id, x, y, 0.0f);
BLF_color4ubv(fs->uifont_id, col);
BLF_draw(fs->uifont_id, str, BLF_DRAW_STR_DUMMY_MAX);
if (fs->kerning == 1)
if (fs->kerning == 1) {
BLF_disable(fs->uifont_id, BLF_KERNING_DEFAULT);
}
}
/**
@@ -296,8 +301,9 @@ void UI_fontstyle_draw_simple_backdrop(
const uiFontStyle *fs, float x, float y, const char *str,
const float col_fg[4], const float col_bg[4])
{
if (fs->kerning == 1)
if (fs->kerning == 1) {
BLF_enable(fs->uifont_id, BLF_KERNING_DEFAULT);
}
UI_fontstyle_set(fs);
@@ -324,8 +330,9 @@ void UI_fontstyle_draw_simple_backdrop(
BLF_color4fv(fs->uifont_id, col_fg);
BLF_draw(fs->uifont_id, str, BLF_DRAW_STR_DUMMY_MAX);
if (fs->kerning == 1)
if (fs->kerning == 1) {
BLF_disable(fs->uifont_id, BLF_KERNING_DEFAULT);
}
}
@@ -373,14 +380,17 @@ int UI_fontstyle_string_width(const uiFontStyle *fs, const char *str)
{
int width;
if (fs->kerning == 1) /* for BLF_width */
if (fs->kerning == 1) {
/* for BLF_width */
BLF_enable(fs->uifont_id, BLF_KERNING_DEFAULT);
}
UI_fontstyle_set(fs);
width = BLF_width(fs->uifont_id, str, BLF_DRAW_STR_DUMMY_MAX);
if (fs->kerning == 1)
if (fs->kerning == 1) {
BLF_disable(fs->uifont_id, BLF_KERNING_DEFAULT);
}
return width;
}
@@ -404,8 +414,9 @@ void uiStyleInit(void)
uchar *monofont_ttf = (uchar *)datatoc_bmonofont_ttf;
/* recover from uninitialized dpi */
if (U.dpi == 0)
if (U.dpi == 0) {
U.dpi = 72;
}
CLAMP(U.dpi, 48, 144);
for (font = U.uifonts.first; font; font = font->next) {
@@ -479,8 +490,9 @@ void uiStyleInit(void)
BLF_default_set(font->blf_id);
if (font->blf_id == -1) {
if (G.debug & G_DEBUG)
if (G.debug & G_DEBUG) {
printf("%s: error, no fonts available\n", __func__);
}
}
else {
/* ? just for speed to initialize?
@@ -563,8 +575,9 @@ void uiStyleInit(void)
* \note This isn't good that the render font depends on the preferences,
* keep for now though, since without this there is no way to display many unicode chars.
*/
if (blf_mono_font_render == -1)
if (blf_mono_font_render == -1) {
blf_mono_font_render = BLF_load_mem_unique("monospace", monofont_ttf, monofont_size);
}
BLF_size(blf_mono_font_render, 12 * U.pixelsize, 72);
}

View File

@@ -143,8 +143,9 @@ static void template_add_button_search_menu(
UI_but_drawflag_enable(but, UI_BUT_ICON_LEFT);
}
if ((idfrom && idfrom->lib) || !editable)
if ((idfrom && idfrom->lib) || !editable) {
UI_but_flag_enable(but, UI_BUT_DISABLED);
}
if (use_big_size) {
uiLayoutRow(layout, true);
}
@@ -165,8 +166,9 @@ static void template_add_button_search_menu(
}
UI_but_drawflag_enable(but, UI_BUT_ICON_LEFT);
if ((idfrom && idfrom->lib) || !editable)
if ((idfrom && idfrom->lib) || !editable) {
UI_but_flag_enable(but, UI_BUT_DISABLED);
}
}
}
@@ -451,8 +453,12 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event)
break;
case UI_ID_FAKE_USER:
if (id) {
if (id->flag & LIB_FAKEUSER) id_us_plus(id);
else id_us_min(id);
if (id->flag & LIB_FAKEUSER) {
id_us_plus(id);
}
else {
id_us_min(id);
}
}
else {
return;
@@ -665,8 +671,9 @@ static void template_ID(
block = uiLayoutGetBlock(layout);
UI_block_align_begin(block);
if (idptr.type)
if (idptr.type) {
type = idptr.type;
}
if (flag & UI_ID_BROWSE) {
template_add_button_search_menu(
@@ -686,7 +693,9 @@ static void template_ID(
block, UI_BTYPE_TEXT, 0, name, 0, 0, TEMPLATE_SEARCH_TEXTBUT_WIDTH, TEMPLATE_SEARCH_TEXTBUT_HEIGHT,
&idptr, "name", -1, 0, 0, -1, -1, RNA_struct_ui_description(type));
UI_but_funcN_set(but, template_id_cb, MEM_dupallocN(template_ui), POINTER_FROM_INT(UI_ID_RENAME));
if (user_alert) UI_but_flag_enable(but, UI_BUT_REDALERT);
if (user_alert) {
UI_but_flag_enable(but, UI_BUT_REDALERT);
}
if (id->lib) {
if (id->tag & LIB_TAG_INDIRECT) {
@@ -788,8 +797,9 @@ static void template_ID(
UI_but_funcN_set(but, template_id_cb, MEM_dupallocN(template_ui), POINTER_FROM_INT(UI_ID_OPEN));
}
if ((idfrom && idfrom->lib) || !editable)
if ((idfrom && idfrom->lib) || !editable) {
UI_but_flag_enable(but, UI_BUT_DISABLED);
}
}
/* delete button */
@@ -925,10 +935,12 @@ static void ui_template_id(
template_ui->filter = 0;
}
if (newop)
if (newop) {
flag |= UI_ID_ADD_NEW;
if (openop)
}
if (openop) {
flag |= UI_ID_OPEN;
}
type = RNA_property_pointer_type(ptr, prop);
idcode = RNA_type_to_ID_code(type);
@@ -1054,8 +1066,9 @@ void uiTemplateAnyID(
/* Label - either use the provided text, or will become "ID-Block:" */
if (text) {
if (text[0])
if (text[0]) {
uiItemL(row, text, ICON_NONE);
}
}
else {
uiItemL(row, IFACE_("ID-Block:"), ICON_NONE);
@@ -1349,9 +1362,11 @@ static void modifiers_convertToReal(bContext *C, void *ob_v, void *md_v)
static int modifier_can_delete(ModifierData *md)
{
/* fluid particle modifier can't be deleted here */
if (md->type == eModifierType_ParticleSystem)
if (((ParticleSystemModifierData *)md)->psys->part->type == PART_FLUID)
if (md->type == eModifierType_ParticleSystem) {
if (((ParticleSystemModifierData *)md)->psys->part->type == PART_FLUID) {
return 0;
}
}
return 1;
}
@@ -1597,10 +1612,12 @@ uiLayout *uiTemplateModifier(uiLayout *layout, bContext *C, PointerRNA *ptr)
vmd = modifiers_getVirtualModifierList(ob, &virtualModifierData);
for (i = 0; vmd; i++, vmd = vmd->next) {
if (md == vmd)
if (md == vmd) {
return draw_modifier(layout, scene, ob, md, i, cageIndex, lastCageIndex);
else if (vmd->mode & eModifierMode_Virtual)
}
else if (vmd->mode & eModifierMode_Virtual) {
i--;
}
}
return NULL;
@@ -1729,8 +1746,9 @@ uiLayout *uiTemplateGpencilModifier(uiLayout *layout, bContext *UNUSED(C), Point
/* find modifier and draw it */
vmd = ob->greasepencil_modifiers.first;
for (i = 0; vmd; i++, vmd = vmd->next) {
if (md == vmd)
if (md == vmd) {
return gpencil_draw_modifier(layout, ob, md);
}
}
return NULL;
@@ -1848,8 +1866,9 @@ uiLayout *uiTemplateShaderFx(uiLayout *layout, bContext *UNUSED(C), PointerRNA *
/* find modifier and draw it */
vfx = ob->shader_fx.first;
for (i = 0; vfx; i++, vfx = vfx->next) {
if (fx == vfx)
if (fx == vfx) {
return gpencil_draw_shaderfx(layout, ob, fx);
}
}
return NULL;
@@ -1939,8 +1958,9 @@ static void do_constraint_panels(bContext *C, void *ob_pt, int event)
case B_CONSTRAINT_CHANGETARGET:
{
Main *bmain = CTX_data_main(C);
if (ob->pose)
if (ob->pose) {
BKE_pose_tag_recalc(bmain, ob->pose); /* checks & sorts pose channels */
}
DEG_relations_tag_update(bmain);
break;
}
@@ -1950,13 +1970,20 @@ static void do_constraint_panels(bContext *C, void *ob_pt, int event)
}
/* note: RNA updates now call this, commenting else it gets called twice.
* if there are problems because of this, then rna needs changed update functions.
*
* object_test_constraints(ob);
* if (ob->pose) BKE_pose_update_constraint_flags(ob->pose); */
* if there are problems because of this, then rna needs changed update functions. */
#if 0
object_test_constraints(ob);
if (ob->pose) {
BKE_pose_update_constraint_flags(ob->pose);
}
#endif
if (ob->type == OB_ARMATURE) DEG_id_tag_update(&ob->id, ID_RECALC_GEOMETRY | ID_RECALC_TRANSFORM);
else DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM);
if (ob->type == OB_ARMATURE) {
DEG_id_tag_update(&ob->id, ID_RECALC_GEOMETRY | ID_RECALC_TRANSFORM);
}
else {
DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM);
}
WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, ob);
}
@@ -1984,14 +2011,17 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
/* exception for 'Null' constraint - it doesn't have constraint typeinfo! */
BLI_strncpy(typestr, (con->type == CONSTRAINT_TYPE_NULL) ? IFACE_("Null") : IFACE_("Unknown"), sizeof(typestr));
}
else
else {
BLI_strncpy(typestr, IFACE_(cti->name), sizeof(typestr));
}
/* determine whether constraint is proxy protected or not */
if (BKE_constraints_proxylocked_owner(ob, pchan))
if (BKE_constraints_proxylocked_owner(ob, pchan)) {
proxy_protected = (con->flag & CONSTRAINT_PROXY_LOCAL) == 0;
else
}
else {
proxy_protected = 0;
}
/* unless button has own callback, it adds this callback to button */
block = uiLayoutGetBlock(layout);
@@ -2018,14 +2048,16 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
uiDefBut(block, UI_BTYPE_LABEL, B_CONSTRAINT_TEST, typestr,
xco + 0.5f * UI_UNIT_X, yco, 5 * UI_UNIT_X, 0.9f * UI_UNIT_Y, NULL, 0.0, 0.0, 0.0, 0.0, "");
if (con->flag & CONSTRAINT_DISABLE)
if (con->flag & CONSTRAINT_DISABLE) {
uiLayoutSetRedAlert(row, true);
}
if (proxy_protected == 0) {
uiItemR(row, &ptr, "name", 0, "", ICON_NONE);
}
else
else {
uiItemL(row, con->name, ICON_NONE);
}
uiLayoutSetRedAlert(row, false);
@@ -2056,11 +2088,13 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
if (con->prev) {
prev_proxylock = (con->prev->flag & CONSTRAINT_PROXY_LOCAL) ? 0 : 1;
}
else
else {
prev_proxylock = 0;
}
}
else
else {
prev_proxylock = 0;
}
show_upbut = ((prev_proxylock == 0) && (con->prev));
show_downbut = (con->next) ? 1 : 0;
@@ -2076,11 +2110,13 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
/* up/down */
if (show_upbut || show_downbut) {
UI_block_align_begin(block);
if (show_upbut)
if (show_upbut) {
uiItemO(row, "", ICON_TRIA_UP, "CONSTRAINT_OT_move_up");
}
if (show_downbut)
if (show_downbut) {
uiItemO(row, "", ICON_TRIA_DOWN, "CONSTRAINT_OT_move_down");
}
UI_block_align_end(block);
}
@@ -2091,8 +2127,9 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
}
/* Set but-locks for protected settings (magic numbers are used here!) */
if (proxy_protected)
if (proxy_protected) {
UI_block_lock_set(block, true, IFACE_("Cannot edit Proxy-Protected Constraint"));
}
/* Draw constraint data */
if ((con->flag & CONSTRAINT_EXPAND) == 0) {
@@ -2134,8 +2171,9 @@ uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr)
/* hrms, the temporal constraint should not draw! */
if (con->type == CONSTRAINT_TYPE_KINEMATIC) {
bKinematicConstraint *data = con->data;
if (data->flag & CONSTRAINT_IK_TEMP)
if (data->flag & CONSTRAINT_IK_TEMP) {
return NULL;
}
}
return draw_constraint(layout, ob, con);
@@ -2187,20 +2225,26 @@ void uiTemplatePreview(
pparent = NULL;
if (id && (GS(id->name) == ID_TE)) {
if (parent && (GS(parent->name) == ID_MA))
if (parent && (GS(parent->name) == ID_MA)) {
pr_texture = &((Material *)parent)->pr_texture;
else if (parent && (GS(parent->name) == ID_WO))
}
else if (parent && (GS(parent->name) == ID_WO)) {
pr_texture = &((World *)parent)->pr_texture;
else if (parent && (GS(parent->name) == ID_LA))
}
else if (parent && (GS(parent->name) == ID_LA)) {
pr_texture = &((Light *)parent)->pr_texture;
else if (parent && (GS(parent->name) == ID_LS))
}
else if (parent && (GS(parent->name) == ID_LS)) {
pr_texture = &((FreestyleLineStyle *)parent)->pr_texture;
}
if (pr_texture) {
if (*pr_texture == TEX_PR_OTHER)
if (*pr_texture == TEX_PR_OTHER) {
pid = parent;
else if (*pr_texture == TEX_PR_BOTH)
}
else if (*pr_texture == TEX_PR_BOTH) {
pparent = parent;
}
}
}
@@ -2246,8 +2290,12 @@ void uiTemplatePreview(
/* add buttons */
if (pid && show_buttons) {
if (GS(pid->name) == ID_MA || (pparent && GS(pparent->name) == ID_MA)) {
if (GS(pid->name) == ID_MA) ma = (Material *)pid;
else ma = (Material *)pparent;
if (GS(pid->name) == ID_MA) {
ma = (Material *)pid;
}
else {
ma = (Material *)pparent;
}
/* Create RNA Pointer */
RNA_pointer_create(&ma->id, &RNA_Material, ma, &material_ptr);
@@ -2430,8 +2478,12 @@ static void colorband_add_cb(bContext *C, void *cb_v, void *coba_v)
float pos = 0.5f;
if (coba->tot > 1) {
if (coba->cur > 0) pos = (coba->data[coba->cur - 1].pos + coba->data[coba->cur].pos) * 0.5f;
else pos = (coba->data[coba->cur + 1].pos + coba->data[coba->cur].pos) * 0.5f;
if (coba->cur > 0) {
pos = (coba->data[coba->cur - 1].pos + coba->data[coba->cur].pos) * 0.5f;
}
else {
pos = (coba->data[coba->cur + 1].pos + coba->data[coba->cur].pos) * 0.5f;
}
}
if (BKE_colorband_element_add(coba, pos)) {
@@ -2569,12 +2621,14 @@ void uiTemplateColorRamp(uiLayout *layout, PointerRNA *ptr, const char *propname
ID *id;
rctf rect;
if (!prop || RNA_property_type(prop) != PROP_POINTER)
if (!prop || RNA_property_type(prop) != PROP_POINTER) {
return;
}
cptr = RNA_property_pointer_get(ptr, prop);
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_ColorRamp))
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_ColorRamp)) {
return;
}
cb = MEM_callocN(sizeof(RNAUpdateCb), "RNAUpdateCb");
cb->ptr = *ptr;
@@ -2733,12 +2787,14 @@ void uiTemplateHistogram(uiLayout *layout, PointerRNA *ptr, const char *propname
uiLayout *col;
Histogram *hist;
if (!prop || RNA_property_type(prop) != PROP_POINTER)
if (!prop || RNA_property_type(prop) != PROP_POINTER) {
return;
}
cptr = RNA_property_pointer_get(ptr, prop);
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Histogram))
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Histogram)) {
return;
}
hist = (Histogram *)cptr.data;
if (hist->height < UI_UNIT_Y) {
@@ -2768,12 +2824,14 @@ void uiTemplateWaveform(uiLayout *layout, PointerRNA *ptr, const char *propname)
uiLayout *col;
Scopes *scopes;
if (!prop || RNA_property_type(prop) != PROP_POINTER)
if (!prop || RNA_property_type(prop) != PROP_POINTER) {
return;
}
cptr = RNA_property_pointer_get(ptr, prop);
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Scopes))
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Scopes)) {
return;
}
scopes = (Scopes *)cptr.data;
col = uiLayoutColumn(layout, true);
@@ -2803,12 +2861,14 @@ void uiTemplateVectorscope(uiLayout *layout, PointerRNA *ptr, const char *propna
uiLayout *col;
Scopes *scopes;
if (!prop || RNA_property_type(prop) != PROP_POINTER)
if (!prop || RNA_property_type(prop) != PROP_POINTER) {
return;
}
cptr = RNA_property_pointer_get(ptr, prop);
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Scopes))
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Scopes)) {
return;
}
scopes = (Scopes *)cptr.data;
if (scopes->vecscope_height < UI_UNIT_Y) {
@@ -2858,28 +2918,36 @@ static void curvemap_buttons_zoom_out(bContext *C, void *cumap_v, void *UNUSED(u
if (BLI_rctf_size_x(&cumap->curr) < 20.0f * BLI_rctf_size_x(&cumap->clipr)) {
d = d1 = 0.15f * BLI_rctf_size_x(&cumap->curr);
if (cumap->flag & CUMA_DO_CLIP)
if (cumap->curr.xmin - d < cumap->clipr.xmin)
if (cumap->flag & CUMA_DO_CLIP) {
if (cumap->curr.xmin - d < cumap->clipr.xmin) {
d1 = cumap->curr.xmin - cumap->clipr.xmin;
}
}
cumap->curr.xmin -= d1;
d1 = d;
if (cumap->flag & CUMA_DO_CLIP)
if (cumap->curr.xmax + d > cumap->clipr.xmax)
if (cumap->flag & CUMA_DO_CLIP) {
if (cumap->curr.xmax + d > cumap->clipr.xmax) {
d1 = -cumap->curr.xmax + cumap->clipr.xmax;
}
}
cumap->curr.xmax += d1;
d = d1 = 0.15f * BLI_rctf_size_y(&cumap->curr);
if (cumap->flag & CUMA_DO_CLIP)
if (cumap->curr.ymin - d < cumap->clipr.ymin)
if (cumap->flag & CUMA_DO_CLIP) {
if (cumap->curr.ymin - d < cumap->clipr.ymin) {
d1 = cumap->curr.ymin - cumap->clipr.ymin;
}
}
cumap->curr.ymin -= d1;
d1 = d;
if (cumap->flag & CUMA_DO_CLIP)
if (cumap->curr.ymax + d > cumap->clipr.ymax)
if (cumap->flag & CUMA_DO_CLIP) {
if (cumap->curr.ymax + d > cumap->clipr.ymax) {
d1 = -cumap->curr.ymax + cumap->clipr.ymax;
}
}
cumap->curr.ymax += d1;
}
@@ -3067,8 +3135,9 @@ static void curvemap_buttons_reset(bContext *C, void *cb_v, void *cumap_v)
int a;
cumap->preset = CURVE_PRESET_LINE;
for (a = 0; a < CM_TOT; a++)
for (a = 0; a < CM_TOT; a++) {
curvemap_reset(cumap->cm + a, &cumap->clipr, cumap->preset, CURVEMAP_SLOPE_POSITIVE);
}
cumap->black[0] = cumap->black[1] = cumap->black[2] = 0.0f;
cumap->white[0] = cumap->white[1] = cumap->white[2] = 1.0f;
@@ -3163,11 +3232,13 @@ static void curvemap_buttons_layout(
UI_but_func_set(bt, curvemap_buttons_redraw, NULL, NULL);
}
}
else
else {
uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_RIGHT);
}
if (labeltype == 'h')
if (labeltype == 'h') {
bg = UI_GRAD_H;
}
/* operation buttons */
sub = uiLayoutRow(row, true);
@@ -3180,16 +3251,19 @@ static void curvemap_buttons_layout(
bt = uiDefIconBut(block, UI_BTYPE_BUT, 0, ICON_ZOOM_OUT, 0, 0, dx, dx, NULL, 0.0, 0.0, 0.0, 0.0, TIP_("Zoom out"));
UI_but_func_set(bt, curvemap_buttons_zoom_out, cumap, NULL);
if (brush)
if (brush) {
bt = uiDefIconBlockBut(block, curvemap_brush_tools_func, cumap, 0, ICON_DOWNARROW_HLT, 0, 0, dx, dx, TIP_("Tools"));
else if (neg_slope)
}
else if (neg_slope) {
bt = uiDefIconBlockBut(
block, curvemap_tools_negslope_func, cumap, 0, ICON_DOWNARROW_HLT,
0, 0, dx, dx, TIP_("Tools"));
else
}
else {
bt = uiDefIconBlockBut(
block, curvemap_tools_posslope_func, cumap, 0, ICON_DOWNARROW_HLT,
0, 0, dx, dx, TIP_("Tools"));
}
UI_but_funcN_set(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
@@ -3274,8 +3348,9 @@ void uiTemplateCurveMapping(
}
cptr = RNA_property_pointer_get(ptr, prop);
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_CurveMapping))
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_CurveMapping)) {
return;
}
cb = MEM_callocN(sizeof(RNAUpdateCb), "RNAUpdateCb");
cb->ptr = *ptr;
@@ -3417,8 +3492,9 @@ void uiTemplatePalette(uiLayout *layout, PointerRNA *ptr, const char *propname,
}
cptr = RNA_property_pointer_get(ptr, prop);
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Palette))
if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Palette)) {
return;
}
block = uiLayoutGetBlock(layout);
@@ -3489,8 +3565,9 @@ static void handle_layer_buttons(bContext *C, void *arg1, void *arg2)
/* Normally clicking only selects one layer */
RNA_property_boolean_set_index(&but->rnapoin, but->rnaprop, cur, true);
for (i = 0; i < tot; ++i) {
if (i != cur)
if (i != cur) {
RNA_property_boolean_set_index(&but->rnapoin, but->rnaprop, i, false);
}
}
}
@@ -3535,8 +3612,9 @@ void uiTemplateLayers(
return;
}
if (RNA_property_array_length(used_ptr, used_prop) < layers)
if (RNA_property_array_length(used_ptr, used_prop) < layers) {
used_prop = NULL;
}
}
/* layers are laid out going across rows, with the columns being divided into groups */
@@ -3557,10 +3635,12 @@ void uiTemplateLayers(
int icon = 0;
int butlay = 1 << layer;
if (active_layer & butlay)
if (active_layer & butlay) {
icon = ICON_LAYER_ACTIVE;
else if (used_prop && RNA_property_boolean_get_index(used_ptr, used_prop, layer))
}
else if (used_prop && RNA_property_boolean_get_index(used_ptr, used_prop, layer)) {
icon = ICON_LAYER_USED;
}
but = uiDefAutoButR(block, ptr, prop, layer, "", icon, 0, 0, UI_UNIT_X / 2, UI_UNIT_Y / 2);
UI_but_func_set(but, handle_layer_buttons, but, POINTER_FROM_INT(layer));
@@ -3754,13 +3834,16 @@ static void uilist_prepare(
const bool use_auto_size = (ui_list->list_grip < (rows - UI_LIST_AUTO_SIZE_THRESHOLD));
/* default rows */
if (rows <= 0)
if (rows <= 0) {
rows = 5;
}
dyn_data->visual_height_min = rows;
if (maxrows < rows)
if (maxrows < rows) {
maxrows = max_ii(rows, 5);
if (columns <= 0)
}
if (columns <= 0) {
columns = 9;
}
if (columns > 1) {
dyn_data->height = (int)ceil((double)len / (double)columns);
@@ -4093,8 +4176,9 @@ void uiTemplateList(
sub = uiLayoutRow(overlap, false);
icon = UI_rnaptr_icon_get(C, itemptr, rnaicon, false);
if (icon == ICON_DOT)
if (icon == ICON_DOT) {
icon = ICON_NONE;
}
draw_item(ui_list, C, sub, dataptr, itemptr, icon, active_dataptr, active_propname,
org_i, flt_flag);
@@ -4130,8 +4214,9 @@ void uiTemplateList(
int org_i = items_ptr[activei].org_idx;
icon = UI_rnaptr_icon_get(C, itemptr, rnaicon, false);
if (icon == ICON_DOT)
if (icon == ICON_DOT) {
icon = ICON_NONE;
}
draw_item(ui_list, C, row, dataptr, itemptr, icon, active_dataptr, active_propname, org_i, 0);
}
/* if list is empty, add in dummy button */
@@ -4144,8 +4229,9 @@ void uiTemplateList(
but = uiDefIconTextButR_prop(
block, UI_BTYPE_NUM, 0, 0, numstr, 0, 0, UI_UNIT_X * 5, UI_UNIT_Y,
active_dataptr, activeprop, 0, 0, 0, 0, 0, "");
if (dyn_data->items_shown == 0)
if (dyn_data->items_shown == 0) {
UI_but_flag_enable(but, UI_BUT_DISABLED);
}
break;
case UILST_LAYOUT_GRID:
box = uiLayoutListBox(layout, ui_list, dataptr, prop, active_dataptr, activeprop);
@@ -4164,8 +4250,9 @@ void uiTemplateList(
int flt_flag = items_ptr[i].flt_flag;
/* create button */
if (!(i % columns))
if (!(i % columns)) {
subrow = uiLayoutRow(col, false);
}
subblock = uiLayoutGetBlock(subrow);
overlap = uiLayoutOverlap(subrow);
@@ -4272,8 +4359,9 @@ static void operator_call_cb(bContext *C, void *UNUSED(arg1), void *arg2)
{
wmOperatorType *ot = arg2;
if (ot)
if (ot) {
WM_operator_name_call_ptr(C, ot, WM_OP_INVOKE_DEFAULT, NULL);
}
}
static bool has_word_prefix(const char *haystack, const char *needle, size_t needle_len)
@@ -4306,8 +4394,9 @@ static void operator_search_cb(const bContext *C, void *UNUSED(arg), const char
const char *ot_ui_name = CTX_IFACE_(ot->translation_context, ot->name);
int index;
if ((ot->flag & OPTYPE_INTERNAL) && (G.debug & G_DEBUG_WM) == 0)
if ((ot->flag & OPTYPE_INTERNAL) && (G.debug & G_DEBUG_WM) == 0) {
continue;
}
/* match name against all search words */
for (index = 0; index < words_len; index++) {
@@ -4334,8 +4423,9 @@ static void operator_search_cb(const bContext *C, void *UNUSED(arg), const char
}
}
if (false == UI_search_item_add(items, name, ot, 0))
if (false == UI_search_item_add(items, name, ot, 0)) {
break;
}
}
}
}
@@ -4600,14 +4690,16 @@ void uiTemplateRunningJobs(uiLayout *layout, bContext *C)
UI_block_func_handle_set(block, do_running_jobs, NULL);
if (sa->spacetype == SPACE_SEQ) {
if (WM_jobs_test(wm, sa, WM_JOB_TYPE_ANY))
if (WM_jobs_test(wm, sa, WM_JOB_TYPE_ANY)) {
owner = sa;
}
handle_event = B_STOPSEQ;
icon = ICON_SEQUENCE;
}
else if (sa->spacetype == SPACE_CLIP) {
if (WM_jobs_test(wm, sa, WM_JOB_TYPE_ANY))
if (WM_jobs_test(wm, sa, WM_JOB_TYPE_ANY)) {
owner = sa;
}
handle_event = B_STOPCLIP;
icon = ICON_TRACKER;
}
@@ -4716,9 +4808,10 @@ void uiTemplateRunningJobs(uiLayout *layout, bContext *C)
}
}
if (screen->animtimer)
if (screen->animtimer) {
uiDefIconTextBut(block, UI_BTYPE_BUT, B_STOPANIM, ICON_CANCEL, IFACE_("Anim Player"), 0, 0, UI_UNIT_X * 5.0f, UI_UNIT_Y,
NULL, 0.0f, 0.0f, 0, 0, TIP_("Stop animation playback"));
}
}
/************************* Reports for Last Operator Template **************************/
@@ -4737,11 +4830,15 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C)
int icon;
/* if the report display has timed out, don't show */
if (!reports->reporttimer) return;
if (!reports->reporttimer) {
return;
}
rti = (ReportTimerInfo *)reports->reporttimer->customdata;
if (!rti || rti->widthfac == 0.0f || !report) return;
if (!rti || rti->widthfac == 0.0f || !report) {
return;
}
ui_abs = uiLayoutAbsolute(layout, false);
block = uiLayoutGetBlock(ui_abs);
@@ -4771,11 +4868,13 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C)
*/
UI_block_emboss_set(block, UI_EMBOSS_NONE);
if (reports->list.first != reports->list.last)
if (reports->list.first != reports->list.last) {
uiDefIconButO(block, UI_BTYPE_BUT, "UI_OT_reports_to_textblock", WM_OP_INVOKE_REGION_WIN, icon, 2, 0, UI_UNIT_X,
UI_UNIT_Y, TIP_("Click to see the remaining reports in text block: 'Recent Reports'"));
else
}
else {
uiDefIconBut(block, UI_BTYPE_LABEL, 0, icon, 2, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
}
UI_block_emboss_set(block, UI_EMBOSS);
@@ -4837,8 +4936,9 @@ static void template_keymap_item_properties(uiLayout *layout, const char *title,
uiItemS(layout);
if (title)
if (title) {
uiItemL(layout, title, ICON_NONE);
}
flow = uiLayoutColumnFlow(layout, 2, false);
@@ -4954,8 +5054,9 @@ void uiTemplateColormanagedViewSettings(uiLayout *layout, bContext *UNUSED(C), P
col = uiLayoutColumn(layout, false);
uiItemR(col, &view_transform_ptr, "use_curve_mapping", 0, NULL, ICON_NONE);
if (view_settings->flag & COLORMANAGE_VIEW_USE_CURVES)
if (view_settings->flag & COLORMANAGE_VIEW_USE_CURVES) {
uiTemplateCurveMapping(col, &view_transform_ptr, "curve_mapping", 'c', true, false, false, false);
}
}
/********************************* Component Menu *************************************/

View File

@@ -61,15 +61,19 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
switch (RNA_property_type(prop)) {
case PROP_BOOLEAN:
{
if (RNA_property_array_check(prop) && index == -1)
if (RNA_property_array_check(prop) && index == -1) {
return NULL;
}
if (icon && name && name[0] == '\0')
if (icon && name && name[0] == '\0') {
but = uiDefIconButR_prop(block, UI_BTYPE_ICON_TOGGLE, 0, icon, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
else if (icon)
}
else if (icon) {
but = uiDefIconTextButR_prop(block, UI_BTYPE_ICON_TOGGLE, 0, icon, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
else
}
else {
but = uiDefButR_prop(block, UI_BTYPE_CHECKBOX, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
}
break;
}
case PROP_INT:
@@ -83,10 +87,12 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
return NULL;
}
}
else if (RNA_property_subtype(prop) == PROP_PERCENTAGE || RNA_property_subtype(prop) == PROP_FACTOR)
else if (RNA_property_subtype(prop) == PROP_PERCENTAGE || RNA_property_subtype(prop) == PROP_FACTOR) {
but = uiDefButR_prop(block, UI_BTYPE_NUM_SLIDER, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
else
}
else {
but = uiDefButR_prop(block, UI_BTYPE_NUM, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
}
if (RNA_property_flag(prop) & PROP_TEXTEDIT_UPDATE) {
UI_but_flag_enable(but, UI_BUT_TEXTEDIT_UPDATE);
@@ -94,20 +100,26 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
break;
}
case PROP_ENUM:
if (icon && name && name[0] == '\0')
if (icon && name && name[0] == '\0') {
but = uiDefIconButR_prop(block, UI_BTYPE_MENU, 0, icon, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
else if (icon)
}
else if (icon) {
but = uiDefIconTextButR_prop(block, UI_BTYPE_MENU, 0, icon, NULL, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
else
}
else {
but = uiDefButR_prop(block, UI_BTYPE_MENU, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
}
break;
case PROP_STRING:
if (icon && name && name[0] == '\0')
if (icon && name && name[0] == '\0') {
but = uiDefIconButR_prop(block, UI_BTYPE_TEXT, 0, icon, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
else if (icon)
}
else if (icon) {
but = uiDefIconTextButR_prop(block, UI_BTYPE_TEXT, 0, icon, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
else
}
else {
but = uiDefButR_prop(block, UI_BTYPE_TEXT, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
}
if (RNA_property_flag(prop) & PROP_TEXTEDIT_UPDATE) {
/* TEXTEDIT_UPDATE is usually used for search buttons. For these we also want
@@ -121,8 +133,9 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
PointerRNA pptr = RNA_property_pointer_get(ptr, prop);
icon = RNA_struct_ui_icon(pptr.type ? pptr.type : RNA_property_pointer_type(ptr, prop));
}
if (icon == ICON_DOT)
if (icon == ICON_DOT) {
icon = 0;
}
but = uiDefIconTextButR_prop(block, UI_BTYPE_SEARCH_MENU, 0, icon, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
break;
@@ -183,8 +196,9 @@ eAutoPropButsReturn uiDefAutoButsRNA(
if (label_align == UI_BUT_LABEL_ALIGN_COLUMN) {
col = uiLayoutColumn(layout, true);
if (!is_boolean)
if (!is_boolean) {
uiItemL(col, name, ICON_NONE);
}
}
else {
BLI_assert(label_align == UI_BUT_LABEL_ALIGN_SPLIT_COLUMN);
@@ -247,10 +261,12 @@ static int sort_search_items_list(const void *a, const void *b)
const CollItemSearch *cis1 = a;
const CollItemSearch *cis2 = b;
if (BLI_strcasecmp(cis1->name, cis2->name) > 0)
if (BLI_strcasecmp(cis1->name, cis2->name) > 0) {
return 1;
else
}
else {
return 0;
}
}
void ui_rna_collection_search_cb(const struct bContext *C, void *arg, const char *str, uiSearchItems *items)
@@ -266,14 +282,17 @@ void ui_rna_collection_search_cb(const struct bContext *C, void *arg, const char
RNA_PROP_BEGIN (&data->search_ptr, itemptr, data->search_prop)
{
if (flag & PROP_ID_SELF_CHECK)
if (itemptr.data == data->target_ptr.id.data)
if (flag & PROP_ID_SELF_CHECK) {
if (itemptr.data == data->target_ptr.id.data) {
continue;
}
}
/* use filter */
if (RNA_property_type(data->target_prop) == PROP_POINTER) {
if (RNA_property_pointer_poll(&data->target_ptr, data->target_prop, &itemptr) == 0)
if (RNA_property_pointer_poll(&data->target_ptr, data->target_prop, &itemptr) == 0) {
continue;
}
}
name = RNA_struct_name_get_alloc(&itemptr, NULL, 0, NULL); /* could use the string length here */
@@ -322,8 +341,9 @@ int UI_icon_from_id(ID *id)
PointerRNA ptr;
short idcode;
if (id == NULL)
if (id == NULL) {
return ICON_NONE;
}
idcode = GS(id->name);
@@ -331,10 +351,12 @@ int UI_icon_from_id(ID *id)
if (idcode == ID_OB) {
ob = (Object *)id;
if (ob->type == OB_EMPTY)
if (ob->type == OB_EMPTY) {
return ICON_EMPTY_DATA;
else
}
else {
return UI_icon_from_id(ob->data);
}
}
/* otherwise get it through RNA, creating the pointer
@@ -347,14 +369,18 @@ int UI_icon_from_id(ID *id)
/* see: report_type_str */
int UI_icon_from_report_type(int type)
{
if (type & RPT_ERROR_ALL)
if (type & RPT_ERROR_ALL) {
return ICON_ERROR;
else if (type & RPT_WARNING_ALL)
}
else if (type & RPT_WARNING_ALL) {
return ICON_ERROR;
else if (type & RPT_INFO_ALL)
}
else if (type & RPT_INFO_ALL) {
return ICON_INFO;
else
}
else {
return ICON_NONE;
}
}
/********************************** Misc **************************************/
@@ -598,8 +624,9 @@ void UI_butstore_update(uiBlock *block)
}
}
if (LIKELY(block->butstore.first == NULL))
if (LIKELY(block->butstore.first == NULL)) {
return;
}
/* warning, loop-in-loop, in practice we only store <10 buttons at a time,
* so this isn't going to be a problem, if that changes old-new mapping can be cached first */

View File

@@ -439,16 +439,20 @@ GPUBatch *ui_batch_roundbox_get(bool filled, bool antialiased)
GPUBatch **batch = NULL;
if (filled) {
if (antialiased)
if (antialiased) {
batch = &g_ui_batch_cache.roundbox_simple_aa;
else
}
else {
batch = &g_ui_batch_cache.roundbox_simple;
}
}
else {
if (antialiased)
if (antialiased) {
BLI_assert(0); /* Use GL_LINE_SMOOTH instead!!: */
else
}
else {
batch = &g_ui_batch_cache.roundbox_simple_outline;
}
}
if (*batch == NULL) {
@@ -653,8 +657,9 @@ static int round_box_shadow_edges(float (*vert)[2], const rcti *rect, float rad,
rad += step;
if (2.0f * rad > BLI_rcti_size_y(rect))
if (2.0f * rad > BLI_rcti_size_y(rect)) {
rad = 0.5f * BLI_rcti_size_y(rect);
}
minx = rect->xmin - step;
miny = rect->ymin - step;
@@ -746,11 +751,13 @@ static void round_box__edges(uiWidgetBase *wt, int roundboxalign, const rcti *re
BLI_rcti_size_x(rect) * hnum,
BLI_rcti_size_y(rect) * vnum);
if (2.0f * rad > minsize)
if (2.0f * rad > minsize) {
rad = 0.5f * minsize;
}
if (2.0f * (radi + 1.0f) > minsize)
if (2.0f * (radi + 1.0f) > minsize) {
radi = 0.5f * minsize - U.pixelsize;
}
wt->uniform_params.rad = rad;
wt->uniform_params.radi = radi;
@@ -986,8 +993,9 @@ static void widget_draw_vertex_buffer(uint pos, uint col, int mode,
{
immBegin(mode, totvert);
for (int i = 0; i < totvert; ++i) {
if (quads_col)
if (quads_col) {
immAttr4ubv(col, quads_col[i]);
}
immVertex2fv(pos, quads_pos[i]);
}
immEnd();
@@ -1147,8 +1155,9 @@ void UI_widgetbase_draw_cache_flush(void)
{
float checker_params[3] = {UI_ALPHA_CHECKER_DARK / 255.0f, UI_ALPHA_CHECKER_LIGHT / 255.0f, 8.0f};
if (g_widget_base_batch.count == 0)
if (g_widget_base_batch.count == 0) {
return;
}
GPUBatch *batch = g_widget_base_batch.batch;
if (g_widget_base_batch.count == 1) {
@@ -1307,8 +1316,9 @@ static void widget_draw_preview(BIFIconID icon, float alpha, const rcti *rect)
{
int w, h, size;
if (icon == ICON_NONE)
if (icon == ICON_NONE) {
return;
}
w = BLI_rcti_size_x(rect);
h = BLI_rcti_size_y(rect);
@@ -1346,16 +1356,24 @@ static void widget_draw_icon(
}
/* this icon doesn't need draw... */
if (icon == ICON_BLANK1 && (but->flag & UI_BUT_ICON_SUBMENU) == 0) return;
if (icon == ICON_BLANK1 && (but->flag & UI_BUT_ICON_SUBMENU) == 0) {
return;
}
aspect = but->block->aspect / UI_DPI_FAC;
height = ICON_DEFAULT_HEIGHT / aspect;
/* calculate blend color */
if (ELEM(but->type, UI_BTYPE_TOGGLE, UI_BTYPE_ROW, UI_BTYPE_TOGGLE_N, UI_BTYPE_LISTROW)) {
if (but->flag & UI_SELECT) {}
else if (but->flag & UI_ACTIVE) {}
else alpha = 0.75f;
if (but->flag & UI_SELECT) {
/* pass */
}
else if (but->flag & UI_ACTIVE) {
/* pass */
}
else {
alpha = 0.75f;
}
}
else if ((but->type == UI_BTYPE_LABEL)) {
/* extra feature allows more alpha blending */
@@ -1376,12 +1394,15 @@ static void widget_draw_icon(
if (but->drawflag & UI_BUT_ICON_LEFT) {
/* special case - icon_only pie buttons */
if (ui_block_is_pie_menu(but->block) && !ELEM(but->type, UI_BTYPE_MENU, UI_BTYPE_POPOVER) && but->str && but->str[0] == '\0')
if (ui_block_is_pie_menu(but->block) && !ELEM(but->type, UI_BTYPE_MENU, UI_BTYPE_POPOVER) && but->str && but->str[0] == '\0') {
xs = rect->xmin + 2.0f * ofs;
else if (but->dt == UI_EMBOSS_NONE || but->type == UI_BTYPE_LABEL)
}
else if (but->dt == UI_EMBOSS_NONE || but->type == UI_BTYPE_LABEL) {
xs = rect->xmin + 2.0f * ofs;
else
}
else {
xs = rect->xmin + 4.0f * ofs;
}
}
else {
xs = (rect->xmin + rect->xmax - height) / 2.0f;
@@ -1504,7 +1525,8 @@ float UI_text_clip_middle_ex(
/* need to set this first */
UI_fontstyle_set(fstyle);
if (fstyle->kerning == 1) { /* for BLF_width */
if (fstyle->kerning == 1) {
/* for BLF_width */
BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
}
@@ -1653,15 +1675,19 @@ static void ui_text_clip_cursor(const uiFontStyle *fstyle, uiBut *but, const rct
/* need to set this first */
UI_fontstyle_set(fstyle);
if (fstyle->kerning == 1) /* for BLF_width */
if (fstyle->kerning == 1) {
/* for BLF_width */
BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
}
/* define ofs dynamically */
if (but->ofs > but->pos)
if (but->ofs > but->pos) {
but->ofs = but->pos;
}
if (BLF_width(fstyle->uifont_id, but->editstr, INT_MAX) <= okwidth)
if (BLF_width(fstyle->uifont_id, but->editstr, INT_MAX) <= okwidth) {
but->ofs = 0;
}
but->strwidth = BLF_width(fstyle->uifont_id, but->editstr + but->ofs, INT_MAX);
@@ -1681,17 +1707,21 @@ static void ui_text_clip_cursor(const uiFontStyle *fstyle, uiBut *but, const rct
else {
int bytes;
/* shift string to the left */
if (width < 20 && but->ofs > 0)
if (width < 20 && but->ofs > 0) {
ui_text_clip_give_prev_off(but, but->editstr);
}
bytes = BLI_str_utf8_size(BLI_str_find_prev_char_utf8(but->editstr, but->editstr + len));
if (bytes == -1)
if (bytes == -1) {
bytes = 1;
}
len -= bytes;
}
but->strwidth = BLF_width(fstyle->uifont_id, but->editstr + but->ofs, len - but->ofs);
if (but->strwidth < 10) break;
if (but->strwidth < 10) {
break;
}
}
}
@@ -1716,8 +1746,10 @@ static void ui_text_clip_right_label(const uiFontStyle *fstyle, uiBut *but, cons
/* need to set this first */
UI_fontstyle_set(fstyle);
if (fstyle->kerning == 1) /* for BLF_width */
if (fstyle->kerning == 1) {
/* for BLF_width */
BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
}
but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr, sizeof(but->drawstr));
but->ofs = 0;
@@ -1749,7 +1781,9 @@ static void ui_text_clip_right_label(const uiFontStyle *fstyle, uiBut *but, cons
// BLI_assert(strlen(but->drawstr) == drawstr_len);
but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr + but->ofs, sizeof(but->drawstr) - but->ofs);
if (but->strwidth < 10) break;
if (but->strwidth < 10) {
break;
}
}
@@ -1757,7 +1791,9 @@ static void ui_text_clip_right_label(const uiFontStyle *fstyle, uiBut *but, cons
while ((but->strwidth > okwidth) && (but->ofs < 2)) {
ui_text_clip_give_next_off(but, but->drawstr);
but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr + but->ofs, sizeof(but->drawstr) - but->ofs);
if (but->strwidth < 10) break;
if (but->strwidth < 10) {
break;
}
}
}
@@ -1773,8 +1809,9 @@ static void ui_text_clip_right_label(const uiFontStyle *fstyle, uiBut *but, cons
but->drawstr[drawstr_len] = 0;
}
if (fstyle->kerning == 1)
if (fstyle->kerning == 1) {
BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
}
}
#ifdef WITH_INPUT_IME
@@ -1848,9 +1885,10 @@ static void widget_draw_text(const uiFontStyle *fstyle, const uiWidgetColors *wc
align = UI_STYLE_TEXT_CENTER;
}
if (fstyle->kerning == 1) /* for BLF_width */
if (fstyle->kerning == 1) {
/* for BLF_width */
BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
}
/* Special case: when we're entering text for multiple buttons,
* don't draw the text for any of the multi-editing buttons */
@@ -1974,8 +2012,9 @@ static void widget_draw_text(const uiFontStyle *fstyle, const uiWidgetColors *wc
#endif
}
if (fstyle->kerning == 1)
if (fstyle->kerning == 1) {
BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
}
#if 0
ui_rasterpos_safe(x, y, but->aspect);
@@ -2038,8 +2077,9 @@ static void widget_draw_text(const uiFontStyle *fstyle, const uiWidgetColors *wc
BLI_strncpy(fixedbuf, drawstr + but->ofs, min_ii(sizeof(fixedbuf), drawlen));
str = strchr(fixedbuf, but->menu_key - 32); /* upper case */
if (str == NULL)
if (str == NULL) {
str = strchr(fixedbuf, but->menu_key);
}
if (str) {
int ul_index = -1;
@@ -2175,11 +2215,13 @@ static void widget_draw_text_icon(const uiFontStyle *fstyle, const uiWidgetColor
/* pass (even if its a menu toolbar) */
}
else if (ui_block_is_pie_menu(but->block)) {
if (but->dt == UI_EMBOSS_RADIAL)
if (but->dt == UI_EMBOSS_RADIAL) {
rect->xmin += 0.3f * U.widget_unit;
}
}
else if (ui_block_is_menu(but->block))
else if (ui_block_is_menu(but->block)) {
rect->xmin += 0.2f * U.widget_unit;
}
widget_draw_icon(but, icon, alpha, rect, wcol->text);
if (show_menu_icon) {
@@ -2324,33 +2366,44 @@ static void widget_state(uiWidgetType *wt, int state, int drawflag)
if (state & UI_SELECT) {
copy_v4_v4_char(wt->wcol.inner, wt->wcol.inner_sel);
if (drawflag & UI_BUT_ANIMATED_CHANGED)
if (drawflag & UI_BUT_ANIMATED_CHANGED) {
widget_state_blend(wt->wcol.inner, wcol_state->inner_changed_sel, wcol_state->blend);
else if (state & UI_BUT_ANIMATED_KEY)
}
else if (state & UI_BUT_ANIMATED_KEY) {
widget_state_blend(wt->wcol.inner, wcol_state->inner_key_sel, wcol_state->blend);
else if (state & UI_BUT_ANIMATED)
}
else if (state & UI_BUT_ANIMATED) {
widget_state_blend(wt->wcol.inner, wcol_state->inner_anim_sel, wcol_state->blend);
else if (state & UI_BUT_DRIVEN)
}
else if (state & UI_BUT_DRIVEN) {
widget_state_blend(wt->wcol.inner, wcol_state->inner_driven_sel, wcol_state->blend);
else if (state & UI_BUT_OVERRIDEN)
}
else if (state & UI_BUT_OVERRIDEN) {
widget_state_blend(wt->wcol.inner, wcol_state->inner_overridden_sel, wcol_state->blend);
}
copy_v3_v3_char(wt->wcol.text, wt->wcol.text_sel);
if (state & UI_SELECT)
if (state & UI_SELECT) {
SWAP(short, wt->wcol.shadetop, wt->wcol.shadedown);
}
}
else {
if (drawflag & UI_BUT_ANIMATED_CHANGED)
if (drawflag & UI_BUT_ANIMATED_CHANGED) {
widget_state_blend(wt->wcol.inner, wcol_state->inner_changed, wcol_state->blend);
else if (state & UI_BUT_ANIMATED_KEY)
}
else if (state & UI_BUT_ANIMATED_KEY) {
widget_state_blend(wt->wcol.inner, wcol_state->inner_key, wcol_state->blend);
else if (state & UI_BUT_ANIMATED)
}
else if (state & UI_BUT_ANIMATED) {
widget_state_blend(wt->wcol.inner, wcol_state->inner_anim, wcol_state->blend);
else if (state & UI_BUT_DRIVEN)
}
else if (state & UI_BUT_DRIVEN) {
widget_state_blend(wt->wcol.inner, wcol_state->inner_driven, wcol_state->blend);
else if (state & UI_BUT_OVERRIDEN)
}
else if (state & UI_BUT_OVERRIDEN) {
widget_state_blend(wt->wcol.inner, wcol_state->inner_overridden, wcol_state->blend);
}
if (state & UI_ACTIVE) { /* mouse over? */
widget_active_color(wt->wcol.inner);
@@ -2394,31 +2447,42 @@ static void widget_state_numslider(uiWidgetType *wt, int state, int drawflag)
/* TODO: maybe we should have separate settings for the blending colors used for this case? */
if (state & UI_SELECT) {
if (drawflag & UI_BUT_ANIMATED_CHANGED)
if (drawflag & UI_BUT_ANIMATED_CHANGED) {
widget_state_blend(wt->wcol.item, wcol_state->inner_changed_sel, blend);
else if (state & UI_BUT_ANIMATED_KEY)
}
else if (state & UI_BUT_ANIMATED_KEY) {
widget_state_blend(wt->wcol.item, wcol_state->inner_key_sel, blend);
else if (state & UI_BUT_ANIMATED)
}
else if (state & UI_BUT_ANIMATED) {
widget_state_blend(wt->wcol.item, wcol_state->inner_anim_sel, blend);
else if (state & UI_BUT_DRIVEN)
}
else if (state & UI_BUT_DRIVEN) {
widget_state_blend(wt->wcol.item, wcol_state->inner_driven_sel, blend);
else if (state & UI_BUT_OVERRIDEN)
}
else if (state & UI_BUT_OVERRIDEN) {
widget_state_blend(wt->wcol.item, wcol_state->inner_overridden_sel, blend);
}
if (state & UI_SELECT)
if (state & UI_SELECT) {
SWAP(short, wt->wcol.shadetop, wt->wcol.shadedown);
}
}
else {
if (drawflag & UI_BUT_ANIMATED_CHANGED)
if (drawflag & UI_BUT_ANIMATED_CHANGED) {
widget_state_blend(wt->wcol.item, wcol_state->inner_changed, blend);
else if (state & UI_BUT_ANIMATED_KEY)
}
else if (state & UI_BUT_ANIMATED_KEY) {
widget_state_blend(wt->wcol.item, wcol_state->inner_key, blend);
else if (state & UI_BUT_ANIMATED)
}
else if (state & UI_BUT_ANIMATED) {
widget_state_blend(wt->wcol.item, wcol_state->inner_anim, blend);
else if (state & UI_BUT_DRIVEN)
}
else if (state & UI_BUT_DRIVEN) {
widget_state_blend(wt->wcol.item, wcol_state->inner_driven, blend);
else if (state & UI_BUT_OVERRIDEN)
}
else if (state & UI_BUT_OVERRIDEN) {
widget_state_blend(wt->wcol.item, wcol_state->inner_overridden, blend);
}
}
}
@@ -2431,10 +2495,12 @@ static void widget_state_option_menu(uiWidgetType *wt, int state, int drawflag)
widget_state(wt, state, drawflag);
/* if not selected we get theme from menu back */
if (state & UI_SELECT)
if (state & UI_SELECT) {
copy_v3_v3_char(wt->wcol.text, btheme->tui.wcol_menu_back.text_sel);
else
}
else {
copy_v3_v3_char(wt->wcol.text, btheme->tui.wcol_menu_back.text);
}
}
@@ -2525,14 +2591,17 @@ static void widget_softshadow(const rcti *rect, int roundboxalign, const float r
const float radout = UI_ThemeMenuShadowWidth();
/* disabled shadow */
if (radout == 0.0f)
if (radout == 0.0f) {
return;
}
/* prevent tooltips to not show round shadow */
if (radout > 0.2f * BLI_rcti_size_y(&rect1))
if (radout > 0.2f * BLI_rcti_size_y(&rect1)) {
rect1.ymax -= 0.2f * BLI_rcti_size_y(&rect1);
else
}
else {
rect1.ymax -= radout;
}
/* inner part */
totvert = round_box_shadow_edges(wtb.inner_v, &rect1, radin, roundboxalign & (UI_CNR_BOTTOM_RIGHT | UI_CNR_BOTTOM_LEFT), 0.0f);
@@ -2638,10 +2707,12 @@ void ui_hsvcircle_pos_from_vals(
ang = 2.0f * (float)M_PI * hsv[0] + (float)M_PI_2;
if (cpicker->use_color_cubic && (U.color_picker_type == USER_CP_CIRCLE_HSV))
if (cpicker->use_color_cubic && (U.color_picker_type == USER_CP_CIRCLE_HSV)) {
radius_t = (1.0f - pow3f(1.0f - hsv[1]));
else
}
else {
radius_t = hsv[1];
}
radius = clamp_f(radius_t, 0.0f, 1.0f) * radius;
*r_xpos = centx + cosf(-ang) * radius;
@@ -2986,10 +3057,12 @@ static void ui_draw_but_HSV_v(uiBut *but, const rcti *rect)
ui_but_v3_get(but, rgb);
ui_scene_linear_to_color_picker_space(but, rgb);
if (but->a1 == UI_GRAD_L_ALT)
if (but->a1 == UI_GRAD_L_ALT) {
rgb_to_hsl_v(rgb, hsv);
else
}
else {
rgb_to_hsv_v(rgb, hsv);
}
v = hsv[2];
/* map v from property range to [0,1] */
@@ -3078,8 +3151,9 @@ static void widget_numbut_draw(uiWidgetColors *wcol, rcti *rect, int state, int
const float rad = wcol->roundness * BLI_rcti_size_y(rect);
const int handle_width = min_ii(BLI_rcti_size_x(rect) / 3, BLI_rcti_size_y(rect) * 0.7f);
if (state & UI_SELECT)
if (state & UI_SELECT) {
SWAP(short, wcol->shadetop, wcol->shadedown);
}
widget_init(&wtb);
@@ -3198,16 +3272,19 @@ void UI_draw_widget_scroll(uiWidgetColors *wcol, const rcti *rect, const rcti *s
/* determine horizontal/vertical */
horizontal = (BLI_rcti_size_x(rect) > BLI_rcti_size_y(rect));
if (horizontal)
if (horizontal) {
rad = wcol->roundness * BLI_rcti_size_y(rect);
else
}
else {
rad = wcol->roundness * BLI_rcti_size_x(rect);
}
wtb.uniform_params.shade_dir = (horizontal) ? 1.0f : 0.0;
/* draw back part, colors swapped and shading inverted */
if (horizontal)
if (horizontal) {
SWAP(short, wcol->shadetop, wcol->shadedown);
}
round_box_edges(&wtb, UI_CNR_ALL, rect, rad);
widgetbase_draw(&wtb, wcol);
@@ -3221,9 +3298,12 @@ void UI_draw_widget_scroll(uiWidgetColors *wcol, const rcti *rect, const rcti *s
copy_v4_v4_char(wcol->inner, wcol->item);
if (wcol->shadetop > wcol->shadedown)
if (wcol->shadetop > wcol->shadedown) {
wcol->shadetop += 20; /* XXX violates themes... */
else wcol->shadedown += 20;
}
else {
wcol->shadedown += 20;
}
if (state & UI_SCROLL_PRESSED) {
wcol->inner[0] = wcol->inner[0] >= 250 ? 255 : wcol->inner[0] + 5;
@@ -3242,9 +3322,15 @@ void UI_draw_widget_scroll(uiWidgetColors *wcol, const rcti *rect, const rcti *s
round_box_edges(&wtb, UI_CNR_ALL, slider, rad);
if (state & UI_SCROLL_ARROWS) {
if (wcol->item[0] > 48) wcol->item[0] -= 48;
if (wcol->item[1] > 48) wcol->item[1] -= 48;
if (wcol->item[2] > 48) wcol->item[2] -= 48;
if (wcol->item[0] > 48) {
wcol->item[0] -= 48;
}
if (wcol->item[1] > 48) {
wcol->item[1] -= 48;
}
if (wcol->item[2] > 48) {
wcol->item[2] -= 48;
}
wcol->item[3] = 255;
if (horizontal) {
@@ -3318,10 +3404,12 @@ static void widget_scroll(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
}
}
if (state & UI_SELECT)
if (state & UI_SELECT) {
state = UI_SCROLL_PRESSED;
else
}
else {
state = 0;
}
UI_draw_widget_scroll(wcol, rect, &rect1, state);
}
@@ -3484,8 +3572,9 @@ static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
round_box_edges(&wtb, roundboxalign, rect, rad);
}
if (!ui_but_is_color_gamma(but))
if (!ui_but_is_color_gamma(but)) {
ui_block_cm_to_display_space_v3(but->block, col);
}
rgba_float_to_uchar((uchar *)wcol->inner, col);
const bool show_alpha_checkers = (wcol->inner[3] < 255);
@@ -3560,8 +3649,9 @@ static void widget_textbut(uiWidgetColors *wcol, rcti *rect, int state, int roun
uiWidgetBase wtb;
float rad;
if (state & UI_SELECT)
if (state & UI_SELECT) {
SWAP(short, wcol->shadetop, wcol->shadedown);
}
widget_init(&wtb);
@@ -3744,10 +3834,12 @@ static void widget_state_label(uiWidgetType *wt, int state, int drawflag)
else {
/* call this for option button */
widget_state(wt, state, drawflag);
if (state & UI_SELECT)
if (state & UI_SELECT) {
UI_GetThemeColor3ubv(TH_TEXT_HI, (uchar *)wt->wcol.text);
else
}
else {
UI_GetThemeColor3ubv(TH_TEXT, (uchar *)wt->wcol.text);
}
}
if (state & UI_BUT_REDALERT) {
@@ -4109,10 +4201,12 @@ static int widget_roundbox_set(uiBut *but, rcti *rect)
if ((but->drawflag & UI_BUT_ALIGN) && but->type != UI_BTYPE_PULLDOWN) {
/* ui_popup_block_position has this correction too, keep in sync */
if (but->drawflag & (UI_BUT_ALIGN_TOP | UI_BUT_ALIGN_STITCH_TOP))
if (but->drawflag & (UI_BUT_ALIGN_TOP | UI_BUT_ALIGN_STITCH_TOP)) {
rect->ymax += U.pixelsize;
if (but->drawflag & (UI_BUT_ALIGN_LEFT | UI_BUT_ALIGN_STITCH_LEFT))
}
if (but->drawflag & (UI_BUT_ALIGN_LEFT | UI_BUT_ALIGN_STITCH_LEFT)) {
rect->xmin -= U.pixelsize;
}
switch (but->drawflag & UI_BUT_ALIGN) {
case UI_BUT_ALIGN_TOP:
@@ -4149,10 +4243,10 @@ static int widget_roundbox_set(uiBut *but, rcti *rect)
if (but->active && (but->type != UI_BTYPE_POPOVER)) {
int direction = ui_but_menu_direction(but);
if (direction == UI_DIR_UP) roundbox &= ~(UI_CNR_TOP_RIGHT | UI_CNR_TOP_LEFT);
else if (direction == UI_DIR_DOWN) roundbox &= ~(UI_CNR_BOTTOM_RIGHT | UI_CNR_BOTTOM_LEFT);
else if (direction == UI_DIR_LEFT) roundbox &= ~(UI_CNR_TOP_LEFT | UI_CNR_BOTTOM_LEFT);
else if (direction == UI_DIR_RIGHT) roundbox &= ~(UI_CNR_TOP_RIGHT | UI_CNR_BOTTOM_RIGHT);
if (direction == UI_DIR_UP) { roundbox &= ~(UI_CNR_TOP_RIGHT | UI_CNR_TOP_LEFT); }
else if (direction == UI_DIR_DOWN) { roundbox &= ~(UI_CNR_BOTTOM_RIGHT | UI_CNR_BOTTOM_LEFT); }
else if (direction == UI_DIR_LEFT) { roundbox &= ~(UI_CNR_TOP_LEFT | UI_CNR_BOTTOM_LEFT); }
else if (direction == UI_DIR_RIGHT) { roundbox &= ~(UI_CNR_TOP_RIGHT | UI_CNR_BOTTOM_RIGHT); }
}
return roundbox;
@@ -4441,25 +4535,31 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
}
}
if (state & (UI_BUT_DISABLED | UI_BUT_INACTIVE))
if (but->dt != UI_EMBOSS_PULLDOWN)
if (state & (UI_BUT_DISABLED | UI_BUT_INACTIVE)) {
if (but->dt != UI_EMBOSS_PULLDOWN) {
disabled = true;
}
}
if (drawflag & UI_BUT_TEXT_RIGHT) {
state |= UI_STATE_TEXT_BEFORE_WIDGET;
}
if (disabled)
if (disabled) {
ui_widget_color_disabled(wt);
}
wt->state(wt, state, drawflag);
if (wt->custom)
if (wt->custom) {
wt->custom(but, &wt->wcol, rect, state, roundboxalign);
else if (wt->draw)
}
else if (wt->draw) {
wt->draw(&wt->wcol, rect, state, roundboxalign);
}
if (disabled)
if (disabled) {
GPU_blend(true);
}
#ifdef USE_UI_POPOVER_ONCE
if (but->block->flag & UI_BLOCK_POPOVER_ONCE) {
@@ -4480,12 +4580,15 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
#endif
wt->text(fstyle, &wt->wcol, but, rect);
if (disabled)
if (disabled) {
GPU_blend(false);
}
// if (state & (UI_BUT_DISABLED | UI_BUT_INACTIVE))
// if (but->dt != UI_EMBOSS_PULLDOWN)
// if (state & (UI_BUT_DISABLED | UI_BUT_INACTIVE)) {
// if (but->dt != UI_EMBOSS_PULLDOWN) {
// widget_disabled(&disablerect);
// }
// }
}
}
@@ -4516,10 +4619,12 @@ void ui_draw_menu_back(uiStyle *UNUSED(style), uiBlock *block, rcti *rect)
uiWidgetType *wt = widget_type(UI_WTYPE_MENU_BACK);
wt->state(wt, 0, 0);
if (block)
if (block) {
wt->draw(&wt->wcol, rect, block->flag, block->direction);
else
}
else {
wt->draw(&wt->wcol, rect, 0, 0);
}
ui_draw_clip_tri(block, rect, wt);
}
@@ -4776,7 +4881,9 @@ void ui_draw_menu_item(const uiFontStyle *fstyle, rcti *rect, const char *name,
/* text location offset */
rect->xmin += 0.25f * UI_UNIT_X;
if (iconid) rect->xmin += UI_DPI_ICON_SIZE;
if (iconid) {
rect->xmin += UI_DPI_ICON_SIZE;
}
/* cut string in 2 parts? */
if (use_sep) {
@@ -4787,7 +4894,8 @@ void ui_draw_menu_item(const uiFontStyle *fstyle, rcti *rect, const char *name,
/* need to set this first */
UI_fontstyle_set(fstyle);
if (fstyle->kerning == 1) { /* for BLF_width */
if (fstyle->kerning == 1) {
/* for BLF_width */
BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
}
@@ -4868,8 +4976,9 @@ void ui_draw_preview_item(const uiFontStyle *fstyle, rcti *rect, const char *nam
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)
if (trect.xmax > rect->xmax - PREVIEW_PAD) {
trect.xmax = rect->xmax - PREVIEW_PAD;
}
{
char drawstr[UI_MAX_DRAW_STR];

View File

@@ -167,18 +167,24 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
switch (colorid) {
case TH_BACK:
if (ELEM(theme_regionid, RGN_TYPE_WINDOW, RGN_TYPE_PREVIEW))
if (ELEM(theme_regionid, RGN_TYPE_WINDOW, RGN_TYPE_PREVIEW)) {
cp = ts->back;
else if (theme_regionid == RGN_TYPE_CHANNELS)
}
else if (theme_regionid == RGN_TYPE_CHANNELS) {
cp = ts->list;
else if (theme_regionid == RGN_TYPE_HEADER)
}
else if (theme_regionid == RGN_TYPE_HEADER) {
cp = ts->header;
else if (theme_regionid == RGN_TYPE_NAV_BAR)
}
else if (theme_regionid == RGN_TYPE_NAV_BAR) {
cp = ts->navigation_bar;
else if (theme_regionid == RGN_TYPE_EXECUTE)
}
else if (theme_regionid == RGN_TYPE_EXECUTE) {
cp = ts->execution_buts;
else
}
else {
cp = ts->button;
}
copy_v4_v4_char(back, cp);
if (!ED_region_is_overlap(spacetype, theme_regionid)) {
@@ -195,34 +201,46 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
setting = ts->show_back_grad;
break;
case TH_TEXT:
if (theme_regionid == RGN_TYPE_WINDOW)
if (theme_regionid == RGN_TYPE_WINDOW) {
cp = ts->text;
else if (theme_regionid == RGN_TYPE_CHANNELS)
}
else if (theme_regionid == RGN_TYPE_CHANNELS) {
cp = ts->list_text;
else if (theme_regionid == RGN_TYPE_HEADER)
}
else if (theme_regionid == RGN_TYPE_HEADER) {
cp = ts->header_text;
else
}
else {
cp = ts->button_text;
}
break;
case TH_TEXT_HI:
if (theme_regionid == RGN_TYPE_WINDOW)
if (theme_regionid == RGN_TYPE_WINDOW) {
cp = ts->text_hi;
else if (theme_regionid == RGN_TYPE_CHANNELS)
}
else if (theme_regionid == RGN_TYPE_CHANNELS) {
cp = ts->list_text_hi;
else if (theme_regionid == RGN_TYPE_HEADER)
}
else if (theme_regionid == RGN_TYPE_HEADER) {
cp = ts->header_text_hi;
else
}
else {
cp = ts->button_text_hi;
}
break;
case TH_TITLE:
if (theme_regionid == RGN_TYPE_WINDOW)
if (theme_regionid == RGN_TYPE_WINDOW) {
cp = ts->title;
else if (theme_regionid == RGN_TYPE_CHANNELS)
}
else if (theme_regionid == RGN_TYPE_CHANNELS) {
cp = ts->list_title;
else if (theme_regionid == RGN_TYPE_HEADER)
}
else if (theme_regionid == RGN_TYPE_HEADER) {
cp = ts->header_title;
else
}
else {
cp = ts->button_title;
}
break;
case TH_HEADER:

View File

@@ -103,10 +103,12 @@ BLI_INLINE void clamp_rctf_to_rcti(rcti *dst, const rctf *src)
*/
static int view2d_scroll_mapped(int scroll)
{
if (scroll & V2D_SCROLL_HORIZONTAL_FULLR)
if (scroll & V2D_SCROLL_HORIZONTAL_FULLR) {
scroll &= ~(V2D_SCROLL_HORIZONTAL);
if (scroll & V2D_SCROLL_VERTICAL_FULLR)
}
if (scroll & V2D_SCROLL_VERTICAL_FULLR) {
scroll &= ~(V2D_SCROLL_VERTICAL);
}
return scroll;
}
@@ -137,18 +139,22 @@ static void view2d_masks(View2D *v2d, bool check_scrollers, const rcti *mask_scr
/* check size if hiding flag is set: */
if (v2d->scroll & V2D_SCROLL_HORIZONTAL_HIDE) {
if (!(v2d->scroll & V2D_SCROLL_SCALE_HORIZONTAL)) {
if (BLI_rctf_size_x(&v2d->tot) > BLI_rctf_size_x(&v2d->cur))
if (BLI_rctf_size_x(&v2d->tot) > BLI_rctf_size_x(&v2d->cur)) {
v2d->scroll &= ~V2D_SCROLL_HORIZONTAL_FULLR;
else
}
else {
v2d->scroll |= V2D_SCROLL_HORIZONTAL_FULLR;
}
}
}
if (v2d->scroll & V2D_SCROLL_VERTICAL_HIDE) {
if (!(v2d->scroll & V2D_SCROLL_SCALE_VERTICAL)) {
if (BLI_rctf_size_y(&v2d->tot) + 0.01f > BLI_rctf_size_y(&v2d->cur))
if (BLI_rctf_size_y(&v2d->tot) + 0.01f > BLI_rctf_size_y(&v2d->cur)) {
v2d->scroll &= ~V2D_SCROLL_VERTICAL_FULLR;
else
}
else {
v2d->scroll |= V2D_SCROLL_VERTICAL_FULLR;
}
}
}
}
@@ -377,10 +383,12 @@ void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy)
/* set 'tot' rect before setting cur? */
/* XXX confusing stuff here still -
* I made this function not check scroller hide - that happens in totrect_set */
if (tot_changed)
if (tot_changed) {
UI_view2d_totRect_set_resize(v2d, winx, winy, !do_init);
else
}
else {
ui_view2d_curRect_validate_resize(v2d, !do_init, 0);
}
}
@@ -423,19 +431,29 @@ static void ui_view2d_curRect_validate_resize(View2D *v2d, bool resize, bool mas
curheight = height = BLI_rctf_size_y(cur);
/* if zoom is locked, size on the appropriate axis is reset to mask size */
if (v2d->keepzoom & V2D_LOCKZOOM_X)
if (v2d->keepzoom & V2D_LOCKZOOM_X) {
width = winx;
if (v2d->keepzoom & V2D_LOCKZOOM_Y)
}
if (v2d->keepzoom & V2D_LOCKZOOM_Y) {
height = winy;
}
/* values used to divide, so make it safe
* NOTE: width and height must use FLT_MIN instead of 1, otherwise it is impossible to
* get enough resolution in Graph Editor for editing some curves
*/
if (width < FLT_MIN) width = 1;
if (height < FLT_MIN) height = 1;
if (winx < 1) winx = 1;
if (winy < 1) winy = 1;
if (width < FLT_MIN) {
width = 1;
}
if (height < FLT_MIN) {
height = 1;
}
if (winx < 1) {
winx = 1;
}
if (winy < 1) {
winy = 1;
}
/* V2D_LIMITZOOM indicates that zoom level should be preserved when the window size changes */
if (resize && (v2d->keepzoom & V2D_KEEPZOOM)) {
@@ -445,16 +463,18 @@ static void ui_view2d_curRect_validate_resize(View2D *v2d, bool resize, bool mas
zoom = winx / width;
oldzoom = v2d->oldwinx / curwidth;
if (oldzoom != zoom)
if (oldzoom != zoom) {
width *= zoom / oldzoom;
}
}
if ((v2d->keepzoom & V2D_LOCKZOOM_Y) == 0) {
zoom = winy / height;
oldzoom = v2d->oldwiny / curheight;
if (oldzoom != zoom)
if (oldzoom != zoom) {
height *= zoom / oldzoom;
}
}
}
/* keepzoom (V2D_LIMITZOOM set), indicates that zoom level on each axis must not exceed limits
@@ -499,8 +519,12 @@ static void ui_view2d_curRect_validate_resize(View2D *v2d, bool resize, bool mas
/* when a window edge changes, the aspect ratio can't be used to
* find which is the best new 'cur' rect. that's why it stores 'old'
*/
if (winx != v2d->oldwinx) do_x = true;
if (winy != v2d->oldwiny) do_y = true;
if (winx != v2d->oldwinx) {
do_x = true;
}
if (winy != v2d->oldwiny) {
do_y = true;
}
curRatio = height / width;
winRatio = winy / winx;
@@ -509,8 +533,12 @@ static void ui_view2d_curRect_validate_resize(View2D *v2d, bool resize, bool mas
if (do_x == do_y) {
if (do_x && do_y) {
/* here is 1,1 case, so all others must be 0,0 */
if (fabsf(winx - v2d->oldwinx) > fabsf(winy - v2d->oldwiny)) do_y = false;
else do_x = false;
if (fabsf(winx - v2d->oldwinx) > fabsf(winy - v2d->oldwiny)) {
do_y = false;
}
else {
do_x = false;
}
}
else if (winRatio > curRatio) {
do_x = false;
@@ -587,10 +615,12 @@ static void ui_view2d_curRect_validate_resize(View2D *v2d, bool resize, bool mas
cur->xmax += width - BLI_rctf_size_x(cur);
}
else if (v2d->keepofs & V2D_KEEPOFS_X) {
if (v2d->align & V2D_ALIGN_NO_POS_X)
if (v2d->align & V2D_ALIGN_NO_POS_X) {
cur->xmin -= width - BLI_rctf_size_x(cur);
else
}
else {
cur->xmax += width - BLI_rctf_size_x(cur);
}
}
else {
temp = BLI_rctf_cent_x(cur);
@@ -605,10 +635,12 @@ static void ui_view2d_curRect_validate_resize(View2D *v2d, bool resize, bool mas
cur->ymax += height - BLI_rctf_size_y(cur);
}
else if (v2d->keepofs & V2D_KEEPOFS_Y) {
if (v2d->align & V2D_ALIGN_NO_POS_Y)
if (v2d->align & V2D_ALIGN_NO_POS_Y) {
cur->ymin -= height - BLI_rctf_size_y(cur);
else
}
else {
cur->ymax += height - BLI_rctf_size_y(cur);
}
}
else {
temp = BLI_rctf_cent_y(cur);
@@ -631,8 +663,12 @@ static void ui_view2d_curRect_validate_resize(View2D *v2d, bool resize, bool mas
/* width */
if ((curwidth > totwidth) && !(v2d->keepzoom & (V2D_KEEPZOOM | V2D_LOCKZOOM_X | V2D_LIMITZOOM))) {
/* if zoom doesn't have to be maintained, just clamp edges */
if (cur->xmin < tot->xmin) cur->xmin = tot->xmin;
if (cur->xmax > tot->xmax) cur->xmax = tot->xmax;
if (cur->xmin < tot->xmin) {
cur->xmin = tot->xmin;
}
if (cur->xmax > tot->xmax) {
cur->xmax = tot->xmax;
}
}
else if (v2d->keeptot == V2D_KEEPTOT_STRICT) {
/* This is an exception for the outliner (and later channel-lists, headers)
@@ -715,8 +751,12 @@ static void ui_view2d_curRect_validate_resize(View2D *v2d, bool resize, bool mas
/* height */
if ((curheight > totheight) && !(v2d->keepzoom & (V2D_KEEPZOOM | V2D_LOCKZOOM_Y | V2D_LIMITZOOM))) {
/* if zoom doesn't have to be maintained, just clamp edges */
if (cur->ymin < tot->ymin) cur->ymin = tot->ymin;
if (cur->ymax > tot->ymax) cur->ymax = tot->ymax;
if (cur->ymin < tot->ymin) {
cur->ymin = tot->ymin;
}
if (cur->ymax > tot->ymax) {
cur->ymax = tot->ymax;
}
}
else {
/* This here occurs when:
@@ -814,8 +854,9 @@ void UI_view2d_sync(bScreen *screen, ScrArea *area, View2D *v2dcur, int flag)
ARegion *ar;
/* don't continue if no view syncing to be done */
if ((v2dcur->flag & (V2D_VIEWSYNC_SCREEN_TIME | V2D_VIEWSYNC_AREA_VERTICAL)) == 0)
if ((v2dcur->flag & (V2D_VIEWSYNC_SCREEN_TIME | V2D_VIEWSYNC_AREA_VERTICAL)) == 0) {
return;
}
/* check if doing within area syncing (i.e. channels/vertical) */
if ((v2dcur->flag & V2D_VIEWSYNC_AREA_VERTICAL) && (area)) {
@@ -936,14 +977,17 @@ void UI_view2d_totRect_set_resize(View2D *v2d, int width, int height, bool resiz
/* hrumf! */
/* XXX: there are work arounds for this in the panel and file browse code. */
/* round to int, because this is called with width + V2D_SCROLL_WIDTH */
// if (scroll & V2D_SCROLL_HORIZONTAL)
// if (scroll & V2D_SCROLL_HORIZONTAL) {
// width -= (int)V2D_SCROLL_WIDTH;
// if (scroll & V2D_SCROLL_VERTICAL)
// }
// if (scroll & V2D_SCROLL_VERTICAL) {
// height -= (int)V2D_SCROLL_HEIGHT;
// }
if (ELEM(0, width, height)) {
if (G.debug & G_DEBUG)
if (G.debug & G_DEBUG) {
printf("Error: View2D totRect set exiting: v2d=%p width=%d height=%d\n", (void *)v2d, width, height); // XXX temp debug info
}
return;
}
@@ -1012,10 +1056,12 @@ bool UI_view2d_tab_set(View2D *v2d, int tab)
/* if tab changed, change offset */
if (tab != v2d->tab_cur && v2d->tab_offset) {
if (tab < v2d->tab_num)
if (tab < v2d->tab_num) {
offset = &v2d->tab_offset[tab * 2];
else
}
else {
offset = default_offset;
}
v2d->cur.xmax += offset[0] - v2d->cur.xmin;
v2d->cur.xmin = offset[0];
@@ -1083,15 +1129,19 @@ static void view2d_map_cur_using_mask(View2D *v2d, rctf *curmasked)
float dx = BLI_rctf_size_x(&v2d->cur) / (sizex + 1);
float dy = BLI_rctf_size_y(&v2d->cur) / (sizey + 1);
if (v2d->mask.xmin != 0)
if (v2d->mask.xmin != 0) {
curmasked->xmin -= dx * (float)v2d->mask.xmin;
if (v2d->mask.xmax + 1 != v2d->winx)
}
if (v2d->mask.xmax + 1 != v2d->winx) {
curmasked->xmax += dx * (float)(v2d->winx - v2d->mask.xmax - 1);
}
if (v2d->mask.ymin != 0)
if (v2d->mask.ymin != 0) {
curmasked->ymin -= dy * (float)v2d->mask.ymin;
if (v2d->mask.ymax + 1 != v2d->winy)
}
if (v2d->mask.ymax + 1 != v2d->winy) {
curmasked->ymax += dy * (float)(v2d->winy - v2d->mask.ymax - 1);
}
}
}
}
@@ -1110,10 +1160,12 @@ void UI_view2d_view_ortho(View2D *v2d)
*/
/* XXX brecht: instead of zero at least use a tiny offset, otherwise
* pixel rounding is effectively random due to float inaccuracy */
if (sizex > 0)
if (sizex > 0) {
xofs = eps * BLI_rctf_size_x(&v2d->cur) / sizex;
if (sizey > 0)
}
if (sizey > 0) {
yofs = eps * BLI_rctf_size_y(&v2d->cur) / sizey;
}
/* apply mask-based adjustments to cur rect (due to scrollers),
* to eliminate scaling artifacts */
@@ -1157,10 +1209,12 @@ void UI_view2d_view_orthoSpecial(ARegion *ar, View2D *v2d, const bool xaxis)
view2d_map_cur_using_mask(v2d, &curmasked);
/* only set matrix with 'cur' coordinates on relevant axes */
if (xaxis)
if (xaxis) {
wmOrtho2(curmasked.xmin - xofs, curmasked.xmax - xofs, -yofs, ar->winy - yofs);
else
}
else {
wmOrtho2(-xofs, ar->winx - xofs, curmasked.ymin - yofs, curmasked.ymax - yofs);
}
}
@@ -1201,9 +1255,15 @@ static void step_to_grid(float *step, int *power, int unit)
rem = (float)pow(10.0, rem);
if (loga < 0.0f) {
if (rem < 0.2f) rem = 0.2f;
else if (rem < 0.5f) rem = 0.5f;
else rem = 1.0f;
if (rem < 0.2f) {
rem = 0.2f;
}
else if (rem < 0.5f) {
rem = 0.5f;
}
else {
rem = 1.0f;
}
*step = rem * (float)pow(10.0, (*power));
@@ -1216,18 +1276,28 @@ static void step_to_grid(float *step, int *power, int unit)
}
/* prevents printing 1.0 2.0 3.0 etc */
if (rem == 1.0f) (*power)++;
if (rem == 1.0f) {
(*power)++;
}
}
else {
if (rem < 2.0f) rem = 2.0f;
else if (rem < 5.0f) rem = 5.0f;
else rem = 10.0f;
if (rem < 2.0f) {
rem = 2.0f;
}
else if (rem < 5.0f) {
rem = 5.0f;
}
else {
rem = 10.0f;
}
*step = rem * (float)pow(10.0, (*power));
(*power)++;
/* prevents printing 1.0, 2.0, 3.0, etc. */
if (rem == 10.0f) (*power)++;
if (rem == 10.0f) {
(*power)++;
}
}
}
@@ -1254,8 +1324,9 @@ View2DGrid *UI_view2d_grid_calc(
float space, seconddiv;
/* check that there are at least some workable args */
if (ELEM(V2D_ARG_DUMMY, xunits, xclamp) && ELEM(V2D_ARG_DUMMY, yunits, yclamp))
if (ELEM(V2D_ARG_DUMMY, xunits, xclamp) && ELEM(V2D_ARG_DUMMY, yunits, yclamp)) {
return NULL;
}
/* grid here is allocated... */
grid = MEM_callocN(sizeof(View2DGrid), "View2DGrid");
@@ -1308,17 +1379,23 @@ View2DGrid *UI_view2d_grid_calc(
/* calculate start position */
if (ELEM(V2D_ARG_DUMMY, xunits, xclamp) == 0) {
grid->startx = seconddiv * (v2d->cur.xmin / seconddiv - (float)fmod(v2d->cur.xmin / seconddiv, grid->dx / seconddiv));
if (v2d->cur.xmin < 0.0f) grid->startx -= grid->dx;
if (v2d->cur.xmin < 0.0f) {
grid->startx -= grid->dx;
}
}
else
else {
grid->startx = v2d->cur.xmin;
}
if (ELEM(V2D_ARG_DUMMY, yunits, yclamp) == 0) {
grid->starty = (v2d->cur.ymin - (float)fmod(v2d->cur.ymin, grid->dy));
if (v2d->cur.ymin < 0.0f) grid->starty -= grid->dy;
if (v2d->cur.ymin < 0.0f) {
grid->starty -= grid->dy;
}
}
else
else {
grid->starty = v2d->cur.ymin;
}
return grid;
}
@@ -1333,8 +1410,9 @@ void UI_view2d_grid_draw(View2D *v2d, View2DGrid *grid, int flag)
uchar grid_line_color[3];
/* check for grid first, as it may not exist */
if (grid == NULL)
if (grid == NULL) {
return;
}
/* Count the needed vertices for the gridlines */
unsigned vertex_count = 0;
@@ -1348,18 +1426,22 @@ void UI_view2d_grid_draw(View2D *v2d, View2DGrid *grid, int flag)
vertex_count += 2 * (horizontal_major_step + 1); /* major gridlines */
/* fine lines */
if (flag & V2D_HORIZONTAL_FINELINES)
if (flag & V2D_HORIZONTAL_FINELINES) {
vertex_count += 2 * (horizontal_major_step + 1);
}
}
/* axes */
if (flag & V2D_HORIZONTAL_AXIS)
if (flag & V2D_HORIZONTAL_AXIS) {
vertex_count += 2;
if (flag & V2D_VERTICAL_AXIS)
}
if (flag & V2D_VERTICAL_AXIS) {
vertex_count += 2;
}
/* If there is nothing to render, exit early */
if (vertex_count == 0)
if (vertex_count == 0) {
return;
}
GPUVertFormat *format = immVertexFormat();
uint pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
@@ -1481,26 +1563,34 @@ void UI_view2d_constant_grid_draw(View2D *v2d, float step)
int count_x, count_y;
start_x = v2d->cur.xmin;
if (start_x < 0.0)
if (start_x < 0.0) {
start_x += -(float)fmod(v2d->cur.xmin, step);
else
}
else {
start_x += (step - (float)fmod(v2d->cur.xmin, step));
}
if (start_x > v2d->cur.xmax)
if (start_x > v2d->cur.xmax) {
count_x = 0;
else
}
else {
count_x = (v2d->cur.xmax - start_x) / step + 1;
}
start_y = v2d->cur.ymin;
if (start_y < 0.0)
if (start_y < 0.0) {
start_y += -(float)fmod(v2d->cur.ymin, step);
else
}
else {
start_y += (step - (float)fabs(fmod(v2d->cur.ymin, step)));
}
if (start_y > v2d->cur.ymax)
if (start_y > v2d->cur.ymax) {
count_y = 0;
else
}
else {
count_y = (v2d->cur.ymax - start_y) / step + 1;
}
if (count_x > 0 || count_y > 0) {
GPUVertFormat *format = immVertexFormat();
@@ -1542,8 +1632,9 @@ void UI_view2d_constant_grid_draw(View2D *v2d, float step)
void UI_view2d_multi_grid_draw(View2D *v2d, int colorid, float step, int level_size, int totlevels)
{
/* Exit if there is nothing to draw */
if (totlevels == 0)
if (totlevels == 0) {
return;
}
int offset = -10;
float lstep = step;
@@ -1567,13 +1658,15 @@ void UI_view2d_multi_grid_draw(View2D *v2d, int colorid, float step, int level_s
UI_GetThemeColorShade3ubv(colorid, offset, grid_line_color);
int i = (int)(v2d->cur.xmin / lstep);
if (v2d->cur.xmin > 0.0f)
if (v2d->cur.xmin > 0.0f) {
i++;
}
float start = i * lstep;
for (; start < v2d->cur.xmax; start += lstep, ++i) {
if (i == 0 || (level < totlevels - 1 && i % level_size == 0))
if (i == 0 || (level < totlevels - 1 && i % level_size == 0)) {
continue;
}
immAttrSkip(color);
immVertex2f(pos, start, v2d->cur.ymin);
@@ -1582,13 +1675,15 @@ void UI_view2d_multi_grid_draw(View2D *v2d, int colorid, float step, int level_s
}
i = (int)(v2d->cur.ymin / lstep);
if (v2d->cur.ymin > 0.0f)
if (v2d->cur.ymin > 0.0f) {
i++;
}
start = i * lstep;
for (; start < v2d->cur.ymax; start += lstep, ++i) {
if (i == 0 || (level < totlevels - 1 && i % level_size == 0))
if (i == 0 || (level < totlevels - 1 && i % level_size == 0)) {
continue;
}
immAttrSkip(color);
immVertex2f(pos, v2d->cur.xmin, start);
@@ -1684,15 +1779,19 @@ View2DScrollers *UI_view2d_scrollers_calc(
/* width of sliders */
smaller = (int)(0.1f * U.widget_unit);
if (scroll & V2D_SCROLL_BOTTOM)
if (scroll & V2D_SCROLL_BOTTOM) {
hor.ymin += smaller;
else
}
else {
hor.ymax -= smaller;
}
if (scroll & V2D_SCROLL_LEFT)
if (scroll & V2D_SCROLL_LEFT) {
vert.xmin += smaller;
else
}
else {
vert.xmax -= smaller;
}
CLAMP(vert.ymin, vert.ymin, vert.ymax - V2D_SCROLLER_HANDLE_SIZE);
CLAMP(hor.xmin, hor.xmin, hor.xmax - V2D_SCROLLER_HANDLE_SIZE);
@@ -1711,23 +1810,30 @@ View2DScrollers *UI_view2d_scrollers_calc(
/* scroller 'button' extents */
totsize = BLI_rctf_size_x(&v2d->tot);
scrollsize = (float)BLI_rcti_size_x(&hor);
if (totsize == 0.0f) totsize = 1.0f; /* avoid divide by zero */
if (totsize == 0.0f) {
totsize = 1.0f; /* avoid divide by zero */
}
fac1 = (v2d->cur.xmin - v2d->tot.xmin) / totsize;
if (fac1 <= 0.0f)
if (fac1 <= 0.0f) {
scrollers->hor_min = hor.xmin;
else
}
else {
scrollers->hor_min = (int)(hor.xmin + (fac1 * scrollsize));
}
fac2 = (v2d->cur.xmax - v2d->tot.xmin) / totsize;
if (fac2 >= 1.0f)
if (fac2 >= 1.0f) {
scrollers->hor_max = hor.xmax;
else
}
else {
scrollers->hor_max = (int)(hor.xmin + (fac2 * scrollsize));
}
/* prevent inverted sliders */
if (scrollers->hor_min > scrollers->hor_max)
if (scrollers->hor_min > scrollers->hor_max) {
scrollers->hor_min = scrollers->hor_max;
}
/* prevent sliders from being too small, and disappearing */
if ((scrollers->hor_max - scrollers->hor_min) < V2D_SCROLLER_HANDLE_SIZE) {
scrollers->hor_max = scrollers->hor_min + V2D_SCROLLER_HANDLE_SIZE;
@@ -1743,23 +1849,30 @@ View2DScrollers *UI_view2d_scrollers_calc(
/* scroller 'button' extents */
totsize = BLI_rctf_size_y(&v2d->tot);
scrollsize = (float)BLI_rcti_size_y(&vert);
if (totsize == 0.0f) totsize = 1.0f; /* avoid divide by zero */
if (totsize == 0.0f) {
totsize = 1.0f; /* avoid divide by zero */
}
fac1 = (v2d->cur.ymin - v2d->tot.ymin) / totsize;
if (fac1 <= 0.0f)
if (fac1 <= 0.0f) {
scrollers->vert_min = vert.ymin;
else
}
else {
scrollers->vert_min = (int)(vert.ymin + (fac1 * scrollsize));
}
fac2 = (v2d->cur.ymax - v2d->tot.ymin) / totsize;
if (fac2 >= 1.0f)
if (fac2 >= 1.0f) {
scrollers->vert_max = vert.ymax;
else
}
else {
scrollers->vert_max = (int)(vert.ymin + (fac2 * scrollsize));
}
/* prevent inverted sliders */
if (scrollers->vert_min > scrollers->vert_max)
if (scrollers->vert_min > scrollers->vert_max) {
scrollers->vert_min = scrollers->vert_max;
}
/* prevent sliders from being too small, and disappearing */
if ((scrollers->vert_max - scrollers->vert_min) < V2D_SCROLLER_HANDLE_SIZE) {
@@ -1821,10 +1934,12 @@ static void scroll_printstr(Scene *scene, float x, float y, float val, int power
len = strlen(timecode_str);
if (dir == 'h') {
/* seconds/timecode display has slightly longer strings... */
if (unit == V2D_UNIT_SECONDS)
if (unit == V2D_UNIT_SECONDS) {
x -= 3 * len;
else
}
else {
x -= 4 * len;
}
}
/* Add degree sympbol to end of string for vertical scrollbar? */
@@ -1916,8 +2031,9 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
dfac *= 2.0f;
}
}
if (vs->xunits == V2D_UNIT_FRAMES)
if (vs->xunits == V2D_UNIT_FRAMES) {
grid->powerx = 1;
}
/* draw numbers in the appropriate range */
if (dfac > 0.0f) {
@@ -1928,8 +2044,9 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
for (; fac < hor.xmax - 0.5f * U.widget_unit; fac += dfac, val += grid->dx) {
/* make prints look nicer for scrollers */
if (fac < hor.xmin + 0.5f * U.widget_unit)
if (fac < hor.xmin + 0.5f * U.widget_unit) {
continue;
}
switch (vs->xunits) {
case V2D_UNIT_FRAMES: /* frames (as whole numbers)*/
@@ -2018,8 +2135,9 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
/* if vertical clamping (to whole numbers) is used (i.e. in Sequencer),
* apply correction */
if (vs->yclamp == V2D_GRID_CLAMP)
if (vs->yclamp == V2D_GRID_CLAMP) {
fac += 0.5f * dfac;
}
/* draw vertical steps */
if (dfac > 0.0f) {
@@ -2029,8 +2147,9 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
for (; fac < vert.ymax - 10; fac += dfac, val += grid->dy) {
/* make prints look nicer for scrollers */
if (fac < vert.ymin + 10)
if (fac < vert.ymin + 10) {
continue;
}
scroll_printstr(scene, (float)(vert.xmax) - 2.0f, fac, val, grid->powery, vs->yunits, 'v');
}
@@ -2127,23 +2246,31 @@ void UI_view2d_listview_view_to_cell(
/* sizes must not be negative */
if ((v2d == NULL) || ((columnwidth <= 0) && (rowheight <= 0))) {
if (column) *column = 0;
if (row) *row = 0;
if (column) {
*column = 0;
}
if (row) {
*row = 0;
}
return;
}
/* get column */
if ((column) && (columnwidth > 0))
if ((column) && (columnwidth > 0)) {
*column = x / columnwidth;
else if (column)
}
else if (column) {
*column = 0;
}
/* get row */
if ((row) && (rowheight > 0))
if ((row) && (rowheight > 0)) {
*row = y / rowheight;
else if (row)
}
else if (row) {
*row = 0;
}
}
/**
@@ -2350,8 +2477,12 @@ View2D *UI_view2d_fromcontext(const bContext *C)
ScrArea *area = CTX_wm_area(C);
ARegion *region = CTX_wm_region(C);
if (area == NULL) return NULL;
if (region == NULL) return NULL;
if (area == NULL) {
return NULL;
}
if (region == NULL) {
return NULL;
}
return &(region->v2d);
}
@@ -2361,8 +2492,12 @@ View2D *UI_view2d_fromcontext_rwin(const bContext *C)
ScrArea *sa = CTX_wm_area(C);
ARegion *region = CTX_wm_region(C);
if (sa == NULL) return NULL;
if (region == NULL) return NULL;
if (sa == NULL) {
return NULL;
}
if (region == NULL) {
return NULL;
}
if (region->regiontype != RGN_TYPE_WINDOW) {
ARegion *ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
return ar ? &(ar->v2d) : NULL;
@@ -2381,16 +2516,24 @@ View2D *UI_view2d_fromcontext_rwin(const bContext *C)
*/
void UI_view2d_scale_get(View2D *v2d, float *x, float *y)
{
if (x) *x = BLI_rcti_size_x(&v2d->mask) / BLI_rctf_size_x(&v2d->cur);
if (y) *y = BLI_rcti_size_y(&v2d->mask) / BLI_rctf_size_y(&v2d->cur);
if (x) {
*x = BLI_rcti_size_x(&v2d->mask) / BLI_rctf_size_x(&v2d->cur);
}
if (y) {
*y = BLI_rcti_size_y(&v2d->mask) / BLI_rctf_size_y(&v2d->cur);
}
}
/**
* Same as ``UI_view2d_scale_get() - 1.0f / x, y``
*/
void UI_view2d_scale_get_inverse(View2D *v2d, float *x, float *y)
{
if (x) *x = BLI_rctf_size_x(&v2d->cur) / BLI_rcti_size_x(&v2d->mask);
if (y) *y = BLI_rctf_size_y(&v2d->cur) / BLI_rcti_size_y(&v2d->mask);
if (x) {
*x = BLI_rctf_size_x(&v2d->cur) / BLI_rcti_size_x(&v2d->mask);
}
if (y) {
*y = BLI_rctf_size_y(&v2d->cur) / BLI_rcti_size_y(&v2d->mask);
}
}
/**
@@ -2400,8 +2543,12 @@ void UI_view2d_scale_get_inverse(View2D *v2d, float *x, float *y)
void UI_view2d_center_get(struct View2D *v2d, float *x, float *y)
{
/* get center */
if (x) *x = BLI_rctf_cent_x(&v2d->cur);
if (y) *y = BLI_rctf_cent_y(&v2d->cur);
if (x) {
*x = BLI_rctf_cent_x(&v2d->cur);
}
if (y) {
*y = BLI_rctf_cent_y(&v2d->cur);
}
}
void UI_view2d_center_set(struct View2D *v2d, float x, float y)
{
@@ -2465,10 +2612,14 @@ char UI_view2d_mouse_in_scrollers_ex(
/* check if within scrollbars */
if (scroll & V2D_SCROLL_HORIZONTAL) {
if (IN_2D_HORIZ_SCROLL(v2d, co)) return 'h';
if (IN_2D_HORIZ_SCROLL(v2d, co)) {
return 'h';
}
}
if (scroll & V2D_SCROLL_VERTICAL) {
if (IN_2D_VERT_SCROLL(v2d, co)) return 'v';
if (IN_2D_VERT_SCROLL(v2d, co)) {
return 'v';
}
}
/* not found */
@@ -2582,17 +2733,20 @@ void UI_view2d_text_cache_draw(ARegion *ar)
int xofs = 0, yofs;
yofs = ceil(0.5f * (BLI_rcti_size_y(&v2s->rect) - default_height));
if (yofs < 1) yofs = 1;
if (yofs < 1) {
yofs = 1;
}
if (col_pack_prev != v2s->col.pack) {
BLF_color3ubv(font_id, v2s->col.ub);
col_pack_prev = v2s->col.pack;
}
if (v2s->rect.xmin >= v2s->rect.xmax)
if (v2s->rect.xmin >= v2s->rect.xmax) {
BLF_draw_default(
(float)(v2s->mval[0] + xofs), (float)(v2s->mval[1] + yofs), 0.0,
v2s->str, BLF_DRAW_STR_DUMMY_MAX);
}
else {
BLF_enable(font_id, BLF_CLIPPING);
BLF_clipping(font_id, v2s->rect.xmin - 4, v2s->rect.ymin - 4, v2s->rect.xmax + 4, v2s->rect.ymax + 4);

View File

@@ -104,13 +104,15 @@ static int view_pan_init(bContext *C, wmOperator *op)
float winx, winy;
/* regions now have v2d-data by default, so check for region */
if (ar == NULL)
if (ar == NULL) {
return 0;
}
/* check if panning is allowed at all */
v2d = &ar->v2d;
if ((v2d->keepofs & V2D_LOCKOFS_X) && (v2d->keepofs & V2D_LOCKOFS_Y))
if ((v2d->keepofs & V2D_LOCKOFS_X) && (v2d->keepofs & V2D_LOCKOFS_Y)) {
return 0;
}
/* set custom-data for operator */
vpd = MEM_callocN(sizeof(v2dViewPanData), "v2dViewPanData");
@@ -138,13 +140,15 @@ static bool view_pan_poll(bContext *C)
View2D *v2d;
/* check if there's a region in context to work with */
if (ar == NULL)
if (ar == NULL) {
return 0;
}
v2d = &ar->v2d;
/* check that 2d-view can pan */
if ((v2d->keepofs & V2D_LOCKOFS_X) && (v2d->keepofs & V2D_LOCKOFS_Y))
if ((v2d->keepofs & V2D_LOCKOFS_X) && (v2d->keepofs & V2D_LOCKOFS_Y)) {
return 0;
}
/* view can pan */
return 1;
@@ -207,8 +211,9 @@ static void view_pan_exit(wmOperator *op)
/* for 'redo' only, with no user input */
static int view_pan_exec(bContext *C, wmOperator *op)
{
if (!view_pan_init(C, op))
if (!view_pan_init(C, op)) {
return OPERATOR_CANCELLED;
}
view_pan_apply(C, op);
view_pan_exit(op);
@@ -223,8 +228,9 @@ static int view_pan_invoke(bContext *C, wmOperator *op, const wmEvent *event)
View2D *v2d;
/* set up customdata */
if (!view_pan_init(C, op))
if (!view_pan_init(C, op)) {
return OPERATOR_PASS_THROUGH;
}
vpd = op->customdata;
v2d = vpd->v2d;
@@ -246,12 +252,15 @@ static int view_pan_invoke(bContext *C, wmOperator *op, const wmEvent *event)
RNA_int_set(op->ptr, "deltax", 0);
RNA_int_set(op->ptr, "deltay", 0);
if (v2d->keepofs & V2D_LOCKOFS_X)
if (v2d->keepofs & V2D_LOCKOFS_X) {
WM_cursor_modal_set(window, BC_NS_SCROLLCURSOR);
else if (v2d->keepofs & V2D_LOCKOFS_Y)
}
else if (v2d->keepofs & V2D_LOCKOFS_Y) {
WM_cursor_modal_set(window, BC_EW_SCROLLCURSOR);
else
}
else {
WM_cursor_modal_set(window, BC_NSEW_SCROLLCURSOR);
}
/* add temp handler */
WM_event_add_modal_handler(C, op);
@@ -347,8 +356,9 @@ static int view_scrollright_exec(bContext *C, wmOperator *op)
v2dViewPanData *vpd;
/* initialize default settings (and validate if ok to run) */
if (!view_pan_init(C, op))
if (!view_pan_init(C, op)) {
return OPERATOR_PASS_THROUGH;
}
/* also, check if can pan in horizontal axis */
vpd = op->customdata;
@@ -391,8 +401,9 @@ static int view_scrollleft_exec(bContext *C, wmOperator *op)
v2dViewPanData *vpd;
/* initialize default settings (and validate if ok to run) */
if (!view_pan_init(C, op))
if (!view_pan_init(C, op)) {
return OPERATOR_PASS_THROUGH;
}
/* also, check if can pan in horizontal axis */
vpd = op->customdata;
@@ -434,8 +445,9 @@ static int view_scrolldown_exec(bContext *C, wmOperator *op)
v2dViewPanData *vpd;
/* initialize default settings (and validate if ok to run) */
if (!view_pan_init(C, op))
if (!view_pan_init(C, op)) {
return OPERATOR_PASS_THROUGH;
}
/* also, check if can pan in vertical axis */
vpd = op->customdata;
@@ -485,8 +497,9 @@ static int view_scrollup_exec(bContext *C, wmOperator *op)
v2dViewPanData *vpd;
/* initialize default settings (and validate if ok to run) */
if (!view_pan_init(C, op))
if (!view_pan_init(C, op)) {
return OPERATOR_PASS_THROUGH;
}
/* also, check if can pan in vertical axis */
vpd = op->customdata;
@@ -577,8 +590,9 @@ static void view_zoom_axis_lock_defaults(bContext *C, bool r_do_zoom_xy[2])
if (sa && sa->spacetype == SPACE_SEQ) {
ARegion *ar = CTX_wm_region(C);
if (ar && ar->regiontype == RGN_TYPE_WINDOW)
if (ar && ar->regiontype == RGN_TYPE_WINDOW) {
r_do_zoom_xy[1] = false;
}
}
}
@@ -590,13 +604,15 @@ static int view_zoomdrag_init(bContext *C, wmOperator *op)
View2D *v2d;
/* regions now have v2d-data by default, so check for region */
if (ar == NULL)
if (ar == NULL) {
return 0;
}
v2d = &ar->v2d;
/* check that 2d-view is zoomable */
if ((v2d->keepzoom & V2D_LOCKZOOM_X) && (v2d->keepzoom & V2D_LOCKZOOM_Y))
if ((v2d->keepzoom & V2D_LOCKZOOM_X) && (v2d->keepzoom & V2D_LOCKZOOM_Y)) {
return 0;
}
/* set custom-data for operator */
vzd = MEM_callocN(sizeof(v2dViewZoomData), "v2dViewZoomData");
@@ -616,18 +632,21 @@ static bool view_zoom_poll(bContext *C)
View2D *v2d;
/* check if there's a region in context to work with */
if (ar == NULL)
if (ar == NULL) {
return false;
}
/* Do not show that in 3DView context. */
if (CTX_wm_region_view3d(C))
if (CTX_wm_region_view3d(C)) {
return false;
}
v2d = &ar->v2d;
/* check that 2d-view is zoomable */
if ((v2d->keepzoom & V2D_LOCKZOOM_X) && (v2d->keepzoom & V2D_LOCKZOOM_Y))
if ((v2d->keepzoom & V2D_LOCKZOOM_X) && (v2d->keepzoom & V2D_LOCKZOOM_Y)) {
return false;
}
/* view is zoomable */
return true;
@@ -662,10 +681,12 @@ static void view_zoomstep_apply_ex(
v2d->cur.xmax -= 2 * dx;
}
else if (v2d->keepofs & V2D_KEEPOFS_X) {
if (v2d->align & V2D_ALIGN_NO_POS_X)
if (v2d->align & V2D_ALIGN_NO_POS_X) {
v2d->cur.xmin += 2 * dx;
else
}
else {
v2d->cur.xmax -= 2 * dx;
}
}
else {
@@ -696,10 +717,12 @@ static void view_zoomstep_apply_ex(
v2d->cur.ymax -= 2 * dy;
}
else if (v2d->keepofs & V2D_KEEPOFS_Y) {
if (v2d->align & V2D_ALIGN_NO_POS_Y)
if (v2d->align & V2D_ALIGN_NO_POS_Y) {
v2d->cur.ymin += 2 * dy;
else
}
else {
v2d->cur.ymax -= 2 * dy;
}
}
else {
@@ -768,8 +791,9 @@ static int view_zoomin_exec(bContext *C, wmOperator *op)
bool do_zoom_xy[2];
/* check that there's an active region, as View2D data resides there */
if (!view_zoom_poll(C))
if (!view_zoom_poll(C)) {
return OPERATOR_PASS_THROUGH;
}
view_zoom_axis_lock_defaults(C, do_zoom_xy);
@@ -790,8 +814,9 @@ static int view_zoomin_invoke(bContext *C, wmOperator *op, const wmEvent *event)
{
v2dViewZoomData *vzd;
if (!view_zoomdrag_init(C, op))
if (!view_zoomdrag_init(C, op)) {
return OPERATOR_PASS_THROUGH;
}
vzd = op->customdata;
@@ -835,8 +860,9 @@ static int view_zoomout_exec(bContext *C, wmOperator *op)
bool do_zoom_xy[2];
/* check that there's an active region, as View2D data resides there */
if (!view_zoom_poll(C))
if (!view_zoom_poll(C)) {
return OPERATOR_PASS_THROUGH;
}
view_zoom_axis_lock_defaults(C, do_zoom_xy);
@@ -856,8 +882,9 @@ static int view_zoomout_invoke(bContext *C, wmOperator *op, const wmEvent *event
{
v2dViewZoomData *vzd;
if (!view_zoomdrag_init(C, op))
if (!view_zoomdrag_init(C, op)) {
return OPERATOR_PASS_THROUGH;
}
vzd = op->customdata;
@@ -995,8 +1022,9 @@ static void view_zoomdrag_exit(bContext *C, wmOperator *op)
if (op->customdata) {
v2dViewZoomData *vzd = op->customdata;
if (vzd->timer)
if (vzd->timer) {
WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), vzd->timer);
}
MEM_freeN(op->customdata);
op->customdata = NULL;
@@ -1011,8 +1039,9 @@ static void view_zoomdrag_cancel(bContext *C, wmOperator *op)
/* for 'redo' only, with no user input */
static int view_zoomdrag_exec(bContext *C, wmOperator *op)
{
if (!view_zoomdrag_init(C, op))
if (!view_zoomdrag_init(C, op)) {
return OPERATOR_PASS_THROUGH;
}
view_zoomdrag_apply(C, op);
view_zoomdrag_exit(C, op);
@@ -1027,8 +1056,9 @@ static int view_zoomdrag_invoke(bContext *C, wmOperator *op, const wmEvent *even
View2D *v2d;
/* set up customdata */
if (!view_zoomdrag_init(C, op))
if (!view_zoomdrag_init(C, op)) {
return OPERATOR_PASS_THROUGH;
}
vzd = op->customdata;
v2d = vzd->v2d;
@@ -1044,17 +1074,20 @@ static int view_zoomdrag_invoke(bContext *C, wmOperator *op, const wmEvent *even
*/
fac = 0.01f * (event->prevx - event->x);
dx = fac * BLI_rctf_size_x(&v2d->cur) / 10.0f;
if (event->type == MOUSEPAN)
if (event->type == MOUSEPAN) {
fac = 0.01f * (event->prevy - event->y);
}
dy = fac * BLI_rctf_size_y(&v2d->cur) / 10.0f;
/* support trackpad zoom to always zoom entirely - the v2d code uses portrait or
* landscape exceptions */
if (v2d->keepzoom & V2D_KEEPASPECT) {
if (fabsf(dx) > fabsf(dy))
if (fabsf(dx) > fabsf(dy)) {
dy = dx;
else
}
else {
dx = dy;
}
}
RNA_float_set(op->ptr, "deltax", dx);
RNA_float_set(op->ptr, "deltay", dy);
@@ -1083,12 +1116,15 @@ static int view_zoomdrag_invoke(bContext *C, wmOperator *op, const wmEvent *even
&vzd->mx_2d, &vzd->my_2d);
}
if (v2d->keepofs & V2D_LOCKOFS_X)
if (v2d->keepofs & V2D_LOCKOFS_X) {
WM_cursor_modal_set(window, BC_NS_SCROLLCURSOR);
else if (v2d->keepofs & V2D_LOCKOFS_Y)
}
else if (v2d->keepofs & V2D_LOCKOFS_Y) {
WM_cursor_modal_set(window, BC_EW_SCROLLCURSOR);
else
}
else {
WM_cursor_modal_set(window, BC_NSEW_SCROLLCURSOR);
}
/* add temp handler */
WM_event_add_modal_handler(C, op);
@@ -1136,8 +1172,9 @@ static int view_zoomdrag_modal(bContext *C, wmOperator *op, const wmEvent *event
float fac, zoomfac = 0.01f;
/* some view2d's (graph) don't have min/max zoom, or extreme ones */
if (v2d->maxzoom > 0.0f)
if (v2d->maxzoom > 0.0f) {
zoomfac = clamp_f(0.001f * v2d->maxzoom, 0.001f, 0.01f);
}
/* x-axis transform */
fac = zoomfac * (event->x - vzd->lastx);
@@ -1152,10 +1189,12 @@ static int view_zoomdrag_modal(bContext *C, wmOperator *op, const wmEvent *event
/* support zoom to always zoom entirely - the v2d code uses portrait or
* landscape exceptions */
if (v2d->keepzoom & V2D_KEEPASPECT) {
if (fabsf(dx) > fabsf(dy))
if (fabsf(dx) > fabsf(dy)) {
dy = dx;
else
}
else {
dx = dy;
}
}
/* set transform amount, and add current deltas to stored total delta (for redo) */
@@ -1180,15 +1219,19 @@ static int view_zoomdrag_modal(bContext *C, wmOperator *op, const wmEvent *event
if (event->val == KM_RELEASE) {
/* for redo, store the overall deltas - need to respect zoom-locks here... */
if ((v2d->keepzoom & V2D_LOCKZOOM_X) == 0)
if ((v2d->keepzoom & V2D_LOCKZOOM_X) == 0) {
RNA_float_set(op->ptr, "deltax", vzd->dx);
else
}
else {
RNA_float_set(op->ptr, "deltax", 0);
}
if ((v2d->keepzoom & V2D_LOCKZOOM_Y) == 0)
if ((v2d->keepzoom & V2D_LOCKZOOM_Y) == 0) {
RNA_float_set(op->ptr, "deltay", vzd->dy);
else
}
else {
RNA_float_set(op->ptr, "deltay", 0);
}
/* free customdata */
view_zoomdrag_exit(C, op);
@@ -1363,8 +1406,9 @@ static int view2d_ndof_invoke(bContext *C, wmOperator *op, const wmEvent *event)
bool do_zoom_xy[2];
if (U.ndof_flag & NDOF_ZOOM_INVERT)
if (U.ndof_flag & NDOF_ZOOM_INVERT) {
zoom_factor = -zoom_factor;
}
view_zoom_axis_lock_defaults(C, do_zoom_xy);
@@ -1440,12 +1484,16 @@ static float smooth_view_rect_to_fac(const rctf *rect_a, const rctf *rect_b)
/* axis translation normalized to scale */
tfac = fabsf(cent_a[i] - cent_b[i]) / min_ff(size_a[i], size_b[i]);
fac_max = max_ff(fac_max, tfac);
if (fac_max >= 1.0f) break;
if (fac_max >= 1.0f) {
break;
}
/* axis scale difference, x2 so doubling or half gives 1.0f */
tfac = (1.0f - (min_ff(size_a[i], size_b[i]) / max_ff(size_a[i], size_b[i]))) * 2.0f;
fac_max = max_ff(fac_max, tfac);
if (fac_max >= 1.0f) break;
if (fac_max >= 1.0f) {
break;
}
}
return min_ff(fac_max, 1.0f);
}
@@ -1468,7 +1516,9 @@ void UI_view2d_smooth_view(
sms.new_cur = v2d->cur;
/* store the options we want to end with */
if (cur) sms.new_cur = *cur;
if (cur) {
sms.new_cur = *cur;
}
if (cur) {
fac = smooth_view_rect_to_fac(&v2d->cur, cur);
@@ -1477,8 +1527,9 @@ void UI_view2d_smooth_view(
if (smooth_viewtx && fac > FLT_EPSILON) {
bool changed = false;
if (BLI_rctf_compare(&sms.new_cur, &v2d->cur, FLT_EPSILON) == false)
if (BLI_rctf_compare(&sms.new_cur, &v2d->cur, FLT_EPSILON) == false) {
changed = true;
}
/* The new view is different from the old one
* so animate the view */
@@ -1491,11 +1542,13 @@ void UI_view2d_smooth_view(
sms.time_allowed *= (double)fac;
/* keep track of running timer! */
if (v2d->sms == NULL)
if (v2d->sms == NULL) {
v2d->sms = MEM_mallocN(sizeof(struct SmoothView2DStore), "smoothview v2d");
}
*v2d->sms = sms;
if (v2d->smooth_timer)
if (v2d->smooth_timer) {
WM_event_remove_timer(wm, win, v2d->smooth_timer);
}
/* TIMER1 is hardcoded in keymap */
/* max 30 frs/sec */
v2d->smooth_timer = WM_event_add_timer(wm, win, TIMER1, 1.0 / 100.0);
@@ -1523,13 +1576,16 @@ static int view2d_smoothview_invoke(bContext *C, wmOperator *UNUSED(op), const w
float step;
/* escape if not our timer */
if (v2d->smooth_timer == NULL || v2d->smooth_timer != event->customdata)
if (v2d->smooth_timer == NULL || v2d->smooth_timer != event->customdata) {
return OPERATOR_PASS_THROUGH;
}
if (sms->time_allowed != 0.0)
if (sms->time_allowed != 0.0) {
step = (float)((v2d->smooth_timer->duration) / sms->time_allowed);
else
}
else {
step = 1.0f;
}
/* end timer */
if (step >= 1.0f) {
@@ -1662,14 +1718,24 @@ static short mouse_in_scroller_handle(int mouse, int sc_min, int sc_max, int sh_
* - 'bubble' fills entire scroller
* - 'bubble' completely out of view on either side
*/
if ((sh_min <= sc_min) && (sh_max >= sc_max)) in_view = 0;
if ((sh_min <= sc_min) && (sh_max >= sc_max)) {
in_view = 0;
}
if (sh_min == sh_max) {
if (sh_min <= sc_min) in_view = 0;
if (sh_max >= sc_max) in_view = 0;
if (sh_min <= sc_min) {
in_view = 0;
}
if (sh_max >= sc_max) {
in_view = 0;
}
}
else {
if (sh_max <= sc_min) in_view = 0;
if (sh_min >= sc_max) in_view = 0;
if (sh_max <= sc_min) {
in_view = 0;
}
if (sh_min >= sc_max) {
in_view = 0;
}
}
@@ -1685,16 +1751,21 @@ static short mouse_in_scroller_handle(int mouse, int sc_min, int sc_max, int sh_
out_min = mouse < (sh_min - V2D_SCROLLER_HANDLE_SIZE);
out_max = mouse > (sh_max + V2D_SCROLLER_HANDLE_SIZE);
if (in_bar)
if (in_bar) {
return SCROLLHANDLE_BAR;
else if (in_max)
}
else if (in_max) {
return SCROLLHANDLE_MAX;
else if (in_min)
}
else if (in_min) {
return SCROLLHANDLE_MIN;
else if (out_min)
}
else if (out_min) {
return SCROLLHANDLE_MIN_OUTSIDE;
else if (out_max)
}
else if (out_max) {
return SCROLLHANDLE_MAX_OUTSIDE;
}
/* unlikely to happen, though we just cover it in case */
return SCROLLHANDLE_BAR;
@@ -1833,19 +1904,23 @@ static void scroller_activate_apply(bContext *C, wmOperator *op)
switch (vsm->zone) {
case SCROLLHANDLE_MIN:
/* only expand view on axis if zoom is allowed */
if ((vsm->scroller == 'h') && !(v2d->keepzoom & V2D_LOCKZOOM_X))
if ((vsm->scroller == 'h') && !(v2d->keepzoom & V2D_LOCKZOOM_X)) {
v2d->cur.xmin -= temp;
if ((vsm->scroller == 'v') && !(v2d->keepzoom & V2D_LOCKZOOM_Y))
}
if ((vsm->scroller == 'v') && !(v2d->keepzoom & V2D_LOCKZOOM_Y)) {
v2d->cur.ymin -= temp;
}
break;
case SCROLLHANDLE_MAX:
/* only expand view on axis if zoom is allowed */
if ((vsm->scroller == 'h') && !(v2d->keepzoom & V2D_LOCKZOOM_X))
if ((vsm->scroller == 'h') && !(v2d->keepzoom & V2D_LOCKZOOM_X)) {
v2d->cur.xmax += temp;
if ((vsm->scroller == 'v') && !(v2d->keepzoom & V2D_LOCKZOOM_Y))
}
if ((vsm->scroller == 'v') && !(v2d->keepzoom & V2D_LOCKZOOM_Y)) {
v2d->cur.ymax += temp;
}
break;
case SCROLLHANDLE_MIN_OUTSIDE:
@@ -1925,10 +2000,12 @@ static int scroller_activate_modal(bContext *C, wmOperator *op, const wmEvent *e
if (event->val == KM_RELEASE) {
/* single-click was in empty space outside bubble, so scroll by 1 'page' */
if (ELEM(vsm->zone, SCROLLHANDLE_MIN_OUTSIDE, SCROLLHANDLE_MAX_OUTSIDE)) {
if (vsm->zone == SCROLLHANDLE_MIN_OUTSIDE)
if (vsm->zone == SCROLLHANDLE_MIN_OUTSIDE) {
vsm->delta = -vsm->scrollbarwidth * 0.8f;
else if (vsm->zone == SCROLLHANDLE_MAX_OUTSIDE)
}
else if (vsm->zone == SCROLLHANDLE_MAX_OUTSIDE) {
vsm->delta = vsm->scrollbarwidth * 0.8f;
}
scroller_activate_apply(C, op);
scroller_activate_exit(C, op);
@@ -2023,10 +2100,12 @@ static int scroller_activate_invoke(bContext *C, wmOperator *op, const wmEvent *
}
/* activate the scroller */
if (vsm->scroller == 'h')
if (vsm->scroller == 'h') {
v2d->scroll_ui |= V2D_SCROLL_H_ACTIVE;
else
}
else {
v2d->scroll_ui |= V2D_SCROLL_V_ACTIVE;
}
/* still ok, so can add */
WM_event_add_modal_handler(C, op);