#if wxUSE_HTML && wxUSE_STREAMS
-#ifndef WXPRECOMP
+#ifndef WX_PRECOMP
#include "wx/dynarray.h"
#include "wx/brush.h"
#include "wx/colour.h"
#include "wx/dc.h"
#include "wx/settings.h"
+ #include "wx/module.h"
+ #include "wx/wxcrtvararg.h"
#endif
#include "wx/html/htmlcell.h"
#include "wx/html/htmlwin.h"
-#include "wx/module.h"
#include <stdlib.h>
wxHtmlWordCell::wxHtmlWordCell(const wxString& word, const wxDC& dc) : wxHtmlCell()
{
m_Word = word;
- dc.GetTextExtent(m_Word, &m_Width, &m_Height, &m_Descent);
+ wxCoord w, h, d;
+ dc.GetTextExtent(m_Word, &w, &h, &d);
+ m_Width = w;
+ m_Height = h;
+ m_Descent = d;
SetCanLiveOnPagebreak(false);
m_allowLinebreak = true;
}
if ( step > 0 )
{
// first count the cells which will get extra space
- int total = 0;
+ int total = -1;
const wxHtmlCell *c;
if ( line != cell )
{
- for ( c = line->GetNext(); c != cell; c = c->GetNext() )
+ for ( c = line; c != cell; c = c->GetNext() )
{
if ( c->IsLinebreakAllowed() )
{
// and now extra space to those cells which merit it
if ( total )
{
- // first cell on line is not moved:
- line->SetPos(line->GetPosX() + s_indent,
- line->GetPosY() + ypos);
+ // first visible cell on line is not moved:
+ while (line !=cell && !line->IsLinebreakAllowed())
+ {
+ line->SetPos(line->GetPosX() + s_indent,
+ line->GetPosY() + ypos);
+ line = line->GetNext();
+ }
+
+ if (line != cell)
+ {
+ line->SetPos(line->GetPosX() + s_indent,
+ line->GetPosY() + ypos);
+
+ line = line->GetNext();
+ }
- line = line->GetNext();
for ( int n = 0; line != cell; line = line->GetNext() )
{
if ( line->IsLinebreakAllowed() )