[tepl] LanguageChooserWidget: implement the TeplLanguageChooser interface
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tepl] LanguageChooserWidget: implement the TeplLanguageChooser interface
- Date: Sun, 1 Nov 2020 00:45:19 +0000 (UTC)
commit bf6a64e7e2baf08f724b63c1d91b66fdf5fec7cc
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sun Nov 1 00:54:47 2020 +0100
LanguageChooserWidget: implement the TeplLanguageChooser interface
And adapt the test for the new signal name.
tepl/tepl-language-chooser-widget.c | 51 ++++++++++++++++++------------------
tepl/tepl-language-chooser-widget.h | 4 ---
tests/test-language-chooser-widget.c | 10 +++----
3 files changed, 31 insertions(+), 34 deletions(-)
---
diff --git a/tepl/tepl-language-chooser-widget.c b/tepl/tepl-language-chooser-widget.c
index 9804f84..ee07983 100644
--- a/tepl/tepl-language-chooser-widget.c
+++ b/tepl/tepl-language-chooser-widget.c
@@ -3,6 +3,7 @@
*/
#include "tepl-language-chooser-widget.h"
+#include "tepl-language-chooser.h"
/**
* SECTION:language-chooser-widget
@@ -16,17 +17,17 @@ struct _TeplLanguageChooserWidgetPrivate
GtkListBox *list_box;
};
-enum
-{
- SIGNAL_LANGUAGE_SELECTED,
- N_SIGNALS
-};
-
-static guint signals[N_SIGNALS];
-
#define LIST_BOX_ROW_LANGUAGE_KEY "language-key"
-G_DEFINE_TYPE_WITH_PRIVATE (TeplLanguageChooserWidget, tepl_language_chooser_widget, GTK_TYPE_GRID)
+static void tepl_language_chooser_interface_init (gpointer g_iface,
+ gpointer iface_data);
+
+G_DEFINE_TYPE_WITH_CODE (TeplLanguageChooserWidget,
+ tepl_language_chooser_widget,
+ GTK_TYPE_GRID,
+ G_ADD_PRIVATE (TeplLanguageChooserWidget)
+ G_IMPLEMENT_INTERFACE (TEPL_TYPE_LANGUAGE_CHOOSER,
+ tepl_language_chooser_interface_init))
static void
list_box_row_set_language (GtkListBoxRow *list_box_row,
@@ -62,22 +63,22 @@ tepl_language_chooser_widget_class_init (TeplLanguageChooserWidgetClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->dispose = tepl_language_chooser_widget_dispose;
+}
- /**
- * TeplLanguageChooserWidget::language-selected:
- * @chooser_widget: the #TeplLanguageChooserWidget emitting the signal.
- * @language: the #GtkSourceLanguage object that has been selected,
- * guaranteed to be non-%NULL.
- *
- * Since: 5.2
- */
- signals[SIGNAL_LANGUAGE_SELECTED] =
- g_signal_new ("language-selected",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (TeplLanguageChooserWidgetClass, language_selected),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1, GTK_SOURCE_TYPE_LANGUAGE);
+static void
+tepl_language_chooser_widget_select_language (TeplLanguageChooser *chooser,
+ GtkSourceLanguage *language)
+{
+ /* TODO */
+}
+
+static void
+tepl_language_chooser_interface_init (gpointer g_iface,
+ gpointer iface_data)
+{
+ TeplLanguageChooserInterface *interface = g_iface;
+
+ interface->select_language = tepl_language_chooser_widget_select_language;
}
static void
@@ -190,7 +191,7 @@ list_box_row_activated_cb (GtkListBox *list_box,
g_return_if_fail (language != NULL);
g_object_ref (language);
- g_signal_emit (chooser_widget, signals[SIGNAL_LANGUAGE_SELECTED], 0, language);
+ g_signal_emit_by_name (chooser_widget, "language-activated", language);
g_object_unref (language);
}
diff --git a/tepl/tepl-language-chooser-widget.h b/tepl/tepl-language-chooser-widget.h
index fa79dc2..20029a9 100644
--- a/tepl/tepl-language-chooser-widget.h
+++ b/tepl/tepl-language-chooser-widget.h
@@ -36,10 +36,6 @@ struct _TeplLanguageChooserWidgetClass
{
GtkGridClass parent_class;
- /* Signals */
- void (* language_selected) (TeplLanguageChooserWidget *chooser_widget,
- GtkSourceLanguage *language);
-
gpointer padding[12];
};
diff --git a/tests/test-language-chooser-widget.c b/tests/test-language-chooser-widget.c
index 5b5a7eb..bc42aec 100644
--- a/tests/test-language-chooser-widget.c
+++ b/tests/test-language-chooser-widget.c
@@ -6,9 +6,9 @@
#include <stdlib.h>
static void
-language_selected_cb (TeplLanguageChooserWidget *chooser_widget,
- GtkSourceLanguage *language,
- gpointer user_data)
+language_activated_cb (TeplLanguageChooser *chooser,
+ GtkSourceLanguage *language,
+ gpointer user_data)
{
g_message ("Language selected: %s", gtk_source_language_get_id (language));
}
@@ -30,8 +30,8 @@ main (int argc,
gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (chooser_widget));
g_signal_connect (chooser_widget,
- "language-selected",
- G_CALLBACK (language_selected_cb),
+ "language-activated",
+ G_CALLBACK (language_activated_cb),
NULL);
gtk_widget_show_all (window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]