Changeset View
Changeset View
Standalone View
Standalone View
system_demo_mode/demo_mode.py
| Show First 20 Lines • Show All 148 Lines • ▼ Show 20 Lines | def demo_mode_next_file(step=1): | ||||
| global_state["demo_index"] = demo_index_next | global_state["demo_index"] = demo_index_next | ||||
| print(global_state["demo_index"], "....") | print(global_state["demo_index"], "....") | ||||
| print("func:demo_mode_next_file", global_state["demo_index"]) | print("func:demo_mode_next_file", global_state["demo_index"]) | ||||
| filepath = global_config_files[global_state["demo_index"]]["file"] | filepath = global_config_files[global_state["demo_index"]]["file"] | ||||
| bpy.ops.wm.open_mainfile(filepath=filepath) | bpy.ops.wm.open_mainfile(filepath=filepath) | ||||
| def demo_mode_timer_add(): | def demo_mode_timer_add(): | ||||
| global_state["timer"] = bpy.context.window_manager.event_timer_add(0.8, bpy.context.window) | global_state["timer"] = bpy.context.window_manager.event_timer_add(0.8, window=bpy.context.window) | ||||
| def demo_mode_timer_remove(): | def demo_mode_timer_remove(): | ||||
| if global_state["timer"]: | if global_state["timer"]: | ||||
| bpy.context.window_manager.event_timer_remove(global_state["timer"]) | bpy.context.window_manager.event_timer_remove(global_state["timer"]) | ||||
| global_state["timer"] = None | global_state["timer"] = None | ||||
| ▲ Show 20 Lines • Show All 247 Lines • ▼ Show 20 Lines | def disable(cls): | ||||
| # should never happen now, DemoModeControl is for this. | # should never happen now, DemoModeControl is for this. | ||||
| cls.enabled = False | cls.enabled = False | ||||
| class DemoModeControl(bpy.types.Operator): | class DemoModeControl(bpy.types.Operator): | ||||
| bl_idname = "wm.demo_mode_control" | bl_idname = "wm.demo_mode_control" | ||||
| bl_label = "Control" | bl_label = "Control" | ||||
| mode = bpy.props.EnumProperty(items=( | mode: bpy.props.EnumProperty( | ||||
| ('PREV', "Prev", ""), | items=(('PREV', "Prev", ""), | ||||
| ('PAUSE', "Pause", ""), | ('PAUSE', "Pause", ""), | ||||
| ('NEXT', "Next", ""), | ('NEXT', "Next", "")), | ||||
| ), | name="Mode" | ||||
| name="Mode") | ) | ||||
| def execute(self, context): | def execute(self, context): | ||||
| mode = self.mode | mode = self.mode | ||||
| if mode == 'PREV': | if mode == 'PREV': | ||||
| demo_mode_next_file(-1) | demo_mode_next_file(-1) | ||||
| elif mode == 'NEXT': | elif mode == 'NEXT': | ||||
| demo_mode_next_file(1) | demo_mode_next_file(1) | ||||
| else: # pause | else: # pause | ||||
| DemoMode.disable() | DemoMode.disable() | ||||
| return {'FINISHED'} | return {'FINISHED'} | ||||
| def menu_func(self, context): | def menu_func(self, context): | ||||
| # print("func:menu_func - DemoMode.enabled:", DemoMode.enabled, "bpy.app.driver_namespace:", DemoKeepAlive.secret_attr not in bpy.app.driver_namespace, 'global_state["timer"]:', global_state["timer"]) | # print("func:menu_func - DemoMode.enabled:", DemoMode.enabled, "bpy.app.driver_namespace:", DemoKeepAlive.secret_attr not in bpy.app.driver_namespace, 'global_state["timer"]:', global_state["timer"]) | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.operator_context = 'EXEC_DEFAULT' | layout.operator_context = 'EXEC_DEFAULT' | ||||
| row = layout.row(align=True) | row = layout.row(align=True) | ||||
| row.label("Demo Mode:") | row.label(text="Demo Mode:") | ||||
| if not DemoMode.enabled: | if not DemoMode.enabled: | ||||
| row.operator("wm.demo_mode", icon='PLAY', text="") | row.operator("wm.demo_mode", icon='PLAY', text="") | ||||
| else: | else: | ||||
| row.operator("wm.demo_mode_control", icon='REW', text="").mode = 'PREV' | row.operator("wm.demo_mode_control", icon='REW', text="").mode = 'PREV' | ||||
| row.operator("wm.demo_mode_control", icon='PAUSE', text="").mode = 'PAUSE' | row.operator("wm.demo_mode_control", icon='PAUSE', text="").mode = 'PAUSE' | ||||
| row.operator("wm.demo_mode_control", icon='FF', text="").mode = 'NEXT' | row.operator("wm.demo_mode_control", icon='FF', text="").mode = 'NEXT' | ||||
| ▲ Show 20 Lines • Show All 110 Lines • Show Last 20 Lines | |||||