Adds process_mode property to PTY which can be set to IDLE or PHYSICS.
Determines whether the PTY will be updated in the `_process()` or
`_physics_process()` step. Defaults to PHYSICS.
PTY now provides a public interface to an underlying instance of
PTYNative. The PTYNative class can be extended as appropriate for
each platform and the platform-specific implementation will be
selected by PTY at runtime.
Makes for pretty paths when extending scripts:
`extends "res://addons/godot_xterm/terminal.gd"`
vs.
`extends "res://addons/godot_xterm/nodes/terminal/terminal.gd"`
Currently "res://addons/godot_xterm/pty.gd" is acutally `pty_unix.gd`.
This is okay for now as the PTY node is only supported on Unix
platforms. However, we will need to sort it out when adding Windows
support as part of #25.
Also remove the GDXterm namespace.
- Don't add the bell to the archive to keep it small a simplify
licensing. Also bells seem to be rarely used with terminal emulators.
- Don't play the bell directly from the Terminal node by adding an
AudioStreamPlayer, but make it easy to tune the "bell" signal behavior
from the Terminal node so that only an AudioStreamPlayer node's play()
method needs to be connected to it.
- Keep the bell.wav sound around for testing/demo.
Temporary measure until we can resolve the issue where inactive tabs
would be closed when clicking on the area where the close button will
show when policy was CLOSE_BUTTON_SHOW_ACTIVE_ONLY.
Clearing the terminal removes all lines in the scrollback buffer except
for the most recent.
With sb_reset, the terminal will return the scrollback buffer to the
bottom when the user starts typing if they have previously scrolled up.
- Add TerminalSettings resource.
- Init/load terminal settings from terminal panel.
- Add terminal context menu (i.e. right-click PopupMenu).
- Add shortcut to open a new terminal Ctrl+Shift+T and make terminal panel
visible.
In order to use the gdnative library as an editor plugin it was
neccessary to set the `reloadable` property of the gdnlib file to false,
in order to prevent crashes when the godot editor window lost focus.
This may have consequences when recompiling the library.
See: https://docs.godotengine.org/en/3.3/classes/class_gdnativelibrary.html#class-gdnativelibrary-property-reloadable
Still crashes quite frequently and doesn't close child processes
properly.
Part of #43.