forked from osmocom/wireshark
Indicate default column alignment in the popup menu.
svn path=/trunk/; revision=31150
This commit is contained in:
parent
40b377bd66
commit
942d6e41f8
39
gtk/menus.c
39
gtk/menus.c
|
@ -770,7 +770,6 @@ static GtkItemFactoryEntry packet_list_heading_items[] =
|
||||||
|
|
||||||
{"/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
|
{"/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
|
||||||
|
|
||||||
{"/Default Alignment", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_ALIGN_DEFAULT, NULL, NULL,},
|
|
||||||
{"/Align Left", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_ALIGN_LEFT, "<StockItem>", GTK_STOCK_JUSTIFY_LEFT,},
|
{"/Align Left", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_ALIGN_LEFT, "<StockItem>", GTK_STOCK_JUSTIFY_LEFT,},
|
||||||
{"/Align Center", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_ALIGN_CENTER, "<StockItem>", GTK_STOCK_JUSTIFY_CENTER,},
|
{"/Align Center", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_ALIGN_CENTER, "<StockItem>", GTK_STOCK_JUSTIFY_CENTER,},
|
||||||
{"/Align Right", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_ALIGN_RIGHT, "<StockItem>", GTK_STOCK_JUSTIFY_RIGHT,},
|
{"/Align Right", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_ALIGN_RIGHT, "<StockItem>", GTK_STOCK_JUSTIFY_RIGHT,},
|
||||||
|
@ -3189,6 +3188,44 @@ rebuild_protocol_prefs_menu (module_t *prefs, gboolean preferences)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
menus_set_column_align_default (gboolean right_justify)
|
||||||
|
{
|
||||||
|
GtkWidget *submenu, *menu_item_child;
|
||||||
|
GList *child_list, *child_list_item;
|
||||||
|
const gchar *menu_item_name;
|
||||||
|
gint menu_item_len;
|
||||||
|
|
||||||
|
/* get the submenu container item */
|
||||||
|
submenu = packet_list_heading_factory->widget;
|
||||||
|
|
||||||
|
/* find the corresponding menu items to update */
|
||||||
|
child_list = gtk_container_get_children(GTK_CONTAINER(submenu));
|
||||||
|
child_list_item = child_list;
|
||||||
|
while(child_list_item) {
|
||||||
|
menu_item_child = (GTK_BIN(child_list_item->data))->child;
|
||||||
|
if (menu_item_child != NULL) {
|
||||||
|
menu_item_name = gtk_label_get_text(GTK_LABEL(menu_item_child));
|
||||||
|
menu_item_len = strlen (menu_item_name);
|
||||||
|
if(strncmp(menu_item_name, "Align Left", 10) == 0) {
|
||||||
|
if (!right_justify && menu_item_len == 10) {
|
||||||
|
gtk_label_set_text(GTK_LABEL(menu_item_child), "Align Left\t(default)");
|
||||||
|
} else if (right_justify && menu_item_len > 10) {
|
||||||
|
gtk_label_set_text(GTK_LABEL(menu_item_child), "Align Left");
|
||||||
|
}
|
||||||
|
} else if (strncmp (menu_item_name, "Align Right", 11) == 0) {
|
||||||
|
if (right_justify && menu_item_len == 11) {
|
||||||
|
gtk_label_set_text(GTK_LABEL(menu_item_child), "Align Right\t(default)");
|
||||||
|
} else if (!right_justify && menu_item_len > 11) {
|
||||||
|
gtk_label_set_text(GTK_LABEL(menu_item_child), "Align Right");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
child_list_item = g_list_next(child_list_item);
|
||||||
|
}
|
||||||
|
g_list_free(child_list);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
set_menus_for_selected_tree_row(capture_file *cf)
|
set_menus_for_selected_tree_row(capture_file *cf)
|
||||||
{
|
{
|
||||||
|
|
|
@ -111,6 +111,9 @@ extern void set_menus_for_file_set(gboolean file_set, gboolean previous_file, gb
|
||||||
/** The popup menu. */
|
/** The popup menu. */
|
||||||
extern GtkWidget *popup_menu_object;
|
extern GtkWidget *popup_menu_object;
|
||||||
|
|
||||||
|
/* Update the packet list heading menu to indicate default
|
||||||
|
column justification. */
|
||||||
|
void menus_set_column_align_default (gboolean right_justify);
|
||||||
|
|
||||||
/* Enable or disable menu items based on whether a tree row is selected
|
/* Enable or disable menu items based on whether a tree row is selected
|
||||||
and and on whether a "Match Selected" can be done. */
|
and and on whether a "Match Selected" can be done. */
|
||||||
|
|
|
@ -280,7 +280,7 @@ new_packet_list_column_clicked_cb (GtkTreeViewColumn *col, gpointer user_data _U
|
||||||
}
|
}
|
||||||
|
|
||||||
static gdouble
|
static gdouble
|
||||||
get_xalign_value (gchar xalign, gint col_id)
|
get_xalign_value (gchar xalign, gboolean right_justify)
|
||||||
{
|
{
|
||||||
double value;
|
double value;
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ get_xalign_value (gchar xalign, gint col_id)
|
||||||
break;
|
break;
|
||||||
case COLUMN_XALIGN_DEFAULT:
|
case COLUMN_XALIGN_DEFAULT:
|
||||||
default:
|
default:
|
||||||
if (right_justify_column (col_id)) {
|
if (right_justify) {
|
||||||
value = 1.0f;
|
value = 1.0f;
|
||||||
} else {
|
} else {
|
||||||
value = 0.0f;
|
value = 0.0f;
|
||||||
|
@ -315,7 +315,8 @@ new_packet_list_xalign_column (gint col_id, GtkTreeViewColumn *col, gchar xalign
|
||||||
#else
|
#else
|
||||||
GList *renderers = gtk_tree_view_column_get_cell_renderers (col);
|
GList *renderers = gtk_tree_view_column_get_cell_renderers (col);
|
||||||
#endif
|
#endif
|
||||||
gdouble value = get_xalign_value (xalign, col_id);
|
gboolean right_justify = right_justify_column(col_id);
|
||||||
|
gdouble value = get_xalign_value (xalign, right_justify);
|
||||||
GList *entry;
|
GList *entry;
|
||||||
GtkCellRenderer *renderer;
|
GtkCellRenderer *renderer;
|
||||||
|
|
||||||
|
@ -327,6 +328,12 @@ new_packet_list_xalign_column (gint col_id, GtkTreeViewColumn *col, gchar xalign
|
||||||
}
|
}
|
||||||
g_list_free (renderers);
|
g_list_free (renderers);
|
||||||
|
|
||||||
|
if ((xalign == COLUMN_XALIGN_LEFT && !right_justify) ||
|
||||||
|
(xalign == COLUMN_XALIGN_RIGHT && right_justify)) {
|
||||||
|
/* Default value selected, save default in the recent settings */
|
||||||
|
xalign = COLUMN_XALIGN_DEFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
recent_set_column_xalign (col_id, xalign);
|
recent_set_column_xalign (col_id, xalign);
|
||||||
gtk_widget_queue_draw (packetlist->view);
|
gtk_widget_queue_draw (packetlist->view);
|
||||||
}
|
}
|
||||||
|
@ -393,7 +400,10 @@ new_packet_list_column_button_pressed_cb (GtkWidget *widget, GdkEvent *event, gp
|
||||||
{
|
{
|
||||||
GtkWidget *col = (GtkWidget *) data;
|
GtkWidget *col = (GtkWidget *) data;
|
||||||
GtkWidget *menu = g_object_get_data(G_OBJECT(popup_menu_object), PM_PACKET_LIST_COL_KEY);
|
GtkWidget *menu = g_object_get_data(G_OBJECT(popup_menu_object), PM_PACKET_LIST_COL_KEY);
|
||||||
|
gint col_id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(col), E_MPACKET_LIST_COL_KEY));
|
||||||
|
gboolean right_justify = right_justify_column (col_id);
|
||||||
|
|
||||||
|
menus_set_column_align_default (right_justify);
|
||||||
g_object_set_data(G_OBJECT(packetlist->view), E_MPACKET_LIST_COLUMN_KEY, col);
|
g_object_set_data(G_OBJECT(packetlist->view), E_MPACKET_LIST_COLUMN_KEY, col);
|
||||||
popup_menu_handler (widget, event, menu);
|
popup_menu_handler (widget, event, menu);
|
||||||
}
|
}
|
||||||
|
@ -407,6 +417,7 @@ create_view_and_model(void)
|
||||||
gint i, col_width;
|
gint i, col_width;
|
||||||
gchar xalign;
|
gchar xalign;
|
||||||
gdouble value;
|
gdouble value;
|
||||||
|
gboolean right_justify;
|
||||||
GtkWidget *title_lb;
|
GtkWidget *title_lb;
|
||||||
gchar *tooltip_text;
|
gchar *tooltip_text;
|
||||||
header_field_info *hfi;
|
header_field_info *hfi;
|
||||||
|
@ -441,10 +452,11 @@ create_view_and_model(void)
|
||||||
xalign = recent_get_column_xalign(i);
|
xalign = recent_get_column_xalign(i);
|
||||||
col = gtk_tree_view_column_new();
|
col = gtk_tree_view_column_new();
|
||||||
gtk_tree_view_column_pack_start(col, renderer, TRUE);
|
gtk_tree_view_column_pack_start(col, renderer, TRUE);
|
||||||
|
right_justify = right_justify_column (i);
|
||||||
if (xalign != COLUMN_XALIGN_DEFAULT) {
|
if (xalign != COLUMN_XALIGN_DEFAULT) {
|
||||||
value = get_xalign_value(xalign, i);
|
value = get_xalign_value(xalign, right_justify);
|
||||||
g_object_set(G_OBJECT(renderer), "xalign", value, NULL);
|
g_object_set(G_OBJECT(renderer), "xalign", value, NULL);
|
||||||
} else if (right_justify_column (i)) {
|
} else if (right_justify) {
|
||||||
g_object_set(G_OBJECT(renderer),
|
g_object_set(G_OBJECT(renderer),
|
||||||
"xalign",
|
"xalign",
|
||||||
1.0,
|
1.0,
|
||||||
|
|
Loading…
Reference in New Issue