Refactor: UI_BTYPE_SEPR_LINE Without Need for uiBut->a1 #118969
|
@ -906,6 +906,12 @@ static void ui_but_update_old_active_from_new(uiBut *oldbut, uiBut *but)
|
|||
progress_oldbut->progress_factor = progress_but->progress_factor;
|
||||
break;
|
||||
}
|
||||
case UI_BTYPE_SEPR_LINE: {
|
||||
uiButSeparatorLine *line_oldbut = (uiButSeparatorLine *)oldbut;
|
||||
uiButSeparatorLine *line_but = (uiButSeparatorLine *)but;
|
||||
line_oldbut->is_vertical = line_but->is_vertical;
|
||||
break;
|
||||
}
|
||||
case UI_BTYPE_VIEW_ITEM: {
|
||||
uiButViewItem *view_item_oldbut = (uiButViewItem *)oldbut;
|
||||
uiButViewItem *view_item_newbut = (uiButViewItem *)but;
|
||||
|
@ -3938,6 +3944,9 @@ static uiBut *ui_but_new(const eButType type)
|
|||
case UI_BTYPE_PROGRESS:
|
||||
but = MEM_new<uiButProgress>("uiButProgress");
|
||||
break;
|
||||
case UI_BTYPE_SEPR_LINE:
|
||||
but = MEM_new<uiButSeparatorLine>("uiButSeparatorLine");
|
||||
break;
|
||||
case UI_BTYPE_HSVCUBE:
|
||||
but = MEM_new<uiButHSVCube>("uiButHSVCube");
|
||||
break;
|
||||
|
|
|
@ -389,6 +389,11 @@ struct uiButProgress : public uiBut {
|
|||
eButProgressType progress_type = UI_BUT_PROGRESS_TYPE_BAR;
|
||||
};
|
||||
|
||||
/** Derived struct for #UI_BTYPE_SEPR_LINE. */
|
||||
struct uiButSeparatorLine : public uiBut {
|
||||
bool is_vertical;
|
||||
};
|
||||
|
||||
struct uiButViewItem : public uiBut {
|
||||
/* C-Handle to the view item this button was created for. */
|
||||
uiViewItemHandle *view_item = nullptr;
|
||||
|
|
|
@ -3452,20 +3452,25 @@ void uiItemS_ex(uiLayout *layout, float factor, const LayoutSeparatorType type)
|
|||
bool is_vertical_bar = (layout->w == 0) && but_type == UI_BTYPE_SEPR_LINE;
|
||||
|
||||
UI_block_layout_set_current(block, layout);
|
||||
uiDefBut(block,
|
||||
but_type,
|
||||
0,
|
||||
"",
|
||||
0,
|
||||
0,
|
||||
space,
|
||||
is_vertical_bar ? UI_UNIT_Y : space,
|
||||
nullptr,
|
||||
0.0,
|
||||
0.0,
|
||||
is_vertical_bar ? 1.0f : 0.0f,
|
||||
0,
|
||||
"");
|
||||
uiBut *but = uiDefBut(block,
|
||||
but_type,
|
||||
0,
|
||||
"",
|
||||
0,
|
||||
0,
|
||||
space,
|
||||
is_vertical_bar ? UI_UNIT_Y : space,
|
||||
nullptr,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0,
|
||||
"");
|
||||
|
||||
if (but_type == UI_BTYPE_SEPR_LINE) {
|
||||
uiButSeparatorLine *but_line = static_cast<uiButSeparatorLine *>(but);
|
||||
but_line->is_vertical = is_vertical_bar;
|
||||
}
|
||||
}
|
||||
|
||||
void uiItemS(uiLayout *layout)
|
||||
|
|
|
@ -3389,7 +3389,8 @@ static void ui_draw_but_HSV_v(uiBut *but, const rcti *rect)
|
|||
/** Separator line. */
|
||||
static void ui_draw_separator(const uiWidgetColors *wcol, uiBut *but, const rcti *rect)
|
||||
{
|
||||
const bool vertical = but->a1 == 1.0f;
|
||||
const uiButSeparatorLine *but_line = static_cast<uiButSeparatorLine *>(but);
|
||||
Harley marked this conversation as resolved
Outdated
|
||||
const bool vertical = but_line->is_vertical;
|
||||
const int mid = vertical ? BLI_rcti_cent_x(rect) : BLI_rcti_cent_y(rect);
|
||||
const uchar col[4] = {
|
||||
wcol->text[0],
|
||||
|
|
Loading…
Reference in New Issue
const uiButSeparatorLine