[tepl] LanguageChooserWidget: implement select_language()



commit 2bb49cdc28667c4979e1cf4c92ec7ee257b2025c
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Wed Nov 4 21:59:18 2020 +0100

    LanguageChooserWidget: implement select_language()

 tepl/tepl-language-chooser-widget.c  | 21 ++++++++++++++++++++-
 tests/test-language-chooser-widget.c | 14 ++++++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)
---
diff --git a/tepl/tepl-language-chooser-widget.c b/tepl/tepl-language-chooser-widget.c
index 281f540..4e02cf1 100644
--- a/tepl/tepl-language-chooser-widget.c
+++ b/tepl/tepl-language-chooser-widget.c
@@ -109,7 +109,26 @@ static void
 tepl_language_chooser_widget_select_language (TeplLanguageChooser *chooser,
                                              GtkSourceLanguage   *language)
 {
-       /* TODO */
+       TeplLanguageChooserWidget *chooser_widget = TEPL_LANGUAGE_CHOOSER_WIDGET (chooser);
+       GList *all_rows;
+       GList *l;
+
+       all_rows = gtk_container_get_children (GTK_CONTAINER (chooser_widget->priv->list_box));
+
+       for (l = all_rows; l != NULL; l = l->next)
+       {
+               GtkListBoxRow *cur_row = GTK_LIST_BOX_ROW (l->data);
+               GtkSourceLanguage *cur_language;
+
+               cur_language = list_box_row_get_language (cur_row);
+               if (cur_language == language)
+               {
+                       gtk_list_box_select_row (chooser_widget->priv->list_box, cur_row);
+                       break;
+               }
+       }
+
+       g_list_free (all_rows);
 }
 
 static void
diff --git a/tests/test-language-chooser-widget.c b/tests/test-language-chooser-widget.c
index 2196d25..ecb4a43 100644
--- a/tests/test-language-chooser-widget.c
+++ b/tests/test-language-chooser-widget.c
@@ -20,6 +20,19 @@ language_activated_cb (TeplLanguageChooser *chooser,
        }
 }
 
+static void
+select_random_language (TeplLanguageChooserWidget *chooser_widget)
+{
+       GtkSourceLanguageManager *manager;
+       GtkSourceLanguage *language;
+
+       manager = gtk_source_language_manager_get_default ();
+       // html has been picked at random.
+       language = gtk_source_language_manager_get_language (manager, "html");
+
+       tepl_language_chooser_select_language (TEPL_LANGUAGE_CHOOSER (chooser_widget), language);
+}
+
 int
 main (int    argc,
       char **argv)
@@ -33,6 +46,7 @@ main (int    argc,
        g_signal_connect (window, "destroy", gtk_main_quit, NULL);
 
        chooser_widget = tepl_language_chooser_widget_new ();
+       select_random_language (chooser_widget);
        gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (chooser_widget));
 
        g_signal_connect (chooser_widget,


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