X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3a8c693aea7d83397af67825943e2750f1723628..457e5a40e7d49f761887208f1874cb31068a31f1:/src/generic/gridctrl.cpp?ds=sidebyside diff --git a/src/generic/gridctrl.cpp b/src/generic/gridctrl.cpp index a0c35be0fc..e8da62f564 100644 --- a/src/generic/gridctrl.cpp +++ b/src/generic/gridctrl.cpp @@ -9,33 +9,33 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ - #pragma implementation "gridctrl.h" -#endif - #include "wx/wxprec.h" #ifdef __BORLANDC__ #pragma hdrstop #endif -#if wxUSE_GRID || wxUSE_NEW_GRID +#if wxUSE_GRID + +#include "wx/generic/gridctrl.h" #ifndef WX_PRECOMP #include "wx/textctrl.h" #include "wx/dc.h" + #include "wx/combobox.h" #endif // WX_PRECOMP -#include "wx/generic/gridctrl.h" #include "wx/tokenzr.h" // ---------------------------------------------------------------------------- // wxGridCellDateTimeRenderer // ---------------------------------------------------------------------------- -// Enables a grid cell to display a formated date and or time +#if wxUSE_DATETIME -wxGridCellDateTimeRenderer::wxGridCellDateTimeRenderer(wxString outformat, wxString informat) +// Enables a grid cell to display a formatted date and or time + +wxGridCellDateTimeRenderer::wxGridCellDateTimeRenderer(const wxString& outformat, const wxString& informat) { m_iformat = informat; m_oformat = outformat; @@ -54,11 +54,11 @@ wxGridCellRenderer *wxGridCellDateTimeRenderer::Clone() const return renderer; } -wxString wxGridCellDateTimeRenderer::GetString(wxGrid& grid, int row, int col) +wxString wxGridCellDateTimeRenderer::GetString(const wxGrid& grid, int row, int col) { wxGridTableBase *table = grid.GetTable(); - bool hasDatetime = FALSE; + bool hasDatetime = false; wxDateTime val; wxString text; if ( table->CanGetValueAs(row, col, wxGRID_VALUE_DATETIME) ) @@ -67,7 +67,7 @@ wxString wxGridCellDateTimeRenderer::GetString(wxGrid& grid, int row, int col) if (tempval){ val = *((wxDateTime *)tempval); - hasDatetime = TRUE; + hasDatetime = true; delete (wxDateTime *)tempval; } @@ -76,7 +76,7 @@ wxString wxGridCellDateTimeRenderer::GetString(wxGrid& grid, int row, int col) if (!hasDatetime ) { text = table->GetValue(row, col); - hasDatetime = (val.ParseFormat( text, m_iformat, m_dateDef ) != (wxChar *)NULL) ; + hasDatetime = (val.ParseFormat(text.c_str(), m_iformat, m_dateDef) != (wxChar *)NULL) ; } if ( hasDatetime ) @@ -116,11 +116,14 @@ wxSize wxGridCellDateTimeRenderer::GetBestSize(wxGrid& grid, return DoGetBestSize(attr, dc, GetString(grid, row, col)); } -void wxGridCellDateTimeRenderer::SetParameters(const wxString& params){ - if (!params.IsEmpty()) +void wxGridCellDateTimeRenderer::SetParameters(const wxString& params) +{ + if (!params.empty()) m_oformat=params; } +#endif // wxUSE_DATETIME + // ---------------------------------------------------------------------------- // wxGridCellChoiceNumberRenderer // ---------------------------------------------------------------------------- @@ -130,7 +133,7 @@ void wxGridCellDateTimeRenderer::SetParameters(const wxString& params){ wxGridCellEnumRenderer::wxGridCellEnumRenderer(const wxString& choices) { - if (!choices.IsEmpty()) + if (!choices.empty()) SetParameters(choices); } @@ -141,7 +144,7 @@ wxGridCellRenderer *wxGridCellEnumRenderer::Clone() const return renderer; } -wxString wxGridCellEnumRenderer::GetString(wxGrid& grid, int row, int col) +wxString wxGridCellEnumRenderer::GetString(const wxGrid& grid, int row, int col) { wxGridTableBase *table = grid.GetTable(); wxString text; @@ -218,11 +221,11 @@ void wxGridCellEnumRenderer::SetParameters(const wxString& params) // "John","Fred"..."Bob" in the combo choice box wxGridCellEnumEditor::wxGridCellEnumEditor(const wxString& choices) - : wxGridCellChoiceEditor() + :wxGridCellChoiceEditor() { m_startint = -1; - if (!choices.IsEmpty()) + if (!choices.empty()) SetParameters(choices); } @@ -247,7 +250,7 @@ void wxGridCellEnumEditor::BeginEdit(int row, int col, wxGrid* grid) else { wxString startValue = table->GetValue(row, col); - if (startValue.IsNumber() && !startValue.IsEmpty()) + if (startValue.IsNumber() && !startValue.empty()) { startValue.ToLong(&m_startint); } @@ -289,12 +292,8 @@ wxGridCellAutoWrapStringEditor::Create(wxWindow* parent, wxWindowID id, wxEvtHandler* evtHandler) { - m_control = new wxTextCtrl(parent, id, wxEmptyString, - wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE | wxTE_RICH); - - - wxGridCellEditor::Create(parent, id, evtHandler); + wxGridCellTextEditor::DoCreate(parent, id, evtHandler, + wxTE_MULTILINE | wxTE_RICH); } void @@ -325,7 +324,7 @@ wxGridCellAutoWrapStringRenderer::Draw(wxGrid& grid, wxArrayString wxGridCellAutoWrapStringRenderer::GetTextLines(wxGrid& grid, wxDC& dc, - wxGridCellAttr& attr, + const wxGridCellAttr& attr, const wxRect& rect, int row, int col) { @@ -340,27 +339,29 @@ wxGridCellAutoWrapStringRenderer::GetTextLines(wxGrid& grid, dc.SetFont(attr.GetFont()); wxStringTokenizer tk(data , _T(" \n\t\r")); - wxString thisline(""); + wxString thisline = wxEmptyString; while ( tk.HasMoreTokens() ) { wxString tok = tk.GetNextToken(); - //FIXME: this causes us to print an extra unnecesary - // space at the end of the line. But it - // is invisible , simplifies the size calculation - // and ensures tokens are seperated in the display - tok += _T(" "); + //FIXME: this causes us to print an extra unnecesary + // space at the end of the line. But it + // is invisible , simplifies the size calculation + // and ensures tokens are separated in the display + tok += _T(" "); dc.GetTextExtent(tok, &x, &y); - if ( curr_x + x > max_x) { + if ( curr_x + x > max_x) + { lines.Add( wxString(thisline) ); - thisline = tok; - curr_x=x; - } else { + thisline = tok; + curr_x=x; + } + else + { thisline+= tok; - curr_x += x; - } - + curr_x += x; + } } //Add last line lines.Add( wxString(thisline) ); @@ -381,13 +382,13 @@ wxGridCellAutoWrapStringRenderer::GetBestSize(wxGrid& grid, wxRect rect(0,0,width,10); // M is a nice large character 'y' gives descender!. - dc.GetTextExtent("My", &x, &y); + dc.GetTextExtent(wxT("My"), &x, &y); do { width+=10; rect.SetWidth(width); - height = y *( GetTextLines(grid,dc,attr,rect,row,col).GetCount()); + height = y * (wx_truncate_cast(wxCoord, GetTextLines(grid,dc,attr,rect,row,col).GetCount())); count--; // Search for a shape no taller than the golden ratio. } while (count && (width < (height*1.68)) );