X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c0b042fce9be0fab67f229f35ffd117f4e1e0730..695237bccd652c60deba347117ba5ab32067880c:/include/wx/generic/gridg.h diff --git a/include/wx/generic/gridg.h b/include/wx/generic/gridg.h index 213a5fadba..9e0278cfab 100644 --- a/include/wx/generic/gridg.h +++ b/include/wx/generic/gridg.h @@ -2,8 +2,9 @@ // 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) @@ -34,14 +35,6 @@ #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; @@ -100,12 +93,16 @@ public: 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); @@ -189,7 +186,7 @@ public: 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); @@ -226,7 +223,9 @@ public: 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: @@ -248,6 +247,7 @@ protected: bool m_editable; bool m_editInPlace; bool m_inOnTextInPlace; + bool m_inScroll; int m_totalRows; int m_totalCols; @@ -263,6 +263,8 @@ protected: 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; @@ -282,6 +284,7 @@ protected: wxBrush m_labelBackgroundBrush; wxFont m_labelTextFont; wxPen m_divisionPen; + wxPen m_highlightPen; wxBitmap* m_doubleBufferingBitmap; // Position of Edit control @@ -315,7 +318,8 @@ public: 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(); @@ -334,6 +338,9 @@ public: 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 @@ -345,6 +352,12 @@ public: : wxGenericGrid(parent, x, y, width, height, style, name) { } + wxGrid(wxWindow *parent, wxWindowID id, const wxPoint& pos, + const wxSize& size, long style = 0, const wxString& name = "grid") + : wxGenericGrid(parent, id, pos, size, style, name) + { + } + }; class WXDLLEXPORT wxGridEvent : public wxCommandEvent @@ -375,6 +388,13 @@ public: 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;