Kaydet (Commit) 86450f9f authored tarafından Caolán McNamara's avatar Caolán McNamara

allow toolbox icons to be set directly from .ui

Change-Id: I8902fb837cfbd99b14a80527300470002571af36
üst ab398dbe
...@@ -201,6 +201,8 @@ public: ...@@ -201,6 +201,8 @@ public:
sal_Bool SetModeImage( const Image& rImage ); sal_Bool SetModeImage( const Image& rImage );
const Image& GetModeImage( ) const; const Image& GetModeImage( ) const;
virtual bool set_property(const OString &rKey, const OString &rValue); virtual bool set_property(const OString &rKey, const OString &rValue);
static Image loadThemeImage(const OString &rFileName);
}; };
#endif // _SV_FIXED_HXX #endif // _SV_FIXED_HXX
......
...@@ -1213,19 +1213,24 @@ const Image& FixedImage::GetModeImage( ) const ...@@ -1213,19 +1213,24 @@ const Image& FixedImage::GetModeImage( ) const
return maImage; return maImage;
} }
bool FixedImage::set_property(const OString &rKey, const OString &rValue) Image FixedImage::loadThemeImage(const OString &rFileName)
{ {
if (rKey == "pixbuf")
{
static ImplImageTreeSingletonRef aImageTree; static ImplImageTreeSingletonRef aImageTree;
OUString sCurrentSymbolsStyle = OUString sCurrentSymbolsStyle =
Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName(); Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName();
const OUString sFileName(OStringToOUString(rValue, RTL_TEXTENCODING_UTF8)); const OUString sFileName(OStringToOUString(rFileName, RTL_TEXTENCODING_UTF8));
BitmapEx aBitmap; BitmapEx aBitmap;
bool bSuccess = aImageTree->loadImage(sFileName, sCurrentSymbolsStyle, aBitmap, true); bool bSuccess = aImageTree->loadImage(sFileName, sCurrentSymbolsStyle, aBitmap, true);
SAL_WARN_IF(!bSuccess, "vcl.layout", "Unable to load " << sFileName SAL_WARN_IF(!bSuccess, "vcl.layout", "Unable to load " << sFileName
<< " from theme " << sCurrentSymbolsStyle); << " from theme " << sCurrentSymbolsStyle);
SetImage(Image(aBitmap)); return Image(aBitmap);
}
bool FixedImage::set_property(const OString &rKey, const OString &rValue)
{
if (rKey == "pixbuf")
{
SetImage(FixedImage::loadThemeImage(rValue));
} }
else else
return Control::set_property(rKey, rValue); return Control::set_property(rKey, rValue);
......
...@@ -585,6 +585,18 @@ namespace ...@@ -585,6 +585,18 @@ namespace
return bInconsistent; return bInconsistent;
} }
OString extractIconName(VclBuilder::stringmap &rMap)
{
OString sIconName;
VclBuilder::stringmap::iterator aFind = rMap.find(OString("icon-name"));
if (aFind != rMap.end())
{
sIconName = aFind->second;
rMap.erase(aFind);
}
return sIconName;
}
OUString getStockText(const OString &rType) OUString getStockText(const OString &rType)
{ {
if (rType == "gtk-ok") if (rType == "gtk-ok")
...@@ -1452,9 +1464,13 @@ Window *VclBuilder::makeObject(Window *pParent, const OString &name, const OStri ...@@ -1452,9 +1464,13 @@ Window *VclBuilder::makeObject(Window *pParent, const OString &name, const OStri
pToolBox->SetHelpId(nItemId, m_sHelpRoot + id); pToolBox->SetHelpId(nItemId, m_sHelpRoot + id);
} }
OUString sTooltip(OStringToOUString(extractTooltipText(rMap), RTL_TEXTENCODING_UTF8)); OString sTooltip(extractTooltipText(rMap));
if (!sTooltip.isEmpty()) if (!sTooltip.isEmpty())
pToolBox->SetQuickHelpText(nItemId, sTooltip); pToolBox->SetQuickHelpText(nItemId, OStringToOUString(sTooltip, RTL_TEXTENCODING_UTF8));
OString sIconName(extractIconName(rMap));
if (!sIconName.isEmpty())
pToolBox->SetItemImage(nItemId, FixedImage::loadThemeImage(sIconName));
return NULL; // no widget to be created return NULL; // no widget to be created
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment