[Libreoffice-commits] core.git: 7 commits - vcl/inc vcl/source
Chris Sherlock
chris.sherlock79 at gmail.com
Mon May 26 15:15:50 PDT 2014
vcl/inc/svdata.hxx | 5
vcl/source/window/clipping.cxx | 261 +++++++++++++++++++++++++++++++++++++++
vcl/source/window/stacking.cxx | 34 +++--
vcl/source/window/window.cxx | 256 +++++++++++++++++++-------------------
vcl/source/window/window2.cxx | 272 -----------------------------------------
5 files changed, 414 insertions(+), 414 deletions(-)
New commits:
commit 467a0d624df1a62b8fa2b28d587c0b42ea3b3e04
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date: Tue May 27 00:52:54 2014 +1000
vcl: move clipping functions from window.cxx into clipping.cxx
Change-Id: I2a2c3d6283c962bba2994de04bbd869a79fc2eca
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index 6c09c57..4659ee2 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -18,12 +18,16 @@
*/
#include <vcl/window.hxx>
+#include <vcl/virdev.hxx>
#include <sal/types.h>
#include <salobj.hxx>
#include <window.h>
+#define IMPL_MAXSAVEBACKSIZE (640*480)
+#define IMPL_MAXALLSAVEBACKSIZE (800*600*2)
+
void Window::InitClipRegion()
{
DBG_TESTSOLARMUTEX();
@@ -792,4 +796,175 @@ bool Window::ImplIsWindowInFront( const Window* pTestWindow ) const
return false;
}
+void Window::SaveBackground( const Point& rPos, const Size& rSize,
+ const Point& rDestOff, VirtualDevice& rSaveDevice )
+{
+ if ( mpWindowImpl->mpPaintRegion )
+ {
+ Region aClip( *mpWindowImpl->mpPaintRegion );
+ const Point aPixPos( LogicToPixel( rPos ) );
+
+ aClip.Move( -mnOutOffX, -mnOutOffY );
+ aClip.Intersect( Rectangle( aPixPos, LogicToPixel( rSize ) ) );
+
+ if ( !aClip.IsEmpty() )
+ {
+ const Region aOldClip( rSaveDevice.GetClipRegion() );
+ const Point aPixOffset( rSaveDevice.LogicToPixel( rDestOff ) );
+ const bool bMap = rSaveDevice.IsMapModeEnabled();
+
+ // move clip region to have the same distance to DestOffset
+ aClip.Move( aPixOffset.X() - aPixPos.X(), aPixOffset.Y() - aPixPos.Y() );
+
+ // set pixel clip region
+ rSaveDevice.EnableMapMode( false );
+ rSaveDevice.SetClipRegion( aClip );
+ rSaveDevice.EnableMapMode( bMap );
+ rSaveDevice.DrawOutDev( rDestOff, rSize, rPos, rSize, *this );
+ rSaveDevice.SetClipRegion( aOldClip );
+ }
+ }
+ else
+ rSaveDevice.DrawOutDev( rDestOff, rSize, rPos, rSize, *this );
+}
+
+void Window::ImplSaveOverlapBackground()
+{
+ DBG_ASSERT( !mpWindowImpl->mpOverlapData->mpSaveBackDev, "Window::ImplSaveOverlapBackground() - Background already saved" );
+
+ if ( !mpWindowImpl->mbFrame )
+ {
+ sal_uLong nSaveBackSize = mnOutWidth*mnOutHeight;
+ if ( nSaveBackSize <= IMPL_MAXSAVEBACKSIZE )
+ {
+ if ( nSaveBackSize+mpWindowImpl->mpFrameData->mnAllSaveBackSize <= IMPL_MAXALLSAVEBACKSIZE )
+ {
+ Size aOutSize( mnOutWidth, mnOutHeight );
+ mpWindowImpl->mpOverlapData->mpSaveBackDev = new VirtualDevice( *mpWindowImpl->mpFrameWindow );
+ if ( mpWindowImpl->mpOverlapData->mpSaveBackDev->SetOutputSizePixel( aOutSize ) )
+ {
+ mpWindowImpl->mpFrameWindow->ImplUpdateAll();
+
+ if ( mpWindowImpl->mbInitWinClipRegion )
+ ImplInitWinClipRegion();
+
+ mpWindowImpl->mpOverlapData->mnSaveBackSize = nSaveBackSize;
+ mpWindowImpl->mpFrameData->mnAllSaveBackSize += nSaveBackSize;
+ Point aDevPt;
+
+ OutputDevice *pOutDev = mpWindowImpl->mpFrameWindow->GetOutDev();
+ pOutDev->ImplGetFrameDev( Point( mnOutOffX, mnOutOffY ),
+ aDevPt, aOutSize,
+ *(mpWindowImpl->mpOverlapData->mpSaveBackDev) );
+ mpWindowImpl->mpOverlapData->mpNextBackWin = mpWindowImpl->mpFrameData->mpFirstBackWin;
+ mpWindowImpl->mpFrameData->mpFirstBackWin = this;
+ }
+ else
+ {
+ delete mpWindowImpl->mpOverlapData->mpSaveBackDev;
+ mpWindowImpl->mpOverlapData->mpSaveBackDev = NULL;
+ }
+ }
+ }
+ }
+}
+
+bool Window::ImplRestoreOverlapBackground( Region& rInvRegion )
+{
+ if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
+ {
+ if ( mpWindowImpl->mbInitWinClipRegion )
+ ImplInitWinClipRegion();
+
+ if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
+ {
+ Point aDevPt;
+ Point aDestPt( mnOutOffX, mnOutOffY );
+ Size aDevSize = mpWindowImpl->mpOverlapData->mpSaveBackDev->GetOutputSizePixel();
+
+ OutputDevice *pOutDev = mpWindowImpl->mpFrameWindow->GetOutDev();
+
+ if ( mpWindowImpl->mpOverlapData->mpSaveBackRgn )
+ {
+ mpWindowImpl->mpOverlapData->mpSaveBackRgn->Intersect( mpWindowImpl->maWinClipRegion );
+ rInvRegion = mpWindowImpl->maWinClipRegion;
+ rInvRegion.Exclude( *mpWindowImpl->mpOverlapData->mpSaveBackRgn );
+ pOutDev->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize,
+ *(mpWindowImpl->mpOverlapData->mpSaveBackDev),
+ *mpWindowImpl->mpOverlapData->mpSaveBackRgn );
+ }
+ else
+ {
+ pOutDev->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize,
+ *(mpWindowImpl->mpOverlapData->mpSaveBackDev),
+ mpWindowImpl->maWinClipRegion );
+ }
+ ImplDeleteOverlapBackground();
+ }
+
+ return true;
+ }
+
+ return false;
+}
+
+void Window::ImplDeleteOverlapBackground()
+{
+ if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
+ {
+ mpWindowImpl->mpFrameData->mnAllSaveBackSize -= mpWindowImpl->mpOverlapData->mnSaveBackSize;
+ delete mpWindowImpl->mpOverlapData->mpSaveBackDev;
+ mpWindowImpl->mpOverlapData->mpSaveBackDev = NULL;
+ if ( mpWindowImpl->mpOverlapData->mpSaveBackRgn )
+ {
+ delete mpWindowImpl->mpOverlapData->mpSaveBackRgn;
+ mpWindowImpl->mpOverlapData->mpSaveBackRgn = NULL;
+ }
+
+ // remove window from the list
+ if ( mpWindowImpl->mpFrameData->mpFirstBackWin == this )
+ mpWindowImpl->mpFrameData->mpFirstBackWin = mpWindowImpl->mpOverlapData->mpNextBackWin;
+ else
+ {
+ Window* pTemp = mpWindowImpl->mpFrameData->mpFirstBackWin;
+ while ( pTemp->mpWindowImpl->mpOverlapData->mpNextBackWin != this )
+ pTemp = pTemp->mpWindowImpl->mpOverlapData->mpNextBackWin;
+ pTemp->mpWindowImpl->mpOverlapData->mpNextBackWin = mpWindowImpl->mpOverlapData->mpNextBackWin;
+ }
+ mpWindowImpl->mpOverlapData->mpNextBackWin = NULL;
+ }
+}
+
+void Window::ImplInvalidateAllOverlapBackgrounds()
+{
+ Window* pWindow = mpWindowImpl->mpFrameData->mpFirstBackWin;
+ while ( pWindow )
+ {
+ // remember next window here already, as this window could
+ // be removed within the next if clause from the list
+ Window* pNext = pWindow->mpWindowImpl->mpOverlapData->mpNextBackWin;
+
+ if ( ImplIsWindowInFront( pWindow ) )
+ {
+ Rectangle aRect1( Point( mnOutOffX, mnOutOffY ),
+ Size( mnOutWidth, mnOutHeight ) );
+ Rectangle aRect2( Point( pWindow->mnOutOffX, pWindow->mnOutOffY ),
+ Size( pWindow->mnOutWidth, pWindow->mnOutHeight ) );
+ aRect1.Intersection( aRect2 );
+ if ( !aRect1.IsEmpty() )
+ {
+ if ( !pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn )
+ pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn = new Region( aRect2 );
+ pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn->Exclude( aRect1 );
+ if ( pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn->IsEmpty() )
+ pWindow->ImplDeleteOverlapBackground();
+ }
+
+ }
+
+ pWindow = pNext;
+ }
+}
+
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/stacking.cxx b/vcl/source/window/stacking.cxx
index b678321..6a9be38 100644
--- a/vcl/source/window/stacking.cxx
+++ b/vcl/source/window/stacking.cxx
@@ -52,6 +52,14 @@ struct ImplCalcToTopData
Region* mpInvalidateRegion;
};
+Window* Window::ImplGetTopmostFrameWindow()
+{
+ Window *pTopmostParent = this;
+ while( pTopmostParent->ImplGetParent() )
+ pTopmostParent = pTopmostParent->ImplGetParent();
+ return pTopmostParent->mpWindowImpl->mpFrameWindow;
+}
+
void Window::ImplInsertWindow( Window* pParent )
{
mpWindowImpl->mpParent = pParent;
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 3931953..24ed6fa 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -47,147 +47,6 @@
using namespace com::sun::star;
-#define IMPL_MAXSAVEBACKSIZE (640*480)
-#define IMPL_MAXALLSAVEBACKSIZE (800*600*2)
-
-void Window::ImplSaveOverlapBackground()
-{
- DBG_ASSERT( !mpWindowImpl->mpOverlapData->mpSaveBackDev, "Window::ImplSaveOverlapBackground() - Background already saved" );
-
- if ( !mpWindowImpl->mbFrame )
- {
- sal_uLong nSaveBackSize = mnOutWidth*mnOutHeight;
- if ( nSaveBackSize <= IMPL_MAXSAVEBACKSIZE )
- {
- if ( nSaveBackSize+mpWindowImpl->mpFrameData->mnAllSaveBackSize <= IMPL_MAXALLSAVEBACKSIZE )
- {
- Size aOutSize( mnOutWidth, mnOutHeight );
- mpWindowImpl->mpOverlapData->mpSaveBackDev = new VirtualDevice( *mpWindowImpl->mpFrameWindow );
- if ( mpWindowImpl->mpOverlapData->mpSaveBackDev->SetOutputSizePixel( aOutSize ) )
- {
- mpWindowImpl->mpFrameWindow->ImplUpdateAll();
-
- if ( mpWindowImpl->mbInitWinClipRegion )
- ImplInitWinClipRegion();
-
- mpWindowImpl->mpOverlapData->mnSaveBackSize = nSaveBackSize;
- mpWindowImpl->mpFrameData->mnAllSaveBackSize += nSaveBackSize;
- Point aDevPt;
-
- OutputDevice *pOutDev = mpWindowImpl->mpFrameWindow->GetOutDev();
- pOutDev->ImplGetFrameDev( Point( mnOutOffX, mnOutOffY ),
- aDevPt, aOutSize,
- *(mpWindowImpl->mpOverlapData->mpSaveBackDev) );
- mpWindowImpl->mpOverlapData->mpNextBackWin = mpWindowImpl->mpFrameData->mpFirstBackWin;
- mpWindowImpl->mpFrameData->mpFirstBackWin = this;
- }
- else
- {
- delete mpWindowImpl->mpOverlapData->mpSaveBackDev;
- mpWindowImpl->mpOverlapData->mpSaveBackDev = NULL;
- }
- }
- }
- }
-}
-
-bool Window::ImplRestoreOverlapBackground( Region& rInvRegion )
-{
- if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
- {
- if ( mpWindowImpl->mbInitWinClipRegion )
- ImplInitWinClipRegion();
-
- if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
- {
- Point aDevPt;
- Point aDestPt( mnOutOffX, mnOutOffY );
- Size aDevSize = mpWindowImpl->mpOverlapData->mpSaveBackDev->GetOutputSizePixel();
-
- OutputDevice *pOutDev = mpWindowImpl->mpFrameWindow->GetOutDev();
-
- if ( mpWindowImpl->mpOverlapData->mpSaveBackRgn )
- {
- mpWindowImpl->mpOverlapData->mpSaveBackRgn->Intersect( mpWindowImpl->maWinClipRegion );
- rInvRegion = mpWindowImpl->maWinClipRegion;
- rInvRegion.Exclude( *mpWindowImpl->mpOverlapData->mpSaveBackRgn );
- pOutDev->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize,
- *(mpWindowImpl->mpOverlapData->mpSaveBackDev),
- *mpWindowImpl->mpOverlapData->mpSaveBackRgn );
- }
- else
- {
- pOutDev->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize,
- *(mpWindowImpl->mpOverlapData->mpSaveBackDev),
- mpWindowImpl->maWinClipRegion );
- }
- ImplDeleteOverlapBackground();
- }
-
- return true;
- }
-
- return false;
-}
-
-void Window::ImplDeleteOverlapBackground()
-{
- if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
- {
- mpWindowImpl->mpFrameData->mnAllSaveBackSize -= mpWindowImpl->mpOverlapData->mnSaveBackSize;
- delete mpWindowImpl->mpOverlapData->mpSaveBackDev;
- mpWindowImpl->mpOverlapData->mpSaveBackDev = NULL;
- if ( mpWindowImpl->mpOverlapData->mpSaveBackRgn )
- {
- delete mpWindowImpl->mpOverlapData->mpSaveBackRgn;
- mpWindowImpl->mpOverlapData->mpSaveBackRgn = NULL;
- }
-
- // remove window from the list
- if ( mpWindowImpl->mpFrameData->mpFirstBackWin == this )
- mpWindowImpl->mpFrameData->mpFirstBackWin = mpWindowImpl->mpOverlapData->mpNextBackWin;
- else
- {
- Window* pTemp = mpWindowImpl->mpFrameData->mpFirstBackWin;
- while ( pTemp->mpWindowImpl->mpOverlapData->mpNextBackWin != this )
- pTemp = pTemp->mpWindowImpl->mpOverlapData->mpNextBackWin;
- pTemp->mpWindowImpl->mpOverlapData->mpNextBackWin = mpWindowImpl->mpOverlapData->mpNextBackWin;
- }
- mpWindowImpl->mpOverlapData->mpNextBackWin = NULL;
- }
-}
-
-void Window::ImplInvalidateAllOverlapBackgrounds()
-{
- Window* pWindow = mpWindowImpl->mpFrameData->mpFirstBackWin;
- while ( pWindow )
- {
- // remember next window here already, as this window could
- // be removed within the next if clause from the list
- Window* pNext = pWindow->mpWindowImpl->mpOverlapData->mpNextBackWin;
-
- if ( ImplIsWindowInFront( pWindow ) )
- {
- Rectangle aRect1( Point( mnOutOffX, mnOutOffY ),
- Size( mnOutWidth, mnOutHeight ) );
- Rectangle aRect2( Point( pWindow->mnOutOffX, pWindow->mnOutOffY ),
- Size( pWindow->mnOutWidth, pWindow->mnOutHeight ) );
- aRect1.Intersection( aRect2 );
- if ( !aRect1.IsEmpty() )
- {
- if ( !pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn )
- pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn = new Region( aRect2 );
- pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn->Exclude( aRect1 );
- if ( pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn->IsEmpty() )
- pWindow->ImplDeleteOverlapBackground();
- }
-
- }
-
- pWindow = pNext;
- }
-}
-
void Window::ShowFocus( const Rectangle& rRect )
{
if( mpWindowImpl->mbInShowFocus )
@@ -611,38 +470,6 @@ void Window::EndAutoScroll()
}
}
-void Window::SaveBackground( const Point& rPos, const Size& rSize,
- const Point& rDestOff, VirtualDevice& rSaveDevice )
-{
- if ( mpWindowImpl->mpPaintRegion )
- {
- Region aClip( *mpWindowImpl->mpPaintRegion );
- const Point aPixPos( LogicToPixel( rPos ) );
-
- aClip.Move( -mnOutOffX, -mnOutOffY );
- aClip.Intersect( Rectangle( aPixPos, LogicToPixel( rSize ) ) );
-
- if ( !aClip.IsEmpty() )
- {
- const Region aOldClip( rSaveDevice.GetClipRegion() );
- const Point aPixOffset( rSaveDevice.LogicToPixel( rDestOff ) );
- const bool bMap = rSaveDevice.IsMapModeEnabled();
-
- // move clip region to have the same distance to DestOffset
- aClip.Move( aPixOffset.X() - aPixPos.X(), aPixOffset.Y() - aPixPos.Y() );
-
- // set pixel clip region
- rSaveDevice.EnableMapMode( false );
- rSaveDevice.SetClipRegion( aClip );
- rSaveDevice.EnableMapMode( bMap );
- rSaveDevice.DrawOutDev( rDestOff, rSize, rPos, rSize, *this );
- rSaveDevice.SetClipRegion( aOldClip );
- }
- }
- else
- rSaveDevice.DrawOutDev( rDestOff, rSize, rPos, rSize, *this );
-}
-
sal_uIntPtr Window::SaveFocus()
{
ImplSVData* pSVData = ImplGetSVData();
@@ -1112,14 +939,6 @@ void Window::EnableDocking( bool bEnable )
return ImplGetTopmostFrameWindow()->mpWindowImpl->mpFrameData->maOwnerDrawList;
}
-Window* Window::ImplGetTopmostFrameWindow()
-{
- Window *pTopmostParent = this;
- while( pTopmostParent->ImplGetParent() )
- pTopmostParent = pTopmostParent->ImplGetParent();
- return pTopmostParent->mpWindowImpl->mpFrameWindow;
-}
-
void Window::SetHelpId( const OString& rHelpId )
{
mpWindowImpl->maHelpId = rHelpId;
commit 7b545001a10042c03ddde09ac9e0e6c3cdf6f8ca
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date: Tue May 27 00:49:56 2014 +1000
vcl: move functionality from window2.cxx
Change-Id: I68d1c7bb32df9024ea57a07d7d3b051efc08b2ed
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index 7fa60e3..155346f 100644
--- a/vcl/inc/svdata.hxx
+++ b/vcl/inc/svdata.hxx
@@ -393,6 +393,11 @@ private:
void AttachToWindow( const Window* );
};
+struct ImplFocusDelData : public ImplDelData
+{
+ Window* mpFocusWin;
+};
+
struct ImplSVEvent
{
void* mpData;
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index f7afeb1..6c09c57 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -706,4 +706,90 @@ void Window::ImplCalcOverlapRegion( const Rectangle& rSourceRect, Region& rRegio
}
}
+bool Window::ImplIsWindowInFront( const Window* pTestWindow ) const
+{
+ // check for overlapping window
+ pTestWindow = pTestWindow->ImplGetFirstOverlapWindow();
+ const Window* pTempWindow = pTestWindow;
+ const Window* pThisWindow = ImplGetFirstOverlapWindow();
+ if ( pTempWindow == pThisWindow )
+ return false;
+ do
+ {
+ if ( pTempWindow == pThisWindow )
+ return true;
+ if ( pTempWindow->mpWindowImpl->mbFrame )
+ break;
+ pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
+ }
+ while ( pTempWindow );
+ pTempWindow = pThisWindow;
+ do
+ {
+ if ( pTempWindow == pTestWindow )
+ return false;
+ if ( pTempWindow->mpWindowImpl->mbFrame )
+ break;
+ pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
+ }
+ while ( pTempWindow );
+
+ // move window to same level
+ if ( pThisWindow->mpWindowImpl->mpOverlapWindow != pTestWindow->mpWindowImpl->mpOverlapWindow )
+ {
+ sal_uInt16 nThisLevel = 0;
+ sal_uInt16 nTestLevel = 0;
+ pTempWindow = pThisWindow;
+ do
+ {
+ nThisLevel++;
+ pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
+ }
+ while ( !pTempWindow->mpWindowImpl->mbFrame );
+ pTempWindow = pTestWindow;
+ do
+ {
+ nTestLevel++;
+ pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
+ }
+ while ( !pTempWindow->mpWindowImpl->mbFrame );
+
+ if ( nThisLevel < nTestLevel )
+ {
+ do
+ {
+ if ( pTestWindow->mpWindowImpl->mpOverlapWindow == pThisWindow->mpWindowImpl->mpOverlapWindow )
+ break;
+ if ( pTestWindow->mpWindowImpl->mbFrame )
+ break;
+ pTestWindow = pTestWindow->mpWindowImpl->mpOverlapWindow;
+ }
+ while ( pTestWindow );
+ }
+ else
+ {
+ do
+ {
+ if ( pThisWindow->mpWindowImpl->mpOverlapWindow == pTempWindow->mpWindowImpl->mpOverlapWindow )
+ break;
+ if ( pThisWindow->mpWindowImpl->mbFrame )
+ break;
+ pThisWindow = pThisWindow->mpWindowImpl->mpOverlapWindow;
+ }
+ while ( pThisWindow );
+ }
+ }
+
+ // if TestWindow is before ThisWindow, it is in front
+ pTempWindow = pTestWindow;
+ while ( pTempWindow )
+ {
+ if ( pTempWindow == pThisWindow )
+ return true;
+ pTempWindow = pTempWindow->mpWindowImpl->mpNext;
+ }
+
+ return false;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 8c9b44f..3931953 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -50,97 +50,6 @@ using namespace com::sun::star;
#define IMPL_MAXSAVEBACKSIZE (640*480)
#define IMPL_MAXALLSAVEBACKSIZE (800*600*2)
-struct ImplFocusDelData : public ImplDelData
-{
- Window* mpFocusWin;
-};
-
-bool Window::ImplIsWindowInFront( const Window* pTestWindow ) const
-{
- // check for overlapping window
- pTestWindow = pTestWindow->ImplGetFirstOverlapWindow();
- const Window* pTempWindow = pTestWindow;
- const Window* pThisWindow = ImplGetFirstOverlapWindow();
- if ( pTempWindow == pThisWindow )
- return false;
- do
- {
- if ( pTempWindow == pThisWindow )
- return true;
- if ( pTempWindow->mpWindowImpl->mbFrame )
- break;
- pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
- }
- while ( pTempWindow );
- pTempWindow = pThisWindow;
- do
- {
- if ( pTempWindow == pTestWindow )
- return false;
- if ( pTempWindow->mpWindowImpl->mbFrame )
- break;
- pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
- }
- while ( pTempWindow );
-
- // move window to same level
- if ( pThisWindow->mpWindowImpl->mpOverlapWindow != pTestWindow->mpWindowImpl->mpOverlapWindow )
- {
- sal_uInt16 nThisLevel = 0;
- sal_uInt16 nTestLevel = 0;
- pTempWindow = pThisWindow;
- do
- {
- nThisLevel++;
- pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
- }
- while ( !pTempWindow->mpWindowImpl->mbFrame );
- pTempWindow = pTestWindow;
- do
- {
- nTestLevel++;
- pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
- }
- while ( !pTempWindow->mpWindowImpl->mbFrame );
-
- if ( nThisLevel < nTestLevel )
- {
- do
- {
- if ( pTestWindow->mpWindowImpl->mpOverlapWindow == pThisWindow->mpWindowImpl->mpOverlapWindow )
- break;
- if ( pTestWindow->mpWindowImpl->mbFrame )
- break;
- pTestWindow = pTestWindow->mpWindowImpl->mpOverlapWindow;
- }
- while ( pTestWindow );
- }
- else
- {
- do
- {
- if ( pThisWindow->mpWindowImpl->mpOverlapWindow == pTempWindow->mpWindowImpl->mpOverlapWindow )
- break;
- if ( pThisWindow->mpWindowImpl->mbFrame )
- break;
- pThisWindow = pThisWindow->mpWindowImpl->mpOverlapWindow;
- }
- while ( pThisWindow );
- }
- }
-
- // if TestWindow is before ThisWindow, it is in front
- pTempWindow = pTestWindow;
- while ( pTempWindow )
- {
- if ( pTempWindow == pThisWindow )
- return true;
- pTempWindow = pTempWindow->mpWindowImpl->mpNext;
- }
-
- return false;
-}
-
void Window::ImplSaveOverlapBackground()
{
DBG_ASSERT( !mpWindowImpl->mpOverlapData->mpSaveBackDev, "Window::ImplSaveOverlapBackground() - Background already saved" );
commit fee65f9d20da80cfbc7dc516c8a7e3f4560ce23a
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date: Tue May 27 00:22:06 2014 +1000
vcl: rearrange function in window.cxx
Change-Id: Icb7f692cdf03a77573379257b34400f38def71ec
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 659b9e2..f16e6bd 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1182,6 +1182,31 @@ void Window::ImplInitWindowData( WindowType nType )
mbEnableRTL = Application::GetSettings().GetLayoutRTL(); // true: this outdev will be mirrored if RTL window layout (UI mirroring) is globally active
}
+ImplWinData* Window::ImplGetWinData() const
+{
+ if ( !mpWindowImpl->mpWinData )
+ {
+ static const char* pNoNWF = getenv( "SAL_NO_NWF" );
+
+ ((Window*)this)->mpWindowImpl->mpWinData = new ImplWinData;
+ mpWindowImpl->mpWinData->mpExtOldText = NULL;
+ mpWindowImpl->mpWinData->mpExtOldAttrAry = NULL;
+ mpWindowImpl->mpWinData->mpCursorRect = NULL;
+ mpWindowImpl->mpWinData->mnCursorExtWidth = 0;
+ mpWindowImpl->mpWinData->mpCompositionCharRects = NULL;
+ mpWindowImpl->mpWinData->mnCompositionCharRects = 0;
+ mpWindowImpl->mpWinData->mpFocusRect = NULL;
+ mpWindowImpl->mpWinData->mpTrackRect = NULL;
+ mpWindowImpl->mpWinData->mnTrackFlags = 0;
+ mpWindowImpl->mpWinData->mnIsTopWindow = (sal_uInt16) ~0; // not initialized yet, 0/1 will indicate TopWindow (see IsTopWindow())
+ mpWindowImpl->mpWinData->mbMouseOver = false;
+ mpWindowImpl->mpWinData->mbEnableNativeWidget = (pNoNWF && *pNoNWF) ? false : true; // true: try to draw this control with native theme API
+ }
+
+ return mpWindowImpl->mpWinData;
+}
+
+
void Window::CopyDeviceArea( SalTwoRect& aPosAry, sal_uInt32 nFlags )
{
if (aPosAry.mnSrcWidth == 0 || aPosAry.mnSrcHeight == 0 || aPosAry.mnDestWidth == 0 || aPosAry.mnDestHeight == 0)
@@ -1263,30 +1288,6 @@ bool ImplDoTiledRendering()
#endif
}
-ImplWinData* Window::ImplGetWinData() const
-{
- if ( !mpWindowImpl->mpWinData )
- {
- static const char* pNoNWF = getenv( "SAL_NO_NWF" );
-
- ((Window*)this)->mpWindowImpl->mpWinData = new ImplWinData;
- mpWindowImpl->mpWinData->mpExtOldText = NULL;
- mpWindowImpl->mpWinData->mpExtOldAttrAry = NULL;
- mpWindowImpl->mpWinData->mpCursorRect = NULL;
- mpWindowImpl->mpWinData->mnCursorExtWidth = 0;
- mpWindowImpl->mpWinData->mpCompositionCharRects = NULL;
- mpWindowImpl->mpWinData->mnCompositionCharRects = 0;
- mpWindowImpl->mpWinData->mpFocusRect = NULL;
- mpWindowImpl->mpWinData->mpTrackRect = NULL;
- mpWindowImpl->mpWinData->mnTrackFlags = 0;
- mpWindowImpl->mpWinData->mnIsTopWindow = (sal_uInt16) ~0; // not initialized yet, 0/1 will indicate TopWindow (see IsTopWindow())
- mpWindowImpl->mpWinData->mbMouseOver = false;
- mpWindowImpl->mpWinData->mbEnableNativeWidget = (pNoNWF && *pNoNWF) ? false : true; // true: try to draw this control with native theme API
- }
-
- return mpWindowImpl->mpWinData;
-}
-
SalGraphics* Window::ImplGetFrameGraphics() const
{
if ( mpWindowImpl->mpFrameWindow->mpGraphics )
commit d333ca56ef9e5e90a25afe170ddd09d7b902dae6
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date: Tue May 27 00:08:25 2014 +1000
vcl: "non-pro version" actually means debug builds
Change-Id: I814869869bbc16a8bae94ef9c5deaeb97c13f03e
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 58bb5f7..659b9e2 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -244,7 +244,7 @@ Window::~Window()
pSVData->maWinData.mpDefDialogParent = NULL;
#if OSL_DEBUG_LEVEL > 0
- if ( true ) // always perform these tests in non-pro versions
+ if ( true ) // always perform these tests in debug builds
{
OStringBuffer aErrorStr;
bool bError = false;
@@ -270,7 +270,7 @@ Window::~Window()
aTempStr.append(") with live SystemWindows destroyed: ");
aTempStr.append(aErrorStr.toString());
OSL_FAIL(aTempStr.getStr());
- // abort in non-pro version, this must be fixed!
+ // abort in debug builds, must be fixed!
GetpApp()->Abort(OStringToOUString(
aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8));
}
@@ -294,7 +294,7 @@ Window::~Window()
aTempStr.append(") with live SystemWindows destroyed: ");
aTempStr.append(aErrorStr.toString());
OSL_FAIL( aTempStr.getStr() );
- GetpApp()->Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8)); // abort in non-pro version, this must be fixed!
+ GetpApp()->Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8)); // abort in debug builds, this must be fixed!
}
if ( mpWindowImpl->mpFirstChild )
@@ -309,7 +309,7 @@ Window::~Window()
pTempWin = pTempWin->mpWindowImpl->mpNext;
}
OSL_FAIL( aTempStr.getStr() );
- GetpApp()->Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8)); // abort in non-pro version, this must be fixed!
+ GetpApp()->Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8)); // abort in debug builds, this must be fixed!
}
if ( mpWindowImpl->mpFirstOverlap )
@@ -324,7 +324,7 @@ Window::~Window()
pTempWin = pTempWin->mpWindowImpl->mpNext;
}
OSL_FAIL( aTempStr.getStr() );
- GetpApp()->Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8)); // abort in non-pro version, this must be fixed!
+ GetpApp()->Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8)); // abort in debug builds, this must be fixed!
}
Window* pMyParent = this;
@@ -342,7 +342,7 @@ Window::~Window()
aTempStr.append(OUStringToOString(GetText(), RTL_TEXTENCODING_UTF8));
aTempStr.append(") still in TaskPanelList!");
OSL_FAIL( aTempStr.getStr() );
- GetpApp()->Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8)); // abort in non-pro version, this must be fixed!
+ GetpApp()->Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8)); // abort in debug builds, this must be fixed!
}
}
#endif
@@ -411,7 +411,7 @@ Window::~Window()
RTL_TEXTENCODING_UTF8)).
append(") with focussed child window destroyed ! THIS WILL LEAD TO CRASHES AND MUST BE FIXED !");
OSL_FAIL( aTempStr.getStr() );
- GetpApp()->Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8 )); // abort in non-pro version, this must be fixed!
+ GetpApp()->Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8 )); // abort in debug build version, this must be fixed!
#endif
}
commit 495cbf4f7d726d5e839a2be146b866a613724cca
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date: Tue May 27 00:06:12 2014 +1000
vcl: cleanup window.cxx namespace aliases
Change-Id: I3b8782ed7bbd782dbca52cd4bec46582a9b35271
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 4d46db8..58bb5f7 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -77,8 +77,6 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::datatransfer::clipboard;
using namespace ::com::sun::star::datatransfer::dnd;
-using namespace ::com::sun::star;
-using namespace com::sun;
using ::com::sun::star::awt::XTopWindow;
@@ -141,11 +139,10 @@ Window::~Window()
// Dispose of the canvas implementation (which, currently, has an
// own wrapper window as a child to this one.
- uno::Reference< rendering::XCanvas > xCanvas( mpWindowImpl->mxCanvas );
+ Reference< css::rendering::XCanvas > xCanvas( mpWindowImpl->mxCanvas );
if( xCanvas.is() )
{
- uno::Reference < lang::XComponent > xCanvasComponent( xCanvas,
- uno::UNO_QUERY );
+ Reference < XComponent > xCanvasComponent( xCanvas, UNO_QUERY );
if( xCanvasComponent.is() )
xCanvasComponent->dispose();
}
@@ -173,7 +170,7 @@ Window::~Window()
}
// shutdown drag and drop
- ::com::sun::star::uno::Reference < ::com::sun::star::lang::XComponent > xDnDComponent( mpWindowImpl->mxDNDListenerContainer, ::com::sun::star::uno::UNO_QUERY );
+ Reference < XComponent > xDnDComponent( mpWindowImpl->mxDNDListenerContainer, UNO_QUERY );
if( xDnDComponent.is() )
xDnDComponent->dispose();
@@ -185,12 +182,12 @@ Window::~Window()
// deregister drop target listener
if( mpWindowImpl->mpFrameData->mxDropTargetListener.is() )
{
- uno::Reference< XDragGestureRecognizer > xDragGestureRecognizer =
- uno::Reference< XDragGestureRecognizer > (mpWindowImpl->mpFrameData->mxDragSource, UNO_QUERY);
+ Reference< XDragGestureRecognizer > xDragGestureRecognizer =
+ Reference< XDragGestureRecognizer > (mpWindowImpl->mpFrameData->mxDragSource, UNO_QUERY);
if( xDragGestureRecognizer.is() )
{
xDragGestureRecognizer->removeDragGestureListener(
- uno::Reference< XDragGestureListener > (mpWindowImpl->mpFrameData->mxDropTargetListener, UNO_QUERY));
+ Reference< XDragGestureListener > (mpWindowImpl->mpFrameData->mxDropTargetListener, UNO_QUERY));
}
mpWindowImpl->mpFrameData->mxDropTarget->removeDropTargetListener( mpWindowImpl->mpFrameData->mxDropTargetListener );
@@ -198,7 +195,7 @@ Window::~Window()
}
// shutdown drag and drop for this frame window
- uno::Reference< XComponent > xComponent( mpWindowImpl->mpFrameData->mxDropTarget, UNO_QUERY );
+ Reference< XComponent > xComponent( mpWindowImpl->mpFrameData->mxDropTarget, UNO_QUERY );
// DNDEventDispatcher does not hold a reference of the DropTarget,
// so it's ok if it does not support XComponent
@@ -220,7 +217,7 @@ Window::~Window()
// But accessibility implementations from applications need this dispose.
if ( mpWindowImpl->mxAccessible.is() )
{
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent> xC( mpWindowImpl->mxAccessible, ::com::sun::star::uno::UNO_QUERY );
+ Reference< XComponent> xC( mpWindowImpl->mxAccessible, UNO_QUERY );
if ( xC.is() )
xC->dispose();
}
@@ -967,9 +964,9 @@ void Window::ImplInit( Window* pParent, WinBits nStyle, SystemParentData* pSyste
if ( !pFrame )
{
// do not abort but throw an exception, may be the current thread terminates anyway (plugin-scenario)
- throw ::com::sun::star::uno::RuntimeException(
+ throw RuntimeException(
OUString( "Could not create system window!" ),
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+ Reference< XInterface >() );
}
pFrame->SetCallback( this, ImplWindowFrameProc );
@@ -3235,7 +3232,7 @@ const OUString& Window::GetHelpText() const
return mpWindowImpl->maHelpText;
}
-void Window::SetWindowPeer( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xPeer, VCLXWindow* pVCLXWindow )
+void Window::SetWindowPeer( Reference< css::awt::XWindowPeer > xPeer, VCLXWindow* pVCLXWindow )
{
// be safe against re-entrance: first clear the old ref, then assign the new one
mpWindowImpl->mxWindowPeer.clear();
@@ -3244,7 +3241,7 @@ void Window::SetWindowPeer( ::com::sun::star::uno::Reference< ::com::sun::star::
mpWindowImpl->mpVCLXWindow = pVCLXWindow;
}
-::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > Window::GetComponentInterface( sal_Bool bCreate )
+Reference< css::awt::XWindowPeer > Window::GetComponentInterface( sal_Bool bCreate )
{
if ( !mpWindowImpl->mxWindowPeer.is() && bCreate )
{
@@ -3255,7 +3252,7 @@ void Window::SetWindowPeer( ::com::sun::star::uno::Reference< ::com::sun::star::
return mpWindowImpl->mxWindowPeer;
}
-void Window::SetComponentInterface( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xIFace )
+void Window::SetComponentInterface( Reference< css::awt::XWindowPeer > xIFace )
{
UnoWrapperBase* pWrapper = Application::GetUnoWrapper();
DBG_ASSERT( pWrapper, "SetComponentInterface: No Wrapper!" );
@@ -3300,7 +3297,7 @@ void Window::ImplCallActivateListeners( Window *pOld )
}
}
-uno::Reference< XClipboard > Window::GetClipboard()
+Reference< XClipboard > Window::GetClipboard()
{
if( mpWindowImpl->mpFrameData )
@@ -3313,7 +3310,7 @@ uno::Reference< XClipboard > Window::GetClipboard()
= css::datatransfer::clipboard::SystemClipboard::create(
comphelper::getProcessComponentContext());
}
- catch (css::uno::DeploymentException & e)
+ catch (DeploymentException & e)
{
SAL_WARN(
"vcl.window",
@@ -3327,7 +3324,7 @@ uno::Reference< XClipboard > Window::GetClipboard()
return static_cast < XClipboard * > (0);
}
-uno::Reference< XClipboard > Window::GetPrimarySelection()
+Reference< XClipboard > Window::GetPrimarySelection()
{
if( mpWindowImpl->mpFrameData )
@@ -3336,27 +3333,27 @@ uno::Reference< XClipboard > Window::GetPrimarySelection()
{
try
{
- uno::Reference< XComponentContext > xContext( comphelper::getProcessComponentContext() );
+ Reference< XComponentContext > xContext( comphelper::getProcessComponentContext() );
#if HAVE_FEATURE_X11
// A hack, making the primary selection available as an instance
// of the SystemClipboard service on X11:
- css::uno::Sequence<css::uno::Any> args(1);
+ Sequence< Any > args(1);
args[0] <<= OUString("PRIMARY");
mpWindowImpl->mpFrameData->mxSelection.set(
(xContext->getServiceManager()->
createInstanceWithArgumentsAndContext(
"com.sun.star.datatransfer.clipboard.SystemClipboard",
args, xContext)),
- css::uno::UNO_QUERY_THROW);
+ UNO_QUERY_THROW);
#else
- static uno::Reference< XClipboard > s_xSelection(
+ static Reference< XClipboard > s_xSelection(
xContext->getServiceManager()->createInstanceWithContext( "com.sun.star.datatransfer.clipboard.GenericClipboard", xContext ), UNO_QUERY );
mpWindowImpl->mpFrameData->mxSelection = s_xSelection;
#endif
}
- catch (css::uno::RuntimeException & e)
+ catch (RuntimeException & e)
{
SAL_WARN(
"vcl.window",
@@ -3701,12 +3698,12 @@ bool Window::IsNativeWidgetEnabled() const
return ImplGetWinData()->mbEnableNativeWidget;
}
-uno::Reference< rendering::XCanvas > Window::ImplGetCanvas( const Size& rFullscreenSize,
+Reference< css::rendering::XCanvas > Window::ImplGetCanvas( const Size& rFullscreenSize,
bool bFullscreen,
bool bSpriteCanvas ) const
{
// try to retrieve hard reference from weak member
- uno::Reference< rendering::XCanvas > xCanvas( mpWindowImpl->mxCanvas );
+ Reference< css::rendering::XCanvas > xCanvas( mpWindowImpl->mxCanvas );
// canvas still valid? Then we're done.
if( xCanvas.is() )
@@ -3737,24 +3734,24 @@ uno::Reference< rendering::XCanvas > Window::ImplGetCanvas( const Size& rFullscr
}
if( bFullscreen )
- aArg[ 2 ] = makeAny( ::com::sun::star::awt::Rectangle( 0, 0,
- rFullscreenSize.Width(),
- rFullscreenSize.Height() ) );
+ aArg[ 2 ] = makeAny( css::awt::Rectangle( 0, 0,
+ rFullscreenSize.Width(),
+ rFullscreenSize.Height() ) );
else
- aArg[ 2 ] = makeAny( ::com::sun::star::awt::Rectangle( mnOutOffX, mnOutOffY, mnOutWidth, mnOutHeight ) );
+ aArg[ 2 ] = makeAny( css::awt::Rectangle( mnOutOffX, mnOutOffY, mnOutWidth, mnOutHeight ) );
aArg[ 3 ] = makeAny( mpWindowImpl->mbAlwaysOnTop ? true : false );
- aArg[ 4 ] = makeAny( uno::Reference< awt::XWindow >(
+ aArg[ 4 ] = makeAny( Reference< css::awt::XWindow >(
const_cast<Window*>(this)->GetComponentInterface(),
- uno::UNO_QUERY ));
+ UNO_QUERY ));
- uno::Reference< XComponentContext > xContext = comphelper::getProcessComponentContext();
+ Reference< XComponentContext > xContext = comphelper::getProcessComponentContext();
// Create canvas instance with window handle
- static ::vcl::DeleteUnoReferenceOnDeinit<lang::XMultiComponentFactory> xStaticCanvasFactory(
- rendering::CanvasFactory::create( xContext ) );
- uno::Reference<lang::XMultiComponentFactory> xCanvasFactory(xStaticCanvasFactory.get());
+ static ::vcl::DeleteUnoReferenceOnDeinit<XMultiComponentFactory> xStaticCanvasFactory(
+ css::rendering::CanvasFactory::create( xContext ) );
+ Reference<XMultiComponentFactory> xCanvasFactory(xStaticCanvasFactory.get());
if(xCanvasFactory.is())
{
@@ -3797,15 +3794,15 @@ uno::Reference< rendering::XCanvas > Window::ImplGetCanvas( const Size& rFullscr
return xCanvas;
}
-uno::Reference< rendering::XCanvas > Window::GetCanvas() const
+Reference< css::rendering::XCanvas > Window::GetCanvas() const
{
return ImplGetCanvas( Size(), false, false );
}
-uno::Reference< rendering::XSpriteCanvas > Window::GetSpriteCanvas() const
+Reference< css::rendering::XSpriteCanvas > Window::GetSpriteCanvas() const
{
- uno::Reference< rendering::XSpriteCanvas > xSpriteCanvas(
- ImplGetCanvas( Size(), false, true ), uno::UNO_QUERY );
+ Reference< css::rendering::XSpriteCanvas > xSpriteCanvas(
+ ImplGetCanvas( Size(), false, true ), UNO_QUERY );
return xSpriteCanvas;
}
@@ -3872,13 +3869,13 @@ const SystemEnvData* Window::GetSystemData() const
return mpWindowImpl->mpFrame ? mpWindowImpl->mpFrame->GetSystemData() : NULL;
}
-css::uno::Any Window::GetSystemDataAny() const
+Any Window::GetSystemDataAny() const
{
- css::uno::Any aRet;
+ Any aRet;
const SystemEnvData* pSysData = GetSystemData();
if( pSysData )
{
- css::uno::Sequence< sal_Int8 > aSeq( (sal_Int8*)pSysData, pSysData->nSize );
+ Sequence< sal_Int8 > aSeq( (sal_Int8*)pSysData, pSysData->nSize );
aRet <<= aSeq;
}
return aRet;
commit 0c6cd530de13f80795881f61064f1bf1dcc4ea81
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date: Tue May 27 00:03:10 2014 +1000
vcl: move GetSystemData() & GetSystemDataAny() back to window.cxx
Change-Id: I46736950563776bb4f5fefd71789010541e99e70
diff --git a/vcl/source/window/stacking.cxx b/vcl/source/window/stacking.cxx
index 5155efc..b678321 100644
--- a/vcl/source/window/stacking.cxx
+++ b/vcl/source/window/stacking.cxx
@@ -1174,22 +1174,4 @@ void Window::ImplSetFrameParent( const Window* pParent )
}
}
-const SystemEnvData* Window::GetSystemData() const
-{
-
- return mpWindowImpl->mpFrame ? mpWindowImpl->mpFrame->GetSystemData() : NULL;
-}
-
-::com::sun::star::uno::Any Window::GetSystemDataAny() const
-{
- ::com::sun::star::uno::Any aRet;
- const SystemEnvData* pSysData = GetSystemData();
- if( pSysData )
- {
- ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( (sal_Int8*)pSysData, pSysData->nSize );
- aRet <<= aSeq;
- }
- return aRet;
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 733c4aa..4d46db8 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -3866,4 +3866,22 @@ void Window::DrawGradientWallpaper( long nX, long nY,
mpMetaFile = pOldMetaFile;
}
+const SystemEnvData* Window::GetSystemData() const
+{
+
+ return mpWindowImpl->mpFrame ? mpWindowImpl->mpFrame->GetSystemData() : NULL;
+}
+
+css::uno::Any Window::GetSystemDataAny() const
+{
+ css::uno::Any aRet;
+ const SystemEnvData* pSysData = GetSystemData();
+ if( pSysData )
+ {
+ css::uno::Sequence< sal_Int8 > aSeq( (sal_Int8*)pSysData, pSysData->nSize );
+ aRet <<= aSeq;
+ }
+ return aRet;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit ee1bef418a8d14909df6c4d58b90c1a48e7a49c8
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date: Mon May 26 23:58:43 2014 +1000
vcl: move Window::ImplSetFrameParent() from window.cxx to stacking.cxx
Change-Id: I41ce1398017c7c9ff7b24464250911c63b3e2c92
diff --git a/vcl/source/window/stacking.cxx b/vcl/source/window/stacking.cxx
index e1a7dc7..5155efc 100644
--- a/vcl/source/window/stacking.cxx
+++ b/vcl/source/window/stacking.cxx
@@ -1156,6 +1156,24 @@ bool Window::IsWindowOrChild( const Window* pWindow, bool bSystemWindow ) const
return ImplIsChild( pWindow, bSystemWindow );
}
+void Window::ImplSetFrameParent( const Window* pParent )
+{
+ Window* pFrameWindow = ImplGetSVData()->maWinData.mpFirstFrame;
+ while( pFrameWindow )
+ {
+ // search all frames that are children of this window
+ // and reparent them
+ if( ImplIsRealParentPath( pFrameWindow ) )
+ {
+ DBG_ASSERT( mpWindowImpl->mpFrame != pFrameWindow->mpWindowImpl->mpFrame, "SetFrameParent to own" );
+ DBG_ASSERT( mpWindowImpl->mpFrame, "no frame" );
+ SalFrame* pParentFrame = pParent ? pParent->mpWindowImpl->mpFrame : NULL;
+ pFrameWindow->mpWindowImpl->mpFrame->SetParent( pParentFrame );
+ }
+ pFrameWindow = pFrameWindow->mpWindowImpl->mpFrameData->mpNextFrame;
+ }
+}
+
const SystemEnvData* Window::GetSystemData() const
{
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 632f881..733c4aa 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1127,32 +1127,6 @@ void Window::ImplInit( Window* pParent, WinBits nStyle, SystemParentData* pSyste
GetAccessibleParentWindow()->ImplCallEventListeners( VCLEVENT_WINDOW_CHILDCREATED, this );
}
-void Window::CopyDeviceArea( SalTwoRect& aPosAry, sal_uInt32 nFlags )
-{
- if (aPosAry.mnSrcWidth == 0 || aPosAry.mnSrcHeight == 0 || aPosAry.mnDestWidth == 0 || aPosAry.mnDestHeight == 0)
- return;
-
- if (nFlags & COPYAREA_WINDOWINVALIDATE)
- {
- const Rectangle aSrcRect(Point(aPosAry.mnSrcX, aPosAry.mnSrcY),
- Size(aPosAry.mnSrcWidth, aPosAry.mnSrcHeight));
-
- ImplMoveAllInvalidateRegions(aSrcRect,
- aPosAry.mnDestX-aPosAry.mnSrcX,
- aPosAry.mnDestY-aPosAry.mnSrcY,
- false);
-
- mpGraphics->CopyArea(aPosAry.mnDestX, aPosAry.mnDestY,
- aPosAry.mnSrcX, aPosAry.mnSrcY,
- aPosAry.mnSrcWidth, aPosAry.mnSrcHeight,
- SAL_COPYAREA_WINDOWINVALIDATE, this);
-
- return;
- }
-
- OutputDevice::CopyDeviceArea(aPosAry, nFlags);
-}
-
void Window::ImplInitAppFontData( Window* pWindow )
{
ImplSVData* pSVData = ImplGetSVData();
@@ -1197,6 +1171,46 @@ void Window::ImplInitAppFontData( Window* pWindow )
pSVData->maGDIData.mnAppFontX += (pSVData->maGDIData.mnAppFontX*pSVData->maAppData.mnDialogScaleX)/100;
}
+void Window::ImplInitWindowData( WindowType nType )
+{
+ // We will eventually being removing the inheritance of OutputDevice from Window.
+ // It will be replaced with a composition relationship. A Window will use an OutputDevice,
+ // it will not *be* an OutputDevice
+ mpOutputDevice = (OutputDevice*)this;
+
+ mpWindowImpl = new WindowImpl( nType );
+
+ meOutDevType = OUTDEV_WINDOW;
+
+ mbEnableRTL = Application::GetSettings().GetLayoutRTL(); // true: this outdev will be mirrored if RTL window layout (UI mirroring) is globally active
+}
+
+void Window::CopyDeviceArea( SalTwoRect& aPosAry, sal_uInt32 nFlags )
+{
+ if (aPosAry.mnSrcWidth == 0 || aPosAry.mnSrcHeight == 0 || aPosAry.mnDestWidth == 0 || aPosAry.mnDestHeight == 0)
+ return;
+
+ if (nFlags & COPYAREA_WINDOWINVALIDATE)
+ {
+ const Rectangle aSrcRect(Point(aPosAry.mnSrcX, aPosAry.mnSrcY),
+ Size(aPosAry.mnSrcWidth, aPosAry.mnSrcHeight));
+
+ ImplMoveAllInvalidateRegions(aSrcRect,
+ aPosAry.mnDestX-aPosAry.mnSrcX,
+ aPosAry.mnDestY-aPosAry.mnSrcY,
+ false);
+
+ mpGraphics->CopyArea(aPosAry.mnDestX, aPosAry.mnDestY,
+ aPosAry.mnSrcX, aPosAry.mnSrcY,
+ aPosAry.mnSrcWidth, aPosAry.mnSrcHeight,
+ SAL_COPYAREA_WINDOWINVALIDATE, this);
+
+ return;
+ }
+
+ OutputDevice::CopyDeviceArea(aPosAry, nFlags);
+}
+
bool Window::ImplCheckUIFont( const Font& rFont )
{
if( ImplGetSVData()->maGDIData.mbNativeFontConfig )
@@ -1238,20 +1252,6 @@ bool Window::ImplCheckUIFont( const Font& rFont )
return bUIFontOk;
}
-void Window::ImplInitWindowData( WindowType nType )
-{
- // We will eventually being removing the inheritance of OutputDevice from Window.
- // It will be replaced with a composition relationship. A Window will use an OutputDevice,
- // it will not *be* an OutputDevice
- mpOutputDevice = (OutputDevice*)this;
-
- mpWindowImpl = new WindowImpl( nType );
-
- meOutDevType = OUTDEV_WINDOW;
-
- mbEnableRTL = Application::GetSettings().GetLayoutRTL(); // true: this outdev will be mirrored if RTL window layout (UI mirroring) is globally active
-}
-
bool ImplDoTiledRendering()
{
#if !HAVE_FEATURE_DESKTOP
@@ -1266,24 +1266,6 @@ bool ImplDoTiledRendering()
#endif
}
-void Window::ImplSetFrameParent( const Window* pParent )
-{
- Window* pFrameWindow = ImplGetSVData()->maWinData.mpFirstFrame;
- while( pFrameWindow )
- {
- // search all frames that are children of this window
- // and reparent them
- if( ImplIsRealParentPath( pFrameWindow ) )
- {
- DBG_ASSERT( mpWindowImpl->mpFrame != pFrameWindow->mpWindowImpl->mpFrame, "SetFrameParent to own" );
- DBG_ASSERT( mpWindowImpl->mpFrame, "no frame" );
- SalFrame* pParentFrame = pParent ? pParent->mpWindowImpl->mpFrame : NULL;
- pFrameWindow->mpWindowImpl->mpFrame->SetParent( pParentFrame );
- }
- pFrameWindow = pFrameWindow->mpWindowImpl->mpFrameData->mpNextFrame;
- }
-}
-
ImplWinData* Window::ImplGetWinData() const
{
if ( !mpWindowImpl->mpWinData )
More information about the Libreoffice-commits
mailing list