[gtksourceview/wip/regex-search: 2/2] Fix test-search



commit 07836019b351999d4ffb3c6fb3c7e620e84785ee
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Tue Jul 30 18:20:42 2013 +0200

    Fix test-search

 tests/test-search.c  |  245 +++++++++++++++++++++++++-------------------------
 tests/test-search.ui |   22 +++---
 2 files changed, 133 insertions(+), 134 deletions(-)
---
diff --git a/tests/test-search.c b/tests/test-search.c
index 22df00a..a7b584b 100644
--- a/tests/test-search.c
+++ b/tests/test-search.c
@@ -22,32 +22,34 @@
 #include <gtk/gtk.h>
 #include <gtksourceview/gtksource.h>
 
-#define TEST_TYPE_SEARCH_UI             (test_search_ui_get_type ())
-#define TEST_SEARCH_UI(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), TEST_TYPE_SEARCH_UI, 
TestSearchUI))
-#define TEST_SEARCH_UI_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), TEST_TYPE_SEARCH_UI, 
TestSearchUIClass))
-#define TEST_IS_SEARCH_UI(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TEST_TYPE_SEARCH_UI))
-#define TEST_IS_SEARCH_UI_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), TEST_TYPE_SEARCH_UI))
-#define TEST_SEARCH_UI_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), TEST_TYPE_SEARCH_UI, 
TestSearchUIClass))
-
-typedef struct _TestSearchUI        TestSearchUI;
-typedef struct _TestSearchUIClass   TestSearchUIClass;
-typedef struct _TestSearchUIPrivate TestSearchUIPrivate;
-
-struct _TestSearchUI
+#define TEST_TYPE_SEARCH             (test_search_get_type ())
+#define TEST_SEARCH(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), TEST_TYPE_SEARCH, TestSearch))
+#define TEST_SEARCH_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), TEST_TYPE_SEARCH, TestSearchClass))
+#define TEST_IS_SEARCH(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TEST_TYPE_SEARCH))
+#define TEST_IS_SEARCH_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), TEST_TYPE_SEARCH))
+#define TEST_SEARCH_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), TEST_TYPE_SEARCH, TestSearchClass))
+
+typedef struct _TestSearch        TestSearch;
+typedef struct _TestSearchClass   TestSearchClass;
+typedef struct _TestSearchPrivate TestSearchPrivate;
+
+struct _TestSearch
 {
        GtkGrid parent;
-       TestSearchUIPrivate *priv;
+       TestSearchPrivate *priv;
 };
 
-struct _TestSearchUIClass
+struct _TestSearchClass
 {
        GtkGridClass parent_class;
 };
 
-struct _TestSearchUIPrivate
+struct _TestSearchPrivate
 {
        GtkSourceView *source_view;
        GtkSourceBuffer *source_buffer;
+       GtkSourceSearchContext *search_context;
+       GtkSourceSearchSettings *search_settings;
        GtkEntry *replace_entry;
        GtkLabel *label_occurrences;
        GtkLabel *label_regex_error;
@@ -55,13 +57,13 @@ struct _TestSearchUIPrivate
        guint idle_update_label_id;
 };
 
-GType test_search_ui_get_type (void);
+GType test_search_get_type (void);
 
-G_DEFINE_TYPE_WITH_PRIVATE (TestSearchUI, test_search_ui, GTK_TYPE_GRID)
+G_DEFINE_TYPE_WITH_PRIVATE (TestSearch, test_search, GTK_TYPE_GRID)
 
 static void
-open_file (TestSearchUI *search,
-          const gchar  *filename)
+open_file (TestSearch  *search,
+          const gchar *filename)
 {
        gchar *contents;
        GError *error = NULL;
@@ -93,7 +95,7 @@ open_file (TestSearchUI *search,
 }
 
 static void
-update_label_occurrences (TestSearchUI *search)
+update_label_occurrences (TestSearch *search)
 {
        gint occurrences_count;
        GtkTextIter select_start;
@@ -101,15 +103,15 @@ update_label_occurrences (TestSearchUI *search)
        gint occurrence_pos;
        gchar *text;
 
-       occurrences_count = gtk_source_buffer_get_search_occurrences_count (search->priv->source_buffer);
+       occurrences_count = gtk_source_search_context_get_occurrences_count (search->priv->search_context);
 
        gtk_text_buffer_get_selection_bounds (GTK_TEXT_BUFFER (search->priv->source_buffer),
                                              &select_start,
                                              &select_end);
 
-       occurrence_pos = gtk_source_buffer_get_search_occurrence_position (search->priv->source_buffer,
-                                                                          &select_start,
-                                                                          &select_end);
+       occurrence_pos = gtk_source_search_context_get_occurrence_position (search->priv->search_context,
+                                                                           &select_start,
+                                                                           &select_end);
 
        if (occurrences_count == -1)
        {
@@ -129,11 +131,11 @@ update_label_occurrences (TestSearchUI *search)
 }
 
 static void
-update_label_regex_error (TestSearchUI *search)
+update_label_regex_error (TestSearch *search)
 {
        GError *error;
 
-       error = gtk_source_buffer_get_regex_search_error (search->priv->source_buffer);
+       error = gtk_source_search_context_get_regex_error (search->priv->search_context);
 
        if (error == NULL)
        {
@@ -148,28 +150,19 @@ update_label_regex_error (TestSearchUI *search)
        }
 }
 
-/* The search entry is a GtkSearchEntry. The "changed" signal is delayed on a
- * GtkSearchEntry (but not with a simple GtkEntry). That's why the
- * "notify::text" signal is used instead.
- * With the "changed" signal, the search highlighting takes some time to be
- * updated, while with the notify signal, it is immediate.
- *
- * See https://bugzilla.gnome.org/show_bug.cgi?id=700229
- */
 static void
-search_entry_text_notify_cb (TestSearchUI *search,
-                            GParamSpec   *spec,
-                            GtkEntry     *entry)
+search_entry_changed_cb (TestSearch *search,
+                        GtkEntry   *entry)
 {
        const gchar *text = gtk_entry_get_text (entry);
        gchar *unescaped_text = gtk_source_utils_unescape_search_text (text);
 
-       gtk_source_buffer_set_search_text (search->priv->source_buffer, unescaped_text);
+       gtk_source_search_settings_set_search_text (search->priv->search_settings, unescaped_text);
        g_free (unescaped_text);
 }
 
 static void
-select_search_occurrence (TestSearchUI      *search,
+select_search_occurrence (TestSearch        *search,
                          const GtkTextIter *match_start,
                          const GtkTextIter *match_end)
 {
@@ -186,26 +179,26 @@ select_search_occurrence (TestSearchUI      *search,
 }
 
 static void
-backward_search_finished (GtkSourceBuffer *buffer,
-                         GAsyncResult    *result,
-                         TestSearchUI    *search)
+backward_search_finished (GtkSourceSearchContext *search_context,
+                         GAsyncResult           *result,
+                         TestSearch             *search)
 {
        GtkTextIter match_start;
        GtkTextIter match_end;
 
-       if (gtk_source_buffer_backward_search_finish (buffer,
-                                                     result,
-                                                     &match_start,
-                                                     &match_end,
-                                                     NULL))
+       if (gtk_source_search_context_backward_finish (search_context,
+                                                      result,
+                                                      &match_start,
+                                                      &match_end,
+                                                      NULL))
        {
                select_search_occurrence (search, &match_start, &match_end);
        }
 }
 
 static void
-button_previous_clicked_cb (TestSearchUI *search,
-                           GtkButton    *button)
+button_previous_clicked_cb (TestSearch *search,
+                           GtkButton  *button)
 {
        GtkTextIter start_at;
 
@@ -213,34 +206,34 @@ button_previous_clicked_cb (TestSearchUI *search,
                                              &start_at,
                                              NULL);
 
-       gtk_source_buffer_backward_search_async (search->priv->source_buffer,
-                                                &start_at,
-                                                NULL,
-                                                (GAsyncReadyCallback)backward_search_finished,
-                                                search);
+       gtk_source_search_context_backward_async (search->priv->search_context,
+                                                 &start_at,
+                                                 NULL,
+                                                 (GAsyncReadyCallback)backward_search_finished,
+                                                 search);
 }
 
 static void
-forward_search_finished (GtkSourceBuffer *buffer,
-                        GAsyncResult    *result,
-                        TestSearchUI    *search)
+forward_search_finished (GtkSourceSearchContext *search_context,
+                        GAsyncResult           *result,
+                        TestSearch             *search)
 {
        GtkTextIter match_start;
        GtkTextIter match_end;
 
-       if (gtk_source_buffer_forward_search_finish (buffer,
-                                                    result,
-                                                    &match_start,
-                                                    &match_end,
-                                                    NULL))
+       if (gtk_source_search_context_forward_finish (search_context,
+                                                     result,
+                                                     &match_start,
+                                                     &match_end,
+                                                     NULL))
        {
                select_search_occurrence (search, &match_start, &match_end);
        }
 }
 
 static void
-button_next_clicked_cb (TestSearchUI *search,
-                       GtkButton    *button)
+button_next_clicked_cb (TestSearch *search,
+                       GtkButton  *button)
 {
        GtkTextIter start_at;
 
@@ -248,16 +241,16 @@ button_next_clicked_cb (TestSearchUI *search,
                                              NULL,
                                              &start_at);
 
-       gtk_source_buffer_forward_search_async (search->priv->source_buffer,
-                                               &start_at,
-                                               NULL,
-                                               (GAsyncReadyCallback)forward_search_finished,
-                                               search);
+       gtk_source_search_context_forward_async (search->priv->search_context,
+                                                &start_at,
+                                                NULL,
+                                                (GAsyncReadyCallback)forward_search_finished,
+                                                search);
 }
 
 static void
-button_replace_clicked_cb (TestSearchUI *search,
-                          GtkButton    *button)
+button_replace_clicked_cb (TestSearch *search,
+                          GtkButton  *button)
 {
        GtkTextIter match_start;
        GtkTextIter match_end;
@@ -272,37 +265,37 @@ button_replace_clicked_cb (TestSearchUI *search,
        entry_buffer = gtk_entry_get_buffer (search->priv->replace_entry);
        replace_length = gtk_entry_buffer_get_bytes (entry_buffer);
 
-       gtk_source_buffer_search_replace (search->priv->source_buffer,
-                                         &match_start,
-                                         &match_end,
-                                         gtk_entry_get_text (search->priv->replace_entry),
-                                         replace_length);
+       gtk_source_search_context_replace (search->priv->search_context,
+                                          &match_start,
+                                          &match_end,
+                                          gtk_entry_get_text (search->priv->replace_entry),
+                                          replace_length);
 
        gtk_text_buffer_get_selection_bounds (GTK_TEXT_BUFFER (search->priv->source_buffer),
                                              NULL,
                                              &iter);
 
-       gtk_source_buffer_forward_search_async (search->priv->source_buffer,
-                                               &iter,
-                                               NULL,
-                                               (GAsyncReadyCallback)forward_search_finished,
-                                               search);
+       gtk_source_search_context_forward_async (search->priv->search_context,
+                                                &iter,
+                                                NULL,
+                                                (GAsyncReadyCallback)forward_search_finished,
+                                                search);
 }
 
 static void
-button_replace_all_clicked_cb (TestSearchUI *search,
-                              GtkButton    *button)
+button_replace_all_clicked_cb (TestSearch *search,
+                              GtkButton  *button)
 {
        GtkEntryBuffer *entry_buffer = gtk_entry_get_buffer (search->priv->replace_entry);
        gint replace_length = gtk_entry_buffer_get_bytes (entry_buffer);
 
-       gtk_source_buffer_search_replace_all (search->priv->source_buffer,
-                                             gtk_entry_get_text (search->priv->replace_entry),
-                                             replace_length);
+       gtk_source_search_context_replace_all (search->priv->search_context,
+                                              gtk_entry_get_text (search->priv->replace_entry),
+                                              replace_length);
 }
 
 static gboolean
-update_label_idle_cb (TestSearchUI *search)
+update_label_idle_cb (TestSearch *search)
 {
        search->priv->idle_update_label_id = 0;
 
@@ -315,7 +308,7 @@ static void
 mark_set_cb (GtkTextBuffer *buffer,
             GtkTextIter   *location,
             GtkTextMark   *mark,
-            TestSearchUI  *search)
+            TestSearch    *search)
 {
        GtkTextMark *insert;
        GtkTextMark *selection_bound;
@@ -332,72 +325,73 @@ mark_set_cb (GtkTextBuffer *buffer,
 }
 
 static void
-highlight_toggled_cb (TestSearchUI    *search,
+highlight_toggled_cb (TestSearch      *search,
                      GtkToggleButton *button)
 {
-       gtk_source_buffer_set_highlight_search (search->priv->source_buffer,
-                                               gtk_toggle_button_get_active (button));
+       /* TODO */
 }
 
 static void
-match_case_toggled_cb (TestSearchUI    *search,
+match_case_toggled_cb (TestSearch      *search,
                       GtkToggleButton *button)
 {
-       gtk_source_buffer_set_case_sensitive_search (search->priv->source_buffer,
-                                                    gtk_toggle_button_get_active (button));
+       gtk_source_search_settings_set_case_sensitive (search->priv->search_settings,
+                                                      gtk_toggle_button_get_active (button));
 }
 
 static void
-at_word_boundaries_toggled_cb (TestSearchUI    *search,
+at_word_boundaries_toggled_cb (TestSearch      *search,
                               GtkToggleButton *button)
 {
-       gtk_source_buffer_set_search_at_word_boundaries (search->priv->source_buffer,
-                                                        gtk_toggle_button_get_active (button));
+       gtk_source_search_settings_set_at_word_boundaries (search->priv->search_settings,
+                                                          gtk_toggle_button_get_active (button));
 }
 
 static void
-wrap_around_toggled_cb (TestSearchUI    *search,
-                       GtkToggleButton *button)
+wrap_around_toggled_cb (TestSearch      *search,
+                       GtkToggleButton *button)
 {
-       gtk_source_buffer_set_search_wrap_around (search->priv->source_buffer,
-                                                 gtk_toggle_button_get_active (button));
+       gtk_source_search_settings_set_wrap_around (search->priv->search_settings,
+                                                   gtk_toggle_button_get_active (button));
 }
 
 static void
-regex_toggled_cb (TestSearchUI    *search,
+regex_toggled_cb (TestSearch      *search,
                  GtkToggleButton *button)
 {
-       gtk_source_buffer_set_regex_search (search->priv->source_buffer,
-                                           gtk_toggle_button_get_active (button));
+       gtk_source_search_settings_set_regex_enabled (search->priv->search_settings,
+                                                     gtk_toggle_button_get_active (button));
 }
 
 static void
-test_search_ui_dispose (GObject *object)
+test_search_dispose (GObject *object)
 {
-       TestSearchUI *search = TEST_SEARCH_UI (object);
+       TestSearch *search = TEST_SEARCH (object);
 
        g_clear_object (&search->priv->source_buffer);
+       g_clear_object (&search->priv->search_context);
+       g_clear_object (&search->priv->search_settings);
 
-       G_OBJECT_CLASS (test_search_ui_parent_class)->dispose (object);
+       G_OBJECT_CLASS (test_search_parent_class)->dispose (object);
 }
 
 static void
-test_search_ui_class_init (TestSearchUIClass *klass)
+test_search_class_init (TestSearchClass *klass)
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
        GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
-       object_class->dispose = test_search_ui_dispose;
+       object_class->dispose = test_search_dispose;
 
        gtk_widget_class_set_template_from_resource (widget_class,
                                                     "/org/gnome/gtksourceview/tests/ui/test-search.ui");
 
-       gtk_widget_class_bind_template_child_private (widget_class, TestSearchUI, source_view);
-       gtk_widget_class_bind_template_child_private (widget_class, TestSearchUI, replace_entry);
-       gtk_widget_class_bind_template_child_private (widget_class, TestSearchUI, label_occurrences);
-       gtk_widget_class_bind_template_child_private (widget_class, TestSearchUI, label_regex_error);
+       gtk_widget_class_bind_template_child_private (widget_class, TestSearch, source_view);
+       gtk_widget_class_bind_template_child_private (widget_class, TestSearch, replace_entry);
+       gtk_widget_class_bind_template_child_private (widget_class, TestSearch, label_occurrences);
+       gtk_widget_class_bind_template_child_private (widget_class, TestSearch, label_regex_error);
 
-       gtk_widget_class_bind_template_callback (widget_class, search_entry_text_notify_cb);
+       gtk_widget_class_bind_template_callback (widget_class, search_entry_changed_cb);
        gtk_widget_class_bind_template_callback (widget_class, button_previous_clicked_cb);
        gtk_widget_class_bind_template_callback (widget_class, button_next_clicked_cb);
        gtk_widget_class_bind_template_callback (widget_class, button_replace_clicked_cb);
@@ -415,11 +409,11 @@ test_search_ui_class_init (TestSearchUIClass *klass)
 }
 
 static void
-test_search_ui_init (TestSearchUI *search)
+test_search_init (TestSearch *search)
 {
        PangoFontDescription *font;
 
-       search->priv = test_search_ui_get_instance_private (search);
+       search->priv = test_search_get_instance_private (search);
 
        gtk_widget_init_template (GTK_WIDGET (search));
 
@@ -437,7 +431,12 @@ test_search_ui_init (TestSearchUI *search)
 
        open_file (search, TOP_SRCDIR "/gtksourceview/gtksourcesearchcontext.c");
 
-       g_signal_connect_swapped (search->priv->source_buffer,
+       search->priv->search_settings = gtk_source_search_settings_new ();
+
+       search->priv->search_context = gtk_source_search_context_new (search->priv->source_buffer,
+                                                                     search->priv->search_settings);
+
+       g_signal_connect_swapped (search->priv->search_context,
                                  "notify::search-occurrences-count",
                                  G_CALLBACK (update_label_occurrences),
                                  search);
@@ -447,7 +446,7 @@ test_search_ui_init (TestSearchUI *search)
                          G_CALLBACK (mark_set_cb),
                          search);
 
-       g_signal_connect_swapped (search->priv->source_buffer,
+       g_signal_connect_swapped (search->priv->search_context,
                                  "notify::regex-search-error",
                                  G_CALLBACK (update_label_regex_error),
                                  search);
@@ -455,17 +454,17 @@ test_search_ui_init (TestSearchUI *search)
        update_label_regex_error (search);
 }
 
-static TestSearchUI *
-test_search_ui_new (void)
+static TestSearch *
+test_search_new (void)
 {
-       return g_object_new (test_search_ui_get_type (), NULL);
+       return g_object_new (test_search_get_type (), NULL);
 }
 
 gint
 main (gint argc, gchar *argv[])
 {
        GtkWidget *window;
-       TestSearchUI *search;
+       TestSearch *search;
 
        gtk_init (&argc, &argv);
 
@@ -478,7 +477,7 @@ main (gint argc, gchar *argv[])
                          G_CALLBACK (gtk_main_quit),
                          NULL);
 
-       search = test_search_ui_new ();
+       search = test_search_new ();
        gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (search));
 
        gtk_widget_show (window);
diff --git a/tests/test-search.ui b/tests/test-search.ui
index 9fbab66..c4d3e3b 100644
--- a/tests/test-search.ui
+++ b/tests/test-search.ui
@@ -26,7 +26,7 @@
     <property name="stock">gtk-find-and-replace</property>
     <property name="icon_size">1</property>
   </object>
-  <template class="TestSearchUI" parent="GtkGrid">
+  <template class="TestSearch" parent="GtkGrid">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
@@ -88,7 +88,7 @@
             <property name="primary_icon_name">edit-find-symbolic</property>
             <property name="primary_icon_activatable">False</property>
             <property name="primary_icon_sensitive">False</property>
-            <signal name="notify::text" handler="search_entry_text_notify_cb" object="TestSearchUI" 
swapped="yes"/>
+            <signal name="changed" handler="search_entry_changed_cb" object="TestSearch" swapped="yes"/>
           </object>
           <packing>
             <property name="left_attach">1</property>
@@ -118,7 +118,7 @@
             <property name="receives_default">True</property>
             <property name="halign">start</property>
             <property name="image">image1</property>
-            <signal name="clicked" handler="button_previous_clicked_cb" object="TestSearchUI" swapped="yes"/>
+            <signal name="clicked" handler="button_previous_clicked_cb" object="TestSearch" swapped="yes"/>
           </object>
           <packing>
             <property name="left_attach">2</property>
@@ -134,7 +134,7 @@
             <property name="receives_default">True</property>
             <property name="halign">start</property>
             <property name="image">image2</property>
-            <signal name="clicked" handler="button_next_clicked_cb" object="TestSearchUI" swapped="yes"/>
+            <signal name="clicked" handler="button_next_clicked_cb" object="TestSearch" swapped="yes"/>
           </object>
           <packing>
             <property name="left_attach">3</property>
@@ -186,7 +186,7 @@
             <property name="receives_default">False</property>
             <property name="xalign">0</property>
             <property name="draw_indicator">True</property>
-            <signal name="toggled" handler="match_case_toggled_cb" object="TestSearchUI" swapped="yes"/>
+            <signal name="toggled" handler="match_case_toggled_cb" object="TestSearch" swapped="yes"/>
           </object>
           <packing>
             <property name="left_attach">0</property>
@@ -203,7 +203,7 @@
             <property name="receives_default">False</property>
             <property name="xalign">0</property>
             <property name="draw_indicator">True</property>
-            <signal name="toggled" handler="at_word_boundaries_toggled_cb" object="TestSearchUI" 
swapped="yes"/>
+            <signal name="toggled" handler="at_word_boundaries_toggled_cb" object="TestSearch" 
swapped="yes"/>
           </object>
           <packing>
             <property name="left_attach">0</property>
@@ -221,7 +221,7 @@
             <property name="xalign">0</property>
             <property name="active">True</property>
             <property name="draw_indicator">True</property>
-            <signal name="toggled" handler="wrap_around_toggled_cb" object="TestSearchUI" swapped="yes"/>
+            <signal name="toggled" handler="wrap_around_toggled_cb" object="TestSearch" swapped="yes"/>
           </object>
           <packing>
             <property name="left_attach">0</property>
@@ -239,7 +239,7 @@
             <property name="xalign">0</property>
             <property name="active">True</property>
             <property name="draw_indicator">True</property>
-            <signal name="toggled" handler="highlight_toggled_cb" object="TestSearchUI" swapped="yes"/>
+            <signal name="toggled" handler="highlight_toggled_cb" object="TestSearch" swapped="yes"/>
           </object>
           <packing>
             <property name="left_attach">0</property>
@@ -256,7 +256,7 @@
             <property name="receives_default">False</property>
             <property name="xalign">0</property>
             <property name="draw_indicator">True</property>
-            <signal name="toggled" handler="regex_toggled_cb" object="TestSearchUI" swapped="yes"/>
+            <signal name="toggled" handler="regex_toggled_cb" object="TestSearch" swapped="yes"/>
           </object>
           <packing>
             <property name="left_attach">0</property>
@@ -314,7 +314,7 @@
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
             <property name="image">image3</property>
-            <signal name="clicked" handler="button_replace_clicked_cb" object="TestSearchUI" swapped="yes"/>
+            <signal name="clicked" handler="button_replace_clicked_cb" object="TestSearch" swapped="yes"/>
           </object>
           <packing>
             <property name="left_attach">2</property>
@@ -331,7 +331,7 @@
             <property name="receives_default">True</property>
             <property name="image">image4</property>
             <property name="always_show_image">True</property>
-            <signal name="clicked" handler="button_replace_all_clicked_cb" object="TestSearchUI" 
swapped="yes"/>
+            <signal name="clicked" handler="button_replace_all_clicked_cb" object="TestSearch" 
swapped="yes"/>
           </object>
           <packing>
             <property name="left_attach">3</property>


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