[Xfce4-commits] <mousepad:master> * mousepad/mousepad-document.c: Remove unused properties. * mousepad/mousepad-{exo, window, preoperties, search-bar}: Remove the exo bindings, mousepad only depends on Gtk and libxfce4util. * mousepad/mousepad-csource.pl: Perl script to generate the menu code. This script also strips the code between the xml blocks, so a minimal amount of text is added to the binary (ie. it produces better code then exo-csource).

Nick Schermer noreply at xfce.org
Sat May 5 21:30:13 CEST 2012


Updating branch refs/heads/master
         to 4ccd1ba30c425214156b07cf6e58b001fa8970d9 (commit)
       from 2563fc285fb1b58ee9c7984b9a710b5668ef3c10 (commit)

commit 4ccd1ba30c425214156b07cf6e58b001fa8970d9
Author: Nick Schermer <nick at xfce.org>
Date:   Thu Apr 5 11:34:07 2007 +0000

    	* mousepad/mousepad-document.c: Remove unused properties.
    	* mousepad/mousepad-{exo,window,preoperties,search-bar}: Remove the
    	  exo bindings, mousepad only depends on Gtk and libxfce4util.
    	* mousepad/mousepad-csource.pl: Perl script to generate the menu code.
    	  This script also strips the code between the xml blocks, so a minimal
    	  amount of text is added to the binary (ie. it produces better code then
    	  exo-csource).
    
    (Old svn revision: 25385)

 ChangeLog                      |   12 +
 configure.in.in                |    1 +
 mousepad/Makefile.am           |    5 +-
 mousepad/mousepad-csource.pl   |   90 +++++++
 mousepad/mousepad-document.c   |  135 ++--------
 mousepad/mousepad-document.h   |    3 +
 mousepad/mousepad-exo.c        |  447 ---------------------------------
 mousepad/mousepad-exo.h        |  101 --------
 mousepad/mousepad-private.h    |    8 -
 mousepad/mousepad-search-bar.c |    2 -
 mousepad/mousepad-window.c     |   40 +++-
 po/Mousepad.pot                |  225 -----------------
 po/mousepad.pot                |  539 ++++++++++++++++++++++++++++++++++++++++
 13 files changed, 702 insertions(+), 906 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index cddff48..0ebc98e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,16 @@
+2007-04-05	Nick Schermer <nick at xfce.org>
+
+	* mousepad/mousepad-document.c: Remove unused properties.
+	* mousepad/mousepad-{exo,window,preoperties,search-bar}: Remove the
+	  exo bindings, mousepad only depends on Gtk and libxfce4util.
+	* mousepad/mousepad-csource.pl: Perl script to generate the menu code.
+	  This script also strips the code between the xml blocks, so a minimal
+	  amount of text is added to the binary (ie. it produces better code then
+	  exo-csource).
+
+
 2007-04-04	Nick Schermer <nick at xfce.org>
+
 	* po/: Update the POTFILES.in file and regenerate the pot file.
 	* mousepad/mousepad-document.c: Make the scroll offset smaller, so the
 	  textview doesn't jump around while searching.
diff --git a/configure.in.in b/configure.in.in
index c63151f..66d719b 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -51,6 +51,7 @@ AC_PROG_CC()
 AC_PROG_LD()
 AC_PROG_INSTALL()
 AC_PROG_INTLTOOL()
+AC_CHECK_PROGS([PERL], [perl5 perl])
 
 dnl **************************
 dnl *** Initialize libtool ***
diff --git a/mousepad/Makefile.am b/mousepad/Makefile.am
index 9cdf554..429aa9f 100644
--- a/mousepad/Makefile.am
+++ b/mousepad/Makefile.am
@@ -35,8 +35,6 @@ mousepad_SOURCES =								\
 	mousepad-dialogs.h							\
 	mousepad-document.c							\
 	mousepad-document.h							\
-	mousepad-exo.c								\
-	mousepad-exo.h								\
 	mousepad-file.c								\
 	mousepad-file.h								\
 	mousepad-preferences.c							\
@@ -108,7 +106,7 @@ mousepad-dbus-infos.h: $(srcdir)/mousepad-dbus-infos.xml Makefile
 endif
 
 mousepad-window-ui.h: Makefile $(srcdir)/mousepad-window-ui.xml
-	exo-csource --static --name=mousepad_window_ui $(srcdir)/mousepad-window-ui.xml > mousepad-window-ui.h
+	$(PERL) $(srcdir)/mousepad-csource.pl mousepad_window_ui < $(srcdir)/mousepad-window-ui.xml > mousepad-window-ui.h
 
 mousepad-enum-types.h: stamp-mousepad-enum-types.h
 	@true
@@ -152,6 +150,7 @@ mousepad-marshal.c: mousepad-marshal.list Makefile
 endif
 
 EXTRA_DIST =									\
+	mousepad-csource.pl							\
 	mousepad-dbus-infos.xml							\
 	mousepad-marshal.list							\
 	mousepad-window-ui.xml
diff --git a/mousepad/mousepad-csource.pl b/mousepad/mousepad-csource.pl
new file mode 100755
index 0000000..71bd2f9
--- /dev/null
+++ b/mousepad/mousepad-csource.pl
@@ -0,0 +1,90 @@
+#!/usr/bin/env perl -w
+#
+# $Id$
+#
+# Copyright (c) 2007 Nick Schermer <nick at xfce.org>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA  02111-1307  USA
+#
+
+if ($#ARGV < 0)
+  {
+    print ("No variable name defined. Exiting...");
+    exit;
+  }
+
+# get the variable name
+my $varname = $ARGV[0];
+shift;
+
+# init
+my $max_column = 70;
+my $result;
+my $line ;
+
+# walk though the lines, strip when and append the result
+while (<>)
+  {
+    # ignore empty lines
+    next if /^\s*$/;
+
+    # skip comments
+    if ($_ =~ '<!--')
+      {
+        $in_comment = 1;
+      }
+
+    if ($in_comment)
+      {
+        if ($_ =~ '-->')
+          {
+            $in_comment = 0;
+          }
+        next;
+      }
+
+    $line = $_;
+
+    # strip the code before and after the xml block
+    $line =~ s/.*</</g;
+    $line =~ s/>.*\n/>/g;
+
+    # append the striped line to the result
+    $result .= $line;
+  }
+
+# start of the file
+print  "static const unsigned int ". $varname ."_length = ". length ($result) .";\n\n".
+       "#ifdef __SUNPRO_C\n".
+       "#pragma align 4 (". $varname .")\n".
+       "#endif\n".
+       "#ifdef __GNUC__\n".
+       "static const char ". $varname ."[] __attribute__ ((__aligned__ (4))) =\n".
+       "#else\n".
+       "static const char ". $varname ."[] =\n".
+       "#endif\n".
+       "{\n";
+
+# escape the comments
+$result =~ s/\"/\\"/g;
+
+# print the content of the xml file
+for ($i = 0; $i < length ($result); $i = $i + $max_column)
+  {
+    print "  \"" . substr ($result, $i, $max_column) . "\"\n";
+  }
+
+# close
+print  "};\n\n";
diff --git a/mousepad/mousepad-document.c b/mousepad/mousepad-document.c
index 65d1f29..e26cf36 100644
--- a/mousepad/mousepad-document.c
+++ b/mousepad/mousepad-document.c
@@ -33,7 +33,6 @@
 
 #include <mousepad/mousepad-private.h>
 #include <mousepad/mousepad-types.h>
-#include <mousepad/mousepad-exo.h>
 #include <mousepad/mousepad-document.h>
 #include <mousepad/mousepad-file.h>
 #include <mousepad/mousepad-marshal.h>
@@ -48,14 +47,6 @@
 
 static void mousepad_document_class_init              (MousepadDocumentClass  *klass);
 static void mousepad_document_init                    (MousepadDocument       *document);
-static void mousepad_document_get_property            (GObject                *object,
-                                                       guint                   prop_id,
-                                                       GValue                 *value,
-                                                       GParamSpec             *pspec);
-static void mousepad_document_set_property            (GObject                *object,
-                                                       guint                   prop_id,
-                                                       const GValue           *value,
-                                                       GParamSpec             *pspec);
 static void mousepad_document_finalize                (GObject                *object);
 static void mousepad_document_modified_changed        (GtkTextBuffer          *buffer,
                                                        MousepadDocument       *document);
@@ -69,9 +60,7 @@ static void mousepad_document_toggle_overwrite        (GtkTextView            *t
                                                        GParamSpec             *pspec,
                                                        MousepadDocument       *document);
 static void mousepad_document_scroll_to_visible_area  (MousepadDocument       *document);
-static void mousepad_document_set_font                (MousepadDocument       *document,
-                                                       const gchar            *font_name);
-static void mousepad_document_tab_set_tooltip         (MousepadDocument       *document,
+static void mousepad_document_update_tab              (MousepadDocument       *document,
                                                        GParamSpec             *pspec,
                                                        GtkWidget              *ebox);
 static void mousepad_document_tab_button_clicked      (GtkWidget              *widget,
@@ -81,14 +70,6 @@ static void mousepad_document_tab_button_clicked      (GtkWidget              *w
 
 enum
 {
-  PROP_0,
-  PROP_FILENAME,
-  PROP_FONT_NAME,
-  PROP_TITLE,
-};
-
-enum
-{
   CLOSE_TAB,
   SELECTION_CHANGED,
   MODIFIED_CHANGED,
@@ -113,6 +94,9 @@ struct _MousepadDocument
   /* the highlight tag */
   GtkTextTag        *tag;
 
+  /* the tab label */
+  GtkWidget         *label;
+
   /* absolute path of the file */
   gchar             *filename;
 
@@ -173,32 +157,6 @@ mousepad_document_class_init (MousepadDocumentClass *klass)
 
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = mousepad_document_finalize;
-  gobject_class->get_property = mousepad_document_get_property;
-  gobject_class->set_property = mousepad_document_set_property;
-
-  g_object_class_install_property (gobject_class,
-                                   PROP_FILENAME,
-                                   g_param_spec_string ("filename",
-                                                        "filename",
-                                                        "filename",
-                                                        NULL,
-                                                        MOUSEPAD_PARAM_READWRITE));
-
-  g_object_class_install_property (gobject_class,
-                                   PROP_FONT_NAME,
-                                   g_param_spec_string ("font-name",
-                                                        "font-name",
-                                                        "font-name",
-                                                        NULL,
-                                                        MOUSEPAD_PARAM_READWRITE));
-
-  g_object_class_install_property (gobject_class,
-                                   PROP_TITLE,
-                                   g_param_spec_string ("title",
-                                                        "title",
-                                                        "title",
-                                                        NULL,
-                                                        MOUSEPAD_PARAM_READWRITE));
 
   document_signals[CLOSE_TAB] =
     g_signal_new (I_("close-tab"),
@@ -282,54 +240,6 @@ mousepad_document_init (MousepadDocument *document)
 
 
 static void
-mousepad_document_get_property (GObject    *object,
-                                guint       prop_id,
-                                GValue     *value,
-                                GParamSpec *pspec)
-{
-  MousepadDocument *document = MOUSEPAD_DOCUMENT (object);
-
-  switch (prop_id)
-    {
-      case PROP_FILENAME:
-        g_value_set_static_string (value, mousepad_document_get_filename (document));
-        break;
-
-      case PROP_TITLE:
-        g_value_set_static_string (value, mousepad_document_get_title (document, FALSE));
-        break;
-
-      default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-        break;
-    }
-}
-
-
-
-static void
-mousepad_document_set_property (GObject      *object,
-                                guint         prop_id,
-                                const GValue *value,
-                                GParamSpec   *pspec)
-{
-  MousepadDocument *document = MOUSEPAD_DOCUMENT (object);
-
-  switch (prop_id)
-    {
-      case PROP_FONT_NAME:
-        mousepad_document_set_font (document, g_value_get_string (value));
-        break;
-
-      default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-        break;
-    }
-}
-
-
-
-static void
 mousepad_document_finalize (GObject *object)
 {
   MousepadDocument *document = MOUSEPAD_DOCUMENT (object);
@@ -552,9 +462,6 @@ mousepad_document_set_filename (MousepadDocument *document,
   /* create the new names */
   document->filename = g_strdup (filename);
   document->display_name = g_filename_display_basename (filename);
-
-  /* tell the listeners */
-  g_object_notify (G_OBJECT (document), "title");
 }
 
 
@@ -603,7 +510,7 @@ mousepad_document_set_word_wrap (MousepadDocument *document,
 
 
 
-static void
+void
 mousepad_document_set_font (MousepadDocument *document,
                             const gchar      *font_name)
 {
@@ -1011,7 +918,7 @@ GtkWidget *
 mousepad_document_get_tab_label (MousepadDocument *document)
 {
   GtkWidget *hbox;
-  GtkWidget *label, *ebox;
+  GtkWidget *ebox;
   GtkWidget *button, *image;
 
   /* create the box */
@@ -1022,17 +929,18 @@ mousepad_document_get_tab_label (MousepadDocument *document)
   ebox = g_object_new (GTK_TYPE_EVENT_BOX, "border-width", 2, NULL);
   gtk_box_pack_start (GTK_BOX (hbox), ebox, TRUE, TRUE, 0);
   gtk_widget_show (ebox);
-  mousepad_document_tab_set_tooltip (document, NULL, ebox);
-  g_signal_connect (G_OBJECT (document), "notify::title",
-                    G_CALLBACK (mousepad_document_tab_set_tooltip), ebox);
 
   /* create the label */
-  label = g_object_new (GTK_TYPE_LABEL,
-                        "selectable", FALSE,
-                        "xalign", 0.0, NULL);
-  gtk_container_add (GTK_CONTAINER (ebox), label);
-  exo_binding_new (G_OBJECT (document), "title", G_OBJECT (label), "label");
-  gtk_widget_show (label);
+  document->label = g_object_new (GTK_TYPE_LABEL,
+                                 "selectable", FALSE,
+                                 "xalign", 0.0, NULL);
+  gtk_container_add (GTK_CONTAINER (ebox), document->label);
+  gtk_widget_show (document->label);
+
+  /* update the tab and add signal to the ebox for a title update */
+  mousepad_document_update_tab (document, NULL, ebox);
+  g_signal_connect (G_OBJECT (document), "notify::title",
+                    G_CALLBACK (mousepad_document_update_tab), ebox);
 
   /* create the button */
   button = g_object_new (GTK_TYPE_BUTTON,
@@ -1058,10 +966,15 @@ mousepad_document_get_tab_label (MousepadDocument *document)
 
 
 static void
-mousepad_document_tab_set_tooltip (MousepadDocument *document,
-                                   GParamSpec       *pspec,
-                                   GtkWidget        *ebox)
+mousepad_document_update_tab (MousepadDocument *document,
+                              GParamSpec       *pspec,
+                              GtkWidget        *ebox)
 {
+  /* set the tab label */
+  gtk_label_set_text (GTK_LABEL (document->label),
+                      mousepad_document_get_title (document, FALSE));
+
+  /* set the tab tooltip */
   mousepad_gtk_set_tooltip (ebox, document->filename);
 }
 
diff --git a/mousepad/mousepad-document.h b/mousepad/mousepad-document.h
index e483fcd..c390a91 100644
--- a/mousepad/mousepad-document.h
+++ b/mousepad/mousepad-document.h
@@ -48,6 +48,9 @@ gboolean        mousepad_document_save_file                (MousepadDocument
 void            mousepad_document_set_filename             (MousepadDocument    *document,
                                                             const gchar         *filename);
 
+void            mousepad_document_set_font                 (MousepadDocument    *document,
+                                                            const gchar         *font_name);
+
 void            mousepad_document_set_auto_indent          (MousepadDocument    *document,
                                                             gboolean             auto_indent);
 
diff --git a/mousepad/mousepad-exo.c b/mousepad/mousepad-exo.c
deleted file mode 100644
index b1d75e5..0000000
--- a/mousepad/mousepad-exo.c
+++ /dev/null
@@ -1,447 +0,0 @@
-/* $Id$ */
-/*-
- * Copyright (c) 2004-2006 os-cillation e.K.
- * Copyright (c) 2004      Victor Porton (http://ex-code.com/~porton/)
- *
- * Written by Benedikt Meurer <benny at xfce.org>.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <mousepad/mousepad-private.h>
-#include <mousepad/mousepad-exo.h>
-
-static void
-exo_bind_properties_transfer (GObject             *src_object,
-                              GParamSpec          *src_pspec,
-                              GObject             *dst_object,
-                              GParamSpec          *dst_pspec,
-                              ExoBindingTransform  transform,
-                              gpointer             user_data)
-{
-  const gchar *src_name;
-  const gchar *dst_name;
-  gboolean     result;
-  GValue       src_value = { 0, };
-  GValue       dst_value = { 0, };
-
-  src_name = g_param_spec_get_name (src_pspec);
-  dst_name = g_param_spec_get_name (dst_pspec);
-
-  g_value_init (&src_value, G_PARAM_SPEC_VALUE_TYPE (src_pspec));
-  g_object_get_property (src_object, src_name, &src_value);
-
-  g_value_init (&dst_value, G_PARAM_SPEC_VALUE_TYPE (dst_pspec));
-  result = (*transform) (&src_value, &dst_value, user_data);
-
-  g_value_unset (&src_value);
-
-  g_return_if_fail (result);
-
-  g_param_value_validate (dst_pspec, &dst_value);
-  g_object_set_property (dst_object, dst_name, &dst_value);
-  g_value_unset (&dst_value);
-}
-
-
-
-static void
-exo_bind_properties_notify (GObject    *src_object,
-                            GParamSpec *src_pspec,
-                            gpointer    data)
-{
-  ExoBindingLink *link = data;
-
-  /* block the destination handler for mutual bindings,
-   * so we don't recurse here.
-   */
-  if (link->dst_handler != 0)
-    g_signal_handler_block (link->dst_object, link->dst_handler);
-
-  exo_bind_properties_transfer (src_object,
-                                src_pspec,
-                                link->dst_object,
-                                link->dst_pspec,
-                                link->transform,
-                                link->user_data);
-
-  /* unblock destination handler */
-  if (link->dst_handler != 0)
-    g_signal_handler_unblock (link->dst_object, link->dst_handler);
-}
-
-
-
-static void
-exo_binding_on_dst_object_destroy (gpointer  data,
-                                   GObject  *object)
-{
-  ExoBinding *binding = data;
-
-  binding->link.dst_object = NULL;
-
-  /* calls exo_binding_on_disconnect() */
-  g_signal_handler_disconnect (binding->src_object, binding->link.handler);
-}
-
-
-
-static void
-exo_binding_on_disconnect (gpointer  data,
-                           GClosure *closure)
-{
-  ExoBindingLink *link = data;
-  ExoBinding     *binding;
-
-  binding = (ExoBinding *) (((gchar *) link) - G_STRUCT_OFFSET (ExoBinding, link));
-
-  if (binding->base.destroy != NULL)
-    binding->base.destroy (link->user_data);
-
-  if (link->dst_object != NULL)
-    g_object_weak_unref (link->dst_object, exo_binding_on_dst_object_destroy, binding);
-
-  g_slice_free (ExoBinding, binding);
-}
-
-
-
-/* recursively calls exo_mutual_binding_on_disconnect_object2() */
-static void
-exo_mutual_binding_on_disconnect_object1 (gpointer  data,
-                                          GClosure *closure)
-{
-  ExoMutualBinding *binding;
-  ExoBindingLink   *link = data;
-  GObject          *object2;
-
-  binding = (ExoMutualBinding *) (((gchar *) link) - G_STRUCT_OFFSET (ExoMutualBinding, direct));
-  binding->reverse.dst_object = NULL;
-
-  object2 = binding->direct.dst_object;
-  if (object2 != NULL)
-    {
-      if (binding->base.destroy != NULL)
-        binding->base.destroy (binding->direct.user_data);
-      binding->direct.dst_object = NULL;
-      g_signal_handler_disconnect (object2, binding->reverse.handler);
-      g_slice_free (ExoMutualBinding, binding);
-    }
-}
-
-
-
-/* recursively calls exo_mutual_binding_on_disconnect_object1() */
-static void
-exo_mutual_binding_on_disconnect_object2 (gpointer  data,
-                                          GClosure *closure)
-{
-  ExoMutualBinding *binding;
-  ExoBindingLink   *link = data;
-  GObject          *object1;
-
-  binding = (ExoMutualBinding *) (((gchar *) link) - G_STRUCT_OFFSET (ExoMutualBinding, reverse));
-  binding->direct.dst_object = NULL;
-
-  object1 = binding->reverse.dst_object;
-  if (object1 != NULL)
-    {
-      binding->reverse.dst_object = NULL;
-      g_signal_handler_disconnect (object1, binding->direct.handler);
-    }
-}
-
-
-
-static void
-exo_binding_link_init (ExoBindingLink     *link,
-                       GObject            *src_object,
-                       const gchar        *src_property,
-                       GObject            *dst_object,
-                       GParamSpec         *dst_pspec,
-                       ExoBindingTransform transform,
-                       GClosureNotify      destroy_notify,
-                       gpointer            user_data)
-{
-  gchar *signal_name;
-
-  link->dst_object  = dst_object;
-  link->dst_pspec   = dst_pspec;
-  link->dst_handler = 0;
-  link->transform   = transform;
-  link->user_data   = user_data;
-
-  signal_name = g_strconcat ("notify::", src_property, NULL);
-  link->handler = g_signal_connect_data (src_object,
-                                         signal_name,
-                                         G_CALLBACK (exo_bind_properties_notify),
-                                         link,
-                                         destroy_notify,
-                                         0);
-  g_free (signal_name);
-}
-
-
-
-/**
- * exo_binding_new:
- * @src_object    : The source #GObject.
- * @src_property  : The name of the property to bind from.
- * @dst_object    : The destination #GObject.
- * @dst_property  : The name of the property to bind to.
- *
- * One-way binds @src_property in @src_object to @dst_property
- * in @dst_object.
- *
- * Before binding the value of @dst_property is set to the
- * value of @src_property.
- *
- * Return value: The descriptor of the binding. It is automatically
- *               removed if one of the objects is finalized.
- **/
-ExoBinding*
-exo_binding_new (GObject      *src_object,
-                 const gchar  *src_property,
-                 GObject      *dst_object,
-                 const gchar  *dst_property)
-{
-  return exo_binding_new_full (src_object, src_property,
-                               dst_object, dst_property,
-                               NULL, NULL, NULL);
-}
-
-
-
-/**
- * exo_binding_new_full:
- * @src_object      : The source #GObject.
- * @src_property    : The name of the property to bind from.
- * @dst_object      : The destination #GObject.
- * @dst_property    : The name of the property to bind to.
- * @transform       : Transformation function or %NULL.
- * @destroy_notify  : Callback function that is called on
- *                    disconnection with @user_data or %NULL.
- * @user_data       : User data associated with the binding.
- *
- * One-way binds @src_property in @src_object to @dst_property
- * in @dst_object.
- *
- * Before binding the value of @dst_property is set to the
- * value of @src_property.
- *
- * Return value: The descriptor of the binding. It is automatically
- *               removed if one of the objects is finalized.
- **/
-ExoBinding*
-exo_binding_new_full (GObject            *src_object,
-                      const gchar        *src_property,
-                      GObject            *dst_object,
-                      const gchar        *dst_property,
-                      ExoBindingTransform transform,
-                      GDestroyNotify      destroy_notify,
-                      gpointer            user_data)
-{
-  ExoBinding  *binding;
-  GParamSpec  *src_pspec;
-  GParamSpec  *dst_pspec;
-
-  g_return_val_if_fail (G_IS_OBJECT (src_object), NULL);
-  g_return_val_if_fail (G_IS_OBJECT (dst_object), NULL);
-
-  src_pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (src_object), src_property);
-  dst_pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (dst_object), dst_property);
-
-  if (transform == NULL)
-    transform = (ExoBindingTransform) g_value_transform;
-
-  exo_bind_properties_transfer (src_object,
-                                src_pspec,
-                                dst_object,
-                                dst_pspec,
-                                transform,
-                                user_data);
-
-  binding = g_slice_new (ExoBinding);
-  binding->src_object = src_object;
-  binding->base.destroy = destroy_notify;
-
-  exo_binding_link_init (&binding->link,
-                         src_object,
-                         src_property,
-                         dst_object,
-                         dst_pspec,
-                         transform,
-                         exo_binding_on_disconnect,
-                         user_data);
-
-  g_object_weak_ref (dst_object, exo_binding_on_dst_object_destroy, binding);
-
-  return binding;
-}
-
-
-
-/**
- * exo_binding_unbind:
- * @binding: An #ExoBinding to unbind.
- *
- * Disconnects the binding between two properties. Should be
- * rarely used by applications.
- *
- * This functions also calls the @destroy_notify function that
- * was specified when @binding was created.
- **/
-void
-exo_binding_unbind (ExoBinding *binding)
-{
-  g_signal_handler_disconnect (binding->src_object, binding->link.handler);
-}
-
-
-
-/**
- * exo_mutual_binding_new:
- * @object1   : The first #GObject.
- * @property1 : The first property to bind.
- * @object2   : The second #GObject.
- * @property2 : The second property to bind.
- *
- * Mutually binds values of two properties.
- *
- * Before binding the value of @property2 is set to the value
- * of @property1.
- *
- * Return value: The descriptor of the binding. It is automatically
- *               removed if one of the objects is finalized.
- **/
-ExoMutualBinding*
-exo_mutual_binding_new (GObject     *object1,
-                        const gchar *property1,
-                        GObject     *object2,
-                        const gchar *property2)
-{
-  return exo_mutual_binding_new_full (object1, property1,
-                                      object2, property2,
-                                      NULL, NULL, NULL, NULL);
-}
-
-
-
-/**
- * exo_mutual_binding_new_full:
- * @object1           : The first #GObject.
- * @property1         : The first property to bind.
- * @object2           : The second #GObject.
- * @property2         : The second property to bind.
- * @transform         : Transformation function or %NULL.
- * @reverse_transform : The inverse transformation function or %NULL.
- * @destroy_notify    : Callback function called on disconnection with
- *                      @user_data as argument or %NULL.
- * @user_data         : User data associated with the binding.
- *
- * Mutually binds values of two properties.
- *
- * Before binding the value of @property2 is set to the value of
- * @property1.
- *
- * Both @transform and @reverse_transform should simultaneously be
- * %NULL or non-%NULL. If they are non-%NULL, they should be reverse
- * in each other.
- *
- * Return value: The descriptor of the binding. It is automatically
- *               removed if one of the objects is finalized.
- **/
-ExoMutualBinding*
-exo_mutual_binding_new_full (GObject            *object1,
-                             const gchar        *property1,
-                             GObject            *object2,
-                             const gchar        *property2,
-                             ExoBindingTransform transform,
-                             ExoBindingTransform reverse_transform,
-                             GDestroyNotify      destroy_notify,
-                             gpointer            user_data)
-{
-  ExoMutualBinding  *binding;
-  GParamSpec        *pspec1;
-  GParamSpec        *pspec2;
-
-  g_return_val_if_fail (G_IS_OBJECT (object1), NULL);
-  g_return_val_if_fail (G_IS_OBJECT (object2), NULL);
-
-  pspec1 = g_object_class_find_property (G_OBJECT_GET_CLASS (object1), property1);
-  pspec2 = g_object_class_find_property (G_OBJECT_GET_CLASS (object2), property2);
-
-  if (transform == NULL)
-    transform = (ExoBindingTransform) g_value_transform;
-
-  if (reverse_transform == NULL)
-    reverse_transform = (ExoBindingTransform) g_value_transform;
-
-  exo_bind_properties_transfer (object1,
-                                pspec1,
-                                object2,
-                                pspec2,
-                                transform,
-                                user_data);
-
-  binding = g_slice_new (ExoMutualBinding);
-  binding->base.destroy = destroy_notify;
-
-  exo_binding_link_init (&binding->direct,
-                         object1,
-                         property1,
-                         object2,
-                         pspec2,
-                         transform,
-                         exo_mutual_binding_on_disconnect_object1,
-                         user_data);
-
-  exo_binding_link_init (&binding->reverse,
-                         object2,
-                         property2,
-                         object1,
-                         pspec1,
-                         reverse_transform,
-                         exo_mutual_binding_on_disconnect_object2,
-                         user_data);
-
-  /* tell each link about the reverse link for mutual
-   * bindings, to make sure that we do not ever recurse
-   * in notify (yeah, the GObject notify dispatching is
-   * really weird!).
-   */
-  binding->direct.dst_handler = binding->reverse.handler;
-  binding->reverse.dst_handler = binding->direct.handler;
-
-  return binding;
-}
-
-
-/**
- * exo_mutual_binding_unbind:
- * @binding: An #ExoMutualBinding to unbind.
- *
- * Disconnects the binding between two properties. Should be
- * rarely used by applications.
- *
- * This functions also calls the @destroy_notify function that
- * was specified when @binding was created.
- **/
-void
-exo_mutual_binding_unbind (ExoMutualBinding *binding)
-{
-  g_signal_handler_disconnect (binding->direct.dst_object, binding->direct.handler);
-}
diff --git a/mousepad/mousepad-exo.h b/mousepad/mousepad-exo.h
deleted file mode 100644
index 17a9b22..0000000
--- a/mousepad/mousepad-exo.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* $Id$ */
-/*-
- * Copyright (c) 2004-2006 os-cillation e.K.
- * Copyright (c) 2004      Victor Porton (http://ex-code.com/~porton/)
- *
- * Written by Benedikt Meurer <benny at xfce.org>.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __MOUSEPAD_EXO_H__
-#define __MOUSEPAD_EXO_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-typedef struct _ExoBindingBase    ExoBindingBase;
-typedef struct _ExoBindingLink    ExoBindingLink;
-typedef struct _ExoBinding        ExoBinding;
-typedef struct _ExoMutualBinding  ExoMutualBinding;
-
-typedef gboolean  (*ExoBindingTransform)  (const GValue *src_value,
-                                           GValue       *dst_value,
-                                           gpointer      user_data);
-
-struct _ExoBindingBase
-{
-  GDestroyNotify  destroy;
-};
-
-struct _ExoBindingLink
-{
-  GObject             *dst_object;
-  GParamSpec          *dst_pspec;
-  gulong               dst_handler; /* only set for mutual bindings */
-  gulong               handler;
-  ExoBindingTransform  transform;
-  gpointer             user_data;
-};
-
-struct _ExoBinding
-{
-  /*< private >*/
-  GObject         *src_object;
-  ExoBindingBase   base;
-  ExoBindingLink   link;
-};
-
-struct _ExoMutualBinding
-{
-  /*< private >*/
-  ExoBindingBase  base;
-  ExoBindingLink  direct;
-  ExoBindingLink  reverse;
-};
-
-
-ExoBinding        *exo_binding_new                      (GObject            *src_object,
-                                                         const gchar        *src_property,
-                                                         GObject            *dst_object,
-                                                         const gchar        *dst_property);
-ExoBinding        *exo_binding_new_full                 (GObject            *src_object,
-                                                         const gchar        *src_property,
-                                                         GObject            *dst_object,
-                                                         const gchar        *dst_property,
-                                                         ExoBindingTransform transform,
-                                                         GDestroyNotify      destroy_notify,
-                                                         gpointer            user_data);
-void               exo_binding_unbind                   (ExoBinding         *binding);
-
-ExoMutualBinding  *exo_mutual_binding_new               (GObject            *object1,
-                                                         const gchar        *property1,
-                                                         GObject            *object2,
-                                                         const gchar        *property2);
-ExoMutualBinding  *exo_mutual_binding_new_full          (GObject            *object1,
-                                                         const gchar        *property1,
-                                                         GObject            *object2,
-                                                         const gchar        *property2,
-                                                         ExoBindingTransform transform,
-                                                         ExoBindingTransform reverse_transform,
-                                                         GDestroyNotify      destroy_notify,
-                                                         gpointer            user_data);
-void               exo_mutual_binding_unbind            (ExoMutualBinding   *binding);
-
-G_END_DECLS
-
-#endif /* !__MOUSEPAD_EXO_H__ */
diff --git a/mousepad/mousepad-private.h b/mousepad/mousepad-private.h
index a87225b..9d74340 100644
--- a/mousepad/mousepad-private.h
+++ b/mousepad/mousepad-private.h
@@ -70,14 +70,6 @@ G_BEGIN_DECLS
 #define g_value_get_pointer(v) (((const GValue *) (v))->data[0].v_pointer)
 #endif
 
-
-
-/* don't use the invalid property warning since testing in debug builds is enough */
-#ifndef G_ENABLE_DEBUG
-#undef G_OBJECT_WARN_INVALID_PROPERTY_ID
-#define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec) G_STMT_START{ (void)0; }G_STMT_END
-#endif
-
 G_END_DECLS
 
 #endif /* !__MOUSEPAD_PRIVATE_H__ */
diff --git a/mousepad/mousepad-search-bar.c b/mousepad/mousepad-search-bar.c
index 8bf889d..8f4bc8b 100644
--- a/mousepad/mousepad-search-bar.c
+++ b/mousepad/mousepad-search-bar.c
@@ -25,7 +25,6 @@
 #include <gdk/gdkkeysyms.h>
 
 #include <mousepad/mousepad-private.h>
-#include <mousepad/mousepad-exo.h>
 #include <mousepad/mousepad-marshal.h>
 #include <mousepad/mousepad-types.h>
 #include <mousepad/mousepad-enum-types.h>
@@ -269,7 +268,6 @@ mousepad_search_bar_init (MousepadSearchBar *search_bar)
 
   menuitem = gtk_check_menu_item_new_with_mnemonic (_("Mat_ch Case"));
   gtk_tool_item_set_proxy_menu_item (item, "case-sensitive", menuitem);
-  exo_mutual_binding_new (G_OBJECT (check), "active", G_OBJECT (menuitem), "active");
   gtk_widget_show (menuitem);
 }
 
diff --git a/mousepad/mousepad-window.c b/mousepad/mousepad-window.c
index 1acb2c1..c09414f 100644
--- a/mousepad/mousepad-window.c
+++ b/mousepad/mousepad-window.c
@@ -35,7 +35,6 @@
 #include <mousepad/mousepad-private.h>
 #include <mousepad/mousepad-types.h>
 #include <mousepad/mousepad-application.h>
-#include <mousepad/mousepad-exo.h>
 #include <mousepad/mousepad-document.h>
 #include <mousepad/mousepad-dialogs.h>
 #include <mousepad/mousepad-preferences.h>
@@ -726,6 +725,7 @@ mousepad_window_open_tab (MousepadWindow *window,
   GError      *error = NULL;
   gboolean     succeed = TRUE;
   gint         npages = 0, i;
+  gchar       *font_name;
   const gchar *opened_filename;
 
   /* get the number of page in the notebook */
@@ -743,7 +743,7 @@ mousepad_window_open_tab (MousepadWindow *window,
           opened_filename = mousepad_document_get_filename (MOUSEPAD_DOCUMENT (document));
 
           /* see if the file is already opened */
-          if (opened_filename && strcmp (filename, opened_filename))
+          if (opened_filename && strcmp (filename, opened_filename) == 0)
             {
               /* switch to the tab */
               gtk_notebook_set_current_page (GTK_NOTEBOOK (window->notebook), i);
@@ -765,6 +765,11 @@ mousepad_window_open_tab (MousepadWindow *window,
     {
       /* add the document to the notebook and connect some signals */
       mousepad_window_add (window, MOUSEPAD_DOCUMENT (document));
+
+      /* set the textview font */
+      g_object_get (G_OBJECT (window->preferences), "font-name", &font_name, NULL);
+      mousepad_document_set_font (MOUSEPAD_DOCUMENT (document), font_name);
+      g_free (font_name);
     }
   else
     {
@@ -873,6 +878,9 @@ mousepad_window_save (MousepadWindow   *window,
 
               /* add the new document to the recent menu */
               mousepad_window_recent_add (window, new_filename);
+
+              /* update the go menu */
+              mousepad_window_update_gomenu (window);
             }
 
           /* cleanup */
@@ -935,9 +943,6 @@ mousepad_window_add (MousepadWindow   *window,
   _mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window));
   _mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (document));
 
-  /* conect an exo binding to set the widget font */
-  exo_binding_new (G_OBJECT (window->preferences), "font-name", G_OBJECT (document), "font-name");
-
   /* create the tab label */
   label = mousepad_document_get_tab_label (document);
 
@@ -1376,6 +1381,8 @@ mousepad_window_update_gomenu_idle (gpointer user_data)
   gint            npages;
   gint            n;
   gchar           name[15];
+  const gchar    *title;
+  const gchar    *tooltip;
   gchar           accelerator[7];
   GtkRadioAction *action;
   GSList         *group = NULL;
@@ -1407,10 +1414,12 @@ mousepad_window_update_gomenu_idle (gpointer user_data)
       /* create a new action name */
       g_snprintf (name, sizeof (name), "document-%d", n);
 
+      /* get the name and file name */
+      title = mousepad_document_get_title (MOUSEPAD_DOCUMENT (document), FALSE);
+      tooltip = mousepad_document_get_title (MOUSEPAD_DOCUMENT (document), TRUE);
+
       /* create the radio action */
-      action = gtk_radio_action_new (name, NULL, NULL, NULL, n);
-      exo_binding_new (G_OBJECT (document), "title", G_OBJECT (action), "label");
-      exo_binding_new (G_OBJECT (document), "filename", G_OBJECT (action), "tooltip");
+      action = gtk_radio_action_new (name, title, tooltip, NULL, n);
       gtk_radio_action_set_group (action, group);
       group = gtk_radio_action_get_group (action);
       g_signal_connect (G_OBJECT (action), "activate",
@@ -2223,12 +2232,14 @@ mousepad_window_action_select_font (GtkAction      *action,
                                     MousepadWindow *window)
 {
   GtkWidget *dialog;
+  GtkWidget *document;
   gchar     *font_name;
+  guint      npages, i;
 
   dialog = gtk_font_selection_dialog_new (_("Choose Mousepad Font"));
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (window));
 
-  /* set the current font */
+  /* get the current font */
   g_object_get (G_OBJECT (window->preferences), "font-name", &font_name, NULL);
 
   if (G_LIKELY (font_name))
@@ -2243,6 +2254,17 @@ mousepad_window_action_select_font (GtkAction      *action,
       /* send the new font to the preferences */
       font_name = gtk_font_selection_dialog_get_font_name (GTK_FONT_SELECTION_DIALOG (dialog));
       g_object_set (G_OBJECT (window->preferences), "font-name", font_name, NULL);
+
+      /* send the new font to all tabs in this window */
+      npages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (window->notebook));
+      for (i = 0; i < npages; i++)
+        {
+          document = gtk_notebook_get_nth_page (GTK_NOTEBOOK (window->notebook), i);
+          if (G_LIKELY (document != NULL))
+            mousepad_document_set_font (MOUSEPAD_DOCUMENT (document), font_name);
+        }
+
+      /* cleanup */
       g_free (font_name);
     }
 
diff --git a/po/Mousepad.pot b/po/Mousepad.pot
deleted file mode 100644
index ea89984..0000000
--- a/po/Mousepad.pot
+++ /dev/null
@@ -1,225 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-17 12:57+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../mousepad/main.c:47
-msgid "Print version information and exit"
-msgstr ""
-
-#. default application name
-#: ../mousepad/main.c:65
-msgid "Mousepad"
-msgstr ""
-
-#. initialize Gtk+
-#: ../mousepad/main.c:77
-msgid "[FILES...]"
-msgstr ""
-
-#. no error message, the GUI initialization failed
-#: ../mousepad/main.c:83
-msgid "Failed to open display."
-msgstr ""
-
-#: ../mousepad/main.c:100
-msgid "The Xfce development team. All rights reserved."
-msgstr ""
-
-#: ../mousepad/main.c:101
-msgid "Written by Nick Schermer <nick at xfce.org>."
-msgstr ""
-
-#: ../mousepad/main.c:102
-#, c-format
-msgid "Please report bugs to <%s>."
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:29
-msgid "Untitled Document"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:91
-msgid "_File"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:92
-msgid "New _Tab"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:92
-msgid "Open a new Mousepad tab"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:93
-msgid "_New Window"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:93
-msgid "Open a new Mousepad window"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:94
-msgid "_Open File"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:94
-msgid "Open a new document"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:95
-msgid "Open _Recent"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:96
-msgid "_Save"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:96
-msgid "Save current document"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:97
-msgid "Save _As"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:97
-msgid "Save current document as another file"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:98
-msgid "C_lose Tab"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:98
-msgid "Close the current Mousepad tab"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:99
-msgid "_Close Window"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:99
-msgid "Close the Mousepad window"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:100
-msgid "Close _All Windows"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:100
-msgid "Close all Mousepad windows"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:102
-msgid "_Edit"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:103
-msgid "_Undo"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:104
-msgid "_Redo"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:105
-msgid "Cu_t"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:106
-msgid "_Copy"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:107
-msgid "_Paste"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:108
-msgid "_Delete"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:109
-msgid "Select _All"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:111
-msgid "_Search"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:112
-msgid "_Find"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:113
-msgid "Find _Next"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:114
-msgid "Find _Previous"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:115
-msgid "_Replace"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:116
-msgid "_Jump To"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:118
-msgid "_View"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:119
-msgid "_Font"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:121
-msgid "_Go"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:122
-msgid "Back"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:123
-msgid "Forward"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:125
-msgid "_Help"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:126
-msgid "_About"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:126
-msgid "Display information about Mousepad"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:131
-msgid "_Word Wrap"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:132
-msgid "_Line Numbers"
-msgstr ""
-
-#: ../mousepad/mousepad-window.c:133
-msgid "_Auto Indent"
-msgstr ""
diff --git a/po/mousepad.pot b/po/mousepad.pot
new file mode 100644
index 0000000..5e51115
--- /dev/null
+++ b/po/mousepad.pot
@@ -0,0 +1,539 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-04 20:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../mousepad/main.c:53
+msgid "Do not register with the D-BUS session message bus"
+msgstr ""
+
+#: ../mousepad/main.c:54
+msgid "Quit a running Mousepad instance"
+msgstr ""
+
+#: ../mousepad/main.c:56
+msgid "Print version information and exit"
+msgstr ""
+
+#. default application name
+#: ../mousepad/main.c:78 ../Mousepad.desktop.in.in.h:1
+msgid "Mousepad"
+msgstr ""
+
+#. initialize Gtk+
+#: ../mousepad/main.c:90
+msgid "[FILES...]"
+msgstr ""
+
+#. no error message, the GUI initialization failed
+#: ../mousepad/main.c:96
+msgid "Failed to open display."
+msgstr ""
+
+#: ../mousepad/main.c:113
+msgid "The Xfce development team. All rights reserved."
+msgstr ""
+
+#: ../mousepad/main.c:114
+#, c-format
+msgid "Please report bugs to <%s>."
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:62
+msgid "Mousepad is a fast text editor for the Xfce Desktop Environment."
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:63
+msgid "Copyright © 2004-2007 Xfce Development Team"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:69
+msgid "translator-credits"
+msgstr ""
+
+#. build the dialog
+#: ../mousepad/mousepad-dialogs.c:116
+msgid "Jump To"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:130
+msgid "_Line number:"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:173
+msgid "Remove all entries from the document history?"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:180
+msgid "Clear Document History"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:185
+msgid ""
+"Clearing the document history will permanently remove all currently listed "
+"entries."
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:214
+msgid "Do you want to save the changes before closing?"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:217
+msgid "_Don't Save"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:225
+msgid "Save Changes"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:230
+msgid "If you don't save the document, all the changes will be lost."
+msgstr ""
+
+#. tell the user he cannot write to this file
+#: ../mousepad/mousepad-dialogs.c:261
+msgid "Permission denied"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:283
+msgid "Save As"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:324
+msgid ""
+"The file has been externally modified. Are you sure you want to save the "
+"file?"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:328
+#, c-format
+msgid "If you save the file, the external changes to \"%s\" will be lost."
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:333
+msgid "_Overwrite"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:336 ../mousepad/mousepad-dialogs.c:370
+msgid "_Reload"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:361
+msgid "Do you want to save your changes before reloading?"
+msgstr ""
+
+#: ../mousepad/mousepad-dialogs.c:363
+msgid "If you reload the file, you changes will be lost."
+msgstr ""
+
+#: ../mousepad/mousepad-document.c:1044
+msgid "Close this tab"
+msgstr ""
+
+#: ../mousepad/mousepad-document.c:1097
+msgid "Untitled"
+msgstr ""
+
+#: ../mousepad/mousepad-file.c:139
+#, c-format
+msgid "Failed to open \"%s\" for writing"
+msgstr ""
+
+#: ../mousepad/mousepad-file.c:147
+#, c-format
+msgid "Failed to create new file \"%s\""
+msgstr ""
+
+#: ../mousepad/mousepad-file.c:160 ../mousepad/mousepad-file.c:381
+#, c-format
+msgid "You don't have permission to write to \"%s\""
+msgstr ""
+
+#: ../mousepad/mousepad-file.c:169
+#, c-format
+msgid "Failed to truncate \"%s\" before writing"
+msgstr ""
+
+#: ../mousepad/mousepad-file.c:185
+#, c-format
+msgid "Failed to write data to \"%s\""
+msgstr ""
+
+#: ../mousepad/mousepad-file.c:266 ../mousepad/mousepad-file.c:361
+#, c-format
+msgid "Failed to open \"%s\" for reading"
+msgstr ""
+
+#: ../mousepad/mousepad-file.c:279
+#, c-format
+msgid "You are not allowed to read \"%s\""
+msgstr ""
+
+#: ../mousepad/mousepad-search-bar.c:207
+msgid "Fi_nd:"
+msgstr ""
+
+#: ../mousepad/mousepad-search-bar.c:228
+msgid "_Next"
+msgstr ""
+
+#: ../mousepad/mousepad-search-bar.c:240
+msgid "_Previous"
+msgstr ""
+
+#: ../mousepad/mousepad-search-bar.c:251
+msgid "Highlight _All"
+msgstr ""
+
+#: ../mousepad/mousepad-search-bar.c:264 ../mousepad/mousepad-search-bar.c:270
+msgid "Mat_ch Case"
+msgstr ""
+
+#: ../mousepad/mousepad-statusbar.c:170
+#, c-format
+msgid "Line %d Col %d"
+msgstr ""
+
+#: ../mousepad/mousepad-statusbar.c:183
+msgid "OVR"
+msgstr ""
+
+#: ../mousepad/mousepad-statusbar.c:183
+msgid "INS"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:264
+msgid "_File"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:265
+msgid "New _Tab"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:265
+msgid "Create a new document"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:266
+msgid "_New Window"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:266
+msgid "Create a new document in a new window"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:267
+msgid "_Open File"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:267
+msgid "Open a file"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:268
+msgid "Open _Recent"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:269
+msgid "No items found"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:270
+msgid "Clear _History"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:270
+msgid "Clear the recently used files history"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:271
+msgid "_Save"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:271
+msgid "Save the current file"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:272
+msgid "Save _As"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:272
+msgid "Save current document as another file"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:273
+msgid "Re_load"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:273
+msgid "Reload this document."
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:274
+msgid "C_lose Tab"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:274
+msgid "Close the current file"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:275
+msgid "_Close Window"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:275
+msgid "Quit the program"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:276
+msgid "Close _All Windows"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:276
+msgid "Close all Mousepad windows"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:278
+msgid "_Edit"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:279
+msgid "_Undo"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:279
+msgid "Undo the last action"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:280
+msgid "_Redo"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:280
+msgid "Redo the last undone action"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:281
+msgid "Cu_t"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:281
+msgid "Cut the selection"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:282
+msgid "_Copy"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:282
+msgid "Copy the selection"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:283
+msgid "_Paste"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:283
+msgid "Paste the clipboard"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:284
+msgid "_Delete"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:284
+msgid "Delete the selected text"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:285
+msgid "Select _All"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:285
+msgid "Select the entire document"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:287
+msgid "_Search"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:288
+msgid "_Find"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:288
+msgid "Search for text"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:289
+msgid "Find _Next"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:289
+msgid "Search forwards for the same text"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:290
+msgid "Find _Previous"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:290
+msgid "Search backwards for the same text"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:291
+msgid "_Replace"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:291
+msgid "Search for and replace text"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:292
+msgid "_Jump To"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:292
+msgid "Go to a specific line"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:294
+msgid "_View"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:295
+msgid "_Font"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:295
+msgid "Change the editor font"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:297
+msgid "_Document"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:299
+msgid "_Go"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:300
+msgid "Back"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:300
+msgid "Select the previous tab"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:301
+msgid "Forward"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:301
+msgid "Select the next tab"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:303
+msgid "_Help"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:304
+msgid "_About"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:304
+msgid "About this application"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:309
+msgid "_Statusbar"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:309
+msgid "Change the visibility of the statusbar"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:310
+msgid "_Word Wrap"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:310
+msgid "Toggle breaking lines in between words"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:311
+msgid "_Line Numbers"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:312
+msgid "_Auto Indent"
+msgstr ""
+
+#. add the label with the root warning
+#: ../mousepad/mousepad-window.c:468
+msgid "Warning, you are using the root account, you may harm your system."
+msgstr ""
+
+#. show the warning
+#: ../mousepad/mousepad-window.c:775
+msgid "Failed to open file"
+msgstr ""
+
+#. the warnings message for save as
+#: ../mousepad/mousepad-window.c:867
+msgid "Failed to save the document as another file"
+msgstr ""
+
+#. the warning message for save
+#: ../mousepad/mousepad-window.c:896
+msgid "Failed to save the document"
+msgstr ""
+
+#. the warning message for save
+#: ../mousepad/mousepad-window.c:904 ../mousepad/mousepad-window.c:1958
+msgid "Failed to reload the document"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:1057
+msgid "Read Only"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:1618
+#, c-format
+msgid "Open '%s'"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:1728
+msgid "Failed to remove an item from the recent history"
+msgstr ""
+
+#. create new chooser dialog
+#: ../mousepad/mousepad-window.c:1776
+msgid "Open File"
+msgstr ""
+
+#: ../mousepad/mousepad-window.c:2228
+msgid "Choose Mousepad Font"
+msgstr ""
+
+#: ../Mousepad.desktop.in.in.h:2
+msgid "Simple Text Editor"
+msgstr ""
+
+#: ../Mousepad.desktop.in.in.h:3
+msgid "Text Editor"
+msgstr ""


More information about the Xfce4-commits mailing list