forked from osmocom/wireshark
Docs: Remove a bunch of GTK+ references.
Change-Id: Icab98813d0b81a7337562e9857429d4bb98dc44c Reviewed-on: https://code.wireshark.org/review/26817 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
This commit is contained in:
parent
8b93e6d6a2
commit
974a15bf74
|
@ -1,10 +1,10 @@
|
|||
This document is an attempt, to bring some light to the things done, when
|
||||
packet capturing is performed. There might be things missing, and others
|
||||
maybe wrong :-( The following will concentrate a bit on the win32 gtk
|
||||
port of wireshark.
|
||||
This document is an attempt, to bring some light to the things done, when
|
||||
packet capturing is performed. There might be things missing, and others
|
||||
maybe wrong :-( The following will concentrate a bit on the Windows
|
||||
port of Wireshark.
|
||||
|
||||
|
||||
XXX: when ongoing file reorganization will be completed, the following
|
||||
XXX: when ongoing file reorganization will be completed, the following
|
||||
two lists maybe won't be needed any longer!
|
||||
|
||||
libpcap related source files:
|
||||
|
@ -36,11 +36,11 @@ conditions.h
|
|||
|
||||
Capture driver
|
||||
--------------
|
||||
Wireshark doesn't have direct access to the capture hardware. Instead of this,
|
||||
Wireshark doesn't have direct access to the capture hardware. Instead of this,
|
||||
it uses the Libpcap/Winpcap library to capture data from network cards.
|
||||
|
||||
On Win32, in capture-wpcap.c the function ws_module_open("wpcap.dll") is called
|
||||
to load the wpcap.dll. This dll includes all functions needed for
|
||||
On Win32, in capture-wpcap.c the function ws_module_open("wpcap.dll") is called
|
||||
to load the wpcap.dll. This dll includes all functions needed for
|
||||
packet capturing.
|
||||
|
||||
|
||||
|
@ -53,8 +53,8 @@ There are some kinds of targets to put the capture data into:
|
|||
-user specified "single" capture file
|
||||
-user specified "ringbuffer" capture file
|
||||
|
||||
Which kind of file is used depends on the user settings. In principle there
|
||||
is no difference in handling these files, so if not otherwise notified,
|
||||
Which kind of file is used depends on the user settings. In principle there
|
||||
is no difference in handling these files, so if not otherwise notified,
|
||||
it will be called the capture file.
|
||||
|
||||
The capture file is stored, using the wiretap library.
|
||||
|
@ -62,70 +62,70 @@ The capture file is stored, using the wiretap library.
|
|||
|
||||
Overview
|
||||
--------
|
||||
Capturing is done using a two task model: the currently running (parent)
|
||||
process will spawn a child process to do the real capture work, namely
|
||||
controlling libpcap. This two task model is used because it's necessary
|
||||
Capturing is done using a two task model: the currently running (parent)
|
||||
process will spawn a child process to do the real capture work, namely
|
||||
controlling libpcap. This two task model is used because it's necessary
|
||||
to split the capturing process (which should avoid packet drop) from the parent
|
||||
process which might need significant time to display the data.
|
||||
|
||||
When a capture is started, the parent builds a "command line" and creates a
|
||||
new child process with it. A pipe from the child to the parent is created
|
||||
which is used to transfer control messages.
|
||||
When a capture is started, the parent builds a "command line" and creates a
|
||||
new child process with it. A pipe from the child to the parent is created
|
||||
which is used to transfer control messages.
|
||||
|
||||
The child will init libpcap and send the parent a "new capture file is used"
|
||||
control message through the pipe.
|
||||
|
||||
The child cyclically takes the packet data from libpcap and saves it to disk.
|
||||
From time to time it will send the parent a "new packets" control message.
|
||||
The child cyclically takes the packet data from libpcap and saves it to disk.
|
||||
From time to time it will send the parent a "new packets" control message.
|
||||
|
||||
If the parent process receives this "new packets" message and the option
|
||||
"Update list of packets in real time" is used, it will read the packet data
|
||||
If the parent process receives this "new packets" message and the option
|
||||
"Update list of packets in real time" is used, it will read the packet data
|
||||
from the file, dissect and display it.
|
||||
|
||||
|
||||
If the user wants to stop the capture, this can be done in two ways: by
|
||||
menu/toolbar of the parent process or the Stop button of the child processes
|
||||
If the user wants to stop the capture, this can be done in two ways: by
|
||||
menu/toolbar of the parent process or the Stop button of the child processes
|
||||
dialog box (which obviously cannot be used it this dialog is hidden).
|
||||
|
||||
The Stop button will stop the capture itself, close the control pipe and then
|
||||
The Stop button will stop the capture itself, close the control pipe and then
|
||||
closes itself. The parent will detect this and stop its part of the capture.
|
||||
|
||||
If the menu/toolbar is used, the parent will send a break signal to the child
|
||||
If the menu/toolbar is used, the parent will send a break signal to the child
|
||||
which will lead to the same sequence as described above.
|
||||
|
||||
Win32 only: as the windows implementation of signals simply doesn't work,
|
||||
another pipe from the parent to the child is used to send a "close capture"
|
||||
Win32 only: as the windows implementation of signals simply doesn't work,
|
||||
another pipe from the parent to the child is used to send a "close capture"
|
||||
message instead of a signal.
|
||||
|
||||
|
||||
Start capture
|
||||
-------------
|
||||
A capture is started, by specifying to start the capture at the command line,
|
||||
trigger the OK button in the "Capture Options" dialog box and some more. The
|
||||
capture start is actually done by calling the capture_start() function in
|
||||
A capture is started, by specifying to start the capture at the command line,
|
||||
trigger the OK button in the "Capture Options" dialog box and some more. The
|
||||
capture start is actually done by calling the capture_start() function in
|
||||
capture.c.
|
||||
|
||||
|
||||
Capture child (Loop)
|
||||
--------------------
|
||||
The capture child will open the target capture file, prepare pcap things,
|
||||
init stop conditions, init the capture statistic dialog (if not hidden) and
|
||||
init stop conditions, init the capture statistic dialog (if not hidden) and
|
||||
start a loop which is running until the flag ld.go is FALSE.
|
||||
|
||||
Inside this loop,
|
||||
Inside this loop,
|
||||
|
||||
-gtk main things are updated
|
||||
-Qt main things are updated
|
||||
-pcap_dispatch(capture_pcap_cb) is called
|
||||
-the capture stop conditions are checked (ld.go is set to FALSE to finish)
|
||||
-update the capture statistic dialog (if not hidden)
|
||||
|
||||
While this loop is running, the pcap_dispatch() will call capture_pcap_cb()
|
||||
for every packet captured. Inside this, the packet data is converted into
|
||||
wtap (wiretap) format and saved to file. Beside saving, it is trying to
|
||||
do some basic dissecting (for the statistic window), by calling the
|
||||
While this loop is running, the pcap_dispatch() will call capture_pcap_cb()
|
||||
for every packet captured. Inside this, the packet data is converted into
|
||||
wtap (wiretap) format and saved to file. Beside saving, it is trying to
|
||||
do some basic dissecting (for the statistic window), by calling the
|
||||
appropriate capture_xxx function.
|
||||
|
||||
When the user triggered a capture stop or one of the capture stop conditions
|
||||
When the user triggered a capture stop or one of the capture stop conditions
|
||||
matched, the ld.go flag is set to FALSE, and the loop will stop shortly after.
|
||||
|
||||
|
||||
|
|
|
@ -367,7 +367,7 @@ in the proto_tree, then we jump to instruction 3.
|
|||
|
||||
00002 ANY_EQ reg#0 == reg#1
|
||||
|
||||
This checks to see if any of the fields in register 0
|
||||
This checks to see if any of the fields in register 0
|
||||
(which has the pre-loaded constant value of 127.0.0.1) are equal
|
||||
to any of the fields in register 1 (which are all of the ip.addr
|
||||
fields in the proto tree). The resulting value in the
|
||||
|
@ -550,8 +550,8 @@ Go to wireshark/ and run make. One thing to do is make dftest and see
|
|||
if you can construct valid display filters with your new operator. Or
|
||||
you may want to move directly to the generation of Wireshark.
|
||||
|
||||
Look also at wireshark/gtk/dfilter_expr_dlg.c and edit the display filter
|
||||
expression generator.
|
||||
Also look at ui/qt/display_filter_expression_dialog.cpp and the display
|
||||
filter expression generator.
|
||||
|
||||
How to add a new test to dfilter-test.py
|
||||
========================================
|
||||
|
|
|
@ -348,10 +348,6 @@ The menu entries themselves are generated with the following code structure:
|
|||
ext_menubar_add_entry(os_menu, "Test Entry B",
|
||||
NULL, menu_cb, <user_data>);
|
||||
|
||||
This will not work with the GTK version on macOS; the GTK interface is
|
||||
currently not supported on this platform. The Qt interface on macOS
|
||||
provides the menu.
|
||||
|
||||
For a more detailed information, please refer to plugin_if.h
|
||||
|
||||
6.2 Implement interactions with the main interface
|
||||
|
|
|
@ -5,7 +5,7 @@ internals are required.
|
|||
|
||||
As examples on how to use the tap system see the implementation of
|
||||
tap-rpcstat.c (tshark version)
|
||||
gtk/rpc_stat.c (gtk-wireshark version)
|
||||
ui/qt/rpc_service_response_time_dialog.cpp (wireshark version)
|
||||
|
||||
If all you need is to keep some counters, there's the stats_tree API,
|
||||
which offers a simple way to make a GUI and tshark tap-listener; see
|
||||
|
@ -151,7 +151,7 @@ void (*draw)(void *tapdata)
|
|||
This callback is used when Wireshark wants your application to redraw its
|
||||
output. It will usually not be called unless your application has received
|
||||
new data through the (*packet) callback.
|
||||
On some ports of Wireshark (gtk2) (*draw) will be called asynchronously
|
||||
On some ports of Wireshark (Qt) (*draw) will be called asynchronously
|
||||
from a separate thread up to once every 2-3 seconds.
|
||||
On other ports it might only be called once when the capture is finished
|
||||
or the file has been [re]read completely.
|
||||
|
|
|
@ -1522,10 +1522,9 @@ Below the drawing area and the scrollbar are the controls. On the
|
|||
bottom left there will be five similar sets of controls to control each
|
||||
individual graph such as "Display:<button>" which button will toggle
|
||||
that individual graph on/off. If <button> is ticked, the graph will be
|
||||
displayed. "Color:<color>" which is just a button to show which color
|
||||
will be used to draw that graph (color is only available in Gtk2
|
||||
version) and finally "Filter:<filter-text>" which can be used to specify
|
||||
a display filter for that particular graph.
|
||||
displayed. "Color:<color>" which is just a button to show which color
|
||||
will be used to draw that graph. Finally "Filter:<filter-text>" which
|
||||
can be used to specify a display filter for that particular graph.
|
||||
|
||||
If filter-text is empty then all packets will be used to calculate the
|
||||
quantity for that graph. If filter-text is specified only those packets
|
||||
|
@ -2848,16 +2847,6 @@ If the global F<colorfilters> file exists, it is used only if the personal
|
|||
F<colorfilters> file does not exist; global and personal color filters are
|
||||
not merged.
|
||||
|
||||
=item GTK rc files
|
||||
|
||||
The F<gtkrc> files contain system-wide and personal GTK theme settings.
|
||||
|
||||
The global F<gtkrc> file uses the same directory as the
|
||||
global preferences file.
|
||||
|
||||
The personal F<gtkrc> file uses the same directory as the personal
|
||||
preferences file.
|
||||
|
||||
=item Plugins
|
||||
|
||||
See above in the description of the About:Plugins page.
|
||||
|
|
|
@ -16,11 +16,11 @@ Wireshark consists of the following major parts:
|
|||
|
||||
* Capture - using the libpcap/winpcap library, in _/wiretap_
|
||||
|
||||
* User interface - using the Qt or $$GTK+$$ and associated libraries
|
||||
* User interface - using Qt and associated libraries
|
||||
|
||||
* Utilities - miscellaneous helper code
|
||||
|
||||
* Help - using an external web browser and GTK text output
|
||||
* Help - using an external web browser and text output
|
||||
|
||||
[[ChCodeStyle]]
|
||||
|
||||
|
@ -33,10 +33,10 @@ section of the file _doc/README.developer_.
|
|||
|
||||
=== The GLib library
|
||||
|
||||
Glib is used as a basic platform abstraction library. It doesn't provide
|
||||
GLib is used as a basic platform abstraction library. It doesn't provide
|
||||
any direct GUI functionality.
|
||||
|
||||
To quote the Glib Reference Manual:
|
||||
To quote the GLib Reference Manual:
|
||||
____
|
||||
GLib provides the core application building blocks for libraries and
|
||||
applications written in C. It provides the core object system used in GNOME, the
|
||||
|
|
|
@ -475,7 +475,7 @@ When reporting problems with Wireshark, it is helpful if you supply the
|
|||
following information:
|
||||
|
||||
. The version number of Wireshark and the dependent libraries linked with
|
||||
it, e.g. Qt, GTK+, etc. You can obtain this with the command
|
||||
it, e.g. Qt, GLib, etc. You can obtain this with the command
|
||||
`wireshark -v`.
|
||||
|
||||
. Information about the platform you run Wireshark on.
|
||||
|
|
|
@ -55,19 +55,10 @@ Most of the Win32 binary libraries you will find on the web are in this
|
|||
format. You will recognize MSVC libraries by the .lib/.dll file extension.
|
||||
|
||||
|
||||
[[ChLibsFormatWin32Cygwin]]
|
||||
|
||||
|
||||
==== Win32: cygwin gcc
|
||||
|
||||
Cygwin provides most of the required libraries (with file extension .a or .lib)
|
||||
for Wireshark suitable for cygwin’s gcc compiler.
|
||||
|
||||
|
||||
[[ChLibsSetup]]
|
||||
|
||||
|
||||
=== Win32: Automated library download
|
||||
=== Win32: Automated Library Download
|
||||
|
||||
The required libraries (apart from Qt) are automatically downloaded as part of
|
||||
the CMake generation step, and subsequently as required when libraries are updated.
|
||||
|
@ -106,44 +97,35 @@ It is available at https://www.qt.io/download-open-source/#section-2[].
|
|||
|
||||
==== Win32 MSVC
|
||||
|
||||
Qt5 must be installed manually, from the Qt installers page
|
||||
https://www.qt.io/download-open-source/#section-2[], using the version of Qt
|
||||
Qt5 must be installed manually from the Qt installers page
|
||||
https://www.qt.io/download-open-source/#section-2[] using the version of Qt
|
||||
appropriate for your compiler. Note that separate installations (into different directories) of Qt
|
||||
are required for 32 bit and 64 bit builds. The environment variable QT5_BASE_DIR should be
|
||||
set as appropriate for your environment and should point to the Qt directory that contains the
|
||||
bin directory, e.g. C:\Qt\Qt5.6.2\5.6\msvc2013
|
||||
bin directory, e.g. _C:\Qt\5.9.5\msvc2017_64_.
|
||||
|
||||
[[ChLibsGtk]]
|
||||
[[ChLibsGLib]]
|
||||
|
||||
=== GTK+ / GLib / GDK / Pango / ATK / GNU gettext / GNU libiconv
|
||||
=== GLib And Supporting Libraries
|
||||
|
||||
The Glib library is used as a basic platform abstraction library, it’s
|
||||
not related to graphical user interface (GUI) things. For a detailed
|
||||
description about GLib, see <<ChCodeGLib>>.
|
||||
The GLib library is used as a basic platform abstraction library and can
|
||||
be used in both CLI and GUI applications. For a detailed description
|
||||
about GLib see <<ChCodeGLib>>.
|
||||
|
||||
The GTK and its dependent libraries are used to build the older, deprecated, Wireshark GUI.
|
||||
For a detailed description of the GTK libraries, see <<ChUIGTK>>.
|
||||
GLib depends on GNU libiconv, GNU gettext, and other libraries. You will
|
||||
typically not come into contact with these while doing Wireshark
|
||||
development. Wireshark's build system check for and require both GLib
|
||||
and its dependencies.
|
||||
|
||||
All other libraries are dependent on the two libraries mentioned above,
|
||||
you will typically not come in touch with these while doing Wireshark
|
||||
development.
|
||||
|
||||
As the requirements for the GLib/GTK libraries have increased in the past,
|
||||
the required additional libraries depend on the GLib/GTK versions you have.
|
||||
The 2.x versions require all mentioned libs.
|
||||
|
||||
[[ChLibsUnixGTK]]
|
||||
[[ChLibsUnixGLib]]
|
||||
|
||||
==== Unix
|
||||
|
||||
The GLib/GTK+ libraries are available for many unix-like platforms and
|
||||
Cygwin.
|
||||
The GLib library is available for most Linux distributions and UNIX
|
||||
flavors. If it isn't already installed and isn't available as a package
|
||||
for your platform, you can get it at http://www.gtk.org/download.html[].
|
||||
|
||||
If these libraries aren't already installed and also aren't available as a
|
||||
package for your platform, you can get them at
|
||||
http://www.gtk.org/download.html[].
|
||||
|
||||
[[ChLibsWin32GTK]]
|
||||
[[ChLibsWin32GLib]]
|
||||
|
||||
==== Win32 MSVC
|
||||
|
||||
|
|
|
@ -451,21 +451,15 @@ be informative when things don't work as expected.
|
|||
[[ChSrcRunFirstTimeWin32]]
|
||||
|
||||
|
||||
==== Win32 native
|
||||
==== Win32 Native
|
||||
|
||||
During the build all relevant program files are collected in a
|
||||
subdirectory `run\RelWithDebInfo`. You can run the program from there by
|
||||
launching the Wireshark.exe executable.
|
||||
|
||||
The older GTK based version is also available in the same subdirectory.
|
||||
You can run the program from there by launching the wireshark-gtk.exe
|
||||
executable.
|
||||
|
||||
|
||||
[[ChSrcDebug]]
|
||||
|
||||
|
||||
=== Debug your generated Wireshark
|
||||
=== Debug Your Generated Wireshark
|
||||
|
||||
[[ChSrcUnixDebug]]
|
||||
|
||||
|
|
|
@ -16,10 +16,6 @@ development team:
|
|||
|
||||
* Wireshark, Qt based
|
||||
|
||||
* Wireshark, GTK{plus} 2.x based
|
||||
|
||||
* Wireshark, GTK{plus} 3.x based
|
||||
|
||||
* TShark, console based
|
||||
|
||||
There are other Wireshark frontends which are not developed nor maintained by
|
||||
|
@ -55,10 +51,10 @@ well on Windows, macOS, and Linux. See <<ChUIGUIDocs>> for details.
|
|||
Additionally, try to keep the following in mind:
|
||||
|
||||
*Workflow*. Excessive navigation and gratuitous dialogs should be
|
||||
avoided or reduced. For example, the two GTK+ flow graph dialogs have
|
||||
been combined into one in Qt. Many alert dialogs have been replaced with
|
||||
status bar messages. Statistics dialogs are displayed immediately
|
||||
instead of requiring that options be specified.
|
||||
avoided or reduced. For example, compared to the legacy UI many alert
|
||||
dialogs have been replaced with status bar messages. Statistics dialogs
|
||||
are displayed immediately instead of requiring that options be
|
||||
specified.
|
||||
|
||||
*Discoverability and feedback*. Most users don't like to read
|
||||
documentation and instead prefer to learn an application as they use it.
|
||||
|
@ -81,7 +77,7 @@ To edit and build Wireshark using Qt Cretor, open the top-level
|
|||
_CMakeLists.txt_ within Qt Creator. It should ask you to choose a build
|
||||
location. Do so. It should then ask you to run CMake. Fill in any
|
||||
desired build arguments (e.g. "-D CMAKE_BUILD_TYPE=Debug" or "-D
|
||||
ENABLE_GTK3=OFF") and click the ``Run CMake'' button. When that
|
||||
ENABLE_CCACHE=ON") and click the ``Run CMake'' button. When that
|
||||
completes select ``Build → Open Build and Run Kit Selector...'' and make
|
||||
sure _wireshark_ is selected.
|
||||
|
||||
|
@ -257,106 +253,6 @@ _ui/qt/proto_tree.cpp_ for an example of this.
|
|||
http://www.kdab.com/kdab-products/gammaray/[GammaRay] lets you inspect
|
||||
the internals of a running Qt application similar to $$Spy++$$ on Windows.
|
||||
|
||||
[[ChUIGTK]]
|
||||
|
||||
=== The GTK library
|
||||
|
||||
.We have switched to Qt
|
||||
[NOTE]
|
||||
====
|
||||
Wireshark’s default interface uses Qt. If you would like to add a new
|
||||
interface feature you should use it and not GTK{plus}.
|
||||
The documentation below is primarily historical.
|
||||
====
|
||||
|
||||
Wireshark was initially based on the GTK{plus} toolkit. See
|
||||
http://www.gtk.org[] for details. GTK{plus} is designed to hide the
|
||||
details of the underlying GUI in a platform independent way. As GTK is
|
||||
intended to be a multiplatform tool, there are some drawbacks, as the
|
||||
result is a somewhat "non native" look and feel.
|
||||
|
||||
GTK{plus} is available for many different platforms including, but not limited to:
|
||||
Unix/Linux, macOS and Win32. It’s the foundation of the famous GNOME desktop,
|
||||
so the future development of GTK should be certain. GTK is implemented in plain
|
||||
C (as is Wireshark itself), and available under the LGPL (Lesser General Public
|
||||
License), making it free to used by commercial and noncommercial applications.
|
||||
|
||||
There are other similar toolkits like wxWidgets which could also be used for
|
||||
Wireshark. There’s no "one and only" reason for or against any of these
|
||||
toolkits. However, the decision towards GTK was made a long time ago :-)
|
||||
|
||||
There are two major GTK versions available:
|
||||
|
||||
[[ChUIGTK2x]]
|
||||
|
||||
==== GTK Version 2.x
|
||||
|
||||
GTK 2.x depends on the following libraries:
|
||||
|
||||
* GObject (Object library. Basis for GTK and others)
|
||||
|
||||
* GLib (A general-purpose utility library, not specific to graphical user
|
||||
interfaces. GLib provides many useful data types, macros, type conversions,
|
||||
string utilities, file utilities, a main loop abstraction, and so on.)
|
||||
|
||||
* Pango (Pango is a library for internationalized text handling. It centers
|
||||
around the PangoLayout object, representing a paragraph of text. Pango
|
||||
provides the engine for GtkTextView, GtkLabel, GtkEntry, and other widgets
|
||||
that display text.)
|
||||
|
||||
* ATK (ATK is the Accessibility Toolkit. It provides a set of generic interfaces
|
||||
allowing accessibility technologies to interact with a graphical user
|
||||
interface. For example, a screen reader uses ATK to discover the text in an
|
||||
interface and read it to blind users. GTK+ widgets have built-in support for
|
||||
accessibility using the ATK framework.)
|
||||
|
||||
* GdkPixbuf (This is a small library which allows you to create GdkPixbuf
|
||||
("pixel buffer") objects from image data or image files. Use a
|
||||
GdkPixbuf in combination with GtkImage to display images.)
|
||||
|
||||
* GDK (GDK is the abstraction layer that allows GTK+ to support multiple
|
||||
windowing systems. GDK provides drawing and window system facilities on X11,
|
||||
Windows, and the Linux framebuffer device.)
|
||||
|
||||
[[ChUIGTK3x]]
|
||||
|
||||
==== GTK Version 3.x
|
||||
|
||||
Wireshark (as of version 1.10) has been ported to use the GTK3 library.
|
||||
|
||||
GTK 3.x depends on the following libraries:
|
||||
|
||||
(See GTK 2.x)
|
||||
|
||||
[[ChUIGTKCompat]]
|
||||
|
||||
==== Compatibility GTK versions
|
||||
|
||||
The GTK library itself defines some values which makes it easy to distinguish
|
||||
between the versions, e.g. `GTK_MAJOR_VERSION` and `GTK_MINOR_VERSION` will be
|
||||
set to the GTK version at compile time inside the gtkversion.h header.
|
||||
|
||||
[[ChUIGTKWeb]]
|
||||
|
||||
==== GTK resources on the web
|
||||
|
||||
You can find several resources about GTK.
|
||||
|
||||
First of all, have a look at http://www.gtk.org[]. This
|
||||
will be the first place to look at. If you want to develop GTK related
|
||||
things for Wireshark, the most important place might be the GTK API
|
||||
documentation at http://library.gnome.org/devel/gtk/stable/[].
|
||||
|
||||
Several mailing lists are available about GTK development, see
|
||||
http://mail.gnome.org/mailman/listinfo[], the gtk-app-devel-list may be your
|
||||
friend.
|
||||
|
||||
As it’s often done wrong: You should post a mail to *help* the developers
|
||||
there instead of only complaining. Posting such a thing like "I don't like
|
||||
your dialog, it looks ugly" won't be of much help. You might think about
|
||||
what you dislike and describe why you dislike it and provide a suggestion
|
||||
for a better way.
|
||||
|
||||
[[ChUIGUIDocs]]
|
||||
|
||||
=== Human Interface Reference Documents
|
||||
|
@ -392,46 +288,4 @@ http://msdn.microsoft.com/en-us/library/Aa511258.aspx[]
|
|||
* User Experience Stack Exchange:
|
||||
https://ux.stackexchange.com/[]
|
||||
|
||||
[[ChUIGTKDialogs]]
|
||||
|
||||
=== Adding/Extending Dialogs
|
||||
|
||||
This is usually the main area for contributing new user interface features.
|
||||
|
||||
XXX: add the various functions from gtk/dlg_utils.h
|
||||
|
||||
[[ChUIGTKWidgetNamings]]
|
||||
|
||||
=== Widget naming
|
||||
|
||||
It seems to be common sense to name the widgets with some
|
||||
descriptive trailing characters, like:
|
||||
|
||||
* xy_lb = gtk_label_new();
|
||||
|
||||
* xy_cb = gtk_checkbox_new();
|
||||
|
||||
* XXX: add more examples
|
||||
|
||||
However, this schema isn't used at all places inside the code.
|
||||
|
||||
[[ChUIGTKPitfalls]]
|
||||
|
||||
=== Common GTK programming pitfalls
|
||||
|
||||
There are some common pitfalls in GTK programming.
|
||||
|
||||
[[ChUIGTKShowAll]]
|
||||
|
||||
==== Usage of gtk_widget_show() / gtk_widget_show_all()
|
||||
|
||||
When a GTK widget is created it will be hidden by default. In order to
|
||||
show it, a call to gtk_widget_show() has to be done.
|
||||
|
||||
|
||||
It isn't necessary to do this for each and every widget created. A call
|
||||
to gtk_widget_show_all() on the parent of all the widgets in question
|
||||
(e.g. a dialog window) can be done, so all of its child widgets will
|
||||
be shown too.
|
||||
|
||||
// End of WSDG Chapter User Interface
|
||||
|
|
|
@ -24,7 +24,7 @@ image::wsdg_graphics/ws-function-blocks.png[{pdf-scaledwidth}]
|
|||
The function blocks in more detail:
|
||||
|
||||
GUI:: Handling of all user input/output (all windows, dialogs and such).
|
||||
Source code can be found in the _ui/qt_ and _ui/gtk_ directory.
|
||||
Source code can be found in the _ui/qt_ directory.
|
||||
|
||||
Core:: Main "glue code" that holds the other blocks together. Source
|
||||
code can be found in the root directory.
|
||||
|
|
|
@ -83,8 +83,6 @@ On the _Choose Components_ page of the installer you can select from the followi
|
|||
* *TShark* - A command-line network protocol analyzer. If you haven’t tried it
|
||||
you should.
|
||||
|
||||
* *Wireshark 1 Legacy* - The old (GTK+) user interface in case you need it.
|
||||
|
||||
* *Plugins & Extensions* - Extras for the Wireshark and TShark dissection engines
|
||||
|
||||
- *Dissector Plugins* - Plugins with some extended dissections.
|
||||
|
@ -325,10 +323,7 @@ distributions follow the same system):
|
|||
* The `wireshark` package contains the core Wireshark libraries and command-line
|
||||
tools.
|
||||
|
||||
* The `wireshark-qt` package contains the Qt-based GUI.
|
||||
|
||||
* The `wireshark-gtk` (formerly `wireshark-gnome`) package contains the legacy
|
||||
Gtk+ based GUI.
|
||||
* The `wireshark` or `wireshark-qt` package contains the Qt-based GUI.
|
||||
|
||||
Many distributions use `yum` or a similar package management tool to make
|
||||
installation of software (including its dependencies) easier. If your
|
||||
|
@ -383,7 +378,7 @@ Use the following command to install Wireshark under Gentoo Linux with all of
|
|||
the extra features:
|
||||
|
||||
----
|
||||
$ USE="c-ares gtk ipv6 portaudio snmp ssl kerberos threads selinux" emerge wireshark
|
||||
$ USE="c-ares ipv6 portaudio snmp ssl kerberos threads selinux" emerge wireshark
|
||||
----
|
||||
|
||||
==== Installing from packages under FreeBSD
|
||||
|
|
|
@ -769,7 +769,7 @@ you save them to disk. If you have a capture running, this list is automatically
|
|||
updated every few seconds with any new objects seen. The saved objects can then
|
||||
be opened with the proper viewer or executed in the case of executables (if it
|
||||
is for the same platform you are running Wireshark on) without any further work
|
||||
on your part. This feature is not available when using GTK2 versions below 2.4.
|
||||
on your part.
|
||||
|
||||
.The “Export Objects” dialog box
|
||||
image::wsug_graphics/ws-export-objects.png[{screenshot-attrs}]
|
||||
|
|
Loading…
Reference in New Issue