]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/gridg.h
fixed infinite recursion in SetFocus()
[wxWidgets.git] / include / wx / generic / gridg.h
index 01566034322e9916703bcc4c1dd36bce25a633dd..1fa85c62bd014e9eeac3ae4783562a7a6da641d9 100644 (file)
@@ -19,6 +19,9 @@
 #endif
 
 #include "wx/defs.h"
+
+#if wxUSE_GRID
+
 #include "wx/panel.h"
 #include "wx/string.h"
 #include "wx/scrolbar.h"
 #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;
@@ -194,7 +189,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);
 
@@ -255,6 +250,7 @@ protected:
     bool                      m_editable;
     bool                      m_editInPlace;
     bool                      m_inOnTextInPlace;
+    bool                      m_inScroll;
 
     int                       m_totalRows;
     int                       m_totalCols;
@@ -291,6 +287,7 @@ protected:
     wxBrush                   m_labelBackgroundBrush;
     wxFont                    m_labelTextFont;
     wxPen                     m_divisionPen;
+    wxPen                     m_highlightPen;
     wxBitmap*                 m_doubleBufferingBitmap;
 
     // Position of Edit control
@@ -358,6 +355,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
@@ -388,6 +391,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;
@@ -403,15 +413,17 @@ const wxEventType wxEVT_GRID_LABEL_RCLICK     = wxEVT_FIRST + 1583;
 
 typedef void (wxEvtHandler::*wxGridEventFunction)(wxGridEvent&);
 
-#define EVT_GRID_SELECT_CELL(fn)      { wxEVT_GRID_SELECT_CELL,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
-#define EVT_GRID_CREATE_CELL(fn)      { wxEVT_GRID_CREATE_CELL,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
-#define EVT_GRID_CHANGE_LABELS(fn)    { wxEVT_GRID_CHANGE_LABELS,    -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
-#define EVT_GRID_CHANGE_SEL_LABEL(fn) { wxEVT_GRID_CHANGE_SEL_LABEL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
-#define EVT_GRID_CELL_CHANGE(fn)      { wxEVT_GRID_CELL_CHANGE,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
-#define EVT_GRID_CELL_LCLICK(fn)      { wxEVT_GRID_CELL_LCLICK,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
-#define EVT_GRID_CELL_RCLICK(fn)      { wxEVT_GRID_CELL_RCLICK,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
-#define EVT_GRID_LABEL_LCLICK(fn)     { wxEVT_GRID_LABEL_LCLICK,     -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
-#define EVT_GRID_LABEL_RCLICK(fn)     { wxEVT_GRID_LABEL_RCLICK,     -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL },
+#define EVT_GRID_SELECT_CELL(fn)      DECLARE_EVENT_TABLE_ENTRY(wxEVT_GRID_SELECT_CELL,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL),
+#define EVT_GRID_CREATE_CELL(fn)      DECLARE_EVENT_TABLE_ENTRY(wxEVT_GRID_CREATE_CELL,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL),
+#define EVT_GRID_CHANGE_LABELS(fn)    DECLARE_EVENT_TABLE_ENTRY(wxEVT_GRID_CHANGE_LABELS,    -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL),
+#define EVT_GRID_CHANGE_SEL_LABEL(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_GRID_CHANGE_SEL_LABEL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL),
+#define EVT_GRID_CELL_CHANGE(fn)      DECLARE_EVENT_TABLE_ENTRY(wxEVT_GRID_CELL_CHANGE,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL),
+#define EVT_GRID_CELL_LCLICK(fn)      DECLARE_EVENT_TABLE_ENTRY(wxEVT_GRID_CELL_LCLICK,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL),
+#define EVT_GRID_CELL_RCLICK(fn)      DECLARE_EVENT_TABLE_ENTRY(wxEVT_GRID_CELL_RCLICK,      -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL),
+#define EVT_GRID_LABEL_LCLICK(fn)     DECLARE_EVENT_TABLE_ENTRY(wxEVT_GRID_LABEL_LCLICK,     -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL),
+#define EVT_GRID_LABEL_RCLICK(fn)     DECLARE_EVENT_TABLE_ENTRY(wxEVT_GRID_LABEL_RCLICK,     -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL),
+
+#endif // wxUSE_GRID
 
 #endif // __GRIDH_G__