------------------------------------------------------------------------------- expose-functions-for-pausing ------------------------------------------------------------------------------- expose functions for pausing unpausing output From: Jelle van der Waa --- src/vte/vteterminal.h | 6 ++++++ src/vtegtk.cc | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h index 7836271..7b0f2dc 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -168,6 +168,12 @@ void vte_terminal_feed_child_binary(VteTerminal *terminal, const guint8 *data, gsize length) _VTE_GNUC_NONNULL(1); +_VTE_PUBLIC +void vte_terminal_connect_pty_read(VteTerminal *terminal); + +_VTE_PUBLIC +void vte_terminal_disconnect_pty_read(VteTerminal *terminal); + /* Copy currently-selected text to the clipboard, or from the clipboard to * the terminal. */ _VTE_PUBLIC diff --git a/src/vtegtk.cc b/src/vtegtk.cc index 924b5a0..442e20c 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -2325,6 +2325,32 @@ vte_terminal_feed_child(VteTerminal *terminal, } /** + * vte_terminal_connect_pty_read: + * @terminal: a #VteTerminal + * + * Unpause output + */ +void +vte_terminal_connect_pty_read(VteTerminal *terminal) +{ + g_return_if_fail(VTE_IS_TERMINAL(terminal)); + IMPL(terminal)->connect_pty_read(); +} + +/** + * vte_terminal_disconnect_pty_read: + * @terminal: a #VteTerminal + * + * Pause output + */ +void +vte_terminal_disconnect_pty_read(VteTerminal *terminal) +{ + g_return_if_fail(VTE_IS_TERMINAL(terminal)); + IMPL(terminal)->disconnect_pty_read(); +} + +/** * vte_terminal_feed_child_binary: * @terminal: a #VteTerminal * @data: (array length=length) (element-type guint8) (allow-none): data to send to the child ------------------------------------------------------------------------------- expose-function-for-setting ------------------------------------------------------------------------------- expose function for setting cursor position From: Jelle van der Waa --- src/vte/vteterminal.h | 5 +++++ src/vtegtk.cc | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h index 7b0f2dc..03e963d 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -340,6 +340,11 @@ _VTE_PUBLIC void vte_terminal_get_cursor_position(VteTerminal *terminal, glong *column, glong *row) _VTE_GNUC_NONNULL(1); +_VTE_PUBLIC +void vte_terminal_set_cursor_position(VteTerminal *terminal, + glong column, + glong row) _VTE_GNUC_NONNULL(1); + /* Add a matching expression, returning the tag the widget assigns to that * expression. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc index 442e20c..f9c196b 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -2160,6 +2160,30 @@ vte_terminal_get_cursor_position(VteTerminal *terminal, } /** + * vte_terminal_set_cursor_position + * @terminal: a #VteTerminal + * @column: the new cursor column + * @row: the new cursor row + * + * Set the location of the cursor. + */ +void +vte_terminal_set_cursor_position(VteTerminal *terminal, + long column, long row) +{ + g_return_if_fail(VTE_IS_TERMINAL(terminal)); + + auto impl = IMPL(terminal); + impl->invalidate_cursor_once(FALSE); + impl->m_screen->cursor.col = column; + impl->m_screen->cursor.row = row; + impl->invalidate_cursor_once(FALSE); + impl->check_cursor_blink(); + impl->queue_cursor_moved(); + +} + +/** * vte_terminal_pty_new_sync: * @terminal: a #VteTerminal * @flags: flags from #VtePtyFlags ------------------------------------------------------------------------------- add-function-for-setting-the ------------------------------------------------------------------------------- add function for setting the text selections From: Jelle van der Waa --- src/vte/vteterminal.h | 4 ++++ src/vtegtk.cc | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h index 03e963d..36a7970 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -188,6 +188,10 @@ _VTE_PUBLIC void vte_terminal_select_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); _VTE_PUBLIC void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); +_VTE_PUBLIC +void vte_terminal_select_text(VteTerminal *terminal, long start_col, long start_row, + long end_col, long end_row) _VTE_GNUC_NONNULL(1); + /* By-word selection */ _VTE_PUBLIC diff --git a/src/vtegtk.cc b/src/vtegtk.cc index f9c196b..e94d7e3 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -2135,6 +2135,26 @@ vte_terminal_unselect_all(VteTerminal *terminal) } /** + * vte_terminal_select_text: + * @terminal: a #VteTerminal + * @start_col: the starting column for the selection + * @start_row: the starting row for the selection + * @end_col: the end column for the selection + * @end_row: the end row for the selection + * + * Sets the current selection region. + */ +void +vte_terminal_select_text(VteTerminal *terminal, + long start_col, long start_row, + long end_col, long end_row) +{ + g_return_if_fail (VTE_IS_TERMINAL (terminal)); + + IMPL(terminal)->select_text(start_col, start_row, end_col, end_row); +} + +/** * vte_terminal_get_cursor_position: * @terminal: a #VteTerminal * @column: (out) (allow-none): a location to store the column, or %NULL ------------------------------------------------------------------------------- add-functions-to-get-set-block ------------------------------------------------------------------------------- add functions to get/set block selection mode From: Jelle van der Waa --- src/vte/vteterminal.h | 5 +++++ src/vtegtk.cc | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h index 36a7970..8d37879 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -189,6 +189,11 @@ void vte_terminal_select_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); _VTE_PUBLIC void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); _VTE_PUBLIC +gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); +_VTE_PUBLIC +void vte_terminal_set_selection_block_mode(VteTerminal *terminal, + gboolean block_mode) _VTE_GNUC_NONNULL(1); +_VTE_PUBLIC void vte_terminal_select_text(VteTerminal *terminal, long start_col, long start_row, long end_col, long end_row) _VTE_GNUC_NONNULL(1); diff --git a/src/vtegtk.cc b/src/vtegtk.cc index e94d7e3..e074802 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -2133,6 +2133,31 @@ vte_terminal_unselect_all(VteTerminal *terminal) IMPL(terminal)->deselect_all(); } +/** + * vte_terminal_get_selection_block_mode: + * @terminal: a #VteTerminal + * + * Checks whether or not block selection is enabled. + * + * Returns: %TRUE if block selection is enabled, %FALSE if not + */ + +gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal) { + g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE); + return IMPL(terminal)->m_selection_block_mode; +} +/** + * vte_terminal_set_selection_block_mode: + * @terminal: a #VteTerminal + * @block_mode: whether block selection is enabled + * + * Sets whether or not block selection is enabled. + */ +void +vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode) { + g_return_if_fail (VTE_IS_TERMINAL (terminal)); + IMPL(terminal)->m_selection_block_mode = block_mode; +} /** * vte_terminal_select_text: ------------------------------------------------------------------------------- expose-function-for-getting ------------------------------------------------------------------------------- expose function for getting the selected text From: Jelle van der Waa --- src/vte/vteterminal.h | 4 +++- src/vtegtk.cc | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h index 8d37879..1f3095f 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -196,7 +196,9 @@ void vte_terminal_set_selection_block_mode(VteTerminal *terminal, _VTE_PUBLIC void vte_terminal_select_text(VteTerminal *terminal, long start_col, long start_row, long end_col, long end_row) _VTE_GNUC_NONNULL(1); - +_VTE_PUBLIC +char * +vte_terminal_get_selection(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); /* By-word selection */ _VTE_PUBLIC diff --git a/src/vtegtk.cc b/src/vtegtk.cc index e074802..2c19dde 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -2179,6 +2179,13 @@ vte_terminal_select_text(VteTerminal *terminal, IMPL(terminal)->select_text(start_col, start_row, end_col, end_row); } +char * +vte_terminal_get_selection(VteTerminal *terminal) +{ + g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); + return g_strdup (IMPL(terminal)->m_selection_text[VTE_SELECTION_PRIMARY]); +} + /** * vte_terminal_get_cursor_position: * @terminal: a #VteTerminal