void ManagedMenuButton::PrepareExecute()
{ if (!GetPopupMenu())
SetPopupMenu(VclPtr<PopupMenu>::Create(), true);
MenuButton::PrepareExecute();
if (m_xPopupController.is())
{
m_xPopupController->updatePopupMenu(); return;
}
if (!m_xPopupMenu.is())
m_xPopupMenu = GetPopupMenu()->CreateMenuInterface();
// FIXME: get the frame from the parent VclBuilder. const css::uno::Reference<css::uno::XComponentContext>& xContext(comphelper::getProcessComponentContext());
css::uno::Reference<css::frame::XDesktop2> xDesktop(css::frame::theDesktop::get(xContext));
css::uno::Reference<css::frame::XFrame> xFrame(xDesktop->getActiveFrame()); if (!xFrame.is()) return;
if (xPopupMenuControllerFactory->hasController(aCommand, aModuleName))
m_xPopupController.set(xPopupMenuControllerFactory->createInstanceWithArgumentsAndContext(
aCommand, aArgs, xContext), css::uno::UNO_QUERY);
}
// No registered controller found, use one the can handle arbitrary menus (e.g. defined in .ui file). if (!m_xPopupController.is())
m_xPopupController.set(xContext->getServiceManager()->createInstanceWithArgumentsAndContext(
u"com.sun.star.comp.framework.ResourceMenuController"_ustr, aArgs, xContext), css::uno::UNO_QUERY);
if (m_xPopupController.is())
m_xPopupController->setPopupMenu(m_xPopupMenu);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.