added a modal dialog test
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7094 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -61,6 +61,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
EVT_MENU(DIALOGS_FILES_OPEN, MyFrame::FilesOpen)
|
EVT_MENU(DIALOGS_FILES_OPEN, MyFrame::FilesOpen)
|
||||||
EVT_MENU(DIALOGS_FILE_SAVE, MyFrame::FileSave)
|
EVT_MENU(DIALOGS_FILE_SAVE, MyFrame::FileSave)
|
||||||
EVT_MENU(DIALOGS_DIR_CHOOSE, MyFrame::DirChoose)
|
EVT_MENU(DIALOGS_DIR_CHOOSE, MyFrame::DirChoose)
|
||||||
|
EVT_MENU(DIALOGS_MODAL, MyFrame::ModalDlg)
|
||||||
EVT_MENU(DIALOGS_MODELESS, MyFrame::ModelessDlg)
|
EVT_MENU(DIALOGS_MODELESS, MyFrame::ModelessDlg)
|
||||||
EVT_MENU(DIALOGS_TIP, MyFrame::ShowTip)
|
EVT_MENU(DIALOGS_TIP, MyFrame::ShowTip)
|
||||||
#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW
|
#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW
|
||||||
@@ -75,6 +76,10 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
EVT_BUTTON(DIALOGS_MODELESS_BTN, MyFrame::OnButton)
|
EVT_BUTTON(DIALOGS_MODELESS_BTN, MyFrame::OnButton)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(MyModalDialog, wxDialog)
|
||||||
|
EVT_BUTTON(-1, MyModalDialog::OnButton)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(MyModelessDialog, wxDialog)
|
BEGIN_EVENT_TABLE(MyModelessDialog, wxDialog)
|
||||||
EVT_CLOSE(MyModelessDialog::OnClose)
|
EVT_CLOSE(MyModelessDialog::OnClose)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
@@ -124,10 +129,11 @@ bool MyApp::OnInit()
|
|||||||
file_menu->Append(DIALOGS_FILES_OPEN, "Open &files\tCtrl-Q");
|
file_menu->Append(DIALOGS_FILES_OPEN, "Open &files\tCtrl-Q");
|
||||||
file_menu->Append(DIALOGS_FILE_SAVE, "Sa&ve file\tCtrl-S");
|
file_menu->Append(DIALOGS_FILE_SAVE, "Sa&ve file\tCtrl-S");
|
||||||
file_menu->Append(DIALOGS_DIR_CHOOSE, "&Choose a directory\tCtrl-D");
|
file_menu->Append(DIALOGS_DIR_CHOOSE, "&Choose a directory\tCtrl-D");
|
||||||
file_menu->AppendSeparator();
|
|
||||||
#if wxUSE_PROGRESSDLG
|
#if wxUSE_PROGRESSDLG
|
||||||
file_menu->Append(DIALOGS_PROGRESS, "Pro&gress dialog\tCtrl-G");
|
file_menu->Append(DIALOGS_PROGRESS, "Pro&gress dialog\tCtrl-G");
|
||||||
#endif // wxUSE_PROGRESSDLG
|
#endif // wxUSE_PROGRESSDLG
|
||||||
|
file_menu->AppendSeparator();
|
||||||
|
file_menu->Append(DIALOGS_MODAL, "Mo&dal dialog\tCtrl-F");
|
||||||
file_menu->Append(DIALOGS_MODELESS, "Modeless &dialog\tCtrl-Z", "", TRUE);
|
file_menu->Append(DIALOGS_MODELESS, "Modeless &dialog\tCtrl-Z", "", TRUE);
|
||||||
file_menu->AppendSeparator();
|
file_menu->AppendSeparator();
|
||||||
file_menu->Append(wxID_EXIT, "E&xit\tAlt-X");
|
file_menu->Append(wxID_EXIT, "E&xit\tAlt-X");
|
||||||
@@ -412,6 +418,12 @@ void MyFrame::DirChoose(wxCommandEvent& WXUNUSED(event) )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyFrame::ModalDlg(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
MyModalDialog dlg(this);
|
||||||
|
dlg.ShowModal();
|
||||||
|
}
|
||||||
|
|
||||||
void MyFrame::ModelessDlg(wxCommandEvent& event)
|
void MyFrame::ModelessDlg(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
bool show = GetMenuBar()->IsChecked(event.GetInt());
|
bool show = GetMenuBar()->IsChecked(event.GetInt());
|
||||||
@@ -565,3 +577,41 @@ void MyModelessDialog::OnClose(wxCloseEvent& event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// MyModalDialog
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
MyModalDialog::MyModalDialog(wxWindow *parent)
|
||||||
|
: wxDialog(parent, -1, wxString("Modal dialog"))
|
||||||
|
{
|
||||||
|
wxBoxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
|
||||||
|
m_btnFocused = new wxButton(this, -1, "Default button");
|
||||||
|
m_btnDelete = new wxButton(this, -1, "&Delete button");
|
||||||
|
sizerTop->Add(m_btnFocused, 0, wxALIGN_CENTER | wxALL, 5);
|
||||||
|
sizerTop->Add(m_btnDelete, 0, wxALIGN_CENTER | wxALL, 5);
|
||||||
|
|
||||||
|
SetAutoLayout(TRUE);
|
||||||
|
SetSizer(sizerTop);
|
||||||
|
|
||||||
|
sizerTop->SetSizeHints(this);
|
||||||
|
sizerTop->Fit(this);
|
||||||
|
|
||||||
|
m_btnFocused->SetFocus();
|
||||||
|
m_btnFocused->SetDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyModalDialog::OnButton(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
if ( event.GetEventObject() == m_btnDelete )
|
||||||
|
{
|
||||||
|
delete m_btnFocused;
|
||||||
|
m_btnFocused = NULL;
|
||||||
|
|
||||||
|
m_btnDelete->Disable();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -22,7 +22,7 @@ public:
|
|||||||
wxColour m_canvasTextColour;
|
wxColour m_canvasTextColour;
|
||||||
};
|
};
|
||||||
|
|
||||||
// A modeless dialog
|
// A custom modeless dialog
|
||||||
class MyModelessDialog : public wxDialog
|
class MyModelessDialog : public wxDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -34,6 +34,21 @@ private:
|
|||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// A custom modal dialog
|
||||||
|
class MyModalDialog : public wxDialog
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MyModalDialog(wxWindow *parent);
|
||||||
|
|
||||||
|
void OnButton(wxCommandEvent& event);
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxButton *m_btnFocused;
|
||||||
|
wxButton *m_btnDelete;
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
// Define a new frame type
|
// Define a new frame type
|
||||||
class MyFrame: public wxFrame
|
class MyFrame: public wxFrame
|
||||||
{
|
{
|
||||||
@@ -54,6 +69,7 @@ public:
|
|||||||
void FileSave(wxCommandEvent& event);
|
void FileSave(wxCommandEvent& event);
|
||||||
void DirChoose(wxCommandEvent& event);
|
void DirChoose(wxCommandEvent& event);
|
||||||
void ShowTip(wxCommandEvent& event);
|
void ShowTip(wxCommandEvent& event);
|
||||||
|
void ModalDlg(wxCommandEvent& event);
|
||||||
void ModelessDlg(wxCommandEvent& event);
|
void ModelessDlg(wxCommandEvent& event);
|
||||||
void ShowProgress(wxCommandEvent& event);
|
void ShowProgress(wxCommandEvent& event);
|
||||||
|
|
||||||
@@ -101,6 +117,7 @@ enum
|
|||||||
DIALOGS_TIP,
|
DIALOGS_TIP,
|
||||||
DIALOGS_NUM_ENTRY,
|
DIALOGS_NUM_ENTRY,
|
||||||
DIALOGS_LOG_DIALOG,
|
DIALOGS_LOG_DIALOG,
|
||||||
|
DIALOGS_MODAL,
|
||||||
DIALOGS_MODELESS,
|
DIALOGS_MODELESS,
|
||||||
DIALOGS_MODELESS_BTN,
|
DIALOGS_MODELESS_BTN,
|
||||||
DIALOGS_PROGRESS
|
DIALOGS_PROGRESS
|
||||||
|
Reference in New Issue
Block a user