Some additional comments:
Instead of printing "packet selected is not a TCP segment" if the user
selects something from the "TCP Stream Analysis" menu if the packet
selected isn't a TCP segment, you should probably just make the "TCP
Stream Analysis" menu item insensitive if the selected packet isn't a
TCP segment - or, rather, if it's not a packet the code can handle.
See, for example, "set_menus_for_selected_packet()", which, if a packet
has been selected, makes the "/Tools/Follow TCP Stream" item sensitive
or insensitive depending on whether the currently selected packet is a
TCP packet.
The "control" dialog box for the graph, and the graph window itself,
should probably be given titles to indicate what they are.
The "control" dialog box seems to suffer a bit from Boeing 747 Cockpit
Disease (which may be an unfair name, these days, but, once upon a time,
I heard people speak of Very Complicated Sets Of Controls as being like
a 747's cockpit) - it has a lot of buttons and knobs and dials. A
scheme like that used by some Windows dialog boxes, with an "Advanced
>>>" button that, when clicked, makes visible a pile of widgets with the
less-commonly-used controls, might help here. (The Zoom and Magnify
controls might be ones put under "Advanced" - there's a lot of numbers
to tweak there, and I suspect most people would prefer to tweak them
graphically rather than by typing in numbers or even clicking on the
spin buttons.)