Added wxPropertyGridManager header support; Refactored wxPropertyGrid DoSetSplitterPosition() code

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2009-12-13 12:00:04 +00:00
parent 9804064630
commit f525476870
10 changed files with 491 additions and 74 deletions

View File

@@ -192,8 +192,8 @@ wxPG_TOOLBAR = 0x00001000,
*/
wxPG_DESCRIPTION = 0x00002000,
/** wxPropertyGridManager only: don't show an internal border around
the property grid.
/** wxPropertyGridManager only: don't show an internal border around the
property grid. Recommended if you use a header.
*/
wxPG_NO_INTERNAL_BORDER = 0x00004000
};
@@ -511,6 +511,19 @@ enum wxPG_KEYBOARD_ACTIONS
// Don't make any graphics updates
#define wxPG_SEL_NO_REFRESH 0x0100
// -----------------------------------------------------------------------
// DoSetSplitterPosition() flags
enum wxPG_SET_SPLITTER_POSITION_SPLITTER_FLAGS
{
wxPG_SPLITTER_REFRESH = 0x0001,
wxPG_SPLITTER_ALL_PAGES = 0x0002,
wxPG_SPLITTER_FROM_EVENT = 0x0004,
wxPG_SPLITTER_FROM_AUTO_CENTER = 0x0008
};
// -----------------------------------------------------------------------
#ifndef SWIG
@@ -640,7 +653,9 @@ enum wxPG_KEYBOARD_ACTIONS
starts resizing a column - can be vetoed.
@event{EVT_PG_COL_DRAGGING,(id, func)}
Respond to wxEVT_PG_COL_DRAGGING, event, generated when a
column resize by user is in progress.
column resize by user is in progress. This event is also generated
when user double-clicks the splitter in order to recenter
it.
@event{EVT_PG_COL_END_DRAG(id, func)}
Respond to wxEVT_PG_COL_END_DRAG event, generated after column
resize by user has finished.
@@ -662,6 +677,7 @@ class WXDLLIMPEXP_PROPGRID
friend class wxPropertyGridPageState;
friend class wxPropertyGridInterface;
friend class wxPropertyGridManager;
friend class wxPGHeaderCtrl;
DECLARE_DYNAMIC_CLASS(wxPropertyGrid)
public:
@@ -894,6 +910,9 @@ public:
/** Returns background colour of margin. */
wxColour GetMarginColour() const { return m_colMargin; }
/** Returns margin width. */
int GetMarginWidth() const { return m_marginWidth; }
/**
Returns most up-to-date value of selected property. This will return
value different from GetSelectedProperty()->GetValue() only when text
@@ -1176,10 +1195,9 @@ public:
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 newxpos, int col = 0 )
void SetSplitterPosition( int newXPos, int col = 0 )
{
DoSetSplitterPosition_(newxpos, true, col);
m_pState->m_isSplitterPreSet = true;
DoSetSplitterPosition(newXPos, col, wxPG_SPLITTER_REFRESH);
}
/**
@@ -1994,6 +2012,10 @@ protected:
void DoSetSelection( const wxArrayPGProperty& newSelection,
int selFlags = 0 );
void DoSetSplitterPosition( int newxpos,
int splitterIndex = 0,
int flags = wxPG_SPLITTER_REFRESH );
bool DoAddToSelection( wxPGProperty* prop,
int selFlags = 0 );
@@ -2007,11 +2029,6 @@ protected:
wxPGProperty* DoGetItemAtY( int y ) const;
void DoSetSplitterPosition_( int newxpos,
bool refresh = true,
int splitterIndex = 0,
bool allPages = false );
void DestroyEditorWnd( wxWindow* wnd );
void FreeEditors();
@@ -2039,7 +2056,11 @@ protected:
void PrepareAfterItemsAdded();
// Omit the wxPG_SEL_NOVALIDATE flag to allow vetoing the event
/**
Send event from the property grid.
Omit the wxPG_SEL_NOVALIDATE flag to allow vetoing the event
*/
bool SendEvent( int eventType, wxPGProperty* p,
wxVariant* pValue = NULL,
unsigned int selFlags = wxPG_SEL_NOVALIDATE,