From f9a266a22629afee11a5b9abd04a28dcc1cdc277 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Oct 2019 14:21:41 +1100 Subject: UI: support passing a function to WorkSpace.status_text_set() This allows Python operators to draw icons and other UI elements into the status bar. --- release/scripts/modules/bpy_types.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'release/scripts/modules/bpy_types.py') diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py index 29470895079..1a2eb12cd9f 100644 --- a/release/scripts/modules/bpy_types.py +++ b/release/scripts/modules/bpy_types.py @@ -184,6 +184,27 @@ class WindowManager(bpy_types.ID): self.piemenu_end__internal(pie) +class WorkSpace(bpy_types.ID): + __slots__ = () + + def status_text_set(self, text): + """ + Set the status text or None to clear, + When text is a function, this will be called with the (header, context) arguments. + """ + from bl_ui.space_statusbar import STATUSBAR_HT_header + draw_fn = getattr(STATUSBAR_HT_header, "_draw_orig", None) + if draw_fn is None: + draw_fn = STATUSBAR_HT_header._draw_orig = STATUSBAR_HT_header.draw + + if not (text is None or isinstance(text, str)): + draw_fn = text + text = None + + self.status_text_set_internal(text) + STATUSBAR_HT_header.draw = draw_fn + + class _GenericBone: """ functions for bones, common between Armature/Pose/Edit bones. -- cgit v1.2.3