GTK3 status: Difference between revisions

From vice-emu
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This is a temporary page to collect some notes on the status of the GTK3 port
The content from this page was move to the [[Todo#GTK3_UI|TODO]] page.


== Status of the GTK3 UI ==
[[Category:Deprecated]]
 
* TODO: Forcing display size to 1x/2x/3x/4x
* TODO: respect "true aspect ratio" option (currently always off)
* TODO: respect "keep aspect ratio" option (currently always on)
* TODO: fullscreen mode
* TODO: save/restore window(s) size(s) and position(s) from vice.ini
* TODO: make all of: video/audio/mouse/joystick/keyboard work
* TODO: hotkeys - preferably user configureable (like SDL)
: TODO: reasonable defaults are needed, eg to go to monitor :)
* TODO: monitor window (using VTE)
: monitor in terminal works, use sth like ./src/x64 -initbreak 0xfce2 to get into the monitor
* TODO: statusbar (see uistatusbar.c for some comments)
* TODO: mixer and CRT-emu control
: like the existing widget with the sliders in the gtk2 port, put splitted into two seperate widgets of which one only has the audio related (mixer) and the other the video related (CRT) stuff.
* TODO: menubar / menus
:: Some of this can be implemented using the GtkUIManager 'class'. Research needed.
* TODO: various dialogs
:: A lot of this can be implemented using the GtkBuilder 'class'. Research needed.
* TODO: figure out a way to be able to load UI description files from either the source tree during development, or the VICE lib dir when installed.
 
 
* NOTE: The Unix port uses the XDG specification for the vice configuration files, so now `vicerc` is located in `$HOME/.config/vice`, not `$HOME/.vice`. Right now the 'autostart-${emu}.d64' files are also stored there, which is not quite correct.
 
== Status of the arch specific parts ==
 
=== Unix ===
 
./configure --enable-native-gtk3ui
 
* starts up, video and audio is working
* keyboard is working
 
* TODO: make joystick input work
* TODO: make mouse input work
 
=== Windows ===
 
./configure --enable-native-gtk3ui --without-resid
 
* starts up, video is working
* keyboard is working
 
* TODO: fix "make bindist"
: right now start like "./src/x64 -directory alldata" with ALL roms (drive and computer) in the respective directory
 
* TODO: fix "undefined reference to reSID::build_dac_table" when reSID is enabled
:: Temporary fix: run `make LDFLAGS="-Lsrc/resid"`. configure.proto should be updated to reflect this
 
* TODO: make audio work
** TODO: fix configure.proto - sound drivers are not being selected correctly (should be like native win32)
:: TODO: sound-wmm is disabled in sound.c
 
* TODO: make joystick input work
: TODO: some stuff is commented out in joy-win32.c and joy-win32-dinput-handle.c
* TODO: make mouse input work
 
=== MacOS ===
 
* untested
 
./configure --enable-native-gtk3ui
 
* TODO: make it compile and start up
* TODO: make video and audio work
* TODO: make keyboard work
* TODO: make joystick input work
* TODO: make mouse input work
 
 
== Gtk3 coding guidelines ==
 
<i>(Work (very much) In Progress)</i>
 
Gtk3 has changed a lot since Gtk2, so please don't copy Gtk2 code directly into the new Gtk3 codebase. At least first check the Gtk3 docs to see if any deprecated objects, functions or constants are used (there's a lot of deprecation of things in Gtk3, and will continue to be so).
 
Things like `GtkHBox`, `GtkVBox` and even `GtkBox` are all deprecated in favour of `GtkGrid`, so if you need a `GtkHBox`, use a `GtkGrid` with a single row.
 
 
 
[[Category:Roadmap]]

Latest revision as of 18:28, 23 March 2023

The content from this page was move to the TODO page.