From a1dfaddd014997e702b88d7bf2eb2e1abdda3c0b Mon Sep 17 00:00:00 2001 From: Bruce Cowan <bruce@bcowan.me.uk> Date: Tue, 4 Feb 2020 22:03:49 +0000 Subject: [PATCH] Use GObject bind --- data/interface.ui | 3 +-- src/rugby-app-window.c | 15 ++++++--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/data/interface.ui b/data/interface.ui index dbfa66f..9c10b6b 100644 --- a/data/interface.ui +++ b/data/interface.ui @@ -64,12 +64,11 @@ </object> </child> <child> - <object class="GtkSpinButton"> + <object class="GtkSpinButton" id="scorespin"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="text" translatable="yes">0</property> <property name="adjustment">adjustment1</property> - <signal name="value-changed" handler="scorespin_value_changed_cb" swapped="no"/> </object> <packing> <property name="position">1</property> diff --git a/src/rugby-app-window.c b/src/rugby-app-window.c index 9200cda..ed8563d 100644 --- a/src/rugby-app-window.c +++ b/src/rugby-app-window.c @@ -16,19 +16,12 @@ struct _RugbyAppWindow RugbyListStore *store; + GtkWidget *scorespin; GtkWidget *listbox; }; G_DEFINE_TYPE (RugbyAppWindow, rugby_app_window, GTK_TYPE_APPLICATION_WINDOW) -static void -scorespin_value_changed_cb (GtkSpinButton *spin, - RugbyAppWindow *self) -{ - int score = gtk_spin_button_get_value_as_int (spin); - rugby_list_store_set_score (self->store, score); -} - static GtkWidget * listbox_widget_func (gpointer item, gpointer user_data) @@ -49,6 +42,10 @@ rugby_app_window_init (RugbyAppWindow *self) listbox_widget_func, NULL, NULL); + + g_object_bind_property (self->scorespin, "value", + self->store, "score", + G_BINDING_DEFAULT); } static void @@ -72,8 +69,8 @@ rugby_app_window_class_init (RugbyAppWindowClass *klass) gtk_widget_class_set_template_from_resource (widget_class, "/uk/me/bcowan/rugby/interface.ui"); + gtk_widget_class_bind_template_child (widget_class, RugbyAppWindow, scorespin); gtk_widget_class_bind_template_child (widget_class, RugbyAppWindow, listbox); - gtk_widget_class_bind_template_callback (widget_class, scorespin_value_changed_cb); } RugbyAppWindow * -- GitLab