// Name: gridg.h
// Purpose: wxGenericGrid
// Author: Julian Smart
-// Modified by: Michael Bedward 20 April 1999
-// Added edit in place facility
+// Modified by: Michael Bedward
+// Added edit in place facility, 20 April 1999
+// Added cursor key control, 29 Jun 1999
// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c)
#define wxGRID_DEFAULT_VERTICAL_LABEL_WIDTH 40
#define wxGRID_DEFAULT_HORIZONAL_LABEL_HEIGHT 20
-#ifndef wxLEFT
- #define wxLEFT 0x0400
-#endif
-
-#ifndef wxRIGHT
- #define wxRIGHT 0x0800
-#endif
-
#define WXGENERIC_GRID_VERSION 0.5
class WXDLLEXPORT wxGridEvent;
void SetCellTextFont(const wxFont& fnt, int row, int col);
wxBitmap *GetCellBitmap(int row, int col) const;
void SetCellBitmap(wxBitmap *bitmap, int row, int col);
+ void *SetCellData(void *data, int row, int col);
+ void *GetCellData(int row, int col);
// Size accessors
void SetColumnWidth(int col, int width);
int GetColumnWidth(int col) const;
void SetRowHeight(int row, int height);
int GetRowHeight(int row) const;
+ int GetViewHeight() const { return m_viewHeight; }
+ int GetViewWidth() const { return m_viewWidth; }
// Label accessors
void SetLabelSize(int orientation, int sz);
void UpdateDimensions();
void SetCurrentRect (int Row, int Column, int canvasW = -1, int canvasH = -1);
- void HighlightCell (wxDC *dc);
+ void HighlightCell(wxDC *dc, bool doHighlight);
void DrawCellText();
void SetGridClippingRegion(wxDC *dc);
void OnMouseEvent(wxMouseEvent& event);
void OnSize(wxSizeEvent& event);
void OnText(wxCommandEvent& ev);
+ void OnTextEnter(wxCommandEvent& ev);
void OnTextInPlace(wxCommandEvent& ev);
+ void OnTextInPlaceEnter(wxCommandEvent& ev);
void OnGridScroll(wxScrollEvent& ev);
protected:
bool m_editable;
bool m_editInPlace;
bool m_inOnTextInPlace;
+ bool m_inScroll;
int m_totalRows;
int m_totalCols;
int m_bottomOfSheet; // Calculated from m_rowHeights
int m_totalGridWidth; // Total 'virtual' size
int m_totalGridHeight;
+ int m_viewHeight; // Number of rows displayed
+ int m_viewWidth; // Number of columns displayed
int m_cellHeight; // For now, a default
int m_verticalLabelWidth;
int m_horizontalLabelHeight;
wxBrush m_labelBackgroundBrush;
wxFont m_labelTextFont;
wxPen m_divisionPen;
+ wxPen m_highlightPen;
wxBitmap* m_doubleBufferingBitmap;
// Position of Edit control
wxColour backgroundColour;
wxBrush backgroundBrush;
wxBitmap* cellBitmap;
- int alignment;
+ void* cellData; // intended for additional data associated with a cell
+ int alignment;
wxGridCell(wxGenericGrid *window = (wxGenericGrid *) NULL);
~wxGridCell();
void SetAlignment(int align) { alignment = align; }
wxBitmap *GetCellBitmap() const { return cellBitmap; }
void SetCellBitmap(wxBitmap *bitmap) { cellBitmap = bitmap; }
+
+ void *SetCellData(void *data) { void *rc = cellData; cellData = data; return rc; }
+ void *GetCellData() const { return cellData; }
};
class WXDLLEXPORT wxGrid : public wxGenericGrid
bool m_control;
bool m_shift;
wxGridCell* m_cell;
+
+ int GetRow() const { return m_row; }
+ int GetCol() const { return m_col; }
+ wxPoint GetPosition() const { return wxPoint( m_x, m_y ); }
+ wxGridCell* GetCell() const { return m_cell; }
+ bool ControlDown() const { return m_control; }
+ bool ShiftDown() const { return m_shift; }
};
const wxEventType wxEVT_GRID_SELECT_CELL = wxEVT_FIRST + 1575;