forked from bartvdbraak/blender
UI Icon Toggles Fix:
Boolean settings now use TOG instead of ICONTOG when they have icons, since ICONTOG was causing too much trouble with icons changing when they shouldn't be. Perhaps in future there should be some flag for specifying from RNA/UI-Layouts which one you want, but for now, this will do. Reverting r23936 since that fix depended on ICONTOG behaviour.
This commit is contained in:
parent
8510723cf4
commit
e694e30721
@ -893,13 +893,10 @@ void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, Proper
|
||||
name= ui_item_name_add_colon(name, namestr);
|
||||
|
||||
if(layout->root->type == UI_LAYOUT_MENU) {
|
||||
/* whether the property is actually enabled doesn't matter,
|
||||
* since the widget code for drawing toggles takes care of the
|
||||
* rest (i.e. given the deactivated icon, it finds the active one
|
||||
* based on the state of the setting)
|
||||
*/
|
||||
if ( (type == PROP_BOOLEAN) || (type==PROP_ENUM && index==RNA_ENUM_VALUE) )
|
||||
icon= ICON_CHECKBOX_DEHLT; /* ICON_CHECKBOX_HLT when on... */
|
||||
if(type == PROP_BOOLEAN)
|
||||
icon= (RNA_property_boolean_get(ptr, prop))? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT;
|
||||
else if(type == PROP_ENUM && index == RNA_ENUM_VALUE)
|
||||
icon= (RNA_property_enum_get(ptr, prop) == value)? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT;
|
||||
}
|
||||
|
||||
slider= (flag & UI_ITEM_R_SLIDER);
|
||||
|
@ -62,10 +62,11 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
|
||||
else
|
||||
value= RNA_property_boolean_get(ptr, prop);
|
||||
|
||||
// XXX: when to do TOG, and when to do ICONTOG? for now, let's just do TOG, since ICONTOG causes too much trouble everywhere else
|
||||
if(icon && name && strcmp(name, "") == 0)
|
||||
but= uiDefIconButR(block, ICONTOG, 0, icon, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
|
||||
but= uiDefIconButR(block, TOG, 0, icon, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
|
||||
else if(icon)
|
||||
but= uiDefIconTextButR(block, ICONTOG, 0, icon, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
|
||||
but= uiDefIconTextButR(block, TOG, 0, icon, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
|
||||
else
|
||||
but= uiDefButR(block, OPTION, 0, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user