wireshark/ui/gtk/main.h
Gerald Combs ae7ee61e84 Rename the "saved_val" preference element to "stashed_val" in order to
more clearly indicate that it's a copy of a preference value rather than
something we've saved in the preferences file. Update
prefs_pref_to_str() to handle default, stashed, and current prefs.

Create ui/preference_utils.[ch] and move some common routines there. Use
prefs_pref_type_name() in the GTK+ preferences dialog.

Make the "OK" button in the Qt preferences dialog work. We simply write
the prefs and redissect on "OK" and do nothing on "Cancel". This is
intentionally different from the Apply/OK/Cancel behavior in the GTK+
version.

Add a general "emitAppSignal" method to wsApp and use it for packet
dissection and preference changes.

Suggest that we might want to create a WsString class to make conversion
between QStrings, gchar *s, and GStrings easier.

svn path=/trunk/; revision=47139
2013-01-18 00:50:14 +00:00

370 lines
11 KiB
C

/* main.h
* Global defines, etc.
*
* $Id$
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef __MAIN_H__
#define __MAIN_H__
#include "globals.h"
#include "capture_opts.h"
/** @defgroup main_window_group Main window
* The main window has the following submodules:
@dot
digraph main_dependencies {
node [shape=record, fontname=Helvetica, fontsize=10];
main [ label="main window" URL="\ref main.h"];
menu [ label="menubar" URL="\ref menus.h"];
toolbar [ label="toolbar" URL="\ref main_toolbar.h"];
packet_list [ label="packet list pane" URL="\ref packet_list.h"];
proto_draw [ label="packet details & bytes panes" URL="\ref main_proto_draw.h"];
recent [ label="recent user settings" URL="\ref recent.h"];
main -> menu [ arrowhead="open", style="solid" ];
main -> toolbar [ arrowhead="open", style="solid" ];
main -> packet_list [ arrowhead="open", style="solid" ];
main -> proto_draw [ arrowhead="open", style="solid" ];
main -> recent [ arrowhead="open", style="solid" ];
}
@enddot
*/
/** @file
* The main window, filter toolbar, program start/stop and a lot of other things
* @ingroup main_window_group
* @ingroup windows_group
*/
/** Global compile time version string */
extern GString *comp_info_str;
/** Global runtime version string */
extern GString *runtime_info_str;
extern GtkWidget* wireless_tb;
void
airpcap_toolbar_encryption_cb(GtkWidget *entry, gpointer user_data);
/** User requested "Zoom In" by menu or toolbar.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void view_zoom_in_cb(GtkWidget *widget, gpointer data);
/** User requested "Zoom Out" by menu or toolbar.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void view_zoom_out_cb(GtkWidget *widget, gpointer data);
/** User requested "Zoom 100%" by menu or toolbar.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void view_zoom_100_cb(GtkWidget *widget, gpointer data);
/** User requested "Protocol Info" by ptree context menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void selected_ptree_info_cb(GtkWidget *widget, gpointer data);
/** User requested "Filter Reference" by ptree context menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void selected_ptree_ref_cb(GtkWidget *widget, gpointer data);
/** "Apply as Filter" / "Prepare a Filter" action type. */
typedef enum {
MATCH_SELECTED_REPLACE, /**< "Selected" */
MATCH_SELECTED_AND, /**< "and Selected" */
MATCH_SELECTED_OR, /**< "or Selected" */
MATCH_SELECTED_NOT, /**< "Not Selected" */
MATCH_SELECTED_AND_NOT, /**< "and not Selected" */
MATCH_SELECTED_OR_NOT /**< "or not Selected" */
} MATCH_SELECTED_E;
/** mask MATCH_SELECTED_E values (internally used) */
#define MATCH_SELECTED_MASK 0x0ff
/** "bitwise or" this with MATCH_SELECTED_E value for instant apply instead of prepare only */
#define MATCH_SELECTED_APPLY_NOW 0x100
/** "bitwise or" this with MATCH_SELECTED_E value for copy to clipboard instead of prepare only */
#define MATCH_SELECTED_COPY_ONLY 0x200
/** User requested one of "Apply as Filter" or "Prepare a Filter" functions
* by menu or context menu of protocol tree.
*
* @param data parent widget
* @param action the function to use
*/
extern void match_selected_ptree_cb(gpointer data, MATCH_SELECTED_E action);
/** "Copy ..." action type. */
typedef enum {
COPY_SELECTED_DESCRIPTION, /**< "Copy Description" */
COPY_SELECTED_FIELDNAME, /**< "Copy Fieldname" */
COPY_SELECTED_VALUE /**< "Copy Value" */
} COPY_SELECTED_E;
/** User highlighted item in details window and then right clicked and selected the copy option
*
* @param w parent widget
* @param data parent widget
* @param action the function to use
*/
extern void copy_selected_plist_cb(GtkWidget *w _U_, gpointer data, COPY_SELECTED_E action);
/** Set or remove a time reference on this frame
*
* @param set TRUE = set time ref, FALSE=unset time ref
* @param frame pointer to frame
* @param row row number
*/
extern void set_frame_reftime(gboolean set, frame_data *frame, gint row);
/** User requested the colorize function
* by menu or context menu of protocol tree.
*
* @param w parent widget
* @param data parent widget
* @param filt_nr 1-10: use filter for color 1-10
* 0: open new colorization rule dialog
* 255: clear filters for color 1-10
*/
extern void colorize_selected_ptree_cb(GtkWidget *w, gpointer data, guint8 filt_nr);
/** User requested one of "Apply as Filter" or "Prepare a Filter" functions
* by context menu of packet list.
*
* @param data parent widget
* @param action the function to use
*/
extern void match_selected_plist_cb(gpointer data, MATCH_SELECTED_E action);
/** User requested "Quit" by menu or toolbar.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void file_quit_cmd_cb(GtkWidget *widget, gpointer data);
/** User requested "Print" by menu or toolbar.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void file_print_cmd_cb(GtkWidget *widget, gpointer data);
/** User requested "Print" by packet list context menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void file_print_selected_cmd_cb(GtkWidget *widget _U_, gpointer data _U_);
/** User requested "Export as Plain Text" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void export_text_cmd_cb(GtkWidget *widget, gpointer data);
/** User requested "Export as Postscript" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void export_ps_cmd_cb(GtkWidget *widget, gpointer data);
/** User requested "Export as PSML" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void export_psml_cmd_cb(GtkWidget *widget, gpointer data);
/** User requested "Export as PDML" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void export_pdml_cmd_cb(GtkWidget *widget, gpointer data);
/** User requested "Export as CSV" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void export_csv_cmd_cb(GtkWidget *widget, gpointer data);
/** User requested "Export as C Arrays" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void export_carrays_cmd_cb(GtkWidget *widget, gpointer data);
/** User requested "Expand Tree" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void expand_tree_cb(GtkWidget *widget, gpointer data);
/** User requested "Expand All" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void expand_all_cb(GtkWidget *widget, gpointer data);
/** User requested "Apply as a custom column" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void apply_as_custom_column_cb(GtkWidget *widget, gpointer data);
/** User requested "Collapse All" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void collapse_all_cb(GtkWidget *widget, gpointer data);
/** User requested "Resolve Name" by menu.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void resolve_name_cb(GtkWidget *widget, gpointer data);
/** Action to take for reftime_frame_cb() */
typedef enum {
REFTIME_TOGGLE, /**< toggle ref frame */
REFTIME_FIND_NEXT, /**< find next ref frame */
REFTIME_FIND_PREV /**< find previous ref frame */
} REFTIME_ACTION_E;
/** User requested one of the "Time Reference" functions by menu.
*
* @param widget parent widget (unused)
* @param data unused
* @param action the function to use
*/
extern void reftime_frame_cb(GtkWidget *widget, gpointer data, REFTIME_ACTION_E action);
/** User requested the "Find Next Mark" function by menu.
*
* @param widget parent widget (unused)
* @param data unused
* @param action unused
*/
extern void find_next_mark_cb(GtkWidget *widget, gpointer data, int action);
/** User requested the "Find Previous Mark" function by menu.
*
* @param widget parent widget (unused)
* @param data unused
* @param action unused
*/
extern void find_prev_mark_cb(GtkWidget *widget, gpointer data, int action);
#if 0
/** Empty out the combobox entry field */
extern void dfilter_combo_add_empty(void);
#endif
/** Update various parts of the main window for a capture file "unsaved
* changes" change.
*
* @param cf capture_file structure for the capture file.
*/
extern void main_update_for_unsaved_changes(capture_file *cf);
#ifdef HAVE_LIBPCAP
/** Update various parts of the main window for a change in whether
* "auto scroll in live capture" is on or off.
*
* @param auto_scroll_live_in new state of "auto scroll in live capture"
*/
void main_auto_scroll_live_changed(gboolean auto_scroll_live_in);
#endif
/** Update parts of the main window for a change in colorization. */
extern void main_colorize_changed(gboolean packet_list_colorize);
/** Quit the program.
*
* @return TRUE, if a file read is in progress
*/
extern gboolean main_do_quit(void);
/** Rearrange the main window widgets, user changed it's preferences. */
extern void main_widgets_rearrange(void);
/** Show or hide the main window widgets, user changed it's preferences. */
extern void main_widgets_show_or_hide(void);
/* Update main window items based on whether we have a packet history. */
extern void main_set_for_packet_history(gboolean back_history, gboolean forward_history);
/** Apply a new filter string.
* Call cf_filter_packets() and add this filter string to the recent filter list.
*
* @param cf the capture file
* @param dftext the new filter string
* @param force force the refiltering, even if filter string doesn't changed
* @return TRUE, if the filtering succeeded
*/
extern gboolean main_filter_packets(capture_file *cf, const gchar *dftext,
gboolean force);
#ifdef _WIN32
/** Win32 only: Create a console. Beware: cannot be closed again. */
extern void create_console(void);
/** Restart the tap update display timer with new configured interval */
extern void reset_tap_update_timer(void);
#endif
/** Change configuration profile */
extern void change_configuration_profile(const gchar *profile_name);
/** redissect packets and update UI */
extern void redissect_packets(void);
/** Fetch all IP addresses from selected row */
extern GList *get_ip_address_list_from_packet_list_row(gpointer data);
extern GtkWidget *pkt_scrollw;
#endif /* __MAIN_H__ */