[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