mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add a completion for the cylinder type entry combo box
This allows us to start typing the cylinder description and we'll get a matching list that we can select. This is similar to selecting one from the model, and works in addition to the explicit selection. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f9cb526c96
commit
0b4814a95d
1 changed files with 19 additions and 0 deletions
19
equipment.c
19
equipment.c
|
@ -466,9 +466,21 @@ static void nitrox_cb(GtkToggleButton *button, gpointer data)
|
||||||
gtk_widget_set_sensitive(cylinder->o2, state);
|
gtk_widget_set_sensitive(cylinder->o2, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean completion_cb(GtkEntryCompletion *widget, GtkTreeModel *model, GtkTreeIter *iter, struct cylinder_widget *cylinder)
|
||||||
|
{
|
||||||
|
const char *desc;
|
||||||
|
unsigned int ml, mbar;
|
||||||
|
|
||||||
|
gtk_tree_model_get(model, iter, CYL_DESC, &desc, CYL_SIZE, &ml, CYL_WORKP, &mbar, -1);
|
||||||
|
add_cylinder(cylinder, desc, ml, mbar);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static void cylinder_widget(GtkWidget *vbox, struct cylinder_widget *cylinder, GtkListStore *model)
|
static void cylinder_widget(GtkWidget *vbox, struct cylinder_widget *cylinder, GtkListStore *model)
|
||||||
{
|
{
|
||||||
GtkWidget *frame, *hbox;
|
GtkWidget *frame, *hbox;
|
||||||
|
GtkEntry *entry;
|
||||||
|
GtkEntryCompletion *completion;
|
||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -486,6 +498,13 @@ static void cylinder_widget(GtkWidget *vbox, struct cylinder_widget *cylinder, G
|
||||||
cylinder->description = GTK_COMBO_BOX(widget);
|
cylinder->description = GTK_COMBO_BOX(widget);
|
||||||
g_signal_connect(widget, "changed", G_CALLBACK(cylinder_cb), cylinder);
|
g_signal_connect(widget, "changed", G_CALLBACK(cylinder_cb), cylinder);
|
||||||
|
|
||||||
|
entry = GTK_ENTRY(GTK_BIN(widget)->child);
|
||||||
|
completion = gtk_entry_completion_new();
|
||||||
|
gtk_entry_completion_set_text_column(completion, 0);
|
||||||
|
gtk_entry_completion_set_model(completion, GTK_TREE_MODEL(model));
|
||||||
|
g_signal_connect(completion, "match-selected", G_CALLBACK(completion_cb), cylinder);
|
||||||
|
gtk_entry_set_completion(entry, completion);
|
||||||
|
|
||||||
hbox = gtk_hbox_new(FALSE, 3);
|
hbox = gtk_hbox_new(FALSE, 3);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), frame, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), frame, FALSE, TRUE, 0);
|
||||||
|
|
Loading…
Add table
Reference in a new issue