diff options
author | Caolán McNamara <caolanm@redhat.com> | 2013-01-08 09:29:44 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-01-09 11:40:53 +0000 |
commit | 5223d2e8c5be11b0821b1997076377485d3b200a (patch) | |
tree | 0c51da353b3cc97d57910cb33daa5bb04c59c167 /vcl | |
parent | d9e3efbc0ed6193119565530e390a1c1c0a5f6b7 (diff) |
allow menu items to be enabled by name
and to get the name of the current enabled item
Change-Id: Ie4688fe5697d0bdb4c05da3c1e3bc29a3b86d6f0
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/vcl/menu.hxx | 12 | ||||
-rw-r--r-- | vcl/inc/vcl/menubtn.hxx | 1 | ||||
-rw-r--r-- | vcl/source/control/menubtn.cxx | 6 | ||||
-rw-r--r-- | vcl/source/window/menu.cxx | 12 |
4 files changed, 28 insertions, 3 deletions
diff --git a/vcl/inc/vcl/menu.hxx b/vcl/inc/vcl/menu.hxx index ebf8e49ff747..6d7b967b85b3 100644 --- a/vcl/inc/vcl/menu.hxx +++ b/vcl/inc/vcl/menu.hxx @@ -239,9 +239,11 @@ public: 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; + sal_uInt16 GetItemPos( sal_uInt16 nItemId ) const; + OString GetItemIdent(sal_uInt16 nItemId) const; MenuItemType GetItemType( sal_uInt16 nPos ) const; - sal_uInt16 GetCurItemId() const; + sal_uInt16 GetCurItemId() const; + OString GetCurItemIdent() const; void SetDefaultItem( sal_uInt16 nItemId ) { nDefaultItem = nItemId; } sal_uInt16 GetDefaultItem() const { return nDefaultItem; } @@ -265,7 +267,11 @@ public: void DeSelect() { SelectItem( 0xFFFF ); } // MENUITEMPOS_INVALID void EnableItem( sal_uInt16 nItemId, sal_Bool bEnable = sal_True ); - sal_Bool IsItemEnabled( sal_uInt16 nItemId ) const; + void EnableItem(const OString &rIdent, bool bEnable = true) + { + EnableItem(GetItemId(rIdent), bEnable); + } + sal_Bool IsItemEnabled( sal_uInt16 nItemId ) const; void ShowItem( sal_uInt16 nItemId, sal_Bool bVisible = sal_True ); void HideItem( sal_uInt16 nItemId ) { ShowItem( nItemId, sal_False ); } diff --git a/vcl/inc/vcl/menubtn.hxx b/vcl/inc/vcl/menubtn.hxx index 46ead53c22df..4036ee9059b1 100644 --- a/vcl/inc/vcl/menubtn.hxx +++ b/vcl/inc/vcl/menubtn.hxx @@ -84,6 +84,7 @@ public: PopupMenu* GetPopupMenu() const { return mpMenu; } sal_uInt16 GetCurItemId() const { return mnCurItemId; } + OString GetCurItemIdent() const; void SetCurItemId( sal_uInt16 nItemId ) { mnCurItemId = nItemId; } void SetActivateHdl( const Link& rLink ) { maActivateHdl = rLink; } diff --git a/vcl/source/control/menubtn.cxx b/vcl/source/control/menubtn.cxx index f8fb86fcaf6b..2bce1cc47a20 100644 --- a/vcl/source/control/menubtn.cxx +++ b/vcl/source/control/menubtn.cxx @@ -73,6 +73,12 @@ void MenuButton::ImplExecuteMenu() } } +OString MenuButton::GetCurItemIdent() const +{ + return (mnCurItemId && mpMenu) ? + mpMenu->GetItemIdent(mnCurItemId) : OString(); +} + // ----------------------------------------------------------------------- MenuButton::MenuButton( Window* pParent, WinBits nWinBits ) diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index dc70650f090a..3542ee4ce438 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -1555,6 +1555,18 @@ sal_uInt16 Menu::GetCurItemId() const return nSelectedId; } +OString Menu::GetCurItemIdent() const +{ + const MenuItemData* pData = pItemList->GetData(nSelectedId); + return pData ? pData->sIdent : OString(); +} + +OString Menu::GetItemIdent(sal_uInt16 nId) const +{ + const MenuItemData* pData = pItemList->GetData(nId); + return pData ? pData->sIdent : OString(); +} + void Menu::SetItemBits( sal_uInt16 nItemId, MenuItemBits nBits ) { MenuItemData* pData = pItemList->GetData( nItemId ); |