[gnome-initial-setup] Move gis_gtk_text_buffer_insert_pango_markup into eula/
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-initial-setup] Move gis_gtk_text_buffer_insert_pango_markup into eula/
- Date: Wed, 31 Oct 2012 23:56:30 +0000 (UTC)
commit f1a21d24b44edbddf0050a464f8a3f7ea23cf480
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Wed Oct 31 14:34:18 2012 -0400
Move gis_gtk_text_buffer_insert_pango_markup into eula/
This frees up gis-utils for page implementation things.
gnome-initial-setup/gis-utils.c | 118 ------------------
gnome-initial-setup/gis-utils.h | 4 -
gnome-initial-setup/pages/eulas/Makefile.am | 8 +-
gnome-initial-setup/pages/eulas/gis-eula-pages.c | 25 +----
gnome-initial-setup/pages/eulas/utils.c | 142 ++++++++++++++++++++++
gnome-initial-setup/pages/eulas/utils.h | 21 +++
6 files changed, 171 insertions(+), 147 deletions(-)
---
diff --git a/gnome-initial-setup/gis-utils.c b/gnome-initial-setup/gis-utils.c
index ad30f2b..09cd5b8 100644
--- a/gnome-initial-setup/gis-utils.c
+++ b/gnome-initial-setup/gis-utils.c
@@ -26,121 +26,3 @@ gis_builder (gchar *resource)
return builder;
}
-
-
-/* remove when this is landed in GTK+ itself */
-
-#include <gtk/gtk.h>
-#include <pango/pango.h>
-
-static GtkTextTag *
-gis_gtk_text_buffer_get_text_tag_from_pango (PangoAttrIterator *paiter)
-{
- PangoAttribute *attr;
- GtkTextTag *tag = gtk_text_tag_new (NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_LANGUAGE)))
- g_object_set (tag, "language", pango_language_to_string ( ( (PangoAttrLanguage*)attr)->value), NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_FAMILY)))
- g_object_set (tag, "family", ( (PangoAttrString*)attr)->value, NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_STYLE)))
- g_object_set (tag, "style", ( (PangoAttrInt*)attr)->value, NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_WEIGHT)))
- g_object_set (tag, "weight", ( (PangoAttrInt*)attr)->value, NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_VARIANT)))
- g_object_set (tag, "variant", ( (PangoAttrInt*)attr)->value, NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_STRETCH)))
- g_object_set (tag, "stretch", ( (PangoAttrInt*)attr)->value, NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_SIZE)))
- g_object_set (tag, "size", ( (PangoAttrInt*)attr)->value, NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_FONT_DESC)))
- g_object_set (tag, "font-desc", ( (PangoAttrFontDesc*)attr)->desc, NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_FOREGROUND))) {
- GdkColor col = { 0,
- ( (PangoAttrColor*)attr)->color.red,
- ( (PangoAttrColor*)attr)->color.green,
- ( (PangoAttrColor*)attr)->color.blue
- };
-
- g_object_set (tag, "foreground-gdk", &col, NULL);
- }
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_BACKGROUND))) {
- GdkColor col = { 0,
- ( (PangoAttrColor*)attr)->color.red,
- ( (PangoAttrColor*)attr)->color.green,
- ( (PangoAttrColor*)attr)->color.blue
- };
-
- g_object_set (tag, "background-gdk", &col, NULL);
- }
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_UNDERLINE)))
- g_object_set (tag, "underline", ( (PangoAttrInt*)attr)->value, NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_STRIKETHROUGH)))
- g_object_set (tag, "strikethrough", (gboolean) ( ( (PangoAttrInt*)attr)->value != 0), NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_RISE)))
- g_object_set (tag, "rise", ( (PangoAttrInt*)attr)->value, NULL);
-
- if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_SCALE)))
- g_object_set (tag, "scale", ( (PangoAttrFloat*)attr)->value, NULL);
-
- return tag;
-}
-
-void
-gis_gtk_text_buffer_insert_pango_text (GtkTextBuffer *buffer,
- GtkTextIter *iter,
- PangoAttrList *attrlist,
- gchar *text)
-{
- GtkTextMark *mark;
- PangoAttrIterator *paiter;
-
- g_return_if_fail (GTK_IS_TEXT_BUFFER (buffer));
-
- /* trivial, no markup */
- if (attrlist == NULL) {
- gtk_text_buffer_insert (buffer, iter, text, -1);
- return;
- }
-
- /* create mark with right gravity */
- mark = gtk_text_buffer_create_mark (buffer, NULL, iter, FALSE);
- paiter = pango_attr_list_get_iterator (attrlist);
-
- do {
- GtkTextTag *tag;
- GtkTextTag *tag_para;
- gint start, end;
-
- pango_attr_iterator_range (paiter, &start, &end);
-
- if (end == G_MAXINT) /* last chunk */
- end = start-1; /* resulting in -1 to be passed to _insert */
-
- tag = gis_gtk_text_buffer_get_text_tag_from_pango (paiter);
-
- gtk_text_tag_table_add (gtk_text_buffer_get_tag_table (buffer), tag);
-
- tag_para = gtk_text_tag_table_lookup (gtk_text_buffer_get_tag_table (buffer), "para");
- gtk_text_buffer_insert_with_tags (buffer, iter, text+start, end - start, tag, tag_para, NULL);
-
- /* mark had right gravity, so it should be
- * at the end of the inserted text now */
- gtk_text_buffer_get_iter_at_mark (buffer, iter, mark);
- } while (pango_attr_iterator_next (paiter));
-
- gtk_text_buffer_delete_mark (buffer, mark);
- pango_attr_iterator_destroy (paiter);
-}
diff --git a/gnome-initial-setup/gis-utils.h b/gnome-initial-setup/gis-utils.h
index 5e7a948..e35d9c8 100644
--- a/gnome-initial-setup/gis-utils.h
+++ b/gnome-initial-setup/gis-utils.h
@@ -10,10 +10,6 @@
G_BEGIN_DECLS
GtkBuilder * gis_builder (gchar *resource);
-void gis_gtk_text_buffer_insert_pango_text (GtkTextBuffer *buffer,
- GtkTextIter *iter,
- PangoAttrList *attrlist,
- gchar *text);
G_END_DECLS
diff --git a/gnome-initial-setup/pages/eulas/Makefile.am b/gnome-initial-setup/pages/eulas/Makefile.am
index 76b79b1..34199f3 100644
--- a/gnome-initial-setup/pages/eulas/Makefile.am
+++ b/gnome-initial-setup/pages/eulas/Makefile.am
@@ -1,4 +1,6 @@
+NULL =
+
noinst_LTLIBRARIES = libgiseulas.la
pkgdatadir = $(datadir)/gnome-initial-setup
@@ -6,8 +8,10 @@ pkgdatadir = $(datadir)/gnome-initial-setup
AM_CPPFLAGS = \
-DPKGDATADIR="\"$(pkgdatadir)\""
-libgiseulas_la_SOURCES = \
- gis-eula-pages.c gis-eula-pages.h
+libgiseulas_la_SOURCES = \
+ gis-eula-pages.c gis-eula-pages.h \
+ utils.c utils.h \
+ $(NULL)
libgiseulas_la_CFLAGS = $(INITIAL_SETUP_CFLAGS) -I "$(srcdir)/../.."
libgiseulas_la_LIBADD = $(INITIAL_SETUP_LIBS)
diff --git a/gnome-initial-setup/pages/eulas/gis-eula-pages.c b/gnome-initial-setup/pages/eulas/gis-eula-pages.c
index d553156..e72c83f 100644
--- a/gnome-initial-setup/pages/eulas/gis-eula-pages.c
+++ b/gnome-initial-setup/pages/eulas/gis-eula-pages.c
@@ -5,6 +5,7 @@
#include "config.h"
#include "gis-eula-pages.h"
#include "gis-utils.h"
+#include "utils.h"
#include <glib/gi18n.h>
#include <gio/gio.h>
@@ -25,28 +26,6 @@ struct _EulaPage {
gboolean require_scroll;
};
-/* heavily lifted from g_output_stream_splice */
-static void
-splice_buffer (GInputStream *stream,
- GtkTextBuffer *buffer,
- GError **error)
-{
- char contents[8192];
- gssize n_read;
- GtkTextIter iter;
-
- while (TRUE) {
- n_read = g_input_stream_read (stream, contents, sizeof (contents), NULL, error);
-
- /* error or eof */
- if (n_read <= 0)
- break;
-
- gtk_text_buffer_get_end_iter (buffer, &iter);
- gtk_text_buffer_insert (buffer, &iter, contents, n_read);
- }
-}
-
static GtkTextBuffer *
build_eula_text_buffer_pango_markup (GFile *file,
GError **error_out)
@@ -70,7 +49,7 @@ build_eula_text_buffer_pango_markup (GFile *file,
buffer = gtk_text_buffer_new (NULL);
gtk_text_buffer_get_end_iter (buffer, &iter);
- gis_gtk_text_buffer_insert_pango_text (buffer, &iter, attrlist, text);
+ text_buffer_insert_pango_text (buffer, &iter, attrlist, text);
return buffer;
diff --git a/gnome-initial-setup/pages/eulas/utils.c b/gnome-initial-setup/pages/eulas/utils.c
new file mode 100644
index 0000000..4987431
--- /dev/null
+++ b/gnome-initial-setup/pages/eulas/utils.c
@@ -0,0 +1,142 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
+#include "config.h"
+#include "utils.h"
+
+#include <gtk/gtk.h>
+#include <pango/pango.h>
+
+/* lifted from g_output_stream_splice */
+void
+splice_buffer (GInputStream *stream,
+ GtkTextBuffer *buffer,
+ GError **error)
+{
+ char contents[8192];
+ gssize n_read;
+ GtkTextIter iter;
+
+ while (TRUE) {
+ n_read = g_input_stream_read (stream, contents, sizeof (contents), NULL, error);
+
+ /* error or eof */
+ if (n_read <= 0)
+ break;
+
+ gtk_text_buffer_get_end_iter (buffer, &iter);
+ gtk_text_buffer_insert (buffer, &iter, contents, n_read);
+ }
+}
+
+/* remove when this is landed in GTK+ itself */
+static GtkTextTag *
+text_buffer_get_text_tag_from_pango (PangoAttrIterator *paiter)
+{
+ PangoAttribute *attr;
+ GtkTextTag *tag = gtk_text_tag_new (NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_LANGUAGE)))
+ g_object_set (tag, "language", pango_language_to_string ( ( (PangoAttrLanguage*)attr)->value), NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_FAMILY)))
+ g_object_set (tag, "family", ( (PangoAttrString*)attr)->value, NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_STYLE)))
+ g_object_set (tag, "style", ( (PangoAttrInt*)attr)->value, NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_WEIGHT)))
+ g_object_set (tag, "weight", ( (PangoAttrInt*)attr)->value, NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_VARIANT)))
+ g_object_set (tag, "variant", ( (PangoAttrInt*)attr)->value, NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_STRETCH)))
+ g_object_set (tag, "stretch", ( (PangoAttrInt*)attr)->value, NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_SIZE)))
+ g_object_set (tag, "size", ( (PangoAttrInt*)attr)->value, NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_FONT_DESC)))
+ g_object_set (tag, "font-desc", ( (PangoAttrFontDesc*)attr)->desc, NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_FOREGROUND))) {
+ GdkColor col = { 0,
+ ( (PangoAttrColor*)attr)->color.red,
+ ( (PangoAttrColor*)attr)->color.green,
+ ( (PangoAttrColor*)attr)->color.blue
+ };
+
+ g_object_set (tag, "foreground-gdk", &col, NULL);
+ }
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_BACKGROUND))) {
+ GdkColor col = { 0,
+ ( (PangoAttrColor*)attr)->color.red,
+ ( (PangoAttrColor*)attr)->color.green,
+ ( (PangoAttrColor*)attr)->color.blue
+ };
+
+ g_object_set (tag, "background-gdk", &col, NULL);
+ }
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_UNDERLINE)))
+ g_object_set (tag, "underline", ( (PangoAttrInt*)attr)->value, NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_STRIKETHROUGH)))
+ g_object_set (tag, "strikethrough", (gboolean) ( ( (PangoAttrInt*)attr)->value != 0), NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_RISE)))
+ g_object_set (tag, "rise", ( (PangoAttrInt*)attr)->value, NULL);
+
+ if ( (attr = pango_attr_iterator_get (paiter, PANGO_ATTR_SCALE)))
+ g_object_set (tag, "scale", ( (PangoAttrFloat*)attr)->value, NULL);
+
+ return tag;
+}
+
+void
+text_buffer_insert_pango_text (GtkTextBuffer *buffer,
+ GtkTextIter *iter,
+ PangoAttrList *attrlist,
+ gchar *text)
+{
+ GtkTextMark *mark;
+ PangoAttrIterator *paiter;
+
+ g_return_if_fail (GTK_IS_TEXT_BUFFER (buffer));
+
+ /* trivial, no markup */
+ if (attrlist == NULL) {
+ gtk_text_buffer_insert (buffer, iter, text, -1);
+ return;
+ }
+
+ /* create mark with right gravity */
+ mark = gtk_text_buffer_create_mark (buffer, NULL, iter, FALSE);
+ paiter = pango_attr_list_get_iterator (attrlist);
+
+ do {
+ GtkTextTag *tag;
+ GtkTextTag *tag_para;
+ gint start, end;
+
+ pango_attr_iterator_range (paiter, &start, &end);
+
+ if (end == G_MAXINT) /* last chunk */
+ end = start-1; /* resulting in -1 to be passed to _insert */
+
+ tag = text_buffer_get_text_tag_from_pango (paiter);
+
+ gtk_text_tag_table_add (gtk_text_buffer_get_tag_table (buffer), tag);
+
+ tag_para = gtk_text_tag_table_lookup (gtk_text_buffer_get_tag_table (buffer), "para");
+ gtk_text_buffer_insert_with_tags (buffer, iter, text+start, end - start, tag, tag_para, NULL);
+
+ /* mark had right gravity, so it should be
+ * at the end of the inserted text now */
+ gtk_text_buffer_get_iter_at_mark (buffer, iter, mark);
+ } while (pango_attr_iterator_next (paiter));
+
+ gtk_text_buffer_delete_mark (buffer, mark);
+ pango_attr_iterator_destroy (paiter);
+}
diff --git a/gnome-initial-setup/pages/eulas/utils.h b/gnome-initial-setup/pages/eulas/utils.h
new file mode 100644
index 0000000..4afd080
--- /dev/null
+++ b/gnome-initial-setup/pages/eulas/utils.h
@@ -0,0 +1,21 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
+#ifndef __UTILS_H__
+#define __UTILS_H__
+
+#include "gnome-initial-setup.h"
+
+G_BEGIN_DECLS
+
+void splice_buffer (GInputStream *stream,
+ GtkTextBuffer *buffer,
+ GError **error);
+
+void text_buffer_insert_pango_text (GtkTextBuffer *buffer,
+ GtkTextIter *iter,
+ PangoAttrList *attrlist,
+ gchar *text);
+
+G_END_DECLS
+
+#endif /* __UTILS_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]