summaryrefslogtreecommitdiff
path: root/include/vcl/menu.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/vcl/menu.hxx')
-rw-r--r--include/vcl/menu.hxx533
1 files changed, 272 insertions, 261 deletions
diff --git a/include/vcl/menu.hxx b/include/vcl/menu.hxx
index f4d57a4d937a..2a4abcf3052a 100644
--- a/include/vcl/menu.hxx
+++ b/include/vcl/menu.hxx
@@ -51,21 +51,14 @@ class IMenuBarWindow;
struct SystemMenuData;
enum class FloatWinPopupFlags;
-namespace com {
-namespace sun {
-namespace star {
-namespace accessibility {
+namespace com { namespace sun { namespace star { namespace accessibility {
class XAccessible;
}}}}
namespace vcl { struct MenuLayoutData; }
-
-// - Menu-Types -
-
-
-#define MENU_APPEND ((sal_uInt16)0xFFFF)
-#define MENU_ITEM_NOTFOUND ((sal_uInt16)0xFFFF)
+#define MENU_APPEND (sal_uInt16(0xFFFF))
+#define MENU_ITEM_NOTFOUND (sal_uInt16(0xFFFF))
// Must match the definitions in css::awt::PopupMenuDirection.idl
enum class PopupMenuFlags
@@ -83,6 +76,7 @@ enum class PopupMenuFlags
//the menu beside that rectangle
NoHorzPlacement = 0x0020,
};
+
namespace o3tl
{
template<> struct typed_flags<PopupMenuFlags> : is_typed_flags<PopupMenuFlags, 0x003f> {};
@@ -96,14 +90,14 @@ enum class MenuFlags
// overrides default hiding of disabled entries in popup menus
AlwaysShowDisabledEntries = 0x0004,
};
+
namespace o3tl
{
template<> struct typed_flags<MenuFlags> : is_typed_flags<MenuFlags, 0x0007> {};
}
-
/// Invalid menu item id
-#define ITEMPOS_INVALID 0xFFFF
+#define ITEMPOS_INVALID 0xFFFF
struct ImplMenuDelData
{
@@ -116,15 +110,11 @@ struct ImplMenuDelData
bool isDeleted() const { return mpMenu == 0; }
};
-
-// - Menu -
-
-
struct MenuLogo
{
- BitmapEx aBitmap;
- Color aStartColor;
- Color aEndColor;
+ BitmapEx aBitmap;
+ Color aStartColor;
+ Color aEndColor;
};
typedef void (*MenuUserDataReleaseFunction)(sal_uLong);
@@ -139,74 +129,76 @@ class VCL_DLLPUBLIC Menu : public Resource
friend class SystemWindow;
friend struct ImplMenuDelData;
private:
- ImplMenuDelData* mpFirstDel;
- MenuItemList* pItemList; // Liste mit den MenuItems
- MenuLogo* pLogo;
- Menu* pStartedFrom;
+ ImplMenuDelData* mpFirstDel;
+ MenuItemList* pItemList; // Liste mit den MenuItems
+ MenuLogo* pLogo;
+ Menu* pStartedFrom;
VclPtr<vcl::Window> pWindow;
- Link<Menu *, bool> aActivateHdl; // Active-Handler
- Link<Menu *, bool> aDeactivateHdl; // Deactivate-Handler
- Link<Menu *, bool> aHighlightHdl; // Highlight-Handler
- Link<> aSelectHdl; // Highlight-Handler
+ Link<Menu*, bool> aActivateHdl; // Active-Handler
+ Link<Menu*, bool> aDeactivateHdl; // Deactivate-Handler
+ Link<Menu*, bool> aHighlightHdl; // Highlight-Handler
+ Link<> aSelectHdl; // Highlight-Handler
VclEventListeners maEventListeners;
VclEventListeners maChildEventListeners;
- OUString aTitleText; // PopupMenu text
- sal_uInt16 nTitleHeight;
+ OUString aTitleText; // PopupMenu text
+ sal_uInt16 nTitleHeight;
- ImplSVEvent * nEventId;
- sal_uInt16 mnHighlightedItemPos; // for native menus: keeps track of the highlighted item
- MenuFlags nMenuFlags;
- sal_uInt16 nDefaultItem; // Id of default item
- sal_uInt16 nSelectedId;
+ ImplSVEvent* nEventId;
+ sal_uInt16 mnHighlightedItemPos; // for native menus: keeps track of the highlighted item
+ MenuFlags nMenuFlags;
+ sal_uInt16 nDefaultItem; // Id of default item
+ sal_uInt16 nSelectedId;
// for output:
- sal_uInt16 nImgOrChkPos;
- sal_uInt16 nTextPos;
+ sal_uInt16 nImgOrChkPos;
+ sal_uInt16 nTextPos;
- bool bCanceled : 1, ///< Terminated during a callback
- bInCallback : 1, ///< In Activate/Deactivate
- bKilled : 1; ///< Killed
+ bool bCanceled : 1; ///< Terminated during a callback
+ bool bInCallback : 1; ///< In Activate/Deactivate
+ bool bKilled : 1; ///< Killed
- ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > mxAccessible;
+ css::uno::Reference<css::accessibility::XAccessible > mxAccessible;
mutable vcl::MenuLayoutData* mpLayoutData;
- SalMenu* mpSalMenu;
+ SalMenu* mpSalMenu;
protected:
- SAL_DLLPRIVATE Menu* ImplGetStartMenu();
- SAL_DLLPRIVATE Menu* ImplFindSelectMenu();
- SAL_DLLPRIVATE Menu* ImplFindMenu( sal_uInt16 nId );
- SAL_DLLPRIVATE Size ImplCalcSize( vcl::Window* pWin );
- SAL_DLLPRIVATE bool ImplIsVisible( 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::Window* pWin, sal_uInt16 nBorder, long nOffY = 0, MenuItemData* pThisDataOnly = 0, bool bHighlighted = false, bool bLayout = false, bool bRollover = false ) const;
- SAL_DLLPRIVATE void ImplPaintMenuTitle(vcl::RenderContext&, const Rectangle& rRect) const;
- SAL_DLLPRIVATE void ImplSelect();
- SAL_DLLPRIVATE void ImplCallHighlight( sal_uInt16 nHighlightItem );
- SAL_DLLPRIVATE void ImplCallEventListeners( sal_uLong nEvent, sal_uInt16 nPos );
- DECL_DLLPRIVATE_LINK( ImplCallSelect, void* );
-
- SAL_DLLPRIVATE void ImplFillLayoutData() const;
- SAL_DLLPRIVATE SalMenu* ImplGetSalMenu() { return mpSalMenu; }
- SAL_DLLPRIVATE void ImplSetSalMenu( SalMenu *pMenu );
- SAL_DLLPRIVATE OUString ImplGetHelpText( sal_uInt16 nItemId ) const;
+ SAL_DLLPRIVATE Menu* ImplGetStartMenu();
+ SAL_DLLPRIVATE Menu* ImplFindSelectMenu();
+ SAL_DLLPRIVATE Menu* ImplFindMenu( sal_uInt16 nId );
+ SAL_DLLPRIVATE Size ImplCalcSize( vcl::Window* pWin );
+ SAL_DLLPRIVATE bool ImplIsVisible( 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,
+ sal_uInt16 nBorder, long nOffY = 0, MenuItemData* pThisDataOnly = 0,
+ bool bHighlighted = false, bool bLayout = false, bool bRollover = false ) const;
+ SAL_DLLPRIVATE void ImplPaintMenuTitle(vcl::RenderContext&, const Rectangle& rRect) const;
+ SAL_DLLPRIVATE void ImplSelect();
+ SAL_DLLPRIVATE void ImplCallHighlight( sal_uInt16 nHighlightItem );
+ SAL_DLLPRIVATE void ImplCallEventListeners( sal_uLong nEvent, sal_uInt16 nPos );
+ DECL_DLLPRIVATE_LINK(ImplCallSelect, void* );
+
+ SAL_DLLPRIVATE void ImplFillLayoutData() const;
+ SAL_DLLPRIVATE SalMenu* ImplGetSalMenu() { return mpSalMenu; }
+ SAL_DLLPRIVATE void ImplSetSalMenu( SalMenu *pMenu );
+ SAL_DLLPRIVATE OUString ImplGetHelpText( sal_uInt16 nItemId ) const;
// returns native check and option menu symbol height in rCheckHeight and rRadioHeight
// return value is maximum width and height of checkboxes and radiobuttons
- SAL_DLLPRIVATE Size ImplGetNativeCheckAndRadioSize( const vcl::Window*, long& rCheckHeight, long& rRadioHeight ) const;
+ SAL_DLLPRIVATE Size ImplGetNativeCheckAndRadioSize(vcl::RenderContext& rRenderContext, long& rCheckHeight, long& rRadioHeight) const;
// returns native submenu arrow size and spacing from right border
// return value is whether it's supported natively
- SAL_DLLPRIVATE bool ImplGetNativeSubmenuArrowSize( vcl::Window* pWin, Size& rArrowSize, long& rArrowSpacing ) const;
+ SAL_DLLPRIVATE bool ImplGetNativeSubmenuArrowSize(vcl::RenderContext& rRenderContext, Size& rArrowSize, long& rArrowSpacing) const;
- SAL_DLLPRIVATE void ImplAddDel( ImplMenuDelData &rDel );
- SAL_DLLPRIVATE void ImplRemoveDel( ImplMenuDelData &rDel );
+ SAL_DLLPRIVATE void ImplAddDel( ImplMenuDelData &rDel );
+ SAL_DLLPRIVATE void ImplRemoveDel( ImplMenuDelData &rDel );
SAL_DLLPRIVATE MenuItemData* NbcInsertItem(sal_uInt16 nId, MenuItemBits nBits,
const OUString& rStr, Menu* pMenu,
@@ -222,10 +214,10 @@ protected:
virtual void MenuBarKeyInput(const KeyEvent& rEvent);
public:
- SAL_DLLPRIVATE void ImplKillLayoutData() const;
- SAL_DLLPRIVATE Menu* ImplGetStartedFrom() const { return pStartedFrom; }
+ SAL_DLLPRIVATE void ImplKillLayoutData() const;
+ SAL_DLLPRIVATE Menu* ImplGetStartedFrom() const { return pStartedFrom; }
- SAL_DLLPRIVATE vcl::Window* ImplGetWindow() const { return pWindow; }
+ SAL_DLLPRIVATE vcl::Window* ImplGetWindow() const { return pWindow; }
void ImplSelectWithStart( Menu* pStartMenu = NULL );
protected:
@@ -238,135 +230,157 @@ protected:
Menu();
public:
- virtual ~Menu();
-
- void Activate();
- void Deactivate();
- virtual void Highlight();
- virtual 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 InsertItem( const ResId& rResId, sal_uInt16 nPos = MENU_APPEND );
- void InsertSeparator( const OString &rIdent = OString(),
- sal_uInt16 nPos = MENU_APPEND );
- void RemoveItem( sal_uInt16 nPos );
- void CopyItem( const Menu& rMenu, sal_uInt16 nPos,
- sal_uInt16 nNewPos = MENU_APPEND );
- void Clear();
-
- void CreateAutoMnemonics();
-
- void SetMenuFlags( MenuFlags nFlags ) { nMenuFlags = nFlags; }
- MenuFlags GetMenuFlags() const { return nMenuFlags; }
-
- sal_uInt16 GetItemCount() const;
- sal_uInt16 GetItemId(sal_uInt16 nPos) const;
- sal_uInt16 GetItemId(const OString &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 { return nSelectedId;}
- OString GetCurItemIdent() const;
-
- void SetDefaultItem( sal_uInt16 nItemId ) { nDefaultItem = nItemId; }
- sal_uInt16 GetDefaultItem() const { return nDefaultItem; }
-
- void SetItemBits( sal_uInt16 nItemId, MenuItemBits nBits );
- MenuItemBits GetItemBits( sal_uInt16 nItemId ) const;
-
- void SetUserValue(sal_uInt16 nItemId, sal_uLong nValue, MenuUserDataReleaseFunction aFunc=0);
- sal_uLong GetUserValue(sal_uInt16 nItemId) const;
-
- void SetPopupMenu( sal_uInt16 nItemId, PopupMenu* pMenu );
- PopupMenu* GetPopupMenu( 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 );
- bool IsItemChecked( sal_uInt16 nItemId ) const;
-
- virtual void SelectItem(sal_uInt16 nItemId) = 0;
- void DeSelect() { SelectItem( 0xFFFF ); } // MENUITEMPOS_INVALID
-
- void EnableItem( sal_uInt16 nItemId, bool bEnable = true );
- void EnableItem(const OString &rIdent, bool bEnable = true)
+ virtual ~Menu();
+
+ void Activate();
+ void Deactivate();
+ virtual void Highlight();
+ virtual 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 InsertItem(const ResId& rResId, sal_uInt16 nPos = MENU_APPEND );
+ void InsertSeparator(const OString &rIdent = OString(), sal_uInt16 nPos = MENU_APPEND);
+ void RemoveItem( sal_uInt16 nPos );
+ void CopyItem(const Menu& rMenu, sal_uInt16 nPos, sal_uInt16 nNewPos = MENU_APPEND );
+ void Clear();
+
+ void CreateAutoMnemonics();
+
+ void SetMenuFlags( MenuFlags nFlags ) { nMenuFlags = nFlags; }
+ MenuFlags GetMenuFlags() const { return nMenuFlags; }
+
+ sal_uInt16 GetItemCount() const;
+ sal_uInt16 GetItemId(sal_uInt16 nPos) const;
+ sal_uInt16 GetItemId(const OString &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 { return nSelectedId;}
+ OString GetCurItemIdent() const;
+
+ void SetDefaultItem( sal_uInt16 nItemId ) { nDefaultItem = nItemId; }
+ sal_uInt16 GetDefaultItem() const { return nDefaultItem; }
+
+ void SetItemBits( sal_uInt16 nItemId, MenuItemBits nBits );
+ MenuItemBits GetItemBits( sal_uInt16 nItemId ) const;
+
+ void SetUserValue(sal_uInt16 nItemId, sal_uLong nValue, MenuUserDataReleaseFunction aFunc=0);
+ sal_uLong GetUserValue(sal_uInt16 nItemId) const;
+
+ void SetPopupMenu( sal_uInt16 nItemId, PopupMenu* pMenu );
+ PopupMenu* GetPopupMenu( 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 );
+ bool IsItemChecked( sal_uInt16 nItemId ) const;
+
+ virtual void SelectItem(sal_uInt16 nItemId) = 0;
+ void DeSelect() { SelectItem( 0xFFFF ); } // MENUITEMPOS_INVALID
+
+ void EnableItem( sal_uInt16 nItemId, bool bEnable = true );
+ void EnableItem(const OString &rIdent, bool bEnable = true)
{
EnableItem(GetItemId(rIdent), bEnable);
}
- bool IsItemEnabled( sal_uInt16 nItemId ) const;
+ bool IsItemEnabled( sal_uInt16 nItemId ) const;
- void ShowItem( sal_uInt16 nItemId, bool bVisible = true );
- void HideItem( sal_uInt16 nItemId ) { ShowItem( nItemId, false ); }
+ void ShowItem( sal_uInt16 nItemId, bool bVisible = true );
+ void HideItem( sal_uInt16 nItemId ) { ShowItem( nItemId, false ); }
- bool IsItemPosVisible( sal_uInt16 nItemPos ) const;
- bool IsMenuVisible() const;
- virtual bool IsMenuBar() const = 0;
+ bool IsItemPosVisible( sal_uInt16 nItemPos ) const;
+ bool IsMenuVisible() const;
+ virtual bool IsMenuBar() const = 0;
- void RemoveDisabledEntries( bool bCheckPopups = true, bool bRemoveEmptyPopups = false );
- bool HasValidEntries( bool bCheckPopups = true );
+ void RemoveDisabledEntries( bool bCheckPopups = true, bool bRemoveEmptyPopups = false );
+ bool HasValidEntries( bool bCheckPopups = true );
- void SetItemText( sal_uInt16 nItemId, const OUString& rStr );
- OUString GetItemText( sal_uInt16 nItemId ) const;
+ 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 SetItemImageAngle( sal_uInt16 nItemId, long nAngle10 );
- void SetItemImageMirrorMode( sal_uInt16 nItemId, bool bMirror );
+ void SetItemImage( sal_uInt16 nItemId, const Image& rImage );
+ Image GetItemImage( sal_uInt16 nItemId ) const;
+ void SetItemImageAngle( sal_uInt16 nItemId, long nAngle10 );
+ void SetItemImageMirrorMode( sal_uInt16 nItemId, bool bMirror );
- void SetItemCommand( sal_uInt16 nItemId, const OUString& rCommand );
- OUString GetItemCommand( 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 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 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 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 SetHelpId( sal_uInt16 nItemId, const OString& rHelpId );
+ OString GetHelpId( sal_uInt16 nItemId ) const;
- void SetActivateHdl( const Link<Menu *, bool>& rLink ) { aActivateHdl = rLink; }
+ void SetActivateHdl( const Link<Menu *, bool>& rLink )
+ {
+ aActivateHdl = rLink;
+ }
- void SetDeactivateHdl( const Link<Menu *, bool>& rLink ) { aDeactivateHdl = rLink; }
+ void SetDeactivateHdl( const Link<Menu *, bool>& rLink )
+ {
+ aDeactivateHdl = rLink;
+ }
- void SetHighlightHdl( const Link<Menu *, bool>& rLink ) { aHighlightHdl = rLink; }
+ void SetHighlightHdl( const Link<Menu *, bool>& rLink )
+ {
+ aHighlightHdl = rLink;
+ }
- void SetSelectHdl( const Link<>& rLink ) { aSelectHdl = rLink; }
- const Link<>& GetSelectHdl() const { return aSelectHdl; }
+ void SetSelectHdl( const Link<>& rLink )
+ {
+ aSelectHdl = rLink;
+ }
+ const Link<>& GetSelectHdl() const
+ {
+ return aSelectHdl;
+ }
- bool HasLogo() const { return pLogo != nullptr; }
+ bool HasLogo() const
+ {
+ return pLogo != nullptr;
+ }
- sal_uInt16 GetTitleHeight() { return nTitleHeight; }
+ sal_uInt16 GetTitleHeight()
+ {
+ return nTitleHeight;
+ }
- void AddEventListener( const Link<>& rEventListener );
- void RemoveEventListener( const Link<>& rEventListener );
- void AddChildEventListener( const Link<>& rEventListener );
- void RemoveChildEventListener( const Link<>& rEventListener );
+ void AddEventListener( const Link<>& rEventListener );
+ void RemoveEventListener( const Link<>& rEventListener );
+ void AddChildEventListener( const Link<>& rEventListener );
+ void RemoveChildEventListener( const Link<>& rEventListener );
- Menu& operator =( const Menu& rMenu );
+ Menu& operator =( const Menu& rMenu );
// Fuer Menu-'Funktionen'
- MenuItemList* GetItemList() const { return pItemList; }
+ MenuItemList* GetItemList() const
+ {
+ return pItemList;
+ }
// returns the system's menu handle if native menus are supported
// pData must point to a SystemMenuData structure
- bool GetSystemMenuData( SystemMenuData* pData ) const;
+ bool GetSystemMenuData( SystemMenuData* pData ) const;
// accessibility helpers
@@ -380,46 +394,41 @@ public:
// returns the bounding rectangle for an item at pos nItemPos
Rectangle GetBoundingRectangle( sal_uInt16 nItemPos ) const;
- ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetAccessible();
- void SetAccessible( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxAccessible );
+ css::uno::Reference<css::accessibility::XAccessible> GetAccessible();
+ void SetAccessible(const css::uno::Reference<css::accessibility::XAccessible >& rxAccessible);
// gets the activation key of the specified item
- KeyEvent GetActivationKey( sal_uInt16 nItemId ) const;
+ KeyEvent GetActivationKey( sal_uInt16 nItemId ) const;
- vcl::Window* GetWindow() const { return pWindow; }
+ vcl::Window* GetWindow() const { return pWindow; }
- void SetAccessibleName( sal_uInt16 nItemId, const OUString& rStr );
- OUString GetAccessibleName( sal_uInt16 nItemId ) const;
+ void SetAccessibleName( sal_uInt16 nItemId, const OUString& rStr );
+ OUString GetAccessibleName( sal_uInt16 nItemId ) const;
// returns whether the item a position nItemPos is highlighted or not.
- bool IsHighlighted( sal_uInt16 nItemPos ) const;
+ bool IsHighlighted( sal_uInt16 nItemPos ) const;
- void HighlightItem( sal_uInt16 nItemPos );
- void DeHighlight() { HighlightItem( 0xFFFF ); } // MENUITEMPOS_INVALID
+ void HighlightItem( sal_uInt16 nItemPos );
+ void DeHighlight() { HighlightItem( 0xFFFF ); } // MENUITEMPOS_INVALID
};
-namespace vcl
-{
- namespace MenuInvalidator
- {
- VCL_DLLPUBLIC VclEventListeners2* GetMenuInvalidateListeners();
- VCL_DLLPUBLIC void Invalidated();
- };
-}
+namespace vcl { namespace MenuInvalidator {
-// - MenuBar -
+VCL_DLLPUBLIC VclEventListeners2* GetMenuInvalidateListeners();
+VCL_DLLPUBLIC void Invalidated();
+}}
class VCL_DLLPUBLIC MenuBar : public Menu
{
- Link<> maCloseHdl;
- Link<> maFloatHdl;
- Link<> maHideHdl;
- bool mbCloseBtnVisible;
- bool mbFloatBtnVisible;
- bool mbHideBtnVisible;
- bool mbDisplayable;
+ Link<> maCloseHdl;
+ Link<> maFloatHdl;
+ Link<> maHideHdl;
+ bool mbCloseBtnVisible : 1;
+ bool mbFloatBtnVisible : 1;
+ bool mbHideBtnVisible : 1;
+ bool mbDisplayable : 1;
friend class Application;
friend class Menu;
@@ -427,9 +436,10 @@ class VCL_DLLPUBLIC MenuBar : public Menu
friend class MenuFloatingWindow;
friend class SystemWindow;
- SAL_DLLPRIVATE static vcl::Window* ImplCreate(vcl::Window* pParent, vcl::Window* pWindow, MenuBar* pMenu, const css::uno::Reference<css::frame::XFrame> &rFrame);
- SAL_DLLPRIVATE static void ImplDestroy( MenuBar* pMenu, bool bDelete );
- SAL_DLLPRIVATE bool ImplHandleKeyEvent( const KeyEvent& rKEvent, bool bFromMenu = true );
+ SAL_DLLPRIVATE static vcl::Window* ImplCreate(vcl::Window* pParent, vcl::Window* pWindow,
+ MenuBar* pMenu, const css::uno::Reference<css::frame::XFrame> &rFrame);
+ SAL_DLLPRIVATE static void ImplDestroy(MenuBar* pMenu, bool bDelete);
+ SAL_DLLPRIVATE bool ImplHandleKeyEvent(const KeyEvent& rKEvent, bool bFromMenu = true);
protected:
@@ -437,13 +447,13 @@ protected:
IMenuBarWindow* getMenuBarWindow();
public:
- MenuBar();
- MenuBar( const MenuBar& rMenu );
- virtual ~MenuBar();
+ MenuBar();
+ MenuBar( const MenuBar& rMenu );
+ virtual ~MenuBar();
- MenuBar& operator =( const MenuBar& rMenu );
+ MenuBar& operator =( const MenuBar& rMenu );
- virtual bool IsMenuBar() const SAL_OVERRIDE { return true; }
+ virtual bool IsMenuBar() const SAL_OVERRIDE { return true; }
/// Close the 'pStartedFrom' menu window.
virtual void ClosePopup(Menu* pMenu) SAL_OVERRIDE;
@@ -454,65 +464,60 @@ public:
/// Forward the KeyInput call to the MenuBar.
virtual void MenuBarKeyInput(const KeyEvent& rEvent) SAL_OVERRIDE;
- void ShowCloseButton( bool bShow = true );
- bool HasCloseButton() const { return mbCloseBtnVisible; }
- bool HasFloatButton() const { return mbFloatBtnVisible; }
- bool HasHideButton() const { return mbHideBtnVisible; }
- void ShowButtons( bool bClose, bool bFloat, bool bHide );
-
- virtual void SelectItem(sal_uInt16 nId) SAL_OVERRIDE;
- bool HandleMenuActivateEvent(Menu *pMenu) const;
- bool HandleMenuDeActivateEvent(Menu *pMenu) const;
- bool HandleMenuHighlightEvent(Menu *pMenu, sal_uInt16 nEventId) const;
- bool HandleMenuCommandEvent(Menu *pMenu, sal_uInt16 nEventId) const;
- bool HandleMenuButtonEvent(Menu *pMenu, sal_uInt16 nEventId);
-
- void SetCloseButtonClickHdl( const Link<>& rLink ) { maCloseHdl = rLink; }
- const Link<>& GetCloseButtonClickHdl() const { return maCloseHdl; }
- void SetFloatButtonClickHdl( const Link<>& rLink ) { maFloatHdl = rLink; }
- const Link<>& GetFloatButtonClickHdl() const { return maFloatHdl; }
- void SetHideButtonClickHdl( const Link<>& rLink ) { maHideHdl = rLink; }
- const Link<>& GetHideButtonClickHdl() const { return maHideHdl; }
+ void ShowCloseButton( bool bShow = true );
+ bool HasCloseButton() const { return mbCloseBtnVisible; }
+ bool HasFloatButton() const { return mbFloatBtnVisible; }
+ bool HasHideButton() const { return mbHideBtnVisible; }
+ void ShowButtons( bool bClose, bool bFloat, bool bHide );
+
+ virtual void SelectItem(sal_uInt16 nId) SAL_OVERRIDE;
+ bool HandleMenuActivateEvent(Menu *pMenu) const;
+ bool HandleMenuDeActivateEvent(Menu *pMenu) const;
+ bool HandleMenuHighlightEvent(Menu *pMenu, sal_uInt16 nEventId) const;
+ bool HandleMenuCommandEvent(Menu *pMenu, sal_uInt16 nEventId) const;
+ bool HandleMenuButtonEvent(Menu *pMenu, sal_uInt16 nEventId);
+
+ void SetCloseButtonClickHdl( const Link<>& rLink ) { maCloseHdl = rLink; }
+ const Link<>& GetCloseButtonClickHdl() const { return maCloseHdl; }
+ void SetFloatButtonClickHdl( const Link<>& rLink ) { maFloatHdl = rLink; }
+ const Link<>& GetFloatButtonClickHdl() const { return maFloatHdl; }
+ void SetHideButtonClickHdl( const Link<>& rLink ) { maHideHdl = rLink; }
+ const Link<>& GetHideButtonClickHdl() const { return maHideHdl; }
// - by default a menubar is displayable
// - if a menubar is not displayable, its MenuBarWindow will never be shown
// and it will be hidden if it was visible before
// - note: if a menubar is diplayable, this does not necessarily mean that it is currently visible
- void SetDisplayable( bool bDisplayable );
- bool IsDisplayable() const { return mbDisplayable; }
+ void SetDisplayable( bool bDisplayable );
+ bool IsDisplayable() const { return mbDisplayable; }
struct MenuBarButtonCallbackArg
{
- sal_uInt16 nId; // Id of the button
- bool bHighlight; // highlight on/off
- MenuBar* pMenuBar; // menubar the button belongs to
+ sal_uInt16 nId; // Id of the button
+ bool bHighlight; // highlight on/off
+ MenuBar* pMenuBar; // menubar the button belongs to
};
// add an arbitrary button to the menubar (will appear next to closer)
// passed link will be call with a MenuBarButtonCallbackArg on press
// passed string will be set as tooltip
- sal_uInt16 AddMenuBarButton( const Image&, const Link<>&, const OUString&, sal_uInt16 nPos = 0 );
+ sal_uInt16 AddMenuBarButton( const Image&, const Link<>&, const OUString&, sal_uInt16 nPos = 0 );
// set the highlight link for additional button with ID nId
// highlight link will be called with a MenuBarButtonHighlightArg
// the bHighlight member of that struct shall contain the new state
- void SetMenuBarButtonHighlightHdl( sal_uInt16 nId, const Link<>& );
+ void SetMenuBarButtonHighlightHdl( sal_uInt16 nId, const Link<>& );
// returns the rectangle occupied by the additional button named nId
// coordinates are relative to the systemwindiow the menubar is attached to
// if the menubar is unattached an empty rectangle is returned
- Rectangle GetMenuBarButtonRectPixel( sal_uInt16 nId );
- void RemoveMenuBarButton( sal_uInt16 nId );
+ Rectangle GetMenuBarButtonRectPixel( sal_uInt16 nId );
+ void RemoveMenuBarButton( sal_uInt16 nId );
};
-inline MenuBar& MenuBar::operator =( const MenuBar& rMenu )
+inline MenuBar& MenuBar::operator=( const MenuBar& rMenu )
{
- Menu::operator =( rMenu );
+ Menu::operator=(rMenu);
return *this;
}
-
-
-// - PopupMenu -
-
-
class VCL_DLLPUBLIC PopupMenu : public Menu
{
friend class Menu;
@@ -521,46 +526,52 @@ class VCL_DLLPUBLIC PopupMenu : public Menu
friend struct MenuItemData;
private:
- Menu** pRefAutoSubMenu; // keeps track if a pointer to this Menu is stored in the MenuItemData
+ Menu** pRefAutoSubMenu; // keeps track if a pointer to this Menu is stored in the MenuItemData
SAL_DLLPRIVATE MenuFloatingWindow * ImplGetFloatingWindow() const;
protected:
- SAL_DLLPRIVATE sal_uInt16 ImplExecute( vcl::Window* pWindow, const Rectangle& rRect, FloatWinPopupFlags nPopupFlags, Menu* pStaredFrom, bool bPreSelectFirst );
- SAL_DLLPRIVATE long ImplCalcHeight( sal_uInt16 nEntries ) const;
- SAL_DLLPRIVATE sal_uInt16 ImplCalcVisEntries( long nMaxHeight, sal_uInt16 nStartEntry = 0, sal_uInt16* pLastVisible = NULL ) const;
+ SAL_DLLPRIVATE sal_uInt16 ImplExecute( vcl::Window* pWindow, const Rectangle& rRect, FloatWinPopupFlags nPopupFlags, Menu* pStaredFrom, bool bPreSelectFirst );
+ SAL_DLLPRIVATE long ImplCalcHeight( sal_uInt16 nEntries ) const;
+ SAL_DLLPRIVATE sal_uInt16 ImplCalcVisEntries( long nMaxHeight, sal_uInt16 nStartEntry = 0, sal_uInt16* pLastVisible = NULL ) const;
public:
- PopupMenu();
- PopupMenu( const PopupMenu& rMenu );
- explicit PopupMenu( const ResId& );
- virtual ~PopupMenu();
+ PopupMenu();
+ PopupMenu( const PopupMenu& rMenu );
+ explicit PopupMenu( const ResId& );
+ virtual ~PopupMenu();
- virtual bool IsMenuBar() const SAL_OVERRIDE { return false; }
+ virtual bool IsMenuBar() const SAL_OVERRIDE { return false; }
/// Close the 'pStartedFrom' menu window.
virtual void ClosePopup(Menu* pMenu) SAL_OVERRIDE;
- void SetText( const OUString& rTitle ) { aTitleText = rTitle; }
- const OUString& GetText() const { return aTitleText; }
+ void SetText( const OUString& rTitle )
+ {
+ aTitleText = rTitle;
+ }
+ const OUString& GetText() const
+ {
+ return aTitleText;
+ }
- sal_uInt16 Execute( vcl::Window* pWindow, const Point& rPopupPos );
- sal_uInt16 Execute( vcl::Window* pWindow, const Rectangle& rRect, PopupMenuFlags nFlags = PopupMenuFlags::NONE );
+ sal_uInt16 Execute( vcl::Window* pWindow, const Point& rPopupPos );
+ sal_uInt16 Execute( vcl::Window* pWindow, const Rectangle& rRect, PopupMenuFlags nFlags = PopupMenuFlags::NONE );
// Fuer das TestTool
- void EndExecute( sal_uInt16 nSelect = 0 );
- virtual void SelectItem(sal_uInt16 nId) SAL_OVERRIDE;
- void SetSelectedEntry( sal_uInt16 nId ); // for use by native submenu only
+ void EndExecute( sal_uInt16 nSelect = 0 );
+ virtual void SelectItem(sal_uInt16 nId) SAL_OVERRIDE;
+ void SetSelectedEntry( sal_uInt16 nId ); // for use by native submenu only
- static bool IsInExecute();
- static PopupMenu* GetActivePopupMenu();
+ static bool IsInExecute();
+ static PopupMenu* GetActivePopupMenu();
- PopupMenu& operator =( const PopupMenu& rMenu );
+ PopupMenu& operator=( const PopupMenu& rMenu );
};
-inline PopupMenu& PopupMenu::operator =( const PopupMenu& rMenu )
+inline PopupMenu& PopupMenu::operator=( const PopupMenu& rMenu )
{
- Menu::operator =( rMenu );
+ Menu::operator=( rMenu );
return *this;
}