Bochs/bochs/gui/wxdialog.h
Bryce Denney 7fc65e2e25 - add first custom dialog box to the wxWindows interface in
gui/wxdialog.h and gui/wxdialog.cc.  The first dialog box is
  called LogMsgAskDialog.  It displays panic messages and asks if you
  want to continue, quit, etc.
2002-08-28 03:20:23 +00:00

59 lines
2.1 KiB
C++

////////////////////////////////////////////////////////////////////
// $Id: wxdialog.h,v 1.1 2002-08-28 03:20:23 bdenney Exp $
////////////////////////////////////////////////////////////////////
//
// wxWindows dialogs for Bochs
////////////////////////////////////////////////////////////////////
// LogMsgAskDialog is a modal dialog box that shows the user a
// simulation error message and asks if they want to continue or
// not. It looks something like this:
// -------------------------------------------------------------
// Context: Hard Drive
// Message: could not open hard drive image file '30M.sample'
//
// [ ] Don't ask about future messages like this
//
// [Continue] [Die] [Dump Core] [Debugger] [Help]
// -------------------------------------------------------------
// To use this dialog:
// After constructor, use SetContext, SetMessage, EnableButton to
// determine what will be displayed. Then call n = ShowModal(). The return
// value tells which button was pressed (button_t types). Call GetDontAsk()
// to see if they checked "Don't ask about..." or not.
//////////////////////////////////////////////////////////////////////
class LogMsgAskDialog: public wxDialog
{
public:
enum button_t {
CONT=0, DIE, DUMP, DEBUG, HELP,
N_BUTTONS /* number of entries in enum */
};
#define LOG_MSG_ASK_IDS \
{ ID_Continue, ID_Die, ID_DumpCore, ID_Debugger, ID_Help }
#define LOG_MSG_ASK_NAMES \
{ "Continue", "Die", "Dump Core", "Debugger", "Help" }
#define LOG_MSG_DONT_ASK_STRING \
"Don't ask about future messages like this"
private:
wxStaticText *context, *message;
wxCheckBox *dontAsk;
bool enabled[N_BUTTONS];
wxBoxSizer *btnSizer, *vertSizer;
void Init (); // called automatically by ShowModal()
void showHelp ();
public:
LogMsgAskDialog(wxWindow* parent,
wxWindowID id,
const wxString& title);
void EnableButton (button_t btn, bool en) { enabled[(int)btn] = en; }
void SetContext (char *s);
void SetMessage (char *s);
bool GetDontAsk () { return dontAsk->GetValue (); }
void OnEvent (wxCommandEvent& event);
int ShowModal() { Init(); return wxDialog::ShowModal(); }
DECLARE_EVENT_TABLE()
};