static void on_searchentry_activated (GtkEntry *entry, gpointer user_data) { SimpleSearchDialog *ssd = SIMPLE_SEARCH_DIALOG (user_data); /* simulate search response */ on_simple_search_dialog_response (GTK_DIALOG (ssd->priv->dialog), 1, ssd); }
static void on_searchentry_changed (GtkEditable *editable, gpointer user_data) { SimpleSearchDialog *ssd = SIMPLE_SEARCH_DIALOG (user_data); gchar *searchString; /* just to disable the start search button when search string is empty... */ searchString = gtk_editable_get_chars (editable, 0, -1); gtk_widget_set_sensitive (liferea_dialog_lookup (ssd->priv->dialog, "searchstartbtn"), searchString && (0 < strlen (searchString))); }
static void simple_search_dialog_finalize (GObject *object) { SimpleSearchDialog *ssd = SIMPLE_SEARCH_DIALOG (object); gtk_widget_destroy (ssd->priv->dialog); search_clean_results (ssd->priv->vfolder); simpleSearch = NULL; G_OBJECT_CLASS (parent_class_simple)->finalize (object); }
SimpleSearchDialog * simple_search_dialog_open (void) { SimpleSearchDialog *ssd; if (simpleSearch) return simpleSearch; ssd = SIMPLE_SEARCH_DIALOG (g_object_new (SIMPLE_SEARCH_DIALOG_TYPE, NULL)); ssd->priv->dialog = liferea_dialog_new (NULL, "simplesearchdialog"); ssd->priv->query = liferea_dialog_lookup (ssd->priv->dialog, "searchentry"); gtk_window_set_focus (GTK_WINDOW (ssd->priv->dialog), ssd->priv->query); g_signal_connect (G_OBJECT (ssd->priv->dialog), "response", G_CALLBACK (on_simple_search_dialog_response), ssd); g_signal_connect (G_OBJECT (ssd->priv->query), "changed", G_CALLBACK (on_searchentry_changed), ssd); g_signal_connect (G_OBJECT (ssd->priv->query), "activate", G_CALLBACK (on_searchentry_activated), ssd); gtk_widget_show_all (ssd->priv->dialog); simpleSearch = ssd; return ssd; }