Kaydet (Commit) facc91ab authored tarafından Noel Grandin's avatar Noel Grandin

convert FLOATWIN_POPUPMODE constants to scoped enum

Change-Id: I744d430ef6a506977eb10b892582c8969ec27524
üst 96096e27
......@@ -1217,7 +1217,7 @@ namespace pcr
::Rectangle aRect(aMePos,aSize);
aSize.Height() = STD_HEIGHT;
m_pFloatingEdit->SetOutputSizePixel(aSize);
m_pFloatingEdit->StartPopupMode( aRect, FLOATWIN_POPUPMODE_DOWN );
m_pFloatingEdit->StartPopupMode( aRect, FloatWinPopupFlags::Down );
m_pFloatingEdit->Show();
m_pFloatingEdit->getEdit().GrabFocus();
......
......@@ -143,7 +143,7 @@ public:
void Unlock();
bool IsLocked() const { return mbLocked;}
void StartPopupMode( ToolBox* pParentToolBox, sal_uLong nPopupModeFlags );
void StartPopupMode( ToolBox* pParentToolBox, FloatWinPopupFlags nPopupModeFlags );
bool IsInPopupMode() const;
void TitleButtonClick( sal_uInt16 nButton );
......@@ -202,7 +202,7 @@ public:
bool IsLocked( const vcl::Window *pWin );
void StartPopupMode( ToolBox *pParentToolBox, const vcl::Window *pWin );
void StartPopupMode( ToolBox *pParentToolBox, const vcl::Window *pWin, sal_uLong nPopupModeFlags );
void StartPopupMode( ToolBox *pParentToolBox, const vcl::Window *pWin, FloatWinPopupFlags nPopupModeFlags );
bool IsInPopupMode( const vcl::Window *pWin );
void EndPopupMode( const vcl::Window *pWin );
......
......@@ -23,6 +23,7 @@
#include <tools/solar.h>
#include <vcl/dllapi.h>
#include <vcl/syswin.hxx>
#include <o3tl/typed_flags_set.hxx>
class ToolBox;
......@@ -30,24 +31,32 @@ class ToolBox;
// - FloatingWindow-Types -
#define FLOATWIN_POPUPMODE_ALLOWTEAROFF ((sal_uLong)0x00000001)
#define FLOATWIN_POPUPMODE_ANIMATIONSLIDE ((sal_uLong)0x00000002)
#define FLOATWIN_POPUPMODE_NOAUTOARRANGE ((sal_uLong)0x00000004)
#define FLOATWIN_POPUPMODE_NOANIMATION ((sal_uLong)0x00000008)
#define FLOATWIN_POPUPMODE_DOWN ((sal_uLong)0x00000010)
#define FLOATWIN_POPUPMODE_UP ((sal_uLong)0x00000020)
#define FLOATWIN_POPUPMODE_LEFT ((sal_uLong)0x00000040)
#define FLOATWIN_POPUPMODE_RIGHT ((sal_uLong)0x00000080)
#define FLOATWIN_POPUPMODE_NOFOCUSCLOSE ((sal_uLong)0x00000100)
#define FLOATWIN_POPUPMODE_NOKEYCLOSE ((sal_uLong)0x00000200)
#define FLOATWIN_POPUPMODE_NOMOUSECLOSE ((sal_uLong)0x00000400)
#define FLOATWIN_POPUPMODE_NOMOUSERECTCLOSE ((sal_uLong)0x00000800)
#define FLOATWIN_POPUPMODE_ALLMOUSEBUTTONCLOSE ((sal_uLong)0x00001000)
#define FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE ((sal_uLong)0x00002000)
#define FLOATWIN_POPUPMODE_NEWLEVEL ((sal_uLong)0x00004000)
#define FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE ((sal_uLong)0x00008000)
#define FLOATWIN_POPUPMODE_GRABFOCUS ((sal_uLong)0x00010000)
#define FLOATWIN_POPUPMODE_NOHORZPLACEMENT ((sal_uLong)0x00020000)
enum class FloatWinPopupFlags
{
NONE = 0x000000,
AllowTearOff = 0x000001,
AnimationSlide = 0x000002,
NoAutoArrange = 0x000004,
NoAnimation = 0x000008,
Down = 0x000010,
Up = 0x000020,
Left = 0x000040,
Right = 0x000080,
NoFocusClose = 0x000100,
NoKeyClose = 0x000200,
NoMouseClose = 0x000400,
NoMouseRectClose = 0x000800,
AllMouseButtonClose = 0x001000,
NoAppFocusClose = 0x002000,
NewLevel = 0x004000,
NoMouseUpClose = 0x008000,
GrabFocus = 0x010000,
NoHorzPlacement = 0x020000,
};
namespace o3tl
{
template<> struct typed_flags<FloatWinPopupFlags> : is_typed_flags<FloatWinPopupFlags, 0x03ffff> {};
}
#define FLOATWIN_POPUPMODEEND_CANCEL ((sal_uInt16)0x0001)
#define FLOATWIN_POPUPMODEEND_TEAROFF ((sal_uInt16)0x0002)
......@@ -78,7 +87,7 @@ private:
ImplData* mpImplData;
Rectangle maFloatRect;
ImplSVEvent * mnPostId;
sal_uLong mnPopupModeFlags;
FloatWinPopupFlags mnPopupModeFlags;
sal_uInt16 mnTitle;
sal_uInt16 mnOldTitle;
bool mbInPopupMode;
......@@ -110,7 +119,7 @@ public:
SAL_DLLPRIVATE void ImplSetMouseDown() { mbMouseDown = true; }
SAL_DLLPRIVATE bool ImplIsMouseDown() const { return mbMouseDown; }
SAL_DLLPRIVATE static Point ImplCalcPos( vcl::Window* pWindow,
const Rectangle& rRect, sal_uLong nFlags,
const Rectangle& rRect, FloatWinPopupFlags nFlags,
sal_uInt16& rArrangeIndex );
SAL_DLLPRIVATE void ImplEndPopupMode( sal_uInt16 nFlags = 0, sal_uLong nFocusId = 0 );
SAL_DLLPRIVATE Rectangle& ImplGetItemEdgeClipRect();
......@@ -133,12 +142,12 @@ public:
void SetTitleType( sal_uInt16 nTitle );
sal_uInt16 GetTitleType() const { return mnTitle; }
void StartPopupMode( const Rectangle& rRect, sal_uLong nFlags = 0 );
void StartPopupMode( ToolBox* pBox, sal_uLong nFlags = 0 );
void StartPopupMode( const Rectangle& rRect, FloatWinPopupFlags nFlags = FloatWinPopupFlags::NONE );
void StartPopupMode( ToolBox* pBox, FloatWinPopupFlags nFlags = FloatWinPopupFlags::NONE );
void EndPopupMode( sal_uInt16 nFlags = 0 );
void AddPopupModeWindow( vcl::Window* pWindow );
sal_uLong GetPopupModeFlags() const { return mnPopupModeFlags; }
void SetPopupModeFlags( sal_uLong nFlags ) { mnPopupModeFlags = nFlags; }
FloatWinPopupFlags GetPopupModeFlags() const { return mnPopupModeFlags; }
void SetPopupModeFlags( FloatWinPopupFlags nFlags ) { mnPopupModeFlags = nFlags; }
bool IsInPopupMode() const { return mbPopupMode; }
bool IsInCleanUp() const { return mbInCleanUp; }
bool IsPopupModeCanceled() const { return mbPopupModeCanceled; }
......@@ -149,7 +158,7 @@ public:
bool GrabsFocus() const { return mbGrabFocus; }
static Point CalcFloatingPosition( vcl::Window* pWindow, const Rectangle& rRect, sal_uLong nFlags, sal_uInt16& rArrangeIndex );
static Point CalcFloatingPosition( vcl::Window* pWindow, const Rectangle& rRect, FloatWinPopupFlags nFlags, sal_uInt16& rArrangeIndex );
};
#endif // INCLUDED_VCL_FLOATWIN_HXX
......
......@@ -48,6 +48,7 @@ namespace vcl { class Window; }
class SalMenu;
class IMenuBarWindow;
struct SystemMenuData;
enum class FloatWinPopupFlags;
namespace com {
namespace sun {
......@@ -503,7 +504,7 @@ private:
SAL_DLLPRIVATE MenuFloatingWindow * ImplGetFloatingWindow() const;
protected:
SAL_DLLPRIVATE sal_uInt16 ImplExecute( vcl::Window* pWindow, const Rectangle& rRect, sal_uLong nPopupFlags, Menu* pStaredFrom, bool bPreSelectFirst );
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;
......
......@@ -557,11 +557,11 @@ void ScMenuFloatingWindow::launchSubMenu(bool bSetMenuPos)
if (!pSubMenu)
return;
sal_uInt32 nOldFlags = GetPopupModeFlags();
SetPopupModeFlags(nOldFlags | FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE);
FloatWinPopupFlags nOldFlags = GetPopupModeFlags();
SetPopupModeFlags(nOldFlags | FloatWinPopupFlags::NoAppFocusClose);
pSubMenu->resizeToFitMenuItems(); // set the size before launching the popup to get it positioned correctly.
pSubMenu->StartPopupMode(
Rectangle(aPos,aSize), (FLOATWIN_POPUPMODE_RIGHT | FLOATWIN_POPUPMODE_GRABFOCUS));
Rectangle(aPos,aSize), (FloatWinPopupFlags::Right | FloatWinPopupFlags::GrabFocus));
pSubMenu->AddPopupModeWindow(this);
if (bSetMenuPos)
pSubMenu->setSelectedMenuItem(0, false, false); // select menu item after the popup becomes fully visible.
......@@ -809,11 +809,11 @@ void ScMenuFloatingWindow::ensureSubMenuVisible(ScMenuFloatingWindow* pSubMenu)
Size aSize;
getMenuItemPosSize(nMenuPos, aPos, aSize);
sal_uInt32 nOldFlags = GetPopupModeFlags();
SetPopupModeFlags(nOldFlags | FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE);
FloatWinPopupFlags nOldFlags = GetPopupModeFlags();
SetPopupModeFlags(nOldFlags | FloatWinPopupFlags::NoAppFocusClose);
pSubMenu->resizeToFitMenuItems(); // set the size before launching the popup to get it positioned correctly.
pSubMenu->StartPopupMode(
Rectangle(aPos,aSize), (FLOATWIN_POPUPMODE_RIGHT | FLOATWIN_POPUPMODE_GRABFOCUS));
Rectangle(aPos,aSize), (FloatWinPopupFlags::Right | FloatWinPopupFlags::GrabFocus));
pSubMenu->AddPopupModeWindow(this);
SetPopupModeFlags(nOldFlags);
}
......@@ -1730,7 +1730,7 @@ void ScCheckListMenuWindow::launch(const Rectangle& rRect)
aRect.Left() += nDiff;
}
StartPopupMode(aRect, (FLOATWIN_POPUPMODE_DOWN | FLOATWIN_POPUPMODE_GRABFOCUS));
StartPopupMode(aRect, (FloatWinPopupFlags::Down | FloatWinPopupFlags::GrabFocus));
cycleFocus(); // Set initial focus to the check list box.
}
......
......@@ -1070,7 +1070,7 @@ void ScGridWindow::DoScenarioMenu( const ScRange& rScenRange )
}
mpFilterFloat->SetOutputSizePixel( aSize );
mpFilterFloat->StartPopupMode( aCellRect, FLOATWIN_POPUPMODE_DOWN|FLOATWIN_POPUPMODE_GRABFOCUS );
mpFilterFloat->StartPopupMode( aCellRect, FloatWinPopupFlags::Down|FloatWinPopupFlags::GrabFocus );
mpFilterBox->SetUpdateMode(true);
mpFilterBox->GrabFocus();
......@@ -1222,7 +1222,7 @@ void ScGridWindow::LaunchDataSelectMenu( SCCOL nCol, SCROW nRow, bool bDataSelec
mpFilterBox->SetUpdateMode(false);
mpFilterFloat->SetOutputSizePixel(aSize);
mpFilterFloat->StartPopupMode(aCellRect, FLOATWIN_POPUPMODE_DOWN | FLOATWIN_POPUPMODE_GRABFOCUS);
mpFilterFloat->StartPopupMode(aCellRect, FloatWinPopupFlags::Down | FloatWinPopupFlags::GrabFocus);
// Listbox fuellen
bool bWait = aStrings.size() > 100;
......
......@@ -582,7 +582,7 @@ void AnnotationTag::OpenPopup( bool bEdit )
mpAnnotationWindow->setAnnotation(mxAnnotation);
sal_uInt16 nArrangeIndex = 0;
Point aPopupPos( FloatingWindow::CalcFloatingPosition( mpAnnotationWindow.get(), aRect, FLOATWIN_POPUPMODE_RIGHT, nArrangeIndex ) );
Point aPopupPos( FloatingWindow::CalcFloatingPosition( mpAnnotationWindow.get(), aRect, FloatWinPopupFlags::Right, nArrangeIndex ) );
Size aPopupSize( 320, 240 );
mpAnnotationWindow->SetPosSizePixel( aPopupPos, aPopupSize );
......
......@@ -614,7 +614,7 @@ void LayoutMenu::Command (const CommandEvent& rEvent)
FloatingWindow* pMenuWindow = dynamic_cast<FloatingWindow*>(pMenu->GetWindow());
if (pMenuWindow != NULL)
pMenuWindow->SetPopupModeFlags(
pMenuWindow->GetPopupModeFlags() | FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE);
pMenuWindow->GetPopupModeFlags() | FloatWinPopupFlags::NoMouseUpClose);
pMenu->SetSelectHdl(LINK(this, LayoutMenu, OnMenuItemSelected));
// Disable the SID_INSERTPAGE_LAYOUT_MENU item when
......
......@@ -229,7 +229,7 @@ void MasterPagesSelector::Command (const CommandEvent& rEvent)
FloatingWindow* pMenuWindow = dynamic_cast<FloatingWindow*>(pMenu->GetWindow());
if (pMenuWindow != NULL)
pMenuWindow->SetPopupModeFlags(
pMenuWindow->GetPopupModeFlags() | FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE);
pMenuWindow->GetPopupModeFlags() | FloatWinPopupFlags::NoMouseUpClose);
pMenu->SetSelectHdl(LINK(this, MasterPagesSelector, OnMenuItemSelected));
ProcessPopupMenu(*pMenu);
......
......@@ -1174,7 +1174,7 @@ namespace sfx2
FloatingWindow* pMenuWindow = static_cast< FloatingWindow* >( pMenu->GetWindow() );
if ( pMenuWindow != NULL )
{
pMenuWindow->SetPopupModeFlags ( pMenuWindow->GetPopupModeFlags() | FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE );
pMenuWindow->SetPopupModeFlags ( pMenuWindow->GetPopupModeFlags() | FloatWinPopupFlags::NoMouseUpClose );
}
// Add one entry for every tool panel element to individually make
......
......@@ -827,7 +827,7 @@ void SidebarController::ShowPopupMenu (
FloatingWindow* pMenuWindow = dynamic_cast<FloatingWindow*>(pMenu->GetWindow());
if (pMenuWindow != NULL)
{
pMenuWindow->SetPopupModeFlags(pMenuWindow->GetPopupModeFlags() | FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE);
pMenuWindow->SetPopupModeFlags(pMenuWindow->GetPopupModeFlags() | FloatWinPopupFlags::NoMouseUpClose);
}
// Create sub menu for customization (hiding of deck tabs.)
......
......@@ -2361,7 +2361,7 @@ bool CalendarField::ShowDropDown( bool bShow )
mpCalendar->StartSelection();
mpCalendar->GrabFocus();
mpCalendar->Show();
mpFloatWin->StartPopupMode( aRect, FLOATWIN_POPUPMODE_NOFOCUSCLOSE|FLOATWIN_POPUPMODE_DOWN );
mpFloatWin->StartPopupMode( aRect, FloatWinPopupFlags::NoFocusClose|FloatWinPopupFlags::Down );
}
else
{
......
......@@ -215,10 +215,10 @@ Reference< awt::XWindow > SAL_CALL PopupWindowController::createPopupWindow() th
pWin->EnableDocking(true);
mxImpl->SetPopupWindow(pWin,pToolBox);
vcl::Window::GetDockingManager()->StartPopupMode( pToolBox, pWin,
FLOATWIN_POPUPMODE_GRABFOCUS |
FLOATWIN_POPUPMODE_NOFOCUSCLOSE |
FLOATWIN_POPUPMODE_ALLMOUSEBUTTONCLOSE |
FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE );
FloatWinPopupFlags::GrabFocus |
FloatWinPopupFlags::NoFocusClose |
FloatWinPopupFlags::AllMouseButtonClose |
FloatWinPopupFlags::NoMouseUpClose );
}
}
return Reference< awt::XWindow >();
......
......@@ -46,7 +46,7 @@ VclPtr<SfxPopupWindow> ParaLineSpacingPopup::CreatePopupWindow()
{
VclPtr<ParaLineSpacingControl> pControl = VclPtr<ParaLineSpacingControl>::Create(GetSlotId());
pControl->StartPopupMode(&GetToolBox(), FLOATWIN_POPUPMODE_GRABFOCUS|FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE);
pControl->StartPopupMode(&GetToolBox(), FloatWinPopupFlags::GrabFocus|FloatWinPopupFlags::NoAppFocusClose);
SetPopupWindow(pControl);
......
......@@ -68,10 +68,10 @@ void Popup::Show (ToolBox& rToolBox)
mxContainer->StartPopupMode(
aRect,
FLOATWIN_POPUPMODE_NOFOCUSCLOSE|FLOATWIN_POPUPMODE_DOWN);
FloatWinPopupFlags::NoFocusClose|FloatWinPopupFlags::Down);
mxContainer->SetPopupModeFlags(
mxContainer->GetPopupModeFlags()
| FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE);
| FloatWinPopupFlags::NoAppFocusClose);
mxControl->GetFocus();
}
......
......@@ -745,7 +745,7 @@ VclPtr<SfxPopupWindow> SvxTableToolBoxControl::CreatePopupWindow()
{
ToolBox& rTbx = GetToolBox();
VclPtr<TableWindow> pWin = VclPtr<TableWindow>::Create( GetSlotId(), m_aCommandURL, GetToolBox().GetItemText( GetId() ), rTbx, m_xFrame );
pWin->StartPopupMode( &rTbx, FLOATWIN_POPUPMODE_GRABFOCUS|FLOATWIN_POPUPMODE_NOKEYCLOSE );
pWin->StartPopupMode( &rTbx, FloatWinPopupFlags::GrabFocus|FloatWinPopupFlags::NoKeyClose );
SetPopupWindow( pWin );
return pWin;
}
......@@ -800,7 +800,7 @@ VclPtr<SfxPopupWindow> SvxColumnsToolBoxControl::CreatePopupWindow()
{
pWin = VclPtr<ColumnsWindow>::Create( GetSlotId(), m_aCommandURL, GetToolBox().GetItemText( GetId() ), GetToolBox(), m_xFrame );
pWin->StartPopupMode( &GetToolBox(),
FLOATWIN_POPUPMODE_GRABFOCUS|FLOATWIN_POPUPMODE_NOKEYCLOSE );
FloatWinPopupFlags::GrabFocus|FloatWinPopupFlags::NoKeyClose );
SetPopupWindow( pWin );
}
return pWin;
......
......@@ -178,7 +178,7 @@ void SvxListBoxControl::StateChanged(
IMPL_LINK_NOARG(SvxListBoxControl, PopupModeEndHdl)
{
if( pPopupWin && 0 == pPopupWin->GetPopupModeFlags() &&
if( pPopupWin && FloatWinPopupFlags::NONE == pPopupWin->GetPopupModeFlags() &&
pPopupWin->IsUserSelected() )
{
sal_uInt16 nCount = pPopupWin->GetListBox().GetSelectEntryCount();
......@@ -308,7 +308,7 @@ VclPtr<SfxPopupWindow> SvxUndoRedoControl::CreatePopupWindow()
// move focus in floating window without
// closing it (GrabFocus() would close it!)
pPopupWin->StartPopupMode( &rBox, FLOATWIN_POPUPMODE_GRABFOCUS );
pPopupWin->StartPopupMode( &rBox, FloatWinPopupFlags::GrabFocus );
//pPopupWin->GetListBox().GrabFocus();
return pPopupWin;
......
......@@ -634,9 +634,9 @@ VclPtr<SfxPopupWindow> SvxLineEndToolBoxControl::CreatePopupWindow()
SvxLineEndWindow* pLineEndWin =
VclPtr<SvxLineEndWindow>::Create( GetId(), m_xFrame, &GetToolBox(), SVX_RESSTR( RID_SVXSTR_LINEEND ) );
pLineEndWin->StartPopupMode( &GetToolBox(),
FLOATWIN_POPUPMODE_GRABFOCUS |
FLOATWIN_POPUPMODE_ALLOWTEAROFF |
FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE );
FloatWinPopupFlags::GrabFocus |
FloatWinPopupFlags::AllowTearOff |
FloatWinPopupFlags::NoAppFocusClose );
pLineEndWin->StartSelection();
SetPopupWindow( pLineEndWin );
return pLineEndWin;
......
......@@ -2634,7 +2634,7 @@ VclPtr<SfxPopupWindow> SvxColorToolBoxControl::CreatePopupWindow()
}
pColorWin->StartPopupMode( &GetToolBox(),
FLOATWIN_POPUPMODE_ALLOWTEAROFF|FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE );
FloatWinPopupFlags::AllowTearOff|FloatWinPopupFlags::NoAppFocusClose );
pColorWin->StartSelection();
SetPopupWindow( pColorWin );
if ( !bSidebarType )
......@@ -2778,9 +2778,9 @@ VclPtr<SfxPopupWindow> SvxFrameToolBoxControl::CreatePopupWindow()
GetSlotId(), m_xFrame, &GetToolBox() );
pFrameWin->StartPopupMode( &GetToolBox(),
FLOATWIN_POPUPMODE_GRABFOCUS |
FLOATWIN_POPUPMODE_ALLOWTEAROFF |
FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE );
FloatWinPopupFlags::GrabFocus |
FloatWinPopupFlags::AllowTearOff |
FloatWinPopupFlags::NoAppFocusClose );
pFrameWin->StartSelection();
SetPopupWindow( pFrameWin );
......@@ -2818,9 +2818,9 @@ VclPtr<SfxPopupWindow> SvxFrameLineStyleToolBoxControl::CreatePopupWindow()
{
VclPtr<SvxLineWindow_Impl> pLineWin = VclPtr<SvxLineWindow_Impl>::Create( GetSlotId(), m_xFrame, &GetToolBox() );
pLineWin->StartPopupMode( &GetToolBox(),
FLOATWIN_POPUPMODE_GRABFOCUS |
FLOATWIN_POPUPMODE_ALLOWTEAROFF |
FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE );
FloatWinPopupFlags::GrabFocus |
FloatWinPopupFlags::AllowTearOff |
FloatWinPopupFlags::NoAppFocusClose );
SetPopupWindow( pLineWin );
return pLineWin;
......
......@@ -900,7 +900,7 @@ void SwView::ExecFieldPopup( const Point& rPt, IFieldmark *fieldBM )
m_pFieldPopup->SetPopupModeEndHdl( LINK( this, SwView, FieldPopupModeEndHdl ) );
Rectangle aRect( m_pEditWin->OutputToScreenPixel( aPixPos ), Size( 0, 0 ) );
m_pFieldPopup->StartPopupMode( aRect, FLOATWIN_POPUPMODE_DOWN|FLOATWIN_POPUPMODE_GRABFOCUS );
m_pFieldPopup->StartPopupMode( aRect, FloatWinPopupFlags::Down|FloatWinPopupFlags::GrabFocus );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -433,7 +433,7 @@ void SwNavigationPI::CreateNavigationTool(const Rectangle& rRect, bool bSetFocus
Point aT1 = aRect.TopLeft();
aT1 = pPopup->GetParent()->OutputToScreenPixel(pPopup->GetParent()->AbsoluteScreenToOutputPixel(aContentToolBox->OutputToAbsoluteScreenPixel(aT1)));
aRect.SetPos(aT1);
pPopup->StartPopupMode(aRect, FLOATWIN_POPUPMODE_RIGHT|FLOATWIN_POPUPMODE_ALLOWTEAROFF);
pPopup->StartPopupMode(aRect, FloatWinPopupFlags::Right|FloatWinPopupFlags::AllowTearOff);
SetPopupWindow( pPopup );
if(bSetFocus)
{
......
......@@ -77,7 +77,7 @@ public:
virtual void SetItemImage( unsigned nPos, SalMenuItem* pSalMenuItem, const Image& rImage ) = 0;
virtual void SetAccelerator( unsigned nPos, SalMenuItem* pSalMenuItem, const vcl::KeyCode& rKeyCode, const OUString& rKeyName ) = 0;
virtual void GetSystemMenuData( SystemMenuData* pData ) = 0;
virtual bool ShowNativePopupMenu(FloatingWindow * pWin, const Rectangle& rRect, sal_uLong nFlags);
virtual bool ShowNativePopupMenu(FloatingWindow * pWin, const Rectangle& rRect, FloatWinPopupFlags nFlags);
virtual bool AddMenuBarButton( const SalMenuButtonItem& ); // return false if not implemented or failure
virtual void RemoveMenuBarButton( sal_uInt16 nId );
......
......@@ -130,7 +130,7 @@ SalMenu::~SalMenu()
{
}
bool SalMenu::ShowNativePopupMenu(FloatingWindow *, const Rectangle&, sal_uLong )
bool SalMenu::ShowNativePopupMenu(FloatingWindow *, const Rectangle&, FloatWinPopupFlags )
{
return false;
}
......
......@@ -2973,7 +2973,7 @@ void ImplListBoxFloatingWindow::setPosSizePixel( long nX, long nY, long nWidth,
aPos.Y() = nY;
sal_uInt16 nIndex;
SetPosPixel( ImplCalcPos( this, Rectangle( aPos, GetParent()->GetSizePixel() ), FLOATWIN_POPUPMODE_DOWN, nIndex ) );
SetPosPixel( ImplCalcPos( this, Rectangle( aPos, GetParent()->GetSizePixel() ), FloatWinPopupFlags::Down, nIndex ) );
}
// if( !IsReallyVisible() )
......@@ -3105,7 +3105,7 @@ void ImplListBoxFloatingWindow::StartFloat( bool bStartTracking )
pGrandparentOutDev->ReMirror( aRect );
// mouse-button right: close the List-Box-Float-win and don't stop the handling fdo#84795
StartPopupMode( aRect, FLOATWIN_POPUPMODE_DOWN | FLOATWIN_POPUPMODE_ALLMOUSEBUTTONCLOSE );
StartPopupMode( aRect, FloatWinPopupFlags::Down | FloatWinPopupFlags::AllMouseButtonClose );
if( nPos != LISTBOX_ENTRY_NOTFOUND )
mpImplLB->ShowProminentEntry( nPos );
......
......@@ -368,7 +368,7 @@ void DockingManager::SetFloatingMode( const vcl::Window *pWindow, bool bFloating
pWrapper->SetFloatingMode( bFloating );
}
void DockingManager::StartPopupMode( ToolBox *pParentToolBox, const vcl::Window *pWindow, sal_uLong nFlags )
void DockingManager::StartPopupMode( ToolBox *pParentToolBox, const vcl::Window *pWindow, FloatWinPopupFlags nFlags )
{
ImplDockingWindowWrapper* pWrapper = GetDockingWindowWrapper( pWindow );
if( pWrapper )
......@@ -377,10 +377,10 @@ void DockingManager::StartPopupMode( ToolBox *pParentToolBox, const vcl::Window
void DockingManager::StartPopupMode( ToolBox *pParentToolBox, const vcl::Window *pWindow )
{
StartPopupMode( pParentToolBox, pWindow, FLOATWIN_POPUPMODE_ALLOWTEAROFF |
FLOATWIN_POPUPMODE_NOFOCUSCLOSE |
FLOATWIN_POPUPMODE_ALLMOUSEBUTTONCLOSE |
FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE );
StartPopupMode( pParentToolBox, pWindow, FloatWinPopupFlags::AllowTearOff |
FloatWinPopupFlags::NoFocusClose |
FloatWinPopupFlags::AllMouseButtonClose |
FloatWinPopupFlags::NoMouseUpClose );
}
bool DockingManager::IsInPopupMode( const vcl::Window *pWindow )
......@@ -1098,7 +1098,7 @@ void ImplDockingWindowWrapper::ShowTitleButton( sal_uInt16 nButton, bool bVisibl
}
}
void ImplDockingWindowWrapper::StartPopupMode( ToolBox *pParentToolBox, sal_uLong nFlags )
void ImplDockingWindowWrapper::StartPopupMode( ToolBox *pParentToolBox, FloatWinPopupFlags nFlags )
{
// do nothing if window is floating
if( IsFloatingMode() )
......@@ -1113,7 +1113,7 @@ void ImplDockingWindowWrapper::StartPopupMode( ToolBox *pParentToolBox, sal_uLon
mpOldBorderWin = NULL; // no border window found
// the new parent for popup mode
VclPtrInstance<ImplPopupFloatWin> pWin( mpParent, this, (nFlags & FLOATWIN_POPUPMODE_ALLOWTEAROFF) != 0 );
VclPtrInstance<ImplPopupFloatWin> pWin( mpParent, this, bool(nFlags & FloatWinPopupFlags::AllowTearOff) );
pWin->SetPopupModeEndHdl( LINK( this, ImplDockingWindowWrapper, PopupModeEnd ) );
pWin->SetText( GetWindow()->GetText() );
......@@ -1146,7 +1146,7 @@ void ImplDockingWindowWrapper::StartPopupMode( ToolBox *pParentToolBox, sal_uLon
// if the subtoolbar was opened via keyboard make sure that key events
// will go into subtoolbar
if( pParentToolBox->IsKeyEvent() )
nFlags |= FLOATWIN_POPUPMODE_GRABFOCUS;
nFlags |= FloatWinPopupFlags::GrabFocus;
mpFloatWin->StartPopupMode( pParentToolBox, nFlags );
GetWindow()->Show();
......
This diff is collapsed.
......@@ -2811,28 +2811,28 @@ sal_uInt16 PopupMenu::Execute( vcl::Window* pExecWindow, const Rectangle& rRect,
{
ENSURE_OR_RETURN( pExecWindow, "PopupMenu::Execute: need a non-NULL window!", 0 );
sal_uLong nPopupModeFlags = 0;
FloatWinPopupFlags nPopupModeFlags = FloatWinPopupFlags::NONE;
if ( nFlags & POPUPMENU_EXECUTE_DOWN )
nPopupModeFlags = FLOATWIN_POPUPMODE_DOWN;
nPopupModeFlags = FloatWinPopupFlags::Down;
else if ( nFlags & POPUPMENU_EXECUTE_UP )
nPopupModeFlags = FLOATWIN_POPUPMODE_UP;
nPopupModeFlags = FloatWinPopupFlags::Up;
else if ( nFlags & POPUPMENU_EXECUTE_LEFT )
nPopupModeFlags = FLOATWIN_POPUPMODE_LEFT;
nPopupModeFlags = FloatWinPopupFlags::Left;
else if ( nFlags & POPUPMENU_EXECUTE_RIGHT )
nPopupModeFlags = FLOATWIN_POPUPMODE_RIGHT;
nPopupModeFlags = FloatWinPopupFlags::Right;
else
nPopupModeFlags = FLOATWIN_POPUPMODE_DOWN;
nPopupModeFlags = FloatWinPopupFlags::Down;
if (nFlags & POPUPMENU_NOMOUSEUPCLOSE ) // allow popup menus to stay open on mouse button up
nPopupModeFlags |= FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE; // useful if the menu was opened on mousebutton down (eg toolbox configuration)
nPopupModeFlags |= FloatWinPopupFlags::NoMouseUpClose; // useful if the menu was opened on mousebutton down (eg toolbox configuration)
if (nFlags & POPUPMENU_NOHORZ_PLACEMENT)
nPopupModeFlags |= FLOATWIN_POPUPMODE_NOHORZPLACEMENT;
nPopupModeFlags |= FloatWinPopupFlags::NoHorzPlacement;
return ImplExecute( pExecWindow, rRect, nPopupModeFlags, 0, false );
}
sal_uInt16 PopupMenu::ImplExecute( vcl::Window* pW, const Rectangle& rRect, sal_uLong nPopupModeFlags, Menu* pSFrom, bool bPreSelectFirst )
sal_uInt16 PopupMenu::ImplExecute( vcl::Window* pW, const Rectangle& rRect, FloatWinPopupFlags nPopupModeFlags, Menu* pSFrom, bool bPreSelectFirst )
{
if ( !pSFrom && ( PopupMenu::IsInExecute() || !GetItemCount() ) )
return 0;
......@@ -2866,11 +2866,11 @@ sal_uInt16 PopupMenu::ImplExecute( vcl::Window* pW, const Rectangle& rRect, sal_
WinBits nStyle = WB_BORDER;
if (bRealExecute)
nPopupModeFlags |= FLOATWIN_POPUPMODE_NEWLEVEL;
nPopupModeFlags |= FLOATWIN_POPUPMODE_NOKEYCLOSE | FLOATWIN_POPUPMODE_ALLMOUSEBUTTONCLOSE;
nPopupModeFlags |= FloatWinPopupFlags::NewLevel;
nPopupModeFlags |= FloatWinPopupFlags::NoKeyClose | FloatWinPopupFlags::AllMouseButtonClose;
// could be useful during debugging.
// nPopupModeFlags |= FLOATWIN_POPUPMODE_NOFOCUSCLOSE;
// nPopupModeFlags |= FloatWinPopupFlags::NoFocusClose;
ImplDelData aDelData;
pW->ImplAddDel( &aDelData );
......@@ -2952,7 +2952,7 @@ sal_uInt16 PopupMenu::ImplExecute( vcl::Window* pW, const Rectangle& rRect, sal_
//mode is to place it somewhere it will fit. e.g. above, left, right. For
//some cases, e.g. menubars, it's desirable to limit the options to
//above/below and force the menu to scroll if it won't fit
if (nPopupModeFlags & FLOATWIN_POPUPMODE_NOHORZPLACEMENT)
if (nPopupModeFlags & FloatWinPopupFlags::NoHorzPlacement)
{
vcl::Window* pRef = pWin;
if ( pRef->GetParent() )
......@@ -2984,13 +2984,13 @@ sal_uInt16 PopupMenu::ImplExecute( vcl::Window* pW, const Rectangle& rRect, sal_
// #102158# menus must never grab the focus, otherwise
// they will be closed immediately
// from now on focus grabbing is only prohibited automatically if
// FLOATWIN_POPUPMODE_GRABFOCUS was set (which is done below), because some
// FloatWinPopupFlags::GrabFocus was set (which is done below), because some
// floaters (like floating toolboxes) may grab the focus
// pWin->GrabFocus();
if ( GetItemCount() )
{
SalMenu* pMenu = ImplGetSalMenu();
if( pMenu && bRealExecute && pMenu->ShowNativePopupMenu( pWin, aRect, nPopupModeFlags | FLOATWIN_POPUPMODE_GRABFOCUS ) )
if( pMenu && bRealExecute && pMenu->ShowNativePopupMenu( pWin, aRect, nPopupModeFlags | FloatWinPopupFlags::GrabFocus ) )
{
pWin->StopExecute(0);
pWin->doShutdown();
......@@ -3000,7 +3000,7 @@ sal_uInt16 PopupMenu::ImplExecute( vcl::Window* pW, const Rectangle& rRect, sal_
}
else
{
pWin->StartPopupMode( aRect, nPopupModeFlags | FLOATWIN_POPUPMODE_GRABFOCUS );
pWin->StartPopupMode( aRect, nPopupModeFlags | FloatWinPopupFlags::GrabFocus );
}
if( pSFrom )
{
......
......@@ -336,7 +336,7 @@ void MenuBarWindow::ImplCreatePopup( bool bPreSelectFirst )
// #99071# do not grab the focus, otherwise it will be restored to the menubar
// when the frame is reactivated later
//GrabFocus();
pActivePopup->ImplExecute( this, Rectangle( aItemTopLeft, aItemBottomRight ), FLOATWIN_POPUPMODE_DOWN | FLOATWIN_POPUPMODE_NOHORZPLACEMENT, pMenu, bPreSelectFirst );
pActivePopup->ImplExecute( this, Rectangle( aItemTopLeft, aItemBottomRight ), FloatWinPopupFlags::Down | FloatWinPopupFlags::NoHorzPlacement, pMenu, bPreSelectFirst );
// does not have a window, if aborted before or if there are no entries
if ( pActivePopup->ImplGetFloatingWindow() )
pActivePopup->ImplGetFloatingWindow()->AddPopupModeWindow( this );
......
......@@ -282,8 +282,8 @@ IMPL_LINK_TYPED( MenuFloatingWindow, HighlightChanged, Timer*, pTimer, void )
{
if ( pActivePopup && ( pActivePopup != pItemData->pSubMenu ) )
{
sal_uLong nOldFlags = GetPopupModeFlags();
SetPopupModeFlags( GetPopupModeFlags() | FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE );
FloatWinPopupFlags nOldFlags = GetPopupModeFlags();
SetPopupModeFlags( GetPopupModeFlags() | FloatWinPopupFlags::NoAppFocusClose );
KillActivePopup();
SetPopupModeFlags( nOldFlags );
}
......@@ -321,9 +321,9 @@ IMPL_LINK_TYPED( MenuFloatingWindow, HighlightChanged, Timer*, pTimer, void )
// were for long in Activate Rescheduled and which should not be
// displayed now.
Menu* pTest = pActivePopup;
sal_uLong nOldFlags = GetPopupModeFlags();
SetPopupModeFlags( GetPopupModeFlags() | FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE );
sal_uInt16 nRet = pActivePopup->ImplExecute( this, Rectangle( aItemTopLeft, aItemBottomRight ), FLOATWIN_POPUPMODE_RIGHT, pMenu, pTimer == nullptr );
FloatWinPopupFlags nOldFlags = GetPopupModeFlags();
SetPopupModeFlags( GetPopupModeFlags() | FloatWinPopupFlags::NoAppFocusClose );
sal_uInt16 nRet = pActivePopup->ImplExecute( this, Rectangle( aItemTopLeft, aItemBottomRight ), FloatWinPopupFlags::Right, pMenu, pTimer == nullptr );
SetPopupModeFlags( nOldFlags );
// nRet != 0, wenn es waerend Activate() abgeschossen wurde...
......
......@@ -76,7 +76,7 @@ static bool ImplHandleMouseFloatMode( vcl::Window* pChild, const Point& rMousePo
HitTest nHitTest = HITTEST_OUTSIDE;
FloatingWindow* pFloat = pSVData->maWinData.mpFirstFloat->ImplFloatHitTest( pChild, rMousePos, nHitTest );
FloatingWindow* pLastLevelFloat;
sal_uLong nPopupFlags;
FloatWinPopupFlags nPopupFlags;
if ( nSVEvent == MouseNotifyEvent::MOUSEMOVE )
{
if ( bMouseLeave )
......@@ -105,7 +105,7 @@ static bool ImplHandleMouseFloatMode( vcl::Window* pChild, const Point& rMousePo
}
else if ( nHitTest == HITTEST_RECT )
{
if ( !(pFloat->GetPopupModeFlags() & FLOATWIN_POPUPMODE_NOMOUSERECTCLOSE) )
if ( !(pFloat->GetPopupModeFlags() & FloatWinPopupFlags::NoMouseRectClose) )
pFloat->ImplSetMouseDown();
return true;
}
......@@ -125,7 +125,7 @@ static bool ImplHandleMouseFloatMode( vcl::Window* pChild, const Point& rMousePo
{
pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat();
nPopupFlags = pLastLevelFloat->GetPopupModeFlags();
if ( !(nPopupFlags & FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE) )
if ( !(nPopupFlags & FloatWinPopupFlags::NoMouseUpClose) )
{
pLastLevelFloat->EndPopupMode( FLOATWIN_POPUPMODEEND_CANCEL | FLOATWIN_POPUPMODEEND_CLOSEALL );
return true;
......@@ -139,9 +139,9 @@ static bool ImplHandleMouseFloatMode( vcl::Window* pChild, const Point& rMousePo
{
pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat();
nPopupFlags = pLastLevelFloat->GetPopupModeFlags();
if ( nPopupFlags & FLOATWIN_POPUPMODE_ALLMOUSEBUTTONCLOSE )
if ( nPopupFlags & FloatWinPopupFlags::AllMouseButtonClose )
{
if ( (nPopupFlags & FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE) &&
if ( (nPopupFlags & FloatWinPopupFlags::NoMouseUpClose) &&
(nSVEvent == MouseNotifyEvent::MOUSEBUTTONUP) )
return true;
pLastLevelFloat->EndPopupMode( FLOATWIN_POPUPMODEEND_CANCEL | FLOATWIN_POPUPMODEEND_CLOSEALL );
......@@ -953,7 +953,7 @@ static bool ImplHandleKey( vcl::Window* pWindow, MouseNotifyEvent nSVEvent,
if ( pSVData->maWinData.mpFirstFloat )
{
FloatingWindow* pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat();
if ( !(pLastLevelFloat->GetPopupModeFlags() & FLOATWIN_POPUPMODE_NOKEYCLOSE) )
if ( !(pLastLevelFloat->GetPopupModeFlags() & FloatWinPopupFlags::NoKeyClose) )
{
sal_uInt16 nEscCode = aKeyCode.GetCode();
......@@ -976,7 +976,7 @@ static bool ImplHandleKey( vcl::Window* pWindow, MouseNotifyEvent nSVEvent,
if ( pSVData->maWinData.mpFirstFloat )
{
FloatingWindow* pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat();
if ( !(pLastLevelFloat->GetPopupModeFlags() & FLOATWIN_POPUPMODE_NOKEYCLOSE) )
if ( !(pLastLevelFloat->GetPopupModeFlags() & FloatWinPopupFlags::NoKeyClose) )
{
sal_uInt16 nCode = aKeyCode.GetCode();
......@@ -1651,7 +1651,7 @@ static void KillOwnPopups( vcl::Window* pWindow )
vcl::Window *pChild = pSVData->maWinData.mpFirstFloat;
if ( pChild && pParent->ImplIsWindowOrChild( pChild, true ) )
{
if ( !(pSVData->maWinData.mpFirstFloat->GetPopupModeFlags() & FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE) )
if ( !(pSVData->maWinData.mpFirstFloat->GetPopupModeFlags() & FloatWinPopupFlags::NoAppFocusClose) )
pSVData->maWinData.mpFirstFloat->EndPopupMode( FLOATWIN_POPUPMODEEND_CANCEL | FLOATWIN_POPUPMODEEND_CLOSEALL );
}
}
......@@ -1916,7 +1916,7 @@ static void ImplHandleLoseFocus( vcl::Window* pWindow )
// is set, such that we do not show windows during the switch
if ( pSVData->maWinData.mpFirstFloat )