X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7fa03f04345b620d1a14529b05961116b20a1297..dbaf49a996b4f8496a07f860297f3dca4a1817fd:/include/wx/generic/grid.h diff --git a/include/wx/generic/grid.h b/include/wx/generic/grid.h index cdca4984ef..c554e7236d 100644 --- a/include/wx/generic/grid.h +++ b/include/wx/generic/grid.h @@ -9,15 +9,9 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#include "wx/defs.h" - #ifndef __WXGRID_H__ #define __WXGRID_H__ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "grid.h" -#endif - #include "wx/hashmap.h" #include "wx/panel.h" #include "wx/scrolwin.h" @@ -107,7 +101,7 @@ public: // calling DecRef() once will delete it. Calling IncRef() allows to lock // it until the matching DecRef() is called void IncRef() { m_nRef++; } - void DecRef() { if ( !--m_nRef ) delete this; } + void DecRef() { if ( --m_nRef == 0 ) delete this; } // interpret renderer parameters: arbitrary string whose interpretatin is // left to the derived classes @@ -184,13 +178,13 @@ public: protected: // set the text colours before drawing - void SetTextColoursAndFont(wxGrid& grid, - wxGridCellAttr& attr, + void SetTextColoursAndFont(const wxGrid& grid, + const wxGridCellAttr& attr, wxDC& dc, bool isSelected); // calc the string extent for given string/font - wxSize DoGetBestSize(wxGridCellAttr& attr, + wxSize DoGetBestSize(const wxGridCellAttr& attr, wxDC& dc, const wxString& text); }; @@ -216,7 +210,7 @@ public: { return new wxGridCellNumberRenderer; } protected: - wxString GetString(wxGrid& grid, int row, int col); + wxString GetString(const wxGrid& grid, int row, int col); }; class WXDLLIMPEXP_ADV wxGridCellFloatRenderer : public wxGridCellStringRenderer @@ -249,7 +243,7 @@ public: virtual wxGridCellRenderer *Clone() const; protected: - wxString GetString(wxGrid& grid, int row, int col); + wxString GetString(const wxGrid& grid, int row, int col); private: // formatting parameters @@ -547,6 +541,7 @@ public: virtual void Reset(); virtual void StartingClick(); + virtual void StartingKey(wxKeyEvent& event); virtual wxGridCellEditor *Clone() const { return new wxGridCellBoolEditor; } @@ -661,7 +656,7 @@ public: // calling DecRef() once will delete it. Calling IncRef() allows to lock // it until the matching DecRef() is called void IncRef() { m_nRef++; } - void DecRef() { if ( !--m_nRef ) delete this; } + void DecRef() { if ( --m_nRef == 0 ) delete this; } // setters void SetTextColour(const wxColour& colText) { m_colText = colText; } @@ -695,6 +690,7 @@ public: bool HasEditor() const { return m_editor != NULL; } bool HasReadWriteMode() const { return m_isReadOnly != Unset; } bool HasOverflowMode() const { return m_overflow != UnsetOverflow; } + bool HasSize() const { return m_sizeRows != 1 || m_sizeCols != 1; } const wxColour& GetTextColour() const; const wxColour& GetBackgroundColour() const; @@ -712,6 +708,14 @@ public: void SetDefAttr(wxGridCellAttr* defAttr) { m_defGridAttr = defAttr; } +protected: + // the dtor is private because only DecRef() can delete us + virtual ~wxGridCellAttr() + { + wxSafeDecRef(m_renderer); + wxSafeDecRef(m_editor); + } + private: enum wxAttrReadMode { @@ -730,12 +734,6 @@ private: // the common part of all ctors void Init(wxGridCellAttr *attrDefault = NULL); - // the dtor is private because only DecRef() can delete us - ~wxGridCellAttr() - { - wxSafeDecRef(m_renderer); - wxSafeDecRef(m_editor); - } // the ref count - when it goes to 0, we die size_t m_nRef; @@ -1175,7 +1173,7 @@ public: // void StringToLines( const wxString& value, wxArrayString& lines ); - void GetTextBoxSize( wxDC& dc, + void GetTextBoxSize( const wxDC& dc, const wxArrayString& lines, long *width, long *height ); @@ -1327,7 +1325,7 @@ public: // DecRef() must be called on the returned pointer, as usual wxGridCellAttr *GetOrCreateCellAttr(int row, int col) const; - + // shortcuts for setting the column parameters // set the format for the data in the column: default is string @@ -1929,6 +1927,7 @@ protected: void OnSize( wxSizeEvent& ); void OnKeyDown( wxKeyEvent& ); void OnKeyUp( wxKeyEvent& ); + void OnChar( wxKeyEvent& ); void OnEraseBackground( wxEraseEvent& ); @@ -1981,6 +1980,14 @@ public: bool MetaDown() { return m_meta; } bool ShiftDown() { return m_shift; } bool AltDown() { return m_alt; } + bool CmdDown() + { +#if defined(__WXMAC__) || defined(__WXCOCOA__) + return MetaDown(); +#else + return ControlDown(); +#endif + } protected: int m_row; @@ -2015,6 +2022,14 @@ public: bool MetaDown() { return m_meta; } bool ShiftDown() { return m_shift; } bool AltDown() { return m_alt; } + bool CmdDown() + { +#if defined(__WXMAC__) || defined(__WXCOCOA__) + return MetaDown(); +#else + return ControlDown(); +#endif + } protected: int m_rowOrCol; @@ -2062,6 +2077,14 @@ public: bool MetaDown() { return m_meta; } bool ShiftDown() { return m_shift; } bool AltDown() { return m_alt; } + bool CmdDown() + { +#if defined(__WXMAC__) || defined(__WXCOCOA__) + return MetaDown(); +#else + return ControlDown(); +#endif + } protected: wxGridCellCoords m_topLeft; @@ -2133,16 +2156,16 @@ typedef void (wxEvtHandler::*wxGridRangeSelectEventFunction)(wxGridRangeSelectEv typedef void (wxEvtHandler::*wxGridEditorCreatedEventFunction)(wxGridEditorCreatedEvent&); #define wxGridEventHandler(func) \ - (wxObjectEventFunction)wxStaticCastEvent(wxGridEventFunction, &func) + (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxGridEventFunction, &func) #define wxGridSizeEventHandler(func) \ - (wxObjectEventFunction)wxStaticCastEvent(wxGridSizeEventFunction, &func) + (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxGridSizeEventFunction, &func) #define wxGridRangeSelectEventHandler(func) \ - (wxObjectEventFunction)wxStaticCastEvent(wxGridRangeSelectEventFunction, &func) + (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxGridRangeSelectEventFunction, &func) #define wxGridEditorCreatedEventHandler(func) \ - (wxObjectEventFunction)wxStaticCastEvent(wxGridEditorCreatedEventFunction, &func) + (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxGridEditorCreatedEventFunction, &func) #define wx__DECLARE_GRIDEVT(evt, id, fn) \ wx__DECLARE_EVT1(wxEVT_GRID_ ## evt, id, wxGridEventHandler(fn))