pyqt_reactive.widgets.shared.scope_visual_config

Configuration and data structures for scope-based coloring.

Functions

get_scope_visual_config()

Singleton access for ScopeVisualConfig.

Classes

ListItemType(*values)

Type of list item for scope-based coloring.

RootScopeColorScheme()

Visual identity for the ObjectState root/global scope.

ScopeColorScheme(scope_id, hue, ...[, ...])

Color scheme for a specific scope.

ScopeVisualConfig([...])

Static configuration values for scope-based visuals.

class pyqt_reactive.widgets.shared.scope_visual_config.ScopeVisualConfig(ORCHESTRATOR_ITEM_BG_SATURATION: int = 50, ORCHESTRATOR_ITEM_BG_VALUE: int = 85, ORCHESTRATOR_ITEM_BORDER_SATURATION: int = 60, ORCHESTRATOR_ITEM_BORDER_VALUE: int = 80, ORCHESTRATOR_ITEM_BG_OPACITY: float = 0.1, STEP_ITEM_BG_SATURATION: int = 50, STEP_ITEM_BG_VALUE: int = 85, STEP_ITEM_BG_OPACITY: float = 0.1, GROUPBOX_BG_OPACITY: float = 0.05, TREE_BG_OPACITY: float = 0.05, STEP_WINDOW_BORDER_SATURATION: int = 60, STEP_WINDOW_BORDER_VALUE: int = 80, STEP_WINDOW_BORDER_WIDTH_PX: int = 4, STEP_WINDOW_BORDER_STYLE: str = 'solid', FLASH_DURATION_MS: int = 300, FLASH_COLOR_RGB: tuple[int, int, int] = (144, 238, 144), LIST_ITEM_FLASH_ENABLED: bool = True, WIDGET_FLASH_ENABLED: bool = True, LIST_ITEM_LEADING_MARKER_COLOR_RGB: tuple[int, int, int] = (0, 230, 118), LIST_ITEM_LEADING_MARKER_GUTTER_WIDTH_PX: int = 18, LIST_ITEM_LEADING_MARKER_STRIPE_LEFT_PX: int = 2, LIST_ITEM_LEADING_MARKER_STRIPE_TOP_MARGIN_PX: int = 3, LIST_ITEM_LEADING_MARKER_STRIPE_WIDTH_PX: int = 4, LIST_ITEM_LEADING_MARKER_STRIPE_RADIUS_PX: int = 2, LIST_ITEM_LEADING_MARKER_TRIANGLE_LEFT_PX: int = 9, LIST_ITEM_LEADING_MARKER_TRIANGLE_WIDTH_PX: int = 8, LIST_ITEM_LEADING_MARKER_TRIANGLE_HALF_HEIGHT_PX: int = 6)[source]

Static configuration values for scope-based visuals.

ORCHESTRATOR_ITEM_BG_SATURATION: int = 50
ORCHESTRATOR_ITEM_BG_VALUE: int = 85
ORCHESTRATOR_ITEM_BORDER_SATURATION: int = 60
ORCHESTRATOR_ITEM_BORDER_VALUE: int = 80
ORCHESTRATOR_ITEM_BG_OPACITY: float = 0.1
STEP_ITEM_BG_SATURATION: int = 50
STEP_ITEM_BG_VALUE: int = 85
STEP_ITEM_BG_OPACITY: float = 0.1
GROUPBOX_BG_OPACITY: float = 0.05
TREE_BG_OPACITY: float = 0.05
STEP_WINDOW_BORDER_SATURATION: int = 60
STEP_WINDOW_BORDER_VALUE: int = 80
STEP_WINDOW_BORDER_WIDTH_PX: int = 4
STEP_WINDOW_BORDER_STYLE: str = 'solid'
FLASH_DURATION_MS: int = 300
FLASH_COLOR_RGB: tuple[int, int, int] = (144, 238, 144)
LIST_ITEM_FLASH_ENABLED: bool = True
WIDGET_FLASH_ENABLED: bool = True
LIST_ITEM_LEADING_MARKER_COLOR_RGB: tuple[int, int, int] = (0, 230, 118)
LIST_ITEM_LEADING_MARKER_GUTTER_WIDTH_PX: int = 18
LIST_ITEM_LEADING_MARKER_STRIPE_LEFT_PX: int = 2
LIST_ITEM_LEADING_MARKER_STRIPE_TOP_MARGIN_PX: int = 3
LIST_ITEM_LEADING_MARKER_STRIPE_WIDTH_PX: int = 4
LIST_ITEM_LEADING_MARKER_STRIPE_RADIUS_PX: int = 2
LIST_ITEM_LEADING_MARKER_TRIANGLE_LEFT_PX: int = 9
LIST_ITEM_LEADING_MARKER_TRIANGLE_WIDTH_PX: int = 8
LIST_ITEM_LEADING_MARKER_TRIANGLE_HALF_HEIGHT_PX: int = 6
__init__(ORCHESTRATOR_ITEM_BG_SATURATION: int = 50, ORCHESTRATOR_ITEM_BG_VALUE: int = 85, ORCHESTRATOR_ITEM_BORDER_SATURATION: int = 60, ORCHESTRATOR_ITEM_BORDER_VALUE: int = 80, ORCHESTRATOR_ITEM_BG_OPACITY: float = 0.1, STEP_ITEM_BG_SATURATION: int = 50, STEP_ITEM_BG_VALUE: int = 85, STEP_ITEM_BG_OPACITY: float = 0.1, GROUPBOX_BG_OPACITY: float = 0.05, TREE_BG_OPACITY: float = 0.05, STEP_WINDOW_BORDER_SATURATION: int = 60, STEP_WINDOW_BORDER_VALUE: int = 80, STEP_WINDOW_BORDER_WIDTH_PX: int = 4, STEP_WINDOW_BORDER_STYLE: str = 'solid', FLASH_DURATION_MS: int = 300, FLASH_COLOR_RGB: tuple[int, int, int] = (144, 238, 144), LIST_ITEM_FLASH_ENABLED: bool = True, WIDGET_FLASH_ENABLED: bool = True, LIST_ITEM_LEADING_MARKER_COLOR_RGB: tuple[int, int, int] = (0, 230, 118), LIST_ITEM_LEADING_MARKER_GUTTER_WIDTH_PX: int = 18, LIST_ITEM_LEADING_MARKER_STRIPE_LEFT_PX: int = 2, LIST_ITEM_LEADING_MARKER_STRIPE_TOP_MARGIN_PX: int = 3, LIST_ITEM_LEADING_MARKER_STRIPE_WIDTH_PX: int = 4, LIST_ITEM_LEADING_MARKER_STRIPE_RADIUS_PX: int = 2, LIST_ITEM_LEADING_MARKER_TRIANGLE_LEFT_PX: int = 9, LIST_ITEM_LEADING_MARKER_TRIANGLE_WIDTH_PX: int = 8, LIST_ITEM_LEADING_MARKER_TRIANGLE_HALF_HEIGHT_PX: int = 6) None
class pyqt_reactive.widgets.shared.scope_visual_config.ScopeColorScheme(scope_id: str | None, hue: int, orchestrator_item_bg_rgb: tuple[int, int, int], orchestrator_item_border_rgb: tuple[int, int, int], step_window_border_rgb: tuple[int, int, int], step_item_bg_rgb: tuple[int, int, int] | None, step_border_width: int = 0, step_border_layers: list = None, base_color_rgb: tuple[int, int, int] = (128, 128, 128), fixed_accent_rgb: tuple[int, int, int] | None = None)[source]

Color scheme for a specific scope.

scope_id: str | None
hue: int
orchestrator_item_bg_rgb: tuple[int, int, int]
orchestrator_item_border_rgb: tuple[int, int, int]
step_window_border_rgb: tuple[int, int, int]
step_item_bg_rgb: tuple[int, int, int] | None
step_border_width: int = 0
step_border_layers: list = None
base_color_rgb: tuple[int, int, int] = (128, 128, 128)
fixed_accent_rgb: tuple[int, int, int] | None = None
to_qcolor_orchestrator_bg()[source]

QColor for orchestrator item background with alpha.

to_qcolor_orchestrator_border()[source]

QColor for orchestrator item border.

to_qcolor_step_window_border()[source]

QColor for step window border.

to_qcolor_step_item_bg()[source]

QColor for step list background (alpha) or None.

border_layer_qcolor(layer)[source]

Return the rendered border/accent color for one border layer.

accent_qcolor()[source]

Return the canonical accent/flash color for this scope.

background_tint_qcolor(layers, opacity: float)[source]

Return the canonical subtle background tint for this scope.

to_stylesheet_step_window_border() str[source]

Reserve border space via stylesheet for step windows.

__init__(scope_id: str | None, hue: int, orchestrator_item_bg_rgb: tuple[int, int, int], orchestrator_item_border_rgb: tuple[int, int, int], step_window_border_rgb: tuple[int, int, int], step_item_bg_rgb: tuple[int, int, int] | None, step_border_width: int = 0, step_border_layers: list = None, base_color_rgb: tuple[int, int, int] = (128, 128, 128), fixed_accent_rgb: tuple[int, int, int] | None = None) None
class pyqt_reactive.widgets.shared.scope_visual_config.RootScopeColorScheme[source]

Visual identity for the ObjectState root/global scope.

scope_id = ''
accent_rgb = (255, 255, 255)
classmethod matches(scope_id: str | None) bool[source]
classmethod create() ScopeColorScheme[source]
class pyqt_reactive.widgets.shared.scope_visual_config.ListItemType(*values)[source]

Type of list item for scope-based coloring.

ORCHESTRATOR = 'to_qcolor_orchestrator_bg'
STEP = 'to_qcolor_step_item_bg'
get_background_color(color_scheme: ScopeColorScheme)[source]
pyqt_reactive.widgets.shared.scope_visual_config.get_scope_visual_config() ScopeVisualConfig[source]

Singleton access for ScopeVisualConfig.