From Graeme Hewson:
[obnox/wireshark/wip.git] / progress_dlg.h
1 /* progress_dlg.h
2  * Definitions for progress dialog box routines
3  *
4  * $Id: progress_dlg.h,v 1.2 2002/07/30 10:13:14 guy Exp $
5  *
6  * Ethereal - Network traffic analyzer
7  * By Gerald Combs <gerald@zing.org>
8  * Copyright 1998 Gerald Combs
9  *
10  * 
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  * 
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  * 
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
24  */
25
26 #ifndef __PROGRESS_DLG_H__
27 #define __PROGRESS_DLG_H__
28
29 /*
30  * Progress (modal) dialog box routines.
31  */
32
33 struct progdlg;
34
35 typedef struct progdlg progdlg_t;
36
37 /*
38  * Create and pop up the progress dialog; allocate a "progdlg_t"
39  * and initialize it to contain all information the implementation
40  * needs in order to manipulate the dialog, and return a pointer to
41  * it.
42  *
43  * The first argument is the title to give the dialog box; the second
44  * argument is the string to put in the "stop this operation" button;
45  * the third argument is a pointer to a Boolean variable that will be
46  * set to TRUE if the user hits that button.
47  */
48 progdlg_t *create_progress_dlg(const gchar *title, const gchar *stop_title,
49     gboolean *stop_flag);
50
51 /* Create a progress dialog, but only if it's not likely to disappear
52  * immediately, which can be disconcerting for the user.
53  *
54  * The first three arguments are as for create_progress_dlg().
55  * Following those is a pointer to a GTimeVal structure which holds
56  * the time at which the caller started to process the data, and the
57  * current progress (0..1).
58  */
59 progdlg_t *delayed_create_progress_dlg(const gchar *title,
60     const gchar *stop_title, gboolean *stop_flag, GTimeVal *start_time,
61     gfloat progress);
62
63 /*
64  * Set the percentage value of the progress bar.
65  */
66 void update_progress_dlg(progdlg_t *dlg, gfloat percentage);
67
68 /*
69  * Destroy the progress bar.
70  */
71 void destroy_progress_dlg(progdlg_t *dlg);
72
73 #endif /* __PROGRESS_DLG_H__ */