]> git.saurik.com Git - wxWidgets.git/commitdiff
Added possibility of 2-step initialisation, and wxWIZARD_EX_HELPBUTTON style.
authorJulian Smart <julian@anthemion.co.uk>
Fri, 17 Aug 2001 09:38:19 +0000 (09:38 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Fri, 17 Aug 2001 09:38:19 +0000 (09:38 +0000)
Also added & to Cancel button.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/generic/wizard.h
include/wx/wizard.h
src/generic/wizard.cpp

index 32186f6bab51a18ad99890f7454a656ec36092f0..ee25a60400c9e7742a5c34527796d25f1ac587cc 100644 (file)
@@ -20,11 +20,22 @@ class WXDLLEXPORT wxWizard : public wxWizardBase
 {
 public:
     // ctor
-    wxWizard(wxWindow *parent = NULL,
+    wxWizard() { Init(); }
+    wxWizard(wxWindow *parent,
+             int id = -1,
+             const wxString& title = wxEmptyString,
+             const wxBitmap& bitmap = wxNullBitmap,
+             const wxPoint& pos = wxDefaultPosition)
+    {
+        Init();
+        Create(parent, id, title, bitmap, pos);
+    }
+    bool Create(wxWindow *parent,
              int id = -1,
              const wxString& title = wxEmptyString,
              const wxBitmap& bitmap = wxNullBitmap,
              const wxPoint& pos = wxDefaultPosition);
+    void Init();
 
     // implement base class pure virtuals
     virtual bool RunWizard(wxWizardPage *firstPage);
@@ -43,13 +54,14 @@ public:
     // TransferDataFromWindow() returns FALSE - otherwise, returns TRUE
     bool ShowPage(wxWizardPage *page, bool goingForward = TRUE);
 
+    // do fill the dialog with controls
+    // this is app-overridable to, for example, set help and tooltip text
+    void DoCreateControls();
+
 private:
     // was the dialog really created?
     bool WasCreated() const { return m_btnPrev != NULL; }
 
-    // do fill the dialog with controls
-    void DoCreateControls();
-
     // event handlers
     void OnCancel(wxCommandEvent& event);
     void OnBackOrNext(wxCommandEvent& event);
index d80d8ba8fe708e87ade94362c57c866073151835..4a357556fcd42e71ed140028e3918e002e36806a 100644 (file)
@@ -26,6 +26,9 @@
     #include "wx/event.h"       // wxEVT_XXX constants
 #endif // WX_PRECOMP
 
+// Extended style to specify a help button
+#define wxWIZARD_EX_HELPBUTTON   0x00000010
+
 // forward declarations
 class WXDLLEXPORT wxWizard;
 
index acc1f274e70101a8bd557e714820e91d42f103d9..c3a9ab8cdd5c634948dd971dc67141da32291d1e 100644 (file)
@@ -97,20 +97,29 @@ wxWizardPage *wxWizardPageSimple::GetNext() const
 // generic wxWizard implementation
 // ----------------------------------------------------------------------------
 
-wxWizard::wxWizard(wxWindow *parent,
+void wxWizard::Init()
+{
+    m_posWizard = wxDefaultPosition;
+    m_page = (wxWizardPage *)NULL;
+    m_btnPrev = m_btnNext = NULL;
+    m_statbmp = NULL;
+}
+
+bool wxWizard::Create(wxWindow *parent,
                    int id,
                    const wxString& title,
                    const wxBitmap& bitmap,
                    const wxPoint& pos)
-        : m_posWizard(pos), m_bitmap(bitmap)
 {
+    m_posWizard = pos;
+    m_bitmap = bitmap ;
     // just create the dialog itself here, the controls will be created in
     // DoCreateControls() called later when we know our final size
     m_page = (wxWizardPage *)NULL;
     m_btnPrev = m_btnNext = NULL;
     m_statbmp = NULL;
 
-    (void)wxDialog::Create(parent, id, title, pos);
+    return wxDialog::Create(parent, id, title, pos);
 }
 
 void wxWizard::DoCreateControls()
@@ -189,13 +198,24 @@ void wxWizard::DoCreateControls()
 
     x = m_x + m_width - 3*sizeBtn.x - BUTTON_MARGIN;
     y += SEPARATOR_LINE_MARGIN;
+
+    if (GetExtraStyle() & wxWIZARD_EX_HELPBUTTON)
+    {
+        x -= sizeBtn.x;
+        x -= BUTTON_MARGIN ;
+
+        (void*) new wxButton(this, wxID_HELP, _("&Help"), wxPoint(x, y), sizeBtn);
+        x += sizeBtn.x;
+        x += BUTTON_MARGIN ;
+    }
+
     m_btnPrev = new wxButton(this, wxID_BACKWARD, _("< &Back"), wxPoint(x, y), sizeBtn);
 
     x += sizeBtn.x;
     m_btnNext = new wxButton(this, wxID_FORWARD, _("&Next >"), wxPoint(x, y), sizeBtn);
 
     x += sizeBtn.x + BUTTON_MARGIN;
-    (void)new wxButton(this, wxID_CANCEL, _("Cancel"), wxPoint(x, y), sizeBtn);
+    (void)new wxButton(this, wxID_CANCEL, _("&Cancel"), wxPoint(x, y), sizeBtn);
 
     // position and size the dialog
     // ----------------------------