mirror of
https://github.com/lihop/godot-xterm.git
synced 2025-05-05 04:34:23 +02:00
parent
115521f645
commit
09dc080a2e
8 changed files with 98 additions and 0 deletions
|
@ -268,6 +268,11 @@ static int text_draw_cb(struct tsm_screen *con, uint64_t id, const uint32_t *ch,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void bell_cb(tsm_vte *_vte, void *data) {
|
||||
Terminal *terminal = static_cast<Terminal *>(data);
|
||||
terminal->emit_signal("bell");
|
||||
}
|
||||
|
||||
void Terminal::_register_methods() {
|
||||
register_method("_init", &Terminal::_init);
|
||||
register_method("_ready", &Terminal::_ready);
|
||||
|
@ -291,6 +296,7 @@ void Terminal::_register_methods() {
|
|||
"event", GODOT_VARIANT_TYPE_OBJECT);
|
||||
register_signal<Terminal>("size_changed", "new_size",
|
||||
GODOT_VARIANT_TYPE_VECTOR2);
|
||||
register_signal<Terminal>("bell", Dictionary());
|
||||
}
|
||||
|
||||
Terminal::Terminal() {}
|
||||
|
@ -310,6 +316,8 @@ void Terminal::_init() {
|
|||
if (tsm_vte_new(&vte, screen, write_cb, this, NULL, NULL)) {
|
||||
ERR_PRINT("Error creating new tsm vte");
|
||||
}
|
||||
|
||||
tsm_vte_set_bell_cb(vte, bell_cb, this);
|
||||
}
|
||||
|
||||
void Terminal::_ready() { update_theme(); }
|
||||
|
|
|
@ -6,6 +6,7 @@ const DefaultTheme = preload("../../themes/default.tres")
|
|||
signal data_sent(data)
|
||||
signal key_pressed(data, event)
|
||||
signal size_changed(new_size)
|
||||
signal bell
|
||||
|
||||
enum UpdateMode {
|
||||
DISABLED,
|
||||
|
@ -62,6 +63,7 @@ func _ready():
|
|||
_native_terminal.connect("data_sent", self, "_on_data_sent")
|
||||
_native_terminal.connect("key_pressed", self, "_on_key_pressed")
|
||||
_native_terminal.connect("size_changed", self, "_on_size_changed")
|
||||
_native_terminal.connect("bell", self, "_on_bell")
|
||||
|
||||
_viewport.size = rect_size
|
||||
_viewport.render_target_update_mode = Viewport.UPDATE_ALWAYS
|
||||
|
@ -112,6 +114,10 @@ func _on_size_changed(new_size: Vector2):
|
|||
emit_signal("size_changed", new_size)
|
||||
|
||||
|
||||
func _on_bell():
|
||||
emit_signal("bell")
|
||||
|
||||
|
||||
func _set_size_warning(value):
|
||||
if value:
|
||||
push_warning(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue