]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/dialogs/dialogs.cpp
[ 1505048 ] wxHtml rendering of underlined text
[wxWidgets.git] / samples / dialogs / dialogs.cpp
index 035c2e1557b66f19533f3a98fb47e4d210a1cfeb..7296bfa0b8e936d00aa8026444c6e3932dab0ccc 100644 (file)
@@ -196,7 +196,8 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
 
 #if USE_SETTINGS_DIALOG
     EVT_MENU(DIALOGS_PROPERTY_SHEET,                MyFrame::OnPropertySheet)
 
 #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)
 #endif
 
     EVT_MENU(DIALOGS_REQUEST,                       MyFrame::OnRequestUserAttention)
@@ -226,7 +227,7 @@ bool MyApp::OnInit()
     wxInitAllImageHandlers();
 #endif
 
     wxInitAllImageHandlers();
 #endif
 
-    m_canvasTextColour = wxColour(_T("BLACK"));
+    m_canvasTextColour = *wxBLACK;
     m_canvasFont = *wxNORMAL_FONT;
 
     // Create the main frame window
     m_canvasFont = *wxNORMAL_FONT;
 
     // Create the main frame window
@@ -359,8 +360,8 @@ bool MyApp::OnInit()
     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"));
     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"));
+    dialogs_menu->Append(DIALOGS_CENTRE_SCREEN, _T("Centered on &screen\tShift-Ctrl-1"));
+    dialogs_menu->Append(DIALOGS_CENTRE_PARENT, _T("Centered on &parent\tShift-Ctrl-2"));
     file_menu->Append(wxID_ANY, _T("&Generic dialogs"), dialogs_menu);
 #endif // USE_MODAL_PRESENTATION
 
     file_menu->Append(wxID_ANY, _T("&Generic dialogs"), dialogs_menu);
 #endif // USE_MODAL_PRESENTATION
 
@@ -368,6 +369,14 @@ bool MyApp::OnInit()
     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"));
     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(wxPORT_MAC))
+        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(wxID_ANY, _T("&Property sheets"), sheet_menu);
 #endif // USE_SETTINGS_DIALOG
 
@@ -423,6 +432,10 @@ MyFrame::MyFrame(wxWindow *parent,
         );
     }
 #endif // wxUSE_COLOURDLG
         );
     }
 #endif // wxUSE_COLOURDLG
+
+#if wxUSE_STATUSBAR
+    CreateStatusBar();
+#endif // wxUSE_STATUSBAR
 }
 
 #if wxUSE_COLOURDLG
 }
 
 #if wxUSE_COLOURDLG
@@ -687,8 +700,8 @@ void MyFrame::FileOpen(wxCommandEvent& WXUNUSED(event) )
 #endif
                  );
 
 #endif
                  );
 
-    dialog.SetDirectory(wxGetHomeDir());
     dialog.CentreOnParent();
     dialog.CentreOnParent();
+    dialog.SetDirectory(wxGetHomeDir());
 
     if (dialog.ShowModal() == wxID_OK)
     {
 
     if (dialog.ShowModal() == wxID_OK)
     {
@@ -720,7 +733,7 @@ void MyFrame::FileOpen2(wxCommandEvent& WXUNUSED(event) )
                                         wxFileSelectorDefaultWildcardStr,
                                         wxFileSelectorDefaultWildcardStr
                                     ),
                                         wxFileSelectorDefaultWildcardStr,
                                         wxFileSelectorDefaultWildcardStr
                                     ),
-                                    wxCHANGE_DIR,
+                                    wxFD_OPEN|wxFD_CHANGE_DIR|wxFD_PREVIEW,
                                     this
                                    );
 
                                     this
                                    );
 
@@ -749,7 +762,7 @@ void MyFrame::FilesOpen(wxCommandEvent& WXUNUSED(event) )
 #endif
     wxFileDialog dialog(this, _T("Testing open multiple file dialog"),
                         wxEmptyString, wxEmptyString, wildcards,
 #endif
     wxFileDialog dialog(this, _T("Testing open multiple file dialog"),
                         wxEmptyString, wxEmptyString, wildcards,
-                        wxMULTIPLE);
+                        wxFD_OPEN|wxFD_MULTIPLE);
 
     if (dialog.ShowModal() == wxID_OK)
     {
 
     if (dialog.ShowModal() == wxID_OK)
     {
@@ -782,7 +795,7 @@ void MyFrame::FileSave(wxCommandEvent& WXUNUSED(event) )
                         wxEmptyString,
                         _T("myletter.doc"),
                         _T("Text files (*.txt)|*.txt|Document files (*.doc)|*.doc"),
                         wxEmptyString,
                         _T("myletter.doc"),
                         _T("Text files (*.txt)|*.txt|Document files (*.doc)|*.doc"),
-                        wxSAVE|wxOVERWRITE_PROMPT);
+                        wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
 
     dialog.SetFilterIndex(1);
 
 
     dialog.SetFilterIndex(1);
 
@@ -831,7 +844,7 @@ void MyFrame::FilesOpenGeneric(wxCommandEvent& WXUNUSED(event) )
     wxString wildcards = _T("All files (*.*)|*.*|C++ files (*.cpp;*.h)|*.cpp;*.h");
     wxGenericFileDialog dialog(this, _T("Testing open multiple file dialog"),
                         wxEmptyString, wxEmptyString, wildcards,
     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)
     {
 
     if (dialog.ShowModal() == wxID_OK)
     {
@@ -867,7 +880,7 @@ void MyFrame::FileSaveGeneric(wxCommandEvent& WXUNUSED(event) )
                         wxEmptyString,
                         _T("myletter.doc"),
                         _T("Text files (*.txt)|*.txt|Document files (*.doc)|*.doc"),
                         wxEmptyString,
                         _T("myletter.doc"),
                         _T("Text files (*.txt)|*.txt|Document files (*.doc)|*.doc"),
-                        wxSAVE|wxOVERWRITE_PROMPT);
+                        wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
 
     dialog.SetFilterIndex(1);
 
 
     dialog.SetFilterIndex(1);
 
@@ -896,12 +909,12 @@ void MyFrame::DoDirChoose(int style)
 
 void MyFrame::DirChoose(wxCommandEvent& WXUNUSED(event) )
 {
 
 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) )
 {
 }
 
 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
 
 }
 #endif // wxUSE_DIRDLG
 
@@ -959,7 +972,7 @@ void MyFrame::DlgCenteredScreen(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg(this, wxID_ANY, _T("Dialog centered on screen"),
                  wxDefaultPosition, wxSize(200, 100));
 {
     wxDialog dlg(this, wxID_ANY, _T("Dialog centered on screen"),
                  wxDefaultPosition, wxSize(200, 100));
-    new wxButton(&dlg, wxID_OK, _T("Close"), wxPoint(10, 10));
+    (new wxButton(&dlg, wxID_OK, _T("Close")))->Centre();
     dlg.CentreOnScreen();
     dlg.ShowModal();
 }
     dlg.CentreOnScreen();
     dlg.ShowModal();
 }
@@ -968,7 +981,7 @@ void MyFrame::DlgCenteredParent(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg(this, wxID_ANY, _T("Dialog centered on parent"),
                  wxDefaultPosition, wxSize(200, 100));
 {
     wxDialog dlg(this, wxID_ANY, _T("Dialog centered on parent"),
                  wxDefaultPosition, wxSize(200, 100));
-    new wxButton(&dlg, wxID_OK, _T("Close"), wxPoint(10, 10));
+    (new wxButton(&dlg, wxID_OK, _T("Close")))->Centre();
     dlg.CentreOnParent();
     dlg.ShowModal();
 }
     dlg.CentreOnParent();
     dlg.ShowModal();
 }
@@ -1005,15 +1018,9 @@ void MyFrame::ShowTip(wxCommandEvent& WXUNUSED(event))
 #endif // wxUSE_STARTUP_TIPS
 
 #if USE_SETTINGS_DIALOG
 #endif // wxUSE_STARTUP_TIPS
 
 #if USE_SETTINGS_DIALOG
-void MyFrame::OnPropertySheet(wxCommandEvent& WXUNUSED(event))
+void MyFrame::OnPropertySheet(wxCommandEvent& event)
 {
 {
-    SettingsDialog dialog(this);
-    dialog.ShowModal();
-}
-
-void MyFrame::OnPropertySheetToolBook(wxCommandEvent& WXUNUSED(event))
-{
-    SettingsDialog dialog(this, true);
+    SettingsDialog dialog(this, event.GetId());
     dialog.ShowModal();
 }
 #endif // USE_SETTINGS_DIALOG
     dialog.ShowModal();
 }
 #endif // USE_SETTINGS_DIALOG
@@ -1414,18 +1421,31 @@ IMPLEMENT_CLASS(SettingsDialog, wxPropertySheetDialog)
 BEGIN_EVENT_TABLE(SettingsDialog, wxPropertySheetDialog)
 END_EVENT_TABLE()
 
 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;
 
 {
     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)
     {
     if (useToolBook)
     {
+        resizeBorder = 0;
         tabImage1 = 0;
         tabImage2 = 1;
         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);
 
         // create a dummy image list with a few icons
         const wxSize imageSize(32, 32);
@@ -1444,18 +1464,13 @@ SettingsDialog::SettingsDialog(wxWindow* win, bool useToolBook)
         m_imageList = NULL;
 
     Create(win, wxID_ANY, _("Preferences"), wxDefaultPosition, wxDefaultSize,
         m_imageList = NULL;
 
     Create(win, wxID_ANY, _("Preferences"), wxDefaultPosition, wxDefaultSize,
-        wxDEFAULT_DIALOG_STYLE
-#ifndef __WXWINCE__
-        |wxRESIZE_BORDER
-#endif
+        wxDEFAULT_DIALOG_STYLE| (int)wxPlatform::IfNot(wxOS_WINDOWS_CE, resizeBorder)
     );
 
     // If using a toolbook, also follow Mac style and don't create buttons
     if (!useToolBook)
     );
 
     // If using a toolbook, also follow Mac style and don't create buttons
     if (!useToolBook)
-        CreateButtons(wxOK|wxCANCEL
-#ifndef __POCKETPC__
-                      |wxHELP
-#endif
+        CreateButtons(wxOK | wxCANCEL |
+                        (int)wxPlatform::IfNot(wxOS_WINDOWS_CE, wxHELP)
     );
 
     wxBookCtrlBase* notebook = GetBookCtrl();
     );
 
     wxBookCtrlBase* notebook = GetBookCtrl();