Hatari UI
---------

Hatari UI is an out-of-process user interface for the Hatari Atari
ST/STe/TT/Falcon emulator and its built-in debugger which can
(optionally) embed the Hatari emulator window.

Having the UI in another process allows doing it with a higher level
language while avoiding adding GUI toolkit dependencies to Hatari
itself. The UI is written in Python language, using Gtk widget set.

The main points of this new UI over the Hatari internal one are its
configurability, more usable file selector, internationalization
support and providing a (very) simple GUI for the (console based)
debugger included with the Hatari emulator.

Note: this is an additional UI, the built-in Hatari SDL UI isn't being
replaced or going anywhere!


Requirements
------------

- python3 >= 3.5
- python3-gi (Python GObject Introspection)
- Gtk >= v3.22 and its gir bindings (gir1.2-gtk-3.0)

Hatari UI is included with the Hatari sources:
	https://framagit.org/hatari/hatari/-/tree/main/python-ui

Hatari UI has been tested on several Linux versions.  I would assume
it to work also on other unix systems such as Apple OSX. It may work
with the Hatari Windows version, as long as it is built with socket
support.

Embedding the Hatari emulator window is currently supported only for
systems using an X window system (from libSDL sources it would seem
that Windows would also support window embedding, but support for that
would need to be added both to Hatari and Hatari UI because SDL's
own embedding disables all keyboard events in SDL program).

Here are instructions on installing the dependencies for non-Linux
platforms (neither tested nor supported as I don't use/have them):
	https://www.python.org/downloads/
	https://pypi.org/project/PyGObject/
	https://www.gtk.org/download/


Running
-------

Being a Python program, Hatari UI doesn't need to be built.
You can just run it from where you extracted it (or checked
it out of TuxFamily git repo) by calling its wrapper script:
	/path/to/script/hatariui

Or you can run just the debugger:
	/path/to/script/debugui.py

But you can also install it to system along with Hatari:
	make install


Notes
-----

Hatari UI runs a Hatari version found on $PATH.  If you want
to use a version of Hatari that hasn't been installed, you
need to modify the search path, for example like this:
	PATH=../build/src:.:$PATH hatariui

If UI is started without the embedding option, the actions
(in menus and toolbars) have also shortcuts.  They cannot
be used when Hatari window is embedded because then those
shortcuts couldn't be used with Hatari.
