[vte] widget: Move some public API to its own file



commit 7dcde662ac7807c1d140b9431f49f7082cae3328
Author: Christian Persch <chpe gnome org>
Date:   Wed Nov 18 21:15:43 2015 +0100

    widget: Move some public API to its own file

 src/vte.cc         |   57 +++++++++++++++------------------------------------
 src/vtegtk.cc      |   28 +++++++++++++++++++++++++
 src/vteinternal.hh |    5 ++++
 3 files changed, 50 insertions(+), 40 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index 5fcb97a..2a28475 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -8341,25 +8341,30 @@ vte_terminal_apply_metrics(VteTerminal *terminal,
        _vte_invalidate_all(terminal);
 }
 
-
 static void
 vte_terminal_ensure_font (VteTerminal *terminal)
 {
-       if (terminal->pvt->draw != NULL) {
+        terminal->pvt->ensure_font();
+}
+
+void
+VteTerminalPrivate::ensure_font()
+{
+       if (m_draw != NULL) {
                /* Load default fonts, if no fonts have been loaded. */
-               if (!terminal->pvt->has_fonts) {
-                       vte_terminal_set_font(terminal,
-                                              terminal->pvt->unscaled_font_desc);
+               if (!m_has_fonts) {
+                       vte_terminal_set_font(m_terminal,
+                                              m_unscaled_font_desc);
                }
-               if (terminal->pvt->fontdirty) {
+               if (m_fontdirty) {
                        gint width, height, ascent;
-                       terminal->pvt->fontdirty = FALSE;
-                       _vte_draw_set_text_font (terminal->pvt->draw,
-                                                 &terminal->widget,
-                                       terminal->pvt->fontdesc);
-                       _vte_draw_get_text_metrics (terminal->pvt->draw,
+                       m_fontdirty = FALSE;
+                       _vte_draw_set_text_font (m_draw,
+                                                 m_widget,
+                                       m_fontdesc);
+                       _vte_draw_get_text_metrics (m_draw,
                                                    &width, &height, &ascent);
-                       vte_terminal_apply_metrics(terminal,
+                       vte_terminal_apply_metrics(m_terminal,
                                                   width, height, ascent, height - ascent);
                }
        }
@@ -11643,34 +11648,6 @@ vte_terminal_reset(VteTerminal *terminal,
         g_object_thaw_notify(G_OBJECT(terminal));
 }
 
-/**
- * vte_terminal_get_char_width:
- * @terminal: a #VteTerminal
- *
- * Returns: the width of a character cell
- */
-glong
-vte_terminal_get_char_width(VteTerminal *terminal)
-{
-       g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
-       vte_terminal_ensure_font (terminal);
-       return terminal->pvt->char_width;
-}
-
-/**
- * vte_terminal_get_char_height:
- * @terminal: a #VteTerminal
- *
- * Returns: the height of a character cell
- */
-glong
-vte_terminal_get_char_height(VteTerminal *terminal)
-{
-       g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
-       vte_terminal_ensure_font (terminal);
-       return terminal->pvt->char_height;
-}
-
 bool
 VteTerminalPrivate::set_pty(VtePty *new_pty)
 {
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 20e7cbc..edc2332 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -1654,6 +1654,34 @@ vte_terminal_search_get_wrap_around (VteTerminal *terminal)
 }
 
 /**
+ * vte_terminal_get_char_height:
+ * @terminal: a #VteTerminal
+ *
+ * Returns: the height of a character cell
+ */
+glong
+vte_terminal_get_char_height(VteTerminal *terminal)
+{
+       g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+        g_return_val_if_fail(gtk_widget_get_realized(&terminal->widget), -1);
+       return terminal->pvt->get_char_height();
+}
+
+/**
+ * vte_terminal_get_char_width:
+ * @terminal: a #VteTerminal
+ *
+ * Returns: the width of a character cell
+ */
+glong
+vte_terminal_get_char_width(VteTerminal *terminal)
+{
+       g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+        g_return_val_if_fail(gtk_widget_get_realized(&terminal->widget), -1);
+       return terminal->pvt->get_char_width();
+}
+
+/**
  * vte_terminal_get_column_count:
  * @terminal: a #VteTerminal
  *
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index 2d2e1cb..00499cc 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -483,6 +483,8 @@ public:
                                          int *natural_height);
         void widget_size_allocate(GtkAllocation *allocation);
 
+        void ensure_font();
+
         void read_modifiers(GdkEvent *event);
         guint translate_ctrlkey(GdkEventKey *event);
 
@@ -603,6 +605,9 @@ public:
                                           gunichar **arrayp,
                                           gsize *lenp);
 
+        long get_char_height() { ensure_font(); return char_height; }
+        long get_char_width()  { ensure_font(); return char_width;  }
+
         bool set_input_enabled(bool enabled);
         bool set_pty(VtePty *pty);
         bool set_word_char_exceptions(char const* exceptions);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]