Updated documentation for some wxPropertyGrid classes.

Updated documentation for wxPGEditor, wxPropertyGridPage, wxPropertyGridManager, wx*Property classes.
Removed doxygen-style comments from header files.
This commit is contained in:
Artur Wieczorek
2016-07-23 23:38:39 +02:00
parent b3d4c870da
commit cd96c664dd
10 changed files with 579 additions and 771 deletions

View File

@@ -47,35 +47,26 @@ WX_PG_DECLARE_EDITOR_WITH_DECL(DatePickerCtrl,WXDLLIMPEXP_PROPGRID)
#define wxPG_COLOUR_CUSTOM 0xFFFFFF
#define wxPG_COLOUR_UNSPECIFIED (wxPG_COLOUR_CUSTOM+1)
/** @class wxColourPropertyValue
Because text, background and other colours tend to differ between
platforms, wxSystemColourProperty must be able to select between system
colour and, when necessary, to pick a custom one. wxSystemColourProperty
value makes this possible.
*/
// Because text, background and other colours tend to differ between
// platforms, wxSystemColourProperty must be able to select between system
// colour and, when necessary, to pick a custom one. wxSystemColourProperty
// value makes this possible.
class WXDLLIMPEXP_PROPGRID wxColourPropertyValue : public wxObject
{
public:
/** An integer value relating to the colour, and which exact
meaning depends on the property with which it is used.
For wxSystemColourProperty:
Any of wxSYS_COLOUR_XXX, or any web-colour ( use wxPG_TO_WEB_COLOUR
macro - (currently unsupported) ), or wxPG_COLOUR_CUSTOM.
For custom colour properties without values array specified:
index or wxPG_COLOUR_CUSTOM
For custom colour properties <b>with</b> values array specified:
m_arrValues[index] or wxPG_COLOUR_CUSTOM
*/
// An integer value relating to the colour, and which exact
// meaning depends on the property with which it is used.
// For wxSystemColourProperty:
// Any of wxSYS_COLOUR_XXX, or any web-colour ( use wxPG_TO_WEB_COLOUR
// macro - (currently unsupported) ), or wxPG_COLOUR_CUSTOM.
//
// For custom colour properties without values array specified:
// index or wxPG_COLOUR_CUSTOM
// For custom colour properties with values array specified:
// m_arrValues[index] or wxPG_COLOUR_CUSTOM
wxUint32 m_type;
/** Resulting colour. Should be correct regardless of type. */
// Resulting colour. Should be correct regardless of type.
wxColour m_colour;
wxColourPropertyValue()
@@ -145,10 +136,7 @@ DECLARE_VARIANT_OBJECT_EXPORTED(wxColourPropertyValue, WXDLLIMPEXP_PROPGRID)
// -----------------------------------------------------------------------
/** @class wxFontProperty
@ingroup classes
Property representing wxFont.
*/
// Property representing wxFont.
class WXDLLIMPEXP_PROPGRID wxFontProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxFontProperty)
@@ -173,15 +161,12 @@ protected:
// -----------------------------------------------------------------------
/** If set, then match from list is searched for a custom colour. */
// If set, then match from list is searched for a custom colour.
#define wxPG_PROP_TRANSLATE_CUSTOM wxPG_PROP_CLASS_SPECIFIC_1
/** @class wxSystemColourProperty
@ingroup classes
Has dropdown list of wxWidgets system colours. Value used is
of wxColourPropertyValue type.
*/
// Has dropdown list of wxWidgets system colours. Value used is
// of wxColourPropertyValue type.
class WXDLLIMPEXP_PROPGRID wxSystemColourProperty : public wxEnumProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxSystemColourProperty)
@@ -198,16 +183,13 @@ public:
int number,
int argFlags = 0) const wxOVERRIDE;
/**
Override in derived class to customize how colours are printed as
strings.
*/
// Override in derived class to customize how colours are printed as
// strings.
virtual wxString ColourToString( const wxColour& col, int index,
int argFlags = 0 ) const;
/** Returns index of entry that triggers colour picker dialog
(default is last).
*/
// Returns index of entry that triggers colour picker dialog
// (default is last).
virtual int GetCustomColourIndex() const;
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE;
@@ -224,9 +206,8 @@ public:
// Helper function to show the colour dialog
bool QueryColourFromUser( wxVariant& variant ) const;
/** Default is to use wxSystemSettings::GetColour(index). Override to use
custom colour tables etc.
*/
// Default is to use wxSystemSettings::GetColour(index). Override to use
// custom colour tables etc.
virtual wxColour GetColour( int index ) const;
wxColourPropertyValue GetVal( const wxVariant* pVariant = NULL ) const;
@@ -282,10 +263,7 @@ private:
// -----------------------------------------------------------------------
/** @class wxCursorProperty
@ingroup classes
Property representing wxCursor.
*/
// Property representing wxCursor.
class WXDLLIMPEXP_PROPGRID wxCursorProperty : public wxEnumProperty
{
wxDECLARE_DYNAMIC_CLASS(wxCursorProperty);
@@ -306,10 +284,7 @@ class WXDLLIMPEXP_PROPGRID wxCursorProperty : public wxEnumProperty
WXDLLIMPEXP_PROPGRID const wxString& wxPGGetDefaultImageWildcard();
/** @class wxImageFileProperty
@ingroup classes
Property representing image file(name).
*/
// Property representing image file(name).
class WXDLLIMPEXP_PROPGRID wxImageFileProperty : public wxFileProperty
{
wxDECLARE_DYNAMIC_CLASS(wxImageFileProperty);
@@ -339,18 +314,9 @@ private:
#if wxUSE_CHOICEDLG
/** @class wxMultiChoiceProperty
@ingroup classes
Property that manages a value resulting from wxMultiChoiceDialog. Value is
array of strings. You can get value as array of choice values/indices by
calling wxMultiChoiceProperty::GetValueAsArrayInt().
<b>Supported special attributes:</b>
- "UserStringMode": If > 0, allow user to manually enter strings that are
not in the list of choices. If this value is 1, user strings are
preferably placed in front of valid choices. If value is 2, then those
strings will placed behind valid choices.
*/
// Property that manages a value resulting from wxMultiChoiceDialog. Value is
// array of strings. You can get value as array of choice values/indices by
// calling wxMultiChoiceProperty::GetValueAsArrayInt().
class WXDLLIMPEXP_PROPGRID wxMultiChoiceProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxMultiChoiceProperty)
@@ -403,16 +369,7 @@ protected:
#if wxUSE_DATETIME
/** @class wxDateProperty
@ingroup classes
Property representing wxDateTime.
<b>Supported special attributes:</b>
- "DateFormat": Determines displayed date format.
- "PickerStyle": Determines window style used with wxDatePickerCtrl.
Default is wxDP_DEFAULT | wxDP_SHOWCENTURY. Using wxDP_ALLOWNONE
enables additional support for unspecified property value.
*/
// Property representing wxDateTime.
class WXDLLIMPEXP_PROPGRID wxDateProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxDateProperty)

View File

@@ -49,136 +49,98 @@ public:
// -----------------------------------------------------------------------
/** @class wxPGEditor
Base class for custom wxPropertyGrid editors.
@remarks
- Names of builtin property editors are: TextCtrl, Choice,
ComboBox, CheckBox, TextCtrlAndButton, and ChoiceAndButton. Additional
editors include SpinCtrl and DatePickerCtrl, but using them requires
calling wxPropertyGrid::RegisterAdditionalEditors() prior use.
- Pointer to builtin editor is available as wxPGEditor_EditorName
(e.g. wxPGEditor_TextCtrl).
- To add new editor you need to register it first using static function
wxPropertyGrid::RegisterEditorClass(), with code like this:
@code
wxPGEditor *editorPointer = wxPropertyGrid::RegisterEditorClass(
new MyEditorClass(), "MyEditor");
@endcode
After that, wxPropertyGrid will take ownership of the given object, but
you should still store editorPointer somewhere, so you can pass it to
wxPGProperty::SetEditor(), or return it from
wxPGEditor::DoGetEditorClass().
@library{wxpropgrid}
@category{propgrid}
*/
// Base class for custom wxPropertyGrid editors.
// - Names of builtin property editors are: TextCtrl, Choice,
// ComboBox, CheckBox, TextCtrlAndButton, and ChoiceAndButton. Additional
// editors include SpinCtrl and DatePickerCtrl, but using them requires
// calling wxPropertyGrid::RegisterAdditionalEditors() prior use.
// - Pointer to builtin editor is available as wxPGEditor_EditorName
// (e.g. wxPGEditor_TextCtrl).
// - To add new editor you need to register it first using static function
// wxPropertyGrid::RegisterEditorClass(), with code like this:
// wxPGEditor *editorPointer = wxPropertyGrid::RegisterEditorClass(
// new MyEditorClass(), "MyEditor");
// After that, wxPropertyGrid will take ownership of the given object, but
// you should still store editorPointer somewhere, so you can pass it to
// wxPGProperty::SetEditor(), or return it from
// wxPGEditor::DoGetEditorClass().
class WXDLLIMPEXP_PROPGRID wxPGEditor : public wxObject
{
wxDECLARE_ABSTRACT_CLASS(wxPGEditor);
public:
/** Constructor. */
// Constructor.
wxPGEditor()
: wxObject()
{
m_clientData = NULL;
}
/** Destructor. */
// Destructor.
virtual ~wxPGEditor();
/**
Returns pointer to the name of the editor. For example,
wxPGEditor_TextCtrl has name "TextCtrl". If you don't need to access
your custom editor by string name, then you do not need to implement
this function.
*/
// Returns pointer to the name of the editor. For example,
// wxPGEditor_TextCtrl has name "TextCtrl". If you don't need to access
// your custom editor by string name, then you do not need to implement
// this function.
virtual wxString GetName() const;
/**
Instantiates editor controls.
@param propgrid
wxPropertyGrid to which the property belongs (use as parent for
control).
@param property
Property for which this method is called.
@param pos
Position, inside wxPropertyGrid, to create control(s) to.
@param size
Initial size for control(s).
@remarks
- Unlike in previous version of wxPropertyGrid, it is no longer
necessary to call wxEvtHandler::Connect() for interesting editor
events. Instead, all events from control are now automatically
forwarded to wxPGEditor::OnEvent() and wxPGProperty::OnEvent().
*/
// Instantiates editor controls.
// propgrid- wxPropertyGrid to which the property belongs
// (use as parent for control).
// property - Property for which this method is called.
// pos - Position, inside wxPropertyGrid, to create control(s) to.
// size - Initial size for control(s).
// Unlike in previous version of wxPropertyGrid, it is no longer
// necessary to call wxEvtHandler::Connect() for interesting editor
// events. Instead, all events from control are now automatically
// forwarded to wxPGEditor::OnEvent() and wxPGProperty::OnEvent().
virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
wxPGProperty* property,
const wxPoint& pos,
const wxSize& size) const = 0;
/** Loads value from property to the control. */
// Loads value from property to the control.
virtual void UpdateControl( wxPGProperty* property,
wxWindow* ctrl ) const = 0;
/**
Used to get the renderer to draw the value with when the control is
hidden.
Default implementation returns g_wxPGDefaultRenderer.
*/
// Used to get the renderer to draw the value with when the control is
// hidden.
// Default implementation returns g_wxPGDefaultRenderer.
//virtual wxPGCellRenderer* GetCellRenderer() const;
/** Draws value for given property.
*/
// Draws value for given property.
virtual void DrawValue( wxDC& dc,
const wxRect& rect,
wxPGProperty* property,
const wxString& text ) const;
/** Handles events. Returns true if value in control was modified
(see wxPGProperty::OnEvent for more information).
@remarks wxPropertyGrid will automatically unfocus the editor when
wxEVT_TEXT_ENTER is received and when it results in
property value being modified. This happens regardless of
editor type (i.e. behaviour is same for any wxTextCtrl and
wxComboBox based editor).
*/
// Handles events. Returns true if value in control was modified
// (see wxPGProperty::OnEvent for more information).
// wxPropertyGrid will automatically unfocus the editor when
// wxEVT_TEXT_ENTER is received and when it results in
// property value being modified. This happens regardless of
// editor type (i.e. behaviour is same for any wxTextCtrl and
// wxComboBox based editor).
virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
wxWindow* wnd_primary, wxEvent& event ) const = 0;
/** Returns value from control, via parameter 'variant'.
Usually ends up calling property's StringToValue or IntToValue.
Returns true if value was different.
*/
// Returns value from control, via parameter 'variant'.
// Usually ends up calling property's StringToValue or IntToValue.
// Returns true if value was different.
virtual bool GetValueFromControl( wxVariant& variant,
wxPGProperty* property,
wxWindow* ctrl ) const;
/**
Sets new appearance for the control. Default implementation
sets foreground colour, background colour, font, plus text
for wxTextCtrl and wxComboCtrl.
@param appearance
New appearance to be applied.
@param oldAppearance
Previously applied appearance. Used to detect which
control attributes need to be changed (e.g. so we only
change background colour if really needed).
@param unspecified
@true if the new appearance represents an unspecified
property value.
*/
// Sets new appearance for the control. Default implementation
// sets foreground colour, background colour, font, plus text
// for wxTextCtrl and wxComboCtrl.
// appearance - New appearance to be applied.
// oldAppearance - Previously applied appearance. Used to detect
// which control attributes need to be changed (e.g. so we only
// change background colour if really needed).
// unspecified - true if the new appearance represents an unspecified
// property value.
virtual void SetControlAppearance( wxPropertyGrid* pg,
wxPGProperty* property,
wxWindow* ctrl,
@@ -186,42 +148,36 @@ public:
const wxPGCell& oldAppearance,
bool unspecified ) const;
/**
Sets value in control to unspecified.
*/
// Sets value in control to unspecified.
virtual void SetValueToUnspecified( wxPGProperty* property,
wxWindow* ctrl ) const;
/** Sets control's value specifically from string. */
// Sets control's value specifically from string.
virtual void SetControlStringValue( wxPGProperty* property,
wxWindow* ctrl,
const wxString& txt ) const;
/** Sets control's value specifically from int (applies to choice etc.). */
// Sets control's value specifically from int (applies to choice etc.).
virtual void SetControlIntValue( wxPGProperty* property,
wxWindow* ctrl,
int value ) const;
/** Inserts item to existing control. Index -1 means appending.
Default implementation does nothing. Returns index of item added.
*/
// Inserts item to existing control. Index -1 means appending.
// Default implementation does nothing. Returns index of item added.
virtual int InsertItem( wxWindow* ctrl,
const wxString& label,
int index ) const;
/** Deletes item from existing control.
Default implementation does nothing.
*/
// Deletes item from existing control.
// Default implementation does nothing.
virtual void DeleteItem( wxWindow* ctrl, int index ) const;
/** Extra processing when control gains focus. For example, wxTextCtrl
based controls should select all text.
*/
// Extra processing when control gains focus. For example, wxTextCtrl
// based controls should select all text.
virtual void OnFocus( wxPGProperty* property, wxWindow* wnd ) const;
/** Returns true if control itself can contain the custom image. Default is
to return false.
*/
// Returns true if control itself can contain the custom image. Default is
// to return false.
virtual bool CanContainCustomImage() const;
//
@@ -450,18 +406,11 @@ public:
// -----------------------------------------------------------------------
/** @class wxPGEditorDialogAdapter
Derive a class from this to adapt an existing editor dialog or function to
be used when editor button of a property is pushed.
You only need to derive class and implement DoShowDialog() to create and
show the dialog, and finally submit the value returned by the dialog
via SetValue().
@library{wxpropgrid}
@category{propgrid}
*/
// Derive a class from this to adapt an existing editor dialog or function to
// be used when editor button of a property is pushed.
// You only need to derive class and implement DoShowDialog() to create and
// show the dialog, and finally submit the value returned by the dialog
// via SetValue().
class WXDLLIMPEXP_PROPGRID wxPGEditorDialogAdapter : public wxObject
{
wxDECLARE_ABSTRACT_CLASS(wxPGEditorDialogAdapter);
@@ -484,13 +433,10 @@ public:
m_value = value;
}
/**
This method is typically only used if deriving class from existing
adapter with value conversion purposes.
*/
// This method is typically only used if deriving class from existing
// adapter with value conversion purposes.
wxVariant& GetValue() { return m_value; }
//
// This member is public so scripting language bindings
// wrapper code can access it freely.
void* m_clientData;
@@ -502,13 +448,10 @@ private:
// -----------------------------------------------------------------------
/** @class wxPGMultiButton
This class can be used to have multiple buttons in a property editor.
You will need to create a new property editor class, override
CreateControls, and have it return wxPGMultiButton instance in
wxPGWindowList::SetSecondary().
*/
// This class can be used to have multiple buttons in a property editor.
// You will need to create a new property editor class, override
// CreateControls, and have it return wxPGMultiButton instance in
// wxPGWindowList::SetSecondary().
class WXDLLIMPEXP_PROPGRID wxPGMultiButton : public wxWindow
{
public:
@@ -519,12 +462,10 @@ public:
const wxWindow* GetButton( unsigned int i ) const
{ return (const wxWindow*) m_buttons[i]; }
/** Utility function to be used in event handlers.
*/
// Utility function to be used in event handlers.
int GetButtonId( unsigned int i ) const { return GetButton(i)->GetId(); }
/** Returns number of buttons.
*/
// Returns number of buttons.
unsigned int GetCount() const { return (unsigned int) m_buttons.size(); }
void Add( const wxString& label, int id = -2 );

View File

@@ -32,36 +32,25 @@
extern WXDLLIMPEXP_DATA_PROPGRID(const char) wxPropertyGridManagerNameStr[];
#endif
/** @class wxPropertyGridPage
Holder of property grid page information. You can subclass this and
give instance in wxPropertyGridManager::AddPage. It inherits from
wxEvtHandler and can be used to process events specific to this
page (id of events will still be same as manager's). If you don't
want to use it to process all events of the page, you need to
return false in the derived wxPropertyGridPage::IsHandlingAllEvents.
Please note that wxPropertyGridPage lacks many non-const property
manipulation functions found in wxPropertyGridManager. Please use
parent manager (m_manager member variable) when needed.
Please note that most member functions are inherited and as such not
documented on this page. This means you will probably also want to read
wxPropertyGridInterface class reference.
@section propgridpage_event_handling Event Handling
wxPropertyGridPage receives events emitted by its wxPropertyGridManager, but
only those events that are specific to that page. If
wxPropertyGridPage::IsHandlingAllEvents returns false, then unhandled
events are sent to the manager's parent, as usual.
See @ref propgrid_event_handling "wxPropertyGrid Event Handling"
for more information.
@library{wxpropgrid}
@category{propgrid}
*/
// Holder of property grid page information. You can subclass this and
// give instance in wxPropertyGridManager::AddPage. It inherits from
// wxEvtHandler and can be used to process events specific to this
// page (id of events will still be same as manager's). If you don't
// want to use it to process all events of the page, you need to
// return false in the derived wxPropertyGridPage::IsHandlingAllEvents.
//
// Please note that wxPropertyGridPage lacks many non-const property
// manipulation functions found in wxPropertyGridManager. Please use
// parent manager (m_manager member variable) when needed.
//
// Please note that most member functions are inherited and as such not
// documented on this page. This means you will probably also want to read
// wxPropertyGridInterface class reference.
//
// wxPropertyGridPage receives events emitted by its wxPropertyGridManager, but
// only those events that are specific to that page. If
// wxPropertyGridPage::IsHandlingAllEvents returns false, then unhandled
// events are sent to the manager's parent, as usual.
class WXDLLIMPEXP_PROPGRID wxPropertyGridPage : public wxEvtHandler,
public wxPropertyGridInterface,
public wxPropertyGridPageState
@@ -73,88 +62,69 @@ public:
wxPropertyGridPage();
virtual ~wxPropertyGridPage();
/** Deletes all properties on page.
*/
// Deletes all properties on page.
virtual void Clear() wxOVERRIDE;
/**
Reduces column sizes to minimum possible that contents are still
visibly (naturally some margin space will be applied as well).
@return
Minimum size for the page to still display everything.
@remarks
This function only works properly if size of containing grid was
already fairly large.
Note that you can also get calculated column widths by calling
GetColumnWidth() immediately after this function returns.
*/
// Reduces column sizes to minimum possible that contents are still
// visibly (naturally some margin space will be applied as well).
// Returns minimum size for the page to still display everything.
// This function only works properly if size of containing grid was
// already fairly large.
// Note that you can also get calculated column widths by calling
// GetColumnWidth() immediately after this function returns.
wxSize FitColumns();
/** Returns page index in manager;
*/
// Returns page index in manager;
inline int GetIndex() const;
/** Returns x-coordinate position of splitter on a page.
*/
// Returns x-coordinate position of splitter on a page.
int GetSplitterPosition( int col = 0 ) const
{ return GetStatePtr()->DoGetSplitterPosition(col); }
/** Returns "root property". It does not have name, etc. and it is not
visible. It is only useful for accessing its children.
*/
// Returns "root property". It does not have name, etc. and it is not
// visible. It is only useful for accessing its children.
wxPGProperty* GetRoot() const { return GetStatePtr()->DoGetRoot(); }
/** Return pointer to contained property grid state.
*/
// Returns pointer to contained property grid state.
wxPropertyGridPageState* GetStatePtr()
{
return this;
}
/** Return pointer to contained property grid state.
*/
// Returns pointer to contained property grid state.
const wxPropertyGridPageState* GetStatePtr() const
{
return this;
}
/**
Returns id of the tool bar item that represents this page on
wxPropertyGridManager's wxToolBar.
*/
// Returns id of the tool bar item that represents this page on
// wxPropertyGridManager's wxToolBar.
int GetToolId() const
{
return m_toolId;
}
/** Do any member initialization in this method.
@remarks
- Called every time the page is added into a manager.
- You can add properties to the page here.
*/
// Do any member initialization in this method.
// Notes:
// - Called every time the page is added into a manager.
// - You can add properties to the page here.
virtual void Init() {}
/** Return false here to indicate unhandled events should be
propagated to manager's parent, as normal.
*/
// Return false here to indicate unhandled events should be
// propagated to manager's parent, as normal.
virtual bool IsHandlingAllEvents() const { return true; }
/** Called every time page is about to be shown.
Useful, for instance, creating properties just-in-time.
*/
// Called every time page is about to be shown.
// Useful, for instance, creating properties just-in-time.
virtual void OnShow();
// Refreshes given property on page.
virtual void RefreshProperty( wxPGProperty* p ) wxOVERRIDE;
/** Sets splitter position on page.
@remarks
Splitter position cannot exceed grid size, and therefore setting it
during form creation may fail as initial grid size is often smaller
than desired splitter position, especially when sizers are being used.
*/
// Sets splitter position on page.
// Splitter position cannot exceed grid size, and therefore setting it
// during form creation may fail as initial grid size is often smaller
// than desired splitter position, especially when sizers are being used.
void SetSplitterPosition( int splitterPos, int col = 0 );
#if WXWIN_COMPATIBILITY_3_0
@@ -165,16 +135,14 @@ public:
protected:
/** Propagate to other pages.
*/
// Propagate to other pages.
virtual void DoSetSplitterPosition( int pos,
int splitterColumn = 0,
int flags = wxPG_SPLITTER_REFRESH ) wxOVERRIDE;
/** Page label (may be referred as name in some parts of documentation).
Can be set in constructor, or passed in
wxPropertyGridManager::AddPage(), but *not* in both.
*/
// Page label (may be referred as name in some parts of documentation).
// Can be set in constructor, or passed in
// wxPropertyGridManager::AddPage(), but *not* in both.
wxString m_label;
//virtual bool ProcessEvent( wxEvent& event );
@@ -198,25 +166,10 @@ class wxPGHeaderCtrl;
#endif
/** @class wxPropertyGridManager
wxPropertyGridManager is an efficient multi-page version of wxPropertyGrid,
which can optionally have toolbar for mode and page selection, and help
text box.
Use window flags to select components to include.
@section propgridmanager_window_styles_ Window Styles
See @ref propgrid_window_styles.
@section propgridmanager_event_handling Event Handling
See @ref propgrid_event_handling "wxPropertyGrid Event Handling"
for more information.
@library{wxpropgrid}
@category{propgrid}
*/
// wxPropertyGridManager is an efficient multi-page version of wxPropertyGrid,
// which can optionally have toolbar for mode and page selection, and help
// text box.
// Use window flags to select components to include.
class WXDLLIMPEXP_PROPGRID
wxPropertyGridManager : public wxPanel, public wxPropertyGridInterface
{
@@ -225,46 +178,34 @@ class WXDLLIMPEXP_PROPGRID
public:
#ifndef SWIG
/**
Two step constructor.
Call Create when this constructor is called to build up the
wxPropertyGridManager.
*/
// Two step constructor.
// Call Create when this constructor is called to build up the
// wxPropertyGridManager.
wxPropertyGridManager();
#endif
/** The default constructor. The styles to be used are styles valid for
the wxWindow.
@see @link wndflags Additional Window Styles@endlink
*/
// The default constructor. The styles to be used are styles valid for
// the wxWindow.
wxPropertyGridManager( wxWindow *parent, wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxPGMAN_DEFAULT_STYLE,
const wxString& name = wxPropertyGridManagerNameStr );
/** Destructor */
// Destructor.
virtual ~wxPropertyGridManager();
/** Creates new property page. Note that the first page is not created
automatically.
@param label
A label for the page. This may be shown as a toolbar tooltip etc.
@param bmp
Bitmap image for toolbar. If wxNullBitmap is used, then a built-in
default image is used.
@param pageObj
wxPropertyGridPage instance. Manager will take ownership of this object.
NULL indicates that a default page instance should be created.
@return
Returns pointer to created page.
@remarks
If toolbar is used, it is highly recommended that the pages are
added when the toolbar is not turned off using window style flag
switching.
*/
// Creates new property page. Note that the first page is not created
// automatically.
// label - A label for the page. This may be shown as a toolbar tooltip etc.
// bmp - Bitmap image for toolbar. If wxNullBitmap is used, then a built-in
// default image is used.
// pageObj - wxPropertyGridPage instance. Manager will take ownership of this object.
// NULL indicates that a default page instance should be created.
// Returns pointer to created page.
// If toolbar is used, it is highly recommended that the pages are
// added when the toolbar is not turned off using window style flag
// switching.
wxPropertyGridPage* AddPage( const wxString& label = wxEmptyString,
const wxBitmap& bmp = wxNullBitmap,
wxPropertyGridPage* pageObj = NULL )
@@ -272,41 +213,32 @@ public:
return InsertPage(-1, label, bmp, pageObj);
}
/** Deletes all all properties and all pages.
*/
// Deletes all all properties and all pages.
virtual void Clear() wxOVERRIDE;
/** Deletes all properties on given page.
*/
// Deletes all properties on given page.
void ClearPage( int page );
/** Forces updating the value of property from the editor control.
Returns true if DoPropertyChanged was actually called.
*/
// Forces updating the value of property from the editor control.
// Returns true if DoPropertyChanged was actually called.
bool CommitChangesFromEditor( wxUint32 flags = 0 )
{
return m_pPropGrid->CommitChangesFromEditor(flags);
}
/**
Two step creation.
Whenever the control is created without any parameters, use Create to
actually create it. Don't access the control's public methods before
this is called.
@see @link wndflags Additional Window Styles@endlink
*/
// Two step creation.
// Whenever the control is created without any parameters, use Create to
// actually create it. Don't access the control's public methods before
// this is called.
bool Create( wxWindow *parent, wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxPGMAN_DEFAULT_STYLE,
const wxString& name = wxPropertyGridManagerNameStr );
/**
Enables or disables (shows/hides) categories according to parameter
enable.
WARNING: Not tested properly, use at your own risk.
*/
// Enables or disables (shows/hides) categories according to parameter
// enable.
// Calling this may not properly update toolbar buttons.
bool EnableCategories( bool enable )
{
long fl = m_windowStyle | wxPG_HIDE_CATEGORIES;
@@ -315,22 +247,20 @@ public:
return true;
}
/** Selects page, scrolls and/or expands items to ensure that the
given item is visible. Returns true if something was actually done.
*/
// Selects page, scrolls and/or expands items to ensure that the
// given item is visible. Returns true if something was actually done.
bool EnsureVisible( wxPGPropArg id );
/** Returns number of columns on given page. By the default,
returns number of columns on current page. */
// Returns number of columns on given page. By the default,
// returns number of columns on current page.
int GetColumnCount( int page = -1 ) const;
/** Returns height of the description text box. */
// Returns height of the description text box.
int GetDescBoxHeight() const;
/** Returns pointer to the contained wxPropertyGrid. This does not change
after wxPropertyGridManager has been created, so you can safely obtain
pointer once and use it for the entire lifetime of the instance.
*/
// Returns pointer to the contained wxPropertyGrid. This does not change
// after wxPropertyGridManager has been created, so you can safely obtain
// pointer once and use it for the entire lifetime of the manager instance.
wxPropertyGrid* GetGrid()
{
wxASSERT(m_pPropGrid);
@@ -343,12 +273,10 @@ public:
return (const wxPropertyGrid*)m_pPropGrid;
}
/** Returns iterator class instance.
@remarks
Calling this method in wxPropertyGridManager causes run-time assertion
failure. Please only iterate through individual pages or use
CreateVIterator().
*/
// Returns iterator class instance.
// Calling this method in wxPropertyGridManager causes run-time assertion
// failure. Please only iterate through individual pages or use
// CreateVIterator().
wxPropertyGridIterator GetIterator( int flags = wxPG_ITERATE_DEFAULT,
wxPGProperty* firstProp = NULL )
{
@@ -366,12 +294,10 @@ public:
return wxPropertyGridInterface::GetIterator( flags, firstProp );
}
/** Returns iterator class instance.
@remarks
Calling this method in wxPropertyGridManager causes run-time assertion
failure. Please only iterate through individual pages or use
CreateVIterator().
*/
// Returns iterator class instance.
// Calling this method in wxPropertyGridManager causes run-time assertion
// failure. Please only iterate through individual pages or use
// CreateVIterator().
wxPropertyGridIterator GetIterator( int flags, int startPos )
{
wxFAIL_MSG( wxS("Please only iterate through individual pages ")
@@ -387,139 +313,110 @@ public:
return wxPropertyGridInterface::GetIterator( flags, startPos );
}
/** Similar to GetIterator, but instead returns wxPGVIterator instance,
which can be useful for forward-iterating through arbitrary property
containers.
*/
// Similar to GetIterator, but instead returns wxPGVIterator instance,
// which can be useful for forward-iterating through arbitrary property
// containers.
virtual wxPGVIterator GetVIterator( int flags ) const wxOVERRIDE;
/** Returns currently selected page.
*/
// Returns currently selected page.
wxPropertyGridPage* GetCurrentPage() const
{
return GetPage(m_selPage);
}
/** Returns page object for given page index.
*/
// Returns page object for given page index.
wxPropertyGridPage* GetPage( unsigned int ind ) const
{
return m_arrPages[ind];
}
/** Returns page object for given page name.
*/
// Returns page object for given page name.
wxPropertyGridPage* GetPage( const wxString& name ) const
{
return GetPage(GetPageByName(name));
}
/**
Returns index for a page name.
If no match is found, wxNOT_FOUND is returned.
*/
// Returns index for a page name.
// If no match is found, wxNOT_FOUND is returned.
int GetPageByName( const wxString& name ) const;
/** Returns index for a relevant propertygrid state.
If no match is found, wxNOT_FOUND is returned.
*/
// Returns index for a relevant propertygrid state.
// If no match is found, wxNOT_FOUND is returned.
int GetPageByState( const wxPropertyGridPageState* pstate ) const;
protected:
/** Returns wxPropertyGridPageState of given page, current page's for -1.
*/
// Returns wxPropertyGridPageState of given page, current page's for -1.
virtual wxPropertyGridPageState* GetPageState( int page ) const wxOVERRIDE;
public:
/** Returns number of managed pages. */
// Returns number of managed pages.
size_t GetPageCount() const;
/** Returns name of given page. */
// Returns name of given page.
const wxString& GetPageName( int index ) const;
/** Returns "root property" of the given page. It does not have name, etc.
and it is not visible. It is only useful for accessing its children.
*/
// Returns "root property" of the given page. It does not have name, etc.
// and it is not visible. It is only useful for accessing its children.
wxPGProperty* GetPageRoot( int index ) const;
/** Returns index to currently selected page. */
// Returns index to currently selected page.
int GetSelectedPage() const { return m_selPage; }
/** Alias for GetSelection(). */
// Alias for GetSelection().
wxPGProperty* GetSelectedProperty() const
{
return GetSelection();
}
/** Shortcut for GetGrid()->GetSelection(). */
// Shortcut for GetGrid()->GetSelection().
wxPGProperty* GetSelection() const
{
return m_pPropGrid->GetSelection();
}
#if wxUSE_TOOLBAR
/** Returns a pointer to the toolbar currently associated with the
wxPropertyGridManager (if any). */
// Returns a pointer to the toolbar currently associated with the
// wxPropertyGridManager (if any).
wxToolBar* GetToolBar() const { return m_pToolbar; }
#endif // wxUSE_TOOLBAR
/** Creates new property page. Note that the first page is not created
automatically.
@param index
Add to this position. -1 will add as the last item.
@param label
A label for the page. This may be shown as a toolbar tooltip etc.
@param bmp
Bitmap image for toolbar. If wxNullBitmap is used, then a built-in
default image is used.
@param pageObj
wxPropertyGridPage instance. Manager will take ownership of this object.
If NULL, default page object is constructed.
@return
Returns pointer to created page.
*/
// Creates new property page. Note that the first page is not created
// automatically.
// index - Add to this position. -1 will add as the last item.
// label - A label for the page. This may be shown as a toolbar tooltip etc.
// bmp - Bitmap image for toolbar. If wxNullBitmap is used, then a built-in
// default image is used.
// pageObj - wxPropertyGridPage instance. Manager will take ownership of this object.
// If NULL, default page object is constructed.
// Returns pointer to created page.
virtual wxPropertyGridPage* InsertPage( int index,
const wxString& label,
const wxBitmap& bmp = wxNullBitmap,
wxPropertyGridPage* pageObj = NULL );
/**
Returns true if any property on any page has been modified by the user.
*/
// Returns true if any property on any page has been modified by the user.
bool IsAnyModified() const;
/**
Returns true if any property on given page has been modified by the
user.
*/
// Returns true if any property on given page has been modified by the
// user.
bool IsPageModified( size_t index ) const;
/**
Returns true if property is selected. Since selection is page
based, this function checks every page in the manager.
*/
// Returns true if property is selected. Since selection is page
// based, this function checks every page in the manager.
virtual bool IsPropertySelected( wxPGPropArg id ) const;
virtual void Refresh( bool eraseBackground = true,
const wxRect* rect = (const wxRect*) NULL ) wxOVERRIDE;
/** Removes a page.
@return
Returns false if it was not possible to remove page in question.
*/
// Removes a page.
// Returns false if it was not possible to remove page in question.
virtual bool RemovePage( int page );
/** Select and displays a given page.
@param index
Index of page being selected. Can be -1 to select nothing.
*/
// Select and displays a given page.
// index - Index of page being selected. Can be -1 to select nothing.
void SelectPage( int index );
/** Select and displays a given page (by label). */
// Select and displays a given page (by label).
void SelectPage( const wxString& label )
{
int index = GetPageByName(label);
@@ -527,13 +424,13 @@ public:
SelectPage( index );
}
/** Select and displays a given page. */
// Select and displays a given page.
void SelectPage( wxPropertyGridPage* ptr )
{
SelectPage( GetPageByState(ptr) );
}
/** Select a property. */
// Select a property.
bool SelectProperty( wxPGPropArg id, bool focus = false )
{
wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false)
@@ -545,78 +442,57 @@ public:
}
#if wxUSE_HEADERCTRL
/**
Sets a column title. Default title for column 0 is "Property",
and "Value" for column 1.
@remarks If header is not shown yet, then calling this
member function will make it visible.
*/
// Sets a column title. Default title for column 0 is "Property",
// and "Value" for column 1.
// If header is not shown yet, then calling this
// member function will make it visible.
void SetColumnTitle( int idx, const wxString& title );
#endif // wxUSE_HEADERCTRL
/**
Sets number of columns on given page (default is current page).
@remarks If you use header, then you should always use this
member function to set the column count, instead of
ones present in wxPropertyGrid or wxPropertyGridPage.
*/
// Sets number of columns on given page (default is current page).
// If you use header, then you should always use this
// member function to set the column count, instead of
// ones present in wxPropertyGrid or wxPropertyGridPage.
void SetColumnCount( int colCount, int page = -1 );
/** Sets label and text in description box.
*/
// Sets label and text in description box.
void SetDescription( const wxString& label, const wxString& content );
/** Sets y coordinate of the description box splitter. */
// Sets y coordinate of the description box splitter.
void SetDescBoxHeight( int ht, bool refresh = true );
/** Moves splitter as left as possible, while still allowing all
labels to be shown in full.
@param subProps
If false, will still allow sub-properties (ie. properties which
parent is not root or category) to be cropped.
@param allPages
If true, takes labels on all pages into account.
*/
// Moves splitter as left as possible, while still allowing all
// labels to be shown in full.
// subProps - If false, will still allow sub-properties (ie. properties which
// parent is not root or category) to be cropped.
// allPages - If true, takes labels on all pages into account.
void SetSplitterLeft( bool subProps = false, bool allPages = true );
/** Moves splitter as left as possible on an individual page, while still allowing all
labels to be shown in full.
*/
// Moves splitter as left as possible on an individual page, while still allowing all
// labels to be shown in full.
void SetPageSplitterLeft(int page, bool subProps = false);
/**
Sets splitter position on individual page.
@remarks If you use header, then you should always use this
member function to set the splitter position, instead of
ones present in wxPropertyGrid or wxPropertyGridPage.
*/
// Sets splitter position on individual page.
// If you use header, then you should always use this
// member function to set the splitter position, instead of
// ones present in wxPropertyGrid or wxPropertyGridPage.
void SetPageSplitterPosition( int page, int pos, int column = 0 );
/**
Sets splitter position for all pages.
@remarks Splitter position cannot exceed grid size, and therefore
setting it during form creation may fail as initial grid
size is often smaller than desired splitter position,
especially when sizers are being used.
If you use header, then you should always use this
member function to set the splitter position, instead of
ones present in wxPropertyGrid or wxPropertyGridPage.
*/
// Sets splitter position for all pages.
// Splitter position cannot exceed grid size, and therefore
// setting it during form creation may fail as initial grid
// size is often smaller than desired splitter position,
// especially when sizers are being used.
// If you use header, then you should always use this
// member function to set the splitter position, instead of
// ones present in wxPropertyGrid or wxPropertyGridPage.
void SetSplitterPosition( int pos, int column = 0 );
#if wxUSE_HEADERCTRL
/**
Show or hide the property grid header control. It is hidden
by the default.
@remarks Grid may look better if you use wxPG_NO_INTERNAL_BORDER
window style when showing a header.
*/
// Show or hide the property grid header control. It is hidden
// by the default.
// Grid may look better if you use wxPG_NO_INTERNAL_BORDER
// window style when showing a header.
void ShowHeader(bool show = true);
#endif
@@ -626,13 +502,11 @@ protected:
// Subclassing helpers
//
/**
Creates property grid for the manager. Reimplement in derived class to
use subclassed wxPropertyGrid. However, if you do this then you
must also use the two-step construction (i.e. default constructor and
Create() instead of constructor with arguments) when creating the
manager.
*/
// Creates property grid for the manager. Reimplement in derived class to
// use subclassed wxPropertyGrid. However, if you do this then you
// must also use the two-step construction (i.e. default constructor and
// Create() instead of constructor with arguments) when creating the
// manager.
virtual wxPropertyGrid* CreatePropertyGrid() const;
public:
@@ -722,7 +596,7 @@ protected:
virtual wxPGProperty* DoGetPropertyByName( const wxString& name ) const wxOVERRIDE;
/** Select and displays a given page. */
// Select and displays a given page.
virtual bool DoSelectPage( int index ) wxOVERRIDE;
// Sets some members to defaults.
@@ -737,12 +611,11 @@ protected:
virtual bool ProcessEvent( wxEvent& event ) wxOVERRIDE;
/** Recalculates new positions for components, according to the
given size.
*/
// Recalculates new positions for components, according to the
// given size.
void RecalculatePositions( int width, int height );
/** (Re)creates/destroys controls, according to the window style bits. */
// (Re)creates/destroys controls, according to the window style bits.
void RecreateControls();
void UpdateDescriptionBox( int new_splittery, int new_width, int new_height );

View File

@@ -353,10 +353,7 @@ protected:
// -----------------------------------------------------------------------
/** @section propgrid_vfbflags wxPropertyGrid Validation Failure behaviour Flags
@{
*/
// wxPropertyGrid Validation Failure behaviour Flags
enum wxPG_VALIDATION_FAILURE_BEHAVIOR_FLAGS
{
@@ -1637,7 +1634,7 @@ protected:
#if WXWIN_COMPATIBILITY_3_0
// Unused variable.
/** When drawing next time, clear this many item slots at the end. */
// When drawing next time, clear this many item slots at the end.
int m_clearThisMany;
#endif
@@ -2101,7 +2098,7 @@ public:
return m_property->GetMainParent();
}
/** Returns id of associated property. */
// Returns property associated with this event.
wxPGProperty* GetProperty() const
{
return m_property;

View File

@@ -224,11 +224,7 @@ class wxPGValidationInfo;
// -----------------------------------------------------------------------
/** @section propgrid_misc wxPropertyGrid Miscellaneous
This section describes some miscellaneous values, types and macros.
@{
*/
// Some miscellaneous values, types and macros.
// Used to tell wxPGProperty to use label as name as well
#define wxPG_LABEL (*wxPGProperty::sm_wxPG_LABEL)
@@ -240,14 +236,12 @@ class wxPGValidationInfo;
#endif // WXWIN_COMPATIBILITY_3_0
#define wxPG_COLOUR_BLACK (*wxBLACK)
/** Convert Red, Green and Blue to a single 32-bit value.
*/
// Convert Red, Green and Blue to a single 32-bit value.
#define wxPG_COLOUR(R,G,B) ((wxUint32)(R+(G<<8)+(B<<16)))
/** If property is supposed to have custom-painted image, then returning
this in OnMeasureImage() will usually be enough.
*/
// If property is supposed to have custom-painted image, then returning
// this in OnMeasureImage() will usually be enough.
#define wxPG_DEFAULT_IMAGE_SIZE wxDefaultSize
@@ -271,9 +265,6 @@ typedef int (*wxPGSortCallback)(wxPropertyGrid* propGrid,
typedef wxString wxPGCachedString;
#endif
/** @}
*/
// -----------------------------------------------------------------------
// Used to indicate wxPGChoices::Add etc. that the value is actually not given

View File

@@ -61,11 +61,8 @@ WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN(NAME, T, EDITOR)
// -----------------------------------------------------------------------
/** @class wxPGInDialogValidator
@ingroup classes
Creates and manages a temporary wxTextCtrl for validation purposes.
Uses wxPropertyGrid's current editor, if available.
*/
// Creates and manages a temporary wxTextCtrl for validation purposes.
// Uses wxPropertyGrid's current editor, if available.
class WXDLLIMPEXP_PROPGRID wxPGInDialogValidator
{
public:
@@ -95,17 +92,9 @@ private:
#define wxPG_PROP_PASSWORD wxPG_PROP_CLASS_SPECIFIC_2
/** @class wxStringProperty
@ingroup classes
Basic property with string value.
<b>Supported special attributes:</b>
- "Password": set to 1 in order to enable wxTE_PASSWORD on the editor.
@remarks
- If value "<composed>" is set, then actual value is formed (or composed)
from values of child properties.
*/
// Basic property with string value.
// If value "<composed>" is set, then actual value is formed (or composed)
// from values of child properties.
class WXDLLIMPEXP_PROPGRID wxStringProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxStringProperty)
@@ -122,8 +111,7 @@ public:
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE;
/** This is updated so "<composed>" special value can be handled.
*/
// This is updated so "<composed>" special value can be handled.
virtual void OnSetValue() wxOVERRIDE;
protected:
@@ -131,20 +119,16 @@ protected:
// -----------------------------------------------------------------------
/** Constants used with NumericValidation<>().
*/
// Constants used with NumericValidation<>().
enum wxPGNumericValidationConstants
{
/** Instead of modifying the value, show an error message.
*/
// Instead of modifying the value, show an error message.
wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE = 0,
/** Modify value, but stick with the limitations.
*/
// Modify value, but stick with the limitations.
wxPG_PROPERTY_VALIDATION_SATURATE = 1,
/** Modify value, wrap around on overflow.
*/
// Modify value, wrap around on overflow.
wxPG_PROPERTY_VALIDATION_WRAP = 2
};
@@ -152,9 +136,7 @@ enum wxPGNumericValidationConstants
#if wxUSE_VALIDATORS
/**
A more comprehensive numeric validator class.
*/
// A more comprehensive numeric validator class.
class WXDLLIMPEXP_PROPGRID wxNumericPropertyValidator : public wxTextValidator
{
public:
@@ -173,47 +155,8 @@ public:
#endif // wxUSE_VALIDATORS
/** @class wxIntProperty
@ingroup classes
Basic property with integer value.
Seamlessly supports 64-bit integer (wxLongLong) on overflow.
<b>Example how to use seamless 64-bit integer support</b>
Getting value:
@code
wxLongLong_t value = pg->GetPropertyValueAsLongLong();
@endcode
or
@code
wxLongLong value;
wxVariant variant = property->GetValue();
if ( variant.IsType("longlong") )
value = variant.GetLongLong();
else
value = variant.GetLong();
@endcode
Setting value:
@code
pg->SetPropertyValue(longLongVal);
@endcode
or
@code
property->SetValue(WXVARIANT(longLongVal));
@endcode
<b>Supported special attributes:</b>
- "Min", "Max": Specify acceptable value range.
*/
// Basic property with integer value.
// Seamlessly supports 64-bit integer (wxLongLong) on overflow.
class WXDLLIMPEXP_PROPGRID wxIntProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxIntProperty)
@@ -240,8 +183,7 @@ public:
static wxValidator* GetClassValidator();
virtual wxValidator* DoGetValidator() const wxOVERRIDE;
/** Validation helpers.
*/
// Validation helpers.
#if wxUSE_LONGLONG
static bool DoValidation( const wxPGProperty* property,
wxLongLong& value,
@@ -268,24 +210,8 @@ protected:
// -----------------------------------------------------------------------
/** @class wxUIntProperty
@ingroup classes
Basic property with unsigned integer value.
Seamlessly supports 64-bit integer (wxULongLong) on overflow.
<b>Supported special attributes:</b>
- "Min", "Max": Specify acceptable value range.
- "Base": Define base. Valid constants are wxPG_BASE_OCT, wxPG_BASE_DEC,
wxPG_BASE_HEX and wxPG_BASE_HEXL (lowercase characters). Arbitrary bases
are <b>not</b> supported.
- "Prefix": Possible values are wxPG_PREFIX_NONE, wxPG_PREFIX_0x, and
wxPG_PREFIX_DOLLAR_SIGN. Only wxPG_PREFIX_NONE works with Decimal and Octal
numbers.
@remarks
- For example how to use seamless 64-bit integer support, see wxIntProperty
documentation (just use wxULongLong instead of wxLongLong).
*/
// Basic property with unsigned integer value.
// Seamlessly supports 64-bit integer (wxULongLong) on overflow.
class WXDLLIMPEXP_PROPGRID wxUIntProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxUIntProperty)
@@ -339,14 +265,7 @@ private:
// -----------------------------------------------------------------------
/** @class wxFloatProperty
@ingroup classes
Basic property with double-precision floating point value.
<b>Supported special attributes:</b>
- "Precision": Sets the (max) precision used when floating point value is
rendered as text. The default -1 means infinite precision.
*/
// Basic property with double-precision floating point value.
class WXDLLIMPEXP_PROPGRID wxFloatProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxFloatProperty)
@@ -366,8 +285,7 @@ public:
virtual bool ValidateValue( wxVariant& value,
wxPGValidationInfo& validationInfo ) const wxOVERRIDE;
/** Validation helper.
*/
// Validation helper.
static bool DoValidation( const wxPGProperty* property,
double& value,
wxPGValidationInfo* pValidationInfo,
@@ -382,14 +300,7 @@ protected:
// -----------------------------------------------------------------------
/** @class wxBoolProperty
@ingroup classes
Basic property with boolean value.
<b>Supported special attributes:</b>
- "UseCheckbox": Set to 1 to use check box editor instead of combo box.
- "UseDClickCycling": Set to 1 to cycle combo box instead showing the list.
*/
// Basic property with boolean value.
class WXDLLIMPEXP_PROPGRID wxBoolProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxBoolProperty)
@@ -415,17 +326,12 @@ public:
// changed (i.e. returns NULL in GetPropertyChoices).
#define wxPG_PROP_STATIC_CHOICES wxPG_PROP_CLASS_SPECIFIC_1
/** @class wxEnumProperty
@ingroup classes
You can derive custom properties with choices from this class. See
wxBaseEnumProperty for remarks.
@remarks
- Updating private index is important. You can do this either by calling
SetIndex() in IntToValue, and then letting wxBaseEnumProperty::OnSetValue
be called (by not implementing it, or by calling super class function in
it) -OR- you can just call SetIndex in OnSetValue.
*/
// Represents a single selection from a list of choices
// You can derive custom properties with choices from this class.
// Updating private index is important. You can do this either by calling
// SetIndex() in IntToValue, and then letting wxBaseEnumProperty::OnSetValue
// be called (by not implementing it, or by calling super class function in
// it) -OR- you can just call SetIndex in OnSetValue.
class WXDLLIMPEXP_PROPGRID wxEnumProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxEnumProperty)
@@ -531,14 +437,9 @@ private:
// -----------------------------------------------------------------------
/** @class wxEditEnumProperty
@ingroup classes
wxEnumProperty with wxString value and writable combo box editor.
@remarks
Uses int value, similar to wxEnumProperty, unless text entered by user is
is not in choices (in which case string value is used).
*/
// wxEnumProperty with wxString value and writable combo box editor.
// Uses int value, similar to wxEnumProperty, unless text entered by user is
// is not in choices (in which case string value is used).
class WXDLLIMPEXP_PROPGRID wxEditEnumProperty : public wxEnumProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxEditEnumProperty)
@@ -581,16 +482,13 @@ protected:
// -----------------------------------------------------------------------
/** @class wxFlagsProperty
@ingroup classes
Represents a bit set that fits in a long integer. wxBoolProperty
sub-properties are created for editing individual bits. Textctrl is created
to manually edit the flags as a text; a continuous sequence of spaces,
commas and semicolons is considered as a flag id separator.
<b>Note:</b> When changing "choices" (ie. flag labels) of wxFlagsProperty,
you will need to use SetPropertyChoices - otherwise they will not get
updated properly.
*/
// Represents a bit set that fits in a long integer. wxBoolProperty
// sub-properties are created for editing individual bits. Textctrl is created
// to manually edit the flags as a text; a continuous sequence of spaces,
// commas and semicolons is considered as a flag id separator.
// Note: When changing "choices" (ie. flag labels) of wxFlagsProperty,
// you will need to use SetPropertyChoices - otherwise they will not get
// updated properly.
class WXDLLIMPEXP_PROPGRID wxFlagsProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxFlagsProperty)
@@ -650,9 +548,6 @@ protected:
// -----------------------------------------------------------------------
/** @class wxPGFileDialogAdapter
@ingroup classes
*/
class WXDLLIMPEXP_PROPGRID
wxPGFileDialogAdapter : public wxPGEditorDialogAdapter
{
@@ -666,20 +561,7 @@ public:
// Indicates first bit useable by derived properties.
#define wxPG_PROP_SHOW_FULL_FILENAME wxPG_PROP_CLASS_SPECIFIC_1
/** @class wxFileProperty
@ingroup classes
Like wxLongStringProperty, but the button triggers file selector instead.
<b>Supported special attributes:</b>
- "Wildcard": Sets wildcard (see wxFileDialog for format details), "All
files..." is default.
- "ShowFullPath": Default 1. When 0, only the file name is shown (i.e. drive
and directory are hidden).
- "ShowRelativePath": If set, then the filename is shown relative to the
given path string.
- "InitialPath": Sets the initial path of where to look for files.
- "DialogTitle": Sets a specific title for the dir dialog.
*/
// Like wxLongStringProperty, but the button triggers file selector instead.
class WXDLLIMPEXP_PROPGRID wxFileProperty : public wxPGProperty
{
friend class wxPGFileDialogAdapter;
@@ -702,9 +584,7 @@ public:
static wxValidator* GetClassValidator();
virtual wxValidator* DoGetValidator() const wxOVERRIDE;
/**
Returns filename to file represented by current value.
*/
// Returns filename to file represented by current value.
wxFileName GetFileName() const;
protected:
@@ -723,9 +603,6 @@ protected:
#define wxPG_PROP_ACTIVE_BTN wxPG_PROP_CLASS_SPECIFIC_3
/** @class wxPGLongStringDialogAdapter
@ingroup classes
*/
class WXDLLIMPEXP_PROPGRID
wxPGLongStringDialogAdapter : public wxPGEditorDialogAdapter
{
@@ -735,11 +612,8 @@ public:
};
/** @class wxLongStringProperty
@ingroup classes
Like wxStringProperty, but has a button that triggers a small text
editor dialog.
*/
// Like wxStringProperty, but has a button that triggers a small text
// editor dialog.
class WXDLLIMPEXP_PROPGRID wxLongStringProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxLongStringProperty)
@@ -772,13 +646,7 @@ protected:
// -----------------------------------------------------------------------
/** @class wxDirProperty
@ingroup classes
Like wxLongStringProperty, but the button triggers dir selector instead.
<b>Supported special attributes:</b>
- "DialogMessage": Sets specific message in the dir selector.
*/
// Like wxLongStringProperty, but the button triggers dir selector instead.
class WXDLLIMPEXP_PROPGRID wxDirProperty : public wxLongStringProperty
{
wxDECLARE_DYNAMIC_CLASS(wxDirProperty);
@@ -807,10 +675,7 @@ protected:
// -----------------------------------------------------------------------
/** @class wxArrayStringProperty
@ingroup classes
Property that manages a list of strings.
*/
// Property that manages a list of strings.
class WXDLLIMPEXP_PROPGRID wxArrayStringProperty : public wxPGProperty
{
WX_PG_DECLARE_PROPERTY_CLASS(wxArrayStringProperty)
@@ -853,10 +718,8 @@ public:
QuoteStrings = 0x02
};
/**
Generates contents for string dst based on the contents of
wxArrayString src.
*/
// Generates contents for string dst based on the contents of
// wxArrayString src.
static void ArrayStringToString( wxString& dst, const wxArrayString& src,
wxUniChar delimiter, int flags );
@@ -966,29 +829,24 @@ public:
m_hasCustomNewAction = true;
}
/** Set value modified by dialog.
*/
// Set value modified by dialog.
virtual void SetDialogValue( const wxVariant& WXUNUSED(value) )
{
wxFAIL_MSG(wxS("re-implement this member function in derived class"));
}
/** Return value modified by dialog.
*/
// Return value modified by dialog.
virtual wxVariant GetDialogValue() const
{
wxFAIL_MSG(wxS("re-implement this member function in derived class"));
return wxVariant();
}
/** Override to return wxValidator to be used with the wxTextCtrl
in dialog. Note that the validator is used in the standard
wx way, i.e. it immediately prevents user from entering invalid
input.
@remarks
Dialog frees the validator.
*/
// Override to return wxValidator to be used with the wxTextCtrl
// in dialog. Note that the validator is used in the standard
// wx way, i.e. it immediately prevents user from entering invalid
// input.
// Note: Dialog frees the validator.
virtual wxValidator* GetTextCtrlValidator() const
{
return NULL;

View File

@@ -116,14 +116,17 @@ public:
Default implementation sets foreground colour, background colour,
font, plus text for wxTextCtrl and wxComboCtrl.
The parameter @a appearance represents the new appearance to be applied.
@param appearance
New appearance to be applied.
The parameter @a oldAppearance is the previously applied appearance.
Used to detect which control attributes need to be changed (e.g. so we only
change background colour if really needed).
@param oldAppearance
Previously applied appearance. Used to detect which control
attributes need to be changed (e.g. so we onlychange background
colour if really needed).
Finally, the parameter @a unspecified if @true tells this function that
the new appearance represents an unspecified property value.
@param unspecified
If @true tells this function that the new appearance represents
an unspecified property value.
*/
virtual void SetControlAppearance( wxPropertyGrid* pg,
wxPGProperty* property,
@@ -333,3 +336,35 @@ public:
wxSize GetPrimarySize() const;
};
/** @class wxPGEditorDialogAdapter
Derive a class from this to adapt an existing editor dialog or function to
be used when editor button of a property is pushed.
You only need to derive class and implement DoShowDialog() to create and
show the dialog, and finally submit the value returned by the dialog
via SetValue().
@library{wxpropgrid}
@category{propgrid}
*/
class wxPGEditorDialogAdapter : public wxObject
{
public:
wxPGEditorDialogAdapter();
virtual ~wxPGEditorDialogAdapter();
bool ShowDialog( wxPropertyGrid* propGrid, wxPGProperty* property );
virtual bool DoShowDialog( wxPropertyGrid* propGrid,
wxPGProperty* property ) = 0;
void SetValue( wxVariant value );
/**
This method is typically only used if deriving class from existing
adapter with value conversion purposes.
*/
wxVariant& GetValue();
};

View File

@@ -80,6 +80,16 @@ public:
*/
int GetSplitterPosition( int col = 0 ) const;
/**
Returns pointer to contained property grid state.
*/
wxPropertyGridPageState* GetStatePtr();
/**
Returns pointer to contained property grid state.
*/
const wxPropertyGridPageState* GetStatePtr() const;
/**
Returns id of the tool bar item that represents this page on
wxPropertyGridManager's wxToolBar.
@@ -95,7 +105,7 @@ public:
virtual void Init();
/**
Return false here to indicate unhandled events should be
Return @false here to indicate unhandled events should be
propagated to manager's parent, as normal.
*/
virtual bool IsHandlingAllEvents() const;
@@ -200,6 +210,21 @@ public:
class wxPropertyGridManager : public wxPanel, public wxPropertyGridInterface
{
public:
/**
The default constructor. The styles to be used are styles valid for
the wxWindow.
*/
wxPropertyGridManager( wxWindow *parent, wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxPGMAN_DEFAULT_STYLE,
const wxString& name = wxPropertyGridManagerNameStr );
/**
Destructor.
*/
virtual ~wxPropertyGridManager();
/**
Creates new property page. Note that the first page is not created
automatically.
@@ -259,7 +284,7 @@ public:
Enables or disables (shows/hides) categories according to parameter enable.
@remarks
Calling his may not properly update toolbar buttons.
Calling this may not properly update toolbar buttons.
*/
bool EnableCategories( bool enable );
@@ -291,7 +316,7 @@ public:
wxPropertyGrid* GetGrid();
/**
Similar to GetIterator, but instead returns wxPGVIterator instance,
Similar to GetIterator(), but instead returns wxPGVIterator instance,
which can be useful for forward-iterating through arbitrary property
containers.
*/
@@ -318,6 +343,12 @@ public:
*/
int GetPageByName( const wxString& name ) const;
/**
Returns index for a relevant propertygrid state.
If no match is found, wxNOT_FOUND is returned.
*/
int GetPageByState( const wxPropertyGridPageState* pstate ) const;
/**
Returns number of managed pages.
*/
@@ -365,7 +396,7 @@ public:
@param pageObj
wxPropertyGridPage instance. Manager will take ownership of this
object. If NULL, default page object is constructed.
object. If @NULL, default page object is constructed.
@return Returns pointer to created page.
*/

View File

@@ -427,11 +427,15 @@ wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000
@subsection wxStringProperty
Simple string property. wxPG_STRING_PASSWORD attribute may be used
to echo value as asterisks and use wxTE_PASSWORD for wxTextCtrl.
wxPG_ATTR_AUTOCOMPLETE attribute may be used to enable auto-completion
Simple string property.
Supported special attributes:
- wxPG_STRING_PASSWORD: Set to @true in order to echo value as asterisks and
to use wxTE_PASSWORD on the editor (wxTextCtrl).
- wxPG_ATTR_AUTOCOMPLETE: Set to @true to enable auto-completion
(use a wxArrayString value), and is also supported by any property that
happens to use a wxTextCtrl-based editor.
@see propgrid_property_attributes
@remarks wxStringProperty has a special trait: if it has value of
"<composed>", and also has child properties, then its displayed
@@ -441,9 +445,8 @@ wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000
@subsection wxIntProperty
Like wxStringProperty, but converts text to a signed long integer.
wxIntProperty seamlessly supports 64-bit integers (ie. wxLongLong).
wxIntProperty seamlessly supports 64-bit integers (i.e. wxLongLong) on overlfow.
To safely convert variant to integer, use code like this:
@code
wxLongLong ll;
ll << property->GetValue();
@@ -452,15 +455,55 @@ wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000
wxLongLong ll = propertyGrid->GetPropertyValueAsLong(property);
@endcode
Getting 64-bit value:
@code
wxLongLong_t value = pg->GetPropertyValueAsLongLong();
// or
wxLongLong value;
wxVariant variant = property->GetValue();
if ( variant.IsType(wxPG_VARIANT_TYPE_LONGLONG) )
value = variant.GetLongLong();
else
value = variant.GetLong();
@endcode
Setting 64-bit value:
@code
pg->SetPropertyValue(longLongVal);
// or
property->SetValue(WXVARIANT(longLongVal));
@endcode
Supported special attributes:
- wxPG_ATTR_MIN, wxPG_ATTR_MAX to specify acceptable value range.
@subsection wxUIntProperty
Like wxIntProperty, but displays value as unsigned int. To set
the prefix used globally, manipulate wxPG_UINT_PREFIX string attribute.
To set the globally used base, manipulate wxPG_UINT_BASE int
attribute. Regardless of current prefix, understands (hex) values starting
with both "0x" and "$".
with both "0x" and "$" (apart from edit mode).
Like wxIntProperty, wxUIntProperty seamlessly supports 64-bit unsigned
integers (ie. wxULongLong). Same wxVariant safety rules apply.
integers (i.e. wxULongLong). Same wxVariant safety rules apply.
Supported special attributes:
- wxPG_ATTR_MIN, wxPG_ATTR_MAX: Specifies acceptable value range.
- wxPG_UINT_BASE: Defines base. Valid constants are wxPG_BASE_OCT,
wxPG_BASE_DEC, wxPG_BASE_HEX and wxPG_BASE_HEXL (lowercase characters).
Arbitrary bases are <b>not</b> supported.
- wxPG_UINT_PREFIX: Defines displayed prefix. Possible values are
wxPG_PREFIX_NONE, wxPG_PREFIX_0x and wxPG_PREFIX_DOLLAR_SIGN.
Only wxPG_PREFIX_NONE works with decimal and octal numbers.
@see propgrid_property_attributes
@remarks
For example how to use seamless 64-bit integer support, see wxIntProperty
documentation (just use wxULongLong instead of wxLongLong).
@subsection wxFloatProperty
@@ -474,12 +517,27 @@ wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000
what C standard library does, but should result in better end-user
experience in almost all cases.
Supported special attributes:
- wxPG_ATTR_MIN, wxPG_ATTR_MAX: Specifies acceptable value range.
<b>Supported special attributes:</b>
- wxPG_FLOAT_PRECISION: Sets the (max) precision used when floating point
value is rendered as text. The default -1 means shortest floating-point
6-digit representation.
@see propgrid_property_attributes
@subsection wxBoolProperty
Represents a boolean value. wxChoice is used as editor control, by the
default. wxPG_BOOL_USE_CHECKBOX attribute can be set to true in order to
default. wxPG_BOOL_USE_CHECKBOX attribute can be set to @true in order to
use check box instead.
Supported special attributes:
- wxPG_BOOL_USE_CHECKBOX: If set to @true uses check box editor instead
of combo box.
- wxPG_BOOL_USE_DOUBLE_CLICK_CYCLING: If set to @true cycles combo box
instead showing the list.
@see propgrid_property_attributes
@subsection wxLongStringProperty
Like wxStringProperty, but has a button that triggers a small text editor
@@ -520,15 +578,27 @@ wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000
@subsection wxDirProperty
Like wxLongStringProperty, but the button triggers dir selector instead.
Supported properties (all with string value): wxPG_DIR_DIALOG_MESSAGE.
Supported special attributes:
- wxPG_DIR_DIALOG_MESSAGE: Sets specific message in the dir selector.
@see propgrid_property_attributes
@subsection wxFileProperty
Like wxLongStringProperty, but the button triggers file selector instead.
Default wildcard is "All files..." but this can be changed by setting
wxPG_FILE_WILDCARD attribute (see wxFileDialog for format details).
Attribute wxPG_FILE_SHOW_FULL_PATH can be set to @false in order to show
only the filename, not the entire path.
wxPG_FILE_WILDCARD attribute.
Supported special attributes:
- wxPG_FILE_WILDCARD: Sets wildcard (see wxFileDialog for format details), "All
files..." is default.
- wxPG_FILE_SHOW_FULL_PATH: Default @true. When @false, only the file name is shown
(i.e. drive and directory are hidden).
- wxPG_FILE_SHOW_RELATIVE_PATH: If set, then the filename is shown relative to the
given path string.
- wxPG_FILE_INITIAL_PATH: Sets the initial path of where to look for files.
- wxPG_FILE_DIALOG_TITLE: Sets a specific title for the dir dialog.
@see propgrid_property_attributes
@subsection wxEnumProperty
@@ -550,33 +620,54 @@ wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000
@subsection wxArrayStringProperty
Allows editing of a list of strings in wxTextCtrl and in a separate
dialog. Supports "Delimiter" attribute, which defaults to comma (',').
Property that manages a list of strings. Allows editing of a list
of strings in wxTextCtrl and in a separate dialog.
Supported special attributes:
- wxPG_ARRAY_DELIMITER: Sets string delimiter character.
Default is comma (',').
@see propgrid_property_attributes
@subsection wxDateProperty
wxDateTime property. Default editor is DatePickerCtrl, although TextCtrl
should work as well. wxPG_DATE_FORMAT attribute can be used to change
string wxDateTime::Format uses (although default is recommended as it is
locale-dependent), and wxPG_DATE_PICKER_STYLE allows changing window
style given to DatePickerCtrl (default is wxDP_DEFAULT|wxDP_SHOWCENTURY).
Using wxDP_ALLOWNONE will enable better unspecified value support.
Property representing wxDateTime. Default editor is DatePickerCtrl,
although TextCtrl should work as well.
Supported special attributes:
- wxPG_DATE_FORMAT: Determines displayed date format (with wxDateTime::Format).
Default is recommended as it is locale-dependent.
- wxPG_DATE_PICKER_STYLE: Determines window style used with wxDatePickerCtrl.
Default is wxDP_DEFAULT | wxDP_SHOWCENTURY. Using wxDP_ALLOWNONE
enables additional support for unspecified property value.
@see propgrid_property_attributes
@subsection wxEditEnumProperty
Represents a string that can be freely edited or selected from list of choices -
custom combobox control is used to edit the value.
@remarks
Uses int value, similar to wxEnumProperty, unless text entered by user is
is not in choices (in which case string value is used).
@subsection wxMultiChoiceProperty
Allows editing a multiple selection from a list of strings. This is
property is pretty much built around concept of wxMultiChoiceDialog.
It uses wxArrayString value.
Supported special attributes:
- wxPG_ATTR_MULTICHOICE_USERSTRINGMODE: If > 0, allows user to manually
enter strings that are not in the list of choices. If this value is 1,
user strings are preferably placed in front of valid choices. If value
is 2, then those strings will placed behind valid choices.
@see propgrid_property_attributes
@subsection wxImageFileProperty
Like wxFileProperty, but has thumbnail of the image in front of
the filename and autogenerates wildcard from available image handlers.
Property representing image file(name). Like wxFileProperty,
but has thumbnail of the image in front of the filename
and autogenerates wildcard from available image handlers.
@subsection wxColourProperty
@@ -586,8 +677,10 @@ wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000
There are various sub-classing opportunities with this class. See
below in wxSystemColourProperty section for details.
Setting "HasAlpha" attribute to @true for this property allows user to
edit the alpha colour component.
Supported special attributes:
- wxPG_COLOUR_HAS_ALPHA: If set to @true allows user to edit the alpha
colour component.
@see propgrid_property_attributes
@subsection wxFontProperty
@@ -618,7 +711,7 @@ wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000
};
@endcode
in wxSystemColourProperty, and its derived class wxColourProperty, there
In wxSystemColourProperty, and its derived class wxColourProperty, there
are various sub-classing features. To set a basic list of colour
names, call wxPGProperty::SetChoices().
@@ -1488,19 +1581,19 @@ public:
wxPGProperty* GetItemAtY( unsigned int y ) const;
/**
Returns true if property has given flag set.
Returns @true if property has given flag set.
@see propgrid_propflags
*/
bool HasFlag(wxPGPropertyFlags flag) const;
/**
Returns true if property has given flag set.
Returns @true if property has given flag set.
*/
bool HasFlag(FlagType flag) const;
/**
Returns true if property has all given flags set.
Returns @true if property has all given flags set.
*/
bool HasFlagsExact(FlagType flags) const;

View File

@@ -71,6 +71,38 @@ wxPG_SORT_TOP_LEVEL_ONLY = 0x00000200
/** @}
*/
/** @section propgrid_misc_data wxPropertyGrid Miscellaneous
This section describes some miscellaneous values, types and macros.
@{
*/
/**
Used to tell wxPGProperty to use label as name as well.
*/
#define wxPG_LABEL (*wxPGProperty::sm_wxPG_LABEL)
/**
This is the value placed in wxPGProperty::sm_wxPG_LABEL
*/
#define wxPG_LABEL_STRING wxS("@!")
#define wxPG_COLOUR_BLACK (*wxBLACK)
/**
Convert Red, Green and Blue to a single 32-bit value.
*/
#define wxPG_COLOUR(R,G,B) ((wxUint32)(R+(G<<8)+(B<<16)))
/**
If property is supposed to have custom-painted image, then returning
this in OnMeasureImage() will usually be enough.
*/
#define wxPG_DEFAULT_IMAGE_SIZE wxDefaultSize
/** @}
*/
/**
@class wxPropertyGridInterface