#include "wx/bookctrl.h"
#include "wx/artprov.h"
#include "wx/imaglist.h"
+#include "wx/sysopt.h"
#if wxUSE_COLOURDLG
#include "wx/colordlg.h"
#if USE_MODAL_PRESENTATION
EVT_MENU(DIALOGS_MODAL, MyFrame::ModalDlg)
EVT_MENU(DIALOGS_MODELESS, MyFrame::ModelessDlg)
+ EVT_MENU(DIALOGS_CENTRE_SCREEN, MyFrame::DlgCenteredScreen)
+ EVT_MENU(DIALOGS_CENTRE_PARENT, MyFrame::DlgCenteredParent)
#endif // USE_MODAL
#if wxUSE_STARTUP_TIPS
#if USE_SETTINGS_DIALOG
EVT_MENU(DIALOGS_PROPERTY_SHEET, MyFrame::OnPropertySheet)
- EVT_MENU(DIALOGS_PROPERTY_SHEET_TOOLBOOK, MyFrame::OnPropertySheetToolBook)
+ EVT_MENU(DIALOGS_PROPERTY_SHEET_TOOLBOOK, MyFrame::OnPropertySheet)
+ EVT_MENU(DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK, MyFrame::OnPropertySheet)
#endif
EVT_MENU(DIALOGS_REQUEST, MyFrame::OnRequestUserAttention)
wxInitAllImageHandlers();
#endif
- m_canvasTextColour = wxColour(_T("BLACK"));
+ m_canvasTextColour = *wxBLACK;
m_canvasFont = *wxNORMAL_FONT;
// Create the main frame window
#endif // wxUSE_FINDREPLDLG
#if USE_MODAL_PRESENTATION
- wxMenu *modal_menu = new wxMenu;
- modal_menu->Append(DIALOGS_MODAL, _T("Mo&dal dialog\tCtrl-W"));
- modal_menu->AppendCheckItem(DIALOGS_MODELESS, _T("Modeless &dialog\tCtrl-Z"));
- file_menu->Append(wxID_ANY,_T("&Modal/Modeless"),modal_menu);
+ wxMenu *dialogs_menu = new wxMenu;
+ dialogs_menu->Append(DIALOGS_MODAL, _T("&Modal dialog\tCtrl-W"));
+ dialogs_menu->AppendCheckItem(DIALOGS_MODELESS, _T("Mode&less dialog\tCtrl-Z"));
+ dialogs_menu->AppendCheckItem(DIALOGS_CENTRE_SCREEN, _T("Centered on &screen\tShift-Ctrl-1"));
+ dialogs_menu->AppendCheckItem(DIALOGS_CENTRE_PARENT, _T("Centered on &parent\tShift-Ctrl-2"));
+ file_menu->Append(wxID_ANY, _T("&Generic dialogs"), dialogs_menu);
#endif // USE_MODAL_PRESENTATION
#if USE_SETTINGS_DIALOG
- file_menu->Append(DIALOGS_PROPERTY_SHEET, _T("&Property Sheet Dialog\tCtrl-P"));
- file_menu->Append(DIALOGS_PROPERTY_SHEET_TOOLBOOK, _T("Property Sheet Dialog using &ToolBook"));
+ wxMenu *sheet_menu = new wxMenu;
+ sheet_menu->Append(DIALOGS_PROPERTY_SHEET, _T("&Standard property sheet\tShift-Ctrl-P"));
+ sheet_menu->Append(DIALOGS_PROPERTY_SHEET_TOOLBOOK, _T("&Toolbook sheet\tShift-Ctrl-T"));
+
+ if (wxPlatformIs(wxMac))
+ sheet_menu->Append(DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK, _T("Button &Toolbook sheet\tShift-Ctrl-U"));
+/*
+#ifdef __WXMAC__
+ sheet_menu->Append(DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK, _T("Button &Toolbook sheet\tShift-Ctrl-U"));
#endif
+*/
+ file_menu->Append(wxID_ANY, _T("&Property sheets"), sheet_menu);
+#endif // USE_SETTINGS_DIALOG
file_menu->Append(DIALOGS_REQUEST, _T("&Request user attention\tCtrl-R"));
data.SetInitialFont(wxGetApp().m_canvasFont);
data.SetColour(wxGetApp().m_canvasTextColour);
- wxGenericFontDialog *dialog = new wxGenericFontDialog(this, &data);
+ wxGenericFontDialog *dialog = new wxGenericFontDialog(this, data);
if (dialog->ShowModal() == wxID_OK)
{
wxFontData retData = dialog->GetFontData();
#endif
);
- dialog.SetDirectory(wxGetHomeDir());
dialog.CentreOnParent();
+ dialog.SetDirectory(wxGetHomeDir());
if (dialog.ShowModal() == wxID_OK)
{
wxFileSelectorDefaultWildcardStr,
wxFileSelectorDefaultWildcardStr
),
- wxCHANGE_DIR,
+ wxFD_OPEN|wxFD_CHANGE_DIR,
this
);
#endif
wxFileDialog dialog(this, _T("Testing open multiple file dialog"),
wxEmptyString, wxEmptyString, wildcards,
- wxMULTIPLE);
+ wxFD_OPEN|wxFD_MULTIPLE);
if (dialog.ShowModal() == wxID_OK)
{
wxEmptyString,
_T("myletter.doc"),
_T("Text files (*.txt)|*.txt|Document files (*.doc)|*.doc"),
- wxSAVE|wxOVERWRITE_PROMPT);
+ wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
dialog.SetFilterIndex(1);
void MyFrame::FilesOpenGeneric(wxCommandEvent& WXUNUSED(event) )
{
+ // On PocketPC you can disable OK-only dialogs policy using system option
+ int buttons = wxSystemOptions::GetOptionInt(wxT("wince.dialog.real-ok-cancel"));
+ wxSystemOptions::SetOption(wxT("wince.dialog.real-ok-cancel"), 1);
+
wxString wildcards = _T("All files (*.*)|*.*|C++ files (*.cpp;*.h)|*.cpp;*.h");
wxGenericFileDialog dialog(this, _T("Testing open multiple file dialog"),
wxEmptyString, wxEmptyString, wildcards,
- wxMULTIPLE);
+ wxFD_MULTIPLE);
if (dialog.ShowModal() == wxID_OK)
{
wxMessageDialog dialog2(this, msg, _T("Selected files"));
dialog2.ShowModal();
}
+
+ // restore system option
+ wxSystemOptions::SetOption(wxT("wince.dialog.real-ok-cancel"), buttons);
}
void MyFrame::FileSaveGeneric(wxCommandEvent& WXUNUSED(event) )
wxEmptyString,
_T("myletter.doc"),
_T("Text files (*.txt)|*.txt|Document files (*.doc)|*.doc"),
- wxSAVE|wxOVERWRITE_PROMPT);
+ wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
dialog.SetFilterIndex(1);
void MyFrame::DirChoose(wxCommandEvent& WXUNUSED(event) )
{
- DoDirChoose(wxDD_DEFAULT_STYLE & ~wxDD_NEW_DIR_BUTTON);
+ DoDirChoose(wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST);
}
void MyFrame::DirChooseNew(wxCommandEvent& WXUNUSED(event) )
{
- DoDirChoose(wxDD_DEFAULT_STYLE | wxDD_NEW_DIR_BUTTON);
+ DoDirChoose(wxDD_DEFAULT_STYLE & ~wxDD_DIR_MUST_EXIST);
}
#endif // wxUSE_DIRDLG
m_dialog->Hide();
}
}
+
+void MyFrame::DlgCenteredScreen(wxCommandEvent& WXUNUSED(event))
+{
+ wxDialog dlg(this, wxID_ANY, _T("Dialog centered on screen"),
+ wxDefaultPosition, wxSize(200, 100));
+ (new wxButton(&dlg, wxID_OK, _T("Close")))->Centre();
+ dlg.CentreOnScreen();
+ dlg.ShowModal();
+}
+
+void MyFrame::DlgCenteredParent(wxCommandEvent& WXUNUSED(event))
+{
+ wxDialog dlg(this, wxID_ANY, _T("Dialog centered on parent"),
+ wxDefaultPosition, wxSize(200, 100));
+ (new wxButton(&dlg, wxID_OK, _T("Close")))->Centre();
+ dlg.CentreOnParent();
+ dlg.ShowModal();
+}
+
#endif // USE_MODAL_PRESENTATION
#if wxUSE_STARTUP_TIPS
#endif // wxUSE_STARTUP_TIPS
#if USE_SETTINGS_DIALOG
-void MyFrame::OnPropertySheet(wxCommandEvent& WXUNUSED(event))
-{
- SettingsDialog dialog(this);
- dialog.ShowModal();
-}
-
-void MyFrame::OnPropertySheetToolBook(wxCommandEvent& WXUNUSED(event))
+void MyFrame::OnPropertySheet(wxCommandEvent& event)
{
- SettingsDialog dialog(this, true);
+ SettingsDialog dialog(this, event.GetId());
dialog.ShowModal();
}
#endif // USE_SETTINGS_DIALOG
BEGIN_EVENT_TABLE(SettingsDialog, wxPropertySheetDialog)
END_EVENT_TABLE()
-SettingsDialog::SettingsDialog(wxWindow* win, bool useToolBook)
+SettingsDialog::SettingsDialog(wxWindow* win, int dialogType)
{
SetExtraStyle(wxDIALOG_EX_CONTEXTHELP|wxWS_EX_VALIDATE_RECURSIVELY);
int tabImage1 = -1;
int tabImage2 = -1;
-
+
+ bool useToolBook = (dialogType == DIALOGS_PROPERTY_SHEET_TOOLBOOK || dialogType == DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK);
+ int resizeBorder = wxRESIZE_BORDER;
+
if (useToolBook)
{
+ resizeBorder = 0;
tabImage1 = 0;
tabImage2 = 1;
- SetSheetStyle(wxPROPSHEET_TOOLBOOK|wxPROPSHEET_SHRINKTOFIT);
+
+ int sheetStyle = wxPROPSHEET_SHRINKTOFIT;
+ if (dialogType == DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK)
+ sheetStyle |= wxPROPSHEET_BUTTONTOOLBOOK;
+ else
+ sheetStyle |= wxPROPSHEET_TOOLBOOK;
+
+ SetSheetStyle(sheetStyle);
+ SetSheetInnerBorder(0);
+ SetSheetOuterBorder(0);
// create a dummy image list with a few icons
const wxSize imageSize(32, 32);
m_imageList = NULL;
Create(win, wxID_ANY, _("Preferences"), wxDefaultPosition, wxDefaultSize,
- wxDEFAULT_DIALOG_STYLE
+ wxDEFAULT_DIALOG_STYLE| (int)wxPlatform::IfNot(wxWinCE, resizeBorder)
+/*
#ifndef __WXWINCE__
- |wxRESIZE_BORDER
+ |resizeBorder
#endif
+*/
);
- // If using a toolbook, also follow Mac style and don't create buttons
+ // If using a toolbook, also follow Mac style and don't create buttons
if (!useToolBook)
- CreateButtons(wxOK|wxCANCEL
+ CreateButtons(wxOK|wxCANCEL| (int)wxPlatform::IfNot(wxWinPocketPC, wxHELP)
+/*
#ifndef __POCKETPC__
|wxHELP
#endif
+*/
);
wxBookCtrlBase* notebook = GetBookCtrl();