[vte] widget: Move some methods to VteTerminalPrivate



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]