test for the bug with showing a modeless dialog from a modal one in wxGTK
[wxWidgets.git] / samples / dialogs / dialogs.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: dialogs.h
3 // Purpose: Common dialogs demo
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 04/01/98
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart and Markus Holzem
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef __DIALOGSH__
13 #define __DIALOGSH__
14
15 // Define a new application type
16 class MyApp: public wxApp
17 {
18 public:
19 bool OnInit();
20
21 wxFont m_canvasFont;
22 wxColour m_canvasTextColour;
23 };
24
25 // A custom modeless dialog
26 class MyModelessDialog : public wxDialog
27 {
28 public:
29 MyModelessDialog(wxWindow *parent);
30
31 void OnButton(wxCommandEvent& event);
32 void OnClose(wxCloseEvent& event);
33
34 private:
35 DECLARE_EVENT_TABLE()
36 };
37
38 // A custom modal dialog
39 class MyModalDialog : public wxDialog
40 {
41 public:
42 MyModalDialog(wxWindow *parent);
43
44 void OnButton(wxCommandEvent& event);
45
46 private:
47 wxButton *m_btnModal,
48 *m_btnModeless,
49 *m_btnDelete;
50
51 DECLARE_EVENT_TABLE()
52 };
53
54 // Define a new frame type
55 class MyFrame: public wxFrame
56 {
57 public:
58 MyFrame(wxWindow *parent, const wxString& title,
59 const wxPoint& pos, const wxSize& size);
60
61 void ChooseColour(wxCommandEvent& event);
62 void ChooseFont(wxCommandEvent& event);
63 void LogDialog(wxCommandEvent& event);
64 void MessageBox(wxCommandEvent& event);
65 void SingleChoice(wxCommandEvent& event);
66 void MultiChoice(wxCommandEvent& event);
67 void TextEntry(wxCommandEvent& event);
68 void PasswordEntry(wxCommandEvent& event);
69 void NumericEntry(wxCommandEvent& event);
70 void FileOpen(wxCommandEvent& event);
71 void FileOpen2(wxCommandEvent& event);
72 void FilesOpen(wxCommandEvent& event);
73 void FileSave(wxCommandEvent& event);
74 void DirChoose(wxCommandEvent& event);
75 void DirChooseNew(wxCommandEvent& event);
76 void GenericDirChoose(wxCommandEvent& event);
77 void ShowTip(wxCommandEvent& event);
78 void ModalDlg(wxCommandEvent& event);
79 void ModelessDlg(wxCommandEvent& event);
80 #if wxUSE_PROGRESSDLG
81 void ShowProgress(wxCommandEvent& event);
82 #endif // wxUSE_PROGRESSDLG
83 #if wxUSE_BUSYINFO
84 void ShowBusyInfo(wxCommandEvent& event);
85 #endif // wxUSE_BUSYINFO
86 #if wxUSE_FINDREPLDLG
87 void ShowFindDialog(wxCommandEvent& event);
88 void ShowReplaceDialog(wxCommandEvent& event);
89
90 void OnFindDialog(wxFindDialogEvent& event);
91 #endif // wxUSE_FINDREPLDLG
92
93 #if !defined(__WXMSW__) || wxTEST_GENERIC_DIALOGS_IN_MSW
94 void ChooseColourGeneric(wxCommandEvent& event);
95 void ChooseFontGeneric(wxCommandEvent& event);
96 #endif
97
98 void OnExit(wxCommandEvent& event);
99
100 private:
101 void DoDirChoose(int style);
102
103 MyModelessDialog *m_dialog;
104
105 #if wxUSE_FINDREPLDLG
106 wxFindReplaceData m_findData;
107
108 wxFindReplaceDialog *m_dlgFind,
109 *m_dlgReplace;
110 #endif // wxUSE_FINDREPLDLG
111
112 DECLARE_EVENT_TABLE()
113 };
114
115 class MyCanvas: public wxScrolledWindow
116 {
117 public:
118 MyCanvas(wxWindow *parent) :
119 wxScrolledWindow(parent,-1,wxDefaultPosition,wxDefaultSize,wxNO_FULL_REPAINT_ON_RESIZE) { }
120
121 void OnPaint(wxPaintEvent& event);
122
123 DECLARE_EVENT_TABLE()
124 };
125
126
127 // Menu IDs
128 enum
129 {
130 DIALOGS_CHOOSE_COLOUR = 1,
131 DIALOGS_CHOOSE_COLOUR_GENERIC,
132 DIALOGS_CHOOSE_FONT,
133 DIALOGS_CHOOSE_FONT_GENERIC,
134 DIALOGS_MESSAGE_BOX,
135 DIALOGS_SINGLE_CHOICE,
136 DIALOGS_MULTI_CHOICE,
137 DIALOGS_TEXT_ENTRY,
138 DIALOGS_PASSWORD_ENTRY,
139 DIALOGS_FILE_OPEN,
140 DIALOGS_FILE_OPEN2,
141 DIALOGS_FILES_OPEN,
142 DIALOGS_FILE_SAVE,
143 DIALOGS_DIR_CHOOSE,
144 DIALOGS_DIRNEW_CHOOSE,
145 DIALOGS_GENERIC_DIR_CHOOSE,
146 DIALOGS_TIP,
147 DIALOGS_NUM_ENTRY,
148 DIALOGS_LOG_DIALOG,
149 DIALOGS_MODAL,
150 DIALOGS_MODELESS,
151 DIALOGS_MODELESS_BTN,
152 DIALOGS_PROGRESS,
153 DIALOGS_BUSYINFO,
154 DIALOGS_FIND,
155 DIALOGS_REPLACE
156 };
157
158 #endif
159