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.
This commit is contained in:
@@ -184,6 +184,27 @@ class WindowManager(bpy_types.ID):
|
|||||||
self.piemenu_end__internal(pie)
|
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:
|
class _GenericBone:
|
||||||
"""
|
"""
|
||||||
functions for bones, common between Armature/Pose/Edit bones.
|
functions for bones, common between Armature/Pose/Edit bones.
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ void RNA_api_workspace(StructRNA *srna)
|
|||||||
FunctionRNA *func;
|
FunctionRNA *func;
|
||||||
PropertyRNA *parm;
|
PropertyRNA *parm;
|
||||||
|
|
||||||
func = RNA_def_function(srna, "status_text_set", "ED_workspace_status_text");
|
func = RNA_def_function(srna, "status_text_set_internal", "ED_workspace_status_text");
|
||||||
RNA_def_function_flag(func, FUNC_NO_SELF | FUNC_USE_CONTEXT);
|
RNA_def_function_flag(func, FUNC_NO_SELF | FUNC_USE_CONTEXT);
|
||||||
RNA_def_function_ui_description(
|
RNA_def_function_ui_description(
|
||||||
func, "Set the status bar text, typically key shortcuts for modal operators");
|
func, "Set the status bar text, typically key shortcuts for modal operators");
|
||||||
|
|||||||
Reference in New Issue
Block a user