diff --git a/code/nel/include/nel/gui/group_html.h b/code/nel/include/nel/gui/group_html.h
index 9c48149bf..62d8fb1a0 100644
--- a/code/nel/include/nel/gui/group_html.h
+++ b/code/nel/include/nel/gui/group_html.h
@@ -366,7 +366,7 @@ namespace NLGUI
void addString(const ucstring &str);
// Add an image in the current paragraph
- void addImage(const char *image, bool reloadImg=false, const CStyleParams &style = CStyleParams());
+ void addImage(const std::string &id, const char *image, bool reloadImg=false, const CStyleParams &style = CStyleParams());
// Add a text area in the current paragraph
CInterfaceGroup *addTextArea (const std::string &templateName, const char *name, uint rows, uint cols, bool multiLine, const ucstring &content, uint maxlength);
diff --git a/code/nel/src/gui/group_html.cpp b/code/nel/src/gui/group_html.cpp
index efea31898..ce9a8489d 100644
--- a/code/nel/src/gui/group_html.cpp
+++ b/code/nel/src/gui/group_html.cpp
@@ -1846,7 +1846,11 @@ namespace NLGUI
{
CStyleParams style;
float tmpf;
-
+
+ std::string id;
+ if (present[MY_HTML_IMG_ID] && value[MY_HTML_IMG_ID])
+ id = value[MY_HTML_IMG_ID];
+
if (present[MY_HTML_IMG_WIDTH] && value[MY_HTML_IMG_WIDTH])
getPercentage(style.Width, tmpf, value[MY_HTML_IMG_WIDTH]);
if (present[MY_HTML_IMG_HEIGHT] && value[MY_HTML_IMG_HEIGHT])
@@ -1880,13 +1884,13 @@ namespace NLGUI
if (getA() && getParent () && getParent ()->getParent())
{
string params = "name=" + getId() + "|url=" + getLink ();
- addButton(CCtrlButton::PushButton, value[MY_HTML_IMG_SRC], value[MY_HTML_IMG_SRC], value[MY_HTML_IMG_SRC],
+ addButton(CCtrlButton::PushButton, id, value[MY_HTML_IMG_SRC], value[MY_HTML_IMG_SRC],
overSrc, "browse", params.c_str(), tooltip, style);
}
else
if (tooltip || !overSrc.empty())
{
- addButton(CCtrlButton::PushButton, value[MY_HTML_IMG_SRC], value[MY_HTML_IMG_SRC], value[MY_HTML_IMG_SRC],
+ addButton(CCtrlButton::PushButton, id, value[MY_HTML_IMG_SRC], value[MY_HTML_IMG_SRC],
overSrc, "", "", tooltip, style);
}
else
@@ -1908,7 +1912,7 @@ namespace NLGUI
reloadImg = true;
}
- addImage (value[MY_HTML_IMG_SRC], reloadImg, style);
+ addImage(id, value[MY_HTML_IMG_SRC], reloadImg, style);
}
}
}
@@ -1920,6 +1924,10 @@ namespace NLGUI
// read general property
string templateName;
string minWidth;
+ string id;
+
+ if (present[MY_HTML_INPUT_ID] && value[MY_HTML_INPUT_ID])
+ id = value[MY_HTML_INPUT_ID];
// Widget template name
if (present[MY_HTML_INPUT_Z_BTN_TMPL] && value[MY_HTML_INPUT_Z_BTN_TMPL])
@@ -2114,6 +2122,10 @@ namespace NLGUI
{
if (btnType == CCtrlButton::RadioButton)
{
+ // override with 'id' because radio buttons share same name
+ if (!id.empty())
+ checkbox->setId(id);
+
// group together buttons with same name
CForm &form = _Forms.back();
bool notfound = true;
@@ -4528,7 +4540,7 @@ namespace NLGUI
// ***************************************************************************
- void CGroupHTML::addImage(const char *img, bool reloadImg, const CStyleParams &style)
+ void CGroupHTML::addImage(const std::string &id, const char *img, bool reloadImg, const CStyleParams &style)
{
// In a paragraph ?
if (!_Paragraph)
@@ -4544,6 +4556,7 @@ namespace NLGUI
// Not added ?
CViewBitmap *newImage = new CViewBitmap (TCtorParam());
+ newImage->setId(id);
//
// 1/ try to load the image with the old system (local files in bnp)
@@ -4746,7 +4759,7 @@ namespace NLGUI
// ***************************************************************************
- CCtrlButton *CGroupHTML::addButton(CCtrlButton::EType type, const std::string &/* name */, const std::string &normalBitmap, const std::string &pushedBitmap,
+ CCtrlButton *CGroupHTML::addButton(CCtrlButton::EType type, const std::string &name, const std::string &normalBitmap, const std::string &pushedBitmap,
const std::string &overBitmap, const char *actionHandler, const char *actionHandlerParams,
const char *tooltip, const CStyleParams &style)
{
@@ -4759,6 +4772,10 @@ namespace NLGUI
// Add the ctrl button
CCtrlButton *ctrlButton = new CCtrlButton(TCtorParam());
+ if (!name.empty())
+ {
+ ctrlButton->setId(name);
+ }
// Load only tga files.. (conversion in dds filename is done in the lookup procedure)
string normal = normalBitmap.empty()?"":CFile::getPath(normalBitmap) + CFile::getFilenameWithoutExtension(normalBitmap) + ".tga";
@@ -4855,7 +4872,7 @@ namespace NLGUI
getParagraph()->addChild (ctrlButton);
paragraphChange ();
-
+
setImageSize(ctrlButton, style);
return ctrlButton;
@@ -6004,12 +6021,12 @@ namespace NLGUI
if (!url.empty())
{
string params = "name=" + getId() + "|url=" + getLink ();
- addButton(CCtrlButton::PushButton, ls.toString(1), ls.toString(1), ls.toString(1),
+ addButton(CCtrlButton::PushButton, "", ls.toString(1), ls.toString(1),
"", "browse", params.c_str(), "", style);
}
else
{
- addImage(ls.toString(1), false, style);
+ addImage("", ls.toString(1), false, style);
}