wireshark/simple_dialog.h
Guy Harris 90cf9a6b7b The HIG's and/or GUI toolkit documentation for:
Mac OS X

	GNOME

	Qt

	KDE

	Windows

all indicate that {message,alert} boxes are modal, at least for the
window to which they apply.  (Presumably the idea is that not forcing
the user to pay attention to the alert box, and allowing more than one
alert box to be up for a given window, causes more problems than not
letting the user do stuff to that window in order to figure out what the
underlying problem is or figure out what to do to fix it - the message
should be sufficient, in most if not all cases, to let you know what the
problem is.)

Make "simple_dialog()" unconditionally make the alert box modal, and get
rid of ESD_TYPE_MODAL.  XXX - we need to make it possible to make an
alert box modal for a given window, rather than just the top-level
window.

svn path=/trunk/; revision=10051
2004-02-12 22:24:28 +00:00

83 lines
2.7 KiB
C

/* simple_dialog.h
* Definitions for alert box routines with toolkit-independent APIs but
* toolkit-dependent implementations.
*
* $Id: simple_dialog.h,v 1.11 2004/02/12 22:24:27 guy Exp $
*
* 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 __DIALOG_H__
#define __DIALOG_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* Dialog type.
INFO: tells the user something they should know, but not requiring
any action; the only button should be "OK".
WARN: tells the user about a problem; the only button should be "OK"
CONFIRMATION: asks the user for confirmation; there should be more than
one button
ERROR: tells the user about a serious problem; the only button should be
"OK". */
#define ESD_TYPE_INFO 0x00
#define ESD_TYPE_WARN 0x01
#define ESD_TYPE_CONFIRMATION 0x02
#define ESD_TYPE_ERROR 0x03
/* Which buttons to display. */
#define ESD_BTN_OK 0x01
#define ESD_BTN_CANCEL 0x02
#define ESD_BTN_YES 0x04
#define ESD_BTN_NO 0x08
#define ESD_BTN_CLEAR 0x10
#define ESD_BTNS_OK_CANCEL (ESD_BTN_OK|ESD_BTN_CANCEL)
#define ESD_BTNS_YES_NO (ESD_BTN_YES|ESD_BTN_NO)
#define ESD_BTNS_YES_NO_CANCEL (ESD_BTN_YES|ESD_BTN_NO|ESD_BTN_CANCEL)
/* show a simple dialog */
#if __GNUC__ >= 2
extern gpointer simple_dialog(gint type, gint btn_mask, gchar *msg_format, ...)
__attribute__((format (printf, 3, 4)));
#else
extern gpointer simple_dialog(gint type, gint btn_mask, gchar *msg_format, ...);
#endif
/* callback function type */
typedef void (* simple_dialog_cb_t) (gpointer dialog, gint btn, gpointer data);
/* set the callback function, which has to be called when a button was pressed */
extern void simple_dialog_set_cb(gpointer dialog, simple_dialog_cb_t callback_fct, gpointer data);
extern char *simple_dialog_primary_start(void);
extern char *simple_dialog_primary_end(void);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __DIALOG_H__ */