]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/gridctrl.h
implement wxBitmapButton as just a wrapper for wxButton under MSW
[wxWidgets.git] / include / wx / generic / gridctrl.h
index b607c326075f22117700c49787975048893167c8..987d2e9aeda4ba1b0ab44033b60760aac79d9c6d 100644 (file)
 #ifndef _WX_GENERIC_GRIDCTRL_H_
 #define _WX_GENERIC_GRIDCTRL_H_
 
-#if defined(__GNUG__) && !defined(__APPLE__)
-    #pragma interface "gridctrl.h"
-#endif
+#include "wx/grid.h"
 
 #if wxUSE_GRID
 
-#include "wx/grid.h"
-#include "wx/string.h"
-#include "wx/datetime.h"
-
 #define wxGRID_VALUE_CHOICEINT    _T("choiceint")
 #define wxGRID_VALUE_DATETIME     _T("datetime")
 
+
+// the default renderer for the cells containing string data
+class WXDLLIMPEXP_ADV wxGridCellStringRenderer : public wxGridCellRenderer
+{
+public:
+    // draw the string
+    virtual void Draw(wxGrid& grid,
+                      wxGridCellAttr& attr,
+                      wxDC& dc,
+                      const wxRect& rect,
+                      int row, int col,
+                      bool isSelected);
+
+    // return the string extent
+    virtual wxSize GetBestSize(wxGrid& grid,
+                               wxGridCellAttr& attr,
+                               wxDC& dc,
+                               int row, int col);
+
+    virtual wxGridCellRenderer *Clone() const
+        { return new wxGridCellStringRenderer; }
+
+protected:
+    // set the text colours before drawing
+    void SetTextColoursAndFont(const wxGrid& grid,
+                               const wxGridCellAttr& attr,
+                               wxDC& dc,
+                               bool isSelected);
+
+    // calc the string extent for given string/font
+    wxSize DoGetBestSize(const wxGridCellAttr& attr,
+                         wxDC& dc,
+                         const wxString& text);
+};
+
+// the default renderer for the cells containing numeric (long) data
+class WXDLLIMPEXP_ADV wxGridCellNumberRenderer : public wxGridCellStringRenderer
+{
+public:
+    // draw the string right aligned
+    virtual void Draw(wxGrid& grid,
+                      wxGridCellAttr& attr,
+                      wxDC& dc,
+                      const wxRect& rect,
+                      int row, int col,
+                      bool isSelected);
+
+    virtual wxSize GetBestSize(wxGrid& grid,
+                               wxGridCellAttr& attr,
+                               wxDC& dc,
+                               int row, int col);
+
+    virtual wxGridCellRenderer *Clone() const
+        { return new wxGridCellNumberRenderer; }
+
+protected:
+    wxString GetString(const wxGrid& grid, int row, int col);
+};
+
+class WXDLLIMPEXP_ADV wxGridCellFloatRenderer : public wxGridCellStringRenderer
+{
+public:
+    wxGridCellFloatRenderer(int width = -1, int precision = -1);
+
+    // get/change formatting parameters
+    int GetWidth() const { return m_width; }
+    void SetWidth(int width) { m_width = width; m_format.clear(); }
+    int GetPrecision() const { return m_precision; }
+    void SetPrecision(int precision) { m_precision = precision; m_format.clear(); }
+
+    // draw the string right aligned with given width/precision
+    virtual void Draw(wxGrid& grid,
+                      wxGridCellAttr& attr,
+                      wxDC& dc,
+                      const wxRect& rect,
+                      int row, int col,
+                      bool isSelected);
+
+    virtual wxSize GetBestSize(wxGrid& grid,
+                               wxGridCellAttr& attr,
+                               wxDC& dc,
+                               int row, int col);
+
+    // parameters string format is "width[,precision]"
+    virtual void SetParameters(const wxString& params);
+
+    virtual wxGridCellRenderer *Clone() const;
+
+protected:
+    wxString GetString(const wxGrid& grid, int row, int col);
+
+private:
+    // formatting parameters
+    int m_width,
+        m_precision;
+
+    wxString m_format;
+};
+
+// renderer for boolean fields
+class WXDLLIMPEXP_ADV wxGridCellBoolRenderer : public wxGridCellRenderer
+{
+public:
+    // draw a check mark or nothing
+    virtual void Draw(wxGrid& grid,
+                      wxGridCellAttr& attr,
+                      wxDC& dc,
+                      const wxRect& rect,
+                      int row, int col,
+                      bool isSelected);
+
+    // return the checkmark size
+    virtual wxSize GetBestSize(wxGrid& grid,
+                               wxGridCellAttr& attr,
+                               wxDC& dc,
+                               int row, int col);
+
+    virtual wxGridCellRenderer *Clone() const
+        { return new wxGridCellBoolRenderer; }
+
+private:
+    static wxSize ms_sizeCheckMark;
+};
+
+
 #if wxUSE_DATETIME
 
+#include "wx/datetime.h"
+
 // the default renderer for the cells containing Time and dates..
-class WXDLLEXPORT wxGridCellDateTimeRenderer : public wxGridCellStringRenderer
+class WXDLLIMPEXP_ADV wxGridCellDateTimeRenderer : public wxGridCellStringRenderer
 {
 public:
-    wxGridCellDateTimeRenderer(wxString outformat =  _T("%c"),
-                               wxString informat =  _T("%c"));
+    wxGridCellDateTimeRenderer(const wxString& outformat = wxDefaultDateTimeFormat,
+                               const wxString& informat = wxDefaultDateTimeFormat);
 
     // draw the string right aligned
     virtual void Draw(wxGrid& grid,
@@ -53,7 +174,7 @@ public:
     virtual void SetParameters(const wxString& params);
 
 protected:
-    wxString GetString(wxGrid& grid, int row, int col);
+    wxString GetString(const wxGrid& grid, int row, int col);
 
     wxString m_iformat;
     wxString m_oformat;
@@ -64,7 +185,7 @@ protected:
 #endif // wxUSE_DATETIME
 
 // the default renderer for the cells containing Time and dates..
-class WXDLLEXPORT wxGridCellEnumRenderer : public wxGridCellStringRenderer
+class WXDLLIMPEXP_ADV wxGridCellEnumRenderer : public wxGridCellStringRenderer
 {
 public:
     wxGridCellEnumRenderer( const wxString& choices = wxEmptyString );
@@ -88,44 +209,13 @@ public:
     virtual void SetParameters(const wxString& params);
 
 protected:
-    wxString GetString(wxGrid& grid, int row, int col);
+    wxString GetString(const wxGrid& grid, int row, int col);
 
     wxArrayString m_choices;
 };
 
 
-#if wxUSE_COMBOBOX
-
-class WXDLLEXPORT wxGridCellEnumEditor : public wxGridCellChoiceEditor
-{
-public:
-    wxGridCellEnumEditor( const wxString& choices = wxEmptyString );
-    virtual ~wxGridCellEnumEditor() {};
-
-    virtual wxGridCellEditor*  Clone() const;
-
-    virtual bool EndEdit(int row, int col, wxGrid* grid);
-    virtual void BeginEdit(int row, int col, wxGrid* grid);
-
-private:
-    long int   m_startint;
-};
-
-#endif // wxUSE_COMBOBOX
-
-class WXDLLEXPORT wxGridCellAutoWrapStringEditor : public wxGridCellTextEditor
-{
-public:
-    wxGridCellAutoWrapStringEditor() : wxGridCellTextEditor() { }
-    virtual void Create(wxWindow* parent,
-                        wxWindowID id,
-                        wxEvtHandler* evtHandler);
-
-    virtual wxGridCellEditor *Clone() const
-        { return new wxGridCellAutoWrapStringEditor; }
-};
-
-class WXDLLEXPORT wxGridCellAutoWrapStringRenderer : public wxGridCellStringRenderer
+class WXDLLIMPEXP_ADV wxGridCellAutoWrapStringRenderer : public wxGridCellStringRenderer
 {
 public:
     wxGridCellAutoWrapStringRenderer() : wxGridCellStringRenderer() { }
@@ -148,13 +238,11 @@ public:
 private:
     wxArrayString GetTextLines( wxGrid& grid,
                                 wxDC& dc,
-                                wxGridCellAttr& attr,
+                                const wxGridCellAttr& attr,
                                 const wxRect& rect,
                                 int row, int col);
 
 };
 
-#endif  // #if wxUSE_GRID
-
-#endif //_WX_GENERIC_GRIDCTRL_H_
-
+#endif  // wxUSE_GRID
+#endif // _WX_GENERIC_GRIDCTRL_H_