Ethereal-cvs: [ethereal-cvs] cvs commit: ethereal/gtk gtkglobals.h gui_prefs.c main.c
gram 1999/12/29 14:10:24 CST
Modified files:
gtk gtkglobals.h gui_prefs.c main.c
proto_draw.c
Log:
Changed the protocol tree widget from a GtkTree to a GtkCTree. The two reasons
I did this:
First, Havoc Pennington, in "GTK+/Gnome Application Development", in
Appendix seciton A.3.88, recommends using GtkCTree instead of GtkTree
because GtkCtree is faster, and GtkTree has limitation on its total row
height: since it must fit inside a GdkWindow, it is limited to 32,768
pixels of height. GtkTree is more flexible with regards to the types of
widgets that can be placed in the tree, but since we deal only with text,
that doesn't matter, at least for now.
Secondly, a GtkTree doesn't allow arrow-key navigation (at least as far
as I could tell). It always bothered me that the up and down arrow keys
worked in the packet list and in the hex dump, but no in the protocol tree.
GtkCTree does allow arrow-key navigation. In fact, GtkCTree is a subclass
of GtkCList (the packet list widget), so they behave a lot alike.
I went ahead and fixed the selection bar which has been bothering Richard
for a long time now. :) In the GUI preferences dialogue, you can now set
both the packet list selection bar and the protocol tree selection bar
to either "browse" or "select" mode. "browse" mode is what you're used to:
the arrow keys move an outline of the selection bar, but do not change
the selection. "select" mode does change the selection when the arrow keys
are pressed. The default behavior is set to "select", which seems more
natural for a first-time user.
Revision Changes Path
1.4 +3 -1 ethereal/gtk/gtkglobals.h
1.2 +95 -8 ethereal/gtk/gui_prefs.c
1.77 +64 -34 ethereal/gtk/main.c
1.12 +70 -32 ethereal/gtk/proto_draw.c