diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-11-25 12:02:14 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-11-25 12:02:34 +0200 |
commit | b19e71231322a6790759135f3aaab6499d6293dd (patch) | |
tree | fca95d566eff3ad421b89877b3d39e29a2389e3e | |
parent | 8cd2334da9e8e19ef7e22081e722563612a1f32d (diff) |
convert ENABLE flags to o3tl::typed_flags
Change-Id: I47cb052c7437e127c237beee0f2d95948b7c3ad1
-rw-r--r-- | sw/source/uibase/inc/conttree.hxx | 19 | ||||
-rw-r--r-- | sw/source/uibase/utlui/glbltree.cxx | 62 |
2 files changed, 44 insertions, 37 deletions
diff --git a/sw/source/uibase/inc/conttree.hxx b/sw/source/uibase/inc/conttree.hxx index 98aedef598c4..86068a1d60f7 100644 --- a/sw/source/uibase/inc/conttree.hxx +++ b/sw/source/uibase/inc/conttree.hxx @@ -28,6 +28,7 @@ #include <memory> #include <o3tl/enumarray.hxx> +#include <o3tl/typed_flags_set.hxx> class SwWrtShell; class SwContentType; @@ -50,6 +51,22 @@ enum class EditEntryMode RENAME = 5, }; +// Flags for PopupMenu-enable/disable +enum class MenuEnableFlags { + NONE = 0x0000, + InsertIdx = 0x0001, + InsertFile = 0x0002, + InsertText = 0x0004, + Edit = 0x0008, + Delete = 0x0010, + Update = 0x0020, + UpdateSel = 0x0040, + EditLink = 0x0080 +}; +namespace o3tl { + template<> struct typed_flags<MenuEnableFlags> : is_typed_flags<MenuEnableFlags, 0x00ff> {}; +} + /** TreeListBox for content indicator */ class SwContentTree : public SvTreeListBox @@ -318,7 +335,7 @@ protected: void OpenDoc(const SwGlblDocContent*); void GotoContent(const SwGlblDocContent*); - sal_uInt16 GetEnableFlags() const; + MenuEnableFlags GetEnableFlags() const; static void SetShowShell(const SfxObjectShell*pSet) {pShowShell = pSet;} DECL_STATIC_LINK(SwGlobalTree, ShowFrameHdl, void*, void); diff --git a/sw/source/uibase/utlui/glbltree.cxx b/sw/source/uibase/utlui/glbltree.cxx index 06f44efccf7f..649517dde047 100644 --- a/sw/source/uibase/utlui/glbltree.cxx +++ b/sw/source/uibase/utlui/glbltree.cxx @@ -81,16 +81,6 @@ using namespace ::com::sun::star::uno; #define GLOBAL_UPDATE_TIMEOUT 2000 -// Flags for PopupMenu-enable/disable -#define ENABLE_INSERT_IDX 0x0001 -#define ENABLE_INSERT_FILE 0x0002 -#define ENABLE_INSERT_TEXT 0x0004 -#define ENABLE_EDIT 0x0008 -#define ENABLE_DELETE 0x0010 -#define ENABLE_UPDATE 0x0020 -#define ENABLE_UPDATE_SEL 0x0040 -#define ENABLE_EDIT_LINK 0x0080 - // TabPos: push to left #define GLBL_TABPOS_SUB 5 @@ -338,7 +328,7 @@ VclPtr<PopupMenu> SwGlobalTree::CreateContextMenu() if(pActiveShell && !pActiveShell->GetView().GetDocShell()->IsReadOnly()) { - const sal_uInt16 nEnableFlags = GetEnableFlags(); + const MenuEnableFlags nEnableFlags = GetEnableFlags(); pPop = VclPtr<PopupMenu>::Create(); VclPtrInstance<PopupMenu> pSubPop1; VclPtrInstance<PopupMenu> pSubPop2; @@ -348,7 +338,7 @@ VclPtr<PopupMenu> SwGlobalTree::CreateContextMenu() pSubPop2->InsertItem( i, aContextStrings[STR_UPDATE_SEL - STR_GLOBAL_CONTEXT_FIRST - CTX_UPDATE_SEL+ i] ); pSubPop2->SetHelpId(i, aHelpForMenu[i]); } - pSubPop2->EnableItem(CTX_UPDATE_SEL, 0 != (nEnableFlags & ENABLE_UPDATE_SEL)); + pSubPop2->EnableItem(CTX_UPDATE_SEL, bool(nEnableFlags & MenuEnableFlags::UpdateSel)); pSubPop1->InsertItem(CTX_INSERT_ANY_INDEX, aContextStrings[STR_INDEX - STR_GLOBAL_CONTEXT_FIRST]); pSubPop1->SetHelpId(CTX_INSERT_ANY_INDEX, aHelpForMenu[CTX_INSERT_ANY_INDEX]); @@ -363,7 +353,7 @@ VclPtr<PopupMenu> SwGlobalTree::CreateContextMenu() pPop->SetHelpId(CTX_UPDATE, aHelpForMenu[CTX_UPDATE]); pPop->InsertItem(CTX_EDIT, aContextStrings[STR_EDIT_CONTENT - STR_GLOBAL_CONTEXT_FIRST]); pPop->SetHelpId(CTX_EDIT, aHelpForMenu[CTX_EDIT]); - if(nEnableFlags&ENABLE_EDIT_LINK) + if(nEnableFlags&MenuEnableFlags::EditLink) { pPop->InsertItem(CTX_EDIT_LINK, aContextStrings[STR_EDIT_LINK - STR_GLOBAL_CONTEXT_FIRST]); pPop->SetHelpId(CTX_EDIT_LINK, aHelpForMenu[CTX_EDIT_LINK]); @@ -375,15 +365,15 @@ VclPtr<PopupMenu> SwGlobalTree::CreateContextMenu() pPop->SetHelpId(CTX_DELETE, aHelpForMenu[CTX_DELETE]); //disabling if applicable - pSubPop1->EnableItem(CTX_INSERT_ANY_INDEX, 0 != (nEnableFlags & ENABLE_INSERT_IDX )); - pSubPop1->EnableItem(CTX_INSERT_TEXT, 0 != (nEnableFlags & ENABLE_INSERT_TEXT)); - pSubPop1->EnableItem(CTX_INSERT_FILE, 0 != (nEnableFlags & ENABLE_INSERT_FILE)); - pSubPop1->EnableItem(CTX_INSERT_NEW_FILE, 0 != (nEnableFlags & ENABLE_INSERT_FILE)); + pSubPop1->EnableItem(CTX_INSERT_ANY_INDEX, bool(nEnableFlags & MenuEnableFlags::InsertIdx )); + pSubPop1->EnableItem(CTX_INSERT_TEXT, bool(nEnableFlags & MenuEnableFlags::InsertText)); + pSubPop1->EnableItem(CTX_INSERT_FILE, bool(nEnableFlags & MenuEnableFlags::InsertFile)); + pSubPop1->EnableItem(CTX_INSERT_NEW_FILE, bool(nEnableFlags & MenuEnableFlags::InsertFile)); - pPop->EnableItem(CTX_UPDATE, 0 != (nEnableFlags & ENABLE_UPDATE)); - pPop->EnableItem(CTX_INSERT, 0 != (nEnableFlags & ENABLE_INSERT_IDX)); - pPop->EnableItem(CTX_EDIT, 0 != (nEnableFlags & ENABLE_EDIT)); - pPop->EnableItem(CTX_DELETE, 0 != (nEnableFlags & ENABLE_DELETE)); + pPop->EnableItem(CTX_UPDATE, bool(nEnableFlags & MenuEnableFlags::Update)); + pPop->EnableItem(CTX_INSERT, bool(nEnableFlags & MenuEnableFlags::InsertIdx)); + pPop->EnableItem(CTX_EDIT, bool(nEnableFlags & MenuEnableFlags::Edit)); + pPop->EnableItem(CTX_DELETE, bool(nEnableFlags & MenuEnableFlags::Delete)); pPop->SetPopupMenu( CTX_INSERT, pSubPop1 ); pPop->SetPopupMenu( CTX_UPDATE, pSubPop2 ); @@ -393,7 +383,7 @@ VclPtr<PopupMenu> SwGlobalTree::CreateContextMenu() void SwGlobalTree::TbxMenuHdl(sal_uInt16 nTbxId, ToolBox* pBox) { - const sal_uInt16 nEnableFlags = GetEnableFlags(); + const MenuEnableFlags nEnableFlags = GetEnableFlags(); const OUString sCommand(pBox->GetItemCommand(nTbxId)); if (sCommand == "insert") { @@ -403,10 +393,10 @@ void SwGlobalTree::TbxMenuHdl(sal_uInt16 nTbxId, ToolBox* pBox) pMenu->InsertItem( i, aContextStrings[STR_INDEX - STR_GLOBAL_CONTEXT_FIRST - CTX_INSERT_ANY_INDEX + i] ); pMenu->SetHelpId(i, aHelpForMenu[i] ); } - pMenu->EnableItem(CTX_INSERT_ANY_INDEX, 0 != (nEnableFlags & ENABLE_INSERT_IDX )); - pMenu->EnableItem(CTX_INSERT_TEXT, 0 != (nEnableFlags & ENABLE_INSERT_TEXT)); - pMenu->EnableItem(CTX_INSERT_FILE, 0 != (nEnableFlags & ENABLE_INSERT_FILE)); - pMenu->EnableItem(CTX_INSERT_NEW_FILE, 0 != (nEnableFlags & ENABLE_INSERT_FILE)); + pMenu->EnableItem(CTX_INSERT_ANY_INDEX, bool(nEnableFlags & MenuEnableFlags::InsertIdx )); + pMenu->EnableItem(CTX_INSERT_TEXT, bool(nEnableFlags & MenuEnableFlags::InsertText)); + pMenu->EnableItem(CTX_INSERT_FILE, bool(nEnableFlags & MenuEnableFlags::InsertFile)); + pMenu->EnableItem(CTX_INSERT_NEW_FILE, bool(nEnableFlags & MenuEnableFlags::InsertFile)); pMenu->SetSelectHdl(LINK(this, SwGlobalTree, PopupHdl)); pMenu->Execute(pBox, pBox->GetItemRect(nTbxId)); pMenu.disposeAndClear(); @@ -421,7 +411,7 @@ void SwGlobalTree::TbxMenuHdl(sal_uInt16 nTbxId, ToolBox* pBox) pMenu->InsertItem( i, aContextStrings[STR_UPDATE_SEL - STR_GLOBAL_CONTEXT_FIRST - CTX_UPDATE_SEL+ i] ); pMenu->SetHelpId(i, aHelpForMenu[i] ); } - pMenu->EnableItem(CTX_UPDATE_SEL, 0 != (nEnableFlags & ENABLE_UPDATE_SEL)); + pMenu->EnableItem(CTX_UPDATE_SEL, bool(nEnableFlags & MenuEnableFlags::UpdateSel)); pMenu->SetSelectHdl(LINK(this, SwGlobalTree, PopupHdl)); pMenu->Execute(pBox, pBox->GetItemRect(nTbxId)); pMenu.disposeAndClear(); @@ -430,33 +420,33 @@ void SwGlobalTree::TbxMenuHdl(sal_uInt16 nTbxId, ToolBox* pBox) } } -sal_uInt16 SwGlobalTree::GetEnableFlags() const +MenuEnableFlags SwGlobalTree::GetEnableFlags() const { SvTreeListEntry* pEntry = FirstSelected(); sal_uLong nSelCount = GetSelectionCount(); sal_uLong nEntryCount = GetEntryCount(); SvTreeListEntry* pPrevEntry = pEntry ? Prev(pEntry) : nullptr; - sal_uInt16 nRet = 0; + MenuEnableFlags nRet = MenuEnableFlags::NONE; if(nSelCount == 1 || !nEntryCount) - nRet |= ENABLE_INSERT_IDX|ENABLE_INSERT_FILE; + nRet |= MenuEnableFlags::InsertIdx|MenuEnableFlags::InsertFile; if(nSelCount == 1) { - nRet |= ENABLE_EDIT; + nRet |= MenuEnableFlags::Edit; if (pEntry && static_cast<SwGlblDocContent*>(pEntry->GetUserData())->GetType() != GLBLDOC_UNKNOWN && (!pPrevEntry || static_cast<SwGlblDocContent*>(pPrevEntry->GetUserData())->GetType() != GLBLDOC_UNKNOWN)) - nRet |= ENABLE_INSERT_TEXT; + nRet |= MenuEnableFlags::InsertText; if (pEntry && GLBLDOC_SECTION == static_cast<SwGlblDocContent*>(pEntry->GetUserData())->GetType()) - nRet |= ENABLE_EDIT_LINK; + nRet |= MenuEnableFlags::EditLink; } else if(!nEntryCount) { - nRet |= ENABLE_INSERT_TEXT; + nRet |= MenuEnableFlags::InsertText; } if(nEntryCount) - nRet |= ENABLE_UPDATE|ENABLE_DELETE; + nRet |= MenuEnableFlags::Update|MenuEnableFlags::Delete; if(nSelCount) - nRet |= ENABLE_UPDATE_SEL; + nRet |= MenuEnableFlags::UpdateSel; return nRet; } |