X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7f3f8f1e85e34898a30a8463ca73c86d6550548d..92153555cf08cc818d6f4becfc1576d9c2add023:/include/wx/propgrid/propgridpagestate.h diff --git a/include/wx/propgrid/propgridpagestate.h b/include/wx/propgrid/propgridpagestate.h index 1f5e00078e..86e1c4a4e0 100644 --- a/include/wx/propgrid/propgridpagestate.h +++ b/include/wx/propgrid/propgridpagestate.h @@ -23,25 +23,59 @@ A return value from wxPropertyGrid::HitTest(), contains all you need to know about an arbitrary location on the grid. */ -struct WXDLLIMPEXP_PROPGRID wxPropertyGridHitTestResult +class WXDLLIMPEXP_PROPGRID wxPropertyGridHitTestResult { friend class wxPropertyGridPageState; public: + wxPropertyGridHitTestResult() + { + m_property = NULL; + m_column = -1; + m_splitter = -1; + m_splitterHitOffset = 0; + } - wxPGProperty* GetProperty() const { return property; } + ~wxPropertyGridHitTestResult() + { + } - /** Column. -1 for margin. */ - int column; + /** + Returns column hit. -1 for margin. + */ + int GetColumn() const { return m_column; } - /** Index of splitter hit, -1 for none. */ - int splitter; + /** + Returns property hit. NULL if empty space below + properties was hit instead. + */ + wxPGProperty* GetProperty() const + { + return m_property; + } - /** If splitter hit, offset to that */ - int splitterHitOffset; + /** + Returns index of splitter hit, -1 for none. + */ + int GetSplitter() const { return m_splitter; } + + /** + If splitter hit, then this member function + returns offset to the exact splitter position. + */ + int GetSplitterHitOffset() const { return m_splitterHitOffset; } private: /** Property. NULL if empty space below properties was hit */ - wxPGProperty* property; + wxPGProperty* m_property; + + /** Column. -1 for margin. */ + int m_column; + + /** Index of splitter hit, -1 for none. */ + int m_splitter; + + /** If splitter hit, offset to that */ + int m_splitterHitOffset; }; // ----------------------------------------------------------------------- @@ -635,6 +669,11 @@ public: 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()). @@ -668,6 +707,9 @@ protected: /** List of column widths (first column does not include margin). */ wxArrayInt m_colWidths; + /** List of indices of columns the user can edit by clicking it. */ + wxArrayInt m_editableColumns; + double m_fSplitterX; /** Most recently added category. */