From 324e116a2e454526891b674da58d07061406f868 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Sat, 20 Oct 2012 12:37:42 +0100 Subject: add a stock index image to vcl, ala gtk-index Change-Id: I96cd80f14d557752c19b88bb2c99298d7c3e3e0b --- vcl/inc/svids.hrc | 1 + vcl/source/src/images.src | 5 +++++ vcl/source/window/builder.cxx | 18 +++++++++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) (limited to 'vcl') diff --git a/vcl/inc/svids.hrc b/vcl/inc/svids.hrc index e0a64f643cb3..5abe5bd84b51 100644 --- a/vcl/inc/svids.hrc +++ b/vcl/inc/svids.hrc @@ -41,6 +41,7 @@ #define SV_RESID_BITMAP_SCROLLMSK 1050 #define SV_RESID_BITMAP_SCROLLBMP 1051 #define SV_RESID_BITMAP_CLOSEDOC 1052 +#define SV_RESID_BITMAP_INDEX 1053 #define SV_DISCLOSURE_PLUS 1060 #define SV_DISCLOSURE_MINUS 1061 diff --git a/vcl/source/src/images.src b/vcl/source/src/images.src index f0b58f4d82d1..061f59c6b676 100644 --- a/vcl/source/src/images.src +++ b/vcl/source/src/images.src @@ -77,6 +77,11 @@ Bitmap SV_RESID_BITMAP_CLOSEDOC File = "closedoc.png"; }; +Bitmap SV_RESID_BITMAP_INDEX +{ + File = "index.png"; +}; + Bitmap SV_RESID_BITMAP_SPLITHPIN { File = "splhpin.png"; diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index 735bde150d71..20a2b71de725 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -33,6 +33,14 @@ namespace { + sal_uInt16 mapStockToImageResource(OString sType) + { + sal_uInt16 nRet = 0; + if (sType == "gtk-index") + nRet = SV_RESID_BITMAP_INDEX; + return nRet; + } + SymbolType mapStockToSymbol(OString sType) { SymbolType eRet = SYMBOL_NOSYMBOL; @@ -54,6 +62,8 @@ namespace eRet = SYMBOL_HELP; else if (sType == "gtk-close") eRet = SYMBOL_CLOSE; + else if (mapStockToImageResource(sType)) + eRet = SYMBOL_IMAGE; return eRet; } } @@ -168,13 +178,19 @@ VclBuilder::VclBuilder(Window *pParent, OUString sUIDir, OUString sUIFile, OStri PushButton *pTarget = get(aI->m_sID); FixedImage *pImage = get(aI->m_sValue); aImagesToBeRemoved.insert(aI->m_sValue); - SymbolType eType = mapStockToSymbol(m_pParserState->m_aStockMap[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, "vcl", "missing elements of button/image/stock"); + if (!pTarget || eType == SYMBOL_NOSYMBOL) + continue; + //to-do, situation where image isn't a stock image if (pTarget && eType != SYMBOL_NOSYMBOL) { pTarget->SetSymbol(eType); + if (eType == SYMBOL_IMAGE) + pTarget->SetModeImage(VclResId(mapStockToImageResource(rImage))); } } -- cgit v1.2.3