UI: non editable template_icon_views are rendered as label
This is also a way to render an large preview icon without the selection control. This is used by the studiolights in the userprefs that only displays the preview of the light.
This commit is contained in:
parent
a2027c6587
commit
3937e8fbc3
|
@ -2266,13 +2266,20 @@ void uiTemplateIconView(uiLayout *layout, PointerRNA *ptr, const char *propname,
|
|||
value = RNA_property_enum_get(ptr, prop);
|
||||
RNA_enum_icon_from_value(items, value, &icon);
|
||||
|
||||
cb_args = MEM_callocN(sizeof(IconViewMenuArgs), __func__);
|
||||
cb_args->ptr = *ptr;
|
||||
cb_args->prop = prop;
|
||||
cb_args->show_labels = show_labels;
|
||||
cb_args->icon_scale = icon_scale;
|
||||
|
||||
if (RNA_property_editable(ptr, prop)) {
|
||||
cb_args = MEM_callocN(sizeof(IconViewMenuArgs), __func__);
|
||||
cb_args->ptr = *ptr;
|
||||
cb_args->prop = prop;
|
||||
cb_args->show_labels = show_labels;
|
||||
cb_args->icon_scale = icon_scale;
|
||||
|
||||
but = uiDefBlockButN(block, ui_icon_view_menu_cb, cb_args, "", 0, 0, UI_UNIT_X * 6, UI_UNIT_Y * 6, "");
|
||||
}
|
||||
else {
|
||||
but = uiDefIconBut(block, UI_BTYPE_LABEL, 0, ICON_X, 0, 0, UI_UNIT_X * 6, UI_UNIT_Y * 6, NULL, 0.0, 0.0, 0.0, 0.0, "");
|
||||
}
|
||||
|
||||
but = uiDefBlockButN(block, ui_icon_view_menu_cb, cb_args, "", 0, 0, UI_UNIT_X * 6, UI_UNIT_Y * 6, "");
|
||||
|
||||
ui_def_but_icon(but, icon, UI_HAS_ICON | UI_BUT_ICON_PREVIEW);
|
||||
|
||||
|
|
Loading…
Reference in New Issue