]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/propgrid/propgridpagestate.h
Added GTKShouldConnectSizeRequest() to prevent size_request handling.
[wxWidgets.git] / include / wx / propgrid / propgridpagestate.h
index 1f5e00078e3afb2a367e947fabdfff9ea4305c81..86e1c4a4e08d284e62df0c1617845f3ce5c1cab4 100644 (file)
     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. */