Re-generate a number of ASN.1-based dissectors with the most recent
[obnox/wireshark/wip.git] / progress_dlg.h
1 /* progress_dlg.h
2  * Definitions for progress dialog box routines
3  *
4  * $Id$
5  *
6  * Ethereal - Network traffic analyzer
7  * By Gerald Combs <gerald@ethereal.com>
8  * Copyright 1998 Gerald Combs
9  *
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License
12  * as published by the Free Software Foundation; either version 2
13  * of the License, or (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
23  */
24
25 #ifndef __PROGRESS_DLG_H__
26 #define __PROGRESS_DLG_H__
27
28 /** @file
29  *  Progress (modal) dialog box routines.
30  *  @ingroup dialog_group
31  */
32
33 /** Progress dialog data. */
34 struct progdlg;
35
36 /** Progress dialog data. */
37 typedef struct progdlg progdlg_t;
38
39 /**
40  * Create and pop up the progress dialog. Allocates a "progdlg_t"
41  * and initialize it to contain all information the implementation
42  * needs in order to manipulate the dialog, and return a pointer to
43  * it.
44  *
45  * @param task_title the task to do, e.g. "Loading"
46  * @param item_title the item to do, e.g. "capture.cap"
47  * @param stop_flag a pointer to a Boolean variable that will be
48  *   set to TRUE if the user hits that button
49  * @return the newly created progress dialog
50  */
51 progdlg_t *create_progress_dlg(const gchar *task_title, const gchar *item_title,
52     gboolean *stop_flag);
53
54 /**
55  * Create a progress dialog, but only if it's not likely to disappear
56  * immediately. This can be disconcerting for the user. 
57  *
58  * @param task_title the task to do, e.g. "Loading"
59  * @param item_title the item to do, e.g. "capture.cap"
60  * @param stop_flag a pointer to a Boolean variable that will be
61  *   set to TRUE if the user hits that button
62  * @param start_time a pointer to a GTimeVal structure which holds
63  *   the time at which the caller started to process the data
64  * @param progress the current progress (0..1)
65  * @return the newly created progress dialog
66  */
67 progdlg_t *
68 delayed_create_progress_dlg(const gchar *task_title, const gchar *item_title,
69     gboolean *stop_flag, const GTimeVal *start_time, gfloat progress);
70
71 /**
72  * Update the progress information of the progress dialog box.
73  *
74  * @param dlg the progress dialog from create_progress_dlg()
75  * @param percentage the current percentage value (0..1)
76  * @param status the new status string to show, e.g. "3000KB of 6000KB"
77  */
78 void update_progress_dlg(progdlg_t *dlg, gfloat percentage, gchar *status);
79
80 /**
81  * Destroy the progress bar.
82  *
83  * @param dlg the progress dialog from create_progress_dlg()
84  */
85 void destroy_progress_dlg(progdlg_t *dlg);
86
87 #endif /* __PROGRESS_DLG_H__ */