From d72aca0b7ec946e137da3d04418ea6f4a4dc77d8 Mon Sep 17 00:00:00 2001 From: Olivier Abad Date: Sat, 21 Sep 2002 11:36:30 +0000 Subject: Removed all gtk calls in file.c : - created a few packet_list_xxx functions (ui_util.h gtk/packet_list.c gtk2/packet_list.c) ; - removed almost all "gtk/xxx" and "gtk2/xxx" includes in file.c The only remaining includes are related to color filters. We have to make color_filter_t GUI independent by replacing GdkColor with color_t. I'll work on this later. svn path=/trunk/; revision=6311 --- gtk/packet_list.c | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 gtk/packet_list.c (limited to 'gtk/packet_list.c') diff --git a/gtk/packet_list.c b/gtk/packet_list.c new file mode 100644 index 0000000000..5231ac93a5 --- /dev/null +++ b/gtk/packet_list.c @@ -0,0 +1,153 @@ +/* packet_list.c + * packet list related functions 2002 Olivier Abad + * + * $Id: packet_list.c,v 1.1 2002/09/21 11:36:27 oabad Exp $ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include + +#include "gtkglobals.h" +#include "epan/epan.h" +#include "../ui_util.h" +#include "column.h" +#include "epan/column_info.h" + +void +packet_list_clear(void) +{ + gtk_clist_clear(GTK_CLIST(packet_list)); +} + +void +packet_list_freeze(void) +{ + gtk_clist_freeze(GTK_CLIST(packet_list)); +} + +void +packet_list_thaw(void) +{ + gtk_clist_thaw(GTK_CLIST(packet_list)); +} + +void +packet_list_select_row(gint row) +{ + gtk_signal_emit_by_name(GTK_OBJECT(packet_list), "select_row", row); +} + +void +packet_list_set_column_auto_resize(gint column, gboolean auto_resize) +{ + gtk_clist_set_column_auto_resize(GTK_CLIST(packet_list), column, + auto_resize); +} + +void +packet_list_set_column_resizeable(gint column, gboolean resizeable) +{ + gtk_clist_set_column_resizeable(GTK_CLIST(packet_list), column, resizeable); +} + +void +packet_list_set_column_width(gint column, gint width) +{ + gtk_clist_set_column_width(GTK_CLIST(packet_list), column, width); +} + +void +packet_list_moveto_end(void) +{ + gtk_clist_moveto(GTK_CLIST(packet_list), + GTK_CLIST(packet_list)->rows - 1, -1, 1.0, 1.0); +} + +gint +packet_list_append(gchar *text[], gpointer data) +{ + gint row; + + row = gtk_clist_append(GTK_CLIST(packet_list), text); + gtk_clist_set_row_data(GTK_CLIST(packet_list), row, data); + return row; +} + +void +packet_list_set_colors(gint row, GdkColor *fg, GdkColor *bg) +{ + if (fg) gtk_clist_set_foreground(GTK_CLIST(packet_list), row, fg); + if (bg) gtk_clist_set_background(GTK_CLIST(packet_list), row, bg); +} + +gint +packet_list_find_row_from_data(gpointer data) +{ + return gtk_clist_find_row_from_data(GTK_CLIST(packet_list), data); +} + +void +packet_list_set_text(gint row, gint column, const gchar *text) +{ + gtk_clist_set_text(GTK_CLIST(packet_list), row, column, text); +} + +/* Set the column widths of those columns that show the time in + * "command-line-specified" format. */ +void +packet_list_set_cls_time_width(gint column) +{ + GtkStyle *pl_style; + gint width; + + pl_style = gtk_widget_get_style(packet_list); + width = gdk_string_width(pl_style->font, + get_column_longest_string(COL_CLS_TIME)); + packet_list_set_column_width(column, width); +} + +gpointer +packet_list_get_row_data(gint row) +{ + return gtk_clist_get_row_data(GTK_CLIST(packet_list), row); +} + +/* Set the selected row and the focus row of the packet list to the specified + * row, and make it visible if it's not currently visible. */ +void +packet_list_set_selected_row(gint row) +{ + if (gtk_clist_row_is_visible(GTK_CLIST(packet_list), row) != + GTK_VISIBILITY_FULL) + gtk_clist_moveto(GTK_CLIST(packet_list), row, -1, 0.0, 0.0); + + /* XXX - why is there no "gtk_clist_set_focus_row()", so that we + * can make the row for the frame we found the focus row? + * + * See http://www.gnome.org/mailing-lists/archives/gtk-list/2000-January/0038.shtml + */ + GTK_CLIST(packet_list)->focus_row = row; + + gtk_clist_select_row(GTK_CLIST(packet_list), row, -1); +} -- cgit v1.2.3