aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/wndmgr/msgbox.h
blob: 41487835247b4d74930915fca0582156ccf8b9d2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef __MESSAGEBOX_H
#define __MESSAGEBOX_H

#include <bfc/string/bfcstring.h>
#include <bfc/string/StringW.h>
#include <bfc/ptrlist.h>

#define MSGBOX_ABORTED    0 // NOT a flag, only a return code

#define MSGBOX_OK         1
#define MSGBOX_CANCEL     2
#define MSGBOX_YES        4
#define MSGBOX_NO         8
#define MSGBOX_ALL        16
#define MSGBOX_NEXT       32
#define MSGBOX_PREVIOUS   64

class GuiObject;
class SkinWnd;


typedef struct {
  wchar_t *txt;
  int id;
} _btnstruct;

class MsgBox {
  public:
    
    MsgBox(const wchar_t *text, const wchar_t *title=L"Alert", int flags=MSGBOX_OK, const wchar_t *notanymore=NULL);
    virtual ~MsgBox();
    virtual int run();


  private:

    void createButtons();
    int reposButtons();
    void addButton(const wchar_t *text, int retcode);

    StringW text, title;
    int flags;
    PtrList<GuiObject> buttons;
    GuiObject *checkbox;
    SkinWnd *sw;
    StringW notanymore_id;
};

#endif