// Author: Jaakko Salli
// Modified by:
// Created: 2008-08-24
-// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_PROPGRID_PROPGRIDPAGESTATE_H_
#define _WX_PROPGRID_PROPGRIDPAGESTATE_H_
+#include "wx/defs.h"
+
#if wxUSE_PROPGRID
#include "wx/propgrid/property.h"
m_pIt = it.m_pIt;
m_pIt->IncRef();
}
-#ifndef SWIG
const wxPGVIterator& operator=( const wxPGVIterator& it )
{
if (this != &it)
}
return *this;
}
-#endif
void Next() { m_pIt->Next(); }
bool AtEnd() const { return m_pIt->m_it.AtEnd(); }
wxPGProperty* GetProperty() const { return m_pIt->m_it.GetProperty(); }
// -----------------------------------------------------------------------
-#ifndef SWIG
-// We won't need this class from wxPython
-
/** @class wxPropertyGridPageState
Contains low-level property page information (properties, column widths,
void CheckColumnWidths( int widthChange = 0 );
/**
- Override this member function to add custom behavior on property
+ Override this member function to add custom behaviour on property
deletion.
*/
virtual void DoDelete( wxPGProperty* item, bool doDelete = true );
wxPGProperty* DoGetItemAtY( int y ) const;
/**
- Override this member function to add custom behavior on property
+ Override this member function to add custom behaviour on property
insertion.
*/
virtual wxPGProperty* DoInsert( wxPGProperty* parent,
*/
virtual void DoSetSplitterPosition( int pos,
int splitterColumn = 0,
- bool allPages = false,
- bool fromAutoCenter = false );
+ int flags = 0 );
bool EnableCategories( bool enable );
}
}
- /** Enables or disables given property and its subproperties. */
- bool DoEnableProperty( wxPGProperty* p, bool enable );
-
/** Returns (precalculated) height of contained visible properties.
*/
unsigned int GetVirtualHeight() const
void DoRemoveFromSelection( wxPGProperty* prop );
+ void DoSetColumnProportion( unsigned int column, int proportion );
+
+ int DoGetColumnProportion( unsigned int column ) const
+ {
+ return m_columnProportions[column];
+ }
+
+ void ResetColumnSizes( int setSplitterFlags );
+
wxPropertyCategory* GetPropertyCategory( const wxPGProperty* p ) const;
wxPGProperty* GetPropertyByLabel( const wxString& name,
unsigned int col,
bool subProps) const;
+ int GetColumnFullWidth(wxClientDC &dc, wxPGProperty *p, unsigned int col);
+
/**
Returns information about arbitrary position in the grid.
@param pt
Logical coordinates in the virtual grid space. Use
- wxScrolledWindow::CalcUnscrolledPosition() if you need to
+ wxScrolled<T>::CalcUnscrolledPosition() if you need to
translate a scrolled position into a logical one.
*/
wxPropertyGridHitTestResult HitTest( const wxPoint& pt ) const;
protected:
+ // Utility to check if two properties are visibly next to each other
+ bool ArePropertiesAdjacent( wxPGProperty* prop1,
+ wxPGProperty* prop2,
+ int iterFlags = wxPG_ITERATE_VISIBLE ) const;
+
int DoGetSplitterPosition( int splitterIndex = 0 ) const;
/** Returns column at x coordinate (in GetGrid()->GetPanel()).
/** List of indices of columns the user can edit by clicking it. */
wxArrayInt m_editableColumns;
+ /** Column proportions */
+ wxArrayInt m_columnProportions;
+
double m_fSplitterX;
/** Most recently added category. */
unsigned char m_vhCalcPending;
+ /** True if splitter has been pre-set by the application. */
+ bool m_isSplitterPreSet;
+
+ /** Used to (temporarily) disable splitter centering. */
+ bool m_dontCenterSplitter;
+
private:
/** Only inits arrays, doesn't migrate things or such. */
void InitNonCatMode();
};
-#endif // #ifndef SWIG
-
// -----------------------------------------------------------------------
#endif // wxUSE_PROPGRID