diff options
author | Michael Meeks <michael.meeks@suse.com> | 2012-05-30 10:15:27 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2012-05-30 19:31:51 +0100 |
commit | f3aa2a45b4f014aa7631bffa3ac07b2332f80677 (patch) | |
tree | 3e8f7a9c3e74b5648daeeaf26d4adaddf7a0df91 /vcl | |
parent | 61acb9beb2bd5c76df6136d4fb3871db7906a827 (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.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/unx/gtk/gtkdata.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/unx/gtk/gtksys.hxx | 4 | ||||
-rw-r--r-- | vcl/inc/unx/x11/x11sys.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/vcl/svapp.hxx | 6 | ||||
-rw-r--r-- | vcl/inc/win/salsys.h | 2 | ||||
-rw-r--r-- | vcl/source/app/svapp.cxx | 6 | ||||
-rw-r--r-- | vcl/source/components/display.cxx | 42 | ||||
-rw-r--r-- | vcl/unx/gtk/app/gtksys.cxx | 2 | ||||
-rw-r--r-- | vcl/unx/x11/x11sys.cxx | 2 | ||||
-rw-r--r-- | vcl/win/source/app/salinfo.cxx | 2 |
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; |