[Bf-blender-cvs] [932f9745323] modifier-panels-ui: Fix panel header drawing
Hans Goudey
noreply at git.blender.org
Thu Apr 2 16:58:55 CEST 2020
Commit: 932f9745323a1045a3c9566d32d21e951fb19907
Author: Hans Goudey
Date: Thu Apr 2 09:57:43 2020 -0500
Branches: modifier-panels-ui
https://developer.blender.org/rB932f9745323a1045a3c9566d32d21e951fb19907
Fix panel header drawing
- Use the preset callback to draw the modifier mode buttons.
- Don't draw empty panel label strings.
===================================================================
M source/blender/editors/interface/interface_panel.c
M source/blender/modifiers/intern/MOD_ui_common.c
===================================================================
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index 2bf565c8d32..35fc118d450 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -711,7 +711,7 @@ static void ui_draw_aligned_panel_header(
Panel *panel = block->panel;
rcti hrect;
int pnl_icons;
- const char *activename = panel->drawname[0] ? panel->drawname : panel->panelname;
+ const char *activename = panel->drawname;
const bool is_subpanel = (panel->type && panel->type->parent);
uiFontStyle *fontstyle = (is_subpanel) ? &style->widgetlabel : &style->paneltitle;
uchar col_title[4];
diff --git a/source/blender/modifiers/intern/MOD_ui_common.c b/source/blender/modifiers/intern/MOD_ui_common.c
index 751d40ed085..e821bb9303a 100644
--- a/source/blender/modifiers/intern/MOD_ui_common.c
+++ b/source/blender/modifiers/intern/MOD_ui_common.c
@@ -105,29 +105,43 @@ static int modifier_is_simulation(ModifierData *md)
static void modifier_panel_header(const bContext *C, Panel *panel)
{
+ uiLayout *row;
+ uiLayout *layout = panel->layout;
+
PointerRNA ptr;
modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
+
ModifierData *md = ptr.data;
const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
- int index = panel->list_index;
- Object *ob = CTX_data_active_object(C);
Scene *scene = CTX_data_scene(C);
- uiLayout *sub, *row;
- uiLayout *layout = panel->layout;
-
/* Modifier Icon. */
- sub = uiLayoutRow(layout, false);
+ row = uiLayoutRow(layout, false);
if (mti->isDisabled && mti->isDisabled(scene, md, 0)) {
- uiLayoutSetRedAlert(sub, true);
+ uiLayoutSetRedAlert(row, true);
}
- uiItemL(sub, "", RNA_struct_ui_icon(ptr.type));
+ uiItemL(row, "", RNA_struct_ui_icon(ptr.type));
/* Modifier Name. */
- sub = uiLayoutRow(layout, false);
- uiItemR(sub, &ptr, "name", 0, "", ICON_NONE);
+ uiItemR(layout, &ptr, "name", 0, "", ICON_NONE);
/* Mode enabling buttons. */
+}
+
+static void modifier_panel_header_modes(const bContext *C, Panel *panel)
+{
+ uiLayout *sub, *row;
+ uiLayout *layout = panel->layout;
+
+ PointerRNA ptr;
+ modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
+
+ ModifierData *md = ptr.data;
+ const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+ int index = panel->list_index;
+ Object *ob = CTX_data_active_object(C);
+ Scene *scene = CTX_data_scene(C);
+
row = uiLayoutRow(layout, true);
if (((md->type != eModifierType_Collision) || !(ob->pd && ob->pd->deflect)) &&
(md->type != eModifierType_Surface)) {
@@ -168,6 +182,8 @@ static void modifier_panel_header(const bContext *C, Panel *panel)
uiItemStringO(
layout, "", ICON_PROPERTIES, "WM_OT_properties_context_change", "context", "PARTICLES");
}
+
+ uiItemS(layout);
}
/**
@@ -189,6 +205,7 @@ PanelType *modifier_panel_register(ARegionType *region_type, const char *name, v
strcpy(pt->translation_context, BLT_I18NCONTEXT_DEFAULT_BPYRNA);
pt->draw_header = modifier_panel_header;
+ pt->draw_header_preset = modifier_panel_header_modes;
pt->draw = draw;
pt->poll = modifier_ui_poll;
More information about the Bf-blender-cvs
mailing list