summaryrefslogtreecommitdiffstats
path: root/vcl
diff options
context:
space:
mode:
authorChris Sherlock <chris.sherlock79@gmail.com>2014-05-27 00:49:56 +1000
committerChris Sherlock <chris.sherlock79@gmail.com>2014-05-27 08:13:02 +1000
commit7b545001a10042c03ddde09ac9e0e6c3cdf6f8ca (patch)
treec10a11eae9458dc88e59b926f01efba1a95b1337 /vcl
parentvcl: rearrange function in window.cxx (diff)
downloadcore-7b545001a10042c03ddde09ac9e0e6c3cdf6f8ca.tar.gz
core-7b545001a10042c03ddde09ac9e0e6c3cdf6f8ca.zip
vcl: move functionality from window2.cxx
Change-Id: I68d1c7bb32df9024ea57a07d7d3b051efc08b2ed
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/svdata.hxx5
-rw-r--r--vcl/source/window/clipping.cxx86
-rw-r--r--vcl/source/window/window2.cxx91
3 files changed, 91 insertions, 91 deletions
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index 7fa60e37266c..155346fbf00a 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 f7afeb1bd436..6c09c571f9f6 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 8c9b44fb6a5d..393195332614 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" );