]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/grid.h
VA 4.0 fixes
[wxWidgets.git] / include / wx / generic / grid.h
index 3133174a826b0328e7e8dbbbeb515428b87be918..23bef5c25a003bae6974b591ee9d959737505cdc 100644 (file)
@@ -52,7 +52,7 @@
 #define WXGRID_DEFAULT_TOPEDIT_HEIGHT         60
 
 
-class wxGrid;
+class WXDLLEXPORT wxGrid;
 
 
 //////////////////////////////////////////////////////////////////////
@@ -93,8 +93,8 @@ class wxGridTableBase : public wxObject
 
     virtual wxString GetRowLabelValue( int row );
     virtual wxString GetColLabelValue( int col );
-    virtual void SetRowLabelValue( int row, const wxString& ) {}
-    virtual void SetColLabelValue( int col, const wxString& ) {}
+    virtual void SetRowLabelValue( int WXUNUSED(row), const wxString& ) {}
+    virtual void SetColLabelValue( int WXUNUSED(col), const wxString& ) {}
     
     DECLARE_ABSTRACT_CLASS( wxGridTableBase );
 };
@@ -283,11 +283,11 @@ class wxGridTextCtrl : public wxTextCtrl
 };
 
 
-class wxGrid : public wxPanel
+class WXDLLEXPORT wxGrid : public wxPanel
 {
     DECLARE_DYNAMIC_CLASS( wxGrid )
 
-  private:
+  protected:
     bool m_created;
 
     wxGridTableBase *m_table;
@@ -309,10 +309,12 @@ class wxGrid : public wxPanel
     int        m_defaultRowHeight;
     wxArrayInt m_rowHeights;
     wxArrayInt m_rowBottoms;
+    int        m_sumRowHeights;
 
     int        m_defaultColWidth;
     wxArrayInt m_colWidths;
     wxArrayInt m_colRights;
+    int        m_sumColWidths;
 
     int m_rowLabelWidth;
     int m_colLabelHeight;
@@ -393,7 +395,7 @@ class wxGrid : public wxPanel
     void OnSize( wxSizeEvent& );
     void OnMouse( wxMouseEvent& );
     void OnKeyDown( wxKeyEvent& );
-    void OnText( wxKeyEvent& );
+    void OnText( wxCommandEvent& );
     void OnGridScroll( wxScrollEvent& );
 
     void SelectCell( const wxGridCellCoords& coords );
@@ -459,14 +461,21 @@ class wxGrid : public wxPanel
     void DrawGridLines( wxDC& dc );
     void DrawCells( wxDC& dc );
     void DrawCellBackground( wxDC& dc, const wxRect&, int row, int col );
-    void DrawCellValue( wxDC& dc, const wxRect&, int row, int col );
-
-    // this one is useful when you just need to draw one or a few
+    void DrawCellValue( wxDC& dc, const wxRect&, int row, int col,
+                        const wxString& value = wxEmptyString, bool useValueArg = FALSE );
+    
+    // this updates the displayed cell text value but not the underlying 
+    // table cell value (it is used to echo text being entered into
+    // the top edit control when in-place editing is turned off)
+    //
+    void DrawCellValue( const wxGridCellCoords& coords, const wxString& value );
+    
+    // these are useful when you just need to draw one or a few
     // cells
     void DrawCell( int row, int col );
     void DrawCell( const wxGridCellCoords& coords )
         { DrawCell( coords.GetRow(), coords.GetCol() ); }
-    
+        
     void DrawCellHighlight( wxDC& dc, int row, int col );
     void DrawCellHighlight( wxDC& dc, wxGridCellCoords& coords )
         { DrawCellHighlight( dc, coords.GetRow(), coords.GetCol() ); }
@@ -621,7 +630,7 @@ class wxGrid : public wxPanel
     void     SetDefaultCellAlignment( int horiz, int vert );
     void     SetCellAlignment( int row, int col, int horiz, int vert );
 
-    
+
     // ------ cell value accessors
     //
     wxString GetCellValue( int row, int col )
@@ -796,7 +805,7 @@ class wxGrid : public wxPanel
                 SetRowLabelAlignment( align, -1 );
         }
 
-    int GetLabelAlignment( int orientation, int align )
+    int GetLabelAlignment( int orientation, int WXUNUSED(align) )
         {
             int h, v;
             if ( orientation == wxHORIZONTAL )
@@ -830,7 +839,7 @@ class wxGrid : public wxPanel
     wxFont GetCellTextFont() const 
         { return m_defaultCellFont; }
         
-    wxFont GetCellTextFont(int row, int col) const
+    wxFont GetCellTextFont(int WXUNUSED(row), int WXUNUSED(col)) const
         { return m_defaultCellFont; }
         
     void SetCellTextFont(const wxFont& fnt)
@@ -856,6 +865,14 @@ class wxGrid : public wxPanel
     bool GetEditInPlace() { return IsCellEditControlEnabled(); }
     void SetEditInPlace(bool edit = TRUE) { EnableCellEditControl( edit ); }
 
+    void SetCellAlignment( int align, int row, int col)
+    { SetCellAlignment(row, col, align, wxCENTER); }
+    void SetCellAlignment( int WXUNUSED(align) ) {}
+    void SetCellBitmap(wxBitmap *WXUNUSED(bitmap), int WXUNUSED(row), int WXUNUSED(col))
+    { }
+    void SetDividerPen(const wxPen& WXUNUSED(pen)) { }
+    wxPen& GetDividerPen() const { return wxNullPen; }
+    void OnActivate(bool WXUNUSED(active)) {}
             
     // ******** End of compatibility functions **********
 
@@ -888,7 +905,7 @@ class WXDLLEXPORT wxGridEvent : public wxNotifyEvent
 {
     DECLARE_DYNAMIC_CLASS(wxGridEvent)
 
-  private:
+  protected:
     int         m_row;
     int         m_col;
     int         m_x;
@@ -923,7 +940,7 @@ class WXDLLEXPORT wxGridSizeEvent : public wxNotifyEvent
 {
     DECLARE_DYNAMIC_CLASS(wxGridSizeEvent)
 
-  private:
+  protected:
     int         m_rowOrCol;
     int         m_x;
     int         m_y;
@@ -956,7 +973,7 @@ class WXDLLEXPORT wxGridRangeSelectEvent : public wxNotifyEvent
 {
     DECLARE_DYNAMIC_CLASS(wxGridRangeSelectEvent)
 
-  private:
+  protected:
     wxGridCellCoords  m_topLeft;
     wxGridCellCoords  m_bottomRight;
     bool              m_control;
@@ -1007,6 +1024,8 @@ const wxEventType EVT_GRID_ROW_SIZE           = wxEVT_FIRST + 1588;
 const wxEventType EVT_GRID_COL_SIZE           = wxEVT_FIRST + 1589;
 const wxEventType EVT_GRID_RANGE_SELECT       = wxEVT_FIRST + 1590;
 const wxEventType EVT_GRID_CELL_CHANGE        = wxEVT_FIRST + 1591;
+const wxEventType EVT_GRID_SELECT_CELL        = wxEVT_FIRST + 1592;
+
 
 typedef void (wxEvtHandler::*wxGridEventFunction)(wxGridEvent&);
 typedef void (wxEvtHandler::*wxGridSizeEventFunction)(wxGridSizeEvent&);
@@ -1024,16 +1043,15 @@ typedef void (wxEvtHandler::*wxGridRangeSelectEventFunction)(wxGridRangeSelectEv
 #define EVT_GRID_COL_SIZE(fn)            { EVT_GRID_COL_SIZE,           -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridSizeEventFunction) &fn, NULL },
 #define EVT_GRID_RANGE_SELECT(fn)        { EVT_GRID_RANGE_SELECT,       -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridRangeSelectEventFunction) &fn, NULL },
 #define EVT_GRID_CELL_CHANGE(fn)         { EVT_GRID_CELL_CHANGE,        -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, 
+#define EVT_GRID_SELECT_CELL(fn)         { EVT_GRID_SELECT_CELL,        -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
 
 
 #if 0  // TODO: implement these ?  others ?
 
-const wxEventType EVT_GRID_SELECT_CELL      = wxEVT_FIRST + 1575;
 const wxEventType EVT_GRID_CREATE_CELL      = wxEVT_FIRST + 1576;
 const wxEventType EVT_GRID_CHANGE_LABELS    = wxEVT_FIRST + 1577;
 const wxEventType EVT_GRID_CHANGE_SEL_LABEL = wxEVT_FIRST + 1578;
 
-#define EVT_GRID_SELECT_CELL(fn)      { EVT_GRID_SELECT_CELL,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
 #define EVT_GRID_CREATE_CELL(fn)      { EVT_GRID_CREATE_CELL,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
 #define EVT_GRID_CHANGE_LABELS(fn)    { EVT_GRID_CHANGE_LABELS,    -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
 #define EVT_GRID_CHANGE_SEL_LABEL(fn) { EVT_GRID_CHANGE_SEL_LABEL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },