]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/propdlg.h
Applied patch from Bo, WIP
[wxWidgets.git] / include / wx / generic / propdlg.h
index 9559d8dee020e3f2b75543966a729dba4c3908f0..b6c60227d4788e718e1e7bf91af8c58ab5efc892 100644 (file)
 #ifndef _WX_PROPDLG_H_
 #define _WX_PROPDLG_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "propdlg.h"
-#endif
+#include "wx/defs.h"
 
-class WXDLLEXPORT wxBookCtrlBase;
+#if wxUSE_BOOKCTRL
+
+#include "wx/dialog.h"
+
+class WXDLLIMPEXP_FWD_CORE wxBookCtrlBase;
 
 //-----------------------------------------------------------------------------
 // wxPropertySheetDialog
@@ -48,7 +50,31 @@ class WXDLLEXPORT wxBookCtrlBase;
 // kind of book control.
 //-----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxPropertySheetDialog : public wxDialog
+// Use the platform default
+#define wxPROPSHEET_DEFAULT         0x0001
+
+// Use a notebook
+#define wxPROPSHEET_NOTEBOOK        0x0002
+
+// Use a toolbook
+#define wxPROPSHEET_TOOLBOOK        0x0004
+
+// Use a choicebook
+#define wxPROPSHEET_CHOICEBOOK      0x0008
+
+// Use a listbook
+#define wxPROPSHEET_LISTBOOK        0x0010
+
+// Use a wxButtonToolBar toolbook
+#define wxPROPSHEET_BUTTONTOOLBOOK  0x0020
+
+// Use a treebook
+#define wxPROPSHEET_TREEBOOK        0x0040
+
+// Shrink dialog to fit current page
+#define wxPROPSHEET_SHRINKTOFIT     0x0100
+
+class WXDLLIMPEXP_ADV wxPropertySheetDialog : public wxDialog
 {
 public:
     wxPropertySheetDialog() : wxDialog() { Init(); }
@@ -71,8 +97,6 @@ public:
                        long style = wxDEFAULT_DIALOG_STYLE,
                        const wxString& name = wxDialogNameStr);
 
-    void Init();
-
 //// Accessors
 
     // Set and get the notebook
@@ -83,13 +107,25 @@ public:
     void SetInnerSize(wxSizer* sizer) { m_innerSizer = sizer; }
     wxSizer* GetInnerSizer() const { return m_innerSizer ; }
 
+    // Set and get the book style
+    void SetSheetStyle(long sheetStyle) { m_sheetStyle = sheetStyle; }
+    long GetSheetStyle() const { return m_sheetStyle ; }
+
+    // Set and get the border around the whole dialog
+    void SetSheetOuterBorder(int border) { m_sheetOuterBorder = border; }
+    int GetSheetOuterBorder() const { return m_sheetOuterBorder ; }
+
+    // Set and get the border around the book control only
+    void SetSheetInnerBorder(int border) { m_sheetInnerBorder = border; }
+    int GetSheetInnerBorder() const { return m_sheetInnerBorder ; }
+
 /// Operations
 
     // Creates the buttons (none on PocketPC)
     virtual void CreateButtons(int flags = wxOK|wxCANCEL);
 
     // Lay out the dialog, to be called after pages have been created
-    virtual void LayoutDialog();
+    virtual void LayoutDialog(int centreFlags = wxBOTH);
 
 /// Implementation
 
@@ -100,12 +136,28 @@ public:
     // Adds the book control to the inner sizer.
     virtual void AddBookCtrl(wxSizer* sizer);
 
+    // Set the focus
+    void OnActivate(wxActivateEvent& event);
+
+    // Resize dialog if necessary
+    void OnIdle(wxIdleEvent& event);
+
+private:
+    void Init();
+
 protected:
     wxBookCtrlBase* m_bookCtrl;
     wxSizer*        m_innerSizer; // sizer for extra space
+    long            m_sheetStyle;
+    int             m_sheetOuterBorder;
+    int             m_sheetInnerBorder;
+    int             m_selectedPage;
 
     DECLARE_DYNAMIC_CLASS(wxPropertySheetDialog)
+    DECLARE_EVENT_TABLE()
 };
 
+#endif // wxUSE_BOOKCTRL
+
 #endif // _WX_PROPDLG_H_