]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/gridg.h
wxFrameBase class for wxMSW and wxGTK
[wxWidgets.git] / include / wx / generic / gridg.h
index 81a409bea1c32d893f03cfadbfdd69caa73380cc..9e0278cfabc00280e92fe2dd15192e97b5921be6 100644 (file)
@@ -2,7 +2,7 @@
 // Name:        gridg.h
 // Purpose:     wxGenericGrid
 // Author:      Julian Smart
 // Name:        gridg.h
 // Purpose:     wxGenericGrid
 // Author:      Julian Smart
-// Modified by: Michael Bedward 
+// Modified by: Michael Bedward
 //                Added edit in place facility, 20 April 1999
 //                Added cursor key control, 29 Jun 1999
 // Created:     01/02/97
 //                Added edit in place facility, 20 April 1999
 //                Added cursor key control, 29 Jun 1999
 // Created:     01/02/97
 #define wxGRID_DEFAULT_VERTICAL_LABEL_WIDTH 40
 #define wxGRID_DEFAULT_HORIZONAL_LABEL_HEIGHT 20
 
 #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;
 #define WXGENERIC_GRID_VERSION  0.5
 
 class WXDLLEXPORT wxGridEvent;
@@ -101,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 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;
 
     // 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);
 
     // Label accessors
     void SetLabelSize(int orientation, int sz);
@@ -190,7 +186,7 @@ public:
     void UpdateDimensions();
 
     void SetCurrentRect (int Row, int Column, int canvasW = -1, int canvasH = -1);
     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 DrawCellText();
     void SetGridClippingRegion(wxDC *dc);
 
@@ -251,6 +247,7 @@ protected:
     bool                      m_editable;
     bool                      m_editInPlace;
     bool                      m_inOnTextInPlace;
     bool                      m_editable;
     bool                      m_editInPlace;
     bool                      m_inOnTextInPlace;
+    bool                      m_inScroll;
 
     int                       m_totalRows;
     int                       m_totalCols;
 
     int                       m_totalRows;
     int                       m_totalCols;
@@ -266,6 +263,8 @@ protected:
     int                       m_bottomOfSheet;   // Calculated from m_rowHeights
     int                       m_totalGridWidth; // Total 'virtual' size
     int                       m_totalGridHeight;
     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;
     int                       m_cellHeight;      // For now, a default
     int                       m_verticalLabelWidth;
     int                       m_horizontalLabelHeight;
@@ -285,6 +284,7 @@ protected:
     wxBrush                   m_labelBackgroundBrush;
     wxFont                    m_labelTextFont;
     wxPen                     m_divisionPen;
     wxBrush                   m_labelBackgroundBrush;
     wxFont                    m_labelTextFont;
     wxPen                     m_divisionPen;
+    wxPen                     m_highlightPen;
     wxBitmap*                 m_doubleBufferingBitmap;
 
     // Position of Edit control
     wxBitmap*                 m_doubleBufferingBitmap;
 
     // Position of Edit control
@@ -318,7 +318,8 @@ public:
     wxColour  backgroundColour;
     wxBrush   backgroundBrush;
     wxBitmap* cellBitmap;
     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();
 
     wxGridCell(wxGenericGrid *window = (wxGenericGrid *) NULL);
     ~wxGridCell();
@@ -337,6 +338,9 @@ public:
     void SetAlignment(int align) { alignment = align; }
     wxBitmap *GetCellBitmap() const { return cellBitmap; }
     void SetCellBitmap(wxBitmap *bitmap) { cellBitmap = bitmap; }
     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
 };
 
 class WXDLLEXPORT wxGrid : public wxGenericGrid
@@ -348,6 +352,12 @@ public:
         : wxGenericGrid(parent, x, y, width, height, style, name)
         {
         }
         : 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
 };
 
 class WXDLLEXPORT wxGridEvent : public wxCommandEvent
@@ -378,6 +388,13 @@ public:
     bool        m_control;
     bool        m_shift;
     wxGridCell* m_cell;
     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;
 };
 
 const wxEventType wxEVT_GRID_SELECT_CELL      = wxEVT_FIRST + 1575;