#ifndef _WX_PROPFORM_H_
#define _WX_PROPFORM_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "propform.h"
#endif
+#if wxUSE_PROPSHEET
+
#include "wx/prop.h"
////
#define wxID_PROP_UPDATE 3101
// Mediates between a physical panel and the property sheet
-class wxPropertyFormView: public wxPropertyView
+class WXDLLEXPORT wxPropertyFormView: public wxPropertyView
{
DECLARE_DYNAMIC_CLASS(wxPropertyFormView)
public:
void OnUpdate(wxCommandEvent& event);
void OnRevert(wxCommandEvent& event);
- virtual bool OnClose(void);
+ virtual bool OnClose();
virtual void OnDoubleClick(wxControl *item);
- // TODO: does OnCommand still get called...???
+ // TODO: does OnCommand still get called...??? No,
+ // make ProcessEvent do it.
virtual void OnCommand(wxWindow& win, wxCommandEvent& event);
+ // Extend event processing to process OnCommand
+ virtual bool ProcessEvent(wxEvent& event);
+
inline virtual void AssociatePanel(wxWindow *win) { m_propertyWindow = win; }
inline virtual wxWindow *GetPanel(void) const { return m_propertyWindow; }
wxWindow* m_propertyWindow; // Panel that the controls will appear on
wxWindow* m_managedWindow; // Frame or dialog
-
+
wxButton* m_windowCloseButton; // Or OK
wxButton* m_windowCancelButton;
wxButton* m_windowHelpButton;
DECLARE_EVENT_TABLE()
};
-
+
/*
* The type of validator used for forms (wxForm style but using an existing panel
* or dialog box).
* assocated with a window. It's that kinda thing.
*/
-class wxPropertyFormValidator: public wxPropertyValidator
+class WXDLLEXPORT wxPropertyFormValidator: public wxPropertyValidator
{
DECLARE_DYNAMIC_CLASS(wxPropertyFormValidator)
protected:
public:
wxPropertyFormValidator(long flags = 0): wxPropertyValidator(flags) { }
~wxPropertyFormValidator(void) {}
-
+
// Called to check value is OK (e.g. when OK is pressed)
// Return FALSE if value didn't check out; signal to restore old value.
- virtual bool OnCheckValue( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
+ virtual bool OnCheckValue( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
wxWindow *WXUNUSED(parentWindow) ) { return TRUE; }
// Does the transferance from the property editing area to the property itself.
// Called by the view to transfer the property to the window.
virtual bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow) = 0;
- virtual void OnDoubleClick( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
- wxWindow *WXUNUSED(parentWindow) ) { }
- virtual void OnSetFocus( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
+ virtual void OnDoubleClick( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
wxWindow *WXUNUSED(parentWindow) ) { }
- virtual void OnKillFocus( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
+ virtual void OnSetFocus( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
wxWindow *WXUNUSED(parentWindow) ) { }
- virtual void OnCommand( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
+ virtual void OnKillFocus( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
+ wxWindow *WXUNUSED(parentWindow) ) { }
+ virtual void OnCommand( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
wxWindow *WXUNUSED(parentWindow), wxCommandEvent& WXUNUSED(event) ) {}
+private:
+// Virtual function hiding suppression
+#if WXWIN_COMPATIBILITY_2
+ virtual void OnCommand(wxWindow& win,
+ wxCommandEvent& event)
+ { wxEvtHandler::OnCommand(win, event); }
+#endif
};
/*
* Some default validators
*/
-
-class wxRealFormValidator: public wxPropertyFormValidator
+
+class WXDLLEXPORT wxRealFormValidator: public wxPropertyFormValidator
{
DECLARE_DYNAMIC_CLASS(wxRealFormValidator)
public:
float m_realMax;
};
-class wxIntegerFormValidator: public wxPropertyFormValidator
+class WXDLLEXPORT wxIntegerFormValidator: public wxPropertyFormValidator
{
DECLARE_DYNAMIC_CLASS(wxIntegerFormValidator)
public:
long m_integerMax;
};
-class wxBoolFormValidator: public wxPropertyFormValidator
+class WXDLLEXPORT wxBoolFormValidator: public wxPropertyFormValidator
{
DECLARE_DYNAMIC_CLASS(wxBoolFormValidator)
protected:
bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
};
-class wxStringFormValidator: public wxPropertyFormValidator
+class WXDLLEXPORT wxStringFormValidator: public wxPropertyFormValidator
{
DECLARE_DYNAMIC_CLASS(wxStringFormValidator)
public:
/*
* A default dialog box class to use.
*/
-
-class wxPropertyFormDialog: public wxDialog
-{
- DECLARE_CLASS(wxPropertyFormDialog)
- public:
- wxPropertyFormDialog(wxPropertyFormView *v, wxWindow *parent, const wxString& title,
- const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox");
- bool OnClose(void);
- void OnDefaultAction(wxControl *item);
- void OnCommand(wxWindow& win, wxCommandEvent& event);
-
- // Extend event processing to search the view's event table
- virtual bool ProcessEvent(wxEvent& event);
- private:
- wxPropertyFormView* m_view;
+class WXDLLEXPORT wxPropertyFormDialog: public wxDialog
+{
+public:
+ wxPropertyFormDialog(wxPropertyFormView *v = NULL,
+ wxWindow *parent = NULL,
+ const wxString& title = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_DIALOG_STYLE,
+ const wxString& name = _T("dialogBox"));
+
+ void OnCloseWindow(wxCloseEvent& event);
+ void OnDefaultAction(wxControl *item);
+ void OnCommand(wxWindow& win, wxCommandEvent& event);
+
+ // Extend event processing to search the view's event table
+ virtual bool ProcessEvent(wxEvent& event);
+
+private:
+ wxPropertyFormView* m_view;
+
+ DECLARE_EVENT_TABLE()
+ DECLARE_CLASS(wxPropertyFormDialog)
};
/*
* A default panel class to use.
*/
-
-class wxPropertyFormPanel: public wxPanel
-{
- DECLARE_CLASS(wxPropertyFormPanel)
- public:
- wxPropertyFormPanel(wxPropertyFormView *v, wxWindow *parent, const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "panel"):
- wxPanel(parent, -1, pos, size, style, name)
- {
- m_view = v;
- }
- void OnDefaultAction(wxControl *item);
- void OnCommand(wxWindow& win, wxCommandEvent& event);
-
- // Extend event processing to search the view's event table
- virtual bool ProcessEvent(wxEvent& event);
- private:
- wxPropertyFormView* m_view;
+class WXDLLEXPORT wxPropertyFormPanel: public wxPanel
+{
+public:
+ wxPropertyFormPanel(wxPropertyFormView *v = NULL,
+ wxWindow *parent = NULL,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = _T("panel"))
+ : wxPanel(parent, -1, pos, size, style, name)
+ {
+ m_view = v;
+ }
+ void OnDefaultAction(wxControl *item);
+ void OnCommand(wxWindow& win, wxCommandEvent& event);
+
+ // Extend event processing to search the view's event table
+ virtual bool ProcessEvent(wxEvent& event);
+ void SetView(wxPropertyFormView* view) { m_view = view; }
+ wxPropertyFormView* GetView() const { return m_view; }
+
+private:
+ wxPropertyFormView* m_view;
+
+ DECLARE_CLASS(wxPropertyFormPanel)
};
/*
* A default frame class to use.
*/
-
-class wxPropertyFormFrame: public wxFrame
+
+class WXDLLEXPORT wxPropertyFormFrame: public wxFrame
{
- DECLARE_CLASS(wxPropertyFormFrame)
- public:
- wxPropertyFormFrame(wxPropertyFormView *v, wxFrame *parent, const wxString& title,
- const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_FRAME, const wxString& name = "frame"):
- wxFrame(parent, -1, title, pos, size, style, name)
- {
- m_view = v;
- m_propertyPanel = NULL;
- }
- bool OnClose(void);
-
- // Must call this to create panel and associate view
- virtual bool Initialize(void);
- virtual wxPanel *OnCreatePanel(wxFrame *parent, wxPropertyFormView *v);
- inline virtual wxPanel *GetPropertyPanel(void) const { return m_propertyPanel; }
-
- private:
- wxPropertyFormView* m_view;
- wxPanel* m_propertyPanel;
+public:
+ wxPropertyFormFrame(wxPropertyFormView *v = NULL,
+ wxFrame *parent = NULL,
+ const wxString& title = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE,
+ const wxString& name = _T("frame"))
+ : wxFrame(parent, -1, title, pos, size, style, name)
+ {
+ m_view = v;
+ m_propertyPanel = NULL;
+ }
+ void OnCloseWindow(wxCloseEvent& event);
+
+ // Must call this to create panel and associate view
+ virtual bool Initialize(void);
+ virtual wxPanel *OnCreatePanel(wxFrame *parent, wxPropertyFormView *v);
+ inline virtual wxPanel *GetPropertyPanel(void) const { return m_propertyPanel; }
+
+private:
+ wxPropertyFormView* m_view;
+ wxPanel* m_propertyPanel;
+
+ DECLARE_EVENT_TABLE()
+ DECLARE_CLASS(wxPropertyFormFrame)
};
+#endif
+ // wxUSE_PROPSHEET
+
#endif
// _WX_PROPFORM_H_