Commit: 0af8fcee76b909361f152141f1360ed21821bdbe Author: Julian Eisel Date: Mon Apr 13 18:22:26 2020 +0200 Branches: modifier-panels-ui https://developer.blender.org/rB0af8fcee76b909361f152141f1360ed21821bdbe
Support using property split for menu items & use for output FPS setting We could add an extra parameter for the label string, for now we can just use the headings. So if a layout heading is available (set and not already added) use that to enable the split layout. =================================================================== M release/scripts/startup/bl_ui/properties_output.py M source/blender/editors/interface/interface_layout.c =================================================================== diff --git a/release/scripts/startup/bl_ui/properties_output.py b/release/scripts/startup/bl_ui/properties_output.py index e2158d3644a..e90a0a06429 100644 --- a/release/scripts/startup/bl_ui/properties_output.py +++ b/release/scripts/startup/bl_ui/properties_output.py @@ -94,14 +94,14 @@ class RENDER_PT_dimensions(RenderOutputButtonsPanel, Panel): return args @staticmethod - def draw_framerate(layout, sub, rd): + def draw_framerate(layout, rd): if RENDER_PT_dimensions._preset_class is None: RENDER_PT_dimensions._preset_class = bpy.types.RENDER_MT_framerate_presets args = rd.fps, rd.fps_base, RENDER_PT_dimensions._preset_class.bl_label fps_label_text, show_framerate = RENDER_PT_dimensions._draw_framerate_label(*args) - sub.menu("RENDER_MT_framerate_presets", text=fps_label_text) + layout.menu("RENDER_MT_framerate_presets", text=fps_label_text) if show_framerate: col = layout.column(align=True) @@ -136,10 +136,8 @@ class RENDER_PT_dimensions(RenderOutputButtonsPanel, Panel): col.prop(scene, "frame_end", text="End") col.prop(scene, "frame_step", text="Step") - col = layout.split() - col.alignment = 'RIGHT' - col.label(text="Frame Rate") - self.draw_framerate(layout, col, rd) + col = layout.column(heading="Frame Rate") + self.draw_framerate(col, rd) class RENDER_PT_frame_remapping(RenderOutputButtonsPanel, Panel): diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index dec925a7eb4..32fb77b774d 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1894,7 +1894,8 @@ static uiLayout *ui_layout_heading_find(uiLayout *cur_layout) static void ui_layout_heading_label_add(uiLayout *layout, uiLayout *heading_layout, - bool right_align) + bool right_align, + bool respect_prop_split) { const int prev_alignment = layout->alignment; @@ -1902,7 +1903,12 @@ static void ui_layout_heading_label_add(uiLayout *layout, uiLayoutSetAlignment(layout, UI_LAYOUT_ALIGN_RIGHT); } - uiItemL(layout, heading_layout->heading, ICON_NONE); + if (respect_prop_split) { + uiItemL_respect_property_split(layout, heading_layout->heading, ICON_NONE); + } + else { + uiItemL(layout, heading_layout->heading, ICON_NONE); + } /* After adding the heading label, we have to mark it somehow as added, so it's not added again * for other items in this layout. For now just clear it. */ heading_layout->heading[0] = '\0'; @@ -2110,7 +2116,7 @@ void uiItemFullR(uiLayout *layout, layout = uiLayoutColumn(layout_row ? layout_row : layout, true); layout->space = 0; if (heading_layout) { - ui_layout_heading_label_add(layout, heading_layout, false); + ui_layout_heading_label_add(layout, heading_layout, false, false); } } else { @@ -2171,7 +2177,7 @@ void uiItemFullR(uiLayout *layout, } if (!label_added && heading_layout) { - ui_layout_heading_label_add(layout_sub, heading_layout, true); + ui_layout_heading_label_add(layout_sub, heading_layout, true, false); } layout_split = ui_item_prop_split_layout_hack(layout_parent, layout_split); @@ -2214,7 +2220,7 @@ void uiItemFullR(uiLayout *layout, else if (heading_layout) { /* Could not add heading to split layout, fallback to inserting it to the layout with the * heading itself. */ - ui_layout_heading_label_add(heading_layout, heading_layout, false); + ui_layout_heading_label_add(heading_layout, heading_layout, false, false); } else if (inside_prop_sep) { /* When placing further items in a split row, add them to a column so they match the column @@ -2814,6 +2820,7 @@ static uiBut *ui_item_menu(uiLayout *layout, bool force_menu) { uiBlock *block = layout->root->block; + uiLayout *heading_layout = ui_layout_heading_find(layout); uiBut *but; int w, h; @@ -2843,6 +2850,10 @@ static uiBut *ui_item_menu(uiLayout *layout, } } + if (heading_layout) { + ui_layout_heading_label_add(layout, heading_layout, true, true); + } + if (name[0] && icon) { but = uiDefIconTextMenuBut(block, func, arg, icon, name, 0, 0, w, h, tip); } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs