summaryrefslogtreecommitdiff
path: root/ui/gtk/graph_analysis.c
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2013-10-25 23:16:56 +0000
committerGerald Combs <gerald@wireshark.org>2013-10-25 23:16:56 +0000
commit7a2de9f471d1057ff5f90cb450ae9fe44cc7648a (patch)
tree0d1c8b1bc1691a1edc12de27ac412aece8f5ffec /ui/gtk/graph_analysis.c
parent95f484a91ee34ea3caa2c325170e52d0bf07489b (diff)
downloadwireshark-7a2de9f471d1057ff5f90cb450ae9fe44cc7648a.tar.gz
More sequence dialog updates.
Draw item labels and port numbers. Update the hint text. Make items selectable. Resize fonts similar to the GTK+ version. Add scrollbars. Update the cursor. Use pango_layout_set_ellipsize() in the GTK+ code. Fixup comments. svn path=/trunk/; revision=52855
Diffstat (limited to 'ui/gtk/graph_analysis.c')
-rw-r--r--ui/gtk/graph_analysis.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/ui/gtk/graph_analysis.c b/ui/gtk/graph_analysis.c
index 3856f71a40..3fbd82722d 100644
--- a/ui/gtk/graph_analysis.c
+++ b/ui/gtk/graph_analysis.c
@@ -77,6 +77,9 @@
#define BOTTOM_Y_BORDER 2
#define COMMENT_WIDTH 400
#define TIME_WIDTH 150
+#if !PANGO_VERSION_CHECK(1,6,0)
+#define MAX_FRAME_LABEL 20
+#endif
/****************************************************************************/
/* Reset the user_data structure */
@@ -443,12 +446,6 @@ static void dialog_graph_draw(graph_analysis_data_t *user_data)
user_data->dlg.items[current_item].fd = gai->fd;
user_data->dlg.items[current_item].port_src = gai->port_src;
user_data->dlg.items[current_item].port_dst = gai->port_dst;
- /* Add "..." if the length is 50 characters */
- if (strlen(gai->frame_label) > 48) {
- gai->frame_label[48] = '.';
- gai->frame_label[47] = '.';
- gai->frame_label[46] = '.';
- }
user_data->dlg.items[current_item].frame_label = gai->frame_label;
user_data->dlg.items[current_item].time_str = gai->time_str;
user_data->dlg.items[current_item].comment = gai->comment;
@@ -783,9 +780,6 @@ static void dialog_graph_draw(graph_analysis_data_t *user_data)
draw_arrow(user_data->dlg.pixmap_main, color_p, end_arrow, top_y_border+current_item*ITEM_HEIGHT+ITEM_HEIGHT-7-(HEIGHT_ARROW/2), LEFT_ARROW);
#endif
/* draw the frame comment */
- g_snprintf(label_string, MAX_LABEL, "%s", user_data->dlg.items[current_item].frame_label);
- pango_layout_set_text(layout, label_string, -1);
- pango_layout_get_pixel_size(layout, &label_width, &label_height);
if (start_arrow<end_arrow) {
arrow_width = end_arrow-start_arrow;
label_x = arrow_width/2+start_arrow;
@@ -794,6 +788,18 @@ static void dialog_graph_draw(graph_analysis_data_t *user_data)
arrow_width = start_arrow-end_arrow;
label_x = arrow_width/2+end_arrow;
}
+#if PANGO_VERSION_CHECK(1,6,0)
+ pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_END);
+ pango_layout_set_width(layout, arrow_width * PANGO_SCALE);
+ pango_layout_set_text(layout, user_data->dlg.items[current_item].frame_label, -1);
+#else
+ if (g_snprintf(label_string, MAX_FRAME_LABEL, "%s", user_data->dlg.items[current_item].frame_label) > MAX_FRAME_LABEL) {
+ memcpy(&label_string[MAX_FRAME_LABEL-4], "...", 3);
+ }
+ pango_layout_set_text(layout, label_string, -1);
+#endif
+g_warning("= layout width: %d: %s", pango_layout_get_width(layout), pango_layout_get_text(layout));
+ pango_layout_get_pixel_size(layout, &label_width, &label_height);
if ((int)left_x_border > ((int)label_x-(int)label_width/2))
label_x = left_x_border + label_width/2;
@@ -815,6 +821,10 @@ static void dialog_graph_draw(graph_analysis_data_t *user_data)
cr = NULL;
}
#endif
+#if PANGO_VERSION_CHECK(1,6,0)
+ pango_layout_set_width(layout, -1);
+#endif
+
/* draw the source port number */
g_snprintf(label_string, MAX_LABEL, "(%i)", user_data->dlg.items[current_item].port_src);
pango_layout_set_text(small_layout, label_string, -1);