64d3ed176d
by implementing a toolbar class that uses native buttons. Ultimately this should allow wxToolbook and wxPropertySheetDialog classes to look native, when we complete the button API improvements to combine text, bitmaps and toggling. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
149 lines
4.2 KiB
C++
149 lines
4.2 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/generic/propdlg.h
|
|
// Purpose: wxPropertySheetDialog
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 2005-03-12
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Julian Smart
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_PROPDLG_H_
|
|
#define _WX_PROPDLG_H_
|
|
|
|
#include "wx/defs.h"
|
|
|
|
#if wxUSE_BOOKCTRL
|
|
|
|
class WXDLLEXPORT wxBookCtrlBase;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// wxPropertySheetDialog
|
|
// A platform-independent properties dialog.
|
|
//
|
|
// * on PocketPC, a flat-look 'property sheet' notebook will be used, with
|
|
// no OK/Cancel/Help buttons
|
|
// * on other platforms, a normal notebook will be used, with standard buttons
|
|
//
|
|
// To use this class, call Create from your derived class.
|
|
// Then create pages and add to the book control. Finally call CreateButtons and
|
|
// LayoutDialog.
|
|
//
|
|
// For example:
|
|
//
|
|
// MyPropertySheetDialog::Create(...)
|
|
// {
|
|
// wxPropertySheetDialog::Create(...);
|
|
//
|
|
// // Add page
|
|
// wxPanel* panel = new wxPanel(GetBookCtrl(), ...);
|
|
// GetBookCtrl()->AddPage(panel, wxT("General"));
|
|
//
|
|
// CreateButtons();
|
|
// LayoutDialog();
|
|
// }
|
|
//
|
|
// Override CreateBookCtrl and AddBookCtrl to create and add a different
|
|
// kind of book control.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// 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
|
|
|
|
// Shrink dialog to fit current page
|
|
#define wxPROPSHEET_SHRINKTOFIT 0x0100
|
|
|
|
// Use a wxButtonToolBar toolbook
|
|
#define wxPROPSHEET_BUTTONTOOLBOOK 0x0200
|
|
|
|
class WXDLLIMPEXP_ADV wxPropertySheetDialog : public wxDialog
|
|
{
|
|
public:
|
|
wxPropertySheetDialog() : wxDialog() { Init(); }
|
|
|
|
wxPropertySheetDialog(wxWindow* parent, wxWindowID id,
|
|
const wxString& title,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& sz = wxDefaultSize,
|
|
long style = wxDEFAULT_DIALOG_STYLE,
|
|
const wxString& name = wxDialogNameStr)
|
|
{
|
|
Init();
|
|
Create(parent, id, title, pos, sz, style, name);
|
|
}
|
|
|
|
bool Create(wxWindow* parent, wxWindowID id,
|
|
const wxString& title,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& sz = wxDefaultSize,
|
|
long style = wxDEFAULT_DIALOG_STYLE,
|
|
const wxString& name = wxDialogNameStr);
|
|
|
|
//// Accessors
|
|
|
|
// Set and get the notebook
|
|
void SetBookCtrl(wxBookCtrlBase* book) { m_bookCtrl = book; }
|
|
wxBookCtrlBase* GetBookCtrl() const { return m_bookCtrl; }
|
|
|
|
// Set and get the inner sizer
|
|
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 ; }
|
|
|
|
/// 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(int centreFlags = wxBOTH);
|
|
|
|
/// Implementation
|
|
|
|
// Creates the book control. If you want to use a different kind of
|
|
// control, override.
|
|
virtual wxBookCtrlBase* CreateBookCtrl();
|
|
|
|
// 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_selectedPage;
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxPropertySheetDialog)
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
#endif // wxUSE_BOOKCTRL
|
|
|
|
#endif // _WX_PROPDLG_H_
|
|
|