UI: allow fractical unit size for layouts.
This commit is contained in:
@@ -991,8 +991,8 @@ void uiLayoutSetAlignment(uiLayout *layout, char alignment);
|
||||
void uiLayoutSetKeepAspect(uiLayout *layout, bool keepaspect);
|
||||
void uiLayoutSetScaleX(uiLayout *layout, float scale);
|
||||
void uiLayoutSetScaleY(uiLayout *layout, float scale);
|
||||
void uiLayoutSetUnitsX(uiLayout *layout, int unit);
|
||||
void uiLayoutSetUnitsY(uiLayout *layout, int unit);
|
||||
void uiLayoutSetUnitsX(uiLayout *layout, float unit);
|
||||
void uiLayoutSetUnitsY(uiLayout *layout, float unit);
|
||||
void uiLayoutSetEmboss(uiLayout *layout, char emboss);
|
||||
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep);
|
||||
void uiLayoutSetPropDecorate(uiLayout *layout, bool is_sep);
|
||||
@@ -1006,8 +1006,8 @@ bool uiLayoutGetKeepAspect(uiLayout *layout);
|
||||
int uiLayoutGetWidth(uiLayout *layout);
|
||||
float uiLayoutGetScaleX(uiLayout *layout);
|
||||
float uiLayoutGetScaleY(uiLayout *layout);
|
||||
int uiLayoutGetUnitsX(uiLayout *layout);
|
||||
int uiLayoutGetUnitsY(uiLayout *layout);
|
||||
float uiLayoutGetUnitsX(uiLayout *layout);
|
||||
float uiLayoutGetUnitsY(uiLayout *layout);
|
||||
int uiLayoutGetEmboss(uiLayout *layout);
|
||||
bool uiLayoutGetPropSep(uiLayout *layout);
|
||||
bool uiLayoutGetPropDecorate(uiLayout *layout);
|
||||
|
||||
@@ -169,7 +169,7 @@ struct uiLayout {
|
||||
bool variable_size; /* For layouts inside gridflow, they and their items shall never have a fixed maximal size. */
|
||||
char alignment;
|
||||
char emboss;
|
||||
int units[2]; /* for fixed width or height to avoid UI size changes */
|
||||
float units[2]; /* for fixed width or height to avoid UI size changes */
|
||||
};
|
||||
|
||||
typedef struct uiLayoutItemFlow {
|
||||
@@ -3857,12 +3857,12 @@ void uiLayoutSetScaleY(uiLayout *layout, float scale)
|
||||
layout->scale[1] = scale;
|
||||
}
|
||||
|
||||
void uiLayoutSetUnitsX(uiLayout *layout, int unit)
|
||||
void uiLayoutSetUnitsX(uiLayout *layout, float unit)
|
||||
{
|
||||
layout->units[0] = unit;
|
||||
}
|
||||
|
||||
void uiLayoutSetUnitsY(uiLayout *layout, int unit)
|
||||
void uiLayoutSetUnitsY(uiLayout *layout, float unit)
|
||||
{
|
||||
layout->units[1] = unit;
|
||||
}
|
||||
@@ -3932,12 +3932,12 @@ float uiLayoutGetScaleY(uiLayout *layout)
|
||||
return layout->scale[1];
|
||||
}
|
||||
|
||||
int uiLayoutGetUnitsX(uiLayout *layout)
|
||||
float uiLayoutGetUnitsX(uiLayout *layout)
|
||||
{
|
||||
return layout->units[0];
|
||||
}
|
||||
|
||||
int uiLayoutGetUnitsY(uiLayout *layout)
|
||||
float uiLayoutGetUnitsY(uiLayout *layout)
|
||||
{
|
||||
return layout->units[1];
|
||||
}
|
||||
@@ -4033,7 +4033,7 @@ static void ui_item_estimate(uiItem *item)
|
||||
break;
|
||||
}
|
||||
|
||||
/* force fixed size */
|
||||
/* Force fixed size. */
|
||||
if (litem->units[0] > 0) {
|
||||
litem->w = UI_UNIT_X * litem->units[0];
|
||||
}
|
||||
|
||||
@@ -947,22 +947,22 @@ static void rna_UILayout_scale_y_set(PointerRNA *ptr, float value)
|
||||
uiLayoutSetScaleY(ptr->data, value);
|
||||
}
|
||||
|
||||
static int rna_UILayout_units_x_get(PointerRNA *ptr)
|
||||
static float rna_UILayout_units_x_get(PointerRNA *ptr)
|
||||
{
|
||||
return uiLayoutGetUnitsX(ptr->data);
|
||||
}
|
||||
|
||||
static void rna_UILayout_units_x_set(PointerRNA *ptr, int value)
|
||||
static void rna_UILayout_units_x_set(PointerRNA *ptr, float value)
|
||||
{
|
||||
uiLayoutSetUnitsX(ptr->data, value);
|
||||
}
|
||||
|
||||
static int rna_UILayout_units_y_get(PointerRNA *ptr)
|
||||
static float rna_UILayout_units_y_get(PointerRNA *ptr)
|
||||
{
|
||||
return uiLayoutGetUnitsY(ptr->data);
|
||||
}
|
||||
|
||||
static void rna_UILayout_units_y_set(PointerRNA *ptr, int value)
|
||||
static void rna_UILayout_units_y_set(PointerRNA *ptr, float value)
|
||||
{
|
||||
uiLayoutSetUnitsY(ptr->data, value);
|
||||
}
|
||||
@@ -1057,12 +1057,12 @@ static void rna_def_ui_layout(BlenderRNA *brna)
|
||||
RNA_def_property_float_funcs(prop, "rna_UILayout_scale_y_get", "rna_UILayout_scale_y_set", NULL);
|
||||
RNA_def_property_ui_text(prop, "Scale Y", "Scale factor along the Y for items in this (sub)layout");
|
||||
|
||||
prop = RNA_def_property(srna, "ui_units_x", PROP_INT, PROP_UNSIGNED);
|
||||
RNA_def_property_int_funcs(prop, "rna_UILayout_units_x_get", "rna_UILayout_units_x_set", NULL);
|
||||
prop = RNA_def_property(srna, "ui_units_x", PROP_FLOAT, PROP_UNSIGNED);
|
||||
RNA_def_property_float_funcs(prop, "rna_UILayout_units_x_get", "rna_UILayout_units_x_set", NULL);
|
||||
RNA_def_property_ui_text(prop, "Units X", "Fixed Size along the X for items in this (sub)layout");
|
||||
|
||||
prop = RNA_def_property(srna, "ui_units_y", PROP_INT, PROP_UNSIGNED);
|
||||
RNA_def_property_int_funcs(prop, "rna_UILayout_units_y_get", "rna_UILayout_units_y_set", NULL);
|
||||
prop = RNA_def_property(srna, "ui_units_y", PROP_FLOAT, PROP_UNSIGNED);
|
||||
RNA_def_property_float_funcs(prop, "rna_UILayout_units_y_get", "rna_UILayout_units_y_set", NULL);
|
||||
RNA_def_property_ui_text(prop, "Units Y", "Fixed Size along the Y for items in this (sub)layout");
|
||||
RNA_api_ui_layout(srna);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user