summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2012-05-30 10:15:27 +0100
committerMichael Meeks <michael.meeks@suse.com>2012-05-30 19:31:51 +0100
commitf3aa2a45b4f014aa7631bffa3ac07b2332f80677 (patch)
tree3e8f7a9c3e74b5648daeeaf26d4adaddf7a0df91 /vcl
parent61acb9beb2bd5c76df6136d4fb3871db7906a827 (diff)
vcl: rename unhelpful 'Default' screen to a BuiltIn screen
Add 'BuiltInDisplay' and 'ExternalDisplay' UNO properties to clarify Change-Id: Idf5d26bf687871b3949d077fb89bfe1942839125
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/salsys.hxx2
-rw-r--r--vcl/inc/unx/gtk/gtkdata.hxx2
-rw-r--r--vcl/inc/unx/gtk/gtksys.hxx4
-rw-r--r--vcl/inc/unx/x11/x11sys.hxx2
-rw-r--r--vcl/inc/vcl/svapp.hxx6
-rw-r--r--vcl/inc/win/salsys.h2
-rw-r--r--vcl/source/app/svapp.cxx6
-rw-r--r--vcl/source/components/display.cxx42
-rw-r--r--vcl/unx/gtk/app/gtksys.cxx2
-rw-r--r--vcl/unx/x11/x11sys.cxx2
-rw-r--r--vcl/win/source/app/salinfo.cxx2
11 files changed, 54 insertions, 18 deletions
diff --git a/vcl/inc/salsys.hxx b/vcl/inc/salsys.hxx
index 001a8a948028..6c9eb37ae011 100644
--- a/vcl/inc/salsys.hxx
+++ b/vcl/inc/salsys.hxx
@@ -86,7 +86,7 @@ public:
@returns the default screen number
*/
- virtual unsigned int GetDisplayDefaultScreen() { return 0; }
+ virtual unsigned int GetDisplayBuiltInScreen() { return 0; }
/* Gets relative position and size of the screens attached to the display
@param nScreen
diff --git a/vcl/inc/unx/gtk/gtkdata.hxx b/vcl/inc/unx/gtk/gtkdata.hxx
index 033bf1a14f4c..f2663f486c6b 100644
--- a/vcl/inc/unx/gtk/gtkdata.hxx
+++ b/vcl/inc/unx/gtk/gtkdata.hxx
@@ -157,7 +157,7 @@ public:
GdkCursor *getCursor( PointerStyle ePointerStyle );
virtual int CaptureMouse( SalFrame* pFrame );
- int GetDefaultScreen() { return m_pSys->GetDisplayDefaultScreen(); }
+ int GetDefaultScreen() { return m_pSys->GetDisplayBuiltInScreen(); }
SalX11Screen GetDefaultXScreen() { return m_pSys->GetDisplayDefaultXScreen(); }
Size GetScreenSize( int nDisplayScreen );
int GetXScreenCount() { return m_pSys->GetDisplayXScreenCount(); }
diff --git a/vcl/inc/unx/gtk/gtksys.hxx b/vcl/inc/unx/gtk/gtksys.hxx
index 94fe25a8d54a..3bd7988b07e7 100644
--- a/vcl/inc/unx/gtk/gtksys.hxx
+++ b/vcl/inc/unx/gtk/gtksys.hxx
@@ -49,7 +49,7 @@ public:
virtual bool IsUnifiedDisplay();
virtual unsigned int GetDisplayScreenCount();
- virtual unsigned int GetDisplayDefaultScreen();
+ virtual unsigned int GetDisplayBuiltInScreen();
virtual rtl::OUString GetDisplayScreenName (unsigned int nScreen);
virtual Rectangle GetDisplayScreenPosSizePixel (unsigned int nScreen);
virtual Rectangle GetDisplayScreenWorkAreaPosSizePixel (unsigned int nScreen);
@@ -58,7 +58,7 @@ public:
const std::list< rtl::OUString >& rButtons,
int nDefButton);
SalX11Screen GetDisplayDefaultXScreen()
- { return getXScreenFromDisplayScreen( GetDisplayDefaultScreen() ); }
+ { return getXScreenFromDisplayScreen( GetDisplayBuiltInScreen() ); }
int GetDisplayXScreenCount();
SalX11Screen getXScreenFromDisplayScreen(unsigned int nDisplayScreen);
void countScreenMonitors();
diff --git a/vcl/inc/unx/x11/x11sys.hxx b/vcl/inc/unx/x11/x11sys.hxx
index 8a36d3ef9be3..80b5d58a5592 100644
--- a/vcl/inc/unx/x11/x11sys.hxx
+++ b/vcl/inc/unx/x11/x11sys.hxx
@@ -45,7 +45,7 @@ public:
// overload pure virtual methods
virtual unsigned int GetDisplayScreenCount();
virtual bool IsUnifiedDisplay();
- virtual unsigned int GetDisplayDefaultScreen();
+ virtual unsigned int GetDisplayBuiltInScreen();
virtual Rectangle GetDisplayScreenPosSizePixel( unsigned int nScreen );
virtual Rectangle GetDisplayScreenWorkAreaPosSizePixel( unsigned int nScreen );
virtual rtl::OUString GetDisplayScreenName( unsigned int nScreen );
diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx
index 7b793c206596..af766f4a9762 100644
--- a/vcl/inc/vcl/svapp.hxx
+++ b/vcl/inc/vcl/svapp.hxx
@@ -300,7 +300,11 @@ public:
// will always be GetDisplayDefaultScreen()
SAL_DLLPRIVATE static unsigned int GetBestScreen( const Rectangle& );
SAL_DLLPRIVATE static Rectangle GetWorkAreaPosSizePixel( unsigned int nScreen );
- SAL_DLLPRIVATE static unsigned int GetDisplayDefaultScreen();
+ // This returns the LCD screen number for a laptop, or the primary
+ // external VGA display for a desktop machine - it is where a presenter
+ // console should be rendered if there are other (non-built-in) screens
+ // present.
+ SAL_DLLPRIVATE static unsigned int GetDisplayBuiltInScreen();
SAL_DLLPRIVATE static rtl::OUString GetDisplayScreenName( unsigned int nScreen );
static const LocaleDataWrapper& GetAppLocaleDataWrapper();
diff --git a/vcl/inc/win/salsys.h b/vcl/inc/win/salsys.h
index 7bd092cd7624..b15c1a773600 100644
--- a/vcl/inc/win/salsys.h
+++ b/vcl/inc/win/salsys.h
@@ -69,7 +69,7 @@ public:
virtual ~WinSalSystem();
virtual unsigned int GetDisplayScreenCount();
- virtual unsigned int GetDisplayDefaultScreen();
+ virtual unsigned int GetDisplayBuiltInScreen();
virtual Rectangle GetDisplayScreenPosSizePixel( unsigned int nScreen );
virtual Rectangle GetDisplayScreenWorkAreaPosSizePixel( unsigned int nScreen );
virtual rtl::OUString GetDisplayScreenName( unsigned int nScreen );
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index 43eb6d8e5a83..7e6d54471169 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -1260,10 +1260,10 @@ bool Application::IsUnifiedDisplay()
return pSys ? pSys->IsUnifiedDisplay() : true;
}
-unsigned int Application::GetDisplayDefaultScreen()
+unsigned int Application::GetDisplayBuiltInScreen()
{
SalSystem* pSys = ImplGetSalSystem();
- return pSys ? pSys->GetDisplayDefaultScreen() : 0;
+ return pSys ? pSys->GetDisplayBuiltInScreen() : 0;
}
Rectangle Application::GetScreenPosSizePixel( unsigned int nScreen )
@@ -1292,7 +1292,7 @@ unsigned long calcDistSquare( const Point& i_rPoint, const Rectangle& i_rRect )
unsigned int Application::GetBestScreen( const Rectangle& i_rRect )
{
if( !IsUnifiedDisplay() )
- return GetDisplayDefaultScreen();
+ return GetDisplayBuiltInScreen();
const unsigned int nScreens = GetScreenCount();
unsigned int nBestMatchScreen = 0;
diff --git a/vcl/source/components/display.cxx b/vcl/source/components/display.cxx
index 60870e304b07..78b93d80294d 100644
--- a/vcl/source/components/display.cxx
+++ b/vcl/source/components/display.cxx
@@ -231,6 +231,8 @@ DisplayAccess::DisplayAccess()
static const char* pUnifiedDisplayName = "IsUnifiedDisplay";
static const char* pDefaultDisplayName = "DefaultDisplay";
+static const char* pBuiltInDisplayName = "BuiltInDisplay";
+static const char* pExternalDisplayName = "ExternalDisplay";
// XPropertySet
Reference< XPropertySetInfo > SAL_CALL DisplayAccess::getPropertySetInfo() throw (RuntimeException)
@@ -250,9 +252,32 @@ Any SAL_CALL DisplayAccess::getPropertyValue( const OUString& PropertyName ) thr
{
aRet <<= sal_Bool( Application::IsUnifiedDisplay() );
}
- else if( PropertyName.equalsAscii( pDefaultDisplayName ) )
+ else if( PropertyName.equalsAscii( pDefaultDisplayName ) || // Unhelpful name, legacy setting
+ PropertyName.equalsAscii( pBuiltInDisplayName ) )
{
- aRet <<= sal_Int32( Application::GetDisplayDefaultScreen() );
+ aRet <<= sal_Int32( Application::GetDisplayBuiltInScreen() );
+ }
+ else if( PropertyName.equalsAscii( pExternalDisplayName ) )
+ {
+ // This is really unpleasant, in theory we could have multiple
+ // external displays etc.
+ sal_Int32 nExternal(0);
+ switch (Application::GetDisplayBuiltInScreen())
+ {
+ case 0:
+ nExternal = 1;
+ break;
+ case 1:
+ nExternal = 0;
+ break;
+ default:
+ // When the built-in display is neither 0 nor 1
+ // then place the full-screen presentation on the
+ // first available screen.
+ nExternal = 0;
+ break;
+ }
+ aRet <<= nExternal;
}
else
throw UnknownPropertyException();
@@ -268,9 +293,11 @@ void SAL_CALL DisplayAccess::removeVetoableChangeListener( const OUString&, cons
// XPropertySetInfo
Sequence< Property > SAL_CALL DisplayAccess::getProperties() throw (RuntimeException)
{
- Sequence< Property > aProps(2);
+ Sequence< Property > aProps(4);
aProps[0] = getPropertyByName( OUString::createFromAscii( pUnifiedDisplayName ) );
aProps[1] = getPropertyByName( OUString::createFromAscii( pDefaultDisplayName ) );
+ aProps[2] = getPropertyByName( OUString::createFromAscii( pBuiltInDisplayName ) );
+ aProps[3] = getPropertyByName( OUString::createFromAscii( pExternalDisplayName ) );
return aProps;
}
@@ -279,15 +306,20 @@ Property SAL_CALL DisplayAccess::getPropertyByName( const OUString& aName ) thro
if( aName.equalsAscii( pUnifiedDisplayName ) )
return Property( aName, 0, ::getCppuType( (sal_Bool const *)0 ), PropertyAttribute::READONLY );
- if( aName.equalsAscii( pDefaultDisplayName ) )
+ if( aName.equalsAscii( pDefaultDisplayName ) ||
+ aName.equalsAscii( pBuiltInDisplayName ) ||
+ aName.equalsAscii( pExternalDisplayName ) )
return Property( aName, 0, ::getCppuType( (sal_Int32 const *)0 ), PropertyAttribute::READONLY );
+
throw UnknownPropertyException();
}
::sal_Bool SAL_CALL DisplayAccess::hasPropertyByName( const OUString& Name ) throw (RuntimeException)
{
return Name.equalsAscii( pUnifiedDisplayName ) ||
- Name.equalsAscii( pDefaultDisplayName );
+ Name.equalsAscii( pDefaultDisplayName ) ||
+ Name.equalsAscii( pBuiltInDisplayName ) ||
+ Name.equalsAscii( pExternalDisplayName );
}
// XIndexAccess
diff --git a/vcl/unx/gtk/app/gtksys.cxx b/vcl/unx/gtk/app/gtksys.cxx
index 25578b3264d7..179bf58dda61 100644
--- a/vcl/unx/gtk/app/gtksys.cxx
+++ b/vcl/unx/gtk/app/gtksys.cxx
@@ -229,7 +229,7 @@ static int _get_primary_monitor (GdkScreen *pScreen)
}
} // end anonymous namespace
-unsigned int GtkSalSystem::GetDisplayDefaultScreen()
+unsigned int GtkSalSystem::GetDisplayBuiltInScreen()
{
GdkScreen *pDefault = gdk_display_get_default_screen (mpDisplay);
int idx = getScreenIdxFromPtr (pDefault);
diff --git a/vcl/unx/x11/x11sys.cxx b/vcl/unx/x11/x11sys.cxx
index f30d873dad91..8173dde8a775 100644
--- a/vcl/unx/x11/x11sys.cxx
+++ b/vcl/unx/x11/x11sys.cxx
@@ -68,7 +68,7 @@ bool X11SalSystem::IsUnifiedDisplay()
return pSalDisp->IsXinerama() ? true : (nScreenCount == 1);
}
-unsigned int X11SalSystem::GetDisplayDefaultScreen()
+unsigned int X11SalSystem::GetDisplayBuiltInScreen()
{
SalDisplay* pSalDisp = GetGenericData()->GetSalDisplay();
return pSalDisp->GetDefaultXScreen().getXScreen();
diff --git a/vcl/win/source/app/salinfo.cxx b/vcl/win/source/app/salinfo.cxx
index efd4d085326a..b5576c97ebb1 100644
--- a/vcl/win/source/app/salinfo.cxx
+++ b/vcl/win/source/app/salinfo.cxx
@@ -179,7 +179,7 @@ unsigned int WinSalSystem::GetDisplayScreenCount()
return m_aMonitors.size();
}
-unsigned int WinSalSystem::GetDisplayDefaultScreen()
+unsigned int WinSalSystem::GetDisplayBuiltInScreen()
{
initMonitors();
return m_nPrimary;