170 likes | 297 Views
Adding Additional Functionality to the Wireshark GUI with GTK+ June 18, 2009 Stephen Fisher Wireshark Core Developer Network Engineer SHARK FEST '09 Stanford University June 15-18, 2009. What is GTK+.
E N D
Adding Additional Functionality to the Wireshark GUI with GTK+ June 18, 2009 Stephen Fisher Wireshark Core Developer Network Engineer SHARKFEST'09 Stanford University June 15-18, 2009
What is GTK+ • GTK+ is short for the GIMP Toolkit. It was originally created for use by the GNU Image Manipulation Program(GIMP). • GTK+ is available for Unix (X), Microsoft Windows and MacOS X . • GTK+ is written in C and comes with a C based API. APIs for other languages are available.
How Wireshark uses GTK+ Almost all GUI presentations in Wireshark are done through GTK+. A notable exception is the native Microsoft Windows File Save dialogs.
The Export Objects feature In the GUI, go to: Find Export Objects We will be studying how the the HTTP Export Object’s GUI was created.
Main Menu To Export Object gtk/main_menu.c The underline in front of a letter means that letter is the shortcut key in the menu. gtk/export_object_http.c We use _U_ to tell gcc that the parameter is unused in the function. gtk/export_object.c
Creating the Window gtk/export_object.c: export_object_window() continued gtk/export_object.h: epan/prefs.h: (pixels)
Creating the Window(cont.) gtk/export_object.c: export_object_window() continued
Creating the Window(cont.) gtk/export_object.c: export_object_window() continued
Creating the Window(cont.) gtk/export_object.c: export_object_window() continued
Creating the Window(cont.) gtk/export_object.c: export_object_window() continued (Repeated for each column…)
Creating the Window(cont.) gtk/export_object.c: export_object_window() continued
Creating the Window(cont.) gtk/export_object.c: export_object_window() continued (repeated for each button …)
Creating the Window(cont.) gtk/export_object.c: export_object_window() continued
Further reading GTK+ Reference Manual: http://library.gnome.org/devel/gtk/stable/ GTK+ Index of All Symbols (functions and such): http://library.gnome.org/devel/gtk/stable/api-index-full.html GTK+ 2.0 Tree View Tutorial: http://scentric.net/tutorial/ Wireshark Developer’s Guide: http://www.wireshark.org/docs/wsdg_html_chunked/ Wireshark Developer README: http://anonsvn.wireshark.org/viewvc/trunk/doc/README.developer?view=co or doc/README.developer in source code tree
Questions ? I’m happy to answer any of your questions now, after this session or any time you see me during the conference. Ask other core and non-core developers; a number of which are proficient at GTK programming. Ask them on the wireshark-dev@wireshark.org mailing list (subscription required to get the responses to your question). I am subscribed to this mailing list. Review existing code in the gtk/ directory in the source code tree