diff options
author | Bastien Nocera <hadess@hadess.net> | 2022-03-31 16:13:04 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2022-03-31 16:13:04 +0200 |
commit | 48e2a948fd47eb47377ba652df27c887b5a6e897 (patch) | |
tree | 9e8248c122d211357e71901934cab6af597cff23 /src | |
parent | 1570003efe595bb8781fdf9de3e25d2f7e028052 (diff) | |
download | totem-48e2a948fd47eb47377ba652df27c887b5a6e897.tar.gz |
main: Simplify TotemSearchEntry declaration
Diffstat (limited to 'src')
-rw-r--r-- | src/totem-search-entry.c | 75 | ||||
-rw-r--r-- | src/totem-search-entry.h | 24 |
2 files changed, 38 insertions, 61 deletions
diff --git a/src/totem-search-entry.c b/src/totem-search-entry.c index cb46931c2..d5294d545 100644 --- a/src/totem-search-entry.c +++ b/src/totem-search-entry.c @@ -34,21 +34,22 @@ enum { static guint signals[LAST_SIGNAL] = { 0, }; -struct _TotemSearchEntryPrivate { +struct _TotemSearchEntry { + GtkBox parent; GtkWidget *entry; GtkWidget *popover; GtkWidget *listbox; GdTaggedEntryTag *tag; }; -G_DEFINE_TYPE_WITH_PRIVATE (TotemSearchEntry, totem_search_entry, GTK_TYPE_BOX) +G_DEFINE_TYPE (TotemSearchEntry, totem_search_entry, GTK_TYPE_BOX) static void totem_search_entry_finalize (GObject *obj) { TotemSearchEntry *self = TOTEM_SEARCH_ENTRY (obj); - g_clear_object (&self->priv->tag); + g_clear_object (&self->tag); /* The popover will be destroyed with it parent (us) */ G_OBJECT_CLASS (totem_search_entry_parent_class)->finalize (obj); @@ -60,7 +61,7 @@ entry_activate_cb (GtkEntry *entry, { const char *text; - text = gtk_entry_get_text (GTK_ENTRY (self->priv->entry)); + text = gtk_entry_get_text (GTK_ENTRY (self->entry)); if (text == NULL || *text == '\0') return; g_signal_emit (self, signals[SIGNAL_ACTIVATE], 0); @@ -74,8 +75,8 @@ tag_clicked_cb (GdTaggedEntry *entry, cairo_rectangle_int_t rect; if (gd_tagged_entry_tag_get_area (tag, &rect)) { - gtk_popover_set_pointing_to (GTK_POPOVER (self->priv->popover), &rect); - gtk_widget_show (self->priv->popover); + gtk_popover_set_pointing_to (GTK_POPOVER (self->popover), &rect); + gtk_widget_show (self->popover); } } @@ -97,7 +98,7 @@ listbox_row_activated (GtkListBox *list_box, gtk_widget_set_opacity (check, 1.0); label = g_object_get_data (G_OBJECT (l->data), "label"); - gd_tagged_entry_tag_set_label (self->priv->tag, label); + gd_tagged_entry_tag_set_label (self->tag, label); g_object_notify (G_OBJECT (self), "selected-id"); } else { gtk_widget_set_opacity (check, 0.0); @@ -105,7 +106,7 @@ listbox_row_activated (GtkListBox *list_box, } g_list_free (children); - gtk_widget_hide (self->priv->popover); + gtk_widget_hide (self->popover); } static int @@ -134,7 +135,7 @@ static void popover_closed_cb (GtkPopover *popover, TotemSearchEntry *self) { - gtk_widget_grab_focus (self->priv->entry); + gtk_widget_grab_focus (self->entry); } static void @@ -142,8 +143,6 @@ totem_search_entry_init (TotemSearchEntry *self) { GtkWidget *entry; - self->priv = totem_search_entry_get_instance_private (self); - /* Entry */ entry = GTK_WIDGET (gd_tagged_entry_new ()); gd_tagged_entry_set_tag_button_visible (GD_TAGGED_ENTRY (entry), FALSE); @@ -152,28 +151,28 @@ totem_search_entry_init (TotemSearchEntry *self) TRUE, TRUE, 0); gtk_widget_show (entry); - self->priv->entry = entry; + self->entry = entry; /* Popover */ - self->priv->popover = gtk_popover_new (GTK_WIDGET (self)); - gtk_popover_set_modal (GTK_POPOVER (self->priv->popover), TRUE); - gtk_popover_set_position (GTK_POPOVER (self->priv->popover), GTK_POS_BOTTOM); - g_signal_connect (G_OBJECT (self->priv->popover), "closed", + self->popover = gtk_popover_new (GTK_WIDGET (self)); + gtk_popover_set_modal (GTK_POPOVER (self->popover), TRUE); + gtk_popover_set_position (GTK_POPOVER (self->popover), GTK_POS_BOTTOM); + g_signal_connect (G_OBJECT (self->popover), "closed", G_CALLBACK (popover_closed_cb), self); - self->priv->listbox = gtk_list_box_new (); - gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (self->priv->listbox), TRUE); - gtk_list_box_set_sort_func (GTK_LIST_BOX (self->priv->listbox), sort_sources, self, NULL); - gtk_widget_show (self->priv->listbox); - gtk_container_add (GTK_CONTAINER (self->priv->popover), self->priv->listbox); + self->listbox = gtk_list_box_new (); + gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (self->listbox), TRUE); + gtk_list_box_set_sort_func (GTK_LIST_BOX (self->listbox), sort_sources, self, NULL); + gtk_widget_show (self->listbox); + gtk_container_add (GTK_CONTAINER (self->popover), self->listbox); - g_signal_connect (self->priv->listbox, "row-activated", + g_signal_connect (self->listbox, "row-activated", G_CALLBACK (listbox_row_activated), self); /* Connect signals */ - g_signal_connect (self->priv->entry, "tag-clicked", + g_signal_connect (self->entry, "tag-clicked", G_CALLBACK (tag_clicked_cb), self); - g_signal_connect (self->priv->entry, "activate", + g_signal_connect (self->entry, "activate", G_CALLBACK (entry_activate_cb), self); } @@ -266,10 +265,10 @@ totem_search_entry_add_source (TotemSearchEntry *self, g_return_if_fail (TOTEM_IS_SEARCH_ENTRY (self)); - if (self->priv->tag == NULL) { - self->priv->tag = gd_tagged_entry_tag_new (label); - gd_tagged_entry_tag_set_has_close_button (self->priv->tag, FALSE); - gd_tagged_entry_insert_tag (GD_TAGGED_ENTRY (self->priv->entry), self->priv->tag, -1); + if (self->tag == NULL) { + self->tag = gd_tagged_entry_tag_new (label); + gd_tagged_entry_tag_set_has_close_button (self->tag, FALSE); + gd_tagged_entry_insert_tag (GD_TAGGED_ENTRY (self->entry), self->tag, -1); gtk_widget_set_sensitive (GTK_WIDGET (self), TRUE); } @@ -290,11 +289,11 @@ totem_search_entry_add_source (TotemSearchEntry *self, g_object_set_data (G_OBJECT (item), "priority", GINT_TO_POINTER (priority)); gtk_widget_show_all (item); - gtk_list_box_insert (GTK_LIST_BOX (self->priv->listbox), item, -1); + gtk_list_box_insert (GTK_LIST_BOX (self->listbox), item, -1); /* Is this the local one? */ if (priority == 50) { - listbox_row_activated (GTK_LIST_BOX (self->priv->listbox), + listbox_row_activated (GTK_LIST_BOX (self->listbox), GTK_LIST_BOX_ROW (item), self); } @@ -310,7 +309,7 @@ totem_search_entry_remove_source (TotemSearchEntry *self, g_return_if_fail (TOTEM_IS_SEARCH_ENTRY (self)); - children = gtk_container_get_children (GTK_CONTAINER (self->priv->listbox)); + children = gtk_container_get_children (GTK_CONTAINER (self->listbox)); if (children == NULL) return; @@ -336,8 +335,8 @@ totem_search_entry_remove_source (TotemSearchEntry *self, } if (num_items == 0) { - gd_tagged_entry_remove_tag (GD_TAGGED_ENTRY (self->priv->entry), self->priv->tag); - g_clear_object (&self->priv->tag); + gd_tagged_entry_remove_tag (GD_TAGGED_ENTRY (self->entry), self->tag); + g_clear_object (&self->tag); gtk_widget_set_sensitive (GTK_WIDGET (self), FALSE); } } @@ -347,7 +346,7 @@ totem_search_entry_get_text (TotemSearchEntry *self) { g_return_val_if_fail (TOTEM_IS_SEARCH_ENTRY (self), NULL); - return gtk_entry_get_text (GTK_ENTRY (self->priv->entry)); + return gtk_entry_get_text (GTK_ENTRY (self->entry)); } const char * @@ -357,7 +356,7 @@ totem_search_entry_get_selected_id (TotemSearchEntry *self) const char *id = NULL; g_return_val_if_fail (TOTEM_IS_SEARCH_ENTRY (self), NULL); - children = gtk_container_get_children (GTK_CONTAINER (self->priv->listbox)); + children = gtk_container_get_children (GTK_CONTAINER (self->listbox)); for (l = children; l != NULL; l = l->next) { GtkWidget *check; @@ -382,13 +381,13 @@ totem_search_entry_set_selected_id (TotemSearchEntry *self, g_return_val_if_fail (TOTEM_IS_SEARCH_ENTRY (self), FALSE); g_return_val_if_fail (id != NULL, FALSE); - children = gtk_container_get_children (GTK_CONTAINER (self->priv->listbox)); + children = gtk_container_get_children (GTK_CONTAINER (self->listbox)); for (l = children; l != NULL; l = l->next) { const char *item_id; item_id = g_object_get_data (G_OBJECT (l->data), "id"); if (g_strcmp0 (item_id, id) == 0) { - listbox_row_activated (GTK_LIST_BOX (self->priv->listbox), + listbox_row_activated (GTK_LIST_BOX (self->listbox), GTK_LIST_BOX_ROW (l->data), self); ret = TRUE; @@ -408,5 +407,5 @@ totem_search_entry_get_entry (TotemSearchEntry *self) { g_return_val_if_fail (TOTEM_IS_SEARCH_ENTRY (self), NULL); - return GTK_ENTRY (self->priv->entry); + return GTK_ENTRY (self->entry); } diff --git a/src/totem-search-entry.h b/src/totem-search-entry.h index 96c56c325..18c3b6c75 100644 --- a/src/totem-search-entry.h +++ b/src/totem-search-entry.h @@ -26,32 +26,10 @@ #include <gtk/gtk.h> #define TOTEM_TYPE_SEARCH_ENTRY totem_search_entry_get_type() -#define TOTEM_SEARCH_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TOTEM_TYPE_SEARCH_ENTRY, TotemSearchEntry)) -#define TOTEM_SEARCH_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TOTEM_TYPE_SEARCH_ENTRY, TotemSearchEntryClass)) -#define TOTEM_IS_SEARCH_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TOTEM_TYPE_SEARCH_ENTRY)) -#define TOTEM_IS_SEARCH_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TOTEM_TYPE_SEARCH_ENTRY)) -#define TOTEM_SEARCH_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TOTEM_TYPE_SEARCH_ENTRY, TotemSearchEntryClass)) - -typedef struct _TotemSearchEntry TotemSearchEntry; -typedef struct _TotemSearchEntryClass TotemSearchEntryClass; -typedef struct _TotemSearchEntryPrivate TotemSearchEntryPrivate; - -struct _TotemSearchEntry -{ - GtkBox parent; - - TotemSearchEntryPrivate *priv; -}; - -struct _TotemSearchEntryClass -{ - GtkBoxClass parent_class; -}; +G_DECLARE_FINAL_TYPE(TotemSearchEntry, totem_search_entry, TOTEM, SEARCH_ENTRY, GtkBox) GType totem_search_entry_get_type (void) G_GNUC_CONST; - TotemSearchEntry *totem_search_entry_new (void); - void totem_search_entry_add_source (TotemSearchEntry *entry, const gchar *id, const gchar *label, |