Code

Rename LPE: mirror reflect --> mirror symmetry
[inkscape.git] / src / widgets / sp-xmlview-content.cpp
index 7961a45117a05c9928e72e3a9fe2ab8147ef65a6..7150b07fd4b6fa244120073c52d0d04f27aa117e 100644 (file)
@@ -11,6 +11,8 @@
  * Released under the GNU GPL; see COPYING for details
  */
 
+#include <cstring>
+#include <glibmm/i18n.h>
 
 #include "xml/node-event-vector.h"
 #include "sp-xmlview-content.h"
@@ -29,138 +31,141 @@ static void event_content_changed (Inkscape::XML::Node * repr, const gchar * old
 static GtkTextViewClass * parent_class = NULL;
 
 static Inkscape::XML::NodeEventVector repr_events = {
-       NULL, /* child_added */
-       NULL, /* child_removed */
-       NULL, /* attr_changed */
-       event_content_changed,
-       NULL  /* order_changed */
+    NULL, /* child_added */
+    NULL, /* child_removed */
+    NULL, /* attr_changed */
+    event_content_changed,
+    NULL  /* order_changed */
 };
 
 GtkWidget *
 sp_xmlview_content_new (Inkscape::XML::Node * repr)
 {
-       GtkTextBuffer *tb;
-       SPXMLViewContent *text;
+    GtkTextBuffer *tb;
+    SPXMLViewContent *text;
 
-       tb = gtk_text_buffer_new (NULL);
-       text = (SPXMLViewContent*)gtk_type_new (SP_TYPE_XMLVIEW_CONTENT);
-       gtk_text_view_set_buffer (GTK_TEXT_VIEW (text), tb);
-       gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text), GTK_WRAP_CHAR);
+    tb = gtk_text_buffer_new (NULL);
+    text = (SPXMLViewContent*)gtk_type_new (SP_TYPE_XMLVIEW_CONTENT);
+    gtk_text_view_set_buffer (GTK_TEXT_VIEW (text), tb);
+    gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text), GTK_WRAP_CHAR);
 
-       g_signal_connect (G_OBJECT (tb), "changed", G_CALLBACK (sp_xmlview_content_changed), text);
+    g_signal_connect (G_OBJECT (tb), "changed", G_CALLBACK (sp_xmlview_content_changed), text);
 
-       /* should we alter the scrolling adjustments here? */
+    /* should we alter the scrolling adjustments here? */
 
-       sp_xmlview_content_set_repr (text, repr);
+    sp_xmlview_content_set_repr (text, repr);
 
-       return (GtkWidget *) text;
+    return (GtkWidget *) text;
 }
 
 void
 sp_xmlview_content_set_repr (SPXMLViewContent * text, Inkscape::XML::Node * repr)
 {
-       if ( repr == text->repr ) return;
-       if (text->repr) {
-               sp_repr_remove_listener_by_data (text->repr, text);
-               Inkscape::GC::release(text->repr);
-       }
-       text->repr = repr;
-       if (repr) {
-               Inkscape::GC::anchor(repr);
-               sp_repr_add_listener (repr, &repr_events, text);
-               sp_repr_synthesize_events (repr, &repr_events, text);
-       } else {
-               gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)), "", 0);
-               gtk_text_view_set_editable (GTK_TEXT_VIEW (text), FALSE);
-       }
+    if ( repr == text->repr ) return;
+    if (text->repr) {
+        sp_repr_remove_listener_by_data (text->repr, text);
+        Inkscape::GC::release(text->repr);
+    }
+    text->repr = repr;
+    if (repr) {
+        Inkscape::GC::anchor(repr);
+        sp_repr_add_listener (repr, &repr_events, text);
+        sp_repr_synthesize_events (repr, &repr_events, text);
+    } else {
+        gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)), "", 0);
+        gtk_text_view_set_editable (GTK_TEXT_VIEW (text), FALSE);
+    }
 }
 
-GtkType
-sp_xmlview_content_get_type (void)
+GType sp_xmlview_content_get_type(void)
 {
-       static GtkType type = 0;
-
-       if (!type) {
-               static const GtkTypeInfo info = {
-                       "SPXMLViewContent",
-                       sizeof (SPXMLViewContent),
-                       sizeof (SPXMLViewContentClass),
-                       (GtkClassInitFunc) sp_xmlview_content_class_init,
-                       (GtkObjectInitFunc) sp_xmlview_content_init,
-                       NULL, NULL, NULL
-               };
-               type = gtk_type_unique (GTK_TYPE_TEXT_VIEW, &info);
-       }
-
-       return type;
+    static GtkType type = 0;
+
+    if (!type) {
+        GTypeInfo info = {
+            sizeof(SPXMLViewContentClass),
+            0, // base_init
+            0, // base_finalize
+            (GClassInitFunc)sp_xmlview_content_class_init,
+            0, // class_finalize
+            0, // class_data
+            sizeof(SPXMLViewContent),
+            0, // n_preallocs
+            (GInstanceInitFunc)sp_xmlview_content_init,
+            0 // value_table
+        };
+        type = g_type_register_static(GTK_TYPE_TEXT_VIEW, "SPXMLViewContent", &info, static_cast<GTypeFlags>(0));
+    }
+
+    return type;
 }
 
 void
 sp_xmlview_content_class_init (SPXMLViewContentClass * klass)
 {
-       GtkObjectClass * object_class;
+    GtkObjectClass * object_class;
 
-       object_class = (GtkObjectClass *) klass;
+    object_class = (GtkObjectClass *) klass;
 
-       parent_class = (GtkTextViewClass*)gtk_type_class (GTK_TYPE_TEXT_VIEW);
+    parent_class = (GtkTextViewClass*)gtk_type_class (GTK_TYPE_TEXT_VIEW);
 
-       object_class->destroy = sp_xmlview_content_destroy;
+    object_class->destroy = sp_xmlview_content_destroy;
 }
 
 void
 sp_xmlview_content_init (SPXMLViewContent *text)
 {
-       text->repr = NULL;
-       text->blocked = FALSE;
+    text->repr = NULL;
+    text->blocked = FALSE;
 }
 
 void
 sp_xmlview_content_destroy (GtkObject * object)
 {
-       SPXMLViewContent * text;
+    SPXMLViewContent * text;
 
-       text = SP_XMLVIEW_CONTENT (object);
+    text = SP_XMLVIEW_CONTENT (object);
 
-       sp_xmlview_content_set_repr (text, NULL);
+    sp_xmlview_content_set_repr (text, NULL);
 
-       GTK_OBJECT_CLASS (parent_class)->destroy (object);
+    GTK_OBJECT_CLASS (parent_class)->destroy (object);
 }
 
 void
-event_content_changed (Inkscape::XML::Node * repr, const gchar * old_content, const gchar * new_content, gpointer data)
+event_content_changed (Inkscape::XML::Node * /*repr*/, const gchar * /*old_content*/, const gchar * new_content, gpointer data)
 {
-       SPXMLViewContent * text;
-       text = SP_XMLVIEW_CONTENT (data);
+    SPXMLViewContent * text;
+    text = SP_XMLVIEW_CONTENT (data);
 
-       if (text->blocked) return;
+    if (text->blocked) return;
 
-       text->blocked = TRUE;
+    text->blocked = TRUE;
 
-       if (new_content) {
-               gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)), new_content, strlen (new_content));
-       } else {
-               gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)), "", 0);
-       }
-       gtk_text_view_set_editable (GTK_TEXT_VIEW (text), new_content != NULL);
+    if (new_content) {
+        gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)), new_content, strlen (new_content));
+    } else {
+        gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)), "", 0);
+    }
+    gtk_text_view_set_editable (GTK_TEXT_VIEW (text), new_content != NULL);
 
-       text->blocked = FALSE;
+    text->blocked = FALSE;
 }
 
 void
 sp_xmlview_content_changed (GtkTextBuffer *tb, SPXMLViewContent *text)
 {
-       if (text->blocked) return;
-
-       if (text->repr) {
-               GtkTextIter start, end;
-               gchar *data;
-               text->blocked = TRUE;
-               gtk_text_buffer_get_bounds (tb, &start, &end);
-               data = gtk_text_buffer_get_text (tb, &start, &end, TRUE);
-               text->repr->setContent(data);
-               g_free (data);
-               text->blocked = FALSE;
-               sp_document_done (sp_desktop_document (SP_ACTIVE_DESKTOP), SP_VERB_NONE, 
-                                 /* TODO: annotate */ "sp-xmlview-content.cpp:164");
-       }
+    if (text->blocked) return;
+
+    if (text->repr) {
+        GtkTextIter start, end;
+        gchar *data;
+        text->blocked = TRUE;
+        gtk_text_buffer_get_bounds (tb, &start, &end);
+        data = gtk_text_buffer_get_text (tb, &start, &end, TRUE);
+        text->repr->setContent(data);
+        g_free (data);
+        text->blocked = FALSE;
+        sp_document_done (sp_desktop_document (SP_ACTIVE_DESKTOP), SP_VERB_DIALOG_XML_EDITOR,
+                          _("Type text in a text node"));
+    }
 }