]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/gridg.h
SCROLLWIN instead of SCROLL again
[wxWidgets.git] / include / wx / generic / gridg.h
index 213a5fadbaad1ed53ebe851520bfc0a9652a9026..9e0278cfabc00280e92fe2dd15192e97b5921be6 100644 (file)
@@ -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)
 #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;