2006-04-29 23:03:57 +00:00
|
|
|
/* capture_file_dlg.h
|
2000-02-12 06:58:42 +00:00
|
|
|
* Definitions for dialog boxes for handling files
|
|
|
|
*
|
2004-07-18 00:24:25 +00:00
|
|
|
* $Id$
|
2000-02-12 06:58:42 +00:00
|
|
|
*
|
2006-05-21 05:12:17 +00:00
|
|
|
* Wireshark - Network traffic analyzer
|
|
|
|
* By Gerald Combs <gerald@wireshark.org>
|
2000-02-12 06:58:42 +00:00
|
|
|
* Copyright 1998 Gerald Combs
|
2002-08-28 21:04:11 +00:00
|
|
|
*
|
2000-02-12 06:58:42 +00:00
|
|
|
* 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.
|
2002-08-28 21:04:11 +00:00
|
|
|
*
|
2000-02-12 06:58:42 +00:00
|
|
|
* 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.
|
2002-08-28 21:04:11 +00:00
|
|
|
*
|
2000-02-12 06:58:42 +00:00
|
|
|
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
2006-04-29 23:18:47 +00:00
|
|
|
#ifndef __CAPTURE_FILE_DLG_H__
|
|
|
|
#define __CAPTURE_FILE_DLG_H__
|
2000-02-12 06:58:42 +00:00
|
|
|
|
2004-06-01 17:33:37 +00:00
|
|
|
/** @file
|
|
|
|
* "Open" / "Close" / "Save" / "Save As" / etc dialog boxes.
|
2004-06-04 20:05:31 +00:00
|
|
|
* @ingroup dialog_group
|
2004-06-01 17:33:37 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
/** the action to take, after save has been done */
|
2004-01-29 23:11:38 +00:00
|
|
|
typedef enum {
|
2004-06-01 17:33:37 +00:00
|
|
|
after_save_no_action, /**< no action to take */
|
|
|
|
after_save_close_file, /**< close the file */
|
|
|
|
after_save_open_dialog, /**< open the file open dialog */
|
|
|
|
after_save_open_recent_file, /**< open the specified recent file */
|
|
|
|
after_save_open_dnd_file, /**< open the specified file from drag and drop */
|
2004-06-17 21:53:26 +00:00
|
|
|
after_save_merge_dialog, /**< open the file merge dialog */
|
2004-06-01 17:33:37 +00:00
|
|
|
after_save_capture_dialog, /**< open the capture dialog */
|
|
|
|
after_save_exit /**< exit program */
|
2004-01-29 23:11:38 +00:00
|
|
|
} action_after_save_e;
|
|
|
|
|
We're an editor now, as we let you add, delete, and edit frame comments,
so "Save" should, for non-temporary files, mean "save the current state
of the capture file on top of the existing file" without prompting for a
file name.
That means we have to do a "safe save" - i.e, write the capture out to a
new file and, if that succeeds, rename the new file on top of the old
file - as the actual packet data to write out is in the file we're
overwriting, not in memory. (We'd want to do that anyway, of
course....)
Update some comments.
Clean up indentation slightly, and get rid of an unnecessary variable
(in all the cases where we use it, we assign it the same value, and that
value isn't modified out from under us before we use it).
Note that after a "Save", or a "Save As" that writes out all captured
packets, we shouldn't have to close the current file and open the new
file and reread it - we should be able to open the new file and update
the frame offsets in the frame_data structures.
Note that we need to do some a better job of reporting rename failures.
svn path=/trunk/; revision=42777
2012-05-22 10:36:40 +00:00
|
|
|
/** Do a "Save", opening a dialog box if the current file is a temporary file.
|
|
|
|
*
|
|
|
|
* @param action_after_save the action to take, when save completed
|
|
|
|
* @param action_after_save_data data for action_after_save
|
|
|
|
*/
|
|
|
|
void file_save_cmd(action_after_save_e action_after_save, gpointer action_after_save_data);
|
|
|
|
|
2004-06-01 17:33:37 +00:00
|
|
|
/** Open the "Save As" dialog box.
|
|
|
|
*
|
|
|
|
* @param action_after_save the action to take, when save completed
|
|
|
|
* @param action_after_save_data data for action_after_save
|
2011-10-05 05:40:34 +00:00
|
|
|
* @param save_only_displayed Save only the displayed packets
|
2004-06-01 17:33:37 +00:00
|
|
|
*/
|
2011-10-05 05:40:34 +00:00
|
|
|
void file_save_as_cmd(action_after_save_e action_after_save, gpointer action_after_save_data, gboolean save_only_displayed);
|
2004-01-29 23:11:38 +00:00
|
|
|
|
2005-12-05 22:45:54 +00:00
|
|
|
/** Destroy the save as dialog.
|
|
|
|
*/
|
|
|
|
void file_save_as_destroy(void);
|
|
|
|
|
2004-06-01 17:33:37 +00:00
|
|
|
/** User requested the "Open" dialog box.
|
|
|
|
*
|
|
|
|
* @param widget parent widget
|
|
|
|
* @param data unused
|
|
|
|
*/
|
|
|
|
void file_open_cmd_cb(GtkWidget *widget, gpointer data);
|
|
|
|
|
2004-06-17 21:53:26 +00:00
|
|
|
/** User requested the "Merge" dialog box.
|
|
|
|
*
|
|
|
|
* @param widget parent widget
|
|
|
|
* @param data unused
|
|
|
|
*/
|
|
|
|
void file_merge_cmd_cb(GtkWidget *widget, gpointer data);
|
|
|
|
|
2004-06-01 17:33:37 +00:00
|
|
|
/** User requested the "Save" dialog box.
|
|
|
|
*
|
|
|
|
* @param widget parent widget
|
|
|
|
* @param data unused
|
|
|
|
*/
|
|
|
|
void file_save_cmd_cb(GtkWidget *widget, gpointer data);
|
|
|
|
|
|
|
|
/** User requested the "Save As" dialog box.
|
|
|
|
*
|
|
|
|
* @param widget parent widget
|
|
|
|
* @param data unused
|
|
|
|
*/
|
|
|
|
void file_save_as_cmd_cb(GtkWidget *widget, gpointer data);
|
|
|
|
|
|
|
|
/** User requested "Close".
|
|
|
|
*
|
|
|
|
* @param widget parent widget
|
|
|
|
* @param data unused
|
|
|
|
*/
|
|
|
|
void file_close_cmd_cb(GtkWidget *widget, gpointer data);
|
2004-01-29 23:11:38 +00:00
|
|
|
|
2004-06-01 17:33:37 +00:00
|
|
|
/** User requested "Reload".
|
|
|
|
*
|
|
|
|
* @param widget parent widget
|
|
|
|
* @param data unused
|
|
|
|
*/
|
|
|
|
void file_reload_cmd_cb(GtkWidget *widget, gpointer data);
|
2000-02-12 06:58:42 +00:00
|
|
|
|
2004-06-01 17:33:37 +00:00
|
|
|
/** User requested "Import". Currently only called from the color dialog.
|
|
|
|
*
|
|
|
|
* @param widget parent widget
|
|
|
|
* @param data unused
|
|
|
|
*/
|
|
|
|
void file_color_import_cmd_cb(GtkWidget *widget, gpointer data);
|
|
|
|
|
|
|
|
/** User requested "Export". Currently only called from the color dialog.
|
|
|
|
*
|
|
|
|
* @param widget parent widget
|
|
|
|
* @param data unused
|
|
|
|
*/
|
|
|
|
void file_color_export_cmd_cb(GtkWidget *widget, gpointer data);
|
2003-08-18 21:27:11 +00:00
|
|
|
|
2001-12-06 02:21:26 +00:00
|
|
|
/*
|
|
|
|
* 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.
|
|
|
|
*/
|
In "Save As", support only file types we can write to; that simplifies
the logic, making it easier to get it right (fewer interactions between
components of the dialog - the file type doesn't affect whether we can
save some but not all packets). It also means we don't offer a file
type for saving, only to take it away if you choose anything other than
saving all packets.
If the capture file is a temporary file from a capture done in the
current Ethereal session, it's libpcap format, which we can write to, so
you would be able to save it.
If it's a saved file we read in, saving the file in its entirety in its
own format is just copying the file, and it's not clear supporting that
adds enough useful functionality to justify the extra complication.
Fix "range_update_dynamics()" to update all the rows of the range
button/count table properly (make the button active iff there's
a non-zero count in the currently-selected column, make a count active
iff the column is selected), to select the "Captured" column if the
count of displayed packets goes to zero, and to select the "Save all
packets" row if the count of packets in the currently-selected row and
column goes to zero. (XXX - we should perhaps do that with the
"user-defined range" counts as well, which would involve updating the
counts on every change to the range field.)
svn path=/trunk/; revision=17251
2006-02-11 11:21:38 +00:00
|
|
|
void file_save_update_dynamics(void);
|
2001-12-06 02:21:26 +00:00
|
|
|
|
2006-04-29 23:03:57 +00:00
|
|
|
#endif /* capture_file_dlg.h */
|