summaryrefslogtreecommitdiff
path: root/vcl/source/window
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-12-05 16:19:57 +0000
committerCaolán McNamara <caolanm@redhat.com>2012-12-05 16:29:21 +0000
commitc2b8f129f378a23d626c4985238faa813cbaf381 (patch)
tree0922424bb9c7c8f0c3ba802ae6b089abc7b71855 /vcl/source/window
parentffc75b57349418db21ebf71086a7750d38f1280b (diff)
allow arbitrary icons from our icon-themes as button images
Change-Id: Ibe02b485e265ac6274b0aab51676efb0e1d280ae
Diffstat (limited to 'vcl/source/window')
-rw-r--r--vcl/source/window/builder.cxx19
1 files changed, 12 insertions, 7 deletions
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index 9acdad152356..596bf1897a49 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -204,17 +204,22 @@ VclBuilder::VclBuilder(Window *pParent, OUString sUIDir, OUString sUIFile, OStri
{
PushButton *pTarget = get<PushButton>(aI->m_sID);
FixedImage *pImage = get<FixedImage>(aI->m_sValue);
- aImagesToBeRemoved.insert(aI->m_sValue);
- const OString &rImage = m_pParserState->m_aStockMap[aI->m_sValue];
- SymbolType eType = mapStockToSymbol(rImage);
- SAL_WARN_IF(!pTarget || !pImage || eType == SYMBOL_NOSYMBOL,
+ SAL_WARN_IF(!pTarget || !pImage,
"vcl", "missing elements of button/image/stock");
- if (!pTarget || eType == SYMBOL_NOSYMBOL)
+ if (!pTarget || !pImage)
continue;
+ aImagesToBeRemoved.insert(aI->m_sValue);
- //to-do, situation where image isn't a stock image
- if (pTarget && eType != SYMBOL_NOSYMBOL)
+ VclBuilder::stringmap::iterator aFind = m_pParserState->m_aStockMap.find(aI->m_sValue);
+ if (aFind == m_pParserState->m_aStockMap.end())
+ pTarget->SetModeImage(pImage->GetImage());
+ else
{
+ const OString &rImage = aFind->second;
+ SymbolType eType = mapStockToSymbol(rImage);
+ SAL_WARN_IF(eType == SYMBOL_NOSYMBOL, "vcl", "missing stock image element for button");
+ if (eType == SYMBOL_NOSYMBOL)
+ continue;
pTarget->SetSymbol(eType);
if (eType == SYMBOL_IMAGE)
pTarget->SetModeImage(Bitmap(VclResId(mapStockToImageResource(rImage))));