diff --git a/code/nel/include/nel/gui/group_table.h b/code/nel/include/nel/gui/group_table.h
index f41b1c074..f161c04f9 100644
--- a/code/nel/include/nel/gui/group_table.h
+++ b/code/nel/include/nel/gui/group_table.h
@@ -78,6 +78,8 @@ namespace NLGUI
// The Width you want in pixel. This is the
parameter
sint32 WidthWanted;
+ sint32 ColSpan;
+ sint32 RowSpan;
// The min height of the cell
sint32 Height;
diff --git a/code/nel/src/gui/group_html.cpp b/code/nel/src/gui/group_html.cpp
index 56398a10a..6266ea769 100644
--- a/code/nel/src/gui/group_html.cpp
+++ b/code/nel/src/gui/group_html.cpp
@@ -1519,11 +1519,19 @@ namespace NLGUI
}
}
}
+
+ if (present[MY_HTML_TD_COLSPAN] && value[MY_HTML_TD_COLSPAN])
+ fromString(value[MY_HTML_TD_COLSPAN], _Cells.back()->ColSpan);
+ if (present[MY_HTML_TD_ROWSPAN] && value[MY_HTML_TD_ROWSPAN])
+ fromString(value[MY_HTML_TD_ROWSPAN], _Cells.back()->RowSpan);
+
_Cells.back()->BgColor = _CellParams.back().BgColor;
_Cells.back()->Align = _CellParams.back().Align;
_Cells.back()->VAlign = _CellParams.back().VAlign;
_Cells.back()->LeftMargin = _CellParams.back().LeftMargin;
_Cells.back()->NoWrap = _CellParams.back().NoWrap;
+ _Cells.back()->ColSpan = std::max(1, _Cells.back()->ColSpan);
+ _Cells.back()->RowSpan = std::max(1, _Cells.back()->RowSpan);
float temp;
if (present[MY_HTML_TD_WIDTH] && value[MY_HTML_TD_WIDTH])
diff --git a/code/nel/src/gui/group_table.cpp b/code/nel/src/gui/group_table.cpp
index 7c6a95b24..677260dbb 100644
--- a/code/nel/src/gui/group_table.cpp
+++ b/code/nel/src/gui/group_table.cpp
@@ -44,6 +44,8 @@ namespace NLGUI
TableRatio = 0.f;
WidthWanted = 0;
Height = 0;
+ ColSpan = 1;
+ RowSpan = 1;
Group = new CInterfaceGroup(CViewBase::TCtorParam());
Align = Left;
VAlign = Top;
@@ -249,6 +251,22 @@ namespace NLGUI
AddChildW = b;
return;
}
+ else
+ if (name == "colspan" )
+ {
+ sint32 i;
+ if (fromString( value, i ) )
+ ColSpan = std::max(1, i);
+ return;
+ }
+ else
+ if (name == "rowspan" )
+ {
+ sint32 i;
+ if (fromString( value, i ) )
+ RowSpan = std::max(1, i);
+ return;
+ }
else
CInterfaceGroup::setProperty( name, value );
}
@@ -310,6 +328,8 @@ namespace NLGUI
xmlSetProp( node, BAD_CAST "ignore_max_width", BAD_CAST toString( IgnoreMaxWidth ).c_str() );
xmlSetProp( node, BAD_CAST "ignore_min_width", BAD_CAST toString( IgnoreMinWidth ).c_str() );
xmlSetProp( node, BAD_CAST "add_child_w", BAD_CAST toString( AddChildW ).c_str() );
+ xmlSetProp( node, BAD_CAST "colspan", BAD_CAST toString( ColSpan ).c_str() );
+ xmlSetProp( node, BAD_CAST "rowspan", BAD_CAST toString( RowSpan ).c_str() );
return node;
}
@@ -422,6 +442,22 @@ namespace NLGUI
{
AddChildW = convertBool(ptr);
}
+ //
+ ptr = (char*) xmlGetProp( cur, (xmlChar*)"colspan" );
+ if (ptr)
+ {
+ sint32 i;
+ if (fromString((const char*)ptr, i))
+ ColSpan = std::max(1, i);
+ }
+ //
+ ptr = (char*) xmlGetProp( cur, (xmlChar*)"rowspan" );
+ if (ptr)
+ {
+ sint32 i;
+ if (fromString((const char*)ptr, i))
+ RowSpan = std::max(1, i);
+ }
return true;
}
|