Changeset View
Changeset View
Standalone View
Standalone View
release/scripts/startup/bl_ui/space_toolsystem_common.py
| Show First 20 Lines • Show All 112 Lines • ▼ Show 20 Lines | ( | ||||
| # (Typically brush name, usage depends on mode, we could use for non-brush ID's in other modes). | # (Typically brush name, usage depends on mode, we could use for non-brush ID's in other modes). | ||||
| "data_block", | "data_block", | ||||
| # Optional primary operator (for introspection only). | # Optional primary operator (for introspection only). | ||||
| "operator", | "operator", | ||||
| # Optional draw settings (operator options, tool_settings). | # Optional draw settings (operator options, tool_settings). | ||||
| "draw_settings", | "draw_settings", | ||||
| # Optional draw cursor. | # Optional draw cursor. | ||||
| "draw_cursor", | "draw_cursor", | ||||
| # Various options, see: `bpy.types.WorkSpaceTool.setup` options argument. | |||||
| "options", | |||||
| ) | ) | ||||
| ) | ) | ||||
| del namedtuple | del namedtuple | ||||
| def from_dict(kw_args): | def from_dict(kw_args): | ||||
| """ | """ | ||||
| Use so each tool can avoid defining all members of the named tuple. | Use so each tool can avoid defining all members of the named tuple. | ||||
| Also convert the keymap from a tuple into a function | Also convert the keymap from a tuple into a function | ||||
| (since keymap is a callback). | (since keymap is a callback). | ||||
| """ | """ | ||||
| kw = { | kw = { | ||||
| "description": None, | "description": None, | ||||
| "icon": None, | "icon": None, | ||||
| "cursor": None, | "cursor": None, | ||||
| "options": None, | |||||
| "widget": None, | "widget": None, | ||||
| "widget_properties": None, | "widget_properties": None, | ||||
| "keymap": None, | "keymap": None, | ||||
| "data_block": None, | "data_block": None, | ||||
| "operator": None, | "operator": None, | ||||
| "draw_settings": None, | "draw_settings": None, | ||||
| "draw_cursor": None, | "draw_cursor": None, | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 387 Lines • ▼ Show 20 Lines | def keymap_ui_hierarchy(cls, context_mode): | ||||
| km_name = keymap_data[0] | km_name = keymap_data[0] | ||||
| # print((km.name, cls.bl_space_type, 'WINDOW', [])) | # print((km.name, cls.bl_space_type, 'WINDOW', [])) | ||||
| if km_name in visited: | if km_name in visited: | ||||
| continue | continue | ||||
| visited.add(km_name) | visited.add(km_name) | ||||
| yield (km_name, cls.bl_space_type, 'WINDOW', []) | yield (km_name, cls.bl_space_type, 'WINDOW', []) | ||||
| yield (km_name + " (fallback)", cls.bl_space_type, 'WINDOW', []) | |||||
| # ------------------------------------------------------------------------- | # ------------------------------------------------------------------------- | ||||
| # Layout Generators | # Layout Generators | ||||
| # | # | ||||
| # Meaning of received values: | # Meaning of received values: | ||||
| # - Bool: True for a separator, otherwise False for regular tools. | # - Bool: True for a separator, otherwise False for regular tools. | ||||
| # - None: Signal to finish (complete any final operations, e.g. add padding). | # - None: Signal to finish (complete any final operations, e.g. add padding). | ||||
| ▲ Show 20 Lines • Show All 436 Lines • ▼ Show 20 Lines | def _activate_by_item(context, space_type, item, index, *, as_fallback=False): | ||||
| item_fallback = None | item_fallback = None | ||||
| _item, select_index = cls._tool_get_by_id(context, tool_fallback_id) | _item, select_index = cls._tool_get_by_id(context, tool_fallback_id) | ||||
| if select_index != -1: | if select_index != -1: | ||||
| item_fallback, _index = cls._tool_get_active_by_index(context, select_index) | item_fallback, _index = cls._tool_get_active_by_index(context, select_index) | ||||
| # End calculating fallback. | # End calculating fallback. | ||||
| gizmo_group = item.widget or "" | gizmo_group = item.widget or "" | ||||
| idname_fallback= (item_fallback and item_fallback.idname) or "" | |||||
| keymap_fallback= (item_fallback and item_fallback.keymap and item_fallback.keymap[0]) or "" | |||||
| if keymap_fallback: | |||||
| keymap_fallback = keymap_fallback + " (fallback)" | |||||
| tool.setup( | tool.setup( | ||||
| idname=item.idname, | idname=item.idname, | ||||
| keymap=item.keymap[0] if item.keymap is not None else "", | keymap=item.keymap[0] if item.keymap is not None else "", | ||||
| cursor=item.cursor or 'DEFAULT', | cursor=item.cursor or 'DEFAULT', | ||||
| options=item.options or set(), | |||||
| gizmo_group=gizmo_group, | gizmo_group=gizmo_group, | ||||
| data_block=item.data_block or "", | data_block=item.data_block or "", | ||||
| operator=item.operator or "", | operator=item.operator or "", | ||||
| index=index, | index=index, | ||||
| idname_fallback=(item_fallback and item_fallback.idname) or "", | idname_fallback=idname_fallback, | ||||
| keymap_fallback=(item_fallback and item_fallback.keymap and item_fallback.keymap[0]) or "", | keymap_fallback=keymap_fallback, | ||||
| ) | ) | ||||
| if ( | if ( | ||||
| (gizmo_group != "") and | (gizmo_group != "") and | ||||
| (props := tool.gizmo_group_properties(gizmo_group)) | (props := tool.gizmo_group_properties(gizmo_group)) | ||||
| ): | ): | ||||
| if props is None: | if props is None: | ||||
| print("Error:", gizmo_group, "could not access properties!") | print("Error:", gizmo_group, "could not access properties!") | ||||
| ▲ Show 20 Lines • Show All 189 Lines • Show Last 20 Lines | |||||