diff --git a/code/nel/include/nel/gui/group_html.h b/code/nel/include/nel/gui/group_html.h
index 3be8a3504..f6fed140f 100644
--- a/code/nel/include/nel/gui/group_html.h
+++ b/code/nel/include/nel/gui/group_html.h
@@ -106,6 +106,10 @@ namespace NLGUI
sint32 MaxHeight;
};
+ // ImageDownload system
+ enum TDataType {ImgType= 0, BnpType};
+ enum TImageType {NormalImage=0, OverImage};
+
// Constructor
CGroupHTML(const TCtorParam ¶m);
~CGroupHTML();
@@ -151,6 +155,10 @@ namespace NLGUI
// End of the paragraph
void endParagraph();
+
+ // add image download (used by view_bitmap.cpp to load web images)
+ void addImageDownload(const std::string &url, CViewBase *img, const CStyleParams &style = CStyleParams(), const TImageType type = NormalImage);
+ std::string localImageName(const std::string &url);
// Timeout
void setTimeout(float tm) {_TimeoutValue= std::max(0.f, tm);}
@@ -729,6 +737,8 @@ namespace NLGUI
return 0;
return _Indent.back();
}
+
+
// Current node is a title
bool _Title;
@@ -818,10 +828,6 @@ namespace NLGUI
private:
// decode all HTML entities
static ucstring decodeHTMLEntities(const ucstring &str);
-
- // ImageDownload system
- enum TDataType {ImgType= 0, BnpType};
- enum TImageType {NormalImage=0, OverImage};
struct CDataImageDownload
{
@@ -864,8 +870,6 @@ namespace NLGUI
void initImageDownload();
void checkImageDownload();
- void addImageDownload(const std::string &url, CViewBase *img, const CStyleParams &style = CStyleParams(), const TImageType type = NormalImage);
- std::string localImageName(const std::string &url);
std::string getAbsoluteUrl(const std::string &url);
bool isTrustedDomain(const std::string &domain);
diff --git a/code/nel/src/gui/view_bitmap.cpp b/code/nel/src/gui/view_bitmap.cpp
index b479cb889..79b8c32a4 100644
--- a/code/nel/src/gui/view_bitmap.cpp
+++ b/code/nel/src/gui/view_bitmap.cpp
@@ -21,6 +21,7 @@
#include "nel/gui/widget_manager.h"
#include "nel/gui/interface_group.h"
#include "nel/gui/group_container_base.h"
+#include "nel/gui/group_html.h"
using namespace std;
using namespace NLMISC;
@@ -452,7 +453,19 @@ namespace NLGUI
// ----------------------------------------------------------------------------
void CViewBitmap::setTexture(const std::string & TxName)
{
- _TextureId.setTexture (TxName.c_str (), _TxtOffsetX, _TxtOffsetY, _TxtWidth, _TxtHeight, false);
+ if (TxName.find("://") != string::npos || TxName.find("//") == 0)
+ {
+ CGroupHTML *groupHtml = dynamic_cast(CWidgetManager::getInstance()->getElementFromId("ui:interface:webig:content:html"));
+ if (groupHtml) {
+ string localname = groupHtml->localImageName(TxName);
+ if (!CFile::fileExists(localname))
+ localname = "web_del.tga";
+ _TextureId.setTexture (localname.c_str(), _TxtOffsetX, _TxtOffsetY, _TxtWidth, _TxtHeight, false);
+ groupHtml->addImageDownload(TxName, dynamic_cast(this));
+ }
+ }
+ else
+ _TextureId.setTexture (TxName.c_str (), _TxtOffsetX, _TxtOffsetY, _TxtWidth, _TxtHeight, false);
}
// ----------------------------------------------------------------------------