[Libreoffice-commits] .: Branch 'feature/cmclayouttrans' - vcl/source

Caolán McNamara caolan at kemper.freedesktop.org
Fri Aug 10 03:32:28 PDT 2012


 vcl/source/window/window.cxx  |  310 -----------------------------------------
 vcl/source/window/window2.cxx |  311 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 311 insertions(+), 310 deletions(-)

New commits:
commit e1d839cf6ff963bb121882cd154c4df2f765a545
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Aug 10 11:31:09 2012 +0100

    move from window.cxx to window2.cxx to build under windows
    
    svsys.h on windows includes stuff that undefines WB_LEFT etc, sigh
    
    Change-Id: I01dea9f1f6a4cf335402b04185047eeb99b07f9a

diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 71ef16d..d969698 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -36,7 +36,6 @@
 #include "unotools/confignode.hxx"
 
 #include "vcl/unohelp.hxx"
-#include "vcl/layout.hxx"
 #include "vcl/salgtype.hxx"
 #include "vcl/event.hxx"
 #include "vcl/help.hxx"
@@ -9668,313 +9667,4 @@ Selection Window::GetSurroundingTextSelection() const
   return Selection( 0, 0 );
 }
 
-//When a widget wants to renegotiate size, get toplevel parent dialog and call
-//resize on it. Maybe better to just find direct parent and if its a container
-//chain it upwards one step at a time until a dialog is found.
-void Window::queue_resize()
-{
-    Dialog *pParent = GetParentDialog();
-    if (!pParent || pParent == this)
-        return;
-    if (pParent->isLayoutEnabled())
-        pParent->Resize();
-}
-
-void Window::setChildAnyProperty(const rtl::OString &rString, const Any &rValue)
-{
-    m_aWidgetProperties[rString] <<= rValue;
-}
-
-uno::Any Window::getWidgetAnyProperty(const rtl::OString &rString) const
-{
-    uno::Any aAny;
-    ChildPropertyMap::const_iterator aI = m_aWidgetProperties.find(rString);
-    if (aI != m_aWidgetProperties.end())
-        aAny = aI->second;
-    return aAny;
-}
-
-Size Window::get_preferred_size() const
-{
-    Size aRet(mpWindowImpl->mnWidthRequest, mpWindowImpl->mnHeightRequest);
-    if (aRet.Width() == -1 || aRet.Height() == -1)
-    {
-        Size aOptimal = GetOptimalSize(WINDOWSIZE_PREFERRED);
-        if (aRet.Width() == -1)
-            aRet.Width() = aOptimal.Width();
-        if (aRet.Height() == -1)
-            aRet.Height() = aOptimal.Height();
-    }
-    return aRet;
-}
-
-void Window::take_properties(Window &rOther)
-{
-    if (!mpWindowImpl)
-    {
-        ImplInitWindowData(WINDOW_WINDOW);
-        ImplInit(rOther.GetParent(), rOther.GetStyle(), NULL);
-    }
-
-    WindowImpl *pWindowImpl = rOther.mpWindowImpl;
-    if (!mpWindowImpl->mpRealParent)
-        ImplInit(pWindowImpl->mpRealParent, rOther.GetStyle(), NULL);
-    std::swap(mpWindowImpl->mpUserData, pWindowImpl->mpUserData);
-    std::swap(mpWindowImpl->mpExtImpl, pWindowImpl->mpExtImpl);
-    std::swap(mpWindowImpl->mpCursor, pWindowImpl->mpCursor);
-    std::swap(mpWindowImpl->maPointer, pWindowImpl->maPointer);
-    mpWindowImpl->maZoom = pWindowImpl->maZoom;
-    mpWindowImpl->maText = pWindowImpl->maText;
-    std::swap(mpWindowImpl->mpControlFont, pWindowImpl->mpControlFont);
-    mpWindowImpl->maControlForeground = pWindowImpl->maControlForeground;
-    mpWindowImpl->maControlBackground = pWindowImpl->maControlBackground;
-    mpWindowImpl->mnLeftBorder = pWindowImpl->mnLeftBorder;
-    mpWindowImpl->mnTopBorder = pWindowImpl->mnTopBorder;
-    mpWindowImpl->mnRightBorder = pWindowImpl->mnRightBorder;
-    mpWindowImpl->mnBottomBorder = pWindowImpl->mnBottomBorder;
-    mpWindowImpl->mnWidthRequest = pWindowImpl->mnWidthRequest;
-    mpWindowImpl->mnHeightRequest = pWindowImpl->mnHeightRequest;
-    mpWindowImpl->mnX = pWindowImpl->mnX;
-    mpWindowImpl->mnY = pWindowImpl->mnY;
-    mpWindowImpl->mnAbsScreenX = pWindowImpl->mnAbsScreenX;
-    mpWindowImpl->maPos = pWindowImpl->maPos;
-    mpWindowImpl->maHelpId = pWindowImpl->maHelpId;
-    mpWindowImpl->maUniqId = pWindowImpl->maUniqId;
-    mpWindowImpl->maHelpText = pWindowImpl->maHelpText;
-    mpWindowImpl->maQuickHelpText = pWindowImpl->maQuickHelpText;
-    std::swap(mpWindowImpl->maInputContext, pWindowImpl->maInputContext);
-    mpWindowImpl->mnStyle = pWindowImpl->mnStyle;
-    mpWindowImpl->mnPrevStyle = pWindowImpl->mnPrevStyle;
-    mpWindowImpl->mnExtendedStyle = pWindowImpl->mnExtendedStyle;
-    mpWindowImpl->mnPrevExtendedStyle = pWindowImpl->mnPrevExtendedStyle;
-    mpWindowImpl->mnType = pWindowImpl->mnType;
-    mpWindowImpl->mnNativeBackground = pWindowImpl->mnNativeBackground;
-    mpWindowImpl->mnWaitCount = pWindowImpl->mnWaitCount;
-    mpWindowImpl->mnPaintFlags = pWindowImpl->mnPaintFlags;
-    mpWindowImpl->mnGetFocusFlags = pWindowImpl->mnGetFocusFlags;
-    mpWindowImpl->mnParentClipMode = pWindowImpl->mnParentClipMode;
-    mpWindowImpl->mnActivateMode = pWindowImpl->mnActivateMode;
-    mpWindowImpl->mnDlgCtrlFlags = pWindowImpl->mnDlgCtrlFlags;
-    mpWindowImpl->mnLockCount = pWindowImpl->mnLockCount;
-    mpWindowImpl->meAlwaysInputMode = pWindowImpl->meAlwaysInputMode;
-    mpWindowImpl->mbFrame = pWindowImpl->mbFrame;
-    mpWindowImpl->mbBorderWin = pWindowImpl->mbBorderWin;
-    mpWindowImpl->mbOverlapWin = pWindowImpl->mbOverlapWin;
-    mpWindowImpl->mbSysWin = pWindowImpl->mbSysWin;
-    mpWindowImpl->mbDialog = pWindowImpl->mbDialog;
-    mpWindowImpl->mbDockWin = pWindowImpl->mbDockWin;
-    mpWindowImpl->mbFloatWin = pWindowImpl->mbFloatWin;
-    mpWindowImpl->mbPushButton = pWindowImpl->mbPushButton;
-    mpWindowImpl->mbVisible = pWindowImpl->mbVisible;
-    mpWindowImpl->mbDisabled = pWindowImpl->mbDisabled;
-    mpWindowImpl->mbInputDisabled = pWindowImpl->mbInputDisabled;
-    mpWindowImpl->mbDropDisabled = pWindowImpl->mbDropDisabled;
-    mpWindowImpl->mbNoUpdate = pWindowImpl->mbNoUpdate;
-    mpWindowImpl->mbNoParentUpdate = pWindowImpl->mbNoParentUpdate;
-    mpWindowImpl->mbActive = pWindowImpl->mbActive;
-    mpWindowImpl->mbParentActive = pWindowImpl->mbParentActive;
-    mpWindowImpl->mbReallyVisible = pWindowImpl->mbReallyVisible;
-    mpWindowImpl->mbReallyShown = pWindowImpl->mbReallyShown;
-    mpWindowImpl->mbInInitShow = pWindowImpl->mbInInitShow;
-    mpWindowImpl->mbChildNotify = pWindowImpl->mbChildNotify;
-    mpWindowImpl->mbChildPtrOverwrite = pWindowImpl->mbChildPtrOverwrite;
-    mpWindowImpl->mbNoPtrVisible = pWindowImpl->mbNoPtrVisible;
-    mpWindowImpl->mbPaintFrame = pWindowImpl->mbPaintFrame;
-    mpWindowImpl->mbInPaint = pWindowImpl->mbInPaint;
-    mpWindowImpl->mbMouseMove = pWindowImpl->mbMouseMove;
-    mpWindowImpl->mbMouseButtonDown = pWindowImpl->mbMouseButtonDown;
-    mpWindowImpl->mbMouseButtonUp = pWindowImpl->mbMouseButtonUp;
-    mpWindowImpl->mbKeyInput = pWindowImpl->mbKeyInput;
-    mpWindowImpl->mbKeyUp = pWindowImpl->mbKeyUp;
-    mpWindowImpl->mbCommand = pWindowImpl->mbCommand;
-    mpWindowImpl->mbDefPos = pWindowImpl->mbDefPos;
-    mpWindowImpl->mbDefSize = pWindowImpl->mbDefSize;
-    mpWindowImpl->mbCallMove = pWindowImpl->mbCallMove;
-    mpWindowImpl->mbCallResize = pWindowImpl->mbCallResize;
-    mpWindowImpl->mbWaitSystemResize = pWindowImpl->mbWaitSystemResize;
-    mpWindowImpl->mbInitWinClipRegion = pWindowImpl->mbInitWinClipRegion;
-    mpWindowImpl->mbInitChildRegion = pWindowImpl->mbInitChildRegion;
-    mpWindowImpl->mbWinRegion = pWindowImpl->mbWinRegion;
-    mpWindowImpl->mbClipChildren = pWindowImpl->mbClipChildren;
-    mpWindowImpl->mbClipSiblings = pWindowImpl->mbClipSiblings;
-    mpWindowImpl->mbChildTransparent = pWindowImpl->mbChildTransparent;
-    mpWindowImpl->mbPaintTransparent = pWindowImpl->mbPaintTransparent;
-    mpWindowImpl->mbMouseTransparent = pWindowImpl->mbMouseTransparent;
-    mpWindowImpl->mbDlgCtrlStart = pWindowImpl->mbDlgCtrlStart;
-    mpWindowImpl->mbFocusVisible = pWindowImpl->mbFocusVisible;
-    mpWindowImpl->mbTrackVisible = pWindowImpl->mbTrackVisible;
-    mpWindowImpl->mbUseNativeFocus = pWindowImpl->mbUseNativeFocus;
-    mpWindowImpl->mbNativeFocusVisible = pWindowImpl->mbNativeFocusVisible;
-    mpWindowImpl->mbInShowFocus = pWindowImpl->mbInShowFocus;
-    mpWindowImpl->mbInHideFocus = pWindowImpl->mbInHideFocus;
-    mpWindowImpl->mbControlForeground = pWindowImpl->mbControlForeground;
-    mpWindowImpl->mbControlBackground = pWindowImpl->mbControlBackground;
-    mpWindowImpl->mbAlwaysOnTop = pWindowImpl->mbAlwaysOnTop;
-    mpWindowImpl->mbCompoundControl = pWindowImpl->mbCompoundControl;
-    mpWindowImpl->mbCompoundControlHasFocus = pWindowImpl->mbCompoundControlHasFocus;
-    mpWindowImpl->mbPaintDisabled = pWindowImpl->mbPaintDisabled;
-    mpWindowImpl->mbAllResize = pWindowImpl->mbAllResize;
-    mpWindowImpl->mbInDtor = pWindowImpl->mbInDtor;
-    mpWindowImpl->mbExtTextInput = pWindowImpl->mbExtTextInput;
-    mpWindowImpl->mbInFocusHdl = pWindowImpl->mbInFocusHdl;
-    mpWindowImpl->mbOverlapVisible = pWindowImpl->mbOverlapVisible;
-    mpWindowImpl->mbCreatedWithToolkit = pWindowImpl->mbCreatedWithToolkit;
-    mpWindowImpl->mbToolBox = pWindowImpl->mbToolBox;
-    mpWindowImpl->mbSplitter = pWindowImpl->mbSplitter;
-    mpWindowImpl->mbSuppressAccessibilityEvents = pWindowImpl->mbSuppressAccessibilityEvents;
-    mpWindowImpl->mbMenuFloatingWindow = pWindowImpl->mbMenuFloatingWindow;
-    mpWindowImpl->mbDrawSelectionBackground = pWindowImpl->mbDrawSelectionBackground;
-    mpWindowImpl->mbIsInTaskPaneList = pWindowImpl->mbIsInTaskPaneList;
-    mpWindowImpl->mbToolbarFloatingWindow = pWindowImpl->mbToolbarFloatingWindow;
-    mpWindowImpl->mbCallHandlersDuringInputDisabled = pWindowImpl->mbCallHandlersDuringInputDisabled;
-    mpWindowImpl->mbDisableAccessibleLabelForRelation = pWindowImpl->mbDisableAccessibleLabelForRelation;
-    mpWindowImpl->mbDisableAccessibleLabeledByRelation = pWindowImpl->mbDisableAccessibleLabeledByRelation;
-    mpWindowImpl->mbHelpTextDynamic = pWindowImpl->mbHelpTextDynamic;
-    mpWindowImpl->mbFakeFocusSet = pWindowImpl->mbFakeFocusSet;
-    mpWindowImpl->mbHexpand = pWindowImpl->mbHexpand;
-    mpWindowImpl->mbVexpand = pWindowImpl->mbVexpand;
-    mpWindowImpl->meHalign = pWindowImpl->meHalign;
-    mpWindowImpl->meValign = pWindowImpl->meValign;
-
-    std::swap(m_aWidgetProperties, rOther.m_aWidgetProperties);
-
-    bool bHasBorderWindow = mpWindowImpl->mpBorderWindow;
-    bool bOtherHasBorderWindow = pWindowImpl->mpBorderWindow;
-
-    assert(bHasBorderWindow == bOtherHasBorderWindow);
-
-    if (bHasBorderWindow && bOtherHasBorderWindow)
-        mpWindowImpl->mpBorderWindow->take_properties(*pWindowImpl->mpBorderWindow);
-}
-
-namespace
-{
-    VclAlign toAlign(const rtl::OString &rValue)
-    {
-        VclAlign eRet = VCL_ALIGN_FILL;
-
-        if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("fill")))
-            eRet = VCL_ALIGN_FILL;
-        else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("start")))
-            eRet = VCL_ALIGN_START;
-        else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("end")))
-            eRet = VCL_ALIGN_END;
-        else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("center")))
-            eRet = VCL_ALIGN_CENTER;
-        return eRet;
-    }
-}
-
-bool Window::set_property(const rtl::OString &rKey, const rtl::OString &rValue)
-{
-    if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("label")))
-        SetText(rtl::OStringToOUString(rValue, RTL_TEXTENCODING_UTF8));
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("visible")))
-        Show(toBool(rValue));
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("sensitive")))
-        Enable(toBool(rValue));
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("resizable")))
-    {
-        WinBits nBits = GetStyle();
-        nBits &= ~(WB_SIZEMOVE);
-        if (toBool(rValue))
-            nBits |= WB_SIZEMOVE;
-        SetStyle(nBits);
-    }
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("xalign")))
-    {
-        WinBits nBits = GetStyle();
-        nBits &= ~(WB_LEFT | WB_CENTER | WB_RIGHT);
-
-        float f = rValue.toFloat();
-        if (f == 0.0)
-            nBits |= WB_LEFT;
-        else if (f == 1.0)
-            nBits |= WB_RIGHT;
-        else if (f == 0.5)
-            nBits |= WB_CENTER;
-
-        SetStyle(nBits);
-    }
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("yalign")))
-    {
-        WinBits nBits = GetStyle();
-        nBits &= ~(WB_TOP | WB_VCENTER | WB_BOTTOM);
-
-        float f = rValue.toFloat();
-        if (f == 0.0)
-            nBits |= WB_TOP;
-        else if (f == 1.0)
-            nBits |= WB_BOTTOM;
-        else if (f == 0.5)
-            nBits |= WB_CENTER;
-
-        SetStyle(nBits);
-    }
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("text")))
-        SetText(rtl::OStringToOUString(rValue, RTL_TEXTENCODING_UTF8));
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("height-request")))
-        set_height_request(rValue.toInt32());
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("width-request")))
-        set_width_request(rValue.toInt32());
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("hexpand")))
-        set_hexpand(toBool(rValue));
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("vexpand")))
-        set_vexpand(toBool(rValue));
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("halign")))
-        set_halign(toAlign(rValue));
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("valign")))
-        set_valign(toAlign(rValue));
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("tooltip-markup")))
-        SetQuickHelpText(rtl::OStringToOUString(rValue, RTL_TEXTENCODING_UTF8));
-    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("tooltip-text")))
-        SetQuickHelpText(rtl::OStringToOUString(rValue, RTL_TEXTENCODING_UTF8));
-    else
-    {
-        fprintf(stderr, "unhandled property %s\n", rKey.getStr());
-        return false;
-    }
-    return true;
-}
-
-VclAlign Window::get_halign() const
-{
-    return mpWindowImpl->meHalign;
-}
-
-void Window::set_halign(VclAlign eAlign)
-{
-    mpWindowImpl->meHalign = eAlign;
-}
-
-VclAlign Window::get_valign() const
-{
-    return mpWindowImpl->meValign;
-}
-
-void Window::set_valign(VclAlign eAlign)
-{
-    mpWindowImpl->meValign = eAlign;
-}
-
-bool Window::get_hexpand() const
-{
-    return mpWindowImpl->mbHexpand;
-}
-
-void Window::set_hexpand(bool bExpand)
-{
-    mpWindowImpl->mbHexpand = bExpand;
-}
-
-bool Window::get_vexpand() const
-{
-    return mpWindowImpl->mbVexpand;
-}
-
-void Window::set_vexpand(bool bExpand)
-{
-    mpWindowImpl->mbVexpand = bExpand;
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 69faafa..91c799e 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -34,6 +34,7 @@
 #include <vcl/bitmap.hxx>
 #include <vcl/dialog.hxx>
 #include <vcl/event.hxx>
+#include <vcl/layout.hxx>
 #include <vcl/timer.hxx>
 #include <vcl/metric.hxx>
 #include <vcl/virdev.hxx>
@@ -51,6 +52,7 @@
 #include <salframe.hxx>
 #include <scrwnd.hxx>
 
+using namespace com::sun::star;
 
 // =======================================================================
 
@@ -1747,4 +1749,313 @@ void Window::SetBackgroundBitmap( const BitmapEx& rBitmapEx )
     }
 }
 
+//When a widget wants to renegotiate size, get toplevel parent dialog and call
+//resize on it. Maybe better to just find direct parent and if its a container
+//chain it upwards one step at a time until a dialog is found.
+void Window::queue_resize()
+{
+    Dialog *pParent = GetParentDialog();
+    if (!pParent || pParent == this)
+        return;
+    if (pParent->isLayoutEnabled())
+        pParent->Resize();
+}
+
+void Window::setChildAnyProperty(const rtl::OString &rString, const uno::Any &rValue)
+{
+    m_aWidgetProperties[rString] <<= rValue;
+}
+
+uno::Any Window::getWidgetAnyProperty(const rtl::OString &rString) const
+{
+    uno::Any aAny;
+    ChildPropertyMap::const_iterator aI = m_aWidgetProperties.find(rString);
+    if (aI != m_aWidgetProperties.end())
+        aAny = aI->second;
+    return aAny;
+}
+
+Size Window::get_preferred_size() const
+{
+    Size aRet(mpWindowImpl->mnWidthRequest, mpWindowImpl->mnHeightRequest);
+    if (aRet.Width() == -1 || aRet.Height() == -1)
+    {
+        Size aOptimal = GetOptimalSize(WINDOWSIZE_PREFERRED);
+        if (aRet.Width() == -1)
+            aRet.Width() = aOptimal.Width();
+        if (aRet.Height() == -1)
+            aRet.Height() = aOptimal.Height();
+    }
+    return aRet;
+}
+
+void Window::take_properties(Window &rOther)
+{
+    if (!mpWindowImpl)
+    {
+        ImplInitWindowData(WINDOW_WINDOW);
+        ImplInit(rOther.GetParent(), rOther.GetStyle(), NULL);
+    }
+
+    WindowImpl *pWindowImpl = rOther.mpWindowImpl;
+    if (!mpWindowImpl->mpRealParent)
+        ImplInit(pWindowImpl->mpRealParent, rOther.GetStyle(), NULL);
+    std::swap(mpWindowImpl->mpUserData, pWindowImpl->mpUserData);
+    std::swap(mpWindowImpl->mpExtImpl, pWindowImpl->mpExtImpl);
+    std::swap(mpWindowImpl->mpCursor, pWindowImpl->mpCursor);
+    std::swap(mpWindowImpl->maPointer, pWindowImpl->maPointer);
+    mpWindowImpl->maZoom = pWindowImpl->maZoom;
+    mpWindowImpl->maText = pWindowImpl->maText;
+    std::swap(mpWindowImpl->mpControlFont, pWindowImpl->mpControlFont);
+    mpWindowImpl->maControlForeground = pWindowImpl->maControlForeground;
+    mpWindowImpl->maControlBackground = pWindowImpl->maControlBackground;
+    mpWindowImpl->mnLeftBorder = pWindowImpl->mnLeftBorder;
+    mpWindowImpl->mnTopBorder = pWindowImpl->mnTopBorder;
+    mpWindowImpl->mnRightBorder = pWindowImpl->mnRightBorder;
+    mpWindowImpl->mnBottomBorder = pWindowImpl->mnBottomBorder;
+    mpWindowImpl->mnWidthRequest = pWindowImpl->mnWidthRequest;
+    mpWindowImpl->mnHeightRequest = pWindowImpl->mnHeightRequest;
+    mpWindowImpl->mnX = pWindowImpl->mnX;
+    mpWindowImpl->mnY = pWindowImpl->mnY;
+    mpWindowImpl->mnAbsScreenX = pWindowImpl->mnAbsScreenX;
+    mpWindowImpl->maPos = pWindowImpl->maPos;
+    mpWindowImpl->maHelpId = pWindowImpl->maHelpId;
+    mpWindowImpl->maUniqId = pWindowImpl->maUniqId;
+    mpWindowImpl->maHelpText = pWindowImpl->maHelpText;
+    mpWindowImpl->maQuickHelpText = pWindowImpl->maQuickHelpText;
+    std::swap(mpWindowImpl->maInputContext, pWindowImpl->maInputContext);
+    mpWindowImpl->mnStyle = pWindowImpl->mnStyle;
+    mpWindowImpl->mnPrevStyle = pWindowImpl->mnPrevStyle;
+    mpWindowImpl->mnExtendedStyle = pWindowImpl->mnExtendedStyle;
+    mpWindowImpl->mnPrevExtendedStyle = pWindowImpl->mnPrevExtendedStyle;
+    mpWindowImpl->mnType = pWindowImpl->mnType;
+    mpWindowImpl->mnNativeBackground = pWindowImpl->mnNativeBackground;
+    mpWindowImpl->mnWaitCount = pWindowImpl->mnWaitCount;
+    mpWindowImpl->mnPaintFlags = pWindowImpl->mnPaintFlags;
+    mpWindowImpl->mnGetFocusFlags = pWindowImpl->mnGetFocusFlags;
+    mpWindowImpl->mnParentClipMode = pWindowImpl->mnParentClipMode;
+    mpWindowImpl->mnActivateMode = pWindowImpl->mnActivateMode;
+    mpWindowImpl->mnDlgCtrlFlags = pWindowImpl->mnDlgCtrlFlags;
+    mpWindowImpl->mnLockCount = pWindowImpl->mnLockCount;
+    mpWindowImpl->meAlwaysInputMode = pWindowImpl->meAlwaysInputMode;
+    mpWindowImpl->mbFrame = pWindowImpl->mbFrame;
+    mpWindowImpl->mbBorderWin = pWindowImpl->mbBorderWin;
+    mpWindowImpl->mbOverlapWin = pWindowImpl->mbOverlapWin;
+    mpWindowImpl->mbSysWin = pWindowImpl->mbSysWin;
+    mpWindowImpl->mbDialog = pWindowImpl->mbDialog;
+    mpWindowImpl->mbDockWin = pWindowImpl->mbDockWin;
+    mpWindowImpl->mbFloatWin = pWindowImpl->mbFloatWin;
+    mpWindowImpl->mbPushButton = pWindowImpl->mbPushButton;
+    mpWindowImpl->mbVisible = pWindowImpl->mbVisible;
+    mpWindowImpl->mbDisabled = pWindowImpl->mbDisabled;
+    mpWindowImpl->mbInputDisabled = pWindowImpl->mbInputDisabled;
+    mpWindowImpl->mbDropDisabled = pWindowImpl->mbDropDisabled;
+    mpWindowImpl->mbNoUpdate = pWindowImpl->mbNoUpdate;
+    mpWindowImpl->mbNoParentUpdate = pWindowImpl->mbNoParentUpdate;
+    mpWindowImpl->mbActive = pWindowImpl->mbActive;
+    mpWindowImpl->mbParentActive = pWindowImpl->mbParentActive;
+    mpWindowImpl->mbReallyVisible = pWindowImpl->mbReallyVisible;
+    mpWindowImpl->mbReallyShown = pWindowImpl->mbReallyShown;
+    mpWindowImpl->mbInInitShow = pWindowImpl->mbInInitShow;
+    mpWindowImpl->mbChildNotify = pWindowImpl->mbChildNotify;
+    mpWindowImpl->mbChildPtrOverwrite = pWindowImpl->mbChildPtrOverwrite;
+    mpWindowImpl->mbNoPtrVisible = pWindowImpl->mbNoPtrVisible;
+    mpWindowImpl->mbPaintFrame = pWindowImpl->mbPaintFrame;
+    mpWindowImpl->mbInPaint = pWindowImpl->mbInPaint;
+    mpWindowImpl->mbMouseMove = pWindowImpl->mbMouseMove;
+    mpWindowImpl->mbMouseButtonDown = pWindowImpl->mbMouseButtonDown;
+    mpWindowImpl->mbMouseButtonUp = pWindowImpl->mbMouseButtonUp;
+    mpWindowImpl->mbKeyInput = pWindowImpl->mbKeyInput;
+    mpWindowImpl->mbKeyUp = pWindowImpl->mbKeyUp;
+    mpWindowImpl->mbCommand = pWindowImpl->mbCommand;
+    mpWindowImpl->mbDefPos = pWindowImpl->mbDefPos;
+    mpWindowImpl->mbDefSize = pWindowImpl->mbDefSize;
+    mpWindowImpl->mbCallMove = pWindowImpl->mbCallMove;
+    mpWindowImpl->mbCallResize = pWindowImpl->mbCallResize;
+    mpWindowImpl->mbWaitSystemResize = pWindowImpl->mbWaitSystemResize;
+    mpWindowImpl->mbInitWinClipRegion = pWindowImpl->mbInitWinClipRegion;
+    mpWindowImpl->mbInitChildRegion = pWindowImpl->mbInitChildRegion;
+    mpWindowImpl->mbWinRegion = pWindowImpl->mbWinRegion;
+    mpWindowImpl->mbClipChildren = pWindowImpl->mbClipChildren;
+    mpWindowImpl->mbClipSiblings = pWindowImpl->mbClipSiblings;
+    mpWindowImpl->mbChildTransparent = pWindowImpl->mbChildTransparent;
+    mpWindowImpl->mbPaintTransparent = pWindowImpl->mbPaintTransparent;
+    mpWindowImpl->mbMouseTransparent = pWindowImpl->mbMouseTransparent;
+    mpWindowImpl->mbDlgCtrlStart = pWindowImpl->mbDlgCtrlStart;
+    mpWindowImpl->mbFocusVisible = pWindowImpl->mbFocusVisible;
+    mpWindowImpl->mbTrackVisible = pWindowImpl->mbTrackVisible;
+    mpWindowImpl->mbUseNativeFocus = pWindowImpl->mbUseNativeFocus;
+    mpWindowImpl->mbNativeFocusVisible = pWindowImpl->mbNativeFocusVisible;
+    mpWindowImpl->mbInShowFocus = pWindowImpl->mbInShowFocus;
+    mpWindowImpl->mbInHideFocus = pWindowImpl->mbInHideFocus;
+    mpWindowImpl->mbControlForeground = pWindowImpl->mbControlForeground;
+    mpWindowImpl->mbControlBackground = pWindowImpl->mbControlBackground;
+    mpWindowImpl->mbAlwaysOnTop = pWindowImpl->mbAlwaysOnTop;
+    mpWindowImpl->mbCompoundControl = pWindowImpl->mbCompoundControl;
+    mpWindowImpl->mbCompoundControlHasFocus = pWindowImpl->mbCompoundControlHasFocus;
+    mpWindowImpl->mbPaintDisabled = pWindowImpl->mbPaintDisabled;
+    mpWindowImpl->mbAllResize = pWindowImpl->mbAllResize;
+    mpWindowImpl->mbInDtor = pWindowImpl->mbInDtor;
+    mpWindowImpl->mbExtTextInput = pWindowImpl->mbExtTextInput;
+    mpWindowImpl->mbInFocusHdl = pWindowImpl->mbInFocusHdl;
+    mpWindowImpl->mbOverlapVisible = pWindowImpl->mbOverlapVisible;
+    mpWindowImpl->mbCreatedWithToolkit = pWindowImpl->mbCreatedWithToolkit;
+    mpWindowImpl->mbToolBox = pWindowImpl->mbToolBox;
+    mpWindowImpl->mbSplitter = pWindowImpl->mbSplitter;
+    mpWindowImpl->mbSuppressAccessibilityEvents = pWindowImpl->mbSuppressAccessibilityEvents;
+    mpWindowImpl->mbMenuFloatingWindow = pWindowImpl->mbMenuFloatingWindow;
+    mpWindowImpl->mbDrawSelectionBackground = pWindowImpl->mbDrawSelectionBackground;
+    mpWindowImpl->mbIsInTaskPaneList = pWindowImpl->mbIsInTaskPaneList;
+    mpWindowImpl->mbToolbarFloatingWindow = pWindowImpl->mbToolbarFloatingWindow;
+    mpWindowImpl->mbCallHandlersDuringInputDisabled = pWindowImpl->mbCallHandlersDuringInputDisabled;
+    mpWindowImpl->mbDisableAccessibleLabelForRelation = pWindowImpl->mbDisableAccessibleLabelForRelation;
+    mpWindowImpl->mbDisableAccessibleLabeledByRelation = pWindowImpl->mbDisableAccessibleLabeledByRelation;
+    mpWindowImpl->mbHelpTextDynamic = pWindowImpl->mbHelpTextDynamic;
+    mpWindowImpl->mbFakeFocusSet = pWindowImpl->mbFakeFocusSet;
+    mpWindowImpl->mbHexpand = pWindowImpl->mbHexpand;
+    mpWindowImpl->mbVexpand = pWindowImpl->mbVexpand;
+    mpWindowImpl->meHalign = pWindowImpl->meHalign;
+    mpWindowImpl->meValign = pWindowImpl->meValign;
+
+    std::swap(m_aWidgetProperties, rOther.m_aWidgetProperties);
+
+    bool bHasBorderWindow = mpWindowImpl->mpBorderWindow;
+    bool bOtherHasBorderWindow = pWindowImpl->mpBorderWindow;
+
+    assert(bHasBorderWindow == bOtherHasBorderWindow);
+
+    if (bHasBorderWindow && bOtherHasBorderWindow)
+        mpWindowImpl->mpBorderWindow->take_properties(*pWindowImpl->mpBorderWindow);
+}
+
+namespace
+{
+    VclAlign toAlign(const rtl::OString &rValue)
+    {
+        VclAlign eRet = VCL_ALIGN_FILL;
+
+        if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("fill")))
+            eRet = VCL_ALIGN_FILL;
+        else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("start")))
+            eRet = VCL_ALIGN_START;
+        else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("end")))
+            eRet = VCL_ALIGN_END;
+        else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("center")))
+            eRet = VCL_ALIGN_CENTER;
+        return eRet;
+    }
+}
+
+bool Window::set_property(const rtl::OString &rKey, const rtl::OString &rValue)
+{
+    if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("label")))
+        SetText(rtl::OStringToOUString(rValue, RTL_TEXTENCODING_UTF8));
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("visible")))
+        Show(toBool(rValue));
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("sensitive")))
+        Enable(toBool(rValue));
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("resizable")))
+    {
+        WinBits nBits = GetStyle();
+        nBits &= ~(WB_SIZEMOVE);
+        if (toBool(rValue))
+            nBits |= WB_SIZEMOVE;
+        SetStyle(nBits);
+    }
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("xalign")))
+    {
+        WinBits nBits = GetStyle();
+        nBits &= ~(WB_LEFT | WB_CENTER | WB_RIGHT);
+
+        float f = rValue.toFloat();
+        if (f == 0.0)
+            nBits |= WB_LEFT;
+        else if (f == 1.0)
+            nBits |= WB_RIGHT;
+        else if (f == 0.5)
+            nBits |= WB_CENTER;
+
+        SetStyle(nBits);
+    }
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("yalign")))
+    {
+        WinBits nBits = GetStyle();
+        nBits &= ~(WB_TOP | WB_VCENTER | WB_BOTTOM);
+
+        float f = rValue.toFloat();
+        if (f == 0.0)
+            nBits |= WB_TOP;
+        else if (f == 1.0)
+            nBits |= WB_BOTTOM;
+        else if (f == 0.5)
+            nBits |= WB_CENTER;
+
+        SetStyle(nBits);
+    }
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("text")))
+        SetText(rtl::OStringToOUString(rValue, RTL_TEXTENCODING_UTF8));
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("height-request")))
+        set_height_request(rValue.toInt32());
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("width-request")))
+        set_width_request(rValue.toInt32());
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("hexpand")))
+        set_hexpand(toBool(rValue));
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("vexpand")))
+        set_vexpand(toBool(rValue));
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("halign")))
+        set_halign(toAlign(rValue));
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("valign")))
+        set_valign(toAlign(rValue));
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("tooltip-markup")))
+        SetQuickHelpText(rtl::OStringToOUString(rValue, RTL_TEXTENCODING_UTF8));
+    else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("tooltip-text")))
+        SetQuickHelpText(rtl::OStringToOUString(rValue, RTL_TEXTENCODING_UTF8));
+    else
+    {
+        fprintf(stderr, "unhandled property %s\n", rKey.getStr());
+        return false;
+    }
+    return true;
+}
+
+VclAlign Window::get_halign() const
+{
+    return mpWindowImpl->meHalign;
+}
+
+void Window::set_halign(VclAlign eAlign)
+{
+    mpWindowImpl->meHalign = eAlign;
+}
+
+VclAlign Window::get_valign() const
+{
+    return mpWindowImpl->meValign;
+}
+
+void Window::set_valign(VclAlign eAlign)
+{
+    mpWindowImpl->meValign = eAlign;
+}
+
+bool Window::get_hexpand() const
+{
+    return mpWindowImpl->mbHexpand;
+}
+
+void Window::set_hexpand(bool bExpand)
+{
+    mpWindowImpl->mbHexpand = bExpand;
+}
+
+bool Window::get_vexpand() const
+{
+    return mpWindowImpl->mbVexpand;
+}
+
+void Window::set_vexpand(bool bExpand)
+{
+    mpWindowImpl->mbVexpand = bExpand;
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list