diff options
author | Noel Grandin <noel@peralex.com> | 2012-12-11 14:59:39 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2012-12-13 05:20:59 +0200 |
commit | dde234b6955a421d51d2b37e4fc3972c660146f0 (patch) | |
tree | d9f5824ccb30141c3d3742e2229b3bf83ffd116b /vcl | |
parent | 37b6871fa1fb12c4b2b45db5f3e6ac583577f538 (diff) |
fdo#46808, remove awt::DisplayAccess service.
This service was never documented in an IDL file.
All it did was provide a wrapper around some VCL module API.
Now that we can link the VCL stuff into SD and SDEXT, just
access the API directly.
Change-Id: Ic0ba34c2bca797baa7319878d98cfe3a4ec59d4d
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/Library_vcl.mk | 1 | ||||
-rw-r--r-- | vcl/inc/vcl/svapp.hxx | 8 | ||||
-rw-r--r-- | vcl/source/app/svapp.cxx | 23 | ||||
-rw-r--r-- | vcl/source/components/display.cxx | 363 | ||||
-rw-r--r-- | vcl/source/components/factory.cxx | 10 | ||||
-rw-r--r-- | vcl/vcl.android.component | 3 | ||||
-rw-r--r-- | vcl/vcl.headless.component | 3 | ||||
-rw-r--r-- | vcl/vcl.ios.component | 3 | ||||
-rw-r--r-- | vcl/vcl.macosx.component | 3 | ||||
-rw-r--r-- | vcl/vcl.unx.component | 3 | ||||
-rw-r--r-- | vcl/vcl.windows.component | 3 | ||||
-rw-r--r-- | vcl/win/source/window/salframe.cxx | 41 |
12 files changed, 42 insertions, 422 deletions
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index 57fd4cfe083a..af314880a29b 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -125,7 +125,6 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/app/unohelp2 \ vcl/source/app/unohelp \ vcl/source/app/vclevent \ - vcl/source/components/display \ vcl/source/components/dtranscomp \ vcl/source/components/factory \ vcl/source/components/fontident \ diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx index d95e44b65cdb..0a1aa569d5cf 100644 --- a/vcl/inc/vcl/svapp.hxx +++ b/vcl/inc/vcl/svapp.hxx @@ -282,18 +282,20 @@ public: // (e.g. Xserver with Xinerama, Windows) // false: different screens are separate and windows cannot be moved // between them (e.g. Xserver with multiple screens) - SAL_DLLPRIVATE static bool IsUnifiedDisplay(); + static bool IsUnifiedDisplay(); // if IsUnifiedDisplay() == true the return value will be // nearest screen of the target rectangle // in case of IsUnifiedDisplay() == false the return value // will always be GetDisplayDefaultScreen() SAL_DLLPRIVATE static unsigned int GetBestScreen( const Rectangle& ); - SAL_DLLPRIVATE static Rectangle GetWorkAreaPosSizePixel( unsigned int nScreen ); + static Rectangle GetWorkAreaPosSizePixel( unsigned int nScreen ); // 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(); + static unsigned int GetDisplayBuiltInScreen(); + // Practically, this means - Get the screen we should run a presentation on. + static unsigned int GetDisplayExternalScreen(); SAL_DLLPRIVATE static rtl::OUString GetDisplayScreenName( unsigned int nScreen ); static const LocaleDataWrapper& GetAppLocaleDataWrapper(); diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx index 6a799cd20c8c..1a799876bb0a 100644 --- a/vcl/source/app/svapp.cxx +++ b/vcl/source/app/svapp.cxx @@ -1238,6 +1238,29 @@ unsigned int Application::GetDisplayBuiltInScreen() return pSys ? pSys->GetDisplayBuiltInScreen() : 0; } +unsigned int Application::GetDisplayExternalScreen() +{ + // This is really unpleasant, in theory we could have multiple + // external displays etc. + int nExternal(0); + switch (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; + } + return nExternal; +} + Rectangle Application::GetScreenPosSizePixel( unsigned int nScreen ) { SalSystem* pSys = ImplGetSalSystem(); diff --git a/vcl/source/components/display.cxx b/vcl/source/components/display.cxx deleted file mode 100644 index f1862bc2d228..000000000000 --- a/vcl/source/components/display.cxx +++ /dev/null @@ -1,363 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include <com/sun/star/container/XIndexAccess.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/awt/Rectangle.hpp> -#include <com/sun/star/lang/DisposedException.hpp> - -#include <vcl/svapp.hxx> - -#include <cppuhelper/implbase3.hxx> -#include <cppuhelper/implbase4.hxx> - - -using ::rtl::OUString; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::lang; -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::beans; - -// ----------------------------------------------------------------------- - -namespace vcl -{ - -class DisplayInfo : public ::cppu::WeakAggImplHelper3< XPropertySet, XPropertySetInfo, XServiceInfo > -{ -public: - DisplayInfo( sal_uInt32 nDisplayScreen ); - - // XPropertySet - virtual Reference< XPropertySetInfo > SAL_CALL getPropertySetInfo() throw (RuntimeException); - virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const Any& aValue ) throw (UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException); - virtual Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException); - virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const Reference< XPropertyChangeListener >& xListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException); - virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const Reference< XPropertyChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException); - virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException); - virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException); - - // XPropertySetInfo - virtual Sequence< Property > SAL_CALL getProperties() throw (RuntimeException); - virtual Property SAL_CALL getPropertyByName( const OUString& aName ) throw (UnknownPropertyException, RuntimeException); - virtual ::sal_Bool SAL_CALL hasPropertyByName( const OUString& Name ) throw (RuntimeException); - - // XServiceInfo - virtual OUString SAL_CALL getImplementationName() throw (RuntimeException); - virtual ::sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw (RuntimeException); - virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (RuntimeException); - -private: - sal_uInt32 mnDisplayScreen; -}; - -static const char* pScreenAreaName = "ScreenArea"; -static const char* pWorkAreaName = "WorkArea"; -static const char* pScreenName = "ScreenName"; - -// -------------------------------------------------------------------- - -DisplayInfo::DisplayInfo( sal_uInt32 nDisplayScreen ) -: mnDisplayScreen( nDisplayScreen ) -{ -} - -// XPropertySet -Reference< XPropertySetInfo > SAL_CALL DisplayInfo::getPropertySetInfo() throw (RuntimeException) -{ - return this; -} - -void SAL_CALL DisplayInfo::setPropertyValue( const OUString& /*aPropertyName* */, const Any& /*aValue*/ ) throw (UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException) -{ - throw PropertyVetoException(); -} - -Any SAL_CALL DisplayInfo::getPropertyValue( const OUString& PropertyName ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException) -{ - Rectangle aRect; - if( PropertyName.equalsAscii( pScreenAreaName ) ) - { - aRect = Application::GetScreenPosSizePixel( mnDisplayScreen ); - } - else if( PropertyName.equalsAscii( pWorkAreaName ) ) - { - aRect = Application::GetWorkAreaPosSizePixel( mnDisplayScreen ); - } - else if( PropertyName.equalsAscii( pScreenName ) ) - { - return Any( Application::GetDisplayScreenName( mnDisplayScreen ) ); - } - else - throw UnknownPropertyException(); - - return Any( com::sun::star::awt::Rectangle( aRect.Left(), aRect.Top(), aRect.getWidth(), aRect.getHeight() ) ); -} - -void SAL_CALL DisplayInfo::addPropertyChangeListener( const OUString&, const Reference< XPropertyChangeListener >& ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException) {} -void SAL_CALL DisplayInfo::removePropertyChangeListener( const OUString&, const Reference< XPropertyChangeListener >& ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException) {} -void SAL_CALL DisplayInfo::addVetoableChangeListener( const OUString&, const Reference< XVetoableChangeListener >& ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException) {} -void SAL_CALL DisplayInfo::removeVetoableChangeListener( const OUString&, const Reference< XVetoableChangeListener >& ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException) {} - -// XPropertySetInfo -Sequence< Property > SAL_CALL DisplayInfo::getProperties() throw (RuntimeException) -{ - Sequence< Property > aProps(2); - aProps[0] = getPropertyByName( OUString::createFromAscii( pScreenAreaName ) ); - aProps[1] = getPropertyByName( OUString::createFromAscii( pWorkAreaName ) ); - return aProps; -} - -Property SAL_CALL DisplayInfo::getPropertyByName( const OUString& aName ) throw (UnknownPropertyException, RuntimeException) -{ - if( aName.equalsAscii( pScreenAreaName ) || - aName.equalsAscii( pWorkAreaName ) ) - return Property( aName, 0, ::getCppuType( (::com::sun::star::awt::Rectangle const *)0 ), PropertyAttribute::READONLY ); - throw UnknownPropertyException(); -} - -::sal_Bool SAL_CALL DisplayInfo::hasPropertyByName( const OUString& Name ) throw (RuntimeException) -{ - return Name.equalsAscii( pScreenAreaName ) || - Name.equalsAscii( pWorkAreaName ); -} - -// XServiceInfo -OUString SAL_CALL DisplayInfo::getImplementationName() throw (RuntimeException) -{ - return OUString(RTL_CONSTASCII_USTRINGPARAM("vcl::DisplayInfo")); -} - -::sal_Bool SAL_CALL DisplayInfo::supportsService( const OUString& ServiceName ) throw (RuntimeException) -{ - Sequence< OUString > aSN( getSupportedServiceNames() ); - for( sal_Int32 nService = 0; nService < aSN.getLength(); nService++ ) - { - if( aSN[nService] == ServiceName ) - return sal_True; - } - return sal_False; -} - -Sequence< OUString > SAL_CALL DisplayInfo::getSupportedServiceNames() throw (RuntimeException) -{ - OUString aServiceName(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.DisplayInfo")); - return Sequence< OUString >(&aServiceName, 1); -} - -// ==================================================================== - -class DisplayAccess : public ::cppu::WeakAggImplHelper4< XPropertySet, XPropertySetInfo, XIndexAccess, XServiceInfo > -{ -public: - DisplayAccess (); - - // XPropertySet - virtual Reference< XPropertySetInfo > SAL_CALL getPropertySetInfo() throw (RuntimeException); - virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const Any& aValue ) throw (UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException); - virtual Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException); - virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const Reference< XPropertyChangeListener >& xListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException); - virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const Reference< XPropertyChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException); - virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException); - virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException); - - // XPropertySetInfo - virtual Sequence< Property > SAL_CALL getProperties() throw (RuntimeException); - virtual Property SAL_CALL getPropertyByName( const OUString& aName ) throw (UnknownPropertyException, RuntimeException); - virtual ::sal_Bool SAL_CALL hasPropertyByName( const OUString& Name ) throw (RuntimeException); - - // XIndexAccess - virtual ::sal_Int32 SAL_CALL getCount() throw (RuntimeException); - virtual Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (IndexOutOfBoundsException, WrappedTargetException, RuntimeException); - - // XElementAccess - virtual Type SAL_CALL getElementType() throw (RuntimeException); - virtual ::sal_Bool SAL_CALL hasElements() throw (RuntimeException); - - // XServiceInfo - virtual OUString SAL_CALL getImplementationName() throw (RuntimeException); - virtual ::sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw (RuntimeException); - virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (RuntimeException); -}; - -Sequence< OUString > DisplayAccess_getSupportedServiceNames() -{ - OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.DisplayAccess" ) ); - return Sequence< OUString >( &aServiceName, 1 ); -} - -OUString DisplayAccess_getImplementationName() -{ - return OUString( RTL_CONSTASCII_USTRINGPARAM( "vcl::DisplayAccess" ) ); -} - -Reference< XInterface > SAL_CALL DisplayAccess_createInstance( const Reference< XMultiServiceFactory >& ) -{ - return static_cast< ::cppu::OWeakObject * >( new DisplayAccess ); -} - -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) -{ - return this; -} - -void SAL_CALL DisplayAccess::setPropertyValue( const OUString& /*aPropertyName* */, const Any& /*aValue*/ ) throw (UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException) -{ - throw PropertyVetoException(); -} - -Any SAL_CALL DisplayAccess::getPropertyValue( const OUString& PropertyName ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException) -{ - Any aRet; - if( PropertyName.equalsAscii( pUnifiedDisplayName ) ) - { - aRet <<= sal_Bool( Application::IsUnifiedDisplay() ); - } - else if( PropertyName.equalsAscii( pDefaultDisplayName ) || // Unhelpful name, legacy setting - PropertyName.equalsAscii( pBuiltInDisplayName ) ) - { - 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(); - - return aRet; -} - -void SAL_CALL DisplayAccess::addPropertyChangeListener( const OUString&, const Reference< XPropertyChangeListener >& ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException) {} -void SAL_CALL DisplayAccess::removePropertyChangeListener( const OUString&, const Reference< XPropertyChangeListener >& ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException) {} -void SAL_CALL DisplayAccess::addVetoableChangeListener( const OUString&, const Reference< XVetoableChangeListener >& ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException) {} -void SAL_CALL DisplayAccess::removeVetoableChangeListener( const OUString&, const Reference< XVetoableChangeListener >& ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException) {} - -// XPropertySetInfo -Sequence< Property > SAL_CALL DisplayAccess::getProperties() throw (RuntimeException) -{ - 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; -} - -Property SAL_CALL DisplayAccess::getPropertyByName( const OUString& aName ) throw (UnknownPropertyException, RuntimeException) -{ - if( aName.equalsAscii( pUnifiedDisplayName ) ) - return Property( aName, 0, ::getCppuType( (sal_Bool const *)0 ), PropertyAttribute::READONLY ); - - 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( pBuiltInDisplayName ) || - Name.equalsAscii( pExternalDisplayName ); -} - -// XIndexAccess -::sal_Int32 SAL_CALL DisplayAccess::getCount() throw (RuntimeException) -{ - return Application::GetScreenCount(); -} - -Any SAL_CALL DisplayAccess::getByIndex( ::sal_Int32 Index ) throw (IndexOutOfBoundsException, WrappedTargetException, RuntimeException) -{ - if( (Index < 0) || (Index >= getCount()) ) - throw IndexOutOfBoundsException(); - - return makeAny( Reference< XPropertySet >( new DisplayInfo( Index ) ) ); -} - -// XElementAccess -Type SAL_CALL DisplayAccess::getElementType() throw (RuntimeException) -{ - return XPropertySet::static_type(); -} - -::sal_Bool SAL_CALL DisplayAccess::hasElements() throw (RuntimeException) -{ - return true; -} - -// XServiceInfo -OUString SAL_CALL DisplayAccess::getImplementationName() throw (RuntimeException) -{ - return DisplayAccess_getImplementationName(); -} - -::sal_Bool SAL_CALL DisplayAccess::supportsService( const OUString& ServiceName ) throw (RuntimeException) -{ - Sequence< OUString > aSN( DisplayAccess_getSupportedServiceNames() ); - for( sal_Int32 nService = 0; nService < aSN.getLength(); nService++ ) - { - if( aSN[nService] == ServiceName ) - return sal_True; - } - return sal_False; -} - -Sequence< OUString > SAL_CALL DisplayAccess::getSupportedServiceNames() throw (RuntimeException) -{ - return DisplayAccess_getSupportedServiceNames(); -} - -} // namespace vcl - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/components/factory.cxx b/vcl/source/components/factory.cxx index 85bc7ee7ce9a..eb7c05bcce1f 100644 --- a/vcl/source/components/factory.cxx +++ b/vcl/source/components/factory.cxx @@ -37,10 +37,6 @@ extern Reference< XInterface > SAL_CALL vcl_session_createInstance( const Refere namespace vcl { -extern Sequence< OUString > SAL_CALL DisplayAccess_getSupportedServiceNames(); -extern OUString SAL_CALL DisplayAccess_getImplementationName(); -extern Reference< XInterface > SAL_CALL DisplayAccess_createInstance( const Reference< XMultiServiceFactory > & ); - extern Sequence< OUString > SAL_CALL FontIdentificator_getSupportedServiceNames(); extern OUString SAL_CALL FontIdentificator_getImplementationName(); extern Reference< XInterface > SAL_CALL FontIdentificator_createInstance( const Reference< XMultiServiceFactory > & ); @@ -84,12 +80,6 @@ extern "C" { xMgr, vcl_session_getImplementationName(), vcl_session_createInstance, vcl_session_getSupportedServiceNames() ); } - else if( vcl::DisplayAccess_getImplementationName().equalsAscii( pImplementationName ) ) - { - xFactory = ::cppu::createSingleFactory( - xMgr, vcl::DisplayAccess_getImplementationName(), vcl::DisplayAccess_createInstance, - vcl::DisplayAccess_getSupportedServiceNames() ); - } else if( vcl::FontIdentificator_getImplementationName().equalsAscii( pImplementationName ) ) { xFactory = ::cppu::createSingleFactory( diff --git a/vcl/vcl.android.component b/vcl/vcl.android.component index 299d8b36ed21..53ebfe36e74c 100644 --- a/vcl/vcl.android.component +++ b/vcl/vcl.android.component @@ -22,9 +22,6 @@ <implementation name="com.sun.star.frame.VCLSessionManagerClient"> <service name="com.sun.star.frame.SessionManagerClient"/> </implementation> - <implementation name="vcl::DisplayAccess"> - <service name="com.sun.star.awt.DisplayAccess"/> - </implementation> <implementation name="vcl::FontIdentificator"> <service name="com.sun.star.awt.FontIdentificator"/> </implementation> diff --git a/vcl/vcl.headless.component b/vcl/vcl.headless.component index 299d8b36ed21..53ebfe36e74c 100644 --- a/vcl/vcl.headless.component +++ b/vcl/vcl.headless.component @@ -22,9 +22,6 @@ <implementation name="com.sun.star.frame.VCLSessionManagerClient"> <service name="com.sun.star.frame.SessionManagerClient"/> </implementation> - <implementation name="vcl::DisplayAccess"> - <service name="com.sun.star.awt.DisplayAccess"/> - </implementation> <implementation name="vcl::FontIdentificator"> <service name="com.sun.star.awt.FontIdentificator"/> </implementation> diff --git a/vcl/vcl.ios.component b/vcl/vcl.ios.component index 299d8b36ed21..53ebfe36e74c 100644 --- a/vcl/vcl.ios.component +++ b/vcl/vcl.ios.component @@ -22,9 +22,6 @@ <implementation name="com.sun.star.frame.VCLSessionManagerClient"> <service name="com.sun.star.frame.SessionManagerClient"/> </implementation> - <implementation name="vcl::DisplayAccess"> - <service name="com.sun.star.awt.DisplayAccess"/> - </implementation> <implementation name="vcl::FontIdentificator"> <service name="com.sun.star.awt.FontIdentificator"/> </implementation> diff --git a/vcl/vcl.macosx.component b/vcl/vcl.macosx.component index d0e7b408a612..5842d9a61500 100644 --- a/vcl/vcl.macosx.component +++ b/vcl/vcl.macosx.component @@ -31,9 +31,6 @@ <implementation name="com.sun.star.frame.VCLSessionManagerClient"> <service name="com.sun.star.frame.SessionManagerClient"/> </implementation> - <implementation name="vcl::DisplayAccess"> - <service name="com.sun.star.awt.DisplayAccess"/> - </implementation> <implementation name="vcl::FontIdentificator"> <service name="com.sun.star.awt.FontIdentificator"/> </implementation> diff --git a/vcl/vcl.unx.component b/vcl/vcl.unx.component index cf51164c193e..35968751b743 100644 --- a/vcl/vcl.unx.component +++ b/vcl/vcl.unx.component @@ -31,9 +31,6 @@ <implementation name="com.sun.star.frame.VCLSessionManagerClient"> <service name="com.sun.star.frame.SessionManagerClient"/> </implementation> - <implementation name="vcl::DisplayAccess"> - <service name="com.sun.star.awt.DisplayAccess"/> - </implementation> <implementation name="vcl::FontIdentificator"> <service name="com.sun.star.awt.FontIdentificator"/> </implementation> diff --git a/vcl/vcl.windows.component b/vcl/vcl.windows.component index 2e303fdaf8a1..921f299440b8 100644 --- a/vcl/vcl.windows.component +++ b/vcl/vcl.windows.component @@ -22,9 +22,6 @@ <implementation name="com.sun.star.frame.VCLSessionManagerClient"> <service name="com.sun.star.frame.SessionManagerClient"/> </implementation> - <implementation name="vcl::DisplayAccess"> - <service name="com.sun.star.awt.DisplayAccess"/> - </implementation> <implementation name="vcl::FontIdentificator"> <service name="com.sun.star.awt.FontIdentificator"/> </implementation> diff --git a/vcl/win/source/window/salframe.cxx b/vcl/win/source/window/salframe.cxx index f2110d54677b..b673c463f59b 100644 --- a/vcl/win/source/window/salframe.cxx +++ b/vcl/win/source/window/salframe.cxx @@ -783,40 +783,27 @@ static void ImplSalCalcFullScreenSize( const WinSalFrame* pFrame, try { - uno::Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory(), UNO_QUERY_THROW ); - uno::Reference< XIndexAccess > xMultiMon( xFactory->createInstance( "com.sun.star.awt.DisplayAccess" ), UNO_QUERY_THROW ); - sal_Int32 nMonitors = xMultiMon->getCount(); + sal_Int32 nMonitors = Application::GetScreenCount(); if( (pFrame->mnDisplay >= 0) && (pFrame->mnDisplay < nMonitors) ) { - uno::Reference< XPropertySet > xMonitor( xMultiMon->getByIndex( pFrame->mnDisplay ), UNO_QUERY_THROW ); - com::sun::star::awt::Rectangle aRect; - if( xMonitor->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "ScreenArea" ) ) ) >>= aRect ) - { - nScreenX = aRect.X; - nScreenY = aRect.Y; - nScreenDX = aRect.Width+1; // difference between java/awt convention and vcl - nScreenDY = aRect.Height+1; // difference between java/awt convention and vcl - } + com::sun::star::awt::Rectangle aRect = Application::GetScreenPosSizePixel( pFrame->mnDisplay ); + nScreenX = aRect.X; + nScreenY = aRect.Y; + nScreenDX = aRect.Width+1; // difference between java/awt convention and vcl + nScreenDY = aRect.Height+1; // difference between java/awt convention and vcl } else { Rectangle aCombined; - uno::Reference< XPropertySet > xMonitor( xMultiMon->getByIndex( 0 ), UNO_QUERY_THROW ); - com::sun::star::awt::Rectangle aRect; - if( xMonitor->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "ScreenArea" ) ) ) >>= aRect ) + com::sun::star::awt::Rectangle aRect = Application::GetScreenPosSizePixel( 0 ); + aCombined.Left() = aRect.X; + aCombined.Top() = aRect.Y; + aCombined.Right() = aRect.X + aRect.Width; + aCombined.Bottom() = aRect.Y + aRect.Height; + for( sal_Int32 i = 1 ; i < nMonitors ; i++ ) { - aCombined.Left() = aRect.X; - aCombined.Top() = aRect.Y; - aCombined.Right() = aRect.X + aRect.Width; - aCombined.Bottom() = aRect.Y + aRect.Height; - for( sal_Int32 i = 1 ; i < nMonitors ; i++ ) - { - xMonitor = uno::Reference< XPropertySet >( xMultiMon->getByIndex(i), UNO_QUERY_THROW ); - if( xMonitor->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "ScreenArea" ) ) ) >>= aRect ) - { - aCombined.Union( Rectangle( aRect.X, aRect.Y, aRect.X+aRect.Width, aRect.Y+aRect.Height ) ); - } - } + aRect = Application::GetScreenPosSizePixel( i ); + aCombined.Union( Rectangle( aRect.X, aRect.Y, aRect.X+aRect.Width, aRect.Y+aRect.Height ) ); } nScreenX = aCombined.Left(); nScreenY = aCombined.Top(); |