gtk_widget_set_sensitive(timefmt_te, apply_fmt);
}
+static enum
+{
+ ENCAP_NAME_COLUMN,
+ ENCAP_VALUE_COLUMN
+};
+
/*****************************************************************************/
static void
create_encap_list_store(void)
GtkTreeIter iter;
gint encap;
const gchar *name;
+ GtkTreeSortable *sortable;
+ GtkSortType order = GTK_SORT_ASCENDING;
encap_list_store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_UINT);
+ sortable = GTK_TREE_SORTABLE(encap_list_store);
+ gtk_tree_sortable_set_sort_func(sortable, ENCAP_NAME_COLUMN,
+ str_ptr_sort_func, GINT_TO_POINTER(ENCAP_NAME_COLUMN), NULL);
+ gtk_tree_sortable_set_sort_column_id(sortable, ENCAP_NAME_COLUMN, order);
/* Scan all Wiretap encapsulation types */
for (encap = 1; encap < wtap_get_num_encap_types(); encap++) {
if (result) {
guint encap;
GtkTreeModel *model = gtk_combo_box_get_model(widget);
- gtk_tree_model_get(model, &iter, 1, &encap, -1);
+ gtk_tree_model_get(model, &iter, ENCAP_VALUE_COLUMN, &encap, -1);
if (encap != WTAP_ENCAP_ETHERNET)
result = FALSE;
}
}
+static void
+set_default_encap(GtkWidget *encap_co, guint default_encap)
+{
+ gboolean result;
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ gboolean more_items = TRUE;
+ guint encap_value;
+
+ gtk_combo_box_set_active(GTK_COMBO_BOX(encap_co), 0);
+ result = gtk_combo_box_get_active_iter(GTK_COMBO_BOX(encap_co), &iter);
+ if (result) {
+ model = gtk_combo_box_get_model(GTK_COMBO_BOX(encap_co));
+ do {
+ gtk_tree_model_get(model, &iter, ENCAP_VALUE_COLUMN, &encap_value, -1);
+ if (encap_value == default_encap) {
+ gtk_combo_box_set_active_iter(GTK_COMBO_BOX(encap_co), &iter);
+ more_items = FALSE;
+ }
+ else
+ more_items = gtk_tree_model_iter_next(model, &iter);
+ } while (more_items);
+ }
+}
+
/*****************************************************************************/
/*
g_signal_emit_by_name(G_OBJECT(header_cb), "toggled", header_frm);
g_signal_emit_by_name(G_OBJECT(header_eth_rb), "toggled", header_frm);
-
- gtk_combo_box_set_active(GTK_COMBO_BOX(encap_co), 0);
+ set_default_encap(encap_co, WTAP_ENCAP_ETHERNET);
g_signal_connect(encap_co, "changed", G_CALLBACK(encap_co_changed), header_frm);
/* Frame length */