[vte] widget: Move some methods to VteTerminalPrivate
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] widget: Move some methods to VteTerminalPrivate
- Date: Wed, 18 Nov 2015 20:19:26 +0000 (UTC)
commit 262c81e3ff05369a511ab7a7065e5570f560d299
Author: Christian Persch <chpe gnome org>
Date: Wed Nov 18 21:15:42 2015 +0100
widget: Move some methods to VteTerminalPrivate
src/vte.cc | 217 ++++++++++++++++++++++++++++------------------------
src/vteinternal.hh | 45 ++++++++++-
2 files changed, 159 insertions(+), 103 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index b1dac04..228e809 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -9092,170 +9092,185 @@ static void
vte_terminal_init(VteTerminal *terminal)
{
void *place;
- VteTerminalPrivate *pvt;
GtkStyleContext *context;
- int i;
- GdkDisplay *display;
_vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_init()\n");
- /* Initialize private data. */
+ context = gtk_widget_get_style_context(&terminal->widget);
+ gtk_style_context_add_provider (context,
+ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider,
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
+ /* Initialize private data. NOTE: place is zeroed */
place = G_TYPE_INSTANCE_GET_PRIVATE (terminal, VTE_TYPE_TERMINAL, VteTerminalPrivate);
- pvt = terminal->pvt = new (place) VteTerminalPrivate(terminal);
+ terminal->pvt = new (place) VteTerminalPrivate(terminal);
+}
+
+VteTerminalPrivate::VteTerminalPrivate(VteTerminal *t) :
+ m_terminal(t),
+ m_widget(&t->widget)
+{
+ // FIXMEchpe temporary workaround until all functions have been converted to members
+ m_terminal->pvt = this;
+
+ int i;
+ GdkDisplay *display;
+
+ /* NOTE! We allocated zeroed memory, just fill in non-zero stuff. */
- gtk_widget_set_can_focus(&terminal->widget, TRUE);
+ gtk_widget_set_can_focus(m_widget, TRUE);
- gtk_widget_set_app_paintable (&terminal->widget, TRUE);
+ // FIXMEchpe is this still necessary?
+ gtk_widget_set_app_paintable(m_widget, TRUE);
/* We do our own redrawing. */
- gtk_widget_set_redraw_on_allocate (&terminal->widget, FALSE);
+ // FIXMEchpe still necessary?
+ gtk_widget_set_redraw_on_allocate(m_widget, FALSE);
/* Set an adjustment for the application to use to control scrolling. */
- terminal->pvt->vadjustment = NULL;
- pvt->hadjustment = NULL;
+ m_vadjustment = nullptr;
+ m_hadjustment = nullptr;
+
/* GtkScrollable */
- pvt->hscroll_policy = GTK_SCROLL_NATURAL;
- pvt->vscroll_policy = GTK_SCROLL_NATURAL;
+ m_hscroll_policy = GTK_SCROLL_NATURAL;
+ m_vscroll_policy = GTK_SCROLL_NATURAL;
- vte_terminal_set_hadjustment(terminal, NULL);
- vte_terminal_set_vadjustment(terminal, NULL);
+ vte_terminal_set_hadjustment(m_terminal, NULL);
+ vte_terminal_set_vadjustment(m_terminal, NULL);
/* Set up dummy metrics, value != 0 to avoid division by 0 */
- terminal->pvt->char_width = 1;
- terminal->pvt->char_height = 1;
- terminal->pvt->char_ascent = 1;
- terminal->pvt->char_descent = 1;
- terminal->pvt->line_thickness = 1;
- terminal->pvt->underline_position = 1;
- terminal->pvt->strikethrough_position = 1;
+ m_char_width = 1;
+ m_char_height = 1;
+ m_char_ascent = 1;
+ m_char_descent = 1;
+ m_line_thickness = 1;
+ m_underline_position = 1;
+ m_strikethrough_position = 1;
- /* We allocated zeroed memory, just fill in non-zero stuff. */
+ m_row_count = VTE_ROWS;
+ m_column_count = VTE_COLUMNS;
/* Initialize the screens and histories. */
- _vte_ring_init (pvt->alternate_screen.row_data, terminal->pvt->row_count, FALSE);
- pvt->screen = &terminal->pvt->alternate_screen;
- _vte_ring_init (pvt->normal_screen.row_data, VTE_SCROLLBACK_INIT, TRUE);
- pvt->screen = &terminal->pvt->normal_screen;
+ _vte_ring_init (m_alternate_screen.row_data, m_row_count, FALSE);
+ m_screen = &m_alternate_screen;
+ _vte_ring_init (m_normal_screen.row_data, VTE_SCROLLBACK_INIT, TRUE);
+ m_screen = &m_normal_screen;
- _vte_terminal_set_default_attributes(terminal);
+ _vte_terminal_set_default_attributes(m_terminal);
/* Initialize charset modes. */
- pvt->character_replacements[0] = VTE_CHARACTER_REPLACEMENT_NONE;
- pvt->character_replacements[1] = VTE_CHARACTER_REPLACEMENT_NONE;
- pvt->character_replacement = &pvt->character_replacements[0];
+ m_character_replacements[0] = VTE_CHARACTER_REPLACEMENT_NONE;
+ m_character_replacements[1] = VTE_CHARACTER_REPLACEMENT_NONE;
+ m_character_replacement = &m_character_replacements[0];
/* Set up the desired palette. */
- vte_terminal_set_default_colors(terminal);
+ vte_terminal_set_default_colors(m_terminal);
for (i = 0; i < VTE_PALETTE_SIZE; i++)
- terminal->pvt->palette[i].sources[VTE_COLOR_SOURCE_ESCAPE].is_set = FALSE;
+ m_palette[i].sources[VTE_COLOR_SOURCE_ESCAPE].is_set = FALSE;
/* Set up I/O encodings. */
- pvt->utf8_ambiguous_width = VTE_DEFAULT_UTF8_AMBIGUOUS_WIDTH;
- pvt->iso2022 = _vte_iso2022_state_new(pvt->encoding);
- pvt->incoming = NULL;
- pvt->pending = g_array_new(FALSE, TRUE, sizeof(gunichar));
- pvt->max_input_bytes = VTE_MAX_INPUT_READ;
- pvt->cursor_blink_tag = 0;
- pvt->outgoing = _vte_byte_array_new();
- pvt->outgoing_conv = VTE_INVALID_CONV;
- pvt->conv_buffer = _vte_byte_array_new();
- vte_terminal_set_encoding(terminal, NULL /* UTF-8 */, NULL);
- g_assert_cmpstr(terminal->pvt->encoding, ==, "UTF-8");
+ m_utf8_ambiguous_width = VTE_DEFAULT_UTF8_AMBIGUOUS_WIDTH;
+ m_iso2022 = _vte_iso2022_state_new(m_encoding);
+ m_incoming = nullptr;
+ m_pending = g_array_new(FALSE, TRUE, sizeof(gunichar));
+ m_max_input_bytes = VTE_MAX_INPUT_READ;
+ m_cursor_blink_tag = 0;
+ m_outgoing = _vte_byte_array_new();
+ m_outgoing_conv = VTE_INVALID_CONV;
+ m_conv_buffer = _vte_byte_array_new();
+ vte_terminal_set_encoding(m_terminal, NULL /* UTF-8 */, NULL);
+ g_assert_cmpstr(m_encoding, ==, "UTF-8");
/* Set up the emulation. */
- pvt->keypad_mode = VTE_KEYMODE_NORMAL;
- pvt->cursor_mode = VTE_KEYMODE_NORMAL;
- pvt->autowrap = TRUE;
- pvt->sendrecv_mode = TRUE;
- pvt->dec_saved = g_hash_table_new(NULL, NULL);
- pvt->matcher = _vte_matcher_new();
- pvt->alternate_screen_scroll = TRUE;
+ m_keypad_mode = VTE_KEYMODE_NORMAL;
+ m_cursor_mode = VTE_KEYMODE_NORMAL;
+ m_autowrap = TRUE;
+ m_sendrecv_mode = TRUE;
+ m_dec_saved = g_hash_table_new(NULL, NULL);
+ m_matcher = _vte_matcher_new();
+ m_alternate_screen_scroll = TRUE;
/* Setting the terminal type and size requires the PTY master to
* be set up properly first. */
- pvt->pty = NULL;
- vte_terminal_set_size(terminal, VTE_COLUMNS, VTE_ROWS);
- pvt->pty_input_source = 0;
- pvt->pty_output_source = 0;
- pvt->pty_pid = -1;
+ m_pty = nullptr;
+ vte_terminal_set_size(m_terminal, VTE_COLUMNS, VTE_ROWS);
+ m_pty_input_source = 0;
+ m_pty_output_source = 0;
+ m_pty_pid = -1;
/* Scrolling options. */
- pvt->scroll_on_keystroke = TRUE;
- pvt->alternate_screen_scroll = TRUE;
- pvt->scrollback_lines = -1; /* force update in vte_terminal_set_scrollback_lines */
- vte_terminal_set_scrollback_lines(terminal, VTE_SCROLLBACK_INIT);
+ m_scroll_on_keystroke = TRUE;
+ m_alternate_screen_scroll = TRUE;
+ m_scrollback_lines = -1; /* force update in vte_terminal_set_scrollback_lines */
+ vte_terminal_set_scrollback_lines(m_terminal, VTE_SCROLLBACK_INIT);
/* Selection info. */
- display = gtk_widget_get_display(&terminal->widget);
- pvt->clipboard[VTE_SELECTION_PRIMARY] = gtk_clipboard_get_for_display(display, GDK_SELECTION_PRIMARY);
- pvt->clipboard[VTE_SELECTION_CLIPBOARD] = gtk_clipboard_get_for_display(display,
GDK_SELECTION_CLIPBOARD);
+ display = gtk_widget_get_display(m_widget);
+ m_clipboard[VTE_SELECTION_PRIMARY] = gtk_clipboard_get_for_display(display, GDK_SELECTION_PRIMARY);
+ m_clipboard[VTE_SELECTION_CLIPBOARD] = gtk_clipboard_get_for_display(display,
GDK_SELECTION_CLIPBOARD);
/* Miscellaneous options. */
- vte_terminal_set_backspace_binding(terminal, VTE_ERASE_AUTO);
- vte_terminal_set_delete_binding(terminal, VTE_ERASE_AUTO);
- pvt->meta_sends_escape = TRUE;
- pvt->audible_bell = TRUE;
- pvt->bell_margin = 10;
- pvt->allow_bold = TRUE;
- pvt->deccolm_mode = FALSE;
- pvt->rewrap_on_resize = TRUE;
- vte_terminal_set_default_tabstops(terminal);
-
- pvt->input_enabled = TRUE;
+ vte_terminal_set_backspace_binding(m_terminal, VTE_ERASE_AUTO);
+ vte_terminal_set_delete_binding(m_terminal, VTE_ERASE_AUTO);
+ m_meta_sends_escape = TRUE;
+ m_audible_bell = TRUE;
+ m_bell_margin = 10;
+ m_allow_bold = TRUE;
+ m_deccolm_mode = FALSE;
+ m_rewrap_on_resize = TRUE;
+ vte_terminal_set_default_tabstops(m_terminal);
+
+ m_input_enabled = TRUE;
/* Cursor shape. */
- pvt->cursor_shape = VTE_CURSOR_SHAPE_BLOCK;
- pvt->cursor_aspect_ratio = 0.04;
+ m_cursor_shape = VTE_CURSOR_SHAPE_BLOCK;
+ m_cursor_aspect_ratio = 0.04;
/* Cursor blinking. */
- pvt->cursor_visible = TRUE;
- pvt->cursor_blink_timeout = 500;
- pvt->cursor_blinks = FALSE;
- pvt->cursor_blink_mode = VTE_CURSOR_BLINK_SYSTEM;
+ m_cursor_visible = TRUE;
+ m_cursor_blink_timeout = 500;
+ m_cursor_blinks = FALSE;
+ m_cursor_blink_mode = VTE_CURSOR_BLINK_SYSTEM;
/* DECSCUSR cursor style (shape and blinking possibly overridden
* via escape sequence) */
- pvt->cursor_style = VTE_CURSOR_STYLE_TERMINAL_DEFAULT;
+ m_cursor_style = VTE_CURSOR_STYLE_TERMINAL_DEFAULT;
/* Initialize the saved cursor. */
- _vte_terminal_save_cursor(terminal, &terminal->pvt->normal_screen);
- _vte_terminal_save_cursor(terminal, &terminal->pvt->alternate_screen);
+ _vte_terminal_save_cursor(m_terminal, &m_normal_screen);
+ _vte_terminal_save_cursor(m_terminal, &m_alternate_screen);
/* Matching data. */
- pvt->match_regex_mode = VTE_REGEX_UNDECIDED;
- pvt->match_regexes = g_array_new(FALSE, TRUE,
+ m_match_regex_mode = VTE_REGEX_UNDECIDED;
+ m_match_regexes = g_array_new(FALSE, TRUE,
sizeof(struct vte_match_regex));
- pvt->match_tag = -1;
- pvt->match_hilite_clear(); // FIXMEchpe unnecessary
+ m_match_tag = -1;
+ match_hilite_clear(); // FIXMEchpe unnecessary
/* Search data */
- pvt->search_regex.mode = VTE_REGEX_UNDECIDED;
+ m_search_regex.mode = VTE_REGEX_UNDECIDED;
/* Rendering data */
- pvt->draw = _vte_draw_new();
+ m_draw = _vte_draw_new();
/* Set up background information. */
- pvt->background_alpha = 1.;
+ m_background_alpha = 1.;
/* Word chars */
- vte_terminal_set_word_char_exceptions(terminal, WORD_CHAR_EXCEPTIONS_DEFAULT);
+ vte_terminal_set_word_char_exceptions(m_terminal, WORD_CHAR_EXCEPTIONS_DEFAULT);
/* Selection */
- pvt->selection_block_mode = FALSE;
- pvt->unscaled_font_desc = pvt->fontdesc = NULL;
- pvt->font_scale = 1.;
- pvt->has_fonts = FALSE;
+ m_selection_block_mode = FALSE;
+ m_unscaled_font_desc = nullptr;
+ m_fontdesc = nullptr;
+ m_font_scale = 1.;
+ m_has_fonts = FALSE;
/* Not all backends generate GdkVisibilityNotify, so mark the
* window as unobscured initially. */
- pvt->visibility_state = GDK_VISIBILITY_UNOBSCURED;
-
- pvt->padding = default_padding;
+ m_visibility_state = GDK_VISIBILITY_UNOBSCURED;
- context = gtk_widget_get_style_context (&terminal->widget);
- gtk_style_context_add_provider (context,
- VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider,
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ m_padding = default_padding;
}
/* Tell GTK+ how much space we need. */
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index bda6a1f..50f70bd 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -187,7 +187,7 @@ struct vte_scrolling_region {
/* Terminal private data. */
class VteTerminalPrivate {
public:
- VteTerminalPrivate(VteTerminal *t) : m_terminal(t), m_widget(&t->widget) { }
+ VteTerminalPrivate(VteTerminal *t);
~VteTerminalPrivate() { }
public:
@@ -647,4 +647,45 @@ public:
#define m_text_deleted_flag text_deleted_flag
#define m_im_preedit_active im_preedit_active
#define m_im_preedit im_preedit
-
+#define m_hadjustment hadjustment
+#define m_hscroll_policy hscroll_policy
+#define m_vscroll_policy vscroll_policy
+#define m_char_ascent char_ascent
+#define m_char_descent char_descent
+#define m_line_thickness line_thickness
+#define m_underline_position underline_position
+#define m_strikethrough_position strikethrough_position
+#define m_character_replacements character_replacements
+#define m_palette palette
+#define m_utf8_ambiguous_width utf8_ambiguous_width
+#define m_iso2022 iso2022
+#define m_incoming incoming
+#define m_pending pending
+#define m_max_input_bytes max_input_bytes
+#define m_outgoing outgoing
+#define m_outgoing_conv outgoing_conv
+#define m_conv_buffer conv_buffer
+#define m_autowrap autowrap
+#define m_sendrecv_mode sendrecv_mode
+#define m_dec_saved dec_saved
+#define m_matcher matcher
+#define m_pty_input_source pty_input_source
+#define m_pty_output_source pty_output_source
+#define m_pty_pid pty_pid
+#define m_scrollback_lines scrollback_lines
+#define m_clipboard clipboard
+#define m_meta_sends_escape meta_sends_escape
+#define m_bell_margin bell_margin
+#define m_allow_bold allow_bold
+#define m_deccolm_mode deccolm_mode
+#define m_rewrap_on_resize rewrap_on_resize
+#define m_cursor_shape cursor_shape
+#define m_search_regex search_regex
+#define m_background_alpha background_alpha
+#define m_font_scale font_scale
+#define m_has_fonts has_fonts
+#define m_encoding encoding
+#define m_cursor_blink_mode cursor_blink_mode
+#define m_cursor_style cursor_style
+#define m_character_replacement character_replacement
+#define m_fontdesc fontdesc
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]