[gtksourceview/wip/new-space-drawing-api: 4/6] SpaceDrawer: make the class public



commit 8b20bf4c543019064164433dc37952815ba59010
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Fri Sep 23 15:33:18 2016 +0200

    SpaceDrawer: make the class public
    
    It'll be handy to have a separate class for whitespace drawing, for
    example to add vfuncs to be able to override how certain kinds of
    whitespace are drawn.
    
    This will also make the API of the GtkSourceView class smaller.

 docs/reference/Makefile.am                   |    1 -
 gtksourceview/Makefile.am                    |    5 +-
 gtksourceview/gtksourcespacedrawer-private.h |   54 ++++++++++++++++++++++++++
 gtksourceview/gtksourcespacedrawer.c         |   15 ++++---
 gtksourceview/gtksourcespacedrawer.h         |   31 +++------------
 gtksourceview/gtksourcetypes-private.h       |    1 -
 gtksourceview/gtksourcetypes.h               |    1 +
 gtksourceview/gtksourceview.c                |    2 +-
 8 files changed, 73 insertions(+), 37 deletions(-)
---
diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am
index 7da1e9e..f322df4 100644
--- a/docs/reference/Makefile.am
+++ b/docs/reference/Makefile.am
@@ -55,7 +55,6 @@ IGNORE_HFILES =                                       \
        gtksourcemarkssequence.h                \
        gtksourcepixbufhelper.h                 \
        gtksourceregex.h                        \
-       gtksourcespacedrawer.h                  \
        gtksourcestyle-private.h                \
        gtksourcetypes-private.h                \
        gtksourceundomanagerdefault.h           \
diff --git a/gtksourceview/Makefile.am b/gtksourceview/Makefile.am
index b86eccf..ecff4f6 100644
--- a/gtksourceview/Makefile.am
+++ b/gtksourceview/Makefile.am
@@ -45,6 +45,7 @@ libgtksourceview_public_headers =             \
        gtksourceregion.h                       \
        gtksourcesearchcontext.h                \
        gtksourcesearchsettings.h               \
+       gtksourcespacedrawer.h                  \
        gtksourcestyle.h                        \
        gtksourcestylescheme.h                  \
        gtksourcestyleschemechooser.h           \
@@ -83,6 +84,7 @@ libgtksourceview_public_c_files =             \
        gtksourceregion.c                       \
        gtksourcesearchcontext.c                \
        gtksourcesearchsettings.c               \
+       gtksourcespacedrawer.c                  \
        gtksourcestyle.c                        \
        gtksourcestylescheme.c                  \
        gtksourcestyleschemechooser.c           \
@@ -116,7 +118,7 @@ libgtksourceview_private_headers =          \
        gtksourcemarkssequence.h                \
        gtksourcepixbufhelper.h                 \
        gtksourceregex.h                        \
-       gtksourcespacedrawer.h                  \
+       gtksourcespacedrawer-private.h          \
        gtksourcestyle-private.h                \
        gtksourcetypes-private.h                \
        gtksourceundomanagerdefault.h           \
@@ -139,7 +141,6 @@ libgtksourceview_private_c_files =  \
        gtksourcemarkssequence.c        \
        gtksourcepixbufhelper.c         \
        gtksourceregex.c                \
-       gtksourcespacedrawer.c          \
        gtksourceundomanagerdefault.c   \
        gtksourceview-i18n.c            \
        gtksourceview-init.c            \
diff --git a/gtksourceview/gtksourcespacedrawer-private.h b/gtksourceview/gtksourcespacedrawer-private.h
new file mode 100644
index 0000000..00bda95
--- /dev/null
+++ b/gtksourceview/gtksourcespacedrawer-private.h
@@ -0,0 +1,54 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; coding: utf-8 -*- */
+/* gtksourcespacedrawer-private.h
+ * This file is part of GtkSourceView
+ *
+ * Copyright (C) 2016 - Sébastien Wilmet <swilmet gnome org>
+ *
+ * GtkSourceView is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * GtkSourceView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef GTK_SOURCE_SPACE_DRAWER_PRIVATE_H
+#define GTK_SOURCE_SPACE_DRAWER_PRIVATE_H
+
+#include <gtk/gtk.h>
+#include "gtksourcetypes.h"
+#include "gtksourcetypes-private.h"
+#include "gtksourceview.h"
+
+G_BEGIN_DECLS
+
+GTK_SOURCE_INTERNAL
+GtkSourceSpaceDrawer * _gtk_source_space_drawer_new                    (void);
+
+GTK_SOURCE_INTERNAL
+GtkSourceDrawSpacesFlags
+                       _gtk_source_space_drawer_get_flags              (GtkSourceSpaceDrawer *drawer);
+
+GTK_SOURCE_INTERNAL
+gboolean               _gtk_source_space_drawer_set_flags              (GtkSourceSpaceDrawer     *drawer,
+                                                                        GtkSourceDrawSpacesFlags  flags);
+
+GTK_SOURCE_INTERNAL
+void                   _gtk_source_space_drawer_update_color           (GtkSourceSpaceDrawer *drawer,
+                                                                        GtkSourceView        *view);
+
+GTK_SOURCE_INTERNAL
+void                   _gtk_source_space_drawer_draw                   (GtkSourceSpaceDrawer *drawer,
+                                                                        GtkSourceView        *view,
+                                                                        cairo_t              *cr);
+
+G_END_DECLS
+
+#endif /* GTK_SOURCE_SPACE_DRAWER_PRIVATE_H */
diff --git a/gtksourceview/gtksourcespacedrawer.c b/gtksourceview/gtksourcespacedrawer.c
index 94f121f..0faa404 100644
--- a/gtksourceview/gtksourcespacedrawer.c
+++ b/gtksourceview/gtksourcespacedrawer.c
@@ -25,6 +25,7 @@
  */
 
 #include "gtksourcespacedrawer.h"
+#include "gtksourcespacedrawer-private.h"
 #include "gtksourcebuffer.h"
 #include "gtksourceiter.h"
 #include "gtksourcestylescheme.h"
@@ -41,10 +42,10 @@ struct _GtkSourceSpaceDrawerPrivate
        GdkRGBA *color;
 };
 
-G_DEFINE_TYPE_WITH_PRIVATE (GtkSourceSpaceDrawer, _gtk_source_space_drawer, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_PRIVATE (GtkSourceSpaceDrawer, gtk_source_space_drawer, G_TYPE_OBJECT)
 
 static void
-_gtk_source_space_drawer_finalize (GObject *object)
+gtk_source_space_drawer_finalize (GObject *object)
 {
        GtkSourceSpaceDrawer *drawer = GTK_SOURCE_SPACE_DRAWER (object);
 
@@ -53,21 +54,21 @@ _gtk_source_space_drawer_finalize (GObject *object)
                gdk_rgba_free (drawer->priv->color);
        }
 
-       G_OBJECT_CLASS (_gtk_source_space_drawer_parent_class)->finalize (object);
+       G_OBJECT_CLASS (gtk_source_space_drawer_parent_class)->finalize (object);
 }
 
 static void
-_gtk_source_space_drawer_class_init (GtkSourceSpaceDrawerClass *klass)
+gtk_source_space_drawer_class_init (GtkSourceSpaceDrawerClass *klass)
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-       object_class->finalize = _gtk_source_space_drawer_finalize;
+       object_class->finalize = gtk_source_space_drawer_finalize;
 }
 
 static void
-_gtk_source_space_drawer_init (GtkSourceSpaceDrawer *drawer)
+gtk_source_space_drawer_init (GtkSourceSpaceDrawer *drawer)
 {
-       drawer->priv = _gtk_source_space_drawer_get_instance_private (drawer);
+       drawer->priv = gtk_source_space_drawer_get_instance_private (drawer);
 }
 
 GtkSourceSpaceDrawer *
diff --git a/gtksourceview/gtksourcespacedrawer.h b/gtksourceview/gtksourcespacedrawer.h
index cf4d006..63ca162 100644
--- a/gtksourceview/gtksourcespacedrawer.h
+++ b/gtksourceview/gtksourcespacedrawer.h
@@ -23,12 +23,11 @@
 #define GTK_SOURCE_SPACE_DRAWER_H
 
 #include <gtk/gtk.h>
-#include "gtksourcetypes-private.h"
-#include "gtksourceview.h"
+#include <gtksourceview/gtksourcetypes.h>
 
 G_BEGIN_DECLS
 
-#define GTK_SOURCE_TYPE_SPACE_DRAWER             (_gtk_source_space_drawer_get_type ())
+#define GTK_SOURCE_TYPE_SPACE_DRAWER             (gtk_source_space_drawer_get_type ())
 #define GTK_SOURCE_SPACE_DRAWER(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
GTK_SOURCE_TYPE_SPACE_DRAWER, GtkSourceSpaceDrawer))
 #define GTK_SOURCE_SPACE_DRAWER_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), 
GTK_SOURCE_TYPE_SPACE_DRAWER, GtkSourceSpaceDrawerClass))
 #define GTK_SOURCE_IS_SPACE_DRAWER(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
GTK_SOURCE_TYPE_SPACE_DRAWER))
@@ -48,30 +47,12 @@ struct _GtkSourceSpaceDrawer
 struct _GtkSourceSpaceDrawerClass
 {
        GObjectClass parent_class;
-};
-
-G_GNUC_INTERNAL
-GType                  _gtk_source_space_drawer_get_type               (void) G_GNUC_CONST;
-
-G_GNUC_INTERNAL
-GtkSourceSpaceDrawer * _gtk_source_space_drawer_new                    (void);
 
-G_GNUC_INTERNAL
-GtkSourceDrawSpacesFlags
-                       _gtk_source_space_drawer_get_flags              (GtkSourceSpaceDrawer *drawer);
-
-G_GNUC_INTERNAL
-gboolean               _gtk_source_space_drawer_set_flags              (GtkSourceSpaceDrawer     *drawer,
-                                                                        GtkSourceDrawSpacesFlags  flags);
-
-G_GNUC_INTERNAL
-void                   _gtk_source_space_drawer_update_color           (GtkSourceSpaceDrawer *drawer,
-                                                                        GtkSourceView        *view);
+       gpointer padding[20];
+};
 
-G_GNUC_INTERNAL
-void                   _gtk_source_space_drawer_draw                   (GtkSourceSpaceDrawer *drawer,
-                                                                        GtkSourceView        *view,
-                                                                        cairo_t              *cr);
+GTK_SOURCE_AVAILABLE_IN_3_24
+GType                  gtk_source_space_drawer_get_type                (void) G_GNUC_CONST;
 
 G_END_DECLS
 
diff --git a/gtksourceview/gtksourcetypes-private.h b/gtksourceview/gtksourcetypes-private.h
index f613625..0669f2f 100644
--- a/gtksourceview/gtksourcetypes-private.h
+++ b/gtksourceview/gtksourcetypes-private.h
@@ -38,7 +38,6 @@ typedef struct _GtkSourceGutterRendererMarks  GtkSourceGutterRendererMarks;
 typedef struct _GtkSourceMarksSequence         GtkSourceMarksSequence;
 typedef struct _GtkSourcePixbufHelper          GtkSourcePixbufHelper;
 typedef struct _GtkSourceRegex                 GtkSourceRegex;
-typedef struct _GtkSourceSpaceDrawer           GtkSourceSpaceDrawer;
 typedef struct _GtkSourceUndoManagerDefault    GtkSourceUndoManagerDefault;
 
 #ifdef _MSC_VER
diff --git a/gtksourceview/gtksourcetypes.h b/gtksourceview/gtksourcetypes.h
index 1450306..a41fc4d 100644
--- a/gtksourceview/gtksourcetypes.h
+++ b/gtksourceview/gtksourcetypes.h
@@ -57,6 +57,7 @@ typedef struct _GtkSourceMark                 GtkSourceMark;
 typedef struct _GtkSourcePrintCompositor       GtkSourcePrintCompositor;
 typedef struct _GtkSourceSearchContext         GtkSourceSearchContext;
 typedef struct _GtkSourceSearchSettings                GtkSourceSearchSettings;
+typedef struct _GtkSourceSpaceDrawer           GtkSourceSpaceDrawer;
 typedef struct _GtkSourceStyle                 GtkSourceStyle;
 typedef struct _GtkSourceStyleScheme           GtkSourceStyleScheme;
 typedef struct _GtkSourceStyleSchemeManager    GtkSourceStyleSchemeManager;
diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c
index 4a0200f..45840c9 100644
--- a/gtksourceview/gtksourceview.c
+++ b/gtksourceview/gtksourceview.c
@@ -50,7 +50,7 @@
 #include "gtksourcegutterrenderermarks.h"
 #include "gtksourceiter.h"
 #include "gtksourcesearchcontext.h"
-#include "gtksourcespacedrawer.h"
+#include "gtksourcespacedrawer-private.h"
 
 /**
  * SECTION:view


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