wireshark/gtk/range_utils.h
Guy Harris ca970e3757 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

69 lines
1.9 KiB
C

/* range_utils.h
* Declarations of utilities to with range_utils.c (packet range dialog)
*
* $Id$
*
* Ulf Lamping <ulf.lamping@web.de>
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __RANGE_UTILS_H__
#define __RANGE_UTILS_H__
/** @file
* Packet range widget used for example in the "Save" and "Print" dialogs.
*/
/** Check the validity of a packet_range_t, and put up an alert box if
** it's not valid.
*
* @param range the range to check
* @return a Boolean that's TRUE if it's valid and FALSE if it isn't
*/
extern gboolean range_check_validity(packet_range_t *range);
#if GTK_MAJOR_VERSION < 2
/** Create a new range widget.
*
* @param range the range to set
* @param accel_group accelerator group (GTK1 only)
* @return the new range widget
*/
#else
/** Create a new range widget.
*
* @param range the range to set
* @return the new range widget
*/
#endif
extern GtkWidget *range_new(packet_range_t *range
#if GTK_MAJOR_VERSION < 2
, GtkAccelGroup *accel_group
#endif
);
/* Update all "dynamic" range things.
*
* @param data range widget
*/
extern void range_update_dynamics(gpointer data);
#endif