aboutsummaryrefslogtreecommitdiffstats
path: root/ui/gtk/prefs_column.c
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2013-01-11 18:26:35 +0000
committerBill Meier <wmeier@newsguy.com>2013-01-11 18:26:35 +0000
commita63b7f92649d9b4b8f55b6fc01cc87942c847a4b (patch)
treeb16959c6ba0406c3020e9c674beca77ce2622584 /ui/gtk/prefs_column.c
parent2d2198962a68f07ff98f2c10e5ca9403302e601a (diff)
Replace gtk_table...() with ws_gtk_grid...();
Add an XXX comment about trying (and failing) to change the behavior of the grid when the column prefs window is horizontally resized. Also: do whitespace cleanup: indentation & etc. svn path=/trunk/; revision=47032
Diffstat (limited to 'ui/gtk/prefs_column.c')
-rw-r--r--ui/gtk/prefs_column.c166
1 files changed, 87 insertions, 79 deletions
diff --git a/ui/gtk/prefs_column.c b/ui/gtk/prefs_column.c
index 27007d9d8f..3c2b868f29 100644
--- a/ui/gtk/prefs_column.c
+++ b/ui/gtk/prefs_column.c
@@ -61,36 +61,36 @@ static gboolean column_title_changed_cb(GtkCellRendererText *, const gchar *, co
static char custom_occurrence_str[8] = "";
enum {
- VISIBLE_COLUMN,
- TITLE_COLUMN,
- FORMAT_COLUMN,
- DATA_COLUMN,
- N_COLUMN /* The number of columns */
+ VISIBLE_COLUMN,
+ TITLE_COLUMN,
+ FORMAT_COLUMN,
+ DATA_COLUMN,
+ N_COLUMN /* The number of columns */
};
/* Visible toggled */
static void
visible_toggled(GtkCellRendererToggle *cell _U_, gchar *path_str, gpointer data)
{
- GtkTreeModel *model = (GtkTreeModel *)data;
- GtkTreeIter iter;
- GtkTreePath *path = gtk_tree_path_new_from_string(path_str);
- GList *clp;
- fmt_data *cfmt;
+ GtkTreeModel *model = (GtkTreeModel *)data;
+ GtkTreeIter iter;
+ GtkTreePath *path = gtk_tree_path_new_from_string(path_str);
+ GList *clp;
+ fmt_data *cfmt;
- gtk_tree_model_get_iter(model, &iter, path);
- gtk_tree_model_get(model, &iter, DATA_COLUMN, &clp, -1);
+ gtk_tree_model_get_iter(model, &iter, path);
+ gtk_tree_model_get(model, &iter, DATA_COLUMN, &clp, -1);
- cfmt = (fmt_data *) clp->data;
- if (cfmt->visible)
- cfmt->visible = FALSE;
- else
- cfmt->visible = TRUE;
+ cfmt = (fmt_data *) clp->data;
+ if (cfmt->visible)
+ cfmt->visible = FALSE;
+ else
+ cfmt->visible = TRUE;
- gtk_list_store_set(GTK_LIST_STORE(model), &iter, VISIBLE_COLUMN, cfmt->visible, -1);
- cfile.columns_changed = TRUE;
+ gtk_list_store_set(GTK_LIST_STORE(model), &iter, VISIBLE_COLUMN, cfmt->visible, -1);
+ cfile.columns_changed = TRUE;
- gtk_tree_path_free(path);
+ gtk_tree_path_free(path);
} /* visible_toggled */
/*
@@ -99,7 +99,7 @@ visible_toggled(GtkCellRendererToggle *cell _U_, gchar *path_str, gpointer data)
*/
GtkWidget *
column_prefs_show(GtkWidget *prefs_window) {
- GtkWidget *main_vb, *bottom_hb, *column_l, *add_bt, *tb, *lb;
+ GtkWidget *main_vb, *bottom_hb, *column_l, *add_bt, *grid, *lb;
GtkWidget *list_vb, *list_lb, *list_sc;
GtkWidget *add_remove_vb;
GtkWidget *props_fr, *props_hb;
@@ -126,7 +126,9 @@ column_prefs_show(GtkWidget *prefs_window) {
gtk_widget_show (list_vb);
gtk_box_pack_start (GTK_BOX (main_vb), list_vb, TRUE, TRUE, 0);
- list_lb = gtk_label_new (("[The first list entry will be displayed as the leftmost column - Drag and drop entries to change column order]"));
+ list_lb = gtk_label_new (
+ "[The first list entry will be displayed as the leftmost column"
+ " - Drag and drop entries to change column order]");
gtk_widget_show (list_lb);
gtk_box_pack_start (GTK_BOX (list_vb), list_lb, FALSE, FALSE, 0);
@@ -136,8 +138,8 @@ column_prefs_show(GtkWidget *prefs_window) {
gtk_widget_show(list_sc);
store = gtk_list_store_new(N_COLUMN,
- G_TYPE_BOOLEAN,
- G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
+ G_TYPE_BOOLEAN,
+ G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
column_row_deleted_handler_id =
g_signal_connect(GTK_TREE_MODEL(store), "row-deleted", G_CALLBACK(column_dnd_row_deleted_cb), NULL);
@@ -192,8 +194,8 @@ column_prefs_show(GtkWidget *prefs_window) {
fmt = g_strdup_printf("%s", col_format_desc(cfmt->fmt));
}
gtk_list_store_insert_with_values(store, &iter, G_MAXINT,
- VISIBLE_COLUMN, cfmt->visible,
- TITLE_COLUMN, cfmt->title, FORMAT_COLUMN, fmt, DATA_COLUMN, clp, -1);
+ VISIBLE_COLUMN, cfmt->visible,
+ TITLE_COLUMN, cfmt->title, FORMAT_COLUMN, fmt, DATA_COLUMN, clp, -1);
if (first_row) {
first_iter = iter;
@@ -206,7 +208,7 @@ column_prefs_show(GtkWidget *prefs_window) {
/* Bottom row: Add/remove buttons and properties */
bottom_hb = ws_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5, FALSE);
- gtk_box_pack_start (GTK_BOX (main_vb), bottom_hb, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (main_vb), bottom_hb, FALSE, FALSE, 0);
gtk_widget_show(bottom_hb);
/* Add / remove buttons */
@@ -234,29 +236,35 @@ column_prefs_show(GtkWidget *prefs_window) {
gtk_widget_show(props_fr);
/* Column name entry and format selection */
- tb = gtk_table_new(2, 4, FALSE);
- gtk_container_set_border_width(GTK_CONTAINER(tb), 5);
- gtk_container_add(GTK_CONTAINER(props_fr), tb);
- gtk_table_set_row_spacings(GTK_TABLE(tb), 10);
- gtk_table_set_col_spacings(GTK_TABLE(tb), 15);
- gtk_widget_show(tb);
+ /* XXX: IMO, the grid should have a fixed width instead of
+ * expanding to the horizontal window width when the window
+ * is resized horizontally. However, I couldn't quite make
+ * things work properly when I tried to change the grid
+ * behavior.
+ */
+ grid = ws_gtk_grid_new();
+ gtk_container_set_border_width(GTK_CONTAINER(grid), 5);
+ gtk_container_add(GTK_CONTAINER(props_fr), grid);
+ ws_gtk_grid_set_row_spacing(GTK_GRID(grid), 10);
+ ws_gtk_grid_set_column_spacing(GTK_GRID(grid), 15);
+ gtk_widget_show(grid);
lb = gtk_label_new("Field type:");
gtk_misc_set_alignment(GTK_MISC(lb), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(tb), lb, 0, 1, 0, 1);
+ ws_gtk_grid_attach_extended(GTK_GRID(grid), lb, 0, 0, 1, 1, GTK_EXPAND|GTK_FILL, 0, 0, 0);
gtk_widget_set_tooltip_text(lb, "Select which packet information to present in the column.");
gtk_widget_show(lb);
props_hb = ws_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5, FALSE);
- gtk_table_attach(GTK_TABLE(tb), props_hb, 1, 2, 0, 1, GTK_FILL, GTK_SHRINK, 0, 0);
+ ws_gtk_grid_attach_extended(GTK_GRID(grid), props_hb, 1, 0, 1, 1, GTK_EXPAND|GTK_FILL, 0, 0, 0);
gtk_widget_set_tooltip_text(props_hb, "Select which packet information to present in the column.");
gtk_widget_show(props_hb);
field_lb = gtk_label_new("Field name:");
gtk_misc_set_alignment(GTK_MISC(field_lb), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(tb), field_lb, 0, 1, 1, 2);
+ ws_gtk_grid_attach_extended(GTK_GRID(grid), field_lb, 0, 1, 1, 1, GTK_EXPAND|GTK_FILL, 0, 0, 0);
gtk_widget_set_sensitive(field_lb, FALSE);
- gtk_widget_set_tooltip_text(field_lb,
+ gtk_widget_set_tooltip_text(field_lb,
"Field name used when field type is \"Custom\". "
"This string has the same syntax as a display filter string.");
gtk_widget_show(field_lb);
@@ -275,18 +283,18 @@ column_prefs_show(GtkWidget *prefs_window) {
g_signal_connect(field_te, "key-press-event", G_CALLBACK (filter_string_te_key_pressed_cb), NULL);
g_signal_connect(prefs_window, "key-press-event", G_CALLBACK (filter_parent_dlg_key_pressed_cb), NULL);
colorize_filter_te_as_empty(field_te);
- gtk_table_attach_defaults(GTK_TABLE(tb), field_te, 1, 2, 1, 2);
+ ws_gtk_grid_attach_extended(GTK_GRID(grid), field_te, 1, 1, 1, 1, GTK_EXPAND|GTK_FILL, 0, 0, 0);
gtk_widget_set_sensitive(field_te, FALSE);
- gtk_widget_set_tooltip_text(field_te,
+ gtk_widget_set_tooltip_text(field_te,
"Field name used when field type is \"Custom\". "
"This string has the same syntax as a display filter string.");
gtk_widget_show(field_te);
occurrence_lb = gtk_label_new("Field occurrence:");
gtk_misc_set_alignment(GTK_MISC(occurrence_lb), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(tb), occurrence_lb, 2, 3, 1, 2);
+ ws_gtk_grid_attach_extended(GTK_GRID(grid), occurrence_lb, 2, 1, 1, 1, GTK_EXPAND|GTK_FILL, 0, 0, 0);
gtk_widget_set_sensitive(occurrence_lb, FALSE);
- gtk_widget_set_tooltip_text(occurrence_lb,
+ gtk_widget_set_tooltip_text(occurrence_lb,
"Field occurence to use. "
"0=all (default), 1=first, 2=second, ..., -1=last.");
gtk_widget_show(occurrence_lb);
@@ -300,9 +308,9 @@ column_prefs_show(GtkWidget *prefs_window) {
column_occurrence_changed_handler_id =
g_signal_connect(occurrence_te, "changed", G_CALLBACK(column_occurrence_changed_cb), column_l);
- gtk_table_attach_defaults(GTK_TABLE(tb), occurrence_te, 3, 4, 1, 2);
+ ws_gtk_grid_attach_extended(GTK_GRID(grid), occurrence_te, 3, 1, 1, 1, GTK_EXPAND|GTK_FILL, 0, 0, 0);
gtk_widget_set_sensitive(occurrence_te, FALSE);
- gtk_widget_set_tooltip_text(occurrence_te,
+ gtk_widget_set_tooltip_text(occurrence_te,
"Field occurence to use. "
"0=all (default), 1=first, 2=second, ..., -1=last.");
gtk_widget_show(occurrence_te);
@@ -328,47 +336,47 @@ column_prefs_show(GtkWidget *prefs_window) {
void
column_prefs_add_custom(gint fmt, const gchar *title, const gchar *custom_field, gint custom_occurrence)
{
- GList *clp;
- fmt_data *cfmt, *last_cfmt;
-
- cfmt = (fmt_data *) g_malloc(sizeof(fmt_data));
- /*
- * Because a single underscore is interpreted as a signal that the next character
- * is going to be marked as accelerator for this header (i.e. is going to be
- * shown underlined), escape it be inserting a second consecutive underscore.
- */
- cfmt->title = g_strdup(title);
- cfmt->fmt = fmt;
- cfmt->custom_field = g_strdup(custom_field);
- cfmt->custom_occurrence = custom_occurrence;
- cfmt->resolved = TRUE;
-
- if (custom_field) {
- cfmt->visible = TRUE;
- clp = g_list_last(prefs.col_list);
- last_cfmt = (fmt_data *) clp->data;
- if (last_cfmt->fmt == COL_INFO) {
- /* Last column is COL_INFO, add custom column before this */
- prefs.col_list = g_list_insert(prefs.col_list, cfmt, g_list_length(prefs.col_list)-1);
+ GList *clp;
+ fmt_data *cfmt, *last_cfmt;
+
+ cfmt = (fmt_data *) g_malloc(sizeof(fmt_data));
+ /*
+ * Because a single underscore is interpreted as a signal that the next character
+ * is going to be marked as accelerator for this header (i.e. is going to be
+ * shown underlined), escape it be inserting a second consecutive underscore.
+ */
+ cfmt->title = g_strdup(title);
+ cfmt->fmt = fmt;
+ cfmt->custom_field = g_strdup(custom_field);
+ cfmt->custom_occurrence = custom_occurrence;
+ cfmt->resolved = TRUE;
+
+ if (custom_field) {
+ cfmt->visible = TRUE;
+ clp = g_list_last(prefs.col_list);
+ last_cfmt = (fmt_data *) clp->data;
+ if (last_cfmt->fmt == COL_INFO) {
+ /* Last column is COL_INFO, add custom column before this */
+ prefs.col_list = g_list_insert(prefs.col_list, cfmt, g_list_length(prefs.col_list)-1);
+ } else {
+ prefs.col_list = g_list_append(prefs.col_list, cfmt);
+ }
} else {
- prefs.col_list = g_list_append(prefs.col_list, cfmt);
+ cfmt->visible = FALSE; /* Will be set to TRUE in visible_toggled() when added to list */
+ prefs.col_list = g_list_append(prefs.col_list, cfmt);
}
- } else {
- cfmt->visible = FALSE; /* Will be set to TRUE in visible_toggled() when added to list */
- prefs.col_list = g_list_append(prefs.col_list, cfmt);
- }
}
void
column_prefs_remove(gint col)
{
- GList *clp = g_list_nth(prefs.col_list, col);
- fmt_data *cfmt = (fmt_data *) clp->data;
+ GList *clp = g_list_nth(prefs.col_list, col);
+ fmt_data *cfmt = (fmt_data *) clp->data;
- g_free(cfmt->title);
- g_free(cfmt->custom_field);
- g_free(cfmt);
- prefs.col_list = g_list_remove_link(prefs.col_list, clp);
+ g_free(cfmt->title);
+ g_free(cfmt->custom_field);
+ g_free(cfmt);
+ prefs.col_list = g_list_remove_link(prefs.col_list, clp);
}
/* To do: add input checking to each of these callbacks */
@@ -756,9 +764,9 @@ column_occurrence_changed_cb(GtkEditable *te, gpointer data) {
*/
static void
column_dnd_row_deleted_cb(GtkTreeModel *model, GtkTreePath *path _U_, gpointer data _U_) {
- GtkTreeIter iter;
- GList *clp, *new_col_list = NULL;
- gboolean items_left;
+ GtkTreeIter iter;
+ GList *clp, *new_col_list = NULL;
+ gboolean items_left;
/*
* XXX - This rebuilds prefs.col_list based on the current model. We