frontengine 1.0.74__tar.gz → 1.0.76__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {frontengine-1.0.74 → frontengine-1.0.76}/PKG-INFO +1 -1
- frontengine-1.0.76/frontengine/show/freeze/freeze_widget.py +93 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/hotkey_settings_dialog.py +1 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/main_ui.py +7 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/presentation/presentation_setting_ui.py +74 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/user_setting/user_setting_file.py +1 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/english.py +4 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/france.py +4 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/germany.py +4 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/italy.py +4 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/russian.py +4 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/simplified_chinese.py +4 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/traditional_chinese.py +4 -0
- frontengine-1.0.76/frontengine/utils/workshop/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine.egg-info/PKG-INFO +1 -1
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine.egg-info/SOURCES.txt +2 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/pyproject.toml +1 -1
- {frontengine-1.0.74 → frontengine-1.0.76}/LICENSE +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/README.md +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/__main__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/base_widget.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/camera/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/camera/camera_widget.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/canvas/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/canvas/whiteboard_widget.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/capture/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/capture/region_capture.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/draggable_window.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/focus_shield/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/focus_shield/focus_shield_widget.py +0 -0
- {frontengine-1.0.74/frontengine/show/gif → frontengine-1.0.76/frontengine/show/freeze}/__init__.py +0 -0
- {frontengine-1.0.74/frontengine/show/image → frontengine-1.0.76/frontengine/show/gif}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/gif/paint_gif.py +0 -0
- {frontengine-1.0.74/frontengine/show/load → frontengine-1.0.76/frontengine/show/image}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/image/paint_image.py +0 -0
- {frontengine-1.0.74/frontengine/show/measure → frontengine-1.0.76/frontengine/show/load}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/load/load_someone_make_ui.py +0 -0
- {frontengine-1.0.74/frontengine/show/monitor → frontengine-1.0.76/frontengine/show/measure}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/measure/measure_widget.py +0 -0
- {frontengine-1.0.74/frontengine/show/notes → frontengine-1.0.76/frontengine/show/monitor}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/monitor/monitor_widget.py +0 -0
- {frontengine-1.0.74/frontengine/show/particle → frontengine-1.0.76/frontengine/show/notes}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/notes/sticky_note_widget.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/overlay_factory.py +0 -0
- {frontengine-1.0.74/frontengine/show/pet → frontengine-1.0.76/frontengine/show/particle}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/particle/particle_ui.py +0 -0
- {frontengine-1.0.74/frontengine/show/pinned → frontengine-1.0.76/frontengine/show/pet}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/pet/desktop_pet.py +0 -0
- {frontengine-1.0.74/frontengine/show/presentation → frontengine-1.0.76/frontengine/show/pinned}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/pinned/pinned_image.py +0 -0
- {frontengine-1.0.74/frontengine/show/reference → frontengine-1.0.76/frontengine/show/presentation}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/presentation/annotation_overlay.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/presentation/cursor_effects.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/presentation/keystroke_display.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/presentation/magnifier.py +0 -0
- {frontengine-1.0.74/frontengine/show/replica → frontengine-1.0.76/frontengine/show/reference}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/reference/reference_board.py +0 -0
- {frontengine-1.0.74/frontengine/show/scene → frontengine-1.0.76/frontengine/show/replica}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/replica/replica_widget.py +0 -0
- {frontengine-1.0.74/frontengine/show/screen_care → frontengine-1.0.76/frontengine/show/scene}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/scene/extend_graphic_scene.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/scene/extend_graphic_view.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/scene/scene.py +0 -0
- {frontengine-1.0.74/frontengine/show/shortcuts → frontengine-1.0.76/frontengine/show/screen_care}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/screen_care/color_vision_widget.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/screen_care/screen_filter.py +0 -0
- {frontengine-1.0.74/frontengine/show/sound_player → frontengine-1.0.76/frontengine/show/shortcuts}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/shortcuts/shortcut_sheet.py +0 -0
- {frontengine-1.0.74/frontengine/show/spectrum → frontengine-1.0.76/frontengine/show/sound_player}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/sound_player/sound_effect.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/sound_player/sound_player.py +0 -0
- {frontengine-1.0.74/frontengine/show/text → frontengine-1.0.76/frontengine/show/spectrum}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/spectrum/spectrum_widget.py +0 -0
- {frontengine-1.0.74/frontengine/show/toast → frontengine-1.0.76/frontengine/show/text}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/text/draw_text.py +0 -0
- {frontengine-1.0.74/frontengine/show/video → frontengine-1.0.76/frontengine/show/toast}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/toast/toast_widget.py +0 -0
- {frontengine-1.0.74/frontengine/show/wallpaper → frontengine-1.0.76/frontengine/show/video}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/video/video_player.py +0 -0
- {frontengine-1.0.74/frontengine/show/web → frontengine-1.0.76/frontengine/show/wallpaper}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/wallpaper/wallpaper_widget.py +0 -0
- {frontengine-1.0.74/frontengine/system_tray → frontengine-1.0.76/frontengine/show/web}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/web/webview.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/window_helpers.py +0 -0
- {frontengine-1.0.74/frontengine/ui → frontengine-1.0.76/frontengine/system_tray}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/system_tray/extend_system_tray.py +0 -0
- {frontengine-1.0.74/frontengine/ui/color → frontengine-1.0.76/frontengine/ui}/__init__.py +0 -0
- {frontengine-1.0.74/frontengine/ui/dialog → frontengine-1.0.76/frontengine/ui/color}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/color/global_color.py +0 -0
- {frontengine-1.0.74/frontengine/ui/menu → frontengine-1.0.76/frontengine/ui/dialog}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/app_profile_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/choose_file_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/clipboard_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/how_to_use_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/preset_schedule_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/reminder_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/remote_control_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/screen_privacy_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/screen_text_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/screensaver_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/signage_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/smart_pause_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/usage_report_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/window_pin_dialog.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/dialog/window_replica_dialog.py +0 -0
- {frontengine-1.0.74/frontengine/ui/nav → frontengine-1.0.76/frontengine/ui/menu}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/menu/help_menu.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/menu/how_to_menu.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/menu/language_menu.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/menu/preset_menu.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/menu/settings_menu.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page → frontengine-1.0.76/frontengine/ui/nav}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/nav/sidebar.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/control_center → frontengine-1.0.76/frontengine/ui/page}/__init__.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/focus → frontengine-1.0.76/frontengine/ui/page/control_center}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/control_center/control_center_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/gif → frontengine-1.0.76/frontengine/ui/page/focus}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/focus/focus_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/image → frontengine-1.0.76/frontengine/ui/page/gif}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/gif/gif_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/particle → frontengine-1.0.76/frontengine/ui/page/image}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/image/image_setting_ui.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/layout_kit.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/pet → frontengine-1.0.76/frontengine/ui/page/particle}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/particle/particle_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/presentation → frontengine-1.0.76/frontengine/ui/page/pet}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/pet/pet_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/scene_setting → frontengine-1.0.76/frontengine/ui/page/presentation}/__init__.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/scene_setting/scene_page → frontengine-1.0.76/frontengine/ui/page/scene_setting}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/scene_setting/scene_manager.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/screen_care → frontengine-1.0.76/frontengine/ui/page/scene_setting/scene_page}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/scene_setting/scene_page/base_scene_page.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/scene_setting/scene_page/gif.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/scene_setting/scene_page/image.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/scene_setting/scene_page/registry.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/scene_setting/scene_page/sound.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/scene_setting/scene_page/text.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/scene_setting/scene_page/video.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/scene_setting/scene_page/web.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/scene_setting/scene_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/sound_player → frontengine-1.0.76/frontengine/ui/page/screen_care}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/screen_care/screen_care_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/text → frontengine-1.0.76/frontengine/ui/page/sound_player}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/sound_player/sound_player_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/tools → frontengine-1.0.76/frontengine/ui/page/text}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/text/text_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/video → frontengine-1.0.76/frontengine/ui/page/tools}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/tools/tools_setting_ui.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/utils.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/wallpaper → frontengine-1.0.76/frontengine/ui/page/video}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/video/video_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/web → frontengine-1.0.76/frontengine/ui/page/wallpaper}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/wallpaper/wallpaper_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/page/widgets → frontengine-1.0.76/frontengine/ui/page/web}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/web/web_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/ui/style → frontengine-1.0.76/frontengine/ui/page/widgets}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/page/widgets/widgets_setting_ui.py +0 -0
- {frontengine-1.0.74/frontengine/user_setting → frontengine-1.0.76/frontengine/ui/style}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/ui/style/app_style.py +0 -0
- {frontengine-1.0.74/frontengine/utils → frontengine-1.0.76/frontengine/user_setting}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/user_setting/preset_repository.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/user_setting/scene_setting.py +0 -0
- {frontengine-1.0.74/frontengine/utils/app_profile → frontengine-1.0.76/frontengine/utils}/__init__.py +0 -0
- {frontengine-1.0.74/frontengine/utils/audio_meter → frontengine-1.0.76/frontengine/utils/app_profile}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/app_profile/app_profile_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/autostart → frontengine-1.0.76/frontengine/utils/audio_meter}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/audio_meter/audio_envelope.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/audio_meter/loopback_capture.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/audio_meter/microphone_meter.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/audio_meter/screen_audio.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/audio_meter/spectrum_analyzer.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/audio_meter/system_audio_meter.py +0 -0
- {frontengine-1.0.74/frontengine/utils/break_reminder → frontengine-1.0.76/frontengine/utils/autostart}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/autostart/autostart_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/browser → frontengine-1.0.76/frontengine/utils/break_reminder}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/break_reminder/break_reminder.py +0 -0
- {frontengine-1.0.74/frontengine/utils/clipboard → frontengine-1.0.76/frontengine/utils/browser}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/browser/browser.py +0 -0
- {frontengine-1.0.74/frontengine/utils/color_vision → frontengine-1.0.76/frontengine/utils/clipboard}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/clipboard/clipboard_history.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/clipboard/clipboard_watcher.py +0 -0
- {frontengine-1.0.74/frontengine/utils/critical_exit → frontengine-1.0.76/frontengine/utils/color_vision}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/color_vision/color_vision.py +0 -0
- {frontengine-1.0.74/frontengine/utils/focus_shield → frontengine-1.0.76/frontengine/utils/critical_exit}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/critical_exit/check_key_is_press.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/critical_exit/critical_exit.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/critical_exit/win32_vk.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/exception/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/exception/exception_tags.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/exception/exceptions.py +0 -0
- {frontengine-1.0.74/frontengine/utils/focus_timer → frontengine-1.0.76/frontengine/utils/focus_shield}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/focus_shield/focus_shield.py +0 -0
- {frontengine-1.0.74/frontengine/utils/hotkey → frontengine-1.0.76/frontengine/utils/focus_timer}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/focus_timer/focus_timer.py +0 -0
- {frontengine-1.0.74/frontengine/utils/input_watch → frontengine-1.0.76/frontengine/utils/hotkey}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/hotkey/hotkey_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/json → frontengine-1.0.76/frontengine/utils/input_watch}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/input_watch/input_watch_service.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/input_watch/typing_watch.py +0 -0
- {frontengine-1.0.74/frontengine/utils/keep_awake → frontengine-1.0.76/frontengine/utils/json}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/json/json_file.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/json/json_repository.py +0 -0
- {frontengine-1.0.74/frontengine/utils/logging → frontengine-1.0.76/frontengine/utils/keep_awake}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/keep_awake/keep_awake.py +0 -0
- {frontengine-1.0.74/frontengine/utils/measure → frontengine-1.0.76/frontengine/utils/logging}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/logging/loggin_instance.py +0 -0
- {frontengine-1.0.74/frontengine/utils/midi → frontengine-1.0.76/frontengine/utils/measure}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/measure/measure.py +0 -0
- {frontengine-1.0.74/frontengine/utils/multi_language → frontengine-1.0.76/frontengine/utils/midi}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/midi/midi_input.py +0 -0
- {frontengine-1.0.74/frontengine/utils/now_playing → frontengine-1.0.76/frontengine/utils/multi_language}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/language_wrapper.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/retranslate.py +0 -0
- {frontengine-1.0.74/frontengine/utils/pet_chat → frontengine-1.0.76/frontengine/utils/now_playing}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/now_playing/now_playing.py +0 -0
- {frontengine-1.0.74/frontengine/utils/platform_info → frontengine-1.0.76/frontengine/utils/pet_chat}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/pet_chat/pet_chat_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/playlist → frontengine-1.0.76/frontengine/utils/platform_info}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/platform_info/platform_info.py +0 -0
- {frontengine-1.0.74/frontengine/utils/plugins → frontengine-1.0.76/frontengine/utils/playlist}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/playlist/playlist.py +0 -0
- {frontengine-1.0.74/frontengine/utils/power_mode → frontengine-1.0.76/frontengine/utils/plugins}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/plugins/plugin_loader.py +0 -0
- {frontengine-1.0.74/frontengine/utils/preset_schedule → frontengine-1.0.76/frontengine/utils/power_mode}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/power_mode/power_mode.py +0 -0
- {frontengine-1.0.74/frontengine/utils/recording → frontengine-1.0.76/frontengine/utils/preset_schedule}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/preset_schedule/preset_schedule_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/redirect_manager → frontengine-1.0.76/frontengine/utils/recording}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/recording/frame_recorder.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/recording/gif_writer.py +0 -0
- {frontengine-1.0.74/frontengine/utils/reminder → frontengine-1.0.76/frontengine/utils/redirect_manager}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/redirect_manager/redirect_manager_class.py +0 -0
- {frontengine-1.0.74/frontengine/utils/remote → frontengine-1.0.76/frontengine/utils/reminder}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/reminder/reminder_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/screen_privacy → frontengine-1.0.76/frontengine/utils/remote}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/remote/remote_server.py +0 -0
- {frontengine-1.0.74/frontengine/utils/screen_text → frontengine-1.0.76/frontengine/utils/screen_privacy}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/screen_privacy/capture_affinity.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/screen_privacy/share_watch.py +0 -0
- {frontengine-1.0.74/frontengine/utils/screensaver → frontengine-1.0.76/frontengine/utils/screen_text}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/screen_text/screen_text_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/signage → frontengine-1.0.76/frontengine/utils/screensaver}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/screensaver/screensaver_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/smart_pause → frontengine-1.0.76/frontengine/utils/signage}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/signage/signage_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/steam → frontengine-1.0.76/frontengine/utils/smart_pause}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/smart_pause/pause_rules.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/smart_pause/smart_pause_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/system_stats → frontengine-1.0.76/frontengine/utils/steam}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/steam/steam_language.py +0 -0
- {frontengine-1.0.74/frontengine/utils/text_source → frontengine-1.0.76/frontengine/utils/system_stats}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/system_stats/system_stats.py +0 -0
- {frontengine-1.0.74/frontengine/utils/theme_schedule → frontengine-1.0.76/frontengine/utils/text_source}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/text_source/text_source.py +0 -0
- {frontengine-1.0.74/frontengine/utils/usage_tracking → frontengine-1.0.76/frontengine/utils/theme_schedule}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/theme_schedule/theme_schedule_service.py +0 -0
- {frontengine-1.0.74/frontengine/utils/virtual_camera → frontengine-1.0.76/frontengine/utils/usage_tracking}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/usage_tracking/usage_service.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/usage_tracking/usage_tracker.py +0 -0
- {frontengine-1.0.74/frontengine/utils/weather → frontengine-1.0.76/frontengine/utils/virtual_camera}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/virtual_camera/camera_feed.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/virtual_camera/virtual_camera.py +0 -0
- {frontengine-1.0.74/frontengine/utils/window_pin → frontengine-1.0.76/frontengine/utils/weather}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/weather/weather_service.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/web_url.py +0 -0
- {frontengine-1.0.74/frontengine/utils/window_replica → frontengine-1.0.76/frontengine/utils/window_pin}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/window_pin/window_layout.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/window_pin/window_pin.py +0 -0
- {frontengine-1.0.74/frontengine/utils/workshop → frontengine-1.0.76/frontengine/utils/window_replica}/__init__.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/window_replica/dwm_thumbnail.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/workshop/workshop_content.py +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine.egg-info/dependency_links.txt +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine.egg-info/entry_points.txt +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine.egg-info/requires.txt +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/frontengine.egg-info/top_level.txt +0 -0
- {frontengine-1.0.74 → frontengine-1.0.76}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: frontengine
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.76
|
|
4
4
|
Summary: FrontEngine is use-define frontview or only use like screen saver
|
|
5
5
|
Author-email: JE-Chen <jechenmailman@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/Intergration-Automation-Testing/FrontEngine
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"""
|
|
2
|
+
凍結畫面:把某個螢幕現在的樣子拍下來,鋪滿那個螢幕蓋在最上層。
|
|
3
|
+
|
|
4
|
+
用途是講解的節奏控制——切去別的地方操作、開別的檔案、把東西準備好,而投影出去
|
|
5
|
+
或被分享的那個畫面停在原地。
|
|
6
|
+
|
|
7
|
+
**一定要能在看不見主視窗的情況下解除。** 凍結之後畫面上就只剩那張靜止圖,
|
|
8
|
+
FrontEngine 的視窗在它後面,按鈕點不到。所以解除的出口有三個:Escape、雙擊、
|
|
9
|
+
以及全域快速鍵;三個都不通的話,使用者只剩工作管理員。
|
|
10
|
+
|
|
11
|
+
Freeze the screen: photograph a display as it is now and cover that display with
|
|
12
|
+
the picture.
|
|
13
|
+
|
|
14
|
+
It is for pacing an explanation - stepping away to open something, getting the
|
|
15
|
+
next thing ready - while what is projected or shared stays where it was.
|
|
16
|
+
|
|
17
|
+
**Unfreezing must work without seeing the main window.** Once frozen, the still
|
|
18
|
+
image is all there is; FrontEngine's own window is behind it and its buttons
|
|
19
|
+
cannot be clicked. So there are three ways out - Escape, a double-click, and the
|
|
20
|
+
global shortcut - because with none of them the user is left with the task
|
|
21
|
+
manager.
|
|
22
|
+
"""
|
|
23
|
+
from __future__ import annotations
|
|
24
|
+
|
|
25
|
+
from typing import Optional
|
|
26
|
+
|
|
27
|
+
from PySide6.QtCore import Qt
|
|
28
|
+
from PySide6.QtGui import QPainter, QPixmap, QScreen
|
|
29
|
+
from PySide6.QtWidgets import QWidget
|
|
30
|
+
|
|
31
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def capture_screen(screen: Optional[QScreen]) -> QPixmap:
|
|
35
|
+
"""
|
|
36
|
+
把整個螢幕拍成一張圖。拍不到就回傳空的 QPixmap,呼叫端負責不要顯示它。
|
|
37
|
+
Photograph a whole screen. An unavailable screen gives a null pixmap and the
|
|
38
|
+
caller is responsible for not showing it.
|
|
39
|
+
"""
|
|
40
|
+
if screen is None:
|
|
41
|
+
return QPixmap()
|
|
42
|
+
try:
|
|
43
|
+
geometry = screen.geometry()
|
|
44
|
+
return screen.grabWindow(0, 0, 0, geometry.width(), geometry.height())
|
|
45
|
+
except Exception as error: # pragma: no cover - platform boundary
|
|
46
|
+
front_engine_logger.warning(f"[Freeze] capture failed: {error!r}")
|
|
47
|
+
return QPixmap()
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class FreezeWidget(QWidget):
|
|
51
|
+
"""一張靜止的螢幕畫面,鋪滿目標螢幕。"""
|
|
52
|
+
|
|
53
|
+
def __init__(self, pixmap: QPixmap, parent: Optional[QWidget] = None) -> None:
|
|
54
|
+
super().__init__(parent)
|
|
55
|
+
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
|
56
|
+
# 不用 Tool:Tool 視窗在部分平台不吃鍵盤焦點,那樣 Escape 就按不掉了。
|
|
57
|
+
# Not a Tool window: on some platforms those do not take keyboard focus,
|
|
58
|
+
# which is exactly how Escape would stop working.
|
|
59
|
+
self.setWindowFlags(
|
|
60
|
+
Qt.WindowType.FramelessWindowHint | Qt.WindowType.WindowStaysOnTopHint)
|
|
61
|
+
self.setWindowTitle("FrontEngine")
|
|
62
|
+
self.pixmap = pixmap if pixmap is not None else QPixmap()
|
|
63
|
+
front_engine_logger.info(
|
|
64
|
+
f"[FreezeWidget] Init | size=({self.pixmap.width()}, {self.pixmap.height()})")
|
|
65
|
+
|
|
66
|
+
def show_on(self, screen: Optional[QScreen]) -> None:
|
|
67
|
+
"""在指定螢幕上鋪滿顯示,並取得鍵盤焦點好讓 Escape 有效。"""
|
|
68
|
+
if screen is not None:
|
|
69
|
+
self.setScreen(screen)
|
|
70
|
+
self.setGeometry(screen.geometry())
|
|
71
|
+
self.showFullScreen()
|
|
72
|
+
self.raise_()
|
|
73
|
+
self.activateWindow()
|
|
74
|
+
self.setFocus(Qt.FocusReason.OtherFocusReason)
|
|
75
|
+
|
|
76
|
+
def paintEvent(self, event) -> None:
|
|
77
|
+
if self.pixmap.isNull():
|
|
78
|
+
return
|
|
79
|
+
painter = QPainter(self)
|
|
80
|
+
painter.drawPixmap(self.rect(), self.pixmap)
|
|
81
|
+
|
|
82
|
+
def mouseDoubleClickEvent(self, event) -> None:
|
|
83
|
+
self.close()
|
|
84
|
+
event.accept()
|
|
85
|
+
|
|
86
|
+
def keyPressEvent(self, event) -> None:
|
|
87
|
+
# 任何鍵都解除,不只是 Escape。畫面被一張靜止圖蓋住的時候,使用者最可能做的
|
|
88
|
+
# 就是「隨便按一個鍵看看」,那時候應該要有反應。
|
|
89
|
+
# Any key unfreezes, not only Escape. Faced with a screen that has stopped
|
|
90
|
+
# responding, pressing something at random is the first thing anyone tries,
|
|
91
|
+
# and it should work.
|
|
92
|
+
self.close()
|
|
93
|
+
event.accept()
|
|
@@ -33,6 +33,7 @@ _ACTION_LABELS: Dict[str, Tuple[str, str]] = {
|
|
|
33
33
|
"dashboard_next": ("web_dashboard_next", "Next page"),
|
|
34
34
|
"toggle_lock": ("hotkey_toggle_lock", "Lock / unlock overlays"),
|
|
35
35
|
"show_shortcuts": ("hotkey_show_shortcuts", "Show this shortcut list"),
|
|
36
|
+
"toggle_freeze": ("hotkey_toggle_freeze", "Freeze / unfreeze the screen"),
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
|
|
@@ -698,6 +698,13 @@ class FrontEngineMainUI(QMainWindow):
|
|
|
698
698
|
self.control_center_ui.toggle_lock_all()
|
|
699
699
|
elif action == "show_shortcuts":
|
|
700
700
|
self.toggle_shortcut_sheet()
|
|
701
|
+
elif action == "toggle_freeze":
|
|
702
|
+
# 畫面被凍結時,主視窗就在那張靜止圖後面,按鈕點不到——所以這個
|
|
703
|
+
# 快速鍵是唯一保證按得到的解除方式。
|
|
704
|
+
# While frozen the main window is behind the still image and its
|
|
705
|
+
# buttons cannot be reached; this shortcut is the way out that is
|
|
706
|
+
# always available.
|
|
707
|
+
self.presentation_setting_ui.toggle_freeze()
|
|
701
708
|
|
|
702
709
|
def toggle_shortcut_sheet(self) -> None:
|
|
703
710
|
"""
|
|
@@ -22,6 +22,7 @@ from frontengine.show.presentation.annotation_overlay import (
|
|
|
22
22
|
from frontengine.show.presentation.cursor_effects import CursorEffectWidget
|
|
23
23
|
from frontengine.show.presentation.keystroke_display import KeystrokeDisplayWidget
|
|
24
24
|
from frontengine.show.presentation.magnifier import MagnifierWidget
|
|
25
|
+
from frontengine.show.freeze.freeze_widget import FreezeWidget, capture_screen
|
|
25
26
|
from frontengine.ui.page.utils import build_target_monitor_combobox, coerce_int, resolve_preferred_monitor
|
|
26
27
|
from frontengine.utils.input_watch.input_watch_service import InputWatchService
|
|
27
28
|
from frontengine.ui.page.layout_kit import SettingPage
|
|
@@ -106,6 +107,14 @@ class PresentationSettingUI(SettingPage):
|
|
|
106
107
|
self.whiteboard_save_button.clicked.connect(self.save_whiteboard)
|
|
107
108
|
self.target_monitor_label = tr(QLabel(), "target_monitor_label", "Target monitor")
|
|
108
109
|
self.target_monitor_combobox = build_target_monitor_combobox()
|
|
110
|
+
|
|
111
|
+
# 凍結畫面:把目標螢幕現在的樣子拍下來蓋上去,講解時可以先停住畫面
|
|
112
|
+
# Freeze: cover the target screen with a photograph of itself, so an
|
|
113
|
+
# explanation can be paced without the audience watching you work.
|
|
114
|
+
self.freeze_widget_list: list = []
|
|
115
|
+
self.freeze_label = tr(QLabel(), "presentation_freeze_label", "Freeze screen")
|
|
116
|
+
self.freeze_button = tr(QPushButton(), "presentation_freeze_start", "Freeze")
|
|
117
|
+
self.freeze_button.clicked.connect(self.toggle_freeze)
|
|
109
118
|
self.hint_label = tr(QLabel(), "presentation_hint",
|
|
110
119
|
"Drawing takes the mouse while it is on; the other overlays pass clicks through.")
|
|
111
120
|
self.hint_label.setWordWrap(True)
|
|
@@ -137,6 +146,9 @@ class PresentationSettingUI(SettingPage):
|
|
|
137
146
|
whiteboard.add_inline(self.whiteboard_button, self.whiteboard_save_button)
|
|
138
147
|
|
|
139
148
|
where = self.add_section("section_where", "Where")
|
|
149
|
+
freeze = self.add_section(self.freeze_label)
|
|
150
|
+
freeze.add_inline(self.freeze_button)
|
|
151
|
+
|
|
140
152
|
where.add_row(self.target_monitor_label, self.target_monitor_combobox)
|
|
141
153
|
|
|
142
154
|
self.add_body_widget(self.hint_label)
|
|
@@ -340,6 +352,68 @@ class PresentationSettingUI(SettingPage):
|
|
|
340
352
|
else:
|
|
341
353
|
self.start_whiteboard()
|
|
342
354
|
|
|
355
|
+
def toggle_freeze(self):
|
|
356
|
+
"""
|
|
357
|
+
凍結/解除目標螢幕。已經凍結就解除,所以同一顆按鈕(和同一個快速鍵)
|
|
358
|
+
兩種方向都走得通。
|
|
359
|
+
Freeze or unfreeze the target screen. Frozen already means unfreeze, so
|
|
360
|
+
the same button - and the same shortcut - works both ways.
|
|
361
|
+
"""
|
|
362
|
+
if self.freeze_widget_list:
|
|
363
|
+
self.unfreeze()
|
|
364
|
+
return None
|
|
365
|
+
|
|
366
|
+
screens = QGuiApplication.screens()
|
|
367
|
+
index = resolve_preferred_monitor(self.target_monitor_combobox)
|
|
368
|
+
screen = screens[index] if index is not None and 0 <= index < len(screens) else QGuiApplication.primaryScreen()
|
|
369
|
+
|
|
370
|
+
pixmap = capture_screen(screen)
|
|
371
|
+
if pixmap.isNull():
|
|
372
|
+
# 拍不到就不要蓋一塊空白上去:那會讓整個螢幕變成一片黑,而且看起來
|
|
373
|
+
# 像當機而不是「凍結失敗」。
|
|
374
|
+
# Without a picture, do not cover anything: a blank sheet turns the
|
|
375
|
+
# screen black and reads as a crash rather than a failed freeze.
|
|
376
|
+
front_engine_logger.info("[PresentationSettingUI] nothing captured, not freezing")
|
|
377
|
+
return None
|
|
378
|
+
|
|
379
|
+
widget = FreezeWidget(pixmap)
|
|
380
|
+
widget.destroyed.connect(lambda: self._forget_freeze(widget))
|
|
381
|
+
widget.show_on(screen)
|
|
382
|
+
self.freeze_widget_list.append(widget)
|
|
383
|
+
retranslator.set_text(self.freeze_button, "presentation_freeze_stop", "Unfreeze")
|
|
384
|
+
return widget
|
|
385
|
+
|
|
386
|
+
def unfreeze(self) -> None:
|
|
387
|
+
"""解除凍結。"""
|
|
388
|
+
for widget in self.freeze_widget_list[:]:
|
|
389
|
+
try:
|
|
390
|
+
widget.close()
|
|
391
|
+
except RuntimeError: # pragma: no cover - 底層物件已消失
|
|
392
|
+
pass
|
|
393
|
+
self.freeze_widget_list.clear()
|
|
394
|
+
retranslator.set_text(self.freeze_button, "presentation_freeze_start", "Freeze")
|
|
395
|
+
|
|
396
|
+
def _forget_freeze(self, widget) -> None:
|
|
397
|
+
"""
|
|
398
|
+
使用者自己按 Escape 或雙擊關掉時也要回到「凍結」字樣,否則按鈕會一直
|
|
399
|
+
寫著「解除凍結」,而畫面上根本沒有凍結的東西。
|
|
400
|
+
Coming back to "Freeze" when the user dismissed it themselves; otherwise
|
|
401
|
+
the button keeps offering to unfreeze something that is no longer there.
|
|
402
|
+
"""
|
|
403
|
+
if widget in self.freeze_widget_list:
|
|
404
|
+
self.freeze_widget_list.remove(widget)
|
|
405
|
+
if self.freeze_widget_list:
|
|
406
|
+
return
|
|
407
|
+
try:
|
|
408
|
+
retranslator.set_text(self.freeze_button, "presentation_freeze_start", "Freeze")
|
|
409
|
+
except RuntimeError:
|
|
410
|
+
# destroyed 是在 C++ 物件消失之後才送到的,關閉程式時這一頁可能已經
|
|
411
|
+
# 先走了。那時候沒有按鈕可以改,也不需要改。
|
|
412
|
+
# destroyed arrives after the C++ object is gone, and on shutdown this
|
|
413
|
+
# page may already have followed it. There is no button left to
|
|
414
|
+
# relabel, and nothing that needs relabelling.
|
|
415
|
+
pass
|
|
416
|
+
|
|
343
417
|
def start_whiteboard(self) -> None:
|
|
344
418
|
"""開一塊無限畫布(可平移縮放,畫過的東西留在畫布座標上)。"""
|
|
345
419
|
front_engine_logger.info("[PresentationSettingUI] start_whiteboard")
|
|
@@ -31,6 +31,10 @@ english_word_dict = {
|
|
|
31
31
|
"screen_care_band": "Band",
|
|
32
32
|
"screen_care_strength": "Strength",
|
|
33
33
|
"screen_care_type": "Type",
|
|
34
|
+
"presentation_freeze_label": "Freeze screen",
|
|
35
|
+
"presentation_freeze_start": "Freeze",
|
|
36
|
+
"presentation_freeze_stop": "Unfreeze",
|
|
37
|
+
"hotkey_toggle_freeze": "Freeze / unfreeze the screen",
|
|
34
38
|
"presentation_tool": "Tool",
|
|
35
39
|
"presentation_colour": "Colour",
|
|
36
40
|
"presentation_width": "Width",
|
|
@@ -32,6 +32,10 @@ french_word_dict = {
|
|
|
32
32
|
"screen_care_band": "Largeur",
|
|
33
33
|
"screen_care_strength": "Intensité",
|
|
34
34
|
"screen_care_type": "Type",
|
|
35
|
+
"presentation_freeze_label": "Figer l'écran",
|
|
36
|
+
"presentation_freeze_start": "Figer",
|
|
37
|
+
"presentation_freeze_stop": "Libérer",
|
|
38
|
+
"hotkey_toggle_freeze": "Figer / libérer l'écran",
|
|
35
39
|
"presentation_tool": "Outil",
|
|
36
40
|
"presentation_colour": "Couleur",
|
|
37
41
|
"presentation_width": "Épaisseur",
|
|
@@ -32,6 +32,10 @@ germany_word_dict = {
|
|
|
32
32
|
"screen_care_band": "Breite",
|
|
33
33
|
"screen_care_strength": "Stärke",
|
|
34
34
|
"screen_care_type": "Typ",
|
|
35
|
+
"presentation_freeze_label": "Bild einfrieren",
|
|
36
|
+
"presentation_freeze_start": "Einfrieren",
|
|
37
|
+
"presentation_freeze_stop": "Auftauen",
|
|
38
|
+
"hotkey_toggle_freeze": "Bild einfrieren / auftauen",
|
|
35
39
|
"presentation_tool": "Werkzeug",
|
|
36
40
|
"presentation_colour": "Farbe",
|
|
37
41
|
"presentation_width": "Breite",
|
|
@@ -32,6 +32,10 @@ italian_word_dict = {
|
|
|
32
32
|
"screen_care_band": "Larghezza",
|
|
33
33
|
"screen_care_strength": "Intensità",
|
|
34
34
|
"screen_care_type": "Tipo",
|
|
35
|
+
"presentation_freeze_label": "Congela lo schermo",
|
|
36
|
+
"presentation_freeze_start": "Congela",
|
|
37
|
+
"presentation_freeze_stop": "Scongela",
|
|
38
|
+
"hotkey_toggle_freeze": "Congela / scongela lo schermo",
|
|
35
39
|
"presentation_tool": "Strumento",
|
|
36
40
|
"presentation_colour": "Colore",
|
|
37
41
|
"presentation_width": "Spessore",
|
|
@@ -32,6 +32,10 @@ russian_word_dict = {
|
|
|
32
32
|
"screen_care_band": "Ширина",
|
|
33
33
|
"screen_care_strength": "Сила",
|
|
34
34
|
"screen_care_type": "Тип",
|
|
35
|
+
"presentation_freeze_label": "Заморозить экран",
|
|
36
|
+
"presentation_freeze_start": "Заморозить",
|
|
37
|
+
"presentation_freeze_stop": "Разморозить",
|
|
38
|
+
"hotkey_toggle_freeze": "Заморозить / разморозить экран",
|
|
35
39
|
"presentation_tool": "Инструмент",
|
|
36
40
|
"presentation_colour": "Цвет",
|
|
37
41
|
"presentation_width": "Толщина",
|
{frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/simplified_chinese.py
RENAMED
|
@@ -32,6 +32,10 @@ simplified_chinese_word_dict = {
|
|
|
32
32
|
"screen_care_band": "宽度",
|
|
33
33
|
"screen_care_strength": "强度",
|
|
34
34
|
"screen_care_type": "类型",
|
|
35
|
+
"presentation_freeze_label": "冻结画面",
|
|
36
|
+
"presentation_freeze_start": "冻结",
|
|
37
|
+
"presentation_freeze_stop": "解除冻结",
|
|
38
|
+
"hotkey_toggle_freeze": "冻结/解除冻结画面",
|
|
35
39
|
"presentation_tool": "工具",
|
|
36
40
|
"presentation_colour": "颜色",
|
|
37
41
|
"presentation_width": "粗细",
|
{frontengine-1.0.74 → frontengine-1.0.76}/frontengine/utils/multi_language/traditional_chinese.py
RENAMED
|
@@ -32,6 +32,10 @@ traditional_chinese_word_dict = {
|
|
|
32
32
|
"screen_care_band": "寬度",
|
|
33
33
|
"screen_care_strength": "強度",
|
|
34
34
|
"screen_care_type": "類型",
|
|
35
|
+
"presentation_freeze_label": "凍結畫面",
|
|
36
|
+
"presentation_freeze_start": "凍結",
|
|
37
|
+
"presentation_freeze_stop": "解除凍結",
|
|
38
|
+
"hotkey_toggle_freeze": "凍結/解除凍結畫面",
|
|
35
39
|
"presentation_tool": "工具",
|
|
36
40
|
"presentation_colour": "顏色",
|
|
37
41
|
"presentation_width": "粗細",
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: frontengine
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.76
|
|
4
4
|
Summary: FrontEngine is use-define frontview or only use like screen saver
|
|
5
5
|
Author-email: JE-Chen <jechenmailman@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/Intergration-Automation-Testing/FrontEngine
|
|
@@ -22,6 +22,8 @@ frontengine/show/capture/__init__.py
|
|
|
22
22
|
frontengine/show/capture/region_capture.py
|
|
23
23
|
frontengine/show/focus_shield/__init__.py
|
|
24
24
|
frontengine/show/focus_shield/focus_shield_widget.py
|
|
25
|
+
frontengine/show/freeze/__init__.py
|
|
26
|
+
frontengine/show/freeze/freeze_widget.py
|
|
25
27
|
frontengine/show/gif/__init__.py
|
|
26
28
|
frontengine/show/gif/paint_gif.py
|
|
27
29
|
frontengine/show/image/__init__.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/focus_shield/focus_shield_widget.py
RENAMED
|
File without changes
|
{frontengine-1.0.74/frontengine/show/gif → frontengine-1.0.76/frontengine/show/freeze}/__init__.py
RENAMED
|
File without changes
|
{frontengine-1.0.74/frontengine/show/image → frontengine-1.0.76/frontengine/show/gif}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/show/load → frontengine-1.0.76/frontengine/show/image}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/show/measure → frontengine-1.0.76/frontengine/show/load}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/show/pet → frontengine-1.0.76/frontengine/show/particle}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/show/pinned → frontengine-1.0.76/frontengine/show/pet}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/presentation/annotation_overlay.py
RENAMED
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/presentation/keystroke_display.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74 → frontengine-1.0.76}/frontengine/show/screen_care/color_vision_widget.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/show/toast → frontengine-1.0.76/frontengine/show/text}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/show/video → frontengine-1.0.76/frontengine/show/toast}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/system_tray → frontengine-1.0.76/frontengine/show/web}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/ui → frontengine-1.0.76/frontengine/system_tray}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/ui/dialog → frontengine-1.0.76/frontengine/ui/color}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/ui/menu → frontengine-1.0.76/frontengine/ui/dialog}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/ui/nav → frontengine-1.0.76/frontengine/ui/menu}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontengine-1.0.74/frontengine/ui/page → frontengine-1.0.76/frontengine/ui/nav}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|