From e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 22:34:10 +0200 Subject: Adding upstream version 4.2.2. Signed-off-by: Daniel Baumann --- ui/recent.h | 314 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 314 insertions(+) create mode 100644 ui/recent.h (limited to 'ui/recent.h') diff --git a/ui/recent.h b/ui/recent.h new file mode 100644 index 0000000..99918ea --- /dev/null +++ b/ui/recent.h @@ -0,0 +1,314 @@ +/** @file + * + * Definitions for recent "preference" handling routines + * Copyright 2004, Ulf Lamping + * + * Wireshark - Network traffic analyzer + * By Gerald Combs + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef __RECENT_H__ +#define __RECENT_H__ + +#include + +#include +#include "epan/timestamp.h" +#include "ui/ws_ui_util.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** @file + * Recent user interface settings. + * @ingroup main_window_group + */ + +/** ???. */ +#define RECENT_KEY_CAPTURE_FILE "recent.capture_file" + +/** ???. */ +#define RECENT_KEY_DISPLAY_FILTER "recent.display_filter" + +#define RECENT_KEY_COL_WIDTH "column.width" + +#define RECENT_KEY_CAPTURE_FILTER "recent.capture_filter" + +#define RECENT_KEY_REMOTE_HOST "recent.remote_host" + +typedef struct _col_width_data { + gint cfmt; + gchar *cfield; + gint width; + gchar xalign; +} col_width_data; + +/** Defines used in col_width_data.xalign */ +#define COLUMN_XALIGN_DEFAULT 0 +#define COLUMN_XALIGN_LEFT 'L' +#define COLUMN_XALIGN_CENTER 'C' +#define COLUMN_XALIGN_RIGHT 'R' + +typedef enum { + BYTES_HEX, + BYTES_BITS, + BYTES_DEC, + BYTES_OCT +} bytes_view_type; + +typedef enum { + BYTES_ENC_FROM_PACKET, // frame_data packet_char_enc + BYTES_ENC_ASCII, + BYTES_ENC_EBCDIC +} bytes_encoding_type; + +typedef enum { + SEARCH_IN_PACKET_LIST, + SEARCH_IN_PACKET_DETAILS, + SEARCH_IN_PACKET_BYTES +} search_in_type; + +typedef enum { + SEARCH_CHAR_SET_NARROW_AND_WIDE, + SEARCH_CHAR_SET_NARROW, + SEARCH_CHAR_SET_WIDE +} search_char_set_type; + +typedef enum { + SEARCH_TYPE_DISPLAY_FILTER, + SEARCH_TYPE_HEX_VALUE, + SEARCH_TYPE_STRING, + SEARCH_TYPE_REGEX +} search_type_type; + +typedef enum { + SHOW_ASCII, + SHOW_ASCII_CONTROL, + SHOW_CARRAY, + SHOW_EBCDIC, + SHOW_HEXDUMP, + SHOW_HTML, + SHOW_IMAGE, + SHOW_JSON, + SHOW_RAW, + SHOW_RUSTARRAY, + SHOW_CODEC, // Will map to UTF-8 in the combobox (other codecs + // are generated at runtime). + SHOW_YAML +} bytes_show_type; + +typedef enum { + DecodeAsNone, + DecodeAsBASE64, + DecodeAsCompressed, + DecodeAsHexDigits, + DecodeAsPercentEncoding, + DecodeAsQuotedPrintable, + DecodeAsROT13 +} bytes_decode_type; + +/** Recent settings. */ +typedef struct recent_settings_tag { + gboolean main_toolbar_show; + gboolean filter_toolbar_show; + gboolean wireless_toolbar_show; + gboolean packet_list_show; + gboolean tree_view_show; + gboolean byte_view_show; + gboolean packet_diagram_show; + gboolean statusbar_show; + gboolean packet_list_colorize; + gboolean capture_auto_scroll; + ts_type gui_time_format; + gint gui_time_precision; + ts_seconds_type gui_seconds_format; + gint gui_zoom_level; + bytes_view_type gui_bytes_view; + bytes_encoding_type gui_bytes_encoding; + gboolean gui_packet_diagram_field_values; + gboolean gui_allow_hover_selection; + + search_in_type gui_search_in; + search_char_set_type gui_search_char_set; + gboolean gui_search_case_sensitive; + search_type_type gui_search_type; + bytes_show_type gui_follow_show; + bytes_decode_type gui_show_bytes_decode; + bytes_show_type gui_show_bytes_show; + + gint gui_geometry_main_x; + gint gui_geometry_main_y; + gint gui_geometry_main_width; + gint gui_geometry_main_height; + + gboolean gui_geometry_main_maximized; + gboolean gui_geometry_leftalign_actions; + + gint gui_geometry_main_upper_pane; + gint gui_geometry_main_lower_pane; + gint gui_geometry_wlan_stats_pane; + gboolean privs_warn_if_elevated; + gboolean sys_warn_if_no_capture; + GList *col_width_list; /* column widths */ + GList *conversation_tabs; /* enabled conversation dialog tabs */ + GList *conversation_tabs_columns; /* save the columns for conversation dialogs */ + GList *endpoint_tabs; /* enabled endpoint dialog tabs */ + GList *endpoint_tabs_columns; /* save the columns for endpoint dialogs */ + gchar *gui_fileopen_remembered_dir; /* folder of last capture loaded in File Open dialog */ + gboolean gui_rlc_use_pdus_from_mac; + GList *custom_colors; + GList *gui_additional_toolbars; + GList *interface_toolbars; +} recent_settings_t; + +/** Global recent settings. */ +extern recent_settings_t recent; + +/** Initialize recent settings module (done at startup) */ +extern void recent_init(void); + +/** Cleanup/Frees recent settings (done at shutdown) */ +extern void recent_cleanup(void); + +/** Write recent_common settings file. + * + * @return TRUE if succeeded, FALSE if failed + */ +extern gboolean write_recent(void); + +/** Write profile recent settings file. + * + * @return TRUE if succeeded, FALSE if failed + */ +extern gboolean write_profile_recent(void); + +/** Read recent settings file (static part). + * + * @param rf_path_return path to recent file if function failed + * @param rf_errno_return if failed + * @return TRUE if succeeded, FALSE if failed (check parameters for reason). + */ +extern gboolean recent_read_static(char **rf_path_return, int *rf_errno_return); + +/** Read profile recent settings file (static part). + * + * @param rf_path_return path to recent file if function failed + * @param rf_errno_return if failed + * @return TRUE if succeeded, FALSE if failed (check parameters for reason). + */ +extern gboolean recent_read_profile_static(char **rf_path_return, int *rf_errno_return); + +/** Read recent settings file (dynamic part). + * + * @param rf_path_return path to recent file if function failed + * @param rf_errno_return if failed + * @return TRUE if succeeded, FALSE if failed (check parameters for reason). + */ +extern gboolean recent_read_dynamic(char **rf_path_return, int *rf_errno_return); + +/** + * Given a -o command line string, parse it and set the recent value in + * question. Return an indication of whether it succeeded or failed + * in some fashion. + * + * @param prefarg a string of the form ":", as might appear + * as an argument to a "-o" command line option + * @return PREFS_SET_OK or PREFS_SET_SYNTAX_ERR + */ +extern int recent_set_arg(char *prefarg); + +/** Get the column width for the given column + * + * @param col column number + */ +extern gint recent_get_column_width(gint col); + +/** Set the column width for the given column + * + * @param col column number + * @param width column width + */ +extern void recent_set_column_width(gint col, gint width); + +/** Get the column xalign for the given column + * + * @param col column number + */ +extern gchar recent_get_column_xalign(gint col); + +/** Set the column xalign for the given column + * + * @param col column number + * @param xalign column alignment + */ +extern void recent_set_column_xalign(gint col, gchar xalign); + +/* save the window and its current geometry into the geometry hashtable */ +extern void window_geom_save(const gchar *name, window_geometry_t *geom); + +/* load the desired geometry for this window from the geometry hashtable */ +extern gboolean window_geom_load(const gchar *name, window_geometry_t *geom); + +/** + * Returns a list of recent capture filters. + * + * @param ifname interface name; NULL refers to the global list. + */ +extern GList *recent_get_cfilter_list(const gchar *ifname); + +/** + * Add a capture filter to the global recent capture filter list or + * the recent capture filter list for an interface. + * + * @param ifname interface name; NULL refers to the global list. + * @param s text of capture filter + */ +extern void recent_add_cfilter(const gchar *ifname, const gchar *s); + +/** + * Get the value of an entry for a remote host from the remote host list. + * + * @param host host name for the remote host. + * + * @return pointer to the entry for the remote host. + */ +extern struct remote_host *recent_get_remote_host(const gchar *host); + +/** + * Get the number of entries of the remote host list. + * + * @return number of entries in the list. + */ +extern int recent_get_remote_host_list_size(void); + +/** + * Iterate over all items in the remote host list, calling a + * function for each member + * + * @param func function to be called + * @param user_data argument to pass as user data to the function + */ +extern void recent_remote_host_list_foreach(GHFunc func, gpointer user_data); + +/** + * Free all entries of the remote host list. + */ +extern void recent_free_remote_host_list(void); + +/** + * Add an entry to the remote_host_list. + * + * @param host Key of the entry + * @param rh Value of the entry + */ +extern void recent_add_remote_host(gchar *host, struct remote_host *rh); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* recent.h */ -- cgit v1.2.3