Convert SALOBJ_EVENT to scoped enum

Change-Id: I41fcdbb2381008b99f6cb7cafb085d35f8db9374
Reviewed-on: https://gerrit.libreoffice.org/24828
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
diff --git a/vcl/inc/salobj.hxx b/vcl/inc/salobj.hxx
index 174b1b1..b1005fb 100644
--- a/vcl/inc/salobj.hxx
+++ b/vcl/inc/salobj.hxx
@@ -52,7 +52,7 @@ public:

    void                            SetCallback( void* pInst, SALOBJECTPROC pProc )
                                        { m_pInst = pInst; m_pCallback = pProc; }
    void                            CallCallback( sal_uInt16 nEvent, const void* pEvent )
    void                            CallCallback( SalObjEvent nEvent, const void* pEvent )
                                        { if (m_pCallback) m_pCallback( m_pInst, this, nEvent, pEvent ); }

    void                            SetMouseTransparent( bool bMouseTransparent )
diff --git a/vcl/inc/salwtype.hxx b/vcl/inc/salwtype.hxx
index d0adae4..4e5b689 100644
--- a/vcl/inc/salwtype.hxx
+++ b/vcl/inc/salwtype.hxx
@@ -219,13 +219,15 @@ struct SalQueryCharPositionEvent

typedef bool (*SALFRAMEPROC)( vcl::Window* pInst, SalEvent nEvent, const void* pEvent );

#define SALOBJ_EVENT_GETFOCUS           ((sal_uInt16)1)
#define SALOBJ_EVENT_LOSEFOCUS          ((sal_uInt16)2)
#define SALOBJ_EVENT_TOTOP              ((sal_uInt16)3)
#define SALOBJ_EVENT_COUNT              ((sal_uInt16)4)
enum class SalObjEvent {
    GetFocus           = 1,
    LoseFocus          = 2,
    ToTop              = 3,
    Count              = 4
};

typedef long (*SALOBJECTPROC)( void* pInst, SalObject* pObject,
                               sal_uInt16 nEvent, const void* pEvent );
                               SalObjEvent nEvent, const void* pEvent );

struct SalFrameState
{
diff --git a/vcl/source/window/syschild.cxx b/vcl/source/window/syschild.cxx
index 3bf1271..7f92c64 100644
--- a/vcl/source/window/syschild.cxx
+++ b/vcl/source/window/syschild.cxx
@@ -50,14 +50,14 @@
using namespace ::com::sun::star;

long ImplSysChildProc( void* pInst, SalObject* /* pObject */,
                       sal_uInt16 nEvent, const void* /* pEvent */ )
                       SalObjEvent nEvent, const void* /* pEvent */ )
{
    VclPtr<SystemChildWindow> pWindow = static_cast<SystemChildWindow*>(pInst);
    long nRet = 0;

    switch ( nEvent )
    {
        case SALOBJ_EVENT_GETFOCUS:
        case SalObjEvent::GetFocus:
            // get focus, such that all handlers are called,
            // as if this window gets the focus assuring
            // that the frame does not steal it
@@ -74,7 +74,7 @@ long ImplSysChildProc( void* pInst, SalObject* /* pObject */,
            pWindow->ImplGetFrameData()->mbInSysObjFocusHdl = false;
            break;

        case SALOBJ_EVENT_LOSEFOCUS:
        case SalObjEvent::LoseFocus:
            // trigger a LoseFocus which matches the status
            // of the window with matching Activate-Status
            pWindow->ImplGetFrameData()->mbSysObjFocus = false;
@@ -85,7 +85,7 @@ long ImplSysChildProc( void* pInst, SalObject* /* pObject */,
            }
            break;

        case SALOBJ_EVENT_TOTOP:
        case SalObjEvent::ToTop:
            pWindow->ImplGetFrameData()->mbInSysObjToTopHdl = true;
            if ( !Application::GetFocusWindow() || pWindow->HasChildPathFocus() )
                pWindow->ToTop( ToTopFlags::NoGrabFocus );
@@ -98,6 +98,8 @@ long ImplSysChildProc( void* pInst, SalObject* /* pObject */,
                break;
            pWindow->ImplGetFrameData()->mbInSysObjToTopHdl = false;
            break;

        default: break;
    }

    return nRet;
diff --git a/vcl/unx/generic/window/salobj.cxx b/vcl/unx/generic/window/salobj.cxx
index 23e531a..5ea811a 100644
--- a/vcl/unx/generic/window/salobj.cxx
+++ b/vcl/unx/generic/window/salobj.cxx
@@ -458,13 +458,13 @@ bool X11SalObject::Dispatch( XEvent* pEvent )
                    pObject->mbVisible = true;
                    return true;
                    case ButtonPress:
                    pObject->CallCallback( SALOBJ_EVENT_TOTOP, nullptr );
                    pObject->CallCallback( SalObjEvent::ToTop, nullptr );
                    return true;
                    case FocusIn:
                    pObject->CallCallback( SALOBJ_EVENT_GETFOCUS, nullptr );
                    pObject->CallCallback( SalObjEvent::GetFocus, nullptr );
                    return true;
                    case FocusOut:
                    pObject->CallCallback( SALOBJ_EVENT_LOSEFOCUS, nullptr );
                    pObject->CallCallback( SalObjEvent::LoseFocus, nullptr );
                    return true;
                    default: break;
                }
diff --git a/vcl/unx/gtk/gtkobject.cxx b/vcl/unx/gtk/gtkobject.cxx
index 32a41d05..0717ffe 100644
--- a/vcl/unx/gtk/gtkobject.cxx
+++ b/vcl/unx/gtk/gtkobject.cxx
@@ -159,7 +159,7 @@ gboolean GtkSalObject::signalButton( GtkWidget*, GdkEventButton* pEvent, gpointe

    if( pEvent->type == GDK_BUTTON_PRESS )
    {
        pThis->CallCallback( SALOBJ_EVENT_TOTOP, nullptr );
        pThis->CallCallback( SalObjEvent::ToTop, nullptr );
    }

    return FALSE;
@@ -169,7 +169,7 @@ gboolean GtkSalObject::signalFocus( GtkWidget*, GdkEventFocus* pEvent, gpointer 
{
    GtkSalObject* pThis = static_cast<GtkSalObject*>(object);

    pThis->CallCallback( pEvent->in ? SALOBJ_EVENT_GETFOCUS : SALOBJ_EVENT_LOSEFOCUS, nullptr );
    pThis->CallCallback( pEvent->in ? SalObjEvent::GetFocus : SalObjEvent::LoseFocus, nullptr );

    return FALSE;
}
diff --git a/vcl/unx/gtk3/gtk3gtkobject.cxx b/vcl/unx/gtk3/gtk3gtkobject.cxx
index 72d157a..bf3fbbe 100644
--- a/vcl/unx/gtk3/gtk3gtkobject.cxx
+++ b/vcl/unx/gtk3/gtk3gtkobject.cxx
@@ -150,7 +150,7 @@ gboolean GtkSalObject::signalButton( GtkWidget*, GdkEventButton* pEvent, gpointe

    if( pEvent->type == GDK_BUTTON_PRESS )
    {
        pThis->CallCallback( SALOBJ_EVENT_TOTOP, nullptr );
        pThis->CallCallback( SalObjEvent::ToTop, nullptr );
    }

    return FALSE;
@@ -160,7 +160,7 @@ gboolean GtkSalObject::signalFocus( GtkWidget*, GdkEventFocus* pEvent, gpointer 
{
    GtkSalObject* pThis = static_cast<GtkSalObject*>(object);

    pThis->CallCallback( pEvent->in ? SALOBJ_EVENT_GETFOCUS : SALOBJ_EVENT_LOSEFOCUS, nullptr );
    pThis->CallCallback( pEvent->in ? SalObjEvent::GetFocus : SalObjEvent::LoseFocus, nullptr );

    return FALSE;
}
diff --git a/vcl/win/window/salobj.cxx b/vcl/win/window/salobj.cxx
index 49aa26f..9231e36 100644
--- a/vcl/win/window/salobj.cxx
+++ b/vcl/win/window/salobj.cxx
@@ -108,7 +108,7 @@ LRESULT CALLBACK SalSysMsgProc( int nCode, WPARAM wParam, LPARAM lParam )
                pObject->mhLastFocusWnd = pData->hwnd;
                if ( ImplSalYieldMutexTryToAcquire() )
                {
                    pObject->CallCallback( SALOBJ_EVENT_GETFOCUS, 0 );
                    pObject->CallCallback( SalObjEvent::GetFocus, 0 );
                    ImplSalYieldMutexRelease();
                }
                else
@@ -128,7 +128,7 @@ LRESULT CALLBACK SalSysMsgProc( int nCode, WPARAM wParam, LPARAM lParam )
                {
                    if ( ImplSalYieldMutexTryToAcquire() )
                    {
                        pObject->CallCallback( SALOBJ_EVENT_LOSEFOCUS, 0 );
                        pObject->CallCallback( SalObjEvent::LoseFocus, 0 );
                        ImplSalYieldMutexRelease();
                    }
                    else
@@ -286,7 +286,7 @@ LRESULT CALLBACK SalSysObjWndProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM l
                ImplSalYieldMutexAcquireWithWait();
                pSysObj = GetSalObjWindowPtr( hWnd );
                if ( pSysObj && !pSysObj->IsMouseTransparent() )
                    pSysObj->CallCallback( SALOBJ_EVENT_TOTOP, 0 );
                    pSysObj->CallCallback( SalObjEvent::ToTop, 0 );
                ImplSalYieldMutexRelease();
            }
            }
@@ -309,7 +309,7 @@ LRESULT CALLBACK SalSysObjWndProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM l
            if ( ImplSalYieldMutexTryToAcquire() )
            {
                pSysObj = GetSalObjWindowPtr( hWnd );
                pSysObj->CallCallback( SALOBJ_EVENT_TOTOP, 0 );
                pSysObj->CallCallback( SalObjEvent::ToTop, 0 );
                ImplSalYieldMutexRelease();
                rDef = FALSE;
            }
@@ -325,11 +325,11 @@ LRESULT CALLBACK SalSysObjWndProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM l
            {
                pSysObj = GetSalObjWindowPtr( hWnd );
                HWND    hFocusWnd = ::GetFocus();
                sal_uInt16 nEvent;
                SalObjEvent nEvent;
                if ( hFocusWnd && ImplIsSysWindowOrChild( hWnd, hFocusWnd ) )
                    nEvent = SALOBJ_EVENT_GETFOCUS;
                    nEvent = SalObjEvent::GetFocus;
                else
                    nEvent = SALOBJ_EVENT_LOSEFOCUS;
                    nEvent = SalObjEvent::LoseFocus;
                pSysObj->CallCallback( nEvent, 0 );
                ImplSalYieldMutexRelease();
            }