Handle -I in the options processing.
[obnox/wireshark/wip.git] / gtk / file_dlg.h
index 4c6c3a03f830db1ae77a6bfe51296ae58f2b5538..87dd8d4d8d65fe3c9549f1698b5d0c30991312b7 100644 (file)
@@ -1,10 +1,10 @@
 /* file_dlg.h
- * Definitions for dialog boxes for handling files
+ * Declarations of utilities to use when constructing file selection dialogs
  *
- * $Id: file_dlg.h,v 1.7 2003/12/01 02:01:56 guy Exp $
+ * $Id$
  *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
+ * 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
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
+/** @defgroup filesel_dialog_group File Selection Dialogs
+ *
+ * Dialogs are specially created windows and are related to their parent windows (usually the main window). 
+ * See: @ref howto_window_page for details.
+ *
+ * File selection dialogs are created using file_selection_new().
+ *
+ * - "Browse" file_selection_browse()
+ * - "Open Capture File" file_open_cmd()
+ * - "Save Capture File As" file_save_as_cmd()
+ * - "Import Color Filters" file_color_import_cmd_cb()
+ * - "Export Color Filters" file_color_export_cmd_cb()
+ * - "Save TCP Follow Stream As" follow_save_as_cmd_cb()
+ * - "Export Selected Packet Bytes" savehex_cb()
+ * - "Save Data As CSV" save_csv_as_cb()
+ * - "Save Payload As ..." on_save_bt_clicked()
+ * - "Save selected stream in rtpdump" rtpstream_on_save()
+ * 
+ */
+
+/** @file
+ * Utilities for file selection dialog boxes. Depending on the window
+ * functions in gui_utils.h, see: @ref howto_window_page for details.
+ * @ingroup filesel_dialog_group
+ */
+
 #ifndef __FILE_DLG_H__
 #define __FILE_DLG_H__
 
-void file_open_cmd_cb(GtkWidget *, gpointer);
-void file_save_cmd_cb(GtkWidget *, gpointer);
-void file_save_as_cmd_cb(GtkWidget *, gpointer);
-void file_close_cmd_cb(GtkWidget *, gpointer);
-void file_reload_cmd_cb(GtkWidget *, gpointer);
-void select_file_cb(GtkWidget *file_bt, const char *label);
+/** the action a file selection is designed for */
+typedef enum {
+       FILE_SELECTION_OPEN,            /**< open a file */
+       FILE_SELECTION_READ_BROWSE,     /**< browse for a file to read */
+       FILE_SELECTION_SAVE,            /**< save/export a file */
+       FILE_SELECTION_WRITE_BROWSE,    /**< browse for a file to write to */
+       FILE_SELECTION_CREATE_FOLDER    /**< browse for a dir. to save in */  
+} file_selection_action_t;
+
+/** Create a file selection dialog box window that belongs to Wireshark's
+ *  main window. See window_new() for usage.
+ *
+ * @param title the title for the new file selection dialog
+ * @param action the desired action
+ * @return the newly created file selection dialog
+ */
+extern GtkWidget *file_selection_new(const gchar *title, file_selection_action_t action);
+
+/** Set the current folder for a file selection dialog.
+ *
+ * @param fs the file selection dialog from file_selection_new()
+ * @param filename the folder to set
+ * @return TRUE if the folder could be changed successfully
+ */
+extern gboolean file_selection_set_current_folder(GtkWidget *fs, const gchar *filename);
 
-void file_color_import_cmd_cb(GtkWidget *w, gpointer data);
-void file_color_export_cmd_cb(GtkWidget *, gpointer);
+/** Set the "extra" widget for a file selection dialog. This is needed to support 
+ *  user-supplied options.
+ *
+ * @param fs the file selection dialog from file_selection_new()
+ * @param extra the widget to set
+ */
+extern void file_selection_set_extra_widget(GtkWidget *fs, GtkWidget *extra);
 
-/* Keys ... */
-#define E_FILE_TE_PTR_KEY         "file_te_ptr"
+/** The function file_selection_browse() will g_object_set_data() itself on it's parent window.
+ *  When destroying the parent window, it can close the corresponding file selection. */
 #define E_FILE_SEL_DIALOG_PTR_KEY "file_sel_dialog_ptr"
-#define E_FS_CALLER_PTR_KEY       "fs_caller_ptr"
 
-/*
- * Set the "Save only marked packets" toggle button as appropriate for
- * the current output file type and count of marked packets.
- * Called when the "Save As..." dialog box is created and when either
- * the file type or the marked count changes.
+/** Browse the files and fill in the associated text entry.
+ *
+ * @param file_bt the button that called us (to get the toplevel widget)
+ * @param file_te the GtkEntry the dialog will have to fill in the filename
+ * @param title the title for the file selection dialog
+ * @param action the desired action
+ */
+extern void
+file_selection_browse(GtkWidget *file_bt, GtkWidget *file_te, const char *title, file_selection_action_t action);
+
+/** Get the latest opened directory.
+ *
+ * @return the dirname
+ */
+extern char *get_last_open_dir(void);
+
+/** Set the latest opened directory.
+ *  Will already be done when using file_selection_new().
+ *
+ * @param dirname the dirname
  */
-void file_set_save_marked_sensitive(void);
+extern void set_last_open_dir(const char *dirname);
 
-#endif /* file_dlg.h */
+#endif