From b12a629ca43673b1e7dd440f36cb493a833293ee Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Sat, 19 Jan 2013 13:23:57 +0000 Subject: allow access to menus via VclBuilder Change-Id: I02c1d46f5c111a2256b2f90837097666dfc49edc --- vcl/inc/vcl/builder.hxx | 20 ++++++++++++++++++-- vcl/source/window/builder.cxx | 4 ++-- 2 files changed, 20 insertions(+), 4 deletions(-) (limited to 'vcl') diff --git a/vcl/inc/vcl/builder.hxx b/vcl/inc/vcl/builder.hxx index 09426676da1e..96f588095e88 100644 --- a/vcl/inc/vcl/builder.hxx +++ b/vcl/inc/vcl/builder.hxx @@ -179,8 +179,6 @@ private: Window *get_by_name(OString sID); void delete_by_name(OString sID); - PopupMenu *get_menu_by_name(OString sID); - class sortIntoBestTabTraversalOrder : public std::binary_function { @@ -207,6 +205,13 @@ public: ret = static_cast(w); return ret; } + PopupMenu* get_menu(PopupMenu*& ret, OString sID) + { + ret = get_menu(sID); + SAL_WARN_IF(!ret, "vcl.layout", "menu \"" << sID.getStr() << "\" not found in .ui"); + assert(ret); + return ret; + } //sID may not exist, but must be of type T if it does template T* get(OString sID) { @@ -216,6 +221,9 @@ public: assert(!w || dynamic_cast(w)); return static_cast(w); } + //sID may not exist + PopupMenu* get_menu(OString sID); + OString get_by_window(const Window *pWindow) const; void delete_by_window(const Window *pWindow); @@ -300,6 +308,14 @@ public: { return m_pUIBuilder->get(sID); } + PopupMenu* get_menu(PopupMenu*& ret, OString sID) + { + return m_pUIBuilder->get_menu(ret, sID); + } + PopupMenu* get_menu(OString sID) + { + return m_pUIBuilder->get_menu(sID); + } }; /* diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index 08f2115b1cf8..79a6204f6ce2 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -290,7 +290,7 @@ VclBuilder::VclBuilder(Window *pParent, OUString sUIDir, OUString sUIFile, OStri aEnd = m_pParserState->m_aButtonMenuMaps.end(); aI != aEnd; ++aI) { MenuButton *pTarget = get(aI->m_sID); - PopupMenu *pMenu = get_menu_by_name(aI->m_sValue); + PopupMenu *pMenu = get_menu(aI->m_sValue); SAL_WARN_IF(!pTarget || !pMenu, "vcl", "missing elements of button/menu"); if (!pTarget || !pMenu) @@ -2148,7 +2148,7 @@ Window *VclBuilder::get_by_name(OString sID) return NULL; } -PopupMenu *VclBuilder::get_menu_by_name(OString sID) +PopupMenu *VclBuilder::get_menu(OString sID) { for (std::vector::iterator aI = m_aMenus.begin(), aEnd = m_aMenus.end(); aI != aEnd; ++aI) -- cgit