Gtk3 Threaded UI: Difference between revisions

From vice-emu
Jump to navigation Jump to search
mNo edit summary
 
(20 intermediate revisions by one other user not shown)
Line 14: Line 14:


This table contains a list of menu actions/dialogs reachable via the main menu. Unless otherwise noted, the "source file" column contains the filename with <code>src/arch/gtk3</code> stripped off. The keyboard shortcuts are taken from the Linux port, so they might be off for at least MacOS.
This table contains a list of menu actions/dialogs reachable via the main menu. Unless otherwise noted, the "source file" column contains the filename with <code>src/arch/gtk3</code> stripped off. The keyboard shortcuts are taken from the Linux port, so they might be off for at least MacOS.
These table are being built from running x64sc, so some items may be missing in some emulators, or some items may not show up here yet. I'll deal with that later.


{| class="wikitable"
{| class="wikitable"
Line 22: Line 24:
|Alt+A
|Alt+A
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uismartattach.c uismartattach.c]
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uismartattach.c uismartattach.c]
|create_smart_attach_dialog()
|ui_smart_attach_dialog_show()
|OK
|OK
|
|
Line 29: Line 31:
|Alt+[8-11]
|Alt+[8-11]
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uidiskattach.c uidiskattach.c]
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uidiskattach.c uidiskattach.c]
|create_disk_attach_dialog()
|ui_disk_attach_dialog_show()
|OK
|OK
|
|
Line 36: Line 38:
|
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uidiskcreate.c uidiskcreate.c]
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uidiskcreate.c uidiskcreate.c]
|uidiskcreate_dialog_show()
|ui_disk_create_dialog_show()
|needs checking
|needs checking
|
|
Line 106: Line 108:
|
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uitapecreate.c uitapecreate.c]
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uitapecreate.c uitapecreate.c]
|uitape_create_dialog_show()
|ui_tape_create_dialog_show()
|needs checking
|needs checking
|
|
Line 169: Line 171:
|Alt+C
|Alt+C
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicart.c uicart.c]
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicart.c uicart.c]
|uicart_show_dialog()
|ui_cart_show_dialog()
|needs checking
|needs checking
|
|
Line 176: Line 178:
|Alt+Shift+C
|Alt+Shift+C
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicart.c uicart.c]
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicart.c uicart.c]
|uicart_detach()
|ui_cart_detach()
|needs checking
|needs checking
|
|
Line 183: Line 185:
|Alt+Z
|Alt+Z
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicart.c uicart.c]
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicart.c uicart.c]
|uicart_trigger_freeze()
|ui_cart_trigger_freeze()
|needs checking
|needs checking
|
|
Line 247: Line 249:
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_close_callback()
|ui_close_callback()
|OK
|
|-
|}
{| class="wikitable"
|+Edit menu
!menu item||shortcut||source file||function||status||remarks
|-
|style="width:420px;" | Edit &rarr; Copy
|Alt+Delete
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uiedit.c uiedit.c]
|ui_copy_callback()
|needs checking
|
|-
|Edit &rarr; Paste
|Alt+Insert
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uiedit.c uiedit.c]
|ui_paste_callback()
|needs checking
|
|-
|}
{| class="wikitable"
|+Snapshot menu
!menu item||shortcut||source file||function||status||remarks
|-
|style="width:420px;" | Snapshot &rarr; Load snapshot file
|Alt+L
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisnapshot.c uisnapshot.c]
|ui_snapshot_open_file()
|needs checking
|
|-
|Snapshot &rarr; Save snapshot file
|Alt+S
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisnapshot.c uisnapshot.c]
|ui_snapshot_save_file()
|needs checking
|
|-
|Snapshot &rarr; Quickload snapshot
|Alt+L
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisnapshot.c uisnapshot.c]
|ui_snapshot_quickload_snapshot()
|needs checking
|
|-
|Snapshot &rarr; Quicksave snapshot
|Alt+S
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisnapshot.c uisnapshot.c]
|ui_snapshot_quicksave_snapshot()
|needs checking
|
|-
|Snapshot &rarr; Start recording events
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisnapshot.c uisnapshot.c]
|ui_snapshot_history_record_start()
|needs checking
|
|-
|Snapshot &rarr; Stop recording events
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisnapshot.c uisnapshot.c]
|ui_snapshot_history_record_end()
|needs checking
|
|-
|Snapshot &rarr; Start playing back events
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisnapshot.c uisnapshot.c]
|ui_snapshot_history_playback_start()
|needs checking
|
|-
|Snapshot &rarr; Stop playing back events
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisnapshot.c uisnapshot.c]
|ui_snapshot_history_playback_end()
|needs checking
|
|-
|Snapshot &rarr; Set recording milestone
|Alt+E
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisnapshot.c uisnapshot.c]
|ui_snapshot_history_milestone_set()
|needs checking
|
|-
|Snapshot &rarr; Return to milestone
|Alt+U
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisnapshot.c uisnapshot.c]
|ui_snapshot_history_milestone_reset_()
|needs checking
|
|-
|Snapshot &rarr; Save media file
|Alt+Shift+R
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uimedia.c uimedia.c]
|ui_media_dialog_show()
|Should be fixed
|
|-
|Snapshot &rarr; Stop media recording
|Alt+Shift+S
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uimedia.c uimedia.c]
|ui_media_stop_recording()
|needs checking
|
|-
|}
{| class="wikitable"
|+Settings menu
!menu item||shortcut||source file||function||status||remarks
|-
|style="width:420px;" | Settings &rarr; Toggle fullscreen
|Alt+D
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/ui.c ui.c]
|ui_fullscreen_callback()
|needs checking
|Can also be activated by double-clicking on the canvas, which needs additional checking
|-
|Settings &rarr; Restore display state
|Alt+R
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_restore_display()
|needs checking
|
|-
|Settings &rarr; Show menu/status in fullscreen
|Alt+B
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/ui.c ui.c]
|ui_fullscreen_decorations_callback()
|needs checking
|
|-
|Settings &rarr; Settings
|Alt+O
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uisettings.c uisettings.c]
|ui_settings_dialog_create_and_activate_node_callback()
|needs checking
|
|-
|Settings &rarr; Load settings
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uimachinemenu.c uimachinemenu.c]
|settings_load_callback()
|needs checking
|
|-
|Settings &rarr; Load settings from
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uimachinemenu.c uimachinemenu.c]
|settings_load_custom_callback()
|OK
|
|-
|Settings &rarr; Save settings
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uimachinemenu.c uimachinemenu.c]
|settings_save_callback()
|needs checking
|
|-
|Settings &rarr; Save settings to
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uimachinemenu.c uimachinemenu.c]
|settings_save_custom_callback()
|needs checking
|
|-
|Settings &rarr; Restore default settings
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_restore_default_settings()
|needs checking
|needs checking
|
|
|-
|-
|}
|}
<b>The following menu only shows up when passing</b> <code>--enable-debug</code> <b>to</b> <code>./configure</code>
{| class="wikitable"
|+Debug menu
!menu item||shortcut||source file||function||status||remarks
|-
|style="width:420px;" | Debug &rarr; Trace mode
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uidebug.c uidebug.c]
|ui_debug_trace_mode_dialog_show()
|needs checking
|
|-
|Debug &rarr; Main CPU trace
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_toggle_resource("MainCPU_TRACE")
|needs checking
|
|-
|Debug &rarr; IEC bus trace
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_toggle_resource("IEC_TRACE")
|needs checking
|
|-
|Debug &rarr; IEEE-488 bus trace
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_toggle_resource("IEEE_TRACE")
|needs checking
|
|-
|Debug &rarr; Drive #8 CPU trace
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_toggle_resource("Drive0CPU_TRACE")
|needs checking
|
|-
|Debug &rarr; Drive #9 CPU trace
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_toggle_resource("Drive1CPU_TRACE")
|needs checking
|
|-
|Debug &rarr; Drive #10 CPU trace
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_toggle_resource("Drive2CPU_TRACE")
|needs checking
|
|-
|Debug &rarr; Drive #11 CPU trace
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_toggle_resource("Drive3CPU_TRACE")
|needs checking
|
|-
|Debug &rarr; Autoplay playback frames
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uidebug.c uidebug.c]
|ui_debug_playback_frames_dialog_show()
|needs checking
|
|-
|Debug &rarr; Save core dump
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_toggle_resource("DoCoreDump")
|needs checking
|
|-
|}
{| class="wikitable"
|+Help menu
!menu item||shortcut||source file||function||status||remarks
|-
|style="width:420px;" | Help &rarr; Browse manual
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicommands.c uicommands.c]
|ui_open_manual_callback()
|needs checking
|
|-
|Help &rarr; Command line options
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicmdline.c uicmdline.c]
|uicmdline_dialog_show()
|needs checking
|
|-
|Help &rarr; Compile time features
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uicompiletimefeatures.c uicompiletimefeatures.c]
|uicompiletimefeatures_dialog_show()
|needs checking
|Filename is ridiculous and so is the function call.
|-
|Help &rarr; Hotkeys
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uihotkeys.c uihotkeys.c]
|uihotkeys_dialog_show()
|needs checking
|
|-|-
|Help &rarr; Aboot
|
|[https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/arch/gtk3/uiabout.c uiaboot.c]
|ui_about_dialog_show()
|OK
|
|-
|}
[[Category:Deprecated]]

Latest revision as of 19:34, 23 March 2023

Introduction

This page is meant to track our work on refactoring the Gtk3 UI to properly work with the awesome work done by DQH, solving a lot of issues with rendering and sound synchronisation (the infamous "ruckeln") by using threading to have the emulation take precedence over the UI. The main dialogs (attach disk, open and use the setting dialog, etc) have already been refactored, but a lot of dialogs/popup menus and statusbar widgets remain.


Using the new threaded code

Best filled in by DQH, I think :)


UI elements to to check and refactor

Main menu items

This table contains a list of menu actions/dialogs reachable via the main menu. Unless otherwise noted, the "source file" column contains the filename with src/arch/gtk3 stripped off. The keyboard shortcuts are taken from the Linux port, so they might be off for at least MacOS. These table are being built from running x64sc, so some items may be missing in some emulators, or some items may not show up here yet. I'll deal with that later.


File menu
menu item shortcut source file function status remarks
File → Smart attach disk/tape/cartridge Alt+A uismartattach.c ui_smart_attach_dialog_show() OK
File → Attach disk image → Drive #[8-11] Alt+[8-11] uidiskattach.c ui_disk_attach_dialog_show() OK
File → Create and attach an empty disk image uidiskcreate.c ui_disk_create_dialog_show() needs checking
File → Detach disk image → Drive #[8:0 .. 11:1] Crtl+Alt+[8-11] uidiskattach.c ui_disk_detach_callback() needs checking No shortcuts for second drive, perhaps Ctrl+Alt+Shift+[8-11]?
File → Detach disk image → Detach all uidiskattach.c ui_disk_detach_all_callback() needs checking
File → Flip list → Add current image (Unit #8) Alt+I uifliplist.c ui_fliplist_add_current_cb() needs checking
File → Flip list → Remove current image (Unit #8) Alt+K uifliplist.c ui_fliplist_remove_current_cb() needs checking
File → Flip list → Attach next image (Unit #8) Alt+N uifliplist.c ui_fliplist_next_cb() needs checking
File → Flip list → Attach previous image (Unit #8) Alt+Shift+N uifliplist.c ui_fliplist_remove_prev_cb() needs checking
File → Flip list → Load flip list file uifliplist.c ui_fliplist_load_callback() needs checking
File → Flip list → Save flip list file uifliplist.c ui_fliplist_save_callback() needs checking
File → Attach tape image Alt+T uitapeattach.c ui_tape_attach_callback() needs checking
File → Create and attach an empty tape image uitapecreate.c ui_tape_create_dialog_show() needs checking
File → Detach tape image uitapeattach.c ui_tape_detach_callback() needs checking
File → Datasette controls → Stop uidatasette.c ui_datasette_tape_action_cb() needs checking
File → Datasette controls → Start uidatasette.c ui_datasette_tape_action_cb() needs checking
File → Datasette controls → Forward uidatasette.c ui_datasette_tape_action_cb() needs checking
File → Datasette controls → Rewind uidatasette.c ui_datasette_tape_action_cb() needs checking
File → Datasette controls → Record uidatasette.c ui_datasette_tape_action_cb() needs checking
File → Datasette controls → Reset uidatasette.c ui_datasette_tape_action_cb() needs checking
File → Datasette controls → Reset Counter uidatasette.c ui_datasette_tape_action_cb() needs checking
File → Attach cartridge image Alt+C uicart.c ui_cart_show_dialog() needs checking
File → Detach cartridge image(s) Alt+Shift+C uicart.c ui_cart_detach() needs checking
File → Cartridge freeze Alt+Z uicart.c ui_cart_trigger_freeze() needs checking
File → Activate monitor Alt+H uimon.c ui_monitor_activate_callback() needs checking
File → Netplay uinetplay_new.c ui_netplay_dialog_new() needs checking
File → Reset → Soft Reset Alt+F9 uicommands.c ui_machine_reset_callback() needs checking
File → Reset → Hard Reset Alt+F12 uicommands.c ui_machine_reset_callback() needs checking
File → Reset → Reset drive #8 uicommands.c ui_drive_reset_callback() needs checking
File → Reset → Reset drive #9 uicommands.c ui_drive_reset_callback() needs checking
File → Reset → Reset drive #10 uicommands.c ui_drive_reset_callback() needs checking
File → Reset → Reset drive #11 uicommands.c ui_drive_reset_callback() needs checking
File → Exit emulator Alt+Q uicommands.c ui_close_callback() OK


Edit menu
menu item shortcut source file function status remarks
Edit → Copy Alt+Delete uiedit.c ui_copy_callback() needs checking
Edit → Paste Alt+Insert uiedit.c ui_paste_callback() needs checking


Snapshot menu
menu item shortcut source file function status remarks
Snapshot → Load snapshot file Alt+L uisnapshot.c ui_snapshot_open_file() needs checking
Snapshot → Save snapshot file Alt+S uisnapshot.c ui_snapshot_save_file() needs checking
Snapshot → Quickload snapshot Alt+L uisnapshot.c ui_snapshot_quickload_snapshot() needs checking
Snapshot → Quicksave snapshot Alt+S uisnapshot.c ui_snapshot_quicksave_snapshot() needs checking
Snapshot → Start recording events uisnapshot.c ui_snapshot_history_record_start() needs checking
Snapshot → Stop recording events uisnapshot.c ui_snapshot_history_record_end() needs checking
Snapshot → Start playing back events uisnapshot.c ui_snapshot_history_playback_start() needs checking
Snapshot → Stop playing back events uisnapshot.c ui_snapshot_history_playback_end() needs checking
Snapshot → Set recording milestone Alt+E uisnapshot.c ui_snapshot_history_milestone_set() needs checking
Snapshot → Return to milestone Alt+U uisnapshot.c ui_snapshot_history_milestone_reset_() needs checking
Snapshot → Save media file Alt+Shift+R uimedia.c ui_media_dialog_show() Should be fixed
Snapshot → Stop media recording Alt+Shift+S uimedia.c ui_media_stop_recording() needs checking


Settings menu
menu item shortcut source file function status remarks
Settings → Toggle fullscreen Alt+D ui.c ui_fullscreen_callback() needs checking Can also be activated by double-clicking on the canvas, which needs additional checking
Settings → Restore display state Alt+R uicommands.c ui_restore_display() needs checking
Settings → Show menu/status in fullscreen Alt+B ui.c ui_fullscreen_decorations_callback() needs checking
Settings → Settings Alt+O uisettings.c ui_settings_dialog_create_and_activate_node_callback() needs checking
Settings → Load settings uimachinemenu.c settings_load_callback() needs checking
Settings → Load settings from uimachinemenu.c settings_load_custom_callback() OK
Settings → Save settings uimachinemenu.c settings_save_callback() needs checking
Settings → Save settings to uimachinemenu.c settings_save_custom_callback() needs checking
Settings → Restore default settings uicommands.c ui_restore_default_settings() needs checking


The following menu only shows up when passing --enable-debug to ./configure

Debug menu
menu item shortcut source file function status remarks
Debug → Trace mode uidebug.c ui_debug_trace_mode_dialog_show() needs checking
Debug → Main CPU trace uicommands.c ui_toggle_resource("MainCPU_TRACE") needs checking
Debug → IEC bus trace uicommands.c ui_toggle_resource("IEC_TRACE") needs checking
Debug → IEEE-488 bus trace uicommands.c ui_toggle_resource("IEEE_TRACE") needs checking
Debug → Drive #8 CPU trace uicommands.c ui_toggle_resource("Drive0CPU_TRACE") needs checking
Debug → Drive #9 CPU trace uicommands.c ui_toggle_resource("Drive1CPU_TRACE") needs checking
Debug → Drive #10 CPU trace uicommands.c ui_toggle_resource("Drive2CPU_TRACE") needs checking
Debug → Drive #11 CPU trace uicommands.c ui_toggle_resource("Drive3CPU_TRACE") needs checking
Debug → Autoplay playback frames uidebug.c ui_debug_playback_frames_dialog_show() needs checking
Debug → Save core dump uicommands.c ui_toggle_resource("DoCoreDump") needs checking


Help menu
menu item shortcut source file function status remarks
Help → Browse manual uicommands.c ui_open_manual_callback() needs checking
Help → Command line options uicmdline.c uicmdline_dialog_show() needs checking
Help → Compile time features uicompiletimefeatures.c uicompiletimefeatures_dialog_show() needs checking Filename is ridiculous and so is the function call.
Help → Hotkeys uihotkeys.c uihotkeys_dialog_show() needs checking
Help → Aboot uiaboot.c ui_about_dialog_show() OK