#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"
// ----------------------------------------------------------------------------
#if wxUSE_DATETIME
-// Enables a grid cell to display a formated date and or time
+// Enables a grid cell to display a formatted date and or time
-wxGridCellDateTimeRenderer::wxGridCellDateTimeRenderer(wxString outformat, wxString informat)
+wxGridCellDateTimeRenderer::wxGridCellDateTimeRenderer(const wxString& outformat, const wxString& informat)
{
m_iformat = informat;
m_oformat = outformat;
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();
{
void * tempval = table->GetValueAsCustom(row, col,wxGRID_VALUE_DATETIME);
- if (tempval){
+ if (tempval)
+ {
val = *((wxDateTime *)tempval);
hasDatetime = true;
delete (wxDateTime *)tempval;
if (!hasDatetime )
{
text = table->GetValue(row, col);
- hasDatetime = (val.ParseFormat( text, m_iformat, m_dateDef ) != (wxChar *)NULL) ;
+ const char * const end = val.ParseFormat(text, m_iformat, m_dateDef);
+ hasDatetime = end && !*end;
}
if ( hasDatetime )
text = val.Format(m_oformat, m_tz );
- //If we faild to parse string just show what we where given?
+ // If we failed to parse string just show what we where given?
return text;
}
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;
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
wxArrayString
wxGridCellAutoWrapStringRenderer::GetTextLines(wxGrid& grid,
wxDC& dc,
- wxGridCellAttr& attr,
+ const wxGridCellAttr& attr,
const wxRect& rect,
int row, int col)
{
wxDC& dc,
int row, int col)
{
- wxCoord x,y, height , width = grid.GetColSize(col) -10;
+ wxCoord x,y, height , width = grid.GetColSize(col) -20;
+ // for width, subtract 20 because ColSize includes a magin of 10 pixels
+ // that we do not want here and because we always start with an increment
+ // by 10 in the loop below.
int count = 250; //Limit iterations..
wxRect rect(0,0,width,10);
{
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)) );