#if wxUSE_HTML && wxUSE_STREAMS
-#ifndef WXPRECOMP
+#ifndef WX_PRECOMP
+ #include "wx/wxcrtvararg.h"
#endif
#include "wx/html/forcelnk.h"
public:
wxHtmlTableCell(wxHtmlContainerCell *parent, const wxHtmlTag& tag, double pixel_scale = 1.0);
- ~wxHtmlTableCell();
+ virtual ~wxHtmlTableCell();
virtual void RemoveExtraSpacing(bool top, bool bottom);
/* scan params: */
if (tag.HasParam(wxT("BGCOLOR")))
+ {
tag.GetParamAsColour(wxT("BGCOLOR"), &m_tBkg);
+ if (m_tBkg.Ok())
+ SetBackgroundColour(m_tBkg);
+ }
if (tag.HasParam(wxT("VALIGN")))
m_tValign = tag.GetParam(wxT("VALIGN"));
else
if (wd[wd.length()-1] == wxT('%'))
{
- wxSscanf(wd.c_str(), wxT("%i%%"), &m_ColsInfo[c].width);
- m_ColsInfo[c].units = wxHTML_UNITS_PERCENT;
+ if ( wxSscanf(wd.c_str(), wxT("%i%%"), &m_ColsInfo[c].width) == 1 )
+ {
+ m_ColsInfo[c].units = wxHTML_UNITS_PERCENT;
+ }
}
else
{
- wxSscanf(wd.c_str(), wxT("%i"), &m_ColsInfo[c].width);
- m_ColsInfo[c].width = (int)(m_PixelScale * (double)m_ColsInfo[c].width);
- m_ColsInfo[c].units = wxHTML_UNITS_PIXELS;
+ long width;
+ if ( wd.ToLong(&width) )
+ {
+ m_ColsInfo[c].width = (int)(m_PixelScale * (double)width);
+ m_ColsInfo[c].units = wxHTML_UNITS_PIXELS;
+ }
}
}
}
m_ColsInfo[i].leftpos = wpos;
wpos += m_ColsInfo[i].pixwidth + m_Spacing;
}
+
+ // add the remaining space to the last column
+ if (m_NumCols > 0 && wpos < m_Width)
+ m_ColsInfo[m_NumCols-1].pixwidth += m_Width - wpos;
}
/* 3. sub-layout all cells: */
oldcont = c = m_WParser->OpenContainer();
- m_Table = new wxHtmlTableCell(c, tag);
+ m_Table = new wxHtmlTableCell(c, tag, m_WParser->GetPixelScale());
// width:
{