LibreOffice Module vcl (master) 1
Public Member Functions | Static Public Member Functions | Private Member Functions | Friends | List of all members
PopupMenu Class Referencefinal

#include <menu.hxx>

Inheritance diagram for PopupMenu:
[legend]
Collaboration diagram for PopupMenu:
[legend]

Public Member Functions

 PopupMenu ()
 
 PopupMenu (const PopupMenu &rMenu)
 
virtual ~PopupMenu () override
 
virtual bool IsMenuBar () const override
 
virtual void ClosePopup (Menu *pMenu) override
 Close the 'pStartedFrom' menu window. More...
 
void SetText (const OUString &rTitle)
 
sal_uInt16 Execute (vcl::Window *pWindow, const Point &rPopupPos)
 
sal_uInt16 Execute (vcl::Window *pWindow, const tools::Rectangle &rRect, PopupMenuFlags nFlags=PopupMenuFlags::NONE)
 
void EndExecute ()
 
virtual void SelectItem (sal_uInt16 nId) override
 
void SetSelectedEntry (sal_uInt16 nId)
 
css::uno::Reference< css::awt::XPopupMenu > CreateMenuInterface ()
 
PopupMenuoperator= (const PopupMenu &rMenu)
 
- Public Member Functions inherited from Menu
SAL_DLLPRIVATE void ImplKillLayoutData () const
 
SAL_DLLPRIVATE vcl::WindowImplGetWindow () const
 
virtual ~Menu () override
 
virtual void dispose () override
 
void Activate ()
 
void Deactivate ()
 
void Select ()
 
void InsertItem (sal_uInt16 nItemId, const OUString &rStr, MenuItemBits nItemBits=MenuItemBits::NONE, const OString &rIdent=OString(), sal_uInt16 nPos=MENU_APPEND)
 
void InsertItem (sal_uInt16 nItemId, const Image &rImage, MenuItemBits nItemBits=MenuItemBits::NONE, const OString &rIdent=OString(), sal_uInt16 nPos=MENU_APPEND)
 
void InsertItem (sal_uInt16 nItemId, const OUString &rString, const Image &rImage, MenuItemBits nItemBits=MenuItemBits::NONE, const OString &rIdent=OString(), sal_uInt16 nPos=MENU_APPEND)
 
void InsertSeparator (const OString &rIdent=OString(), sal_uInt16 nPos=MENU_APPEND)
 
void RemoveItem (sal_uInt16 nPos)
 
void Clear ()
 
void CreateAutoMnemonics ()
 
void SetMenuFlags (MenuFlags nFlags)
 
MenuFlags GetMenuFlags () const
 
sal_uInt16 GetItemCount () const
 
sal_uInt16 GetItemId (sal_uInt16 nPos) const
 
sal_uInt16 GetItemId (std::string_view rIdent) const
 
sal_uInt16 GetItemPos (sal_uInt16 nItemId) const
 
OString GetItemIdent (sal_uInt16 nItemId) const
 
MenuItemType GetItemType (sal_uInt16 nPos) const
 
sal_uInt16 GetCurItemId () const
 
OString const & GetCurItemIdent () const
 
void SetItemBits (sal_uInt16 nItemId, MenuItemBits nBits)
 
MenuItemBits GetItemBits (sal_uInt16 nItemId) const
 
void SetUserValue (sal_uInt16 nItemId, void *nUserValue, MenuUserDataReleaseFunction aFunc=nullptr)
 
void * GetUserValue (sal_uInt16 nItemId) const
 
void SetPopupMenu (sal_uInt16 nItemId, PopupMenu *pMenu)
 
PopupMenuGetPopupMenu (sal_uInt16 nItemId) const
 
void SetAccelKey (sal_uInt16 nItemId, const vcl::KeyCode &rKeyCode)
 
vcl::KeyCode GetAccelKey (sal_uInt16 nItemId) const
 
void CheckItem (sal_uInt16 nItemId, bool bCheck=true)
 
void CheckItem (std::string_view rIdent, bool bCheck=true)
 
bool IsItemChecked (sal_uInt16 nItemId) const
 
virtual void SelectItem (sal_uInt16 nItemId)=0
 
void EnableItem (sal_uInt16 nItemId, bool bEnable=true)
 
void EnableItem (std::string_view rIdent, bool bEnable=true)
 
bool IsItemEnabled (sal_uInt16 nItemId) const
 
void ShowItem (sal_uInt16 nItemId, bool bVisible=true)
 
void HideItem (sal_uInt16 nItemId)
 
bool IsItemPosVisible (sal_uInt16 nItemPos) const
 
bool IsMenuVisible () const
 
virtual bool IsMenuBar () const =0
 
void RemoveDisabledEntries (bool bRemoveEmptyPopups=false)
 
void UpdateNativeMenu ()
 
void SetItemText (sal_uInt16 nItemId, const OUString &rStr)
 
OUString GetItemText (sal_uInt16 nItemId) const
 
void SetItemImage (sal_uInt16 nItemId, const Image &rImage)
 
Image GetItemImage (sal_uInt16 nItemId) const
 
void SetItemCommand (sal_uInt16 nItemId, const OUString &rCommand)
 
OUString GetItemCommand (sal_uInt16 nItemId) const
 
void SetHelpText (sal_uInt16 nItemId, const OUString &rString)
 
OUString GetHelpText (sal_uInt16 nItemId) const
 
void SetTipHelpText (sal_uInt16 nItemId, const OUString &rString)
 
OUString GetTipHelpText (sal_uInt16 nItemId) const
 
void SetHelpCommand (sal_uInt16 nItemId, const OUString &rString)
 
OUString GetHelpCommand (sal_uInt16 nItemId) const
 
void SetHelpId (sal_uInt16 nItemId, const OString &rHelpId)
 
OString GetHelpId (sal_uInt16 nItemId) const
 
void SetActivateHdl (const Link< Menu *, bool > &rLink)
 
void SetDeactivateHdl (const Link< Menu *, bool > &rLink)
 
void SetSelectHdl (const Link< Menu *, bool > &rLink)
 
sal_uInt16 GetTitleHeight () const
 
void AddEventListener (const Link< VclMenuEvent &, void > &rEventListener)
 
void RemoveEventListener (const Link< VclMenuEvent &, void > &rEventListener)
 
Menuoperator= (const Menu &rMenu)
 
MenuItemListGetItemList () const
 
void GetSystemMenuData (SystemMenuData *pData) const
 
tools::Rectangle GetCharacterBounds (sal_uInt16 nItemId, tools::Long nIndex) const
 
tools::Long GetIndexForPoint (const Point &rPoint, sal_uInt16 &rItemID) const
 
tools::Rectangle GetBoundingRectangle (sal_uInt16 nItemPos) const
 
css::uno::Reference< css::accessibility::XAccessible > GetAccessible ()
 
void SetAccessible (const css::uno::Reference< css::accessibility::XAccessible > &rxAccessible)
 
KeyEvent GetActivationKey (sal_uInt16 nItemId) const
 
vcl::WindowGetWindow () const
 
void SetAccessibleName (sal_uInt16 nItemId, const OUString &rStr)
 
OUString GetAccessibleName (sal_uInt16 nItemId) const
 
void SetAccessibleDescription (sal_uInt16 nItemId, const OUString &rStr)
 
OUString GetAccessibleDescription (sal_uInt16 nItemId) const
 
bool IsHighlighted (sal_uInt16 nItemPos) const
 
void HighlightItem (sal_uInt16 nItemPos)
 
void DeHighlight ()
 
bool HandleMenuCommandEvent (Menu *pMenu, sal_uInt16 nEventId) const
 
bool HandleMenuActivateEvent (Menu *pMenu) const
 
bool HandleMenuDeActivateEvent (Menu *pMenu) const
 
void set_id (const OUString &rID)
 Sets an ID. More...
 
const OUString & get_id () const
 Get the ID of the window. More...
 
- Public Member Functions inherited from VclReferenceBase
void acquire () const
 
void release () const
 
sal_Int32 getRefCount () const
 
void disposeOnce ()
 
bool isDisposed () const
 

Static Public Member Functions

static PopupMenuGetActivePopupMenu ()
 

Private Member Functions

SAL_DLLPRIVATE MenuFloatingWindowImplGetFloatingWindow () const
 
SAL_DLLPRIVATE bool PrepareRun (const VclPtr< vcl::Window > &pParentWin, tools::Rectangle &rRect, FloatWinPopupFlags &nPopupModeFlags, Menu *pSFrom, bool &bRealExecute, VclPtr< MenuFloatingWindow > &)
 
SAL_DLLPRIVATE bool Run (const VclPtr< MenuFloatingWindow > &, bool bRealExecute, bool bPreSelectFirst, FloatWinPopupFlags nPopupModeFlags, Menu *pSFrom, const tools::Rectangle &rRect)
 
SAL_DLLPRIVATE void FinishRun (const VclPtr< MenuFloatingWindow > &, const VclPtr< vcl::Window > &pParentWin, bool bRealExecute, bool bIsNativeMenu)
 
SAL_DLLPRIVATE sal_uInt16 ImplExecute (const VclPtr< vcl::Window > &pParentWin, const tools::Rectangle &rRect, FloatWinPopupFlags nPopupModeFlags, Menu *pSFrom, bool bPreSelectFirst)
 
SAL_DLLPRIVATE void ImplFlushPendingSelect ()
 
SAL_DLLPRIVATE tools::Long ImplCalcHeight (sal_uInt16 nEntries) const
 
SAL_DLLPRIVATE sal_uInt16 ImplCalcVisEntries (tools::Long nMaxHeight, sal_uInt16 nStartEntry, sal_uInt16 *pLastVisible=nullptr) const
 

Friends

class Menu
 
class MenuFloatingWindow
 
class MenuBarWindow
 
struct MenuItemData
 

Additional Inherited Members

- Protected Member Functions inherited from Menu
SAL_DLLPRIVATE MenuImplGetStartMenu ()
 
SAL_DLLPRIVATE MenuImplFindSelectMenu ()
 
SAL_DLLPRIVATE MenuImplFindMenu (sal_uInt16 nId)
 
SAL_DLLPRIVATE Size ImplCalcSize (vcl::Window *pWin)
 
SAL_DLLPRIVATE bool ImplIsVisible (sal_uInt16 nPos) const
 
SAL_DLLPRIVATE bool ImplCurrentlyHiddenOnGUI (sal_uInt16 nPos) const
 
SAL_DLLPRIVATE bool ImplIsSelectable (sal_uInt16 nPos) const
 
SAL_DLLPRIVATE sal_uInt16 ImplGetVisibleItemCount () const
 
SAL_DLLPRIVATE sal_uInt16 ImplGetFirstVisible () const
 
SAL_DLLPRIVATE sal_uInt16 ImplGetPrevVisible (sal_uInt16 nPos) const
 
SAL_DLLPRIVATE sal_uInt16 ImplGetNextVisible (sal_uInt16 nPos) const
 
SAL_DLLPRIVATE void ImplPaint (vcl::RenderContext &rRenderContext, Size const &rSize, sal_uInt16 nBorder, tools::Long nOffY=0, MenuItemData const *pThisDataOnly=nullptr, bool bHighlighted=false, bool bLayout=false, bool bRollover=false) const
 
SAL_DLLPRIVATE void ImplPaintMenuTitle (vcl::RenderContext &, const tools::Rectangle &rRect) const
 
SAL_DLLPRIVATE void ImplSelect ()
 
SAL_DLLPRIVATE void ImplCallHighlight (sal_uInt16 nHighlightItem)
 
SAL_DLLPRIVATE void ImplCallEventListeners (VclEventId nEvent, sal_uInt16 nPos)
 
 DECL_DLLPRIVATE_LINK (ImplCallSelect, void *, void)
 
SAL_DLLPRIVATE void ImplFillLayoutData () const
 
SAL_DLLPRIVATE SalMenuImplGetSalMenu ()
 
SAL_DLLPRIVATE SalMenuGetNativeMenuBar ()
 
SAL_DLLPRIVATE OUString ImplGetHelpText (sal_uInt16 nItemId) const
 
SAL_DLLPRIVATE Size ImplGetNativeCheckAndRadioSize (vcl::RenderContext const &rRenderContext, tools::Long &rCheckHeight, tools::Long &rRadioHeight) const
 
SAL_DLLPRIVATE void ImplAddDel (ImplMenuDelData &rDel)
 
SAL_DLLPRIVATE void ImplRemoveDel (ImplMenuDelData &rDel)
 
SAL_DLLPRIVATE MenuItemDataNbcInsertItem (sal_uInt16 nId, MenuItemBits nBits, const OUString &rStr, Menu *pMenu, size_t nPos, const OString &rIdent)
 
virtual void ClosePopup (Menu *pMenu)=0
 Close the 'pStartedFrom' menu window. More...
 
virtual void MenuBarKeyInput (const KeyEvent &rEvent)
 Forward the KeyInput call to the MenuBar. More...
 
 Menu ()
 The Menu constructor is protected. More...
 
- Protected Member Functions inherited from VclReferenceBase
 VclReferenceBase ()
 
virtual ~VclReferenceBase ()
 
virtual void dispose ()
 
- Static Protected Member Functions inherited from Menu
static SAL_DLLPRIVATE bool ImplGetNativeSubmenuArrowSize (vcl::RenderContext const &rRenderContext, Size &rArrowSize, tools::Long &rArrowSpacing)
 

Detailed Description

Definition at line 489 of file menu.hxx.

Constructor & Destructor Documentation

◆ PopupMenu() [1/2]

PopupMenu::PopupMenu ( )

◆ PopupMenu() [2/2]

PopupMenu::PopupMenu ( const PopupMenu rMenu)

◆ ~PopupMenu()

PopupMenu::~PopupMenu ( )
overridevirtual

Definition at line 2673 of file menu.cxx.

References VclReferenceBase::disposeOnce().

Member Function Documentation

◆ ClosePopup()

void PopupMenu::ClosePopup ( Menu pMenu)
overridevirtual

Close the 'pStartedFrom' menu window.

Implements Menu.

Definition at line 2678 of file menu.cxx.

References Menu::ImplGetWindow(), and p.

◆ CreateMenuInterface()

css::uno::Reference< css::awt::XPopupMenu > PopupMenu::CreateMenuInterface ( )

◆ EndExecute()

void PopupMenu::EndExecute ( )

◆ Execute() [1/2]

sal_uInt16 PopupMenu::Execute ( vcl::Window pWindow,
const Point rPopupPos 
)

◆ Execute() [2/2]

sal_uInt16 PopupMenu::Execute ( vcl::Window pWindow,
const tools::Rectangle rRect,
PopupMenuFlags  nFlags = PopupMenuFlags::NONE 
)

Definition at line 2766 of file menu.cxx.

References ENSURE_OR_RETURN, ImplExecute(), and lcl_TranslateFlags().

◆ FinishRun()

void PopupMenu::FinishRun ( const VclPtr< MenuFloatingWindow > &  pWin,
const VclPtr< vcl::Window > &  pParentWin,
bool  bRealExecute,
bool  bIsNativeMenu 
)
private

◆ GetActivePopupMenu()

PopupMenu * PopupMenu::GetActivePopupMenu ( )
static

◆ ImplCalcHeight()

tools::Long PopupMenu::ImplCalcHeight ( sal_uInt16  nEntries) const
private

◆ ImplCalcVisEntries()

sal_uInt16 PopupMenu::ImplCalcVisEntries ( tools::Long  nMaxHeight,
sal_uInt16  nStartEntry,
sal_uInt16 *  pLastVisible = nullptr 
) const
private

◆ ImplExecute()

sal_uInt16 PopupMenu::ImplExecute ( const VclPtr< vcl::Window > &  pParentWin,
const tools::Rectangle rRect,
FloatWinPopupFlags  nPopupModeFlags,
Menu pSFrom,
bool  bPreSelectFirst 
)
private

Definition at line 3013 of file menu.cxx.

References FinishRun(), Menu::nSelectedId, PrepareRun(), and Run().

Referenced by Execute(), and MenuBarWindow::ImplCreatePopup().

◆ ImplFlushPendingSelect()

void PopupMenu::ImplFlushPendingSelect ( )
private

◆ ImplGetFloatingWindow()

MenuFloatingWindow * PopupMenu::ImplGetFloatingWindow ( ) const
private

◆ IsMenuBar()

virtual bool PopupMenu::IsMenuBar ( ) const
inlineoverridevirtual

Implements Menu.

Definition at line 511 of file menu.hxx.

◆ operator=()

PopupMenu & PopupMenu::operator= ( const PopupMenu rMenu)
inline

Definition at line 536 of file menu.hxx.

References Menu::operator=().

◆ PrepareRun()

bool PopupMenu::PrepareRun ( const VclPtr< vcl::Window > &  pParentWin,
tools::Rectangle rRect,
FloatWinPopupFlags nPopupModeFlags,
Menu pSFrom,
bool &  bRealExecute,
VclPtr< MenuFloatingWindow > &  pWin 
)
private

Definition at line 2785 of file menu.cxx.

References Menu::Activate(), AllMouseButtonClose, Menu::bCanceled, Menu::bInCallback, Menu::bKilled, tools::Rectangle::Bottom(), tools::Rectangle::BottomRight(), Cancel, CloseAll, FloatingWindow::EndPopupMode(), Menu::get_id(), Application::GetBestScreen(), vcl::Window::GetBorder(), tools::Rectangle::GetHeight(), Menu::GetItemCount(), vcl::Window::GetLOKNotifier(), vcl::Window::GetParent(), vcl::Window::GetParentWithLOKNotifier(), Application::GetScreenCount(), Application::GetScreenPosSizePixel(), tools::Rectangle::GetSize(), vcl::Window::GetSizePixel(), vcl::Window::GetWindow(), GrabFocus, Size::Height(), HideDisabledEntries, ImplCalcHeight(), Menu::ImplCalcSize(), ImplCalcVisEntries(), Menu::ImplCallEventListeners(), Menu::ImplGetFirstVisible(), ImplGetSVData(), Menu::ImplGetVisibleItemCount(), Menu::ImplGetWindow(), comphelper::LibreOfficeKit::isActive(), VclReferenceBase::isDisposed(), vcl::IsInPopupMenuExecute(), Menu::IsMenuBar(), Application::IsUnifiedDisplay(), ImplSVData::maNWFData, ImplSVNWFData::mbFlatMenu, ImplSVWinData::mbNoDeactivate, MENU, MenuSubmenuChanged, ImplSVWinData::mpFirstFloat, Menu::mpLayoutData, ImplSVData::mpWinData, Menu::NbcInsertItem(), NewLevel, Menu::nMenuFlags, NOBORDER, NoHorzPlacement, NoKeyClose, NONE, nPos, Menu::nSelectedId, vcl::Window::OutputToAbsoluteScreenPixel(), vcl::Window::OutputToScreenPixel(), pData, Menu::pItemList, Point, Menu::pStartedFrom, Menu::pWindow, RealParent, SAL_WARN_IF, Size::setHeight(), tools::Rectangle::SetPos(), Menu::sSelectedIdent, tools::Rectangle::Top(), tools::Rectangle::TopLeft(), VclResId(), WB_BORDER, and WB_SYSTEMWINDOW.

Referenced by ImplExecute().

◆ Run()

bool PopupMenu::Run ( const VclPtr< MenuFloatingWindow > &  pWin,
bool  bRealExecute,
bool  bPreSelectFirst,
FloatWinPopupFlags  nPopupModeFlags,
Menu pSFrom,
const tools::Rectangle rRect 
)
private

◆ SelectItem()

void PopupMenu::SelectItem ( sal_uInt16  nId)
overridevirtual

◆ SetSelectedEntry()

void PopupMenu::SetSelectedEntry ( sal_uInt16  nId)

Definition at line 2737 of file menu.cxx.

References Menu::GetItemIdent(), nId, Menu::nSelectedId, and Menu::sSelectedIdent.

Referenced by MenuButtonUIObject::execute().

◆ SetText()

void PopupMenu::SetText ( const OUString &  rTitle)
inline

Definition at line 516 of file menu.hxx.

Friends And Related Function Documentation

◆ Menu

friend class Menu
friend

Definition at line 491 of file menu.hxx.

◆ MenuBarWindow

friend class MenuBarWindow
friend

Definition at line 493 of file menu.hxx.

◆ MenuFloatingWindow

friend class MenuFloatingWindow
friend

Definition at line 492 of file menu.hxx.

◆ MenuItemData

friend struct MenuItemData
friend

Definition at line 494 of file menu.hxx.


The documentation for this class was generated from the following files: