44 |
on_searchokbutton_clicked (GtkButton * button, gpointer user_data) |
on_searchokbutton_clicked (GtkButton * button, gpointer user_data) |
45 |
{ |
{ |
46 |
GtkWidget *dialog_vbox, *dialog_action_area, *searchresultokbutton, |
GtkWidget *dialog_vbox, *dialog_action_area, *searchresultokbutton, |
47 |
*searchdialog, *searchresultdialog, *searchcomboentry, *resultlabel, |
*searchdialog, *searchresultdialog, *resultlabel, |
48 |
*searchcheckbutton, *searchcombo; |
*searchcheckbutton, *searchcombo; |
49 |
GdkPixbuf *searchresultdialog_icon_pixbuf; |
GdkPixbuf *searchresultdialog_icon_pixbuf; |
50 |
gchar *searchstr, *upsearchstr, *callsign, *current, *nr, *labeltext; |
gchar *searchstr, *upsearchstr, *callsign, *current, *nr, *labeltext, *s; |
51 |
gint i; |
gint i, num; |
52 |
gboolean valid, result = FALSE, searchopen; |
gboolean valid, result = FALSE, searchopen; |
53 |
GList *node; |
GList *node; |
54 |
logtype *logwindow; |
logtype *logwindow; |
59 |
|
|
60 |
searchdialog = gtk_widget_get_toplevel (GTK_WIDGET (button)); |
searchdialog = gtk_widget_get_toplevel (GTK_WIDGET (button)); |
61 |
searchcombo = lookup_widget (searchdialog, "searchcombo"); |
searchcombo = lookup_widget (searchdialog, "searchcombo"); |
|
searchcomboentry = lookup_widget (searchdialog, "searchcomboentry"); |
|
62 |
searchcheckbutton = lookup_widget (searchdialog, "searchcheckbutton"); |
searchcheckbutton = lookup_widget (searchdialog, "searchcheckbutton"); |
63 |
|
|
64 |
searchopen = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(searchcheckbutton)); |
searchopen = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(searchcheckbutton)); |
65 |
searchstr = gtk_editable_get_chars (GTK_EDITABLE (searchcomboentry), 0, -1); |
searchstr = gtk_editable_get_chars |
66 |
|
(GTK_EDITABLE (GTK_BIN(searchcombo)->child), 0, -1); |
67 |
|
|
68 |
node = g_list_find_custom (searchhistory, searchstr, (GCompareFunc) strcmp); |
node = g_list_find_custom (searchhistory, searchstr, (GCompareFunc) strcmp); |
69 |
if (!node) |
if (!node) |
156 |
else |
else |
157 |
{ |
{ |
158 |
if (searchhistory) |
if (searchhistory) |
159 |
gtk_combo_set_popdown_strings (GTK_COMBO(searchcombo), searchhistory); |
{ |
160 |
gtk_entry_set_text (GTK_ENTRY (searchcomboentry), searchstr); |
num = g_list_length (searchhistory); |
161 |
|
for (i = 0; i < num; i++) |
162 |
|
{ |
163 |
|
s = g_list_nth_data (searchhistory, i); |
164 |
|
gtk_combo_box_append_text (GTK_COMBO_BOX (searchcombo), s); |
165 |
|
} |
166 |
|
} |
167 |
|
gtk_entry_set_text (GTK_ENTRY (GTK_BIN(searchcombo)->child), searchstr); |
168 |
} |
} |
169 |
g_free (searchstr); |
g_free (searchstr); |
170 |
g_free (upsearchstr); |
g_free (upsearchstr); |
182 |
|
|
183 |
/* search changed, reset saved state */ |
/* search changed, reset saved state */ |
184 |
static void |
static void |
185 |
on_searchcomboentry_changed (GtkEditable * editable, gpointer user_data) |
on_searchcombo_changed (GtkEditable * editable, gpointer user_data) |
186 |
{ |
{ |
187 |
state.searchstr = g_strdup (""); |
state.searchstr = g_strdup (""); |
188 |
} |
} |
213 |
on_menu_search_activate (GtkMenuItem * menuitem, gpointer user_data) |
on_menu_search_activate (GtkMenuItem * menuitem, gpointer user_data) |
214 |
{ |
{ |
215 |
GtkWidget *searchdialog, *dialog_vbox, *vbox, *searchlabel, *searchcombo, |
GtkWidget *searchdialog, *dialog_vbox, *vbox, *searchlabel, *searchcombo, |
216 |
*searchcomboentry, *searchcheckbutton, *dialog_action_area, |
*searchcheckbutton, *dialog_action_area, *searchcancelbutton, |
217 |
*searchcancelbutton, *searchokbutton; |
*searchokbutton; |
218 |
GdkPixbuf *searchdialog_icon_pixbuf; |
GdkPixbuf *searchdialog_icon_pixbuf; |
219 |
|
gint i, num; |
220 |
|
gchar *s; |
221 |
|
|
222 |
searchdialog = gtk_dialog_new (); |
searchdialog = gtk_dialog_new (); |
223 |
gtk_window_set_title (GTK_WINDOW (searchdialog), _("xlog - search")); |
gtk_window_set_title (GTK_WINDOW (searchdialog), _("xlog - search")); |
243 |
gtk_label_set_justify (GTK_LABEL (searchlabel), GTK_JUSTIFY_CENTER); |
gtk_label_set_justify (GTK_LABEL (searchlabel), GTK_JUSTIFY_CENTER); |
244 |
gtk_label_set_line_wrap (GTK_LABEL (searchlabel), TRUE); |
gtk_label_set_line_wrap (GTK_LABEL (searchlabel), TRUE); |
245 |
|
|
246 |
searchcombo = gtk_combo_new (); |
searchcombo = gtk_combo_box_new_text (); |
|
g_object_set_data (G_OBJECT (GTK_COMBO (searchcombo)->popwin), |
|
|
"GladeParentKey", searchcombo); |
|
247 |
gtk_widget_show (searchcombo); |
gtk_widget_show (searchcombo); |
248 |
gtk_box_pack_start (GTK_BOX (vbox), searchcombo, FALSE, FALSE, 0); |
gtk_box_pack_start (GTK_BOX (vbox), searchcombo, FALSE, FALSE, 0); |
249 |
|
|
|
searchcomboentry = GTK_COMBO (searchcombo)->entry; |
|
|
gtk_widget_show (searchcomboentry); |
|
|
gtk_entry_set_max_length (GTK_ENTRY (searchcomboentry), 15); |
|
|
|
|
250 |
searchcheckbutton = gtk_check_button_new_with_mnemonic (_("Keep this dialog open")); |
searchcheckbutton = gtk_check_button_new_with_mnemonic (_("Keep this dialog open")); |
251 |
gtk_widget_show (searchcheckbutton); |
gtk_widget_show (searchcheckbutton); |
252 |
gtk_box_pack_start (GTK_BOX (vbox), searchcheckbutton, FALSE, FALSE, 0); |
gtk_box_pack_start (GTK_BOX (vbox), searchcheckbutton, FALSE, FALSE, 0); |
268 |
g_signal_connect ((gpointer) searchdialog, "delete_event", |
g_signal_connect ((gpointer) searchdialog, "delete_event", |
269 |
G_CALLBACK (on_searchdialog_delete_event), |
G_CALLBACK (on_searchdialog_delete_event), |
270 |
NULL); |
NULL); |
271 |
g_signal_connect ((gpointer) searchcomboentry, "changed", |
g_signal_connect ((gpointer) searchcombo, "changed", |
272 |
G_CALLBACK (on_searchcomboentry_changed), |
G_CALLBACK (on_searchcombo_changed), |
273 |
NULL); |
NULL); |
274 |
g_signal_connect ((gpointer) searchcheckbutton, "toggled", |
g_signal_connect ((gpointer) searchcheckbutton, "toggled", |
275 |
G_CALLBACK (on_searchcheckbutton_toggled), |
G_CALLBACK (on_searchcheckbutton_toggled), |
284 |
/* Store pointers to all widgets, for use by lookup_widget(). */ |
/* Store pointers to all widgets, for use by lookup_widget(). */ |
285 |
GLADE_HOOKUP_OBJECT_NO_REF (searchdialog, searchdialog, "searchdialog"); |
GLADE_HOOKUP_OBJECT_NO_REF (searchdialog, searchdialog, "searchdialog"); |
286 |
GLADE_HOOKUP_OBJECT (searchdialog, searchcombo, "searchcombo"); |
GLADE_HOOKUP_OBJECT (searchdialog, searchcombo, "searchcombo"); |
|
GLADE_HOOKUP_OBJECT (searchdialog, searchcomboentry, "searchcomboentry"); |
|
287 |
GLADE_HOOKUP_OBJECT (searchdialog, searchcheckbutton, "searchcheckbutton"); |
GLADE_HOOKUP_OBJECT (searchdialog, searchcheckbutton, "searchcheckbutton"); |
288 |
|
|
|
gtk_widget_grab_focus (searchcomboentry); |
|
289 |
if (searchhistory) |
if (searchhistory) |
290 |
gtk_combo_set_popdown_strings (GTK_COMBO (searchcombo), searchhistory); |
{ |
291 |
gtk_editable_delete_text (GTK_EDITABLE (searchcomboentry), 0, -1); |
num = g_list_length (searchhistory); |
292 |
|
for (i = 0; i < num; i++) |
293 |
|
{ |
294 |
|
s = g_list_nth_data (searchhistory, i); |
295 |
|
gtk_combo_box_append_text (GTK_COMBO_BOX (searchcombo), s); |
296 |
|
} |
297 |
|
} |
298 |
|
gtk_editable_delete_text (GTK_EDITABLE (GTK_BIN(searchcombo)->child), 0, -1); |
299 |
gtk_widget_set_sensitive (mainwindow, 0); |
gtk_widget_set_sensitive (mainwindow, 0); |
300 |
gtk_widget_show (searchdialog); |
gtk_widget_show (searchdialog); |
301 |
} |
} |