+ protected:
+ wxPanel* m_editingPanel; // Contains the text control
+ wxTextCtrl* m_textItem;
+ wxScrollBar* m_hScrollBar;
+ wxScrollBar* m_vScrollBar;
+ int m_wCursorRow;
+ int m_wCursorColumn;
+ wxRectangle m_currentRect;
+ bool m_currentRectVisible;
+ wxGridCell*** m_gridCells;
+ wxGridCell** m_rowLabelCells;
+ wxGridCell** m_colLabelCells;
+ bool m_editCreated;
+ bool m_editable;
+
+ int m_totalRows;
+ int m_totalCols;
+
+ // Row and column we're currently looking at
+ int m_scrollPosX;
+ int m_scrollPosY;
+
+ // Dimensions
+ int m_leftOfSheet;
+ int m_topOfSheet;
+ int m_rightOfSheet; // Calculated from m_colWidths
+ int m_bottomOfSheet; // Calculated from m_rowHeights
+ int m_totalGridWidth; // Total 'virtual' size
+ int m_totalGridHeight;
+ int m_cellHeight; // For now, a default
+ int m_verticalLabelWidth;
+ int m_horizontalLabelHeight;
+ int m_verticalLabelAlignment;
+ int m_horizontalLabelAlignment;
+ int m_cellAlignment;
+ short* m_colWidths; // Dynamically allocated
+ short* m_rowHeights; // Dynamically allocated
+ int m_scrollWidth; // Vert. scroll width, horiz. scroll height
+
+ // Colours
+ wxColour m_cellTextColour;
+ wxColour m_cellBackgroundColour;
+ wxFont* m_cellTextFont;
+ wxColour m_labelTextColour;
+ wxColour m_labelBackgroundColour;
+ wxBrush* m_labelBackgroundBrush;
+ wxFont* m_labelTextFont;
+ wxPen* m_divisionPen;
+ wxBitmap* m_doubleBufferingBitmap;
+
+ // Position of Edit control
+ wxRectangle m_editControlPosition;
+
+ // Drag status
+ int m_dragStatus;
+ int m_dragRowOrCol;
+ int m_dragStartPosition;
+ int m_dragLastPosition;
+ wxCursor* m_horizontalSashCursor;
+ wxCursor* m_verticalSashCursor;
+
+ // To avoid multiple refreshes, use Begin/EndBatch
+ int m_batchCount;
+