The basic idea behind this design is to have dissectors register with a "decode as list" with their name and dissector table. When "Decode As" dialog is launched, any "registered" dissector found in the packet will cause a tab to be created in the dialog. Any GUI (GTK+/Qt/tshark) can just hook into the "decode as list" to see what can be provided.
This patch includes the GUI portion of the functionality (including packet-dcerpc.[ch] because it had some GUI dependencies that are now removed).
Other notes:
1. Some "GUI text" (UTF8_LEFTWARDS_ARROW and similar) made their way into the dissector code. Not sure how necessary it is and if reformatting the strings to avoid the macros is desired (TCP/UDP use it, SCTP doesn't).
2. I converted the SCTP functionality to have 2 tabs (instead of radio button), currently both are labeled "Transport" which could be confusing to users. Naming suggestions welcome (as well as for naming of tabs from other dissectors).
3. BER and DCERPC have more opportunity to use Decode As now that they are selected based on dissector presense, not packet_info values.
4. Catapult DCT2000 populates pinfo->ipproto, yet under new design will not show up to do Decode As. Should a "decode as item" be created for it?
5. BER dissector doesn't have Clear/Show Current functionality working (never did)
6. Bluetooth (in old design) could have been used "capture wide" instead of single packet (creating tabs of values not present in current packet), which goes against what I believe to be in the intent of Decode As, but I'm willing to hear counter-arguments.
svn path=/trunk/; revision=53446
addition to a "global" list. Store all of those lists in the recent
file. Maintain the lists in ui/recent.c, rather than attaching them to
widgets; have the code that populates the combo boxes get the lists from
the ui/recent.c code.
This makes a little more of the code GUI-toolkit-independent, and should
fix bug 7278.
#BACKPORT 1.10, 1.8
svn path=/trunk/; revision=50956
Use the PNG versions of the new application icons.
Remove the XPM versions of the Wireshark application and capture icons.
To paraphrase Zoidberg, XPMs are bad and we should feel bad. Remove
xpm_to_widget_from_parent (which we weren't using and likely won't use
in the future).
Replace wiki_24.xpm (which was a GNOME or GTK+ stock icon IIRC) with the
16x16 and 24x24 versions emblem-web.png from GNOME icon theme 2.30.3.
This version was used specifically because it's GPLv2 and later versions
are GPLv3.
Update image/README.
svn path=/trunk/; revision=48565
"Font and Colors". Use a GtkFontButton to select the font and update the
sample text accordingly. Instead of attempting to resize the sample
color text (which didn't appear to work) scroll to the text that matches
the current combo box selection.
svn path=/trunk/; revision=46909
border. Add them as pixbufs to ui/gtk/toolbar_icons.h and use them to
replace the file icon XPM in stock_icons.c. Add modelines.
svn path=/trunk/; revision=46413
Implement DICOM, HTTP, and SMB object exports. Rename the GTK+ export
files. C++-ize epan/tap.h. Fix an apparent memory leak in
eo_save_all_clicked_cb.
The Qt dialog has an indeterminate progress bar. I tried adding
something similar to the GTK+ dialog but event processing led down a
rabbit hole.
svn path=/trunk/; revision=45647
so get rid of it, and stop using it in ui/gtk/Makefile.make; we don't
want to encourage people to create source files that get warnings.
svn path=/trunk/; revision=44910
Move the GTK+ text import code to the common UI directory. Create
wtap_encap_requires_phdr() from code in file_import_dlg.c.
svn path=/trunk/; revision=44904
Add an interface monitor that, on Linux distributions with libnl,
watches for interfaces to appear or disappear and, on such an event,
causes windows showing interface lists to update.
svn path=/trunk/; revision=43521
- ws80211_utils.c is only needed to build dumpcap, not to build wireshark.
If it were different it would probably indicate a bad api design.
ui/gtk/Makefile.common:
- Sort in the toolbar in the right place (alphabetically)
svn path=/trunk/; revision=43415
panes to main_packet_panes.c.
Rename main_tree_view_new() to proto_tree_view_new() - it's not just for
creating the main window's protocol tree view, it's also for creating
protocol tree views in packet windows.
svn path=/trunk/; revision=43292
used for popped-up packet windows, and it includes more than just code
to draw the protocol tree - it includes the hex dump pane code as well.
Rename it packet_panes.c; the stuff specific to the main window should
be moved into a different file.
svn path=/trunk/; revision=43290
live capture" and colorization, so that the ones in main_menubar.c don't
have to know about anything other than the main menubar.
Move some toolbar routines that should only be used by routines in
main.c into a main_toolbar_private.h header.
svn path=/trunk/; revision=43053
made to the capture file (adding/removing/editing comments, for now) or
if a capture file with unsaved changes are unsaved, updates the menu
bar, the toolbar, *and* the titlebar, which now has a GNOME-style "*" to
indicate unsaved changes.
Make set_menus_for_capture_file() a private interface between main.c and
main_menubar.c, and have its callers, such as
main_update_for_unsaved_changes(), be responsible for updating the
toolbar as well.
svn path=/trunk/; revision=43051
ui/gtk/gui_utils.c into ui/gtk/main_titlebar.c, and the declaration of
one of them out of ui/ui_util.h into ui/gtk/main_titlebar.h, and rename
them to clarify that they work on the window name and titlebar.
svn path=/trunk/; revision=43041
GENERATED_H_FILES.
If we have DIRTY_GENERATED_C_FILES, use it the same way we use
GENERATED_C_FILES.
GENERATED_FILES is "everything to nuke on a "make maintainer-clean"",
not "everything to put into the distribution".
svn path=/trunk/; revision=41075