diff options
author | Caolán McNamara <caolanm@redhat.com> | 2013-01-19 13:23:57 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-01-19 15:55:39 +0000 |
commit | b12a629ca43673b1e7dd440f36cb493a833293ee (patch) | |
tree | 19ee4a3cc745616b0aab46faa244148e5a7f1eda /vcl | |
parent | 06e76156d2ea1ce8a112f9e2312d6074478de648 (diff) |
allow access to menus via VclBuilder
Change-Id: I02c1d46f5c111a2256b2f90837097666dfc49edc
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/vcl/builder.hxx | 20 | ||||
-rw-r--r-- | vcl/source/window/builder.cxx | 4 |
2 files changed, 20 insertions, 4 deletions
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<const Window*, const Window*, bool> { @@ -207,6 +205,13 @@ public: ret = static_cast<T*>(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 <typename T /*=Window if we had c++11*/> T* get(OString sID) { @@ -216,6 +221,9 @@ public: assert(!w || dynamic_cast<T*>(w)); return static_cast<T*>(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<T>(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<MenuButton>(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<MenuAndId>::iterator aI = m_aMenus.begin(), aEnd = m_aMenus.end(); aI != aEnd; ++aI) |