Prechádzať zdrojové kódy

Use template callbacks

Matthias Vogelgesang 7 rokov pred
rodič
commit
afa8d38cbb
2 zmenil súbory, kde vykonal 10 pridanie a 10 odobranie
  1. 7 10
      src/iridium-window.c
  2. 3 0
      src/iridium-window.ui

+ 7 - 10
src/iridium-window.c

@@ -44,19 +44,19 @@ struct _IridiumWindow
 G_DEFINE_TYPE (IridiumWindow, iridium_window, GTK_TYPE_APPLICATION_WINDOW)
 
 static void
-iridium_window_tag_selected (GtkListBox *box, IridiumTagRow *row, IridiumWindow *self)
+on_tag_selected (IridiumWindow *self, IridiumTagRow *row, gpointer user_data)
 {
   gtk_list_box_invalidate_filter (self->note_list);
 }
 
 static void
-iridium_window_search_changed (GtkSearchEntry *entry, IridiumWindow *self)
+on_search_changed (IridiumWindow *self, GtkSearchEntry *entry)
 {
   gtk_list_box_invalidate_filter (self->note_list);
 }
 
 static void
-iridium_window_note_selected (GtkListBox *box, IridiumNoteRow *row, IridiumWindow *self)
+on_note_selected (IridiumWindow *self, IridiumNoteRow *row, gpointer user_data)
 {
   IridiumNote *note;
   GtkTextBuffer *buffer;
@@ -140,6 +140,10 @@ iridium_window_class_init (IridiumWindowClass *klass)
   gtk_widget_class_bind_template_child (widget_class, IridiumWindow, main_pane);
   gtk_widget_class_bind_template_child (widget_class, IridiumWindow, search_bar);
   gtk_widget_class_bind_template_child (widget_class, IridiumWindow, search_entry);
+
+  gtk_widget_class_bind_template_callback (widget_class, on_tag_selected);
+  gtk_widget_class_bind_template_callback (widget_class, on_note_selected);
+  gtk_widget_class_bind_template_callback (widget_class, on_search_changed);
 }
 
 static void
@@ -189,13 +193,6 @@ iridium_window_init (IridiumWindow *self)
   gtk_list_box_insert (self->tag_list, iridium_tag_row_new (tags[0]), -1);
   gtk_list_box_insert (self->tag_list, iridium_tag_row_new (tags[1]), -1);
 
-  g_signal_connect (self->tag_list, "row-selected",
-      G_CALLBACK (iridium_window_tag_selected), self);
-  g_signal_connect (self->note_list, "row-selected",
-      G_CALLBACK (iridium_window_note_selected), self);
-  g_signal_connect (self->search_entry, "search-changed",
-      G_CALLBACK (iridium_window_search_changed), self);
-
   gtk_list_box_set_filter_func (self->note_list, (GtkListBoxFilterFunc) iridium_window_note_visible, self, NULL);
 
   gtk_widget_show_all (GTK_WIDGET (self->tag_list));

+ 3 - 0
src/iridium-window.ui

@@ -41,6 +41,7 @@
                   <object class="GtkSearchEntry" id="search_entry">
                     <property name="visible">True</property>
                     <property name="hexpand">True</property>
+                    <signal name="search-changed" handler="on_search_changed" object="IridiumWindow"/>
                   </object>
                 </child>
               </object>
@@ -59,6 +60,7 @@
                   <object class="GtkListBox" id="tag_list">
                     <property name="visible">True</property>
                     <property name="expand">True</property>
+                    <signal name="row-selected" handler="on_tag_selected" object="IridiumWindow"/>
                     <style>
                       <class name="list-box"/>
                     </style>
@@ -68,6 +70,7 @@
                   <object class="GtkListBox" id="note_list">
                     <property name="visible">True</property>
                     <property name="expand">True</property>
+                    <signal name="row-selected" handler="on_note_selected" object="IridiumWindow"/>
                     <style>
                       <class name="list-box"/>
                     </style>