diff options
author | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2013-04-18 18:26:28 +0200 |
---|---|---|
committer | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2013-04-23 22:20:31 +0200 |
commit | b9337e22ce1dbf2eba0e8c8db294ae99f4111f91 (patch) | |
tree | 53ee1bd3dfd213815a21579151983cb997922b05 /vcl/inc | |
parent | move global headers script (diff) | |
download | core-b9337e22ce1dbf2eba0e8c8db294ae99f4111f91.tar.gz core-b9337e22ce1dbf2eba0e8c8db294ae99f4111f91.zip |
execute move of global headers
see https://gerrit.libreoffice.org/#/c/3367/
and Change-Id: I00c96fa77d04b33a6f8c8cd3490dfcd9bdc9e84a for details
Change-Id: I199a75bc4042af20817265d5ef85b1134a96ff5a
Diffstat (limited to 'vcl/inc')
152 files changed, 0 insertions, 32413 deletions
diff --git a/vcl/inc/vcl/FilterConfigItem.hxx b/vcl/inc/vcl/FilterConfigItem.hxx deleted file mode 100644 index b13f37a19680..000000000000 --- a/vcl/inc/vcl/FilterConfigItem.hxx +++ /dev/null @@ -1,87 +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 . - */ - - -#ifndef _FILTER_CONFIG_ITEM_HXX_ -#define _FILTER_CONFIG_ITEM_HXX_ - -#include <vcl/dllapi.h> - -#include <tools/string.hxx> -#include <com/sun/star/awt/Size.hpp> -#include <com/sun/star/uno/Any.h> -#include <com/sun/star/uno/Reference.h> -#include <com/sun/star/uno/XInterface.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/beans/XPropertyAccess.hpp> -#include <com/sun/star/task/XStatusIndicator.hpp> - -class VCL_DLLPUBLIC FilterConfigItem -{ - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xUpdatableView; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xPropSet; - ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aFilterData; - - sal_Bool bModified; - - sal_Bool ImplGetPropertyValue( ::com::sun::star::uno::Any& rAny, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& rXPropSet, - const OUString& rPropName, - sal_Bool bTestPropertyAvailability ); - - void ImpInitTree( const String& rTree ); - - - static ::com::sun::star::beans::PropertyValue* GetPropertyValue( - ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rPropSeq, - const OUString& rName ); - static sal_Bool WritePropertyValue( - ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rPropSeq, - const ::com::sun::star::beans::PropertyValue& rPropValue ); - -public : - - FilterConfigItem( const OUString& rSubTree ); - FilterConfigItem( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >* pFilterData ); - FilterConfigItem( const OUString& rSubTree, ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >* pFilterData ); - ~FilterConfigItem(); - - // all read methods are trying to return values in following order: - // 1. FilterData PropertySequence - // 2. configuration - // 3. given default - sal_Bool ReadBool( const OUString& rKey, sal_Bool bDefault ); - sal_Int32 ReadInt32( const OUString& rKey, sal_Int32 nDefault ); - OUString - ReadString( const OUString& rKey, const OUString& rDefault ); - - // try to store to configuration - // and always stores into the FilterData sequence - void WriteBool( const OUString& rKey, sal_Bool bValue ); - void WriteInt32( const OUString& rKey, sal_Int32 nValue ); - - ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > GetFilterData() const; - - // GetStatusIndicator is returning the "StatusIndicator" property of the FilterData sequence - ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > GetStatusIndicator() const; -}; - -#endif // _FILTER_CONFIG_ITEM_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/GraphicNativeMetadata.hxx b/vcl/inc/vcl/GraphicNativeMetadata.hxx deleted file mode 100644 index ab5b767ceb15..000000000000 --- a/vcl/inc/vcl/GraphicNativeMetadata.hxx +++ /dev/null @@ -1,39 +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 . - */ - -#ifndef _GRAPHICNATIVEMETADATA_HXX -#define _GRAPHICNATIVEMETADATA_HXX - -#include <vcl/graph.hxx> - -class VCL_DLLPUBLIC GraphicNativeMetadata -{ - sal_uInt16 mRotation; - -public: - GraphicNativeMetadata(); - virtual ~GraphicNativeMetadata(); - - bool read(Graphic& rGraphic); - sal_uInt16 getRotation(); -}; - -#endif //_GRAPHICNATIVEMETADATA_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/GraphicNativeTransform.hxx b/vcl/inc/vcl/GraphicNativeTransform.hxx deleted file mode 100644 index db727a22c5ff..000000000000 --- a/vcl/inc/vcl/GraphicNativeTransform.hxx +++ /dev/null @@ -1,42 +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 . - */ - -#ifndef _GRAPHICNATIVETRANSFORM_HXX -#define _GRAPHICNATIVETRANSFORM_HXX - -#include <vcl/graph.hxx> - -class VCL_DLLPUBLIC GraphicNativeTransform -{ - Graphic& mrGraphic; - - bool rotateJPEG (sal_uInt16 aRotation); - bool rotateGeneric (sal_uInt16 aRotation, OUString aType); - -public: - GraphicNativeTransform(Graphic& rGraphic); - virtual ~GraphicNativeTransform(); - - bool canBeRotated(); - bool rotate(sal_uInt16 aRotation); -}; - -#endif //_GRAPHICNATIVETRANSFORM_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/ImageListProvider.hxx b/vcl/inc/vcl/ImageListProvider.hxx deleted file mode 100644 index cfbba790850c..000000000000 --- a/vcl/inc/vcl/ImageListProvider.hxx +++ /dev/null @@ -1,51 +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 . - */ - -#ifndef _SV_IMAGELISTPROVIDER_HXX -#define _SV_IMAGELISTPROVIDER_HXX - -#include <sal/types.h> - -namespace com { namespace sun { namespace star { namespace lang { class IllegalArgumentException; }}}} - -class ImageList; - - -namespace vcl -{ - enum ImageListType - { - IMAGELISTTYPE_UNKNOWN = 0, - HIGHCONTRAST_NO = 1, - HIGHCONTRAST_YES = 2 - }; - - /* abstract */ class IImageListProvider - { - public: - virtual ImageList getImageList(ImageListType) SAL_THROW (( com::sun::star::lang::IllegalArgumentException )) = 0; - - protected: - ~IImageListProvider() {} - }; -} /* vcl */ - -#endif /* _SV_IMAGELISTPROVIDER_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/abstdlg.hxx b/vcl/inc/vcl/abstdlg.hxx deleted file mode 100644 index 5f92c74d5c08..000000000000 --- a/vcl/inc/vcl/abstdlg.hxx +++ /dev/null @@ -1,84 +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 . - */ -#ifndef _VCL_ABSTDLG_HXX -#define _VCL_ABSTDLG_HXX - -#include <tools/solar.h> -#include <tools/string.hxx> -#include <vcl/dllapi.h> - -class Window; -class ResId; -class Link; - -class VCL_DLLPUBLIC VclAbstractDialog -{ -public: - virtual short Execute() = 0; - //virtual void Show( sal_Bool bVisible = sal_True, sal_uInt16 nFlags = 0 ) = 0; - virtual ~VclAbstractDialog(); -}; - -class VCL_DLLPUBLIC VclAbstractDialog2 -{ -public: - virtual void StartExecuteModal( const Link& rEndDialogHdl ) = 0; - virtual long GetResult() = 0; - virtual ~VclAbstractDialog2(); -}; - -class VCL_DLLPUBLIC VclAbstractTerminatedDialog : public VclAbstractDialog -{ -public: - virtual void EndDialog(long nResult =0) = 0; -}; - -class VCL_DLLPUBLIC VclAbstractRefreshableDialog : public VclAbstractDialog -{ -public: - virtual void Update() = 0; - virtual void Sync() = 0; -}; - -class VCL_DLLPUBLIC AbstractPasswordToOpenModifyDialog : public VclAbstractDialog -{ -public: - virtual String GetPasswordToOpen() const = 0; - virtual String GetPasswordToModify() const = 0; - virtual bool IsRecommendToOpenReadonly() const = 0; -}; - -//------------------------------------------------------------- - -class VCL_DLLPUBLIC VclAbstractDialogFactory -{ -public: - virtual ~VclAbstractDialogFactory(); // needed for export of vtable - static VclAbstractDialogFactory* Create(); - // nDialogId was previously a ResId without ResMgr; the ResourceId is now - // an implementation detail of the factory - virtual VclAbstractDialog* CreateVclDialog( Window* pParent, sal_uInt32 nResId ) = 0; - - // creates instance of PasswordToOpenModifyDialog from cui - virtual AbstractPasswordToOpenModifyDialog * CreatePasswordToOpenModifyDialog( Window * pParent, sal_uInt16 nMinPasswdLen, sal_uInt16 nMaxPasswdLen, bool bIsPasswordToModify ) = 0; -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/accel.hxx b/vcl/inc/vcl/accel.hxx deleted file mode 100644 index 79136b15b1f8..000000000000 --- a/vcl/inc/vcl/accel.hxx +++ /dev/null @@ -1,105 +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 . - */ - -#ifndef _SV_ACCEL_HXX -#define _SV_ACCEL_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <tools/link.hxx> -#include <tools/resid.hxx> -#include <tools/rc.hxx> -#include <vcl/keycod.hxx> - -class ImplAccelData; -class ImplAccelEntry; - -// --------------- -// - Accelerator - -// --------------- - -class VCL_DLLPUBLIC Accelerator : public Resource -{ - friend class ImplAccelManager; - -private: - ImplAccelData* mpData; - XubString maHelpStr; - Link maActivateHdl; - Link maDeactivateHdl; - Link maSelectHdl; - - // Will be set by AcceleratorManager - KeyCode maCurKeyCode; - sal_uInt16 mnCurId; - sal_uInt16 mnCurRepeat; - sal_Bool mbIsCancel; - sal_Bool* mpDel; - - SAL_DLLPRIVATE void ImplInit(); - SAL_DLLPRIVATE void ImplCopyData( ImplAccelData& rAccelData ); - SAL_DLLPRIVATE void ImplDeleteData(); - SAL_DLLPRIVATE void ImplInsertAccel( sal_uInt16 nItemId, const KeyCode& rKeyCode, - sal_Bool bEnable, Accelerator* pAutoAccel ); - - SAL_DLLPRIVATE ImplAccelEntry* ImplGetAccelData( const KeyCode& rKeyCode ) const; - -protected: - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - Accelerator(); - Accelerator( const Accelerator& rAccel ); - Accelerator( const ResId& rResId ); - virtual ~Accelerator(); - - virtual void Activate(); - virtual void Deactivate(); - virtual void Select(); - - void InsertItem( sal_uInt16 nItemId, const KeyCode& rKeyCode ); - void InsertItem( const ResId& rResId ); - - sal_uInt16 GetCurItemId() const { return mnCurId; } - const KeyCode& GetCurKeyCode() const { return maCurKeyCode; } - sal_uInt16 GetCurRepeat() const { return mnCurRepeat; } - sal_Bool IsCancel() const { return mbIsCancel; } - - sal_uInt16 GetItemCount() const; - sal_uInt16 GetItemId( sal_uInt16 nPos ) const; - KeyCode GetKeyCode( sal_uInt16 nItemId ) const; - - Accelerator* GetAccel( sal_uInt16 nItemId ) const; - - void SetHelpText( const XubString& rHelpText ) { maHelpStr = rHelpText; } - const XubString& GetHelpText() const { return maHelpStr; } - - void SetActivateHdl( const Link& rLink ) { maActivateHdl = rLink; } - const Link& GetActivateHdl() const { return maActivateHdl; } - void SetDeactivateHdl( const Link& rLink ) { maDeactivateHdl = rLink; } - const Link& GetDeactivateHdl() const { return maDeactivateHdl; } - void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } - const Link& GetSelectHdl() const { return maSelectHdl; } - - Accelerator& operator=( const Accelerator& rAccel ); -}; - -#endif // _SV_ACCEL_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/alpha.hxx b/vcl/inc/vcl/alpha.hxx deleted file mode 100644 index 95bb0ea29de2..000000000000 --- a/vcl/inc/vcl/alpha.hxx +++ /dev/null @@ -1,149 +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 . - */ - -#ifndef _SV_ALPHA_HXX -#define _SV_ALPHA_HXX - -#include <vcl/dllapi.h> -#include <vcl/bitmap.hxx> - -// ------------- -// - AlphaMask - -// ------------- - -class ImageList; -class BitmapEx; - -class VCL_DLLPUBLIC AlphaMask : private Bitmap -{ - friend class BitmapEx; - friend class OutputDevice; - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream&, const ImageList& ); - -private: - - SAL_DLLPRIVATE const Bitmap& ImplGetBitmap() const; - SAL_DLLPRIVATE void ImplSetBitmap( const Bitmap& rBitmap ); - -public: - - AlphaMask(); - AlphaMask( const Bitmap& rBitmap ); - AlphaMask( const AlphaMask& rAlphaMask ); - AlphaMask( const Size& rSizePixel, sal_uInt8* pEraseTransparency = NULL ); - virtual ~AlphaMask(); - - AlphaMask& operator=( const Bitmap& rBitmap ); - AlphaMask& operator=( const AlphaMask& rAlphaMask ) - { - return (AlphaMask&) Bitmap::operator=( rAlphaMask ); - } - - sal_Bool operator!() const - { - return Bitmap::operator!(); - } - - sal_Bool operator==( const AlphaMask& rAlphaMask ) const - { - return Bitmap::operator==( rAlphaMask ); - } - - sal_Bool operator!=( const AlphaMask& rAlphaMask ) const - { - return Bitmap::operator!=( rAlphaMask ); - } - - const MapMode& GetPrefMapMode() const - { - return Bitmap::GetPrefMapMode(); - } - - void SetPrefMapMode( const MapMode& rMapMode ) - { - Bitmap::SetPrefMapMode( rMapMode ); - } - - const Size& GetPrefSize() const - { - return Bitmap::GetPrefSize(); - } - - void SetPrefSize( const Size& rSize ) - { - Bitmap::SetPrefSize( rSize ); - } - - Size GetSizePixel() const - { - return Bitmap::GetSizePixel(); - } - - sal_uLong GetSizeBytes() const - { - return Bitmap::GetSizeBytes(); - } - sal_uLong GetChecksum() const - { - return Bitmap::GetChecksum(); - } - - Bitmap GetBitmap() const; - - sal_Bool CopyPixel( const Rectangle& rRectDst, const Rectangle& rRectSrc, - const AlphaMask* pAlphaSrc = NULL); - - sal_Bool Erase( sal_uInt8 cTransparency ); - sal_Bool Replace( const Bitmap& rMask, sal_uInt8 rReplaceTransparency ); - sal_Bool Replace( sal_uInt8 cSearchTransparency, sal_uInt8 cReplaceTransparency, - sal_uLong nTol = 0UL ); - - BitmapReadAccess* AcquireReadAccess() - { - return Bitmap::AcquireReadAccess(); - } - - BitmapWriteAccess* AcquireWriteAccess() - { - return Bitmap::AcquireWriteAccess(); - } - - void ReleaseAccess( BitmapReadAccess* pAccess ); - - typedef vcl::ScopedBitmapAccess< BitmapReadAccess, AlphaMask, &AlphaMask::AcquireReadAccess > - ScopedReadAccess; - typedef vcl::ScopedBitmapAccess< BitmapWriteAccess, AlphaMask, &AlphaMask::AcquireWriteAccess > - ScopedWriteAccess; - - sal_Bool Read( SvStream& rIStm, sal_Bool bFileHeader = sal_True ) - { - return Bitmap::Read( rIStm, bFileHeader ); - } - sal_Bool Write( SvStream& rOStm, sal_Bool bCompressed = sal_True, sal_Bool bFileHeader = sal_True ) const - { - return Bitmap::Write( rOStm, bCompressed, bFileHeader ); - } - - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const BitmapEx& rBitmapEx ); - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, BitmapEx& rBitmapEx ); -}; - -#endif // _SV_ALPHA_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/animate.hxx b/vcl/inc/vcl/animate.hxx deleted file mode 100644 index dd374e8aed51..000000000000 --- a/vcl/inc/vcl/animate.hxx +++ /dev/null @@ -1,238 +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 . - */ - -#ifndef _SV_ANIMATE_HXX -#define _SV_ANIMATE_HXX - -#include <vcl/dllapi.h> -#include <vcl/timer.hxx> -#include <vcl/bitmapex.hxx> - -#define ANIMATION_TIMEOUT_ON_CLICK 2147483647L - -enum Disposal -{ - DISPOSE_NOT, - DISPOSE_BACK, - DISPOSE_FULL, - DISPOSE_PREVIOUS -}; - -enum CycleMode -{ - CYCLE_NOT, - CYCLE_NORMAL, - CYCLE_FALLBACK, - CYCLE_REVERS, - CYCLE_REVERS_FALLBACK -}; - -struct VCL_DLLPUBLIC AnimationBitmap -{ - BitmapEx aBmpEx; - Point aPosPix; - Size aSizePix; - long nWait; - Disposal eDisposal; - sal_Bool bUserInput; - - AnimationBitmap() {} - AnimationBitmap( - const BitmapEx& rBmpEx, - const Point& rPosPix, - const Size& rSizePix, - long _nWait = 0L, - Disposal _eDisposal = DISPOSE_NOT - ) : - aBmpEx ( rBmpEx ), - aPosPix ( rPosPix ), - aSizePix ( rSizePix ), - nWait ( _nWait ), - eDisposal ( _eDisposal ), - bUserInput ( sal_False ) - {} - - sal_Bool operator==( const AnimationBitmap& rAnimBmp ) const - { - return( rAnimBmp.aBmpEx == aBmpEx && - rAnimBmp.aPosPix == aPosPix && - rAnimBmp.aSizePix == aSizePix && - rAnimBmp.nWait == nWait && - rAnimBmp.eDisposal == eDisposal && - rAnimBmp.bUserInput == bUserInput ); - } - - sal_Bool operator!=( const AnimationBitmap& rAnimBmp ) const - { return !( *this == rAnimBmp ); } - - sal_Bool IsEqual( const AnimationBitmap& rAnimBmp ) const - { - return( rAnimBmp.aPosPix == aPosPix && - rAnimBmp.aSizePix == aSizePix && - rAnimBmp.nWait == nWait && - rAnimBmp.eDisposal == eDisposal && - rAnimBmp.bUserInput == bUserInput && - rAnimBmp.aBmpEx.IsEqual( aBmpEx ) ); - } - - sal_uLong GetChecksum() const; -}; - -struct AInfo -{ - Bitmap aLastSaveBitmap; - Bitmap aBackBitmap; - Rectangle aClipRect; - Size aLastSaveSize; - Point aLastSavePoint; - Point aStartOrg; - Size aStartSize; - OutputDevice* pOutDev; - void* pViewData; - long nExtraData; - sal_Bool bWithSize; - sal_Bool bPause; - - AInfo() : pOutDev( NULL ), - pViewData( NULL ), - nExtraData( 0L ), - bWithSize( sal_False ), - bPause( sal_False ) {} -}; - -class ImplAnimView; -typedef ::std::vector< AnimationBitmap* > AnimationBitmapList_impl; -typedef ::std::vector< ImplAnimView* > AnimViewList_impl; - -class VCL_DLLPUBLIC Animation -{ - SAL_DLLPRIVATE static sal_uLong mnAnimCount; - - AnimationBitmapList_impl maList; - AnimViewList_impl maViewList; - Link maNotifyLink; - BitmapEx maBitmapEx; - Timer maTimer; - Size maGlobalSize; - void* mpExtraData; - long mnLoopCount; - long mnLoops; - size_t mnPos; - Disposal meLastDisposal; - CycleMode meCycleMode; - sal_Bool mbFirst; - sal_Bool mbIsInAnimation; - sal_Bool mbWithSize; - sal_Bool mbLoopTerminated; - sal_Bool mbIsWaiting; - - - SAL_DLLPRIVATE void ImplRestartTimer( sal_uLong nTimeout ); - DECL_DLLPRIVATE_LINK( ImplTimeoutHdl, void* ); - -public: - - SAL_DLLPRIVATE static void ImplIncAnimCount() { mnAnimCount++; } - SAL_DLLPRIVATE static void ImplDecAnimCount() { mnAnimCount--; } - SAL_DLLPRIVATE sal_uLong ImplGetCurPos() const { return mnPos; } - - -public: - Animation(); - Animation( const Animation& rAnimation ); - ~Animation(); - - Animation& operator=( const Animation& rAnimation ); - sal_Bool operator==( const Animation& rAnimation ) const; - sal_Bool operator!=( const Animation& rAnimation ) const - { return !(*this==rAnimation); } - - void Clear(); - - sal_Bool Start( - OutputDevice* pOutDev, - const Point& rDestPt, - const Size& rDestSz, - long nExtraData = 0, - OutputDevice* pFirstFrameOutDev = NULL - ); - void Stop( OutputDevice* pOutDev = NULL, long nExtraData = 0 ); - - void Draw( OutputDevice* pOutDev, const Point& rDestPt ) const; - void Draw( OutputDevice* pOutDev, const Point& rDestPt, const Size& rDestSz ) const; - - sal_Bool IsInAnimation() const { return mbIsInAnimation; } - sal_Bool IsTransparent() const; - sal_Bool IsTerminated() const { return mbLoopTerminated; } - - const Size& GetDisplaySizePixel() const { return maGlobalSize; } - void SetDisplaySizePixel( const Size& rSize ) { maGlobalSize = rSize; } - - const BitmapEx& GetBitmapEx() const { return maBitmapEx; } - void SetBitmapEx( const BitmapEx& rBmpEx ) { maBitmapEx = rBmpEx; } - - sal_uLong GetLoopCount() const { return mnLoopCount; } - void SetLoopCount( const sal_uLong nLoopCount ); - void ResetLoopCount(); - - void SetCycleMode( CycleMode eMode ); - CycleMode GetCycleMode() const { return meCycleMode; } - - void SetNotifyHdl( const Link& rLink ) { maNotifyLink = rLink; } - const Link& GetNotifyHdl() const { return maNotifyLink; } - - size_t Count() const { return maList.size(); } - sal_Bool Insert( const AnimationBitmap& rAnimationBitmap ); - const AnimationBitmap& Get( sal_uInt16 nAnimation ) const; - void Replace( const AnimationBitmap& rNewAnimationBmp, sal_uInt16 nAnimation ); - - sal_uLong GetSizeBytes() const; - sal_uLong GetChecksum() const; - -public: - - sal_Bool Convert( BmpConversion eConversion ); - sal_Bool ReduceColors( - sal_uInt16 nNewColorCount, - BmpReduce eReduce = BMP_REDUCE_SIMPLE - ); - sal_Bool Invert(); - sal_Bool Mirror( sal_uLong nMirrorFlags ); - sal_Bool Adjust( - short nLuminancePercent = 0, - short nContrastPercent = 0, - short nChannelRPercent = 0, - short nChannelGPercent = 0, - short nChannelBPercent = 0, - double fGamma = 1.0, - sal_Bool bInvert = sal_False - ); - sal_Bool Filter( - BmpFilter eFilter, - const BmpFilterParam* pFilterParam = NULL, - const Link* pProgress = NULL - ); - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStream, Animation& rAnimation ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStream, const Animation& rAnimation ); -}; - -#endif // _SV_ANIMATE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/apptypes.hxx b/vcl/inc/vcl/apptypes.hxx deleted file mode 100644 index ebb1eb703212..000000000000 --- a/vcl/inc/vcl/apptypes.hxx +++ /dev/null @@ -1,51 +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 . - */ - -#ifndef _VCL_APPTYPES_HXX -#define _VCL_APPTYPES_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <tools/rtti.hxx> - -// --------------------- -// - Application-Types - -// --------------------- - -#define EXC_RSCNOTLOADED ((sal_uInt16)0x0100) -#define EXC_SYSOBJNOTCREATED ((sal_uInt16)0x0200) -#define EXC_SYSTEM ((sal_uInt16)0x0300) -#define EXC_DISPLAY ((sal_uInt16)0x0400) -#define EXC_REMOTE ((sal_uInt16)0x0500) -#define EXC_USER ((sal_uInt16)0x1000) -#define EXC_MAJORTYPE ((sal_uInt16)0xFF00) -#define EXC_MINORTYPE ((sal_uInt16)0x00FF) - -#define VCL_INPUT_MOUSE 0x0001 -#define VCL_INPUT_KEYBOARD 0x0002 -#define VCL_INPUT_PAINT 0x0004 -#define VCL_INPUT_TIMER 0x0008 -#define VCL_INPUT_OTHER 0x0010 -#define VCL_INPUT_APPEVENT 0x0020 -#define VCL_INPUT_MOUSEANDKEYBOARD (VCL_INPUT_MOUSE | VCL_INPUT_KEYBOARD) -#define VCL_INPUT_ANY (VCL_INPUT_MOUSEANDKEYBOARD | VCL_INPUT_PAINT | VCL_INPUT_TIMER | VCL_INPUT_OTHER | VCL_INPUT_APPEVENT) - -#endif // _VCL_APPTYPES_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/bitmap.hxx b/vcl/inc/vcl/bitmap.hxx deleted file mode 100644 index c0ec5b17870c..000000000000 --- a/vcl/inc/vcl/bitmap.hxx +++ /dev/null @@ -1,896 +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 . - */ - -#ifndef _SV_BITMAP_HXX -#define _SV_BITMAP_HXX - -#include <tools/link.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/mapmod.hxx> -#include <vcl/region.hxx> -#include <vcl/scopedbitmapaccess.hxx> - -#define BMP_MIRROR_NONE 0x00000000UL -#define BMP_MIRROR_HORZ 0x00000001UL -#define BMP_MIRROR_VERT 0x00000002UL - - -#define BMP_SCALE_NONE 0x00000000UL -#define BMP_SCALE_FAST 0x00000001UL -#define BMP_SCALE_INTERPOLATE 0x00000002UL -#define BMP_SCALE_LANCZOS 0x00000003UL -#define BMP_SCALE_BICUBIC 0x00000004UL -#define BMP_SCALE_BILINEAR 0x00000005UL -#define BMP_SCALE_BOX 0x00000006UL - -// Aliases, try to use these two (or BMP_SCALE_FAST/BMP_SCALE_NONE), -// use a specific algorithm only if you really need to. -#define BMP_SCALE_BEST BMP_SCALE_LANCZOS -#define BMP_SCALE_DEFAULT BMP_SCALE_BOX - -#define BMP_DITHER_NONE 0x00000000UL -#define BMP_DITHER_MATRIX 0x00000001UL -#define BMP_DITHER_FLOYD 0x00000002UL -#define BMP_DITHER_FLOYD_16 0x00000004UL - -#define BMP_VECTORIZE_NONE BMP_VECTORIZE_OUTER -#define BMP_VECTORIZE_INNER 0x00000001UL -#define BMP_VECTORIZE_OUTER 0x00000002UL -#define BMP_VECTORIZE_BOUND_ONLY 0x00000004UL -#define BMP_VECTORIZE_REDUCE_EDGES 0x00000008UL - -#define BMP_COL_TRANS Color( 252, 3, 251 ) - -enum BmpConversion -{ - BMP_CONVERSION_NONE = 0, - BMP_CONVERSION_1BIT_THRESHOLD = 1, - BMP_CONVERSION_1BIT_MATRIX = 2, - BMP_CONVERSION_4BIT_GREYS = 3, - BMP_CONVERSION_4BIT_COLORS = 4, - BMP_CONVERSION_8BIT_GREYS = 5, - BMP_CONVERSION_8BIT_COLORS = 6, - BMP_CONVERSION_24BIT = 7, - BMP_CONVERSION_4BIT_TRANS = 8, - BMP_CONVERSION_8BIT_TRANS = 9, - BMP_CONVERSION_GHOSTED = 10 -}; - -enum BmpCombine -{ - BMP_COMBINE_COPY = 0, - BMP_COMBINE_INVERT = 1, - BMP_COMBINE_AND = 2, - BMP_COMBINE_NAND = 3, - BMP_COMBINE_OR = 4, - BMP_COMBINE_NOR = 5, - BMP_COMBINE_XOR = 6, - BMP_COMBINE_NXOR = 7 -}; - -enum BmpReduce -{ - BMP_REDUCE_SIMPLE = 0, - BMP_REDUCE_POPULAR = 1, - BMP_REDUCE_MEDIAN = 2 -}; - -enum BmpEmboss -{ - BMP_EMBOSS_TOPLEFT = 0, - BMP_EMBOSS_TOP = 1, - BMP_EMBOSS_TOPRIGHT = 2, - BMP_EMBOSS_LEFT = 3, - BMP_EMBOSS_MIDDLE = 4, - BMP_EMBOSS_RIGHT = 5, - BMP_EMBOSS_BOTTOMLEFT = 6, - BMP_EMBOSS_BOTTOM = 7, - BMP_EMBOSS_BOTTOMRIGHT = 8 -}; - -enum BmpFilter -{ - BMP_FILTER_SMOOTH = 0, - BMP_FILTER_SHARPEN = 1, - BMP_FILTER_REMOVENOISE = 2, - BMP_FILTER_SOBEL_GREY = 3, - BMP_FILTER_EMBOSS_GREY = 4, - BMP_FILTER_SOLARIZE = 5, - BMP_FILTER_SEPIA = 6, - BMP_FILTER_MOSAIC = 7, - BMP_FILTER_POPART = 8, - - BMP_FILTER_UNKNOWN = 65535 -}; - -class VCL_DLLPUBLIC BmpFilterParam -{ - friend class Bitmap; - friend class BitmapEx; - friend class Animation; - -private: - BmpFilter meFilter; - sal_uLong mnProgressStart; - sal_uLong mnProgressEnd; - -public: - struct MosaicTileSize - { - sal_uLong mnTileWidth; - sal_uLong mnTileHeight; - }; - - struct EmbossAngles - { - sal_uInt16 mnAzimuthAngle100; - sal_uInt16 mnElevationAngle100; - }; - -private: - union - { - sal_uInt16 mnSepiaPercent; - sal_uInt8 mcSolarGreyThreshold; - double mnRadius; - - MosaicTileSize maMosaicTileSize; - EmbossAngles maEmbossAngles; - }; - -public: - - BmpFilterParam( sal_uLong nProgressStart = 0, sal_uLong nProgressEnd = 0 ) : - meFilter( BMP_FILTER_UNKNOWN ), mnProgressStart( nProgressStart ), mnProgressEnd( nProgressEnd ) {} - - BmpFilterParam( sal_uInt8 cSolarGreyThreshold, sal_uLong nProgressStart = 0, sal_uLong nProgressEnd = 0 ) : - meFilter( BMP_FILTER_SOLARIZE ), mnProgressStart( nProgressStart ), mnProgressEnd( nProgressEnd ), - mcSolarGreyThreshold( cSolarGreyThreshold ) {} - - BmpFilterParam( double nRadius, sal_uLong nProgressStart = 0, sal_uLong nProgressEnd = 0 ) : - meFilter( BMP_FILTER_SMOOTH ), mnProgressStart( nProgressStart ), mnProgressEnd( nProgressEnd ), - mnRadius( nRadius ) {} - - BmpFilterParam( sal_uInt16 nSepiaPercent, sal_uLong nProgressStart = 0, sal_uLong nProgressEnd = 0 ) : - meFilter( BMP_FILTER_SEPIA ), mnProgressStart( nProgressStart ), mnProgressEnd( nProgressEnd ), - mnSepiaPercent( nSepiaPercent ) {} - - BmpFilterParam( const Size& rMosaicTileSize, sal_uLong nProgressStart = 0, sal_uLong nProgressEnd = 0 ) : - meFilter( BMP_FILTER_MOSAIC ), mnProgressStart( nProgressStart ), mnProgressEnd( nProgressEnd ) - { - maMosaicTileSize.mnTileWidth = rMosaicTileSize.Width(); - maMosaicTileSize.mnTileHeight= rMosaicTileSize.Height(); - } - BmpFilterParam( sal_uInt16 nEmbossAzimuthAngle100, sal_uInt16 nEmbossElevationAngle100, - sal_uLong nProgressStart = 0, sal_uLong nProgressEnd = 0 ) : - meFilter( BMP_FILTER_EMBOSS_GREY ), mnProgressStart( nProgressStart ), mnProgressEnd( nProgressEnd ) - { - maEmbossAngles.mnAzimuthAngle100 = nEmbossAzimuthAngle100; - maEmbossAngles.mnElevationAngle100 = nEmbossElevationAngle100; - } -}; - -// -------------------- -// Resample kernels -// -------------------- - -class Kernel -{ - -public: - Kernel () {} - virtual ~Kernel() {} - - virtual double GetWidth() = 0; - virtual double Calculate( double x ) = 0; -}; - -class Lanczos3Kernel : public Kernel -{ - -public: - virtual double GetWidth() { return 3.0; } - virtual double Calculate (double x) - { - return (-3.0 <= x && x < 3.0) ? SincFilter(x) * SincFilter( x / 3.0 ) : 0.0; - } - - inline double SincFilter(double x) - { - if (x == 0.0) - { - return 1.0; - } - x = x * M_PI; - return sin(x) / x; - } -}; - -class BicubicKernel : public Kernel { - virtual double GetWidth() { return 2.0; } - virtual double Calculate (double x) - { - if (x < 0.0) - { - x = -x; - } - - if (x <= 1.0) - { - return (1.5 * x - 2.5) * x * x + 1.0; - } - else if (x < 2.0) - { - return ((-0.5 * x + 2.5) * x - 4) * x + 2; - } - return 0.0; - } -}; - -class BilinearKernel : public Kernel { - virtual double GetWidth() { return 1.0; } - virtual double Calculate (double x) - { - if (x < 0.0) - { - x = -x; - } - if (x < 1.0) - { - return 1.0-x; - } - return 0.0; - } -}; - -class BoxKernel : public Kernel { - virtual double GetWidth() { return 0.5; } - virtual double Calculate (double x) - { - if (-0.5 <= x && x < 0.5) - return 1.0; - return 0.0; - } -}; - -class BitmapReadAccess; -class BitmapWriteAccess; -class BitmapPalette; -class ImpBitmap; -class Color; -class SvStream; -struct DIBInfoHeader; -class ResId; -class GDIMetaFile; -class AlphaMask; -class OutputDevice; -class SalBitmap; - -struct BitmapSystemData -{ - #if defined( WNT ) - void* pDIB; // device independent byte buffer - void* pDDB; // if not NULL then this is actually an HBITMAP - #elif defined( MACOSX ) || defined( IOS ) - void* rImageContext; //Image context (CGContextRef) - #else - void* aPixmap; - void* aVisual; - #endif - int mnWidth; - int mnHeight; -}; - -class VCL_DLLPUBLIC Bitmap -{ -private: - - ImpBitmap* mpImpBmp; - MapMode maPrefMapMode; - Size maPrefSize; - -public: - - SAL_DLLPRIVATE void ImplReleaseRef(); - SAL_DLLPRIVATE void ImplMakeUnique(); - ImpBitmap* ImplGetImpBitmap() const; - SAL_DLLPRIVATE void ImplSetImpBitmap( ImpBitmap* pImpBmp ); - SAL_DLLPRIVATE void ImplAssignWithSize( const Bitmap& rBitmap ); - - SAL_DLLPRIVATE static sal_Bool ImplReadDIB( SvStream& rIStm, Bitmap& rBmp, sal_uLong nOffset, sal_Bool bMSOFormat = sal_False ); - SAL_DLLPRIVATE static sal_Bool ImplReadDIBFileHeader( SvStream& rIStm, sal_uLong& rOffset ); - SAL_DLLPRIVATE static sal_Bool ImplReadDIBInfoHeader( SvStream& rIStm, DIBInfoHeader& rHeader, sal_Bool& bTopDown, sal_Bool bMSOFormat = sal_False ); - SAL_DLLPRIVATE static sal_Bool ImplReadDIBPalette( SvStream& rIStm, BitmapWriteAccess& rAcc, sal_Bool bQuad ); - SAL_DLLPRIVATE static sal_Bool ImplReadDIBBits( SvStream& rIStm, DIBInfoHeader& rHeader, BitmapWriteAccess& rAcc, sal_Bool bTopDown ); - SAL_DLLPRIVATE sal_Bool ImplWriteDIB( SvStream& rOStm, BitmapReadAccess& rAcc, sal_Bool bCompressed ) const; - SAL_DLLPRIVATE static sal_Bool ImplWriteDIBFileHeader( SvStream& rOStm, BitmapReadAccess& rAcc ); - SAL_DLLPRIVATE static sal_Bool ImplWriteDIBPalette( SvStream& rOStm, BitmapReadAccess& rAcc ); - SAL_DLLPRIVATE static sal_Bool ImplWriteDIBBits( SvStream& rOStm, BitmapReadAccess& rAcc, - sal_uLong nCompression, sal_uInt32& rImageSize ); - SAL_DLLPRIVATE static void ImplDecodeRLE( sal_uInt8* pBuffer, DIBInfoHeader& rHeader, - BitmapWriteAccess& rAcc, sal_Bool bRLE4 ); - SAL_DLLPRIVATE static sal_Bool ImplWriteRLE( SvStream& rOStm, BitmapReadAccess& rAcc, sal_Bool bRLE4 ); - - SAL_DLLPRIVATE sal_Bool ImplScaleFast( const double& rScaleX, const double& rScaleY ); - SAL_DLLPRIVATE sal_Bool ImplScaleInterpolate( const double& rScaleX, const double& rScaleY ); - SAL_DLLPRIVATE bool ImplScaleConvolution( const double& rScaleX, const double& rScaleY, Kernel& aKernel); - SAL_DLLPRIVATE bool ImplTransformAveraging( const double& rScaleX, const double& rScaleY, - const Rectangle& rRotatedRectangle, const long nAngle10, const Color& rFillColor ); - SAL_DLLPRIVATE bool ImplTransformBilinearFiltering( const double& rScaleX, const double& rScaleY, - const Rectangle& rRotatedRectangle, const long nAngle10, const Color& rFillColor ); - - SAL_DLLPRIVATE static void ImplCalculateContributions( const int aSourceSize, const int aDestinationSize, - int& aNumberOfContributions, double*& pWeights, int*& pPixels, int*& pCount, - Kernel& aKernel ); - - SAL_DLLPRIVATE bool ImplConvolutionPass( Bitmap& aNewBitmap, const int nNewSize, BitmapReadAccess* pReadAcc, - int aNumberOfContributions, double* pWeights, int* pPixels, int* pCount ); - - SAL_DLLPRIVATE sal_Bool ImplMakeMono( sal_uInt8 cThreshold ); - SAL_DLLPRIVATE sal_Bool ImplMakeMonoDither(); - SAL_DLLPRIVATE sal_Bool ImplMakeGreyscales( sal_uInt16 nGreyscales ); - SAL_DLLPRIVATE sal_Bool ImplConvertUp( sal_uInt16 nBitCount, Color* pExtColor = NULL ); - SAL_DLLPRIVATE sal_Bool ImplConvertDown( sal_uInt16 nBitCount, Color* pExtColor = NULL ); - SAL_DLLPRIVATE sal_Bool ImplConvertGhosted(); - SAL_DLLPRIVATE sal_Bool ImplDitherMatrix(); - SAL_DLLPRIVATE sal_Bool ImplDitherFloyd(); - SAL_DLLPRIVATE sal_Bool ImplDitherFloyd16(); - SAL_DLLPRIVATE sal_Bool ImplReduceSimple( sal_uInt16 nColorCount ); - SAL_DLLPRIVATE sal_Bool ImplReducePopular( sal_uInt16 nColorCount ); - SAL_DLLPRIVATE sal_Bool ImplReduceMedian( sal_uInt16 nColorCount ); - SAL_DLLPRIVATE void ImplMedianCut( sal_uLong* pColBuf, BitmapPalette& rPal, - long nR1, long nR2, long nG1, long nG2, long nB1, long nB2, - long nColors, long nPixels, long& rIndex ); - SAL_DLLPRIVATE sal_Bool ImplConvolute3( const long* pMatrix, long nDivisor, - const BmpFilterParam* pFilterParam, const Link* pProgress ); - SAL_DLLPRIVATE sal_Bool ImplMedianFilter( const BmpFilterParam* pFilterParam, const Link* pProgress ); - SAL_DLLPRIVATE sal_Bool ImplSobelGrey( const BmpFilterParam* pFilterParam, const Link* pProgress ); - SAL_DLLPRIVATE sal_Bool ImplEmbossGrey( const BmpFilterParam* pFilterParam, const Link* pProgress ); - SAL_DLLPRIVATE sal_Bool ImplSolarize( const BmpFilterParam* pFilterParam, const Link* pProgress ); - SAL_DLLPRIVATE sal_Bool ImplSepia( const BmpFilterParam* pFilterParam, const Link* pProgress ); - SAL_DLLPRIVATE sal_Bool ImplMosaic( const BmpFilterParam* pFilterParam, const Link* pProgress ); - SAL_DLLPRIVATE sal_Bool ImplPopArt( const BmpFilterParam* pFilterParam, const Link* pProgress ); - - SAL_DLLPRIVATE bool ImplSeparableBlurFilter( const double aRadius = 0.7 ); - SAL_DLLPRIVATE bool ImplSeparableUnsharpenFilter( const double aRadius = 0.7 ); - SAL_DLLPRIVATE void ImplBlurContributions( const int aSize, const int aNumberOfContributions, - double* pBlurVector, double*& pWeights, int*& pPixels, int*& pCount ); -public: - - Bitmap(); - Bitmap( const Bitmap& rBitmap ); - Bitmap( const Size& rSizePixel, sal_uInt16 nBitCount, const BitmapPalette* pPal = NULL ); - Bitmap( const ResId& rResId ); - Bitmap( SalBitmap* pSalBitmap ); - virtual ~Bitmap(); - - Bitmap& operator=( const Bitmap& rBitmap ); - inline sal_Bool operator!() const; - inline sal_Bool operator==( const Bitmap& rBitmap ) const; - inline sal_Bool operator!=( const Bitmap& rBitmap ) const; - - inline sal_Bool IsSameInstance( const Bitmap& rBmp ) const; - sal_Bool IsEqual( const Bitmap& rBmp ) const; - - inline sal_Bool IsEmpty() const; - void SetEmpty(); - - inline const MapMode& GetPrefMapMode() const; - inline void SetPrefMapMode( const MapMode& rMapMode ); - - inline const Size& GetPrefSize() const; - inline void SetPrefSize( const Size& rSize ); - - Size GetSizePixel() const; - - /** - * The pixel size of a bitmap's source (e.g. an image file) - * and the pixel size of its resulting bitmap can differ, - * e.g. when the image reader has its preview mode enabled. - */ - void SetSourceSizePixel( const Size& ); - - sal_uInt16 GetBitCount() const; - inline sal_uLong GetColorCount() const; - inline sal_uLong GetSizeBytes() const; - sal_Bool HasGreyPalette() const; - /** get system dependent bitmap data - - @param rData - The system dependent BitmapSystemData structure to be filled - - @return sal_True if the bitmap has a valid system object (e.g. not empty) - */ - bool GetSystemData( BitmapSystemData& rData ) const; - - sal_uLong GetChecksum() const; - - Bitmap CreateDisplayBitmap( OutputDevice* pDisplay ); - Bitmap GetColorTransformedBitmap() const; - - static const BitmapPalette& GetGreyPalette( int nEntries ); - -public: - - sal_Bool MakeMono( sal_uInt8 cThreshold ); - - - /** Convert bitmap format - - @param eConversion - The format this bitmap should be converted to. - - @return sal_True, if the conversion was completed successfully. - */ - sal_Bool Convert( BmpConversion eConversion ); - - /** Reduce number of colors for the bitmap - - @param nNewColorCount - Maximal number of bitmap colors after the reduce operation - - @param eReduce - Algorithm to use for color reduction - - @return sal_True, if the color reduction operation was completed successfully. - */ - sal_Bool ReduceColors( sal_uInt16 nNewColorCount, - BmpReduce eReduce = BMP_REDUCE_SIMPLE ); - - /** Apply a dither algorithm to the bitmap - - This method dithers the bitmap inplace, i.e. a true color - bitmap is converted to a paletted bitmap, reducing the color - deviation by error diffusion. - - @param nDitherFlags - The algorithm to be used for dithering - - @param pDitherPal - A custom palette to be used when dithering (not yet implemented, leave NULL) - */ - sal_Bool Dither( sal_uLong nDitherFlags = BMP_DITHER_MATRIX ); - - /** Crop the bitmap - - @param rRectPixel - A rectangle specifying the crop amounts on all four sides of - the bitmap. If the upper left corner of the bitmap is assigned - (0,0), then this method cuts out the given rectangle from the - bitmap. Note that the rectangle is clipped to the bitmap's - dimension, i.e. negative left,top rectangle coordinates or - exceeding width or height is ignored. - - @return sal_True, if cropping was performed successfully. If - nothing had to be cropped, because e.g. the crop rectangle - included the bitmap, sal_False is returned, too! - */ - sal_Bool Crop( const Rectangle& rRectPixel ); - - /** Expand the bitmap by pixel padding - - @param nDX - Number of pixel to pad at the right border of the bitmap - - @param nDY - Number of scanlines to pad at the bottom border of the bitmap - - @param pInitColor - Color to use for padded pixel - - @return sal_True, if padding was performed successfully. sal_False is - not only returned when the operation failed, but also if - nothing had to be done, e.g. because nDX and nDY were zero. - */ - sal_Bool Expand( sal_uLong nDX, sal_uLong nDY, - const Color* pInitColor = NULL ); - - /** Copy a rectangular area from another bitmap - - @param rRectDst - Destination rectangle in this bitmap. This is clipped to the - bitmap dimensions. - - @param rRectSrc - Source rectangle in pBmpSrc. This is clipped to the source - bitmap dimensions. Note further that no scaling takes place - during this copy operation, i.e. only the minimum of source - and destination rectangle's width and height are used. - - @param pBmpSrc - The source bitmap to copy from. If this argument is NULL, or - equal to the object this method is called on, copying takes - place within the same bitmap. - - @return sal_True, if the operation completed successfully. sal_False - is not only returned when the operation failed, but also if - nothing had to be done, e.g. because one of the rectangles are - empty. - */ - sal_Bool CopyPixel( const Rectangle& rRectDst, - const Rectangle& rRectSrc, - const Bitmap* pBmpSrc = NULL ); - - /** Perform boolean operations with another bitmap - - @param rMask - The mask bitmap in the selected combine operation - - @param eCombine - The combine operation to perform on the bitmap - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool CombineSimple( const Bitmap& rMask, - BmpCombine eCombine ); - - /** Alpha-blend the given bitmap against a specified uniform - background color. - - @attention This method might convert paletted bitmaps to - truecolor, to be able to represent every necessary color. Note - that during alpha blending, lots of colors not originally - included in the bitmap can be generated. - - @param rAlpha - Alpha mask to blend with - - @param rBackgroundColor - Background color to use for every pixel during alpha blending - - @return sal_True, if blending was successful, sal_False otherwise - */ - sal_Bool Blend( const AlphaMask& rAlpha, - const Color& rBackgroundColor ); - - /** Fill the entire bitmap with the given color - - @param rFillColor - Color value to use for filling - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Erase( const Color& rFillColor ); - - /** Perform the Invert operation on every pixel - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Invert(); - - /** Mirror the bitmap - - @param nMirrorFlags - About which axis (horizontal, vertical, or both) to mirror - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Mirror( sal_uLong nMirrorFlags ); - - /** Scale the bitmap - - @param rNewSize - The resulting size of the scaled bitmap - - @param nScaleFlag - The algorithm to be used for scaling - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Scale( const Size& rNewSize, sal_uLong nScaleFlag = BMP_SCALE_DEFAULT ); - - /** Scale the bitmap - - @param rScaleX - The scale factor in x direction. - - @param rScaleY - The scale factor in y direction. - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Scale( const double& rScaleX, const double& rScaleY, sal_uLong nScaleFlag = BMP_SCALE_DEFAULT ); - - /** Rotate bitmap by the specified angle - - @param nAngle10 - The rotation angle in tenth of a degree. The bitmap is always rotated around its center. - - @param rFillColor - The color to use for filling blank areas. During rotation, the - bitmap is enlarged such that the whole rotation result fits - in. The empty spaces around that rotated original bitmap are - then filled with this color. - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Rotate( long nAngle10, const Color& rFillColor ); - - /** Create on-off mask from bitmap - - This method creates a bitmask from the bitmap, where every - pixel that equals rTransColor is set transparent, the rest - opaque. - - @param rTransColor - Color value where the bitmask should be transparent - - @param nTol - Tolerance value. Specifies the maximal difference between - rTransColor and the individual pixel values, such that the - corresponding pixel is still regarded transparent. - - @return the resulting bitmask. - */ - Bitmap CreateMask( const Color& rTransColor, sal_uLong nTol = 0UL ) const; - - /** Create region of similar colors in a given rectangle - - @param rColor - All pixel which have this color are included in the calculated region - - @param rRect - The rectangle within which matching pixel are looked for. This - rectangle is always clipped to the bitmap dimensions. - - @return the generated region. - */ - Region CreateRegion( const Color& rColor, const Rectangle& rRect ) const; - - /** Replace all pixel where the given mask is on with the specified color - - @param rMask - Mask specifying which pixel should be replaced - - @param rReplaceColor - Color to be placed in all changed pixel - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Replace( const Bitmap& rMask, const Color& rReplaceColor ); - - /** Merge bitmap with given background color according to specified alpha mask - - @param rAlpha - Alpha mask specifying the amount of background color to merge in - - @param rMergeColor - Background color to be used for merging - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Replace( const AlphaMask& rAlpha, const Color& rMergeColor ); - - /** Replace all pixel having the search color with the specified color - - @param rSearchColor - Color specifying which pixel should be replaced - - @param rReplaceColor - Color to be placed in all changed pixel - - @param nTol - Tolerance value. Specifies the maximal difference between - rSearchColor and the individual pixel values, such that the - corresponding pixel is still regarded a match. - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Replace( const Color& rSearchColor, const Color& rReplaceColor, sal_uLong nTol = 0 ); - - /** Replace all pixel having one the search colors with the corresponding replace color - - @param pSearchColor - Array of colors specifying which pixel should be replaced - - @param pReplaceColor - Array of colors to be placed in all changed pixel - - @param nColorCount - Size of the aforementioned color arrays - - @param nTol - Tolerance value. Specifies the maximal difference between - pSearchColor colors and the individual pixel values, such that - the corresponding pixel is still regarded a match. - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Replace( const Color* pSearchColors, const Color* rReplaceColors, - sal_uLong nColorCount, sal_uLong* pTols = NULL ); - - /** Convert the bitmap to a PolyPolygon - - This works by putting continuous areas of the same color into - a polygon, by tracing its bounding line. - - @param rPolyPoly - The resulting PolyPolygon - - @param nFlags - Whether the inline or the outline of the color areas should be - represented by the polygon - - @param pProgress - A callback for showing the progress of the vectorization - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Vectorize( PolyPolygon& rPolyPoly, - sal_uLong nFlags = BMP_VECTORIZE_OUTER, - const Link* pProgress = NULL ); - - /** Convert the bitmap to a meta file - - This works by putting continuous areas of the same color into - polygons painted in this color, by tracing the area's bounding - line. - - @param rMtf - The resulting meta file - - @param cReduce - If non-null, minimal size of bound rects for individual polygons. Smaller ones are ignored. - - @param nFlags - Whether the inline or the outline of the color areas should be - represented by the polygon - - @param pProgress - A callback for showing the progress of the vectorization - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Vectorize( GDIMetaFile& rMtf, sal_uInt8 cReduce = 0, - sal_uLong nFlags = BMP_VECTORIZE_INNER, - const Link* pProgress = NULL ); - - /** Change various global color characteristics - - @param nLuminancePercent - Percent of luminance change, valid range [-100,100]. Values outside this range are clipped to the valid range. - - @param nContrastPercent - Percent of contrast change, valid range [-100,100]. Values outside this range are clipped to the valid range. - - @param nChannelRPercent - Percent of red channel change, valid range [-100,100]. Values outside this range are clipped to the valid range. - - @param nChannelGPercent - Percent of green channel change, valid range [-100,100]. Values outside this range are clipped to the valid range. - - @param nChannelBPercent - Percent of blue channel change, valid range [-100,100]. Values outside this range are clipped to the valid range. - - @param fGamma - Exponent of the gamma function applied to the bitmap. The - value 1.0 results in no change, the valid range is - (0.0,10.0]. Values outside this range are regarded as 1.0. - - @param bInvert - If sal_True, invert the channel values with the logical 'not' operator - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Adjust( short nLuminancePercent = 0, - short nContrastPercent = 0, - short nChannelRPercent = 0, - short nChannelGPercent = 0, - short nChannelBPercent = 0, - double fGamma = 1.0, - sal_Bool bInvert = sal_False ); - - /** Apply specified filter to the bitmap - - @param eFilter - The filter algorithm to apply - - @param pFilterParam - Various parameter for the different bitmap filter algorithms - - @param pProgress - A callback for showing the progress of the vectorization - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Filter( BmpFilter eFilter, - const BmpFilterParam* pFilterParam = NULL, - const Link* pProgress = NULL ); - - bool HasAlpha(); - -public: - BitmapReadAccess* AcquireReadAccess(); - BitmapWriteAccess* AcquireWriteAccess(); - void ReleaseAccess( BitmapReadAccess* pAccess ); - - typedef vcl::ScopedBitmapAccess< BitmapReadAccess, Bitmap, &Bitmap::AcquireReadAccess > - ScopedReadAccess; - typedef vcl::ScopedBitmapAccess< BitmapWriteAccess, Bitmap, &Bitmap::AcquireWriteAccess > - ScopedWriteAccess; - -public: - - sal_Bool Read( SvStream& rIStm, sal_Bool bFileHeader = sal_True, sal_Bool bMSOFormat = sal_False ); - sal_Bool Write( SvStream& rOStm, sal_Bool bCompressed = sal_True, sal_Bool bFileHeader = sal_True ) const; - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, Bitmap& rBitmap ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const Bitmap& rBitmap ); -}; - -inline sal_Bool Bitmap::operator!() const -{ - return( mpImpBmp == NULL ); -} - -inline sal_Bool Bitmap::operator==( const Bitmap& rBitmap ) const -{ - return( rBitmap.mpImpBmp == mpImpBmp ); -} - -inline sal_Bool Bitmap::operator!=( const Bitmap& rBitmap ) const -{ - return( rBitmap.mpImpBmp != mpImpBmp ); -} - -inline sal_Bool Bitmap::IsSameInstance( const Bitmap& rBitmap ) const -{ - return( rBitmap.mpImpBmp == mpImpBmp ); -} - -inline sal_Bool Bitmap::IsEmpty() const -{ - return( mpImpBmp == NULL ); -} - -inline const MapMode& Bitmap::GetPrefMapMode() const -{ - return maPrefMapMode; -} - -inline void Bitmap::SetPrefMapMode( const MapMode& rMapMode ) -{ - maPrefMapMode = rMapMode; -} - -inline const Size& Bitmap::GetPrefSize() const -{ - return maPrefSize; -} - -inline void Bitmap::SetPrefSize( const Size& rSize ) -{ - maPrefSize = rSize; -} - -inline sal_uLong Bitmap::GetColorCount() const -{ - return( 1UL << (sal_uLong) GetBitCount() ); -} - -inline sal_uLong Bitmap::GetSizeBytes() const -{ - const Size aSizePix( GetSizePixel() ); - return( ( (sal_uLong) aSizePix.Width() * aSizePix.Height() * GetBitCount() ) >> 3UL ); -} - -#endif // _SV_BITMAP_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/bitmapex.hxx b/vcl/inc/vcl/bitmapex.hxx deleted file mode 100644 index 9eaaf618200c..000000000000 --- a/vcl/inc/vcl/bitmapex.hxx +++ /dev/null @@ -1,389 +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 . - */ - -#ifndef _SV_BITMAPEX_HXX -#define _SV_BITMAPEX_HXX - -#include <vcl/dllapi.h> -#include <vcl/bitmap.hxx> -#include <vcl/alpha.hxx> -#include <tools/color.hxx> - -// ------------------- -// - TransparentType - -// ------------------- - -enum TransparentType -{ - TRANSPARENT_NONE, - TRANSPARENT_COLOR, - TRANSPARENT_BITMAP -}; - -// ------------ -// - BitmapEx - -// ------------ - -class VCL_DLLPUBLIC BitmapEx -{ - friend class ImpGraphic; - -private: - - Bitmap aBitmap; - Bitmap aMask; - Size aBitmapSize; - Color aTransparentColor; - TransparentType eTransparent; - sal_Bool bAlpha; - -public: - - - SAL_DLLPRIVATE ImpBitmap* ImplGetBitmapImpBitmap() const { return aBitmap.ImplGetImpBitmap(); } - SAL_DLLPRIVATE ImpBitmap* ImplGetMaskImpBitmap() const { return aMask.ImplGetImpBitmap(); } - -public: - - BitmapEx(); - BitmapEx( const ResId& rResId ); - BitmapEx( const BitmapEx& rBitmapEx ); - BitmapEx( const BitmapEx& rBitmapEx, Point aSrc, Size aSize ); - BitmapEx( const Bitmap& rBmp ); - BitmapEx( const Bitmap& rBmp, const Bitmap& rMask ); - BitmapEx( const Bitmap& rBmp, const AlphaMask& rAlphaMask ); - BitmapEx( const Bitmap& rBmp, const Color& rTransparentColor ); - ~BitmapEx(); - - BitmapEx& operator=( const BitmapEx& rBitmapEx ); - sal_Bool operator==( const BitmapEx& rBitmapEx ) const; - sal_Bool operator!=( const BitmapEx& rBitmapEx ) const { return !(*this==rBitmapEx); } - sal_Bool operator!() const { return !aBitmap; } - - sal_Bool IsEqual( const BitmapEx& rBmpEx ) const; - - sal_Bool IsEmpty() const; - void SetEmpty(); - void Clear(); - - void Draw( OutputDevice* pOutDev, - const Point& rDestPt ) const; - void Draw( OutputDevice* pOutDev, - const Point& rDestPt, const Size& rDestSize ) const; - - sal_Bool IsTransparent() const; - TransparentType GetTransparentType() const { return eTransparent; } - - Bitmap GetBitmap( const Color* pTransReplaceColor = NULL ) const; - Bitmap GetMask() const; - - BitmapEx GetColorTransformedBitmapEx() const; - - sal_Bool IsAlpha() const; - AlphaMask GetAlpha() const; - - const Size& GetSizePixel() const { return aBitmapSize; } - void SetSizePixel( const Size& rNewSize ); - - const Size& GetPrefSize() const { return aBitmap.GetPrefSize(); } - void SetPrefSize( const Size& rPrefSize ) { aBitmap.SetPrefSize( rPrefSize ); } - - const MapMode& GetPrefMapMode() const { return aBitmap.GetPrefMapMode(); } - void SetPrefMapMode( const MapMode& rPrefMapMode ) { aBitmap.SetPrefMapMode( rPrefMapMode ); } - - const Color& GetTransparentColor() const { return aTransparentColor; } - void SetTransparentColor( const Color& rColor ) { aTransparentColor = rColor; } - - sal_uInt16 GetBitCount() const { return aBitmap.GetBitCount(); } - sal_uLong GetSizeBytes() const; - sal_uLong GetChecksum() const; - -public: - - /** Convert bitmap format - - @param eConversion - The format this bitmap should be converted to. - - @return sal_True, if the conversion was completed successfully. - */ - sal_Bool Convert( BmpConversion eConversion ); - - /** Reduce number of colors for the bitmap - - @param nNewColorCount - Maximal number of bitmap colors after the reduce operation - - @param eReduce - Algorithm to use for color reduction - - @return sal_True, if the color reduction operation was completed successfully. - */ - sal_Bool ReduceColors( sal_uInt16 nNewColorCount, - BmpReduce eReduce = BMP_REDUCE_SIMPLE ); - - /** Apply a dither algorithm to the bitmap - - This method dithers the bitmap inplace, i.e. a true color - bitmap is converted to a paletted bitmap, reducing the color - deviation by error diffusion. - - @param nDitherFlags - The algorithm to be used for dithering - */ - sal_Bool Dither( sal_uLong nDitherFlags = BMP_DITHER_MATRIX ); - - /** Crop the bitmap - - @param rRectPixel - A rectangle specifying the crop amounts on all four sides of - the bitmap. If the upper left corner of the bitmap is assigned - (0,0), then this method cuts out the given rectangle from the - bitmap. Note that the rectangle is clipped to the bitmap's - dimension, i.e. negative left,top rectangle coordinates or - exceeding width or height is ignored. - - @return sal_True, if cropping was performed successfully. If - nothing had to be cropped, because e.g. the crop rectangle - included the bitmap, sal_False is returned, too! - */ - sal_Bool Crop( const Rectangle& rRectPixel ); - - /** Expand the bitmap by pixel padding - - @param nDX - Number of pixel to pad at the right border of the bitmap - - @param nDY - Number of scanlines to pad at the bottom border of the bitmap - - @param pInitColor - Color to use for padded pixel - - @return sal_True, if padding was performed successfully. sal_False is - not only returned when the operation failed, but also if - nothing had to be done, e.g. because nDX and nDY were zero. - */ - sal_Bool Expand( sal_uLong nDX, sal_uLong nDY, - const Color* pInitColor = NULL, - sal_Bool bExpandTransparent = sal_False ); - - /** Copy a rectangular area from another bitmap - - @param rRectDst - Destination rectangle in this bitmap. This is clipped to the - bitmap dimensions. - - @param rRectSrc - Source rectangle in pBmpSrc. This is clipped to the source - bitmap dimensions. Note further that no scaling takes place - during this copy operation, i.e. only the minimum of source - and destination rectangle's width and height are used. - - @param pBmpSrc - The source bitmap to copy from. If this argument is NULL, or - equal to the object this method is called on, copying takes - place within the same bitmap. - - @return sal_True, if the operation completed successfully. sal_False - is not only returned when the operation failed, but also if - nothing had to be done, e.g. because one of the rectangles are - empty. - */ - sal_Bool CopyPixel( const Rectangle& rRectDst, - const Rectangle& rRectSrc, - const BitmapEx* pBmpExSrc = NULL ); - - /** Fill the entire bitmap with the given color - - @param rFillColor - Color value to use for filling. Set the transparency part of - the color to fill the mask. - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Erase( const Color& rFillColor ); - - /** Perform the Invert operation on every pixel - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Invert(); - - /** Mirror the bitmap - - @param nMirrorFlags - About which axis (horizontal, vertical, or both) to mirror - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Mirror( sal_uLong nMirrorFlags ); - - /** Scale the bitmap - - @param rNewSize - The resulting size of the scaled bitmap - - @param nScaleFlag - The algorithm to be used for scaling - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Scale( const Size& rNewSize, sal_uLong nScaleFlag = BMP_SCALE_DEFAULT ); - - /** Scale the bitmap - - @param rScaleX - The scale factor in x direction. - - @param rScaleY - The scale factor in y direction. - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Scale( const double& rScaleX, const double& rScaleY, sal_uLong nScaleFlag = BMP_SCALE_DEFAULT ); - - /** Rotate bitmap by the specified angle - - @param nAngle10 - The rotation angle in tenth of a degree. The bitmap is always rotated around its center. - - @param rFillColor - The color to use for filling blank areas. During rotation, the - bitmap is enlarged such that the whole rotation result fits - in. The empty spaces around that rotated original bitmap are - then filled with this color. - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Rotate( long nAngle10, const Color& rFillColor ); - - /** Replace all pixel having the search color with the specified color - - @param rSearchColor - Color specifying which pixel should be replaced - - @param rReplaceColor - Color to be placed in all changed pixel - - @param nTol - Tolerance value. Specifies the maximal difference between - rSearchColor and the individual pixel values, such that the - corresponding pixel is still regarded a match. - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Replace( const Color& rSearchColor, const Color& rReplaceColor, sal_uLong nTol = 0 ); - - /** Replace all pixel having one the search colors with the corresponding replace color - - @param pSearchColor - Array of colors specifying which pixel should be replaced - - @param pReplaceColor - Array of colors to be placed in all changed pixel - - @param nColorCount - Size of the aforementioned color arrays - - @param nTol - Tolerance value. Specifies the maximal difference between - pSearchColor colors and the individual pixel values, such that - the corresponding pixel is still regarded a match. - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Replace( const Color* pSearchColors, const Color* pReplaceColors, - sal_uLong nColorCount, const sal_uLong* pTols = NULL ); - - /** Change various global color characteristics - - @param nLuminancePercent - Percent of luminance change, valid range [-100,100]. Values outside this range are clipped to the valid range. - - @param nContrastPercent - Percent of contrast change, valid range [-100,100]. Values outside this range are clipped to the valid range. - - @param nChannelRPercent - Percent of red channel change, valid range [-100,100]. Values outside this range are clipped to the valid range. - - @param nChannelGPercent - Percent of green channel change, valid range [-100,100]. Values outside this range are clipped to the valid range. - - @param nChannelBPercent - Percent of blue channel change, valid range [-100,100]. Values outside this range are clipped to the valid range. - - @param fGamma - Exponent of the gamma function applied to the bitmap. The - value 1.0 results in no change, the valid range is - (0.0,10.0]. Values outside this range are regarded as 1.0. - - @param bInvert - If sal_True, invert the channel values with the logical 'not' operator - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Adjust( short nLuminancePercent = 0, - short nContrastPercent = 0, - short nChannelRPercent = 0, - short nChannelGPercent = 0, - short nChannelBPercent = 0, - double fGamma = 1.0, - sal_Bool bInvert = sal_False ); - - /** Apply specified filter to the bitmap - - @param eFilter - The filter algorithm to apply - - @param pFilterParam - Various parameter for the different bitmap filter algorithms - - @param pProgress - A callback for showing the progress of the vectorization - - @return sal_True, if the operation was completed successfully. - */ - sal_Bool Filter( BmpFilter eFilter, - const BmpFilterParam* pFilterParam = NULL, - const Link* pProgress = NULL ); - - /** Get transparency at given position - - @param nX - integer X-Position in Bitmap - - @param nY - integer Y-Position in Bitmap - - @return transparency value in the range of [0 .. 255] where - 0 is not transparent, 255 is fully transparent - */ - sal_uInt8 GetTransparency(sal_Int32 nX, sal_Int32 nY) const; - -public: - - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const BitmapEx& rBitmapEx ); - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, BitmapEx& rBitmapEx ); - static BitmapEx AutoScaleBitmap(BitmapEx & aBitmap, const long aStandardSize); -}; - -#endif // _SV_BITMAPEX_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/bmpacc.hxx b/vcl/inc/vcl/bmpacc.hxx deleted file mode 100644 index 097fd7cf57e3..000000000000 --- a/vcl/inc/vcl/bmpacc.hxx +++ /dev/null @@ -1,454 +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 . - */ - -#ifndef _SV_BMPACC_HXX -#define _SV_BMPACC_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/salbtype.hxx> -#include <vcl/bitmap.hxx> - -// -------------------- -// - Access defines - -// -------------------- - -#define DECL_FORMAT_GETPIXEL( Format ) \ -static BitmapColor GetPixelFor##Format( ConstScanline pScanline, long nX, const ColorMask& rMask ); - -#define DECL_FORMAT_SETPIXEL( Format ) \ -static void SetPixelFor##Format( Scanline pScanline, long nX, const BitmapColor& rBitmapColor, const ColorMask& rMask ); - -#define DECL_FORMAT( Format ) \ -DECL_FORMAT_GETPIXEL( Format ) \ -DECL_FORMAT_SETPIXEL( Format ) - -#define IMPL_FORMAT_GETPIXEL( Format ) \ -BitmapColor BitmapReadAccess::GetPixelFor##Format( ConstScanline pScanline, long nX, const ColorMask& rMask ) - -#define IMPL_FORMAT_GETPIXEL_NOMASK( Format ) \ -BitmapColor BitmapReadAccess::GetPixelFor##Format( ConstScanline pScanline, long nX, const ColorMask& ) - -#define IMPL_FORMAT_SETPIXEL( Format ) \ -void BitmapReadAccess::SetPixelFor##Format( Scanline pScanline, long nX, const BitmapColor& rBitmapColor, const ColorMask& rMask ) - -#define IMPL_FORMAT_SETPIXEL_NOMASK( Format ) \ -void BitmapReadAccess::SetPixelFor##Format( Scanline pScanline, long nX, const BitmapColor& rBitmapColor, const ColorMask& ) - -#define CASE_FORMAT( Format ) \ -case( BMP_FORMAT##Format ): \ -{ \ - mFncGetPixel = GetPixelFor##Format;\ - mFncSetPixel = SetPixelFor##Format;\ -} \ -break; - - -// -------------------- -// - Access functions - -// -------------------- - -typedef BitmapColor (*FncGetPixel)( ConstScanline pScanline, long nX, const ColorMask& rMask ); -typedef void (*FncSetPixel)( Scanline pScanline, long nX, const BitmapColor& rBitmapColor, const ColorMask& rMask ); - -// -------------------- -// - BitmapReadAccess - -// -------------------- - -class VCL_DLLPUBLIC BitmapReadAccess -{ - friend class BitmapWriteAccess; - -private: - - BitmapReadAccess() {} - BitmapReadAccess( const BitmapReadAccess& ) {} - BitmapReadAccess& operator=( const BitmapReadAccess& ) { return *this; } - -protected: - Bitmap maBitmap; - BitmapBuffer* mpBuffer; - Scanline* mpScanBuf; - ColorMask maColorMask; - FncGetPixel mFncGetPixel; - FncSetPixel mFncSetPixel; - sal_Bool mbModify; - - -SAL_DLLPRIVATE void ImplCreate( Bitmap& rBitmap ); -SAL_DLLPRIVATE void ImplDestroy(); -SAL_DLLPRIVATE sal_Bool ImplSetAccessPointers( sal_uLong nFormat ); - -public: - -SAL_DLLPRIVATE void ImplZeroInitUnusedBits(); -SAL_DLLPRIVATE BitmapBuffer* ImplGetBitmapBuffer() const { return mpBuffer; } - - DECL_FORMAT( _1BIT_MSB_PAL ) - DECL_FORMAT( _1BIT_LSB_PAL ) - DECL_FORMAT( _4BIT_MSN_PAL ) - DECL_FORMAT( _4BIT_LSN_PAL ) - DECL_FORMAT( _8BIT_PAL ) - DECL_FORMAT( _8BIT_TC_MASK ) - DECL_FORMAT( _16BIT_TC_MSB_MASK ) - DECL_FORMAT( _16BIT_TC_LSB_MASK ) - DECL_FORMAT( _24BIT_TC_BGR ) - DECL_FORMAT( _24BIT_TC_RGB ) - DECL_FORMAT( _24BIT_TC_MASK ) - DECL_FORMAT( _32BIT_TC_ABGR ) - DECL_FORMAT( _32BIT_TC_ARGB ) - DECL_FORMAT( _32BIT_TC_BGRA ) - DECL_FORMAT( _32BIT_TC_RGBA ) - DECL_FORMAT( _32BIT_TC_MASK ) -protected: - BitmapReadAccess( Bitmap& rBitmap, sal_Bool bModify ); - -public: - BitmapReadAccess( Bitmap& rBitmap ); - virtual ~BitmapReadAccess(); - - inline sal_Bool operator!() const; - - inline long Width() const; - inline long Height() const; - inline Point TopLeft() const; - inline Point BottomRight() const; - - inline sal_Bool IsTopDown() const; - inline sal_Bool IsBottomUp() const; - - inline sal_uLong GetScanlineFormat() const; - inline sal_uLong GetScanlineSize() const; - - inline sal_uInt16 GetBitCount() const; - inline BitmapColor GetBestMatchingColor( const BitmapColor& rBitmapColor ); - - inline Scanline GetBuffer() const; - inline Scanline GetScanline( long nY ) const; - - inline sal_Bool HasPalette() const; - inline const BitmapPalette& GetPalette() const; - inline sal_uInt16 GetPaletteEntryCount() const; - inline const BitmapColor& GetPaletteColor( sal_uInt16 nColor ) const; - inline const BitmapColor& GetBestPaletteColor( const BitmapColor& rBitmapColor ) const; - sal_uInt16 GetBestPaletteIndex( const BitmapColor& rBitmapColor ) const; - - inline sal_Bool HasColorMask() const; - inline ColorMask& GetColorMask() const; - - inline BitmapColor GetPixelFromData( const sal_uInt8* pData, long nX ) const; - inline void SetPixelOnData( sal_uInt8* pData, long nX, const BitmapColor& rBitmapColor ); - inline BitmapColor GetPixel( long nY, long nX ) const; - inline BitmapColor GetColor( long nY, long nX ) const; - inline sal_uInt8 GetLuminance( long nY, long nX ) const; -}; - -// --------------------- -// - BitmapWriteAccess - -// --------------------- - -class VCL_DLLPUBLIC BitmapWriteAccess : public BitmapReadAccess -{ -public: - - BitmapWriteAccess( Bitmap& rBitmap ); - virtual ~BitmapWriteAccess(); - - void CopyScanline( long nY, const BitmapReadAccess& rReadAcc ); - void CopyScanline( long nY, ConstScanline aSrcScanline, - sal_uLong nSrcScanlineFormat, sal_uLong nSrcScanlineSize ); - - void CopyBuffer( const BitmapReadAccess& rReadAcc ); - - inline void SetPalette( const BitmapPalette& rPalette ); - inline void SetPaletteEntryCount( sal_uInt16 nCount ); - inline void SetPaletteColor( sal_uInt16 nColor, const BitmapColor& rBitmapColor ); - - inline void SetPixel( long nY, long nX, const BitmapColor& rBitmapColor ); - - void SetLineColor( const Color& rColor ); - - void SetFillColor( const Color& rColor ); - - void Erase( const Color& rColor ); - - void DrawLine( const Point& rStart, const Point& rEnd ); - - void FillRect( const Rectangle& rRect ); - void DrawRect( const Rectangle& rRect ); - -private: - - BitmapColor* mpLineColor; - BitmapColor* mpFillColor; - - BitmapWriteAccess() {} - BitmapWriteAccess( const BitmapWriteAccess& ) : BitmapReadAccess() {} - BitmapWriteAccess& operator=( const BitmapWriteAccess& ) { return *this; } -}; - -// ----------- -// - Inlines - -// ----------- - -inline sal_Bool BitmapReadAccess::operator!() const -{ - return( mpBuffer == NULL ); -} - -// ------------------------------------------------------------------ - -inline long BitmapReadAccess::Width() const -{ - return( mpBuffer ? mpBuffer->mnWidth : 0L ); -} - -// ------------------------------------------------------------------ - -inline long BitmapReadAccess::Height() const -{ - return( mpBuffer ? mpBuffer->mnHeight : 0L ); -} - -// ------------------------------------------------------------------ - -inline Point BitmapReadAccess::TopLeft() const -{ - return Point(); -} - -// ------------------------------------------------------------------ - -inline Point BitmapReadAccess::BottomRight() const -{ - return Point( Width() - 1L, Height() - 1L ); -} - -// ------------------------------------------------------------------ - -inline sal_Bool BitmapReadAccess::IsTopDown() const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - return( mpBuffer ? sal::static_int_cast<sal_Bool>( BMP_SCANLINE_ADJUSTMENT( mpBuffer->mnFormat ) == BMP_FORMAT_TOP_DOWN ) : sal_False ); -} - -// ------------------------------------------------------------------ - -inline sal_Bool BitmapReadAccess::IsBottomUp() const -{ - return !IsTopDown(); -} - -// ------------------------------------------------------------------ - -inline sal_uLong BitmapReadAccess::GetScanlineFormat() const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - return( mpBuffer ? BMP_SCANLINE_FORMAT( mpBuffer->mnFormat ) : 0UL ); -} - -// ------------------------------------------------------------------ - -inline sal_uLong BitmapReadAccess::GetScanlineSize() const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - return( mpBuffer ? mpBuffer->mnScanlineSize : 0UL ); -} - -// ------------------------------------------------------------------ - -inline sal_uInt16 BitmapReadAccess::GetBitCount() const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - return( mpBuffer ? mpBuffer->mnBitCount : 0 ); -} - -// ------------------------------------------------------------------ - -inline BitmapColor BitmapReadAccess::GetBestMatchingColor( const BitmapColor& rBitmapColor ) -{ - if( HasPalette() ) - return BitmapColor( (sal_uInt8) GetBestPaletteIndex( rBitmapColor ) ); - else - return rBitmapColor; -} - -// ------------------------------------------------------------------ - -inline Scanline BitmapReadAccess::GetBuffer() const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - return( mpBuffer ? mpBuffer->mpBits : NULL ); -} - -// ------------------------------------------------------------------ - -inline Scanline BitmapReadAccess::GetScanline( long nY ) const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - DBG_ASSERT( nY < mpBuffer->mnHeight, "y-coordinate out of range!" ); - return( mpBuffer ? mpScanBuf[ nY ] : NULL ); -} - -// ------------------------------------------------------------------ - -inline sal_Bool BitmapReadAccess::HasPalette() const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - return( mpBuffer && !!mpBuffer->maPalette ); -} - -// ------------------------------------------------------------------ - -inline const BitmapPalette& BitmapReadAccess::GetPalette() const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - return mpBuffer->maPalette; -} - -// ------------------------------------------------------------------ - -inline sal_uInt16 BitmapReadAccess::GetPaletteEntryCount() const -{ - DBG_ASSERT( HasPalette(), "Bitmap has no palette!" ); - return( HasPalette() ? mpBuffer->maPalette.GetEntryCount() : 0 ); -} - -// ------------------------------------------------------------------ - -inline const BitmapColor& BitmapReadAccess::GetPaletteColor( sal_uInt16 nColor ) const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - DBG_ASSERT( HasPalette(), "Bitmap has no palette!" ); - return mpBuffer->maPalette[ nColor ]; -} - -// ------------------------------------------------------------------ - -inline const BitmapColor& BitmapReadAccess::GetBestPaletteColor( const BitmapColor& rBitmapColor ) const -{ - return GetPaletteColor( GetBestPaletteIndex( rBitmapColor ) ); -} - -// ------------------------------------------------------------------ - -inline sal_Bool BitmapReadAccess::HasColorMask() const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - const sal_uLong nFormat = BMP_SCANLINE_FORMAT( mpBuffer->mnFormat ); - - return( nFormat == BMP_FORMAT_8BIT_TC_MASK || - nFormat == BMP_FORMAT_16BIT_TC_MSB_MASK || - nFormat == BMP_FORMAT_16BIT_TC_LSB_MASK || - nFormat == BMP_FORMAT_24BIT_TC_MASK || - nFormat == BMP_FORMAT_32BIT_TC_MASK ); -} - -// ------------------------------------------------------------------ - -inline ColorMask& BitmapReadAccess::GetColorMask() const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - return mpBuffer->maColorMask; -} - -// ------------------------------------------------------------------ - -inline BitmapColor BitmapReadAccess::GetPixel( long nY, long nX ) const -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - DBG_ASSERT( nX < mpBuffer->mnWidth, "x-coordinate out of range!" ); - DBG_ASSERT( nY < mpBuffer->mnHeight, "y-coordinate out of range!" ); - return mFncGetPixel( mpScanBuf[ nY ], nX, maColorMask ); -} - -// ------------------------------------------------------------------ - -inline BitmapColor BitmapReadAccess::GetPixelFromData( const sal_uInt8* pData, long nX ) const -{ - DBG_ASSERT( pData, "Access is not valid!" ); - return mFncGetPixel( pData, nX, maColorMask ); -} - -// ------------------------------------------------------------------ - -inline void BitmapReadAccess::SetPixelOnData( sal_uInt8* pData, long nX, const BitmapColor& rBitmapColor ) -{ - DBG_ASSERT( pData, "Access is not valid!" ); - mFncSetPixel( pData, nX, rBitmapColor, maColorMask ); -} - -// ------------------------------------------------------------------ - -inline BitmapColor BitmapReadAccess::GetColor( long nY, long nX ) const -{ - if( !!mpBuffer->maPalette ) - { - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - return mpBuffer->maPalette[ GetPixel( nY, nX ).GetIndex() ]; - } - else - return GetPixel( nY, nX ); -} - -// ------------------------------------------------------------------ - -inline sal_uInt8 BitmapReadAccess::GetLuminance( long nY, long nX ) const -{ - return GetColor( nY, nX ).GetLuminance(); -} - -// ------------------------------------------------------------------ - -inline void BitmapWriteAccess::SetPalette( const BitmapPalette& rPalette ) -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - mpBuffer->maPalette = rPalette; -} - -// ------------------------------------------------------------------ - -inline void BitmapWriteAccess::SetPaletteEntryCount( sal_uInt16 nCount ) -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - mpBuffer->maPalette.SetEntryCount( nCount ); -} - -// ------------------------------------------------------------------ - -inline void BitmapWriteAccess::SetPaletteColor( sal_uInt16 nColor, const BitmapColor& rBitmapColor ) -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - DBG_ASSERT( HasPalette(), "Bitmap has no palette!" ); - mpBuffer->maPalette[ nColor ] = rBitmapColor; -} - -// ------------------------------------------------------------------ - -inline void BitmapWriteAccess::SetPixel( long nY, long nX, const BitmapColor& rBitmapColor ) -{ - DBG_ASSERT( mpBuffer, "Access is not valid!" ); - DBG_ASSERT( nX < mpBuffer->mnWidth, "x-coordinate out of range!" ); - DBG_ASSERT( nY < mpBuffer->mnHeight, "y-coordinate out of range!" ); - mFncSetPixel( mpScanBuf[ nY ], nX, rBitmapColor, maColorMask ); -} - -#endif // _SV_BMPACC_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/btndlg.hxx b/vcl/inc/vcl/btndlg.hxx deleted file mode 100644 index 541109885079..000000000000 --- a/vcl/inc/vcl/btndlg.hxx +++ /dev/null @@ -1,105 +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 . - */ - -#ifndef _SV_BTNDLG_HXX -#define _SV_BTNDLG_HXX - -#include <boost/ptr_container/ptr_vector.hpp> - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/dialog.hxx> - -struct ImplBtnDlgItem; -class PushButton; - -// ---------------------- -// - ButtonDialog-Types - -// ---------------------- - -#define BUTTONDIALOG_BUTTON_NOTFOUND ((sal_uInt16)0xFFFF) - -#define BUTTONDIALOG_DEFBUTTON ((sal_uInt16)0x0001) -#define BUTTONDIALOG_OKBUTTON ((sal_uInt16)0x0002) -#define BUTTONDIALOG_CANCELBUTTON ((sal_uInt16)0x0004) -#define BUTTONDIALOG_HELPBUTTON ((sal_uInt16)0x0008) -#define BUTTONDIALOG_FOCUSBUTTON ((sal_uInt16)0x0010) - -// ---------------- -// - ButtonDialog - -// ---------------- - -class VCL_DLLPUBLIC ButtonDialog : public Dialog -{ -private: - boost::ptr_vector<ImplBtnDlgItem> maItemList; - Size maPageSize; - Size maCtrlSize; - long mnButtonSize; - sal_uInt16 mnCurButtonId; - sal_uInt16 mnFocusButtonId; - sal_Bool mbFormat; - Link maClickHdl; - - SAL_DLLPRIVATE void ImplInitButtonDialogData(); - SAL_DLLPRIVATE PushButton* ImplCreatePushButton( sal_uInt16 nBtnFlags ); - SAL_DLLPRIVATE ImplBtnDlgItem* ImplGetItem( sal_uInt16 nId ) const; - DECL_DLLPRIVATE_LINK( ImplClickHdl, PushButton* pBtn ); - SAL_DLLPRIVATE void ImplPosControls(); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE ButtonDialog( const ButtonDialog & ); - SAL_DLLPRIVATE ButtonDialog& operator=( const ButtonDialog& ); -protected: - ButtonDialog( WindowType nType ); - SAL_DLLPRIVATE long ImplGetButtonSize(); - -public: - ButtonDialog( Window* pParent, WinBits nStyle = WB_STDDIALOG ); - ~ButtonDialog(); - - virtual void Resize(); - virtual void StateChanged( StateChangedType nStateChange ); - - virtual void Click(); - - void SetPageSizePixel( const Size& rSize ) { maPageSize = rSize; } - const Size& GetPageSizePixel() const { return maPageSize; } - - sal_uInt16 GetCurButtonId() const { return mnCurButtonId; } - - void AddButton( const XubString& rText, sal_uInt16 nId, sal_uInt16 nBtnFlags, long nSepPixel = 0 ); - void AddButton( StandardButtonType eType, sal_uInt16 nId, sal_uInt16 nBtnFlags, long nSepPixel = 0 ); - void RemoveButton( sal_uInt16 nId ); - void Clear(); - sal_uInt16 GetButtonId( sal_uInt16 nButton ) const; - PushButton* GetPushButton( sal_uInt16 nId ) const; - void SetButtonText( sal_uInt16 nId, const XubString& rText ); - void SetButtonHelpText( sal_uInt16 nId, const XubString& rText ); - - void SetFocusButton( sal_uInt16 nId = BUTTONDIALOG_BUTTON_NOTFOUND ) { mnFocusButtonId = nId; } - sal_uInt16 GetFocusButton() const { return mnFocusButtonId; } - - void SetClickHdl( const Link& rLink ) { maClickHdl = rLink; } - const Link& GetClickHdl() const { return maClickHdl; } -}; - -#endif // _SV_BTNDLG_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/builder.hxx b/vcl/inc/vcl/builder.hxx deleted file mode 100644 index 5de792aaab5e..000000000000 --- a/vcl/inc/vcl/builder.hxx +++ /dev/null @@ -1,365 +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/. - */ - -#ifndef _VCLBUILDER_HXX -#define _VCLBUILDER_HXX - -#include <typeinfo> -#include <tools/resmgr.hxx> //for poxy ResHookProc typedef -#include <vcl/dllapi.h> -#include <vcl/window.hxx> -#include <xmlreader/xmlreader.hxx> -#include <map> -#include <set> -#include <stack> -#include <vector> - -class ListBox; -class NumericFormatter; -class PopupMenu; -class ScrollBar; -class DateField; -class TimeField; -class VclMultiLineEdit; - -class VCL_DLLPUBLIC VclBuilder -{ -public: - typedef std::map<OString, OString> stringmap; - typedef Window* (*customMakeWidget)(Window *pParent, stringmap &rVec); -private: - - struct PackingData - { - bool m_bVerticalOrient; - sal_Int32 m_nPosition; - PackingData(bool bVerticalOrient = false, sal_Int32 nPosition = -1) - : m_bVerticalOrient(bVerticalOrient) - , m_nPosition(nPosition) - { - } - }; - - struct WinAndId - { - OString m_sID; - Window *m_pWindow; - PackingData m_aPackingData; - WinAndId(const OString &rId, Window *pWindow, bool bVertical) - : m_sID(rId) - , m_pWindow(pWindow) - , m_aPackingData(bVertical) - { - } - }; - std::vector<WinAndId> m_aChildren; - - struct MenuAndId - { - OString m_sID; - PopupMenu *m_pMenu; - MenuAndId(const OString &rId, PopupMenu *pMenu) - : m_sID(rId) - , m_pMenu(pMenu) - { - } - }; - std::vector<MenuAndId> m_aMenus; - - struct StringPair - { - OString m_sID; - OString m_sValue; - StringPair(const OString &rId, const OString &rValue) - : m_sID(rId) - , m_sValue(rValue) - { - } - }; - - typedef StringPair RadioButtonGroupMap; - - struct ButtonImageWidgetMap - { - OString m_sID; - OString m_sValue; - bool m_bRadio; - ButtonImageWidgetMap(const OString &rId, const OString &rValue, bool bRadio) - : m_sID(rId) - , m_sValue(rValue) - , m_bRadio(bRadio) - { - } - }; - - typedef StringPair TextBufferMap; - typedef StringPair WidgetAdjustmentMap; - typedef StringPair ButtonMenuMap; - typedef StringPair MnemonicWidgetMap; - - struct ComboBoxModelMap - { - OString m_sID; - OString m_sValue; - sal_Int32 m_nActiveId; - ComboBoxModelMap(const OString &rId, const OString &rValue, sal_Int32 nActiveId) - : m_sID(rId) - , m_sValue(rValue) - , m_nActiveId(nActiveId) - { - } - }; - - struct ListStore - { - typedef std::vector<OString> row; - std::vector<row> m_aEntries; - }; - const ListStore* get_model_by_name(OString sID) const; - static void mungeModel(ListBox &rTarget, const ListStore &rStore, sal_uInt16 nActiveId); - - typedef stringmap TextBuffer; - const TextBuffer* get_buffer_by_name(OString sID) const; - static void mungeTextBuffer(VclMultiLineEdit &rTarget, const TextBuffer &rTextBuffer); - - typedef stringmap Adjustment; - const Adjustment *get_adjustment_by_name(OString sID) const; - static void mungeAdjustment(NumericFormatter &rTarget, const Adjustment &rAdjustment); - static void mungeAdjustment(DateField &rTarget, const Adjustment &rAdjustment); - static void mungeAdjustment(TimeField &rTarget, const Adjustment &rAdjustment); - static void mungeAdjustment(ScrollBar &rTarget, const Adjustment &rAdjustment); - - typedef std::map<OString, OString> WidgetTranslations; - typedef std::map<OString, WidgetTranslations> Translations; - - struct stockinfo - { - OString m_sStock; - int m_nSize; - stockinfo() : m_nSize(4) {} - }; - - typedef std::map<OString, stockinfo> StockMap; - - struct SizeGroup - { - OString m_sID; - std::vector<OString> m_aWidgets; - stringmap m_aProperties; - SizeGroup(const OString &rId) - : m_sID(rId) - { - } - }; - - typedef std::map<Window*, stringmap> AtkMap; - - struct ParserState - { - std::vector<RadioButtonGroupMap> m_aGroupMaps; - - std::vector<ComboBoxModelMap> m_aModelMaps; - std::map<OString, ListStore> m_aModels; - - std::vector<TextBufferMap> m_aTextBufferMaps; - std::map<OString, TextBuffer> m_aTextBuffers; - - std::vector<WidgetAdjustmentMap> m_aNumericFormatterAdjustmentMaps; - std::vector<WidgetAdjustmentMap> m_aTimeFormatterAdjustmentMaps; - std::vector<WidgetAdjustmentMap> m_aDateFormatterAdjustmentMaps; - std::vector<WidgetAdjustmentMap> m_aScrollAdjustmentMaps; - std::map<OString, Adjustment> m_aAdjustments; - - std::vector<ButtonImageWidgetMap> m_aButtonImageWidgetMaps; - StockMap m_aStockMap; - - std::vector<ButtonMenuMap> m_aButtonMenuMaps; - - Translations m_aTranslations; - - std::map<Window*, Window*> m_aRedundantParentWidgets; - - std::vector<SizeGroup> m_aSizeGroups; - - AtkMap m_aAtkInfo; - - std::vector<MnemonicWidgetMap> m_aMnemonicWidgetMaps; - }; - - void loadTranslations(const com::sun::star::lang::Locale &rLocale, const OUString &rUri); - OString getTranslation(const OString &rId, const OString &rProperty) const; - - OString m_sID; - OString m_sHelpRoot; - ResHookProc m_pStringReplace; - Window *m_pParent; - bool m_bToplevelHasDeferredInit; - bool m_bToplevelParentFound; - ParserState *m_pParserState; - - Window *get_by_name(OString sID); - void delete_by_name(OString sID); - - class sortIntoBestTabTraversalOrder - : public std::binary_function<const Window*, const Window*, bool> - { - VclBuilder *m_pBuilder; - public: - sortIntoBestTabTraversalOrder(VclBuilder *pBuilder) - : m_pBuilder(pBuilder) - { - } - bool operator()(const Window *pA, const Window *pB) const; - }; -public: - VclBuilder(Window *pParent, OUString sUIRootDir, OUString sUIFile, OString sID = OString()); - ~VclBuilder(); - Window *get_widget_root(); - //sID must exist and be of type T - template <typename T> T* get(T*& ret, OString sID) - { - Window *w = get_by_name(sID); - SAL_WARN_IF(!w, "vcl.layout", "widget \"" << sID.getStr() << "\" not found in .ui"); - SAL_WARN_IF(!dynamic_cast<T*>(w), - "vcl.layout", ".ui widget \"" << sID.getStr() << "\" needs to correspond to vcl type " << typeid(T).name()); - assert(w && dynamic_cast<T*>(w)); - ret = static_cast<T*>(w); - return ret; - } - PopupMenu* get_menu(PopupMenu*& ret, OString sID) - { - ret = get_menu(sID); - SAL_WARN_IF(!ret, "vcl.layout", "menu \"" << sID.getStr() << "\" not found in .ui"); - assert(ret); - return ret; - } - //sID may not exist, but must be of type T if it does - template <typename T /*=Window if we had c++11*/> T* get(OString sID) - { - Window *w = get_by_name(sID); - SAL_WARN_IF(w && !dynamic_cast<T*>(w), - "vcl.layout", ".ui widget \"" << sID.getStr() << "\" needs to correspond to vcl type " << typeid(T).name()); - assert(!w || dynamic_cast<T*>(w)); - return static_cast<T*>(w); - } - //sID may not exist - PopupMenu* get_menu(OString sID); - - OString get_by_window(const Window *pWindow) const; - void delete_by_window(const Window *pWindow); - - //Convert _ gtk markup to ~ vcl markup - static OString convertMnemonicMarkup(const OString &rIn); - - static OString extractCustomProperty(stringmap &rMap); - -private: - Window *insertObject(Window *pParent, const OString &rClass, const OString &rID, - stringmap &rProps, stringmap &rPangoAttributes, - stringmap &rAtkProps, std::vector<OString> &rItems); - - Window *makeObject(Window *pParent, const OString &rClass, const OString &rID, - stringmap &rVec, const std::vector<OString> &rItems); - - void connectNumericFormatterAdjustment(const OString &id, const OString &rAdjustment); - void connectTimeFormatterAdjustment(const OString &id, const OString &rAdjustment); - void connectDateFormatterAdjustment(const OString &id, const OString &rAdjustment); - - bool extractGroup(const OString &id, stringmap &rVec); - bool extractModel(const OString &id, stringmap &rVec); - bool extractBuffer(const OString &id, stringmap &rVec); - bool extractScrollAdjustment(const OString &id, stringmap &rVec); - bool extractButtonImage(const OString &id, stringmap &rMap, bool bRadio); - bool extractStock(const OString &id, stringmap &rMap); - void extractMnemonicWidget(const OString &id, stringmap &rMap); - - void handleTranslations(xmlreader::XmlReader &reader); - - void handleChild(Window *pParent, xmlreader::XmlReader &reader); - Window* handleObject(Window *pParent, xmlreader::XmlReader &reader); - void handlePacking(Window *pCurrent, xmlreader::XmlReader &reader); - void applyPackingProperty(Window *pCurrent, xmlreader::XmlReader &reader); - void collectProperty(xmlreader::XmlReader &reader, const OString &rID, stringmap &rVec); - void collectPangoAttribute(xmlreader::XmlReader &reader, stringmap &rMap); - void collectAtkAttribute(xmlreader::XmlReader &reader, stringmap &rMap); - void collectAccelerator(xmlreader::XmlReader &reader, stringmap &rMap); - - void insertMenuObject(PopupMenu *pParent, const OString &rClass, const OString &rID, - stringmap &rProps, stringmap &rAccels); - void handleMenuChild(PopupMenu *pParent, xmlreader::XmlReader &reader); - void handleMenuObject(PopupMenu *pParent, xmlreader::XmlReader &reader); - - void handleListStore(xmlreader::XmlReader &reader, const OString &rID); - void handleRow(xmlreader::XmlReader &reader, const OString &rID, sal_Int32 nRowIndex); - void handleAdjustment(const OString &rID, stringmap &rProperties); - void handleTextBuffer(const OString &rID, stringmap &rProperties); - void handleTabChild(Window *pParent, xmlreader::XmlReader &reader); - void handleMenu(xmlreader::XmlReader &reader, const OString &rID); - std::vector<OString> handleItems(xmlreader::XmlReader &reader, const OString &rID); - - void handleSizeGroup(xmlreader::XmlReader &reader, const OString &rID); - - void handleAtkObject(xmlreader::XmlReader &reader, const OString &rID, Window *pWindow); - - PackingData get_window_packing_data(const Window *pWindow) const; - void set_window_packing_position(const Window *pWindow, sal_Int32 nPosition); - - Window* prepareWidgetOwnScrolling(Window *pParent, WinBits &rWinStyle); - void cleanupWidgetOwnScrolling(Window *pScrollParent, Window *pWindow, stringmap &rMap); - - //Helpers to retrofit all the existing code to the builder - static void reorderWithinParent(Window &rWindow, sal_uInt16 nNewPosition); -}; - - -//helper baseclass to ease retro fitting dialogs/tabpages that load a resource -//to load a .ui file instead -// -//vcl requires the Window Children of a Parent Window to be destroyed before -//the Parent Window. VclBuilderContainer owns the VclBuilder which owns the -//Children Window. So the VclBuilderContainer dtor must be called before -//the Parent Window dtor. -// -//i.e. class Dialog : public SystemWindow, public VclBuilderContainer -//not class Dialog : public VclBuilderContainer, public SystemWindow - -class VCL_DLLPUBLIC VclBuilderContainer -{ -protected: - VclBuilder *m_pUIBuilder; -public: - VclBuilderContainer(); - virtual ~VclBuilderContainer(); - static OUString getUIRootDir(); - template <typename T> T* get(T*& ret, OString sID) - { - return m_pUIBuilder->get<T>(ret, sID); - } - template <typename T /*=Window if we had c++11*/> T* get(OString sID) - { - return m_pUIBuilder->get<T>(sID); - } - PopupMenu* get_menu(PopupMenu*& ret, OString sID) - { - return m_pUIBuilder->get_menu(ret, sID); - } - PopupMenu* get_menu(OString sID) - { - return m_pUIBuilder->get_menu(sID); - } -}; - -/* - * @return true if rValue is "True", "true", "1", etc. - */ -bool VCL_DLLPUBLIC toBool(const OString &rValue); - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/button.hxx b/vcl/inc/vcl/button.hxx deleted file mode 100644 index 8c116b0644dd..000000000000 --- a/vcl/inc/vcl/button.hxx +++ /dev/null @@ -1,574 +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 . - */ - -#ifndef _SV_BUTTON_HXX -#define _SV_BUTTON_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/image.hxx> -#include <vcl/ctrl.hxx> -#include <vcl/bitmap.hxx> -#include <vcl/salnativewidgets.hxx> -#include <rsc/rsc-vcl-shared-types.hxx> - -#include <vector> - -class UserDrawEvent; -class ImplCommonButtonData; - -// ---------- -// - Button - -// ---------- - -class VCL_DLLPUBLIC Button : public Control -{ -private: - ImplCommonButtonData *mpButtonData; - Link maClickHdl; - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE Button (const Button &); - SAL_DLLPRIVATE Button & operator= (const Button &); -public: - SAL_DLLPRIVATE sal_uInt16 ImplGetButtonState() const; - SAL_DLLPRIVATE sal_uInt16& ImplGetButtonState(); - SAL_DLLPRIVATE sal_uInt16 ImplGetTextStyle( OUString& rText, WinBits nWinStyle, sal_uLong nDrawFlags ); - SAL_DLLPRIVATE void ImplDrawAlignedImage( OutputDevice* pDev, Point& rPos, Size& rSize, - sal_Bool bLayout, sal_uLong nImageSep, sal_uLong nDrawFlags, - sal_uInt16 nTextStyle, Rectangle *pSymbolRect=NULL, bool bAddImageSep = false ); - SAL_DLLPRIVATE void ImplSetFocusRect( const Rectangle &rFocusRect ); - SAL_DLLPRIVATE const Rectangle& ImplGetFocusRect() const; - SAL_DLLPRIVATE void ImplSetSymbolAlign( SymbolAlign eAlign ); - /// The x-coordinate of the vertical separator line, use in MenuButton subclass only. - SAL_DLLPRIVATE long ImplGetSeparatorX() const; - SAL_DLLPRIVATE void ImplSetSeparatorX( long nX ); - -protected: - Button( WindowType nType ); - -public: - ~Button(); - - virtual void Click(); - - void SetClickHdl( const Link& rLink ) { maClickHdl = rLink; } - const Link& GetClickHdl() const { return maClickHdl; } - - static OUString GetStandardText( StandardButtonType eButton ); - static XubString GetStandardHelpText( StandardButtonType eButton ); - - sal_Bool SetModeImage( const Image& rImage ); - const Image GetModeImage( ) const; - sal_Bool HasImage() const; - void SetImageAlign( ImageAlign eAlign ); - ImageAlign GetImageAlign() const; - - void EnableImageDisplay( sal_Bool bEnable ); - void EnableTextDisplay( sal_Bool bEnable ); - - void SetFocusRect( const Rectangle& rFocusRect ); - bool IsSmallSymbol() const; - void SetSmallSymbol(bool bSmall = true); -}; - -// -------------------- -// - PushButton-Types - -// -------------------- - -#define PUSHBUTTON_DROPDOWN_TOOLBOX ((sal_uInt16)0x0001) -#define PUSHBUTTON_DROPDOWN_MENUBUTTON ((sal_uInt16)0x0002) - -// -------------- -// - PushButton - -// -------------- - -class VCL_DLLPUBLIC PushButton : public Button -{ -protected: - SymbolType meSymbol; - TriState meState; - TriState meSaveValue; - sal_uInt16 mnDDStyle; - sal_Bool mbPressed; - sal_Bool mbInUserDraw; - Link maToggleHdl; - - SAL_DLLPRIVATE void ImplInitPushButtonData(); - SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE void ImplDrawPushButtonContent( OutputDevice* pDev, sal_uLong nDrawFlags, - const Rectangle& rRect, bool bLayout, bool bMenuBtnSep ); - SAL_DLLPRIVATE void ImplDrawPushButton( bool bLayout = false ); - using Button::ImplGetTextStyle; - SAL_DLLPRIVATE sal_uInt16 ImplGetTextStyle( sal_uLong nDrawFlags ) const; - SAL_DLLPRIVATE sal_Bool IsSymbol() const { return ( (meSymbol != SYMBOL_NOSYMBOL) && (meSymbol != SYMBOL_IMAGE) ); } - SAL_DLLPRIVATE sal_Bool IsImage() const { return Button::HasImage(); } - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE PushButton( const PushButton & ); - SAL_DLLPRIVATE PushButton& operator=( const PushButton & ); - - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - - using Control::ImplInitSettings; - using Window::ImplInit; -public: - SAL_DLLPRIVATE void ImplSetDefButton( sal_Bool bSet ); - SAL_DLLPRIVATE static void ImplDrawPushButtonFrame( Window* pDev, Rectangle& rRect, sal_uInt16 nStyle ); - SAL_DLLPRIVATE static sal_Bool ImplHitTestPushButton( Window* pDev, const Point& rPos ); - SAL_DLLPRIVATE sal_Bool ImplIsDefButton() const; - -protected: - PushButton( WindowType nType ); - - virtual void FillLayoutData() const; - virtual const Font& - GetCanonicalFont( const StyleSettings& _rStyle ) const; - virtual const Color& - GetCanonicalTextColor( const StyleSettings& _rStyle ) const; -public: - PushButton( Window* pParent, WinBits nStyle = 0 ); - PushButton( Window* pParent, const ResId& rResId ); - ~PushButton(); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void Tracking( const TrackingEvent& rTEvt ); - virtual void KeyInput( const KeyEvent& rKEvt ); - virtual void KeyUp( const KeyEvent& rKEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual void GetFocus(); - virtual void LoseFocus(); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual void UserDraw( const UserDrawEvent& rUDEvt ); - - virtual void Toggle(); - - void SetSymbol( SymbolType eSymbol ); - SymbolType GetSymbol() const { return meSymbol; } - void SetSymbolAlign( SymbolAlign eAlign ); - - void SetDropDown( sal_uInt16 nStyle ); - sal_uInt16 GetDropDown() const { return mnDDStyle; } - - void SetState( TriState eState ); - TriState GetState() const { return meState; } - - void Check( sal_Bool bCheck = sal_True ); - sal_Bool IsChecked() const; - - void SetPressed( sal_Bool bPressed ); - sal_Bool IsPressed() const { return mbPressed; } - - void EndSelection(); - - void SaveValue() { meSaveValue = GetState(); } - TriState GetSavedValue() const { return meSaveValue; } - - Size CalcMinimumSize( long nMaxWidth = 0 ) const; - virtual Size GetOptimalSize() const; - - void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; } - const Link& GetToggleHdl() const { return maToggleHdl; } - virtual bool set_property(const OString &rKey, const OString &rValue); -}; - -inline void PushButton::Check( sal_Bool bCheck ) -{ - SetState( (bCheck) ? STATE_CHECK : STATE_NOCHECK ); -} - -inline sal_Bool PushButton::IsChecked() const -{ - return (GetState() == STATE_CHECK); -} - -// ------------ -// - OKButton - -// ------------ - -class VCL_DLLPUBLIC OKButton : public PushButton -{ -protected: - using PushButton::ImplInit; -private: - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE OKButton (const OKButton &); - SAL_DLLPRIVATE OKButton & operator= (const OKButton &); - -public: - OKButton( Window* pParent, WinBits nStyle = WB_DEFBUTTON ); - OKButton( Window* pParent, const ResId& rResId ); - - virtual void Click(); -}; - -// ---------------- -// - CancelButton - -// ---------------- - -class VCL_DLLPUBLIC CancelButton : public PushButton -{ -protected: - using PushButton::ImplInit; -private: - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE CancelButton (const CancelButton &); - SAL_DLLPRIVATE CancelButton & operator= (const CancelButton &); - -public: - CancelButton( Window* pParent, WinBits nStyle = 0 ); - CancelButton( Window* pParent, const ResId& rResId ); - - virtual void Click(); -}; - -class VCL_DLLPUBLIC CloseButton : public CancelButton -{ -public: - CloseButton(Window* pParent, WinBits nStyle = 0); -}; - - -// -------------- -// - HelpButton - -// -------------- - -class VCL_DLLPUBLIC HelpButton : public PushButton -{ -protected: - using PushButton::ImplInit; -private: - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE HelpButton( const HelpButton & ); - SAL_DLLPRIVATE HelpButton & operator= ( const HelpButton & ); - -public: - HelpButton( Window* pParent, WinBits nStyle = 0 ); - HelpButton( Window* pParent, const ResId& rResId ); - - virtual void Click(); -}; - -// --------------- -// - RadioButton - -// --------------- - -class VCL_DLLPUBLIC RadioButton : public Button -{ -private: - boost::shared_ptr< std::vector<RadioButton*> > m_xGroup; - Rectangle maStateRect; - Rectangle maMouseRect; - Image maImage; - sal_Bool mbChecked; - sal_Bool mbSaveValue; - sal_Bool mbRadioCheck; - sal_Bool mbStateChanged; - Link maToggleHdl; - // when mbLegacyNoTextAlign is set then the old behaviour where - // the WB_LEFT, WB_RIGHT & WB_CENTER affect the image placement - // occurs, otherwise the image ( radiobutton circle ) is placed - // to the left or right ( depending on RTL or LTR settings ) - bool mbLegacyNoTextAlign; - SAL_DLLPRIVATE void ImplInitRadioButtonData(); - SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE void ImplDrawRadioButtonState(); - SAL_DLLPRIVATE void ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags, - const Point& rPos, const Size& rSize, - const Size& rImageSize, Rectangle& rStateRect, - Rectangle& rMouseRect, bool bLayout = false ); - SAL_DLLPRIVATE void ImplDrawRadioButton( bool bLayout = false ); - SAL_DLLPRIVATE void ImplInvalidateOrDrawRadioButtonState(); - SAL_DLLPRIVATE void ImplUncheckAllOther(); - SAL_DLLPRIVATE Size ImplGetRadioImageSize() const; - SAL_DLLPRIVATE long ImplGetImageToTextDistance() const; - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE RadioButton(const RadioButton &); - SAL_DLLPRIVATE RadioButton& operator= (const RadioButton &); - -protected: - using Control::ImplInitSettings; - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - SAL_DLLPRIVATE void ImplCallClick( sal_Bool bGrabFocus = sal_False, sal_uInt16 nFocusFlags = 0 ); - SAL_DLLPRIVATE void ImplSetMinimumNWFSize(); - -protected: - virtual void FillLayoutData() const; - virtual const Font& - GetCanonicalFont( const StyleSettings& _rStyle ) const; - virtual const Color& - GetCanonicalTextColor( const StyleSettings& _rStyle ) const; - - inline void SetMouseRect( const Rectangle& _rMouseRect ) { maMouseRect = _rMouseRect; } - inline const Rectangle& GetMouseRect( ) const { return maMouseRect; } - inline void SetStateRect( const Rectangle& _rStateRect ) { maStateRect = _rStateRect; } - inline const Rectangle& GetStateRect( ) const { return maStateRect; } - - // draws the radio button (the knob image), in it's current state (pressed/checked) - // at the usual location, which can be overridden with SetStateRect - void DrawRadioButtonState( ); - -public: - RadioButton( Window* pParent, WinBits nWinStyle = 0 ); - RadioButton( Window* pParent, const ResId& rResId ); - ~RadioButton(); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void Tracking( const TrackingEvent& rTEvt ); - virtual void KeyInput( const KeyEvent& rKEvt ); - virtual void KeyUp( const KeyEvent& rKEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual void GetFocus(); - virtual void LoseFocus(); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual long PreNotify( NotifyEvent& rNEvt ); - - virtual void Toggle(); - - sal_Bool IsStateChanged() const { return mbStateChanged; } - - void EnableRadioCheck( sal_Bool bRadioCheck = sal_True ) { mbRadioCheck = bRadioCheck; } - sal_Bool IsRadioCheckEnabled() const { return mbRadioCheck; } - - sal_Bool SetModeRadioImage( const Image& rImage ); - const Image& GetModeRadioImage( ) const; - - void SetState( sal_Bool bCheck ); - void Check( sal_Bool bCheck = sal_True ); - sal_Bool IsChecked() const { return mbChecked; } - - void SaveValue() { mbSaveValue = IsChecked(); } - sal_Bool GetSavedValue() const { return mbSaveValue; } - - static Image GetRadioImage( const AllSettings& rSettings, sal_uInt16 nFlags ); - - Size CalcMinimumSize( long nMaxWidth = 0 ) const; - virtual Size GetOptimalSize() const; - - void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; } - const Link& GetToggleHdl() const { return maToggleHdl; } - - /** GetRadioButtonGroup returns a list of pointers to <code>RadioButton</code>s in the same group. - - The pointers in the returned list are valid at the time call returns. However rescheduling - or giving up the SolarMutex may mean events get executed that lead to the pointers getting - invalid. - - @param bIncludeThis - defines whether <code>this</code> is contained in the returned list - - @return - on return contains the <code>RadioButton</code>s - in the same group as this <code>RadioButton</code>. - */ - std::vector<RadioButton*> GetRadioButtonGroup(bool bIncludeThis = true) const; - - virtual bool set_property(const OString &rKey, const OString &rValue); - - /* - * Group this RadioButton with another - */ - void group(RadioButton &rOther); -}; - -// ------------ -// - CheckBox - -// ------------ - -class VCL_DLLPUBLIC CheckBox : public Button -{ -private: - Rectangle maStateRect; - Rectangle maMouseRect; - TriState meState; - TriState meSaveValue; - sal_Bool mbTriState; - Link maToggleHdl; - // when mbLegacyNoTextAlign is set then the old behaviour where - // the WB_LEFT, WB_RIGHT & WB_CENTER affect the image placement - // occurs, otherwise the image ( checkbox box ) is placed - // to the left or right ( depending on RTL or LTR settings ) - bool mbLegacyNoTextAlign; - SAL_DLLPRIVATE void ImplInitCheckBoxData(); - SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE void ImplInvalidateOrDrawCheckBoxState(); - SAL_DLLPRIVATE void ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags, - const Point& rPos, const Size& rSize, - const Size& rImageSize, Rectangle& rStateRect, - Rectangle& rMouseRect, bool bLayout ); - SAL_DLLPRIVATE void ImplDrawCheckBox( bool bLayout = false ); - SAL_DLLPRIVATE long ImplGetImageToTextDistance() const; - SAL_DLLPRIVATE Size ImplGetCheckImageSize() const; - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE CheckBox(const CheckBox &); - SAL_DLLPRIVATE CheckBox& operator= (const CheckBox &); - -protected: - using Control::ImplInitSettings; - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE virtual void FillLayoutData() const; - SAL_DLLPRIVATE virtual const Font& - GetCanonicalFont( const StyleSettings& _rStyle ) const; - SAL_DLLPRIVATE virtual const Color& - GetCanonicalTextColor( const StyleSettings& _rStyle ) const; - - SAL_DLLPRIVATE virtual void ImplDrawCheckBoxState(); - SAL_DLLPRIVATE const Rectangle& GetStateRect() const { return maStateRect; } - SAL_DLLPRIVATE const Rectangle& GetMouseRect() const { return maMouseRect; } - -public: - SAL_DLLPRIVATE void ImplCheck(); - SAL_DLLPRIVATE void ImplSetMinimumNWFSize(); -public: - CheckBox( Window* pParent, WinBits nStyle = 0 ); - CheckBox( Window* pParent, const ResId& rResId ); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void Tracking( const TrackingEvent& rTEvt ); - virtual void KeyInput( const KeyEvent& rKEvt ); - virtual void KeyUp( const KeyEvent& rKEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual void GetFocus(); - virtual void LoseFocus(); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual long PreNotify( NotifyEvent& rNEvt ); - - virtual void Toggle(); - - void SetState( TriState eState ); - TriState GetState() const { return meState; } - - void Check( sal_Bool bCheck = sal_True ); - sal_Bool IsChecked() const; - - void EnableTriState( sal_Bool bTriState = sal_True ); - sal_Bool IsTriStateEnabled() const { return mbTriState; } - - void SaveValue() { meSaveValue = GetState(); } - TriState GetSavedValue() const { return meSaveValue; } - - static Image GetCheckImage( const AllSettings& rSettings, sal_uInt16 nFlags ); - - Size CalcMinimumSize( long nMaxWidth = 0 ) const; - virtual Size GetOptimalSize() const; - - void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; } - const Link& GetToggleHdl() const { return maToggleHdl; } - bool IsLegacyNoTextAlign() { return mbLegacyNoTextAlign; } - void SetLegacyNoTextAlign( bool bVal ) { mbLegacyNoTextAlign = bVal; } - - virtual bool set_property(const OString &rKey, const OString &rValue); -}; - -inline void CheckBox::Check( sal_Bool bCheck ) -{ - SetState( (bCheck) ? STATE_CHECK : STATE_NOCHECK ); -} - -inline sal_Bool CheckBox::IsChecked() const -{ - return (GetState() == STATE_CHECK); -} - -// --------------------------------- -// - Control-Layer fuer alten Code - -// --------------------------------- - -class VCL_DLLPUBLIC ImageButton : public PushButton -{ -protected: - using PushButton::ImplInitStyle; -private: - SAL_DLLPRIVATE void ImplInitStyle(); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE ImageButton( const ImageButton & ); - SAL_DLLPRIVATE ImageButton & operator= ( const ImageButton & ); - -public: - ImageButton( Window* pParent, WinBits nStyle = 0 ); - ImageButton( Window* pParent, const ResId& rResId ); - ~ImageButton(); -}; - -class VCL_DLLPUBLIC ImageRadioButton : public RadioButton -{ - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE ImageRadioButton( const ImageRadioButton & ); - SAL_DLLPRIVATE ImageRadioButton & operator= ( const ImageRadioButton & ); - -public: - ImageRadioButton( Window* pParent, WinBits nStyle = 0 ); - ImageRadioButton( Window* pParent, const ResId& rResId ); - ~ImageRadioButton(); -}; - -class VCL_DLLPUBLIC TriStateBox : public CheckBox -{ - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE TriStateBox( const TriStateBox & ); - SAL_DLLPRIVATE TriStateBox & operator= ( const TriStateBox & ); - -public: - TriStateBox( Window* pParent, WinBits nStyle = 0 ); - TriStateBox( Window* pParent, const ResId& rResId ); - ~TriStateBox(); -}; - -class VCL_DLLPUBLIC DisclosureButton : public CheckBox -{ -protected: - SAL_DLLPRIVATE virtual void ImplDrawCheckBoxState(); -public: - DisclosureButton( Window* pParent, WinBits nStyle = 0 ); - DisclosureButton( Window* pParent, const ResId& rResId ); - - virtual void KeyInput( const KeyEvent& rKEvt ); -}; - -#endif // _SV_BUTTON_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/canvastools.hxx b/vcl/inc/vcl/canvastools.hxx deleted file mode 100644 index d4c2246e2544..000000000000 --- a/vcl/inc/vcl/canvastools.hxx +++ /dev/null @@ -1,175 +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 . - */ - -#ifndef _VCL_CANVASTOOLS_HXX -#define _VCL_CANVASTOOLS_HXX - -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/uno/Sequence.hxx> -#include <com/sun/star/rendering/XColorSpace.hpp> -#include <basegfx/numeric/ftools.hxx> - -#include <vcl/dllapi.h> - -class Point; -class Size; -class Rectangle; -class Polygon; -class PolyPolygon; -class Bitmap; -class BitmapEx; -class Color; - -namespace basegfx -{ - class B2DVector; - class B2DPoint; - class B2DRange; - class B2IVector; - class B2IPoint; - class B2IRange; - class B2DPolygon; - class B2DPolyPolygon; -} - -namespace com { namespace sun { namespace star { namespace geometry -{ - struct RealPoint2D; - struct RealSize2D; - struct RealRectangle2D; - struct IntegerPoint2D; - struct IntegerSize2D; - struct IntegerRectangle2D; - struct RealBezierSegment2D; -} } } } - -namespace com { namespace sun { namespace star { namespace rendering -{ - class XGraphicDevice; - class XBitmap; - class XIntegerBitmap; - class XIntegerReadOnlyBitmap; - class XPolyPolygon2D; -} } } } - -namespace vcl -{ - namespace unotools - { - // Bitmap conversions - // =================================================================== - - /** Create an XBitmap from VCL BitmapEx - */ - ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > - VCL_DLLPUBLIC xBitmapFromBitmapEx( const ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XGraphicDevice >& xGraphicDevice, - const ::BitmapEx& inputBitmap ); - - /** Create a BitmapEx from an XBitmap - */ - ::BitmapEx VCL_DLLPUBLIC bitmapExFromXBitmap( const ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XIntegerReadOnlyBitmap >& xInputBitmap ); - - // Color conversions (vcl/tools Color <-> canvas standard color space) - // =================================================================== - - /** Convert color to device color sequence - - @param rColor - Color to convert - - @param xColorSpace - Color space to convert into - */ - ::com::sun::star::uno::Sequence< double > - VCL_DLLPUBLIC colorToDoubleSequence( const Color& rColor, - const ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XColorSpace >& xColorSpace ); - - /** Convert from standard device color space to VCL/Tools color - - Note that this method assumes a color space equivalent to - the one returned from createStandardColorSpace() - */ - Color VCL_DLLPUBLIC stdColorSpaceSequenceToColor( - const ::com::sun::star::uno::Sequence< double >& rColor ); - - /** Convert color to device color sequence - - @param rColor - Color sequence to convert from - - @param xColorSpace - Color space to convert from - */ - Color VCL_DLLPUBLIC doubleSequenceToColor( const ::com::sun::star::uno::Sequence< double > rColor, - const ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XColorSpace >& xColorSpace ); - - /// Convert [0,1] double value to [0,255] int - inline sal_Int8 toByteColor( double val ) - { - return sal::static_int_cast<sal_Int8>( - basegfx::fround(val*255.0)); - } - - /// Convert [0,255] int value to [0,1] double value - inline double toDoubleColor( sal_uInt8 val ) - { - return val / 255.0; - } - - /// Create a standard color space suitable for VCL RGB color - ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XColorSpace> VCL_DLLPUBLIC createStandardColorSpace(); - - // Geometry conversions (vcl/tools <-> x) - // =================================================================== - - // geometry::Real - ::com::sun::star::geometry::RealSize2D VCL_DLLPUBLIC size2DFromSize( const Size& ); - - Size VCL_DLLPUBLIC sizeFromRealSize2D( const ::com::sun::star::geometry::RealSize2D& ); - - // geometry::Integer - ::com::sun::star::geometry::IntegerSize2D VCL_DLLPUBLIC integerSize2DFromSize( const Size& ); - - Size VCL_DLLPUBLIC sizeFromIntegerSize2D( const ::com::sun::star::geometry::IntegerSize2D& ); - Point VCL_DLLPUBLIC pointFromIntegerPoint2D( const ::com::sun::star::geometry::IntegerPoint2D& ); - Rectangle VCL_DLLPUBLIC rectangleFromIntegerRectangle2D( const ::com::sun::star::geometry::IntegerRectangle2D& ); - - // basegfx::B2D - Size VCL_DLLPUBLIC sizeFromB2DSize( const ::basegfx::B2DVector& ); - Point VCL_DLLPUBLIC pointFromB2DPoint( const ::basegfx::B2DPoint& ); - Rectangle VCL_DLLPUBLIC rectangleFromB2DRectangle( const ::basegfx::B2DRange& ); - - basegfx::B2DVector VCL_DLLPUBLIC b2DSizeFromSize( const Size& ); - basegfx::B2DPoint VCL_DLLPUBLIC b2DPointFromPoint( const Point& ); - basegfx::B2DRange VCL_DLLPUBLIC b2DRectangleFromRectangle( const Rectangle& ); - - // basegfx::B2I - Point VCL_DLLPUBLIC pointFromB2IPoint( const ::basegfx::B2IPoint& ); - Rectangle VCL_DLLPUBLIC rectangleFromB2IRectangle( const ::basegfx::B2IRange& ); - } -} - -#endif /* _VCL_CANVASTOOLS_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/cmdevt.hxx b/vcl/inc/vcl/cmdevt.hxx deleted file mode 100644 index 03876e52e5a3..000000000000 --- a/vcl/inc/vcl/cmdevt.hxx +++ /dev/null @@ -1,466 +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 . - */ - -#ifndef _VCL_CMDEVT_HXX -#define _VCL_CMDEVT_HXX - -#include <tools/gen.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/keycod.hxx> -#include <vcl/font.hxx> - -// --------------------------- -// - CommandExtTextInputData - -// --------------------------- - -#define EXTTEXTINPUT_ATTR_GRAYWAVELINE ((sal_uInt16)0x0100) -#define EXTTEXTINPUT_ATTR_UNDERLINE ((sal_uInt16)0x0200) -#define EXTTEXTINPUT_ATTR_BOLDUNDERLINE ((sal_uInt16)0x0400) -#define EXTTEXTINPUT_ATTR_DOTTEDUNDERLINE ((sal_uInt16)0x0800) -#define EXTTEXTINPUT_ATTR_DASHDOTUNDERLINE ((sal_uInt16)0x1000) -#define EXTTEXTINPUT_ATTR_HIGHLIGHT ((sal_uInt16)0x2000) -#define EXTTEXTINPUT_ATTR_REDTEXT ((sal_uInt16)0x4000) -#define EXTTEXTINPUT_ATTR_HALFTONETEXT ((sal_uInt16)0x8000) - -#define EXTTEXTINPUT_CURSOR_INVISIBLE ((sal_uInt16)0x0001) -#define EXTTEXTINPUT_CURSOR_OVERWRITE ((sal_uInt16)0x0002) - -class VCL_DLLPUBLIC CommandExtTextInputData -{ -private: - XubString maText; - sal_uInt16* mpTextAttr; - xub_StrLen mnCursorPos; - xub_StrLen mnDeltaStart; - xub_StrLen mnOldTextLen; - sal_uInt16 mnCursorFlags; - sal_Bool mbOnlyCursor; - -public: - CommandExtTextInputData( const XubString& rText, - const sal_uInt16* pTextAttr, - xub_StrLen nCursorPos, - sal_uInt16 nCursorFlags, - xub_StrLen nDeltaStart, - xub_StrLen nOldTextLen, - sal_Bool bOnlyCursor ); - CommandExtTextInputData( const CommandExtTextInputData& rData ); - ~CommandExtTextInputData(); - - const XubString& GetText() const { return maText; } - const sal_uInt16* GetTextAttr() const { return mpTextAttr; } - sal_uInt16 GetCharTextAttr( sal_uInt16 nIndex ) const; - xub_StrLen GetCursorPos() const { return mnCursorPos; } - sal_Bool IsCursorVisible() const { return (mnCursorFlags & EXTTEXTINPUT_CURSOR_INVISIBLE) == 0; } - sal_Bool IsCursorOverwrite() const { return (mnCursorFlags & EXTTEXTINPUT_CURSOR_OVERWRITE) != 0; } - sal_uInt16 GetCursorFlags() const { return mnCursorFlags; } - xub_StrLen GetDeltaStart() const { return mnDeltaStart; } - xub_StrLen GetOldTextLen() const { return mnOldTextLen; } - sal_Bool IsOnlyCursorChanged() const { return mbOnlyCursor; } -}; - -inline sal_uInt16 CommandExtTextInputData::GetCharTextAttr( sal_uInt16 nIndex ) const -{ - if ( mpTextAttr && (nIndex < maText.Len()) ) - return mpTextAttr[nIndex]; - else - return 0; -} - -// --------------------------- -// - CommandInputContextData - -// --------------------------- - -class VCL_DLLPUBLIC CommandInputContextData -{ -private: - LanguageType meLanguage; - -public: - CommandInputContextData(); - CommandInputContextData( LanguageType eLang ); - - LanguageType GetLanguage() const { return meLanguage; } -}; - -inline CommandInputContextData::CommandInputContextData() -{ - meLanguage = LANGUAGE_DONTKNOW; -} - -inline CommandInputContextData::CommandInputContextData( LanguageType eLang ) -{ - meLanguage = eLang; -} - -// -------------------- -// - CommandWheelData - -// -------------------- - -#define COMMAND_WHEEL_SCROLL ((sal_uInt16)0x0001) -#define COMMAND_WHEEL_ZOOM ((sal_uInt16)0x0002) -#define COMMAND_WHEEL_ZOOM_SCALE ((sal_uInt16)0x0003) -#define COMMAND_WHEEL_DATAZOOM ((sal_uInt16)0x0004) - -#define COMMAND_WHEEL_PAGESCROLL ((sal_uLong)0xFFFFFFFF) - -class VCL_DLLPUBLIC CommandWheelData -{ -private: - long mnDelta; - long mnNotchDelta; - sal_uLong mnLines; - sal_uInt16 mnMode; - sal_uInt16 mnCode; - sal_Bool mbHorz; - sal_Bool mbDeltaIsPixel; - -public: - CommandWheelData(); - CommandWheelData( long nWheelDelta, long nWheelNotchDelta, - sal_uLong nScrollLines, - sal_uInt16 nWheelMode, sal_uInt16 nKeyModifier, - sal_Bool bHorz = sal_False, sal_Bool bDeltaIsPixel = sal_False ); - - long GetDelta() const { return mnDelta; } - long GetNotchDelta() const { return mnNotchDelta; } - sal_uLong GetScrollLines() const { return mnLines; } - sal_Bool IsHorz() const { return mbHorz; } - sal_Bool IsDeltaPixel() const { return mbDeltaIsPixel; } - - sal_uInt16 GetMode() const { return mnMode; } - - sal_uInt16 GetModifier() const - { return (mnCode & (KEY_SHIFT | KEY_MOD1 | KEY_MOD2)); } - bool IsShift() const - { return ((mnCode & KEY_SHIFT) != 0); } - sal_Bool IsMod1() const - { return ((mnCode & KEY_MOD1) != 0); } - sal_Bool IsMod2() const - { return ((mnCode & KEY_MOD2) != 0); } - sal_Bool IsMod3() const - { return ((mnCode & KEY_MOD3) != 0); } -}; - -inline CommandWheelData::CommandWheelData() -{ - mnDelta = 0; - mnNotchDelta = 0; - mnLines = 0; - mnMode = 0; - mnCode = 0; - mbHorz = sal_False; - mbDeltaIsPixel = sal_False; -} - -inline CommandWheelData::CommandWheelData( long nWheelDelta, long nWheelNotchDelta, - sal_uLong nScrollLines, - sal_uInt16 nWheelMode, sal_uInt16 nKeyModifier, - sal_Bool bHorz, sal_Bool bDeltaIsPixel ) -{ - mnDelta = nWheelDelta; - mnNotchDelta = nWheelNotchDelta; - mnLines = nScrollLines; - mnMode = nWheelMode; - mnCode = nKeyModifier; - mbHorz = bHorz; - mbDeltaIsPixel = bDeltaIsPixel; -} - -// --------------------- -// - CommandScrollData - -// --------------------- - -class VCL_DLLPUBLIC CommandScrollData -{ -private: - long mnDeltaX; - long mnDeltaY; - -public: - CommandScrollData(); - CommandScrollData( long nDeltaX, long nDeltaY ); - - long GetDeltaX() const { return mnDeltaX; } - long GetDeltaY() const { return mnDeltaY; } -}; - -inline CommandScrollData::CommandScrollData() -{ - mnDeltaX = 0; - mnDeltaY = 0; -} - -inline CommandScrollData::CommandScrollData( long nDeltaX, long nDeltaY ) -{ - mnDeltaX = nDeltaX; - mnDeltaY = nDeltaY; -} - -// --------------------- -// - CommandModKeyData - -// --------------------- - -class VCL_DLLPUBLIC CommandModKeyData -{ -private: - sal_uInt16 mnCode; - -public: - CommandModKeyData(); - CommandModKeyData( sal_uInt16 nCode ); - - bool IsShift() const { return (mnCode & MODKEY_SHIFT) ? true : false; } - sal_Bool IsMod1() const { return (mnCode & MODKEY_MOD1) ? sal_True : sal_False; } - sal_Bool IsMod2() const { return (mnCode & MODKEY_MOD2) ? sal_True : sal_False; } - sal_Bool IsMod3() const { return (mnCode & MODKEY_MOD3) ? sal_True : sal_False; } - - sal_Bool IsLeftShift() const { return (mnCode & MODKEY_LSHIFT) ? sal_True : sal_False; } - sal_Bool IsLeftMod1() const { return (mnCode & MODKEY_LMOD1) ? sal_True : sal_False; } - sal_Bool IsLeftMod2() const { return (mnCode & MODKEY_LMOD2) ? sal_True : sal_False; } - sal_Bool IsLeftMod3() const { return (mnCode & MODKEY_LMOD3) ? sal_True : sal_False; } - - sal_Bool IsRightShift() const { return (mnCode & MODKEY_RSHIFT) ? sal_True : sal_False; } - sal_Bool IsRightMod1() const { return (mnCode & MODKEY_RMOD1) ? sal_True : sal_False; } - sal_Bool IsRightMod2() const { return (mnCode & MODKEY_RMOD2) ? sal_True : sal_False; } - sal_Bool IsRightMod3() const { return (mnCode & MODKEY_RMOD3) ? sal_True : sal_False; } -}; - -inline CommandModKeyData::CommandModKeyData() -{ - mnCode = 0L; -} - -inline CommandModKeyData::CommandModKeyData( sal_uInt16 nCode ) -{ - mnCode = nCode; -} - -// -------------------- -// - CommanDialogData - -// -------------------- - -#define SHOWDIALOG_ID_PREFERENCES 1 -#define SHOWDIALOG_ID_ABOUT 2 - -class VCL_DLLPUBLIC CommandDialogData -{ - int m_nDialogId; - public: - CommandDialogData( int nDialogId = SHOWDIALOG_ID_PREFERENCES ) - : m_nDialogId( nDialogId ) - {} - - int GetDialogId() const { return m_nDialogId; } -}; - -// -------------- -// Media Commands -// -------------- - -#define MEDIA_COMMAND_CHANNEL_DOWN ((sal_Int16)1) // Decrement the channel value, for example, for a TV or radio tuner. -#define MEDIA_COMMAND_CHANNEL_UP ((sal_Int16)2) // Increment the channel value, for example, for a TV or radio tuner. -#define MEDIA_COMMAND_NEXTTRACK ((sal_Int16)3) // Go to next media track/slide. -#define MEDIA_COMMAND_PAUSE ((sal_Int16)4) // Pause. If already paused, take no further action. This is a direct PAUSE command that has no state. -#define MEDIA_COMMAND_PLAY ((sal_Int16)5) // Begin playing at the current position. If already paused, it will resume. This is a direct PLAY command that has no state. -#define MEDIA_COMMAND_PLAY_PAUSE ((sal_Int16)6) // Play or pause playback. -#define MEDIA_COMMAND_PREVIOUSTRACK ((sal_Int16)7) // Go to previous media track/slide. -#define MEDIA_COMMAND_RECORD ((sal_Int16)8) // Begin recording the current stream. -#define MEDIA_COMMAND_REWIND ((sal_Int16)9)// Go backward in a stream at a higher rate of speed. -#define MEDIA_COMMAND_STOP ((sal_Int16)10)// Stop playback. -#define MEDIA_COMMAND_MIC_ON_OFF_TOGGLE ((sal_Int16)11)// Toggle the microphone. -#define MEDIA_COMMAND_MICROPHONE_VOLUME_DOWN ((sal_Int16)12)// Increase microphone volume. -#define MEDIA_COMMAND_MICROPHONE_VOLUME_MUTE ((sal_Int16)13)// Mute the microphone. -#define MEDIA_COMMAND_MICROPHONE_VOLUME_UP ((sal_Int16)14)// Decrease microphone volume. -#define MEDIA_COMMAND_VOLUME_DOWN ((sal_Int16)15)// Lower the volume. -#define MEDIA_COMMAND_VOLUME_MUTE ((sal_Int16)16)// Mute the volume. -#define MEDIA_COMMAND_VOLUME_UP ((sal_Int16)17)// Raise the volume. -#define MEDIA_COMMAND_MENU ((sal_Int16)18)// Button Menu pressed. -#define MEDIA_COMMAND_MENU_HOLD ((sal_Int16)19)// Button Menu (long) pressed. -#define MEDIA_COMMAND_PLAY_HOLD ((sal_Int16)20)// Button Play (long) pressed. -#define MEDIA_COMMAND_NEXTTRACK_HOLD ((sal_Int16)21)// Button Right holding pressed. -#define MEDIA_COMMAND_PREVIOUSTRACK_HOLD ((sal_Int16)22)// Button Left holding pressed. - - -// ------------------------------ -// - CommandSelectionChangeData - -// ------------------------------ - -class VCL_DLLPUBLIC CommandSelectionChangeData -{ -private: - sal_uLong mnStart; - sal_uLong mnEnd; - -public: - CommandSelectionChangeData(); - CommandSelectionChangeData( sal_uLong nStart, sal_uLong nEnd ); - - sal_uLong GetStart() const { return mnStart; } - sal_uLong GetEnd() const { return mnEnd; } -}; - -inline CommandSelectionChangeData::CommandSelectionChangeData() -{ - mnStart = mnEnd = 0; -} - -inline CommandSelectionChangeData::CommandSelectionChangeData( sal_uLong nStart, - sal_uLong nEnd ) -{ - mnStart = nStart; - mnEnd = nEnd; -} - -// ---------------- -// - CommandEvent - -// ---------------- - -#define COMMAND_CONTEXTMENU ((sal_uInt16)1) -#define COMMAND_STARTDRAG ((sal_uInt16)2) -#define COMMAND_WHEEL ((sal_uInt16)3) -#define COMMAND_STARTAUTOSCROLL ((sal_uInt16)4) -#define COMMAND_AUTOSCROLL ((sal_uInt16)5) -#define COMMAND_STARTEXTTEXTINPUT ((sal_uInt16)7) -#define COMMAND_EXTTEXTINPUT ((sal_uInt16)8) -#define COMMAND_ENDEXTTEXTINPUT ((sal_uInt16)9) -#define COMMAND_INPUTCONTEXTCHANGE ((sal_uInt16)10) -#define COMMAND_CURSORPOS ((sal_uInt16)11) -#define COMMAND_PASTESELECTION ((sal_uInt16)12) -#define COMMAND_MODKEYCHANGE ((sal_uInt16)13) -#define COMMAND_HANGUL_HANJA_CONVERSION ((sal_uInt16)14) -#define COMMAND_INPUTLANGUAGECHANGE ((sal_uInt16)15) -#define COMMAND_SHOWDIALOG ((sal_uInt16)16) -#define COMMAND_MEDIA ((sal_uInt16)17) -#define COMMAND_SELECTIONCHANGE ((sal_uInt16)18) -#define COMMAND_PREPARERECONVERSION ((sal_uInt16)19) - -class VCL_DLLPUBLIC CommandEvent -{ -private: - Point maPos; - void* mpData; - sal_uInt16 mnCommand; - sal_Bool mbMouseEvent; - -public: - CommandEvent(); - CommandEvent( const Point& rMousePos, sal_uInt16 nCmd, - sal_Bool bMEvt = sal_False, const void* pCmdData = NULL ); - - sal_uInt16 GetCommand() const { return mnCommand; } - const Point& GetMousePosPixel() const { return maPos; } - sal_Bool IsMouseEvent() const { return mbMouseEvent; } - void* GetData() const { return mpData; } - - const CommandExtTextInputData* GetExtTextInputData() const; - const CommandInputContextData* GetInputContextChangeData() const; - const CommandWheelData* GetWheelData() const; - const CommandScrollData* GetAutoScrollData() const; - const CommandModKeyData* GetModKeyData() const; - const CommandDialogData* GetDialogData() const; - sal_Int16 GetMediaCommand() const; - const CommandSelectionChangeData* GetSelectionChangeData() const; -}; - -inline CommandEvent::CommandEvent() -{ - mpData = NULL; - mnCommand = 0; - mbMouseEvent = sal_False; -} - -inline CommandEvent::CommandEvent( const Point& rMousePos, - sal_uInt16 nCmd, sal_Bool bMEvt, const void* pCmdData ) : - maPos( rMousePos ) -{ - mpData = (void*)pCmdData; - mnCommand = nCmd; - mbMouseEvent = bMEvt; -} - -inline const CommandExtTextInputData* CommandEvent::GetExtTextInputData() const -{ - if ( mnCommand == COMMAND_EXTTEXTINPUT ) - return (const CommandExtTextInputData*)mpData; - else - return NULL; -} - -inline const CommandInputContextData* CommandEvent::GetInputContextChangeData() const -{ - if ( mnCommand == COMMAND_INPUTCONTEXTCHANGE ) - return (const CommandInputContextData*)mpData; - else - return NULL; -} - -inline const CommandWheelData* CommandEvent::GetWheelData() const -{ - if ( mnCommand == COMMAND_WHEEL ) - return (const CommandWheelData*)mpData; - else - return NULL; -} - -inline const CommandScrollData* CommandEvent::GetAutoScrollData() const -{ - if ( mnCommand == COMMAND_AUTOSCROLL ) - return (const CommandScrollData*)mpData; - else - return NULL; -} - -inline const CommandModKeyData* CommandEvent::GetModKeyData() const -{ - if( mnCommand == COMMAND_MODKEYCHANGE ) - return (const CommandModKeyData*)mpData; - else - return NULL; -} - -inline const CommandDialogData* CommandEvent::GetDialogData() const -{ - if( mnCommand == COMMAND_SHOWDIALOG ) - return (const CommandDialogData*)mpData; - else - return NULL; -} - -inline sal_Int16 CommandEvent::GetMediaCommand() const -{ - if( mnCommand == COMMAND_MEDIA ) - return *(const sal_Int16*)(mpData); - else - return 0; -} - -inline const CommandSelectionChangeData* CommandEvent::GetSelectionChangeData() const -{ - if( mnCommand == COMMAND_SELECTIONCHANGE ) - return (const CommandSelectionChangeData*)mpData; - else - return NULL; -} - - -#endif // _VCL_CMDEVT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/combobox.h b/vcl/inc/vcl/combobox.h deleted file mode 100644 index 4cb8c964ee2e..000000000000 --- a/vcl/inc/vcl/combobox.h +++ /dev/null @@ -1,31 +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 . - */ - -#ifndef _SV_COMBOBOX_H -#define _SV_COMBOBOX_H - -#include <vcl/lstbox.h> - -#define COMBOBOX_APPEND ((sal_uInt16)0xFFFF) -#define COMBOBOX_ENTRY_NOTFOUND ((sal_uInt16)0xFFFF) -#define COMBOBOX_ERROR ((sal_uInt16)0xFFFF) - -#endif // _SV_COMBOBOX_H - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/combobox.hxx b/vcl/inc/vcl/combobox.hxx deleted file mode 100644 index f0637109716a..000000000000 --- a/vcl/inc/vcl/combobox.hxx +++ /dev/null @@ -1,227 +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 . - */ - -#ifndef _SV_COMBOBOX_HXX -#define _SV_COMBOBOX_HXX - -#include <vcl/dllapi.h> -#include <vcl/ctrl.hxx> -#include <vcl/combobox.h> -#include <vcl/edit.hxx> - -class UserDrawEvent; - -class ImplListBoxFloatingWindow; -class ImplListBox; -class ImplBtn; - -// ------------ -// - ComboBox - -// ------------ - -class VCL_DLLPUBLIC ComboBox : public Edit -{ -private: - Edit* mpSubEdit; - ImplListBox* mpImplLB; - ImplBtn* mpBtn; - ImplListBoxFloatingWindow* mpFloatWin; - sal_uInt16 mnDDHeight; - sal_Unicode mcMultiSep; - sal_Bool mbDDAutoSize : 1; - sal_Bool mbSyntheticModify : 1; - sal_Bool mbMatchCase : 1; - sal_Int32 m_nMaxWidthChars; - Link maSelectHdl; - Link maDoubleClickHdl; - - struct ComboBoxBounds - { - Point aSubEditPos; - Size aSubEditSize; - - Point aButtonPos; - Size aButtonSize; - }; - -private: - SAL_DLLPRIVATE void ImplInitComboBoxData(); - SAL_DLLPRIVATE void ImplUpdateFloatSelection(); - SAL_DLLPRIVATE ComboBoxBounds calcComboBoxDropDownComponentBounds( - const Size &rOutSize, const Size &rBorderOutSize) const; - - DECL_DLLPRIVATE_LINK( ImplSelectHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplCancelHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplDoubleClickHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplClickBtnHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplPopupModeEndHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplSelectionChangedHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplUserDrawHdl, UserDrawEvent* ); - DECL_DLLPRIVATE_LINK( ImplAutocompleteHdl, Edit* ); - -protected: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE void ImplCalcEditHeight(); - SAL_DLLPRIVATE long getMaxWidthScrollBarAndDownButton() const; - -protected: - ComboBox( WindowType nType ); - sal_Bool IsDropDownBox() const { return mpFloatWin ? sal_True : sal_False; } - - virtual void FillLayoutData() const; -public: - ComboBox( Window* pParent, WinBits nStyle = 0 ); - ComboBox( Window* pParent, const ResId& rResId ); - ~ComboBox(); - - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void UserDraw( const UserDrawEvent& rUDEvt ); - virtual void Select(); - virtual void DoubleClick(); - - virtual void Modify(); - - virtual const Wallpaper& GetDisplayBackground() const; - - virtual void setPosSizePixel( long nX, long nY, long nWidth, long nHeight, sal_uInt16 nFlags = WINDOW_POSSIZE_ALL ); - void SetPosSizePixel( const Point& rNewPos, const Size& rNewSize ) - { Edit::SetPosSizePixel( rNewPos, rNewSize ); } - void SetDropDownSizePixel( const Size& rNewSize ) - { if( IsDropDownBox() ) setPosSizePixel( 0, 0, rNewSize.Width(), rNewSize.Height(), WINDOW_POSSIZE_SIZE | WINDOW_POSSIZE_DROPDOWN ); } - - Rectangle GetDropDownPosSizePixel() const; - - void SetDropDownLineCount( sal_uInt16 nLines ); - sal_uInt16 GetDropDownLineCount() const; - - void EnableAutoSize( sal_Bool bAuto ); - sal_Bool IsAutoSizeEnabled() const { return mbDDAutoSize; } - - void EnableDDAutoWidth( sal_Bool b ); - - virtual void SetText( const OUString& rStr ); - virtual void SetText( const OUString& rStr, const Selection& rNewSelection ); - - sal_uInt16 InsertEntry( const OUString& rStr, sal_uInt16 nPos = COMBOBOX_APPEND ); - sal_uInt16 InsertEntry( const OUString& rStr, const Image& rImage, sal_uInt16 nPos = COMBOBOX_APPEND ); - - void RemoveEntry( const OUString& rStr ); - void RemoveEntry( sal_uInt16 nPos ); - - void Clear(); - - sal_uInt16 GetEntryPos( const OUString& rStr ) const; - Image GetEntryImage( sal_uInt16 nPos ) const; - OUString GetEntry( sal_uInt16 nPos ) const; - sal_uInt16 GetEntryCount() const; - - sal_Bool IsTravelSelect() const; - sal_Bool IsInDropDown() const; - void ToggleDropDown(); - - long CalcWindowSizePixel( sal_uInt16 nLines ) const; - - void SetUserItemSize( const Size& rSz ); - void EnableUserDraw( sal_Bool bUserDraw ); - - void DrawEntry( const UserDrawEvent& rEvt, sal_Bool bDrawImage, sal_Bool bDrawText, sal_Bool bDrawTextAtImagePos = sal_False ); - void SetBorderStyle( sal_uInt16 nBorderStyle ); - - void SetSeparatorPos( sal_uInt16 n = LISTBOX_ENTRY_NOTFOUND ); - - void EnableAutocomplete( sal_Bool bEnable, sal_Bool bMatchCase = sal_False ); - sal_Bool IsAutocompleteEnabled() const; - - void EnableMultiSelection( sal_Bool bMulti ); - sal_Bool IsMultiSelectionEnabled() const; - void SetMultiSelectionSeparator( sal_Unicode cSep ) { mcMultiSep = cSep; } - sal_Unicode GetMultiSelectionSeparator() const { return mcMultiSep; } - - void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } - const Link& GetSelectHdl() const { return maSelectHdl; } - void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; } - const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; } - - Size CalcMinimumSize() const; - virtual Size GetOptimalSize() const; - Size CalcAdjustedSize( const Size& rPrefSize ) const; - using Edit::CalcSize; - Size CalcSize( sal_uInt16 nColumns, sal_uInt16 nLines ) const; - void GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines ) const; - - void SetMRUEntries( const OUString& rEntries, sal_Unicode cSep = ';' ); - OUString GetMRUEntries( sal_Unicode cSep = ';' ) const; - void SetMaxMRUCount( sal_uInt16 n ); - sal_uInt16 GetMaxMRUCount() const; - - void SetEntryData( sal_uInt16 nPos, void* pNewData ); - void* GetEntryData( sal_uInt16 nPos ) const; - - sal_uInt16 GetTopEntry() const; - - void SetProminentEntryType( ProminentEntry eType ); - - sal_uInt16 GetDisplayLineCount() const; - - sal_uInt16 GetSelectEntryCount() const; - sal_uInt16 GetSelectEntryPos( sal_uInt16 nSelIndex = 0 ) const; - sal_Bool IsEntryPosSelected( sal_uInt16 nPos ) const; - void SelectEntryPos( sal_uInt16 nPos, sal_Bool bSelect = sal_True ); - void SetNoSelection(); - Rectangle GetBoundingRectangle( sal_uInt16 nItem ) const; - - /** checks whether a certain point lies within the bounds of - a list item and returns the item as well as the character position - the point is at. - - <p>If the point is inside an item the item pos is put into <code>rPos</code> and - the item-relative character index is returned. If the point is not inside - an item -1 is returned and rPos is unchanged.</p> - - @param rPoint - tells the point for which an item is requested. - - @param rPos - gets the item at the specified point <code>rPoint</code> - - @returns - the item-relative character index at point <code>rPos</code> or -1 - if no item is at that point. - */ - using Control::GetIndexForPoint; - long GetIndexForPoint( const Point& rPoint, sal_uInt16& rPos ) const; - - sal_Int32 getMaxWidthChars() const { return m_nMaxWidthChars; } - void setMaxWidthChars(sal_Int32 nWidth); - - virtual bool set_property(const OString &rKey, const OString &rValue); -}; - -#endif // _COMBOBOX_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/configsettings.hxx b/vcl/inc/vcl/configsettings.hxx deleted file mode 100644 index 47c96facd472..000000000000 --- a/vcl/inc/vcl/configsettings.hxx +++ /dev/null @@ -1,66 +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 . - */ -#ifndef VCL_INC_CONFIGSETTINGS_HXX -#define VCL_INC_CONFIGSETTINGS_HXX - -#include <rtl/ustring.hxx> -#include <com/sun/star/uno/Sequence.hxx> -#include <unotools/configitem.hxx> -#include <vcl/dllapi.h> - -#include <boost/unordered_map.hpp> - -//........................................................................ -namespace vcl -{ -//........................................................................ - - typedef boost::unordered_map< OUString, OUString, OUStringHash > OUStrMap; - class SmallOUStrMap : public OUStrMap { public: SmallOUStrMap() : OUStrMap(1) {} }; - - //==================================================================== - //= SettingsConfigItem - //==================================================================== - class VCL_DLLPUBLIC SettingsConfigItem : public ::utl::ConfigItem - { - - boost::unordered_map< OUString, SmallOUStrMap, OUStringHash > m_aSettings; - - virtual void Notify( const com::sun::star::uno::Sequence< OUString >& rPropertyNames ); - - void getValues(); - SettingsConfigItem(); - public: - virtual ~SettingsConfigItem(); - - static SettingsConfigItem* get(); - - const OUString& getValue( const OUString& rGroup, const OUString& rKey ) const; - void setValue( const OUString& rGroup, const OUString& rKey, const OUString& rValue ); - - virtual void Commit(); - }; - -//........................................................................ -} // namespace vcl -//........................................................................ - -#endif // VCL_INC_CONFIGSETTINGS_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/controllayout.hxx b/vcl/inc/vcl/controllayout.hxx deleted file mode 100644 index 5d1d13355718..000000000000 --- a/vcl/inc/vcl/controllayout.hxx +++ /dev/null @@ -1,79 +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 . - */ - -#ifndef _VCL_CONTROLLAYOUT_HXX -#define _VCL_CONTROLLAYOUT_HXX - -#include <vector> -#include <tools/gen.hxx> -#include <tools/string.hxx> -#include <vcl/dllapi.h> - -class Control; - -namespace vcl -{ - -struct VCL_DLLPUBLIC ControlLayoutData -{ - // contains the string really displayed - // there must be exactly one bounding rectangle in m_aUnicodeBoundRects - // for every character in m_aDisplayText - OUString m_aDisplayText; - // the bounding rectangle of every character - // where one character may consist of many glyphs - std::vector< Rectangle > m_aUnicodeBoundRects; - // start indices of lines - std::vector< long > m_aLineIndices; - // notify parent control on destruction - const Control* m_pParent; - - ControlLayoutData() : m_pParent( NULL ) {} - ~ControlLayoutData(); - - Rectangle GetCharacterBounds( long nIndex ) const; - // returns the character index for corresponding to rPoint (in control coordinates) - // -1 is returned if no character is at that point - long GetIndexForPoint( const Point& rPoint ) const; - // returns the number of lines in the result of GetDisplayText() - long GetLineCount() const; - // returns the interval [start,end] of line nLine - // returns [-1,-1] for an invalid line - Pair GetLineStartEnd( long nLine ) const; - /** ToRelativeLineIndex changes a layout data index to a count relative to its line. - - <p>This is equivalent to getting the line start/end pairs with - <member>GetLineStartEnd</member> until the index lies within [start,end] of a line - </p> - - @param nIndex - the absolute index inside the display text to be changed to a relative index - - @returns - the relative index inside the displayed line or -1 if the absolute index does - not match any line - */ - long ToRelativeLineIndex( long nIndex ) const; -}; - -} // namespace vcl - -#endif // _VCL_CONTROLLAYOUT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/ctrl.hxx b/vcl/inc/vcl/ctrl.hxx deleted file mode 100644 index 390f416ae142..000000000000 --- a/vcl/inc/vcl/ctrl.hxx +++ /dev/null @@ -1,195 +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 . - */ - -#ifndef _SV_CTRL_HXX -#define _SV_CTRL_HXX - -#include <tools/link.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/window.hxx> -#include <vcl/salnativewidgets.hxx> - -// forward -namespace vcl { struct ImplControlData; struct ControlLayoutData; } - -// ----------- -// - Control - -// ----------- - -class VCL_DLLPUBLIC Control : public Window -{ -protected: - ::vcl::ImplControlData* mpControlData; - -private: - bool mbHasControlFocus; - Link maGetFocusHdl; - Link maLoseFocusHdl; - - SAL_DLLPRIVATE void ImplInitControlData(); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE Control (const Control &); - SAL_DLLPRIVATE Control & operator= (const Control &); - -protected: - Control( WindowType nType ); - virtual void FillLayoutData() const; - - // helper method for composite controls - void AppendLayoutData( const Control& rSubControl ) const; - - /// creates the mpData->mpLayoutData structure - void CreateLayoutData() const; - /// determines whether we currently have layout data - bool HasLayoutData() const; - /// returns the current layout data - ::vcl::ControlLayoutData* - GetLayoutData() const; - - /** this calls both our event listeners, and a specified handler - - If the Control instance is destroyed during any of those calls, the - method properly handles this (in particular, it doesn't crash :) - - @param nEvent - the event to notify to our event listeners - @param rHandler - the handler to call - @param pCaller - the parameter to pass to the handler call - @return - if the Control instance has been destroyed in any of the call - */ - sal_Bool ImplCallEventListenersAndHandler( - sal_uLong nEvent, const Link& rHandler, void* pCaller - ); - - /** draws the given text onto the given device - - If no reference device is set, the draw request will simply be forwarded to OutputDevice::DrawText. Otherwise, - the text will be rendered according to the metrics at the reference device. - - Note that the given rectangle might be modified, it will contain the result of a GetTextRect call (either - directly at the target device, or taking the reference device into account) when returning. - */ - void DrawControlText( OutputDevice& _rTargetDevice, Rectangle& _io_rRect, - const OUString& _rStr, sal_uInt16 _nStyle, - MetricVector* _pVector, OUString* _pDisplayText ) const; - - virtual const Font& - GetCanonicalFont( const StyleSettings& _rStyle ) const; - virtual const Color& - GetCanonicalTextColor( const StyleSettings& _rStyle ) const; - - void ImplInitSettings( const sal_Bool _bFont, const sal_Bool _bForeground ); - -public: - SAL_DLLPRIVATE void ImplClearLayoutData() const; - /** draws a frame around the give rectangle, onto the given device - - only to be used from within the <member>Window::Draw</member> method of your sub class. - - The frame is always drawn with a single line (without 3D effects). In addition, any mono - color set at the control's settings is respected. Yet more additionally, if we're living - in a themed desktop, this theming is ignored. - - Note that this makes sense, since the *only known* clients of <member>Window::Draw</member> - are form controls, when printed or print-previewed. For form controls embedded in office documents, - you don't want to have the theme look. - - @param pDev - the device to draw onto - @param rRect - the rect for drawing the frame. Upon returning from the call, the rect will be inflated - by the space occupied by the drawn pixels. - */ - SAL_DLLPRIVATE void ImplDrawFrame( OutputDevice* pDev, Rectangle& rRect ); - -public: - Control( Window* pParent, WinBits nWinStyle = 0 ); - Control( Window* pParent, const ResId& rResId ); - ~Control(); - - virtual void GetFocus(); - virtual void LoseFocus(); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void StateChanged( StateChangedType nStateChange ); - virtual void Resize(); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - // invalidates layout data - virtual void SetText( const OUString& rStr ); - // gets the displayed text - virtual OUString GetDisplayText() const; - // returns the bounding box for the character at index nIndex (in control coordinates) - Rectangle GetCharacterBounds( long nIndex ) const; - // returns the character index for corresponding to rPoint (in control coordinates) - // -1 is returned if no character is at that point - long GetIndexForPoint( const Point& rPoint ) const; - // returns the interval [start,end] of line nLine - // returns [-1,-1] for an invalid line - Pair GetLineStartEnd( long nLine ) const; - /** ToRelativeLineIndex changes a layout data index to a count relative to its line. - - <p>This is equivalent to getting the line start/end pairs with - <member>GetLineStartEnd</member> until the index lies within [start,end] of a line - </p> - - @param nIndex - the absolute index inside the display text to be changed to a relative index - - @returns - the relative index inside the displayed line or -1 if the absolute index does - not match any line - */ - long ToRelativeLineIndex( long nIndex ) const; - - void SetGetFocusHdl( const Link& rLink ) { maGetFocusHdl = rLink; } - const Link& GetGetFocusHdl() const { return maGetFocusHdl; } - void SetLoseFocusHdl( const Link& rLink ) { maLoseFocusHdl = rLink; } - const Link& GetLoseFocusHdl() const { return maLoseFocusHdl; } - - /** determines whether the control currently has the focus - */ - bool HasControlFocus() const { return mbHasControlFocus; } - - void SetLayoutDataParent( const Control* pParent ) const; - - virtual Size GetOptimalSize() const; - - /** sets a reference device used for rendering control text - @seealso DrawControlText - */ - void SetReferenceDevice( OutputDevice* _referenceDevice ); - OutputDevice* GetReferenceDevice() const; - - Font GetUnzoomedControlPointFont() const - { - Font aFont( GetCanonicalFont( GetSettings().GetStyleSettings() ) ); - if ( IsControlFont() ) - aFont.Merge( GetControlFont() ); - return aFont; - } -}; - -#endif // _SV_CTRL_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/cursor.hxx b/vcl/inc/vcl/cursor.hxx deleted file mode 100644 index d0433858c3b3..000000000000 --- a/vcl/inc/vcl/cursor.hxx +++ /dev/null @@ -1,114 +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 . - */ - -#ifndef _SV_CURSOR_HXX -#define _SV_CURSOR_HXX - -#include <tools/gen.hxx> -#include <tools/link.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> - -class AutoTimer; -struct ImplCursorData; -class Window; - -// ----------------- -// - Cursor-Styles - -// ----------------- - -#define CURSOR_SHADOW ((sal_uInt16)0x0001) -#define CURSOR_DIRECTION_NONE ((unsigned char)0x00) -#define CURSOR_DIRECTION_LTR ((unsigned char)0x01) -#define CURSOR_DIRECTION_RTL ((unsigned char)0x02) - -// ---------- -// - Cursor - -// ---------- - -class VCL_DLLPUBLIC Cursor -{ -private: - ImplCursorData* mpData; // Interne Daten - Window* mpWindow; // Window (only for shadow cursor) - long mnSlant; // Schraegstellung - long mnOffsetY; // Offset fuer Rotation - Size maSize; // Groesse - Point maPos; // Position - short mnOrientation; // Rotation - sal_uInt16 mnStyle; // Style - bool mbVisible; // Ist Cursor sichtbar - unsigned char mnDirection; // indicates direction - -public: - SAL_DLLPRIVATE void ImplDraw(); - SAL_DLLPRIVATE void ImplRestore(); - DECL_DLLPRIVATE_LINK( ImplTimerHdl, void* ); - SAL_DLLPRIVATE void ImplShow( bool bDrawDirect = true ); - SAL_DLLPRIVATE void ImplHide( bool bStopTimer ); - SAL_DLLPRIVATE void ImplResume( bool bRestore = false ); - SAL_DLLPRIVATE bool ImplSuspend(); - SAL_DLLPRIVATE void ImplNew(); - -public: - Cursor(); - Cursor( const Cursor& rCursor ); - ~Cursor(); - - void SetStyle( sal_uInt16 nStyle ); - sal_uInt16 GetStyle() const { return mnStyle; } - - void Show(); - void Hide(); - bool IsVisible() const { return mbVisible; } - - void SetWindow( Window* pWindow ); - Window* GetWindow() const { return mpWindow; } - - void SetPos( const Point& rNewPos ); - const Point& GetPos() const { return maPos; } - long GetOffsetY() const { return mnOffsetY; } - - void SetSize( const Size& rNewSize ); - const Size& GetSize() const { return maSize; } - void SetWidth( long nNewWidth ); - long GetWidth() const { return maSize.Width(); } - long GetHeight() const { return maSize.Height(); } - - long GetSlant() const { return mnSlant; } - - void SetOrientation( short nOrientation = 0 ); - short GetOrientation() const { return mnOrientation; } - - void SetDirection( unsigned char nDirection = 0 ); - unsigned char GetDirection() const { return mnDirection; } - - Cursor& operator=( const Cursor& rCursor ); - bool operator==( const Cursor& rCursor ) const; - bool operator!=( const Cursor& rCursor ) const - { return !(Cursor::operator==( rCursor )); } - -private: - void ImplDoShow( bool bDrawDirect, bool bRestore ); - bool ImplDoHide( bool bStop ); -}; - -#endif // _SV_CURSOR_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/cvtgrf.hxx b/vcl/inc/vcl/cvtgrf.hxx deleted file mode 100644 index ee9f21870010..000000000000 --- a/vcl/inc/vcl/cvtgrf.hxx +++ /dev/null @@ -1,57 +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 . - */ - -#ifndef _SV_CVTGRF_HXX -#define _SV_CVTGRF_HXX - -#include <vcl/dllapi.h> -#include <tools/link.hxx> -#include <vcl/salctype.hxx> - -// -------------------- -// - GraphicConverter - -// -------------------- - -struct ConvertData; -class Graphic; - -class VCL_DLLPUBLIC GraphicConverter -{ -private: - - Link maFilterHdl; - ConvertData* mpConvertData; - -public: - - GraphicConverter(); - ~GraphicConverter(); - - static sal_uLong Import( SvStream& rIStm, Graphic& rGraphic, sal_uLong nFormat = CVT_UNKNOWN ); - static sal_uLong Export( SvStream& rOStm, const Graphic& rGraphic, sal_uLong nFormat ); - - ConvertData* GetConvertData() { return mpConvertData; } - - void SetFilterHdl( const Link& rLink ) { maFilterHdl = rLink; } - const Link& GetFilterHdl() const { return maFilterHdl; } -}; - -#endif // _SV_CVTGRF_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/cvtsvm.hxx b/vcl/inc/vcl/cvtsvm.hxx deleted file mode 100644 index 2dc9435cdfa9..000000000000 --- a/vcl/inc/vcl/cvtsvm.hxx +++ /dev/null @@ -1,102 +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 . - */ - -#ifndef _SV_CVTMTF_HXX -#define _SV_CVTMTF_HXX - -#include <stack> -#include <vcl/dllapi.h> -#include <vcl/metaact.hxx> -#include <vcl/gdimtf.hxx> - -#define CONVERT_TO_SVM1 0x00000001UL -#define CONVERT_FROM_SVM1 0x00000002UL - -#define GDI_PIXEL_ACTION 1 -#define GDI_POINT_ACTION 2 -#define GDI_LINE_ACTION 3 -#define GDI_RECT_ACTION 4 -#define GDI_ELLIPSE_ACTION 5 -#define GDI_ARC_ACTION 6 -#define GDI_PIE_ACTION 7 -#define GDI_INVERTRECT_ACTION 8 -#define GDI_HIGHLIGHTRECT_ACTION 9 -#define GDI_POLYLINE_ACTION 10 -#define GDI_POLYGON_ACTION 11 -#define GDI_POLYPOLYGON_ACTION 12 -#define GDI_TEXT_ACTION 13 -#define GDI_TEXTARRAY_ACTION 14 -#define GDI_STRETCHTEXT_ACTION 15 -#define GDI_ICON_ACTION 16 -#define GDI_BITMAP_ACTION 17 -#define GDI_BITMAPSCALE_ACTION 18 -#define GDI_PEN_ACTION 19 -#define GDI_FONT_ACTION 20 -#define GDI_BACKBRUSH_ACTION 21 -#define GDI_FILLBRUSH_ACTION 22 -#define GDI_MAPMODE_ACTION 23 -#define GDI_CLIPREGION_ACTION 24 -#define GDI_RASTEROP_ACTION 25 -#define GDI_PUSH_ACTION 26 -#define GDI_POP_ACTION 27 -#define GDI_MOVECLIPREGION_ACTION 28 -#define GDI_ISECTCLIPREGION_ACTION 29 -#define GDI_MTF_ACTION 30 -#define GDI_BITMAPSCALEPART_ACTION 32 -#define GDI_GRADIENT_ACTION 33 - -#define GDI_TRANSPARENT_COMMENT 1024 -#define GDI_HATCH_COMMENT 1025 -#define GDI_REFPOINT_COMMENT 1026 -#define GDI_TEXTLINECOLOR_COMMENT 1027 -#define GDI_TEXTLINE_COMMENT 1028 -#define GDI_FLOATTRANSPARENT_COMMENT 1029 -#define GDI_GRADIENTEX_COMMENT 1030 -#define GDI_COMMENT_COMMENT 1031 -#define GDI_UNICODE_COMMENT 1032 - -#define GDI_LINEJOIN_ACTION 1033 -#define GDI_EXTENDEDPOLYGON_ACTION 1034 -#define GDI_LINEDASHDOT_ACTION 1035 - -#define GDI_LINECAP_ACTION 1036 - -class VCL_PLUGIN_PUBLIC SVMConverter -{ -private: - SAL_DLLPRIVATE void ImplConvertFromSVM1( SvStream& rIStm, GDIMetaFile& rMtf ); - SAL_DLLPRIVATE void ImplConvertToSVM1( SvStream& rOStm, GDIMetaFile& rMtf ); - SAL_DLLPRIVATE sal_uLong ImplWriteActions( SvStream& rOStm, GDIMetaFile& rMtf, - VirtualDevice& rSaveVDev, sal_Bool& rRop_0_1, - Color& rLineCol, ::std::stack<Color*>& rLineColStack, - rtl_TextEncoding& rActualCharSet ); - -public: - SVMConverter( SvStream& rIStm, GDIMetaFile& rMtf, sal_uLong nConvertMode ); - ~SVMConverter() {} - -private: - // Not implemented - SVMConverter( const SVMConverter& ); - SVMConverter& operator=( const SVMConverter& ); -}; - -#endif // _SV_CVTMTF_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/decoview.hxx b/vcl/inc/vcl/decoview.hxx deleted file mode 100644 index 31e6529c5e55..000000000000 --- a/vcl/inc/vcl/decoview.hxx +++ /dev/null @@ -1,102 +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 . - */ - -#ifndef _SV_DECOVIEW_HXX -#define _SV_DECOVIEW_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <rsc/rsc-vcl-shared-types.hxx> - -class Rectangle; -class Point; -class Color; -class OutputDevice; - -// ------------------------ -// - DecorationView-Types - -// ------------------------ - -// Flags for DrawSymbol() -#define SYMBOL_DRAW_MONO ((sal_uInt16)0x0001) -#define SYMBOL_DRAW_DISABLE ((sal_uInt16)0x0002) - -// Flags for DrawFrame() -#define FRAME_DRAW_IN ((sal_uInt16)0x0001) -#define FRAME_DRAW_OUT ((sal_uInt16)0x0002) -#define FRAME_DRAW_GROUP ((sal_uInt16)0x0003) -#define FRAME_DRAW_DOUBLEIN ((sal_uInt16)0x0004) -#define FRAME_DRAW_DOUBLEOUT ((sal_uInt16)0x0005) -#define FRAME_DRAW_NWF ((sal_uInt16)0x0006) -#define FRAME_DRAW_MENU ((sal_uInt16)0x0010) -#define FRAME_DRAW_WINDOWBORDER ((sal_uInt16)0x0020) -#define FRAME_DRAW_BORDERWINDOWBORDER ((sal_uInt16)0x0040) -#define FRAME_DRAW_MONO ((sal_uInt16)0x1000) -#define FRAME_DRAW_NODRAW ((sal_uInt16)0x8000) -#define FRAME_DRAW_STYLE ((sal_uInt16)0x000F) - -// Flags for DrawHighlightFrame() -#define FRAME_HIGHLIGHT_IN ((sal_uInt16)0x0001) -#define FRAME_HIGHLIGHT_OUT ((sal_uInt16)0x0002) -#define FRAME_HIGHLIGHT_TESTBACKGROUND ((sal_uInt16)0x4000) -#define FRAME_HIGHLIGHT_STYLE ((sal_uInt16)0x000F) - -// Flags for DrawButton() -#define BUTTON_DRAW_DEFAULT ((sal_uInt16)0x0001) -#define BUTTON_DRAW_NOLIGHTBORDER ((sal_uInt16)0x0002) -#define BUTTON_DRAW_PRESSED ((sal_uInt16)0x0004) -#define BUTTON_DRAW_CHECKED ((sal_uInt16)0x0008) -#define BUTTON_DRAW_DONTKNOW ((sal_uInt16)0x0010) -#define BUTTON_DRAW_MONO ((sal_uInt16)0x0020) -#define BUTTON_DRAW_NOFILL ((sal_uInt16)0x0040) -#define BUTTON_DRAW_DISABLED ((sal_uInt16)0x0080) -#define BUTTON_DRAW_HIGHLIGHT ((sal_uInt16)0x0100) -#define BUTTON_DRAW_FLAT ((sal_uInt16)0x0200) -#define BUTTON_DRAW_NOLEFTLIGHTBORDER ((sal_uInt16)0x1000) -#define BUTTON_DRAW_NOTEXT ((sal_uInt16)0x2000) -#define BUTTON_DRAW_NOIMAGE ((sal_uInt16)0x4000) - -// ------------------ -// - DecorationView - -// ------------------ - -class VCL_DLLPUBLIC DecorationView -{ -private: - OutputDevice* mpOutDev; - -public: - DecorationView( OutputDevice* pOutDev ) - { mpOutDev = pOutDev; } - - void DrawSymbol( const Rectangle& rRect, SymbolType eType, - const Color& rColor, sal_uInt16 nStyle = 0 ); - void DrawFrame( const Rectangle& rRect, - const Color& rLeftTopColor, - const Color& rRightBottomColor ); - void DrawHighlightFrame( const Rectangle& rRect, - sal_uInt16 nStyle = FRAME_HIGHLIGHT_OUT ); - Rectangle DrawFrame( const Rectangle& rRect, sal_uInt16 nStyle = FRAME_DRAW_OUT ); - Rectangle DrawButton( const Rectangle& rRect, sal_uInt16 nStyle ); - void DrawSeparator( const Point& rStart, const Point& rStop, bool bVertical = true ); -}; - -#endif // _SV_DECOVIEW_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/dialog.hxx b/vcl/inc/vcl/dialog.hxx deleted file mode 100644 index d7994c61580e..000000000000 --- a/vcl/inc/vcl/dialog.hxx +++ /dev/null @@ -1,185 +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 . - */ - -#ifndef _SV_DIALOG_HXX -#define _SV_DIALOG_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/builder.hxx> -#include <vcl/syswin.hxx> -#include <vcl/timer.hxx> - -// parameter to pass to the dialog constructor if really no parent is wanted -// whereas NULL chooses the default dialog parent -#define DIALOG_NO_PARENT ((Window*)0xffffffff) - -// ---------- -// - Dialog - -// ---------- -struct DialogImpl; -class VclBox; -class VclButtonBox; -class VclContainer; - -class VCL_DLLPUBLIC Dialog - : public SystemWindow - , public VclBuilderContainer -{ -private: - Window* mpDialogParent; - Dialog* mpPrevExecuteDlg; - DialogImpl* mpDialogImpl; - long mnMousePositioned; - sal_Bool mbInExecute; - sal_Bool mbOldSaveBack; - sal_Bool mbInClose; - sal_Bool mbModalMode; - bool mbIsDefferedInit; - bool mbIsCalculatingInitialLayoutSize; - Timer maLayoutTimer; - VclButtonBox* mpActionArea; - VclBox* mpContentArea; - - SAL_DLLPRIVATE void ImplInitDialogData(); - SAL_DLLPRIVATE void ImplInitSettings(); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE Dialog (const Dialog &); - SAL_DLLPRIVATE Dialog & operator= (const Dialog &); - - DECL_DLLPRIVATE_LINK( ImplAsyncCloseHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplHandleLayoutTimerHdl, void* ); - -protected: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplDialogRes( const ResId& rResId ); - SAL_DLLPRIVATE WinBits init(Window *pParent, const ResId& rResId); - - SAL_DLLPRIVATE void setPosSizeOnContainee(Size aSize, VclContainer &rBox); -public: - SAL_DLLPRIVATE sal_Bool IsInClose() const { return mbInClose; } - SAL_DLLPRIVATE bool hasPendingLayout() const { return maLayoutTimer.IsActive(); } - SAL_DLLPRIVATE void doDeferredInit(bool bResizable); - SAL_DLLPRIVATE bool isDeferredInit() const { return mbIsDefferedInit; } - -protected: - Dialog( WindowType nType ); - Dialog( Window* pParent, const OString& rID, const OUString& rUIXMLDescription, WindowType nType ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - -protected: - friend class VclBuilder; - void set_action_area(VclButtonBox *pBox); - void set_content_area(VclBox *pBox); - -public: - Dialog( Window* pParent, WinBits nStyle = WB_STDDIALOG ); - Dialog( Window* pParent, const OString& rID, const OUString& rUIXMLDescription ); - virtual ~Dialog(); - - virtual long Notify( NotifyEvent& rNEvt ); - virtual void StateChanged( StateChangedType nStateChange ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual Size GetOptimalSize() const; - virtual void Resize(); - bool isLayoutEnabled() const; - void setOptimalLayoutSize(); - bool isCalculatingInitialLayoutSize() const { return mbIsCalculatingInitialLayoutSize; } - virtual void queue_layout(); - virtual bool set_property(const OString &rKey, const OString &rValue); - VclButtonBox* get_action_area(); - VclBox* get_content_area(); - - virtual sal_Bool Close(); - - virtual short Execute(); - sal_Bool IsInExecute() const { return mbInExecute; } - - //////////////////////////////////////// - // Dialog::Execute replacement API -public: - // Link impl: DECL_LINK( MyEndDialogHdl, Dialog* ); <= param is dialog just ended - virtual void StartExecuteModal( const Link& rEndDialogHdl ); - long GetResult() const; -private: - sal_Bool ImplStartExecuteModal(); - void ImplEndExecuteModal(); -public: - - // Dialog::Execute replacement API - //////////////////////////////////////// - - void EndDialog( long nResult = 0 ); - static void EndAllDialogs( Window* pParent=NULL ); - - void GetDrawWindowBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, - sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; - - void SetModalInputMode( sal_Bool bModal ); - void SetModalInputMode( sal_Bool bModal, sal_Bool bSubModalDialogs ); - sal_Bool IsModalInputMode() const { return mbModalMode; } - - void GrabFocusToFirstControl(); -}; - -// ------------------ -// - ModelessDialog - -// ------------------ - -class VCL_DLLPUBLIC ModelessDialog : public Dialog -{ - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE ModelessDialog (const ModelessDialog &); - SAL_DLLPRIVATE ModelessDialog & operator= (const ModelessDialog &); - -public: - ModelessDialog( Window* pParent, const ResId& rResId ); - ModelessDialog( Window* pParent, const OString& rID, const OUString& rUIXMLDescription ); -}; - -// --------------- -// - ModalDialog - -// --------------- - -class VCL_DLLPUBLIC ModalDialog : public Dialog -{ -public: - ModalDialog( Window* pParent, WinBits nStyle = WB_STDMODAL ); - ModalDialog( Window* pParent, const OString& rID, const OUString& rUIXMLDescription ); - ModalDialog( Window* pParent, const ResId& rResId ); - -protected: - using Window::Show; - void Show( sal_Bool bVisible = sal_True ); - using Window::Hide; - void Hide(); - -private: - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE ModalDialog (const ModalDialog &); - SAL_DLLPRIVATE ModalDialog & operator= (const ModalDialog &); -}; - -#endif // _SV_DIALOG_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/displayconnectiondispatch.hxx b/vcl/inc/vcl/displayconnectiondispatch.hxx deleted file mode 100644 index 06009c15867a..000000000000 --- a/vcl/inc/vcl/displayconnectiondispatch.hxx +++ /dev/null @@ -1,46 +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 . - */ - -#ifndef INCLUDED_VCL_DISPLAYCONNECTIONDISPATCH_HXX -#define INCLUDED_VCL_DISPLAYCONNECTIONDISPATCH_HXX - -#include "sal/config.h" - -#include "com/sun/star/awt/XDisplayConnection.hpp" -#include "cppuhelper/implbase1.hxx" - -namespace vcl { - -class DisplayConnectionDispatch: - public cppu::WeakImplHelper1< com::sun::star::awt::XDisplayConnection > -{ -public: - virtual bool dispatchEvent(void * pData, int nBytes) = 0; - - virtual bool dispatchErrorEvent(void * pData, int nBytes) = 0; - -protected: - virtual ~DisplayConnectionDispatch() {} -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/dllapi.h b/vcl/inc/vcl/dllapi.h deleted file mode 100644 index f501125e72f9..000000000000 --- a/vcl/inc/vcl/dllapi.h +++ /dev/null @@ -1,40 +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 . - */ - -#ifndef _VCL_DLLAPI_H -#define _VCL_DLLAPI_H - -#include "sal/config.h" -#include "sal/types.h" - -#if defined VCL_DLLIMPLEMENTATION -#define VCL_DLLPUBLIC SAL_DLLPUBLIC_EXPORT -#else -#define VCL_DLLPUBLIC SAL_DLLPUBLIC_IMPORT -#endif - -#if defined UNX && ! defined MACOS -#define VCL_PLUGIN_PUBLIC VCL_DLLPUBLIC -#else -#define VCL_PLUGIN_PUBLIC SAL_DLLPRIVATE -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/dndhelp.hxx b/vcl/inc/vcl/dndhelp.hxx deleted file mode 100644 index 2504f697f2d7..000000000000 --- a/vcl/inc/vcl/dndhelp.hxx +++ /dev/null @@ -1,119 +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 . - */ - -#ifndef _VCL_DNDHELP_HXX -#define _VCL_DNDHELP_HXX - -#include <vcl/dllapi.h> -#include <cppuhelper/weak.hxx> -#include <com/sun/star/datatransfer/dnd/XDragGestureListener.hpp> -#include <com/sun/star/datatransfer/dnd/XDragSourceListener.hpp> -#include <com/sun/star/datatransfer/dnd/XDropTargetListener.hpp> - -namespace com { -namespace sun { -namespace star { - -namespace datatransfer { -namespace dnd { - struct DragGestureEvent; - struct DragSourceDragEvent; - struct DragSourceDropEvent; - struct DragSourceEvent; - struct DropTargetDragEvent; - struct DropTargetDragEnterEvent; - struct DropTargetDropEvent; - struct DropTargetEvent; -}} - -}}} - -namespace vcl -{ - -namespace unohelper -{ - -class VCL_DLLPUBLIC DragAndDropClient -{ -public: - virtual ~DragAndDropClient(); - - // ::com::sun::star::datatransfer::dnd::XDragGestureListener - virtual void dragGestureRecognized( const ::com::sun::star::datatransfer::dnd::DragGestureEvent& dge ) throw (::com::sun::star::uno::RuntimeException); - - // ::com::sun::star::datatransfer::dnd::XDragSourceListener - virtual void dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourceDropEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragEnter( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragExit( const ::com::sun::star::datatransfer::dnd::DragSourceEvent& dse ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragOver( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); - virtual void dropActionChanged( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); - - // ::com::sun::star::datatransfer::dnd::XDropTargetListener - virtual void drop( const ::com::sun::star::datatransfer::dnd::DropTargetDropEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragEnter( const ::com::sun::star::datatransfer::dnd::DropTargetDragEnterEvent& dtdee ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragExit( const ::com::sun::star::datatransfer::dnd::DropTargetEvent& dte ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragOver( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); - virtual void dropActionChanged( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); -}; - -class VCL_DLLPUBLIC DragAndDropWrapper : - public ::com::sun::star::datatransfer::dnd::XDragGestureListener, - public ::com::sun::star::datatransfer::dnd::XDragSourceListener, - public ::com::sun::star::datatransfer::dnd::XDropTargetListener, - public ::cppu::OWeakObject -{ -private: - DragAndDropClient* mpClient; - -public: - DragAndDropWrapper( DragAndDropClient* pClient ); - ~DragAndDropWrapper(); - - // ::com::sun::star::uno::XInterface - ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - void SAL_CALL acquire() throw() { OWeakObject::acquire(); } - void SAL_CALL release() throw() { OWeakObject::release(); } - - // ::com::sun::star::lang::XEventListener - void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException); - - // ::com::sun::star::datatransfer::dnd::XDragGestureListener - void SAL_CALL dragGestureRecognized( const ::com::sun::star::datatransfer::dnd::DragGestureEvent& dge ) throw (::com::sun::star::uno::RuntimeException); - - // ::com::sun::star::datatransfer::dnd::XDragSourceListener - void SAL_CALL dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourceDropEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); - void SAL_CALL dragEnter( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); - void SAL_CALL dragExit( const ::com::sun::star::datatransfer::dnd::DragSourceEvent& dse ) throw (::com::sun::star::uno::RuntimeException); - void SAL_CALL dragOver( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); - void SAL_CALL dropActionChanged( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); - - // ::com::sun::star::datatransfer::dnd::XDropTargetListener - void SAL_CALL drop( const ::com::sun::star::datatransfer::dnd::DropTargetDropEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); - void SAL_CALL dragEnter( const ::com::sun::star::datatransfer::dnd::DropTargetDragEnterEvent& dtdee ) throw (::com::sun::star::uno::RuntimeException); - void SAL_CALL dragExit( const ::com::sun::star::datatransfer::dnd::DropTargetEvent& dte ) throw (::com::sun::star::uno::RuntimeException); - void SAL_CALL dragOver( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); - void SAL_CALL dropActionChanged( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); -}; - -}} // namespace vcl::unohelper - -#endif // _VCL_DNDHELP_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/dockingarea.hxx b/vcl/inc/vcl/dockingarea.hxx deleted file mode 100644 index a5778519e3ae..000000000000 --- a/vcl/inc/vcl/dockingarea.hxx +++ /dev/null @@ -1,59 +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 . - */ - -#ifndef _SV_DOCKINGAREA_HXX -#define _SV_DOCKINGAREA_HXX - -#include <tools/solar.h> -#include <vcl/window.hxx> - -// ------------------------------------------ -// A simple container for docked toolbars -// - its main purpose is theming support -// ------------------------------------------ - -class VCL_DLLPUBLIC DockingAreaWindow : public Window -{ - class ImplData; - -private: - ImplData* mpImplData; - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE DockingAreaWindow (const DockingAreaWindow &); - SAL_DLLPRIVATE DockingAreaWindow & operator= (const DockingAreaWindow &); - -public: - DockingAreaWindow( Window *pParent ); - ~DockingAreaWindow(); - - void SetAlign( WindowAlign eNewAlign ); - WindowAlign GetAlign() const; - sal_Bool IsHorizontal() const; - - virtual void Paint( const Rectangle& rRect ); - virtual void Resize(); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual void StateChanged( StateChangedType nType ); - -}; - -#endif // _SV_SYSWIN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/dockwin.hxx b/vcl/inc/vcl/dockwin.hxx deleted file mode 100644 index 19b516b004a3..000000000000 --- a/vcl/inc/vcl/dockwin.hxx +++ /dev/null @@ -1,420 +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 . - */ - -#ifndef _SV_DOCKWIN_HXX -#define _SV_DOCKWIN_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/floatwin.hxx> -#include <vector> - -// data to be sent with docking events -struct DockingData -{ - Point maMousePos; // in - Rectangle maTrackRect; // in/out - sal_Bool mbFloating; // out - sal_Bool mbLivemode; // in - sal_Bool mbInteractive; // in - - DockingData() {}; - DockingData( const Point& rPt, const Rectangle& rRect, sal_Bool b) : - maMousePos( rPt ), maTrackRect( rRect ), mbFloating( b ), mbLivemode( sal_False ), mbInteractive( sal_True ) - {}; -}; - -struct EndDockingData -{ - Rectangle maWindowRect; // in - sal_Bool mbFloating; // in - sal_Bool mbCancelled; // in - - EndDockingData() {}; - EndDockingData( const Rectangle& rRect, sal_Bool b, sal_Bool bCancelled ) : - maWindowRect( rRect ), mbFloating( b ), mbCancelled( bCancelled ) - {}; -}; - -struct EndPopupModeData -{ - Point maFloatingPos; // in - sal_Bool mbTearoff; // in - - EndPopupModeData() {}; - EndPopupModeData( const Point& rPos, sal_Bool bTearoff ) : - maFloatingPos( rPos ), mbTearoff( bTearoff ) - {}; -}; - -/** ImplDockingWindowWrapper - * - * ImplDockingWindowWrapper obsoletes the DockingWindow class. - * It is better because it can make a "normal window" dockable. - * All DockingWindows should be converted the new class. - */ - -class ImplDockingWindowWrapper -{ - friend class Window; - friend class DockingManager; - friend class DockingWindow; - -private: - - // the original 'Docking'window - Window *mpDockingWindow; - - // the original DockingWindow members - FloatingWindow* mpFloatWin; - Window* mpOldBorderWin; - Window* mpParent; - Point maFloatPos; - Point maDockPos; - Point maMouseOff; - Point maMouseStart; - Size maRollUpOutSize; - Size maMinOutSize; - Size maMaxOutSize; - Rectangle maDragArea; - long mnTrackX; - long mnTrackY; - long mnTrackWidth; - long mnTrackHeight; - sal_Int32 mnDockLeft; - sal_Int32 mnDockTop; - sal_Int32 mnDockRight; - sal_Int32 mnDockBottom; - WinBits mnFloatBits; - sal_Bool mbDockCanceled:1, - mbFloatPrevented:1, - mbDockable:1, - mbDocking:1, - mbDragFull:1, - mbLastFloatMode:1, - mbStartFloat:1, - mbTrackDock:1, - mbPined:1, - mbRollUp:1, - mbDockBtn:1, - mbHideBtn:1, - mbStartDockingEnabled:1, - mbLocked:1; - - void ImplInitData(); - - DECL_LINK( PopupModeEnd, void* ); - void ImplEnableStartDocking( sal_Bool bEnable = sal_True ) { mbStartDockingEnabled = bEnable; } - sal_Bool ImplStartDockingEnabled() { return mbStartDockingEnabled; } - -public: - ImplDockingWindowWrapper( const Window *pWindow ); - virtual ~ImplDockingWindowWrapper(); - - Window* GetWindow() { return mpDockingWindow; } - sal_Bool ImplStartDocking( const Point& rPos ); - - // those methods actually call the corresponding handlers - void StartDocking( const Point& rPos, Rectangle& rRect ); - sal_Bool Docking( const Point& rPos, Rectangle& rRect ); - void EndDocking( const Rectangle& rRect, sal_Bool bFloatMode ); - sal_Bool PrepareToggleFloatingMode(); - void ToggleFloatingMode(); - - void SetDragArea( const Rectangle& rRect ); - Rectangle GetDragArea() const; - - void Lock(); - void Unlock(); - sal_Bool IsLocked() const; - - void StartPopupMode( ToolBox* pParentToolBox, sal_uLong nPopupModeFlags ); - sal_Bool IsInPopupMode() const; - - void TitleButtonClick( sal_uInt16 nButton ); - void Pin(); - void Roll(); - void PopupModeEnd(); - void Resizing( Size& rSize ); - sal_Bool Close(); - void Tracking( const TrackingEvent& rTEvt ); - long Notify( NotifyEvent& rNEvt ); - - void ShowTitleButton( sal_uInt16 nButton, sal_Bool bVisible = sal_True ); - - void SetMinOutputSizePixel( const Size& rSize ); - - void SetMaxOutputSizePixel( const Size& rSize ); - - sal_Bool IsDocking() const { return mbDocking; } - sal_Bool IsDockable() const { return mbDockable; } - sal_Bool IsDockingCanceled() const { return mbDockCanceled; } - sal_Bool IsFloatingPrevented() const { return mbFloatPrevented; } - - void SetFloatingMode( sal_Bool bFloatMode = sal_False ); - sal_Bool IsFloatingMode() const; - FloatingWindow* GetFloatingWindow() const { return mpFloatWin; } - - void SetFloatStyle( WinBits nWinStyle ); - WinBits GetFloatStyle() const; - - virtual void setPosSizePixel( long nX, long nY, - long nWidth, long nHeight, - sal_uInt16 nFlags = WINDOW_POSSIZE_ALL ); - void SetPosSizePixel( const Point& rNewPos, - const Size& rNewSize ) - { mpDockingWindow->SetPosSizePixel( rNewPos, rNewSize ); } - Point GetPosPixel() const; - Size GetSizePixel() const; -}; - -class VCL_DLLPUBLIC DockingManager -{ -protected: - ::std::vector<ImplDockingWindowWrapper *> mDockingWindows; - -public: - DockingManager(); - ~DockingManager(); - - void AddWindow( const Window *pWin ); - void RemoveWindow( const Window *pWin ); - - ImplDockingWindowWrapper* GetDockingWindowWrapper( const Window *pWin ); - sal_Bool IsDockable( const Window *pWin ); - - sal_Bool IsFloating( const Window *pWin ); - void SetFloatingMode( const Window *pWin, sal_Bool bFloating ); - - void Lock( const Window *pWin ); - void Unlock( const Window *pWin ); - sal_Bool IsLocked( const Window *pWin ); - - void StartPopupMode( ToolBox *pParentToolBox, const Window *pWin ); - void StartPopupMode( ToolBox *pParentToolBox, const Window *pWin, sal_uLong nPopupModeFlags ); - - sal_Bool IsInPopupMode( const Window *pWin ); - void EndPopupMode( const Window *pWin ); - - // required because those methods are not virtual in Window (!!!) and must - // be availbale from the toolkit - void SetPosSizePixel( Window *pWin, long nX, long nY, - long nWidth, long nHeight, - sal_uInt16 nFlags = WINDOW_POSSIZE_ALL ); - Rectangle GetPosSizePixel( const Window *pWin ); -}; - -// ----------------- -// - DockingWindow - -// ----------------- - -class VCL_DLLPUBLIC DockingWindow : public Window -{ - class ImplData; -private: - FloatingWindow* mpFloatWin; - Window* mpOldBorderWin; - ImplData* mpImplData; - Point maFloatPos; - Point maDockPos; - Point maMouseOff; - Point maMouseStart; - Size maRollUpOutSize; - Size maMinOutSize; - long mnTrackX; - long mnTrackY; - long mnTrackWidth; - long mnTrackHeight; - sal_Int32 mnDockLeft; - sal_Int32 mnDockTop; - sal_Int32 mnDockRight; - sal_Int32 mnDockBottom; - WinBits mnFloatBits; - sal_Bool mbDockCanceled:1, - mbDockPrevented:1, - mbFloatPrevented:1, - mbDockable:1, - mbDocking:1, - mbDragFull:1, - mbLastFloatMode:1, - mbStartFloat:1, - mbTrackDock:1, - mbPined:1, - mbRollUp:1, - mbDockBtn:1, - mbHideBtn:1; - - SAL_DLLPRIVATE void ImplInitDockingWindowData(); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE DockingWindow (const DockingWindow &); - SAL_DLLPRIVATE DockingWindow & operator= (const DockingWindow &); - -protected: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings(); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - SAL_DLLPRIVATE sal_Bool ImplStartDocking( const Point& rPos ); - -protected: - DockingWindow( WindowType nType ); - -public: - DockingWindow( Window* pParent, WinBits nStyle = WB_STDDOCKWIN ); - DockingWindow( Window* pParent, const ResId& rResId ); - ~DockingWindow(); - - virtual void StartDocking(); - virtual sal_Bool Docking( const Point& rPos, Rectangle& rRect ); - virtual void EndDocking( const Rectangle& rRect, sal_Bool bFloatMode ); - virtual sal_Bool PrepareToggleFloatingMode(); - virtual void ToggleFloatingMode(); - - virtual void TitleButtonClick( sal_uInt16 nButton ); - virtual void Pin(); - virtual void Roll(); - virtual void PopupModeEnd(); - virtual void Resizing( Size& rSize ); - virtual sal_Bool Close(); - virtual void Tracking( const TrackingEvent& rTEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - void SetPin( sal_Bool bPin ); - sal_Bool IsPined() const; - - void RollUp(); - void RollDown(); - sal_Bool IsRollUp() const; - - void SetRollUpOutputSizePixel( const Size& rSize ); - Size GetRollUpOutputSizePixel() const; - - void SetMinOutputSizePixel( const Size& rSize ); - const Size& GetMinOutputSizePixel() const; - - void SetMaxOutputSizePixel( const Size& rSize ); - - sal_Bool IsDocking() const { return mbDocking; } - sal_Bool IsDockable() const { return mbDockable; } - sal_Bool IsDockingCanceled() const { return mbDockCanceled; } - sal_Bool IsDockingPrevented() const { return mbDockPrevented; } - sal_Bool IsFloatingPrevented() const { return mbFloatPrevented; } - - void SetFloatingMode( sal_Bool bFloatMode = sal_False ); - sal_Bool IsFloatingMode() const; - FloatingWindow* GetFloatingWindow() const { return mpFloatWin; } - - void SetFloatingPos( const Point& rNewPos ); - Point GetFloatingPos() const; - - void SetFloatStyle( WinBits nWinStyle ); - WinBits GetFloatStyle() const; - - virtual void setPosSizePixel( long nX, long nY, - long nWidth, long nHeight, - sal_uInt16 nFlags = WINDOW_POSSIZE_ALL ); - void SetPosSizePixel( const Point& rNewPos, - const Size& rNewSize ) - { Window::SetPosSizePixel( rNewPos, rNewSize ); } - Point GetPosPixel() const; - Size GetSizePixel() const; - void SetOutputSizePixel( const Size& rNewSize ); - Size GetOutputSizePixel() const; -}; - -inline void DockingWindow::SetPin( sal_Bool bPin ) -{ - if ( mpFloatWin ) - mpFloatWin->SetPin( bPin ); - mbPined = bPin; -} - -inline sal_Bool DockingWindow::IsPined() const -{ - if ( mpFloatWin ) - return mpFloatWin->IsPined(); - return mbPined; -} - -inline void DockingWindow::RollUp() -{ - if ( mpFloatWin ) - mpFloatWin->RollUp(); - mbRollUp = sal_True; -} - -inline void DockingWindow::RollDown() -{ - if ( mpFloatWin ) - mpFloatWin->RollDown(); - mbRollUp = sal_False; -} - -inline sal_Bool DockingWindow::IsRollUp() const -{ - if ( mpFloatWin ) - return mpFloatWin->IsRollUp(); - return mbRollUp; -} - -inline void DockingWindow::SetRollUpOutputSizePixel( const Size& rSize ) -{ - if ( mpFloatWin ) - mpFloatWin->SetRollUpOutputSizePixel( rSize ); - maRollUpOutSize = rSize; -} - -inline Size DockingWindow::GetRollUpOutputSizePixel() const -{ - if ( mpFloatWin ) - return mpFloatWin->GetRollUpOutputSizePixel(); - return maRollUpOutSize; -} - -inline void DockingWindow::SetMinOutputSizePixel( const Size& rSize ) -{ - if ( mpFloatWin ) - mpFloatWin->SetMinOutputSizePixel( rSize ); - maMinOutSize = rSize; -} - -inline const Size& DockingWindow::GetMinOutputSizePixel() const -{ - if ( mpFloatWin ) - return mpFloatWin->GetMinOutputSizePixel(); - return maMinOutSize; -} - -inline void DockingWindow::SetFloatingPos( const Point& rNewPos ) -{ - if ( mpFloatWin ) - mpFloatWin->SetPosPixel( rNewPos ); - else - maFloatPos = rNewPos; -} - - -#endif // _SV_DOCKWIN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/edit.hxx b/vcl/inc/vcl/edit.hxx deleted file mode 100644 index 488758ab7d4a..000000000000 --- a/vcl/inc/vcl/edit.hxx +++ /dev/null @@ -1,265 +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 . - */ - -#ifndef _SV_EDIT_HXX -#define _SV_EDIT_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/timer.hxx> -#include <vcl/ctrl.hxx> -#include <vcl/menu.hxx> -#include <vcl/dndhelp.hxx> -#include <com/sun/star/uno/Reference.h> - -namespace com { -namespace sun { -namespace star { -namespace i18n { - class XBreakIterator; - class XExtendedInputSequenceChecker; -}}}} - -struct DDInfo; -struct Impl_IMEInfos; - -// -------------- -// - Edit-Types - -// -------------- - -#define EDIT_NOLIMIT STRING_LEN -#define EDIT_UPDATEDATA_TIMEOUT 350 - -typedef XubString (*FncGetSpecialChars)( Window* pWin, const Font& rFont ); - -// -------- -// - Edit - -// -------- - -enum AutocompleteAction{ AUTOCOMPLETE_KEYINPUT, AUTOCOMPLETE_TABFORWARD, AUTOCOMPLETE_TABBACKWARD }; - -class VCL_DLLPUBLIC Edit : public Control, public vcl::unohelper::DragAndDropClient -{ -private: - Edit* mpSubEdit; - Timer* mpUpdateDataTimer; - DDInfo* mpDDInfo; - Impl_IMEInfos* mpIMEInfos; - OUStringBuffer maText; - OUString maPlaceholderText; - OUString maSaveValue; - OUString maUndoText; - OUString maRedoText; - long mnXOffset; - Selection maSelection; - sal_uInt16 mnAlign; - xub_StrLen mnMaxTextLen; - sal_Int32 mnWidthInChars; - AutocompleteAction meAutocompleteAction; - sal_Unicode mcEchoChar; - sal_Bool mbModified:1, - mbInternModified:1, - mbReadOnly:1, - mbInsertMode:1, - mbClickedInSelection:1, - mbIsSubEdit:1, - mbInMBDown:1, - mbActivePopup:1; - Link maModifyHdl; - Link maUpdateDataHdl; - Link maAutocompleteHdl; - - DECL_DLLPRIVATE_LINK( ImplUpdateDataHdl, void* ); - - SAL_DLLPRIVATE bool ImplTruncateToMaxLen( OUString&, sal_uInt32 nSelectionLen ) const; - SAL_DLLPRIVATE void ImplInitEditData(); - SAL_DLLPRIVATE void ImplModified(); - SAL_DLLPRIVATE OUString ImplGetText() const; - SAL_DLLPRIVATE void ImplRepaint( xub_StrLen nStart = 0, xub_StrLen nEnd = STRING_LEN, bool bLayout = false ); - SAL_DLLPRIVATE void ImplInvalidateOrRepaint( xub_StrLen nStart = 0, xub_StrLen nEnd = STRING_LEN ); - SAL_DLLPRIVATE void ImplDelete( const Selection& rSelection, sal_uInt8 nDirection, sal_uInt8 nMode ); - SAL_DLLPRIVATE void ImplSetText( const OUString& rStr, const Selection* pNewSelection = 0 ); - SAL_DLLPRIVATE void ImplInsertText( const OUString& rStr, const Selection* pNewSelection = 0, sal_Bool bIsUserInput = sal_False ); - SAL_DLLPRIVATE OUString ImplGetValidString( const OUString& rString ) const; - SAL_DLLPRIVATE void ImplClearBackground( long nXStart, long nXEnd ); - SAL_DLLPRIVATE void ImplPaintBorder( long nXStart, long nXEnd ); - SAL_DLLPRIVATE void ImplShowCursor( sal_Bool bOnlyIfVisible = sal_True ); - SAL_DLLPRIVATE void ImplAlign(); - SAL_DLLPRIVATE void ImplAlignAndPaint(); - SAL_DLLPRIVATE xub_StrLen ImplGetCharPos( const Point& rWindowPos ) const; - SAL_DLLPRIVATE void ImplSetCursorPos( xub_StrLen nChar, sal_Bool bSelect ); - SAL_DLLPRIVATE void ImplShowDDCursor(); - SAL_DLLPRIVATE void ImplHideDDCursor(); - SAL_DLLPRIVATE sal_Bool ImplHandleKeyEvent( const KeyEvent& rKEvt ); - SAL_DLLPRIVATE void ImplCopyToSelectionClipboard(); - SAL_DLLPRIVATE void ImplCopy( ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard >& rxClipboard ); - SAL_DLLPRIVATE void ImplPaste( ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard >& rxClipboard ); - SAL_DLLPRIVATE long ImplGetTextYPosition() const; - SAL_DLLPRIVATE ::com::sun::star::uno::Reference < ::com::sun::star::i18n::XExtendedInputSequenceChecker > ImplGetInputSequenceChecker() const; - SAL_DLLPRIVATE ::com::sun::star::uno::Reference < ::com::sun::star::i18n::XBreakIterator > ImplGetBreakIterator() const; - -protected: - using Control::ImplInitSettings; - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE void ImplSetSelection( const Selection& rSelection, sal_Bool bPaint = sal_True ); - SAL_DLLPRIVATE int ImplGetNativeControlType(); - SAL_DLLPRIVATE long ImplGetExtraOffset() const; - static SAL_DLLPRIVATE void ImplInvalidateOutermostBorder( Window* pWin ); - - ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragSourceListener > mxDnDListener; - - // DragAndDropClient - using vcl::unohelper::DragAndDropClient::dragEnter; - using vcl::unohelper::DragAndDropClient::dragExit; - using vcl::unohelper::DragAndDropClient::dragOver; - virtual void dragGestureRecognized( const ::com::sun::star::datatransfer::dnd::DragGestureEvent& dge ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourceDropEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); - virtual void drop( const ::com::sun::star::datatransfer::dnd::DropTargetDropEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragEnter( const ::com::sun::star::datatransfer::dnd::DropTargetDragEnterEvent& dtdee ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragExit( const ::com::sun::star::datatransfer::dnd::DropTargetEvent& dte ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragOver( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); - - protected: - virtual void FillLayoutData() const; - Edit( WindowType nType ); - -public: - // public because needed in button.cxx - SAL_DLLPRIVATE bool ImplUseNativeBorder( WinBits nStyle ); - - Edit( Window* pParent, WinBits nStyle = WB_BORDER ); - Edit( Window* pParent, const ResId& rResId ); - virtual ~Edit(); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void MouseButtonUp( const MouseEvent& rMEvt ); - virtual void KeyInput( const KeyEvent& rKEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Resize(); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void GetFocus(); - virtual void LoseFocus(); - virtual void Tracking( const TrackingEvent& rTEvt ); - virtual void Command( const CommandEvent& rCEvt ); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual Window* GetPreferredKeyInputWindow(); - - virtual void Modify(); - virtual void UpdateData(); - - static sal_Bool IsCharInput( const KeyEvent& rKEvt ); - - virtual void SetModifyFlag(); - virtual void ClearModifyFlag(); - virtual sal_Bool IsModified() const { return mpSubEdit ? mpSubEdit->mbModified : mbModified; } - - virtual void EnableUpdateData( sal_uLong nTimeout = EDIT_UPDATEDATA_TIMEOUT ); - virtual void DisableUpdateData() { delete mpUpdateDataTimer; mpUpdateDataTimer = NULL; } - virtual sal_uLong IsUpdateDataEnabled() const; - - void SetEchoChar( sal_Unicode c ); - sal_Unicode GetEchoChar() const { return mcEchoChar; } - - virtual void SetReadOnly( sal_Bool bReadOnly = sal_True ); - virtual sal_Bool IsReadOnly() const { return mbReadOnly; } - - void SetInsertMode( sal_Bool bInsert ); - sal_Bool IsInsertMode() const; - - virtual void SetMaxTextLen( xub_StrLen nMaxLen = EDIT_NOLIMIT ); - virtual xub_StrLen GetMaxTextLen() const { return mnMaxTextLen; } - - void SetWidthInChars(sal_Int32 nWidthInChars); - sal_Int32 GetWidthInChars() const { return mnWidthInChars; } - - virtual void SetSelection( const Selection& rSelection ); - virtual const Selection& GetSelection() const; - - virtual void ReplaceSelected( const OUString& rStr ); - virtual void DeleteSelected(); - virtual OUString GetSelected() const; - - virtual void Cut(); - virtual void Copy(); - virtual void Paste(); - void Undo(); - - virtual void SetText( const OUString& rStr ); - virtual void SetText( const OUString& rStr, const Selection& rNewSelection ); - virtual OUString GetText() const; - - virtual void SetPlaceholderText( const OUString& rStr ); - virtual OUString GetPlaceholderText() const; - - void SaveValue() { maSaveValue = GetText(); } - const OUString& GetSavedValue() const { return maSaveValue; } - - virtual void SetModifyHdl( const Link& rLink ) { maModifyHdl = rLink; } - virtual const Link& GetModifyHdl() const { return maModifyHdl; } - virtual void SetUpdateDataHdl( const Link& rLink ) { maUpdateDataHdl = rLink; } - - void SetSubEdit( Edit* pEdit ); - Edit* GetSubEdit() const { return mpSubEdit; } - - void SetAutocompleteHdl( const Link& rHdl ); - const Link& GetAutocompleteHdl() const { return maAutocompleteHdl; } - AutocompleteAction GetAutocompleteAction() const { return meAutocompleteAction; } - - virtual Size CalcMinimumSize() const; - virtual Size CalcMinimumSizeForText(const OUString &rString) const; - virtual Size GetOptimalSize() const; - virtual Size CalcSize( sal_uInt16 nChars ) const; - virtual xub_StrLen GetMaxVisChars() const; - - xub_StrLen GetCharPos( const Point& rWindowPos ) const; - - // shows a warning box saying "text too long, truncated" - static void ShowTruncationWarning( Window* pParent ); - - static void SetGetSpecialCharsFunction( FncGetSpecialChars fn ); - static FncGetSpecialChars GetGetSpecialCharsFunction(); - - static PopupMenu* CreatePopupMenu(); - static void DeletePopupMenu( PopupMenu* pMenu ); - - virtual OUString GetSurroundingText() const; - virtual Selection GetSurroundingTextSelection() const; - virtual bool set_property(const OString &rKey, const OString &rValue); - - // returns the minimum size a bordered Edit should have given the current - // global style settings (needed by sc's inputwin.cxx) - static Size GetMinimumEditSize(); -}; - -inline sal_uLong Edit::IsUpdateDataEnabled() const -{ - if ( mpUpdateDataTimer ) - return mpUpdateDataTimer->GetTimeout(); - else - return sal_False; -} - -#endif // _SV_EDIT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/embeddedfontshelper.hxx b/vcl/inc/vcl/embeddedfontshelper.hxx deleted file mode 100644 index 0b66e8ab157a..000000000000 --- a/vcl/inc/vcl/embeddedfontshelper.hxx +++ /dev/null @@ -1,89 +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/. - */ - -#ifndef VCL_EMBEDDEDFONTSHELPER_HXX -#define VCL_EMBEDDEDFONTSHELPER_HXX - -#include <vcl/dllapi.h> - -#include <com/sun/star/io/XInputStream.hpp> -#include <com/sun/star/uno/Reference.hxx> -#include <rtl/ustring.hxx> -#include <tools/fontenum.hxx> -#include <vector> - -/** - Helper functions for handling embedded fonts in documents. - -*/ -class VCL_DLLPUBLIC EmbeddedFontsHelper -{ -public: - /// Specification of what kind of operation is allowed when embedding a font - enum FontRights - { - ViewingAllowed, ///< Font may be embedded for viewing the document (but not editing) - EditingAllowed ///< Font may be embedded for editing document (implies viewing) - }; - - /** - Returns URL for a font file for the given font, or empty if it does not exist. - */ - static OUString fontFileUrl( const OUString& familyName, FontFamily family, FontItalic italic, - FontWeight weight, FontPitch pitch, rtl_TextEncoding encoding, FontRights rights ); - - /** - Reads a font from the input stream, saves it to a temporary font file and activates the font. - @param stream stream of font data - @param fontName name of the font (e.g. 'Times New Roman') - @param extra additional text to use for name (e.g. to distinguish regular from bold, italic,...), "?" for unique - @param key key to xor the data with, from the start until the key's length (not repeated) - */ - static bool addEmbeddedFont( com::sun::star::uno::Reference< com::sun::star::io::XInputStream > stream, - const OUString& fontName, const char* extra, - std::vector< unsigned char > key = std::vector< unsigned char >()); - - /** - Returns an URL for a file where to store contents of a given temporary font. - The file may or not may not exist yet, and will be cleaned up automatically as appropriate. - Use activateTemporaryFont() to actually enable usage of the font. - - @param fontName name of the font (e.g. 'Times New Roman') - @param extra additional text to use for name (e.g. to distinguish regular from bold, italic,...), "?" for unique - */ - static OUString fileUrlForTemporaryFont( const OUString& fontName, const char* extra ); - - /** - Adds the given font to the list of known fonts. The font is used only until application - exit. - - @param fontName name of the font (e.g. 'Times New Roman') - @param fileUrl URL of the font file - */ - static void activateFont( const OUString& fontName, const OUString& fileUrl ); - - /** - Returns if the restrictions specified in the font (if present) allow embedding - the font for a particular purpose. - @param data font data - @param size size of the font data - @param rights type of operation to be allowed for the font - */ - static bool sufficientFontRights( const void* data, long size, FontRights rights ); - - /** - Removes all temporary fonts in the path used by fileUrlForTemporaryFont(). - @internal - */ - static void clearTemporaryFontFiles(); -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/event.hxx b/vcl/inc/vcl/event.hxx deleted file mode 100644 index e89d52ad1e9a..000000000000 --- a/vcl/inc/vcl/event.hxx +++ /dev/null @@ -1,522 +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 . - */ - -#ifndef _SV_EVENT_HXX -#define _SV_EVENT_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <tools/gen.hxx> -#include <vcl/keycod.hxx> -#include <vcl/cmdevt.hxx> - -class AllSettings; -class OutputDevice; -class Window; -struct IDataObject; - -namespace com { namespace sun { namespace star { namespace awt { - struct KeyEvent; - struct MouseEvent; -} } } } - -enum TextDirectionality { - TextDirectionality_LeftToRight_TopToBottom, - TextDirectionality_RightToLeft_TopToBottom, - TextDirectionality_TopToBottom_RightToLeft -}; - -// ------------ -// - KeyEvent - -// ------------ -class VCL_DLLPUBLIC KeyEvent -{ -private: - KeyCode maKeyCode; - sal_uInt16 mnRepeat; - sal_Unicode mnCharCode; - -public: - KeyEvent(); - KeyEvent( sal_Unicode nChar, const KeyCode& rKeyCode, - sal_uInt16 nRepeat = 0 ); - - sal_Unicode GetCharCode() const { return mnCharCode; } - const KeyCode& GetKeyCode() const { return maKeyCode; } - sal_uInt16 GetRepeat() const { return mnRepeat; } - - KeyEvent LogicalTextDirectionality (TextDirectionality eMode) const; - KeyEvent (const KeyEvent& rKeyEvent); - -}; - -inline KeyEvent::KeyEvent() -{ - mnCharCode = 0; - mnRepeat = 0; -} - -inline KeyEvent::KeyEvent( sal_Unicode nChar, const KeyCode& rKeyCode, - sal_uInt16 nRepeat ) : - maKeyCode( rKeyCode ) - -{ - mnCharCode = nChar; - mnRepeat = nRepeat; -} - -// -------------------- -// - MouseEvent-Types - -// -------------------- - -// Maus-Move-Modi -#define MOUSE_SIMPLEMOVE ((sal_uInt16)0x0001) -#define MOUSE_DRAGMOVE ((sal_uInt16)0x0002) -#define MOUSE_DRAGCOPY ((sal_uInt16)0x0004) -#define MOUSE_ENTERWINDOW ((sal_uInt16)0x0010) -#define MOUSE_LEAVEWINDOW ((sal_uInt16)0x0020) -#define MOUSE_SYNTHETIC ((sal_uInt16)0x0040) -#define MOUSE_MODIFIERCHANGED ((sal_uInt16)0x0080) - -// Maus-Button-Down/Up-Modi -#define MOUSE_SIMPLECLICK ((sal_uInt16)0x0001) -#define MOUSE_SELECT ((sal_uInt16)0x0002) -#define MOUSE_MULTISELECT ((sal_uInt16)0x0004) -#define MOUSE_RANGESELECT ((sal_uInt16)0x0008) - -// Maus-Buttons -#define MOUSE_LEFT ((sal_uInt16)0x0001) -#define MOUSE_MIDDLE ((sal_uInt16)0x0002) -#define MOUSE_RIGHT ((sal_uInt16)0x0004) - -// -------------- -// - MouseEvent - -// -------------- - -class VCL_DLLPUBLIC MouseEvent -{ -private: - Point maPos; - sal_uInt16 mnMode; - sal_uInt16 mnClicks; - sal_uInt16 mnCode; - -public: - MouseEvent(); - MouseEvent( const Point& rPos, sal_uInt16 nClicks = 1, - sal_uInt16 nMode = 0, sal_uInt16 nButtons = 0, - sal_uInt16 nModifier = 0 ); - - const Point& GetPosPixel() const { return maPos; } - sal_uInt16 GetMode() const { return mnMode; } - /** inits this vcl KeyEvent with all settings from the given awt event **/ - MouseEvent( const ::com::sun::star::awt::MouseEvent& rEvent ); - - sal_uInt16 GetClicks() const { return mnClicks; } - - sal_Bool IsEnterWindow() const - { return ((mnMode & MOUSE_ENTERWINDOW) != 0); } - sal_Bool IsLeaveWindow() const - { return ((mnMode & MOUSE_LEAVEWINDOW) != 0); } - sal_Bool IsSynthetic() const - { return ((mnMode & MOUSE_SYNTHETIC) != 0); } - sal_Bool IsModifierChanged() const - { return ((mnMode & MOUSE_MODIFIERCHANGED) != 0); } - - sal_uInt16 GetButtons() const - { return (mnCode & (MOUSE_LEFT | MOUSE_MIDDLE | MOUSE_RIGHT)); } - sal_Bool IsLeft() const - { return ((mnCode & MOUSE_LEFT) != 0); } - sal_Bool IsMiddle() const - { return ((mnCode & MOUSE_MIDDLE) != 0); } - sal_Bool IsRight() const - { return ((mnCode & MOUSE_RIGHT) != 0); } - - sal_uInt16 GetModifier() const - { return (mnCode & (KEY_SHIFT | KEY_MOD1 | KEY_MOD2)); } - bool IsShift() const - { return ((mnCode & KEY_SHIFT) != 0); } - sal_Bool IsMod1() const - { return ((mnCode & KEY_MOD1) != 0); } - sal_Bool IsMod2() const - { return ((mnCode & KEY_MOD2) != 0); } - sal_Bool IsMod3() const - { return ((mnCode & KEY_MOD3) != 0); } -}; - -inline MouseEvent::MouseEvent() -{ - mnMode = 0; - mnClicks = 0; - mnCode = 0; -} - -inline MouseEvent::MouseEvent( const Point& rPos, sal_uInt16 nClicks, - sal_uInt16 nMode, - sal_uInt16 nButtons, sal_uInt16 nModifier ) : - maPos( rPos ) -{ - mnClicks = nClicks; - mnMode = nMode; - mnCode = nButtons | nModifier; -} - -class VCL_DLLPUBLIC ZoomEvent -{ -private: - Point maCenter; - float mfScale; - -public: - ZoomEvent() : - mfScale( 1 ) - { - } - - ZoomEvent( const Point& rCenter, - float fScale ) : - maCenter( rCenter ), - mfScale( fScale ) - { - } - - const Point& GetCenter() const - { - return maCenter; - } - - float GetScale() const - { - return mfScale; - } -}; - -class VCL_DLLPUBLIC ScrollEvent -{ -private: - int mnXOffset; - int mnYOffset; - -public: - ScrollEvent() : - mnXOffset( 0 ), - mnYOffset( 0 ) - { - } - - ScrollEvent( int xOffset, int yOffset ) : - mnXOffset( xOffset ), - mnYOffset( yOffset ) - { - } - - int GetXOffset() const - { - return mnXOffset; - } - - int GetYOffset() const - { - return mnYOffset; - } -}; - -// ------------- -// - HelpEvent - -// ------------- - -#define HELPMODE_CONTEXT ((sal_uInt16)0x0001) -#define HELPMODE_EXTENDED ((sal_uInt16)0x0002) -#define HELPMODE_BALLOON ((sal_uInt16)0x0004) -#define HELPMODE_QUICK ((sal_uInt16)0x0008) - -class VCL_DLLPUBLIC HelpEvent -{ -private: - Point maPos; - sal_uInt16 mnMode; - sal_Bool mbKeyboardActivated; - -public: - HelpEvent(); - HelpEvent( sal_uInt16 nHelpMode ); - HelpEvent( const Point& rMousePos, sal_uInt16 nHelpMode ); - - const Point& GetMousePosPixel() const; - sal_uInt16 GetMode() const { return mnMode; } - sal_Bool KeyboardActivated() const { return mbKeyboardActivated; } - void SetKeyboardActivated( sal_Bool bKeyboard ) { mbKeyboardActivated = bKeyboard; } -}; - -inline HelpEvent::HelpEvent() -{ - mnMode = HELPMODE_CONTEXT; - mbKeyboardActivated = sal_True; -} - -inline HelpEvent::HelpEvent( const Point& rMousePos, sal_uInt16 nHelpMode ) : - maPos( rMousePos ) -{ - mnMode = nHelpMode; - mbKeyboardActivated = sal_False; -} - -inline HelpEvent::HelpEvent( sal_uInt16 nHelpMode ) -{ - mnMode = nHelpMode; - mbKeyboardActivated = sal_True; -} - -// ----------------- -// - UserDrawEvent - -// ----------------- - -class VCL_DLLPUBLIC UserDrawEvent -{ -private: - OutputDevice* mpOutDev; - Rectangle maOutRect; - sal_uInt16 mnItemId; - sal_uInt16 mnStyle; - -public: - UserDrawEvent(); - UserDrawEvent( OutputDevice* pOut, - const Rectangle& rOutRect, - sal_uInt16 nId, sal_uInt16 nStyle = 0 ); - - OutputDevice* GetDevice() const { return mpOutDev; } - const Rectangle& GetRect() const { return maOutRect; } - sal_uInt16 GetItemId() const { return mnItemId; } - sal_uInt16 GetStyle() const { return mnStyle; } -}; - -inline UserDrawEvent::UserDrawEvent() -{ - mpOutDev = NULL; - mnItemId = 0; - mnStyle = 0; -} - -inline UserDrawEvent::UserDrawEvent( OutputDevice* pOut, - const Rectangle& rOutRect, - sal_uInt16 nId, sal_uInt16 nStyle ) : - maOutRect( rOutRect ) -{ - mpOutDev = pOut; - mnItemId = nId; - mnStyle = nStyle; -} - -// ------------------ -// - Tracking-Types - -// ------------------ - -#define ENDTRACK_CANCEL ((sal_uInt16)0x0001) -#define ENDTRACK_KEY ((sal_uInt16)0x0002) -#define ENDTRACK_FOCUS ((sal_uInt16)0x0004) -#define ENDTRACK_END ((sal_uInt16)0x1000) -#define ENDTRACK_DONTCALLHDL ((sal_uInt16)0x8000) - -#define TRACKING_REPEAT ((sal_uInt16)0x0100) - -// ----------------- -// - TrackingEvent - -// ----------------- - -class VCL_DLLPUBLIC TrackingEvent -{ -private: - MouseEvent maMEvt; - sal_uInt16 mnFlags; - -public: - TrackingEvent(); - TrackingEvent( const MouseEvent& rMEvt, - sal_uInt16 nTrackFlags = 0 ); - - const MouseEvent& GetMouseEvent() const { return maMEvt; } - - sal_Bool IsTrackingRepeat() const - { return ((mnFlags & TRACKING_REPEAT) != 0); } - - sal_Bool IsTrackingEnded() const - { return ((mnFlags & ENDTRACK_END) != 0); } - sal_Bool IsTrackingCanceled() const - { return ((mnFlags & ENDTRACK_CANCEL) != 0); } - sal_uInt16 GetTrackingFlags() const { return mnFlags; } -}; - -inline TrackingEvent::TrackingEvent() -{ - mnFlags = 0; -} - -inline TrackingEvent::TrackingEvent( const MouseEvent& rMEvt, - sal_uInt16 nTrackFlags ) : - maMEvt( rMEvt ) -{ - mnFlags = nTrackFlags; -} - -// --------------- -// - NotifyEvent - -// --------------- - -#define EVENT_MOUSEBUTTONDOWN 1 -#define EVENT_MOUSEBUTTONUP 2 -#define EVENT_MOUSEMOVE 3 -#define EVENT_KEYINPUT 4 -#define EVENT_KEYUP 5 -#define EVENT_GETFOCUS 6 -#define EVENT_LOSEFOCUS 7 -#define EVENT_COMMAND 8 -#define EVENT_DESTROY 9 -#define EVENT_INPUTENABLE 10 -#define EVENT_INPUTDISABLE 11 -#define EVENT_EXECUTEDIALOG 100 -#define EVENT_ENDEXECUTEDIALOG 101 - -class VCL_DLLPUBLIC NotifyEvent -{ -private: - Window* mpWindow; - void* mpData; - sal_uInt16 mnType; - long mnRetValue; - -public: - NotifyEvent(); - NotifyEvent( sal_uInt16 nType, - Window* pWindow, - const void* pEvent = NULL, - long nRet = 0 ); - - sal_uInt16 GetType() const { return mnType; } - Window* GetWindow() const { return mpWindow; } - void* GetData() const { return mpData; } - - void SetReturnValue( long nRet ) { mnRetValue = nRet; } - long GetReturnValue() const { return mnRetValue; } - - const KeyEvent* GetKeyEvent() const; - const MouseEvent* GetMouseEvent() const; - const CommandEvent* GetCommandEvent() const; -}; - -inline NotifyEvent::NotifyEvent() -{ - mpWindow = NULL; - mpData = NULL; - mnType = 0; - mnRetValue = 0; -} - -inline NotifyEvent::NotifyEvent( sal_uInt16 nType, Window* pWindow, - const void* pEvent, long nRet ) -{ - mpWindow = pWindow; - mpData = (void*)pEvent; - mnType = nType; - mnRetValue = nRet; -} - -inline const KeyEvent* NotifyEvent::GetKeyEvent() const -{ - if ( (mnType == EVENT_KEYINPUT) || (mnType == EVENT_KEYUP) ) - return (const KeyEvent*)mpData; - else - return NULL; -} - -inline const MouseEvent* NotifyEvent::GetMouseEvent() const -{ - if ( (mnType >= EVENT_MOUSEBUTTONDOWN) && (mnType <= EVENT_MOUSEMOVE) ) - return (const MouseEvent*)mpData; - else - return NULL; -} - -inline const CommandEvent* NotifyEvent::GetCommandEvent() const -{ - if ( mnType == EVENT_COMMAND ) - return (const CommandEvent*)mpData; - else - return NULL; -} - -// -------------------- -// - DataChangedEvent - -// -------------------- - -#define DATACHANGED_SETTINGS ((sal_uInt16)1) -#define DATACHANGED_DISPLAY ((sal_uInt16)2) -#define DATACHANGED_DATETIME ((sal_uInt16)3) -#define DATACHANGED_FONTS ((sal_uInt16)4) -#define DATACHANGED_PRINTER ((sal_uInt16)5) -#define DATACHANGED_FONTSUBSTITUTION ((sal_uInt16)6) -#define DATACHANGED_USER ((sal_uInt16)10000) - -class VCL_DLLPUBLIC DataChangedEvent -{ -private: - void* mpData; - sal_uLong mnFlags; - sal_uInt16 mnType; - -public: - DataChangedEvent(); - DataChangedEvent( sal_uInt16 nType, - const void* pData = NULL, - sal_uLong nFlags = 0 ); - - sal_uInt16 GetType() const { return mnType; } - void* GetData() const { return mpData; } - sal_uLong GetFlags() const { return mnFlags; } - - const AllSettings* GetOldSettings() const; -}; - -inline DataChangedEvent::DataChangedEvent() -{ - mpData = NULL; - mnFlags = 0; - mnType = 0; -} - -inline DataChangedEvent::DataChangedEvent( sal_uInt16 nType, - const void* pData, - sal_uLong nChangeFlags ) -{ - mpData = (void*)pData; - mnFlags = nChangeFlags; - mnType = nType; -} - -inline const AllSettings* DataChangedEvent::GetOldSettings() const -{ - if ( mnType == DATACHANGED_SETTINGS ) - return (const AllSettings*)mpData; - else - return NULL; -} - -#endif // _SV_EVENT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/evntpost.hxx b/vcl/inc/vcl/evntpost.hxx deleted file mode 100644 index 3116ab7c58b7..000000000000 --- a/vcl/inc/vcl/evntpost.hxx +++ /dev/null @@ -1,51 +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 . - */ -#ifndef _VCL_EVNTPOST_HXX -#define _VCL_EVNTPOST_HXX - -#include <tools/link.hxx> -#include <vcl/dllapi.h> - -//=================================================================== - -namespace vcl -{ - struct UserEvent - { - sal_uLong m_nWhich; - void* m_pData; - }; - - class VCL_DLLPUBLIC EventPoster - { - sal_uLong m_nId; - Link m_aLink; - - DECL_DLLPRIVATE_LINK( DoEvent_Impl, UserEvent* ); - - public: - EventPoster( const Link& rLink ); - ~EventPoster(); - void Post( UserEvent* pEvent ); - }; -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/extoutdevdata.hxx b/vcl/inc/vcl/extoutdevdata.hxx deleted file mode 100644 index 2ee5967c473d..000000000000 --- a/vcl/inc/vcl/extoutdevdata.hxx +++ /dev/null @@ -1,41 +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 . - */ - -#ifndef _VCL_EXTOUTDEVDATA_HXX -#define _VCL_EXTOUTDEVDATA_HXX - -#include <tools/rtti.hxx> -#include <vcl/dllapi.h> - -namespace vcl -{ - -class VCL_DLLPUBLIC ExtOutDevData -{ -public: - - TYPEINFO(); - virtual ~ExtOutDevData(); -}; - -} - -#endif // _VCL_PDFWRITER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/field.hxx b/vcl/inc/vcl/field.hxx deleted file mode 100644 index babab8da29d2..000000000000 --- a/vcl/inc/vcl/field.hxx +++ /dev/null @@ -1,832 +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 . - */ - -#ifndef _SV_FIELD_HXX -#define _SV_FIELD_HXX - -#include <vcl/dllapi.h> -#include <tools/link.hxx> -#include <tools/date.hxx> -#include <tools/time.hxx> -#include <vcl/spinfld.hxx> -#include <vcl/combobox.hxx> -#include <tools/fldunit.hxx> - -namespace com { namespace sun { namespace star { namespace lang { struct Locale; } } } } - -class CalendarWrapper; -class LocaleDataWrapper; -class LanguageTag; - -// ----------------- -// - FormatterBase - -// ----------------- - -class VCL_DLLPUBLIC FormatterBase -{ -private: - Edit* mpField; - LocaleDataWrapper* mpLocaleDataWrapper; - Link maErrorLink; - sal_Bool mbReformat; - sal_Bool mbStrictFormat; - sal_Bool mbEmptyFieldValue; - sal_Bool mbEmptyFieldValueEnabled; - sal_Bool mbDefaultLocale; - -protected: - SAL_DLLPRIVATE void ImplSetText( const OUString& rText, Selection* pNewSel = NULL ); - SAL_DLLPRIVATE sal_Bool ImplGetEmptyFieldValue() const { return mbEmptyFieldValue; } - - void SetEmptyFieldValueData( sal_Bool bValue ) { mbEmptyFieldValue = bValue; } - - SAL_DLLPRIVATE LocaleDataWrapper& ImplGetLocaleDataWrapper() const; - sal_Bool IsDefaultLocale() const { return mbDefaultLocale; } - -public: - FormatterBase( Edit* pField = NULL ); - virtual ~FormatterBase(); - - const LocaleDataWrapper& GetLocaleDataWrapper() const; - - void SetField( Edit* pField ) { mpField = pField; } - Edit* GetField() const { return mpField; } - - sal_Bool MustBeReformatted() const { return mbReformat; } - void MarkToBeReformatted( sal_Bool b ) { mbReformat = b; } - - void SetStrictFormat( sal_Bool bStrict ); - sal_Bool IsStrictFormat() const { return mbStrictFormat; } - - virtual void Reformat(); - virtual void ReformatAll(); - - virtual void SetLocale( const ::com::sun::star::lang::Locale& rLocale ); - const ::com::sun::star::lang::Locale& GetLocale() const; - const LanguageTag& GetLanguageTag() const; - - const AllSettings& GetFieldSettings() const; - - void SetErrorHdl( const Link& rLink ) { maErrorLink = rLink; } - const Link& GetErrorHdl() const { return maErrorLink; } - - void SetEmptyFieldValue(); - sal_Bool IsEmptyFieldValue() const; - - void EnableEmptyFieldValue( sal_Bool bEnable ) { mbEmptyFieldValueEnabled = bEnable; } - sal_Bool IsEmptyFieldValueEnabled() const { return mbEmptyFieldValueEnabled; } -}; - - -// -------------------- -// - PatternFormatter - -// -------------------- - -#define PATTERN_FORMAT_EMPTYLITERALS ((sal_uInt16)0x0001) - -class VCL_DLLPUBLIC PatternFormatter : public FormatterBase -{ -private: - OString m_aEditMask; - OUString maFieldString; - OUString maLiteralMask; - sal_uInt16 mnFormatFlags; - sal_Bool mbSameMask; - sal_Bool mbInPattKeyInput; - -protected: - PatternFormatter(); - - SAL_DLLPRIVATE void ImplSetMask(const OString& rEditMask, - const OUString& rLiteralMask); - SAL_DLLPRIVATE sal_Bool ImplIsSameMask() const { return mbSameMask; } - SAL_DLLPRIVATE sal_Bool& ImplGetInPattKeyInput() { return mbInPattKeyInput; } - -public: - ~PatternFormatter(); - - virtual void Reformat(); - - void SetMask(const OString& rEditMask, const OUString& rLiteralMask ); - const OString& GetEditMask() const { return m_aEditMask; } - const OUString& GetLiteralMask() const { return maLiteralMask; } - - void SetFormatFlags( sal_uInt16 nFlags ) { mnFormatFlags = nFlags; } - sal_uInt16 GetFormatFlags() const { return mnFormatFlags; } - - void SetString( const OUString& rStr ); - OUString GetString() const; - sal_Bool IsStringModified() const { return !(GetString() == maFieldString ); } -}; - -// -------------------- -// - NumericFormatter - -// -------------------- - -class VCL_DLLPUBLIC NumericFormatter : public FormatterBase -{ -private: - SAL_DLLPRIVATE void ImplInit(); - -protected: - sal_Int64 mnFieldValue; - sal_Int64 mnLastValue; - sal_Int64 mnMin; - sal_Int64 mnMax; - sal_Int64 mnCorrectedValue; - sal_uInt16 mnType; - sal_uInt16 mnDecimalDigits; - sal_Bool mbThousandSep; - sal_Bool mbShowTrailingZeros; - - // the members below are used in all derivatives of NumericFormatter - // not in NumericFormatter itself. - sal_Int64 mnSpinSize; - sal_Int64 mnFirst; - sal_Int64 mnLast; - -protected: - NumericFormatter(); - - void FieldUp(); - void FieldDown(); - void FieldFirst(); - void FieldLast(); - - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE sal_Bool ImplNumericReformat( const OUString& rStr, sal_Int64& rValue, OUString& rOutStr ); - SAL_DLLPRIVATE void ImplNewFieldValue( sal_Int64 nNewValue ); - SAL_DLLPRIVATE void ImplSetUserValue( sal_Int64 nNewValue, Selection* pNewSelection = NULL ); - -public: - ~NumericFormatter(); - - virtual void Reformat(); - - void SetMin( sal_Int64 nNewMin ); - sal_Int64 GetMin() const { return mnMin; } - void SetMax( sal_Int64 nNewMax ); - sal_Int64 GetMax() const { return mnMax; } - - void SetFirst( sal_Int64 nNewFirst ) { mnFirst = nNewFirst; } - sal_Int64 GetFirst() const { return mnFirst; } - void SetLast( sal_Int64 nNewLast ) { mnLast = nNewLast; } - sal_Int64 GetLast() const { return mnLast; } - void SetSpinSize( sal_Int64 nNewSize ) { mnSpinSize = nNewSize; } - sal_Int64 GetSpinSize() const { return mnSpinSize; } - - void SetDecimalDigits( sal_uInt16 nDigits ); - sal_uInt16 GetDecimalDigits() const; - - void SetUseThousandSep( sal_Bool b ); - sal_Bool IsUseThousandSep() const { return mbThousandSep; } - - void SetShowTrailingZeros( sal_Bool bShowTrailingZeros ); - sal_Bool IsShowTrailingZeros() const { return mbShowTrailingZeros; } - - - void SetUserValue( sal_Int64 nNewValue ); - virtual void SetValue( sal_Int64 nNewValue ); - virtual sal_Int64 GetValue() const; - virtual OUString CreateFieldText( sal_Int64 nValue ) const; - sal_Bool IsValueModified() const; - sal_Int64 GetCorrectedValue() const { return mnCorrectedValue; } - - sal_Int64 Normalize( sal_Int64 nValue ) const; - sal_Int64 Denormalize( sal_Int64 nValue ) const; -}; - -// ------------------- -// - MetricFormatter - -// ------------------- - -class VCL_DLLPUBLIC MetricFormatter : public NumericFormatter -{ -private: - SAL_DLLPRIVATE void ImplInit(); - -protected: - OUString maCustomUnitText; - OUString maCurUnitText; - sal_Int64 mnBaseValue; - FieldUnit meUnit; - Link maCustomConvertLink; - -protected: - MetricFormatter(); - - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE sal_Bool ImplMetricReformat( const OUString& rStr, double& rValue, OUString& rOutStr ); - -public: - ~MetricFormatter(); - - virtual void CustomConvert() = 0; - virtual void Reformat(); - - virtual void SetUnit( FieldUnit meUnit ); - FieldUnit GetUnit() const { return meUnit; } - void SetCustomUnitText( const OUString& rStr ); - const OUString& GetCustomUnitText() const { return maCustomUnitText; } - const OUString& GetCurUnitText() const { return maCurUnitText; } - - using NumericFormatter::SetMax; - void SetMax( sal_Int64 nNewMax, FieldUnit eInUnit ); - using NumericFormatter::GetMax; - sal_Int64 GetMax( FieldUnit eOutUnit ) const; - using NumericFormatter::SetMin; - void SetMin( sal_Int64 nNewMin, FieldUnit eInUnit ); - using NumericFormatter::GetMin; - sal_Int64 GetMin( FieldUnit eOutUnit ) const; - void SetBaseValue( sal_Int64 nNewBase, FieldUnit eInUnit = FUNIT_NONE ); - sal_Int64 GetBaseValue( FieldUnit eOutUnit = FUNIT_NONE ) const; - - virtual void SetValue( sal_Int64 nNewValue, FieldUnit eInUnit ); - virtual void SetValue( sal_Int64 nValue ); - using NumericFormatter::SetUserValue; - void SetUserValue( sal_Int64 nNewValue, FieldUnit eInUnit ); - virtual sal_Int64 GetValue( FieldUnit eOutUnit ) const; - virtual sal_Int64 GetValue() const; - virtual OUString CreateFieldText( sal_Int64 nValue ) const; - using NumericFormatter::GetCorrectedValue; - sal_Int64 GetCorrectedValue( FieldUnit eOutUnit ) const; - - void SetCustomConvertHdl( const Link& rLink ) { maCustomConvertLink = rLink; } - const Link& GetCustomConvertHdl() const { return maCustomConvertLink; } -}; - - -// --------------------- -// - CurrencyFormatter - -// --------------------- - -class VCL_DLLPUBLIC CurrencyFormatter : public NumericFormatter -{ -private: - SAL_DLLPRIVATE void ImplInit(); - -protected: - CurrencyFormatter(); - SAL_DLLPRIVATE sal_Bool ImplCurrencyReformat( const OUString& rStr, OUString& rOutStr ); - -public: - ~CurrencyFormatter(); - - virtual void Reformat(); - - String GetCurrencySymbol() const; - - virtual void SetValue( sal_Int64 nNewValue ); - virtual sal_Int64 GetValue() const; - virtual OUString CreateFieldText( sal_Int64 nValue ) const; -}; - - -// ----------------- -// - DateFormatter - -// ----------------- - -class VCL_DLLPUBLIC DateFormatter : public FormatterBase -{ -private: - CalendarWrapper* mpCalendarWrapper; - Date maFieldDate; - Date maLastDate; - Date maMin; - Date maMax; - Date maCorrectedDate; - sal_Bool mbLongFormat; - sal_Bool mbShowDateCentury; - sal_uInt16 mnDateFormat; - sal_uLong mnExtDateFormat; - sal_Bool mbEnforceValidValue; - - SAL_DLLPRIVATE void ImplInit(); - -protected: - DateFormatter(); - - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE const Date& ImplGetFieldDate() const { return maFieldDate; } - SAL_DLLPRIVATE sal_Bool ImplDateReformat( const OUString& rStr, OUString& rOutStr, - const AllSettings& rSettings ); - SAL_DLLPRIVATE void ImplSetUserDate( const Date& rNewDate, - Selection* pNewSelection = NULL ); - SAL_DLLPRIVATE OUString ImplGetDateAsText( const Date& rDate, - const AllSettings& rSettings ) const; - SAL_DLLPRIVATE void ImplNewFieldValue( const Date& rDate ); - CalendarWrapper& GetCalendarWrapper() const; - - SAL_DLLPRIVATE sal_Bool ImplAllowMalformedInput() const; - -public: - ~DateFormatter(); - - virtual void Reformat(); - virtual void ReformatAll(); - - virtual void SetLocale( const ::com::sun::star::lang::Locale& rLocale ); - - - void SetExtDateFormat( ExtDateFieldFormat eFormat ); - ExtDateFieldFormat GetExtDateFormat( sal_Bool bResolveSystemFormat = sal_False ) const; - - void SetMin( const Date& rNewMin ); - const Date& GetMin() const { return maMin; } - - void SetMax( const Date& rNewMax ); - const Date& GetMax() const { return maMax; } - - - // -------------------------------------------------------------- - // MT: Remove these methods too, ExtDateFormat should be enough! - // What should happen if using DDMMYYYY, but ShowCentury=sal_False? - // -------------------------------------------------------------- - void SetLongFormat( sal_Bool bLong ); - sal_Bool IsLongFormat() const { return mbLongFormat; } - void SetShowDateCentury( sal_Bool bShowCentury ); - sal_Bool IsShowDateCentury() const { return mbShowDateCentury; } - // -------------------------------------------------------------- - - void SetDate( const Date& rNewDate ); - void SetUserDate( const Date& rNewDate ); - Date GetDate() const; - void SetEmptyDate(); - sal_Bool IsEmptyDate() const; - Date GetCorrectedDate() const { return maCorrectedDate; } - - void ResetLastDate() { maLastDate = Date( 0, 0, 0 ); } - - static void ExpandCentury( Date& rDate ); - static void ExpandCentury( Date& rDate, sal_uInt16 nTwoDigitYearStart ); - - static Date GetInvalidDate() { return Date( 0, 0, 0 ); } - - /** enables or disables the enforcement of valid values - - If this is set to <TRUE/> (which is the default), then GetDate will always return a valid - date, no matter whether the current text can really be interpreted as date. (Note: this - is the compatible bahavior). - - If this is set to <FALSE/>, the GetDate will return GetInvalidDate, in case the current text - cannot be interpreted as date. - - In addition, if this is set to <FALSE/>, the text in the field will <em>not</em> be corrected - when the control loses the focus - instead, the invalid input will be preserved. - */ - void EnforceValidValue( sal_Bool _bEnforce ) { mbEnforceValidValue = _bEnforce; } - inline sal_Bool IsEnforceValidValue( ) const { return mbEnforceValidValue; } -}; - - -// ----------------- -// - TimeFormatter - -// ----------------- - -class VCL_DLLPUBLIC TimeFormatter : public FormatterBase -{ -private: - Time maLastTime; - Time maMin; - Time maMax; - Time maCorrectedTime; - TimeFieldFormat meFormat; - sal_uInt16 mnTimeFormat; - sal_Bool mbDuration; - sal_Bool mbEnforceValidValue; - - SAL_DLLPRIVATE void ImplInit(); - -protected: - Time maFieldTime; - - TimeFormatter(); - - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE sal_Bool ImplTimeReformat( const OUString& rStr, OUString& rOutStr ); - SAL_DLLPRIVATE void ImplNewFieldValue( const Time& rTime ); - SAL_DLLPRIVATE void ImplSetUserTime( const Time& rNewTime, Selection* pNewSelection = NULL ); - SAL_DLLPRIVATE sal_Bool ImplAllowMalformedInput() const; - -public: - - enum TimeFormat { - HOUR_12, - HOUR_24 - }; - - ~TimeFormatter(); - - virtual void Reformat(); - virtual void ReformatAll(); - - void SetMin( const Time& rNewMin ); - const Time& GetMin() const { return maMin; } - void SetMax( const Time& rNewMax ); - const Time& GetMax() const { return maMax; } - - void SetTimeFormat( TimeFormat eNewFormat ); - TimeFormat GetTimeFormat() const; - - void SetFormat( TimeFieldFormat eNewFormat ); - TimeFieldFormat GetFormat() const { return meFormat; } - - void SetDuration( sal_Bool mbDuration ); - sal_Bool IsDuration() const { return mbDuration; } - - void SetTime( const Time& rNewTime ); - void SetUserTime( const Time& rNewTime ); - Time GetTime() const; - void SetEmptyTime() { FormatterBase::SetEmptyFieldValue(); } - sal_Bool IsEmptyTime() const { return FormatterBase::IsEmptyFieldValue(); } - Time GetCorrectedTime() const { return maCorrectedTime; } - - static Time GetInvalidTime() { return Time( 99, 99, 99 ); } - - /** enables or disables the enforcement of valid values - - If this is set to <TRUE/> (which is the default), then GetTime will always return a valid - time, no matter whether the current text can really be interpreted as time. (Note: this - is the compatible bahavior). - - If this is set to <FALSE/>, the GetTime will return GetInvalidTime, in case the current text - cannot be interpreted as time. - - In addition, if this is set to <FALSE/>, the text in the field will <em>not</em> be corrected - when the control loses the focus - instead, the invalid input will be preserved. - */ - void EnforceValidValue( sal_Bool _bEnforce ) { mbEnforceValidValue = _bEnforce; } - inline sal_Bool IsEnforceValidValue( ) const { return mbEnforceValidValue; } -}; - - -// ---------------- -// - PatternField - -// ---------------- - -class VCL_DLLPUBLIC PatternField : public SpinField, public PatternFormatter -{ -public: - PatternField( Window* pParent, WinBits nWinStyle ); - ~PatternField(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void Modify(); -}; - - -// ---------------- -// - NumericField - -// ---------------- - -class VCL_DLLPUBLIC NumericField : public SpinField, public NumericFormatter -{ -protected: - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - NumericField( Window* pParent, WinBits nWinStyle ); - NumericField( Window* pParent, const ResId& rResId ); - ~NumericField(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual Size CalcMinimumSize() const; - - virtual void Modify(); - - virtual void Up(); - virtual void Down(); - virtual void First(); - virtual void Last(); - virtual bool set_property(const OString &rKey, const OString &rValue); -}; - - -// ---------------- -// - MetricField - -// ---------------- - -class VCL_DLLPUBLIC MetricField : public SpinField, public MetricFormatter -{ -protected: - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - MetricField( Window* pParent, WinBits nWinStyle ); - MetricField( Window* pParent, const ResId& rResId ); - ~MetricField(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual Size CalcMinimumSize() const; - - virtual void Modify(); - - virtual void Up(); - virtual void Down(); - virtual void First(); - virtual void Last(); - virtual void CustomConvert(); - - virtual void SetUnit( FieldUnit meUnit ); - - void SetFirst( sal_Int64 nNewFirst, FieldUnit eInUnit ); - inline void SetFirst(sal_Int64 first) { SetFirst(first, FUNIT_NONE); } - sal_Int64 GetFirst( FieldUnit eOutUnit ) const; - inline sal_Int64 GetFirst() const { return GetFirst(FUNIT_NONE); } - void SetLast( sal_Int64 nNewLast, FieldUnit eInUnit ); - inline void SetLast(sal_Int64 last) { SetLast(last, FUNIT_NONE); } - sal_Int64 GetLast( FieldUnit eOutUnit ) const; - inline sal_Int64 GetLast() const { return GetLast(FUNIT_NONE); } - - static void SetDefaultUnit( FieldUnit eDefaultUnit ); - static FieldUnit GetDefaultUnit(); - static sal_Int64 ConvertValue( sal_Int64 nValue, sal_Int64 mnBaseValue, sal_uInt16 nDecDigits, - FieldUnit eInUnit, FieldUnit eOutUnit ); - static sal_Int64 ConvertValue( sal_Int64 nValue, sal_uInt16 nDecDigits, - MapUnit eInUnit, FieldUnit eOutUnit ); - - // for backwards compatibility - // caution: conversion to double loses precision - static double ConvertDoubleValue( double nValue, sal_Int64 mnBaseValue, sal_uInt16 nDecDigits, - FieldUnit eInUnit, FieldUnit eOutUnit ); - static double ConvertDoubleValue( double nValue, sal_uInt16 nDecDigits, - FieldUnit eInUnit, MapUnit eOutUnit ); - static double ConvertDoubleValue( double nValue, sal_uInt16 nDecDigits, - MapUnit eInUnit, FieldUnit eOutUnit ); - - // for backwards compatibility - // caution: conversion to double loses precision - static double ConvertDoubleValue( sal_Int64 nValue, sal_Int64 nBaseValue, sal_uInt16 nDecDigits, - FieldUnit eInUnit, FieldUnit eOutUnit ) - { return ConvertDoubleValue( static_cast<double>(nValue), nBaseValue, nDecDigits, eInUnit, eOutUnit ); } - static double ConvertDoubleValue( sal_Int64 nValue, sal_uInt16 nDecDigits, - FieldUnit eInUnit, MapUnit eOutUnit ) - { return ConvertDoubleValue( static_cast<double>(nValue), nDecDigits, eInUnit, eOutUnit ); } - static double ConvertDoubleValue( sal_Int64 nValue, sal_uInt16 nDecDigits, - MapUnit eInUnit, FieldUnit eOutUnit ) - { return ConvertDoubleValue( static_cast<double>(nValue), nDecDigits, eInUnit, eOutUnit ); } - - virtual bool set_property(const OString &rKey, const OString &rValue); -}; - - -// ----------------- -// - CurrencyField - -// ----------------- - -class VCL_DLLPUBLIC CurrencyField : public SpinField, public CurrencyFormatter -{ -public: - CurrencyField( Window* pParent, WinBits nWinStyle ); - - ~CurrencyField(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Modify(); - - virtual void Up(); - virtual void Down(); - virtual void First(); - virtual void Last(); -}; - - -// ------------- -// - DateField - -// ------------- - -class VCL_DLLPUBLIC DateField : public SpinField, public DateFormatter -{ -private: - Date maFirst; - Date maLast; - -protected: - SAL_DLLPRIVATE void ImplDateSpinArea( sal_Bool bUp ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - DateField( Window* pParent, WinBits nWinStyle ); - DateField( Window* pParent, const ResId& rResId ); - ~DateField(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Modify(); - - virtual void Up(); - virtual void Down(); - virtual void First(); - virtual void Last(); - - void SetFirst( const Date& rNewFirst ) { maFirst = rNewFirst; } - Date GetFirst() const { return maFirst; } - void SetLast( const Date& rNewLast ) { maLast = rNewLast; } - Date GetLast() const { return maLast; } -}; - -// ------------- -// - TimeField - -// ------------- - -class VCL_DLLPUBLIC TimeField : public SpinField, public TimeFormatter -{ -private: - Time maFirst; - Time maLast; - -protected: - SAL_DLLPRIVATE void ImplTimeSpinArea( sal_Bool bUp ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - TimeField( Window* pParent, WinBits nWinStyle ); - TimeField( Window* pParent, const ResId& rResId ); - ~TimeField(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Modify(); - - virtual void Up(); - virtual void Down(); - virtual void First(); - virtual void Last(); - - void SetFirst( const Time& rNewFirst ) { maFirst = rNewFirst; } - Time GetFirst() const { return maFirst; } - void SetLast( const Time& rNewLast ) { maLast = rNewLast; } - Time GetLast() const { return maLast; } - - void SetExtFormat( ExtTimeFieldFormat eFormat ); -}; - - -// -------------- -// - PatternBox - -// -------------- - -class VCL_DLLPUBLIC PatternBox : public ComboBox, public PatternFormatter -{ -public: - PatternBox( Window* pParent, WinBits nWinStyle ); - ~PatternBox(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - - virtual void Modify(); - - virtual void ReformatAll(); -}; - - -// -------------- -// - NumericBox - -// -------------- - -class VCL_DLLPUBLIC NumericBox : public ComboBox, public NumericFormatter -{ -public: - NumericBox( Window* pParent, WinBits nWinStyle ); - NumericBox( Window* pParent, const ResId& rResId ); - ~NumericBox(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Modify(); - - virtual void ReformatAll(); - - void InsertValue( sal_Int64 nValue, sal_uInt16 nPos = COMBOBOX_APPEND ); -}; - - -// ------------- -// - MetricBox - -// ------------- - -class VCL_DLLPUBLIC MetricBox : public ComboBox, public MetricFormatter -{ -public: - MetricBox( Window* pParent, WinBits nWinStyle ); - MetricBox( Window* pParent, const ResId& rResId ); - ~MetricBox(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Modify(); - - virtual void CustomConvert(); - virtual void ReformatAll(); - - void InsertValue( sal_Int64 nValue, FieldUnit eInUnit = FUNIT_NONE, - sal_uInt16 nPos = COMBOBOX_APPEND ); - sal_Int64 GetValue( sal_uInt16 nPos, FieldUnit eOutUnit = FUNIT_NONE ) const; - sal_uInt16 GetValuePos( sal_Int64 nValue, - FieldUnit eInUnit = FUNIT_NONE ) const; - - // Needed, because GetValue() with nPos hide these functions - virtual sal_Int64 GetValue( FieldUnit eOutUnit ) const; - virtual sal_Int64 GetValue() const; -}; - - -// --------------- -// - CurrencyBox - -// --------------- - -class VCL_DLLPUBLIC CurrencyBox : public ComboBox, public CurrencyFormatter -{ -public: - CurrencyBox( Window* pParent, WinBits nWinStyle ); - CurrencyBox( Window* pParent, const ResId& rResId ); - ~CurrencyBox(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Modify(); - - virtual void ReformatAll(); - - virtual sal_Int64 GetValue() const; -}; - -// ----------- -// - DateBox - -// ----------- - -class VCL_DLLPUBLIC DateBox : public ComboBox, public DateFormatter -{ -public: - DateBox( Window* pParent, WinBits nWinStyle ); - ~DateBox(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Modify(); - - virtual void ReformatAll(); -}; - - -// ----------- -// - TimeBox - -// ----------- - -class VCL_DLLPUBLIC TimeBox : public ComboBox, public TimeFormatter -{ -public: - TimeBox( Window* pParent, WinBits nWinStyle ); - ~TimeBox(); - - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Modify(); - - virtual void ReformatAll(); -}; - -#endif // _SV_FIELD_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/fixed.hxx b/vcl/inc/vcl/fixed.hxx deleted file mode 100644 index b592d98a48d2..000000000000 --- a/vcl/inc/vcl/fixed.hxx +++ /dev/null @@ -1,208 +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 . - */ - -#ifndef _SV_FIXED_HXX -#define _SV_FIXED_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/bitmap.hxx> -#include <vcl/ctrl.hxx> -#include <vcl/edit.hxx> -#include <vcl/image.hxx> - -class UserDrawEvent; - -// ------------- -// - FixedText - -// ------------- - -class VCL_DLLPUBLIC FixedText : public Control -{ -private: - sal_Int32 m_nMaxWidthChars; - sal_Int32 m_nMinWidthChars; - Window *m_pMnemonicWindow; - - using Control::ImplInitSettings; - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE void ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags, - const Point& rPos, const Size& rSize, bool bFillLayout = false ) const; -public: - SAL_DLLPRIVATE static sal_uInt16 ImplGetTextStyle( WinBits nWinBits ); -protected: - virtual void FillLayoutData() const; - virtual const Font& - GetCanonicalFont( const StyleSettings& _rStyle ) const; - virtual const Color& - GetCanonicalTextColor( const StyleSettings& _rStyle ) const; - - virtual Window* getAccessibleRelationLabelFor() const; - -public: - FixedText( Window* pParent, WinBits nStyle = 0 ); - FixedText( Window* pParent, const ResId& rResId ); - ~FixedText(); - - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - void setMaxWidthChars(sal_Int32 nWidth); - sal_Int32 getMaxWidthChars() const { return m_nMaxWidthChars; } - void setMinWidthChars(sal_Int32 nWidth); - sal_Int32 getMinWidthChars() const { return m_nMinWidthChars; } - static Size CalcMinimumTextSize(Control const* pControl, long nMaxWidth = 0x7fffffff); - static Size getTextDimensions(Control const *pControl, const OUString &rTxt, long nMaxWidth); - Size CalcMinimumSize(long nMaxWidth = 0x7fffffff) const; - virtual Size GetOptimalSize() const; - virtual bool set_property(const OString &rKey, const OString &rValue); - void set_mnemonic_widget(Window *pWindow); - Window* get_mnemonic_widget() const { return m_pMnemonicWindow; } -}; - -class VCL_DLLPUBLIC SelectableFixedText : public Edit -{ -public: - SelectableFixedText( Window* pParent, WinBits nStyle = 0 ); - - virtual void LoseFocus(); -}; - -// ------------- -// - FixedLine - -// ------------- - -class VCL_DLLPUBLIC FixedLine : public Control -{ -private: - using Control::ImplInitSettings; - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE void ImplDraw( bool bLayout = false ); - -protected: - virtual void FillLayoutData() const; - virtual const Font& - GetCanonicalFont( const StyleSettings& _rStyle ) const; - virtual const Color& - GetCanonicalTextColor( const StyleSettings& _rStyle ) const; - -public: - FixedLine( Window* pParent, WinBits nStyle = WB_HORZ ); - FixedLine( Window* pParent, const ResId& rResId ); - - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual Size GetOptimalSize() const; -}; - -// --------------- -// - FixedBitmap - -// --------------- - -class VCL_DLLPUBLIC FixedBitmap : public Control -{ -private: - Bitmap maBitmap; - - using Control::ImplInitSettings; - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings(); - SAL_DLLPRIVATE void ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags, - const Point& rPos, const Size& rSize ); - -protected: - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - FixedBitmap( Window* pParent, WinBits nStyle = 0 ); - FixedBitmap( Window* pParent, const ResId& rResId ); - ~FixedBitmap(); - - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - void SetBitmap( const Bitmap& rBitmap ); - using OutputDevice::GetBitmap; - const Bitmap& GetBitmap() const { return maBitmap; } -}; - -// -------------- -// - FixedImage - -// -------------- - -class VCL_DLLPUBLIC FixedImage : public Control -{ -private: - Image maImage; - sal_Bool mbInUserDraw; - -private: - using Control::ImplInitSettings; - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings(); - -protected: - SAL_DLLPRIVATE void ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags, - const Point& rPos, const Size& rSize ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - FixedImage( Window* pParent, WinBits nStyle = 0 ); - FixedImage( Window* pParent, const ResId& rResId ); - ~FixedImage(); - - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual void UserDraw( const UserDrawEvent& rUDEvt ); - virtual Size GetOptimalSize() const; - - void SetImage( const Image& rImage ); - const Image& GetImage() const { return maImage; } - - sal_Bool SetModeImage( const Image& rImage ); - const Image& GetModeImage( ) const; - virtual bool set_property(const OString &rKey, const OString &rValue); -}; - -#endif // _SV_FIXED_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/fixedhyper.hxx b/vcl/inc/vcl/fixedhyper.hxx deleted file mode 100644 index b43e4bd7fd6e..000000000000 --- a/vcl/inc/vcl/fixedhyper.hxx +++ /dev/null @@ -1,127 +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 . - */ - -#ifndef VCL_FIXEDHYPER_HXX -#define VCL_FIXEDHYPER_HXX - -#include <vcl/dllapi.h> -#include <vcl/fixed.hxx> - - //===================================================================== - //= FixedHyperlink - //===================================================================== - class VCL_DLLPUBLIC FixedHyperlink : public FixedText - { - private: - long m_nTextLen; - Pointer m_aOldPointer; - Link m_aClickHdl; - OUString m_sURL; - - /** initializes the font (link color and underline). - - Called by the Ctors. - */ - void Initialize(); - - protected: - /** overwrites Window::MouseMove(). - - Changes the pointer only over the text. - */ - virtual void MouseMove( const MouseEvent& rMEvt ); - - /** overwrites Window::MouseButtonUp(). - - Calls the set link if the mouse is over the text. - */ - virtual void MouseButtonUp( const MouseEvent& rMEvt ); - - /** overwrites Window::RequestHelp(). - - Shows tooltip only if the mouse is over the text. - */ - virtual void RequestHelp( const HelpEvent& rHEvt ); - - public: - /** ctors - - With ResId or WinBits. - */ - FixedHyperlink( Window* pParent, const ResId& rId ); - FixedHyperlink( Window* pParent, WinBits nWinStyle = 0 ); - - /** dtor - - */ - virtual ~FixedHyperlink(); - - /** overwrites Window::GetFocus(). - - Changes the color of the text and shows a focus rectangle. - */ - virtual void GetFocus(); - - /** overwrites Window::LoseFocus(). - - Changes the color of the text and hides the focus rectangle. - */ - virtual void LoseFocus(); - - /** overwrites Window::KeyInput(). - - KEY_RETURN and KEY_SPACE calls the link handler. - */ - virtual void KeyInput( const KeyEvent& rKEvt ); - - virtual bool set_property(const OString &rKey, const OString &rValue); - - - /** sets <member>m_aClickHdl</member> with <arg>rLink</arg>. - - <member>m_aClickHdl</member> is called if the text is clicked. - */ - inline void SetClickHdl( const Link& rLink ) { m_aClickHdl = rLink; } - - /** returns <member>m_aClickHdl</member>. - - @return - <member>m_aClickHdl</member> - */ - inline const Link& GetClickHdl() const { return m_aClickHdl; } - - // ::FixedHyperbaseLink - - /** sets the URL of the hyperlink and uses it as tooltip. */ - void SetURL(const OUString& rNewURL); - - /** returns the URL of the hyperlink. - - @return - <member>m_sURL</member> - */ - OUString GetURL() const; - - /** sets new text and recalculates the text length. */ - virtual void SetText(const OUString& rNewDescription); - }; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/floatwin.hxx b/vcl/inc/vcl/floatwin.hxx deleted file mode 100644 index 4f29b40e01a5..000000000000 --- a/vcl/inc/vcl/floatwin.hxx +++ /dev/null @@ -1,152 +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 . - */ - -#ifndef _SV_FLOATWIN_HXX -#define _SV_FLOATWIN_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/syswin.hxx> - -class ToolBox; - -// ------------------------ -// - FloatingWindow-Types - -// ------------------------ - -#define FLOATWIN_POPUPMODE_ALLOWTEAROFF ((sal_uLong)0x00000001) -#define FLOATWIN_POPUPMODE_ANIMATIONSLIDE ((sal_uLong)0x00000002) -#define FLOATWIN_POPUPMODE_NOAUTOARRANGE ((sal_uLong)0x00000004) -#define FLOATWIN_POPUPMODE_NOANIMATION ((sal_uLong)0x00000008) -#define FLOATWIN_POPUPMODE_DOWN ((sal_uLong)0x00000010) -#define FLOATWIN_POPUPMODE_UP ((sal_uLong)0x00000020) -#define FLOATWIN_POPUPMODE_LEFT ((sal_uLong)0x00000040) -#define FLOATWIN_POPUPMODE_RIGHT ((sal_uLong)0x00000080) -#define FLOATWIN_POPUPMODE_NOFOCUSCLOSE ((sal_uLong)0x00000100) -#define FLOATWIN_POPUPMODE_NOKEYCLOSE ((sal_uLong)0x00000200) -#define FLOATWIN_POPUPMODE_NOMOUSECLOSE ((sal_uLong)0x00000400) -#define FLOATWIN_POPUPMODE_NOMOUSERECTCLOSE ((sal_uLong)0x00000800) -#define FLOATWIN_POPUPMODE_ALLMOUSEBUTTONCLOSE ((sal_uLong)0x00001000) -#define FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE ((sal_uLong)0x00002000) -#define FLOATWIN_POPUPMODE_PATHMOUSECANCELCLICK ((sal_uLong)0x00004000) -#define FLOATWIN_POPUPMODE_NEWLEVEL ((sal_uLong)0x00008000) -#define FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE ((sal_uLong)0x00010000) -#define FLOATWIN_POPUPMODE_GRABFOCUS ((sal_uLong)0x00020000) - -#define FLOATWIN_POPUPMODEEND_CANCEL ((sal_uInt16)0x0001) -#define FLOATWIN_POPUPMODEEND_TEAROFF ((sal_uInt16)0x0002) -#define FLOATWIN_POPUPMODEEND_DONTCALLHDL ((sal_uInt16)0x0004) -#define FLOATWIN_POPUPMODEEND_CLOSEALL ((sal_uInt16)0x0008) - -#define FLOATWIN_TITLE_NORMAL ((sal_uInt16)0x0001) -#define FLOATWIN_TITLE_TEAROFF ((sal_uInt16)0x0002) -#define FLOATWIN_TITLE_POPUP ((sal_uInt16)0x0004) -#define FLOATWIN_TITLE_NONE ((sal_uInt16)0x0008) - -// ------------------ -// - FloatingWindow - -// ------------------ - -class VCL_DLLPUBLIC FloatingWindow : public SystemWindow -{ - class ImplData; -private: - FloatingWindow* mpNextFloat; - Window* mpFirstPopupModeWin; - ImplData* mpImplData; - Rectangle maFloatRect; - sal_uLong mnPostId; - sal_uLong mnPopupModeFlags; - sal_uInt16 mnTitle; - sal_uInt16 mnOldTitle; - sal_Bool mbInPopupMode; - sal_Bool mbPopupMode; - sal_Bool mbPopupModeCanceled; - sal_Bool mbPopupModeTearOff; - sal_Bool mbMouseDown; - sal_Bool mbOldSaveBackMode; - sal_Bool mbGrabFocus; // act as key input window, although focus is not set - sal_Bool mbInCleanUp; - Link maPopupModeEndHdl; - - SAL_DLLPRIVATE void ImplCallPopupModeEnd(); - DECL_DLLPRIVATE_LINK( ImplEndPopupModeHdl, void* ); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE FloatingWindow (const FloatingWindow &); - SAL_DLLPRIVATE FloatingWindow & operator= (const FloatingWindow &); - -protected: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings(); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: -#define IMPL_FLOATWIN_HITTEST_OUTSIDE ((sal_uInt16)0x0001) -#define IMPL_FLOATWIN_HITTEST_WINDOW ((sal_uInt16)0x0002) -#define IMPL_FLOATWIN_HITTEST_RECT ((sal_uInt16)0x0004) - SAL_DLLPRIVATE FloatingWindow* ImplFloatHitTest( Window* pReference, const Point& rPos, sal_uInt16& rHitTest ); - SAL_DLLPRIVATE FloatingWindow* ImplFindLastLevelFloat(); - SAL_DLLPRIVATE sal_Bool ImplIsFloatPopupModeWindow( const Window* pWindow ); - SAL_DLLPRIVATE void ImplSetMouseDown() { mbMouseDown = sal_True; } - SAL_DLLPRIVATE sal_Bool ImplIsMouseDown() const { return mbMouseDown; } - SAL_DLLPRIVATE static Point ImplCalcPos( Window* pWindow, - const Rectangle& rRect, sal_uLong nFlags, - sal_uInt16& rArrangeIndex ); - SAL_DLLPRIVATE void ImplEndPopupMode( sal_uInt16 nFlags = 0, sal_uLong nFocusId = 0 ); - SAL_DLLPRIVATE Rectangle& ImplGetItemEdgeClipRect(); - SAL_DLLPRIVATE sal_Bool ImplIsInPrivatePopupMode() const { return mbInPopupMode; } - -public: - FloatingWindow( Window* pParent, WinBits nStyle = WB_STDFLOATWIN ); - FloatingWindow( Window* pParent, const ResId& rResId ); - ~FloatingWindow(); - - virtual long Notify( NotifyEvent& rNEvt ); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void PopupModeEnd(); - - void SetTitleType( sal_uInt16 nTitle ); - sal_uInt16 GetTitleType() const { return mnTitle; } - - void StartPopupMode( const Rectangle& rRect, sal_uLong nFlags = 0 ); - void StartPopupMode( ToolBox* pBox, sal_uLong nFlags = 0 ); - void EndPopupMode( sal_uInt16 nFlags = 0 ); - void AddPopupModeWindow( Window* pWindow ); - sal_uLong GetPopupModeFlags() const { return mnPopupModeFlags; } - void SetPopupModeFlags( sal_uLong nFlags ) { mnPopupModeFlags = nFlags; } - sal_Bool IsInPopupMode() const { return mbPopupMode; } - sal_Bool IsInCleanUp() const { return mbInCleanUp; } - sal_Bool IsPopupModeCanceled() const { return mbPopupModeCanceled; } - sal_Bool IsPopupModeTearOff() const { return mbPopupModeTearOff; } - - void SetPopupModeEndHdl( const Link& rLink ) { maPopupModeEndHdl = rLink; } - const Link& GetPopupModeEndHdl() const { return maPopupModeEndHdl; } - - sal_Bool GrabsFocus() const { return mbGrabFocus; } - - static Point CalcFloatingPosition( Window* pWindow, const Rectangle& rRect, sal_uLong nFlags, sal_uInt16& rArrangeIndex ); -}; - -#endif // _SV_FLOATWIN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/fltcall.hxx b/vcl/inc/vcl/fltcall.hxx deleted file mode 100644 index 03a634073d95..000000000000 --- a/vcl/inc/vcl/fltcall.hxx +++ /dev/null @@ -1,68 +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 . - */ - -#ifndef _FLTCALL_HXX -#define _FLTCALL_HXX -#include <sal/types.h> -#include <vcl/field.hxx> -#include <com/sun/star/uno/Sequence.h> -#include <com/sun/star/beans/PropertyValue.hpp> -#include <vcl/FilterConfigItem.hxx> - -class FilterConfigItem; -class SvStream; -class Graphic; -class Window; - -struct FltCallDialogParameter -{ - - Window* pWindow; - ResMgr* pResMgr; - FieldUnit eFieldUnit; - String aFilterExt; - - // In and Out PropertySequence for all filter dialogs - ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aFilterData; - - FltCallDialogParameter( Window* pW, ResMgr* pRsMgr, FieldUnit eFiUni ) : - pWindow ( pW ), - pResMgr ( pRsMgr ), - eFieldUnit ( eFiUni ) {}; -}; - -typedef sal_Bool (*PFilterCall)(SvStream & rStream, Graphic & rGraphic, - FilterConfigItem* pConfigItem, sal_Bool bPrefDialog); - // Of this type are both export-filter and import-filter functions - // rFileName is the complete path to the file to be imported or exported - // pCallBack can be NULL. pCallerData is handed to the callback function - // pOptionsConfig can be NULL; if not, the group of the config is already set - // and may not be changed by this filter! - // If bPrefDialog==sal_True, a Preferences-Dialog might be called - -typedef sal_Bool ( *PFilterDlgCall )( FltCallDialogParameter& ); - // Of this type are both export-filter and import-filter functions - // hands a pointer to the parent window and to the options config - // pOptions and pWindow can be NULL; in this case sal_False is returned, - // otherwise the group of the config is already set - // and may not be changed by this filter! - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/fntstyle.hxx b/vcl/inc/vcl/fntstyle.hxx deleted file mode 100644 index 5e877b3f28fc..000000000000 --- a/vcl/inc/vcl/fntstyle.hxx +++ /dev/null @@ -1,47 +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 . - */ - -#ifndef _VCL_FNTSTYLE_HXX -#define _VCL_FNTSTYLE_HXX - -#include <tools/solar.h> -#include <sal/types.h> - -// -------------- -// - Font enums - -// -------------- - -#ifndef ENUM_FONTRELIEF_DECLARED -#define ENUM_FONTRELIEF_DECLARED - -enum FontRelief { RELIEF_NONE, RELIEF_EMBOSSED, RELIEF_ENGRAVED, FontRelief_FORCE_EQUAL_SIZE=SAL_MAX_ENUM }; - -#endif - -// -------------- -// - Font types - -// -------------- - -typedef sal_uInt8 FontKerning; -#define KERNING_FONTSPECIFIC ((FontKerning)0x01) -#define KERNING_ASIAN ((FontKerning)0x02) - -#endif // _VCL_FNTSTYLE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/font.hxx b/vcl/inc/vcl/font.hxx deleted file mode 100644 index d886d48b9854..000000000000 --- a/vcl/inc/vcl/font.hxx +++ /dev/null @@ -1,137 +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 . - */ - -#ifndef _SV_FONT_HXX -#define _SV_FONT_HXX - -#include <sal/types.h> -#include <vcl/dllapi.h> -#include <tools/string.hxx> -#include <i18nlangtag/lang.h> -#include <tools/color.hxx> -#include <vcl/vclenum.hxx> -#include <vcl/fntstyle.hxx> - -class SvStream; -#define FontAlign TextAlign - -class Impl_Font; -class ImplFontAttributes; -class Size; - -// -------- -// - Font - -// -------- - -class VCL_DLLPUBLIC Font -{ -private: - Impl_Font* mpImplFont; - void MakeUnique(); - -public: - Font(); - Font( const Font& ); - Font( const String& rFamilyName, const Size& ); - Font( const String& rFamilyName, const String& rStyleName, const Size& ); - Font( FontFamily eFamily, const Size& ); - ~Font(); - - // setting the color on the font is obsolete, the only remaining - // valid use is for keeping backward compatibility with old MetaFiles - void SetColor( const Color& ); - const Color& GetColor() const; - void SetFillColor( const Color& ); - const Color& GetFillColor() const; - void SetTransparent( sal_Bool bTransparent ); - sal_Bool IsTransparent() const; - void SetAlign( FontAlign ); - FontAlign GetAlign() const; - - void SetName( const OUString& rFamilyName ); - const String& GetName() const; - void SetStyleName( const String& rStyleName ); - const String& GetStyleName() const; - void SetSize( const Size& ); - const Size& GetSize() const; - void SetHeight( long nHeight ); - long GetHeight() const; - void SetWidth( long nWidth ); - long GetWidth() const; - - void SetFamily( FontFamily ); - FontFamily GetFamily() const; - void SetCharSet( rtl_TextEncoding ); - rtl_TextEncoding GetCharSet() const; - void SetLanguage( LanguageType ); - LanguageType GetLanguage() const; - void SetCJKContextLanguage( LanguageType ); - LanguageType GetCJKContextLanguage() const; - void SetPitch( FontPitch ePitch ); - FontPitch GetPitch() const; - - void SetOrientation( short nLineOrientation ); - short GetOrientation() const; - void SetVertical( sal_Bool bVertical ); - sal_Bool IsVertical() const; - void SetKerning( FontKerning nKerning ); - FontKerning GetKerning() const; - sal_Bool IsKerning() const; - - void SetWeight( FontWeight ); - FontWeight GetWeight() const; - void SetWidthType( FontWidth ); - FontWidth GetWidthType() const; - void SetItalic( FontItalic ); - FontItalic GetItalic() const; - void SetOutline( sal_Bool bOutline ); - sal_Bool IsOutline() const; - void SetShadow( sal_Bool bShadow ); - sal_Bool IsShadow() const; - void SetRelief( FontRelief ); - FontRelief GetRelief() const; - void SetUnderline( FontUnderline ); - FontUnderline GetUnderline() const; - void SetOverline( FontUnderline ); - FontUnderline GetOverline() const; - void SetStrikeout( FontStrikeout ); - FontStrikeout GetStrikeout() const; - void SetEmphasisMark( FontEmphasisMark ); - FontEmphasisMark GetEmphasisMark() const; - void SetWordLineMode( sal_Bool bWordLine ); - sal_Bool IsWordLineMode() const; - - void Merge( const Font& rFont ); - void GetFontAttributes( ImplFontAttributes& rAttrs ) const; - - Font& operator=( const Font& ); - sal_Bool operator==( const Font& ) const; - sal_Bool operator!=( const Font& rFont ) const - { return !(Font::operator==( rFont )); } - sal_Bool IsSameInstance( const Font& ) const; - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, Font& ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const Font& ); - - static Font identifyFont( const void* pBuffer, sal_uInt32 nLen ); -}; - -#endif // _VCL_FONT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/fontcapabilities.hxx b/vcl/inc/vcl/fontcapabilities.hxx deleted file mode 100644 index 5740b96c3411..000000000000 --- a/vcl/inc/vcl/fontcapabilities.hxx +++ /dev/null @@ -1,204 +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/. - */ - -#ifndef _VCLFONTCAPABILITIES_HXX -#define _VCLFONTCAPABILITIES_HXX - -#include <boost/dynamic_bitset.hpp> -#include <vector> - -//See OS/2 table, i.e. http://www.microsoft.com/typography/otspec/os2.htm#ur -namespace vcl -{ - namespace UnicodeCoverage - { - enum UnicodeCoverageEnum - { - BASIC_LATIN = 0, - LATIN_1_SUPPLEMENT = 1, - LATIN_EXTENDED_A = 2, - LATIN_EXTENDED_B = 3, - IPA_EXTENSIONS = 4, - SPACING_MODIFIER_LETTERS = 5, - COMBINING_DIACRITICAL_MARKS = 6, - GREEK_AND_COPTIC = 7, - COPTIC = 8, - CYRILLIC = 9, - ARMENIAN = 10, - HEBREW = 11, - VAI = 12, - ARABIC = 13, - NKO = 14, - DEVANAGARI = 15, - BENGALI = 16, - GURMUKHI = 17, - GUJARATI = 18, - ORIYA = 19, - TAMIL = 20, - TELUGU = 21, - KANNADA = 22, - MALAYALAM = 23, - THAI = 24, - LAO = 25, - GEORGIAN = 26, - BALINESE = 27, - HANGUL_JAMO = 28, - LATIN_EXTENDED_ADDITIONAL = 29, - GREEK_EXTENDED = 30, - GENERAL_PUNCTUATION = 31, - SUPERSCRIPTS_AND_SUBSCRIPTS = 32, - CURRENCY_SYMBOLS = 33, - COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS = 34, - LETTERLIKE_SYMBOLS = 35, - NUMBER_FORMS = 36, - ARROWS = 37, - MATHEMATICAL_OPERATORS = 38, - MISCELLANEOUS_TECHNICAL = 39, - CONTROL_PICTURES = 40, - OPTICAL_CHARACTER_RECOGNITION = 41, - ENCLOSED_ALPHANUMERICS = 42, - BOX_DRAWING = 43, - BLOCK_ELEMENTS = 44, - GEOMETRIC_SHAPES = 45, - MISCELLANEOUS_SYMBOLS = 46, - DINGBATS = 47, - CJK_SYMBOLS_AND_PUNCTUATION = 48, - HIRAGANA = 49, - KATAKANA = 50, - BOPOMOFO = 51, - HANGUL_COMPATIBILITY_JAMO = 52, - PHAGS_PA = 53, - ENCLOSED_CJK_LETTERS_AND_MONTHS = 54, - CJK_COMPATIBILITY = 55, - HANGUL_SYLLABLES = 56, - NONPLANE_0 = 57, - PHOENICIAN = 58, - CJK_UNIFIED_IDEOGRAPHS = 59, - PRIVATE_USE_AREA_PLANE_0 = 60, - CJK_STROKES = 61, - ALPHABETIC_PRESENTATION_FORMS = 62, - ARABIC_PRESENTATION_FORMS_A = 63, - COMBINING_HALF_MARKS = 64, - VERTICAL_FORMS = 65, - SMALL_FORM_VARIANTS = 66, - ARABIC_PRESENTATION_FORMS_B = 67, - HALFWIDTH_AND_FULLWIDTH_FORMS = 68, - SPECIALS = 69, - TIBETAN = 70, - SYRIAC = 71, - THAANA = 72, - SINHALA = 73, - MYANMAR = 74, - ETHIOPIC = 75, - CHEROKEE = 76, - UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = 77, - OGHAM = 78, - RUNIC = 79, - KHMER = 80, - MONGOLIAN = 81, - BRAILLE_PATTERNS = 82, - YI_SYLLABLES = 83, - TAGALOG = 84, - OLD_ITALIC = 85, - GOTHIC = 86, - DESERET = 87, - BYZANTINE_MUSICAL_SYMBOLS = 88, - MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 89, - PRIVATE_USE_PLANE_15 = 90, - VARIATION_SELECTORS = 91, - TAGS = 92, - LIMBU = 93, - TAI_LE = 94, - NEW_TAI_LUE = 95, - BUGINESE = 96, - GLAGOLITIC = 97, - TIFINAGH = 98, - YIJING_HEXAGRAM_SYMBOLS = 99, - SYLOTI_NAGRI = 100, - LINEAR_B_SYLLABARY = 101, - ANCIENT_GREEK_NUMBERS = 102, - UGARITIC = 103, - OLD_PERSIAN = 104, - SHAVIAN = 105, - OSMANYA = 106, - CYPRIOT_SYLLABARY = 107, - KHAROSHTHI = 108, - TAI_XUAN_JING_SYMBOLS = 109, - CUNEIFORM = 110, - COUNTING_ROD_NUMERALS = 111, - SUNDANESE = 112, - LEPCHA = 113, - OL_CHIKI = 114, - SAURASHTRA = 115, - KAYAH_LI = 116, - REJANG = 117, - CHAM = 118, - ANCIENT_SYMBOLS = 119, - PHAISTOS_DISC = 120, - CARIAN = 121, - DOMINO_TILES = 122, - RESERVED1 = 123, - RESERVED2 = 124, - RESERVED3 = 125, - RESERVED4 = 126, - RESERVED5 = 127, - MAX_UC_ENUM = 128 - }; - }; - - namespace CodePageCoverage - { - enum CodePageCoverageEnum - { - CP1252 = 0, - CP1250 = 1, - CP1251 = 2, - CP1253 = 3, - CP1254 = 4, - CP1255 = 5, - CP1256 = 6, - CP1257 = 7, - CP1258 = 8, - CP874 = 16, - CP932 = 17, - CP936 = 18, - CP949 = 19, - CP950 = 20, - CP1361 = 21, - CP869 = 48, - CP866 = 49, - CP865 = 50, - CP864 = 51, - CP863 = 52, - CP862 = 53, - CP861 = 54, - CP860 = 55, - CP857 = 56, - CP855 = 57, - CP852 = 58, - CP775 = 59, - CP737 = 60, - CP780 = 61, - CP850 = 62, - CP437 = 63, - MAX_CP_ENUM = 64 - }; - }; - - struct FontCapabilities - { - boost::dynamic_bitset<sal_uInt32> maUnicodeRange; - boost::dynamic_bitset<sal_uInt32> maCodePageRange; - std::vector< sal_uInt32 > maGSUBScriptTags; - }; -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/fontmanager.hxx b/vcl/inc/vcl/fontmanager.hxx deleted file mode 100644 index 05955f984710..000000000000 --- a/vcl/inc/vcl/fontmanager.hxx +++ /dev/null @@ -1,578 +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 . - */ - -#ifndef _PSPRINT_FONTMANAGER_HXX_ -#define _PSPRINT_FONTMANAGER_HXX_ - -#include <boost/unordered_map.hpp> -#include <map> -#include <list> -#include <set> - -#include "vcl/dllapi.h" -#include "vcl/helper.hxx" -#include "vcl/timer.hxx" -#include "vcl/vclenum.hxx" -#include "com/sun/star/lang/Locale.hpp" - -#include <vector> - -#define ATOM_FAMILYNAME 2 -#define ATOM_PSNAME 3 - -/* - * some words on metrics: every length returned by PrintFontManager and - * friends are PostScript afm style, that is they are 1/1000 font height - */ - -// forward declarations -namespace utl { class MultiAtomProvider; } // see unotools/atom.hxx -class FontSubsetInfo; -class ImplFontOptions; -class FontSelectPattern; - -namespace psp { -class PPDParser; // see ppdparser.hxx - -namespace fonttype -{ -enum type { - Unknown = 0, - Type1 = 1, - TrueType = 2, - Builtin = 3 -}; -} - -/* - * the difference between FastPrintFontInfo and PrintFontInfo - * is that the information in FastPrintFontInfo can usually - * be gathered without openening either the font file or - * an afm metric file. they are gathered from fonts.dir alone. - * if only FastPrintFontInfo is gathered and PrintFontInfo - * on demand and for less fonts, then performance in startup - * increases considerably - */ - -struct FastPrintFontInfo -{ - fontID m_nID; // FontID - fonttype::type m_eType; - - // font attributes - OUString m_aFamilyName; - OUString m_aStyleName; - std::list< OUString > m_aAliases; - FontFamily m_eFamilyStyle; - FontItalic m_eItalic; - FontWidth m_eWidth; - FontWeight m_eWeight; - FontPitch m_ePitch; - rtl_TextEncoding m_aEncoding; - bool m_bSubsettable; - bool m_bEmbeddable; - - FastPrintFontInfo() : - m_nID( 0 ), - m_eType( fonttype::Unknown ), - m_eFamilyStyle( FAMILY_DONTKNOW ), - m_eItalic( ITALIC_DONTKNOW ), - m_eWidth( WIDTH_DONTKNOW ), - m_eWeight( WEIGHT_DONTKNOW ), - m_ePitch( PITCH_DONTKNOW ), - m_aEncoding( RTL_TEXTENCODING_DONTKNOW ) - {} -}; - -struct PrintFontInfo : public FastPrintFontInfo -{ - int m_nAscend; - int m_nDescend; - int m_nLeading; - int m_nWidth; - - PrintFontInfo() : - FastPrintFontInfo(), - m_nAscend( 0 ), - m_nDescend( 0 ), - m_nLeading( 0 ), - m_nWidth( 0 ) - {} -}; - -// the values are per thousand of the font size -// note: width, height contain advances, not bounding box -struct CharacterMetric -{ - short int width, height; - - CharacterMetric() : width( 0 ), height( 0 ) {} - bool operator==( const CharacterMetric& rOther ) const - { return rOther.width == width && rOther.height == height; } - bool operator!=( const CharacterMetric& rOther ) const - { return rOther.width != width || rOther.height != height; } -}; - -struct KernPair -{ - sal_Unicode first, second; - short int kern_x, kern_y; - - KernPair() : first( 0 ), second( 0 ), kern_x( 0 ), kern_y( 0 ) {} -}; - -class FontCache; - -// a class to manage printable fonts -// aims are type1 and truetype fonts - -class FontCache; - -class VCL_PLUGIN_PUBLIC PrintFontManager -{ - struct PrintFont; - struct TrueTypeFontFile; - struct Type1FontFile; - struct BuiltinFont; - friend struct PrintFont; - friend struct TrueTypeFontFile; - friend struct Type1FontFile; - friend struct BuiltinFont; - friend class FontCache; - - struct PrintFontMetrics - { - // character metrics are stored by the following keys: - // lower two bytes contain a sal_Unicode (a UCS2 character) - // upper byte contains: 0 for horizontal metric - // 1 for vertical metric - // highest byte: 0 for now - boost::unordered_map< int, CharacterMetric > m_aMetrics; - // contains the unicode blocks for which metrics were queried - // this implies that metrics should be queried in terms of - // unicode blocks. here a unicode block is identified - // by the upper byte of the UCS2 encoding. - // note that the corresponding bit should be set even - // if the font does not support a single character of that page - // this map shows, which pages were queried already - // if (like in AFM metrics) all metrics are queried in - // a single pass, then all bits should be set - char m_aPages[32]; - - bool m_bKernPairsQueried; - std::list< KernPair > m_aXKernPairs; - std::list< KernPair > m_aYKernPairs; - boost::unordered_map< sal_Unicode, bool > m_bVerticalSubstitutions; - - PrintFontMetrics() : m_bKernPairsQueried( false ) {} - - bool isEmpty() const { return m_aMetrics.empty(); } - }; - - struct PrintFont - { - fonttype::type m_eType; - - // font attributes - int m_nFamilyName; // atom - std::list< int > m_aAliases; - int m_nPSName; // atom - OUString m_aStyleName; - FontItalic m_eItalic; - FontWidth m_eWidth; - FontWeight m_eWeight; - FontPitch m_ePitch; - rtl_TextEncoding m_aEncoding; - bool m_bFontEncodingOnly; // set if font should be only accessed by builtin encoding - CharacterMetric m_aGlobalMetricX; - CharacterMetric m_aGlobalMetricY; - PrintFontMetrics* m_pMetrics; - int m_nAscend; - int m_nDescend; - int m_nLeading; - int m_nXMin; // font bounding box - int m_nYMin; - int m_nXMax; - int m_nYMax; - bool m_bHaveVerticalSubstitutedGlyphs; - bool m_bUserOverride; - - std::map< sal_Unicode, sal_Int32 > m_aEncodingVector; - std::map< sal_Unicode, OString > m_aNonEncoded; - - PrintFont( fonttype::type eType ); - virtual ~PrintFont(); - virtual bool queryMetricPage( int nPage, utl::MultiAtomProvider* pProvider ) = 0; - - bool readAfmMetrics( utl::MultiAtomProvider* pProvider, bool bFillEncodingvector, bool bOnlyGlobalAttributes ); - }; - - struct Type1FontFile : public PrintFont - { - int m_nDirectory; // atom containing system dependent path - OString m_aFontFile; // relative to directory - OString m_aMetricFile; // dito - - /* note: m_aFontFile and Metric file are not atoms - because they should be fairly unique */ - - Type1FontFile() : PrintFont( fonttype::Type1 ), m_nDirectory( 0 ) {} - virtual ~Type1FontFile(); - virtual bool queryMetricPage( int nPage, utl::MultiAtomProvider* pProvider ); - }; - - struct TrueTypeFontFile : public PrintFont - { - int m_nDirectory; // atom containing system dependent path - OString m_aFontFile; // relative to directory - int m_nCollectionEntry; // 0 for regular fonts, 0 to ... for fonts stemming from collections - unsigned int m_nTypeFlags; // copyright bits and PS-OpenType flag - - TrueTypeFontFile(); - virtual ~TrueTypeFontFile(); - virtual bool queryMetricPage( int nPage, utl::MultiAtomProvider* pProvider ); - }; - - struct BuiltinFont : public PrintFont - { - int m_nDirectory; // atom containing system dependent path - OString m_aMetricFile; - - BuiltinFont() : PrintFont( fonttype::Builtin ) {} - virtual ~BuiltinFont(); - virtual bool queryMetricPage( int nPage, utl::MultiAtomProvider* pProvider ); - }; - - fontID m_nNextFontID; - boost::unordered_map< fontID, PrintFont* > m_aFonts; - boost::unordered_map< int, FontFamily > m_aFamilyTypes; - std::list< OUString > m_aPrinterDrivers; - std::list< OString > m_aFontDirectories; - std::list< int > m_aPrivateFontDirectories; - utl::MultiAtomProvider* m_pAtoms; - // for speeding up findFontFileID - boost::unordered_map< OString, std::set< fontID >, OStringHash > - m_aFontFileToFontID; - - boost::unordered_map< OString, int, OStringHash > - m_aDirToAtom; - boost::unordered_map< int, OString > m_aAtomToDir; - int m_nNextDirAtom; - - boost::unordered_multimap< OString, sal_Unicode, OStringHash > - m_aAdobenameToUnicode; - boost::unordered_multimap< sal_Unicode, OString > - m_aUnicodeToAdobename; - boost::unordered_multimap< sal_Unicode, sal_uInt8 > m_aUnicodeToAdobecode; - boost::unordered_multimap< sal_uInt8, sal_Unicode > m_aAdobecodeToUnicode; - - mutable FontCache* m_pFontCache; - - mutable std::vector< fontID > m_aOverrideFonts; - - OString getAfmFile( PrintFont* pFont ) const; - OString getFontFile( PrintFont* pFont ) const; - - bool analyzeFontFile( int nDirID, const OString& rFileName, std::list< PrintFont* >& rNewFonts, const char *pFormat=NULL ) const; - OUString convertTrueTypeName( void* pNameRecord ) const; // actually a NameRecord* formt font subsetting code - void analyzeTrueTypeFamilyName( void* pTTFont, std::list< OUString >& rnames ) const; // actually a TrueTypeFont* from font subsetting code - bool analyzeTrueTypeFile( PrintFont* pFont ) const; - // finds the font id for the nFaceIndex face in this font file - // There may be multiple font ids for TrueType collections - fontID findFontFileID( int nDirID, const OString& rFile, int nFaceIndex ) const; - - // There may be multiple font ids for TrueType collections - std::vector<fontID> findFontFileIDs( int nDirID, const OString& rFile ) const; - - bool knownFontFile( int nDirID, const OString& rFile ) const - { - return findFontFileID(nDirID, rFile, 0) != 0; - } - - fontID findFontBuiltinID( int nPSNameAtom ) const; - - FontFamily matchFamilyName( const OUString& rFamily ) const; - - PrintFont* getFont( fontID nID ) const - { - boost::unordered_map< fontID, PrintFont* >::const_iterator it; - it = m_aFonts.find( nID ); - return it == m_aFonts.end() ? NULL : it->second; - } - void fillPrintFontInfo( PrintFont* pFont, FastPrintFontInfo& rInfo ) const; - void fillPrintFontInfo( PrintFont* pFont, PrintFontInfo& rInfo ) const; - - OString getDirectory( int nAtom ) const; - int getDirectoryAtom( const OString& rDirectory, bool bCreate = false ); - - /* try to initialize fonts from libfontconfig - - called from <code>initialize()</code> - */ - void initFontconfig(); - void countFontconfigFonts( boost::unordered_map<OString, int, OStringHash>& o_rVisitedPaths ); - /* deinitialize fontconfig - */ - void deinitFontconfig(); - - /* register an application specific font directory for libfontconfig - - since fontconfig is asked for font substitutes before OOo will check for font availability - and fontconfig will happily substitute fonts it doesn't know (e.g. "Arial Narrow" -> "DejaVu Sans Book"!) - it becomes necessary to tell the library about all the hidden font treasures - - @returns - true if libfontconfig accepted the directory - false else (e.g. no libfontconfig found) - */ - bool addFontconfigDir(const OString& rDirectory); - - bool readOverrideMetrics(); - - std::set<OString> m_aPreviousLangSupportRequests; - std::vector<OString> m_aCurrentRequests; - Timer m_aFontInstallerTimer; - - DECL_LINK( autoInstallFontLangSupport, void* ); - - PrintFontManager(); - ~PrintFontManager(); -public: - static PrintFontManager& get(); // one instance only - - // There may be multiple font ids for TrueType collections - std::vector<fontID> addFontFile( const OString& rFileName ); - - void initialize(); - - // returns the number of managed fonts - int getFontCount() const { return m_aFonts.size(); } - - // caution: the getFontList* methods can change the font list on demand - // depending on the pParser argument. That is getFontCount() may - // return a larger value after getFontList() - - // returns the ids of all managed fonts. on pParser != NULL - // all fonttype::Builtin type fonts are not listed - // which do not occur in the PPD of pParser - void getFontList( std::list< fontID >& rFontIDs, const PPDParser* pParser = NULL, bool bUseOverrideMetrics = false ); - // get the font list and fast font info. see getFontList for pParser - void getFontListWithFastInfo( std::list< FastPrintFontInfo >& rFonts, const PPDParser* pParser = NULL, bool bUseOverrideMetrics = false ); - - // get font info for a specific font - bool getFontInfo( fontID nFontID, PrintFontInfo& rInfo ) const; - // get fast font info for a specific font - bool getFontFastInfo( fontID nFontID, FastPrintFontInfo& rInfo ) const; - - // routines to get font info in small pieces - - // get a specific fonts PSName name - const OUString& getPSName( fontID nFontID ) const; - - // get a specific fonts family name aliases - void getFontFamilyAliases( fontID nFontID ) const; - - // get a specific fonts type - fonttype::type getFontType( fontID nFontID ) const - { - PrintFont* pFont = getFont( nFontID ); - return pFont ? pFont->m_eType : fonttype::Unknown; - } - - // get a specific fonts italic type - FontItalic getFontItalic( fontID nFontID ) const - { - PrintFont* pFont = getFont( nFontID ); - return pFont ? pFont->m_eItalic : ITALIC_DONTKNOW; - } - - // get a specific fonts width type - FontWidth getFontWidth( fontID nFontID ) const - { - PrintFont* pFont = getFont( nFontID ); - return pFont ? pFont->m_eWidth : WIDTH_DONTKNOW; - } - - // get a specific fonts weight type - FontWeight getFontWeight( fontID nFontID ) const - { - PrintFont* pFont = getFont( nFontID ); - return pFont ? pFont->m_eWeight : WEIGHT_DONTKNOW; - } - - // get a specific fonts pitch type - FontPitch getFontPitch( fontID nFontID ) const - { - PrintFont* pFont = getFont( nFontID ); - return pFont ? pFont->m_ePitch : PITCH_DONTKNOW; - } - - // get a specific fonts encoding - rtl_TextEncoding getFontEncoding( fontID nFontID ) const - { - PrintFont* pFont = getFont( nFontID ); - return pFont ? pFont->m_aEncoding : RTL_TEXTENCODING_DONTKNOW; - } - - // should i only use font's builtin encoding ? - bool getUseOnlyFontEncoding( fontID nFontID ) const - { - PrintFont* pFont = getFont( nFontID ); - return pFont ? pFont->m_bFontEncodingOnly : false; - } - - // get a specific fonts system dependent filename - OString getFontFileSysPath( fontID nFontID ) const - { - return getFontFile( getFont( nFontID ) ); - } - - // get the ttc face number - int getFontFaceNumber( fontID nFontID ) const; - - // get a specific fonts ascend - int getFontAscend( fontID nFontID ) const; - - // get a specific fonts descent - int getFontDescend( fontID nFontID ) const; - - // get a fonts glyph bounding box - bool getFontBoundingBox( fontID nFont, int& xMin, int& yMin, int& xMax, int& yMax ); - - // info whether an array of glyphs has vertical substitutions - void hasVerticalSubstitutions( fontID nFontID, const sal_Unicode* pCharacters, - int nCharacters, bool* pHasSubst ) const; - - // get a specific fonts metrics - - // get metrics for a sal_Unicode range - // the user is responsible to allocate pArray large enough - bool getMetrics( fontID nFontID, sal_Unicode minCharacter, sal_Unicode maxCharacter, CharacterMetric* pArray, bool bVertical = false ) const; - // get metrics for an array of sal_Unicode characters - // the user is responsible to allocate pArray large enough - bool getMetrics( fontID nFontID, const sal_Unicode* pString, int nLen, CharacterMetric* pArray, bool bVertical = false ) const; - - // get encoding vector of font, currently only for Type1 and Builtin fonts - // returns NULL if encoding vector is empty or font is neither type1 or - // builtin; if ppNonEncoded is set and non encoded type1 glyphs exist - // then *ppNonEncoded is set to the mapping for nonencoded glyphs. - // the encoding vector contains -1 for non encoded glyphs - const std::map< sal_Unicode, sal_Int32 >* getEncodingMap( fontID nFontID, const std::map< sal_Unicode, OString >** ppNonEncoded ) const; - - // to get font substitution transparently use the - // getKernPairs method of PrinterGfx - const std::list< KernPair >& getKernPairs( fontID nFontID, bool bVertical = false ) const; - - // evaluates copyright flags for TrueType fonts for printing/viewing - // type1 fonts do not have such a feature, so return for them is true - // returns true for builtin fonts (surprise!) - bool isFontDownloadingAllowedForPrinting( fontID nFont ) const; - - // helper for type 1 fonts - std::list< OString > getAdobeNameFromUnicode( sal_Unicode aChar ) const; - - std::pair< boost::unordered_multimap< sal_Unicode, sal_uInt8 >::const_iterator, - boost::unordered_multimap< sal_Unicode, sal_uInt8 >::const_iterator > - getAdobeCodeFromUnicode( sal_Unicode aChar ) const - { - return m_aUnicodeToAdobecode.equal_range( aChar ); - } - std::list< sal_Unicode > getUnicodeFromAdobeName( const OString& rName ) const; - std::pair< boost::unordered_multimap< sal_uInt8, sal_Unicode >::const_iterator, - boost::unordered_multimap< sal_uInt8, sal_Unicode >::const_iterator > - getUnicodeFromAdobeCode( sal_uInt8 aChar ) const - { - return m_aAdobecodeToUnicode.equal_range( aChar ); - } - - // creates a new font subset of an existing TrueType font - // returns true in case of success, else false - // nFont: the font to be subsetted - // rOutFile: the file to put the new subset into; - // must be a valid osl file URL - // pGlyphIDs: input array of glyph ids for new font - // pNewEncoding: the corresponding encoding in the new font - // pWidths: output array of widths of requested glyphs - // nGlyphs: number of glyphs in arrays - // pCapHeight:: capital height of the produced font - // pXMin, pYMin, pXMax, pYMax: outgoing font bounding box - // TODO: callers of this method should use its FontSubsetInfo counterpart directly - bool createFontSubset( FontSubsetInfo&, - fontID nFont, - const OUString& rOutFile, - sal_Int32* pGlyphIDs, - sal_uInt8* pNewEncoding, - sal_Int32* pWidths, - int nGlyphs, - bool bVertical = false - ); - void getGlyphWidths( fontID nFont, - bool bVertical, - std::vector< sal_Int32 >& rWidths, - std::map< sal_Unicode, sal_uInt32 >& rUnicodeEnc ); - - - // font administration functions - - /* system dependendent font matching - - <p> - <code>matchFont</code> matches a pattern of font characteristics - and returns the closest match if possibe. If a match was found - the <code>FastPrintFontInfo</code> passed in as parameter - will be update to the found matching font. - </p> - <p> - implementation note: currently the function is only implemented - for fontconfig. - </p> - - @param rInfo - out of the FastPrintFontInfo structure the following - fields will be used for the match: - <ul> - <li>family name</li> - <li>italic</li> - <li>width</li> - <li>weight</li> - <li>pitch</li> - </ul> - - @param rLocale - if <code>rLocal</code> contains non empty strings the corresponding - locale will be used for font matching also; e.g. "Sans" can result - in different fonts in e.g. english and japanese - - @returns - true if a match was found - false else - */ - bool matchFont( FastPrintFontInfo& rInfo, const com::sun::star::lang::Locale& rLocale ); - ImplFontOptions* getFontOptions( const FastPrintFontInfo&, int nSize, void (*subcallback)(void*)) const; - - bool Substitute( FontSelectPattern &rPattern, OUString& rMissingCodes ); - - int FreeTypeCharIndex( void *pFace, sal_uInt32 aChar ); -}; - -} // namespace - -#endif // _PSPRINT_FONTMANAGER_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/fpicker.hrc b/vcl/inc/vcl/fpicker.hrc deleted file mode 100644 index 827d24069101..000000000000 --- a/vcl/inc/vcl/fpicker.hrc +++ /dev/null @@ -1,36 +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: - * - */ -#ifndef _FPICKER_HRC -#define _FPICKER_HRC - -#include <svl/solar.hrc> - -#define STR_SVT_FILEPICKER_START (RID_FPICKER_START+1) -#define STR_SVT_FILEPICKER_AUTO_EXTENSION (STR_SVT_FILEPICKER_START+ 0) -#define STR_SVT_FILEPICKER_PASSWORD (STR_SVT_FILEPICKER_START+ 1) -#define STR_SVT_FILEPICKER_FILTER_OPTIONS (STR_SVT_FILEPICKER_START+ 2) -#define STR_SVT_FILEPICKER_READONLY (STR_SVT_FILEPICKER_START+ 3) -#define STR_SVT_FILEPICKER_INSERT_AS_LINK (STR_SVT_FILEPICKER_START+ 4) -#define STR_SVT_FILEPICKER_SHOW_PREVIEW (STR_SVT_FILEPICKER_START+ 5) -#define STR_SVT_FILEPICKER_PLAY (STR_SVT_FILEPICKER_START+ 6) -#define STR_SVT_FILEPICKER_VERSION (STR_SVT_FILEPICKER_START+ 7) -#define STR_SVT_FILEPICKER_TEMPLATES (STR_SVT_FILEPICKER_START+ 8) -#define STR_SVT_FILEPICKER_IMAGE_TEMPLATE (STR_SVT_FILEPICKER_START+ 9) -#define STR_SVT_FILEPICKER_SELECTION (STR_SVT_FILEPICKER_START+10) -#define STR_SVT_FILEPICKER_FILTER_TITLE (STR_SVT_FILEPICKER_START+11) -#define STR_SVT_FOLDERPICKER_DEFAULT_TITLE (STR_SVT_FILEPICKER_START+12) -#define STR_SVT_FOLDERPICKER_DEFAULT_DESCRIPTION (STR_SVT_FILEPICKER_START+13) -#define STR_SVT_ALREADYEXISTOVERWRITE (STR_SVT_FILEPICKER_START+14) - - -#endif -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/gdimtf.hxx b/vcl/inc/vcl/gdimtf.hxx deleted file mode 100644 index bbdf14177b3b..000000000000 --- a/vcl/inc/vcl/gdimtf.hxx +++ /dev/null @@ -1,248 +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 . - */ - -#ifndef _SV_GDIMTF_HXX -#define _SV_GDIMTF_HXX - -#include <vcl/dllapi.h> -#include <tools/gen.hxx> -#include <tools/link.hxx> -#include <vcl/mapmod.hxx> -#include <vector> - -class OutputDevice; -class MetaAction; -class MetaCommentAction; -class SvStream; -class Color; -class BitmapEx; -class Polygon; -class PolyPolygon; -class Gradient; - -// --------------------- -// - GDIMetaFile-Types - -// --------------------- - -#define GDI_METAFILE_END ((size_t)0xFFFFFFFF) -#define GDI_METAFILE_LABEL_NOTFOUND ((size_t)0xFFFFFFFF) - -#ifndef METAFILE_END -#define METAFILE_END GDI_METAFILE_END -#endif - -#ifndef METAFILE_LABEL_NOTFOUND -#define METAFILE_LABEL_NOTFOUND GDI_METAFILE_LABEL_NOTFOUND -#endif - -#define MTF_MIRROR_NONE 0x00000000UL -#define MTF_MIRROR_HORZ 0x00000001UL -#define MTF_MIRROR_VERT 0x00000002UL - -enum MtfConversion -{ - MTF_CONVERSION_NONE = 0, - MTF_CONVERSION_1BIT_THRESHOLD = 1, - MTF_CONVERSION_8BIT_GREYS = 2 -}; - -// ----------------------------- -// - Color conversion routines - -// ----------------------------- - -typedef Color (*ColorExchangeFnc)( const Color& rColor, const void* pColParam ); -typedef BitmapEx (*BmpExchangeFnc)( const BitmapEx& rBmpEx, const void* pBmpParam ); - -class VCL_DLLPUBLIC GDIMetaFile -{ -private: - ::std::vector< MetaAction* > aList; - size_t nCurrentActionElement; - - MapMode aPrefMapMode; - Size aPrefSize; - Link aHookHdlLink; - GDIMetaFile* pPrev; - GDIMetaFile* pNext; - OutputDevice* pOutDev; - sal_Bool bPause; - sal_Bool bRecord; - sal_Bool bUseCanvas; - - - SAL_DLLPRIVATE static Color ImplColAdjustFnc( const Color& rColor, const void* pColParam ); - SAL_DLLPRIVATE static BitmapEx ImplBmpAdjustFnc( const BitmapEx& rBmpEx, const void* pBmpParam ); - - SAL_DLLPRIVATE static Color ImplColConvertFnc( const Color& rColor, const void* pColParam ); - SAL_DLLPRIVATE static BitmapEx ImplBmpConvertFnc( const BitmapEx& rBmpEx, const void* pBmpParam ); - - SAL_DLLPRIVATE static Color ImplColMonoFnc( const Color& rColor, const void* pColParam ); - SAL_DLLPRIVATE static BitmapEx ImplBmpMonoFnc( const BitmapEx& rBmpEx, const void* pBmpParam ); - - SAL_DLLPRIVATE static Color ImplColReplaceFnc( const Color& rColor, const void* pColParam ); - SAL_DLLPRIVATE static BitmapEx ImplBmpReplaceFnc( const BitmapEx& rBmpEx, const void* pBmpParam ); - - SAL_DLLPRIVATE void ImplExchangeColors( ColorExchangeFnc pFncCol, const void* pColParam, - BmpExchangeFnc pFncBmp, const void* pBmpParam ); - - SAL_DLLPRIVATE Point ImplGetRotatedPoint( const Point& rPt, const Point& rRotatePt, - const Size& rOffset, double fSin, double fCos ); - SAL_DLLPRIVATE Polygon ImplGetRotatedPolygon( const Polygon& rPoly, const Point& rRotatePt, - const Size& rOffset, double fSin, double fCos ); - SAL_DLLPRIVATE PolyPolygon ImplGetRotatedPolyPolygon( const PolyPolygon& rPoly, const Point& rRotatePt, - const Size& rOffset, double fSin, double fCos ); - SAL_DLLPRIVATE void ImplAddGradientEx( GDIMetaFile& rMtf, - const OutputDevice& rMapDev, - const PolyPolygon& rPolyPoly, - const Gradient& rGrad ); - SAL_DLLPRIVATE bool ImplPlayWithRenderer( OutputDevice* pOut, const Point& rPos, Size rDestSize ); - SAL_DLLPRIVATE void ImplDelegate2PluggableRenderer( const MetaCommentAction* pAct, OutputDevice* pOut ); - - -protected: - - virtual void Linker( OutputDevice* pOut, sal_Bool bLink ); - virtual long Hook(); - -public: - GDIMetaFile(); - GDIMetaFile( const GDIMetaFile& rMtf ); - virtual ~GDIMetaFile(); - - GDIMetaFile& operator=( const GDIMetaFile& rMtf ); - sal_Bool operator==( const GDIMetaFile& rMtf ) const; - sal_Bool operator!=( const GDIMetaFile& rMtf ) const { return !( *this == rMtf ); } - - void Clear(); - sal_Bool Mirror( sal_uLong nMirrorFlags ); - void Move( long nX, long nY ); - // additional Move method getting specifics how to handle MapMode( MAP_PIXEL ) - void Move( long nX, long nY, long nDPIX, long nDPIY ); - void Scale( double fScaleX, double fScaleY ); - void Scale( const Fraction& rScaleX, const Fraction& rScaleY ); - void Rotate( long nAngle10 ); - void Clip( const Rectangle& ); - /* get the bound rect of the contained actions - * caveats: - * - clip actions will limit the contained actions, - * but the current clipregion of the passed OutputDevice will not - * - coordinates of actions will be transformed to preferred mapmode - * - the returned rectangle is relative to the preferred mapmode of the metafile - */ - Rectangle GetBoundRect( OutputDevice& i_rReference, Rectangle* pHairline = 0 ) const; - - void Adjust( short nLuminancePercent = 0, short nContrastPercent = 0, - short nChannelRPercent = 0, short nChannelGPercent = 0, - short nChannelBPercent = 0, double fGamma = 1.0, - sal_Bool bInvert = sal_False - ); - - void Convert( MtfConversion eConversion ); - void ReplaceColors( const Color* pSearchColors, const Color* rReplaceColors, - sal_uLong nColorCount, sal_uLong* pTols = NULL ); - - GDIMetaFile GetMonochromeMtf( const Color& rCol ) const; - - void Record( OutputDevice* pOutDev ); - sal_Bool IsRecord() const { return bRecord; } - - void Play( GDIMetaFile& rMtf, size_t nPos = GDI_METAFILE_END ); - void Play( OutputDevice* pOutDev, size_t nPos = GDI_METAFILE_END ); - void Play( OutputDevice* pOutDev, const Point& rPos, - const Size& rSize, size_t nPos = GDI_METAFILE_END ); - - void Pause( sal_Bool bPause ); - sal_Bool IsPause() const { return bPause; } - - void Stop(); - - void WindStart(); - void WindPrev(); - - size_t GetActionSize() const; - - void AddAction( MetaAction* pAction ); - void AddAction( MetaAction* pAction, size_t nPos ); - void RemoveAction( size_t nPos ); - void push_back( MetaAction* pAction ); - - MetaAction* FirstAction(); - MetaAction* NextAction(); - MetaAction* GetAction( size_t nAction ) const; - MetaAction* GetCurAction() const { return GetAction( nCurrentActionElement ); } - /** - * @param pAction takes ownership - */ - MetaAction* ReplaceAction( MetaAction* pAction, size_t nAction ); - - const Size& GetPrefSize() const { return aPrefSize; } - void SetPrefSize( const Size& rSize ) { aPrefSize = rSize; } - - const MapMode& GetPrefMapMode() const { return aPrefMapMode; } - void SetPrefMapMode( const MapMode& rMapMode ) { aPrefMapMode = rMapMode; } - - void SetHookHdl( const Link& rLink ) { aHookHdlLink = rLink; } - const Link& GetHookHdl() const { return aHookHdlLink; } - - sal_uLong GetChecksum() const; - sal_uLong GetSizeBytes() const; - - // Methods for reading and writing the new formats; - // the Read method also reads the old format - SvStream& Read( SvStream& rIStm ); - SvStream& Write( SvStream& rOStm ); - - // Stream-operators write (still) the old format - // and read both the old and the new format - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, GDIMetaFile& rGDIMetaFile ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const GDIMetaFile& rGDIMetaFile ); - - sal_Bool CreateThumbnail( sal_uInt32 nMaximumExtent, BitmapEx& rBmpEx, const BitmapEx* pOverlay = NULL, const Rectangle* pOverlayRect = NULL ) const; - - void UseCanvas( sal_Bool _bUseCanvas ); - sal_Bool GetUseCanvas() const { return bUseCanvas; } -}; - -/** Create a special metaaction that delegates rendering to specified - service. - - This factory function creates a MetaCommentAction that delegates - rendering to the specified services, once played back in the - metafile. - - @param rRendererServiceName - Renderer service. Gets an awt::XGraphic on instantiation - - @param rGraphicServiceName - Graphic service. Gets the raw data on instantiation - - @param pData - Raw data. Gets copied - - @param nDataSize - Length, in byte, of raw data - */ -MetaCommentAction* makePluggableRendererAction( const OUString& rRendererServiceName, - const OUString& rGraphicServiceName, - const void* pData, - sal_uInt32 nDataSize ); - -#endif // _SV_GDIMTF_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/gfxlink.hxx b/vcl/inc/vcl/gfxlink.hxx deleted file mode 100644 index 380298b500b8..000000000000 --- a/vcl/inc/vcl/gfxlink.hxx +++ /dev/null @@ -1,180 +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 . - */ - -#ifndef _SV_GFXLINK_HXX -#define _SV_GFXLINK_HXX - -#include <vcl/dllapi.h> -#include <tools/solar.h> -#include <vcl/mapmod.hxx> -#include <tools/stream.hxx> - -// ------------- -// - ImpBuffer - -// ------------- - -struct ImpBuffer -{ - sal_uLong mnRefCount; - sal_uInt8* mpBuffer; - - ImpBuffer( sal_uLong nSize ) - { - mnRefCount = 1UL; - mpBuffer = nSize ? new sal_uInt8[ nSize ] : NULL; - } - - ImpBuffer( sal_uInt8* pBuf ) { mnRefCount = 1UL; mpBuffer = pBuf; } - - ~ImpBuffer() { delete[] mpBuffer; } -}; - -// ----------- -// - ImpSwap - -// ----------- - -struct ImpSwap -{ - OUString maURL; - sal_uLong mnDataSize; - sal_uLong mnRefCount; - - ImpSwap( sal_uInt8* pData, sal_uLong nDataSize ); - ~ImpSwap(); - - sal_uInt8* GetData() const; - - sal_Bool IsSwapped() const { return maURL.getLength() > 0; } - - void WriteTo( SvStream& rOStm ) const; -}; - -// -------------- -// - ImpGfxLink - -// -------------- - -struct ImpGfxLink -{ - MapMode maPrefMapMode; - Size maPrefSize; - bool mbPrefMapModeValid; - bool mbPrefSizeValid; - - ImpGfxLink() : - maPrefMapMode(), - maPrefSize(), - mbPrefMapModeValid( false ), - mbPrefSizeValid( false ) - {} -}; - -//#endif // __PRIVATE - -// --------------- -// - GfxLinkType - -// --------------- - -enum GfxLinkType -{ - GFX_LINK_TYPE_NONE = 0, - GFX_LINK_TYPE_EPS_BUFFER = 1, - GFX_LINK_TYPE_NATIVE_GIF = 2, // Don't forget to update the following defines - GFX_LINK_TYPE_NATIVE_JPG = 3, // Don't forget to update the following defines - GFX_LINK_TYPE_NATIVE_PNG = 4, // Don't forget to update the following defines - GFX_LINK_TYPE_NATIVE_TIF = 5, // Don't forget to update the following defines - GFX_LINK_TYPE_NATIVE_WMF = 6, // Don't forget to update the following defines - GFX_LINK_TYPE_NATIVE_MET = 7, // Don't forget to update the following defines - GFX_LINK_TYPE_NATIVE_PCT = 8, // Don't forget to update the following defines - GFX_LINK_TYPE_NATIVE_SVG = 9, // Don't forget to update the following defines - GFX_LINK_TYPE_USER = 0xffff -}; - -#define GFX_LINK_FIRST_NATIVE_ID GFX_LINK_TYPE_NATIVE_GIF -#define GFX_LINK_LAST_NATIVE_ID GFX_LINK_TYPE_NATIVE_SVG - -// ----------- -// - GfxLink - -// ----------- - -struct ImpBuffer; -struct ImpSwap; -struct ImpGfxLink; -class Graphic; - -class VCL_DLLPUBLIC GfxLink -{ -private: - - GfxLinkType meType; - ImpBuffer* mpBuf; - ImpSwap* mpSwap; - sal_uInt32 mnBufSize; - sal_uInt32 mnUserId; - ImpGfxLink* mpImpData; - sal_uLong mnExtra2; - - SAL_DLLPRIVATE void ImplCopy( const GfxLink& rGfxLink ); - -public: - GfxLink(); - GfxLink( const GfxLink& ); - GfxLink( const String& rPath, GfxLinkType nType ); - GfxLink( sal_uInt8* pBuf, sal_uInt32 nBufSize, GfxLinkType nType, sal_Bool bOwns ); - ~GfxLink(); - - GfxLink& operator=( const GfxLink& ); - sal_Bool IsEqual( const GfxLink& ) const; - - GfxLinkType GetType() const; - - void SetUserId( sal_uInt32 nUserId ) { mnUserId = nUserId; } - sal_uInt32 GetUserId() const { return mnUserId; } - - sal_uInt32 GetDataSize() const; - void SetData( sal_uInt8* pBuf, sal_uInt32 nSize, GfxLinkType nType, sal_Bool bOwns ); - const sal_uInt8* GetData() const; - - const Size& GetPrefSize() const; - void SetPrefSize( const Size& rPrefSize ); - bool IsPrefSizeValid(); - - const MapMode& GetPrefMapMode() const; - void SetPrefMapMode( const MapMode& rPrefMapMode ); - bool IsPrefMapModeValid(); - - sal_Bool IsNative() const; - sal_Bool IsUser() const { return( GFX_LINK_TYPE_USER == meType ); } - - sal_Bool LoadNative( Graphic& rGraphic ); - - sal_Bool ExportNative( SvStream& rOStream ) const; - - void SwapOut(); - void SwapIn(); - sal_Bool IsSwappedOut() const { return( mpSwap != NULL ); } - -public: - - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStream, const GfxLink& rGfxLink ); - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStream, GfxLink& rGfxLink ); -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/gradient.hxx b/vcl/inc/vcl/gradient.hxx deleted file mode 100644 index d9bbf7aea1ad..000000000000 --- a/vcl/inc/vcl/gradient.hxx +++ /dev/null @@ -1,118 +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 . - */ - -#ifndef _SV_GRADIENT_HXX -#define _SV_GRADIENT_HXX - -#include <sal/types.h> -#include <vcl/dllapi.h> -#include <tools/color.hxx> - -#include <vcl/vclenum.hxx> - -// ---------------- -// - Impl_Gradient - -// ---------------- - -class Rectangle; -class Point; -class SvStream; - -class Impl_Gradient -{ -public: - sal_uLong mnRefCount; - GradientStyle meStyle; - Color maStartColor; - Color maEndColor; - sal_uInt16 mnAngle; - sal_uInt16 mnBorder; - sal_uInt16 mnOfsX; - sal_uInt16 mnOfsY; - sal_uInt16 mnIntensityStart; - sal_uInt16 mnIntensityEnd; - sal_uInt16 mnStepCount; - - friend SvStream& operator>>( SvStream& rIStm, Impl_Gradient& rImplGradient ); - friend SvStream& operator<<( SvStream& rOStm, const Impl_Gradient& rImplGradient ); - - Impl_Gradient(); - Impl_Gradient( const Impl_Gradient& rImplGradient ); -}; - -// ------------ -// - Gradient - -// ------------ - -class VCL_DLLPUBLIC Gradient -{ -private: - Impl_Gradient* mpImplGradient; - void MakeUnique(); - -public: - Gradient(); - Gradient( const Gradient& rGradient ); - Gradient( GradientStyle eStyle, - const Color& rStartColor, - const Color& rEndColor ); - ~Gradient(); - - void SetStyle( GradientStyle eStyle ); - GradientStyle GetStyle() const { return mpImplGradient->meStyle; } - - void SetStartColor( const Color& rColor ); - const Color& GetStartColor() const { return mpImplGradient->maStartColor; } - void SetEndColor( const Color& rColor ); - const Color& GetEndColor() const { return mpImplGradient->maEndColor; } - - void SetAngle( sal_uInt16 nAngle ); - sal_uInt16 GetAngle() const { return mpImplGradient->mnAngle; } - - void SetBorder( sal_uInt16 nBorder ); - sal_uInt16 GetBorder() const { return mpImplGradient->mnBorder; } - void SetOfsX( sal_uInt16 nOfsX ); - sal_uInt16 GetOfsX() const { return mpImplGradient->mnOfsX; } - void SetOfsY( sal_uInt16 nOfsY ); - sal_uInt16 GetOfsY() const { return mpImplGradient->mnOfsY; } - - void SetStartIntensity( sal_uInt16 nIntens ); - sal_uInt16 GetStartIntensity() const { return mpImplGradient->mnIntensityStart; } - void SetEndIntensity( sal_uInt16 nIntens ); - sal_uInt16 GetEndIntensity() const { return mpImplGradient->mnIntensityEnd; } - - void SetSteps( sal_uInt16 nSteps ); - sal_uInt16 GetSteps() const { return mpImplGradient->mnStepCount; } - - void GetBoundRect( const Rectangle& rRect, Rectangle &rBoundRect, Point& rCenter ) const; - - Gradient& operator=( const Gradient& rGradient ); - sal_Bool operator==( const Gradient& rGradient ) const; - sal_Bool operator!=( const Gradient& rGradient ) const - { return !(Gradient::operator==( rGradient )); } - sal_Bool IsSameInstance( const Gradient& rGradient ) const - { return (mpImplGradient == rGradient.mpImplGradient); } - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, Gradient& rGradient ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const Gradient& rGradient ); -}; - -#endif // _SV_GRADIENT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/graph.h b/vcl/inc/vcl/graph.h deleted file mode 100644 index 94224b780d93..000000000000 --- a/vcl/inc/vcl/graph.h +++ /dev/null @@ -1,74 +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 . - */ - -#ifndef _SV_GRAPH_H -#define _SV_GRAPH_H - -#include <vcl/dllapi.h> -#include <tools/string.hxx> -#include <tools/solar.h> - -// --------------- -// - GraphicType - -// --------------- - -enum GraphicType -{ - GRAPHIC_NONE, - GRAPHIC_BITMAP, - GRAPHIC_GDIMETAFILE, - GRAPHIC_DEFAULT -}; - -// ----------------- -// - GraphicReader - -// ----------------- - -class ReaderData; - -class VCL_DLLPUBLIC GraphicReader -{ -protected: - - String maUpperName; - ReaderData* mpReaderData; - sal_Bool mbIsReading; - - GraphicReader() : - mpReaderData( NULL ), - mbIsReading( sal_False ) {} - -public: - - virtual ~GraphicReader(); - - const String& GetUpperFilterName() const { return maUpperName; } - ReaderData* GetReaderData() const { return mpReaderData; } - sal_Bool IsReading() const { return mbIsReading; } - - // TODO: when incompatible changes are possible again - // the preview size hint should be redone - void DisablePreviewMode(); - void SetPreviewSize( const Size& ); - Size GetPreviewSize() const; -}; - -#endif // _SV_GRAPH_H - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/graph.hxx b/vcl/inc/vcl/graph.hxx deleted file mode 100644 index 4f1facae5395..000000000000 --- a/vcl/inc/vcl/graph.hxx +++ /dev/null @@ -1,201 +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 . - */ - -#ifndef _SV_GRAPH_HXX -#define _SV_GRAPH_HXX - -#include <tools/stream.hxx> -#include <vcl/dllapi.h> -#include <tools/solar.h> -#include <vcl/bitmap.hxx> -#include <vcl/bitmapex.hxx> -#include <vcl/animate.hxx> -#include <vcl/gdimtf.hxx> -#include <vcl/graph.h> -#include <vcl/gfxlink.hxx> -#include <com/sun/star/uno/Reference.hxx> -#include <vcl/svgdata.hxx> - -namespace com { namespace sun { namespace star { namespace graphic { class XGraphic;} } } } - -// ----------- -// - Graphic - -// ----------- - -class ImpGraphic; -class OutputDevice; -class Font; -class GfxLink; - -class VCL_DLLPUBLIC GraphicConversionParameters -{ -private: - Size maSizePixel; // default is (0,0) - - // bitfield - unsigned mbUnlimitedSize : 1; // default is false - unsigned mbAntiAliase : 1; // default is false - unsigned mbSnapHorVerLines : 1; // default is false - -public: - GraphicConversionParameters( - const Size& rSizePixel = Size(), - bool bUnlimitedSize = false, - bool bAntiAliase = false, - bool bSnapHorVerLines = false) - : maSizePixel(rSizePixel), - mbUnlimitedSize(bUnlimitedSize), - mbAntiAliase(bAntiAliase), - mbSnapHorVerLines(bSnapHorVerLines) - { - } - - // data read access - const Size getSizePixel() const { return maSizePixel; } - bool getUnlimitedSize() const { return mbUnlimitedSize; } - bool getAntiAliase() const { return mbAntiAliase; } - bool getSnapHorVerLines() const { return mbSnapHorVerLines; } -}; - -class VCL_DLLPUBLIC Graphic : public SvDataCopyStream -{ -private: - - ImpGraphic* mpImpGraphic; - -public: - - SAL_DLLPRIVATE void ImplTestRefCount(); - SAL_DLLPRIVATE ImpGraphic* ImplGetImpGraphic() const { return mpImpGraphic; } - -public: - - TYPEINFO(); - - Graphic(); - Graphic( const Graphic& rGraphic ); - Graphic( const Bitmap& rBmp ); - Graphic( const BitmapEx& rBmpEx ); - Graphic( const SvgDataPtr& rSvgDataPtr ); - Graphic( const Animation& rAnimation ); - Graphic( const GDIMetaFile& rMtf ); - Graphic( const ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic >& rxGraphic ); - virtual ~Graphic(); - - Graphic& operator=( const Graphic& rGraphic ); - sal_Bool operator==( const Graphic& rGraphic ) const; - sal_Bool operator!=( const Graphic& rGraphic ) const; - sal_Bool operator!() const; - - void Clear(); - - GraphicType GetType() const; - void SetDefaultType(); - sal_Bool IsSupportedGraphic() const; - - sal_Bool IsTransparent() const; - sal_Bool IsAlpha() const; - sal_Bool IsAnimated() const; - sal_Bool IsEPS() const; - - // #i102089# Access of Bitmap potentially will have to rasterconvert the Graphic - // if it is a MetaFile. To be able to control this conversion it is necessary to - // allow giving parameters which control AntiAliasing and LineSnapping of the - // MetaFile when played. Defaults will use a no-AAed, not snapped conversion as - // before. - Bitmap GetBitmap(const GraphicConversionParameters& rParameters = GraphicConversionParameters()) const; - BitmapEx GetBitmapEx(const GraphicConversionParameters& rParameters = GraphicConversionParameters()) const; - - Animation GetAnimation() const; - const GDIMetaFile& GetGDIMetaFile() const; - - ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > GetXGraphic() const; - - Size GetPrefSize() const; - void SetPrefSize( const Size& rPrefSize ); - - MapMode GetPrefMapMode() const; - void SetPrefMapMode( const MapMode& rPrefMapMode ); - - Size GetSizePixel( const OutputDevice* pRefDevice = NULL ) const; - - sal_uLong GetSizeBytes() const; - - void Draw( OutputDevice* pOutDev, - const Point& rDestPt ) const; - void Draw( OutputDevice* pOutDev, - const Point& rDestPt, - const Size& rDestSize ) const; - static void DrawEx( OutputDevice* pOutDev, const OUString& rText, - Font& rFont, const BitmapEx& rBitmap, - const Point& rDestPt, const Size& rDestSize ); - - void StartAnimation( OutputDevice* pOutDev, - const Point& rDestPt, - const Size& rDestSize, - long nExtraData = 0L, - OutputDevice* pFirstFrameOutDev = NULL ); - void StopAnimation( OutputDevice* pOutputDevice = NULL, - long nExtraData = 0L ); - - void SetAnimationNotifyHdl( const Link& rLink ); - Link GetAnimationNotifyHdl() const; - - sal_uLong GetAnimationLoopCount() const; - - sal_uLong GetChecksum() const; - -public: - - GraphicReader* GetContext(); - void SetContext( GraphicReader* pReader ); - -public: - - void SetDocFileName( const String& rName, sal_uLong nFilePos ); - const String& GetDocFileName() const; - sal_uLong GetDocFilePos() const; - - sal_Bool SwapOut(); - sal_Bool SwapOut( SvStream* pOStm ); - sal_Bool SwapIn(); - sal_Bool SwapIn( SvStream* pIStm ); - sal_Bool IsSwapOut() const; - - void SetLink( const GfxLink& ); - GfxLink GetLink() const; - sal_Bool IsLink() const; - - sal_Bool ExportNative( SvStream& rOStream ) const; - - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStream, const Graphic& rGraphic ); - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStream, Graphic& rGraphic ); - -public: - - virtual void Load( SvStream& ); - virtual void Save( SvStream& ); - virtual void Assign( const SvDataCopyStream& ); - - const SvgDataPtr& getSvgData() const; -}; - -#endif // _SV_GRAPH_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/graphicfilter.hxx b/vcl/inc/vcl/graphicfilter.hxx deleted file mode 100644 index 8f42119360d1..000000000000 --- a/vcl/inc/vcl/graphicfilter.hxx +++ /dev/null @@ -1,325 +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 . - */ - -#ifndef _FILTER_HXX -#define _FILTER_HXX - -#include <tools/gen.hxx> -#include <tools/stream.hxx> -#include <tools/urlobj.hxx> -#include <vcl/dllapi.h> -#include <vcl/field.hxx> -#include <vcl/graph.hxx> - -#include <com/sun/star/uno/Sequence.h> -#include <com/sun/star/beans/PropertyValue.hpp> - -class FilterConfigCache; -struct WMF_EXTERNALHEADER; -struct ConvertData; - -#define GRFILTER_OK 0 -#define GRFILTER_OPENERROR 1 -#define GRFILTER_IOERROR 2 -#define GRFILTER_FORMATERROR 3 -#define GRFILTER_VERSIONERROR 4 -#define GRFILTER_FILTERERROR 5 -#define GRFILTER_ABORT 6 -#define GRFILTER_TOOBIG 7 - -#define GRFILTER_OUTHINT_GREY 1 - -#define GRFILTER_FORMAT_NOTFOUND ((sal_uInt16)0xFFFF) -#define GRFILTER_FORMAT_DONTKNOW ((sal_uInt16)0xFFFF) - -#define GRFILTER_I_FLAGS_SET_LOGSIZE_FOR_JPEG 00000001 -#define GRFILTER_I_FLAGS_DONT_SET_LOGSIZE_FOR_JPEG 00000002 -#define GRFILTER_I_FLAGS_FOR_PREVIEW 00000004 -#define GRFILTER_I_FLAGS_ALLOW_PARTIAL_STREAMREAD 00000010 - -#define IMP_BMP "SVBMP" -#define IMP_SVMETAFILE "SVMETAFILE" -#define IMP_WMF "SVWMF" -#define IMP_EMF "SVEMF" -#define IMP_SVSGF "SVSGF" -#define IMP_SVSGV "SVSGV" -#define IMP_GIF "SVIGIF" -#define IMP_PNG "SVIPNG" -#define IMP_JPEG "SVIJPEG" -#define IMP_XBM "SVIXBM" -#define IMP_XPM "SVIXPM" -#define IMP_SVG "SVISVG" -#define EXP_BMP "SVBMP" -#define EXP_SVMETAFILE "SVMETAFILE" -#define EXP_WMF "SVWMF" -#define EXP_EMF "SVEMF" -#define EXP_JPEG "SVEJPEG" -#define EXP_SVG "SVESVG" -#define EXP_PNG "SVEPNG" - -#define BMP_SHORTNAME "BMP" -#define GIF_SHORTNAME "GIF" -#define JPG_SHORTNAME "JPG" -#define MET_SHORTNAME "MET" -#define PCT_SHORTNAME "PCT" -#define PNG_SHORTNAME "PNG" -#define SVM_SHORTNAME "SVM" -#define TIF_SHORTNAME "TIF" -#define WMF_SHORTNAME "WMF" -#define EMF_SHORTNAME "EMF" -#define SVG_SHORTNAME "SVG" - -// Info class for all supported file formats - -#define GFF_NOT ( (sal_uInt16)0x0000 ) -#define GFF_BMP ( (sal_uInt16)0x0001 ) -#define GFF_GIF ( (sal_uInt16)0x0002 ) -#define GFF_JPG ( (sal_uInt16)0x0003 ) -#define GFF_PCD ( (sal_uInt16)0x0004 ) -#define GFF_PCX ( (sal_uInt16)0x0005 ) -#define GFF_PNG ( (sal_uInt16)0x0006 ) -#define GFF_TIF ( (sal_uInt16)0x0007 ) -#define GFF_XBM ( (sal_uInt16)0x0008 ) -#define GFF_XPM ( (sal_uInt16)0x0009 ) -#define GFF_PBM ( (sal_uInt16)0x000a ) -#define GFF_PGM ( (sal_uInt16)0x000b ) -#define GFF_PPM ( (sal_uInt16)0x000c ) -#define GFF_RAS ( (sal_uInt16)0x000d ) -#define GFF_TGA ( (sal_uInt16)0x000e ) -#define GFF_PSD ( (sal_uInt16)0x000f ) -#define GFF_EPS ( (sal_uInt16)0x0010 ) -#define GFF_DXF ( (sal_uInt16)0x00f1 ) -#define GFF_MET ( (sal_uInt16)0x00f2 ) -#define GFF_PCT ( (sal_uInt16)0x00f3 ) -#define GFF_SGF ( (sal_uInt16)0x00f4 ) -#define GFF_SVM ( (sal_uInt16)0x00f5 ) -#define GFF_WMF ( (sal_uInt16)0x00f6 ) -#define GFF_SGV ( (sal_uInt16)0x00f7 ) -#define GFF_EMF ( (sal_uInt16)0x00f8 ) -#define GFF_SVG ( (sal_uInt16)0x00f9 ) -#define GFF_XXX ( (sal_uInt16)0xffff ) - -// --------------------- -// - GraphicDescriptor - -// --------------------- - -class VCL_DLLPUBLIC GraphicDescriptor -{ - SvStream* pFileStm; - - String aPathExt; - Size aPixSize; - Size aLogSize; - sal_uInt16 nBitsPerPixel; - sal_uInt16 nPlanes; - sal_uInt16 nFormat; - sal_Bool bCompressed; - sal_Bool bOwnStream; - - void ImpConstruct(); - - sal_Bool ImpDetectBMP( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectGIF( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectJPG( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectPCD( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectPCX( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectPNG( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectTIF( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectXBM( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectXPM( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectPBM( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectPGM( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectPPM( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectRAS( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectTGA( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectPSD( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectEPS( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectDXF( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectMET( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectPCT( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectSGF( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectSVM( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectWMF( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectSGV( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectEMF( SvStream& rStm, sal_Bool bExtendedInfo ); - sal_Bool ImpDetectSVG( SvStream& rStm, sal_Bool bExtendedInfo ); - GraphicDescriptor( const GraphicDescriptor& ); - GraphicDescriptor& operator=( const GraphicDescriptor& ); - -public: - - /** Ctor to set a filename - - ::Detect() must be called to identify the file - If the file has no unique header (Mtf's), the format - is determined from the extension */ - GraphicDescriptor( const INetURLObject& rPath ); - - /** Ctor using a stream - - ::Detect() must be called to identify the file - As some formats (Mtf's) do not have a unique header, it makes sense - to supply the file name (incl. ext.), so that the format can be - derived from the extension */ - GraphicDescriptor( SvStream& rInStream, const String* pPath = NULL ); - - virtual ~GraphicDescriptor(); - - /** starts the detection - - if bExtendedInfo == sal_True the file header is used to derive - as many properties as possible (size, color, etc.) */ - virtual sal_Bool Detect( sal_Bool bExtendedInfo = sal_False ); - - /** @return the file format, GFF_NOT if no format was recognized */ - sal_uInt16 GetFileFormat() const { return nFormat; } - - /** @return graphic size in pixels or 0 size */ - const Size& GetSizePixel() const { return (Size&) aPixSize; } - - /** @return the logical graphic size in 1/100mm or 0 size */ - const Size& GetSize_100TH_MM() const { return (Size&) aLogSize; } - - /** @return bits/pixel or 0 **/ - sal_uInt16 GetBitsPerPixel() const { return nBitsPerPixel; } - - /** return number of planes or 0 */ - sal_uInt16 GetPlanes() const { return nPlanes; } - - /** @return true if the graphic is compressed */ - sal_Bool IsCompressed() const { return bCompressed; } - - /** @return filter number that is needed by the GraphFilter to read this format */ - static String GetImportFormatShortName( sal_uInt16 nFormat ); -}; - -/** Information about errors during the GraphicFilter operation. */ -struct FilterErrorEx -{ - sal_uLong nFilterError; - sal_uLong nStreamError; - - FilterErrorEx() : nFilterError( 0UL ), nStreamError( 0UL ) {} -}; - -/** Class to import and export graphic formats. */ -class VCL_DLLPUBLIC GraphicFilter -{ - friend class SvFilterOptionsDialog; - -private: - - void ImplInit(); - sal_uLong ImplSetError( sal_uLong nError, const SvStream* pStm = NULL ); - sal_uInt16 ImpTestOrFindFormat( const String& rPath, SvStream& rStream, sal_uInt16& rFormat ); - - DECL_LINK( FilterCallback, ConvertData* pData ); - -protected: - - OUString aFilterPath; - FilterConfigCache* pConfig; - FilterErrorEx* pErrorEx; - sal_Bool bAbort; - sal_Bool bUseConfig; - long nExpGraphHint; - -public: - - GraphicFilter( sal_Bool bUseConfig = sal_True ); - ~GraphicFilter(); - - void SetFilterPath( const OUString& rFilterPath ) { aFilterPath = rFilterPath; }; - - sal_uInt16 GetImportFormatCount(); - sal_uInt16 GetImportFormatNumber( const String& rFormatName ); - sal_uInt16 GetImportFormatNumberForMediaType( const String& rMediaType ); - sal_uInt16 GetImportFormatNumberForShortName( const String& rShortName ); - sal_uInt16 GetImportFormatNumberForTypeName( const String& rType ); - String GetImportFormatName( sal_uInt16 nFormat ); - String GetImportFormatTypeName( sal_uInt16 nFormat ); - String GetImportFormatMediaType( sal_uInt16 nFormat ); - String GetImportFormatShortName( sal_uInt16 nFormat ); - String GetImportOSFileType( sal_uInt16 nFormat ); - String GetImportWildcard( sal_uInt16 nFormat, sal_Int32 nEntry = 0 ); - sal_Bool IsImportPixelFormat( sal_uInt16 nFormat ); - - sal_uInt16 GetExportFormatCount(); - sal_uInt16 GetExportFormatNumber( const String& rFormatName ); - sal_uInt16 GetExportFormatNumberForMediaType( const String& rShortName ); - sal_uInt16 GetExportFormatNumberForShortName( const String& rShortName ); - String GetExportInternalFilterName( sal_uInt16 nFormat ); - sal_uInt16 GetExportFormatNumberForTypeName( const String& rType ); - String GetExportFormatName( sal_uInt16 nFormat ); - String GetExportFormatTypeName( sal_uInt16 nFormat ); - String GetExportFormatMediaType( sal_uInt16 nFormat ); - String GetExportFormatShortName( sal_uInt16 nFormat ); - String GetExportOSFileType( sal_uInt16 nFormat ); - String GetExportWildcard( sal_uInt16 nFormat, sal_Int32 nEntry = 0 ); - sal_Bool IsExportPixelFormat( sal_uInt16 nFormat ); - - sal_uInt16 ExportGraphic( const Graphic& rGraphic, const INetURLObject& rPath, - sal_uInt16 nFormat = GRFILTER_FORMAT_DONTKNOW, - const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >* pFilterData = NULL ); - sal_uInt16 ExportGraphic( const Graphic& rGraphic, const String& rPath, - SvStream& rOStm, sal_uInt16 nFormat = GRFILTER_FORMAT_DONTKNOW, - const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >* pFilterData = NULL ); - long GetExportGraphicHint() const { return nExpGraphHint; } - - sal_uInt16 CanImportGraphic( const INetURLObject& rPath, - sal_uInt16 nFormat = GRFILTER_FORMAT_DONTKNOW, - sal_uInt16 * pDeterminedFormat = NULL); - - sal_uInt16 ImportGraphic( Graphic& rGraphic, const INetURLObject& rPath, - sal_uInt16 nFormat = GRFILTER_FORMAT_DONTKNOW, - sal_uInt16 * pDeterminedFormat = NULL, sal_uInt32 nImportFlags = 0 ); - - sal_uInt16 CanImportGraphic( const String& rPath, SvStream& rStream, - sal_uInt16 nFormat = GRFILTER_FORMAT_DONTKNOW, - sal_uInt16 * pDeterminedFormat = NULL); - - sal_uInt16 ImportGraphic( Graphic& rGraphic, const String& rPath, - SvStream& rStream, - sal_uInt16 nFormat = GRFILTER_FORMAT_DONTKNOW, - sal_uInt16 * pDeterminedFormat = NULL, sal_uInt32 nImportFlags = 0, - WMF_EXTERNALHEADER *pExtHeader = NULL ); - - sal_uInt16 ImportGraphic( Graphic& rGraphic, const String& rPath, - SvStream& rStream, - sal_uInt16 nFormat, - sal_uInt16 * pDeterminedFormat, sal_uInt32 nImportFlags, - com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >* pFilterData, - WMF_EXTERNALHEADER *pExtHeader = NULL ); - - void Abort() { bAbort = sal_True; } - - const FilterErrorEx& GetLastError() const; - void ResetLastError(); - - const Link GetFilterCallback() const; - static GraphicFilter& GetGraphicFilter(); - static int LoadGraphic( const String& rPath, const String& rFilter, - Graphic& rGraphic, - GraphicFilter* pFilter = NULL, - sal_uInt16* pDeterminedFormat = NULL ); -}; - -#endif //_FILTER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/graphictools.hxx b/vcl/inc/vcl/graphictools.hxx deleted file mode 100644 index 3600f1a364fc..000000000000 --- a/vcl/inc/vcl/graphictools.hxx +++ /dev/null @@ -1,348 +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 . - */ - -#ifndef _VCL_GRAPHICTOOLS_HXX_ -#define _VCL_GRAPHICTOOLS_HXX_ - -#include <vcl/dllapi.h> -#include <sal/types.h> -#include <rtl/string.hxx> -#include <tools/color.hxx> -#include <tools/poly.hxx> -#include <tools/stream.hxx> -#include <vcl/graph.hxx> - -#include <memory> -#include <vector> - -/** Encapsulates geometry and associated attributes of a graphical 'pen stroke' - - @attention Widespread use is deprecated. See declarations above - for the way to go. Especially the copied enums from svx/xenum.hxx - are troublesome. - - Use this class to store geometry and attributes of a graphical - 'pen stroke', such as pen width, dashing etc. The geometry is the - so-called 'path' along which the stroke is traced, with the given - pen width. The cap type determines how the open ends of the path - should be drawn. If the geometry consists of more than one - segment, the join type determines in which way the segments are - joined. - */ -class VCL_DLLPUBLIC SvtGraphicStroke -{ -public: - /// Style for open stroke ends - enum CapType - { - /// No additional cap - capButt=0, - /// Half-round cap at the line end, the center lying at the end point - capRound, - /// Half-square cap at the line end, the center lying at the end point - capSquare - }; - /// Style for joins of individual stroke segments - enum JoinType - { - /// Extend segment edges, until they cross - joinMiter=0, - /// Connect segments by a filled round arc - joinRound, - /// Connect segments by a direct straight line - joinBevel, - /// Perform no join, leads to visible gaps between thick line segments - joinNone - }; - enum - { - /// Width of stroke start/end arrow to exactly fit the joining stroke - normalizedArrowWidth=65536 - }; - typedef ::std::vector< double > DashArray; - - SvtGraphicStroke(); - /** All in one constructor - - See accessor method descriptions for argument description - */ - SvtGraphicStroke( const Polygon& rPath, - const PolyPolygon& rStartArrow, - const PolyPolygon& rEndArrow, - double fTransparency, - double fStrokeWidth, - CapType aCap, - JoinType aJoin, - double fMiterLimit, - const DashArray& rDashArray ); // TODO: Dash array offset (position where to start, see PS) - - // accessors - /// Query path to stroke - void getPath ( Polygon& ) const; - /** Get the polygon that is put at the start of the line - - The polygon is in a special normalized position: the center of - the stroked path will meet the given polygon at (0,0) from - negative y values. Thus, an arrow would have its baseline on - the x axis, going upwards to positive y values. Furthermore, - the polygon is also scaled in a special way: the width of the - joining stroke is defined to be - SvtGraphicStroke::normalizedArrowWidth (0x10000), i.e. ranging - from x=-0x8000 to x=0x8000. So, if the arrow does have this - width, it has to fit every stroke with every stroke width - exactly. - */ - void getStartArrow ( PolyPolygon& ) const; - /** Get the polygon that is put at the end of the line - - The polygon is in a special normalized position, and already - scaled to the desired size: the center of the stroked path - will meet the given polygon at (0,0) from negative y - values. Thus, an arrow would have its baseline on the x axis, - going upwards to positive y values. Furthermore, the polygon - is also scaled in a special way: the width of the joining - stroke is defined to be SvtGraphicStroke::normalizedArrowWidth - (0x10000), i.e. ranging from x=-0x8000 to x=0x8000. So, if the - arrow does have this width, it has to fit every stroke with - every stroke width exactly. - */ - void getEndArrow ( PolyPolygon& ) const; - /** Get stroke transparency - - @return the transparency, ranging from 0.0 (opaque) to 1.0 (fully translucent) - */ - double getTransparency () const; - /// Get width of the stroke - double getStrokeWidth () const; - /// Get the style in which open stroke ends are drawn - CapType getCapType () const; - /// Get the style in which the stroke segments are joined - JoinType getJoinType () const; - /// Get the maximum length of mitered joins - double getMiterLimit () const; - /// Get an array of "on" and "off" lengths for stroke dashing - void getDashArray ( DashArray& ) const; - - // mutators - /// Set path to stroke - void setPath ( const Polygon& ); - /// Affine scaling in both X and Y dimensions - void scale ( double fScaleX, double fScaleY ); - -private: - // friends - VCL_DLLPUBLIC friend SvStream& operator<<( SvStream& rOStm, const SvtGraphicStroke& rClass ); - VCL_DLLPUBLIC friend SvStream& operator>>( SvStream& rIStm, SvtGraphicStroke& rClass ); - - Polygon maPath; - PolyPolygon maStartArrow; - PolyPolygon maEndArrow; - double mfTransparency; - double mfStrokeWidth; - CapType maCapType; - JoinType maJoinType; - double mfMiterLimit; - DashArray maDashArray; -}; - -/** Encapsulates geometry and associated attributes of a filled area - - @attention Widespread use is deprecated. See declarations above - for the way to go. Especially the copied enums from svx/xenum.hxx - is troublesome. - - Use this class to store geometry and attributes of a filled area, - such as fill color, transparency, texture or hatch. The geometry - is the so-called 'path', whose inner area will get filled - according to the attributes set. If the path is intersecting, or - one part of the path is lying fully within another part, then the - fill rule determines which parts are filled and which are not. - */ -class VCL_DLLPUBLIC SvtGraphicFill -{ -public: - /// Type of fill algorithm used - enum FillRule - { - /** Non-zero winding rule - - Fill shape scanline-wise. Starting at the left, determine - the winding number as follows: every segment crossed that - runs counter-clockwise adds one to the winding number, - every segment crossed that runs clockwise subtracts - one. The part of the scanline where the winding number is - non-zero gets filled. - */ - fillNonZero=0, - /** Even-odd fill rule - - Fill shape scanline-wise. Starting at the left, count the - number of segments crossed. If this number is odd, the - part of the scanline is filled, otherwise not. - */ - fillEvenOdd - }; - /// Type of filling used - enum FillType - { - /// Fill with a specified solid color - fillSolid=0, - /// Fill with the specified gradient - fillGradient, - /// Fill with the specified hatch - fillHatch, - /// Fill with the specified texture (a Graphic object) - fillTexture - }; - /// Type of hatching used - enum HatchType - { - /// horizontal parallel lines, one unit apart - hatchSingle=0, - /// horizontal and verticall orthogonally crossing lines, one unit apart - hatchDouble, - /// three crossing lines, like HatchType::hatchDouble, but - /// with an additional diagonal line, rising to the upper - /// right corner. The first diagonal line goes through the - /// upper left corner, the other are each spaced a unit apart. - hatchTriple - }; - /// Type of gradient used - enum GradientType {gradientLinear=0, gradientRadial, gradientRectangular}; - /// Special values for gradient step count - enum { gradientStepsInfinite=0 }; - /** Homogeneous 2D transformation matrix - - This is a 2x3 matrix representing an affine transformation on - the R^2, in the usual C/C++ row major form. It is structured as follows: - <pre> - a b t_x - c d t_y - 0 0 1 - </pre> - where the lowest line is not stored in the matrix, since it is - constant. Variables t_x and t_y contain translational - components, a to d rotation, scale and shear (for details, - look up your favorite linear algebra/computer graphics book). - */ - struct VCL_DLLPUBLIC Transform - { - enum { MatrixSize=6 }; - Transform(); - double matrix[MatrixSize]; - }; - - SvtGraphicFill(); - /** All in one constructor - - See accessor method descriptions for argument description - */ - SvtGraphicFill( const PolyPolygon& rPath, - Color aFillColor, - double fTransparency, - FillRule aFillRule, - FillType aFillType, // TODO: Multitexturing - const Transform& aFillTransform, - bool bTiling, - HatchType aHatchType, // TODO: vector of directions and start points - Color aHatchColor, - GradientType aGradientType, // TODO: Transparent gradients (orthogonal to normal ones) - Color aGradient1stColor, // TODO: vector of colors and offsets - Color aGradient2ndColor, - sal_Int32 aGradientStepCount, // numbers of steps to render the gradient. gradientStepsInfinite means infinitely many. - const Graphic& aFillGraphic ); - - // accessors - /// Query path to fill - void getPath ( PolyPolygon& ) const; - /// Get color used for solid fills - Color getFillColor () const; - /** Get stroke transparency - - @return the transparency, ranging from 0.0 (opaque) to 1.0 (fully translucent) - */ - double getTransparency () const; - /// Get fill rule used - FillRule getFillRule () const; - /** Get fill type used - - Currently, only one of the fill types can be used - simultaneously. If you specify e.g. FillRule::fillGradient, - hatching, texture and solid fill color are ignored. - */ - FillType getFillType () const; - /** Get transformation applied to hatch, gradient or texture during fill - - A fill operation generally starts at the top left position of - the object's bounding box. At that position (if tiling is on, - also all successive positions), the specified fill graphic is - rendered, after applying the fill transformation to it. For - example, if the fill transformation contains a translation, - the fill graphic is rendered at the object's bounding box's - top left corner plus the translation components. - - */ - void getTransform ( Transform& ) const; - /// deprecated - bool IsTiling () const; - /** Query state of texture tiling - - @return true, if texture is tiled, false, if output only once. - */ - bool isTiling () const; - /// Get type of gradient used - GradientType getGradientType () const; - - /** Get the texture graphic used - - The Graphic object returned is used to fill the geometry, if - the FillType is fillTexture. The Graphic object is always - assumed to be of size 1x1, the transformation is used to scale - it to the appropriate size. - */ - void getGraphic ( Graphic& ) const; - - // mutators - /// Set path to fill - void setPath ( const PolyPolygon& rPath ); - -private: - // friends - VCL_DLLPUBLIC friend SvStream& operator<<( SvStream& rOStm, const SvtGraphicFill& rClass ); - VCL_DLLPUBLIC friend SvStream& operator>>( SvStream& rIStm, SvtGraphicFill& rClass ); - - PolyPolygon maPath; - Color maFillColor; - double mfTransparency; - FillRule maFillRule; - FillType maFillType; - Transform maFillTransform; - bool mbTiling; - HatchType maHatchType; - Color maHatchColor; - GradientType maGradientType; - Color maGradient1stColor; - Color maGradient2ndColor; - sal_Int32 maGradientStepCount; - Graphic maFillGraphic; -}; - -#endif /* _VCL_GRAPHICTOOLS_HXX_ */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/group.hxx b/vcl/inc/vcl/group.hxx deleted file mode 100644 index 647aabe66570..000000000000 --- a/vcl/inc/vcl/group.hxx +++ /dev/null @@ -1,61 +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 . - */ - -#ifndef _SV_GROUP_HXX -#define _SV_GROUP_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/ctrl.hxx> - -// ------------ -// - GroupBox - -// ------------ - -class VCL_DLLPUBLIC GroupBox : public Control -{ -private: - using Control::ImplInitSettings; - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE void ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags, - const Point& rPos, const Size& rSize, bool bLayout = false ); - - virtual void FillLayoutData() const; - virtual const Font& - GetCanonicalFont( const StyleSettings& _rStyle ) const; - virtual const Color& - GetCanonicalTextColor( const StyleSettings& _rStyle ) const; - -public: - GroupBox( Window* pParent, WinBits nStyle = 0 ); - GroupBox( Window* pParent, const ResId& rResId ); - - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); -}; - -#endif // _SV_GROUP_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/hatch.hxx b/vcl/inc/vcl/hatch.hxx deleted file mode 100644 index 8112fe5d4718..000000000000 --- a/vcl/inc/vcl/hatch.hxx +++ /dev/null @@ -1,89 +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 . - */ - -#ifndef _SV_HATCH_HXX -#define _SV_HATCH_HXX - -#include <tools/color.hxx> -#include <vcl/dllapi.h> - -#include <vcl/vclenum.hxx> - -// -------------- -// - Impl_Hatch - -// -------------- - -class SvStream; - -struct ImplHatch -{ - sal_uLong mnRefCount; - Color maColor; - HatchStyle meStyle; - long mnDistance; - sal_uInt16 mnAngle; - - ImplHatch(); - ImplHatch( const ImplHatch& rImplHatch ); - - friend SvStream& operator>>( SvStream& rIStm, ImplHatch& rImplHatch ); - friend SvStream& operator<<( SvStream& rOStm, const ImplHatch& rImplHatch ); -}; - -// --------- -// - Hatch - -// --------- - -class VCL_DLLPUBLIC Hatch -{ -private: - - ImplHatch* mpImplHatch; - SAL_DLLPRIVATE void ImplMakeUnique(); - -public: - - Hatch(); - Hatch( const Hatch& rHatch ); - Hatch( HatchStyle eStyle, const Color& rHatchColor, long nDistance, sal_uInt16 nAngle10 = 0 ); - ~Hatch(); - - Hatch& operator=( const Hatch& rHatch ); - sal_Bool operator==( const Hatch& rHatch ) const; - sal_Bool operator!=( const Hatch& rHatch ) const { return !(Hatch::operator==( rHatch ) ); } - sal_Bool IsSameInstance( const Hatch& rHatch ) const { return( mpImplHatch == rHatch.mpImplHatch ); } - - HatchStyle GetStyle() const { return mpImplHatch->meStyle; } - - void SetColor( const Color& rColor ); - const Color& GetColor() const { return mpImplHatch->maColor; } - - void SetDistance( long nDistance ); - long GetDistance() const { return mpImplHatch->mnDistance; } - - void SetAngle( sal_uInt16 nAngle10 ); - sal_uInt16 GetAngle() const { return mpImplHatch->mnAngle; } - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, Hatch& rHatch ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const Hatch& rHatch ); -}; - -#endif // _SV_HATCH_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/help.hxx b/vcl/inc/vcl/help.hxx deleted file mode 100644 index b74d8023f75c..000000000000 --- a/vcl/inc/vcl/help.hxx +++ /dev/null @@ -1,120 +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 . - */ - -#ifndef _SV_HELP_HXX -#define _SV_HELP_HXX - -#include <rtl/ustring.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> - -class Point; -class Rectangle; -class Window; - -// -------------- -// - Help-Types - -// -------------- - -#define QUICKHELP_LEFT ((sal_uInt16)0x0001) -#define QUICKHELP_CENTER ((sal_uInt16)0x0002) -#define QUICKHELP_RIGHT ((sal_uInt16)0x0004) -#define QUICKHELP_TOP ((sal_uInt16)0x0008) -#define QUICKHELP_VCENTER ((sal_uInt16)0x0010) -#define QUICKHELP_BOTTOM ((sal_uInt16)0x0020) -#define QUICKHELP_NOAUTOPOS (QUICKHELP_LEFT | QUICKHELP_CENTER | QUICKHELP_RIGHT | QUICKHELP_TOP | QUICKHELP_VCENTER | QUICKHELP_BOTTOM) -#define QUICKHELP_CTRLTEXT ((sal_uInt16)0x0040) -/// force the existent tip window to be re-positioned, even if the previous incarnation has the same text. Applies to ShowBallon and ShowQuickHelp. -#define QUICKHELP_FORCE_REPOSITION ((sal_uInt16)0x0080) -/// no delay when opening the quick help. Applies to ShowBallon and ShowQuickHelp -#define QUICKHELP_NO_DELAY ((sal_uInt16)0x0100) -/// force balloon-style in ShowTip -#define QUICKHELP_TIP_STYLE_BALLOON ((sal_uInt16)0x0200) -#define QUICKHELP_NOEVADEPOINTER ((sal_uInt16)0x4000) -#define QUICKHELP_BIDI_RTL ((sal_uInt16)0x8000) - -// By changes you must also change: rsc/vclrsc.hxx -#define OOO_HELP_INDEX ".help:index" -#define OOO_HELP_HELPONHELP ".help:helponhelp" - -// -------- -// - Help - -// -------- - -class VCL_DLLPUBLIC Help -{ -public: - Help(); - virtual ~Help(); - - virtual sal_Bool Start( const OUString& rHelpId, const Window* pWindow ); - virtual sal_Bool SearchKeyword( const OUString& rKeyWord ); - virtual void OpenHelpAgent( const OString& rHelpId ); - virtual OUString GetHelpText( const OUString& aHelpURL, const Window* pWindow ); - - static void EnableContextHelp(); - static void DisableContextHelp(); - static sal_Bool IsContextHelpEnabled(); - - static void EnableExtHelp(); - static void DisableExtHelp(); - static sal_Bool IsExtHelpEnabled(); - static sal_Bool StartExtHelp(); - static sal_Bool EndExtHelp(); - - static void EnableBalloonHelp(); - static void DisableBalloonHelp(); - static sal_Bool IsBalloonHelpEnabled(); - static sal_Bool ShowBalloon( Window* pParent, - const Point& rScreenPos, - const OUString& rHelpText ); - static sal_Bool ShowBalloon( Window* pParent, - const Point& rScreenPos, - const Rectangle&, - const OUString& rHelpText ); - - static void EnableQuickHelp(); - static void DisableQuickHelp(); - static sal_Bool IsQuickHelpEnabled(); - static sal_Bool ShowQuickHelp( Window* pParent, - const Rectangle& rScreenRect, - const OUString& rHelpText, - const OUString& rLongHelpText, - sal_uInt16 nStyle = 0 ); - static sal_Bool ShowQuickHelp( Window* pParent, - const Rectangle& rScreenRect, - const OUString& rHelpText, - sal_uInt16 nStyle = 0 ) - { return Help::ShowQuickHelp( pParent, rScreenRect, rHelpText, OUString(), nStyle ); } - - static void HideBalloonAndQuickHelp(); - - static sal_uLong ShowTip( Window* pParent, - const Rectangle& rScreenRect, - const OUString& rText, sal_uInt16 nStyle = 0 ); - static void UpdateTip( sal_uLong nId, - Window* pParent, - const Rectangle& rScreenRect, - const OUString& rText ); - static void HideTip( sal_uLong nId ); -}; - -#endif // _SV_HELP_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/helper.hxx b/vcl/inc/vcl/helper.hxx deleted file mode 100644 index 295df4a1a5e7..000000000000 --- a/vcl/inc/vcl/helper.hxx +++ /dev/null @@ -1,59 +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 . - */ - -#ifndef _PSPRINT_HELPER_HXX_ -#define _PSPRINT_HELPER_HXX_ - -#include <list> - -#include "vcl/dllapi.h" - -#include "rtl/ustring.hxx" - - -// forwards -namespace osl { class File; } - -namespace psp { -typedef int fontID; - -void VCL_DLLPUBLIC getPrinterPathList( std::list< OUString >& rPathList, const char* pSubDir ); - -// note: gcc 3.4.1 warns about visibility if we retunr a const OUString& here -// seems to be a bug in gcc, now we return an object instead of a reference -OUString VCL_DLLPUBLIC getFontPath(); - -bool VCL_DLLPUBLIC convertPfbToPfa( osl::File& rInFile, osl::File& rOutFile ); - -// normalized path (equivalent to realpath) -void VCL_DLLPUBLIC normPath( OString& rPath ); - -// splits rOrgPath into dirname and basename -// rOrgPath will be subject to normPath -void VCL_DLLPUBLIC splitPath( OString& rOrgPath, OString& rDir, OString& rBase ); - -enum whichOfficePath { InstallationRootPath, UserPath, ConfigPath }; -// note: gcc 3.4.1 warns about visibility if we retunr a const OUString& here -// seems to be a bug in gcc, now we return an object instead of a reference -OUString VCL_DLLPUBLIC getOfficePath( enum whichOfficePath ePath ); -} // namespace - -#endif // _PSPRINT_HELPER_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/i18nhelp.hxx b/vcl/inc/vcl/i18nhelp.hxx deleted file mode 100644 index 8ece881a9b03..000000000000 --- a/vcl/inc/vcl/i18nhelp.hxx +++ /dev/null @@ -1,87 +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 . - */ - -#ifndef _VCL_I18NHELP_HXX -#define _VCL_I18NHELP_HXX - -#include <com/sun/star/uno/Reference.h> -#include <osl/mutex.hxx> -#include <i18nlangtag/languagetag.hxx> -#include <tools/string.hxx> -#include <vcl/dllapi.h> - -namespace com { -namespace sun { -namespace star { -namespace uno { - class XComponentContext; -} -}}} - -namespace utl { - class TransliterationWrapper; -} - -class LocaleDataWrapper; - -class Date; - -namespace vcl -{ - -class VCL_DLLPUBLIC I18nHelper -{ -private: - ::osl::Mutex maMutex; - LanguageTag maLanguageTag; - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext; - - LocaleDataWrapper* mpLocaleDataWrapper; - utl::TransliterationWrapper* mpTransliterationWrapper; - - sal_Bool mbTransliterateIgnoreCase; - - SAL_DLLPRIVATE void ImplDestroyWrappers(); - -protected: - ::osl::Mutex& GetMutex() { return maMutex; } - - SAL_DLLPRIVATE utl::TransliterationWrapper& ImplGetTransliterationWrapper() const; - SAL_DLLPRIVATE LocaleDataWrapper& ImplGetLocaleDataWrapper() const; - -public: - - I18nHelper( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const LanguageTag& rLanguageTag ); - ~I18nHelper(); - - sal_Int32 CompareString( const OUString& rStr1, const OUString& rStr2 ) const; - - sal_Bool MatchString( const OUString& rStr1, const OUString& rStr2 ) const; - sal_Bool MatchMnemonic( const String& rString, sal_Unicode cMnemonicChar ) const; - - String GetNum( long nNumber, sal_uInt16 nDecimals, sal_Bool bUseThousandSep = sal_True, sal_Bool bTrailingZeros = sal_True ) const; - - static String filterFormattingChars( const String& ); -}; - -} // namespace vcl - -#endif // _VCL_I18NHELP_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/image.hxx b/vcl/inc/vcl/image.hxx deleted file mode 100644 index 0d28bc030abd..000000000000 --- a/vcl/inc/vcl/image.hxx +++ /dev/null @@ -1,145 +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 . - */ - -#ifndef _SV_IMAGE_HXX -#define _SV_IMAGE_HXX - -#include <vcl/dllapi.h> -#include <tools/gen.hxx> -#include <tools/resid.hxx> -#include <tools/solar.h> -#include <vcl/bitmapex.hxx> -#include <com/sun/star/uno/Reference.hxx> - -#include <vector> - -struct ImplImage; -struct ImplImageList; -namespace com { namespace sun { namespace star { namespace graphic { class XGraphic;} } } } - -#define IMAGE_STDBTN_COLOR Color( 0xC0, 0xC0, 0xC0 ) -#define IMAGELIST_IMAGE_NOTFOUND ((sal_uInt16)0xFFFF) - -enum ImageColorTransform -{ - IMAGECOLORTRANSFORM_NONE = 0, - IMAGECOLORTRANSFORM_HIGHCONTRAST = 1, - IMAGECOLORTRANSFORM_MONOCHROME_BLACK = 2, - IMAGECOLORTRANSFORM_MONOCHROME_WHITE = 3 -}; - -class VCL_DLLPUBLIC Image -{ - friend class ImageList; - friend class OutputDevice; - -public: - Image(); - Image( const ResId& rResId ); - Image( const Image& rImage ); - Image( const BitmapEx& rBitmapEx ); - Image( const Bitmap& rBitmap ); - Image( const Bitmap& rBitmap, const Bitmap& rMaskBitmap ); - Image( const Bitmap& rBitmap, const Color& rColor ); - Image( const ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic >& rxGraphic ); - ~Image(); - - Size GetSizePixel() const; - - BitmapEx GetBitmapEx() const; - ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > GetXGraphic() const; - - Image GetColorTransformedImage( ImageColorTransform eColorTransform ) const; - - sal_Bool operator!() const { return( !mpImplData ? true : false ); } - Image& operator=( const Image& rImage ); - sal_Bool operator==( const Image& rImage ) const; - sal_Bool operator!=( const Image& rImage ) const { return !(Image::operator==( rImage )); } - -private: - - ImplImage* mpImplData; - - SAL_DLLPRIVATE void ImplInit( const BitmapEx& rBmpEx ); -}; - -class VCL_DLLPUBLIC ImageList -{ -public: - ImageList( sal_uInt16 nInit = 8, sal_uInt16 nGrow = 4 ); - ImageList( const ResId& rResId ); - ImageList( const ::std::vector< OUString >& rNameVector, - const OUString& rPrefix, - const Color* pMaskColor = NULL ); - ImageList( const ImageList& rImageList ); - ~ImageList(); - - void InsertFromHorizontalStrip( const BitmapEx &rBitmapEx, - const std::vector< OUString > &rNameVector ); - void InsertFromHorizontalBitmap( const ResId& rResId, - sal_uInt16 nCount, - const Color *pNonAlphaMaskColor, - const Color *pSearchColors = NULL, - const Color *pReplaceColors = NULL, - sal_uLong nColorCount = 0); - BitmapEx GetAsHorizontalStrip() const; - sal_uInt16 GetImageCount() const; - Size GetImageSize() const; - - void AddImage( const OUString& rImageName, const Image& rImage ); - void AddImage( sal_uInt16 nNewId, const Image& rImage ); - - void ReplaceImage( const OUString& rImageName, const Image& rImage ); - - void RemoveImage( sal_uInt16 nId ); - - Image GetImage( sal_uInt16 nId ) const; - Image GetImage( const OUString& rImageName ) const; - - sal_uInt16 GetImagePos( sal_uInt16 nId ) const; - bool HasImageAtPos( sal_uInt16 nId ) const; - sal_uInt16 GetImagePos( const OUString& rImageName ) const; - - sal_uInt16 GetImageId( sal_uInt16 nPos ) const; - - OUString GetImageName( sal_uInt16 nPos ) const; - void GetImageNames( ::std::vector< OUString >& rNames ) const; - - ImageList& operator=( const ImageList& rImageList ); - sal_Bool operator==( const ImageList& rImageList ) const; - sal_Bool operator!=( const ImageList& rImageList ) const { return !(ImageList::operator==( rImageList )); } - -private: - - ImplImageList* mpImplData; - sal_uInt16 mnInitSize; - sal_uInt16 mnGrowSize; - - SAL_DLLPRIVATE void ImplInitBitmapEx( const OUString& rUserImageName, - const ::std::vector< OUString >& rImageNames, - const OUString& rSymbolsStyle, - BitmapEx& rBmpEx, - const Color* pMaskColor ) const; - SAL_DLLPRIVATE void ImplInit( sal_uInt16 nItems, const Size &rSize ); - SAL_DLLPRIVATE sal_uInt16 ImplGetImageId( const OUString& rImageName ) const; -}; - -#endif // _SV_IMAGE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/imagerepository.hxx b/vcl/inc/vcl/imagerepository.hxx deleted file mode 100644 index 45ee445edcd6..000000000000 --- a/vcl/inc/vcl/imagerepository.hxx +++ /dev/null @@ -1,68 +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 . - */ - -#ifndef VCL_IMAGEREPOSITORY_HXX -#define VCL_IMAGEREPOSITORY_HXX - -#include <vcl/dllapi.h> -#include <rtl/ustring.hxx> - -class BitmapEx; - -//........................................................................ -namespace vcl -{ -//........................................................................ - - //==================================================================== - //= ImageRepository - //==================================================================== - // provides access to the application's image repository (image.zip) - class VCL_DLLPUBLIC ImageRepository - { - public: - /** loads an image from the application's image repository - @param _rName - the name of the image to load. - @param _out_rImage - will take the image upon successful return. - @param bSearchLanguageDependent - determines whether a language-dependent image is to be searched. - @return - whether or not the image could be loaded successfully. - */ - static bool loadImage( - const OUString& _rName, - BitmapEx& _out_rImage, - bool bSearchLanguageDependent, - bool loadMissing = false - ); - - static bool loadDefaultImage( - BitmapEx& _out_rImage - ); - }; - -//........................................................................ -} // namespace vcl -//........................................................................ - -#endif // VCL_IMAGEREPOSITORY_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/imgctrl.hxx b/vcl/inc/vcl/imgctrl.hxx deleted file mode 100644 index d0da64cbe6fa..000000000000 --- a/vcl/inc/vcl/imgctrl.hxx +++ /dev/null @@ -1,57 +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 . - */ - -#ifndef _SV_IMGCTRL_HXX -#define _SV_IMGCTRL_HXX - -#include <vcl/dllapi.h> - -#include <vcl/fixed.hxx> -#include <vcl/bitmapex.hxx> - -// ---------------- -// - ImageControl - -// ---------------- - -class VCL_DLLPUBLIC ImageControl : public FixedImage -{ -private: - ::sal_Int16 mnScaleMode; - -public: - ImageControl( Window* pParent, WinBits nStyle = 0 ); - ImageControl( Window* pParent, const ResId& rResId ); - - // set/get the scale mode. This is one of the css.awt.ImageScaleMode constants - void SetScaleMode( const ::sal_Int16 _nMode ); - ::sal_Int16 GetScaleMode() const { return mnScaleMode; } - - virtual void Resize(); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Paint( const Rectangle& rRect ); - virtual void GetFocus(); - virtual void LoseFocus(); - -protected: - void ImplDraw( OutputDevice& rDev, sal_uLong nDrawFlags, const Point& rPos, const Size& rSize ) const; -}; - -#endif // _SV_IMGCTRL_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/impdel.hxx b/vcl/inc/vcl/impdel.hxx deleted file mode 100644 index df6e2713196e..000000000000 --- a/vcl/inc/vcl/impdel.hxx +++ /dev/null @@ -1,81 +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 . - */ - - #ifndef _VCL_IMPDEL_HXX - #define _VCL_IMPDEL_HXX - - #include <list> - - namespace vcl - { - - class DeletionListener; - - class DeletionNotifier - { - std::list< DeletionListener* > m_aListeners; - protected: - DeletionNotifier() {} - - ~DeletionNotifier() - { notifyDelete(); } - - inline void notifyDelete(); - - public: - void addDel( DeletionListener* pListener ) - { m_aListeners.push_back( pListener ); } - - void removeDel( DeletionListener* pListener ) - { m_aListeners.remove( pListener ); } - }; - - class DeletionListener - { - DeletionNotifier* m_pNotifier; - public: - DeletionListener( DeletionNotifier* pNotifier ) - : m_pNotifier( pNotifier ) - { - if( m_pNotifier ) - m_pNotifier->addDel( this ); - } - ~DeletionListener() - { - if( m_pNotifier ) - m_pNotifier->removeDel( this ); - } - void deleted() { m_pNotifier = NULL; } - bool isDeleted() const { return (m_pNotifier == NULL); } - }; - - inline void DeletionNotifier::notifyDelete() - { - for( std::list< DeletionListener* >::const_iterator it = - m_aListeners.begin(); it != m_aListeners.end(); ++it ) - (*it)->deleted(); - - m_aListeners.clear(); - } - - } // namespace vcl - - #endif // _VCL_IMPDEL_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/inputctx.hxx b/vcl/inc/vcl/inputctx.hxx deleted file mode 100644 index 7072f88ab404..000000000000 --- a/vcl/inc/vcl/inputctx.hxx +++ /dev/null @@ -1,82 +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 . - */ - -#ifndef _VCL_INPUTCTX_HXX -#define _VCL_INPUTCTX_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/font.hxx> - -// ---------------------- -// - InputContext-Flags - -// ---------------------- - -#define INPUTCONTEXT_TEXT ((sal_uLong)0x00000001) -#define INPUTCONTEXT_EXTTEXTINPUT ((sal_uLong)0x00000002) -#define INPUTCONTEXT_EXTTEXTINPUT_ON ((sal_uLong)0x00000004) -#define INPUTCONTEXT_EXTTEXTINPUT_OFF ((sal_uLong)0x00000008) - -// ---------------- -// - InputContext - -// ---------------- - -class VCL_DLLPUBLIC InputContext -{ -private: - Font maFont; - sal_uLong mnOptions; - -public: - InputContext() { mnOptions = 0; } - InputContext( const InputContext& rInputContext ) : - maFont( rInputContext.maFont ) - { mnOptions = rInputContext.mnOptions; } - InputContext( const Font& rFont, sal_uLong nOptions = 0 ) : - maFont( rFont ) - { mnOptions = nOptions; } - - void SetFont( const Font& rFont ) { maFont = rFont; } - const Font& GetFont() const { return maFont; } - - void SetOptions( sal_uLong nOptions ) { mnOptions = nOptions; } - sal_uLong GetOptions() const { return mnOptions; } - - InputContext& operator=( const InputContext& rInputContext ); - sal_Bool operator==( const InputContext& rInputContext ) const; - sal_Bool operator!=( const InputContext& rInputContext ) const - { return !(InputContext::operator==( rInputContext )); } -}; - -inline InputContext& InputContext::operator=( const InputContext& rInputContext ) -{ - maFont = rInputContext.maFont; - mnOptions = rInputContext.mnOptions; - return *this; -} - -inline sal_Bool InputContext::operator==( const InputContext& rInputContext ) const -{ - return ((mnOptions == rInputContext.mnOptions) && - (maFont == rInputContext.maFont)); -} - -#endif // _VCL_INPUTCTX_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/introwin.hxx b/vcl/inc/vcl/introwin.hxx deleted file mode 100644 index d78648cd7ef5..000000000000 --- a/vcl/inc/vcl/introwin.hxx +++ /dev/null @@ -1,44 +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 . - */ - -#ifndef _SV_INTROWIN_HXX -#define _SV_INTROWIN_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/wrkwin.hxx> -#include <vcl/bitmapex.hxx> - -// -------------- -// - IntroWindow - -// -------------- - -class VCL_DLLPUBLIC IntroWindow : public WorkWindow -{ -private: - SAL_DLLPRIVATE void ImplInitIntroWindowData(); - -public: - IntroWindow(); - ~IntroWindow(); -}; - -#endif // _SV_INTROWIN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/jobdata.hxx b/vcl/inc/vcl/jobdata.hxx deleted file mode 100644 index f6fb94fccab2..000000000000 --- a/vcl/inc/vcl/jobdata.hxx +++ /dev/null @@ -1,85 +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 . - */ - -#ifndef _PSPRINT_JOBDATA_HXX_ -#define _PSPRINT_JOBDATA_HXX_ - -#include "vcl/ppdparser.hxx" - -namespace psp { - -namespace orientation { -enum type { - Portrait, - Landscape -}; -} - -struct VCL_DLLPUBLIC JobData -{ - int m_nCopies; - int m_nLeftMarginAdjust; - int m_nRightMarginAdjust; - int m_nTopMarginAdjust; - int m_nBottomMarginAdjust; - // user overrides for PPD - int m_nColorDepth; - int m_nPSLevel; // 0: no override, else languagelevel to use - int m_nColorDevice; // 0: no override, -1 grey scale, +1 color - int m_nPDFDevice; // 0: no override, -1 PostScript, +1: Automatically PDF, +2: Explicitly PDF - orientation::type m_eOrientation; - OUString m_aPrinterName; - const PPDParser* m_pParser; - PPDContext m_aContext; - - JobData() : - m_nCopies( 1 ), - m_nLeftMarginAdjust( 0 ), - m_nRightMarginAdjust( 0 ), - m_nTopMarginAdjust( 0 ), - m_nBottomMarginAdjust( 0 ), - m_nColorDepth( 24 ), - m_nPSLevel( 0 ), - m_nColorDevice( 0 ), - m_nPDFDevice( 0 ), - m_eOrientation( orientation::Portrait ), - m_pParser( NULL ) {} - - JobData& operator=(const psp::JobData& rRight); - - JobData( const JobData& rData ) { *this = rData; } - - void setCollate( bool bCollate ); - bool setPaper( int nWidth, int nHeight ); // dimensions in pt - bool setPaperBin( int nPaperBin ); // dimensions in pt - void resolveDefaultBackend(); - void setDefaultBackend(bool bUsePDF); - - // creates a new buffer using new - // it is up to the user to delete it again - bool getStreamBuffer( void*& pData, int& bytes ); - static bool constructFromStreamBuffer( void* pData, int bytes, JobData& rJobData ); -}; - -} // namespace - - -#endif // PSPRINT_JOBDATA_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/jobset.hxx b/vcl/inc/vcl/jobset.hxx deleted file mode 100644 index 15f418cbda3a..000000000000 --- a/vcl/inc/vcl/jobset.hxx +++ /dev/null @@ -1,74 +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 . - */ - -#ifndef _SV_JOBSET_HXX -#define _SV_JOBSET_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/prntypes.hxx> - - -class SvStream; -struct ImplJobSetup; - -// ------------ -// - JobSetup - -// ------------ - -class VCL_DLLPUBLIC JobSetup -{ - friend class Printer; - -private: - ImplJobSetup* mpData; - -public: - SAL_DLLPRIVATE ImplJobSetup* ImplGetData(); - SAL_DLLPRIVATE ImplJobSetup* ImplGetConstData(); - SAL_DLLPRIVATE const ImplJobSetup* ImplGetConstData() const; - -public: - JobSetup(); - JobSetup( const JobSetup& rJob ); - ~JobSetup(); - - OUString GetPrinterName() const; - OUString GetDriverName() const; - - /* Get/SetValue are used to read/store additional - * Parameters in the job setup that may be used - * by the printer driver. One possible use are phone - * numbers for faxes (which disguise as printers) - */ - void SetValue( const OUString& rKey, const OUString& rValue ); - - JobSetup& operator=( const JobSetup& rJob ); - - sal_Bool operator==( const JobSetup& rJobSetup ) const; - sal_Bool operator!=( const JobSetup& rJobSetup ) const - { return !(JobSetup::operator==( rJobSetup )); } - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStream, JobSetup& rJobSetup ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStream, const JobSetup& rJobSetup ); -}; - -#endif // _SV_JOBSET_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/keycod.hxx b/vcl/inc/vcl/keycod.hxx deleted file mode 100644 index 70df7583bcca..000000000000 --- a/vcl/inc/vcl/keycod.hxx +++ /dev/null @@ -1,132 +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 . - */ - -#ifndef _SV_KEYCODE_HXX -#define _SV_KEYCODE_HXX - -#include <tools/string.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <tools/resid.hxx> -#include <vcl/keycodes.hxx> - -#include <vcl/vclenum.hxx> - -class Window; - -// ----------- -// - KeyCode - -// ----------- - -class VCL_DLLPUBLIC KeyCode -{ -private: - sal_uInt16 nCode; - KeyFuncType eFunc; - -public: - KeyCode() { nCode = 0; eFunc = KEYFUNC_DONTKNOW; } - KeyCode( const ResId& rResId ); - KeyCode( sal_uInt16 nKey, sal_uInt16 nModifier = 0 ) - { nCode = nKey | nModifier; eFunc = KEYFUNC_DONTKNOW; } - KeyCode( sal_uInt16 nKey, sal_Bool bShift, sal_Bool bMod1, sal_Bool bMod2, sal_Bool bMod3 ); - KeyCode( KeyFuncType eFunction ); - - sal_uInt16 GetFullCode() const { return nCode; } - KeyFuncType GetFullFunction() const { return eFunc; } - sal_Bool IsDefinedKeyCodeEqual( const KeyCode& rKeyCode ) const; - - sal_uInt16 GetCode() const - { return (nCode & KEY_CODE); } - - sal_uInt16 GetModifier() const - { return (nCode & KEY_MODTYPE); } - sal_uInt16 GetAllModifier() const - { return (nCode & KEY_ALLMODTYPE); } - sal_Bool IsShift() const - { return ((nCode & KEY_SHIFT) != 0); } - sal_Bool IsMod1() const - { return ((nCode & KEY_MOD1) != 0); } - sal_Bool IsMod2() const - { return ((nCode & KEY_MOD2) != 0); } - sal_Bool IsMod3() const - { return ((nCode & KEY_MOD3) != 0); } - sal_uInt16 GetGroup() const - { return (nCode & KEYGROUP_TYPE); } - - XubString GetName( Window* pWindow = NULL ) const; - - sal_Bool IsFunction() const - { return ((eFunc != KEYFUNC_DONTKNOW) ? sal_True : sal_False); } - - KeyFuncType GetFunction() const; - - KeyCode& operator = ( const KeyCode& rKeyCode ); - sal_Bool operator ==( const KeyCode& rKeyCode ) const; - sal_Bool operator !=( const KeyCode& rKeyCode ) const; -}; - -inline KeyCode::KeyCode( sal_uInt16 nKey, sal_Bool bShift, sal_Bool bMod1, sal_Bool bMod2, sal_Bool bMod3 ) -{ - nCode = nKey; - if( bShift ) - nCode |= KEY_SHIFT; - if( bMod1 ) - nCode |= KEY_MOD1; - if( bMod2 ) - nCode |= KEY_MOD2; - if( bMod3 ) - nCode |= KEY_MOD3; - eFunc = KEYFUNC_DONTKNOW; -} - -inline sal_Bool KeyCode::operator ==( const KeyCode& rKeyCode ) const -{ - if ( (eFunc == KEYFUNC_DONTKNOW) && (rKeyCode.eFunc == KEYFUNC_DONTKNOW) ) - return (nCode == rKeyCode.nCode); - else - return (GetFunction() == rKeyCode.GetFunction()); -} - -inline sal_Bool KeyCode::operator !=( const KeyCode& rKeyCode ) const -{ - if ( (eFunc == KEYFUNC_DONTKNOW) && (rKeyCode.eFunc == KEYFUNC_DONTKNOW) ) - return (nCode != rKeyCode.nCode); - else - return (GetFunction() != rKeyCode.GetFunction()); -} - -inline sal_Bool KeyCode::IsDefinedKeyCodeEqual( const KeyCode& rKeyCode ) const -{ - if ( (eFunc == KEYFUNC_DONTKNOW) && (rKeyCode.eFunc == KEYFUNC_DONTKNOW) ) - return (GetFullCode() == rKeyCode.GetFullCode()); - return (GetFunction() == rKeyCode.GetFunction()); -} - -inline KeyCode& KeyCode::operator = ( const KeyCode& rKeyCode ) -{ - nCode = rKeyCode.nCode; - eFunc = rKeyCode.eFunc; - - return *this; -} - -#endif // _SV_KEYCODE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/keycodes.hxx b/vcl/inc/vcl/keycodes.hxx deleted file mode 100644 index cfa23649e194..000000000000 --- a/vcl/inc/vcl/keycodes.hxx +++ /dev/null @@ -1,186 +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 . - */ - -#ifndef _SV_KEYCODES_HXX -#define _SV_KEYCODES_HXX - -#include <tools/solar.h> -#include <rsc/rsc-vcl-shared-types.hxx> -#undef DELETE -#include <com/sun/star/awt/Key.hpp> -#include <com/sun/star/awt/KeyGroup.hpp> - -// Key-Gruppen -#define KEYGROUP_NUM ((sal_uInt16)::com::sun::star::awt::KeyGroup::NUM) -#define KEYGROUP_ALPHA ((sal_uInt16)::com::sun::star::awt::KeyGroup::ALPHA) -#define KEYGROUP_FKEYS ((sal_uInt16)::com::sun::star::awt::KeyGroup::FKEYS) -#define KEYGROUP_CURSOR ((sal_uInt16)::com::sun::star::awt::KeyGroup::CURSOR) -#define KEYGROUP_MISC ((sal_uInt16)::com::sun::star::awt::KeyGroup::MISC) -#define KEYGROUP_TYPE ((sal_uInt16)::com::sun::star::awt::KeyGroup::TYPE) - -// Key-Codes -#define KEY_0 ((sal_uInt16)::com::sun::star::awt::Key::NUM0) -#define KEY_1 ((sal_uInt16)::com::sun::star::awt::Key::NUM1) -#define KEY_2 ((sal_uInt16)::com::sun::star::awt::Key::NUM2) -#define KEY_3 ((sal_uInt16)::com::sun::star::awt::Key::NUM3) -#define KEY_4 ((sal_uInt16)::com::sun::star::awt::Key::NUM4) -#define KEY_5 ((sal_uInt16)::com::sun::star::awt::Key::NUM5) -#define KEY_6 ((sal_uInt16)::com::sun::star::awt::Key::NUM6) -#define KEY_7 ((sal_uInt16)::com::sun::star::awt::Key::NUM7) -#define KEY_8 ((sal_uInt16)::com::sun::star::awt::Key::NUM8) -#define KEY_9 ((sal_uInt16)::com::sun::star::awt::Key::NUM9) - -#define KEY_A ((sal_uInt16)::com::sun::star::awt::Key::A) -#define KEY_B ((sal_uInt16)::com::sun::star::awt::Key::B) -#define KEY_C ((sal_uInt16)::com::sun::star::awt::Key::C) -#define KEY_D ((sal_uInt16)::com::sun::star::awt::Key::D) -#define KEY_E ((sal_uInt16)::com::sun::star::awt::Key::E) -#define KEY_F ((sal_uInt16)::com::sun::star::awt::Key::F) -#define KEY_G ((sal_uInt16)::com::sun::star::awt::Key::G) -#define KEY_H ((sal_uInt16)::com::sun::star::awt::Key::H) -#define KEY_I ((sal_uInt16)::com::sun::star::awt::Key::I) -#define KEY_J ((sal_uInt16)::com::sun::star::awt::Key::J) -#define KEY_K ((sal_uInt16)::com::sun::star::awt::Key::K) -#define KEY_L ((sal_uInt16)::com::sun::star::awt::Key::L) -#define KEY_M ((sal_uInt16)::com::sun::star::awt::Key::M) -#define KEY_N ((sal_uInt16)::com::sun::star::awt::Key::N) -#define KEY_O ((sal_uInt16)::com::sun::star::awt::Key::O) -#define KEY_P ((sal_uInt16)::com::sun::star::awt::Key::P) -#define KEY_Q ((sal_uInt16)::com::sun::star::awt::Key::Q) -#define KEY_R ((sal_uInt16)::com::sun::star::awt::Key::R) -#define KEY_S ((sal_uInt16)::com::sun::star::awt::Key::S) -#define KEY_T ((sal_uInt16)::com::sun::star::awt::Key::T) -#define KEY_U ((sal_uInt16)::com::sun::star::awt::Key::U) -#define KEY_V ((sal_uInt16)::com::sun::star::awt::Key::V) -#define KEY_W ((sal_uInt16)::com::sun::star::awt::Key::W) -#define KEY_X ((sal_uInt16)::com::sun::star::awt::Key::X) -#define KEY_Y ((sal_uInt16)::com::sun::star::awt::Key::Y) -#define KEY_Z ((sal_uInt16)::com::sun::star::awt::Key::Z) - -#define KEY_F1 ((sal_uInt16)::com::sun::star::awt::Key::F1) -#define KEY_F2 ((sal_uInt16)::com::sun::star::awt::Key::F2) -#define KEY_F3 ((sal_uInt16)::com::sun::star::awt::Key::F3) -#define KEY_F4 ((sal_uInt16)::com::sun::star::awt::Key::F4) -#define KEY_F5 ((sal_uInt16)::com::sun::star::awt::Key::F5) -#define KEY_F6 ((sal_uInt16)::com::sun::star::awt::Key::F6) -#define KEY_F7 ((sal_uInt16)::com::sun::star::awt::Key::F7) -#define KEY_F8 ((sal_uInt16)::com::sun::star::awt::Key::F8) -#define KEY_F9 ((sal_uInt16)::com::sun::star::awt::Key::F9) -#define KEY_F10 ((sal_uInt16)::com::sun::star::awt::Key::F10) -#define KEY_F11 ((sal_uInt16)::com::sun::star::awt::Key::F11) -#define KEY_F12 ((sal_uInt16)::com::sun::star::awt::Key::F12) -#define KEY_F13 ((sal_uInt16)::com::sun::star::awt::Key::F13) -#define KEY_F14 ((sal_uInt16)::com::sun::star::awt::Key::F14) -#define KEY_F15 ((sal_uInt16)::com::sun::star::awt::Key::F15) -#define KEY_F16 ((sal_uInt16)::com::sun::star::awt::Key::F16) -#define KEY_F17 ((sal_uInt16)::com::sun::star::awt::Key::F17) -#define KEY_F18 ((sal_uInt16)::com::sun::star::awt::Key::F18) -#define KEY_F19 ((sal_uInt16)::com::sun::star::awt::Key::F19) -#define KEY_F20 ((sal_uInt16)::com::sun::star::awt::Key::F20) -#define KEY_F21 ((sal_uInt16)::com::sun::star::awt::Key::F21) -#define KEY_F22 ((sal_uInt16)::com::sun::star::awt::Key::F22) -#define KEY_F23 ((sal_uInt16)::com::sun::star::awt::Key::F23) -#define KEY_F24 ((sal_uInt16)::com::sun::star::awt::Key::F24) -#define KEY_F25 ((sal_uInt16)::com::sun::star::awt::Key::F25) -#define KEY_F26 ((sal_uInt16)::com::sun::star::awt::Key::F26) - -#define KEY_DOWN ((sal_uInt16)::com::sun::star::awt::Key::DOWN) -#define KEY_UP ((sal_uInt16)::com::sun::star::awt::Key::UP) -#define KEY_LEFT ((sal_uInt16)::com::sun::star::awt::Key::LEFT) -#define KEY_RIGHT ((sal_uInt16)::com::sun::star::awt::Key::RIGHT) -#define KEY_HOME ((sal_uInt16)::com::sun::star::awt::Key::HOME) -#define KEY_END ((sal_uInt16)::com::sun::star::awt::Key::END) -#define KEY_PAGEUP ((sal_uInt16)::com::sun::star::awt::Key::PAGEUP) -#define KEY_PAGEDOWN ((sal_uInt16)::com::sun::star::awt::Key::PAGEDOWN) - -#define KEY_RETURN ((sal_uInt16)::com::sun::star::awt::Key::RETURN) -#define KEY_ESCAPE ((sal_uInt16)::com::sun::star::awt::Key::ESCAPE) -#define KEY_TAB ((sal_uInt16)::com::sun::star::awt::Key::TAB) -#define KEY_BACKSPACE ((sal_uInt16)::com::sun::star::awt::Key::BACKSPACE) -#define KEY_SPACE ((sal_uInt16)::com::sun::star::awt::Key::SPACE) -#define KEY_INSERT ((sal_uInt16)::com::sun::star::awt::Key::INSERT) -#define KEY_DELETE ((sal_uInt16)::com::sun::star::awt::Key::DELETE) - -#define KEY_ADD ((sal_uInt16)::com::sun::star::awt::Key::ADD) -#define KEY_SUBTRACT ((sal_uInt16)::com::sun::star::awt::Key::SUBTRACT) -#define KEY_MULTIPLY ((sal_uInt16)::com::sun::star::awt::Key::MULTIPLY) -#define KEY_DIVIDE ((sal_uInt16)::com::sun::star::awt::Key::DIVIDE) -#define KEY_POINT ((sal_uInt16)::com::sun::star::awt::Key::POINT) -#define KEY_COMMA ((sal_uInt16)::com::sun::star::awt::Key::COMMA) -#define KEY_LESS ((sal_uInt16)::com::sun::star::awt::Key::LESS) -#define KEY_GREATER ((sal_uInt16)::com::sun::star::awt::Key::GREATER) -#define KEY_EQUAL ((sal_uInt16)::com::sun::star::awt::Key::EQUAL) - -#define KEY_OPEN ((sal_uInt16)::com::sun::star::awt::Key::OPEN) -#define KEY_CUT ((sal_uInt16)::com::sun::star::awt::Key::CUT) -#define KEY_COPY ((sal_uInt16)::com::sun::star::awt::Key::COPY) -#define KEY_PASTE ((sal_uInt16)::com::sun::star::awt::Key::PASTE) -#define KEY_UNDO ((sal_uInt16)::com::sun::star::awt::Key::UNDO) -#define KEY_REPEAT ((sal_uInt16)::com::sun::star::awt::Key::REPEAT) -#define KEY_FIND ((sal_uInt16)::com::sun::star::awt::Key::FIND) -#define KEY_PROPERTIES ((sal_uInt16)::com::sun::star::awt::Key::PROPERTIES) -#define KEY_FRONT ((sal_uInt16)::com::sun::star::awt::Key::FRONT) -#define KEY_CONTEXTMENU ((sal_uInt16)::com::sun::star::awt::Key::CONTEXTMENU) -#define KEY_MENU ((sal_uInt16)::com::sun::star::awt::Key::MENU) -#define KEY_HELP ((sal_uInt16)::com::sun::star::awt::Key::HELP) -#define KEY_HANGUL_HANJA ((sal_uInt16)::com::sun::star::awt::Key::HANGUL_HANJA) -#define KEY_DECIMAL ((sal_uInt16)::com::sun::star::awt::Key::DECIMAL) -#define KEY_TILDE ((sal_uInt16)::com::sun::star::awt::Key::TILDE) -#define KEY_QUOTELEFT ((sal_uInt16)::com::sun::star::awt::Key::QUOTELEFT) -#define KEY_BRACKETLEFT ((sal_uInt16)::com::sun::star::awt::Key::BRACKETLEFT) -#define KEY_BRACKETRIGHT ((sal_uInt16)::com::sun::star::awt::Key::BRACKETRIGHT) -#define KEY_SEMICOLON ((sal_uInt16)::com::sun::star::awt::Key::SEMICOLON) - -#define KEY_CAPSLOCK ((sal_uInt16)::com::sun::star::awt::Key::CAPSLOCK) -#define KEY_NUMLOCK ((sal_uInt16)::com::sun::star::awt::Key::NUMLOCK) -#define KEY_SCROLLLOCK ((sal_uInt16)::com::sun::star::awt::Key::SCROLLLOCK) - -// extended Modifier-Keys (only used for modkey events) -#define MODKEY_LSHIFT 0x0001 -#define MODKEY_RSHIFT 0x0002 -#define MODKEY_LMOD1 0x0004 -#define MODKEY_RMOD1 0x0008 -#define MODKEY_LMOD2 0x0010 -#define MODKEY_RMOD2 0x0020 -#define MODKEY_LMOD3 0x0040 -#define MODKEY_RMOD3 0x0080 -#define MODKEY_SHIFT (MODKEY_LSHIFT|MODKEY_RSHIFT) -#define MODKEY_MOD1 (MODKEY_LMOD1|MODKEY_RMOD1) -#define MODKEY_MOD2 (MODKEY_LMOD2|MODKEY_RMOD2) -#define MODKEY_MOD3 (MODKEY_LMOD3|MODKEY_RMOD3) - -// --------------- -// - Mouse-Types - -// --------------- - -#define MOUSE_LEFT ((sal_uInt16)0x0001) -#define MOUSE_MIDDLE ((sal_uInt16)0x0002) -#define MOUSE_RIGHT ((sal_uInt16)0x0004) - -// ------------------- -// - Indicator-Types - -// ------------------- - -#define INDICATOR_CAPSLOCK 0x0001 -#define INDICATOR_NUMLOCK 0x0002 -#define INDICATOR_SCROLLLOCK 0x0004 - -#endif // _SV_KEYCODES_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/layout.hxx b/vcl/inc/vcl/layout.hxx deleted file mode 100644 index c6b6a1274fa7..000000000000 --- a/vcl/inc/vcl/layout.hxx +++ /dev/null @@ -1,702 +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/. - */ - -#ifndef _VCLLAYOUT_HXX -#define _VCLLAYOUT_HXX - -#include <vcl/dllapi.h> -#include <vcl/button.hxx> -#include <vcl/scrbar.hxx> -#include <vcl/window.hxx> -#include <boost/multi_array.hpp> -#include <set> - -class VCL_DLLPUBLIC VclContainer : public Window -{ -public: - VclContainer(Window *pParent, WinBits nStyle = WB_HIDE); - - //These take into account the external margins of the rWindow widget - //while GetOptimalSize/get_preferred_size and SetPosSizePixel are - //oblivious to them - static Size getLayoutRequisition(const Window &rWindow); - static void setLayoutPosSize(Window &rWindow, const Point &rPos, const Size &rSize); - - //applies the allocation pos and size onto rWindow via setLayoutPosSize taking into account - //the rWindows alignment desires within that allocation - static void setLayoutAllocation(Window &rWindow, const Point &rPos, const Size &rSize); - - void markLayoutDirty() - { - m_bLayoutDirty = true; - } -protected: - //these are the two that need to be implemented by - //containers, figure out how much space you want... - virtual Size calculateRequisition() const = 0; - //..and decide what to do when set to this size - virtual void setAllocation(const Size &rAllocation) = 0; - - virtual sal_uInt16 getDefaultAccessibleRole() const; -public: - //you don't want to override these - virtual Size GetOptimalSize() const; - virtual void SetPosSizePixel(const Point& rNewPos, const Size& rNewSize); - virtual void SetPosPixel(const Point& rAllocPos); - virtual void SetSizePixel(const Size& rAllocation); -private: - bool m_bLayoutDirty; -}; - -class VCL_DLLPUBLIC VclBox : public VclContainer -{ -protected: - bool m_bHomogeneous; - int m_nSpacing; -public: - VclBox(Window *pParent, bool bHomogeneous, int nSpacing) - : VclContainer(pParent) - , m_bHomogeneous(bHomogeneous) - , m_nSpacing(nSpacing) - { - } - void set_spacing(int nSpacing) - { - m_nSpacing = nSpacing; - } - int get_spacing() const - { - return m_nSpacing; - } - void set_homogeneous(bool bHomogeneous) - { - m_bHomogeneous = bHomogeneous; - } - bool get_homogeneous() const - { - return m_bHomogeneous; - } - virtual bool set_property(const OString &rKey, const OString &rValue); -protected: - virtual sal_uInt16 getDefaultAccessibleRole() const; - void accumulateMaxes(const Size &rChildSize, Size &rSize) const; - Size finalizeMaxes(const Size &rSize, sal_uInt16 nVisibleChildren) const; - - virtual Size calculateRequisition() const; - virtual void setAllocation(const Size &rAllocation); - - virtual long getPrimaryDimension(const Size &rSize) const = 0; - virtual void setPrimaryDimension(Size &rSize, long) const = 0; - virtual long getPrimaryCoordinate(const Point &rPos) const = 0; - virtual void setPrimaryCoordinate(Point &rPos, long) const = 0; - virtual long getSecondaryDimension(const Size &rSize) const = 0; - virtual void setSecondaryDimension(Size &rSize, long) const = 0; - virtual long getSecondaryCoordinate(const Point &rPos) const = 0; - virtual void setSecondaryCoordinate(Point &rPos, long) const = 0; - - virtual bool getPrimaryDimensionChildExpand(const Window &rWindow) const = 0; -}; - -class VCL_DLLPUBLIC VclVBox : public VclBox -{ -public: - VclVBox(Window *pParent, bool bHomogeneous = false, int nSpacing = 0) - : VclBox(pParent, bHomogeneous, nSpacing) - { - } -protected: - virtual long getPrimaryDimension(const Size &rSize) const - { - return rSize.getHeight(); - } - virtual void setPrimaryDimension(Size &rSize, long nHeight) const - { - rSize.setHeight(nHeight); - } - virtual long getPrimaryCoordinate(const Point &rPos) const - { - return rPos.getY(); - } - virtual void setPrimaryCoordinate(Point &rPos, long nPos) const - { - rPos.setY(nPos); - } - virtual long getSecondaryDimension(const Size &rSize) const - { - return rSize.getWidth(); - } - virtual void setSecondaryDimension(Size &rSize, long nWidth) const - { - rSize.setWidth(nWidth); - } - virtual long getSecondaryCoordinate(const Point &rPos) const - { - return rPos.getX(); - } - virtual void setSecondaryCoordinate(Point &rPos, long nPos) const - { - rPos.setX(nPos); - } - virtual bool getPrimaryDimensionChildExpand(const Window &rWindow) const - { - return rWindow.get_expand() || rWindow.get_vexpand(); - } -}; - -class VCL_DLLPUBLIC VclHBox : public VclBox -{ -public: - VclHBox(Window *pParent, bool bHomogeneous = false, int nSpacing = 0) - : VclBox(pParent, bHomogeneous, nSpacing) - { - } -protected: - virtual long getPrimaryDimension(const Size &rSize) const - { - return rSize.getWidth(); - } - virtual void setPrimaryDimension(Size &rSize, long nWidth) const - { - rSize.setWidth(nWidth); - } - virtual long getPrimaryCoordinate(const Point &rPos) const - { - return rPos.getX(); - } - virtual void setPrimaryCoordinate(Point &rPos, long nPos) const - { - rPos.setX(nPos); - } - virtual long getSecondaryDimension(const Size &rSize) const - { - return rSize.getHeight(); - } - virtual void setSecondaryDimension(Size &rSize, long nHeight) const - { - rSize.setHeight(nHeight); - } - virtual long getSecondaryCoordinate(const Point &rPos) const - { - return rPos.getY(); - } - virtual void setSecondaryCoordinate(Point &rPos, long nPos) const - { - rPos.setY(nPos); - } - virtual bool getPrimaryDimensionChildExpand(const Window &rWindow) const - { - return rWindow.get_expand() || rWindow.get_hexpand(); - } -}; - -enum VclButtonBoxStyle -{ - VCL_BUTTONBOX_DEFAULT_STYLE, - VCL_BUTTONBOX_SPREAD, - VCL_BUTTONBOX_EDGE, - VCL_BUTTONBOX_START, - VCL_BUTTONBOX_END, - VCL_BUTTONBOX_CENTER -}; - -class VCL_DLLPUBLIC VclButtonBox : public VclBox -{ -public: - VclButtonBox(Window *pParent, int nSpacing) - : VclBox(pParent, false, nSpacing) - , m_eLayoutStyle(VCL_BUTTONBOX_DEFAULT_STYLE) - { - } - void set_layout(VclButtonBoxStyle eStyle) - { - m_eLayoutStyle = eStyle; - } - VclButtonBoxStyle get_layout() const - { - return m_eLayoutStyle; - } - virtual bool set_property(const OString &rKey, const OString &rValue); -protected: - virtual Size calculateRequisition() const; - virtual void setAllocation(const Size &rAllocation); - Size addSpacing(const Size &rSize, sal_uInt16 nVisibleChildren) const; -private: - VclButtonBoxStyle m_eLayoutStyle; - struct Requisition - { - std::vector<long> m_aMainGroupDimensions; - std::vector<long> m_aSubGroupDimensions; - Size m_aMainGroupSize; - Size m_aSubGroupSize; - }; - Requisition calculatePrimarySecondaryRequisitions() const; - Size addReqGroups(const VclButtonBox::Requisition &rReq) const; -}; - -class VCL_DLLPUBLIC VclVButtonBox : public VclButtonBox -{ -public: - VclVButtonBox(Window *pParent, int nSpacing = 0) - : VclButtonBox(pParent, nSpacing) - { - } -protected: - virtual long getPrimaryDimension(const Size &rSize) const - { - return rSize.getHeight(); - } - virtual void setPrimaryDimension(Size &rSize, long nHeight) const - { - rSize.setHeight(nHeight); - } - virtual long getPrimaryCoordinate(const Point &rPos) const - { - return rPos.getY(); - } - virtual void setPrimaryCoordinate(Point &rPos, long nPos) const - { - rPos.setY(nPos); - } - virtual long getSecondaryDimension(const Size &rSize) const - { - return rSize.getWidth(); - } - virtual void setSecondaryDimension(Size &rSize, long nWidth) const - { - rSize.setWidth(nWidth); - } - virtual long getSecondaryCoordinate(const Point &rPos) const - { - return rPos.getX(); - } - virtual void setSecondaryCoordinate(Point &rPos, long nPos) const - { - rPos.setX(nPos); - } - virtual bool getPrimaryDimensionChildExpand(const Window &rWindow) const - { - return rWindow.get_expand() || rWindow.get_vexpand(); - } -}; - -class VCL_DLLPUBLIC VclHButtonBox : public VclButtonBox -{ -public: - VclHButtonBox(Window *pParent, int nSpacing = 0) - : VclButtonBox(pParent, nSpacing) - { - } -protected: - virtual long getPrimaryDimension(const Size &rSize) const - { - return rSize.getWidth(); - } - virtual void setPrimaryDimension(Size &rSize, long nWidth) const - { - rSize.setWidth(nWidth); - } - virtual long getPrimaryCoordinate(const Point &rPos) const - { - return rPos.getX(); - } - virtual void setPrimaryCoordinate(Point &rPos, long nPos) const - { - rPos.setX(nPos); - } - virtual long getSecondaryDimension(const Size &rSize) const - { - return rSize.getHeight(); - } - virtual void setSecondaryDimension(Size &rSize, long nHeight) const - { - rSize.setHeight(nHeight); - } - virtual long getSecondaryCoordinate(const Point &rPos) const - { - return rPos.getY(); - } - virtual void setSecondaryCoordinate(Point &rPos, long nPos) const - { - rPos.setY(nPos); - } - virtual bool getPrimaryDimensionChildExpand(const Window &rWindow) const - { - return rWindow.get_expand() || rWindow.get_hexpand(); - } -}; - -class VCL_DLLPUBLIC VclGrid : public VclContainer -{ -private: - bool m_bRowHomogeneous; - bool m_bColumnHomogeneous; - int m_nRowSpacing; - int m_nColumnSpacing; - - struct GridEntry - { - Window *pChild; - sal_Int32 nSpanWidth; - sal_Int32 nSpanHeight; - GridEntry() - : pChild(0) - , nSpanWidth(0) - , nSpanHeight(0) - { - } - }; - - typedef boost::multi_array<GridEntry, 2> array_type; - - struct ExtendedGridEntry : GridEntry - { - int x; - int y; - ExtendedGridEntry() - : x(-1) - , y(-1) - { - } - }; - - typedef boost::multi_array<ExtendedGridEntry, 2> ext_array_type; - - array_type assembleGrid() const; - bool isNullGrid(const array_type& A) const; -public: - struct Value - { - long m_nValue; - bool m_bExpand; - Value() : m_nValue(0), m_bExpand(false) {} - }; -private: - void calcMaxs(const array_type &A, std::vector<Value> &rWidths, std::vector<Value> &rHeights) const; - - virtual Size calculateRequisition() const; - virtual void setAllocation(const Size &rAllocation); -public: - VclGrid(Window *pParent) - : VclContainer(pParent) - , m_bRowHomogeneous(false), m_bColumnHomogeneous(false) - , m_nRowSpacing(0), m_nColumnSpacing(0) - { - } - void set_row_homogeneous(bool bHomogeneous) - { - m_bRowHomogeneous = bHomogeneous; - } - void set_column_homogeneous(bool bHomogeneous) - { - m_bColumnHomogeneous = bHomogeneous; - } - bool get_row_homogeneous() const - { - return m_bRowHomogeneous; - } - bool get_column_homogeneous() const - { - return m_bColumnHomogeneous; - } - void set_row_spacing(int nSpacing) - { - m_nRowSpacing = nSpacing; - } - void set_column_spacing(int nSpacing) - { - m_nColumnSpacing = nSpacing; - } - int get_row_spacing() const - { - return m_nRowSpacing; - } - int get_column_spacing() const - { - return m_nColumnSpacing; - } - virtual bool set_property(const OString &rKey, const OString &rValue); -}; - -VCL_DLLPUBLIC void setGridAttach(Window &rWidget, sal_Int32 nLeft, sal_Int32 nTop, - sal_Int32 nWidth = 1, sal_Int32 nHeight = 1); - -class VCL_DLLPUBLIC VclBin : public VclContainer -{ -public: - VclBin(Window *pParent, WinBits nStyle = WB_HIDE) - : VclContainer(pParent, nStyle) - { - } - virtual Window *get_child(); - virtual const Window *get_child() const; - virtual Size calculateRequisition() const; - virtual void setAllocation(const Size &rAllocation); -}; - -class VCL_DLLPUBLIC VclFrame : public VclBin -{ -private: - Window *m_pLabel; -private: - friend class VclBuilder; - void designate_label(Window *pWindow); -public: - VclFrame(Window *pParent) - : VclBin(pParent) - , m_pLabel(NULL) - { - } - void set_label(const OUString &rLabel); - virtual Window *get_child(); - virtual const Window *get_child() const; - Window *get_label_widget(); - const Window *get_label_widget() const; -protected: - virtual Size calculateRequisition() const; - virtual void setAllocation(const Size &rAllocation); - virtual OUString getDefaultAccessibleName() const; -}; - -class VCL_DLLPUBLIC VclAlignment : public VclBin -{ -public: - VclAlignment(Window *pParent) - : VclBin(pParent) - , m_nBottomPadding(0) - , m_nLeftPadding(0) - , m_nRightPadding(0) - , m_nTopPadding(0) - , m_fXAlign(0.0) - , m_fXScale(1.0) - , m_fYAlign(0.0) - , m_fYScale(1.0) - { - } - virtual bool set_property(const OString &rKey, const OString &rValue); -protected: - virtual Size calculateRequisition() const; - virtual void setAllocation(const Size &rAllocation); -private: - sal_Int32 m_nBottomPadding; - sal_Int32 m_nLeftPadding; - sal_Int32 m_nRightPadding; - sal_Int32 m_nTopPadding; - float m_fXAlign; - float m_fXScale; - float m_fYAlign; - float m_fYScale; -}; - -class VCL_DLLPUBLIC VclExpander : public VclBin -{ -public: - VclExpander(Window *pParent) - : VclBin(pParent) - , m_bResizeTopLevel(true) - , m_aDisclosureButton(this) - { - m_aDisclosureButton.SetToggleHdl(LINK(this, VclExpander, ClickHdl)); - m_aDisclosureButton.Show(); - } - virtual Window *get_child(); - virtual const Window *get_child() const; - virtual bool set_property(const OString &rKey, const OString &rValue); -protected: - virtual Size calculateRequisition() const; - virtual void setAllocation(const Size &rAllocation); -private: - bool m_bResizeTopLevel; - DisclosureButton m_aDisclosureButton; - DECL_DLLPRIVATE_LINK(ClickHdl, DisclosureButton* pBtn); -}; - -//This is a work in progress, so if you want to put something inside a -//scrolled window that doesn't handle its own scrolling, then you may need to -//implement this fully -class VCL_DLLPUBLIC VclScrolledWindow : public VclBin -{ -public: - VclScrolledWindow(Window *pParent, WinBits nStyle = WB_HIDE | WB_AUTOHSCROLL | WB_AUTOVSCROLL) - : VclBin(pParent, nStyle) - , m_aVScroll(this, WB_HIDE | WB_VERT) - , m_aHScroll(this, WB_HIDE | WB_HORZ) - { - SetType(WINDOW_SCROLLWINDOW); - } - virtual Window *get_child(); - virtual const Window *get_child() const; - virtual bool set_property(const OString &rKey, const OString &rValue); - ScrollBar& getVertScrollBar() { return m_aVScroll; } - ScrollBar& getHorzScrollBar() { return m_aHScroll; } - Size getVisibleChildSize() const; -protected: - virtual Size calculateRequisition() const; - virtual void setAllocation(const Size &rAllocation); -private: - ScrollBar m_aVScroll; - ScrollBar m_aHScroll; -}; - -//Enforces that its children are always the same size as itself. -//Intercepts any Commands intended for its children. -// -//by default the Commands are discarded, inherit from this -//and implement "Command" to get them -class VCL_DLLPUBLIC VclEventBox : public VclBin -{ -private: - //Any Commands an EventBoxHelper receives are forwarded to its parent - //The VclEventBox ensures that m_aEventBoxHelper is the - //first child and is transparent, but covers the rest of the children - class EventBoxHelper : public Window - { - public: - EventBoxHelper(Window* pParent) - : Window(pParent, 0) - { - SetSizePixel(pParent->GetSizePixel()); - EnableChildTransparentMode(); - SetPaintTransparent(true); - SetBackground(); - } - virtual void Command(const CommandEvent& rCEvt) - { - GetParent()->Command(rCEvt); - } - }; - - EventBoxHelper m_aEventBoxHelper; -public: - VclEventBox(Window* pParent) - : VclBin(pParent) - , m_aEventBoxHelper(this) - { - m_aEventBoxHelper.Show(); - } - virtual Window *get_child(); - virtual const Window *get_child() const; - virtual Size calculateRequisition() const; - virtual void setAllocation(const Size &rAllocation); - - virtual void Command(const CommandEvent& rCEvt); -}; - -enum VclSizeGroupMode -{ - VCL_SIZE_GROUP_NONE, - VCL_SIZE_GROUP_HORIZONTAL, - VCL_SIZE_GROUP_VERTICAL, - VCL_SIZE_GROUP_BOTH -}; - -class VCL_DLLPUBLIC VclSizeGroup -{ -private: - std::set<Window*> m_aWindows; - bool m_bIgnoreHidden; - VclSizeGroupMode m_eMode; - - void trigger_queue_resize(); -public: - VclSizeGroup() - : m_bIgnoreHidden(false) - , m_eMode(VCL_SIZE_GROUP_HORIZONTAL) - { - } - void insert(Window *pWindow) - { - m_aWindows.insert(pWindow); - } - void erase(Window *pWindow) - { - m_aWindows.erase(pWindow); - } - const std::set<Window*>& get_widgets() const - { - return m_aWindows; - } - std::set<Window*>& get_widgets() - { - return m_aWindows; - } - void set_ignore_hidden(bool bIgnoreHidden); - bool get_ignore_hidden() const - { - return m_bIgnoreHidden; - } - void set_mode(VclSizeGroupMode eMode); - VclSizeGroupMode get_mode() const - { - return m_eMode; - } - bool set_property(const OString &rKey, const OString &rValue); -}; - -VCL_DLLPUBLIC Size bestmaxFrameSizeForScreenSize(const Size &rScreenSize); - -//Get first window of a pTopLevel window as -//if any intermediate layout widgets didn't exist -//i.e. acts like pChild = pChild->GetWindow(WINDOW_FIRSTCHILD); -//in a flat hierarchy where dialogs only have one layer -//of children -VCL_DLLPUBLIC Window* firstLogicalChildOfParent(Window *pTopLevel); - -//Get next window after pChild of a pTopLevel window as -//if any intermediate layout widgets didn't exist -//i.e. acts like pChild = pChild->GetWindow(WINDOW_NEXT); -//in a flat hierarchy where dialogs only have one layer -//of children -VCL_DLLPUBLIC Window* nextLogicalChildOfParent(Window *pTopLevel, Window *pChild); - -//Get previous window before pChild of a pTopLevel window as -//if any intermediate layout widgets didn't exist -//i.e. acts like pChild = pChild->GetWindow(WINDOW_PREV); -//in a flat hierarchy where dialogs only have one layer -//of children -VCL_DLLPUBLIC Window* prevLogicalChildOfParent(Window *pTopLevel, Window *pChild); - -//Returns true is the Window has a single child which is a container -VCL_DLLPUBLIC bool isLayoutEnabled(const Window *pWindow); - -VCL_DLLPUBLIC inline bool isContainerWindow(const Window &rWindow) -{ - WindowType eType = rWindow.GetType(); - return (eType == WINDOW_CONTAINER || eType == WINDOW_SCROLLWINDOW); -} - -VCL_DLLPUBLIC inline bool isContainerWindow(const Window *pWindow) -{ - return pWindow && isContainerWindow(*pWindow); -} - -//Returns true if the containing dialog is doing its initial -//layout and isn't visible yet -VCL_DLLPUBLIC bool isInitialLayout(const Window *pWindow); - -// retro-fitting utilities // - -//Get a Size which is large enough to contain all children with -//an equal amount of space at top left and bottom right -Size getLegacyBestSizeForChildren(const Window &rWindow); - -//Get first parent which is not a layout widget -Window* getNonLayoutParent(Window *pParent); - -//Get first real parent which is not a layout widget -Window* getNonLayoutRealParent(Window *pParent); - -//return true if this window and its stack of containers are all shown -bool isVisibleInLayout(const Window *pWindow); - -//return true if this window and its stack of containers are all enabled -bool isEnabledInLayout(const Window *pWindow); - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/lazydelete.hxx b/vcl/inc/vcl/lazydelete.hxx deleted file mode 100644 index ee818eef8df8..000000000000 --- a/vcl/inc/vcl/lazydelete.hxx +++ /dev/null @@ -1,299 +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 . - */ - -#ifndef _VCL_LAZYDELETE_HXX -#define _VCL_LAZYDELETE_HXX - -#include "dllapi.h" - -#include <vector> -#include <boost/unordered_map.hpp> -#include <algorithm> - -#if OSL_DEBUG_LEVEL > 2 -#include <typeinfo> -#include <stdio.h> -#endif - -#include <com/sun/star/lang/XComponent.hpp> - -namespace vcl -{ - /* Helpers for lazy object deletion - - With vcl it is often necessary to delete objects (especially Windows) - in the right order as well as in a way ensuring that the deleted objects - are not still on the stack (e.g. deleting a Window in its key handler). To - make this easier a helper class is given here which takes care of both - sorting as well as lazy deletion. - - The grisly details: - LazyDelete is a class that LazyDeletor register to. When vcl's event - loop (that is Application::Yield or Application::Reschedule) comes out - of the last level, the LazyDelete::flush is called. This will cause - LazyDelete to delete all registered LazyDeletor objects. - - LazyDeletor<T> is a one instance object that contains a list of - <T> objects to be deleted in sorted order. It is derived from - LazyDeletorBase as to be able to register itself in LazyDelete. - - The user calls the static method LazyDeletor<T>::Delete( T* ) with the - object to be destroyed lazy. The static method creates the LazyDeletor<T> - (which in turn registers itself in LazyDelete) if this is the first time - a T* is to be destroyed lazy. It then inserts the object. When the LazyDeletor<T> - gets delte it will delete the stored objects in a fashion - that will ensure the correct order of deletion via the specialized is_less method - (e.g. if a Window is a child of another Window and therefore should be destroyed - first it is "less" in this sense) - - LazyDelete::flush will be called when the top of the nested event loop is - reached again and will then destroy each registered LazyDeletor<T> which - in turn destroys the objects needed to be destroyed lazily. After this - the state is as before entering the event loop. - - Preconditions: - - The class <T> of which objects are to be destroyed needs a virtual - destructor or must be final, else the wrong type will be destroyed. - - The destructor of <T> should call LazyDeletor<T>::Undelete( this ). This - prevents duplicate deletionin case someone destroys the object prematurely. - */ - - class LazyDeletorBase; - class VCL_DLLPUBLIC LazyDelete - { - public: - /** flush all registered object lists - */ - static void flush(); - /** register an object list to be destroyed - */ - static void addDeletor( LazyDeletorBase* pDeletor ); - }; - - class VCL_DLLPUBLIC LazyDeletorBase - { - friend void LazyDelete::flush(); - protected: - LazyDeletorBase(); - virtual ~LazyDeletorBase(); - }; - - template < typename T > - class VCL_DLLPUBLIC LazyDeletor : public LazyDeletorBase - { - static LazyDeletor< T >* s_pOneInstance; - - struct DeleteObjectEntry - { - T* m_pObject; - bool m_bDeleted; - - DeleteObjectEntry() : - m_pObject( NULL ), - m_bDeleted( false ) - {} - - DeleteObjectEntry( T* i_pObject ) : - m_pObject( i_pObject ), - m_bDeleted( false ) - {} - }; - - std::vector< DeleteObjectEntry > m_aObjects; - typedef boost::unordered_map< sal_IntPtr, unsigned int > PtrToIndexMap; - PtrToIndexMap m_aPtrToIndex; - - /** strict weak ordering funtion to bring objects to be destroyed lazily - in correct order, e.g. for Window objects children before parents - */ - static bool is_less( T* left, T* right ); - - LazyDeletor() { LazyDelete::addDeletor( this ); } - virtual ~LazyDeletor() - { - #if OSL_DEBUG_LEVEL > 2 - fprintf( stderr, "%s %p deleted\n", - typeid(*this).name(), this ); - #endif - if( s_pOneInstance == this ) // sanity check - s_pOneInstance = NULL; - - // do the actual work - unsigned int nCount = m_aObjects.size(); - std::vector<T*> aRealDelete; - aRealDelete.reserve( nCount ); - for( unsigned int i = 0; i < nCount; i++ ) - { - if( ! m_aObjects[i].m_bDeleted ) - { - aRealDelete.push_back( m_aObjects[i].m_pObject ); - } - } - // sort the vector of objects to be destroyed - std::sort( aRealDelete.begin(), aRealDelete.end(), is_less ); - nCount = aRealDelete.size(); - for( unsigned int n = 0; n < nCount; n++ ) - { - #if OSL_DEBUG_LEVEL > 2 - fprintf( stderr, "%s deletes object %p of type %s\n", - typeid(*this).name(), - aRealDelete[n], - typeid(*aRealDelete[n]).name() ); - #endif - // check if the object to be deleted is not already destroyed - // as a side effect of a previous lazily destroyed object - if( ! m_aObjects[ m_aPtrToIndex[ reinterpret_cast<sal_IntPtr>(aRealDelete[n]) ] ].m_bDeleted ) - delete aRealDelete[n]; - } - } - - public: - /** mark an object for lazy deletion - */ - static void Delete( T* i_pObject ) - { - if( s_pOneInstance == NULL ) - s_pOneInstance = new LazyDeletor<T>(); - - // is this object already in the list ? - // if so mark it as not to be deleted; else insert it - PtrToIndexMap::const_iterator dup = s_pOneInstance->m_aPtrToIndex.find( reinterpret_cast<sal_IntPtr>(i_pObject) ); - if( dup != s_pOneInstance->m_aPtrToIndex.end() ) - { - s_pOneInstance->m_aObjects[ dup->second ].m_bDeleted = false; - } - else - { - s_pOneInstance->m_aPtrToIndex[ reinterpret_cast<sal_IntPtr>(i_pObject) ] = s_pOneInstance->m_aObjects.size(); - s_pOneInstance->m_aObjects.push_back( DeleteObjectEntry( i_pObject ) ); - } - } - /** unmark an object already marked for lazy deletion - */ - static void Undelete( T* i_pObject ) - { - if( s_pOneInstance ) - { - PtrToIndexMap::const_iterator it = s_pOneInstance->m_aPtrToIndex.find( reinterpret_cast<sal_IntPtr>(i_pObject) ); - if( it != s_pOneInstance->m_aPtrToIndex.end() ) - s_pOneInstance->m_aObjects[ it->second ].m_bDeleted = true; - } - } - }; - - /* - class DeleteOnDeinit matches a similar need as LazyDelete for static objects: - you may not access vcl objects after DeInitVCL has been called this includes their destruction - therefore disallowing the existance of static vcl object like e.g. a static BitmapEx - To work around this use DeleteOnDeinit<BitmapEx> which will allow you to have a static object container, - that will have its contents destroyed on DeinitVCL. The single drawback is that you need to check on the - container object whether it still contains content before actually accessing it. - - caveat: when constructing a vcl object, you certainly want to ensure that InitVCL has run already. - However this is not necessarily the case when using a class static member or a file level static variable. - In these cases make judicious use of the set() method of DeleteOnDeinit, but beware of the changing - ownership. - - example use case: use a lazy initialized on call BitmapEx in a paint method. Of course a paint method - would not normally be called after DeInitVCL anyway, so the check might not be necessary in a - Window::Paint implementation, but always checking is a good idea. - - SomeWindow::Paint() - { - static vcl::DeleteOnDeinit< BitmapEx > aBmp( new BitmapEx( ResId( 1000, myResMgr ) ) ); - - if( aBmp.get() ) // check whether DeInitVCL has been called already - DrawBitmapEx( Point( 10, 10 ), *aBmp.get() ); - } - */ - - class VCL_DLLPUBLIC DeleteOnDeinitBase - { - public: - static void SAL_DLLPRIVATE ImplDeleteOnDeInit(); - virtual ~DeleteOnDeinitBase(); - protected: - static void addDeinitContainer( DeleteOnDeinitBase* i_pContainer ); - - virtual void doCleanup() = 0; - }; - - template < typename T > - class DeleteOnDeinit : public DeleteOnDeinitBase - { - T* m_pT; - virtual void doCleanup() { delete m_pT; m_pT = NULL; } - public: - DeleteOnDeinit( T* i_pT ) : m_pT( i_pT ) { addDeinitContainer( this ); } - virtual ~DeleteOnDeinit() {} - - // get contents - T* get() { return m_pT; } - - // set contents, returning old contents - // ownership is transferred ! - T* set( T* i_pNew ) { T* pOld = m_pT; m_pT = i_pNew; return pOld; } - - // set contents, deleting old contents - // ownership is transferred ! - void reset( T* i_pNew = NULL ) - { OSL_ASSERT( i_pNew != m_pT || i_pNew == NULL ); T* pOld = m_pT; m_pT = i_pNew; delete pOld; } - }; - - /** Similar to DeleteOnDeinit, the DeleteUnoReferenceOnDeinit - template class makes sure that a static UNO object is disposed - and released at the right time. - - Use like - static DeleteUnoReferenceOnDeinit<lang::XMultiServiceFactory> - xStaticFactory (<create factory object>); - Reference<lang::XMultiServiceFactory> xFactory (xStaticFactory.get()); - if (xFactory.is()) - <do something with xFactory> - */ - template <typename I> - class DeleteUnoReferenceOnDeinit : public ::vcl::DeleteOnDeinitBase - { - ::com::sun::star::uno::Reference<I> m_xI; - virtual void doCleanup() { set(NULL); } - public: - DeleteUnoReferenceOnDeinit(const ::com::sun::star::uno::Reference<I>& r_xI ) : m_xI( r_xI ) { - addDeinitContainer( this ); } - virtual ~DeleteUnoReferenceOnDeinit() {} - - ::com::sun::star::uno::Reference<I> get (void) { return m_xI; } - - void set (const ::com::sun::star::uno::Reference<I>& r_xNew ) - { - ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent> xComponent (m_xI, ::com::sun::star::uno::UNO_QUERY); - m_xI = r_xNew; - if (xComponent.is()) try - { - xComponent->dispose(); - } - catch( ::com::sun::star::uno::Exception& ) - { - } - } - }; -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/lineinfo.hxx b/vcl/inc/vcl/lineinfo.hxx deleted file mode 100644 index d5165a63e016..000000000000 --- a/vcl/inc/vcl/lineinfo.hxx +++ /dev/null @@ -1,127 +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 . - */ - -#ifndef _SV_LINEINFO_HXX -#define _SV_LINEINFO_HXX - -#include <sal/types.h> -#include <vcl/dllapi.h> -#include <vcl/vclenum.hxx> -#include <basegfx/vector/b2enums.hxx> -#include <com/sun/star/drawing/LineCap.hpp> - -// ---------------- -// - ImplLineInfo - -// ---------------- - -class SvStream; -namespace basegfx { class B2DPolyPolygon; } - -struct ImplLineInfo -{ - sal_uLong mnRefCount; - LineStyle meStyle; - long mnWidth; - sal_uInt16 mnDashCount; - long mnDashLen; - sal_uInt16 mnDotCount; - long mnDotLen; - long mnDistance; - - basegfx::B2DLineJoin meLineJoin; - com::sun::star::drawing::LineCap meLineCap; - - ImplLineInfo(); - ImplLineInfo( const ImplLineInfo& rImplLineInfo ); - - bool operator==( const ImplLineInfo& ) const; - - friend SvStream& operator>>( SvStream& rIStm, ImplLineInfo& rImplLineInfo ); - friend SvStream& operator<<( SvStream& rOStm, const ImplLineInfo& rImplLineInfo ); -}; - -// ------------ -// - LineInfo - -// ------------ - -class VCL_DLLPUBLIC LineInfo -{ -private: - - ImplLineInfo* mpImplLineInfo; - - SAL_DLLPRIVATE void ImplMakeUnique(); - -public: - - LineInfo( LineStyle eLineStyle = LINE_SOLID, long nWidth = 0L ); - LineInfo( const LineInfo& rLineInfo ); - ~LineInfo(); - - LineInfo& operator=( const LineInfo& rLineInfo ); - sal_Bool operator==( const LineInfo& rLineInfo ) const; - sal_Bool operator!=( const LineInfo& rLineInfo ) const { return !(LineInfo::operator==( rLineInfo ) ); } - sal_Bool IsSameInstance( const LineInfo& rLineInfo ) const { return( mpImplLineInfo == rLineInfo.mpImplLineInfo ); } - - void SetStyle( LineStyle eStyle ); - LineStyle GetStyle() const { return mpImplLineInfo->meStyle; } - - void SetWidth( long nWidth ); - long GetWidth() const { return mpImplLineInfo->mnWidth; } - - void SetDashCount( sal_uInt16 nDashCount ); - sal_uInt16 GetDashCount() const { return mpImplLineInfo->mnDashCount; } - - void SetDashLen( long nDashLen ); - long GetDashLen() const { return mpImplLineInfo->mnDashLen; } - - void SetDotCount( sal_uInt16 nDotCount ); - sal_uInt16 GetDotCount() const { return mpImplLineInfo->mnDotCount; } - - void SetDotLen( long nDotLen ); - long GetDotLen() const { return mpImplLineInfo->mnDotLen; } - - void SetDistance( long nDistance ); - long GetDistance() const { return mpImplLineInfo->mnDistance; } - - void SetLineJoin(basegfx::B2DLineJoin eLineJoin); - basegfx::B2DLineJoin GetLineJoin() const { return mpImplLineInfo->meLineJoin; } - - void SetLineCap(com::sun::star::drawing::LineCap eLineCap); - com::sun::star::drawing::LineCap GetLineCap() const { return mpImplLineInfo->meLineCap; } - - sal_Bool IsDefault() const; - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, LineInfo& rLineInfo ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const LineInfo& rLineInfo ); - - // helper to get decomposed polygon data with the LineInfo applied. The source - // hairline polygon is given in io_rLinePolyPolygon. Both given polygons may - // contain results; e.g. when no fat line but DasDot is defined, the resut will - // be in io_rLinePolyPolygon while o_rFillPolyPolygon will be empty. When fat line - // is defined, it will be vice-versa. If none is defined, io_rLinePolyPolygon will - // not be changed (but o_rFillPolyPolygon will be freed) - void applyToB2DPolyPolygon( - basegfx::B2DPolyPolygon& io_rLinePolyPolygon, - basegfx::B2DPolyPolygon& o_rFillPolyPolygon) const; -}; - -#endif // _SV_LINEINFO_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/longcurr.hxx b/vcl/inc/vcl/longcurr.hxx deleted file mode 100644 index b0d57c392ab7..000000000000 --- a/vcl/inc/vcl/longcurr.hxx +++ /dev/null @@ -1,134 +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 . - */ - -#ifndef _LONGCURR_HXX -#define _LONGCURR_HXX - -#include <vcl/dllapi.h> -#include <tools/bigint.hxx> -#include <vcl/field.hxx> - -class LocaleDataWrapper; - -// ------------------------- -// - LongCurrencyFormatter - -// ------------------------- - -class VCL_DLLPUBLIC LongCurrencyFormatter : public FormatterBase -{ -private: - SAL_DLLPRIVATE friend sal_Bool ImplLongCurrencyReformat( const XubString&, BigInt, BigInt, sal_uInt16, const LocaleDataWrapper&, XubString&, LongCurrencyFormatter& ); - SAL_DLLPRIVATE void ImpInit(); - -protected: - BigInt mnFieldValue; - BigInt mnLastValue; - BigInt mnMin; - BigInt mnMax; - BigInt mnCorrectedValue; - OUString maCurrencySymbol; - sal_uInt16 mnType; - sal_uInt16 mnDecimalDigits; - sal_Bool mbThousandSep; - - LongCurrencyFormatter(); -public: - ~LongCurrencyFormatter(); - - virtual void Reformat(); - virtual void ReformatAll(); - - void SetUseThousandSep( sal_Bool b ); - sal_Bool IsUseThousandSep() const { return mbThousandSep; } - - void SetCurrencySymbol( const String& rStr ); - String GetCurrencySymbol() const; - - void SetMin( BigInt nNewMin ); - BigInt GetMin() const { return mnMin; } - void SetMax( BigInt nNewMax ); - BigInt GetMax() const { return mnMax; } - - void SetDecimalDigits( sal_uInt16 nDigits ); - sal_uInt16 GetDecimalDigits() const; - void SetValue( BigInt nNewValue ); - void SetUserValue( BigInt nNewValue ); - BigInt GetValue() const; - sal_Bool IsEmptyValue() const { return GetField()->GetText().isEmpty(); } - - BigInt GetCorrectedValue() const { return mnCorrectedValue; } -}; - -// --------------------- -// - LongCurrencyField - -// --------------------- - -class VCL_DLLPUBLIC LongCurrencyField : public SpinField, public LongCurrencyFormatter -{ - friend void ImplNewLongCurrencyFieldValue( LongCurrencyField*, BigInt ); - -private: - BigInt mnSpinSize; - BigInt mnFirst; - BigInt mnLast; - -public: - LongCurrencyField( Window* pParent, WinBits nWinStyle ); - ~LongCurrencyField(); - - long PreNotify( NotifyEvent& rNEvt ); - long Notify( NotifyEvent& rNEvt ); - - void Modify(); - void Up(); - void Down(); - void First(); - void Last(); - - void SetFirst( BigInt nNewFirst ) { mnFirst = nNewFirst; } - BigInt GetFirst() const { return mnFirst; } - void SetLast( BigInt nNewLast ) { mnLast = nNewLast; } - BigInt GetLast() const { return mnLast; } - void SetSpinSize( BigInt nNewSize ) { mnSpinSize = nNewSize; } - BigInt GetSpinSize() const { return mnSpinSize; } -}; - -// ------------------- -// - LongCurrencyBox - -// ------------------- - -class VCL_DLLPUBLIC LongCurrencyBox : public ComboBox, public LongCurrencyFormatter -{ -public: - LongCurrencyBox( Window* pParent, WinBits nWinStyle ); - ~LongCurrencyBox(); - - long PreNotify( NotifyEvent& rNEvt ); - long Notify( NotifyEvent& rNEvt ); - - void Modify(); - void ReformatAll(); - - BigInt GetValue() const - { return LongCurrencyFormatter::GetValue(); } -}; - -#endif // _LONGCURR_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/lstbox.h b/vcl/inc/vcl/lstbox.h deleted file mode 100644 index 1d9dd30c809b..000000000000 --- a/vcl/inc/vcl/lstbox.h +++ /dev/null @@ -1,57 +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 . - */ - -#ifndef _SV_LSTBOX_H -#define _SV_LSTBOX_H - -#define LISTBOX_APPEND ((sal_uInt16)0xFFFF) -#define LISTBOX_ENTRY_NOTFOUND ((sal_uInt16)0xFFFF) -#define LISTBOX_ERROR ((sal_uInt16)0xFFFF) - -// -------------------------------------------------------------------- - -// the following defines can be used for the SetEntryFlags() -// and GetEntryFlags() methods - -// !! Do not use these flags for user data as they are reserved !! -// !! to change the internal behaviour of the ListBox implementation !! -// !! for specific entries. !! - -/** this flag disables a selection of an entry completely. It is not - possible to select such entries either from the user interface - nor from the ListBox methods. Cursor traveling is handled correctly. - This flag can be used to add titles to a ListBox. -*/ -#define LISTBOX_ENTRY_FLAG_DISABLE_SELECTION 0x0000001 - -/** this flag can be used to make an entry multine capable - A normal entry is single line and will therefore be clipped - at the right listbox border. Setting this flag enables - word breaks for the entry text. -*/ -#define LISTBOX_ENTRY_FLAG_MULTILINE 0x0000002 - -/** this flags lets the item be drawn disabled (e.g. in grey text) - usage only guaranteed with LISTBOX_ENTRY_FLAG_DISABLE_SELECTION -*/ -#define LISTBOX_ENTRY_FLAG_DRAW_DISABLED 0x0000004 - -#endif // _SV_LSTBOX_H - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/lstbox.hxx b/vcl/inc/vcl/lstbox.hxx deleted file mode 100644 index 79026116c473..000000000000 --- a/vcl/inc/vcl/lstbox.hxx +++ /dev/null @@ -1,250 +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 . - */ - -#ifndef _SV_LSTBOX_HXX -#define _SV_LSTBOX_HXX - -#include <vcl/dllapi.h> -#include <vcl/ctrl.hxx> -#include <vcl/lstbox.h> - -class Image; -class ImplListBox; -class ImplListBoxFloatingWindow; -class ImplBtn; -class ImplWin; - -// -------------------------------------------------------------------- -// - ListBox - -// -------------------------------------------------------------------- - -class VCL_DLLPUBLIC ListBox : public Control -{ -private: - ImplListBox* mpImplLB; - ImplListBoxFloatingWindow* mpFloatWin; - ImplWin* mpImplWin; - ImplBtn* mpBtn; - sal_uInt16 mnDDHeight; - sal_uInt16 mnSaveValue; - sal_Bool mbDDAutoSize; - sal_Int32 m_nMaxWidthChars; - Link maSelectHdl; - Link maDoubleClickHdl; - sal_uInt16 mnLineCount; - -private: - SAL_DLLPRIVATE void ImplInitListBoxData(); - - DECL_DLLPRIVATE_LINK( ImplSelectHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplScrollHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplCancelHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplDoubleClickHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplClickBtnHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplPopupModeEndHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplSelectionChangedHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplUserDrawHdl, UserDrawEvent* ); - -protected: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - sal_Bool IsDropDownBox() const { return mpFloatWin ? sal_True : sal_False; } - -protected: - ListBox( WindowType nType ); - - virtual void FillLayoutData() const; - -public: - ListBox( Window* pParent, WinBits nStyle = WB_BORDER ); - ListBox( Window* pParent, const ResId& rResId ); - ~ListBox(); - - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual void UserDraw( const UserDrawEvent& rUDEvt ); - - virtual void Select(); - virtual void DoubleClick(); - virtual void GetFocus(); - virtual void LoseFocus(); - virtual Window* GetPreferredKeyInputWindow(); - - virtual const Wallpaper& GetDisplayBackground() const; - - virtual void setPosSizePixel( long nX, long nY, - long nWidth, long nHeight, sal_uInt16 nFlags = WINDOW_POSSIZE_ALL ); - void SetPosSizePixel( const Point& rNewPos, const Size& rNewSize ) - { Control::SetPosSizePixel( rNewPos, rNewSize ); } - void SetDropDownSizePixel( const Size& rNewSize ) - { if( IsDropDownBox() ) setPosSizePixel( 0, 0, rNewSize.Width(), rNewSize.Height(), WINDOW_POSSIZE_SIZE | WINDOW_POSSIZE_DROPDOWN ); } - - Rectangle GetDropDownPosSizePixel() const; - - void SetDropDownLineCount( sal_uInt16 nLines ); - sal_uInt16 GetDropDownLineCount() const; - - void EnableAutoSize( sal_Bool bAuto ); - sal_Bool IsAutoSizeEnabled() const { return mbDDAutoSize; } - - void EnableDDAutoWidth( sal_Bool b ); - - virtual sal_uInt16 InsertEntry( const XubString& rStr, sal_uInt16 nPos = LISTBOX_APPEND ); - virtual sal_uInt16 InsertEntry( const Image& rImage, sal_uInt16 nPos = LISTBOX_APPEND ); - virtual sal_uInt16 InsertEntry( const XubString& rStr, const Image& rImage, sal_uInt16 nPos = LISTBOX_APPEND ); - virtual void RemoveEntry( const XubString& rStr ); - virtual void RemoveEntry( sal_uInt16 nPos ); - - virtual void Clear(); - - virtual sal_uInt16 GetEntryPos( const XubString& rStr ) const; - virtual sal_uInt16 GetEntryPos( const void* pData ) const; - Image GetEntryImage( sal_uInt16 nPos ) const; - virtual XubString GetEntry( sal_uInt16 nPos ) const; - virtual sal_uInt16 GetEntryCount() const; - - virtual void SelectEntry( const XubString& rStr, sal_Bool bSelect = sal_True ); - virtual void SelectEntryPos( sal_uInt16 nPos, sal_Bool bSelect = sal_True ); - - virtual sal_uInt16 GetSelectEntryCount() const; - virtual XubString GetSelectEntry( sal_uInt16 nSelIndex = 0 ) const; - virtual sal_uInt16 GetSelectEntryPos( sal_uInt16 nSelIndex = 0 ) const; - - virtual sal_Bool IsEntrySelected( const XubString& rStr ) const; - virtual sal_Bool IsEntryPosSelected( sal_uInt16 nPos ) const; - virtual void SetNoSelection(); - - void SetEntryData( sal_uInt16 nPos, void* pNewData ); - void* GetEntryData( sal_uInt16 nPos ) const; - - /** this methods stores a combination of flags from the - LISTBOX_ENTRY_FLAG_* defines at the given entry. - See description of the possible LISTBOX_ENTRY_FLAG_* flags - for details. - Do not use these flags for user data as they are reserved - to change the internal behaviour of the ListBox implementation - for specific entries. - */ - void SetEntryFlags( sal_uInt16 nPos, long nFlags ); - - /** this methods gets the current combination of flags from the - LISTBOX_ENTRY_FLAG_* defines from the given entry. - See description of the possible LISTBOX_ENTRY_FLAG_* flags - for details. - */ - long GetEntryFlags( sal_uInt16 nPos ) const; - - void SetTopEntry( sal_uInt16 nPos ); - sal_uInt16 GetTopEntry() const; - - void SaveValue() { mnSaveValue = GetSelectEntryPos(); } - sal_uInt16 GetSavedValue() const { return mnSaveValue; } - - void SetSeparatorPos( sal_uInt16 n = LISTBOX_ENTRY_NOTFOUND ); - sal_uInt16 GetSeparatorPos() const; - - sal_Bool IsTravelSelect() const; - sal_Bool IsInDropDown() const; - void ToggleDropDown(); - - void EnableMultiSelection( sal_Bool bMulti, sal_Bool bStackSelection ); - void EnableMultiSelection( sal_Bool bMulti ); - sal_Bool IsMultiSelectionEnabled() const; - - void SetReadOnly( sal_Bool bReadOnly = sal_True ); - sal_Bool IsReadOnly() const; - - Rectangle GetBoundingRectangle( sal_uInt16 nItem ) const; - - void SetUserItemSize( const Size& rSz ); - - void EnableUserDraw( sal_Bool bUserDraw ); - - void DrawEntry( const UserDrawEvent& rEvt, sal_Bool bDrawImage, sal_Bool bDrawText, sal_Bool bDrawTextAtImagePos = sal_False ); - - void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } - const Link& GetSelectHdl() const { return maSelectHdl; } - void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; } - const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; } - - Size CalcSubEditSize() const; //size of area inside lstbox, i.e. no scrollbar/dropdown - Size CalcMinimumSize() const; //size of lstbox area, i.e. including scrollbar/dropdown - virtual Size GetOptimalSize() const; - Size CalcAdjustedSize( const Size& rPrefSize ) const; - Size CalcSize( sal_uInt16 nColumns, sal_uInt16 nLines ) const; - void GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines ) const; - - sal_uInt16 GetDisplayLineCount() const; - - void EnableMirroring(); - - /** checks whether a certain point lies within the bounds of - a listbox item and returns the item as well as the character position - the point is at. - - <p>If the point is inside an item the item pos is put into <code>rPos</code> and - the item-relative character index is returned. If the point is not inside - an item -1 is returned and rPos is unchanged.</p> - - @param rPoint - tells the point for which an item is requested. - - @param rPos - gets the item at the specified point <code>rPoint</code> - - @returns - the item-relative character index at point <code>rPos</code> or -1 - if no item is at that point. - */ - using Control::GetIndexForPoint; - long GetIndexForPoint( const Point& rPoint, sal_uInt16& rPos ) const; - - sal_Int32 getMaxWidthChars() const { return m_nMaxWidthChars; } - void setMaxWidthChars(sal_Int32 nWidth); - - virtual bool set_property(const OString &rKey, const OString &rValue); -}; - -// ---------------- -// - MultiListBox - -// ---------------- - -class VCL_DLLPUBLIC MultiListBox : public ListBox -{ -public: - using ListBox::SaveValue; - using ListBox::GetSavedValue; -private: - // Bei MultiListBox nicht erlaubt... - void SaveValue(); - sal_uInt16 GetSavedValue(); - -public: - MultiListBox( Window* pParent, WinBits nStyle = 0 ); - MultiListBox( Window* pParent, const ResId& rResId ); -}; - -#endif // _SV_LSTBOX_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/mapmod.hxx b/vcl/inc/vcl/mapmod.hxx deleted file mode 100644 index e6f30cf5089e..000000000000 --- a/vcl/inc/vcl/mapmod.hxx +++ /dev/null @@ -1,110 +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 . - */ - -#ifndef _SV_MAPMOD_HXX -#define _SV_MAPMOD_HXX - -#include <tools/gen.hxx> -#include <tools/fract.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <tools/resid.hxx> -#include <tools/mapunit.hxx> - -class SvStream; - -// -------------- -// - ImplMapMode - -// -------------- - -class OutputDevice; - -class ImplMapMode -{ - friend class MapMode; - friend class OutputDevice; - -private: - sal_uLong mnRefCount; - MapUnit meUnit; - Point maOrigin; - Fraction maScaleX; - Fraction maScaleY; - sal_Bool mbSimple; - - friend SvStream& operator>>( SvStream& rIStm, ImplMapMode& rMapMode ); - friend SvStream& operator<<( SvStream& rOStm, const ImplMapMode& rMapMode ); - - static ImplMapMode* ImplGetStaticMapMode( MapUnit eUnit ); -public: - ImplMapMode(); - ImplMapMode( const ImplMapMode& rImpMapMode ); -}; - -// ----------- -// - MapMode - -// ----------- - -class VCL_DLLPUBLIC MapMode -{ - friend class OutputDevice; - -private: - ImplMapMode* mpImplMapMode; - - SAL_DLLPRIVATE void ImplMakeUnique(); - -public: - MapMode(); - MapMode( const MapMode& rMapMode ); - MapMode( MapUnit eUnit ); - MapMode( MapUnit eUnit, const Point& rLogicOrg, - const Fraction& rScaleX, const Fraction& rScaleY ); - ~MapMode(); - - void SetMapUnit( MapUnit eUnit ); - MapUnit GetMapUnit() const - { return mpImplMapMode->meUnit; } - - void SetOrigin( const Point& rOrigin ); - const Point& GetOrigin() const - { return mpImplMapMode->maOrigin; } - - void SetScaleX( const Fraction& rScaleX ); - const Fraction& GetScaleX() const - { return mpImplMapMode->maScaleX; } - void SetScaleY( const Fraction& rScaleY ); - const Fraction& GetScaleY() const - { return mpImplMapMode->maScaleY; } - - MapMode& operator=( const MapMode& rMapMode ); - sal_Bool operator==( const MapMode& rMapMode ) const; - sal_Bool operator!=( const MapMode& rMapMode ) const - { return !(MapMode::operator==( rMapMode )); } - sal_Bool IsDefault() const; - sal_Bool IsSameInstance( const MapMode& rMapMode ) const - { return (mpImplMapMode == rMapMode.mpImplMapMode); } - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, MapMode& rMapMode ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const MapMode& rMapMode ); -}; - -#endif // _SV_MAPMOD_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/menu.hxx b/vcl/inc/vcl/menu.hxx deleted file mode 100644 index c9bc3b538711..000000000000 --- a/vcl/inc/vcl/menu.hxx +++ /dev/null @@ -1,494 +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 . - */ - -#ifndef _SV_MENU_HXX -#define _SV_MENU_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <tools/rc.hxx> -#include <tools/resid.hxx> -#include <rsc/rsc-vcl-shared-types.hxx> -#include <vcl/bitmapex.hxx> -#include <tools/color.hxx> -#include <vcl/vclevent.hxx> -#include <com/sun/star/uno/Reference.hxx> - -struct MenuItemData; -class Point; -class Size; -class Rectangle; -class Menu; -class MenuItemList; -class HelpEvent; -class Image; -class PopupMenu; -class KeyCode; -class KeyEvent; -class MenuFloatingWindow; -class Window; -class SalMenu; -struct SystemMenuData; - -namespace com { -namespace sun { -namespace star { -namespace accessibility { - class XAccessible; -}}}} - -namespace vcl { struct MenuLayoutData; } - -// -------------- -// - Menu-Types - -// -------------- - -#define MENU_APPEND ((sal_uInt16)0xFFFF) -#define MENU_ITEM_NOTFOUND ((sal_uInt16)0xFFFF) - -#define POPUPMENU_EXECUTE_DOWN ((sal_uInt16)0x0001) -#define POPUPMENU_EXECUTE_UP ((sal_uInt16)0x0002) -#define POPUPMENU_EXECUTE_LEFT ((sal_uInt16)0x0004) -#define POPUPMENU_EXECUTE_RIGHT ((sal_uInt16)0x0008) - -#define POPUPMENU_NOMOUSEUPCLOSE ((sal_uInt16)0x0010) - -#define MENU_FLAG_NOAUTOMNEMONICS 0x0001 -#define MENU_FLAG_HIDEDISABLEDENTRIES 0x0002 - -// overrides default hiding of disabled entries in popup menus -#define MENU_FLAG_ALWAYSSHOWDISABLEDENTRIES 0x0004 - -struct ImplMenuDelData -{ - ImplMenuDelData* mpNext; - const Menu* mpMenu; - - ImplMenuDelData( const Menu* pMenu ); - ~ImplMenuDelData(); - - bool isDeleted() const { return mpMenu == 0; } -}; - -// -------- -// - Menu - -// -------- - -struct MenuLogo -{ - BitmapEx aBitmap; - Color aStartColor; - Color aEndColor; -}; - -class VCL_DLLPUBLIC Menu : public Resource -{ - friend class MenuBar; - friend class MenuBarWindow; - friend class MenuButton; - friend class MenuFloatingWindow; - friend class PopupMenu; - friend class SystemWindow; - friend struct ImplMenuDelData; -private: - ImplMenuDelData* mpFirstDel; - MenuItemList* pItemList; // Liste mit den MenuItems - MenuLogo* pLogo; - Menu* pStartedFrom; - Window* pWindow; - - Link aActivateHdl; // Active-Handler - Link aDeactivateHdl; // Deactivate-Handler - Link aHighlightHdl; // Highlight-Handler - Link aSelectHdl; // Highlight-Handler - - VclEventListeners maEventListeners; - VclEventListeners maChildEventListeners; - - OUString aTitleText; // PopupMenu text - - sal_uLong nEventId; - sal_uInt16 mnHighlightedItemPos; // for native menus: keeps track of the highlighted item - sal_uInt16 nMenuFlags; - sal_uInt16 nDefaultItem; // Id of default item - sal_uInt16 nSelectedId; - - // for output: - sal_uInt16 nImgOrChkPos; - sal_uInt16 nTextPos; - - sal_Bool bIsMenuBar : 1, // Is this a menubar? - bCanceled : 1, // Terminated during a callback - bInCallback : 1, // In Activate/Deactivate - bKilled : 1; // Killed... - - ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > mxAccessible; - mutable vcl::MenuLayoutData* mpLayoutData; - SalMenu* mpSalMenu; - -protected: - SAL_DLLPRIVATE void ImplInit(); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE Menu* ImplGetStartMenu(); - SAL_DLLPRIVATE Menu* ImplFindSelectMenu(); - SAL_DLLPRIVATE Menu* ImplFindMenu( sal_uInt16 nId ); - SAL_DLLPRIVATE Size ImplCalcSize( Window* pWin ); - SAL_DLLPRIVATE sal_Bool ImplIsVisible( sal_uInt16 nPos ) const; - SAL_DLLPRIVATE sal_Bool ImplIsSelectable( sal_uInt16 nPos ) const; - SAL_DLLPRIVATE sal_uInt16 ImplGetVisibleItemCount() const; - SAL_DLLPRIVATE sal_uInt16 ImplGetFirstVisible() const; - SAL_DLLPRIVATE sal_uInt16 ImplGetPrevVisible( sal_uInt16 nPos ) const; - SAL_DLLPRIVATE sal_uInt16 ImplGetNextVisible( sal_uInt16 nPos ) const; - SAL_DLLPRIVATE void ImplPaint( Window* pWin, sal_uInt16 nBorder, long nOffY = 0, MenuItemData* pThisDataOnly = 0, sal_Bool bHighlighted = sal_False, bool bLayout = false ) const; - SAL_DLLPRIVATE void ImplSelect(); - SAL_DLLPRIVATE void ImplCallHighlight( sal_uInt16 nHighlightItem ); - SAL_DLLPRIVATE void ImplCallEventListeners( sal_uLong nEvent, sal_uInt16 nPos ); - DECL_DLLPRIVATE_LINK( ImplCallSelect, void* ); - - SAL_DLLPRIVATE void ImplFillLayoutData() const; - SAL_DLLPRIVATE SalMenu* ImplGetSalMenu() { return mpSalMenu; } - SAL_DLLPRIVATE void ImplSetSalMenu( SalMenu *pMenu ); - SAL_DLLPRIVATE const XubString& ImplGetHelpText( sal_uInt16 nItemId ) const; - - // returns native check and option menu symbol height in rCheckHeight and rRadioHeight - // return value is maximum width and height of checkboxes and radiobuttons - SAL_DLLPRIVATE Size ImplGetNativeCheckAndRadioSize( Window*, long& rCheckHeight, long& rRadioHeight ) const; - - // returns native submenu arrow size and spacing from right border - // return value is whether it's supported natively - SAL_DLLPRIVATE sal_Bool ImplGetNativeSubmenuArrowSize( Window* pWin, Size& rArrowSize, long& rArrowSpacing ) const; - - SAL_DLLPRIVATE void ImplAddDel( ImplMenuDelData &rDel ); - SAL_DLLPRIVATE void ImplRemoveDel( ImplMenuDelData &rDel ); -public: - SAL_DLLPRIVATE void ImplKillLayoutData() const; - SAL_DLLPRIVATE Menu* ImplGetStartedFrom() const { return pStartedFrom; } - - Menu(); - Menu( sal_Bool bMenuBar ); - SAL_DLLPRIVATE Window* ImplGetWindow() const { return pWindow; } - void ImplSelectWithStart( Menu* pStartMenu = NULL ); - - public: - virtual ~Menu(); - - virtual void Activate(); - virtual void Deactivate(); - virtual void Highlight(); - virtual void Select(); - virtual void RequestHelp( const HelpEvent& rHEvt ); - - void InsertItem( sal_uInt16 nItemId, const XubString& rStr, - MenuItemBits nItemBits = 0, - const OString &rIdent = OString(), - sal_uInt16 nPos = MENU_APPEND ); - void InsertItem( sal_uInt16 nItemId, const Image& rImage, - MenuItemBits nItemBits = 0, - const OString &rIdent = OString(), - sal_uInt16 nPos = MENU_APPEND ); - void InsertItem( sal_uInt16 nItemId, - const XubString& rString, const Image& rImage, - MenuItemBits nItemBits = 0, - const OString &rIdent = OString(), - sal_uInt16 nPos = MENU_APPEND ); - void InsertItem( const ResId& rResId, sal_uInt16 nPos = MENU_APPEND ); - void InsertSeparator( const OString &rIdent = OString(), - sal_uInt16 nPos = MENU_APPEND ); - void RemoveItem( sal_uInt16 nPos ); - void CopyItem( const Menu& rMenu, sal_uInt16 nPos, - sal_uInt16 nNewPos = MENU_APPEND ); - void Clear(); - - void CreateAutoMnemonics(); - - void SetMenuFlags( sal_uInt16 nFlags ) { nMenuFlags = nFlags; } - sal_uInt16 GetMenuFlags() const { return nMenuFlags; } - - sal_uInt16 GetItemCount() const; - sal_uInt16 GetItemId(sal_uInt16 nPos) const; - sal_uInt16 GetItemId(const OString &rIdent) const; - sal_uInt16 GetItemPos( sal_uInt16 nItemId ) const; - OString GetItemIdent(sal_uInt16 nItemId) const; - MenuItemType GetItemType( sal_uInt16 nPos ) const; - sal_uInt16 GetCurItemId() const; - OString GetCurItemIdent() const; - - void SetDefaultItem( sal_uInt16 nItemId ) { nDefaultItem = nItemId; } - sal_uInt16 GetDefaultItem() const { return nDefaultItem; } - - void SetItemBits( sal_uInt16 nItemId, MenuItemBits nBits ); - MenuItemBits GetItemBits( sal_uInt16 nItemId ) const; - - void SetUserValue( sal_uInt16 nItemId, sal_uLong nValue ); - sal_uLong GetUserValue( sal_uInt16 nItemId ) const; - - void SetPopupMenu( sal_uInt16 nItemId, PopupMenu* pMenu ); - PopupMenu* GetPopupMenu( sal_uInt16 nItemId ) const; - - void SetAccelKey( sal_uInt16 nItemId, const KeyCode& rKeyCode ); - KeyCode GetAccelKey( sal_uInt16 nItemId ) const; - - void CheckItem( sal_uInt16 nItemId, sal_Bool bCheck = sal_True ); - sal_Bool IsItemChecked( sal_uInt16 nItemId ) const; - - void SelectItem( sal_uInt16 nItemId ); - void DeSelect() { SelectItem( 0xFFFF ); } // MENUITEMPOS_INVALID - - void EnableItem( sal_uInt16 nItemId, sal_Bool bEnable = sal_True ); - void EnableItem(const OString &rIdent, bool bEnable = true) - { - EnableItem(GetItemId(rIdent), bEnable); - } - sal_Bool IsItemEnabled( sal_uInt16 nItemId ) const; - - void ShowItem( sal_uInt16 nItemId, sal_Bool bVisible = sal_True ); - void HideItem( sal_uInt16 nItemId ) { ShowItem( nItemId, sal_False ); } - - sal_Bool IsItemPosVisible( sal_uInt16 nItemPos ) const; - sal_Bool IsMenuVisible() const; - sal_Bool IsMenuBar() const { return bIsMenuBar; } - - void RemoveDisabledEntries( sal_Bool bCheckPopups = sal_True, sal_Bool bRemoveEmptyPopups = sal_False ); - sal_Bool HasValidEntries( sal_Bool bCheckPopups = sal_True ); - - void SetItemText( sal_uInt16 nItemId, const XubString& rStr ); - XubString GetItemText( sal_uInt16 nItemId ) const; - - void SetItemImage( sal_uInt16 nItemId, const Image& rImage ); - Image GetItemImage( sal_uInt16 nItemId ) const; - void SetItemImageAngle( sal_uInt16 nItemId, long nAngle10 ); - long GetItemImageAngle( sal_uInt16 nItemId ) const; - void SetItemImageMirrorMode( sal_uInt16 nItemId, sal_Bool bMirror ); - sal_Bool GetItemImageMirrorMode( sal_uInt16 ) const; - - void SetItemCommand( sal_uInt16 nItemId, const XubString& rCommand ); - const XubString& GetItemCommand( sal_uInt16 nItemId ) const; - - void SetHelpText( sal_uInt16 nItemId, const XubString& rString ); - const XubString& GetHelpText( sal_uInt16 nItemId ) const; - - void SetTipHelpText( sal_uInt16 nItemId, const XubString& rString ); - const XubString& GetTipHelpText( sal_uInt16 nItemId ) const; - - void SetHelpCommand( sal_uInt16 nItemId, const XubString& rString ); - const XubString& GetHelpCommand( sal_uInt16 nItemId ) const; - - void SetHelpId( sal_uInt16 nItemId, const OString& rHelpId ); - OString GetHelpId( sal_uInt16 nItemId ) const; - - void SetActivateHdl( const Link& rLink ) { aActivateHdl = rLink; } - const Link& GetActivateHdl() const { return aActivateHdl; } - - void SetDeactivateHdl( const Link& rLink ) { aDeactivateHdl = rLink; } - const Link& GetDeactivateHdl() const { return aDeactivateHdl; } - - void SetHighlightHdl( const Link& rLink ) { aHighlightHdl = rLink; } - const Link& GetHighlightHdl() const { return aHighlightHdl; } - - void SetSelectHdl( const Link& rLink ) { aSelectHdl = rLink; } - const Link& GetSelectHdl() const { return aSelectHdl; } - - void SetLogo( const MenuLogo& rLogo ); - void SetLogo(); - sal_Bool HasLogo() const { return pLogo ? sal_True : sal_False; } - MenuLogo GetLogo() const; - - void AddEventListener( const Link& rEventListener ); - void RemoveEventListener( const Link& rEventListener ); - void AddChildEventListener( const Link& rEventListener ); - void RemoveChildEventListener( const Link& rEventListener ); - - Menu& operator =( const Menu& rMenu ); - - // Fuer Menu-'Funktionen' - MenuItemList* GetItemList() const { return pItemList; } - - // returns the system's menu handle if native menus are supported - // pData must point to a SystemMenuData structure - sal_Bool GetSystemMenuData( SystemMenuData* pData ) const; - - // accessibility helpers - - // returns the bounding box for the character at index nIndex - // where nIndex is relative to the starting index of the item - // with id nItemId (in coordinates of the displaying window) - Rectangle GetCharacterBounds( sal_uInt16 nItemId, long nIndex ) const; - // -1 is returned if no character is at that point - // if an index is found the corresponding item id is filled in (else 0) - long GetIndexForPoint( const Point& rPoint, sal_uInt16& rItemID ) const; - // returns the bounding rectangle for an item at pos nItemPos - Rectangle GetBoundingRectangle( sal_uInt16 nItemPos ) const; - - ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetAccessible(); - void SetAccessible( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxAccessible ); - - // gets the activation key of the specified item - KeyEvent GetActivationKey( sal_uInt16 nItemId ) const; - - Window* GetWindow() const { return pWindow; } - - void SetAccessibleName( sal_uInt16 nItemId, const XubString& rStr ); - XubString GetAccessibleName( sal_uInt16 nItemId ) const; - - // returns whether the item a position nItemPos is highlighted or not. - bool IsHighlighted( sal_uInt16 nItemPos ) const; - - void HighlightItem( sal_uInt16 nItemPos ); - void DeHighlight() { HighlightItem( 0xFFFF ); } // MENUITEMPOS_INVALID -}; - -// ----------- -// - MenuBar - -// ----------- - -class VCL_DLLPUBLIC MenuBar : public Menu -{ - Link maCloserHdl; - Link maFloatHdl; - Link maHideHdl; - sal_Bool mbCloserVisible; - sal_Bool mbFloatBtnVisible; - sal_Bool mbHideBtnVisible; - sal_Bool mbDisplayable; - - friend class Application; - friend class Menu; - friend class MenuBarWindow; - friend class MenuFloatingWindow; - friend class SystemWindow; - - SAL_DLLPRIVATE static Window* ImplCreate( Window* pParent, Window* pWindow, MenuBar* pMenu ); - SAL_DLLPRIVATE static void ImplDestroy( MenuBar* pMenu, sal_Bool bDelete ); - SAL_DLLPRIVATE sal_Bool ImplHandleKeyEvent( const KeyEvent& rKEvent, sal_Bool bFromMenu = sal_True ); - -public: - MenuBar(); - MenuBar( const MenuBar& rMenu ); - ~MenuBar(); - - MenuBar& operator =( const MenuBar& rMenu ); - - void ShowCloser( sal_Bool bShow = sal_True ); - sal_Bool HasCloser() const { return mbCloserVisible; } - sal_Bool HasFloatButton() const { return mbFloatBtnVisible; } - sal_Bool HasHideButton() const { return mbHideBtnVisible; } - void ShowButtons( sal_Bool bClose, sal_Bool bFloat, sal_Bool bHide ); - - void SelectEntry( sal_uInt16 nId ); - sal_Bool HandleMenuActivateEvent( Menu *pMenu ) const; - sal_Bool HandleMenuDeActivateEvent( Menu *pMenu ) const; - sal_Bool HandleMenuHighlightEvent( Menu *pMenu, sal_uInt16 nEventId ) const; - sal_Bool HandleMenuCommandEvent( Menu *pMenu, sal_uInt16 nEventId ) const; - sal_Bool HandleMenuButtonEvent( Menu *pMenu, sal_uInt16 nEventId ) const; - - void SetCloserHdl( const Link& rLink ) { maCloserHdl = rLink; } - const Link& GetCloserHdl() const { return maCloserHdl; } - void SetFloatButtonClickHdl( const Link& rLink ) { maFloatHdl = rLink; } - const Link& GetFloatButtonClickHdl() const { return maFloatHdl; } - void SetHideButtonClickHdl( const Link& rLink ) { maHideHdl = rLink; } - const Link& GetHideButtonClickHdl() const { return maHideHdl; } - - // - by default a menubar is displayable - // - if a menubar is not displayable, its MenuBarWindow will never be shown - // and it will be hidden if it was visible before - // - note: if a menubar is diplayable, this does not necessarily mean that it is currently visible - void SetDisplayable( sal_Bool bDisplayable ); - sal_Bool IsDisplayable() const { return mbDisplayable; } - - struct MenuBarButtonCallbackArg - { - sal_uInt16 nId; // Id of the button - bool bHighlight; // highlight on/off - MenuBar* pMenuBar; // menubar the button belongs to - }; - // add an arbitrary button to the menubar (will appear next to closer) - // passed link will be call with a MenuBarButtonCallbackArg on press - // passed string will be set as tooltip - sal_uInt16 AddMenuBarButton( const Image&, const Link&, const String&, sal_uInt16 nPos = 0 ); - // set the highlight link for additional button with ID nId - // highlight link will be called with a MenuBarButtonHighlightArg - // the bHighlight member of that struct shall contain the new state - void SetMenuBarButtonHighlightHdl( sal_uInt16 nId, const Link& ); - // returns the rectangle occupied by the additional button named nId - // coordinates are relative to the systemwindiow the menubar is attached to - // if the menubar is unattached an empty rectangle is returned - Rectangle GetMenuBarButtonRectPixel( sal_uInt16 nId ); - void RemoveMenuBarButton( sal_uInt16 nId ); -}; - -inline MenuBar& MenuBar::operator =( const MenuBar& rMenu ) -{ - Menu::operator =( rMenu ); - return *this; -} - - -// ------------- -// - PopupMenu - -// ------------- - -class VCL_DLLPUBLIC PopupMenu : public Menu -{ - friend class Menu; - friend class MenuFloatingWindow; - friend class MenuBarWindow; - friend struct MenuItemData; - -private: - Menu** pRefAutoSubMenu; // keeps track if a pointer to this Menu is stored in the MenuItemData - - SAL_DLLPRIVATE MenuFloatingWindow* ImplGetFloatingWindow() const { return (MenuFloatingWindow*)Menu::ImplGetWindow(); } - -protected: - SAL_DLLPRIVATE sal_uInt16 ImplExecute( Window* pWindow, const Rectangle& rRect, sal_uLong nPopupFlags, Menu* pStaredFrom, sal_Bool bPreSelectFirst ); - SAL_DLLPRIVATE long ImplCalcHeight( sal_uInt16 nEntries ) const; - SAL_DLLPRIVATE sal_uInt16 ImplCalcVisEntries( long nMaxHeight, sal_uInt16 nStartEntry = 0, sal_uInt16* pLastVisible = NULL ) const; - -public: - PopupMenu(); - PopupMenu( const PopupMenu& rMenu ); - PopupMenu( const ResId& rResId ); - ~PopupMenu(); - - void SetText( const OUString& rTitle ) { aTitleText = rTitle; } - const OUString& GetText() const { return aTitleText; } - - sal_uInt16 Execute( Window* pWindow, const Point& rPopupPos ); - sal_uInt16 Execute( Window* pWindow, const Rectangle& rRect, sal_uInt16 nFlags = 0 ); - - // Fuer das TestTool - void EndExecute( sal_uInt16 nSelect = 0 ); - void SelectEntry( sal_uInt16 nId ); - void SetSelectedEntry( sal_uInt16 nId ); // for use by native submenu only - - static sal_Bool IsInExecute(); - static PopupMenu* GetActivePopupMenu(); - - PopupMenu& operator =( const PopupMenu& rMenu ); -}; - -inline PopupMenu& PopupMenu::operator =( const PopupMenu& rMenu ) -{ - Menu::operator =( rMenu ); - return *this; -} - -#endif // _SV_MENU_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/menubtn.hxx b/vcl/inc/vcl/menubtn.hxx deleted file mode 100644 index 4036ee9059b1..000000000000 --- a/vcl/inc/vcl/menubtn.hxx +++ /dev/null @@ -1,98 +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 . - */ - -#ifndef _SV_MENUBTN_HXX -#define _SV_MENUBTN_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/button.hxx> - -class Timer; -class PopupMenu; -class VclBuilder; -class VclSimpleEvent; - -// -------------------- -// - MenuButton-Types - -// -------------------- - -#define MENUBUTTON_MENUMODE_TIMED ((sal_uInt16)0x0001) - -// -------------- -// - MenuButton - -// -------------- - -class VCL_DLLPUBLIC MenuButton : public PushButton -{ -private: - friend class VclBuilder; - - Rectangle maFocusRect; - Timer* mpMenuTimer; - PopupMenu* mpOwnMenu; - PopupMenu* mpMenu; - sal_uInt16 mnCurItemId; - sal_uInt16 mnMenuMode; - Link maActivateHdl; - Link maSelectHdl; - - SAL_DLLPRIVATE void ImplInitMenuButtonData(); - SAL_DLLPRIVATE void ImplExecuteMenu(); - DECL_DLLPRIVATE_LINK( ImplMenuTimeoutHdl, void* ); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE MenuButton( const MenuButton & ); - SAL_DLLPRIVATE MenuButton& operator=( const MenuButton & ); - -protected: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - MenuButton( Window* pParent, WinBits nStyle = 0 ); - MenuButton( Window* pParent, const ResId& rResId ); - ~MenuButton(); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void KeyInput( const KeyEvent& rKEvt ); - - virtual void Activate(); - virtual void Select(); - - void SetMenuMode( sal_uInt16 nMode ); - sal_uInt16 GetMenuMode() const { return mnMenuMode; } - - void SetPopupMenu( PopupMenu* pNewMenu ); - PopupMenu* GetPopupMenu() const { return mpMenu; } - - sal_uInt16 GetCurItemId() const { return mnCurItemId; } - OString GetCurItemIdent() const; - void SetCurItemId( sal_uInt16 nItemId ) { mnCurItemId = nItemId; } - - void SetActivateHdl( const Link& rLink ) { maActivateHdl = rLink; } - const Link& GetActivateHdl() const { return maActivateHdl; } - void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } - const Link& GetSelectHdl() const { return maSelectHdl; } -}; - -#endif // _SV_MENUBTN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/metaact.hxx b/vcl/inc/vcl/metaact.hxx deleted file mode 100644 index 961baaecd1ff..000000000000 --- a/vcl/inc/vcl/metaact.hxx +++ /dev/null @@ -1,1319 +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 . - */ - -#ifndef _SV_METAACT_HXX -#define _SV_METAACT_HXX - -#include <vcl/dllapi.h> -#include <vcl/gradient.hxx> -#include <vcl/hatch.hxx> -#include <vcl/wall.hxx> -#include <vcl/font.hxx> -#include <tools/poly.hxx> -#include <vcl/bitmap.hxx> -#include <vcl/bitmapex.hxx> -#include <vcl/region.hxx> -#include <vcl/graph.hxx> -#include <vcl/outdev.hxx> -#include <vcl/gdimtf.hxx> -#include <vcl/gfxlink.hxx> -#include <vcl/lineinfo.hxx> - -class SvStream; - -#define META_NULL_ACTION (0) -#define META_PIXEL_ACTION (100) -#define META_POINT_ACTION (101) -#define META_LINE_ACTION (102) -#define META_RECT_ACTION (103) -#define META_ROUNDRECT_ACTION (104) -#define META_ELLIPSE_ACTION (105) -#define META_ARC_ACTION (106) -#define META_PIE_ACTION (107) -#define META_CHORD_ACTION (108) -#define META_POLYLINE_ACTION (109) -#define META_POLYGON_ACTION (110) -#define META_POLYPOLYGON_ACTION (111) -#define META_TEXT_ACTION (112) -#define META_TEXTARRAY_ACTION (113) -#define META_STRETCHTEXT_ACTION (114) -#define META_TEXTRECT_ACTION (115) -#define META_BMP_ACTION (116) -#define META_BMPSCALE_ACTION (117) -#define META_BMPSCALEPART_ACTION (118) -#define META_BMPEX_ACTION (119) -#define META_BMPEXSCALE_ACTION (120) -#define META_BMPEXSCALEPART_ACTION (121) -#define META_MASK_ACTION (122) -#define META_MASKSCALE_ACTION (123) -#define META_MASKSCALEPART_ACTION (124) -#define META_GRADIENT_ACTION (125) -#define META_HATCH_ACTION (126) -#define META_WALLPAPER_ACTION (127) -#define META_CLIPREGION_ACTION (128) -#define META_ISECTRECTCLIPREGION_ACTION (129) -#define META_ISECTREGIONCLIPREGION_ACTION (130) -#define META_MOVECLIPREGION_ACTION (131) -#define META_LINECOLOR_ACTION (132) -#define META_FILLCOLOR_ACTION (133) -#define META_TEXTCOLOR_ACTION (134) -#define META_TEXTFILLCOLOR_ACTION (135) -#define META_TEXTALIGN_ACTION (136) -#define META_MAPMODE_ACTION (137) -#define META_FONT_ACTION (138) -#define META_PUSH_ACTION (139) -#define META_POP_ACTION (140) -#define META_RASTEROP_ACTION (141) -#define META_TRANSPARENT_ACTION (142) -#define META_EPS_ACTION (143) -#define META_REFPOINT_ACTION (144) -#define META_TEXTLINECOLOR_ACTION (145) -#define META_TEXTLINE_ACTION (146) -#define META_FLOATTRANSPARENT_ACTION (147) -#define META_GRADIENTEX_ACTION (148) -#define META_LAYOUTMODE_ACTION (149) -#define META_TEXTLANGUAGE_ACTION (150) -#define META_OVERLINECOLOR_ACTION (151) - -#define META_COMMENT_ACTION (512) - -struct ImplMetaReadData -{ - rtl_TextEncoding meActualCharSet; - - ImplMetaReadData() : - meActualCharSet( RTL_TEXTENCODING_ASCII_US ) - { - } -}; - -struct ImplMetaWriteData -{ - rtl_TextEncoding meActualCharSet; - - ImplMetaWriteData() : - meActualCharSet( RTL_TEXTENCODING_ASCII_US ) - { - } -}; - -#define DECL_META_ACTION( Name, nType ) \ - Meta##Name##Action(); \ -protected: \ - virtual ~Meta##Name##Action(); \ -public: \ - virtual void Execute( OutputDevice* pOut ); \ - virtual MetaAction* Clone(); \ - virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ); \ - virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ); - -#define IMPL_META_ACTION( Name, nType ) \ -Meta##Name##Action::Meta##Name##Action() : \ - MetaAction( nType ) {} \ -Meta##Name##Action::~Meta##Name##Action() {} - -class VCL_DLLPUBLIC MetaAction -{ -private: - sal_uLong mnRefCount; - sal_uInt16 mnType; - - virtual sal_Bool Compare( const MetaAction& ) const; - -protected: - virtual ~MetaAction(); - -public: - MetaAction(); - MetaAction( sal_uInt16 nType ); - - virtual void Execute( OutputDevice* pOut ); - - virtual MetaAction* Clone(); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ); - virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ); - - sal_uInt16 GetType() const { return mnType; } - sal_uLong GetRefCount() const { return mnRefCount; } - void ResetRefCount() { mnRefCount = 1; } - void Duplicate() { mnRefCount++; } - void Delete() { if ( 0 == --mnRefCount ) delete this; } - -public: - static MetaAction* ReadMetaAction( SvStream& rIStm, ImplMetaReadData* pData ); -}; - -class VCL_DLLPUBLIC MetaPixelAction : public MetaAction -{ -private: - Point maPt; - Color maColor; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Pixel, META_PIXEL_ACTION ) - - MetaPixelAction( const Point& rPt, const Color& rColor ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Point& GetPoint() const { return maPt; } - const Color& GetColor() const { return maColor; } -}; - -class VCL_DLLPUBLIC MetaPointAction : public MetaAction -{ -private: - Point maPt; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Point, META_POINT_ACTION ) - - MetaPointAction( const Point& rPt ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Point& GetPoint() const { return maPt; } -}; - -class VCL_DLLPUBLIC MetaLineAction : public MetaAction -{ -private: - - LineInfo maLineInfo; - Point maStartPt; - Point maEndPt; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Line, META_LINE_ACTION ) - - MetaLineAction( const Point& rStart, const Point& rEnd ); - MetaLineAction( const Point& rStart, const Point& rEnd, - const LineInfo& rLineInfo ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Point& GetStartPoint() const { return maStartPt; } - const Point& GetEndPoint() const { return maEndPt; } - const LineInfo& GetLineInfo() const { return maLineInfo; } -}; - -class VCL_DLLPUBLIC MetaRectAction : public MetaAction -{ -private: - - Rectangle maRect; - - virtual sal_Bool Compare( const MetaAction& ) const; -public: - DECL_META_ACTION( Rect, META_RECT_ACTION ) - - MetaRectAction( const Rectangle& rRect ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Rectangle& GetRect() const { return maRect; } -}; - -class VCL_DLLPUBLIC MetaRoundRectAction : public MetaAction -{ -private: - - Rectangle maRect; - sal_uInt32 mnHorzRound; - sal_uInt32 mnVertRound; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( RoundRect, META_ROUNDRECT_ACTION ) - - MetaRoundRectAction( const Rectangle& rRect, - sal_uInt32 nHorzRound, sal_uInt32 nVertRound ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Rectangle& GetRect() const { return maRect; } - sal_uInt32 GetHorzRound() const { return mnHorzRound; } - sal_uInt32 GetVertRound() const { return mnVertRound; } -}; - -class VCL_DLLPUBLIC MetaEllipseAction : public MetaAction -{ -private: - - Rectangle maRect; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Ellipse, META_ELLIPSE_ACTION ) - - MetaEllipseAction( const Rectangle& rRect ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Rectangle& GetRect() const { return maRect; } -}; - -class VCL_DLLPUBLIC MetaArcAction : public MetaAction -{ -private: - - Rectangle maRect; - Point maStartPt; - Point maEndPt; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Arc, META_ARC_ACTION ) - - MetaArcAction( const Rectangle& rRect, - const Point& rStart, const Point& rEnd ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Rectangle& GetRect() const { return maRect; } - const Point& GetStartPoint() const { return maStartPt; } - const Point& GetEndPoint() const { return maEndPt; } -}; - -class VCL_DLLPUBLIC MetaPieAction : public MetaAction -{ -private: - - Rectangle maRect; - Point maStartPt; - Point maEndPt; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Pie, META_PIE_ACTION ) - - MetaPieAction( const Rectangle& rRect, - const Point& rStart, const Point& rEnd ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Rectangle& GetRect() const { return maRect; } - const Point& GetStartPoint() const { return maStartPt; } - const Point& GetEndPoint() const { return maEndPt; } -}; - -class VCL_DLLPUBLIC MetaChordAction : public MetaAction -{ -private: - - Rectangle maRect; - Point maStartPt; - Point maEndPt; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Chord, META_CHORD_ACTION ) - - MetaChordAction( const Rectangle& rRect, - const Point& rStart, const Point& rEnd ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Rectangle& GetRect() const { return maRect; } - const Point& GetStartPoint() const { return maStartPt; } - const Point& GetEndPoint() const { return maEndPt; } -}; - -class VCL_DLLPUBLIC MetaPolyLineAction : public MetaAction -{ -private: - - LineInfo maLineInfo; - Polygon maPoly; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( PolyLine, META_POLYLINE_ACTION ) - - MetaPolyLineAction( const Polygon& rPoly ); - MetaPolyLineAction( const Polygon& rPoly, const LineInfo& rLineInfo ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Polygon& GetPolygon() const { return maPoly; } - const LineInfo& GetLineInfo() const { return maLineInfo; } -}; - -class VCL_DLLPUBLIC MetaPolygonAction : public MetaAction -{ -private: - - Polygon maPoly; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Polygon, META_POLYGON_ACTION ) - - MetaPolygonAction( const Polygon& rPoly ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Polygon& GetPolygon() const { return maPoly; } -}; - -class VCL_DLLPUBLIC MetaPolyPolygonAction : public MetaAction -{ -private: - - PolyPolygon maPolyPoly; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( PolyPolygon, META_POLYPOLYGON_ACTION ) - - MetaPolyPolygonAction( const PolyPolygon& rPolyPoly ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const PolyPolygon& GetPolyPolygon() const { return maPolyPoly; } -}; - -class VCL_DLLPUBLIC MetaTextAction : public MetaAction -{ -private: - - Point maPt; - OUString maStr; - sal_uInt16 mnIndex; - sal_uInt16 mnLen; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Text, META_TEXT_ACTION ) - - MetaTextAction( const Point& rPt, const OUString& rStr, - sal_uInt16 nIndex, sal_uInt16 nLen ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Point& GetPoint() const { return maPt; } - const OUString& GetText() const { return maStr; } - sal_uInt16 GetIndex() const { return mnIndex; } - sal_uInt16 GetLen() const { return mnLen; } -}; - -class VCL_DLLPUBLIC MetaTextArrayAction : public MetaAction -{ -private: - - Point maStartPt; - OUString maStr; - sal_Int32* mpDXAry; - sal_uInt16 mnIndex; - sal_uInt16 mnLen; - - virtual sal_Bool Compare( const MetaAction& ) const; - -protected: - virtual ~MetaTextArrayAction(); - -public: - MetaTextArrayAction(); - MetaTextArrayAction( const MetaTextArrayAction& rAction ); - MetaTextArrayAction( const Point& rStartPt, const OUString& rStr, - const sal_Int32* pDXAry, sal_uInt16 nIndex, - sal_uInt16 nLen ); - - virtual void Execute( OutputDevice* pOut ); - - virtual MetaAction* Clone(); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ); - virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ); - - const Point& GetPoint() const { return maStartPt; } - const OUString& GetText() const { return maStr; } - sal_uInt16 GetIndex() const { return mnIndex; } - sal_uInt16 GetLen() const { return mnLen; } - sal_Int32* GetDXArray() const { return mpDXAry; } -}; - -class VCL_DLLPUBLIC MetaStretchTextAction : public MetaAction -{ -private: - - Point maPt; - OUString maStr; - sal_uInt32 mnWidth; - sal_uInt16 mnIndex; - sal_uInt16 mnLen; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( StretchText, META_STRETCHTEXT_ACTION ) - - MetaStretchTextAction( const Point& rPt, sal_uInt32 nWidth, - const OUString& rStr, - sal_uInt16 nIndex, sal_uInt16 nLen ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Point& GetPoint() const { return maPt; } - const OUString& GetText() const { return maStr; } - sal_uInt32 GetWidth() const { return mnWidth; } - sal_uInt16 GetIndex() const { return mnIndex; } - sal_uInt16 GetLen() const { return mnLen; } -}; - -class VCL_DLLPUBLIC MetaTextRectAction : public MetaAction -{ -private: - - Rectangle maRect; - OUString maStr; - sal_uInt16 mnStyle; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( TextRect, META_TEXTRECT_ACTION ) - - MetaTextRectAction( const Rectangle& rRect, - const OUString& rStr, sal_uInt16 nStyle ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Rectangle& GetRect() const { return maRect; } - const OUString& GetText() const { return maStr; } - sal_uInt16 GetStyle() const { return mnStyle; } -}; - -class VCL_DLLPUBLIC MetaTextLineAction : public MetaAction -{ -private: - - Point maPos; - long mnWidth; - FontStrikeout meStrikeout; - FontUnderline meUnderline; - FontUnderline meOverline; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( TextLine, META_TEXTLINE_ACTION ) - - MetaTextLineAction( const Point& rPos, long nWidth, - FontStrikeout eStrikeout, - FontUnderline eUnderline, - FontUnderline eOverline ); - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Point& GetStartPoint() const { return maPos; } - long GetWidth() const { return mnWidth; } - FontStrikeout GetStrikeout() const { return meStrikeout; } - FontUnderline GetUnderline() const { return meUnderline; } - FontUnderline GetOverline() const { return meOverline; } -}; - -class VCL_DLLPUBLIC MetaBmpAction : public MetaAction -{ -private: - - Bitmap maBmp; - Point maPt; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Bmp, META_BMP_ACTION ) - - MetaBmpAction( const Point& rPt, const Bitmap& rBmp ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Bitmap& GetBitmap() const { return maBmp; } - const Point& GetPoint() const { return maPt; } -}; - -class VCL_DLLPUBLIC MetaBmpScaleAction : public MetaAction -{ -private: - - Bitmap maBmp; - Point maPt; - Size maSz; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( BmpScale, META_BMPSCALE_ACTION ) - - MetaBmpScaleAction( const Point& rPt, const Size& rSz, - const Bitmap& rBmp ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Bitmap& GetBitmap() const { return maBmp; } - const Point& GetPoint() const { return maPt; } - const Size& GetSize() const { return maSz; } -}; - -class VCL_DLLPUBLIC MetaBmpScalePartAction : public MetaAction -{ -private: - - Bitmap maBmp; - Point maDstPt; - Size maDstSz; - Point maSrcPt; - Size maSrcSz; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( BmpScalePart, META_BMPSCALEPART_ACTION ) - - MetaBmpScalePartAction( const Point& rDstPt, const Size& rDstSz, - const Point& rSrcPt, const Size& rSrcSz, - const Bitmap& rBmp ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Bitmap& GetBitmap() const { return maBmp; } - const Point& GetDestPoint() const { return maDstPt; } - const Size& GetDestSize() const { return maDstSz; } - const Point& GetSrcPoint() const { return maSrcPt; } - const Size& GetSrcSize() const { return maSrcSz; } -}; - -class VCL_DLLPUBLIC MetaBmpExAction : public MetaAction -{ -private: - - BitmapEx maBmpEx; - Point maPt; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( BmpEx, META_BMPEX_ACTION ) - - MetaBmpExAction( const Point& rPt, const BitmapEx& rBmpEx ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const BitmapEx& GetBitmapEx() const { return maBmpEx; } - const Point& GetPoint() const { return maPt; } -}; - -class VCL_DLLPUBLIC MetaBmpExScaleAction : public MetaAction -{ -private: - - BitmapEx maBmpEx; - Point maPt; - Size maSz; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( BmpExScale, META_BMPEXSCALE_ACTION ) - - MetaBmpExScaleAction( const Point& rPt, const Size& rSz, - const BitmapEx& rBmpEx ) ; - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const BitmapEx& GetBitmapEx() const { return maBmpEx; } - const Point& GetPoint() const { return maPt; } - const Size& GetSize() const { return maSz; } -}; - -class VCL_DLLPUBLIC MetaBmpExScalePartAction : public MetaAction -{ -private: - - BitmapEx maBmpEx; - Point maDstPt; - Size maDstSz; - Point maSrcPt; - Size maSrcSz; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( BmpExScalePart, META_BMPEXSCALEPART_ACTION ) - - MetaBmpExScalePartAction( const Point& rDstPt, const Size& rDstSz, - const Point& rSrcPt, const Size& rSrcSz, - const BitmapEx& rBmpEx ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const BitmapEx& GetBitmapEx() const { return maBmpEx; } - const Point& GetDestPoint() const { return maDstPt; } - const Size& GetDestSize() const { return maDstSz; } - const Point& GetSrcPoint() const { return maSrcPt; } - const Size& GetSrcSize() const { return maSrcSz; } -}; - -class VCL_DLLPUBLIC MetaMaskAction : public MetaAction -{ -private: - - Bitmap maBmp; - Color maColor; - Point maPt; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Mask, META_MASK_ACTION ) - - MetaMaskAction( const Point& rPt, - const Bitmap& rBmp, - const Color& rColor ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Bitmap& GetBitmap() const { return maBmp; } - const Color& GetColor() const { return maColor; } - const Point& GetPoint() const { return maPt; } -}; - -class VCL_DLLPUBLIC MetaMaskScaleAction : public MetaAction -{ -private: - - Bitmap maBmp; - Color maColor; - Point maPt; - Size maSz; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( MaskScale, META_MASKSCALE_ACTION ) - - MetaMaskScaleAction( const Point& rPt, const Size& rSz, - const Bitmap& rBmp, - const Color& rColor ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Bitmap& GetBitmap() const { return maBmp; } - const Color& GetColor() const { return maColor; } - const Point& GetPoint() const { return maPt; } - const Size& GetSize() const { return maSz; } -}; - -class VCL_DLLPUBLIC MetaMaskScalePartAction : public MetaAction -{ -private: - - Bitmap maBmp; - Color maColor; - Point maDstPt; - Size maDstSz; - Point maSrcPt; - Size maSrcSz; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( MaskScalePart, META_MASKSCALEPART_ACTION ) - - MetaMaskScalePartAction( const Point& rDstPt, const Size& rDstSz, - const Point& rSrcPt, const Size& rSrcSz, - const Bitmap& rBmp, - const Color& rColor ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Bitmap& GetBitmap() const { return maBmp; } - const Color& GetColor() const { return maColor; } - const Point& GetDestPoint() const { return maDstPt; } - const Size& GetDestSize() const { return maDstSz; } - const Point& GetSrcPoint() const { return maSrcPt; } - const Size& GetSrcSize() const { return maSrcSz; } -}; - -class VCL_DLLPUBLIC MetaGradientAction : public MetaAction -{ -private: - - Rectangle maRect; - Gradient maGradient; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Gradient, META_GRADIENT_ACTION ) - - MetaGradientAction( const Rectangle& rRect, const Gradient& rGradient ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Rectangle& GetRect() const { return maRect; } - const Gradient& GetGradient() const { return maGradient; } -}; - -class VCL_DLLPUBLIC MetaGradientExAction : public MetaAction -{ -private: - - PolyPolygon maPolyPoly; - Gradient maGradient; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( GradientEx, META_GRADIENTEX_ACTION ) - - MetaGradientExAction( const PolyPolygon& rPolyPoly, const Gradient& rGradient ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const PolyPolygon& GetPolyPolygon() const { return maPolyPoly; } - const Gradient& GetGradient() const { return maGradient; } -}; - -class VCL_DLLPUBLIC MetaHatchAction : public MetaAction -{ -private: - - PolyPolygon maPolyPoly; - Hatch maHatch; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Hatch, META_HATCH_ACTION ) - - MetaHatchAction( const PolyPolygon& rPolyPoly, const Hatch& rHatch ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const PolyPolygon& GetPolyPolygon() const { return maPolyPoly; } - const Hatch& GetHatch() const { return maHatch; } -}; - -class VCL_DLLPUBLIC MetaWallpaperAction : public MetaAction -{ -private: - - Rectangle maRect; - Wallpaper maWallpaper; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Wallpaper, META_WALLPAPER_ACTION ) - - MetaWallpaperAction( const Rectangle& rRect, - const Wallpaper& rPaper ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Rectangle& GetRect() const { return maRect; } - const Wallpaper& GetWallpaper() const { return maWallpaper; } -}; - -class VCL_DLLPUBLIC MetaClipRegionAction : public MetaAction -{ -private: - - Region maRegion; - sal_Bool mbClip; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( ClipRegion, META_CLIPREGION_ACTION ) - - MetaClipRegionAction( const Region& rRegion, sal_Bool bClip ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Region& GetRegion() const { return maRegion; } - sal_Bool IsClipping() const { return mbClip; } -}; - -class VCL_DLLPUBLIC MetaISectRectClipRegionAction : public MetaAction -{ -private: - - Rectangle maRect; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( ISectRectClipRegion, META_ISECTRECTCLIPREGION_ACTION ) - - MetaISectRectClipRegionAction( const Rectangle& rRect ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Rectangle& GetRect() const { return maRect; } -}; - -class VCL_DLLPUBLIC MetaISectRegionClipRegionAction : public MetaAction -{ -private: - - Region maRegion; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( ISectRegionClipRegion, META_ISECTREGIONCLIPREGION_ACTION ) - - MetaISectRegionClipRegionAction( const Region& rRegion ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const Region& GetRegion() const { return maRegion; } -}; - -class VCL_DLLPUBLIC MetaMoveClipRegionAction : public MetaAction -{ -private: - - long mnHorzMove; - long mnVertMove; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( MoveClipRegion, META_MOVECLIPREGION_ACTION ) - - MetaMoveClipRegionAction( long nHorzMove, long nVertMove ); - - virtual void Scale( double fScaleX, double fScaleY ); - - long GetHorzMove() const { return mnHorzMove; } - long GetVertMove() const { return mnVertMove; } -}; - -class VCL_DLLPUBLIC MetaLineColorAction : public MetaAction -{ -private: - - Color maColor; - sal_Bool mbSet; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( LineColor, META_LINECOLOR_ACTION ) - - MetaLineColorAction( const Color& rColor, sal_Bool bSet ); - - const Color& GetColor() const { return maColor; } - sal_Bool IsSetting() const { return mbSet; } -}; - -class VCL_DLLPUBLIC MetaFillColorAction : public MetaAction -{ -private: - - Color maColor; - sal_Bool mbSet; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( FillColor, META_FILLCOLOR_ACTION ) - - MetaFillColorAction( const Color& rColor, sal_Bool bSet ); - - const Color& GetColor() const { return maColor; } - sal_Bool IsSetting() const { return mbSet; } -}; - -class VCL_DLLPUBLIC MetaTextColorAction : public MetaAction -{ -private: - - Color maColor; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( TextColor, META_TEXTCOLOR_ACTION ) - - MetaTextColorAction( const Color& rColor ); - - const Color& GetColor() const { return maColor; } -}; - -class VCL_DLLPUBLIC MetaTextFillColorAction : public MetaAction -{ -private: - - Color maColor; - sal_Bool mbSet; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( TextFillColor, META_TEXTFILLCOLOR_ACTION ) - - MetaTextFillColorAction( const Color& rColor, sal_Bool bSet ); - - const Color& GetColor() const { return maColor; } - sal_Bool IsSetting() const { return mbSet; } -}; - -class VCL_DLLPUBLIC MetaTextLineColorAction : public MetaAction -{ -private: - - Color maColor; - sal_Bool mbSet; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( TextLineColor, META_TEXTLINECOLOR_ACTION ) - - MetaTextLineColorAction( const Color& rColor, sal_Bool bSet ); - - const Color& GetColor() const { return maColor; } - sal_Bool IsSetting() const { return mbSet; } -}; - -class VCL_DLLPUBLIC MetaOverlineColorAction : public MetaAction -{ -private: - - Color maColor; - sal_Bool mbSet; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( OverlineColor, META_OVERLINECOLOR_ACTION ) - - MetaOverlineColorAction( const Color& rColor, sal_Bool bSet ); - - const Color& GetColor() const { return maColor; } - sal_Bool IsSetting() const { return mbSet; } -}; - -class VCL_DLLPUBLIC MetaTextAlignAction : public MetaAction -{ -private: - - TextAlign maAlign; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( TextAlign, META_TEXTALIGN_ACTION ) - - MetaTextAlignAction( TextAlign aAlign ); - - TextAlign GetTextAlign() const { return maAlign; } -}; - -class VCL_DLLPUBLIC MetaMapModeAction : public MetaAction -{ -private: - - MapMode maMapMode; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( MapMode, META_MAPMODE_ACTION ) - - MetaMapModeAction( const MapMode& rMapMode ); - - virtual void Scale( double fScaleX, double fScaleY ); - - const MapMode& GetMapMode() const { return maMapMode; } -}; - -class VCL_DLLPUBLIC MetaFontAction : public MetaAction -{ -private: - - Font maFont; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Font, META_FONT_ACTION ) - - MetaFontAction( const Font& rFont ); - - virtual void Scale( double fScaleX, double fScaleY ); - - const Font& GetFont() const { return maFont; } -}; - -class VCL_DLLPUBLIC MetaPushAction : public MetaAction -{ -private: - - sal_uInt16 mnFlags; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Push, META_PUSH_ACTION ) - - MetaPushAction( sal_uInt16 nFlags ); - - sal_uInt16 GetFlags() const { return mnFlags; } -}; - -class VCL_DLLPUBLIC MetaPopAction : public MetaAction -{ -public: - - DECL_META_ACTION( Pop, META_POP_ACTION ) -}; - -class VCL_DLLPUBLIC MetaRasterOpAction : public MetaAction -{ -private: - - RasterOp meRasterOp; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( RasterOp, META_RASTEROP_ACTION ) - - MetaRasterOpAction( RasterOp eRasterOp ); - - RasterOp GetRasterOp() const { return meRasterOp; } -}; - -class VCL_DLLPUBLIC MetaTransparentAction : public MetaAction -{ -private: - - PolyPolygon maPolyPoly; - sal_uInt16 mnTransPercent; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( Transparent, META_TRANSPARENT_ACTION ) - - MetaTransparentAction( const PolyPolygon& rPolyPoly, sal_uInt16 nTransPercent ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const PolyPolygon& GetPolyPolygon() const { return maPolyPoly; } - sal_uInt16 GetTransparence() const { return mnTransPercent; } -}; - -class VCL_DLLPUBLIC MetaFloatTransparentAction : public MetaAction -{ -private: - - GDIMetaFile maMtf; - Point maPoint; - Size maSize; - Gradient maGradient; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( FloatTransparent, META_FLOATTRANSPARENT_ACTION ) - - MetaFloatTransparentAction( const GDIMetaFile& rMtf, const Point& rPos, - const Size& rSize, const Gradient& rGradient ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const GDIMetaFile& GetGDIMetaFile() const { return maMtf; } - const Point& GetPoint() const { return maPoint; } - const Size& GetSize() const { return maSize; } - const Gradient& GetGradient() const { return maGradient; } -}; - -class VCL_DLLPUBLIC MetaEPSAction : public MetaAction -{ -private: - - GfxLink maGfxLink; - GDIMetaFile maSubst; - Point maPoint; - Size maSize; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( EPS, META_EPS_ACTION ) - - MetaEPSAction( const Point& rPoint, const Size& rSize, - const GfxLink& rGfxLink, const GDIMetaFile& rSubst ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - const GfxLink& GetLink() const { return maGfxLink; } - const GDIMetaFile& GetSubstitute() const { return maSubst; } - const Point& GetPoint() const { return maPoint; } - const Size& GetSize() const { return maSize; } -}; - -class VCL_DLLPUBLIC MetaRefPointAction : public MetaAction -{ -private: - - Point maRefPoint; - sal_Bool mbSet; - - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( RefPoint, META_REFPOINT_ACTION ) - - MetaRefPointAction( const Point& rRefPoint, sal_Bool bSet ); - - const Point& GetRefPoint() const { return maRefPoint; } - sal_Bool IsSetting() const { return mbSet; } -}; - -class VCL_DLLPUBLIC MetaCommentAction : public MetaAction -{ -private: - - OString maComment; - sal_Int32 mnValue; - sal_uInt32 mnDataSize; - sal_uInt8* mpData; - - SAL_DLLPRIVATE void ImplInitDynamicData( const sal_uInt8* pData, sal_uInt32 nDataSize ); - virtual sal_Bool Compare( const MetaAction& ) const; - -protected: - ~MetaCommentAction(); - -public: - MetaCommentAction( sal_Int32 nValue = 0L ); - MetaCommentAction( const MetaCommentAction& rAct ); - MetaCommentAction( const OString& rComment, sal_Int32 nValue = 0L, const sal_uInt8* pData = NULL, sal_uInt32 nDataSize = 0UL ); - - virtual void Move( long nHorzMove, long nVertMove ); - virtual void Scale( double fScaleX, double fScaleY ); - - virtual void Execute( OutputDevice* pOut ); - virtual MetaAction* Clone(); - virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ); - virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ); - - const OString& GetComment() const { return maComment; } - sal_Int32 GetValue() const { return mnValue; } - sal_uInt32 GetDataSize() const { return mnDataSize; } - const sal_uInt8* GetData() const { return mpData; } -}; - -class VCL_DLLPUBLIC MetaLayoutModeAction : public MetaAction -{ -private: - - sal_uInt32 mnLayoutMode; - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( LayoutMode, META_LAYOUTMODE_ACTION ) - - MetaLayoutModeAction( sal_uInt32 nLayoutMode ); - - sal_uInt32 GetLayoutMode() const { return mnLayoutMode; } -}; - -class VCL_DLLPUBLIC MetaTextLanguageAction : public MetaAction -{ -private: - - LanguageType meTextLanguage; - virtual sal_Bool Compare( const MetaAction& ) const; - -public: - DECL_META_ACTION( TextLanguage, META_TEXTLANGUAGE_ACTION ) - - MetaTextLanguageAction( LanguageType ); - - LanguageType GetTextLanguage() const { return meTextLanguage; } -}; - -#endif // _SV_METAACT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/metric.hxx b/vcl/inc/vcl/metric.hxx deleted file mode 100644 index 27108d756d2f..000000000000 --- a/vcl/inc/vcl/metric.hxx +++ /dev/null @@ -1,152 +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 . - */ - -#ifndef _SV_METRIC_HXX -#define _SV_METRIC_HXX - -#include <vcl/dllapi.h> -#include <vcl/font.hxx> - -class ImplFontMetric; -class ImplFontCharMap; - -typedef sal_uInt32 sal_UCS4; - -// ------------ -// - FontInfo - -// ------------ - -class VCL_DLLPUBLIC FontInfo : public Font -{ - friend class OutputDevice; - -protected: - ImplFontMetric* mpImplMetric; // Implementation - -public: - FontInfo(); - FontInfo( const FontInfo& ); - ~FontInfo(); - - FontType GetType() const; - - FontInfo& operator=( const FontInfo& ); - sal_Bool operator==( const FontInfo& ) const; - sal_Bool operator!=( const FontInfo& rInfo ) const - { return !operator==( rInfo ); } -}; - -// -------------- -// - FontMetric - -// -------------- - -class VCL_DLLPUBLIC FontMetric : public FontInfo -{ -public: - FontMetric() {} - FontMetric( const FontMetric& ); - ~FontMetric() {} - - long GetAscent() const; - long GetDescent() const; - long GetIntLeading() const; - long GetExtLeading() const; - long GetLineHeight() const; - long GetSlant() const; - - FontMetric& operator=( const FontMetric& rMetric ); - sal_Bool operator==( const FontMetric& rMetric ) const; - sal_Bool operator!=( const FontMetric& rMetric ) const - { return !operator==( rMetric ); } -}; - -// --------------- -// - FontCharMap - -// --------------- - -class VCL_DLLPUBLIC FontCharMap -{ -private: - const ImplFontCharMap* mpImpl; - -public: - FontCharMap(); - ~FontCharMap(); - - sal_Bool IsDefaultMap() const; - sal_Bool HasChar( sal_uInt32 ) const; - int CountCharsInRange( sal_uInt32 cMin, sal_uInt32 cMax ) const; - int GetCharCount() const; - - sal_uInt32 GetFirstChar() const; - - sal_uInt32 GetNextChar( sal_uInt32 ) const; - sal_uInt32 GetPrevChar( sal_uInt32 ) const; - - int GetIndexFromChar( sal_uInt32 ) const; - sal_uInt32 GetCharFromIndex( int ) const; - - -private: - friend class OutputDevice; - void Reset( const ImplFontCharMap* pNewMap = NULL ); - - // prevent assignment and copy construction - FontCharMap( const FontCharMap& ); - void operator=( const FontCharMap& ); -}; - -// ---------------- -// - TextRectInfo - -// ---------------- - -class VCL_DLLPUBLIC TextRectInfo -{ - friend class OutputDevice; - -private: - long mnMaxWidth; - sal_uInt16 mnLineCount; - sal_Bool mbEllipsis; - -public: - TextRectInfo(); - - sal_uInt16 GetLineCount() const { return mnLineCount; } - long GetMaxLineWidth() const { return mnMaxWidth; } - sal_Bool IsEllipses() const { return mbEllipsis; } - - sal_Bool operator ==( const TextRectInfo& rInfo ) const - { return ((mnMaxWidth == rInfo.mnMaxWidth) && - (mnLineCount == rInfo.mnLineCount) && - (mbEllipsis == rInfo.mbEllipsis)); } - sal_Bool operator !=( const TextRectInfo& rInfo ) const - { return !(TextRectInfo::operator==( rInfo )); } -}; - -inline TextRectInfo::TextRectInfo() -{ - mnMaxWidth = 0; - mnLineCount = 0; - mbEllipsis = sal_False; -} - -#endif // _SV_METRIC_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/mnemonic.hxx b/vcl/inc/vcl/mnemonic.hxx deleted file mode 100644 index 4ec22b5522a2..000000000000 --- a/vcl/inc/vcl/mnemonic.hxx +++ /dev/null @@ -1,82 +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 . - */ - -#ifndef _SV_MNEMONIC_HXX -#define _SV_MNEMONIC_HXX - -#include <vcl/dllapi.h> -#include <tools/string.hxx> -#include <com/sun/star/uno/Reference.h> -#include <com/sun/star/i18n/XCharacterClassification.hpp> - -// --------------------- -// - ImplMnemonicTypes - -// --------------------- - -// Mnemonic Chars, which we want support -// Latin 0-9 -#define MNEMONIC_RANGE_1_START 0x30 -#define MNEMONIC_RANGE_1_END 0x39 -// Latin A-Z -#define MNEMONIC_RANGE_2_START 0x41 -#define MNEMONIC_RANGE_2_END 0x5A -// Cyrillic -#define MNEMONIC_RANGE_3_START 0x0410 -#define MNEMONIC_RANGE_3_END 0x042F -// Greek -#define MNEMONIC_RANGE_4_START 0x0391 -#define MNEMONIC_RANGE_4_END 0x03AB -#define MNEMONIC_RANGES 4 -#define MAX_MNEMONICS ((MNEMONIC_RANGE_1_END-MNEMONIC_RANGE_1_START+1)+\ - (MNEMONIC_RANGE_2_END-MNEMONIC_RANGE_2_START+1)+\ - (MNEMONIC_RANGE_3_END-MNEMONIC_RANGE_3_START+1)+\ - (MNEMONIC_RANGE_4_END-MNEMONIC_RANGE_4_START+1)) - -#define MNEMONIC_CHAR ((sal_Unicode)'~') -#define MNEMONIC_INDEX_NOTFOUND ((sal_uInt16)0xFFFF) - -// ------------------------- -// - MnemonicGenerator - -// ------------------------- - -class VCL_DLLPUBLIC MnemonicGenerator -{ -private: - // 0 == Mnemonic; >0 == count of characters - sal_uInt8 maMnemonics[MAX_MNEMONICS]; - ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XCharacterClassification > mxCharClass; - -protected: - SAL_DLLPRIVATE sal_uInt16 ImplGetMnemonicIndex( sal_Unicode c ); - SAL_DLLPRIVATE sal_Unicode ImplFindMnemonic( const XubString& rKey ); - -public: - MnemonicGenerator(); - - void RegisterMnemonic( const XubString& rKey ); - sal_Bool CreateMnemonic( XubString& rKey ); - ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XCharacterClassification > GetCharClass(); - - // returns a string where all '~'-characters and CJK mnemonics of the form (~A) are completely removed - static String EraseAllMnemonicChars( const String& rStr ); -}; - -#endif // _SV_MNEMONIC_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/mnemonicengine.hxx b/vcl/inc/vcl/mnemonicengine.hxx deleted file mode 100644 index e1def2d8d98e..000000000000 --- a/vcl/inc/vcl/mnemonicengine.hxx +++ /dev/null @@ -1,154 +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 . - */ - -#ifndef VCL_MNEMONICENGINE_HXX -#define VCL_MNEMONICENGINE_HXX - -#include "dllapi.h" - -#include <sal/config.h> -#include <sal/types.h> - -#include <memory> - -class String; -class KeyEvent; - -//........................................................................ -namespace vcl -{ -//........................................................................ - - //==================================================================== - //= IMnemonicEntryList - //==================================================================== - /// callback for a MnemonicEngine - class SAL_NO_VTABLE VCL_DLLPUBLIC IMnemonicEntryList - { - public: - /** returns the first list entry for the mnemonic search - - @return - a pointer which can be used to unuquely identify the entry. - The MenomonicEngine itself does not use this value, it - is only passed to other methods of this callback interface. - - If this value is <NULL/>, searching stops. - */ - virtual const void* FirstSearchEntry( String& _rEntryText ) const = 0; - - /** returns the next list entry for the mnemonic search - - @return - a pointer which can be used to unuquely identify the entry. - The MenomonicEngine itself does not use this value, it - is only passed to other methods of this callback interface. - - If this value is <NULL/>, searching stops. - - If this value is the same as returned by the previous call - to <member>FirstSearchEntry</member> (i.e. you cycled - around), then searching stops, too. - */ - virtual const void* NextSearchEntry( const void* _pCurrentSearchEntry, String& _rEntryText ) const = 0; - - /** "selects" a given entry. - - Note: The semantics of "select" depends on your implementation. You - might actually really select the entry (in the sense of a selected - list box entry, for example), you might make it the current entry, - if your implementation supports this - whatever. - - @param _pEntry - the entry to select. This is the return value of a previous call - to <member>FirstSearchEntry</member> or <member>NextSearchEntry</member>. - */ - virtual void SelectSearchEntry( const void* _pEntry ) = 0; - - /** "executes" the current search entry, i.e. the one returned - in the previous <member>NextSearchEntry</member> call. - - Note: The semantics of "execute" depends on your implementation. You - might even have a list of entries which cannot be executed at all. - - This method is called after <member>SelectSearchEntry</member>, - if and only if the current entry's mnemonic is unambiguous. - - For instance, imagine a list which has two entries with the same mnemonic - character, say "c". Now if the user presses <code>Alt-C</code>, the MnemonicEngine - will call <member>SelectCurrentEntry</member> as soon as it encounters - the first entry, but it'll never call <member>ExecuteSearchEntry</member>. - - If, however, "c" is a unique mnemonic character in your entry list, then the - call of <member>SelectSearchEntry</member> will be followed by a - call to <member>ExecuteSearchEntry</member>. - - This way, you can implement cyclic selection of entries: In - <member>FirstSearchEntry</member>, return the entry which was previously - selected, and in <member>NextSearchEntry</member>, interlly cycle around - in your list. Then, multiple user inputs of <code>Alt-C</code> will - cycle through all entries with the mnemonic being "c". - - @param _pEntry - the entry to select. This is the return value of a previous call - to <member>FirstSearchEntry</member> or <member>NextSearchEntry</member>. - */ - virtual void ExecuteSearchEntry( const void* _pEntry ) const = 0; - - protected: - ~IMnemonicEntryList() {} - }; - - //==================================================================== - //= MnemonicEngine - //==================================================================== - struct MnemonicEngine_Data; - class VCL_DLLPUBLIC MnemonicEngine - { - ::std::auto_ptr< MnemonicEngine_Data > m_pData; - - public: - MnemonicEngine( IMnemonicEntryList& _rEntryList ); - ~MnemonicEngine(); - - /** handles a key event - - If the key event denotes pressing an accelerator key, then the - entry list is searched for a matching entry. If such an entry is - found, <member>IMnemonicEntryList::SelectSearchEntry</member> - is called. - - If the entry is the only one with the given mnemonic character, then - also <member>IMnemonicEntryList::ExecuteSearchEntry</member> - is called. - - @return - if the key event has been handled, and should thus not be processed - further. - */ - bool HandleKeyEvent( const KeyEvent& _rKEvt ); - }; - -//........................................................................ -} // namespace vcl -//........................................................................ - -#endif // VCL_MNEMONICENGINE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/morebtn.hxx b/vcl/inc/vcl/morebtn.hxx deleted file mode 100644 index a715f37357d7..000000000000 --- a/vcl/inc/vcl/morebtn.hxx +++ /dev/null @@ -1,88 +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 . - */ - -#ifndef _SV_MOREBTN_HXX -#define _SV_MOREBTN_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/mapmod.hxx> -#include <vcl/button.hxx> - -struct ImplMoreButtonData; - -// -------------- -// - MoreButton - -// -------------- - -class VCL_DLLPUBLIC MoreButton : public PushButton -{ -private: - ImplMoreButtonData* mpMBData; - sal_uLong mnDelta; - MapUnit meUnit; - sal_Bool mbState; - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE MoreButton( const MoreButton & ); - SAL_DLLPRIVATE MoreButton& operator=( const MoreButton & ); - SAL_DLLPRIVATE void ShowState(); - -protected: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - MoreButton( Window* pParent, WinBits nStyle = 0 ); - MoreButton( Window* pParent, const ResId& rResId ); - ~MoreButton(); - - void Click(); - - void AddWindow( Window* pWindow ); - - void SetDelta( sal_uLong nNewDelta ) { mnDelta = nNewDelta; } - sal_uLong GetDelta() const { return mnDelta; } - - void SetMapUnit( MapUnit eNewUnit = MAP_PIXEL ) { meUnit = eNewUnit; } - MapUnit GetMapUnit() const { return meUnit; } - - using PushButton::SetState; - void SetState( sal_Bool bNewState = sal_True ); - sal_Bool GetState() const { return mbState; } - - void SetText( const OUString& rNewText ); - OUString GetText() const; - - void SetMoreText( const OUString& rNewText ); - void SetLessText( const OUString& rNewText ); - OUString GetMoreText() const; - OUString GetLessText() const; -}; - -inline void MoreButton::SetState( sal_Bool bNewState ) -{ - if ( mbState != bNewState ) - Click(); -} - -#endif // _SV_MOREBTN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/msgbox.hxx b/vcl/inc/vcl/msgbox.hxx deleted file mode 100644 index 594d248a6acd..000000000000 --- a/vcl/inc/vcl/msgbox.hxx +++ /dev/null @@ -1,172 +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 . - */ - -#ifndef _SV_MSGBOX_HXX -#define _SV_MSGBOX_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/btndlg.hxx> -#include <vcl/image.hxx> -#include <vcl/bitmap.hxx> -class VclMultiLineEdit; -class FixedImage; -class CheckBox; - -// ----------------- -// - MessBox-Types - -// ----------------- - -// Return-Werte von Execute -//!!! bei Aenderungen \basic\source\runtime\methods.cxx msgbox anpassen - -#define RET_CANCEL 0 -#define RET_OK 1 -#define RET_YES 2 -#define RET_NO 3 -#define RET_RETRY 4 -#define RET_IGNORE 5 - -#define BUTTONID_OK RET_OK -#define BUTTONID_CANCEL RET_CANCEL -#define BUTTONID_YES RET_YES -#define BUTTONID_NO RET_NO -#define BUTTONID_RETRY RET_RETRY -#define BUTTONID_IGNORE RET_IGNORE -#define BUTTONID_HELP 10 - -// ----------- -// - MessBox - -// ----------- - -class VCL_DLLPUBLIC MessBox : public ButtonDialog -{ -protected: - VclMultiLineEdit* mpVCLMultiLineEdit; - FixedImage* mpFixedImage; - XubString maMessText; - Image maImage; - sal_Bool mbHelpBtn; - CheckBox* mpCheckBox; - XubString maCheckBoxText; - sal_Bool mbCheck; - - SAL_DLLPRIVATE void ImplInitMessBoxData(); - SAL_DLLPRIVATE void ImplInitButtons(); - SAL_DLLPRIVATE void ImplPosControls(); - -protected: - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - -public: - MessBox( Window* pParent, WinBits nStyle, - const XubString& rTitle, const XubString& rMessage ); - MessBox( Window* pParent, const ResId& rResId ); - ~MessBox(); - - virtual void StateChanged( StateChangedType nStateChange ); - - void SetMessText( const XubString& rText ) { maMessText = rText; } - const XubString& GetMessText() const { return maMessText; } - - void SetImage( const Image& rImage ) { maImage = rImage; } - const Image& GetImage() const { return maImage; } - - void SetCheckBoxText( const XubString& rText ) { maCheckBoxText = rText;} - const XubString& GetCheckBoxText() const { return maCheckBoxText;} - void SetCheckBoxState( sal_Bool bCheck ); - sal_Bool GetCheckBoxState() const; - - virtual Size GetOptimalSize() const; -}; - -// ----------- -// - InfoBox - -// ----------- - -class VCL_DLLPUBLIC InfoBox : public MessBox -{ -private: - SAL_DLLPRIVATE void ImplInitInfoBoxData(); - -public: - InfoBox( Window* pParent, const OUString& rMessage ); - InfoBox( Window* pParent, const ResId & rResId ); - - static Image GetStandardImage(); -}; - -// -------------- -// - WarningBox - -// -------------- - -class VCL_DLLPUBLIC WarningBox : public MessBox -{ -private: - SAL_DLLPRIVATE void ImplInitWarningBoxData(); - -public: - WarningBox( Window* pParent, WinBits nStyle, - const XubString& rMessage ); - WarningBox( Window* pParent, const ResId& rResId ); - - void SetDefaultCheckBoxText(); - - static Image GetStandardImage(); -}; - -// ------------ -// - ErrorBox - -// ------------ - -class VCL_DLLPUBLIC ErrorBox : public MessBox -{ -private: - SAL_DLLPRIVATE void ImplInitErrorBoxData(); - -public: - ErrorBox( Window* pParent, WinBits nStyle, - const XubString& rMessage ); - ErrorBox( Window* pParent, const ResId& rResId ); - - static Image GetStandardImage(); -}; - -// ------------ -// - QueryBox - -// ------------ - -class VCL_DLLPUBLIC QueryBox : public MessBox -{ -private: - SAL_DLLPRIVATE void ImplInitQueryBoxData(); - -public: - QueryBox( Window* pParent, WinBits nStyle, - const XubString& rMessage ); - QueryBox( Window* pParent, const ResId& rResId ); - - void SetDefaultCheckBoxText(); - - static Image GetStandardImage(); -}; - -#endif // _SV_MSGBOX_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/octree.hxx b/vcl/inc/vcl/octree.hxx deleted file mode 100644 index 7d1054db8156..000000000000 --- a/vcl/inc/vcl/octree.hxx +++ /dev/null @@ -1,127 +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 . - */ - -#ifndef _SV_OCTREE_HXX -#define _SV_OCTREE_HXX - -#include <vcl/salbtype.hxx> -#include <vcl/dllapi.h> - -#define OCTREE_BITS 5 -#define OCTREE_BITS_1 10 - -typedef struct OctreeNode -{ - sal_uLong nCount; - sal_uLong nRed; - sal_uLong nGreen; - sal_uLong nBlue; - OctreeNode* pChild[ 8 ]; - OctreeNode* pNext; - OctreeNode* pNextInCache; - sal_uInt16 nPalIndex; - sal_Bool bLeaf; -} NODE; - -typedef NODE* PNODE; -typedef PNODE* PPNODE; - -class ImpNodeCache; -class BitmapReadAccess; - -class VCL_PLUGIN_PUBLIC Octree -{ -private: - - BitmapPalette aPal; - sal_uLong nMax; - sal_uLong nLeafCount; - sal_uLong nLevel; - PNODE pTree; - PNODE pReduce[ OCTREE_BITS + 1 ]; - BitmapColor* pColor; - ImpNodeCache* pNodeCache; - const BitmapReadAccess* pAcc; - sal_uInt16 nPalIndex; - - Octree() {} - - void CreatePalette( PNODE pNode ); - void GetPalIndex( PNODE pNode ); - - SAL_DLLPRIVATE void ImplCreateOctree(); - SAL_DLLPRIVATE void ImplDeleteOctree( PPNODE ppNode ); - SAL_DLLPRIVATE void ImplAdd( PPNODE ppNode ); - SAL_DLLPRIVATE void ImplReduce(); - -public: - - Octree( const BitmapReadAccess& rReadAcc, sal_uLong nColors ); - ~Octree(); - - inline const BitmapPalette& GetPalette(); - inline sal_uInt16 GetBestPaletteIndex( const BitmapColor& rColor ); -}; - -inline const BitmapPalette& Octree::GetPalette() -{ - aPal.SetEntryCount( (sal_uInt16) nLeafCount ); - nPalIndex = 0; - CreatePalette( pTree ); - return aPal; -} - -inline sal_uInt16 Octree::GetBestPaletteIndex( const BitmapColor& rColor ) -{ - pColor = &(BitmapColor&) rColor; - nPalIndex = 65535; - nLevel = 0L; - GetPalIndex( pTree ); - return nPalIndex; -} - -class VCL_PLUGIN_PUBLIC InverseColorMap -{ -private: - - sal_uInt8* pBuffer; - sal_uInt8* pMap; - const sal_uLong nBits; - - - SAL_DLLPRIVATE void ImplCreateBuffers( const sal_uLong nMax ); - -public: - - explicit InverseColorMap( const BitmapPalette& rPal ); - ~InverseColorMap(); - - inline sal_uInt16 GetBestPaletteIndex( const BitmapColor& rColor ); -}; - -inline sal_uInt16 InverseColorMap::GetBestPaletteIndex( const BitmapColor& rColor ) -{ - return pMap[ ( ( (sal_uLong) rColor.GetRed() >> nBits ) << OCTREE_BITS_1 ) | - ( ( (sal_uLong) rColor.GetGreen() >> nBits ) << OCTREE_BITS ) | - ( (sal_uLong) rColor.GetBlue() >> nBits ) ]; -} - -#endif // _SV_OCTREE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/oldprintadaptor.hxx b/vcl/inc/vcl/oldprintadaptor.hxx deleted file mode 100644 index adbf49c2dcad..000000000000 --- a/vcl/inc/vcl/oldprintadaptor.hxx +++ /dev/null @@ -1,46 +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 . - */ - -#ifndef _VCL_OLDPRINTADAPTOR -#define _VCL_OLDPRINTADAPTOR - -#include "vcl/print.hxx" - -namespace vcl -{ - struct ImplOldStyleAdaptorData; - class VCL_DLLPUBLIC OldStylePrintAdaptor : public PrinterController - { - ImplOldStyleAdaptorData* mpData; - public: - OldStylePrintAdaptor( const boost::shared_ptr< Printer >& ); - virtual ~OldStylePrintAdaptor(); - - void StartPage(); - void EndPage(); - - virtual int getPageCount() const; - virtual com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > getPageParameters( int i_nPage ) const; - virtual void printPage( int i_nPage ) const; - }; -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/outdev.hxx b/vcl/inc/vcl/outdev.hxx deleted file mode 100644 index b0bb8e5c9389..000000000000 --- a/vcl/inc/vcl/outdev.hxx +++ /dev/null @@ -1,1170 +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 . - */ - -#ifndef _SV_OUTDEV_HXX -#define _SV_OUTDEV_HXX - -#include <tools/gen.hxx> -#include <tools/string.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <tools/rc.hxx> -#include <tools/color.hxx> -#include <vcl/font.hxx> -#include <vcl/region.hxx> -#include <vcl/mapmod.hxx> -#include <vcl/wall.hxx> -#include <vcl/settings.hxx> -#include <vcl/salnativewidgets.hxx> -#include <tools/poly.hxx> -#include <basegfx/vector/b2enums.hxx> -#include <com/sun/star/uno/Reference.h> -#include <unotools/fontdefs.hxx> -#include <basegfx/polygon/b2dpolypolygon.hxx> -#include <com/sun/star/drawing/LineCap.hpp> -#include <vector> - -struct ImplOutDevData; -class ImplFontEntry; -struct ImplObjStack; -struct ImplKernPairData; -struct SystemGraphicsData; -struct SystemFontData; -struct SystemTextLayoutData; -class ImplFontCache; -class ImplDevFontList; -class ImplGetDevFontList; -class ImplGetDevSizeList; -class ImplMultiTextLineInfo; -class SalGraphics; -class Gradient; -class Hatch; -class Bitmap; -class BitmapReadAccess; -class BitmapEx; -class Image; -class TextRectInfo; -class FontInfo; -class FontMetric; -class GDIMetaFile; -class GfxLink; -class Line; -class LineInfo; -class AlphaMask; -class FontCharMap; -class SalLayout; -class ImplLayoutArgs; -class ImplFontAttributes; -class VirtualDevice; - -namespace com { -namespace sun { -namespace star { -namespace rendering { - class XCanvas; -}}}} -namespace basegfx { - class B2DHomMatrix; - class B2DPolygon; - class B2DPolyPolygon; -} - -namespace com { -namespace sun { -namespace star { -namespace awt { - class XGraphics; -} } } } - -typedef std::vector< Rectangle > MetricVector; - -namespace vcl -{ - class PDFWriterImpl; - class ExtOutDevData; - class ITextLayout; - struct FontCapabilities; -} - -// --------------------- -// - OutputDevice-Data - -// --------------------- - -struct ImplMapRes -{ - long mnMapOfsX; // Offset in X Richtung - long mnMapOfsY; // Offset in Y Richtung - long mnMapScNumX; // Skal.-faktor Zaehler X Richtung - long mnMapScNumY; // Skal.-faktor Zaehler Y Richtung - long mnMapScDenomX; // Skal.-faktor Nenner X Richtung - long mnMapScDenomY; // Skal.-faktor Nenner Y Richtung -}; - -struct ImplThresholdRes -{ - long mnThresLogToPixX; // Schwellenwerte fuer Berechnung - long mnThresLogToPixY; // mit BigInts - long mnThresPixToLogX; // "" - long mnThresPixToLogY; // "" -}; - -// ---------------------- -// - OutputDevice-Types - -// ---------------------- - -// Flags for Push() -#define PUSH_LINECOLOR ((sal_uInt16)0x0001) -#define PUSH_FILLCOLOR ((sal_uInt16)0x0002) -#define PUSH_FONT ((sal_uInt16)0x0004) -#define PUSH_TEXTCOLOR ((sal_uInt16)0x0008) -#define PUSH_MAPMODE ((sal_uInt16)0x0010) -#define PUSH_CLIPREGION ((sal_uInt16)0x0020) -#define PUSH_RASTEROP ((sal_uInt16)0x0040) -#define PUSH_TEXTFILLCOLOR ((sal_uInt16)0x0080) -#define PUSH_TEXTALIGN ((sal_uInt16)0x0100) -#define PUSH_REFPOINT ((sal_uInt16)0x0200) -#define PUSH_TEXTLINECOLOR ((sal_uInt16)0x0400) -#define PUSH_TEXTLAYOUTMODE ((sal_uInt16)0x0800) -#define PUSH_TEXTLANGUAGE ((sal_uInt16)0x1000) -#define PUSH_OVERLINECOLOR ((sal_uInt16)0x2000) -#define PUSH_ALLTEXT (PUSH_TEXTCOLOR | PUSH_TEXTFILLCOLOR | PUSH_TEXTLINECOLOR | PUSH_OVERLINECOLOR | PUSH_TEXTALIGN | PUSH_TEXTLAYOUTMODE | PUSH_TEXTLANGUAGE) -#define PUSH_ALLFONT (PUSH_ALLTEXT | PUSH_FONT) -#define PUSH_ALL ((sal_uInt16)0xFFFF) - -// Flags for DrawText() -#define TEXT_DRAW_DISABLE ((sal_uInt16)0x0001) -#define TEXT_DRAW_MNEMONIC ((sal_uInt16)0x0002) -#define TEXT_DRAW_MONO ((sal_uInt16)0x0004) -#define TEXT_DRAW_CLIP ((sal_uInt16)0x0008) -#define TEXT_DRAW_LEFT ((sal_uInt16)0x0010) -#define TEXT_DRAW_CENTER ((sal_uInt16)0x0020) -#define TEXT_DRAW_RIGHT ((sal_uInt16)0x0040) -#define TEXT_DRAW_TOP ((sal_uInt16)0x0080) -#define TEXT_DRAW_VCENTER ((sal_uInt16)0x0100) -#define TEXT_DRAW_BOTTOM ((sal_uInt16)0x0200) -#define TEXT_DRAW_ENDELLIPSIS ((sal_uInt16)0x0400) -#define TEXT_DRAW_PATHELLIPSIS ((sal_uInt16)0x0800) -#define TEXT_DRAW_MULTILINE ((sal_uInt16)0x1000) -#define TEXT_DRAW_WORDBREAK ((sal_uInt16)0x2000) -#define TEXT_DRAW_NEWSELLIPSIS ((sal_uInt16)0x4000) -// in the long run we should make text style flags longer -// but at the moment we can get away with this 2 bit field for ellipsis style -#define TEXT_DRAW_CENTERELLIPSIS (TEXT_DRAW_ENDELLIPSIS | TEXT_DRAW_PATHELLIPSIS) - -#define TEXT_DRAW_WORDBREAK_HYPHENATION (((sal_uInt16)0x8000) | TEXT_DRAW_WORDBREAK) - -// Flags for CopyArea() -#define COPYAREA_WINDOWINVALIDATE ((sal_uInt16)0x0001) - -// Flags for DrawImage() -#define IMAGE_DRAW_DISABLE ((sal_uInt16)0x0001) -#define IMAGE_DRAW_HIGHLIGHT ((sal_uInt16)0x0002) -#define IMAGE_DRAW_DEACTIVE ((sal_uInt16)0x0004) -#define IMAGE_DRAW_COLORTRANSFORM ((sal_uInt16)0x0008) -#define IMAGE_DRAW_SEMITRANSPARENT ((sal_uInt16)0x0010) - -// WaveLine -#define WAVE_FLAT 1 -#define WAVE_SMALL 2 -#define WAVE_NORMAL 3 - -// Grid -#define GRID_DOTS ((sal_uLong)0x00000001) -#define GRID_HORZLINES ((sal_uLong)0x00000002) -#define GRID_VERTLINES ((sal_uLong)0x00000004) -#define GRID_LINES (GRID_HORZLINES | GRID_VERTLINES) - -// LayoutModes for Complex Text Layout -#define TEXT_LAYOUT_DEFAULT ((sal_uLong)0x00000000) -#define TEXT_LAYOUT_BIDI_LTR ((sal_uLong)0x00000000) -#define TEXT_LAYOUT_BIDI_RTL ((sal_uLong)0x00000001) -#define TEXT_LAYOUT_BIDI_STRONG ((sal_uLong)0x00000002) -#define TEXT_LAYOUT_TEXTORIGIN_LEFT ((sal_uLong)0x00000004) -#define TEXT_LAYOUT_TEXTORIGIN_RIGHT ((sal_uLong)0x00000008) -#define TEXT_LAYOUT_COMPLEX_DISABLED ((sal_uLong)0x00000100) -#define TEXT_LAYOUT_ENABLE_LIGATURES ((sal_uLong)0x00000200) -#define TEXT_LAYOUT_SUBSTITUTE_DIGITS ((sal_uLong)0x00000400) - -// DrawModes -#define DRAWMODE_DEFAULT ((sal_uLong)0x00000000) -#define DRAWMODE_BLACKLINE ((sal_uLong)0x00000001) -#define DRAWMODE_BLACKFILL ((sal_uLong)0x00000002) -#define DRAWMODE_BLACKTEXT ((sal_uLong)0x00000004) -#define DRAWMODE_BLACKBITMAP ((sal_uLong)0x00000008) -#define DRAWMODE_BLACKGRADIENT ((sal_uLong)0x00000010) -#define DRAWMODE_GRAYLINE ((sal_uLong)0x00000020) -#define DRAWMODE_GRAYFILL ((sal_uLong)0x00000040) -#define DRAWMODE_GRAYTEXT ((sal_uLong)0x00000080) -#define DRAWMODE_GRAYBITMAP ((sal_uLong)0x00000100) -#define DRAWMODE_GRAYGRADIENT ((sal_uLong)0x00000200) -#define DRAWMODE_NOFILL ((sal_uLong)0x00000400) -#define DRAWMODE_NOBITMAP ((sal_uLong)0x00000800) -#define DRAWMODE_NOGRADIENT ((sal_uLong)0x00001000) -#define DRAWMODE_GHOSTEDLINE ((sal_uLong)0x00002000) -#define DRAWMODE_GHOSTEDFILL ((sal_uLong)0x00004000) -#define DRAWMODE_GHOSTEDTEXT ((sal_uLong)0x00008000) -#define DRAWMODE_GHOSTEDBITMAP ((sal_uLong)0x00010000) -#define DRAWMODE_GHOSTEDGRADIENT ((sal_uLong)0x00020000) -#define DRAWMODE_WHITELINE ((sal_uLong)0x00100000) -#define DRAWMODE_WHITEFILL ((sal_uLong)0x00200000) -#define DRAWMODE_WHITETEXT ((sal_uLong)0x00400000) -#define DRAWMODE_WHITEBITMAP ((sal_uLong)0x00800000) -#define DRAWMODE_WHITEGRADIENT ((sal_uLong)0x01000000) -#define DRAWMODE_SETTINGSLINE ((sal_uLong)0x02000000) -#define DRAWMODE_SETTINGSFILL ((sal_uLong)0x04000000) -#define DRAWMODE_SETTINGSTEXT ((sal_uLong)0x08000000) -#define DRAWMODE_SETTINGSGRADIENT ((sal_uLong)0x10000000) -#define DRAWMODE_NOTRANSPARENCY ((sal_uLong)0x80000000) - -// Antialiasing -#define ANTIALIASING_DISABLE_TEXT ((sal_uInt16)0x0001) -#define ANTIALIASING_ENABLE_B2DDRAW ((sal_uInt16)0x0002) -#define ANTIALIASING_PIXELSNAPHAIRLINE ((sal_uInt16)0x0004) - -// AddFontSubstitute -#define FONT_SUBSTITUTE_ALWAYS ((sal_uInt16)0x0001) -#define FONT_SUBSTITUTE_SCREENONLY ((sal_uInt16)0x0002) - -#define DEFAULTFONT_FLAGS_ONLYONE ((sal_uLong)0x00000001) - -enum OutDevType { OUTDEV_DONTKNOW, OUTDEV_WINDOW, OUTDEV_PRINTER, OUTDEV_VIRDEV }; - -enum OutDevViewType { OUTDEV_VIEWTYPE_DONTKNOW, OUTDEV_VIEWTYPE_PRINTPREVIEW, OUTDEV_VIEWTYPE_SLIDESHOW }; - -// ---------------- -// - OutputDevice - -// ---------------- - -class VirtualDevice; -class Printer; -class FontSelectPattern; -class ImplFontMetricData; -class VCLXGraphics; - -typedef ::std::vector< VCLXGraphics* > VCLXGraphicsList_impl; - -const char* ImplDbgCheckOutputDevice( const void* pObj ); - -class VCL_DLLPUBLIC OutputDevice : public Resource -{ - friend class Application; - friend class Bitmap; - friend class ImplImageBmp; - friend class Printer; - friend class System; - friend class VirtualDevice; - friend class Window; - friend class WorkWindow; - friend class vcl::PDFWriterImpl; - friend const char* ImplDbgCheckOutputDevice( const void* pObj ); - friend void ImplHandleResize( Window* pWindow, long nNewWidth, long nNewHeight ); - -private: - mutable SalGraphics* mpGraphics; - mutable OutputDevice* mpPrevGraphics; - mutable OutputDevice* mpNextGraphics; - GDIMetaFile* mpMetaFile; - mutable ImplFontEntry* mpFontEntry; - mutable ImplFontCache* mpFontCache; - mutable ImplDevFontList* mpFontList; - mutable ImplGetDevFontList* mpGetDevFontList; - mutable ImplGetDevSizeList* mpGetDevSizeList; - ImplObjStack* mpObjStack; - ImplOutDevData* mpOutDevData; - VCLXGraphicsList_impl* mpUnoGraphicsList; - vcl::PDFWriterImpl* mpPDFWriter; - vcl::ExtOutDevData* mpExtOutDevData; - - // TEMP TEMP TEMP - VirtualDevice* mpAlphaVDev; - - /// Additional output pixel offset, applied in LogicToPixel (used by SetPixelOffset/GetPixelOffset) - long mnOutOffOrigX; - /// Additional output offset in _logical_ coordinates, applied in PixelToLogic (used by SetPixelOffset/GetPixelOffset) - long mnOutOffLogicX; - /// Additional output pixel offset, applied in LogicToPixel (used by SetPixelOffset/GetPixelOffset) - long mnOutOffOrigY; - /// Additional output offset in _logical_ coordinates, applied in PixelToLogic (used by SetPixelOffset/GetPixelOffset) - long mnOutOffLogicY; - /// Output offset for device output in pixel (pseudo window offset within window system's frames) - long mnOutOffX; - /// Output offset for device output in pixel (pseudo window offset within window system's frames) - long mnOutOffY; - long mnOutWidth; - long mnOutHeight; - sal_Int32 mnDPIX; - sal_Int32 mnDPIY; - /// font specific text alignment offsets in pixel units - mutable long mnTextOffX; - mutable long mnTextOffY; - mutable long mnEmphasisAscent; - mutable long mnEmphasisDescent; - sal_uLong mnDrawMode; - sal_uLong mnTextLayoutMode; - ImplMapRes maMapRes; - ImplThresholdRes maThresRes; - OutDevType meOutDevType; - OutDevViewType meOutDevViewType; - Region maRegion; // contains the clip region, see SetClipRegion(...) - Color maLineColor; - Color maFillColor; - Font maFont; - Color maTextColor; - Color maTextLineColor; - Color maOverlineColor; - TextAlign meTextAlign; - RasterOp meRasterOp; - Wallpaper maBackground; - AllSettings maSettings; - MapMode maMapMode; - Point maRefPoint; - sal_uInt16 mnAntialiasing; - LanguageType meTextLanguage; - mutable sal_Bool mbMap:1, - mbMapIsDefault:1, - mbClipRegion:1, - mbBackground:1, - mbOutput:1, - mbDevOutput:1, - mbOutputClipped:1, - mbLineColor:1, - mbFillColor:1, - mbInitLineColor:1, - mbInitFillColor:1, - mbInitFont:1, - mbInitTextColor:1, - mbInitClipRegion:1, - mbClipRegionSet:1, - mbKerning:1, - mbNewFont:1, - mbTextLines:1, - mbTextSpecial:1, - mbRefPoint:1, - mbEnableRTL:1; - -public: - SAL_DLLPRIVATE sal_Int32 ImplGetDPIX() const { return mnDPIX; } - SAL_DLLPRIVATE sal_Int32 ImplGetDPIY() const { return mnDPIY; } - SAL_DLLPRIVATE SalGraphics* ImplGetGraphics() const; - SAL_DLLPRIVATE void ImplReleaseGraphics( sal_Bool bRelease = sal_True ); - SAL_DLLPRIVATE sal_Bool ImplHasMirroredGraphics(); - SAL_DLLPRIVATE void ImplReMirror( Point &rPoint ) const; - SAL_DLLPRIVATE void ImplReMirror( Rectangle &rRect ) const; - SAL_DLLPRIVATE void ImplReMirror( Region &rRegion ) const; - SAL_DLLPRIVATE void ImplInitOutDevData(); - SAL_DLLPRIVATE void ImplDeInitOutDevData(); - SAL_DLLPRIVATE void ImplInitLineColor(); - SAL_DLLPRIVATE void ImplInitFillColor(); - SAL_DLLPRIVATE bool ImplNewFont() const; - SAL_DLLPRIVATE void ImplInitFont() const; - SAL_DLLPRIVATE void ImplInitTextColor(); - SAL_DLLPRIVATE void ImplInitClipRegion(); - SAL_DLLPRIVATE bool ImplSelectClipRegion( const Region&, SalGraphics* pGraphics = NULL ); - SAL_DLLPRIVATE void ImplSetClipRegion( const Region* pRegion ); - - SAL_DLLPRIVATE SalLayout* ImplLayout( const OUString&, sal_Int32 nIndex, sal_Int32 nLen, - const Point& rLogicPos = Point(0,0), long nLogicWidth=0, - const sal_Int32* pLogicDXArray=NULL, bool bFilter = false ) const; - SAL_DLLPRIVATE ImplLayoutArgs ImplPrepareLayoutArgs( OUString&, const sal_Int32 nIndex, const sal_Int32 nLen, - long nPixelWidth, const sal_Int32* pPixelDXArray ) const; - SAL_DLLPRIVATE SalLayout* ImplGlyphFallbackLayout( SalLayout*, ImplLayoutArgs& ) const; - - static - SAL_DLLPRIVATE OUString ImplGetEllipsisString( const OutputDevice& rTargetDevice, const OUString& rStr, - long nMaxWidth, sal_uInt16 nStyle, const ::vcl::ITextLayout& _rLayout ); - static - SAL_DLLPRIVATE void ImplDrawText( OutputDevice& rTargetDevice, const Rectangle& rRect, - const String& rOrigStr, sal_uInt16 nStyle, - MetricVector* pVector, OUString* pDisplayText, ::vcl::ITextLayout& _rLayout ); - SAL_DLLPRIVATE void ImplDrawTextBackground( const SalLayout& ); - SAL_DLLPRIVATE void ImplDrawTextLines( SalLayout&, FontStrikeout eStrikeout, FontUnderline eUnderline, FontUnderline eOverline, sal_Bool bWordLine, sal_Bool bUnderlineAbove ); - SAL_DLLPRIVATE bool ImplDrawRotateText( SalLayout& ); - SAL_DLLPRIVATE void ImplDrawTextDirect( SalLayout&, sal_Bool bTextLines ); - SAL_DLLPRIVATE void ImplDrawSpecialText( SalLayout& ); - SAL_DLLPRIVATE void ImplDrawText( SalLayout& ); - SAL_DLLPRIVATE Rectangle ImplGetTextBoundRect( const SalLayout& ); - SAL_DLLPRIVATE void ImplDrawEmphasisMarks( SalLayout& ); - - SAL_DLLPRIVATE void ImplDrawTextRect( long nBaseX, long nBaseY, long nX, long nY, long nWidth, long nHeight ); - - SAL_DLLPRIVATE void ImplInitTextLineSize(); - SAL_DLLPRIVATE void ImplInitAboveTextLineSize(); - SAL_DLLPRIVATE void ImplDrawWaveLine( long nBaseX, long nBaseY, long nStartX, long nStartY, long nWidth, long nHeight, long nLineWidth, short nOrientation, const Color& rColor ); - SAL_DLLPRIVATE void ImplDrawWaveTextLine( long nBaseX, long nBaseY, long nX, long nY, long nWidth, FontUnderline eTextLine, Color aColor, sal_Bool bIsAbove ); - SAL_DLLPRIVATE void ImplDrawStraightTextLine( long nBaseX, long nBaseY, long nX, long nY, long nWidth, FontUnderline eTextLine, Color aColor, sal_Bool bIsAbove ); - SAL_DLLPRIVATE void ImplDrawStrikeoutLine( long nBaseX, long nBaseY, long nX, long nY, long nWidth, FontStrikeout eStrikeout, Color aColor ); - SAL_DLLPRIVATE void ImplDrawStrikeoutChar( long nBaseX, long nBaseY, long nX, long nY, long nWidth, FontStrikeout eStrikeout, Color aColor ); - SAL_DLLPRIVATE void ImplDrawTextLine( long nBaseX, long nX, long nY, long nWidth, FontStrikeout eStrikeout, FontUnderline eUnderline, FontUnderline eOverline, sal_Bool bUnderlineAbove ); - SAL_DLLPRIVATE void ImplDrawMnemonicLine( long nX, long nY, long nWidth ); - SAL_DLLPRIVATE void ImplGetEmphasisMark( PolyPolygon& rPolyPoly, sal_Bool& rPolyLine, Rectangle& rRect1, Rectangle& rRect2, long& rYOff, long& rWidth, FontEmphasisMark eEmphasis, long nHeight, short nOrient ); - SAL_DLLPRIVATE void ImplDrawEmphasisMark( long nBaseX, long nX, long nY, const PolyPolygon& rPolyPoly, sal_Bool bPolyLine, const Rectangle& rRect1, const Rectangle& rRect2 ); - static - SAL_DLLPRIVATE long ImplGetTextLines( ImplMultiTextLineInfo& rLineInfo, long nWidth, const OUString& rStr, sal_uInt16 nStyle, const ::vcl::ITextLayout& _rLayout ); - SAL_DLLPRIVATE void ImplInitFontList() const; - SAL_DLLPRIVATE void ImplUpdateFontData( bool bNewFontLists ); - SAL_DLLPRIVATE static void ImplUpdateAllFontData( bool bNewFontLists ); - - SAL_DLLPRIVATE long ImplLogicXToDevicePixel( long nX ) const; - SAL_DLLPRIVATE long ImplLogicYToDevicePixel( long nY ) const; - SAL_DLLPRIVATE long ImplLogicWidthToDevicePixel( long nWidth ) const; - SAL_DLLPRIVATE long ImplLogicHeightToDevicePixel( long nHeight ) const; - SAL_DLLPRIVATE long ImplDevicePixelToLogicWidth( long nWidth ) const; - SAL_DLLPRIVATE long ImplDevicePixelToLogicHeight( long nHeight ) const; - SAL_DLLPRIVATE float ImplFloatLogicHeightToDevicePixel( float ) const; - SAL_DLLPRIVATE Point ImplLogicToDevicePixel( const Point& rLogicPt ) const; - SAL_DLLPRIVATE Size ImplLogicToDevicePixel( const Size& rLogicSize ) const; - SAL_DLLPRIVATE Rectangle ImplLogicToDevicePixel( const Rectangle& rLogicRect ) const; - SAL_DLLPRIVATE ::basegfx::B2DPolygon ImplLogicToDevicePixel( const ::basegfx::B2DPolygon& ) const; - SAL_DLLPRIVATE ::basegfx::B2DPolyPolygon ImplLogicToDevicePixel( const ::basegfx::B2DPolyPolygon& ) const; - SAL_DLLPRIVATE Polygon ImplLogicToDevicePixel( const Polygon& rLogicPoly ) const; - SAL_DLLPRIVATE PolyPolygon ImplLogicToDevicePixel( const PolyPolygon& rLogicPolyPoly ) const; - SAL_DLLPRIVATE LineInfo ImplLogicToDevicePixel( const LineInfo& rLineInfo ) const; - SAL_DLLPRIVATE Rectangle ImplDevicePixelToLogic( const Rectangle& rLogicRect ) const; - SAL_DLLPRIVATE Region ImplPixelToDevicePixel( const Region& rRegion ) const; - SAL_DLLPRIVATE void ImplInvalidateViewTransform(); - SAL_DLLPRIVATE basegfx::B2DHomMatrix ImplGetDeviceTransformation() const; - - SAL_DLLPRIVATE void ImplDrawPolygon( const Polygon& rPoly, const PolyPolygon* pClipPolyPoly = NULL ); - SAL_DLLPRIVATE void ImplDrawPolyPolygon( const PolyPolygon& rPolyPoly, const PolyPolygon* pClipPolyPoly = NULL ); - SAL_DLLPRIVATE void ImplDrawPolyPolygon( sal_uInt16 nPoly, const PolyPolygon& rPolyPoly ); - SAL_DLLPRIVATE void ImplDrawLinearGradient( const Rectangle& rRect, const Gradient& rGradient, sal_Bool bMtf, const PolyPolygon* pClipPolyPoly ); - SAL_DLLPRIVATE void ImplDrawComplexGradient( const Rectangle& rRect, const Gradient& rGradient, sal_Bool bMtf, const PolyPolygon* pClipPolyPoly ); - - SAL_DLLPRIVATE void ImplDrawHatch( const PolyPolygon& rPolyPoly, const Hatch& rHatch, sal_Bool bMtf ); - SAL_DLLPRIVATE void ImplCalcHatchValues( const Rectangle& rRect, long nDist, sal_uInt16 nAngle10, Point& rPt1, Point& rPt2, Size& rInc, Point& rEndPt1 ); - SAL_DLLPRIVATE void ImplDrawHatchLine( const Line& rLine, const PolyPolygon& rPolyPoly, Point* pPtBuffer, sal_Bool bMtf ); - - SAL_DLLPRIVATE void ImplDrawWallpaper( long nX, long nY, long nWidth, long nHeight, const Wallpaper& rWallpaper ); - SAL_DLLPRIVATE void ImplDrawColorWallpaper( long nX, long nY, long nWidth, long nHeight, const Wallpaper& rWallpaper ); - SAL_DLLPRIVATE void ImplDrawBitmapWallpaper( long nX, long nY, long nWidth, long nHeight, const Wallpaper& rWallpaper ); - SAL_DLLPRIVATE void ImplDrawGradientWallpaper( long nX, long nY, long nWidth, long nHeight, const Wallpaper& rWallpaper ); - - SAL_DLLPRIVATE void ImplDrawOutDevDirect( const OutputDevice* pSrcDev, void* pPosAry ); - SAL_DLLPRIVATE void ImplDrawBitmap( const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPtPixel, const Size& rSrcSizePixel, - const Bitmap& rBitmap, const sal_uLong nAction ); - SAL_DLLPRIVATE void ImplDrawBitmapEx( const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPtPixel, const Size& rSrcSizePixel, - const BitmapEx& rBitmapEx, const sal_uLong nAction ); - SAL_DLLPRIVATE void ImplDrawMask( const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPtPixel, const Size& rSrcSizePixel, - const Bitmap& rBitmap, const Color& rMaskColor, - const sal_uLong nAction ); - SAL_DLLPRIVATE void ImplDrawAlpha( const Bitmap& rBmp, const AlphaMask& rAlpha, - const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPtPixel, const Size& rSrcSizePixel ); - SAL_DLLPRIVATE Bitmap ImplBlend( Bitmap aBmp, - BitmapReadAccess* pP, - BitmapReadAccess* pA, - const sal_Int32 nOffY, - const sal_Int32 nDstHeight, - const sal_Int32 nOffX, - const sal_Int32 nDstWidth, - const Rectangle& aBmpRect, - const Size& aOutSz, - const bool bHMirr, - const bool bVMirr, - const long* pMapX, - const long* pMapY ); - SAL_DLLPRIVATE Bitmap ImplBlendWithAlpha( Bitmap aBmp, - BitmapReadAccess* pP, - BitmapReadAccess* pA, - const Rectangle& aDstRect, - const sal_Int32 nOffY, - const sal_Int32 nDstHeight, - const sal_Int32 nOffX, - const sal_Int32 nDstWidth, - const long* pMapX, - const long* pMapY ); - SAL_DLLPRIVATE void ImplPrintTransparent( const Bitmap& rBmp, const Bitmap& rMask, - const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPtPixel, const Size& rSrcSizePixel ); - SAL_DLLPRIVATE void ImplPrintMask( const Bitmap& rMask, const Color& rMaskColor, - const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPtPixel, const Size& rSrcSizePixel ); - SAL_DLLPRIVATE void ImplDrawFrameDev( const Point& rPt, const Point& rDevPt, const Size& rDevSize, - const OutputDevice& rOutDev, const Region& rRegion ); - SAL_DLLPRIVATE void ImplGetFrameDev( const Point& rPt, const Point& rDevPt, const Size& rDevSize, - OutputDevice& rOutDev ); - - SAL_DLLPRIVATE sal_Bool ImplIsRecordLayout() const; - - void ImplAddDevFontSubstitute( const OUString& rFontName, - const OUString& rReplaceFontName, - sal_uInt16 nFlags = 0 ); - - SAL_DLLPRIVATE static FontEmphasisMark ImplGetEmphasisMarkStyle( const Font& rFont ); - SAL_DLLPRIVATE static sal_Bool ImplIsUnderlineAbove( const Font& ); - - // tells whether this output device is RTL in an LTR UI or LTR in a RTL UI - SAL_DLLPRIVATE bool ImplIsAntiparallel() const ; - SAL_DLLPRIVATE Color ImplDrawModeToColor( const Color& rColor ) const; - - // #i101491# - // Helper which holds the old line geometry creation and is extended to use AA when - // switched on. Advantage is that line geometry is only temporarily used for paint - SAL_DLLPRIVATE void ImpDrawPolyLineWithLineInfo(const Polygon& rPoly, const LineInfo& rLineInfo); - - // #i101491# - // Helper who implements the DrawPolyPolygon functionality for basegfx::B2DPolyPolygon - // without MetaFile processing - SAL_DLLPRIVATE void ImpDrawPolyPolygonWithB2DPolyPolygon(const basegfx::B2DPolyPolygon& rB2DPolyPoly); - - // #i101491# - // Helper who tries to use SalGDI's DrawPolyLine direct and returns it's bool. Contains no AA check. - SAL_DLLPRIVATE bool ImpTryDrawPolyLineDirect( - const basegfx::B2DPolygon& rB2DPolygon, - double fLineWidth = 0.0, - basegfx::B2DLineJoin eLineJoin = basegfx::B2DLINEJOIN_NONE, - com::sun::star::drawing::LineCap eLineCap = com::sun::star::drawing::LineCap_BUTT); - - // Helper for line geometry paint with support for graphic expansion (pattern and fat_to_area) - void impPaintLineGeometryWithEvtlExpand(const LineInfo& rInfo, basegfx::B2DPolyPolygon aLinePolyPolygon); - - SAL_DLLPRIVATE SalLayout* getFallbackFontThatFits(ImplFontEntry &rFallbackFont, - FontSelectPattern &rFontSelData, int nFallbackLevel, - ImplLayoutArgs& rLayoutArgs, const ImplFontMetricData& rOrigMetric) const; -protected: - OutputDevice(); - -private: - SAL_DLLPRIVATE OutputDevice( const OutputDevice& rOutDev ); - SAL_DLLPRIVATE OutputDevice& operator =( const OutputDevice& rOutDev ); - -public: - virtual ~OutputDevice(); - - OutDevType GetOutDevType() const { return meOutDevType; } - - /** query an <code>OutputDevice</code> whether it spports a specific operation - - @return - true if operation supported, else false - */ - bool supportsOperation( OutDevSupportType ) const; - - vcl::PDFWriterImpl* GetPDFWriter() const { return mpPDFWriter; } - - void SetExtOutDevData( vcl::ExtOutDevData* pExtOutDevData ) { mpExtOutDevData = pExtOutDevData; } - vcl::ExtOutDevData* GetExtOutDevData() const { return mpExtOutDevData; } - - void DrawTextLine( const Point& rPos, long nWidth, - FontStrikeout eStrikeout, - FontUnderline eUnderline, - FontUnderline eOverline, - sal_Bool bUnderlineAbove = sal_False ); - - void DrawText( const Point& rStartPt, const XubString& rStr, - xub_StrLen nIndex = 0, xub_StrLen nLen = STRING_LEN, - MetricVector* pVector = NULL, OUString* pDisplayText = NULL ); - long GetTextWidth( const OUString& rStr, sal_Int32 nIndex = 0, sal_Int32 nLen = -1 ) const; - /// Height where any character of the current font fits; in logic coordinates. - long GetTextHeight() const; - float approximate_char_width() const; - void DrawTextArray( const Point& rStartPt, const XubString& rStr, - const sal_Int32* pDXAry = NULL, - xub_StrLen nIndex = 0, - xub_StrLen nLen = STRING_LEN ); - long GetTextArray( const OUString& rStr, sal_Int32* pDXAry = NULL, - sal_Int32 nIndex = 0, sal_Int32 nLen = -1 ) const; - bool GetCaretPositions( const OUString&, sal_Int32* pCaretXArray, - sal_Int32 nIndex, sal_Int32 nLen, - sal_Int32* pDXAry = NULL, long nWidth = 0, - sal_Bool bCellBreaking = sal_True ) const; - void DrawStretchText( const Point& rStartPt, sal_uLong nWidth, - const XubString& rStr, - xub_StrLen nIndex = 0, xub_StrLen nLen = STRING_LEN ); - xub_StrLen GetTextBreak( const OUString& rStr, long nTextWidth, - sal_Int32 nIndex = 0, sal_Int32 nLen = -1, - long nCharExtra = 0, sal_Bool bCellBreaking = sal_True ) const; - xub_StrLen GetTextBreak( const OUString& rStr, long nTextWidth, - sal_Unicode nExtraChar, sal_Int32& rExtraCharPos, - sal_Int32 nIndex, sal_Int32 nLen, - long nCharExtra = 0 ) const; - /** Generate MetaTextActions for the text rect - - This method splits up the text rect into multiple - MetaTextActions, one for each line of text. This is comparable - to AddGradientActions(), which splits up a gradient into its - constituing polygons. Parameter semantics fully compatible to - DrawText(). - */ - void AddTextRectActions( const Rectangle& rRect, - const String& rOrigStr, - sal_uInt16 nStyle, - GDIMetaFile& rMtf ); - void DrawText( const Rectangle& rRect, - const XubString& rStr, sal_uInt16 nStyle = 0, - MetricVector* pVector = NULL, OUString* pDisplayText = NULL, - ::vcl::ITextLayout* _pTextLayout = NULL ); - Rectangle GetTextRect( const Rectangle& rRect, - const XubString& rStr, sal_uInt16 nStyle = TEXT_DRAW_WORDBREAK, - TextRectInfo* pInfo = NULL, - const ::vcl::ITextLayout* _pTextLayout = NULL ) const; - OUString GetEllipsisString( const OUString& rStr, long nMaxWidth, - sal_uInt16 nStyle = TEXT_DRAW_ENDELLIPSIS ) const; - void DrawCtrlText( const Point& rPos, const XubString& rStr, - xub_StrLen nIndex = 0, xub_StrLen nLen = STRING_LEN, - sal_uInt16 nStyle = TEXT_DRAW_MNEMONIC, MetricVector* pVector = NULL, OUString* pDisplayText = NULL ); - long GetCtrlTextWidth( const XubString& rStr, xub_StrLen nIndex = 0, - xub_StrLen nLen = STRING_LEN, - sal_uInt16 nStyle = TEXT_DRAW_MNEMONIC ) const; - static XubString GetNonMnemonicString( const XubString& rStr, xub_StrLen& rMnemonicPos ); - static XubString GetNonMnemonicString( const XubString& rStr ) - { xub_StrLen nDummy; return GetNonMnemonicString( rStr, nDummy ); } - - sal_Bool GetTextBoundRect( Rectangle& rRect, - const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0, xub_StrLen nLen = STRING_LEN, - sal_uLong nLayoutWidth = 0, const sal_Int32* pDXArray = NULL ) const; - sal_Bool GetTextOutline( PolyPolygon&, - const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0, - xub_StrLen nLen = STRING_LEN, sal_Bool bOptimize = sal_True, - sal_uLong nLayoutWidth = 0, const sal_Int32* pDXArray = NULL ) const; - sal_Bool GetTextOutlines( PolyPolyVector&, - const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0, - xub_StrLen nLen = STRING_LEN, sal_Bool bOptimize = sal_True, - sal_uLong nLayoutWidth = 0, const sal_Int32* pDXArray = NULL ) const; - sal_Bool GetTextOutlines( ::basegfx::B2DPolyPolygonVector&, - const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0, - xub_StrLen nLen = STRING_LEN, sal_Bool bOptimize = sal_True, - sal_uLong nLayoutWidth = 0, const sal_Int32* pDXArray = NULL ) const; - sal_Bool GetGlyphBoundRects( const Point& rOrigin, const String& rStr, int nIndex, - int nLen, int nBase, MetricVector& rVector ); - - void DrawPixel( const Point& rPt ); - void DrawPixel( const Point& rPt, const Color& rColor ); - void DrawPixel( const Polygon& rPts, const Color* pColors = NULL ); - void DrawPixel( const Polygon& rPts, const Color& rColor ); - - void DrawLine( const Point& rStartPt, const Point& rEndPt ); - void DrawLine( const Point& rStartPt, const Point& rEndPt, - const LineInfo& rLineInfo ); - - /** Render the given polygon as a line stroke - - The given polygon is stroked with the current LineColor, start - and end point are not automatically connected - - @see DrawPolygon - @see DrawPolyPolygon - */ - void DrawPolyLine( const Polygon& rPoly ); - void DrawPolyLine( - const basegfx::B2DPolygon&, - double fLineWidth = 0.0, - basegfx::B2DLineJoin = basegfx::B2DLINEJOIN_ROUND, - com::sun::star::drawing::LineCap = com::sun::star::drawing::LineCap_BUTT); - - /** Render the given polygon as a line stroke - - The given polygon is stroked with the current LineColor, start - and end point are not automatically connected. The line is - rendered according to the specified LineInfo, e.g. supplying a - dash pattern, or a line thickness. - - @see DrawPolygon - @see DrawPolyPolygon - */ - void DrawPolyLine( const Polygon& rPoly, - const LineInfo& rLineInfo ); - - /** Render the given polygon - - The given polygon is stroked with the current LineColor, and - filled with the current FillColor. If one of these colors are - transparent, the corresponding stroke or fill stays - invisible. Start and end point of the polygon are - automatically connected. - - @see DrawPolyLine - */ - void DrawPolygon( const Polygon& rPoly ); - void DrawPolygon( const basegfx::B2DPolygon& ); - - /** Render the given poly-polygon - - The given poly-polygon is stroked with the current LineColor, - and filled with the current FillColor. If one of these colors - are transparent, the corresponding stroke or fill stays - invisible. Start and end points of the contained polygons are - automatically connected. - - @see DrawPolyLine - */ - void DrawPolyPolygon( const PolyPolygon& rPolyPoly ); - void DrawPolyPolygon( const basegfx::B2DPolyPolygon& ); - - void DrawRect( const Rectangle& rRect ); - void DrawRect( const Rectangle& rRect, - sal_uLong nHorzRount, sal_uLong nVertRound ); - void DrawEllipse( const Rectangle& rRect ); - void DrawArc( const Rectangle& rRect, - const Point& rStartPt, const Point& rEndPt ); - void DrawPie( const Rectangle& rRect, - const Point& rStartPt, const Point& rEndPt ); - void DrawChord( const Rectangle& rRect, - const Point& rStartPt, const Point& rEndPt ); - - void DrawOutDev( const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPt, const Size& rSrcSize ); - void DrawOutDev( const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPt, const Size& rSrcSize, - const OutputDevice& rOutDev ); - void CopyArea( const Point& rDestPt, - const Point& rSrcPt, const Size& rSrcSize, - sal_uInt16 nFlags = 0 ); - - void DrawBitmap( const Point& rDestPt, - const Bitmap& rBitmap ); - void DrawBitmap( const Point& rDestPt, const Size& rDestSize, - const Bitmap& rBitmap ); - void DrawBitmap( const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPtPixel, const Size& rSrcSizePixel, - const Bitmap& rBitmap ); - - void DrawBitmapEx( const Point& rDestPt, - const BitmapEx& rBitmapEx ); - void DrawBitmapEx( const Point& rDestPt, const Size& rDestSize, - const BitmapEx& rBitmapEx ); - void DrawBitmapEx( const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPtPixel, const Size& rSrcSizePixel, - const BitmapEx& rBitmapEx ); - - void DrawMask( const Point& rDestPt, - const Bitmap& rBitmap, const Color& rMaskColor ); - void DrawMask( const Point& rDestPt, const Size& rDestSize, - const Bitmap& rBitmap, const Color& rMaskColor ); - void DrawMask( const Point& rDestPt, const Size& rDestSize, - const Point& rSrcPtPixel, const Size& rSrcSizePixel, - const Bitmap& rBitmap, const Color& rMaskColor ); - - void DrawImage( const Point& rPos, - const Image& rImage, sal_uInt16 nStyle = 0 ); - void DrawImage( const Point& rPos, const Size& rSize, - const Image& rImage, sal_uInt16 nStyle = 0 ); - - void DrawGradient( const Rectangle& rRect, const Gradient& rGradient ); - void DrawGradient( const PolyPolygon& rPolyPoly, const Gradient& rGradient ); - void AddGradientActions( const Rectangle& rRect, - const Gradient& rGradient, - GDIMetaFile& rMtf ); - -#ifdef _MSC_VER - void DrawHatch( const PolyPolygon& rPolyPoly, const ::Hatch& rHatch ); - void AddHatchActions( const PolyPolygon& rPolyPoly, - const ::Hatch& rHatch, - GDIMetaFile& rMtf ); -#else - void DrawHatch( const PolyPolygon& rPolyPoly, const Hatch& rHatch ); - void AddHatchActions( const PolyPolygon& rPolyPoly, - const Hatch& rHatch, - GDIMetaFile& rMtf ); -#endif - - void DrawWallpaper( const Rectangle& rRect, const Wallpaper& rWallpaper ); - void DrawWaveLine( const Point& rStartPos, const Point& rEndPos, sal_uInt16 nStyle ); - void DrawGrid( const Rectangle& rRect, const Size& rDist, sal_uLong nFlags ); - - void DrawTransparent( const PolyPolygon& rPolyPoly, sal_uInt16 nTransparencePercent ); - void DrawTransparent( const basegfx::B2DPolyPolygon& rB2DPolyPoly, double fTransparency); - void DrawTransparent( const GDIMetaFile& rMtf, const Point& rPos, const Size& rSize, - const Gradient& rTransparenceGradient ); - - /** Added return value to see if EPS could be painted directly. - Theoreticaly, handing over a matrix would be needed to handle - painting rotated EPS files (e.g. contained in Metafiles). This - would then need to be supported for Mac and PS printers, but - that's too much for now, wrote #i107046# for this */ - bool DrawEPS( const Point& rPt, const Size& rSz, - const GfxLink& rGfxLink, GDIMetaFile* pSubst = NULL ); - - Color GetPixel( const Point& rPt ) const; - - Bitmap GetBitmap( const Point& rSrcPt, const Size& rSize ) const; - - /** Query extended bitmap (with alpha channel, if available). - */ - BitmapEx GetBitmapEx( const Point& rSrcPt, const Size& rSize ) const; - - void EnableMapMode( sal_Bool bEnable = sal_True ); - sal_Bool IsMapModeEnabled() const { return mbMap; } - - // Enabling/disabling RTL only makes sense for OutputDevices that use a mirroring SalGraphisLayout - void EnableRTL( sal_Bool bEnable = sal_True); - sal_Bool IsRTLEnabled() const { return mbEnableRTL; } - - void SetConnectMetaFile( GDIMetaFile* pMtf ); - GDIMetaFile* GetConnectMetaFile() const { return mpMetaFile; } - - void EnableOutput( sal_Bool bEnable = sal_True ); - sal_Bool IsOutputEnabled() const { return mbOutput; } - sal_Bool IsDeviceOutput() const { return mbDevOutput; } - sal_Bool IsDeviceOutputNecessary() const { return (mbOutput && mbDevOutput); } - sal_Bool IsOutputNecessary() const { return ((mbOutput && mbDevOutput) || (mpMetaFile != NULL)); } - - void SetClipRegion(); - void SetClipRegion( const Region& rRegion ); - Region GetClipRegion() const; - sal_Bool IsClipRegion() const { return mbClipRegion; } - Region GetActiveClipRegion() const; - - void MoveClipRegion( long nHorzMove, long nVertMove ); - void IntersectClipRegion( const Rectangle& rRect ); - void IntersectClipRegion( const Region& rRegion ); - - void SetAntialiasing( sal_uInt16 nMode = 0 ); - sal_uInt16 GetAntialiasing() const { return mnAntialiasing; } - - void SetDrawMode( sal_uLong nDrawMode ); - sal_uLong GetDrawMode() const { return mnDrawMode; } - - void SetLayoutMode( sal_uLong nTextLayoutMode ); - sal_uLong GetLayoutMode() const { return mnTextLayoutMode; } - - void SetDigitLanguage( LanguageType ); - LanguageType GetDigitLanguage() const { return meTextLanguage; } - - void SetRasterOp( RasterOp eRasterOp ); - RasterOp GetRasterOp() const { return meRasterOp; } - - /** - If this OutputDevice is used for displaying a Print Preview - the OutDevViewType should be set to 'OUTDEV_VIEWTYPE_PRINTPREVIEW'. - - A View than can make painting decisions dependent on this OutDevViewType. - E.g. text colors need to be handled different, dependent on whether it's a PrintPreview or not. (see #106611# for more) - */ - void SetOutDevViewType( OutDevViewType eOutDevViewType ) { meOutDevViewType=eOutDevViewType; } - OutDevViewType GetOutDevViewType() const { return meOutDevViewType; } - - void SetLineColor(); - void SetLineColor( const Color& rColor ); - const Color& GetLineColor() const { return maLineColor; } - sal_Bool IsLineColor() const { return mbLineColor; } - - void SetFillColor(); - void SetFillColor( const Color& rColor ); - const Color& GetFillColor() const { return maFillColor; } - sal_Bool IsFillColor() const { return mbFillColor; } - - void SetBackground(); - void SetBackground( const Wallpaper& rBackground ); - - const Wallpaper& GetBackground() const { return maBackground; } - sal_Bool IsBackground() const { return mbBackground; } - - void SetFont( const Font& rNewFont ); - const Font& GetFont() const { return maFont; } - - SystemFontData GetSysFontData( int nFallbacklevel ) const; - SystemTextLayoutData GetSysTextLayoutData( const Point& rStartPt, const XubString& rStr, - xub_StrLen nIndex = 0, xub_StrLen nLen = STRING_LEN, - const sal_Int32* pDXAry = NULL ) const; - - void SetTextColor( const Color& rColor ); - const Color& GetTextColor() const { return maTextColor; } - void SetTextFillColor(); - void SetTextFillColor( const Color& rColor ); - - Color GetTextFillColor() const; - sal_Bool IsTextFillColor() const { return !maFont.IsTransparent(); } - void SetTextLineColor(); - void SetTextLineColor( const Color& rColor ); - const Color& GetTextLineColor() const { return maTextLineColor; } - sal_Bool IsTextLineColor() const { return (maTextLineColor.GetTransparency() == 0); } - void SetOverlineColor(); - void SetOverlineColor( const Color& rColor ); - const Color& GetOverlineColor() const { return maOverlineColor; } - sal_Bool IsOverlineColor() const { return (maOverlineColor.GetTransparency() == 0); } - void SetTextAlign( TextAlign eAlign ); - TextAlign GetTextAlign() const { return maFont.GetAlign(); } - - virtual void SetSettings( const AllSettings& rSettings ); - const AllSettings& GetSettings() const { return maSettings; } - - SystemGraphicsData GetSystemGfxData() const; - ::com::sun::star::uno::Any GetSystemGfxDataAny() const; - - virtual void SetMapMode(); - virtual void SetMapMode( const MapMode& rNewMapMode ); - virtual void SetRelativeMapMode( const MapMode& rNewMapMode ); - const MapMode& GetMapMode() const { return maMapMode; } - sal_Bool IsMapMode() const { return mbMap; } - - void SetRefPoint(); - void SetRefPoint( const Point& rRefPoint ); - const Point& GetRefPoint() const { return maRefPoint; } - sal_Bool IsRefPoint() const { return mbRefPoint; } - - // #i75163# - basegfx::B2DHomMatrix GetViewTransformation() const; - basegfx::B2DHomMatrix GetInverseViewTransformation() const; - - basegfx::B2DHomMatrix GetViewTransformation( const MapMode& rMapMode ) const; - basegfx::B2DHomMatrix GetInverseViewTransformation( const MapMode& rMapMode ) const; - - - /** Set an offset in pixel - - This method offsets every drawing operation that converts its - coordinates to pixel by the given value. Normally, the effect - can be achieved by setting a MapMode with a different - origin. Unfortunately, this origin is in logical coordinates - and can lead to rounding errors (see #102532# for details). - - @attention This offset is only applied when converting to - pixel, i.e. some output modes such as metafile recordings - might be completely unaffected by this method! Use with - care. Furthermore, if the OutputDevice's MapMode is the - default (that's MAP_PIXEL), then, too, any pixel offset set is - ignored. This might be unintuitive for cases, but would have - been far more fragile to implement. What's more, the reason - why the pixel offset was introduced (avoiding rounding errors) - does not apply for MAP_PIXEL, because one can always use the - MapMode origin then. - - @param rOffset - The offset in pixel - */ - void SetPixelOffset( const Size& rOffset ); - - /** Get the offset in pixel - - @see OutputDevice::SetPixelOffset for details - - @return the current offset in pixel - */ - Size GetPixelOffset() const; - - Point LogicToPixel( const Point& rLogicPt ) const; - Size LogicToPixel( const Size& rLogicSize ) const; - Rectangle LogicToPixel( const Rectangle& rLogicRect ) const; - Polygon LogicToPixel( const Polygon& rLogicPoly ) const; - PolyPolygon LogicToPixel( const PolyPolygon& rLogicPolyPoly ) const; - Region LogicToPixel( const Region& rLogicRegion )const; - Point LogicToPixel( const Point& rLogicPt, - const MapMode& rMapMode ) const; - Size LogicToPixel( const Size& rLogicSize, - const MapMode& rMapMode ) const; - Rectangle LogicToPixel( const Rectangle& rLogicRect, - const MapMode& rMapMode ) const; - Polygon LogicToPixel( const Polygon& rLogicPoly, - const MapMode& rMapMode ) const; - basegfx::B2DPolyPolygon LogicToPixel( const basegfx::B2DPolyPolygon& rLogicPolyPoly, - const MapMode& rMapMode ) const; - Point PixelToLogic( const Point& rDevicePt ) const; - Size PixelToLogic( const Size& rDeviceSize ) const; - Rectangle PixelToLogic( const Rectangle& rDeviceRect ) const; - Polygon PixelToLogic( const Polygon& rDevicePoly ) const; - PolyPolygon PixelToLogic( const PolyPolygon& rDevicePolyPoly ) const; - basegfx::B2DPolyPolygon PixelToLogic( const basegfx::B2DPolyPolygon& rDevicePolyPoly ) const; - Region PixelToLogic( const Region& rDeviceRegion ) const; - Point PixelToLogic( const Point& rDevicePt, - const MapMode& rMapMode ) const; - Size PixelToLogic( const Size& rDeviceSize, - const MapMode& rMapMode ) const; - Rectangle PixelToLogic( const Rectangle& rDeviceRect, - const MapMode& rMapMode ) const; - Polygon PixelToLogic( const Polygon& rDevicePoly, - const MapMode& rMapMode ) const; - basegfx::B2DPolygon PixelToLogic( const basegfx::B2DPolygon& rDevicePoly, - const MapMode& rMapMode ) const; - basegfx::B2DPolyPolygon PixelToLogic( const basegfx::B2DPolyPolygon& rDevicePolyPoly, - const MapMode& rMapMode ) const; - Point LogicToLogic( const Point& rPtSource, - const MapMode* pMapModeSource, - const MapMode* pMapModeDest ) const; - Size LogicToLogic( const Size& rSzSource, - const MapMode* pMapModeSource, - const MapMode* pMapModeDest ) const; - Rectangle LogicToLogic( const Rectangle& rRectSource, - const MapMode* pMapModeSource, - const MapMode* pMapModeDest ) const; - static Point LogicToLogic( const Point& rPtSource, - const MapMode& rMapModeSource, - const MapMode& rMapModeDest ); - static Size LogicToLogic( const Size& rSzSource, - const MapMode& rMapModeSource, - const MapMode& rMapModeDest ); - static Rectangle LogicToLogic( const Rectangle& rRectSource, - const MapMode& rMapModeSource, - const MapMode& rMapModeDest ); - static long LogicToLogic( long nLongSource, - MapUnit eUnitSource, - MapUnit eUnitDest ); - - static basegfx::B2DPolygon LogicToLogic( const basegfx::B2DPolygon& rPoly, - const MapMode& rMapModeSource, - const MapMode& rMapModeDest ); - - Size GetOutputSizePixel() const - { return Size( mnOutWidth, mnOutHeight ); } - long GetOutputWidthPixel() const { return mnOutWidth; } - long GetOutputHeightPixel() const { return mnOutHeight; } - long GetOutOffXPixel() const { return mnOutOffX; } - long GetOutOffYPixel() const { return mnOutOffY; } - - Size GetOutputSize() const - { return PixelToLogic( GetOutputSizePixel() ); } - - void Erase(); - void Erase( const Rectangle& rRect ) { DrawWallpaper( rRect, GetBackground() ); } - - sal_Bool AddTempDevFont( const String& rFileURL, const String& rFontName ); - int GetDevFontCount() const; - FontInfo GetDevFont( int nDevFontIndex ) const; - int GetDevFontSizeCount( const Font& ) const; - Size GetDevFontSize( const Font& rFont, int nSizeIndex ) const; - sal_Bool IsFontAvailable( const String& rFontName ) const; - - FontMetric GetFontMetric() const; - FontMetric GetFontMetric( const Font& rFont ) const; - sal_Bool GetFontCharMap( FontCharMap& rFontCharMap ) const; - bool GetFontCapabilities( vcl::FontCapabilities& rFontCapabilities ) const; - - xub_StrLen HasGlyphs( const Font& rFont, const String& rStr, - xub_StrLen nIndex = 0, xub_StrLen nLen = STRING_LEN ) const; - - long GetMinKashida() const; - - // i60594 - // validate kashida positions against the current font - // returns count of invalid kashida positions - xub_StrLen ValidateKashidas ( const String& rTxt, - xub_StrLen nIdx, xub_StrLen nLen, - xub_StrLen nKashCount, // number of suggested kashida positions (in) - const xub_StrLen* pKashidaPos, // suggested kashida positions (in) - xub_StrLen* pKashidaPosDropped // invalid kashida positions (out) - ) const; - - sal_uInt16 GetBitCount() const; - - sal_Bool GetTextIsRTL( const OUString&, sal_Int32 nIndex, sal_Int32 nLen ) const; - - /** Query the existence and depth of the alpha channel - - @return 0, if no alpha channel available, and the bit depth of - the alpha channel otherwise. - */ - sal_uInt16 GetAlphaBitCount() const; - sal_uLong GetColorCount() const; - - void Push( sal_uInt16 nFlags = PUSH_ALL ); - void Pop(); - // returns the curren stack depth; that is the number of Push() calls minus the number of Pop() calls - // this should not normally be used since Push and Pop must always be used symmetrically - // however this may be e.g. a help when debugging code in which this somehow is not the case - sal_uInt32 GetGCStackDepth() const; - - /** Query availability of alpha channel - - @return sal_True, if this device has an alpha channel. - */ - sal_Bool HasAlpha(); - - /// request XCanvas render interface for this OutputDevice - ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XCanvas > GetCanvas() const; - - ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics > CreateUnoGraphics(); - VCLXGraphicsList_impl* GetUnoGraphicsList() const { return mpUnoGraphicsList; } - VCLXGraphicsList_impl* CreateUnoGraphicsList() - { - mpUnoGraphicsList = new VCLXGraphicsList_impl(); - return mpUnoGraphicsList; - } - - static void BeginFontSubstitution(); - static void EndFontSubstitution(); - static void AddFontSubstitute( const OUString& rFontName, - const OUString& rReplaceFontName, - sal_uInt16 nFlags = 0 ); - static void RemoveFontSubstitute( sal_uInt16 n ); - static sal_uInt16 GetFontSubstituteCount(); - - static Font GetDefaultFont( sal_uInt16 nType, - LanguageType eLang, - sal_uLong nFlags, - const OutputDevice* pOutDev = NULL ); - - /** helper method removing transparencies from a metafile (e.g. for printing) - - @returns - true: transparencies were removed - false: output metafile is unchanged input metafile - - @attention this is a member method, so current state can influence the result ! - @attention the output metafile is prepared in pixel mode for the currentOutputDevice - state. It can not be moved or rotated reliably anymore. - */ - bool RemoveTransparenciesFromMetaFile( const GDIMetaFile& rInMtf, GDIMetaFile& rOutMtf, - long nMaxBmpDPIX, long nMaxBmpDPIY, - bool bReduceTransparency, - bool bTransparencyAutoMode, - bool bDownsampleBitmaps, - const Color& rBackground = Color( COL_TRANSPARENT ) - ); - /** Retrieve downsampled and cropped bitmap - - @attention This method ignores negative rDstSz values, thus - mirroring must happen outside this method (e.g. in DrawBitmap) - */ - Bitmap GetDownsampledBitmap( const Size& rDstSz, - const Point& rSrcPt, const Size& rSrcSz, - const Bitmap& rBmp, long nMaxBmpDPIX, long nMaxBmpDPIY ); - - //------------------------------------- - // Native Widget Rendering functions - //------------------------------------- - - // These all just call through to the private mpGraphics functions of the same name. - - // Query the platform layer for control support - sal_Bool IsNativeControlSupported( ControlType nType, ControlPart nPart ); - - // Query the native control to determine if it was acted upon - sal_Bool HitTestNativeControl( ControlType nType, - ControlPart nPart, - const Rectangle& rControlRegion, - const Point& aPos, - sal_Bool& rIsInside ); - - // Request rendering of a particular control and/or part - sal_Bool DrawNativeControl( ControlType nType, - ControlPart nPart, - const Rectangle& rControlRegion, - ControlState nState, - const ImplControlValue& aValue, - OUString aCaption ); - - // Query the native control's actual drawing region (including adornment) - sal_Bool GetNativeControlRegion( ControlType nType, - ControlPart nPart, - const Rectangle& rControlRegion, - ControlState nState, - const ImplControlValue& aValue, - OUString aCaption, - Rectangle &rNativeBoundingRegion, - Rectangle &rNativeContentRegion ) const; - -}; - -#endif // _SV_OUTDEV_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/pdfextoutdevdata.hxx b/vcl/inc/vcl/pdfextoutdevdata.hxx deleted file mode 100644 index 59a118945cd4..000000000000 --- a/vcl/inc/vcl/pdfextoutdevdata.hxx +++ /dev/null @@ -1,492 +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 . - */ - -#ifndef _VCL_PDFEXTOUTDEVDATA_HXX -#define _VCL_PDFEXTOUTDEVDATA_HXX - -#include <vcl/dllapi.h> - -#include <vcl/pdfwriter.hxx> -#include <vcl/extoutdevdata.hxx> -#include <vcl/gdimtf.hxx> -#include <vcl/mapmod.hxx> -#include <tools/rtti.hxx> -#include <vector> -#include <deque> - -class Graphic; - -namespace vcl { class PDFWriter; } - -namespace vcl -{ - -/* - A PDFExtOutDevBookmarkEntry is being created by the EditEngine if - a bookmark URL has been parsed. The Application is requested to take - care of each bookmark entry by emptying out the bookmark vector. -*/ -struct PDFExtOutDevBookmarkEntry -{ - /** ID of the link pointing to the bookmark, or -1 if the entry denotes a destination instead of a link. - */ - sal_Int32 nLinkId; - - /** ID of the named destination denoted by the bookmark, or -1 if the entry denotes a link instead of a named destination. - */ - sal_Int32 nDestId; - - /** link target name, respectively destination name - */ - OUString aBookmark; - - PDFExtOutDevBookmarkEntry() - :nLinkId( -1 ) - ,nDestId( -1 ) - ,aBookmark() - { - } -}; - -/* - Class that is being set at the OutputDevice allowing the - application to send enhanced PDF commands like CreateLink -*/ -struct PageSyncData; -struct GlobalSyncData; -class VCL_DLLPUBLIC PDFExtOutDevData : public ExtOutDevData -{ - - const OutputDevice& mrOutDev; - - sal_Bool mbTaggedPDF; - sal_Bool mbExportNotes; - sal_Bool mbExportNotesPages; - sal_Bool mbTransitionEffects; - sal_Bool mbUseLosslessCompression; - sal_Bool mbReduceImageResolution; - sal_Bool mbExportFormFields; - sal_Bool mbExportBookmarks; - sal_Bool mbExportHiddenSlides; - sal_Bool mbExportNDests; //i56629 - sal_Int32 mnFormsFormat; - sal_Int32 mnPage; - com::sun::star::lang::Locale maDocLocale; - - PageSyncData* mpPageSyncData; - GlobalSyncData* mpGlobalSyncData; - - std::vector< PDFExtOutDevBookmarkEntry > maBookmarks; - -public : - - TYPEINFO(); - PDFExtOutDevData( const OutputDevice& rOutDev ); - virtual ~PDFExtOutDevData(); - - sal_Bool PlaySyncPageAct( PDFWriter& rWriter, sal_uInt32& rCurGDIMtfAction ); - void ResetSyncData(); - - void PlayGlobalActions( PDFWriter& rWriter ); - - - - sal_Bool GetIsExportNotes() const; - void SetIsExportNotes( const sal_Bool bExportNotes ); - - sal_Bool GetIsExportNotesPages() const; - void SetIsExportNotesPages( const sal_Bool bExportNotesPages ); - - sal_Bool GetIsExportTaggedPDF() const; - void SetIsExportTaggedPDF( const sal_Bool bTaggedPDF ); - - sal_Bool GetIsExportTransitionEffects() const; - void SetIsExportTransitionEffects( const sal_Bool bTransitionalEffects ); - - sal_Bool GetIsExportFormFields() const; - void SetIsExportFormFields( const sal_Bool bExportFormFields ); - - void SetFormsFormat( const sal_Int32 nFormsFormat ); - - sal_Bool GetIsExportBookmarks() const; - void SetIsExportBookmarks( const sal_Bool bExportBookmarks ); - - sal_Bool GetIsExportHiddenSlides() const; - void SetIsExportHiddenSlides( const sal_Bool bExportHiddenSlides ); - - sal_Bool GetIsExportNamedDestinations() const; //i56629 - void SetIsExportNamedDestinations( const sal_Bool bExportNDests ); //i56629 - - // PageNumber, Compression is being set by the PDFExport - sal_Int32 GetCurrentPageNumber() const; - void SetCurrentPageNumber( const sal_Int32 nPage ); - - sal_Bool GetIsLosslessCompression() const; - void SetIsLosslessCompression( const sal_Bool bLosslessCompression ); - - sal_Bool GetIsReduceImageResolution() const; - void SetIsReduceImageResolution( const sal_Bool bReduceImageResolution ); - - const com::sun::star::lang::Locale& GetDocumentLocale() const; - void SetDocumentLocale( const com::sun::star::lang::Locale& rLoc ); - - std::vector< PDFExtOutDevBookmarkEntry >& GetBookmarks(); - - /** Start a new group of render output - - Use this method to group render output. - */ - void BeginGroup(); - - /** End render output - - This method ends grouped render output, that can be - represented by a GfxLink. This is typically used for - external graphic files, such as JPEGs, EPS files etc. - The BeginGroup/EndGroup calls must exactly enclose the - relevant OutputDevice calls issued to render the - graphic the normal way. - - @param rGraphic - The link to the original graphic - - @param nTransparency - Eight bit transparency value, with 0 denoting full opacity, - and 255 full transparency. - - @param rOutputRect - The output rectangle of the graphic. - - @param rVisibleOutputRect - The visible part of the output. This might be less than - rOutputRect, e.g. for cropped graphics. - */ - void EndGroup( const Graphic& rGraphic, - sal_uInt8 nTransparency, - const Rectangle& rOutputRect, - const Rectangle& rVisibleOutputRect ); -//--->i56629 - /** Create a new named destination to be used in a link to this document from another PDF document - (see PDF spec 1.4, 8.2.1) - - @parm sDestName - the name this destination will be addressed with from others PDF document - - @param rRect - target rectangle on page to be displayed if dest is jumped to - - @param nPageNr - number of page the dest is on (as returned by NewPage) - or -1 in which case the current page is used - - @param eType - what dest type to use - - @returns - the destination id (to be used in SetLinkDest) or - -1 if page id does not exist - */ - sal_Int32 CreateNamedDest( const String& sDestName, const Rectangle& rRect, sal_Int32 nPageNr = -1, PDFWriter::DestAreaType eType = PDFWriter::XYZ ); - - /** registers a destination for which a destinatin ID needs to be known immediately, instead of later on setting it via - SetLinkDest. - - This is used in contexts where a destination is referenced by means other than a link. - - Later in the export process, a call to DescribeRegisteredDest must be made, providing the information about - the destination. - - @return - the unique Id of the destination - */ - sal_Int32 RegisterDest(); - - /** provides detailed information about a destination range which previously has been registered using RegisterDest. - */ - void DescribeRegisteredDest( sal_Int32 nDestId, const Rectangle& rRect, sal_Int32 nPageNr = -1, PDFWriter::DestAreaType eType = PDFWriter::XYZ ); - -//<---i56629 - - /** Create a new destination to be used in a link - - @param rRect - target rectangle on page to be displayed if dest is jumped to - - @param nPageNr - number of page the dest is on (as returned by NewPage) - or -1 in which case the current page is used - - @param eType - what dest type to use - - @returns - the destination id (to be used in SetLinkDest) or - -1 if page id does not exist - */ - sal_Int32 CreateDest( const Rectangle& rRect, sal_Int32 nPageNr = -1, PDFWriter::DestAreaType eType = PDFWriter::XYZ ); - /** Create a new link on a page - - @param rRect - active rectangle of the link (that is the area that has to be - hit to activate the link) - - @param nPageNr - number of page the link is on (as returned by NewPage) - or -1 in which case the current page is used - - @returns - the link id (to be used in SetLinkDest, SetLinkURL) or - -1 if page id does not exist - */ - sal_Int32 CreateLink( const Rectangle& rRect, sal_Int32 nPageNr = -1 ); - /** Set the destination for a link - <p>will change a URL type link to a dest link if necessary</p> - - @param nLinkId - the link to be changed - - @param nDestId - the dest the link shall point to - @returns - 0 for success - -1 in case the link id does not exist - -2 in case the dest id does not exist - */ - sal_Int32 SetLinkDest( sal_Int32 nLinkId, sal_Int32 nDestId ); - /** Set the URL for a link - <p>will change a dest type link to an URL type link if necessary</p> - @param nLinkId - the link to be changed - - @param rURL - the URL the link shall point to. - there will be no error checking or any kind of - conversion done to this parameter execept this: - it will be output as 7bit Ascii. The URL - will appear literally in the PDF file produced - - @returns - 0 for success - -1 in case the link id does not exist - */ - sal_Int32 SetLinkURL( sal_Int32 nLinkId, const OUString& rURL ); - /** Create a new outline item - - @param nParent - declares the parent of the new item in the outline hierarchy. - An invalid value will result in a new toplevel item. - - @param rText - sets the title text of the item - - @param nDestId - declares which Dest (created with CreateDest) the outline item - will point to - - @returns - the outline item id of the new item - */ - sal_Int32 CreateOutlineItem( sal_Int32 nParent = 0, const OUString& rText = OUString(), sal_Int32 nDestID = -1 ); - - /** Create a new note on a page - - @param rRect - active rectangle of the note (that is the area that has to be - hit to popup the annotation) - - @param rNote - specifies the contents of the note - - @param nPageNr - number of page the note is on (as returned by NewPage) - or -1 in which case the current page is used - */ - void CreateNote( const Rectangle& rRect, const PDFNote& rNote, sal_Int32 nPageNr = -1 ); - - /** begin a new logical structure element - - BeginStructureElement/EndStructureElement calls build the logical structure - of the PDF - the basis for tagged PDF. Structural elements are implemented - using marked content tags. Each structural element can contain sub elements - (e.g. a section can contain a heading and a paragraph). The structure hierarchy - is build automatically from the Begin/EndStructureElement calls. - - A structural element need not be contained on one page; e.g. paragraphs often - run from one page to the next. In this case the corresponding EndStructureElement - must be called while drawing the next page. - - BeginStructureElement and EndStructureElement must be called only after - <member scope="vcl">PDFWriter::NewPage</member> has been called and before - <member scope="vcl">PDFWriter::Emit</member>gets called. The current page - number is an implicit context parameter for Begin/EndStructureElement. - - For pagination artifacts that are not part of the logical structure - of the document (like header, footer or page number) the special - StructElement <code>NonStructElement</code> exists. To place content - outside of the struture tree simply call - <code>BeginStructureElement( NonStructElement )</code> then draw your - content and then call <code>EndStructureElement()</code>. Any children - of a <code>NonStructElement</code> will not be part of the structure as well. - - @param eType - denotes what kind of element to begin (e.g. a heading or paragraph) - - @param rAlias - the specified alias will be used as structure tag. Also an entry in the PDF's - role map will be created mapping alias to regular structure type. - - @returns - the id of the newly created structural element - */ - sal_Int32 BeginStructureElement( PDFWriter::StructElement eType, const OUString& rAlias = OUString() ); - /** end a logical structure element - - @see BeginStructureElement - */ - void EndStructureElement(); - /** set the current structure element - - <p> - For different purposes it may be useful to paint a structure element's - content discontinously. In that case an already existing structure element - can be appended to by using <code>SetCurrentStructureElement</code>. The - refenrenced structure element becomes the current structure element with - all consequences: all following structure elements are appended as children - of the current element. - </p> - - @param nElement - the id of the new current structure element - - @returns - <true/> if the current structure element could be set successfully - <false/> if the current structure element could not be changed - (e.g. if the passed element id is invalid) - */ - bool SetCurrentStructureElement( sal_Int32 nElement ); - /** get the current structure element id - - @returns - the id of the current structure element - */ - sal_Int32 GetCurrentStructureElement(); - - /** set a structure attribute on the current structural element - - SetStructureAttribute sets an attribute of the current structural element to a - new value. A consistency check is performed before actually setting the value; - if the check fails, the function returns <FALSE/> and the attribute remains - unchanged. - - @param eAttr - denotes what attribute to change - - @param eVal - the value to set the attribute to - - @returns - <TRUE/> if the value was valid and the change has been performed, - <FALSE/> if the attribute or value was invalid; attribute remains unchanged - */ - bool SetStructureAttribute( PDFWriter::StructAttribute eAttr, PDFWriter::StructAttributeValue eVal ); - /** set a structure attribute on the current structural element - - SetStructureAttributeNumerical sets an attribute of the current structural element - to a new numerical value. A consistency check is performed before actually setting - the value; if the check fails, the function returns <FALSE/> and the attribute - remains unchanged. - - @param eAttr - denotes what attribute to change - - @param nValue - the value to set the attribute to - - @returns - <TRUE/> if the value was valid and the change has been performed, - <FALSE/> if the attribute or value was invalid; attribute remains unchanged - */ - bool SetStructureAttributeNumerical( PDFWriter::StructAttribute eAttr, sal_Int32 nValue ); - /** set the bounding box of a structural element - - SetStructureBoundingBox sets the BBox attribute to a new value. Since the BBox - attribute can only be applied to <code>Table</code>, <code>Figure</code>, - <code>Form</code> and <code>Formula</code> elements, a call of this function - for other element types will be ignored and the BBox attribute not be set. - - @param rRect - the new bounding box for the structural element - */ - void SetStructureBoundingBox( const Rectangle& rRect ); - - /** set the ActualText attribute of a structural element - - ActualText contains the Unicode text without layout artifacts that is shown by - a structural element. For example if a line is ended prematurely with a break in - a word and continued on the next line (e.g. "happen-<newline>stance") the - corresponding ActualText would contain the unbroken line (e.g. "happenstance"). - - @param rText - contains the complete logical text the structural element displays. - */ - void SetActualText( const String& rText ); - - /** set the Alt attribute of a strutural element - - Alt is s replacement text describing the contents of a structural element. This - is mainly used by accessibility applications; e.g. a screen reader would read - the Alt replacement text for an image to a visually impaired user. - - @param rText - contains the replacement text for the structural element - */ - void SetAlternateText( const String& rText ); - - /** Sets the transitional effect to be applied when the current page gets shown. - - @param eType - the kind of effect to be used; use Regular to disable transitional effects - for this page - - @param nMilliSec - the duration of the transitional effect in milliseconds; - set 0 to disable transitional effects - - @param nPageNr - the page number to apply the effect to; -1 denotes the current page - */ - void SetPageTransition( PDFWriter::PageTransition eType, sal_uInt32 nMilliSec, sal_Int32 nPageNr = -1 ); - - /** create a new form control - - This function creates a new form control in the PDF and sets its various - properties. Do not pass an actual AnyWidget as <code>rControlType</code> - will be cast to the type described by the type member. - - @param rControlType - a descendant of <code>AnyWidget</code> determing the control's properties - */ - void CreateControl( const PDFWriter::AnyWidget& rControlType, sal_Int32 nPageNr = -1 ); -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/pdfwriter.hxx b/vcl/inc/vcl/pdfwriter.hxx deleted file mode 100644 index 3bfd5ed2f66f..000000000000 --- a/vcl/inc/vcl/pdfwriter.hxx +++ /dev/null @@ -1,1310 +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 . - */ -#ifndef _VCL_PDFWRITER_HXX -#define _VCL_PDFWRITER_HXX - -#include <sal/types.h> - -#include <tools/gen.hxx> -#include <tools/string.hxx> -#include <tools/color.hxx> - -#include <vcl/dllapi.h> -#include <vcl/vclenum.hxx> -#include <vcl/font.hxx> -#include <vcl/graphictools.hxx> - -#include "com/sun/star/io/XOutputStream.hpp" -#include "com/sun/star/beans/XMaterialHolder.hpp" -#include "com/sun/star/security/XCertificate.hpp" -#include "com/sun/star/lang/Locale.hpp" - -#include <boost/scoped_ptr.hpp> - -#include <list> -#include <vector> -#include <set> - -class Font; -class Point; -class OutputDevice; -class GDIMetaFile; -class MapMode; -class Polygon; -class LineInfo; -class PolyPolygon; -class Bitmap; -class BitmapEx; -class Image; -class Gradient; -class Hatch; -class Wallpaper; - -namespace vcl -{ - -class PDFExtOutDevData; -class PDFWriterImpl; - -struct PDFNote -{ - String Title; // optional title for the popup containing the note - String Contents; // contents of the note -}; - -class VCL_DLLPUBLIC PDFOutputStream -{ - public: - virtual ~PDFOutputStream(); - virtual void write( const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xStream ) = 0; -}; - -class VCL_DLLPUBLIC PDFWriter -{ - boost::scoped_ptr<PDFWriterImpl> pImplementation; -public: - // extended line info - enum CapType { capButt, capRound, capSquare }; - enum JoinType { joinMiter, joinRound, joinBevel }; - struct ExtLineInfo - { - double m_fLineWidth; - double m_fTransparency; - CapType m_eCap; - JoinType m_eJoin; - double m_fMiterLimit; - std::vector< double > m_aDashArray; - - ExtLineInfo() : m_fLineWidth( 0.0 ), - m_fTransparency( 0.0 ), - m_eCap( capButt ), - m_eJoin( joinMiter ), - m_fMiterLimit( 10.0 ) - {} - }; - - enum Orientation { Portrait, Landscape, Seascape, Inherit }; - - // in case the below enum is added PDF_1_6 PDF_1_7, please add them just after PDF_1_5 - enum PDFVersion { PDF_1_2, PDF_1_3, PDF_1_4, PDF_1_5, PDF_A_1 };//i59651, PDF/A-1b & -1a, only -1b implemented for now - // for the meaning of DestAreaType please look at PDF Reference Manual - // version 1.4 section 8.2.1, page 475 - enum DestAreaType { XYZ, Fit, FitHorizontal, FitVertical, - FitRectangle, FitPageBoundingBox, FitPageBoundingBoxHorizontal, - FitPageBoundingBoxVertical - }; - - // for a definition of structural element types please refer to - // PDF Reference, 3rd ed. section 9.7.4 - enum StructElement - { - // special element to place outside the structure hierarchy - NonStructElement, - // Grouping elements - Document, Part, Article, Section, Division, BlockQuote, - Caption, TOC, TOCI, Index, - - // block level elements - Paragraph, Heading, H1, H2, H3, H4, H5, H6, - List, ListItem, LILabel, LIBody, - Table, TableRow, TableHeader, TableData, - - // inline level elements - Span, Quote, Note, Reference, BibEntry, Code, Link, - - // illustration elements - Figure, Formula, Form - }; - - enum StructAttribute - { - Placement, WritingMode, SpaceBefore, SpaceAfter, StartIndent, EndIndent, - TextIndent, TextAlign, Width, Height, BlockAlign, InlineAlign, - LineHeight, BaselineShift, TextDecorationType, ListNumbering, - RowSpan, ColSpan, - - // link destination is an artificial attribute that sets - // the link annotation ID of a Link element - // further note: since structure attributes can only be - // set during content creation, but links can be - // created after the fact, it is possible to set - // an arbitrary id as structure attribute here. In this - // case the arbitrary id has to be passed again when the - // actual link annotation is created via SetLinkPropertyID - LinkAnnotation, - // Language currently sets a LanguageType (see i18nlangtag/lang.h) - // which will be internally changed to a corresponding locale - Language - }; - - enum StructAttributeValue - { - Invalid, - NONE, - // Placement - Block, Inline, Before, After, Start, End, - // WritingMode - LrTb, RlTb, TbRl, - // TextAlign - Center, Justify, - // Width, Height, - Auto, - // BlockAlign - Middle, - // LineHeight - Normal, - // TextDecorationType - Underline, Overline, LineThrough, - // ListNumbering - Disc, Circle, Square, Decimal, UpperRoman, LowerRoman, UpperAlpha, LowerAlpha - }; - - enum PageTransition - { - Regular, - SplitHorizontalInward, SplitHorizontalOutward, - SplitVerticalInward, SplitVerticalOutward, - BlindsHorizontal, BlindsVertical, - BoxInward, BoxOutward, - WipeLeftToRight, WipeBottomToTop, WipeRightToLeft, WipeTopToBottom, - Dissolve, - GlitterLeftToRight, GlitterTopToBottom, GlitterTopLeftToBottomRight - }; - - enum WidgetType - { - PushButton, RadioButton, CheckBox, Edit, ListBox, ComboBox, Hierarchy, - Signature - }; - - enum WidgetState - { - // PushButton, RadioButton, CheckBox; Down means selected for - // RadioButton and CheckBox - Up, Down - }; - - enum ErrorCode - { - // transparent object occurred and was draw opaque because - // PDF/A does not allow transparency - Warning_Transparency_Omitted_PDFA, - - // transparent object occurred but is only supported since - // PDF 1.4 - Warning_Transparency_Omitted_PDF13, - - // a form action was exported that is not suitable for PDF/A - // the action was skipped - Warning_FormAction_Omitted_PDFA, - - // transparent objects were converted to a bitmap in order - // to removetransparencies from the output - Warning_Transparency_Converted - }; - - struct VCL_DLLPUBLIC AnyWidget - { - protected: - WidgetType Type; // primitive RTTI - public: - OUString Name; // a distinct name to identify the control - OUString Description;// descriptive text for the contro (e.g. for tool tip) - OUString Text; // user text to appear on the control - sal_uInt16 TextStyle; // style flags - bool ReadOnly; - Rectangle Location; // describes the area filled by the control - bool Border; // true: widget should have a border, false: no border - Color BorderColor;// COL_TRANSPARENT and Border=true means get color from application settings - bool Background; // true: widget shall draw its background, false: no background - Color BackgroundColor; // COL_TRANSPARENT and Background=true means get color from application settings - Font TextFont; // an empty font will be replaced by the - // appropriate font from the user settings - Color TextColor; // COL_TRANSPARENT will be replaced by the appropriate color from application settings - sal_Int32 TabOrder; // lowest number is first in tab order - - /* style flags for text are those for OutputDevice::DrawText - allowed values are: - TEXT_DRAW_LEFT, TEXT_DRAW_CENTER, TEXT_DRAW_RIGHT, TEXT_DRAW_TOP, - TEXT_DRAW_VCENTER, TEXT_DRAW_BOTTOM, - TEXT_DRAW_MULTILINE, TEXT_DRAW_WORDBREAK - - if TextStyle is 0, then each control will fill in default values - */ - - // note: the Name member comprises the field name of the resulting - // PDF field names need to be globally unique. Therefore if any - // Widget with an already used name is created, the name will be - // made unique by adding an underscore ('_') and an ascending number - // to the name. - - AnyWidget( WidgetType eType ) : - Type( eType ), - TextStyle( 0 ), - ReadOnly( false ), - Border( false ), - BorderColor( COL_TRANSPARENT ), - Background( false ), - BackgroundColor( COL_TRANSPARENT ), - TextColor( COL_TRANSPARENT ), - TabOrder( -1 ) - {} - virtual ~AnyWidget(); - - WidgetType getType() const { return Type; } - - virtual AnyWidget* Clone() const = 0; - - protected: - // note that this equals the default compiler-generated copy-ctor, but we want to have it - // protected, to only allow sub classes to access it - AnyWidget( const AnyWidget& rSource ) - :Type( rSource.Type ) - ,Name( rSource.Name ) - ,Description( rSource.Description ) - ,Text( rSource.Text ) - ,TextStyle( rSource.TextStyle ) - ,ReadOnly( rSource.ReadOnly ) - ,Location( rSource.Location ) - ,Border( rSource.Border ) - ,BorderColor( rSource.BorderColor ) - ,Background( rSource.Background ) - ,BackgroundColor( rSource.BackgroundColor ) - ,TextFont( rSource.TextFont ) - ,TextColor( rSource.TextColor ) - ,TabOrder( rSource.TabOrder ) - { - } - AnyWidget& operator=( const AnyWidget& ); // never implemented - }; - - struct PushButtonWidget : public AnyWidget - { - /* If Dest is set to a valid link destination, - Then pressing the button will act as a goto - action within the document. - - Else: - An empty URL means this button will reset the form. - - If URL is not empty and Submit is set, then the URL - contained will be set as the URL to submit the - form to. In this case the submit method will be - either GET if SubmitGet is true or POST if - SubmitGet is false. - - If URL is not empty and Submit is clear, then - the URL contained will be interpreted as a - hyperlink to be executed on pushing the button. - - There will be no error checking or any kind of - conversion done to the URL parameter execept this: - it will be output as 7bit Ascii. The URL - will appear literally in the PDF file produced - */ - sal_Int32 Dest; - OUString URL; - bool Submit; - bool SubmitGet; - - PushButtonWidget() - : AnyWidget( vcl::PDFWriter::PushButton ), - Dest( -1 ), Submit( false ), SubmitGet( false ) - {} - - virtual AnyWidget* Clone() const - { - return new PushButtonWidget( *this ); - } - }; - - struct CheckBoxWidget : public AnyWidget - { - bool Checked; - bool ButtonIsLeft; - - CheckBoxWidget() - : AnyWidget( vcl::PDFWriter::CheckBox ), - Checked( false ), - ButtonIsLeft( true ) - {} - - virtual AnyWidget* Clone() const - { - return new CheckBoxWidget( *this ); - } - }; - - struct RadioButtonWidget : public AnyWidget - { - bool Selected; - sal_Int32 RadioGroup; - bool ButtonIsLeft; - OUString OnValue; // the value of the radio button if it is selected - - RadioButtonWidget() - : AnyWidget( vcl::PDFWriter::RadioButton ), - Selected( false ), - RadioGroup( 0 ), - ButtonIsLeft( true ) - {} - - virtual AnyWidget* Clone() const - { - return new RadioButtonWidget( *this ); - } - // radio buttons having the same RadioGroup id comprise one - // logical radio button group, that is at most one of the RadioButtons - // in a group can be checked at any time - // - // note: a PDF radio button field consists of a named field - // containing unnamed checkbox child fields. The name of the - // radio button field is taken from the first RadioButtonWidget created - // in the group - }; - - struct EditWidget : public AnyWidget - { - bool MultiLine; // whether multiple lines are allowed - bool Password; // visible echo off - bool FileSelect; // field is a file selector - sal_Int32 MaxLen; // maximum field length in characters, 0 means unlimited - - EditWidget() - : AnyWidget( vcl::PDFWriter::Edit ), - MultiLine( false ), - Password( false ), - FileSelect( false ), - MaxLen( 0 ) - {} - - virtual AnyWidget* Clone() const - { - return new EditWidget( *this ); - } - }; - - struct ListBoxWidget : public AnyWidget - { - bool DropDown; - bool Sort; - bool MultiSelect; - std::vector<OUString> Entries; - std::vector<sal_Int32> SelectedEntries; - // if MultiSelect is false only the first entry of SelectedEntries - // will be taken into account. the same is implicit for PDF < 1.4 - // since multiselect is a 1.4+ feature - - ListBoxWidget() - : AnyWidget( vcl::PDFWriter::ListBox ), - DropDown( false ), - Sort( false ), - MultiSelect( false ) - {} - - virtual AnyWidget* Clone() const - { - return new ListBoxWidget( *this ); - } - }; - - // note: PDF only supports dropdown comboboxes - struct ComboBoxWidget : public AnyWidget - { - bool Sort; - std::vector<OUString> Entries; - // set the current value in AnyWidget::Text - - ComboBoxWidget() - : AnyWidget( vcl::PDFWriter::ComboBox ), - Sort( false ) - {} - - virtual AnyWidget* Clone() const - { - return new ComboBoxWidget( *this ); - } - }; - - struct SignatureWidget: public AnyWidget - { - // Use Sig prefix for members to avoid conflict with - // the Location member of the AnyWidget which spcifies the coordinates - // of the signature - - OUString SigLocation; - OUString SigReason; - OUString SigContactInfo; - bool SigHidden; - - SignatureWidget() - : AnyWidget( vcl::PDFWriter::Signature ), - SigHidden( true ) - {} - - virtual AnyWidget* Clone() const - { - return new SignatureWidget( *this ); - } - }; - - enum ExportDataFormat { HTML, XML, FDF, PDF }; -// see 3.6.1 of PDF 1.4 ref for details, used for 8.1 PDF v 1.4 ref also -// These emuns are treated as integer while reading/writing to configuration - enum PDFViewerPageMode - { - ModeDefault, - UseOutlines, - UseThumbs - }; -// These emuns are treated as integer while reading/writing to configuration - enum PDFViewerAction - { - ActionDefault, - FitInWindow, - FitWidth, - FitVisible, - ActionZoom - }; -// These enums are treated as integer while reading/writing to configuration - enum PDFPageLayout - { - DefaultLayout, - SinglePage, - Continuous, - ContinuousFacing - }; - - // These emuns are treated as integer while reading/writing to configuration - //what default action to generate in a PDF hyperlink to external document/site - enum PDFLinkDefaultAction - { - URIAction, - URIActionDestination, - LaunchAction - }; - -/* -The following structure describes the permissions used in PDF security - */ - struct PDFEncryptionProperties - { - - bool Security128bit; // true to select 128 bit encryption, false for 40 bit - //for both 40 and 128 bit security, see 3.5.2 PDF v 1.4 table 3.15, v 1.5 and v 1.6 table 3.20. - bool CanPrintTheDocument; - bool CanModifyTheContent; - bool CanCopyOrExtract; - bool CanAddOrModify; - //for revision 3 (bit 128 security) only - bool CanFillInteractive; - bool CanExtractForAccessibility; - bool CanAssemble; - bool CanPrintFull; - - // encryption will only happen if EncryptionKey is not empty - // EncryptionKey is actually a construct out of OValue, UValue and DocumentIdentifier - // if these do not match, behavior is undefined, most likely an invalid PDF will be produced - // OValue, UValue, EncryptionKey and DocumentIdentifier can be computed from - // PDFDocInfo, Owner password and User password used the InitEncryption method which - // implements the algorithms described in the PDF reference chapter 3.5: Encryption - std::vector<sal_uInt8> OValue; - std::vector<sal_uInt8> UValue; - std::vector<sal_uInt8> EncryptionKey; - std::vector<sal_uInt8> DocumentIdentifier; - - //permission default set for 128 bit, accessibility only - PDFEncryptionProperties() : - Security128bit ( true ), - CanPrintTheDocument ( false ), - CanModifyTheContent ( false ), - CanCopyOrExtract ( false ), - CanAddOrModify ( false ), - CanFillInteractive ( false ), - CanExtractForAccessibility ( true ), - CanAssemble ( false ), - CanPrintFull ( false ) - {} - - - bool Encrypt() const - { return ! OValue.empty() && ! UValue.empty() && ! DocumentIdentifier.empty(); } - }; - - struct PDFDocInfo - { - String Title; // document title - String Author; // document author - String Subject; // subject - String Keywords; // keywords - String Creator; // application that created the original document - String Producer; // OpenOffice - }; - - enum ColorMode - { - DrawColor, DrawGreyscale - }; - - struct PDFWriterContext - { - /* must be a valid file: URL usable by osl */ - OUString URL; - /* the URL of the document being exported, used for relative links*/ - OUString BaseURL; - /*if relative to file system should be formed*/ - bool RelFsys;//i56629, i49415?, i64585? - /*the action to set the PDF hyperlink to*/ - PDFWriter::PDFLinkDefaultAction DefaultLinkAction; - //convert the .od? target file type in a link to a .pdf type - //this is examined before doing anything else - bool ConvertOOoTargetToPDFTarget; - //when the file type is .pdf, force the GoToR action - bool ForcePDFAction; - - /* decides the PDF language level to be produced */ - PDFVersion Version; - /* valid for PDF >= 1.4 - causes the MarkInfo entry in the document catalog to be set - */ - bool Tagged; - /* forces the embedding of PDF standard fonts */ - bool EmbedStandardFonts; - /* determines in which format a form - will be submitted. - */ - PDFWriter::ExportDataFormat SubmitFormat; - bool AllowDuplicateFieldNames; - bool FieldsUseSystemFonts; - /* the following data members are used to customize the PDF viewer - preferences - */ - /* see 3.6.1 PDF v 1.4 ref*/ - PDFWriter::PDFViewerPageMode PDFDocumentMode; - PDFWriter::PDFViewerAction PDFDocumentAction; - // in percent, valid only if PDFDocumentAction == ActionZoom - sal_Int32 Zoom; - - /* see 8.6 PDF v 1.4 ref - specifies whether to hide the viewer tool - bars when the document is active. - */ - bool HideViewerToolbar; - bool HideViewerMenubar; - bool HideViewerWindowControls; - bool FitWindow; - bool OpenInFullScreenMode; - bool CenterWindow; - bool DisplayPDFDocumentTitle; - PDFPageLayout PageLayout; - bool FirstPageLeft; - // intially visible page in viewer (starting with 0 for first page) - sal_Int32 InitialPage; - sal_Int32 OpenBookmarkLevels; // -1 means all levels - - PDFWriter::PDFEncryptionProperties Encryption; - PDFWriter::PDFDocInfo DocumentInfo; - - bool SignPDF; - OUString SignLocation; - OUString SignPassword; - OUString SignReason; - OUString SignContact; - com::sun::star::lang::Locale DocumentLocale; // defines the document default language - sal_uInt32 DPIx, DPIy; // how to handle MapMode( MAP_PIXEL ) - // 0 here specifies a default handling - PDFWriter::ColorMode ColorMode; - com::sun::star::uno::Reference< com::sun::star::security::XCertificate> SignCertificate; - - PDFWriterContext() : - RelFsys( false ), //i56629, i49415?, i64585? - DefaultLinkAction( PDFWriter::URIAction ), - ConvertOOoTargetToPDFTarget( false ), - ForcePDFAction( false ), - Version( PDFWriter::PDF_1_4 ), - Tagged( false ), - EmbedStandardFonts( false ), - SubmitFormat( PDFWriter::FDF ), - AllowDuplicateFieldNames( false ), - FieldsUseSystemFonts( true ), - PDFDocumentMode( PDFWriter::ModeDefault ), - PDFDocumentAction( PDFWriter::ActionDefault ), - Zoom( 100 ), - HideViewerToolbar( false ), - HideViewerMenubar( false ), - HideViewerWindowControls( false ), - FitWindow( false ), - OpenInFullScreenMode( false ), - CenterWindow( false ), - DisplayPDFDocumentTitle( true ), - PageLayout( PDFWriter::DefaultLayout ), - FirstPageLeft( false ), - InitialPage( 1 ), - OpenBookmarkLevels( -1 ), - Encryption(), - SignPDF( false ), - DPIx( 0 ), - DPIy( 0 ), - ColorMode( PDFWriter::DrawColor ), - SignCertificate( 0 ) - {} - }; - - PDFWriter( const PDFWriterContext& rContext, const com::sun::star::uno::Reference< com::sun::star::beans::XMaterialHolder >& ); - ~PDFWriter(); - - /** Returns an OutputDevice for formatting - <p>This Output device is guaranteed to use the same - font metrics as the resulting PDF file.</p> - - @returns - the reference output device - */ - OutputDevice* GetReferenceDevice(); - - /** Creates a new page to fill - <p>If width and height are not set the page size - is inherited from the page tree</p> - <p>other effects: - resets the graphics state: MapMode, Font - Colors and other state information MUST - be set again or are undefined. - </p> - - @returns - returns the page id of the new page - */ - sal_Int32 NewPage( sal_Int32 nPageWidth = 0, sal_Int32 nPageHeight = 0, Orientation eOrientation = Inherit ); - /** Play a metafile like an outputdevice would do - */ - struct PlayMetafileContext - { - int m_nMaxImageResolution; - bool m_bOnlyLosslessCompression; - int m_nJPEGQuality; - bool m_bTransparenciesWereRemoved; - - PlayMetafileContext() - : m_nMaxImageResolution( 0 ) - , m_bOnlyLosslessCompression( false ) - , m_nJPEGQuality( 90 ) - , m_bTransparenciesWereRemoved( false ) - {} - - }; - void PlayMetafile( const GDIMetaFile&, const PlayMetafileContext&, vcl::PDFExtOutDevData* pDevDat = NULL ); - - /* sets the document locale originally passed with the context to a new value - * only affects the output if used before calling <code>Emit/code>. - */ - void SetDocumentLocale( const com::sun::star::lang::Locale& rDocLocale ); - - /* finishes the file */ - bool Emit(); - - /* - * Get a list of errors that occurred during processing - * this should enable the producer to give feedback about - * any anomalies that might have occurred - */ - std::set< ErrorCode > GetErrors(); - - static com::sun::star::uno::Reference< com::sun::star::beans::XMaterialHolder > - InitEncryption( const OUString& i_rOwnerPassword, - const OUString& i_rUserPassword, - bool b128Bit - ); - - /* functions for graphics state */ - /* flag values: see vcl/outdev.hxx */ - void Push( sal_uInt16 nFlags = 0xffff ); - void Pop(); - - void SetClipRegion(); - void SetClipRegion( const basegfx::B2DPolyPolygon& rRegion ); - void MoveClipRegion( long nHorzMove, long nVertMove ); - void IntersectClipRegion( const Rectangle& rRect ); - void IntersectClipRegion( const basegfx::B2DPolyPolygon& rRegion ); - - void SetLayoutMode( sal_uLong nMode ); - void SetDigitLanguage( LanguageType eLang ); - - void SetLineColor( const Color& rColor ); - void SetLineColor() { SetLineColor( Color( COL_TRANSPARENT ) ); } - - void SetFillColor( const Color& rColor ); - void SetFillColor() { SetFillColor( Color( COL_TRANSPARENT ) ); } - - void SetFont( const Font& rNewFont ); - void SetTextColor( const Color& rColor ); - void SetTextFillColor(); - void SetTextFillColor( const Color& rColor ); - - void SetTextLineColor(); - void SetTextLineColor( const Color& rColor ); - void SetOverlineColor(); - void SetOverlineColor( const Color& rColor ); - void SetTextAlign( ::TextAlign eAlign ); - - void SetMapMode( const MapMode& rNewMapMode ); - - - /* actual drawing functions */ - void DrawText( const Point& rPos, const String& rText ); - - void DrawTextLine( const Point& rPos, long nWidth, - FontStrikeout eStrikeout, - FontUnderline eUnderline, - FontUnderline eOverline, - sal_Bool bUnderlineAbove = sal_False ); - void DrawTextArray( const Point& rStartPt, const XubString& rStr, - const sal_Int32* pDXAry = NULL, - xub_StrLen nIndex = 0, - xub_StrLen nLen = STRING_LEN ); - void DrawStretchText( const Point& rStartPt, sal_uLong nWidth, - const XubString& rStr, - xub_StrLen nIndex = 0, xub_StrLen nLen = STRING_LEN ); - void DrawText( const Rectangle& rRect, - const XubString& rStr, sal_uInt16 nStyle = 0 ); - - void DrawPixel( const Point& rPt, const Color& rColor ); - void DrawPixel( const Point& rPt ) - { DrawPixel( rPt, Color( COL_TRANSPARENT ) ); } - - void DrawLine( const Point& rStartPt, const Point& rEndPt ); - void DrawLine( const Point& rStartPt, const Point& rEndPt, - const LineInfo& rLineInfo ); - void DrawPolyLine( const Polygon& rPoly ); - void DrawPolyLine( const Polygon& rPoly, - const LineInfo& rLineInfo ); - void DrawPolyLine( const Polygon& rPoly, const ExtLineInfo& rInfo ); - void DrawPolygon( const Polygon& rPoly ); - void DrawPolyPolygon( const PolyPolygon& rPolyPoly ); - void DrawRect( const Rectangle& rRect ); - void DrawRect( const Rectangle& rRect, - sal_uLong nHorzRount, sal_uLong nVertRound ); - void DrawEllipse( const Rectangle& rRect ); - void DrawArc( const Rectangle& rRect, - const Point& rStartPt, const Point& rEndPt ); - void DrawPie( const Rectangle& rRect, - const Point& rStartPt, const Point& rEndPt ); - void DrawChord( const Rectangle& rRect, - const Point& rStartPt, const Point& rEndPt ); - - void DrawBitmap( const Point& rDestPt, const Size& rDestSize, - const Bitmap& rBitmap ); - - void DrawBitmapEx( const Point& rDestPt, const Size& rDestSize, - const BitmapEx& rBitmapEx ); - - void DrawGradient( const Rectangle& rRect, const Gradient& rGradient ); - void DrawGradient( const PolyPolygon& rPolyPoly, const Gradient& rGradient ); - - void DrawHatch( const PolyPolygon& rPolyPoly, const Hatch& rHatch ); - - void DrawWallpaper( const Rectangle& rRect, const Wallpaper& rWallpaper ); - void DrawTransparent( const PolyPolygon& rPolyPoly, - sal_uInt16 nTransparencePercent ); - - /** Start a transparency group - - Drawing operations can be grouped together to acquire a common transparency - behaviour; after calling <code>BeginTransparencyGroup</code> all drawing - operations will be grouped together into a transparent object. - - The transparency behaviour is set with ond of the <code>EndTransparencyGroup</code> - calls and can be either a constant transparency factor or a transparent - soft mask in form of an 8 bit gray scale bitmap. - - It is permissible to nest transparency group. - - Transparency groups MUST NOT span multiple pages - - Transparency is a feature introduced in PDF1.4, so transparency group - will be ignored if the produced PDF has a lower version. The drawing - operations will be emitted normally. - */ - void BeginTransparencyGroup(); - - /** End a transparency group with constant transparency factor - - This ends a transparency group and inserts it on the current page. The - coordinates of the group result out of the grouped drawing operations. - - @param rBoundRect - The bounding rectangle of the group - - @param nTransparencePercent - The transparency factor - */ - void EndTransparencyGroup( const Rectangle& rBoundRect, sal_uInt16 nTransparencePercent ); - - /** Insert a JPG encoded image (optionally with mask) - - @param rJPGData - a Stream containing the encoded image - - @param bIsTrueColor - true: jpeg is 24 bit true color, false: jpeg is 8 bit greyscale - - @param rSrcSizePixel - size in pixel of the image - - @param rTargetArea - where to put the image - - @param rMask - optional mask; if not empty it must have - the same pixel size as the image and - be either 1 bit black&white or 8 bit grey - */ - void DrawJPGBitmap( SvStream& rJPGData, bool bIsTrueColor, const Size& rSrcSizePixel, const Rectangle& rTargetArea, const Bitmap& rMask ); - - /** Create a new named destination to be used in a link from another PDF document - - @parm sDestName - the name (label) of the bookmark, to be used to jump to - - @param rRect - target rectangle on page to be displayed if dest is jumped to - - @param nPageNr - number of page the dest is on (as returned by NewPage) - or -1 in which case the current page is used - - @param eType - what dest type to use - - @returns - the destination id (to be used in SetLinkDest) or - -1 if page id does not exist - */ - sal_Int32 CreateNamedDest( const OUString& sDestName, const Rectangle& rRect, sal_Int32 nPageNr = -1, DestAreaType eType = XYZ ); - /** Create a new destination to be used in a link - - @param rRect - target rectangle on page to be displayed if dest is jumped to - - @param nPageNr - number of page the dest is on (as returned by NewPage) - or -1 in which case the current page is used - - @param eType - what dest type to use - - @returns - the destination id (to be used in SetLinkDest) or - -1 if page id does not exist - */ - sal_Int32 CreateDest( const Rectangle& rRect, sal_Int32 nPageNr = -1, DestAreaType eType = XYZ ); - /** Create a new link on a page - - @param rRect - active rectangle of the link (that is the area that has to be - hit to activate the link) - - @param nPageNr - number of page the link is on (as returned by NewPage) - or -1 in which case the current page is used - - @returns - the link id (to be used in SetLinkDest, SetLinkURL) or - -1 if page id does not exist - */ - sal_Int32 CreateLink( const Rectangle& rRect, sal_Int32 nPageNr = -1 ); - - /** creates a destination which is not intended to be referred to by a link, but by a public destination Id. - - Form widgets, for instance, might refer to a destination, without ever actually creating a source link to - point to this destination. In such cases, a public destination Id will be assigned to the form widget, - and later on, the concrete destination data for this public Id will be registered using RegisterDestReference. - - @param rRect - target rectangle on page to be displayed if dest is jumped to - - @param nPageNr - number of page the dest is on (as returned by NewPage) - or -1 in which case the current page is used - - @param eType - what dest type to use - - @returns - the internal destination Id. - */ - sal_Int32 RegisterDestReference( sal_Int32 nDestId, const Rectangle& rRect, sal_Int32 nPageNr = -1, DestAreaType eType = XYZ ); - - - /** Set the destination for a link - <p>will change a URL type link to a dest link if necessary</p> - - @param nLinkId - the link to be changed - - @param nDestId - the dest the link shall point to - @returns - 0 for success - -1 in case the link id does not exist - -2 in case the dest id does not exist - */ - sal_Int32 SetLinkDest( sal_Int32 nLinkId, sal_Int32 nDestId ); - /** Set the URL for a link - <p>will change a dest type link to an URL type link if necessary</p> - @param nLinkId - the link to be changed - - @param rURL - the URL the link shall point to. - The URL will be parsed (and corrected) by the <code>com.sun.star.util.URLTransformer</code> - service; the result will then appear literally in the PDF file produced - - @returns - 0 for success - -1 in case the link id does not exist - */ - sal_Int32 SetLinkURL( sal_Int32 nLinkId, const OUString& rURL ); - /** Resolve link in logical structure - <p> - If a link is created after the corresponding visual appearance was drawn - it is not possible to set the link id as a property attribute to the - link structure item that should be created in tagged PDF around the - visual appearance of a link. - </p> - <p> - For this reason an arbitrary id can be given to - <code>SetStructureAttributeNumerical</code> at the time the text for - the link is drawn. To resolve this arbitrary id again when the actual - link annotation is created use SetLinkPropertyID. When <code>Emit</code> - finally gets called all <code>LinkAnnotation</code> type structure attributes - will be replaced with the correct link id. - </p> - <p> - CAUTION: this technique must be used either for all or none of the links - in a document since the link id space and arbitrary property id space - could overlap and it would be impossible to resolve whether a <code>Link</code> - structure attribute value was arbitrary or already a real id. - </p> - - @param nLinkId - the link to be mapped - - @param nPropertyID - the arbitrary id set in a <code>Link</code> structure element to address - the link with real id <code>nLinkId</code> - */ - void SetLinkPropertyID( sal_Int32 nLinkId, sal_Int32 nPropertyID ); - /** Create a new outline item - - @param nParent - declares the parent of the new item in the outline hierarchy. - An invalid value will result in a new toplevel item. - - @param rText - sets the title text of the item - - @param nDestId - declares which Dest (created with CreateDest) the outline item - will point to - - @returns - the outline item id of the new item - */ - sal_Int32 CreateOutlineItem( sal_Int32 nParent = 0, const OUString& rText = OUString(), sal_Int32 nDestID = -1 ); - - /** Set an outline item's parent - - @param nItem - specififies which item should be reparented. - - @param nNewParent - specifies which outline item will be the item's new parent. - Use 0 for reparenting to top level. - - @returns - -1 if the item does not exist - -2 if the new parent does not exist, item will be reparented to top level. - */ - sal_Int32 SetOutlineItemParent( sal_Int32 nItem, sal_Int32 nNewParent ); - - /** Set an outline item's title text - - @param nItem - specififies which item should get a new text - - @param rText - sets the title text of the item - - @returns - 0 if the item exists and the text was changed - -1 if the item does not exist - */ - sal_Int32 SetOutlineItemText( sal_Int32 nItem, const OUString& rText ); - - /** Set an outline item's destination - - @param nItem - specififies which item should get a new dest - - @param nDestID - specifies the item's new destination - - @returns - -1 if the item does not exist - -2 if the new dest does not exist, dest will remain unchanged - */ - sal_Int32 SetOutlineItemDest( sal_Int32 nItem, sal_Int32 nDestID ); - - /** Create a new note on a page - - @param rRect - active rectangle of the note (that is the area that has to be - hit to popup the annotation) - - @param rNote - specifies the contents of the note - - @param nPageNr - number of page the note is on (as returned by NewPage) - or -1 in which case the current page is used - */ - void CreateNote( const Rectangle& rRect, const PDFNote& rNote, sal_Int32 nPageNr = -1 ); - - /** begin a new logical structure element - - <p> - BeginStructureElement/EndStructureElement calls build the logical structure - of the PDF - the basis for tagged PDF. Structural elements are implemented - using marked content tags. Each structural element can contain sub elements - (e.g. a section can contain a heading and a paragraph). The structure hierarchy - is build automatically from the Begin/EndStructureElement calls. - - A structural element need not be contained on one page; e.g. paragraphs often - run from one page to the next. In this case the corresponding EndStructureElement - must be called while drawing the next page. - </p> - - <p> - BeginStructureElement and EndStructureElement must be called only after - <member scope="vcl">PDFWriter::NewPage</member> has been called and before - <member scope="vcl">PDFWriter::Emit</member>gets called. The current page - number is an implicit context parameter for Begin/EndStructureElement. - </p> - - <p> - For pagination artifacts that are not part of the logical structure - of the document (like header, footer or page number) the special - StructElement <code>NonStructElement</code> exists. To place content - outside of the struture tree simply call - <code>BeginStructureElement( NonStructElement )</code> then draw your - content and then call <code>EndStructureElement()</code>. All children - of a <code>NonStructElement</code> will not be part of the structure. - Nonetheless if you add a child structural element to a - <code>NonStructElement</code> you will still have to call - <code>EndStructureElement</code> for it. Best think of the structure - tree as a stack. - </p> - - <p> - Note: there is always one structural element in existance without having - called <code>BeginStructureElement</code>; this is the root of the structure - tree (called StructTreeRoot). The StructTreeRoot has always the id 0. - </p> - - @param eType - denotes what kind of element to begin (e.g. a heading or paragraph) - - @param rAlias - the specified alias will be used as structure tag. Also an entry in the PDF's - role map will be created mapping alias to regular structure type. - - @returns - the new structure element's id for use in <code>SetCurrentStructureElement</code> - */ - sal_Int32 BeginStructureElement( enum StructElement eType, const OUString& rAlias = OUString() ); - /** end the current logical structure element - - <p> - Close the current structure element. The current element's - parent becomes the current structure element again. - </p> - - @see BeginStructureElement - */ - void EndStructureElement(); - /** set the current structure element - - <p> - For different purposes it may be useful to paint a structure element's - content discontinously. In that case an already existing structure element - can be appended to by using <code>SetCurrentStructureElement</code>. The - refenrenced structure element becomes the current structure element with - all consequences: all following structure elements are appended as children - of the current element. - </p> - - @param nElement - the id of the new current structure element - - @returns - <true/> if the current structure element could be set successfully - <false/> if the current structure element could not be changed - (e.g. if the passed element id is invalid) - */ - bool SetCurrentStructureElement( sal_Int32 nElement ); - - /** set a structure attribute on the current structural element - - SetStructureAttribute sets an attribute of the current structural element to a - new value. A consistency check is performed before actually setting the value; - if the check fails, the function returns <FALSE/> and the attribute remains - unchanged. - - @param eAttr - denotes what attribute to change - - @param eVal - the value to set the attribute to - - @returns - <TRUE/> if the value was valid and the change has been performed, - <FALSE/> if the attribute or value was invalid; attribute remains unchanged - */ - bool SetStructureAttribute( enum StructAttribute eAttr, enum StructAttributeValue eVal ); - /** set a structure attribute on the current structural element - - SetStructureAttributeNumerical sets an attribute of the current structural element - to a new numerical value. A consistency check is performed before actually setting - the value; if the check fails, the function returns <FALSE/> and the attribute - remains unchanged. - - @param eAttr - denotes what attribute to change - - @param nValue - the value to set the attribute to - - @returns - <TRUE/> if the value was valid and the change has been performed, - <FALSE/> if the attribute or value was invalid; attribute remains unchanged - */ - bool SetStructureAttributeNumerical( enum StructAttribute eAttr, sal_Int32 nValue ); - /** set the bounding box of a structural element - - SetStructureBoundingBox sets the BBox attribute to a new value. Since the BBox - attribute can only be applied to <code>Table</code>, <code>Figure</code>, - <code>Form</code> and <code>Formula</code> elements, a call of this function - for other element types will be ignored and the BBox attribute not be set. - - @param rRect - the new bounding box for the structural element - */ - void SetStructureBoundingBox( const Rectangle& rRect ); - - /** set the ActualText attribute of a structural element - - ActualText contains the Unicode text without layout artifacts that is shown by - a structural element. For example if a line is ended prematurely with a break in - a word and continued on the next line (e.g. "happen-<newline>stance") the - corresponding ActualText would contain the unbroken line (e.g. "happenstance"). - - @param rText - contains the complete logical text the structural element displays. - */ - void SetActualText( const String& rText ); - - /** set the Alt attribute of a strutural element - - Alt is s replacement text describing the contents of a structural element. This - is mainly used by accessibility applications; e.g. a screen reader would read - the Alt replacement text for an image to a visually impaired user. - - @param rText - contains the replacement text for the structural element - */ - void SetAlternateText( const String& rText ); - - /** Sets the time in seconds a page will appear before the next - page is shown automatically - - @param nSeconds - time in seconds the current page will be shown; pass 0 for manual advancement - - @param nPageNr - the page number to apply the autoadvance time to; -1 denotes the current page - */ - void SetAutoAdvanceTime( sal_uInt32 nSeconds, sal_Int32 nPageNr = -1 ); - - /** Sets the transitional effect to be applied when the current page gets shown. - - @param eType - the kind of effect to be used; use Regular to disable transitional effects - for this page - - @param nMilliSec - the duration of the transitional effect in milliseconds; - set 0 to disable transitional effects - - @param nPageNr - the page number to apply the effect to; -1 denotes the current page - */ - void SetPageTransition( PageTransition eType, sal_uInt32 nMilliSec, sal_Int32 nPageNr = -1 ); - - /** create a new form control - - This function creates a new form control in the PDF and sets its various - properties. Do not pass an actual AnyWidget as <code>rControlType</code> - will be cast to the type described by the type member. - - @param rControlType - a descendant of <code>AnyWidget</code> determing the control's properties - - @returns - the new control's id for reference purposes - */ - sal_Int32 CreateControl( const AnyWidget& rControlType, sal_Int32 nPageNr = -1 ); - - /** Inserts an additional stream to the PDF file - - This function adds an arbitrary stream to the produced PDF file. May be called - any time before <code>Emit()</code>. The stream will be written during - <code>Emit</code> by calling the <code>PDFOutputStream</code> Object's <code>write</code> - method. After the call the <code>PDFOutputStream</code> will be deleted. - - All additional streams and their mimetypes will be entered into an array - in the trailer dictionary. - - @param rMimeType - the mimetype of the stream - - @param rStream - the interface to the additional stream - - @param bCompress - specifies whether the stream should be flate encoded by PDFWriter or not - */ - void AddStream( const String& rMimeType, PDFOutputStream* pStream, bool bCompress ); - -}; - -} - -#endif // _VCL_PDFWRITER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/pngread.hxx b/vcl/inc/vcl/pngread.hxx deleted file mode 100644 index b36a0ee6106a..000000000000 --- a/vcl/inc/vcl/pngread.hxx +++ /dev/null @@ -1,64 +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 . - */ - -#ifndef _SV_PNGREAD_HXX -#define _SV_PNGREAD_HXX - -#include <vcl/dllapi.h> -#include <vcl/bitmapex.hxx> -#include <vector> - -// ------------- -// - PNGReader - -// ------------- - -namespace vcl -{ - class PNGReaderImpl; - - class VCL_DLLPUBLIC PNGReader - { - PNGReaderImpl* mpImpl; - - public: - - /* the PNG chunks are read within the c'tor, so the stream will - be positioned at the end of the PNG */ - PNGReader( SvStream& rStm ); - ~PNGReader(); - - /* an empty preview size hint (=default) will read the whole image - */ - BitmapEx Read( const Size& i_rPreviewHint = Size() ); - - // retrieve every chunk that resides inside the PNG - struct ChunkData - { - sal_uInt32 nType; - std::vector< sal_uInt8 > aData; - }; - const std::vector< ChunkData >& GetChunks() const; - - void SetIgnoreGammaChunk( sal_Bool b ); - }; -} - -#endif // _SV_PNGREAD_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/pngwrite.hxx b/vcl/inc/vcl/pngwrite.hxx deleted file mode 100644 index 921ad45ddf4d..000000000000 --- a/vcl/inc/vcl/pngwrite.hxx +++ /dev/null @@ -1,61 +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 . - */ - -#ifndef _SV_PNGWRITE_HXX -#define _SV_PNGWRITE_HXX - -#include <com/sun/star/uno/Sequence.hxx> -#include <com/sun/star/beans/PropertyValue.hpp> -#include <vcl/dllapi.h> -#include <vcl/bitmapex.hxx> -#include <vector> - -// ------------- -// - PNGWriter - -// ------------- - -namespace vcl -{ - class PNGWriterImpl; - - class VCL_DLLPUBLIC PNGWriter - { - PNGWriterImpl* mpImpl; - - public: - - PNGWriter( const BitmapEx& BmpEx, - const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >* pFilterData = NULL ); - ~PNGWriter(); - - sal_Bool Write( SvStream& rStm ); - - // additional method to be able to modify all chunk before they are stored - struct ChunkData - { - sal_uInt32 nType; - std::vector< sal_uInt8 > aData; - }; - std::vector< vcl::PNGWriter::ChunkData >& GetChunks(); - }; -} - -#endif // _SV_PNGWRITE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/pointr.hxx b/vcl/inc/vcl/pointr.hxx deleted file mode 100644 index 9cfdd6000371..000000000000 --- a/vcl/inc/vcl/pointr.hxx +++ /dev/null @@ -1,53 +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 . - */ - -#ifndef _VCL_POINTR_HXX -#define _VCL_POINTR_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/ptrstyle.hxx> - -class Point; - -// ----------- -// - Pointer - -// ----------- - -class VCL_DLLPUBLIC Pointer -{ - PointerStyle meStyle; - -public: - Pointer() - { meStyle = POINTER_ARROW; } - Pointer( PointerStyle eStyle ) - { meStyle = eStyle; } - - PointerStyle GetStyle() const { return meStyle; } - - sal_Bool operator==( const Pointer& rPointer ) const - { return (meStyle == rPointer.meStyle); } - sal_Bool operator!=( const Pointer& rPointer ) const - { return !(Pointer::operator==( rPointer )); } -}; - -#endif // _VCL_POINTR_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/popupmenuwindow.hxx b/vcl/inc/vcl/popupmenuwindow.hxx deleted file mode 100644 index a5856dca4bf9..000000000000 --- a/vcl/inc/vcl/popupmenuwindow.hxx +++ /dev/null @@ -1,44 +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 . - */ - -#ifndef __POPUPMENUWINDOW_HXX__ -#define __POPUPMENUWINDOW_HXX__ - -#include "vcl/floatwin.hxx" - -class VCL_DLLPUBLIC PopupMenuFloatingWindow : public FloatingWindow -{ -private: - struct ImplData; - ImplData* mpImplData; -public: - PopupMenuFloatingWindow( Window* pParent, WinBits nStyle = (WB_SYSTEMFLOATWIN|WB_SYSTEMWINDOW|WB_NOBORDER) ); - ~PopupMenuFloatingWindow(); - - sal_uInt16 GetMenuStackLevel() const; - void SetMenuStackLevel( sal_uInt16 nLevel ); - bool IsPopupMenu() const; - - //determine if a given window is an activated PopupMenuFloatingWindow - static bool isPopupMenu(const Window *pWindow); -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/ppdparser.hxx b/vcl/inc/vcl/ppdparser.hxx deleted file mode 100644 index 80fbeaf4728a..000000000000 --- a/vcl/inc/vcl/ppdparser.hxx +++ /dev/null @@ -1,311 +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 . - */ -#ifndef _PSPRINT_PPDPARSER_HXX_ -#define _PSPRINT_PPDPARSER_HXX_ - -#include <list> -#include <vector> -#include <boost/unordered_map.hpp> - -#include "tools/string.hxx" -#include "tools/stream.hxx" -#include "rtl/string.hxx" - -#include "vcl/dllapi.h" - -#include "com/sun/star/lang/Locale.hpp" - -#define PRINTER_PPDDIR "driver" - -namespace psp { - -class PPDParser; -class PPDTranslator; - -enum PPDValueType { eInvocation, eQuoted, eSymbol, eString, eNo }; - -struct VCL_DLLPUBLIC PPDValue -{ - PPDValueType m_eType; - String m_aOption; - String m_aValue; -}; - -// ---------------------------------------------------------------------- - -/* - * PPDKey - a container for the available options (=values) of a PPD keyword - */ - -class VCL_DLLPUBLIC PPDKey -{ - friend class PPDParser; - - typedef ::boost::unordered_map< OUString, PPDValue, OUStringHash > hash_type; - typedef ::std::vector< PPDValue* > value_type; - - String m_aKey; - hash_type m_aValues; - value_type m_aOrderedValues; - const PPDValue* m_pDefaultValue; - bool m_bQueryValue; - PPDValue m_aQueryValue; - -public: - enum UIType { PickOne, PickMany, Boolean }; - enum SetupType { ExitServer, Prolog, DocumentSetup, PageSetup, JCLSetup, AnySetup }; -private: - - bool m_bUIOption; - UIType m_eUIType; - int m_nOrderDependency; - SetupType m_eSetupType; - - void eraseValue( const String& rOption ); -public: - PPDKey( const String& rKey ); - ~PPDKey(); - - PPDValue* insertValue( const String& rOption ); - int countValues() const - { return m_aValues.size(); } - // neither getValue will return the query option - const PPDValue* getValue( int n ) const; - const PPDValue* getValue( const String& rOption ) const; - const PPDValue* getValueCaseInsensitive( const String& rOption ) const; - const PPDValue* getDefaultValue() const { return m_pDefaultValue; } - const PPDValue* getQueryValue() const { return m_bQueryValue ? &m_aQueryValue : NULL; } - - const String& getKey() const { return m_aKey; } - bool isUIKey() const { return m_bUIOption; } - UIType getUIType() const { return m_eUIType; } - SetupType getSetupType() const { return m_eSetupType; } - int getOrderDependency() const { return m_nOrderDependency; } -}; - -// define a hash for PPDKey -struct PPDKeyhash -{ - size_t operator()( const PPDKey * pKey) const - { return (size_t)pKey; } -}; - -// ---------------------------------------------------------------------- - -/* - * PPDParser - parses a PPD file and contains all available keys from it - */ - -class PPDContext; -class CUPSManager; - -class VCL_DLLPUBLIC PPDParser -{ - friend class PPDContext; - friend class CUPSManager; - friend class PPDCache; - - typedef ::boost::unordered_map< OUString, PPDKey*, OUStringHash > hash_type; - typedef ::std::vector< PPDKey* > value_type; - - void insertKey( const String& rKey, PPDKey* pKey ); -public: - struct PPDConstraint - { - const PPDKey* m_pKey1; - const PPDValue* m_pOption1; - const PPDKey* m_pKey2; - const PPDValue* m_pOption2; - - PPDConstraint() : m_pKey1( NULL ), m_pOption1( NULL ), m_pKey2( NULL ), m_pOption2( NULL ) {} - }; -private: - hash_type m_aKeys; - value_type m_aOrderedKeys; - ::std::list< PPDConstraint > m_aConstraints; - - // some identifying fields - String m_aPrinterName; - String m_aNickName; - // the full path of the PPD file - String m_aFile; - // some basic attributes - bool m_bColorDevice; - bool m_bType42Capable; - sal_uLong m_nLanguageLevel; - rtl_TextEncoding m_aFileEncoding; - - - // shortcuts to important keys and their default values - // imageable area - const PPDValue* m_pDefaultImageableArea; - const PPDKey* m_pImageableAreas; - // paper dimensions - const PPDValue* m_pDefaultPaperDimension; - const PPDKey* m_pPaperDimensions; - // paper trays - const PPDValue* m_pDefaultInputSlot; - const PPDKey* m_pInputSlots; - // resolutions - const PPDValue* m_pDefaultResolution; - const PPDKey* m_pResolutions; - // duplex commands - const PPDValue* m_pDefaultDuplexType; - const PPDKey* m_pDuplexTypes; - - // fonts - const PPDKey* m_pFontList; - - // translations - PPDTranslator* m_pTranslator; - - PPDParser( const String& rFile ); - ~PPDParser(); - - void parseOrderDependency(const OString& rLine); - void parseOpenUI(const OString& rLine); - void parseConstraint(const OString& rLine); - void parse( std::list< OString >& rLines ); - - String handleTranslation(const OString& i_rString, bool i_bIsGlobalized); - - static void scanPPDDir( const String& rDir ); - static void initPPDFiles(); - static String getPPDFile( const String& rFile ); -public: - static const PPDParser* getParser( const String& rFile ); - static String getPPDPrinterName( const String& rFile ); - static void freeAll(); - static void getKnownPPDDrivers( std::list< OUString >& o_rDrivers, bool bRefresh = false ); - - const String& getFilename() const { return m_aFile; } - - const PPDKey* getKey( int n ) const; - const PPDKey* getKey( const String& rKey ) const; - int getKeys() const { return m_aKeys.size(); } - bool hasKey( const PPDKey* ) const; - - const ::std::list< PPDConstraint >& getConstraints() const { return m_aConstraints; } - - const String& getPrinterName() const - { return m_aPrinterName.Len() ? m_aPrinterName : m_aNickName; } - const String& getNickName() const - { return m_aNickName.Len() ? m_aNickName : m_aPrinterName; } - - bool isColorDevice() const { return m_bColorDevice; } - bool isType42Capable() const { return m_bType42Capable; } - sal_uLong getLanguageLevel() const { return m_nLanguageLevel; } - - String getDefaultPaperDimension() const; - void getDefaultPaperDimension( int& rWidth, int& rHeight ) const - { getPaperDimension( getDefaultPaperDimension(), rWidth, rHeight ); } - bool getPaperDimension( const String& rPaperName, - int& rWidth, int& rHeight ) const; - // width and height in pt - // returns false if paper not found - int getPaperDimensions() const - { return m_pPaperDimensions ? m_pPaperDimensions->countValues() : 0; } - - // match the best paper for width and height - String matchPaper( int nWidth, int nHeight ) const; - - bool getMargins( const String& rPaperName, - int &rLeft, int& rRight, - int &rUpper, int& rLower ) const; - // values in pt - // returns true if paper found - - // values int pt - - String getDefaultInputSlot() const; - int getInputSlots() const - { return m_pInputSlots ? m_pInputSlots->countValues() : 0; } - - void getDefaultResolution( int& rXRes, int& rYRes ) const; - // values in dpi - void getResolutionFromString( const String&, int&, int& ) const; - // helper function - - int getDuplexTypes() const - { return m_pDuplexTypes ? m_pDuplexTypes->countValues() : 0; } - - int getFonts() const - { return m_pFontList ? m_pFontList->countValues() : 0; } - String getFont( int ) const; - - - OUString translateKey( const OUString& i_rKey, - const com::sun::star::lang::Locale& i_rLocale = com::sun::star::lang::Locale() ) const; - OUString translateOption( const OUString& i_rKey, - const OUString& i_rOption, - const com::sun::star::lang::Locale& i_rLocale = com::sun::star::lang::Locale() ) const; -}; - -// ---------------------------------------------------------------------- - -/* - * PPDContext - a class to manage user definable states based on the - * contents of a PPDParser. - */ - -class VCL_DLLPUBLIC PPDContext -{ - typedef ::boost::unordered_map< const PPDKey*, const PPDValue*, PPDKeyhash > hash_type; - hash_type m_aCurrentValues; - const PPDParser* m_pParser; - - // returns false: check failed, new value is constrained - // true: check succeded, new value can be set - bool checkConstraints( const PPDKey*, const PPDValue*, bool bDoReset ); - bool resetValue( const PPDKey*, bool bDefaultable = false ); -public: - PPDContext( const PPDParser* pParser = NULL ); - PPDContext( const PPDContext& rContext ) { operator=( rContext ); } - PPDContext& operator=( const PPDContext& rContext ); - ~PPDContext(); - - void setParser( const PPDParser* ); - const PPDParser* getParser() const { return m_pParser; } - - const PPDValue* getValue( const PPDKey* ) const; - const PPDValue* setValue( const PPDKey*, const PPDValue*, bool bDontCareForConstraints = false ); - - int countValuesModified() const { return m_aCurrentValues.size(); } - const PPDKey* getModifiedKey( int n ) const; - - // public wrapper for the private method - bool checkConstraints( const PPDKey*, const PPDValue* ); - - // for printer setup - char* getStreamableBuffer( sal_uLong& rBytes ) const; - void rebuildFromStreamBuffer( char* pBuffer, sal_uLong nBytes ); - - // convenience - int getRenderResolution() const; - - // width, height in points, paper will contain the name of the selected - // paper after the call - void getPageSize( OUString& rPaper, int& rWidth, int& rHeight ) const; -}; - -} // namespace - -#endif // _PSPRINT_PPDPARSER_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/prgsbar.hxx b/vcl/inc/vcl/prgsbar.hxx deleted file mode 100644 index 9f22df47c7a8..000000000000 --- a/vcl/inc/vcl/prgsbar.hxx +++ /dev/null @@ -1,89 +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 . - */ - -#ifndef _PRGSBAR_HXX -#define _PRGSBAR_HXX - -#include <vcl/dllapi.h> -#include <vcl/window.hxx> - -/************************************************************************* - * - * class ProgressBar - * - * this class is used to display the ProgressBar - * - * ----------------------------------------------------------------------- - * - * WinBits - * - * WB_BORDER border around the window - * WB_3DLOOK 3D representation - * - * ----------------------------------------------------------------------- - * - * Methodes - * - * Use SetValue() to set a percentage between 0 and 100. A value larger - * than 100 will cause the last rectangle to start flashing - * - ************************************************************************/ - -// ----------- -// - WinBits - -// ----------- - -#define WB_STDPROGRESSBAR WB_BORDER - -// --------------- -// - ProgressBar - -// --------------- - -class VCL_DLLPUBLIC ProgressBar : public Window -{ -private: - Point maPos; - long mnPrgsWidth; - long mnPrgsHeight; - sal_uInt16 mnPercent; - sal_uInt16 mnPercentCount; - sal_Bool mbCalcNew; - - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit(); - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE void ImplDrawProgress( sal_uInt16 nOldPerc, sal_uInt16 nNewPerc ); - -public: - ProgressBar( Window* pParent, WinBits nWinBits = WB_STDPROGRESSBAR ); - ProgressBar( Window* pParent, const ResId& rResId ); - ~ProgressBar(); - - virtual void Paint( const Rectangle& rRect ); - virtual void Resize(); - virtual void StateChanged( StateChangedType nStateChange ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - void SetValue( sal_uInt16 nNewPercent ); - sal_uInt16 GetValue() const { return mnPercent; } -}; - -#endif // _PRGSBAR_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/print.hxx b/vcl/inc/vcl/print.hxx deleted file mode 100644 index c40e8bc4ab4d..000000000000 --- a/vcl/inc/vcl/print.hxx +++ /dev/null @@ -1,688 +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 . - */ - -#ifndef _SV_PRINT_HXX -#define _SV_PRINT_HXX - -#include <rtl/ustring.hxx> - -#include "tools/errcode.hxx" -#include "tools/solar.h" -#include "vcl/dllapi.h" -#include "vcl/outdev.hxx" -#include "vcl/prntypes.hxx" -#include "vcl/jobset.hxx" -#include "vcl/gdimtf.hxx" -#include "tools/stream.hxx" -#include "tools/multisel.hxx" - -#include "com/sun/star/beans/PropertyValue.hpp" -#include "com/sun/star/view/PrintableState.hpp" - -#include <boost/shared_ptr.hpp> -#include <boost/unordered_map.hpp> -#include <set> - -class SalInfoPrinter; -struct SalPrinterQueueInfo; -class SalPrinter; -class VirtualDevice; -class Window; - -namespace vcl { - class PrinterController; - class PrintDialog; -} - -// ----------------- -// - Printer-Types - -// ----------------- - -#define PAGEQUEUE_ALLPAGES 0xFFFF - -enum PrinterSupport { SUPPORT_SET_ORIENTATION, SUPPORT_SET_PAPERBIN, - SUPPORT_SET_PAPERSIZE, SUPPORT_SET_PAPER, - SUPPORT_COPY, SUPPORT_COLLATECOPY, - SUPPORT_SETUPDIALOG, SUPPORT_FAX, SUPPORT_PDF }; - -// --------------- -// - PrinterPage - -// --------------- - -class VCL_DLLPUBLIC PrinterPage -{ - GDIMetaFile* mpMtf; - JobSetup maJobSetup; - sal_uInt16 mbNewJobSetup; - -public: - - PrinterPage() : mpMtf( new GDIMetaFile() ) {} - PrinterPage( GDIMetaFile* pMtf, sal_Bool bNewJobSetup, const JobSetup& rSetup ) : - mpMtf( pMtf ), maJobSetup( rSetup ), mbNewJobSetup( bNewJobSetup ) {} - ~PrinterPage() { delete mpMtf; } - - GDIMetaFile* GetGDIMetaFile() const { return mpMtf; } - const JobSetup& GetJobSetup() const { return maJobSetup; } - sal_Bool IsNewJobSetup() const { return (mbNewJobSetup != 0); } -}; - - -// ------------- -// - QueueInfo - -// ------------- - -class VCL_DLLPUBLIC QueueInfo -{ - friend class Printer; - -private: - OUString maPrinterName; - OUString maDriver; - OUString maLocation; - OUString maComment; - sal_uInt32 mnStatus; - sal_uInt32 mnJobs; - -public: - QueueInfo(); - QueueInfo( const QueueInfo& rInfo ); - ~QueueInfo(); - - const OUString& GetPrinterName() const { return maPrinterName; } - const OUString& GetDriver() const { return maDriver; } - const OUString& GetLocation() const { return maLocation; } - const OUString& GetComment() const { return maComment; } - sal_uInt32 GetStatus() const { return mnStatus; } - sal_uInt32 GetJobs() const { return mnJobs; } - - bool operator==( const QueueInfo& rInfo ) const; - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStream, QueueInfo& rInfo ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStream, const QueueInfo& rInfo ); -}; - -// ------------------ -// - PrinterOptions - -// ------------------ - -enum PrinterTransparencyMode -{ - PRINTER_TRANSPARENCY_AUTO = 0, - PRINTER_TRANSPARENCY_NONE = 1 -}; - -// ----------------------------------------------------------------------------- - -enum PrinterGradientMode -{ - PRINTER_GRADIENT_STRIPES = 0, - PRINTER_GRADIENT_COLOR = 1 -}; - -// ----------------------------------------------------------------------------- - -enum PrinterBitmapMode -{ - PRINTER_BITMAP_OPTIMAL = 0, - PRINTER_BITMAP_NORMAL = 1, - PRINTER_BITMAP_RESOLUTION = 2 -}; - -// ----------------------------------------------------------------------------- - -class VCL_DLLPUBLIC PrinterOptions -{ -private: - - sal_Bool mbReduceTransparency; - PrinterTransparencyMode meReducedTransparencyMode; - sal_Bool mbReduceGradients; - PrinterGradientMode meReducedGradientsMode; - sal_uInt16 mnReducedGradientStepCount; - sal_Bool mbReduceBitmaps; - PrinterBitmapMode meReducedBitmapMode; - sal_uInt16 mnReducedBitmapResolution; - sal_Bool mbReducedBitmapsIncludeTransparency; - sal_Bool mbConvertToGreyscales; - sal_Bool mbPDFAsStandardPrintJobFormat; - -public: - - PrinterOptions(); - ~PrinterOptions(); - - sal_Bool IsReduceTransparency() const { return mbReduceTransparency; } - void SetReduceTransparency( sal_Bool bSet ) { mbReduceTransparency = bSet; } - - PrinterTransparencyMode GetReducedTransparencyMode() const { return meReducedTransparencyMode; } - void SetReducedTransparencyMode( PrinterTransparencyMode eMode ) { meReducedTransparencyMode = eMode; } - - sal_Bool IsReduceGradients() const { return mbReduceGradients; } - void SetReduceGradients( sal_Bool bSet ) { mbReduceGradients = bSet; } - - PrinterGradientMode GetReducedGradientMode() const { return meReducedGradientsMode; } - void SetReducedGradientMode( PrinterGradientMode eMode ) { meReducedGradientsMode = eMode; } - - sal_uInt16 GetReducedGradientStepCount() const { return mnReducedGradientStepCount; } - void SetReducedGradientStepCount( sal_uInt16 nStepCount ) { mnReducedGradientStepCount = nStepCount; } - - sal_Bool IsReduceBitmaps() const { return mbReduceBitmaps; } - void SetReduceBitmaps( sal_Bool bSet ) { mbReduceBitmaps = bSet; } - - PrinterBitmapMode GetReducedBitmapMode() const { return meReducedBitmapMode; } - void SetReducedBitmapMode( PrinterBitmapMode eMode ) { meReducedBitmapMode = eMode; } - - sal_uInt16 GetReducedBitmapResolution() const { return mnReducedBitmapResolution; } - void SetReducedBitmapResolution( sal_uInt16 nResolution ) { mnReducedBitmapResolution = nResolution; } - - sal_Bool IsReducedBitmapIncludesTransparency() const { return mbReducedBitmapsIncludeTransparency; } - void SetReducedBitmapIncludesTransparency( sal_Bool bSet ) { mbReducedBitmapsIncludeTransparency = bSet; } - - sal_Bool IsConvertToGreyscales() const { return mbConvertToGreyscales; } - void SetConvertToGreyscales( sal_Bool bSet ) { mbConvertToGreyscales = bSet; } - - sal_Bool IsPDFAsStandardPrintJobFormat() const { return mbPDFAsStandardPrintJobFormat; } - void SetPDFAsStandardPrintJobFormat( sal_Bool bSet ) { mbPDFAsStandardPrintJobFormat = bSet; } - - // read printer options from configuration, parameter decides whether the set for - // print "to printer" or "to file" should be read. - // returns true if config was read, false if an error occurred - bool ReadFromConfig( bool bFile ); -}; - -// ----------- -// - Printer - -// ----------- - -class VCL_DLLPUBLIC Printer : public OutputDevice -{ - friend class OutputDevice; - -private: - SalInfoPrinter* mpInfoPrinter; - SalPrinter* mpPrinter; - SalGraphics* mpJobGraphics; - Printer* mpPrev; - Printer* mpNext; - VirtualDevice* mpDisplayDev; - PrinterOptions* mpPrinterOptions; - OUString maPrinterName; - OUString maDriver; - OUString maPrintFile; - OUString maJobName; - JobSetup maJobSetup; - Point maPageOffset; - Size maPaperSize; - sal_uLong mnError; - sal_uInt16 mnCurPage; - sal_uInt16 mnCurPrintPage; - sal_uInt16 mnPageQueueSize; - sal_uInt16 mnCopyCount; - sal_Bool mbDefPrinter; - sal_Bool mbPrinting; - sal_Bool mbJobActive; - sal_Bool mbCollateCopy; - sal_Bool mbPrintFile; - sal_Bool mbInPrintPage; - sal_Bool mbNewJobSetup; - sal_Bool mbIsQueuePrinter; - sal_Bool mbUserSetupCompleted; - sal_Bool mbUserSetupResult; - Link maErrorHdl; - - SAL_DLLPRIVATE void ImplInitData(); - SAL_DLLPRIVATE void ImplInit( SalPrinterQueueInfo* pInfo ); - SAL_DLLPRIVATE void ImplInitDisplay( const Window* pWindow ); - SAL_DLLPRIVATE static SalPrinterQueueInfo* ImplGetQueueInfo( const OUString& rPrinterName, - const OUString* pDriver ); - SAL_DLLPRIVATE void ImplUpdatePageData(); - SAL_DLLPRIVATE void ImplUpdateFontList(); - SAL_DLLPRIVATE void ImplFindPaperFormatForUserSize( JobSetup&, bool bMatchNearest ); - - SAL_DLLPRIVATE bool StartJob( const OUString& rJobName, boost::shared_ptr<vcl::PrinterController>& ); - - static SAL_DLLPRIVATE sal_uLong ImplSalPrinterErrorCodeToVCL( sal_uLong nError ); - -private: - SAL_DLLPRIVATE sal_Bool EndJob(); - SAL_DLLPRIVATE Printer( const Printer& rPrinter ); - SAL_DLLPRIVATE Printer& operator =( const Printer& rPrinter ); -public: - SAL_DLLPRIVATE void ImplStartPage(); - SAL_DLLPRIVATE void ImplEndPage(); -public: - void DrawGradientEx( OutputDevice* pOut, const Rectangle& rRect, const Gradient& rGradient ); - -protected: - - void SetSelfAsQueuePrinter( sal_Bool bQueuePrinter ) { mbIsQueuePrinter = bQueuePrinter; } - sal_Bool IsQueuePrinter() const { return mbIsQueuePrinter; } - -public: - Printer(); - Printer( const JobSetup& rJobSetup ); - Printer( const QueueInfo& rQueueInfo ); - Printer( const OUString& rPrinterName ); - virtual ~Printer(); - - static const std::vector< OUString >& GetPrinterQueues(); - static const QueueInfo* GetQueueInfo( const OUString& rPrinterName, bool bStatusUpdate ); - static OUString GetDefaultPrinterName(); - - virtual void Error(); - - const OUString& GetName() const { return maPrinterName; } - const OUString& GetDriverName() const { return maDriver; } - sal_Bool IsDefPrinter() const { return mbDefPrinter; } - sal_Bool IsDisplayPrinter() const { return mpDisplayDev != NULL; } - sal_Bool IsValid() const { return !IsDisplayPrinter(); } - - sal_uLong GetCapabilities( sal_uInt16 nType ) const; - sal_Bool HasSupport( PrinterSupport eFeature ) const; - - sal_Bool SetJobSetup( const JobSetup& rSetup ); - const JobSetup& GetJobSetup() const { return maJobSetup; } - void SetJobValue( const OUString& rKey, const OUString& rValue ) { maJobSetup.SetValue( rKey, rValue ); } - - sal_Bool Setup( Window* pWindow = NULL ); - sal_Bool SetPrinterProps( const Printer* pPrinter ); - - // SetPrinterOptions is used internally only now - // in earlier times it was used only to set the options loaded directly from the configuration - // in SfxPrinter::InitJob, this is now handled internally - // should the need arise to set the printer options outside vcl, also a method would have to be devised - // to not override these again internally - SAL_DLLPRIVATE void SetPrinterOptions( const PrinterOptions& rOptions ); - const PrinterOptions& GetPrinterOptions() const { return( *mpPrinterOptions ); } - - sal_Bool SetOrientation( Orientation eOrient ); - Orientation GetOrientation() const; - sal_Bool SetDuplexMode( DuplexMode ); - // returns the angle that a landscape page will be turned counterclockwise - // wrt to portrait. The return value may be only valid for - // the current paper - int GetLandscapeAngle() const; - sal_Bool SetPaperBin( sal_uInt16 nPaperBin ); - sal_uInt16 GetPaperBin() const; - sal_Bool SetPaper( Paper ePaper ); - sal_Bool SetPaperSizeUser( const Size& rSize ); - sal_Bool SetPaperSizeUser( const Size& rSize, bool bMatchNearest ); - Paper GetPaper() const; - static OUString GetPaperName( Paper ePaper ); - // return a UI string for the current paper; i_bPaperUser == false means an empty string for PAPER_USER - OUString GetPaperName( bool i_bPaperUser = true ) const; - - // returns number of available paper formats - int GetPaperInfoCount() const; - // returns info about paper format nPaper - const PaperInfo& GetPaperInfo( int nPaper ) const; - sal_uInt16 GetPaperBinCount() const; - OUString GetPaperBinName( sal_uInt16 nPaperBin ) const; - - const Size& GetPaperSizePixel() const { return maPaperSize; } - Size GetPaperSize() const { return PixelToLogic( maPaperSize ); } - const Point& GetPageOffsetPixel() const { return maPageOffset; } - Point GetPageOffset() const { return PixelToLogic( maPageOffset ); } - - sal_Bool SetCopyCount( sal_uInt16 nCopy, sal_Bool bCollate = sal_False ); - sal_uInt16 GetCopyCount() const { return mnCopyCount; } - sal_Bool IsCollateCopy() const { return mbCollateCopy; } - - sal_Bool IsPrinting() const { return mbPrinting; } - - const OUString& GetCurJobName() const { return maJobName; } - sal_uInt16 GetCurPage() const { return mnCurPage; } - sal_Bool IsJobActive() const { return mbJobActive; } - - sal_uLong GetError() const { return ERRCODE_TOERROR(mnError); } - sal_uLong GetErrorCode() const { return mnError; } - - void SetErrorHdl( const Link& rLink ) { maErrorHdl = rLink; } - const Link& GetErrorHdl() const { return maErrorHdl; } - - void Compat_OldPrinterMetrics( bool bSet ); - - /** checks the printer list and updates it necessary - * - * sends a DataChanged event of type DATACHANGED_PRINTER - * if the printer list changed - */ - static void updatePrinters(); - - /** execute a print job - - starts a print job asynchronously (that is will return - - */ - static void PrintJob( const boost::shared_ptr<vcl::PrinterController>& i_pController, - const JobSetup& i_rInitSetup - ); - - // implementation detail of PrintJob being asynchronous - // not exported, not usable outside vcl - static void SAL_DLLPRIVATE ImplPrintJob( const boost::shared_ptr<vcl::PrinterController>& i_pController, - const JobSetup& i_rInitSetup - ); -}; - -namespace vcl -{ -class ImplPrinterControllerData; - -class VCL_DLLPUBLIC PrinterController -{ - ImplPrinterControllerData* mpImplData; -protected: - PrinterController( const boost::shared_ptr<Printer>& ); -public: - enum NupOrderType - { LRTB, TBLR, TBRL, RLTB }; - struct MultiPageSetup - { - // all metrics in 100th mm - int nRows; - int nColumns; - int nRepeat; - Size aPaperSize; - long nLeftMargin; - long nTopMargin; - long nRightMargin; - long nBottomMargin; - long nHorizontalSpacing; - long nVerticalSpacing; - bool bDrawBorder; - PrinterController::NupOrderType nOrder; - - MultiPageSetup() - : nRows( 1 ), nColumns( 1 ), nRepeat( 1 ), aPaperSize( 21000, 29700 ) - , nLeftMargin( 0 ), nTopMargin( 0 ) - , nRightMargin( 0 ), nBottomMargin( 0 ) - , nHorizontalSpacing( 0 ), nVerticalSpacing( 0 ) - , bDrawBorder( false ) - , nOrder( LRTB ) - { - } - }; - - struct PageSize - { - Size aSize; // in 100th mm - bool bFullPaper; // full paper, not only imageable area is printed - - PageSize( const Size& i_rSize = Size( 21000, 29700 ), - bool i_bFullPaper = false - ) : aSize( i_rSize ), bFullPaper( i_bFullPaper ) {} - }; - - virtual ~PrinterController(); - - const boost::shared_ptr<Printer>& getPrinter() const; - /* for implementations: get current job properties as changed by e.g. print dialog - this gets the current set of properties initially told to Printer::PrintJob - - For convenience a second sequence will be merged in to get a combined sequence. - In case of duplicate property names, the value of i_MergeList wins. - */ - com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > - getJobProperties( const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& i_rMergeList ) const; - - /* get the PropertyValue of a Property - */ - com::sun::star::beans::PropertyValue* getValue( const OUString& i_rPropertyName ); - const com::sun::star::beans::PropertyValue* getValue( const OUString& i_rPropertyName ) const; - /* get a bool property - in case the property is unknown or not convertible to bool, i_bFallback is returned - */ - sal_Bool getBoolProperty( const OUString& i_rPropertyName, sal_Bool i_bFallback ) const; - /* get an int property - in case the property is unknown or not convertible to bool, i_nFallback is returned - */ - sal_Int32 getIntProperty( const OUString& i_rPropertyName, sal_Int32 i_nFallback ) const; - - /* set a property value - can also be used to add another UI property - */ - void setValue( const OUString& i_rPropertyName, const com::sun::star::uno::Any& i_rValue ); - void setValue( const com::sun::star::beans::PropertyValue& i_rValue ); - - /* return the currently active UI options. These are the same that were passed to setUIOptions. - */ - const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& getUIOptions() const; - /* set possible UI options. should only be done once before passing the PrinterListener - to Printer::PrintJob - */ - void setUIOptions( const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& ); - /* enable/disable an option; this can be used to implement dialog logic. - */ - bool isUIOptionEnabled( const OUString& rPropName ) const; - bool isUIChoiceEnabled( const OUString& rPropName, sal_Int32 nChoice ) const; - /* returns the property name rPropName depends on or an empty string - if no dependency exists. - */ - OUString getDependency( const OUString& rPropName ) const; - /* makeEnabled will chage the property rPropName depends on to the value - that makes rPropName enabled. If the dependency itself is also disabled, - no action will be performed. - - returns the property name rPropName depends on or an empty string - if no change was made. - */ - OUString makeEnabled( const OUString& rPropName ); - - virtual int getPageCount() const = 0; // must be overloaded by the app - /* get the page parameters, namely the jobsetup that should be active for the page - (describing among others the physical page size) and the "page size". In writer - case this would probably be the same as the JobSetup since writer sets the page size - draw/impress for example print their page on the paper set on the printer, - possibly adjusting the page size to fit. That means the page size can be different from - the paper size. - */ - // must be overloaded by the app, return page size in 1/100th mm - virtual com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > getPageParameters( int i_nPage ) const = 0; - virtual void printPage( int i_nPage ) const = 0; // must be overloaded by the app - virtual void jobStarted(); // will be called after a possible dialog has been shown and the real printjob starts - virtual void jobFinished( com::sun::star::view::PrintableState ); - - com::sun::star::view::PrintableState getJobState() const; - - void abortJob(); - - bool isShowDialogs() const; - bool isDirectPrint() const; - - // implementation details, not usable outside vcl - // don't use outside vcl. Some of these are exported for - // the benefit of vcl's plugins. - // Still: DO NOT USE OUTSIDE VCL - VCL_PLUGIN_PUBLIC int getFilteredPageCount(); - SAL_DLLPRIVATE PageSize getPageFile( int i_inUnfilteredPage, GDIMetaFile& rMtf, bool i_bMayUseCache = false ); - VCL_PLUGIN_PUBLIC PageSize getFilteredPageFile( int i_nFilteredPage, GDIMetaFile& o_rMtf, bool i_bMayUseCache = false ); - VCL_PLUGIN_PUBLIC void printFilteredPage( int i_nPage ); - SAL_DLLPRIVATE void setPrinter( const boost::shared_ptr<Printer>& ); - SAL_DLLPRIVATE void setOptionChangeHdl( const Link& ); - VCL_PLUGIN_PUBLIC void createProgressDialog(); - VCL_PLUGIN_PUBLIC bool isProgressCanceled() const; - SAL_DLLPRIVATE void setMultipage( const MultiPageSetup& ); - SAL_DLLPRIVATE const MultiPageSetup& getMultipage() const; - VCL_PLUGIN_PUBLIC void setLastPage( sal_Bool i_bLastPage ); - SAL_DLLPRIVATE void setReversePrint( sal_Bool i_bReverse ); - SAL_DLLPRIVATE bool getReversePrint() const; - SAL_DLLPRIVATE void pushPropertiesToPrinter(); - VCL_PLUGIN_PUBLIC void setJobState( com::sun::star::view::PrintableState ); - SAL_DLLPRIVATE bool setupPrinter( Window* i_pDlgParent ); - - SAL_DLLPRIVATE int getPageCountProtected() const; - SAL_DLLPRIVATE com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > getPageParametersProtected( int i_nPage ) const; - - SAL_DLLPRIVATE sal_uLong removeTransparencies( GDIMetaFile& i_rIn, GDIMetaFile& o_rOut ); - SAL_DLLPRIVATE void resetPrinterOptions( bool i_bFileOutput ); -}; - -class VCL_DLLPUBLIC PrinterOptionsHelper -{ - protected: - boost::unordered_map< OUString, com::sun::star::uno::Any, OUStringHash > m_aPropertyMap; - com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > m_aUIProperties; - - public: - PrinterOptionsHelper() {} // create without ui properties - PrinterOptionsHelper( const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& i_rUIProperties ) - : m_aUIProperties( i_rUIProperties ) - {} - ~PrinterOptionsHelper() - {} - - /* process a new set of properties - * merges changed properties and returns "true" if any occurred - * if the optional output set is not NULL then the names of the changed properties are returned - **/ - bool processProperties( const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& i_rNewProp, - std::set< OUString >* o_pChangeProp = NULL ); - /* append to a sequence of property values the ui property sequence passed at creation - * as the "ExtraPrintUIOptions" property. if that sequence was empty, no "ExtraPrintUIOptions" property - * will be appended. - **/ - void appendPrintUIOptions( com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& io_rProps ) const; - - // returns an empty Any for not existing properties - com::sun::star::uno::Any getValue( const OUString& i_rPropertyName ) const; - - sal_Bool getBoolValue( const OUString& i_rPropertyName, sal_Bool i_bDefault = sal_False ) const; - // convenience for fixed strings - sal_Bool getBoolValue( const char* i_pPropName, sal_Bool i_bDefault = sal_False ) const - { return getBoolValue( OUString::createFromAscii( i_pPropName ), i_bDefault ); } - - sal_Int64 getIntValue( const OUString& i_rPropertyName, sal_Int64 i_nDefault = 0 ) const; - // convenience for fixed strings - sal_Int64 getIntValue( const char* i_pPropName, sal_Int64 i_nDefault = 0 ) const - { return getIntValue( OUString::createFromAscii( i_pPropName ), i_nDefault ); } - - OUString getStringValue( const OUString& i_rPropertyName, const OUString& i_rDefault = OUString() ) const; - // convenience for fixed strings - OUString getStringValue( const char* i_pPropName, const OUString& i_rDefault = OUString() ) const - { return getStringValue( OUString::createFromAscii( i_pPropName ), i_rDefault ); } - - // helper functions for user to create a single control - struct UIControlOptions - { - OUString maDependsOnName; - sal_Int32 mnDependsOnEntry; - sal_Bool mbAttachToDependency; - OUString maGroupHint; - sal_Bool mbInternalOnly; - sal_Bool mbEnabled; - com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > maAddProps; - - UIControlOptions( const OUString& i_rDependsOnName = OUString(), - sal_Int32 i_nDependsOnEntry = -1, - sal_Bool i_bAttachToDependency = sal_False, - const OUString& i_rGroupHint = OUString(), - sal_Bool i_bInternalOnly = sal_False, - sal_Bool i_bEnabled = sal_True - ) - : maDependsOnName( i_rDependsOnName ) - , mnDependsOnEntry( i_nDependsOnEntry ) - , mbAttachToDependency( i_bAttachToDependency ) - , maGroupHint( i_rGroupHint ) - , mbInternalOnly( i_bInternalOnly ) - , mbEnabled( i_bEnabled ) {} - }; - - // note: in the following helper functions HelpIds are expected as an OUString - // the normal HelpId form is OString (byte string instead of UTF16 string) - // this is because the whole interface is base on UNO properties; in fact the structures - // are passed over UNO interfaces. UNO does not know a byte string, hence the string is - // transported via UTF16 strings. - - // Show general control - static com::sun::star::uno::Any setUIControlOpt( const com::sun::star::uno::Sequence< OUString >& i_rIDs, - const OUString& i_rTitle, - const com::sun::star::uno::Sequence< OUString >& i_rHelpId, - const OUString& i_rType, - const com::sun::star::beans::PropertyValue* i_pValue = NULL, - const UIControlOptions& i_rControlOptions = UIControlOptions() - ); - - // Show and set the title of a TagPage of id i_rID - static com::sun::star::uno::Any setGroupControlOpt(const OUString& i_rID, - const OUString& i_rTitle, - const OUString& i_rHelpId); - - // Show and set the label of a VclFrame of id i_rID - static com::sun::star::uno::Any setSubgroupControlOpt(const OUString& i_rID, - const OUString& i_rTitle, - const OUString& i_rHelpId, - const UIControlOptions& i_rControlOptions = UIControlOptions()); - - // Show a bool option as a checkbox - static com::sun::star::uno::Any setBoolControlOpt(const OUString& i_rID, - const OUString& i_rTitle, - const OUString& i_rHelpId, - const OUString& i_rProperty, - sal_Bool i_bValue, - const UIControlOptions& i_rControlOptions = UIControlOptions()); - - // Show a set of choices in a list box - static com::sun::star::uno::Any setChoiceListControlOpt(const OUString& i_rID, - const OUString& i_rTitle, - const com::sun::star::uno::Sequence< OUString >& i_rHelpId, - const OUString& i_rProperty, - const com::sun::star::uno::Sequence< OUString >& i_rChoices, - sal_Int32 i_nValue, - const com::sun::star::uno::Sequence< sal_Bool >& i_rDisabledChoices = com::sun::star::uno::Sequence< sal_Bool >(), - const UIControlOptions& i_rControlOptions = UIControlOptions()); - - // show a set of choices as radio buttons - static com::sun::star::uno::Any setChoiceRadiosControlOpt(const com::sun::star::uno::Sequence< OUString >& i_rIDs, - const OUString& i_rTitle, - const com::sun::star::uno::Sequence< OUString >& i_rHelpId, - const OUString& i_rProperty, - const com::sun::star::uno::Sequence< OUString >& i_rChoices, - sal_Int32 i_nValue, - const com::sun::star::uno::Sequence< sal_Bool >& i_rDisabledChoices = com::sun::star::uno::Sequence< sal_Bool >(), - const UIControlOptions& i_rControlOptions = UIControlOptions()); - - - // show an integer range (e.g. a spin field) - // note: max value < min value means do not apply min/max values - static com::sun::star::uno::Any setRangeControlOpt(const OUString& i_rID, - const OUString& i_rTitle, - const OUString& i_rHelpId, - const OUString& i_rProperty, - sal_Int32 i_nValue, - sal_Int32 i_nMinValue = -1, - sal_Int32 i_nMaxValue = -2, - const UIControlOptions& i_rControlOptions = UIControlOptions()); - - // show a string field - // note: max value < min value means do not apply min/max values - static com::sun::star::uno::Any setEditControlOpt(const OUString& i_rID, - const OUString& i_rTitle, - const OUString& i_rHelpId, - const OUString& i_rProperty, - const OUString& i_rValue, - const UIControlOptions& i_rControlOptions = UIControlOptions()); -}; - -} - - -#endif // _SV_PRINT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/printerinfomanager.hxx b/vcl/inc/vcl/printerinfomanager.hxx deleted file mode 100644 index 108b31504de1..000000000000 --- a/vcl/inc/vcl/printerinfomanager.hxx +++ /dev/null @@ -1,239 +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 . - */ - -#ifndef _PSPRINT_PRINTERINFOMANAGER_HXX_ -#define _PSPRINT_PRINTERINFOMANAGER_HXX_ - -#include <boost/unordered_map.hpp> -#include <list> - -#include "vcl/dllapi.h" -#include "vcl/helper.hxx" -#include "vcl/jobdata.hxx" -#include "osl/file.hxx" - -#include <cstdio> - -namespace psp -{ - -class SystemQueueInfo; - -struct PrinterInfo : JobData -{ - // basename of PPD - OUString m_aDriverName; - // can be the queue - OUString m_aLocation; - // a user defined comment - OUString m_aComment; - // a command line to pipe a PS-file to - OUString m_aCommand; - // a command line to pipe a PS-file to in case of direct print - OUString m_aQuickCommand; - // a list of special features separated by ',' not used by psprint - // but assigned from the outside (currently for "fax","pdf=","autoqueue","external_dialog") - OUString m_aFeatures; - // a mapping of fonts to other fonts. - // this provides a method for the user - // to replace arbitrary fonts by printer builtin fonts - // currently this is only a mapping between font names - // assuming that only adbobe standard encoding fonts are - // built into the printer. in future it may be necessary - // to map to a font name and UCS2 vector which should be mapped - // this vector is currently implicitly given by the adobe - // standard encoding - bool m_bPerformFontSubstitution; - boost::unordered_map< OUString, OUString, OUStringHash > - m_aFontSubstitutes; - boost::unordered_map< fontID, fontID > - m_aFontSubstitutions; - - PrinterInfo() : - JobData(), - m_bPerformFontSubstitution( false ) - {} -}; - -class VCL_DLLPUBLIC PrinterInfoManager -{ -public: - enum Type { Default = 0, CUPS = 1 }; - - struct SystemPrintQueue - { - OUString m_aQueue; - OUString m_aLocation; - OUString m_aComment; - }; -protected: - // needed for checkPrintersChanged: files (not necessarily existant) - // and their last known modification time - struct WatchFile - { - // the file in question - OUString m_aFilePath; - // the last know modification time or 0, if file did not exist - TimeValue m_aModified; - }; - - // internal data to describe a printer - struct Printer - { - // configuration file containing this printer - // empty means a freshly added printer that has to be saved yet - OUString m_aFile; - // details other config files that have this printer - // in case of removal all have to be removed - std::list< OUString > m_aAlternateFiles; - // group in m_aFile containing the printer - // this must be unique over all configuration files - // it usually should be the printer name - OString m_aGroup; - // whether changes need to be saved - bool m_bModified; - // the corresponding info and job data - PrinterInfo m_aInfo; - }; - - boost::unordered_map< OUString, Printer, OUStringHash > m_aPrinters; - PrinterInfo m_aGlobalDefaults; - std::list< WatchFile > m_aWatchFiles; - OUString m_aDefaultPrinter; - OUString m_aSystemPrintCommand; - - std::list< SystemPrintQueue > m_aSystemPrintQueues; - - SystemQueueInfo* m_pQueueInfo; - - Type m_eType; - bool m_bUseIncludeFeature; - bool m_bUseJobPatch; - OUString m_aSystemDefaultPaper; - - bool m_bDisableCUPS; - - PrinterInfoManager( Type eType = Default ); - - virtual void initialize(); - - // fill in font substitutions - // the resulting boost::unordered_map maps from source to target font ids - void fillFontSubstitutions( PrinterInfo& rInfo ) const; - - // fill default paper if not configured in config file - // default paper is e.g. locale dependent - // if a paper is already set it will not be overwritten - void setDefaultPaper( PPDContext& rInfo ) const; - - void initSystemDefaultPaper(); -public: - - // there can only be one - static PrinterInfoManager& get(); - // only called by SalData destructor, frees the global instance - static void release(); - - // get PrinterInfoManager type - Type getType() const { return m_eType; } - - // lists the names of all known printers - void listPrinters( std::list< OUString >& rList ) const; - - // gets the number of known printers - int countPrinters() const { return m_aPrinters.size(); } - - // gets info about a named printer - const PrinterInfo& getPrinterInfo( const OUString& rPrinter ) const; - - // gets the name of the default printer - const OUString& getDefaultPrinter() const { return m_aDefaultPrinter; } - - virtual void setupJobContextData( JobData& rData ); - - // changes the info about a named printer - virtual void changePrinterInfo( const OUString& rPrinter, const PrinterInfo& rNewInfo ); - - // check if the printer configuration has changed - // if bwait is true, then this method waits for eventual asynchronous - // printer discovery to finish - virtual bool checkPrintersChanged( bool bWait ); - - // members for administration (->padmin) - - // add a named printer - // addPrinter fails if a printer with the same name already exists - // or the driver does not exist - virtual bool addPrinter( const OUString& rPrinterName, const OUString& rDriverName ); - - // remove a named printer - // this fails if the config file belonging to this printer - // is not writeable - // if bCheckOnly is true, the printer is not really removed; - // this is for checking if the removal would fail - virtual bool removePrinter( const OUString& rPrinterName, bool bCheckOnly = false ); - - // save the changes to all printers. this fails if there - // is no writable config file at all - virtual bool writePrinterConfig(); - - // set a new default printer - // fails if the specified printer does not exist - virtual bool setDefaultPrinter( const OUString& rPrinterName ); - - // primarily used internally but also by padmin - // returns the printer queue names - virtual const std::list< SystemPrintQueue >& getSystemPrintQueues(); - - // similar but returnse whole commandlines - virtual void getSystemPrintCommands( std::list< OUString >& rCommands ); - - // abstract print command - // returns a stdio FILE* that a postscript file may be written to - // this may either be a regular file or the result of popen() - virtual FILE* startSpool( const OUString& rPrinterName, bool bQuickCommand ); - // close the FILE* returned by startSpool and does the actual spooling - // set bBanner to "false" will attempt to suppress banner printing - // set bBanner to "true" will rely on the system default - // returns a numerical job id - virtual int endSpool( const OUString& rPrinterName, const OUString& rJobTitle, FILE* pFile, const JobData& rDocumentJobData, bool bBanner ); - - // for spadmin: whether adding or removing a printer is possible - virtual bool addOrRemovePossible() const; - - bool getUseIncludeFeature() const { return m_bUseIncludeFeature; } - bool getUseJobPatch() const { return m_bUseJobPatch; } - - // check whether a printer's feature string contains a subfeature - bool checkFeatureToken( const OUString& rPrinterName, const char* pToken ) const; - - // set m_bDisableCUPS and update printer config - void setCUPSDisabled( bool ); - - // gets m_bDisableCUPS, initialized from printer config - bool isCUPSDisabled() const; - - virtual ~PrinterInfoManager(); -}; - -} // namespace - -#endif // _PSPRINT_PRINTERINFOMANAGER_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/prntypes.hxx b/vcl/inc/vcl/prntypes.hxx deleted file mode 100644 index 4fdaaf794f08..000000000000 --- a/vcl/inc/vcl/prntypes.hxx +++ /dev/null @@ -1,89 +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 . - */ - -#ifndef _SV_PRNTYPES_HXX -#define _SV_PRNTYPES_HXX - -#include <tools/solar.h> -#include <i18nutil/paper.hxx> - -// --------------- -// - Duplex Mode - -// --------------- - -enum DuplexMode { DUPLEX_UNKNOWN, DUPLEX_OFF, DUPLEX_LONGEDGE, DUPLEX_SHORTEDGE }; - -// --------------- -// - Orientation - -// --------------- - -enum Orientation { ORIENTATION_PORTRAIT, ORIENTATION_LANDSCAPE }; - -// ------------------- -// - QueueInfo-Types - -// ------------------- - -#define QUEUE_STATUS_READY ((sal_uLong)0x00000001) -#define QUEUE_STATUS_PAUSED ((sal_uLong)0x00000002) -#define QUEUE_STATUS_PENDING_DELETION ((sal_uLong)0x00000004) -#define QUEUE_STATUS_BUSY ((sal_uLong)0x00000008) -#define QUEUE_STATUS_INITIALIZING ((sal_uLong)0x00000010) -#define QUEUE_STATUS_WAITING ((sal_uLong)0x00000020) -#define QUEUE_STATUS_WARMING_UP ((sal_uLong)0x00000040) -#define QUEUE_STATUS_PROCESSING ((sal_uLong)0x00000080) -#define QUEUE_STATUS_PRINTING ((sal_uLong)0x00000100) -#define QUEUE_STATUS_OFFLINE ((sal_uLong)0x00000200) -#define QUEUE_STATUS_ERROR ((sal_uLong)0x00000400) -#define QUEUE_STATUS_SERVER_UNKNOWN ((sal_uLong)0x00000800) -#define QUEUE_STATUS_PAPER_JAM ((sal_uLong)0x00001000) -#define QUEUE_STATUS_PAPER_OUT ((sal_uLong)0x00002000) -#define QUEUE_STATUS_MANUAL_FEED ((sal_uLong)0x00004000) -#define QUEUE_STATUS_PAPER_PROBLEM ((sal_uLong)0x00008000) -#define QUEUE_STATUS_IO_ACTIVE ((sal_uLong)0x00010000) -#define QUEUE_STATUS_OUTPUT_BIN_FULL ((sal_uLong)0x00020000) -#define QUEUE_STATUS_TONER_LOW ((sal_uLong)0x00040000) -#define QUEUE_STATUS_NO_TONER ((sal_uLong)0x00080000) -#define QUEUE_STATUS_PAGE_PUNT ((sal_uLong)0x00100000) -#define QUEUE_STATUS_USER_INTERVENTION ((sal_uLong)0x00200000) -#define QUEUE_STATUS_OUT_OF_MEMORY ((sal_uLong)0x00400000) -#define QUEUE_STATUS_DOOR_OPEN ((sal_uLong)0x00800000) -#define QUEUE_STATUS_POWER_SAVE ((sal_uLong)0x01000000) - -#define QUEUE_JOBS_DONTKNOW ((sal_uLong)0xFFFFFFFF) - -// ----------------- -// - Printer-Types - -// ----------------- - -#define PRINTER_CAPABILITIES_SUPPORTDIALOG ((sal_uInt16)1) -#define PRINTER_CAPABILITIES_COPIES ((sal_uInt16)2) -#define PRINTER_CAPABILITIES_COLLATECOPIES ((sal_uInt16)3) -#define PRINTER_CAPABILITIES_SETORIENTATION ((sal_uInt16)4) -#define PRINTER_CAPABILITIES_SETPAPERBIN ((sal_uInt16)5) -#define PRINTER_CAPABILITIES_SETPAPERSIZE ((sal_uInt16)6) -#define PRINTER_CAPABILITIES_SETPAPER ((sal_uInt16)7) -#define PRINTER_CAPABILITIES_FAX ((sal_uInt16)8) -#define PRINTER_CAPABILITIES_PDF ((sal_uInt16)9) -#define PRINTER_CAPABILITIES_EXTERNALDIALOG ((sal_uInt16)10) -#define PRINTER_CAPABILITIES_SETDUPLEX ((sal_uInt16)11) -#define PRINTER_CAPABILITIES_USEPULLMODEL ((sal_uInt16)12) - -#endif // _SV_PRNTYPES_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/ptrstyle.hxx b/vcl/inc/vcl/ptrstyle.hxx deleted file mode 100644 index c3f567e26036..000000000000 --- a/vcl/inc/vcl/ptrstyle.hxx +++ /dev/null @@ -1,134 +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 . - */ - -#ifndef _VCL_PTRSTYLE_HXX -#define _VCL_PTRSTYLE_HXX - -#include <tools/solar.h> - -// ----------------- -// - Pointer-Types - -// ----------------- - -typedef sal_uInt16 PointerStyle; - -#define POINTER_ARROW ((PointerStyle)0) -#define POINTER_NULL ((PointerStyle)1) -#define POINTER_WAIT ((PointerStyle)2) -#define POINTER_TEXT ((PointerStyle)3) -#define POINTER_HELP ((PointerStyle)4) -#define POINTER_CROSS ((PointerStyle)5) -#define POINTER_MOVE ((PointerStyle)6) -#define POINTER_NSIZE ((PointerStyle)7) -#define POINTER_SSIZE ((PointerStyle)8) -#define POINTER_WSIZE ((PointerStyle)9) -#define POINTER_ESIZE ((PointerStyle)10) -#define POINTER_NWSIZE ((PointerStyle)11) -#define POINTER_NESIZE ((PointerStyle)12) -#define POINTER_SWSIZE ((PointerStyle)13) -#define POINTER_SESIZE ((PointerStyle)14) -#define POINTER_WINDOW_NSIZE ((PointerStyle)15) -#define POINTER_WINDOW_SSIZE ((PointerStyle)16) -#define POINTER_WINDOW_WSIZE ((PointerStyle)17) -#define POINTER_WINDOW_ESIZE ((PointerStyle)18) -#define POINTER_WINDOW_NWSIZE ((PointerStyle)19) -#define POINTER_WINDOW_NESIZE ((PointerStyle)20) -#define POINTER_WINDOW_SWSIZE ((PointerStyle)21) -#define POINTER_WINDOW_SESIZE ((PointerStyle)22) -#define POINTER_HSPLIT ((PointerStyle)23) -#define POINTER_VSPLIT ((PointerStyle)24) -#define POINTER_HSIZEBAR ((PointerStyle)25) -#define POINTER_VSIZEBAR ((PointerStyle)26) -#define POINTER_HAND ((PointerStyle)27) -#define POINTER_REFHAND ((PointerStyle)28) -#define POINTER_PEN ((PointerStyle)29) -#define POINTER_MAGNIFY ((PointerStyle)30) -#define POINTER_FILL ((PointerStyle)31) -#define POINTER_ROTATE ((PointerStyle)32) -#define POINTER_HSHEAR ((PointerStyle)33) -#define POINTER_VSHEAR ((PointerStyle)34) -#define POINTER_MIRROR ((PointerStyle)35) -#define POINTER_CROOK ((PointerStyle)36) -#define POINTER_CROP ((PointerStyle)37) -#define POINTER_MOVEPOINT ((PointerStyle)38) -#define POINTER_MOVEBEZIERWEIGHT ((PointerStyle)39) -#define POINTER_MOVEDATA ((PointerStyle)40) -#define POINTER_COPYDATA ((PointerStyle)41) -#define POINTER_LINKDATA ((PointerStyle)42) -#define POINTER_MOVEDATALINK ((PointerStyle)43) -#define POINTER_COPYDATALINK ((PointerStyle)44) -#define POINTER_MOVEFILE ((PointerStyle)45) -#define POINTER_COPYFILE ((PointerStyle)46) -#define POINTER_LINKFILE ((PointerStyle)47) -#define POINTER_MOVEFILELINK ((PointerStyle)48) -#define POINTER_COPYFILELINK ((PointerStyle)49) -#define POINTER_MOVEFILES ((PointerStyle)50) -#define POINTER_COPYFILES ((PointerStyle)51) -#define POINTER_NOTALLOWED ((PointerStyle)52) -#define POINTER_DRAW_LINE ((PointerStyle)53) -#define POINTER_DRAW_RECT ((PointerStyle)54) -#define POINTER_DRAW_POLYGON ((PointerStyle)55) -#define POINTER_DRAW_BEZIER ((PointerStyle)56) -#define POINTER_DRAW_ARC ((PointerStyle)57) -#define POINTER_DRAW_PIE ((PointerStyle)58) -#define POINTER_DRAW_CIRCLECUT ((PointerStyle)59) -#define POINTER_DRAW_ELLIPSE ((PointerStyle)60) -#define POINTER_DRAW_FREEHAND ((PointerStyle)61) -#define POINTER_DRAW_CONNECT ((PointerStyle)62) -#define POINTER_DRAW_TEXT ((PointerStyle)63) -#define POINTER_DRAW_CAPTION ((PointerStyle)64) -#define POINTER_CHART ((PointerStyle)65) -#define POINTER_DETECTIVE ((PointerStyle)66) -#define POINTER_PIVOT_COL ((PointerStyle)67) -#define POINTER_PIVOT_ROW ((PointerStyle)68) -#define POINTER_PIVOT_FIELD ((PointerStyle)69) -#define POINTER_CHAIN ((PointerStyle)70) -#define POINTER_CHAIN_NOTALLOWED ((PointerStyle)71) -#define POINTER_TIMEEVENT_MOVE ((PointerStyle)72) -#define POINTER_TIMEEVENT_SIZE ((PointerStyle)73) -#define POINTER_AUTOSCROLL_N ((PointerStyle)74) -#define POINTER_AUTOSCROLL_S ((PointerStyle)75) -#define POINTER_AUTOSCROLL_W ((PointerStyle)76) -#define POINTER_AUTOSCROLL_E ((PointerStyle)77) -#define POINTER_AUTOSCROLL_NW ((PointerStyle)78) -#define POINTER_AUTOSCROLL_NE ((PointerStyle)79) -#define POINTER_AUTOSCROLL_SW ((PointerStyle)80) -#define POINTER_AUTOSCROLL_SE ((PointerStyle)81) -#define POINTER_AUTOSCROLL_NS ((PointerStyle)82) -#define POINTER_AUTOSCROLL_WE ((PointerStyle)83) -#define POINTER_AUTOSCROLL_NSWE ((PointerStyle)84) -#define POINTER_AIRBRUSH ((PointerStyle)85) -#define POINTER_TEXT_VERTICAL ((PointerStyle)86) -#define POINTER_PIVOT_DELETE ((PointerStyle)87) - -// #i32329# -#define POINTER_TAB_SELECT_S ((PointerStyle)88) -#define POINTER_TAB_SELECT_E ((PointerStyle)89) -#define POINTER_TAB_SELECT_SE ((PointerStyle)90) -#define POINTER_TAB_SELECT_W ((PointerStyle)91) -#define POINTER_TAB_SELECT_SW ((PointerStyle)92) - -// #i20119# -#define POINTER_PAINTBRUSH ((PointerStyle)93) - -#define POINTER_COUNT 94 - -#endif // _VCL_PTRSTYLE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/quickselectionengine.hxx b/vcl/inc/vcl/quickselectionengine.hxx deleted file mode 100644 index 631f0c40aa95..000000000000 --- a/vcl/inc/vcl/quickselectionengine.hxx +++ /dev/null @@ -1,94 +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 . - */ - -#ifndef VCL_QUICKSELECTIONENGINE_HXX -#define VCL_QUICKSELECTIONENGINE_HXX - -#include "dllapi.h" - -#include <tools/string.hxx> - -#include <memory> - -class KeyEvent; - -//........................................................................ -namespace vcl -{ -//........................................................................ - - typedef const void* StringEntryIdentifier; - - //==================================================================== - //= ISearchableStringList - //==================================================================== - // TODO: consolidate this with ::vcl::IMnemonicEntryList - class SAL_NO_VTABLE VCL_DLLPUBLIC ISearchableStringList - { - public: - /** returns the current entry in the list of searchable strings. - - Search operations will start with this entry. - */ - virtual StringEntryIdentifier CurrentEntry( String& _out_entryText ) const = 0; - - /** returns the next entry in the list. - - The implementation is expected to wrap around. That is, if the given entry denotes the last - entry in the list, then NextEntry should return the first entry. - */ - virtual StringEntryIdentifier NextEntry( StringEntryIdentifier _currentEntry, String& _out_entryText ) const = 0; - - /** selects a given entry - */ - virtual void SelectEntry( StringEntryIdentifier _entry ) = 0; - - protected: - ~ISearchableStringList() {} - }; - - //==================================================================== - //= QuickSelectionEngine - //==================================================================== - struct QuickSelectionEngine_Data; - class VCL_DLLPUBLIC QuickSelectionEngine - { - public: - QuickSelectionEngine( ISearchableStringList& _entryList ); - ~QuickSelectionEngine(); - - bool HandleKeyEvent( const KeyEvent& _rKEvt ); - void Reset(); - - private: - ::std::auto_ptr< QuickSelectionEngine_Data > m_pData; - - private: - QuickSelectionEngine(); // never implemented - QuickSelectionEngine( const QuickSelectionEngine& ); // never implemented - QuickSelectionEngine& operator=( const QuickSelectionEngine& ); // never implemented - }; - -//........................................................................ -} // namespace vcl -//........................................................................ - -#endif // VCL_QUICKSELECTIONENGINE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/regband.hxx b/vcl/inc/vcl/regband.hxx deleted file mode 100644 index 0b60a801d83e..000000000000 --- a/vcl/inc/vcl/regband.hxx +++ /dev/null @@ -1,142 +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 . - */ - -#ifndef _SV_REGBAND_HXX -#define _SV_REGBAND_HXX - -#include <tools/solar.h> -#include <tools/poly.hxx> - -/* ======================================================================= - -class ImplRegionBand - -This class handles one y-band of the region. In this band may contain one -or more seprarations in x-direction. The y-Band do not contain any -separation after creation. - -The separations are modified with basic clipping functions like Union and -Intersection - the Class will process the clipping for the actual band. - -The actual separations may be checked by functions like IsInside or -IsOver. - -======================================================================= */ - -// ------------------------ -// - ImplRegionBand-Types - -// ------------------------ - -// element for the list with x-separations -struct ImplRegionBandSep -{ - ImplRegionBandSep* mpNextSep; - long mnXLeft; - long mnXRight; - sal_Bool mbRemoved; -}; - -enum LineType { LINE_ASCENDING, LINE_DESCENDING, LINE_HORIZONTAL }; - -// element for the list with x-separations -struct ImplRegionBandPoint -{ - ImplRegionBandPoint* mpNextBandPoint; - long mnX; - long mnLineId; - sal_Bool mbEndPoint; - LineType meLineType; -}; - -// ------------------ -// - ImplRegionBand - -// ------------------ - -class ImplRegionBand -{ -public: - ImplRegionBand* mpNextBand; // pointer to the next element of the list - ImplRegionBand* mpPrevBand; // pointer to the previous element of the list (only used temporaery) - ImplRegionBandSep* mpFirstSep; // root of the list with x-separations - ImplRegionBandPoint* mpFirstBandPoint; // root of the list with lines - long mnYTop; // actual boundary of the band - long mnYBottom; - sal_Bool mbTouched; - - // create y-band with boundaries - ImplRegionBand( long nYTop, long nYBottom ); - /** copy y-band with with all data - @param theSourceBand - The new ImplRegionBand object will - be a copy of this band. - @param bIgnorePoints - When <TRUE/> (the default) the - band points pointed to by - mpFirstBandPoint are not copied. - When <FALSE/> they are copied. - You need the points when you are - planning to call ProcessPoints() - later on. - */ - ImplRegionBand( const ImplRegionBand & theSourceBand, - const bool bIgnorePoints = true); - ~ImplRegionBand(); - - long GetXLeftBoundary() const; - long GetXRightBoundary() const; - - // combine overlapping bands - sal_Bool OptimizeBand(); - - // generate separations from lines and process - // union with existing separations - void ProcessPoints(); - // insert point in the list for later processing - sal_Bool InsertPoint( long nX, long nLineID, - sal_Bool bEndPoint, LineType eLineType ); - - void Union( long nXLeft, long nXRight ); - void Intersect( long nXLeft, long nXRight ); - void Exclude( long nXLeft, long nXRight ); - void XOr( long nXLeft, long nXRight ); - - void MoveX( long nHorzMove ); - void ScaleX( double fHorzScale ); - - sal_Bool IsInside( long nX ); - - sal_Bool IsEmpty() const { return ((!mpFirstSep) && (!mpFirstBandPoint)); } - - sal_Bool operator==( const ImplRegionBand& rRegionBand ) const; - - /** Split the called band at the given vertical coordinate. After the - split the called band will cover the upper part not including nY. - The new band will cover the lower part including nY. - @param nY - The band is split at this y coordinate. The new, lower band - will include this very value. - @return - Returns the new, lower band. - */ - ImplRegionBand* SplitBand (const sal_Int32 nY); -}; - -#endif // _SV_REGBAND_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/region.hxx b/vcl/inc/vcl/region.hxx deleted file mode 100644 index 02eebc7ec50e..000000000000 --- a/vcl/inc/vcl/region.hxx +++ /dev/null @@ -1,155 +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 . - */ - -#ifndef _SV_REGION_HXX -#define _SV_REGION_HXX - -#include <tools/gen.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> - -#include <basegfx/polygon/b2dpolypolygon.hxx> - -class ImplRegion; -class ImplRegionBand; -class Polygon; -class PolyPolygon; -struct ImplRegionInfo; - -// -------------- -// - RegionType - -// -------------- - -enum RegionType { REGION_NULL, REGION_EMPTY, REGION_RECTANGLE, REGION_COMPLEX }; -enum RegionOverlapType { REGION_INSIDE, REGION_OVER, REGION_OUTSIDE }; - -typedef long RegionHandle; - -// ---------- -// - Region - -// ---------- - -class VCL_DLLPUBLIC Region -{ - friend class OutputDevice; - friend class Window; - friend class Bitmap; - -private: - ImplRegion* mpImplRegion; - - SAL_DLLPRIVATE void ImplCopyData(); - SAL_DLLPRIVATE void ImplCreateRectRegion( const Rectangle& rRect ); - SAL_DLLPRIVATE void ImplCreatePolyPolyRegion( const PolyPolygon& rPolyPoly ); - SAL_DLLPRIVATE void ImplCreatePolyPolyRegion( const basegfx::B2DPolyPolygon& rPolyPoly ); - SAL_DLLPRIVATE void ImplPolyPolyRegionToBandRegionFunc(); - SAL_DLLPRIVATE inline void ImplPolyPolyRegionToBandRegion(); - SAL_DLLPRIVATE const ImplRegion* ImplGetImplRegion() const { return mpImplRegion; } - SAL_DLLPRIVATE ImplRegion* ImplGetImplRegion() { return mpImplRegion; } - SAL_DLLPRIVATE void ImplBeginAddRect( ); - SAL_DLLPRIVATE sal_Bool ImplAddRect( const Rectangle& rRect ); - SAL_DLLPRIVATE void ImplEndAddRect( ); - SAL_DLLPRIVATE void ImplIntersectWithPolyPolygon( const Region& ); - SAL_DLLPRIVATE void ImplExcludePolyPolygon( const Region& ); - SAL_DLLPRIVATE void ImplUnionPolyPolygon( const Region& ); - SAL_DLLPRIVATE void ImplXOrPolyPolygon( const Region& ); - -public: // public within vcl - VCL_PLUGIN_PUBLIC bool ImplGetFirstRect( ImplRegionInfo& rImplRegionInfo, - long& nX, long& nY, long& nWidth, long& nHeight ) const; - VCL_PLUGIN_PUBLIC bool ImplGetNextRect( ImplRegionInfo& rImplRegionInfo, - long& nX, long& nY, long& nWidth, long& nHeight ) const; -#ifdef DBG_UTIL - friend const char* ImplDbgTestRegion( const void* pObj ); -#endif - -public: - explicit Region(); - explicit Region( RegionType eType ); - explicit Region( const Rectangle& rRect ); - explicit Region( const Polygon& rPolygon ); - explicit Region( const PolyPolygon& rPolyPoly ); - explicit Region( const basegfx::B2DPolyPolygon& ); - Region( const Region& rRegion ); - ~Region(); - - void Move( long nHorzMove, long nVertMove ); - void Scale( double fScaleX, double fScaleY ); - void Union( const Rectangle& rRegion ); - void Intersect( const Rectangle& rRegion ); - void Exclude( const Rectangle& rRegion ); - void XOr( const Rectangle& rRegion ); - void Union( const Region& rRegion ); - void Intersect( const Region& rRegion ); - void Exclude( const Region& rRegion ); - void XOr( const Region& rRegion ); - - RegionType GetType() const; - sal_Bool IsEmpty() const { return GetType() == REGION_EMPTY; }; - sal_Bool IsNull() const { return GetType() == REGION_NULL; }; - - void SetEmpty(); - void SetNull(); - - Rectangle GetBoundRect() const; - - sal_Bool HasPolyPolygon() const; - PolyPolygon GetPolyPolygon() const; - // returns an empty polypolygon in case HasPolyPolygon is sal_False - const basegfx::B2DPolyPolygon GetB2DPolyPolygon() const; - // returns a PolyPolygon either copied from the set PolyPolygon region - // or created from the constituent rectangles - basegfx::B2DPolyPolygon ConvertToB2DPolyPolygon(); - - sal_uLong GetRectCount() const; - RegionHandle BeginEnumRects(); - sal_Bool GetEnumRects( RegionHandle hRegionHandle, Rectangle& rRect ); - sal_Bool GetNextEnumRect( RegionHandle hRegionHandle, Rectangle& rRect ) - { return GetEnumRects( hRegionHandle, rRect ); } - void EndEnumRects( RegionHandle hRegionHandle ); - - sal_Bool IsInside( const Point& rPoint ) const; - sal_Bool IsInside( const Rectangle& rRect ) const; - sal_Bool IsOver( const Rectangle& rRect ) const; - - Region& operator=( const Region& rRegion ); - Region& operator=( const Rectangle& rRect ); - - sal_Bool operator==( const Region& rRegion ) const; - sal_Bool operator!=( const Region& rRegion ) const - { return !(Region::operator==( rRegion )); } - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, Region& rRegion ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const Region& rRegion ); - - /* workaround: faster conversion for PolyPolygons - * if half of the Polygons contained in rPolyPoly are actually - * rectangles, then the returned Region will be constructed by - * XOr'ing the contained Polygons together; in the case of - * only Rectangles this can be up to eight times faster than - * Region( const PolyPolygon& ). - * Caution: this is only useful if the Region is known to be - * changed to rectangles; e.g. if being set as clip region - */ - static Region GetRegionFromPolyPolygon( const PolyPolygon& rPolyPoly ); -}; - -#endif // _SV_REGION_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/salbtype.hxx b/vcl/inc/vcl/salbtype.hxx deleted file mode 100644 index 85a00a197f96..000000000000 --- a/vcl/inc/vcl/salbtype.hxx +++ /dev/null @@ -1,887 +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 . - */ - -#ifndef _SV_SALBTYPE_HXX -#define _SV_SALBTYPE_HXX -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <osl/endian.h> -#include <tools/debug.hxx> -#include <vcl/salgtype.hxx> -#include <tools/color.hxx> -#include <tools/helpers.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> - -// ---------- -// - Memory - -// ---------- - -typedef sal_uInt8* HPBYTE; -typedef HPBYTE Scanline; -typedef const sal_uInt8* ConstHPBYTE; -typedef ConstHPBYTE ConstScanline; - -// ------------------ -// - Bitmap formats - -// ------------------ - -#define BMP_FORMAT_BOTTOM_UP 0x00000000UL -#define BMP_FORMAT_TOP_DOWN 0x80000000UL - -#define BMP_FORMAT_1BIT_MSB_PAL 0x00000001UL -#define BMP_FORMAT_1BIT_LSB_PAL 0x00000002UL - -#define BMP_FORMAT_4BIT_MSN_PAL 0x00000004UL -#define BMP_FORMAT_4BIT_LSN_PAL 0x00000008UL - -#define BMP_FORMAT_8BIT_PAL 0x00000010UL -#define BMP_FORMAT_8BIT_TC_MASK 0x00000020UL - -// #define BMP_FORMAT_16BIT_TC_MASK 0x00000040UL - -#define BMP_FORMAT_24BIT_TC_BGR 0x00000080UL -#define BMP_FORMAT_24BIT_TC_RGB 0x00000100UL -#define BMP_FORMAT_24BIT_TC_MASK 0x00000200UL - -#define BMP_FORMAT_32BIT_TC_ABGR 0x00000400UL -#define BMP_FORMAT_32BIT_TC_ARGB 0x00000800UL -#define BMP_FORMAT_32BIT_TC_BGRA 0x00001000UL -#define BMP_FORMAT_32BIT_TC_RGBA 0x00002000UL -#define BMP_FORMAT_32BIT_TC_MASK 0x00004000UL - -#define BMP_FORMAT_16BIT_TC_MSB_MASK 0x00008000UL -#define BMP_FORMAT_16BIT_TC_LSB_MASK 0x00010000UL - -#define BMP_SCANLINE_ADJUSTMENT( Mac_nBmpFormat ) ( (Mac_nBmpFormat) & 0x80000000UL ) -#define BMP_SCANLINE_FORMAT( Mac_nBmpFormat ) ( (Mac_nBmpFormat) & 0x7FFFFFFFUL ) - -// ------------------------------------------------------------------ - -#define MASK_TO_COLOR( d_nVal, d_RM, d_GM, d_BM, d_RS, d_GS, d_BS, d_Col ) \ -sal_uLong _def_cR = (sal_uInt8) ( d_RS < 0L ? ( (d_nVal) & d_RM ) << -d_RS : ( (d_nVal) & d_RM ) >> d_RS ); \ -sal_uLong _def_cG = (sal_uInt8) ( d_GS < 0L ? ( (d_nVal) & d_GM ) << -d_GS : ( (d_nVal) & d_GM ) >> d_GS ); \ -sal_uLong _def_cB = (sal_uInt8) ( d_BS < 0L ? ( (d_nVal) & d_BM ) << -d_BS : ( (d_nVal) & d_BM ) >> d_BS ); \ -d_Col = BitmapColor( (sal_uInt8) ( _def_cR | ( ( _def_cR & mnROr ) >> mnROrShift ) ), \ - (sal_uInt8) ( _def_cG | ( ( _def_cG & mnGOr ) >> mnGOrShift ) ), \ - (sal_uInt8) ( _def_cB | ( ( _def_cB & mnBOr ) >> mnBOrShift ) ) ); - -// ------------------------------------------------------------------ - -#define COLOR_TO_MASK( d_rCol, d_RM, d_GM, d_BM, d_RS, d_GS, d_BS ) \ -( ( ( ( d_RS < 0L ) ? ( (sal_uInt32) (d_rCol).GetRed() >> -d_RS ) : \ - ( (sal_uInt32) (d_rCol).GetRed() << d_RS ) ) & d_RM ) | \ - ( ( ( d_GS < 0L ) ? ( (sal_uInt32) (d_rCol).GetGreen() >> -d_GS ) : \ - ( (sal_uInt32) (d_rCol).GetGreen() << d_GS ) ) & d_GM ) | \ - ( ( ( d_BS < 0L ) ? ( (sal_uInt32) (d_rCol).GetBlue() >> -d_BS ) : \ - ( (sal_uInt32) (d_rCol).GetBlue() << d_BS ) ) & d_BM ) ) - -// --------------- -// - BitmapColor - -// --------------- - -class Color; - -class VCL_DLLPUBLIC BitmapColor -{ -private: - -// ATTENTION: -// Because the members of this class are accessed via memcpy, -// you MUST NOT CHANGE the order of the members or the size of this class! - sal_uInt8 mcBlueOrIndex; - sal_uInt8 mcGreen; - sal_uInt8 mcRed; - sal_uInt8 mbIndex; - -public: - - inline BitmapColor(); - inline BitmapColor( const BitmapColor& rBitmapColor ); - inline BitmapColor( sal_uInt8 cRed, sal_uInt8 cGreen, sal_uInt8 cBlue ); - inline BitmapColor( const Color& rColor ); - inline BitmapColor( sal_uInt8 cIndex ); - inline ~BitmapColor() {}; - - inline sal_Bool operator==( const BitmapColor& rBitmapColor ) const; - inline sal_Bool operator!=( const BitmapColor& rBitmapColor ) const; - inline BitmapColor& operator=( const BitmapColor& rBitmapColor ); - - inline sal_Bool IsIndex() const; - - inline sal_uInt8 GetRed() const; - inline void SetRed( sal_uInt8 cRed ); - - inline sal_uInt8 GetGreen() const; - inline void SetGreen( sal_uInt8 cGreen ); - - inline sal_uInt8 GetBlue() const; - inline void SetBlue( sal_uInt8 cBlue ); - - inline sal_uInt8 GetIndex() const; - inline void SetIndex( sal_uInt8 cIndex ); - - operator Color() const; - inline operator sal_uInt8() const; - - inline sal_uInt8 GetBlueOrIndex() const; - - inline BitmapColor& Invert(); - - inline sal_uInt8 GetLuminance() const; - inline BitmapColor& IncreaseLuminance( sal_uInt8 cGreyInc ); - inline BitmapColor& DecreaseLuminance( sal_uInt8 cGreyDec ); - - inline BitmapColor& Merge( const BitmapColor& rColor, sal_uInt8 cTransparency ); - inline BitmapColor& Merge( sal_uInt8 cR, sal_uInt8 cG, sal_uInt8 cB, sal_uInt8 cTransparency ); - - inline sal_uLong GetColorError( const BitmapColor& rBitmapColor ) const; -}; - -// --------------- -// - BitmapPalette - -// --------------- - -class Palette; - -class VCL_DLLPUBLIC BitmapPalette -{ - friend class SalBitmap; - friend class BitmapAccess; - -private: - - BitmapColor* mpBitmapColor; - sal_uInt16 mnCount; - -public: - - SAL_DLLPRIVATE inline BitmapColor* ImplGetColorBuffer() const; - - -public: - - inline BitmapPalette(); - inline BitmapPalette( const BitmapPalette& rBitmapPalette ); - inline BitmapPalette( sal_uInt16 nCount ); - inline ~BitmapPalette(); - - inline BitmapPalette& operator=( const BitmapPalette& rBitmapPalette ); - inline sal_Bool operator==( const BitmapPalette& rBitmapPalette ) const; - inline sal_Bool operator!=( const BitmapPalette& rBitmapPalette ) const; - inline sal_Bool operator!(); - - inline sal_uInt16 GetEntryCount() const; - inline void SetEntryCount( sal_uInt16 nCount ); - - inline const BitmapColor& operator[]( sal_uInt16 nIndex ) const; - inline BitmapColor& operator[]( sal_uInt16 nIndex ); - - inline sal_uInt16 GetBestIndex( const BitmapColor& rCol ) const; - bool IsGreyPalette() const; -}; - -// --------------- -// - ColorMask - -// --------------- - -class VCL_DLLPUBLIC ColorMask -{ - sal_uLong mnRMask; - sal_uLong mnGMask; - sal_uLong mnBMask; - long mnRShift; - long mnGShift; - long mnBShift; - sal_uLong mnROrShift; - sal_uLong mnGOrShift; - sal_uLong mnBOrShift; - sal_uLong mnROr; - sal_uLong mnGOr; - sal_uLong mnBOr; - - SAL_DLLPRIVATE inline long ImplCalcMaskShift( sal_uLong nMask, sal_uLong& rOr, sal_uLong& rOrShift ) const; - -public: - - inline ColorMask( sal_uLong nRedMask = 0UL, sal_uLong nGreenMask = 0UL, sal_uLong nBlueMask = 0UL ); - inline ~ColorMask() {} - - inline sal_uLong GetRedMask() const; - inline sal_uLong GetGreenMask() const; - inline sal_uLong GetBlueMask() const; - - inline void GetColorFor8Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const; - inline void SetColorFor8Bit( const BitmapColor& rColor, HPBYTE pPixel ) const; - - inline void GetColorFor16BitMSB( BitmapColor& rColor, ConstHPBYTE pPixel ) const; - inline void SetColorFor16BitMSB( const BitmapColor& rColor, HPBYTE pPixel ) const; - inline void GetColorFor16BitLSB( BitmapColor& rColor, ConstHPBYTE pPixel ) const; - inline void SetColorFor16BitLSB( const BitmapColor& rColor, HPBYTE pPixel ) const; - - inline void GetColorFor24Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const; - inline void SetColorFor24Bit( const BitmapColor& rColor, HPBYTE pPixel ) const; - - inline void GetColorFor32Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const; - inline void SetColorFor32Bit( const BitmapColor& rColor, HPBYTE pPixel ) const; -}; - -// --------------- -// - BitmapBuffer - -// --------------- - -struct VCL_DLLPUBLIC BitmapBuffer -{ - sal_uLong mnFormat; - long mnWidth; - long mnHeight; - long mnScanlineSize; - sal_uInt16 mnBitCount; - ColorMask maColorMask; - BitmapPalette maPalette; - sal_uInt8* mpBits; - - BitmapBuffer(){} - ~BitmapBuffer() {} -}; - -// --------------------- -// - StretchAndConvert - -// --------------------- - -VCL_DLLPUBLIC BitmapBuffer* StretchAndConvert( const BitmapBuffer& rSrcBuffer, const SalTwoRect& rTwoRect, - sal_uLong nDstBitmapFormat, BitmapPalette* pDstPal = NULL, ColorMask* pDstMask = NULL ); - -// ------------------------------------------------------------------ - -inline BitmapColor::BitmapColor() : - mcBlueOrIndex ( 0 ), - mcGreen ( 0 ), - mcRed ( 0 ), - mbIndex ( sal_False ) -{ -} - -// ------------------------------------------------------------------ - -inline BitmapColor::BitmapColor( sal_uInt8 cRed, sal_uInt8 cGreen, sal_uInt8 cBlue ) : - mcBlueOrIndex ( cBlue ), - mcGreen ( cGreen ), - mcRed ( cRed ), - mbIndex ( sal_False ) -{ -} - -// ------------------------------------------------------------------ - -inline BitmapColor::BitmapColor( const BitmapColor& rBitmapColor ) : - mcBlueOrIndex ( rBitmapColor.mcBlueOrIndex ), - mcGreen ( rBitmapColor.mcGreen ), - mcRed ( rBitmapColor.mcRed ), - mbIndex ( rBitmapColor.mbIndex ) -{ -} - -// ------------------------------------------------------------------ - -inline BitmapColor::BitmapColor( const Color& rColor ) : - mcBlueOrIndex ( rColor.GetBlue() ), - mcGreen ( rColor.GetGreen() ), - mcRed ( rColor.GetRed() ), - mbIndex ( 0 ) -{ -} - -// ------------------------------------------------------------------ - -inline BitmapColor::BitmapColor( sal_uInt8 cIndex ) : - mcBlueOrIndex ( cIndex ), - mcGreen ( 0 ), - mcRed ( 0 ), - mbIndex ( sal_True ) -{ -} - -// ------------------------------------------------------------------ - -inline sal_Bool BitmapColor::operator==( const BitmapColor& rBitmapColor ) const -{ - return( ( mcBlueOrIndex == rBitmapColor.mcBlueOrIndex ) && - ( mbIndex ? rBitmapColor.mbIndex : - ( mcGreen == rBitmapColor.mcGreen && mcRed == rBitmapColor.mcRed ) ) ); -} - -// ------------------------------------------------------------------ - -inline sal_Bool BitmapColor::operator!=( const BitmapColor& rBitmapColor ) const -{ - return !( *this == rBitmapColor ); -} - -// ------------------------------------------------------------------ - -inline BitmapColor& BitmapColor::operator=( const BitmapColor& rBitmapColor ) -{ - mcBlueOrIndex = rBitmapColor.mcBlueOrIndex; - mcGreen = rBitmapColor.mcGreen; - mcRed = rBitmapColor.mcRed; - mbIndex = rBitmapColor.mbIndex; - - return *this; -} - -// ------------------------------------------------------------------ - -inline sal_Bool BitmapColor::IsIndex() const -{ - return mbIndex; -} - -// ------------------------------------------------------------------ - -inline sal_uInt8 BitmapColor::GetRed() const -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - return mcRed; -} - -// ------------------------------------------------------------------ - -inline void BitmapColor::SetRed( sal_uInt8 cRed ) -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - mcRed = cRed; -} - -// ------------------------------------------------------------------ - -inline sal_uInt8 BitmapColor::GetGreen() const -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - return mcGreen; -} - -// ------------------------------------------------------------------ - -inline void BitmapColor::SetGreen( sal_uInt8 cGreen ) -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - mcGreen = cGreen; -} - -// ------------------------------------------------------------------ - -inline sal_uInt8 BitmapColor::GetBlue() const -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - return mcBlueOrIndex; -} - -// ------------------------------------------------------------------ - -inline void BitmapColor::SetBlue( sal_uInt8 cBlue ) -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - mcBlueOrIndex = cBlue; -} - -// ------------------------------------------------------------------ - -inline sal_uInt8 BitmapColor::GetIndex() const -{ - DBG_ASSERT( mbIndex, "Pixel represents color values!" ); - return mcBlueOrIndex; -} - -// ------------------------------------------------------------------ - -inline void BitmapColor::SetIndex( sal_uInt8 cIndex ) -{ - DBG_ASSERT( mbIndex, "Pixel represents color values!" ); - mcBlueOrIndex = cIndex; -} - -// ------------------------------------------------------------------ - -inline BitmapColor::operator Color() const -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - return Color( mcRed, mcGreen, mcBlueOrIndex ); -} - -// ------------------------------------------------------------------ - -inline BitmapColor::operator sal_uInt8() const -{ - DBG_ASSERT( mbIndex, "Pixel represents color values!" ); - return mcBlueOrIndex; -} - -// ------------------------------------------------------------------ - -inline sal_uInt8 BitmapColor::GetBlueOrIndex() const -{ - // #i47518# Yield a value regardless of mbIndex - return mcBlueOrIndex; -} - -// ------------------------------------------------------------------ - -inline BitmapColor& BitmapColor::Invert() -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - mcBlueOrIndex = ~mcBlueOrIndex, mcGreen = ~mcGreen, mcRed = ~mcRed; - - return *this; -} - -// ------------------------------------------------------------------ - -inline sal_uInt8 BitmapColor::GetLuminance() const -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - return( (sal_uInt8) ( ( mcBlueOrIndex * 28UL + mcGreen * 151UL + mcRed * 77UL ) >> 8UL ) ); -} - -// ------------------------------------------------------------------ - -inline BitmapColor& BitmapColor::IncreaseLuminance( sal_uInt8 cGreyInc ) -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - mcBlueOrIndex = (sal_uInt8) MinMax( (long) mcBlueOrIndex + cGreyInc, 0L, 255L ); - mcGreen = (sal_uInt8) MinMax( (long) mcGreen + cGreyInc, 0L, 255L ); - mcRed = (sal_uInt8) MinMax( (long) mcRed + cGreyInc, 0L, 255L ); - - return *this; -} - -// ------------------------------------------------------------------ - -inline BitmapColor& BitmapColor::DecreaseLuminance( sal_uInt8 cGreyDec ) -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - mcBlueOrIndex = (sal_uInt8) MinMax( (long) mcBlueOrIndex - cGreyDec, 0L, 255L ); - mcGreen = (sal_uInt8) MinMax( (long) mcGreen - cGreyDec, 0L, 255L ); - mcRed = (sal_uInt8) MinMax( (long) mcRed - cGreyDec, 0L, 255L ); - - return *this; -} - -// ------------------------------------------------------------------ - -inline BitmapColor& BitmapColor::Merge( const BitmapColor& rBitmapColor, sal_uInt8 cTransparency ) -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - DBG_ASSERT( !rBitmapColor.mbIndex, "Pixel represents index into colortable!" ); - mcBlueOrIndex = COLOR_CHANNEL_MERGE( mcBlueOrIndex, rBitmapColor.mcBlueOrIndex, cTransparency ); - mcGreen = COLOR_CHANNEL_MERGE( mcGreen, rBitmapColor.mcGreen, cTransparency ); - mcRed = COLOR_CHANNEL_MERGE( mcRed, rBitmapColor.mcRed, cTransparency ); - - return *this; -} - -// ------------------------------------------------------------------ - -inline BitmapColor& BitmapColor::Merge( sal_uInt8 cR, sal_uInt8 cG, sal_uInt8 cB, sal_uInt8 cTransparency ) -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - mcBlueOrIndex = COLOR_CHANNEL_MERGE( mcBlueOrIndex, cB, cTransparency ); - mcGreen = COLOR_CHANNEL_MERGE( mcGreen, cG, cTransparency ); - mcRed = COLOR_CHANNEL_MERGE( mcRed, cR, cTransparency ); - - return *this; -} - -// ------------------------------------------------------------------ - -inline sal_uLong BitmapColor::GetColorError( const BitmapColor& rBitmapColor ) const -{ - DBG_ASSERT( !mbIndex, "Pixel represents index into colortable!" ); - DBG_ASSERT( !rBitmapColor.mbIndex, "Pixel represents index into colortable!" ); - return( (sal_uLong) ( labs( mcBlueOrIndex - rBitmapColor.mcBlueOrIndex ) + - labs( mcGreen - rBitmapColor.mcGreen ) + - labs( mcRed - rBitmapColor.mcRed ) ) ); -} - -// ------------------------------------------------------------------ - -inline BitmapPalette::BitmapPalette() : - mpBitmapColor ( NULL ), - mnCount ( 0 ) -{ -} - -// ------------------------------------------------------------------ - -inline BitmapPalette::BitmapPalette( const BitmapPalette& rBitmapPalette ) : - mnCount( rBitmapPalette.mnCount ) -{ - if( mnCount ) - { - const sal_uLong nSize = mnCount * sizeof( BitmapColor ); - mpBitmapColor = (BitmapColor*) new sal_uInt8[ nSize ]; - memcpy( mpBitmapColor, rBitmapPalette.mpBitmapColor, nSize ); - } - else - mpBitmapColor = NULL; -} - -// ------------------------------------------------------------------ - -inline BitmapPalette::BitmapPalette( sal_uInt16 nCount ) : - mnCount( nCount ) -{ - if( mnCount ) - { - const sal_uLong nSize = mnCount * sizeof( BitmapColor ); - mpBitmapColor = (BitmapColor*) new sal_uInt8[ nSize ]; - memset( mpBitmapColor, 0, nSize ); - } - else - mpBitmapColor = NULL; -} - -// ------------------------------------------------------------------ - -inline BitmapPalette::~BitmapPalette() -{ - delete[] (sal_uInt8*) mpBitmapColor; -} - -// ------------------------------------------------------------------ - -inline BitmapPalette& BitmapPalette::operator=( const BitmapPalette& rBitmapPalette ) -{ - delete[] (sal_uInt8*) mpBitmapColor; - mnCount = rBitmapPalette.mnCount; - - if( mnCount ) - { - const sal_uLong nSize = mnCount * sizeof( BitmapColor ); - mpBitmapColor = (BitmapColor*) new sal_uInt8[ nSize ]; - memcpy( mpBitmapColor, rBitmapPalette.mpBitmapColor, nSize ); - } - else - mpBitmapColor = NULL; - - return *this; -} - -// ------------------------------------------------------------------ - -inline sal_Bool BitmapPalette::operator==( const BitmapPalette& rBitmapPalette ) const -{ - sal_Bool bRet = sal_False; - - if( rBitmapPalette.mnCount == mnCount ) - { - bRet = sal_True; - - for( sal_uInt16 i = 0; i < mnCount; i++ ) - { - if( mpBitmapColor[ i ] != rBitmapPalette.mpBitmapColor[ i ] ) - { - bRet = sal_False; - break; - } - } - } - - return bRet; -} - -// ------------------------------------------------------------------ - -inline sal_Bool BitmapPalette::operator!=( const BitmapPalette& rBitmapPalette ) const -{ - return !( *this == rBitmapPalette ); -} - -// ------------------------------------------------------------------ - -inline sal_Bool BitmapPalette::operator!() -{ - return( !mnCount || !mpBitmapColor ); -} - -// ------------------------------------------------------------------ - -inline sal_uInt16 BitmapPalette::GetEntryCount() const -{ - return mnCount; -} - -// ------------------------------------------------------------------ - -inline void BitmapPalette::SetEntryCount( sal_uInt16 nCount ) -{ - if( !nCount ) - { - delete[] (sal_uInt8*) mpBitmapColor; - mpBitmapColor = NULL; - mnCount = 0; - } - else if( nCount != mnCount ) - { - const sal_uLong nNewSize = nCount * sizeof( BitmapColor ); - const sal_uLong nMinSize = std::min( mnCount, nCount ) * sizeof( BitmapColor ); - sal_uInt8* pNewColor = new sal_uInt8[ nNewSize ]; - - if ( nMinSize && mpBitmapColor ) - memcpy( pNewColor, mpBitmapColor, nMinSize ); - delete[] (sal_uInt8*) mpBitmapColor; - memset( pNewColor + nMinSize, 0, nNewSize - nMinSize ); - mpBitmapColor = (BitmapColor*) pNewColor; - mnCount = nCount; - } -} - -// ------------------------------------------------------------------ - -inline const BitmapColor& BitmapPalette::operator[]( sal_uInt16 nIndex ) const -{ - DBG_ASSERT( nIndex < mnCount, "Palette index is out of range!" ); - return mpBitmapColor[ nIndex ]; -} - -// ------------------------------------------------------------------ - -inline BitmapColor& BitmapPalette::operator[]( sal_uInt16 nIndex ) -{ - DBG_ASSERT( nIndex < mnCount, "Palette index is out of range!" ); - return mpBitmapColor[ nIndex ]; -} - -// ------------------------------------------------------------------ - -inline BitmapColor* BitmapPalette::ImplGetColorBuffer() const -{ - DBG_ASSERT( mpBitmapColor, "No color buffer available!" ); - return mpBitmapColor; -} -// ------------------------------------------------------------------ - -inline sal_uInt16 BitmapPalette::GetBestIndex( const BitmapColor& rCol ) const -{ - sal_uInt16 nRetIndex = 0; - - if( mpBitmapColor && mnCount ) - { - sal_Bool bFound = sal_False; - - for( long j = 0L; ( j < mnCount ) && !bFound; j++ ) - if( rCol == mpBitmapColor[ j ] ) - nRetIndex = ( (sal_uInt16) j ), bFound = sal_True; - - if( !bFound ) - { - long nActErr, nLastErr = rCol.GetColorError( mpBitmapColor[ nRetIndex = mnCount - 1 ] ); - - for( long i = nRetIndex - 1; i >= 0L; i-- ) - if ( ( nActErr = rCol.GetColorError( mpBitmapColor[ i ] ) ) < nLastErr ) - nLastErr = nActErr, nRetIndex = (sal_uInt16) i; - } - } - - return nRetIndex; -} - -// ------------------------------------------------------------------ - -inline ColorMask::ColorMask( sal_uLong nRedMask, sal_uLong nGreenMask, sal_uLong nBlueMask ) : - mnRMask( nRedMask ), - mnGMask( nGreenMask ), - mnBMask( nBlueMask ), - mnROrShift( 0L ), - mnGOrShift( 0L ), - mnBOrShift( 0L ), - mnROr( 0L ), - mnGOr( 0L ), - mnBOr( 0L ) -{ - mnRShift = ( mnRMask ? ImplCalcMaskShift( mnRMask, mnROr, mnROrShift ) : 0L ); - mnGShift = ( mnGMask ? ImplCalcMaskShift( mnGMask, mnGOr, mnGOrShift ) : 0L ); - mnBShift = ( mnBMask ? ImplCalcMaskShift( mnBMask, mnBOr, mnBOrShift ) : 0L ); -} - -// ------------------------------------------------------------------ - -inline long ColorMask::ImplCalcMaskShift( sal_uLong nMask, sal_uLong& rOr, sal_uLong& rOrShift ) const -{ - long nShift; - long nRet; - sal_uLong nLen = 0UL; - - // from which bit starts the mask? - for( nShift = 31L; ( nShift >= 0L ) && !( nMask & ( 1 << (sal_uLong) nShift ) ); nShift-- ) - {} - - nRet = nShift; - - // XXX determine number of bits set => walk right until null - while( ( nShift >= 0L ) && ( nMask & ( 1 << (sal_uLong) nShift ) ) ) - { - nShift--; - nLen++; - } - - rOrShift = 8L - nLen; - rOr = (sal_uInt8) ( ( 0xffUL >> nLen ) << rOrShift ); - - return( nRet -= 7 ); -} - -// ------------------------------------------------------------------ - -inline sal_uLong ColorMask::GetRedMask() const -{ - return mnRMask; -} - -// ------------------------------------------------------------------ - -inline sal_uLong ColorMask::GetGreenMask() const -{ - return mnGMask; -} - -// ------------------------------------------------------------------ - -inline sal_uLong ColorMask::GetBlueMask() const -{ - return mnBMask; -} - -// ------------------------------------------------------------------ - -inline void ColorMask::GetColorFor8Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const -{ - const sal_uInt32 nVal = *pPixel; - MASK_TO_COLOR( nVal, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift, rColor ); -} - -// ------------------------------------------------------------------ - -inline void ColorMask::SetColorFor8Bit( const BitmapColor& rColor, HPBYTE pPixel ) const -{ - *pPixel = (sal_uInt8) COLOR_TO_MASK( rColor, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift ); -} - -// ------------------------------------------------------------------ - -inline void ColorMask::GetColorFor16BitMSB( BitmapColor& rColor, ConstHPBYTE pPixel ) const -{ -#ifdef OSL_BIGENDIAN - const sal_uInt32 nVal = *(sal_uInt16*) pPixel; -#else - const sal_uInt32 nVal = pPixel[ 1 ] | ( (sal_uInt32) pPixel[ 0 ] << 8UL ); -#endif - - MASK_TO_COLOR( nVal, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift, rColor ); -} - -// ------------------------------------------------------------------ - -inline void ColorMask::SetColorFor16BitMSB( const BitmapColor& rColor, HPBYTE pPixel ) const -{ - const sal_uInt16 nVal = (sal_uInt16)COLOR_TO_MASK( rColor, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift ); - -#ifdef OSL_BIGENDIAN - *(sal_uInt16*) pPixel = nVal; -#else - pPixel[ 0 ] = (sal_uInt8)(nVal >> 8U); - pPixel[ 1 ] = (sal_uInt8) nVal; -#endif -} - -// ------------------------------------------------------------------ - -inline void ColorMask::GetColorFor16BitLSB( BitmapColor& rColor, ConstHPBYTE pPixel ) const -{ -#ifdef OSL_BIGENDIAN - const sal_uInt32 nVal = pPixel[ 0 ] | ( (sal_uInt32) pPixel[ 1 ] << 8UL ); -#else - const sal_uInt32 nVal = *(sal_uInt16*) pPixel; -#endif - - MASK_TO_COLOR( nVal, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift, rColor ); -} - -// ------------------------------------------------------------------ - -inline void ColorMask::SetColorFor16BitLSB( const BitmapColor& rColor, HPBYTE pPixel ) const -{ - const sal_uInt16 nVal = (sal_uInt16)COLOR_TO_MASK( rColor, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift ); - -#ifdef OSL_BIGENDIAN - pPixel[ 0 ] = (sal_uInt8) nVal; - pPixel[ 1 ] = (sal_uInt8)(nVal >> 8U); -#else - *(sal_uInt16*) pPixel = nVal; -#endif -} - - -// ------------------------------------------------------------------ - -inline void ColorMask::GetColorFor24Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const -{ - const sal_uInt32 nVal = pPixel[ 0 ] | ( (sal_uInt32) pPixel[ 1 ] << 8UL ) | ( (sal_uInt32) pPixel[ 2 ] << 16UL ); - MASK_TO_COLOR( nVal, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift, rColor ); -} - -// ------------------------------------------------------------------ - -inline void ColorMask::SetColorFor24Bit( const BitmapColor& rColor, HPBYTE pPixel ) const -{ - const sal_uInt32 nVal = COLOR_TO_MASK( rColor, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift ); - pPixel[ 0 ] = (sal_uInt8) nVal; pPixel[ 1 ] = (sal_uInt8) ( nVal >> 8UL ); pPixel[ 2 ] = (sal_uInt8) ( nVal >> 16UL ); -} - -// ------------------------------------------------------------------ - -inline void ColorMask::GetColorFor32Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const -{ -#ifdef OSL_BIGENDIAN - const sal_uInt32 nVal = (sal_uInt32) pPixel[ 0 ] | ( (sal_uInt32) pPixel[ 1 ] << 8UL ) | - ( (sal_uInt32) pPixel[ 2 ] << 16UL ) | ( (sal_uInt32) pPixel[ 3 ] << 24UL ); -#else - const sal_uInt32 nVal = *(sal_uInt32*) pPixel; -#endif - - MASK_TO_COLOR( nVal, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift, rColor ); -} - -// ------------------------------------------------------------------ - -inline void ColorMask::SetColorFor32Bit( const BitmapColor& rColor, HPBYTE pPixel ) const -{ -#ifdef OSL_BIGENDIAN - const sal_uInt32 nVal = COLOR_TO_MASK( rColor, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift ); - pPixel[ 0 ] = (sal_uInt8) nVal; pPixel[ 1 ] = (sal_uInt8) ( nVal >> 8UL ); - pPixel[ 2 ] = (sal_uInt8) ( nVal >> 16UL ); pPixel[ 3 ] = (sal_uInt8) ( nVal >> 24UL ); -#else - *(sal_uInt32*) pPixel = COLOR_TO_MASK( rColor, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift ); -#endif -} - -#endif // _SV_SALBTYPE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/salctype.hxx b/vcl/inc/vcl/salctype.hxx deleted file mode 100644 index 4fbb65d2a49a..000000000000 --- a/vcl/inc/vcl/salctype.hxx +++ /dev/null @@ -1,71 +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 . - */ - -#ifndef _SV_SALCTYPE_HXX -#define _SV_SALCTYPE_HXX - -#include <com/sun/star/script/XInvocation.hpp> -#include <com/sun/star/uno/Reference.hxx> - -#include <vcl/graph.hxx> - -#define CVT_UNKNOWN (0x00000000UL) -#define CVT_BMP (0x00000001UL) -#define CVT_GIF (0x00000002UL) -#define CVT_JPG (0x00000003UL) -#define CVT_MET (0x00000004UL) -#define CVT_PCT (0x00000005UL) -#define CVT_PNG (0x00000006UL) -#define CVT_SVM (0x00000007UL) -#define CVT_TIF (0x00000008UL) -#define CVT_WMF (0x00000009UL) -#define CVT_EMF (0x0000000aUL) -#define CVT_SVG (0x0000000bUL) - -class SvStream; - -struct ConvertData -{ -private: - - ConvertData(); - -public: - - Graphic maGraphic; - SvStream& mrStm; - sal_uLong mnFormat; - - ConvertData( const Graphic& rGraphic, SvStream& rStm, sal_uLong nFormat ) : - maGraphic( rGraphic ), mrStm( rStm ), mnFormat( nFormat ) {} - ~ConvertData() {} -}; - -typedef sal_uLong (*SALGRFCVTPROC)( void* pInst, - sal_uLong nInFormat, void* pInBuffer, sal_uLong nInBufSize, - sal_uLong nOutFormat, void** ppOutBuffer ); - -namespace vcl -{ -com::sun::star::uno::Reference< com::sun::star::script::XInvocation > createBmpConverter(); -} - -#endif // _SV_SALCTYPE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/salgtype.hxx b/vcl/inc/vcl/salgtype.hxx deleted file mode 100644 index 25836f508771..000000000000 --- a/vcl/inc/vcl/salgtype.hxx +++ /dev/null @@ -1,84 +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 . - */ - -#ifndef _SV_SALGTYPE_HXX -#define _SV_SALGTYPE_HXX - -#include <tools/solar.h> - -// ------------ -// - SalColor - -// ------------ - -typedef sal_uInt32 SalColor; -#define MAKE_SALCOLOR( r, g, b ) ((SalColor)(((sal_uInt32)((sal_uInt8)(b))))|(((sal_uInt32)((sal_uInt8)(g)))<<8)|(((sal_uInt32)((sal_uInt8)(r)))<<16)) -#define SALCOLOR_RED( n ) ((sal_uInt8)((n)>>16)) -#define SALCOLOR_GREEN( n ) ((sal_uInt8)(((sal_uInt16)(n)) >> 8)) -#define SALCOLOR_BLUE( n ) ((sal_uInt8)(n)) -#define SALCOLOR_NONE (~(SalColor)0) -// ------------ -// - SalPoint - -// ------------ - -// must equal to class Point -struct SalPoint -{ - long mnX; - long mnY; -}; - -typedef const SalPoint* PCONSTSALPOINT; - -// -------------- -// - SalTwoRect - -// -------------- - -struct SalTwoRect -{ - long mnSrcX; - long mnSrcY; - long mnSrcWidth; - long mnSrcHeight; - long mnDestX; - long mnDestY; - long mnDestWidth; - long mnDestHeight; -}; - -// --------------- -// - SalROPColor - -// --------------- - -typedef sal_uInt16 SalROPColor; -#define SAL_ROP_0 ((SalROPColor)0) -#define SAL_ROP_1 ((SalROPColor)1) -#define SAL_ROP_INVERT ((SalROPColor)2) - -// ------------- -// - SalInvert - -// ------------- - -typedef sal_uInt16 SalInvert; -#define SAL_INVERT_HIGHLIGHT ((SalInvert)0x0001) -#define SAL_INVERT_50 ((SalInvert)0x0002) -#define SAL_INVERT_TRACKFRAME ((SalInvert)0x0004) - -#endif // _SV_SALGTYPE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/salnativewidgets.hxx b/vcl/inc/vcl/salnativewidgets.hxx deleted file mode 100644 index 775503e29da4..000000000000 --- a/vcl/inc/vcl/salnativewidgets.hxx +++ /dev/null @@ -1,476 +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 . - */ - -#ifndef _SV_NATIVEWIDGETS_HXX -#define _SV_NATIVEWIDGETS_HXX - -#include <rtl/ustring.hxx> -#include <vcl/dllapi.h> -#include <tools/gen.hxx> - -/* Control Types: - * - * Specify the overall, whole control - * type (as opposed to parts of the - * control if it were composite). - */ - -typedef sal_uInt32 ControlType; - -// for use in general purpose ImplControlValue -#define CTRL_GENERIC 0 - -// Normal PushButton/Command Button -#define CTRL_PUSHBUTTON 1 - -// Normal single radio button -#define CTRL_RADIOBUTTON 2 - -// Normal single checkbox -#define CTRL_CHECKBOX 10 - -// Combobox, i.e. a ListBox -// that allows data entry by user -#define CTRL_COMBOBOX 20 - -// Control that allows text entry -#define CTRL_EDITBOX 30 - -// Control that allows text entry, but without the usual border -// Has to be handled separately, because this one cannot handle -// HAS_BACKGROUND_TEXTURE, which is drawn in the edit box'es -// border window. -#define CTRL_EDITBOX_NOBORDER 31 - -// Control that allows text entry -// ( some systems distingish between single and multi line edit boxes ) -#define CTRL_MULTILINE_EDITBOX 32 - -// Control that pops up a menu, -// but does NOT allow data entry -#define CTRL_LISTBOX 35 - -// An edit field together with two little -// buttons on the side (aka spin field) -#define CTRL_SPINBOX 40 - -// Two standalone spin buttons -// without an edit field -#define CTRL_SPINBUTTONS 45 - -// A single tab -#define CTRL_TAB_ITEM 50 - -// The border around a tab area, -// but without the tabs themselves. -// May have a gap at the top for -// the active tab -#define CTRL_TAB_PANE 55 - -// Background of a Tab Pane -#define CTRL_TAB_BODY 56 - -// Normal scrollbar, including -// all parts like slider, buttons -#define CTRL_SCROLLBAR 60 - -#define CTRL_SLIDER 65 - -// Border around a group of related -// items, perhaps also displaying -// a label of identification -#define CTRL_GROUPBOX 70 - -// A separator line -#define CTRL_FIXEDLINE 80 - -// A toolbar control with buttons and a grip -#define CTRL_TOOLBAR 100 - -// The menubar -#define CTRL_MENUBAR 120 -// popup menu -#define CTRL_MENU_POPUP 121 - -// The statusbar -#define CTRL_STATUSBAR 130 -#define CTRL_PROGRESS 131 -// Progress bar for the intro window -// (aka splash screen), in case some -// wants native progress bar in the -// application but not for the splash -// screen (used in desktop/) -#define CTRL_INTROPROGRESS 132 - -// tool tips -#define CTRL_TOOLTIP 140 - -// to draw the implemented theme -#define CTRL_WINDOW_BACKGROUND 150 - -//to draw border of frames natively -#define CTRL_FRAME 160 - -// for nodes in listviews -// used in svtools/source/contnr/svtreebx.cxx -#define CTRL_LISTNODE 170 -// nets between elements of listviews -// with nodes -#define CTRL_LISTNET 171 -// for list headers -#define CTRL_LISTHEADER 172 - - -/* Control Parts: - * - * Uniquely identify a part of a control, - * for example the slider of a scroll bar. - */ - -typedef sal_uInt32 ControlPart; - -#define PART_ENTIRE_CONTROL 1 -#define PART_WINDOW 5 // the static listbox window containing the list -#define PART_BUTTON 100 -#define PART_BUTTON_UP 101 -#define PART_BUTTON_DOWN 102 // Also for ComboBoxes/ListBoxes -#define PART_BUTTON_LEFT 103 -#define PART_BUTTON_RIGHT 104 -#define PART_ALL_BUTTONS 105 -#define PART_SEPARATOR_HORZ 106 -#define PART_SEPARATOR_VERT 107 -#define PART_TRACK_HORZ_LEFT 200 -#define PART_TRACK_VERT_UPPER 201 -#define PART_TRACK_HORZ_RIGHT 202 -#define PART_TRACK_VERT_LOWER 203 -#define PART_TRACK_HORZ_AREA 204 -#define PART_TRACK_VERT_AREA 205 -#define PART_THUMB_HORZ 210 // Also used as toolbar grip -#define PART_THUMB_VERT 211 // Also used as toolbar grip -#define PART_ARROW 220 -#define PART_MENU_ITEM 250 -#define PART_MENU_ITEM_CHECK_MARK 251 -#define PART_MENU_ITEM_RADIO_MARK 252 -#define PART_MENU_SEPARATOR 253 -#define PART_MENU_SUBMENU_ARROW 254 - -/* #i77549# - HACK: for scrollbars in case of thumb rect, page up and page down rect we - abuse the HitTestNativeControl interface. All theming engines but aqua - are actually able to draw the thumb according to our internal representation. - However aqua draws a little outside. The canonical way would be to enhance the - HitTestNativeControl passing a ScrollbarValue additionally so all necessary - information is available in the call. - . - However since there is only this one small exception we will deviate a little and - instead pass the respective rect as control region to allow for a small correction. - - So all places using HitTestNativeControl on PART_THUMB_HORZ, PART_THUMB_VERT, - PART_TRACK_HORZ_LEFT, PART_TRACK_HORZ_RIGHT, PART_TRACK_VERT_UPPER, PART_TRACK_VERT_LOWER - do not use the control rectangle as region but the actuall part rectangle, making - only small deviations feasible. -*/ - -/** The edit field part of a control, e.g. of the combo box. - - Currently used just for combo boxes and just for GetNativeControlRegion(). - It is valid only if GetNativeControlRegion() supports PART_BUTTON_DOWN as - well. -*/ -#define PART_SUB_EDIT 300 - -// For controls that require the entire background -// to be drawn first, and then other pieces over top. -// (GTK+ scrollbars for example). Control region passed -// in to draw this part is expected to be the entire -// area of the control. -// A control may respond to one or both. -#define PART_DRAW_BACKGROUND_HORZ 1000 -#define PART_DRAW_BACKGROUND_VERT 1001 - -// GTK+ also draws tabs right->left since there is a -// hardcoded 2 pixel overlap between adjacent tabs -#define PART_TABS_DRAW_RTL 3000 - -// For themes that do not want to have the focus -// rectangle part drawn by VCL but take care of the -// whole inner control part by themselves -// eg, listboxes or comboboxes or spinbuttons -#define HAS_BACKGROUND_TEXTURE 4000 - -// For scrollbars that have 3 buttons (most KDE themes) -#define HAS_THREE_BUTTONS 5000 - -#define PART_BACKGROUND_WINDOW 6000 -#define PART_BACKGROUND_DIALOG 6001 - -//to draw natively the border of frames -#define PART_BORDER 7000 - -/* Control State: - * - * Specify how a particular part of the control - * is to be drawn. Constants are bitwise OR-ed - * together to compose a final drawing state. - * A _disabled_ state is assumed by the drawing - * functions until an ENABLED or HIDDEN is passed - * in the ControlState. - */ - -typedef sal_uInt32 ControlState; - -#define CTRL_STATE_ENABLED 0x0001 -#define CTRL_STATE_FOCUSED 0x0002 -#define CTRL_STATE_PRESSED 0x0004 -#define CTRL_STATE_ROLLOVER 0x0008 -#define CTRL_STATE_HIDDEN 0x0010 -#define CTRL_STATE_DEFAULT 0x0020 -#define CTRL_STATE_SELECTED 0x0040 -#define CTRL_CACHING_ALLOWED 0x8000 // set when the control is completely visible (i.e. not clipped) - -/* ButtonValue: - * - * Identifies the tri-state value options - * that buttons allow - */ - -enum ButtonValue { - BUTTONVALUE_DONTKNOW, - BUTTONVALUE_ON, - BUTTONVALUE_OFF, - BUTTONVALUE_MIXED -}; - -/* ImplControlValue: - * - * Generic value container for all control parts. - */ - -class VCL_DLLPUBLIC ImplControlValue -{ - friend class SalFrame; - - private: - ControlType mType; - ButtonValue mTristate; // Tristate value: on, off, mixed - long mNumber; // numeric value - protected: - ImplControlValue( ControlType i_eType, ButtonValue i_eTriState, long i_nNumber ) - : mType( i_eType ) - , mTristate( i_eTriState ) - , mNumber( i_nNumber ) - {} - - public: - explicit ImplControlValue( ButtonValue nTristate ) - : mType( CTRL_GENERIC ), mTristate(nTristate), mNumber(0) {} - explicit ImplControlValue( long nNumeric ) - : mType( CTRL_GENERIC ), mTristate(BUTTONVALUE_DONTKNOW), mNumber( nNumeric) {} - inline ImplControlValue() - : mType( CTRL_GENERIC ), mTristate(BUTTONVALUE_DONTKNOW), mNumber(0) {} - - virtual ~ImplControlValue(); - - virtual ImplControlValue* clone() const; - - ControlType getType() const { return mType; } - - inline ButtonValue getTristateVal( void ) const { return mTristate; } - inline void setTristateVal( ButtonValue nTristate ) { mTristate = nTristate; } - - inline long getNumericVal( void ) const { return mNumber; } - inline void setNumericVal( long nNumeric ) { mNumber = nNumeric; } -}; - -/* ScrollbarValue: - * - * Value container for scrollbars. - */ -class VCL_DLLPUBLIC ScrollbarValue : public ImplControlValue -{ - public: - long mnMin; - long mnMax; - long mnCur; - long mnVisibleSize; - Rectangle maThumbRect; - Rectangle maButton1Rect; - Rectangle maButton2Rect; - ControlState mnButton1State; - ControlState mnButton2State; - ControlState mnThumbState; - ControlState mnPage1State; - ControlState mnPage2State; - - inline ScrollbarValue() - : ImplControlValue( CTRL_SCROLLBAR, BUTTONVALUE_DONTKNOW, 0 ) - { - mnMin = 0; mnMax = 0; mnCur = 0; mnVisibleSize = 0; - mnButton1State = 0; mnButton2State = 0; - mnThumbState = 0; mnPage1State = 0; mnPage2State = 0; - }; - virtual ~ScrollbarValue(); - virtual ScrollbarValue* clone() const; -}; - -class VCL_DLLPUBLIC SliderValue : public ImplControlValue -{ - public: - long mnMin; - long mnMax; - long mnCur; - Rectangle maThumbRect; - ControlState mnThumbState; - - SliderValue() - : ImplControlValue( CTRL_SLIDER, BUTTONVALUE_DONTKNOW, 0 ) - , mnMin( 0 ), mnMax( 0 ), mnCur( 0 ), mnThumbState( 0 ) - {} - virtual ~SliderValue(); - virtual SliderValue* clone() const; -}; - -/* TabitemValue: - * - * Value container for tabitems. - */ - -/* TABITEM constants are OR-ed together */ -#define TABITEM_NOTALIGNED 0x000 // the tabitem is an inner item -#define TABITEM_LEFTALIGNED 0x001 // the tabitem is aligned with the left border of the TabControl -#define TABITEM_RIGHTALIGNED 0x002 // the tabitem is aligned with the right border of the TabControl -#define TABITEM_FIRST_IN_GROUP 0x004 // the tabitem is the first in group of tabitems -#define TABITEM_LAST_IN_GROUP 0x008 // the tabitem is the last in group of tabitems - -class VCL_DLLPUBLIC TabitemValue : public ImplControlValue -{ - public: - unsigned int mnAlignment; - - inline TabitemValue() - : ImplControlValue( CTRL_TAB_ITEM, BUTTONVALUE_DONTKNOW, 0 ) - { - mnAlignment = 0; - }; - virtual ~TabitemValue(); - virtual TabitemValue* clone() const; - - sal_Bool isLeftAligned() const { return (mnAlignment & TABITEM_LEFTALIGNED) != 0; } - sal_Bool isRightAligned() const { return (mnAlignment & TABITEM_RIGHTALIGNED) != 0; } - sal_Bool isBothAligned() const { return isLeftAligned() && isRightAligned(); } - sal_Bool isNotAligned() const { return (mnAlignment & (TABITEM_LEFTALIGNED | TABITEM_RIGHTALIGNED)) == 0; } - sal_Bool isFirst() const { return (mnAlignment & TABITEM_FIRST_IN_GROUP) != 0; } - sal_Bool isLast() const { return (mnAlignment & TABITEM_LAST_IN_GROUP) != 0; } -}; - -/* SpinbuttonValue: - * - * Value container for spinbuttons to paint both buttons at once. - * Note: the other parameters of DrawNativeControl will have no meaning - * all parameters for spinbuttons are carried here - */ -class VCL_DLLPUBLIC SpinbuttonValue : public ImplControlValue -{ - public: - Rectangle maUpperRect; - Rectangle maLowerRect; - ControlState mnUpperState; - ControlState mnLowerState; - int mnUpperPart; - int mnLowerPart; - - inline SpinbuttonValue() - : ImplControlValue( CTRL_SPINBUTTONS, BUTTONVALUE_DONTKNOW, 0 ) - { - mnUpperState = mnLowerState = 0; - }; - virtual ~SpinbuttonValue(); - virtual SpinbuttonValue* clone() const; -}; - -/* Toolbarvalue: - * - * Value container for toolbars detailing the grip position - */ -class VCL_DLLPUBLIC ToolbarValue : public ImplControlValue -{ -public: - ToolbarValue() : ImplControlValue( CTRL_TOOLBAR, BUTTONVALUE_DONTKNOW, 0 ) - { mbIsTopDockingArea = sal_False; } - virtual ~ToolbarValue(); - virtual ToolbarValue* clone() const; - Rectangle maGripRect; - sal_Bool mbIsTopDockingArea; // indicates that this is the top aligned dockingarea - // adjacent to the menubar -}; - -/* MenubarValue: - * - * Value container for menubars specifying height of adjacent docking area - */ -class VCL_DLLPUBLIC MenubarValue : public ImplControlValue -{ -public: - MenubarValue() : ImplControlValue( CTRL_MENUBAR, BUTTONVALUE_DONTKNOW, 0 ) - { maTopDockingAreaHeight=0; } - virtual ~MenubarValue(); - virtual MenubarValue* clone() const; - int maTopDockingAreaHeight; -}; - -/* MenupopupValue: - * - * Value container for menu items; specifies the rectangle for the whole item which - * may be useful when drawing parts with a smaller rectangle. - */ -class VCL_DLLPUBLIC MenupopupValue : public ImplControlValue -{ -public: - MenupopupValue() : ImplControlValue( CTRL_MENU_POPUP, BUTTONVALUE_DONTKNOW, 0 ) - {} - MenupopupValue( long i_nGutterWidth, const Rectangle& i_rItemRect ) - : ImplControlValue( CTRL_MENU_POPUP, BUTTONVALUE_DONTKNOW, i_nGutterWidth ) - , maItemRect( i_rItemRect ) - {} - virtual ~MenupopupValue(); - virtual MenupopupValue* clone() const; - Rectangle maItemRect; -}; - -/* PushButtonValue: - * - * Value container for pushbuttons specifying additional drawing hints - */ -class VCL_DLLPUBLIC PushButtonValue : public ImplControlValue -{ -public: - PushButtonValue() - : ImplControlValue( CTRL_PUSHBUTTON, BUTTONVALUE_DONTKNOW, 0 ) - , mbBevelButton( false ), mbSingleLine( true ) {} - virtual ~PushButtonValue(); - virtual PushButtonValue* clone() const; - - bool mbBevelButton:1; - bool mbSingleLine:1; -}; - - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/scopedbitmapaccess.hxx b/vcl/inc/vcl/scopedbitmapaccess.hxx deleted file mode 100644 index 834f827e14aa..000000000000 --- a/vcl/inc/vcl/scopedbitmapaccess.hxx +++ /dev/null @@ -1,94 +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 . - */ - -#ifndef VCL_SCOPEDBITMAPACCESS_HXX_INCLUDED -#define VCL_SCOPEDBITMAPACCESS_HXX_INCLUDED - -namespace vcl -{ - -/** This template handles BitmapAccess the RAII way. - - Please don't use directly, but through the ready-made typedefs - ScopedReadAccess and ScopedWriteAccess in classes Bitmap and - AlphaMask. - - Use as follows: - Bitmap aBitmap; - Bitmap::ScopedReadAccess pReadAccess( aBitmap ); - pReadAccess->SetPixel()... - - Bitmap aBitmap2; - Bitmap::ScopedWriteAccess pWriteAccess( bCond ? aBitmap2.AcquireWriteAccess() : 0, aBitmap2 ); - if ( pWriteAccess )... - - @attention for practical reasons, ScopedBitmapAccess stores a - reference to the provided bitmap, thus, make sure that the bitmap - specified at construction time lives at least as long as the - ScopedBitmapAccess. - */ -template < class Access, class Bitmap, Access* (Bitmap::* Acquire)() > class ScopedBitmapAccess -{ - typedef ScopedBitmapAccess< Access, Bitmap, Acquire > self_type; - typedef bool (self_type::* unspecified_bool_type)() const; - -public: - explicit ScopedBitmapAccess( Bitmap& rBitmap ) : - mpAccess( 0 ), - mrBitmap( rBitmap ) - { - mpAccess = (mrBitmap.*Acquire)(); - } - - ScopedBitmapAccess( Access* pAccess, Bitmap& rBitmap ) : - mpAccess( pAccess ), - mrBitmap( rBitmap ) - { - } - - ~ScopedBitmapAccess() - { - mrBitmap.ReleaseAccess( mpAccess ); - } - - bool operator!() const { return !mpAccess; } - operator unspecified_bool_type() const - { - return mpAccess ? &self_type::operator! : 0; - } - - Access* get() { return mpAccess; } - const Access* get() const { return mpAccess; } - - Access* operator->() { return mpAccess; } - const Access* operator->() const { return mpAccess; } - - Access& operator*() { return *mpAccess; } - const Access& operator*() const { return *mpAccess; } - -private: - Access* mpAccess; - Bitmap& mrBitmap; -}; - -} - -#endif // VCL_SCOPEDBITMAPACCESS_HXX_INCLUDED - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/scrbar.hxx b/vcl/inc/vcl/scrbar.hxx deleted file mode 100644 index 4a1a164121be..000000000000 --- a/vcl/inc/vcl/scrbar.hxx +++ /dev/null @@ -1,166 +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 . - */ - -#ifndef _SV_SCRBAR_HXX -#define _SV_SCRBAR_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/ctrl.hxx> - -class AutoTimer; - -// ------------------- -// - ScrollBar-Types - -// ------------------- - -enum ScrollType { SCROLL_DONTKNOW, SCROLL_LINEUP, SCROLL_LINEDOWN, - SCROLL_PAGEUP, SCROLL_PAGEDOWN, SCROLL_DRAG, SCROLL_SET }; - -// ------------- -// - ScrollBar - -// ------------- -struct ImplScrollBarData; - -class VCL_DLLPUBLIC ScrollBar : public Control -{ -private: - Rectangle maBtn1Rect; - Rectangle maBtn2Rect; - Rectangle maPage1Rect; - Rectangle maPage2Rect; - Rectangle maThumbRect; - ImplScrollBarData* mpData; - long mnStartPos; - long mnMouseOff; - long mnThumbPixRange; - long mnThumbPixPos; - long mnThumbPixSize; - long mnMinRange; - long mnMaxRange; - long mnThumbPos; - long mnVisibleSize; - long mnLineSize; - long mnPageSize; - long mnDelta; - sal_uInt16 mnDragDraw; - sal_uInt16 mnStateFlags; - ScrollType meScrollType; - ScrollType meDDScrollType; - sal_Bool mbCalcSize; - sal_Bool mbFullDrag; - Link maScrollHdl; - Link maEndScrollHdl; - - SAL_DLLPRIVATE Rectangle* ImplFindPartRect( const Point& rPt ); - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitStyle( WinBits nStyle ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE void ImplUpdateRects( sal_Bool bUpdate = sal_True ); - SAL_DLLPRIVATE long ImplCalcThumbPos( long nPixPos ); - SAL_DLLPRIVATE long ImplCalcThumbPosPix( long nPos ); - SAL_DLLPRIVATE void ImplCalc( sal_Bool bUpdate = sal_True ); - SAL_DLLPRIVATE void ImplDraw( sal_uInt16 nDrawFlags, OutputDevice* pOutDev ); - using Window::ImplScroll; - SAL_DLLPRIVATE long ImplScroll( long nNewPos, sal_Bool bCallEndScroll ); - SAL_DLLPRIVATE long ImplDoAction( sal_Bool bCallEndScroll ); - SAL_DLLPRIVATE void ImplDoMouseAction( const Point& rPos, sal_Bool bCallAction = sal_True ); - SAL_DLLPRIVATE void ImplInvert(); - SAL_DLLPRIVATE sal_Bool ImplDrawNative( sal_uInt16 nDrawFlags ); - SAL_DLLPRIVATE void ImplDragThumb( const Point& rMousePos ); - SAL_DLLPRIVATE Size getCurrentCalcSize() const; - DECL_DLLPRIVATE_LINK( ImplTimerHdl, Timer* ); - DECL_DLLPRIVATE_LINK( ImplAutoTimerHdl, void* ); - -public: - ScrollBar( Window* pParent, WinBits nStyle = WB_VERT ); - ScrollBar( Window* pParent, const ResId& rResId ); - ~ScrollBar(); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void Tracking( const TrackingEvent& rTEvt ); - virtual void KeyInput( const KeyEvent& rKEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual void GetFocus(); - virtual void LoseFocus(); - - using Window::Scroll; - virtual void Scroll(); - virtual void EndScroll(); - - long DoScroll( long nNewPos ); - long DoScrollAction( ScrollType eScrollType ); - - void EnableDrag( sal_Bool bEnable = sal_True ) - { mbFullDrag = bEnable; } - sal_Bool IsDragEnabled() const { return mbFullDrag; } - - void SetRangeMin( long nNewRange ); - long GetRangeMin() const { return mnMinRange; } - void SetRangeMax( long nNewRange ); - long GetRangeMax() const { return mnMaxRange; } - void SetRange( const Range& rRange ); - Range GetRange() const { return Range( GetRangeMin(), GetRangeMax() ); } - void SetThumbPos( long nThumbPos ); - long GetThumbPos() const { return mnThumbPos; } - void SetLineSize( long nNewSize ) { mnLineSize = nNewSize; } - long GetLineSize() const { return mnLineSize; } - void SetPageSize( long nNewSize ) { mnPageSize = nNewSize; } - long GetPageSize() const { return mnPageSize; } - void SetVisibleSize( long nNewSize ); - long GetVisibleSize() const { return mnVisibleSize; } - - long GetDelta() const { return mnDelta; } - ScrollType GetType() const { return meScrollType; } - - void SetScrollHdl( const Link& rLink ) { maScrollHdl = rLink; } - const Link& GetScrollHdl() const { return maScrollHdl; } - void SetEndScrollHdl( const Link& rLink ) { maEndScrollHdl = rLink; } - const Link& GetEndScrollHdl() const { return maEndScrollHdl; } - - virtual Size GetOptimalSize() const; -}; - -// ---------------- -// - ScrollBarBox - -// ---------------- - -class VCL_DLLPUBLIC ScrollBarBox : public Window -{ -private: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings(); - -public: - ScrollBarBox( Window* pParent, WinBits nStyle = 0 ); - - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); -}; - -#endif // _SV_SCRBAR_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/seleng.hxx b/vcl/inc/vcl/seleng.hxx deleted file mode 100644 index f93e74a3ebf4..000000000000 --- a/vcl/inc/vcl/seleng.hxx +++ /dev/null @@ -1,232 +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 . - */ - -#ifndef _SV_SELENG_HXX -#define _SV_SELENG_HXX - -#include <vcl/dllapi.h> -#include <vcl/timer.hxx> -#include <vcl/event.hxx> - -class Window; -class CommandEvent; - -// Timerticks -#define SELENG_DRAGDROP_TIMEOUT 400 -#define SELENG_AUTOREPEAT_INTERVAL 50 -#define SELENG_AUTOREPEAT_INTERVAL_MIN 25 -#define SELENG_AUTOREPEAT_INTERVAL_MAX 300 - -enum SelectionMode { NO_SELECTION, SINGLE_SELECTION, RANGE_SELECTION, MULTIPLE_SELECTION }; - -// --------------- -// - FunctionSet - -// --------------- - -class VCL_DLLPUBLIC FunctionSet -{ -public: - virtual ~FunctionSet() = 0; - - virtual void BeginDrag() = 0; - - virtual void CreateAnchor() = 0; // Anker-Pos := Cursor-Pos - virtual void DestroyAnchor() = 0; - - // move cursor, at the same time match cursor position to the selection - // starting at anchor. sal_True == Ok - virtual sal_Bool SetCursorAtPoint( const Point& rPointPixel, - sal_Bool bDontSelectAtCursor = sal_False ) = 0; - - virtual sal_Bool IsSelectionAtPoint( const Point& rPointPixel ) = 0; - virtual void DeselectAtPoint( const Point& rPointPixel ) = 0; - // delete anchor & deselect all - virtual void DeselectAll() = 0; -}; - -// ------------------- -// - SelectionEngine - -// ------------------- - -#define SELENG_DRG_ENAB 0x0001 -#define SELENG_IN_SEL 0x0002 -#define SELENG_IN_ADD 0x0004 -#define SELENG_ADD_ALW 0x0008 -#define SELENG_HAS_ANCH 0x0020 -#define SELENG_CMDEVT 0x0040 -#define SELENG_WAIT_UPEVT 0x0080 -#define SELENG_EXPANDONMOVE 0x0100 - -class VCL_DLLPUBLIC SelectionEngine -{ -private: - FunctionSet* pFunctionSet; - Window* pWin; - Rectangle aArea; - Timer aWTimer; // generate fake mouse moves - MouseEvent aLastMove; - SelectionMode eSelMode; - sal_uLong nUpdateInterval; - // sensitivity of mouse moves during a selection - sal_uInt16 nMouseSensitivity; - sal_uInt16 nLockedMods; - sal_uInt16 nFlags; - DECL_DLLPRIVATE_LINK( ImpWatchDog, void* ); - - inline sal_Bool ShouldDeselect( sal_Bool bModifierKey1 ) const; - // determines to deselect or not when Ctrl-key is pressed on CursorPosChanging -public: - - SelectionEngine( Window* pWindow, - FunctionSet* pFunctions = NULL, - sal_uLong nAutoRepeatInterval = SELENG_AUTOREPEAT_INTERVAL ); - ~SelectionEngine(); - - // sal_True: Event was processed by Selection Engine - sal_Bool SelMouseButtonDown( const MouseEvent& rMEvt ); - sal_Bool SelMouseButtonUp( const MouseEvent& rMEvt ); - sal_Bool SelMouseMove( const MouseEvent& rMEvt ); - - // Keyboard - void CursorPosChanging( sal_Bool bShift, sal_Bool bMod1 ); - - // is needed to generate a Move event via a Timer - // when the mouse is outside the area - void SetVisibleArea( const Rectangle rNewArea ) - { aArea = rNewArea; } - const Rectangle& GetVisibleArea() const { return aArea; } - - void SetAddMode( sal_Bool); - sal_Bool IsAddMode() const; - - void AddAlways( sal_Bool bOn ); - sal_Bool IsAlwaysAdding() const; - - void EnableDrag( sal_Bool bOn ); - - void SetSelectionMode( SelectionMode eMode ); - SelectionMode GetSelectionMode() const { return eSelMode; } - - void SetFunctionSet( FunctionSet* pFuncs ) - { pFunctionSet = pFuncs; } - const FunctionSet* GetFunctionSet() const { return pFunctionSet; } - - void SetMouseSensitivity( sal_uInt16 nSensitivity ) - { nMouseSensitivity = nSensitivity; } - sal_uInt16 GetMouseSensitivity() const - { return nMouseSensitivity; } - - const Point& GetMousePosPixel() const - { return aLastMove.GetPosPixel(); } - const MouseEvent& GetMouseEvent() const { return aLastMove; } - - void SetWindow( Window*); - Window* GetWindow() const { return pWin; } - - void LockModifiers( sal_uInt16 nModifiers ) - { nLockedMods = nModifiers; } - sal_uInt16 GetLockedModifiers() const { return nLockedMods; } - - sal_Bool IsInSelection() const; - void Reset(); - - void Command( const CommandEvent& rCEvt ); - - sal_Bool HasAnchor() const; - void SetAnchor( sal_Bool bAnchor ); - - void SetUpdateInterval( sal_uLong nInterval ); - - // wird im Ctor eingeschaltet - void ExpandSelectionOnMouseMove( sal_Bool bExpand = sal_True ) - { - if( bExpand ) - nFlags |= SELENG_EXPANDONMOVE; - else - nFlags &= ~SELENG_EXPANDONMOVE; - } -}; - -inline sal_Bool SelectionEngine::IsAddMode() const -{ - if ( nFlags & (SELENG_IN_ADD | SELENG_ADD_ALW) ) - return sal_True; - else - return sal_False; -} - -inline void SelectionEngine::SetAddMode( sal_Bool bNewMode ) -{ - if ( bNewMode ) - nFlags |= SELENG_IN_ADD; - else - nFlags &= (~SELENG_IN_ADD); -} - -inline void SelectionEngine::EnableDrag( sal_Bool bOn ) -{ - if ( bOn ) - nFlags |= SELENG_DRG_ENAB; - else - nFlags &= (~SELENG_DRG_ENAB); -} - -inline void SelectionEngine::AddAlways( sal_Bool bOn ) -{ - if( bOn ) - nFlags |= SELENG_ADD_ALW; - else - nFlags &= (~SELENG_ADD_ALW); -} - -inline sal_Bool SelectionEngine::IsAlwaysAdding() const -{ - if ( nFlags & SELENG_ADD_ALW ) - return sal_True; - else - return sal_False; -} - -inline sal_Bool SelectionEngine::IsInSelection() const -{ - if ( nFlags & SELENG_IN_SEL ) - return sal_True; - else - return sal_False; -} - -inline sal_Bool SelectionEngine::HasAnchor() const -{ - if ( nFlags & SELENG_HAS_ANCH ) - return sal_True; - else - return sal_False; -} - -inline void SelectionEngine::SetAnchor( sal_Bool bAnchor ) -{ - if ( bAnchor ) - nFlags |= SELENG_HAS_ANCH; - else - nFlags &= (~SELENG_HAS_ANCH); -} - -#endif // _SV_SELENG_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/settings.hxx b/vcl/inc/vcl/settings.hxx deleted file mode 100644 index 19dc20f3ba12..000000000000 --- a/vcl/inc/vcl/settings.hxx +++ /dev/null @@ -1,1104 +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 . - */ - -#ifndef _SV_SETTINGS_HXX -#define _SV_SETTINGS_HXX - -#include "tools/solar.h" -#include "vcl/dllapi.h" -#include "tools/color.hxx" -#include "vcl/bitmapex.hxx" -#include "vcl/font.hxx" -#include "vcl/accel.hxx" -#include "vcl/wall.hxx" -#include <i18nlangtag/languagetag.hxx> -#include <unotools/syslocale.hxx> - -class CollatorWrapper; -class LocaleDataWrapper; - -namespace vcl { - class I18nHelper; -} - -// ----------------- -// - ImplMouseData - -// ----------------- - -class ImplMouseData -{ - friend class MouseSettings; - - ImplMouseData(); - ImplMouseData( const ImplMouseData& rData ); - -private: - sal_uLong mnRefCount; - sal_uLong mnOptions; - sal_uLong mnDoubleClkTime; - long mnDoubleClkWidth; - long mnDoubleClkHeight; - long mnStartDragWidth; - long mnStartDragHeight; - sal_uInt16 mnStartDragCode; - sal_uInt16 mnDragMoveCode; - sal_uInt16 mnDragCopyCode; - sal_uInt16 mnDragLinkCode; - sal_uInt16 mnContextMenuCode; - sal_uInt16 mnContextMenuClicks; - sal_Bool mbContextMenuDown; - sal_uLong mnScrollRepeat; - sal_uLong mnButtonStartRepeat; - sal_uLong mnButtonRepeat; - sal_uLong mnActionDelay; - sal_uLong mnMenuDelay; - sal_uLong mnFollow; - sal_uInt16 mnMiddleButtonAction; - sal_uInt16 mnWheelBehavior; -}; - -// ----------------- -// - MouseSettings - -// ----------------- - -#define MOUSE_OPTION_AUTOFOCUS ((sal_uLong)0x00000001) -#define MOUSE_OPTION_AUTOCENTERPOS ((sal_uLong)0x00000002) -#define MOUSE_OPTION_AUTODEFBTNPOS ((sal_uLong)0x00000004) - -#define MOUSE_FOLLOW_MENU ((sal_uLong)0x00000001) -#define MOUSE_FOLLOW_DDLIST ((sal_uLong)0x00000002) - -#define MOUSE_MIDDLE_NOTHING ((sal_uInt16)0) -#define MOUSE_MIDDLE_AUTOSCROLL ((sal_uInt16)1) -#define MOUSE_MIDDLE_PASTESELECTION ((sal_uInt16)2) - -#define MOUSE_WHEEL_DISABLE ((sal_uInt16)0) -#define MOUSE_WHEEL_FOCUS_ONLY ((sal_uInt16)1) -#define MOUSE_WHEEL_ALWAYS ((sal_uInt16)2) - -class VCL_DLLPUBLIC MouseSettings -{ - void CopyData(); - -private: - ImplMouseData* mpData; - -public: - MouseSettings(); - MouseSettings( const MouseSettings& rSet ); - ~MouseSettings(); - - void SetOptions( sal_uLong nOptions ) - { CopyData(); mpData->mnOptions = nOptions; } - sal_uLong GetOptions() const - { return mpData->mnOptions; } - - void SetDoubleClickTime( sal_uLong nDoubleClkTime ) - { CopyData(); mpData->mnDoubleClkTime = nDoubleClkTime; } - sal_uLong GetDoubleClickTime() const - { return mpData->mnDoubleClkTime; } - void SetDoubleClickWidth( long nDoubleClkWidth ) - { CopyData(); mpData->mnDoubleClkWidth = nDoubleClkWidth; } - long GetDoubleClickWidth() const - { return mpData->mnDoubleClkWidth; } - void SetDoubleClickHeight( long nDoubleClkHeight ) - { CopyData(); mpData->mnDoubleClkHeight = nDoubleClkHeight; } - long GetDoubleClickHeight() const - { return mpData->mnDoubleClkHeight; } - - void SetStartDragWidth( long nDragWidth ) - { CopyData(); mpData->mnStartDragWidth = nDragWidth; } - long GetStartDragWidth() const - { return mpData->mnStartDragWidth; } - void SetStartDragHeight( long nDragHeight ) - { CopyData(); mpData->mnStartDragHeight = nDragHeight; } - long GetStartDragHeight() const - { return mpData->mnStartDragHeight; } - void SetStartDragCode( sal_uInt16 nCode ) - { CopyData(); mpData->mnStartDragCode = nCode; } - sal_uInt16 GetStartDragCode() const - { return mpData->mnStartDragCode; } - void SetDragMoveCode( sal_uInt16 nCode ) - { CopyData(); mpData->mnDragMoveCode = nCode; } - sal_uInt16 GetDragMoveCode() const - { return mpData->mnDragMoveCode; } - void SetDragCopyCode( sal_uInt16 nCode ) - { CopyData(); mpData->mnDragCopyCode = nCode; } - sal_uInt16 GetDragCopyCode() const - { return mpData->mnDragCopyCode; } - void SetDragLinkCode( sal_uInt16 nCode ) - { CopyData(); mpData->mnDragLinkCode = nCode; } - sal_uInt16 GetDragLinkCode() const - { return mpData->mnDragLinkCode; } - - void SetContextMenuCode( sal_uInt16 nCode ) - { CopyData(); mpData->mnContextMenuCode = nCode; } - sal_uInt16 GetContextMenuCode() const - { return mpData->mnContextMenuCode; } - void SetContextMenuClicks( sal_uInt16 nClicks ) - { CopyData(); mpData->mnContextMenuClicks = nClicks; } - sal_uInt16 GetContextMenuClicks() const - { return mpData->mnContextMenuClicks; } - void SetContextMenuDown( sal_Bool bDown ) - { CopyData(); mpData->mbContextMenuDown = bDown; } - sal_Bool GetContextMenuDown() const - { return mpData->mbContextMenuDown; } - - void SetScrollRepeat( sal_uLong nRepeat ) - { CopyData(); mpData->mnScrollRepeat = nRepeat; } - sal_uLong GetScrollRepeat() const - { return mpData->mnScrollRepeat; } - void SetButtonStartRepeat( sal_uLong nRepeat ) - { CopyData(); mpData->mnButtonStartRepeat = nRepeat; } - sal_uLong GetButtonStartRepeat() const - { return mpData->mnButtonStartRepeat; } - void SetButtonRepeat( sal_uLong nRepeat ) - { CopyData(); mpData->mnButtonRepeat = nRepeat; } - sal_uLong GetButtonRepeat() const - { return mpData->mnButtonRepeat; } - void SetActionDelay( sal_uLong nDelay ) - { CopyData(); mpData->mnActionDelay = nDelay; } - sal_uLong GetActionDelay() const - { return mpData->mnActionDelay; } - void SetMenuDelay( sal_uLong nDelay ) - { CopyData(); mpData->mnMenuDelay = nDelay; } - sal_uLong GetMenuDelay() const - { return mpData->mnMenuDelay; } - - void SetFollow( sal_uLong nFollow ) - { CopyData(); mpData->mnFollow = nFollow; } - sal_uLong GetFollow() const - { return mpData->mnFollow; } - - void SetMiddleButtonAction( sal_uInt16 nAction ) - { CopyData(); mpData->mnMiddleButtonAction = nAction; } - sal_uInt16 GetMiddleButtonAction() const - { return mpData->mnMiddleButtonAction; } - - void SetWheelBehavior( sal_uInt16 nBehavior ) - { CopyData(); mpData->mnWheelBehavior = nBehavior; } - sal_uInt16 GetWheelBehavior() const - { return mpData->mnWheelBehavior; } - - const MouseSettings& operator =( const MouseSettings& rSet ); - - sal_Bool operator ==( const MouseSettings& rSet ) const; - sal_Bool operator !=( const MouseSettings& rSet ) const - { return !(*this == rSet); } -}; - -struct DialogStyle -{ - int content_area_border; - int content_area_spacing; - int button_spacing; - int action_area_border; - DialogStyle() - : content_area_border(2) - , content_area_spacing(0) - , button_spacing(6) - , action_area_border(5) - {} -}; - -struct FrameStyle -{ - int left; - int right; - int top; - int bottom; - FrameStyle() - : left(2) - , right(2) - , top(2) - , bottom(2) - {} -}; - -// ----------------- -// - ImplStyleData - -// ----------------- - -class ImplStyleData -{ - friend class StyleSettings; - - ImplStyleData(); - ImplStyleData( const ImplStyleData& rData ); - void SetStandardStyles(); - -private: - sal_uLong mnRefCount; - - Color maActiveBorderColor; - Color maActiveColor; - Color maActiveColor2; - Color maActiveTextColor; - Color maButtonTextColor; - Color maButtonRolloverTextColor; - Color maCheckedColor; - Color maDarkShadowColor; - Color maDeactiveBorderColor; - Color maDeactiveColor; - Color maDeactiveColor2; - Color maDeactiveTextColor; - Color maDialogColor; - Color maDialogTextColor; - Color maDisableColor; - Color maFaceColor; - Color maFieldColor; - Color maFieldTextColor; - Color maFieldRolloverTextColor; - Color maFontColor; - Color maGroupTextColor; - Color maHelpColor; - Color maHelpTextColor; - Color maHighlightColor; - Color maHighlightLinkColor; - Color maHighlightTextColor; - Color maInfoTextColor; - Color maLabelTextColor; - Color maLightBorderColor; - Color maLightColor; - Color maLinkColor; - Color maMenuBarColor; - Color maMenuBorderColor; - Color maMenuColor; - Color maMenuHighlightColor; - Color maMenuHighlightTextColor; - Color maMenuTextColor; - Color maMenuBarTextColor; - Color maMonoColor; - Color maRadioCheckTextColor; - Color maShadowColor; - Color maVisitedLinkColor; - Color maWindowColor; - Color maWindowTextColor; - Color maWorkspaceColor; - Color maActiveTabColor; - Color maInactiveTabColor; - Font maAppFont; - Font maHelpFont; - Font maTitleFont; - Font maFloatTitleFont; - Font maMenuFont; - Font maToolFont; - Font maLabelFont; - Font maInfoFont; - Font maRadioCheckFont; - Font maPushButtonFont; - Font maFieldFont; - Font maIconFont; - Font maGroupFont; - long mnBorderSize; - long mnTitleHeight; - long mnFloatTitleHeight; - long mnTearOffTitleHeight; - long mnScrollBarSize; - long mnSplitSize; - long mnSpinSize; - long mnCursorSize; - long mnMenuBarHeight; - long mnIconHorzSpace; - long mnIconVertSpace; - long mnAntialiasedMin; - sal_uLong mnCursorBlinkTime; - sal_uLong mnDragFullOptions; - sal_uLong mnAnimationOptions; - sal_uLong mnSelectionOptions; - sal_uLong mnLogoDisplayTime; - sal_uLong mnDisplayOptions; - sal_uLong mnToolbarIconSize; - sal_uLong mnUseFlatMenus; - sal_uLong mnOptions; - sal_uInt16 mnScreenZoom; - sal_uInt16 mnScreenFontZoom; - sal_uInt16 mnHighContrast; - sal_uInt16 mnUseSystemUIFonts; - sal_uInt16 mnAutoMnemonic; - sal_uInt16 mnUseImagesInMenus; - sal_uLong mnUseFlatBorders; - sal_Bool mbPreferredUseImagesInMenus; - long mnMinThumbSize; - sal_uLong mnSymbolsStyle; - sal_uLong mnPreferredSymbolsStyle; - sal_uInt16 mnSkipDisabledInMenus; - sal_Bool mbHideDisabledMenuItems; - sal_Bool mbAcceleratorsInContextMenus; - //mbPrimaryButtonWarpsSlider == true for "jump to here" behavior for primary button, otherwise - //primary means scroll by single page. Secondary button takes the alternative behaviour - sal_Bool mbPrimaryButtonWarpsSlider; - Wallpaper maWorkspaceGradient; - DialogStyle maDialogStyle; - FrameStyle maFrameStyle; - const void* mpFontOptions; - - OUString maPersonaHeaderFooter; ///< Cache the settings to detect changes. - - BitmapEx maPersonaHeaderBitmap; ///< Cache the header bitmap. - BitmapEx maPersonaFooterBitmap; ///< Cache the footer bitmap. -}; - -#define DEFAULT_WORKSPACE_GRADIENT_START_COLOR Color( 0xa3, 0xae, 0xb8 ) -#define DEFAULT_WORKSPACE_GRADIENT_END_COLOR Color( 0x73, 0x7e, 0x88 ) - -// ----------------- -// - StyleSettings - -// ----------------- - -#define STYLE_OPTION_MONO ((sal_uLong)0x00000001) -#define STYLE_OPTION_COLOR ((sal_uLong)0x00000002) -#define STYLE_OPTION_FLAT ((sal_uLong)0x00000004) -#define STYLE_OPTION_GREAT ((sal_uLong)0x00000008) -#define STYLE_OPTION_HIGHLIGHT ((sal_uLong)0x00000010) -#define STYLE_OPTION_ADVANCEDUSER ((sal_uLong)0x00000020) -#define STYLE_OPTION_SCROLLARROW ((sal_uLong)0x00000040) -#define STYLE_OPTION_SPINARROW ((sal_uLong)0x00000080) -#define STYLE_OPTION_SPINUPDOWN ((sal_uLong)0x00000100) -#define STYLE_OPTION_NOMNEMONICS ((sal_uLong)0x00000200) - -#define DRAGFULL_OPTION_WINDOWMOVE ((sal_uLong)0x00000001) -#define DRAGFULL_OPTION_WINDOWSIZE ((sal_uLong)0x00000002) -#define DRAGFULL_OPTION_OBJECTMOVE ((sal_uLong)0x00000004) -#define DRAGFULL_OPTION_OBJECTSIZE ((sal_uLong)0x00000008) -#define DRAGFULL_OPTION_DOCKING ((sal_uLong)0x00000010) -#define DRAGFULL_OPTION_SPLIT ((sal_uLong)0x00000020) -#define DRAGFULL_OPTION_SCROLL ((sal_uLong)0x00000040) - -#define LOGO_DISPLAYTIME_STARTTIME ((sal_uLong)0xFFFFFFFF) - -#define SELECTION_OPTION_WORD ((sal_uLong)0x00000001) -#define SELECTION_OPTION_FOCUS ((sal_uLong)0x00000002) -#define SELECTION_OPTION_INVERT ((sal_uLong)0x00000004) -#define SELECTION_OPTION_SHOWFIRST ((sal_uLong)0x00000008) - -#define DISPLAY_OPTION_AA_DISABLE ((sal_uLong)0x00000001) - -#define STYLE_RADIOBUTTON_MONO ((sal_uInt16)0x0001) // legacy -#define STYLE_CHECKBOX_MONO ((sal_uInt16)0x0001) // legacy - -#define STYLE_TOOLBAR_ICONSIZE_UNKNOWN ((sal_uLong)0) -#define STYLE_TOOLBAR_ICONSIZE_SMALL ((sal_uLong)1) -#define STYLE_TOOLBAR_ICONSIZE_LARGE ((sal_uLong)2) - -#define STYLE_SYMBOLS_AUTO ((sal_uLong)0) -#define STYLE_SYMBOLS_DEFAULT ((sal_uLong)1) -#define STYLE_SYMBOLS_HICONTRAST ((sal_uLong)2) -#define STYLE_SYMBOLS_INDUSTRIAL ((sal_uLong)3) -#define STYLE_SYMBOLS_CRYSTAL ((sal_uLong)4) -#define STYLE_SYMBOLS_TANGO ((sal_uLong)5) -#define STYLE_SYMBOLS_OXYGEN ((sal_uLong)6) -#define STYLE_SYMBOLS_CLASSIC ((sal_uLong)7) -#define STYLE_SYMBOLS_HUMAN ((sal_uLong)8) -#define STYLE_SYMBOLS_TANGO_TESTING ((sal_uLong)9) -#define STYLE_SYMBOLS_THEMES_MAX ((sal_uLong)10) - -#define STYLE_MENUIMAGES_OFF ((sal_uInt16)0) -#define STYLE_MENUIMAGES_ON ((sal_uInt16)1) -#define STYLE_MENUIMAGES_AUTO ((sal_uInt16)2) - -#define STYLE_CURSOR_NOBLINKTIME ((sal_uLong)0xFFFFFFFF) - -class VCL_DLLPUBLIC StyleSettings -{ - void CopyData(); - -private: - ImplStyleData* mpData; - -public: - StyleSettings(); - StyleSettings( const StyleSettings& rSet ); - ~StyleSettings(); - - void Set3DColors( const Color& rColor ); - void SetFaceColor( const Color& rColor ) - { CopyData(); mpData->maFaceColor = rColor; } - const Color& GetFaceColor() const - { return mpData->maFaceColor; } - Color GetFaceGradientColor() const; - Color GetSeparatorColor() const; - void SetCheckedColor( const Color& rColor ) - { CopyData(); mpData->maCheckedColor = rColor; } - void SetCheckedColorSpecialCase( ); - const Color& GetCheckedColor() const - { return mpData->maCheckedColor; } - void SetLightColor( const Color& rColor ) - { CopyData(); mpData->maLightColor = rColor; } - const Color& GetLightColor() const - { return mpData->maLightColor; } - void SetLightBorderColor( const Color& rColor ) - { CopyData(); mpData->maLightBorderColor = rColor; } - const Color& GetLightBorderColor() const - { return mpData->maLightBorderColor; } - void SetShadowColor( const Color& rColor ) - { CopyData(); mpData->maShadowColor = rColor; } - const Color& GetShadowColor() const - { return mpData->maShadowColor; } - void SetDarkShadowColor( const Color& rColor ) - { CopyData(); mpData->maDarkShadowColor = rColor; } - const Color& GetDarkShadowColor() const - { return mpData->maDarkShadowColor; } - void SetButtonTextColor( const Color& rColor ) - { CopyData(); mpData->maButtonTextColor = rColor; } - const Color& GetButtonTextColor() const - { return mpData->maButtonTextColor; } - void SetButtonRolloverTextColor( const Color& rColor ) - { CopyData(); mpData->maButtonRolloverTextColor = rColor; } - const Color& GetButtonRolloverTextColor() const - { return mpData->maButtonRolloverTextColor; } - void SetRadioCheckTextColor( const Color& rColor ) - { CopyData(); mpData->maRadioCheckTextColor = rColor; } - const Color& GetRadioCheckTextColor() const - { return mpData->maRadioCheckTextColor; } - void SetGroupTextColor( const Color& rColor ) - { CopyData(); mpData->maGroupTextColor = rColor; } - const Color& GetGroupTextColor() const - { return mpData->maGroupTextColor; } - void SetLabelTextColor( const Color& rColor ) - { CopyData(); mpData->maLabelTextColor = rColor; } - const Color& GetLabelTextColor() const - { return mpData->maLabelTextColor; } - void SetInfoTextColor( const Color& rColor ) - { CopyData(); mpData->maInfoTextColor = rColor; } - const Color& GetInfoTextColor() const - { return mpData->maInfoTextColor; } - void SetWindowColor( const Color& rColor ) - { CopyData(); mpData->maWindowColor = rColor; } - const Color& GetWindowColor() const - { return mpData->maWindowColor; } - void SetWindowTextColor( const Color& rColor ) - { CopyData(); mpData->maWindowTextColor = rColor; } - const Color& GetWindowTextColor() const - { return mpData->maWindowTextColor; } - void SetDialogColor( const Color& rColor ) - { CopyData(); mpData->maDialogColor = rColor; } - const Color& GetDialogColor() const - { return mpData->maDialogColor; } - void SetDialogTextColor( const Color& rColor ) - { CopyData(); mpData->maDialogTextColor = rColor; } - const Color& GetDialogTextColor() const - { return mpData->maDialogTextColor; } - void SetWorkspaceColor( const Color& rColor ) - { CopyData(); mpData->maWorkspaceColor = rColor; } - const Color& GetWorkspaceColor() const - { return mpData->maWorkspaceColor; } - void SetFieldColor( const Color& rColor ) - { CopyData(); mpData->maFieldColor = rColor; } - const Color& GetFieldColor() const - { return mpData->maFieldColor; } - void SetFieldTextColor( const Color& rColor ) - { CopyData(); mpData->maFieldTextColor = rColor; } - const Color& GetFieldTextColor() const - { return mpData->maFieldTextColor; } - void SetFieldRolloverTextColor( const Color& rColor ) - { CopyData(); mpData->maFieldRolloverTextColor = rColor; } - const Color& GetFieldRolloverTextColor() const - { return mpData->maFieldRolloverTextColor; } - void SetActiveColor( const Color& rColor ) - { CopyData(); mpData->maActiveColor = rColor; } - const Color& GetActiveColor() const - { return mpData->maActiveColor; } - void SetActiveColor2( const Color& rColor ) - { CopyData(); mpData->maActiveColor2 = rColor; } - const Color& GetActiveColor2() const - { return mpData->maActiveColor2; } - void SetActiveTextColor( const Color& rColor ) - { CopyData(); mpData->maActiveTextColor = rColor; } - const Color& GetActiveTextColor() const - { return mpData->maActiveTextColor; } - void SetActiveBorderColor( const Color& rColor ) - { CopyData(); mpData->maActiveBorderColor = rColor; } - const Color& GetActiveBorderColor() const - { return mpData->maActiveBorderColor; } - void SetDeactiveColor( const Color& rColor ) - { CopyData(); mpData->maDeactiveColor = rColor; } - const Color& GetDeactiveColor() const - { return mpData->maDeactiveColor; } - void SetDeactiveColor2( const Color& rColor ) - { CopyData(); mpData->maDeactiveColor2 = rColor; } - const Color& GetDeactiveColor2() const - { return mpData->maDeactiveColor2; } - void SetDeactiveTextColor( const Color& rColor ) - { CopyData(); mpData->maDeactiveTextColor = rColor; } - const Color& GetDeactiveTextColor() const - { return mpData->maDeactiveTextColor; } - void SetDeactiveBorderColor( const Color& rColor ) - { CopyData(); mpData->maDeactiveBorderColor = rColor; } - const Color& GetDeactiveBorderColor() const - { return mpData->maDeactiveBorderColor; } - void SetHighlightColor( const Color& rColor ) - { CopyData(); mpData->maHighlightColor = rColor; } - const Color& GetHighlightColor() const - { return mpData->maHighlightColor; } - void SetHighlightTextColor( const Color& rColor ) - { CopyData(); mpData->maHighlightTextColor = rColor; } - const Color& GetHighlightTextColor() const - { return mpData->maHighlightTextColor; } - void SetDisableColor( const Color& rColor ) - { CopyData(); mpData->maDisableColor = rColor; } - const Color& GetDisableColor() const - { return mpData->maDisableColor; } - void SetHelpColor( const Color& rColor ) - { CopyData(); mpData->maHelpColor = rColor; } - const Color& GetHelpColor() const - { return mpData->maHelpColor; } - void SetHelpTextColor( const Color& rColor ) - { CopyData(); mpData->maHelpTextColor = rColor; } - const Color& GetHelpTextColor() const - { return mpData->maHelpTextColor; } - void SetMenuColor( const Color& rColor ) - { CopyData(); mpData->maMenuColor = rColor; } - const Color& GetMenuColor() const - { return mpData->maMenuColor; } - void SetMenuBarColor( const Color& rColor ) - { CopyData(); mpData->maMenuBarColor = rColor; } - const Color& GetMenuBarColor() const - { return mpData->maMenuBarColor; } - void SetMenuBorderColor( const Color& rColor ) - { CopyData(); mpData->maMenuBorderColor = rColor; } - const Color& GetMenuBorderColor() const - { return mpData->maMenuBorderColor; } - void SetMenuTextColor( const Color& rColor ) - { CopyData(); mpData->maMenuTextColor = rColor; } - const Color& GetMenuTextColor() const - { return mpData->maMenuTextColor; } - void SetMenuBarTextColor( const Color& rColor ) - { CopyData(); mpData->maMenuBarTextColor = rColor; } - const Color& GetMenuBarTextColor() const - { return mpData->maMenuBarTextColor; } - void SetMenuHighlightColor( const Color& rColor ) - { CopyData(); mpData->maMenuHighlightColor = rColor; } - const Color& GetMenuHighlightColor() const - { return mpData->maMenuHighlightColor; } - void SetMenuHighlightTextColor( const Color& rColor ) - { CopyData(); mpData->maMenuHighlightTextColor = rColor; } - const Color& GetMenuHighlightTextColor() const - { return mpData->maMenuHighlightTextColor; } - void SetLinkColor( const Color& rColor ) - { CopyData(); mpData->maLinkColor = rColor; } - const Color& GetLinkColor() const - { return mpData->maLinkColor; } - void SetVisitedLinkColor( const Color& rColor ) - { CopyData(); mpData->maVisitedLinkColor = rColor; } - const Color& GetVisitedLinkColor() const - { return mpData->maVisitedLinkColor; } - void SetHighlightLinkColor( const Color& rColor ) - { CopyData(); mpData->maHighlightLinkColor = rColor; } - const Color& GetHighlightLinkColor() const - { return mpData->maHighlightLinkColor; } - - void SetMonoColor( const Color& rColor ) - { CopyData(); mpData->maMonoColor = rColor; } - const Color& GetMonoColor() const - { return mpData->maMonoColor; } - - void SetActiveTabColor( const Color& rColor ) - { CopyData(); mpData->maActiveTabColor = rColor; } - const Color& GetActiveTabColor() const - { return mpData->maActiveTabColor; } - void SetInactiveTabColor( const Color& rColor ) - { CopyData(); mpData->maInactiveTabColor = rColor; } - const Color& GetInactiveTabColor() const - { return mpData->maInactiveTabColor; } - - void SetHighContrastMode( sal_Bool bHighContrast ) - { CopyData(); mpData->mnHighContrast = bHighContrast; } - sal_Bool GetHighContrastMode() const - { return (sal_Bool) mpData->mnHighContrast; } - void SetUseSystemUIFonts( sal_Bool bUseSystemUIFonts ) - { CopyData(); mpData->mnUseSystemUIFonts = bUseSystemUIFonts; } - sal_Bool GetUseSystemUIFonts() const - { return (sal_Bool) mpData->mnUseSystemUIFonts; } - void SetUseFlatBorders( sal_Bool bUseFlatBorders ) - { CopyData(); mpData->mnUseFlatBorders = bUseFlatBorders; } - sal_Bool GetUseFlatBorders() const - { return (sal_Bool) mpData->mnUseFlatBorders; } - void SetUseFlatMenus( sal_Bool bUseFlatMenus ) - { CopyData(); mpData->mnUseFlatMenus = bUseFlatMenus; } - sal_Bool GetUseFlatMenus() const - { return (sal_Bool) mpData->mnUseFlatMenus; } - void SetUseImagesInMenus( sal_Bool bUseImagesInMenus ) - { CopyData(); mpData->mnUseImagesInMenus = bUseImagesInMenus; } - sal_Bool GetUseImagesInMenus() const; - void SetPreferredUseImagesInMenus( sal_Bool bPreferredUseImagesInMenus ) - { CopyData(); mpData->mbPreferredUseImagesInMenus = bPreferredUseImagesInMenus; } - sal_Bool GetPreferredUseImagesInMenus() const - { return mpData->mbPreferredUseImagesInMenus; } - void SetSkipDisabledInMenus( sal_Bool bSkipDisabledInMenus ) - { CopyData(); mpData->mnSkipDisabledInMenus = bSkipDisabledInMenus; } - sal_Bool GetSkipDisabledInMenus() const - { return (sal_Bool) mpData->mnSkipDisabledInMenus; } - void SetHideDisabledMenuItems( sal_Bool bHideDisabledMenuItems ) - { CopyData(); mpData->mbHideDisabledMenuItems = bHideDisabledMenuItems; } - sal_Bool GetHideDisabledMenuItems() const - { return mpData->mbHideDisabledMenuItems; } - void SetAcceleratorsInContextMenus( sal_Bool bAcceleratorsInContextMenus ) - { CopyData(); mpData->mbAcceleratorsInContextMenus = bAcceleratorsInContextMenus; } - sal_Bool GetAcceleratorsInContextMenus() const - { return mpData->mbAcceleratorsInContextMenus; } - void SetPrimaryButtonWarpsSlider( sal_Bool bPrimaryButtonWarpsSlider ) - { CopyData(); mpData->mbPrimaryButtonWarpsSlider = bPrimaryButtonWarpsSlider; } - sal_Bool GetPrimaryButtonWarpsSlider() const - { return mpData->mbPrimaryButtonWarpsSlider; } - - void SetCairoFontOptions( const void *pOptions ) - { CopyData(); mpData->mpFontOptions = pOptions; } - const void* GetCairoFontOptions() const - { return mpData->mpFontOptions; } - - void SetAppFont( const Font& rFont ) - { CopyData(); mpData->maAppFont = rFont; } - const Font& GetAppFont() const - { return mpData->maAppFont; } - void SetHelpFont( const Font& rFont ) - { CopyData(); mpData->maHelpFont = rFont; } - const Font& GetHelpFont() const - { return mpData->maHelpFont; } - void SetTitleFont( const Font& rFont ) - { CopyData(); mpData->maTitleFont = rFont; } - const Font& GetTitleFont() const - { return mpData->maTitleFont; } - void SetFloatTitleFont( const Font& rFont ) - { CopyData(); mpData->maFloatTitleFont = rFont; } - const Font& GetFloatTitleFont() const - { return mpData->maFloatTitleFont; } - void SetMenuFont( const Font& rFont ) - { CopyData(); mpData->maMenuFont = rFont; } - const Font& GetMenuFont() const - { return mpData->maMenuFont; } - void SetToolFont( const Font& rFont ) - { CopyData(); mpData->maToolFont = rFont; } - const Font& GetToolFont() const - { return mpData->maToolFont; } - void SetGroupFont( const Font& rFont ) - { CopyData(); mpData->maGroupFont = rFont; } - const Font& GetGroupFont() const - { return mpData->maGroupFont; } - void SetLabelFont( const Font& rFont ) - { CopyData(); mpData->maLabelFont = rFont; } - const Font& GetLabelFont() const - { return mpData->maLabelFont; } - void SetInfoFont( const Font& rFont ) - { CopyData(); mpData->maInfoFont = rFont; } - const Font& GetInfoFont() const - { return mpData->maInfoFont; } - void SetRadioCheckFont( const Font& rFont ) - { CopyData(); mpData->maRadioCheckFont = rFont; } - const Font& GetRadioCheckFont() const - { return mpData->maRadioCheckFont; } - void SetPushButtonFont( const Font& rFont ) - { CopyData(); mpData->maPushButtonFont = rFont; } - const Font& GetPushButtonFont() const - { return mpData->maPushButtonFont; } - void SetFieldFont( const Font& rFont ) - { CopyData(); mpData->maFieldFont = rFont; } - const Font& GetFieldFont() const - { return mpData->maFieldFont; } - void SetIconFont( const Font& rFont ) - { CopyData(); mpData->maIconFont = rFont; } - const Font& GetIconFont() const - { return mpData->maIconFont; } - - void SetBorderSize( long nSize ) - { CopyData(); mpData->mnBorderSize = nSize; } - long GetBorderSize() const - { return mpData->mnBorderSize; } - void SetTitleHeight( long nSize ) - { CopyData(); mpData->mnTitleHeight = nSize; } - long GetTitleHeight() const - { return mpData->mnTitleHeight; } - void SetFloatTitleHeight( long nSize ) - { CopyData(); mpData->mnFloatTitleHeight = nSize; } - long GetFloatTitleHeight() const - { return mpData->mnFloatTitleHeight; } - void SetTearOffTitleHeight( long nSize ) - { CopyData(); mpData->mnTearOffTitleHeight = nSize; } - long GetTearOffTitleHeight() const - { return mpData->mnTearOffTitleHeight; } - void SetMenuBarHeight( long nSize ) - { CopyData(); mpData->mnMenuBarHeight = nSize; } - long GetMenuBarHeight() const - { return mpData->mnMenuBarHeight; } - void SetScrollBarSize( long nSize ) - { CopyData(); mpData->mnScrollBarSize = nSize; } - long GetScrollBarSize() const - { return mpData->mnScrollBarSize; } - void SetMinThumbSize( long nSize ) - { CopyData(); mpData->mnMinThumbSize = nSize; } - long GetMinThumbSize() const - { return mpData->mnMinThumbSize; } - void SetSpinSize( long nSize ) - { CopyData(); mpData->mnSpinSize = nSize; } - long GetSpinSize() const - { return mpData->mnSpinSize; } - void SetSplitSize( long nSize ) - { CopyData(); mpData->mnSplitSize = nSize; } - long GetSplitSize() const - { return mpData->mnSplitSize; } - - void SetIconHorzSpace( long nSpace ) - { CopyData(); mpData->mnIconHorzSpace = nSpace; } - long GetIconHorzSpace() const - { return mpData->mnIconHorzSpace; } - void SetIconVertSpace( long nSpace ) - { CopyData(); mpData->mnIconVertSpace = nSpace; } - long GetIconVertSpace() const - { return mpData->mnIconVertSpace; } - - void SetCursorSize( long nSize ) - { CopyData(); mpData->mnCursorSize = nSize; } - long GetCursorSize() const - { return mpData->mnCursorSize; } - void SetCursorBlinkTime( long nBlinkTime ) - { CopyData(); mpData->mnCursorBlinkTime = nBlinkTime; } - long GetCursorBlinkTime() const - { return (long) mpData->mnCursorBlinkTime; } - - void SetScreenZoom( sal_uInt16 nPercent ) - { CopyData(); mpData->mnScreenZoom = nPercent; } - sal_uInt16 GetScreenZoom() const - { return mpData->mnScreenZoom; } - void SetScreenFontZoom( sal_uInt16 nPercent ) - { CopyData(); mpData->mnScreenFontZoom = nPercent; } - sal_uInt16 GetScreenFontZoom() const - { return mpData->mnScreenFontZoom; } - - void SetLogoDisplayTime( sal_uLong nDisplayTime ) - { CopyData(); mpData->mnLogoDisplayTime = nDisplayTime; } - sal_uLong GetLogoDisplayTime() const - { return mpData->mnLogoDisplayTime; } - - void SetDragFullOptions( sal_uLong nOptions ) - { CopyData(); mpData->mnDragFullOptions = nOptions; } - sal_uLong GetDragFullOptions() const - { return mpData->mnDragFullOptions; } - - void SetAnimationOptions( sal_uLong nOptions ) - { CopyData(); mpData->mnAnimationOptions = nOptions; } - sal_uLong GetAnimationOptions() const - { return mpData->mnAnimationOptions; } - - void SetSelectionOptions( sal_uLong nOptions ) - { CopyData(); mpData->mnSelectionOptions = nOptions; } - sal_uLong GetSelectionOptions() const - { return mpData->mnSelectionOptions; } - - void SetDisplayOptions( sal_uLong nOptions ) - { CopyData(); mpData->mnDisplayOptions = nOptions; } - sal_uLong GetDisplayOptions() const - { return mpData->mnDisplayOptions; } - void SetAntialiasingMinPixelHeight( long nMinPixel ) - { CopyData(); mpData->mnAntialiasedMin = nMinPixel; } - sal_uLong GetAntialiasingMinPixelHeight() const - { return mpData->mnAntialiasedMin; } - - void SetOptions( sal_uLong nOptions ) - { CopyData(); mpData->mnOptions = nOptions; } - sal_uLong GetOptions() const - { return mpData->mnOptions; } - void SetAutoMnemonic( sal_Bool bAutoMnemonic ) - { CopyData(); mpData->mnAutoMnemonic = (sal_uInt16)bAutoMnemonic; } - sal_Bool GetAutoMnemonic() const - { return mpData->mnAutoMnemonic ? sal_True : sal_False; } - - void SetFontColor( const Color& rColor ) - { CopyData(); mpData->maFontColor = rColor; } - const Color& GetFontColor() const - { return mpData->maFontColor; } - - void SetToolbarIconSize( sal_uLong nSize ) - { CopyData(); mpData->mnToolbarIconSize = nSize; } - sal_uLong GetToolbarIconSize() const - { return mpData->mnToolbarIconSize; } - - void SetSymbolsStyle( sal_uLong nStyle ) - { CopyData(); mpData->mnSymbolsStyle = nStyle; } - sal_uLong GetSymbolsStyle() const - { return mpData->mnSymbolsStyle; } - - void SetPreferredSymbolsStyle( sal_uLong nStyle ) - { CopyData(); mpData->mnPreferredSymbolsStyle = nStyle; } - void SetPreferredSymbolsStyleName( const OUString &rName ); - sal_uLong GetPreferredSymbolsStyle() const - { return mpData->mnPreferredSymbolsStyle; } - // check whether the symbols style is supported (icons are installed) - bool CheckSymbolStyle( sal_uLong nStyle ) const; - sal_uLong GetAutoSymbolsStyle() const; - - sal_uLong GetCurrentSymbolsStyle() const; - - void SetSymbolsStyleName( const OUString &rName ) - { return SetSymbolsStyle( ImplNameToSymbolsStyle( rName ) ); } - OUString GetSymbolsStyleName() const - { return ImplSymbolsStyleToName( GetSymbolsStyle() ); } - OUString GetCurrentSymbolsStyleName() const - { return ImplSymbolsStyleToName( GetCurrentSymbolsStyle() ); } - - const Wallpaper& GetWorkspaceGradient() const - { return mpData->maWorkspaceGradient; } - void SetWorkspaceGradient( const Wallpaper& rWall ) - { CopyData(); mpData->maWorkspaceGradient = rWall; } - - const DialogStyle& GetDialogStyle() const - { return mpData->maDialogStyle; } - void SetDialogStyle( const DialogStyle& rStyle ) - { CopyData(); mpData->maDialogStyle = rStyle; } - - const FrameStyle& GetFrameStyle() const - { return mpData->maFrameStyle; } - void SetFrameStyle( const FrameStyle& rStyle ) - { CopyData(); mpData->maFrameStyle = rStyle; } - - const BitmapEx GetPersonaHeader() const; - - void SetStandardStyles(); - - const StyleSettings& operator =( const StyleSettings& rSet ); - - sal_Bool operator ==( const StyleSettings& rSet ) const; - sal_Bool operator !=( const StyleSettings& rSet ) const - { return !(*this == rSet); } - -protected: - OUString ImplSymbolsStyleToName( sal_uLong nStyle ) const; - sal_uLong ImplNameToSymbolsStyle( const OUString &rName ) const; -}; - -// ---------------- -// - ImplMiscData - -// ---------------- - -class ImplMiscData -{ - friend class MiscSettings; - - ImplMiscData(); - ImplMiscData( const ImplMiscData& rData ); - -private: - sal_uLong mnRefCount; - sal_uInt16 mnEnableATT; - sal_Bool mbEnableLocalizedDecimalSep; - sal_uInt16 mnDisablePrinting; -}; - -// ---------------- -// - MiscSettings - -// ---------------- - -class VCL_DLLPUBLIC MiscSettings -{ - void CopyData(); - -private: - ImplMiscData* mpData; - -public: - MiscSettings(); - MiscSettings( const MiscSettings& rSet ); - ~MiscSettings(); - -#ifdef WNT - void SetEnableATToolSupport( sal_Bool bEnable ); -#endif - sal_Bool GetEnableATToolSupport() const; - sal_Bool GetDisablePrinting() const; - void SetEnableLocalizedDecimalSep( sal_Bool bEnable ); - sal_Bool GetEnableLocalizedDecimalSep() const; - const MiscSettings& operator =( const MiscSettings& rSet ); - - sal_Bool operator ==( const MiscSettings& rSet ) const; - sal_Bool operator !=( const MiscSettings& rSet ) const - { return !(*this == rSet); } -}; - -// ---------------- -// - ImplHelpData - -// ---------------- - -class ImplHelpData -{ - friend class HelpSettings; - - ImplHelpData(); - ImplHelpData( const ImplHelpData& rData ); - -private: - sal_uLong mnRefCount; - sal_uLong mnOptions; - sal_uLong mnTipDelay; - sal_uLong mnTipTimeout; - sal_uLong mnBalloonDelay; -}; - -// ---------------- -// - HelpSettings - -// ---------------- - -class VCL_DLLPUBLIC HelpSettings -{ - void CopyData(); - -private: - ImplHelpData* mpData; - -public: - HelpSettings(); - HelpSettings( const HelpSettings& rSet ); - ~HelpSettings(); - - void SetOptions( sal_uLong nOptions ) - { CopyData(); mpData->mnOptions = nOptions; } - sal_uLong GetOptions() const - { return mpData->mnOptions; } - void SetTipDelay( sal_uLong nTipDelay ) - { CopyData(); mpData->mnTipDelay = nTipDelay; } - sal_uLong GetTipDelay() const - { return mpData->mnTipDelay; } - void SetTipTimeout( sal_uLong nTipTimeout ) - { CopyData(); mpData->mnTipTimeout = nTipTimeout; } - sal_uLong GetTipTimeout() const - { return mpData->mnTipTimeout; } - void SetBalloonDelay( sal_uLong nBalloonDelay ) - { CopyData(); mpData->mnBalloonDelay = nBalloonDelay; } - sal_uLong GetBalloonDelay() const - { return mpData->mnBalloonDelay; } - - const HelpSettings& operator =( const HelpSettings& rSet ); - - sal_Bool operator ==( const HelpSettings& rSet ) const; - sal_Bool operator !=( const HelpSettings& rSet ) const - { return !(*this == rSet); } -}; - -// ----------------------- -// - ImplAllSettingsData - -// ----------------------- -class ImplAllSettingsData -{ - friend class AllSettings; - - ImplAllSettingsData(); - ImplAllSettingsData( const ImplAllSettingsData& rData ); - ~ImplAllSettingsData(); - -private: - sal_uLong mnRefCount; - MouseSettings maMouseSettings; - StyleSettings maStyleSettings; - MiscSettings maMiscSettings; - HelpSettings maHelpSettings; - LanguageTag maLocale; - sal_uLong mnSystemUpdate; - sal_uLong mnWindowUpdate; - LanguageTag maUILocale; - LocaleDataWrapper* mpLocaleDataWrapper; - LocaleDataWrapper* mpUILocaleDataWrapper; - vcl::I18nHelper* mpI18nHelper; - vcl::I18nHelper* mpUII18nHelper; - SvtSysLocale maSysLocale; -}; - -// --------------- -// - AllSettings - -// --------------- - -const int SETTINGS_MOUSE = 0x00000001; -const int SETTINGS_STYLE = 0x00000002; -const int SETTINGS_MISC = 0x00000004; -const int SETTINGS_SOUND = 0x00000008; -const int SETTINGS_HELP = 0x00000010; -const int SETTINGS_LOCALE = 0x00000020; -const int SETTINGS_UILOCALE = 0x00000040; -const int SETTINGS_ALLSETTINGS = ( SETTINGS_MOUSE | - SETTINGS_STYLE | SETTINGS_MISC | - SETTINGS_SOUND | - SETTINGS_HELP | - SETTINGS_LOCALE | SETTINGS_UILOCALE ); -const int SETTINGS_IN_UPDATE_SETTINGS = 0x00000800; // this flag indicates that the data changed event was created - // in Windows::UpdateSettings probably because of a global - // settings changed - -class VCL_DLLPUBLIC AllSettings -{ - void CopyData(); - -private: - ImplAllSettingsData* mpData; - -public: - AllSettings(); - AllSettings( const AllSettings& rSet ); - ~AllSettings(); - - void SetMouseSettings( const MouseSettings& rSet ) - { CopyData(); mpData->maMouseSettings = rSet; } - const MouseSettings& GetMouseSettings() const - { return mpData->maMouseSettings; } - - void SetStyleSettings( const StyleSettings& rSet ) - { CopyData(); mpData->maStyleSettings = rSet; } - const StyleSettings& GetStyleSettings() const - { return mpData->maStyleSettings; } - - void SetMiscSettings( const MiscSettings& rSet ) - { CopyData(); mpData->maMiscSettings = rSet; } - const MiscSettings& GetMiscSettings() const - { return mpData->maMiscSettings; } - - void SetHelpSettings( const HelpSettings& rSet ) - { CopyData(); mpData->maHelpSettings = rSet; } - const HelpSettings& GetHelpSettings() const - { return mpData->maHelpSettings; } - - void SetLanguageTag( const LanguageTag& rLanguageTag ); - const LanguageTag& GetLanguageTag() const; - void SetUILanguageTag( const LanguageTag& rLanguageTag ); - const LanguageTag& GetUILanguageTag() const; - bool GetLayoutRTL() const; // returns true if UI language requires right-to-left UI - const LocaleDataWrapper& GetLocaleDataWrapper() const; - const LocaleDataWrapper& GetUILocaleDataWrapper() const; - const vcl::I18nHelper& GetLocaleI18nHelper() const; - const vcl::I18nHelper& GetUILocaleI18nHelper() const; - - void SetSystemUpdate( sal_uLong nUpdate ) - { CopyData(); mpData->mnSystemUpdate = nUpdate; } - sal_uLong GetSystemUpdate() const - { return mpData->mnSystemUpdate; } - void SetWindowUpdate( sal_uLong nUpdate ) - { CopyData(); mpData->mnWindowUpdate = nUpdate; } - sal_uLong GetWindowUpdate() const - { return mpData->mnWindowUpdate; } - - sal_uLong Update( sal_uLong nFlags, const AllSettings& rSettings ); - sal_uLong GetChangeFlags( const AllSettings& rSettings ) const; - - const AllSettings& operator =( const AllSettings& rSet ); - - sal_Bool operator ==( const AllSettings& rSet ) const; - sal_Bool operator !=( const AllSettings& rSet ) const - { return !(*this == rSet); } - static void LocaleSettingsChanged( sal_uInt32 nHint ); - SvtSysLocale& GetSysLocale() { return mpData->maSysLocale; } -}; - -#endif // _SV_SETTINGS_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/slider.hxx b/vcl/inc/vcl/slider.hxx deleted file mode 100644 index 5d02217040b6..000000000000 --- a/vcl/inc/vcl/slider.hxx +++ /dev/null @@ -1,122 +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 . - */ - -#ifndef _SV_SLIDER_HXX -#define _SV_SLIDER_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/ctrl.hxx> -// for enum ScrollType -#include <vcl/scrbar.hxx> - -// ---------- -// - Slider - -// ---------- - -class VCL_DLLPUBLIC Slider : public Control -{ -private: - Rectangle maChannel1Rect; - Rectangle maChannel2Rect; - Rectangle maThumbRect; - long mnStartPos; - long mnMouseOff; - long mnThumbPixOffset; - long mnThumbPixRange; - long mnThumbPixPos; - long mnChannelPixOffset; - long mnChannelPixRange; - long mnChannelPixTop; - long mnChannelPixBottom; - long mnMinRange; - long mnMaxRange; - long mnThumbPos; - long mnLineSize; - long mnPageSize; - long mnDelta; - sal_uInt16 mnDragDraw; - sal_uInt16 mnStateFlags; - ScrollType meScrollType; - sal_Bool mbCalcSize; - sal_Bool mbFullDrag; - Link maSlideHdl; - Link maEndSlideHdl; - - using Control::ImplInitSettings; - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings(); - SAL_DLLPRIVATE void ImplUpdateRects( sal_Bool bUpdate = sal_True ); - SAL_DLLPRIVATE long ImplCalcThumbPos( long nPixPos ); - SAL_DLLPRIVATE long ImplCalcThumbPosPix( long nPos ); - SAL_DLLPRIVATE void ImplCalc( sal_Bool bUpdate = sal_True ); - SAL_DLLPRIVATE void ImplDraw( sal_uInt16 nDrawFlags ); - SAL_DLLPRIVATE sal_Bool ImplIsPageUp( const Point& rPos ); - SAL_DLLPRIVATE sal_Bool ImplIsPageDown( const Point& rPos ); - SAL_DLLPRIVATE long ImplSlide( long nNewPos, sal_Bool bCallEndSlide ); - SAL_DLLPRIVATE long ImplDoAction( sal_Bool bCallEndSlide ); - SAL_DLLPRIVATE void ImplDoMouseAction( const Point& rPos, sal_Bool bCallAction = sal_True ); - SAL_DLLPRIVATE long ImplDoSlide( long nNewPos ); - SAL_DLLPRIVATE long ImplDoSlideAction( ScrollType eScrollType ); - -public: - Slider( Window* pParent, WinBits nStyle = WB_HORZ ); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void MouseButtonUp( const MouseEvent& rMEvt ); - virtual void Tracking( const TrackingEvent& rTEvt ); - virtual void KeyInput( const KeyEvent& rKEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Resize(); - virtual void RequestHelp( const HelpEvent& rHEvt ); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Slide(); - virtual void EndSlide(); - - void EnableDrag( sal_Bool bEnable = sal_True ) - { mbFullDrag = bEnable; } - sal_Bool IsDragEnabled() const { return mbFullDrag; } - - long GetRangeMin() const { return mnMinRange; } - long GetRangeMax() const { return mnMaxRange; } - void SetRange( const Range& rRange ); - Range GetRange() const { return Range( GetRangeMin(), GetRangeMax() ); } - void SetThumbPos( long nThumbPos ); - long GetThumbPos() const { return mnThumbPos; } - void SetLineSize( long nNewSize ) { mnLineSize = nNewSize; } - long GetLineSize() const { return mnLineSize; } - void SetPageSize( long nNewSize ) { mnPageSize = nNewSize; } - long GetPageSize() const { return mnPageSize; } - - long GetDelta() const { return mnDelta; } - - Size CalcWindowSizePixel(); - - void SetSlideHdl( const Link& rLink ) { maSlideHdl = rLink; } - const Link& GetSlideHdl() const { return maSlideHdl; } - void SetEndSlideHdl( const Link& rLink ) { maEndSlideHdl = rLink; } - const Link& GetEndSlideHdl() const { return maEndSlideHdl; } -}; - -#endif // _SV_SLIDER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/solarmutex.hxx b/vcl/inc/vcl/solarmutex.hxx deleted file mode 100644 index a6880a62995a..000000000000 --- a/vcl/inc/vcl/solarmutex.hxx +++ /dev/null @@ -1,71 +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 . - */ - -#ifndef _VCL_SOLARMUTEX_HXX_ -#define _VCL_SOLARMUTEX_HXX_ - -#include <osl/mutex.hxx> -#include <vcl/dllapi.h> - -namespace vcl -{ - -/** Implementation of the SolarMutex interface. - */ -class VCL_DLLPUBLIC SolarMutexObject : public osl::SolarMutex -{ -public: - //static SolarMutex& SAL_CALL getGlobalMutex(); - - /** Creates mutex - */ - SolarMutexObject(); - - /** Implicitly destroys mutex - */ - virtual ~SolarMutexObject(); - - /** Blocks if Mutex is already in use - */ - virtual void SAL_CALL acquire(); - - /** Tries to get the mutex without blocking. - @return True if mutex could be obtained, otherwise False - */ - virtual sal_Bool SAL_CALL tryToAcquire(); - - /** Releases the mutex. - */ - virtual void SAL_CALL release(); - -protected: - oslMutex m_solarMutex; - -private: - /* Disable copy/assignment - */ - SolarMutexObject( const SolarMutexObject& ); - SolarMutexObject& SAL_CALL operator=( const SolarMutexObject& ); -}; - -} - -#endif // _VCL_SOLARMUTEX_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/sound.hxx b/vcl/inc/vcl/sound.hxx deleted file mode 100644 index 7be53a0944ee..000000000000 --- a/vcl/inc/vcl/sound.hxx +++ /dev/null @@ -1,39 +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 . - */ - -#ifndef _SV_SOUND_HXX -#define _SV_SOUND_HXX - -#include <vcl/dllapi.h> - -class Window; - -// --------- -// - Sound - -// --------- - -class VCL_DLLPUBLIC Sound -{ -public: - static void Beep( Window* pWindow = NULL ); -}; - -#endif // _SV_SOUND_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/spin.h b/vcl/inc/vcl/spin.h deleted file mode 100644 index 0760b94ee2a5..000000000000 --- a/vcl/inc/vcl/spin.h +++ /dev/null @@ -1,38 +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 . - */ - -#ifndef _SV_SPIN_H -#define _SV_SPIN_H - -#include <tools/solar.h> - -class Rectangle; -class OutputDevice; - -void ImplDrawSpinButton( OutputDevice* pOutDev, - const Rectangle& rUpperRect, - const Rectangle& rLowerRect, - sal_Bool bUpperIn, sal_Bool bLowerIn, - sal_Bool bUpperEnabled = sal_True, - sal_Bool bLowerEnabled = sal_True, - sal_Bool bHorz = sal_False, sal_Bool bMirrorHorz = sal_False ); - -#endif // _SV_SPIN_H - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/spin.hxx b/vcl/inc/vcl/spin.hxx deleted file mode 100644 index 3966034c0938..000000000000 --- a/vcl/inc/vcl/spin.hxx +++ /dev/null @@ -1,110 +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 . - */ - -#ifndef _SV_SPIN_HXX -#define _SV_SPIN_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/ctrl.hxx> -#include <vcl/timer.hxx> - -// -------------- -// - SpinButton - -// -------------- - -class VCL_DLLPUBLIC SpinButton : public Control -{ -private: - AutoTimer maRepeatTimer; - Rectangle maUpperRect; - Rectangle maLowerRect; - Rectangle maFocusRect; - sal_Bool mbRepeat : 1; - sal_Bool mbUpperIn : 1; - sal_Bool mbLowerIn : 1; - sal_Bool mbInitialUp : 1; - sal_Bool mbInitialDown : 1; - sal_Bool mbHorz : 1; - sal_Bool mbUpperIsFocused : 1; - Link maUpHdlLink; - Link maDownHdlLink; - long mnMinRange; - long mnMaxRange; - long mnValue; - long mnValueStep; - - SAL_DLLPRIVATE Rectangle* ImplFindPartRect( const Point& rPt ); - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - DECL_DLLPRIVATE_LINK( ImplTimeout, Timer* ); - -public: - SpinButton( Window* pParent, WinBits nStyle = 0 ); - ~SpinButton(); - - virtual void Up(); - virtual void Down(); - - virtual void Resize(); - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void MouseButtonUp( const MouseEvent& rMEvt ); - virtual void MouseMove( const MouseEvent& rMEvt ); - virtual void KeyInput( const KeyEvent& rKEvt ); - virtual void StateChanged( StateChangedType nStateChange ); - virtual void GetFocus(); - virtual void LoseFocus(); - - void SetRangeMin( long nNewRange ); - long GetRangeMin() const { return mnMinRange; } - void SetRangeMax( long nNewRange ); - long GetRangeMax() const { return mnMaxRange; } - void SetRange( const Range& rRange ); - Range GetRange() const { return Range( GetRangeMin(), GetRangeMax() ); } - void SetValue( long nValue ); - long GetValue() const { return mnValue; } - void SetValueStep( long nNewStep ) { mnValueStep = nNewStep; } - long GetValueStep() const { return mnValueStep; } - virtual long PreNotify( NotifyEvent& rNEvt ); - - void SetUpHdl( const Link& rLink ) { maUpHdlLink = rLink; } - const Link& GetUpHdl() const { return maUpHdlLink; } - void SetDownHdl( const Link& rLink ) { maDownHdlLink = rLink; } - const Link& GetDownHdl() const { return maDownHdlLink; } - -private: - // moves the focus to the upper or lower rect. Return sal_True if the focus rect actually changed. - SAL_DLLPRIVATE sal_Bool ImplMoveFocus( sal_Bool _bUpper ); - SAL_DLLPRIVATE void ImplCalcFocusRect( sal_Bool _bUpper ); - - SAL_DLLPRIVATE inline sal_Bool ImplIsUpperEnabled( ) const - { - return mnValue + mnValueStep <= mnMaxRange; - } - SAL_DLLPRIVATE inline sal_Bool ImplIsLowerEnabled( ) const - { - return mnValue >= mnMinRange + mnValueStep; - } -}; - -#endif // _SV_SPIN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/spinfld.hxx b/vcl/inc/vcl/spinfld.hxx deleted file mode 100644 index 4a902d17aeaa..000000000000 --- a/vcl/inc/vcl/spinfld.hxx +++ /dev/null @@ -1,111 +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 . - */ - -#ifndef _SV_SPINFLD_HXX -#define _SV_SPINFLD_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/edit.hxx> -#include <vcl/timer.hxx> - -// ------------- -// - SpinField - -// ------------- - -class VCL_DLLPUBLIC SpinField : public Edit -{ -protected: - Edit* mpEdit; - AutoTimer maRepeatTimer; - Rectangle maUpperRect; - Rectangle maLowerRect; - Rectangle maDropDownRect; // noch nicht angebunden... - Link maUpHdlLink; - Link maDownHdlLink; - Link maFirstHdlLink; - Link maLastHdlLink; - sal_Bool mbRepeat:1, - mbSpin:1, - mbInitialUp:1, - mbInitialDown:1, - mbNoSelect:1, - mbUpperIn:1, - mbLowerIn:1, - mbInDropDown:1; - - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - -private: - DECL_DLLPRIVATE_LINK( ImplTimeout, Timer* ); - SAL_DLLPRIVATE void ImplInitSpinFieldData(); - SAL_DLLPRIVATE void ImplCalcButtonAreas( OutputDevice* pDev, const Size& rOutSz, Rectangle& rDDArea, Rectangle& rSpinUpArea, Rectangle& rSpinDownArea ); - -protected: - SpinField( WindowType nTyp ); - - virtual long Notify( NotifyEvent& rNEvt ); - virtual void Command( const CommandEvent& rCEvt ); - - void EndDropDown(); - - virtual void FillLayoutData() const; - Rectangle * ImplFindPartRect( const Point& rPt ); - -public: - SpinField( Window* pParent, WinBits nWinStyle = 0 ); - SpinField( Window* pParent, const ResId& rResId ); - ~SpinField(); - - virtual sal_Bool ShowDropDown( sal_Bool bShow ); - - virtual void Up(); - virtual void Down(); - virtual void First(); - virtual void Last(); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void MouseButtonUp( const MouseEvent& rMEvt ); - virtual void MouseMove( const MouseEvent& rMEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Resize(); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual long PreNotify( NotifyEvent& rNEvt ); - - void SetUpHdl( const Link& rLink ) { maUpHdlLink = rLink; } - const Link& GetUpHdl() const { return maUpHdlLink; } - void SetDownHdl( const Link& rLink ) { maDownHdlLink = rLink; } - const Link& GetDownHdl() const { return maDownHdlLink; } - void SetFirstHdl( const Link& rLink ) { maFirstHdlLink = rLink; } - const Link& GetFirstHdl() const { return maFirstHdlLink; } - void SetLastHdl( const Link& rLink ) { maLastHdlLink = rLink; } - const Link& GetLastHdl() const { return maLastHdlLink; } - - virtual Size CalcMinimumSize() const; - virtual Size CalcMinimumSizeForText(const OUString &rString) const; - virtual Size GetOptimalSize() const; - virtual Size CalcSize( sal_uInt16 nChars ) const; -}; - -#endif // _SV_SPINFLD_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/split.hxx b/vcl/inc/vcl/split.hxx deleted file mode 100644 index 1710ea62f5eb..000000000000 --- a/vcl/inc/vcl/split.hxx +++ /dev/null @@ -1,116 +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 . - */ - -#ifndef _SV_SPLIT_HXX -#define _SV_SPLIT_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/window.hxx> - -#define SPLITTER_DEFAULTSTEPSIZE 0xFFFF - -// ------------ -// - Splitter - -// ------------ - -class VCL_DLLPUBLIC Splitter : public Window -{ -private: - Window* mpRefWin; - long mnSplitPos; - long mnLastSplitPos; - long mnStartSplitPos; - Point maDragPos; - Rectangle maDragRect; - sal_Bool mbHorzSplit; - sal_Bool mbDragFull; - sal_Bool mbKbdSplitting; - long mbInKeyEvent; - long mnKeyboardStepSize; - Link maStartSplitHdl; - Link maSplitHdl; - Link maEndSplitHdl; - - SAL_DLLPRIVATE void ImplInitSplitterData(); - SAL_DLLPRIVATE void ImplDrawSplitter(); - SAL_DLLPRIVATE void ImplSplitMousePos( Point& rPos ); - SAL_DLLPRIVATE void ImplStartKbdSplitting(); - SAL_DLLPRIVATE void ImplKbdTracking( KeyCode aKeyCode ); - SAL_DLLPRIVATE sal_Bool ImplSplitterActive(); - SAL_DLLPRIVATE Splitter* ImplFindSibling(); - SAL_DLLPRIVATE void ImplRestoreSplitter(); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE Splitter (const Splitter &); - SAL_DLLPRIVATE Splitter& operator= (const Splitter &); - -protected: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nWinStyle ); - -public: - Splitter( Window* pParent, WinBits nStyle = WB_VSCROLL ); - Splitter( Window* pParent, const ResId& rResId ); - ~Splitter(); - - virtual void StartSplit(); - virtual void EndSplit(); - virtual void Split(); - virtual void Splitting( Point& rSplitPos ); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void Tracking( const TrackingEvent& rTEvt ); - - virtual long Notify( NotifyEvent& rNEvt ); - - virtual void GetFocus(); - virtual void LoseFocus(); - virtual void KeyInput( const KeyEvent& rKEvt ); - virtual void Paint( const Rectangle& rPaintRect ); - - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - void StartDrag(); - - void SetDragRectPixel( const Rectangle& rDragRect, - Window* pRefWin = NULL ); - const Rectangle& GetDragRectPixel() const { return maDragRect; } - Window* GetDragWindow() const { return mpRefWin; } - - virtual void SetSplitPosPixel( long nPos ); - long GetSplitPosPixel() const { return mnSplitPos; } - - sal_Bool IsHorizontal() const { return mbHorzSplit; } - - // set the stepsize of the splitter for cursor movement - // the default is 10% of the reference window's width/height - void SetKeyboardStepSize( long nStepSize ); - - void SetStartSplitHdl( const Link& rLink ) { maStartSplitHdl = rLink; } - const Link& GetStartSplitHdl() const { return maStartSplitHdl; } - void SetSplitHdl( const Link& rLink ) { maSplitHdl = rLink; } - void SetEndSplitHdl( const Link& rLink ) { maEndSplitHdl = rLink; } - const Link& GetEndSplitHdl() const { return maEndSplitHdl; } - const Link& GetSplitHdl() const { return maSplitHdl; } -}; - -#endif // _SV_SPLIT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/splitwin.hxx b/vcl/inc/vcl/splitwin.hxx deleted file mode 100644 index b723a449f727..000000000000 --- a/vcl/inc/vcl/splitwin.hxx +++ /dev/null @@ -1,241 +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 . - */ - -#ifndef _SV_SPLITWIN_HXX -#define _SV_SPLITWIN_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/dockwin.hxx> - -class Wallpaper; -struct ImplSplitSet; - -// ----------------------- -// - SplitWindowItemBits - -// ----------------------- - -typedef sal_uInt16 SplitWindowItemBits; - -// ------------------------------- -// - Bits fuer SplitWindow-Items - -// ------------------------------- - -#define SWIB_FIXED ((SplitWindowItemBits)0x0001) -#define SWIB_RELATIVESIZE ((SplitWindowItemBits)0x0002) -#define SWIB_PERCENTSIZE ((SplitWindowItemBits)0x0004) -#define SWIB_COLSET ((SplitWindowItemBits)0x0008) -#define SWIB_INVISIBLE ((SplitWindowItemBits)0x0010) - -// --------------------- -// - SplitWindow-Types - -// --------------------- - -#define SPLITWINDOW_APPEND ((sal_uInt16)0xFFFF) -#define SPLITWINDOW_ITEM_NOTFOUND ((sal_uInt16)0xFFFF) - -// --------------- -// - SplitWindow - -// --------------- - -class VCL_DLLPUBLIC SplitWindow : public DockingWindow -{ -private: - ImplSplitSet* mpMainSet; - ImplSplitSet* mpBaseSet; - ImplSplitSet* mpSplitSet; - long* mpLastSizes; - Rectangle maDragRect; - long mnDX; - long mnDY; - long mnLeftBorder; - long mnTopBorder; - long mnRightBorder; - long mnBottomBorder; - long mnMaxSize; - long mnMouseOff; - long mnMStartPos; - long mnMSplitPos; - WinBits mnWinStyle; - WindowAlign meAlign; - sal_uInt16 mnSplitTest; - sal_uInt16 mnSplitPos; - sal_uInt16 mnMouseModifier; - sal_Bool mbDragFull:1, - mbHorz:1, - mbBottomRight:1, - mbCalc:1, - mbRecalc:1, - mbInvalidate:1, - mbSizeable:1, - mbBorder:1, - mbAutoHide:1, - mbFadeIn:1, - mbFadeOut:1, - mbAutoHideIn:1, - mbAutoHideDown:1, - mbFadeInDown:1, - mbFadeOutDown:1, - mbAutoHidePressed:1, - mbFadeInPressed:1, - mbFadeOutPressed:1, - mbFadeNoButtonMode:1, - mbNoAlign:1; - Link maStartSplitHdl; - Link maSplitHdl; - Link maSplitResizeHdl; - Link maAutoHideHdl; - Link maFadeInHdl; - Link maFadeOutHdl; - - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings(); - SAL_DLLPRIVATE void ImplCalcLayout(); - SAL_DLLPRIVATE void ImplUpdate(); - SAL_DLLPRIVATE void ImplSetWindowSize( long nDelta ); - SAL_DLLPRIVATE void ImplSplitMousePos( Point& rMousePos ); - SAL_DLLPRIVATE void ImplGetButtonRect( Rectangle& rRect, long nEx, sal_Bool bTest ) const; - SAL_DLLPRIVATE void ImplGetAutoHideRect( Rectangle& rRect, sal_Bool bTest = sal_False ) const; - SAL_DLLPRIVATE void ImplGetFadeInRect( Rectangle& rRect, sal_Bool bTest = sal_False ) const; - SAL_DLLPRIVATE void ImplGetFadeOutRect( Rectangle& rRect, sal_Bool bTest = sal_False ) const; - SAL_DLLPRIVATE void ImplDrawButtonRect( const Rectangle& rRect, long nSize ); - SAL_DLLPRIVATE void ImplDrawAutoHide( sal_Bool bInPaint ); - SAL_DLLPRIVATE void ImplDrawFadeIn( sal_Bool bInPaint ); - SAL_DLLPRIVATE void ImplDrawFadeOut( sal_Bool bInPaint ); - SAL_DLLPRIVATE void ImplNewAlign(); - SAL_DLLPRIVATE void ImplDrawGrip( const Rectangle& rRect, sal_Bool bHorz, sal_Bool bLeft ); - SAL_DLLPRIVATE void ImplDrawFadeArrow( const Point& rPt, sal_Bool bHorz, sal_Bool bLeft ); - SAL_DLLPRIVATE void ImplStartSplit( const MouseEvent& rMEvt ); - - static SAL_DLLPRIVATE void ImplDrawBorder( SplitWindow* pWin ); - static SAL_DLLPRIVATE void ImplDrawBorderLine( SplitWindow* pWin ); - static SAL_DLLPRIVATE void ImplCalcSet2( SplitWindow* pWindow, ImplSplitSet* pSet, sal_Bool bHide, - sal_Bool bRows, sal_Bool bDown = sal_True ); - static SAL_DLLPRIVATE void ImplDrawBack( SplitWindow* pWindow, ImplSplitSet* pSet ); - static SAL_DLLPRIVATE void ImplDrawBack( SplitWindow* pWindow, const Rectangle& rRect, - const Wallpaper* pWall, const Bitmap* pBitmap ); - static SAL_DLLPRIVATE sal_uInt16 ImplTestSplit( ImplSplitSet* pSet, const Point& rPos, - long& rMouseOff, ImplSplitSet** ppFoundSet, sal_uInt16& rFoundPos, - sal_Bool bRows, sal_Bool bDown = sal_True ); - static SAL_DLLPRIVATE sal_uInt16 ImplTestSplit( SplitWindow* pWindow, const Point& rPos, - long& rMouseOff, ImplSplitSet** ppFoundSet, sal_uInt16& rFoundPos ); - static SAL_DLLPRIVATE void ImplDrawSplitTracking( SplitWindow* pThis, const Point& rPos ); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE SplitWindow (const SplitWindow &); - SAL_DLLPRIVATE SplitWindow & operator= (const SplitWindow &); -public: - SplitWindow( Window* pParent, WinBits nStyle = 0 ); - ~SplitWindow(); - - virtual void StartSplit(); - virtual void Split(); - virtual void SplitResize(); - virtual void AutoHide(); - virtual void FadeIn(); - virtual void FadeOut(); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void MouseMove( const MouseEvent& rMEvt ); - virtual void Tracking( const TrackingEvent& rTEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Move(); - virtual void Resize(); - virtual void RequestHelp( const HelpEvent& rHEvt ); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual long PreNotify( NotifyEvent& rNEvt ); - - void InsertItem( sal_uInt16 nId, Window* pWindow, long nSize, - sal_uInt16 nPos = SPLITWINDOW_APPEND, sal_uInt16 nSetId = 0, - SplitWindowItemBits nBits = 0 ); - void InsertItem( sal_uInt16 nId, long nSize, - sal_uInt16 nPos = SPLITWINDOW_APPEND, sal_uInt16 nSetId = 0, - SplitWindowItemBits nBits = 0 ); - void RemoveItem( sal_uInt16 nId, sal_Bool bHide = sal_True ); - void Clear(); - - void SplitItem( sal_uInt16 nId, long nNewSize, - sal_Bool bPropSmall = sal_False, - sal_Bool bPropGreat = sal_False ); - void SetItemSize( sal_uInt16 nId, long nNewSize ); - long GetItemSize( sal_uInt16 nId ) const; - /** Set a range that limits the (variable part of the) size with an - upper and a lower bound (both are valid values themselves.) - @param nId - Id of the item for which the size limits are set. - @param aRange - Values of -1 define missing bounds, thus setting a range (-1,-1) - (the default) removes the size limitiation. - */ - void SetItemSizeRange (sal_uInt16 nId, const Range aRange); - /** Return the current size limits for the specified item. - */ - long GetItemSize( sal_uInt16 nId, SplitWindowItemBits nBits ) const; - sal_uInt16 GetSet( sal_uInt16 nId ) const; - sal_uInt16 GetItemId( Window* pWindow ) const; - sal_uInt16 GetItemId( const Point& rPos ) const; - sal_uInt16 GetItemPos( sal_uInt16 nId, sal_uInt16 nSetId = 0 ) const; - sal_uInt16 GetItemId( sal_uInt16 nPos, sal_uInt16 nSetId = 0 ) const; - sal_uInt16 GetItemCount( sal_uInt16 nSetId = 0 ) const; - sal_Bool IsItemValid( sal_uInt16 nId ) const; - - sal_Bool IsNoAlign() const { return mbNoAlign; } - void SetAlign( WindowAlign eNewAlign = WINDOWALIGN_TOP ); - WindowAlign GetAlign() const { return meAlign; } - sal_Bool IsHorizontal() const { return mbHorz; } - - sal_Bool IsSplitting() const { return IsTracking(); } - - void SetMaxSizePixel( long nNewMaxSize ) { mnMaxSize = nNewMaxSize; } - long GetMaxSizePixel() const { return mnMaxSize; } - - Size CalcLayoutSizePixel( const Size& aNewSize ); - - void ShowAutoHideButton( sal_Bool bShow = sal_True ); - sal_Bool IsAutoHideButtonVisible() const { return mbAutoHide; } - void ShowFadeInHideButton( sal_Bool bShow = sal_True ); - void ShowFadeInButton( sal_Bool bShow = sal_True ) { ShowFadeInHideButton( bShow ); } - sal_Bool IsFadeInButtonVisible() const { return mbFadeIn; } - void ShowFadeOutButton( sal_Bool bShow = sal_True ); - sal_Bool IsFadeOutButtonVisible() const { return mbFadeOut; } - long GetFadeInSize() const; - sal_Bool IsFadeNoButtonMode() const { return mbFadeNoButtonMode; } - - void SetAutoHideState( sal_Bool bAutoHide ); - sal_Bool GetAutoHideState() const { return mbAutoHideIn; } - - void SetStartSplitHdl( const Link& rLink ) { maStartSplitHdl = rLink; } - const Link& GetStartSplitHdl() const { return maStartSplitHdl; } - void SetSplitHdl( const Link& rLink ) { maSplitHdl = rLink; } - const Link& GetSplitHdl() const { return maSplitHdl; } - void SetSplitResizeHdl( const Link& rLink ) { maSplitResizeHdl = rLink; } - const Link& GetSplitResizeHdl() const { return maSplitResizeHdl; } - void SetAutoHideHdl( const Link& rLink ) { maAutoHideHdl = rLink; } - const Link& GetAutoHideHdl() const { return maAutoHideHdl; } - void SetFadeInHdl( const Link& rLink ) { maFadeInHdl = rLink; } - const Link& GetFadeInHdl() const { return maFadeInHdl; } - void SetFadeOutHdl( const Link& rLink ) { maFadeOutHdl = rLink; } - const Link& GetFadeOutHdl() const { return maFadeOutHdl; } -}; - -#endif // _SV_SPLITWIN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/status.hxx b/vcl/inc/vcl/status.hxx deleted file mode 100644 index 91aa97113179..000000000000 --- a/vcl/inc/vcl/status.hxx +++ /dev/null @@ -1,198 +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 . - */ - -#ifndef _SV_STATUS_HXX -#define _SV_STATUS_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/window.hxx> -#include <vector> - -struct ImplStatusItem; -typedef ::std::vector< ImplStatusItem* > ImplStatusItemList; - -// -------------------- -// - Progress-Ausgabe - -// -------------------- - -void VCL_DLLPUBLIC DrawProgress( Window* pWindow, const Point& rPos, - long nOffset, long nPrgsWidth, long nPrgsHeight, - sal_uInt16 nPercent1, sal_uInt16 nPercent2, sal_uInt16 nPercentCount, - const Rectangle& rFramePosSize - ); - -// --------------------- -// - StatusBarItemBits - -// --------------------- - -typedef sal_uInt16 StatusBarItemBits; - -// ---------------------------- -// - Bits fuer StatusBarItems - -// ---------------------------- - -#define SIB_LEFT ((StatusBarItemBits)0x0001) -#define SIB_CENTER ((StatusBarItemBits)0x0002) -#define SIB_RIGHT ((StatusBarItemBits)0x0004) -#define SIB_IN ((StatusBarItemBits)0x0008) -#define SIB_OUT ((StatusBarItemBits)0x0010) -#define SIB_FLAT ((StatusBarItemBits)0x0020) -#define SIB_AUTOSIZE ((StatusBarItemBits)0x0040) -#define SIB_USERDRAW ((StatusBarItemBits)0x0080) - -// ------------------- -// - StatusBar-Types - -// ------------------- - -#define STATUSBAR_APPEND ((sal_uInt16)0xFFFF) -#define STATUSBAR_ITEM_NOTFOUND ((sal_uInt16)0xFFFF) -#define STATUSBAR_OFFSET ((long)5) - -// ------------- -// - StatusBar - -// ------------- - -class VCL_DLLPUBLIC StatusBar : public Window -{ - class ImplData; -private: - ImplStatusItemList* mpItemList; - ImplData* mpImplData; - XubString maPrgsTxt; - Point maPrgsTxtPos; - Rectangle maPrgsFrameRect; - long mnPrgsSize; - long mnItemsWidth; - long mnDX; - long mnDY; - long mnCalcHeight; - long mnTextY; - long mnItemY; - sal_uInt16 mnCurItemId; - sal_uInt16 mnPercent; - sal_uInt16 mnPercentCount; - sal_Bool mbVisibleItems; - sal_Bool mbFormat; - sal_Bool mbProgressMode; - sal_Bool mbInUserDraw; - Link maClickHdl; - Link maDoubleClickHdl; - - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE void ImplFormat(); - SAL_DLLPRIVATE sal_Bool ImplIsItemUpdate(); - using OutputDevice::ImplDrawText; - SAL_DLLPRIVATE void ImplDrawText( sal_Bool bOffScreen, long nOldTextWidth ); - SAL_DLLPRIVATE void ImplDrawItem( sal_Bool bOffScreen, sal_uInt16 nPos, sal_Bool bDrawText, sal_Bool bDrawFrame ); - SAL_DLLPRIVATE void ImplDrawProgress( sal_Bool bPaint, - sal_uInt16 nOldPerc, sal_uInt16 nNewPerc ); - SAL_DLLPRIVATE void ImplCalcProgressRect(); - SAL_DLLPRIVATE Rectangle ImplGetItemRectPos( sal_uInt16 nPos ) const; - SAL_DLLPRIVATE sal_uInt16 ImplGetFirstVisiblePos() const; - -public: - StatusBar( Window* pParent, - WinBits nWinStyle = WB_BORDER | WB_RIGHT ); - ~StatusBar(); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Move(); - virtual void Resize(); - virtual void RequestHelp( const HelpEvent& rHEvt ); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Click(); - virtual void DoubleClick(); - virtual void UserDraw( const UserDrawEvent& rUDEvt ); - - void InsertItem( sal_uInt16 nItemId, sal_uLong nWidth, - StatusBarItemBits nBits = SIB_CENTER | SIB_IN, - long nOffset = STATUSBAR_OFFSET, - sal_uInt16 nPos = STATUSBAR_APPEND ); - - sal_Bool IsItemVisible( sal_uInt16 nItemId ) const; - sal_Bool AreItemsVisible() const { return mbVisibleItems; } - - void Clear(); - - sal_uInt16 GetItemCount() const; - sal_uInt16 GetItemId( sal_uInt16 nPos ) const; - sal_uInt16 GetItemId( const Point& rPos ) const; - sal_uInt16 GetItemPos( sal_uInt16 nItemId ) const; - Rectangle GetItemRect( sal_uInt16 nItemId ) const; - Point GetItemTextPos( sal_uInt16 nItemId ) const; - sal_uInt16 GetCurItemId() const { return mnCurItemId; } - - void SetItemText( sal_uInt16 nItemId, const XubString& rText ); - const XubString& GetItemText( sal_uInt16 nItemId ) const; - - void SetItemData( sal_uInt16 nItemId, void* pNewData ); - - void SetItemCommand( sal_uInt16 nItemId, const XubString& rCommand ); - const XubString& GetItemCommand( sal_uInt16 nItemId ); - - void SetHelpText( sal_uInt16 nItemId, const XubString& rText ); - const XubString& GetHelpText( sal_uInt16 nItemId ) const; - - using Window::SetQuickHelpText; - void SetQuickHelpText( sal_uInt16 nItemId, const XubString& rText ); - using Window::GetQuickHelpText; - const XubString& GetQuickHelpText( sal_uInt16 nItemId ) const; - - void SetHelpId( sal_uInt16 nItemId, const OString& rHelpId ); - OString GetHelpId( sal_uInt16 nItemId ) const; - - void StartProgressMode( const XubString& rText ); - void SetProgressValue( sal_uInt16 nPercent ); - void EndProgressMode(); - sal_Bool IsProgressMode() const { return mbProgressMode; } - - void SetText( const OUString& rText ); - - void SetHelpText( const XubString& rText ) - { Window::SetHelpText( rText ); } - const XubString& GetHelpText() const - { return Window::GetHelpText(); } - - void SetHelpId( const OString& rId ) - { Window::SetHelpId( rId ); } - const OString& GetHelpId() const - { return Window::GetHelpId(); } - - Size CalcWindowSizePixel() const; - - void SetClickHdl( const Link& rLink ) { maClickHdl = rLink; } - const Link& GetClickHdl() const { return maClickHdl; } - void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; } - const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; } - - using Window::SetAccessibleName; - void SetAccessibleName( sal_uInt16 nItemId, const XubString& rName ); - using Window::GetAccessibleName; - const XubString& GetAccessibleName( sal_uInt16 nItemId ) const; -}; - -#endif // _SV_STATUS_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/stdtext.hxx b/vcl/inc/vcl/stdtext.hxx deleted file mode 100644 index ab48231d23c2..000000000000 --- a/vcl/inc/vcl/stdtext.hxx +++ /dev/null @@ -1,47 +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 . - */ - -#ifndef _VCL_STDTEXT_HXX -#define _VCL_STDTEXT_HXX - -#include <tools/string.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> - -class Window; - -// ------------------ -// - Standard-Texte - -// ------------------ - -#define STANDARD_TEXT_FIRST STANDARD_TEXT_SERVICE_NOT_AVAILABLE -#define STANDARD_TEXT_SERVICE_NOT_AVAILABLE ((sal_uInt16)0) -#define STANDARD_TEXT_LAST STANDARD_TEXT_SERVICE_NOT_AVAILABLE - -OUString VCL_DLLPUBLIC GetStandardText(sal_uInt16 nStdText); - -// ------------------------------------- -// - Hilfsmethoden fuer Standard-Texte - -// ------------------------------------- - -void VCL_DLLPUBLIC ShowServiceNotAvailableError(Window* pParent, const OUString& rServiceName, bool bError); - -#endif // _VCL_STDTEXT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/strhelper.hxx b/vcl/inc/vcl/strhelper.hxx deleted file mode 100644 index 0d0949a3515f..000000000000 --- a/vcl/inc/vcl/strhelper.hxx +++ /dev/null @@ -1,74 +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 . - */ -#ifndef _PSPRINT_STRHELPER_HXX_ -#define _PSPRINT_STRHELPER_HXX_ - -#include "vcl/dllapi.h" - -#include <tools/string.hxx> -#include <rtl/math.hxx> - -#include <cstring> - -namespace psp -{ - VCL_DLLPUBLIC String GetCommandLineToken( int, const String& ); - VCL_DLLPUBLIC OString GetCommandLineToken(int, const OString&); - // gets one token of a unix command line style string - // doublequote, singlequote and singleleftquote protect their respective - // contents - - VCL_DLLPUBLIC int GetCommandLineTokenCount(const OUString&); - // returns number of tokens (zero if empty or whitespace only) - - VCL_DLLPUBLIC String WhitespaceToSpace( const String&, sal_Bool bProtect = sal_True ); - VCL_DLLPUBLIC OString WhitespaceToSpace(const OString&, sal_Bool bProtect = sal_True); - // returns a string with multiple adjacent occurrences of whitespace - // converted to a single space. if bProtect is sal_True (nonzero), then - // doublequote, singlequote and singleleftquote protect their respective - // contents - - - // parses the first double in the string; decimal is '.' only - VCL_DLLPUBLIC inline double StringToDouble( const String& rStr ) - { - return rtl::math::stringToDouble(rStr, sal_Unicode('.'), sal_Unicode(0)); - } - - VCL_DLLPUBLIC inline double StringToDouble(const OString& rStr) - { - return rtl::math::stringToDouble(rStr, '.', static_cast<sal_Char>(0)); - } - - // fills a character buffer with the string representation of a double - // the buffer has to be long enough (e.g. 128 bytes) - // returns the string len - VCL_DLLPUBLIC inline int getValueOfDouble( char* pBuffer, double f, int nPrecision = 0) - { - OString aStr( rtl::math::doubleToString( f, rtl_math_StringFormat_G, nPrecision, '.', true ) ); - int nLen = aStr.getLength(); - std::strncpy( pBuffer, aStr.getStr(), nLen+1 ); // copy string including terminating zero - return nLen; - } - -} // namespace - -#endif // _PSPRINT_STRHELPER_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx deleted file mode 100644 index b4acc579ad94..000000000000 --- a/vcl/inc/vcl/svapp.hxx +++ /dev/null @@ -1,538 +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 . - */ - -#ifndef _SV_SVAPP_HXX -#define _SV_SVAPP_HXX - -#include <config_features.h> - -#include <sal/config.h> - -#include <stdexcept> - -#include <osl/thread.hxx> -#include <osl/mutex.hxx> -#include <tools/string.hxx> -#include <tools/link.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/apptypes.hxx> -#include <vcl/settings.hxx> -#include <vcl/vclevent.hxx> - -class BitmapEx; -class Link; -class AllSettings; -class DataChangedEvent; -class Accelerator; -class Help; -class OutputDevice; -class Window; -class WorkWindow; -class MenuBar; -class UnoWrapperBase; -class Reflection; -class KeyCode; -class NotifyEvent; -class KeyEvent; -class MouseEvent; -class ZoomEvent; -class ScrollEvent; - -#include <com/sun/star/uno/Reference.h> -#include <com/sun/star/connection/XConnection.hpp> - -namespace com { -namespace sun { -namespace star { -namespace uno { - class XComponentContext; -} -namespace ui { - namespace dialogs { - class XFilePicker2; - class XFolderPicker2; - } -} -namespace awt { - class XToolkit; - class XDisplayConnection; -} -} } } - -// helper needed by SalLayout implementations as well as svx/source/dialog/svxbmpnumbalueset.cxx -VCL_DLLPUBLIC sal_UCS4 GetMirroredChar( sal_UCS4 ); -VCL_DLLPUBLIC sal_UCS4 GetLocalizedChar( sal_UCS4, LanguageType ); - -#define SYSTEMWINDOW_MODE_NOAUTOMODE ((sal_uInt16)0x0001) -#define SYSTEMWINDOW_MODE_DIALOG ((sal_uInt16)0x0002) - -typedef long (*VCLEventHookProc)( NotifyEvent& rEvt, void* pData ); - -// ATTENTION: ENUM duplicate in daemon.cxx under Unix! - -#ifdef UNX -enum Service { SERVICE_OLE, SERVICE_APPEVENT, SERVICE_IPC }; -#endif - -class VCL_DLLPUBLIC ApplicationEvent -{ -public: - enum Type { - TYPE_ACCEPT, TYPE_APPEAR, TYPE_HELP, TYPE_VERSION, TYPE_OPEN, - TYPE_OPENHELPURL, TYPE_PRINT, TYPE_PRIVATE_DOSHUTDOWN, TYPE_QUICKSTART, - TYPE_SHOWDIALOG, TYPE_UNACCEPT - }; - - ApplicationEvent() {} - - explicit ApplicationEvent( - Type rEvent, const OUString& rData = OUString()): - aEvent(rEvent), - aData(rData) - {} - - Type GetEvent() const { return aEvent; } - const OUString& GetData() const { return aData; } - -private: - Type aEvent; - OUString aData; -}; - - -class VCL_DLLPUBLIC Application -{ -public: - enum DialogCancelMode { - DIALOG_CANCEL_OFF, ///< do not automatically cancel dialogs - DIALOG_CANCEL_SILENT, ///< silently cancel any dialogs - DIALOG_CANCEL_FATAL - ///< cancel any dialogs by throwing a DialogCancelledException - }; - - class VCL_DLLPUBLIC DialogCancelledException: - virtual public std::runtime_error - { - public: - explicit DialogCancelledException(char const * what_arg): - runtime_error(what_arg) {} - - virtual ~DialogCancelledException() throw (); - }; - - Application(); - virtual ~Application(); - - virtual int Main() = 0; - - virtual sal_Bool QueryExit(); - - virtual void UserEvent( sal_uLong nEvent, void* pEventData ); - - virtual void FocusChanged(); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void Init(); - virtual void InitFinished(); - virtual void DeInit(); - - static sal_uInt16 GetCommandLineParamCount(); - static XubString GetCommandLineParam( sal_uInt16 nParam ); - static const XubString& GetAppFileName(); - - virtual sal_uInt16 Exception( sal_uInt16 nError ); - static void Abort( const XubString& rErrorText ); - - static void Execute(); - static void Quit(); - static void Reschedule( bool bAllEvents = false ); - static void Yield( bool bAllEvents = false ); - static void EndYield(); - static osl::SolarMutex& GetSolarMutex(); - static oslThreadIdentifier GetMainThreadIdentifier(); - static sal_uLong ReleaseSolarMutex(); - static void AcquireSolarMutex( sal_uLong nCount ); - static void EnableNoYieldMode( bool i_bNoYield ); - static void AddPostYieldListener( const Link& i_rListener ); - static void RemovePostYieldListener( const Link& i_rListener ); - - static sal_Bool IsInMain(); - static sal_Bool IsInExecute(); - static sal_Bool IsInModalMode(); - - static sal_uInt16 GetDispatchLevel(); - static bool AnyInput( sal_uInt16 nType = VCL_INPUT_ANY ); - static sal_uLong GetLastInputInterval(); - static sal_Bool IsUICaptured(); - - virtual void SystemSettingsChanging( AllSettings& rSettings, - Window* pFrame ); - static void MergeSystemSettings( AllSettings& rSettings ); - /** validate that the currently selected system UI font is suitable - to display the application's UI. - - A localized test string will be checked if it can be displayed - in the currently selected system UI font. If no glyphs are - missing it can be assumed that the font is proper for display - of the application's UI. - - @returns - <TRUE/> if the system font is suitable for our UI - <FALSE/> if the test string could not be displayed with the system font - */ - static bool ValidateSystemFont(); - - static void SetSettings( const AllSettings& rSettings ); - static const AllSettings& GetSettings(); - static void NotifyAllWindows( DataChangedEvent& rDCEvt ); - - static void AddEventListener( const Link& rEventListener ); - static void RemoveEventListener( const Link& rEventListener ); - static void AddKeyListener( const Link& rKeyListener ); - static void RemoveKeyListener( const Link& rKeyListener ); - static void ImplCallEventListeners( sal_uLong nEvent, Window* pWin, void* pData ); - static void ImplCallEventListeners( VclSimpleEvent* pEvent ); - static sal_Bool HandleKey( sal_uLong nEvent, Window *pWin, KeyEvent* pKeyEvent ); - - static sal_uLong PostKeyEvent( sal_uLong nEvent, Window *pWin, KeyEvent* pKeyEvent ); - static sal_uLong PostMouseEvent( sal_uLong nEvent, Window *pWin, MouseEvent* pMouseEvent ); -#if !HAVE_FEATURE_DESKTOP - static sal_uLong PostZoomEvent( sal_uLong nEvent, Window *pWin, ZoomEvent* pZoomEvent ); - static sal_uLong PostScrollEvent( sal_uLong nEvent, Window *pWin, ScrollEvent* pScrollEvent ); -#endif - static void RemoveMouseAndKeyEvents( Window *pWin ); - - static sal_uLong PostUserEvent( const Link& rLink, void* pCaller = NULL ); - static sal_Bool PostUserEvent( sal_uLong& rEventId, const Link& rLink, void* pCaller = NULL ); - static void RemoveUserEvent( sal_uLong nUserEvent ); - - static sal_Bool InsertIdleHdl( const Link& rLink, sal_uInt16 nPriority ); - static void RemoveIdleHdl( const Link& rLink ); - - virtual void AppEvent( const ApplicationEvent& rAppEvent ); - -#ifndef NO_GETAPPWINDOW - static WorkWindow* GetAppWindow(); -#endif - - static Window* GetFocusWindow(); - static OutputDevice* GetDefaultDevice(); - - static Window* GetFirstTopLevelWindow(); - static Window* GetNextTopLevelWindow( Window* pWindow ); - - static long GetTopWindowCount(); - static Window* GetTopWindow( long nIndex ); - static Window* GetActiveTopWindow(); - - static void SetAppName( const String& rUniqueName ); - static String GetAppName(); - static bool LoadBrandBitmap (const char* pName, BitmapEx &rBitmap); - - // default name of the application for message dialogs and printing - static void SetDisplayName( const OUString& rDisplayName ); - static OUString GetDisplayName(); - - - static unsigned int GetScreenCount(); - static Rectangle GetScreenPosSizePixel( unsigned int nScreen ); - - // IsUnifiedDisplay returns: - // true: screens form up one large display area - // windows can be moved between single screens - // (e.g. Xserver with Xinerama, Windows) - // false: different screens are separate and windows cannot be moved - // between them (e.g. Xserver with multiple screens) - 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& ); - 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. - static unsigned int GetDisplayBuiltInScreen(); - // Practically, this means - Get the screen we should run a presentation on. - static unsigned int GetDisplayExternalScreen(); - - static const LocaleDataWrapper& GetAppLocaleDataWrapper(); - - static sal_Bool InsertAccel( Accelerator* pAccel ); - static void RemoveAccel( Accelerator* pAccel ); - - static long CallEventHooks( NotifyEvent& rEvt ); - - static void SetHelp( Help* pHelp = NULL ); - static Help* GetHelp(); - - static void EnableAutoHelpId( sal_Bool bEnabled = sal_True ); - static sal_Bool IsAutoHelpIdEnabled(); - - static void EnableAutoMnemonic( sal_Bool bEnabled = sal_True ); - static sal_Bool IsAutoMnemonicEnabled(); - - static sal_uLong GetReservedKeyCodeCount(); - static const KeyCode* GetReservedKeyCode( sal_uLong i ); - - static void SetDefDialogParent( Window* pWindow ); - static Window* GetDefDialogParent(); - - static DialogCancelMode GetDialogCancelMode(); - static void SetDialogCancelMode( DialogCancelMode mode ); - static sal_Bool IsDialogCancelEnabled(); - - static void SetSystemWindowMode( sal_uInt16 nMode ); - static sal_uInt16 GetSystemWindowMode(); - - static void SetDialogScaleX( short nScale ); - - static ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDisplayConnection > GetDisplayConnection(); - - // The global service manager has to be created before! - static ::com::sun::star::uno::Reference< ::com::sun::star::awt::XToolkit > GetVCLToolkit(); - static UnoWrapperBase* GetUnoWrapper( sal_Bool bCreateIfNotExists = sal_True ); - static void SetUnoWrapper( UnoWrapperBase* pWrapper ); - - static void SetFilterHdl( const Link& rLink ); - static const Link& GetFilterHdl(); - - static void EnableHeadlessMode( bool dialogsAreFatal ); - static sal_Bool IsHeadlessModeEnabled(); - static bool IsHeadlessModeRequested(); - ///< check command line arguments for --headless - - static void ShowNativeErrorBox(const String& sTitle , - const String& sMessage); - - // IME Status Window Control: - - /** Return true if any IME status window can be toggled on and off - externally. - - Must only be called with the Solar mutex locked. - */ - static bool CanToggleImeStatusWindow(); - - /** Toggle any IME status window on and off. - - This only works if CanToggleImeStatusWinodw returns true (otherwise, - any calls of this method are ignored). - - Must only be called with the Solar mutex locked. - */ - static void ShowImeStatusWindow(bool bShow); - - /** Return true if any IME status window should be turned on by default - (this decision can be locale dependent, for example). - - Can be called without the Solar mutex locked. - */ - static bool GetShowImeStatusWindowDefault(); - - /** Returns a string representing the desktop environment - the process is currently running in. - */ - static const OUString& GetDesktopEnvironment(); - - /** Add a file to the system shells recent document list if there is any. - This function may have no effect under Unix because there is no - standard API among the different desktop managers. - - @param rFileUrl - The file url of the document. - - @param rMimeType - The mime content type of the document specified by aFileUrl. - If an empty string will be provided "application/octet-stream" - will be used. - */ - static void AddToRecentDocumentList(const OUString& rFileUrl, const OUString& rMimeType); - - /** Do we have a native / system file selector available ? - */ - static bool hasNativeFileSelection(); - - /** Create a platform specific file picker, if one is available, - otherwise return an empty reference - */ - static com::sun::star::uno::Reference< com::sun::star::ui::dialogs::XFilePicker2 > - createFilePicker( const com::sun::star::uno::Reference< - com::sun::star::uno::XComponentContext >& rServiceManager ); - - /** Create a platform specific folder picker, if one is available, - otherwise return an empty reference - */ - static com::sun::star::uno::Reference< com::sun::star::ui::dialogs::XFolderPicker2 > - createFolderPicker( const com::sun::star::uno::Reference< - com::sun::star::uno::XComponentContext >& rServiceManager ); - -private: - - DECL_STATIC_LINK( Application, PostEventHandler, void* ); -}; - - -class VCL_DLLPUBLIC SolarMutexGuard -{ - private: - SolarMutexGuard( const SolarMutexGuard& ); - const SolarMutexGuard& operator = ( const SolarMutexGuard& ); - ::osl::SolarMutex& m_solarMutex; - - public: - - /** Acquires the object specified as parameter. - */ - SolarMutexGuard() : - m_solarMutex(Application::GetSolarMutex()) - { - m_solarMutex.acquire(); - } - - /** Releases the mutex or interface. */ - ~SolarMutexGuard() - { - m_solarMutex.release(); - } -}; - -class VCL_DLLPUBLIC SolarMutexClearableGuard -{ - SolarMutexClearableGuard( const SolarMutexClearableGuard& ); - const SolarMutexClearableGuard& operator = ( const SolarMutexClearableGuard& ); - bool m_bCleared; -public: - /** Acquires mutex - @param pMutex pointer to mutex which is to be acquired */ - SolarMutexClearableGuard() - : m_bCleared(false) - , m_solarMutex( Application::GetSolarMutex() ) - { - m_solarMutex.acquire(); - } - - /** Releases mutex. */ - virtual ~SolarMutexClearableGuard() - { - if( !m_bCleared ) - { - m_solarMutex.release(); - } - } - - /** Releases mutex. */ - void SAL_CALL clear() - { - if( !m_bCleared ) - { - m_solarMutex.release(); - m_bCleared = true; - } - } -protected: - osl::SolarMutex& m_solarMutex; -}; - -class VCL_DLLPUBLIC SolarMutexResettableGuard -{ - SolarMutexResettableGuard( const SolarMutexResettableGuard& ); - const SolarMutexResettableGuard& operator = ( const SolarMutexResettableGuard& ); - bool m_bCleared; -public: - /** Acquires mutex - @param pMutex pointer to mutex which is to be acquired */ - SolarMutexResettableGuard() - : m_bCleared(false) - , m_solarMutex( Application::GetSolarMutex() ) - { - m_solarMutex.acquire(); - } - - /** Releases mutex. */ - virtual ~SolarMutexResettableGuard() - { - if( !m_bCleared ) - { - m_solarMutex.release(); - } - } - - /** Releases mutex. */ - void SAL_CALL clear() - { - if( !m_bCleared) - { - m_solarMutex.release(); - m_bCleared = true; - } - } - /** Releases mutex. */ - void SAL_CALL reset() - { - if( m_bCleared) - { - m_solarMutex.acquire(); - m_bCleared = false; - } - } -protected: - osl::SolarMutex& m_solarMutex; -}; - - -/** - A helper class that calls Application::ReleaseSolarMutex() in its constructor - and restores the mutex in its destructor. -*/ -class SolarMutexReleaser -{ - sal_uLong mnReleased; - -public: - SolarMutexReleaser(): mnReleased(Application::ReleaseSolarMutex()) {} - - ~SolarMutexReleaser() - { - Application::AcquireSolarMutex( mnReleased ); - } -}; - -VCL_DLLPUBLIC Application* GetpApp(); - -VCL_DLLPUBLIC sal_Bool InitVCL(); -VCL_DLLPUBLIC void DeInitVCL(); - -VCL_DLLPUBLIC bool InitAccessBridge( bool bAllowCancel, bool &rCancelled ); - -// only allowed to call, if no thread is running. You must call JoinMainLoopThread to free all memory. -VCL_DLLPUBLIC void CreateMainLoopThread( oslWorkerFunction pWorker, void * pThreadData ); -VCL_DLLPUBLIC void JoinMainLoopThread(); - -inline void Application::EndYield() -{ - PostUserEvent( Link() ); -} - -#endif // _APP_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/svgdata.hxx b/vcl/inc/vcl/svgdata.hxx deleted file mode 100644 index dccb08f8c579..000000000000 --- a/vcl/inc/vcl/svgdata.hxx +++ /dev/null @@ -1,86 +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 . - */ - -#ifndef _SV_SVGDATA_HXX -#define _SV_SVGDATA_HXX - -#include <basegfx/range/b2drange.hxx> -#include <boost/shared_array.hpp> -#include <boost/shared_ptr.hpp> -#include <boost/utility.hpp> -#include <com/sun/star/graphic/XPrimitive2D.hpp> -#include <vcl/bitmapex.hxx> -#include <rtl/ustring.hxx> - -////////////////////////////////////////////////////////////////////////////// - -typedef boost::shared_array< sal_uInt8 > SvgDataArray; -typedef ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XPrimitive2D > Primitive2DReference; -typedef ::com::sun::star::uno::Sequence< Primitive2DReference > Primitive2DSequence; - -////////////////////////////////////////////////////////////////////////////// -// helper to convert any Primitive2DSequence to a good quality BitmapEx, -// using default parameters and graphic::XPrimitive2DRenderer - -BitmapEx VCL_DLLPUBLIC convertPrimitive2DSequenceToBitmapEx( - const Primitive2DSequence& rSequence, - const basegfx::B2DRange& rTargetRange, - const sal_uInt32 nMaximumQuadraticPixels = 500000); - -////////////////////////////////////////////////////////////////////////////// - -class VCL_DLLPUBLIC SvgData : private boost::noncopyable -{ -private: - // the file and length - SvgDataArray maSvgDataArray; - sal_uInt32 mnSvgDataArrayLength; - - // The absolute Path if available - OUString maPath; - - // on demand created content - basegfx::B2DRange maRange; - Primitive2DSequence maSequence; - BitmapEx maReplacement; - - // on demand creators - void ensureReplacement(); - void ensureSequenceAndRange(); - -public: - SvgData(const SvgDataArray& rSvgDataArray, sal_uInt32 nSvgDataArrayLength, const OUString& rPath); - SvgData(const OUString& rPath); - - /// data read - const SvgDataArray& getSvgDataArray() const { return maSvgDataArray; } - sal_uInt32 getSvgDataArrayLength() const { return mnSvgDataArrayLength; } - const OUString& getPath() const { return maPath; } - - /// data read and evtl. on demand creation - const basegfx::B2DRange& getRange() const; - const Primitive2DSequence& getPrimitive2DSequence() const; - const BitmapEx& getReplacement() const; -}; - -typedef boost::shared_ptr< SvgData > SvgDataPtr; - -#endif // _SV_SVGDATA_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/syschild.hxx b/vcl/inc/vcl/syschild.hxx deleted file mode 100644 index 66875e8979b5..000000000000 --- a/vcl/inc/vcl/syschild.hxx +++ /dev/null @@ -1,65 +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 . - */ - -#ifndef _SV_SYSCHILD_HXX -#define _SV_SYSCHILD_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/window.hxx> - -struct SystemEnvData; -struct SystemWindowData; - -// --------------------- -// - SystemChildWindow - -// --------------------- - -class VCL_DLLPUBLIC SystemChildWindow : public Window -{ -private: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInitSysChild( Window* pParent, WinBits nStyle, SystemWindowData *pData, sal_Bool bShow = sal_False ); - SAL_DLLPRIVATE void ImplTestJavaException( void* pEnv ); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE SystemChildWindow (const SystemChildWindow &); - SAL_DLLPRIVATE SystemChildWindow & operator= (const SystemChildWindow &); - -public: - SystemChildWindow( Window* pParent, WinBits nStyle = 0 ); - // create a SystemChildWindow using the given SystemWindowData - SystemChildWindow( Window* pParent, WinBits nStyle, SystemWindowData *pData, sal_Bool bShow = sal_True ); - ~SystemChildWindow(); - - const SystemEnvData* GetSystemData() const; - - // per default systemchildwindows erase their background for better plugin support - // however, this might not always be required - void EnableEraseBackground( sal_Bool bEnable = sal_True ); - void SetForwardKey( sal_Bool bEnable ); - // return the platform specific handle/id of this window; - // in case the flag bUseJava is set, a java compatible overlay window - // is created on which other java windows can be created (plugin interface) - sal_IntPtr GetParentWindowHandle( sal_Bool bUseJava = sal_False ); -}; - -#endif // _SV_SYSCHILD_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/sysdata.hxx b/vcl/inc/vcl/sysdata.hxx deleted file mode 100644 index d06e72aee22f..000000000000 --- a/vcl/inc/vcl/sysdata.hxx +++ /dev/null @@ -1,272 +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 . - */ - -#ifndef _SV_SYSDATA_HXX -#define _SV_SYSDATA_HXX - -#include <vector> -#include <cstddef> - -#ifdef MACOSX -// predeclare the native classes to avoid header/include problems -typedef struct CGContext *CGContextRef; -typedef struct CGLayer *CGLayerRef; -#ifdef ENABLE_CORETEXT -typedef const struct __CTFont * CTFontRef; -#endif -#ifdef __OBJC__ -@class NSView; -#else -class NSView; -#endif -#endif - -#ifdef IOS -typedef const struct __CTFont * CTFontRef; -typedef struct CGContext *CGContextRef; -#endif - -#if defined( WNT ) -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable:4201) -#endif -#include <windef.h> -#ifdef _MSC_VER -#pragma warning(pop) -#endif -#endif - -// ----------------- -// - SystemEnvData - -// ----------------- - -struct SystemEnvData -{ - unsigned long nSize; // size in bytes of this structure -#if defined( WNT ) - HWND hWnd; // the window hwnd -#elif defined( MACOSX ) - NSView* pView; // the cocoa (NSView *) implementing this object -#elif defined( ANDROID ) - // Nothing -#elif defined( IOS ) - // Nothing -#elif defined( UNX ) - void* pDisplay; // the relevant display connection - long aWindow; // the window of the object - void* pSalFrame; // contains a salframe, if object has one - void* pWidget; // the corresponding widget - void* pVisual; // the visual in use - int nScreen; // the current screen of the window - int nDepth; // depth of said visual - long aColormap; // the colormap being used - void* pAppContext; // the application context in use - long aShellWindow; // the window of the frame's shell - void* pShellWidget; // the frame's shell widget -#endif -}; - -#define SystemChildData SystemEnvData - -// -------------------- -// - SystemParentData - -// -------------------- - -struct SystemParentData -{ - unsigned long nSize; // size in bytes of this structure -#if defined( WNT ) - HWND hWnd; // the window hwnd -#elif defined( MACOSX ) - NSView* pView; // the cocoa (NSView *) implementing this object -#elif defined( ANDROID ) - // Nothing -#elif defined( IOS ) - // Nothing -#elif defined( UNX ) - long aWindow; // the window of the object - bool bXEmbedSupport:1; // decides whether the object in question - // should support the XEmbed protocol -#endif -}; - -// -------------------- -// - SystemMenuData - -// -------------------- - -struct SystemMenuData -{ - unsigned long nSize; // size in bytes of this structure -#if defined( WNT ) - HMENU hMenu; // the menu handle of the menu bar -#elif defined( MACOSX ) - // Nothing -#elif defined( ANDROID ) - // Nothing -#elif defined( IOS ) - // Nothing -#elif defined( UNX ) - long aMenu; // ??? -#endif -}; - -// -------------------- -// - SystemGraphicsData - -// -------------------- - -struct SystemGraphicsData -{ - unsigned long nSize; // size in bytes of this structure -#if defined( WNT ) - HDC hDC; // handle to a device context -#elif defined( MACOSX ) - CGContextRef rCGContext; // CoreGraphics graphic context -#elif defined( ANDROID ) - // Nothing -#elif defined( IOS ) - // Nothing -#elif defined( UNX ) - void* pDisplay; // the relevant display connection - long hDrawable; // a drawable - void* pVisual; // the visual in use - int nScreen; // the current screen of the drawable - int nDepth; // depth of said visual - long aColormap; // the colormap being used - void* pXRenderFormat; // render format for drawable -#endif - SystemGraphicsData() - : nSize( sizeof( SystemGraphicsData ) ) -#if defined( WNT ) - , hDC( 0 ) -#elif defined( MACOSX ) - // Nothing -#elif defined( ANDROID ) - // Nothing -#elif defined( IOS ) - // Nothing -#elif defined( UNX ) - , pDisplay( NULL ) - , hDrawable( 0 ) - , pVisual( NULL ) - , nScreen( 0 ) - , nDepth( 0 ) - , aColormap( 0 ) - , pXRenderFormat( NULL ) -#endif - { } -}; - - -// -------------------- -// - SystemWindowData - -// -------------------- - -struct SystemWindowData -{ - unsigned long nSize; // size in bytes of this structure -#if defined( WNT ) // meaningless on Windows -#elif defined( MACOSX ) // meaningless on Mac OS X - // Nothing -#elif defined( ANDROID ) - // Nothing -#elif defined( IOS ) - // Nothing -#elif defined( UNX ) - void* pVisual; // the visual to be used -#endif -}; - - -// -------------------- -// - SystemGlyphData - -// -------------------- - -struct SystemGlyphData -{ - unsigned long index; - double x; - double y; - int fallbacklevel; -}; - - -// -------------------- -// - SystemFontData - -// -------------------- -struct SystemFontData -{ - unsigned long nSize; // size in bytes of this structure -#if defined( WNT ) - HFONT hFont; // native font object -#elif defined( MACOSX ) -#ifdef ENABLE_CORETEXT - CTFontRef rCTFont; // native font object -#else - void* aATSUFontID; // native font object -#endif -#elif defined( IOS ) - CTFontRef rCTFont; // native font object -#elif defined( UNX ) - void* nFontId; // native font id - int nFontFlags; // native font flags -#endif - bool bFakeBold; // Does this font need faking the bold style - bool bFakeItalic; // Does this font need faking the italic style - bool bAntialias; // Should this font be antialiased - bool bVerticalCharacterType; // Is the font using vertical character type - - SystemFontData() - : nSize( sizeof( SystemFontData ) ) -#if defined( WNT ) - , hFont( 0 ) -#elif defined( MACOSX ) -#ifdef ENABLE_CORETEXT -#else - , aATSUFontID( NULL ) -#endif -#elif defined( IOS ) -#elif defined( UNX ) - , nFontId( NULL ) - , nFontFlags( 0 ) -#endif - , bFakeBold( false ) - , bFakeItalic( false ) - , bAntialias( true ) - , bVerticalCharacterType( false ) - { - } -}; - -// -------------------- -// - SystemTextLayoutData - -// -------------------- - -typedef std::vector<SystemGlyphData> SystemGlyphDataVector; - -struct SystemTextLayoutData -{ - unsigned long nSize; // size in bytes of this structure - SystemGlyphDataVector rGlyphData; // glyph data - int orientation; // Text orientation -}; - -#endif // _SV_SYSDATA_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/syswin.hxx b/vcl/inc/vcl/syswin.hxx deleted file mode 100644 index 07661431a94a..000000000000 --- a/vcl/inc/vcl/syswin.hxx +++ /dev/null @@ -1,270 +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 . - */ - -#ifndef _SV_SYSWIN_HXX -#define _SV_SYSWIN_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/window.hxx> - -class ModalDialog; -class MenuBar; -class TaskPaneList; - -// -------------- -// - Icon-Types - -// -------------- - -#define ICON_LO_DEFAULT 1 -#define ICON_TEXT_DOCUMENT 2 -#define ICON_TEXT_TEMPLATE 3 -#define ICON_SPREADSHEET_DOCUMENT 4 -#define ICON_SPREADSHEET_TEMPLATE 5 -#define ICON_DRAWING_DOCUMENT 6 -#define ICON_DRAWING_TEMPLATE 7 -#define ICON_PRESENTATION_DOCUMENT 8 -#define ICON_PRESENTATION_TEMPLATE 9 -#define ICON_MASTER_DOCUMENT 10 -#define ICON_TEMPLATE 11 -#define ICON_DATABASE_DOCUMENT 12 -#define ICON_MATH_DOCUMENT 13 -#define ICON_MACROLIBRARY 1 -#define ICON_SETUP 500 - -// ------------------- -// - WindowStateData - -// ------------------- - -#define WINDOWSTATE_MASK_X ((sal_uLong)0x00000001) -#define WINDOWSTATE_MASK_Y ((sal_uLong)0x00000002) -#define WINDOWSTATE_MASK_WIDTH ((sal_uLong)0x00000004) -#define WINDOWSTATE_MASK_HEIGHT ((sal_uLong)0x00000008) -#define WINDOWSTATE_MASK_STATE ((sal_uLong)0x00000010) -#define WINDOWSTATE_MASK_MINIMIZED ((sal_uLong)0x00000020) -#define WINDOWSTATE_MASK_MAXIMIZED_X ((sal_uLong)0x00000100) -#define WINDOWSTATE_MASK_MAXIMIZED_Y ((sal_uLong)0x00000200) -#define WINDOWSTATE_MASK_MAXIMIZED_WIDTH ((sal_uLong)0x00000400) -#define WINDOWSTATE_MASK_MAXIMIZED_HEIGHT ((sal_uLong)0x00000800) -#define WINDOWSTATE_MASK_POS (WINDOWSTATE_MASK_X | WINDOWSTATE_MASK_Y) -#define WINDOWSTATE_MASK_ALL (WINDOWSTATE_MASK_X | WINDOWSTATE_MASK_Y | WINDOWSTATE_MASK_WIDTH | WINDOWSTATE_MASK_HEIGHT | WINDOWSTATE_MASK_MAXIMIZED_X | WINDOWSTATE_MASK_MAXIMIZED_Y | WINDOWSTATE_MASK_MAXIMIZED_WIDTH | WINDOWSTATE_MASK_MAXIMIZED_HEIGHT | WINDOWSTATE_MASK_STATE | WINDOWSTATE_MASK_MINIMIZED) - -#define WINDOWSTATE_STATE_NORMAL ((sal_uLong)0x00000001) -#define WINDOWSTATE_STATE_MINIMIZED ((sal_uLong)0x00000002) -#define WINDOWSTATE_STATE_MAXIMIZED ((sal_uLong)0x00000004) -#define WINDOWSTATE_STATE_ROLLUP ((sal_uLong)0x00000008) -#define WINDOWSTATE_STATE_MAXIMIZED_HORZ ((sal_uLong)0x00000010) -#define WINDOWSTATE_STATE_MAXIMIZED_VERT ((sal_uLong)0x00000020) -#define WINDOWSTATE_STATE_SYSTEMMASK ((sal_uLong)0x0000FFFF) - -class VCL_PLUGIN_PUBLIC WindowStateData -{ -private: - sal_uInt32 mnValidMask; - int mnX; - int mnY; - unsigned int mnWidth; - unsigned int mnHeight; - int mnMaximizedX; - int mnMaximizedY; - unsigned int mnMaximizedWidth; - unsigned int mnMaximizedHeight; - sal_uInt32 mnState; - -public: - WindowStateData() - { - mnValidMask = mnX = mnY = mnWidth = mnHeight = mnState = 0; - mnMaximizedX = mnMaximizedY = mnMaximizedWidth = mnMaximizedHeight = 0; - } - - void SetMask( sal_uLong nValidMask ) { mnValidMask = nValidMask; } - sal_uInt32 GetMask() const { return mnValidMask; } - - void SetX( int nX ) { mnX = nX; } - int GetX() const { return mnX; } - void SetY( int nY ) { mnY = nY; } - int GetY() const { return mnY; } - void SetWidth( unsigned int nWidth ) { mnWidth = nWidth; } - unsigned int GetWidth() const { return mnWidth; } - void SetHeight( unsigned int nHeight ) { mnHeight = nHeight; } - unsigned int GetHeight() const { return mnHeight; } - void SetState( sal_uInt32 nState ) { mnState = nState; } - sal_uInt32 GetState() const { return mnState; } - void SetMaximizedX( int nRX ) { mnMaximizedX = nRX; } - int GetMaximizedX() const { return mnMaximizedX; } - void SetMaximizedY( int nRY ) { mnMaximizedY = nRY; } - int GetMaximizedY() const { return mnMaximizedY; } - void SetMaximizedWidth( unsigned int nRWidth ) { mnMaximizedWidth = nRWidth; } - unsigned int GetMaximizedWidth() const { return mnMaximizedWidth; } - void SetMaximizedHeight( unsigned int nRHeight ) { mnMaximizedHeight = nRHeight; } - unsigned int GetMaximizedHeight() const { return mnMaximizedHeight; } -}; - -// ---------------------- -// - SystemWindow-Types - -// ---------------------- - -#define MENUBAR_MODE_NORMAL ((sal_uInt16)0) -#define MENUBAR_MODE_HIDE ((sal_uInt16)1) - -#define TITLE_BUTTON_DOCKING ((sal_uInt16)1) -#define TITLE_BUTTON_HIDE ((sal_uInt16)2) -#define TITLE_BUTTON_MENU ((sal_uInt16)4) - -// ---------------- -// - SystemWindow - -// ---------------- - - -class VCL_DLLPUBLIC SystemWindow : public Window -{ - friend class WorkWindow; - class ImplData; - -private: - MenuBar* mpMenuBar; - Size maOrgSize; - Size maRollUpOutSize; - Size maMinOutSize; - sal_Bool mbPined; - sal_Bool mbRollUp; - sal_Bool mbRollFunc; - sal_Bool mbDockBtn; - sal_Bool mbHideBtn; - sal_Bool mbSysChild; - sal_uInt16 mnMenuBarMode; - sal_uInt16 mnIcon; - ImplData* mpImplData; - -public: - using Window::ImplIsInTaskPaneList; - SAL_DLLPRIVATE sal_Bool ImplIsInTaskPaneList( Window* pWin ); - -private: - // Default construction is forbidden and not implemented. - SystemWindow(); - - // Copy assignment is forbidden and not implemented. - SystemWindow (const SystemWindow &); - SystemWindow & operator= (const SystemWindow &); - - SAL_DLLPRIVATE void ImplMoveToScreen( long& io_rX, long& io_rY, long i_nWidth, long i_nHeight, Window* i_pConfigureWin ); - -protected: - // Single argument ctors shall be explicit. - explicit SystemWindow( WindowType nType ); - - void SetWindowStateData( const WindowStateData& rData ); - -public: - ~SystemWindow(); - virtual long Notify( NotifyEvent& rNEvt ); - virtual long PreNotify( NotifyEvent& rNEvt ); - - virtual sal_Bool Close(); - virtual void TitleButtonClick( sal_uInt16 nButton ); - virtual void Pin(); - virtual void Roll(); - virtual void Resizing( Size& rSize ); - - void SetIcon( sal_uInt16 nIcon ); - sal_uInt16 GetIcon() const { return mnIcon; } - // for systems like MacOSX which can display the URL a document is loaded from - // separately from the window title - void SetRepresentedURL( const OUString& ); - - void EnableSaveBackground( sal_Bool bSave = sal_True ); - sal_Bool IsSaveBackgroundEnabled() const; - - void ShowTitleButton( sal_uInt16 nButton, sal_Bool bVisible = sal_True ); - sal_Bool IsTitleButtonVisible( sal_uInt16 nButton ) const; - - void SetPin( sal_Bool bPin ); - sal_Bool IsPined() const { return mbPined; } - - void RollUp(); - void RollDown(); - sal_Bool IsRollUp() const { return mbRollUp; } - - void SetRollUpOutputSizePixel( const Size& rSize ) { maRollUpOutSize = rSize; } - Size GetRollUpOutputSizePixel() const { return maRollUpOutSize; } - - void SetMinOutputSizePixel( const Size& rSize ); - const Size& GetMinOutputSizePixel() const { return maMinOutSize; } - void SetMaxOutputSizePixel( const Size& rSize ); - const Size& GetMaxOutputSizePixel() const; - Size GetResizeOutputSizePixel() const; - - void SetWindowState(const OString& rStr); - OString GetWindowState(sal_uLong nMask = WINDOWSTATE_MASK_ALL) const; - - void SetMenuBar( MenuBar* pMenuBar ); - MenuBar* GetMenuBar() const { return mpMenuBar; } - void SetMenuBarMode( sal_uInt16 nMode ); - sal_uInt16 GetMenuBarMode() const { return mnMenuBarMode; } - - TaskPaneList* GetTaskPaneList(); - void GetWindowStateData( WindowStateData& rData ) const; - - /** - Returns the screen number the window is on - - The Display Screen number is counted the same way that - <code>Application::GetScreenPosSizePixel</code>, - <code>Application::GetWorkAreaPosSizePixel</code>, - <code>Application::GetDisplayScreenName</code> - and of course <code>SystemWindow::SetScreenNumber</code> - are counted in. - - In case the window is positioned on multiple screens the - screen number returned will be of the screen containing the - upper left pixel of the frame area (that is of the client - area on system decorated windows, or the frame area of - undecorated resp. owner decorated windows. - - @returns the screen number - - @see SystemWindow::SetScreenNumber - */ - unsigned int GetScreenNumber() const; - /** - Move the Window to a new screen. The same rules for - positioning apply as in <code>SystemWindow::GetScreenNumber</code> - - The Display Screen number is counted the same way that - <code>Application::GetScreenPosSizePixel</code>, - <code>Application::GetWorkAreaPosSizePixel</code>, - <code>Application::GetDisplayScreenName</code> - and of course <code>SystemWindow::GetScreenNumber</code> - are counted in. - - @see GetScreenNumber - */ - void SetScreenNumber( unsigned int nNewScreen ); - - void SetApplicationID( const OUString &rApplicationID ); - - void SetCloseHdl(const Link& rLink); - const Link& GetCloseHdl() const; -}; - -#endif // _SV_SYSWIN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/tabctrl.hxx b/vcl/inc/vcl/tabctrl.hxx deleted file mode 100644 index 05b8313b537b..000000000000 --- a/vcl/inc/vcl/tabctrl.hxx +++ /dev/null @@ -1,208 +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 . - */ - -#ifndef _SV_TABCTRL_HXX -#define _SV_TABCTRL_HXX - -#include "tools/solar.h" -#include "vcl/dllapi.h" -#include "vcl/ctrl.hxx" - -struct ImplTabItem; -struct ImplTabCtrlData; -class TabPage; -class PushButton; -class ListBox; - -// -------------------- -// - TabControl-Types - -// -------------------- - -#ifndef TAB_APPEND -#define TAB_APPEND ((sal_uInt16)0xFFFF) -#define TAB_PAGE_NOTFOUND ((sal_uInt16)0xFFFF) -#endif /* !TAB_APPEND */ - -// -------------- -// - TabControl - -// -------------- - -class VCL_DLLPUBLIC TabControl : public Control -{ -private: - ImplTabCtrlData* mpTabCtrlData; - long mnLastWidth; - long mnLastHeight; - long mnBtnSize; - long mnMaxPageWidth; - sal_uInt16 mnActPageId; - sal_uInt16 mnCurPageId; - sal_Bool mbFormat; - sal_Bool mbRestoreHelpId; - sal_Bool mbRestoreUnqId; - sal_Bool mbSmallInvalidate; - bool mbLayoutDirty; - Link maActivateHdl; - Link maDeactivateHdl; - - using Control::ImplInitSettings; - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE ImplTabItem* ImplGetItem( sal_uInt16 nId ) const; - SAL_DLLPRIVATE Size ImplGetItemSize( ImplTabItem* pItem, long nMaxWidth ); - SAL_DLLPRIVATE Rectangle ImplGetTabRect( sal_uInt16 nPos, long nWidth = -1, long nHeight = -1 ); - SAL_DLLPRIVATE void ImplChangeTabPage( sal_uInt16 nId, sal_uInt16 nOldId ); - SAL_DLLPRIVATE sal_Bool ImplPosCurTabPage(); - SAL_DLLPRIVATE void ImplActivateTabPage( sal_Bool bNext ); - SAL_DLLPRIVATE void ImplShowFocus(); - SAL_DLLPRIVATE void ImplDrawItem( ImplTabItem* pItem, const Rectangle& rCurRect, bool bLayout = false, bool bFirstInGroup = false, bool bLastInGroup = false, bool bIsCurrentItem = false ); - SAL_DLLPRIVATE void ImplPaint( const Rectangle& rRect, bool bLayout = false ); - SAL_DLLPRIVATE void ImplFreeLayoutData(); - SAL_DLLPRIVATE long ImplHandleKeyEvent( const KeyEvent& rKeyEvent ); - - DECL_DLLPRIVATE_LINK( ImplListBoxSelectHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplWindowEventListener, VclSimpleEvent* ); - - -protected: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - - virtual void FillLayoutData() const; - virtual const Font& GetCanonicalFont( const StyleSettings& _rStyle ) const; - virtual const Color& GetCanonicalTextColor( const StyleSettings& _rStyle ) const; - SAL_DLLPRIVATE Rectangle* ImplFindPartRect( const Point& rPt ); - -public: - TabControl( Window* pParent, - WinBits nStyle = WB_STDTABCONTROL ); - TabControl( Window* pParent, const ResId& rResId ); - ~TabControl(); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void KeyInput( const KeyEvent& rKEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Resize(); - virtual void GetFocus(); - virtual void LoseFocus(); - virtual void RequestHelp( const HelpEvent& rHEvt ); - virtual void Command( const CommandEvent& rCEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual long PreNotify( NotifyEvent& rNEvt ); - - virtual void ActivatePage(); - virtual long DeactivatePage(); - - virtual Size GetOptimalSize() const; - - void SetTabPageSizePixel( const Size& rSize ); - Size GetTabPageSizePixel() const; - - // pixel offset for the tab items, default is (0,0) - void SetItemsOffset( const Point& rOffs ); - Point GetItemsOffset() const; - - void InsertPage( const ResId& rResId, - sal_uInt16 nPos = TAB_APPEND ); - void InsertPage( sal_uInt16 nPageId, const XubString& rText, - sal_uInt16 nPos = TAB_APPEND ); - void RemovePage( sal_uInt16 nPageId ); - void Clear(); - void EnablePage( sal_uInt16 nPageId, bool bEnable = true ); - - sal_uInt16 GetPagePos( sal_uInt16 nPageId ) const; - sal_uInt16 GetPageCount() const; - sal_uInt16 GetPageId( sal_uInt16 nPos ) const; - sal_uInt16 GetPageId( const Point& rPos ) const; - sal_uInt16 GetPageId( const TabPage& rPage ) const; - sal_uInt16 GetPageId( const OString& rName ) const; - - void SetCurPageId( sal_uInt16 nPageId ); - sal_uInt16 GetCurPageId() const; - - void SelectTabPage( sal_uInt16 nPageId ); - - void SetMaxPageWidth( long nMaxWidth ) { mnMaxPageWidth = nMaxWidth; } - long GetMaxPageWidth() const { return mnMaxPageWidth; } - void ResetMaxPageWidth() { SetMaxPageWidth( 0 ); } - sal_Bool IsMaxPageWidth() const { return mnMaxPageWidth != 0; } - - void SetTabPage( sal_uInt16 nPageId, TabPage* pPage ); - TabPage* GetTabPage( sal_uInt16 nPageId ) const; - - void SetPageText( sal_uInt16 nPageId, const XubString& rText ); - XubString GetPageText( sal_uInt16 nPageId ) const; - - void SetHelpText( sal_uInt16 nPageId, const XubString& rText ); - const XubString& GetHelpText( sal_uInt16 nPageId ) const; - - void SetHelpId( sal_uInt16 nPageId, const OString& rId ) const; - OString GetHelpId( sal_uInt16 nPageId ) const; - - void SetPageName( sal_uInt16 nPageId, const OString& rName ) const; - OString GetPageName( sal_uInt16 nPageId ) const; - - void SetPageImage( sal_uInt16 nPageId, const Image& rImage ); - - void SetHelpText( const XubString& rText ) - { Control::SetHelpText( rText ); } - const XubString& GetHelpText() const - { return Control::GetHelpText(); } - - void SetHelpId( const OString& rId ) - { Control::SetHelpId( rId ); } - const OString& GetHelpId() const - { return Control::GetHelpId(); } - - void SetActivatePageHdl( const Link& rLink ) { maActivateHdl = rLink; } - const Link& GetActivatePageHdl() const { return maActivateHdl; } - void SetDeactivatePageHdl( const Link& rLink ) { maDeactivateHdl = rLink; } - const Link& GetDeactivatePageHdl() const { return maDeactivateHdl; } - - // returns (control relative) bounding rectangle for the - // character at index nIndex relative to the text of page nPageId - using Control::GetCharacterBounds; - Rectangle GetCharacterBounds( sal_uInt16 nPageId, long nIndex ) const; - - // returns the index relative to the text of page nPageId (also returned) - // at position rPoint (control relative) - using Control::GetIndexForPoint; - long GetIndexForPoint( const Point& rPoint, sal_uInt16& rPageId ) const; - - // returns the rectangle of the tab for page nPageId - Rectangle GetTabBounds( sal_uInt16 nPageId ) const; - - virtual void SetPosPixel(const Point& rPos); - virtual void SetSizePixel(const Size& rNewSize); - virtual void SetPosSizePixel(const Point& rNewPos, const Size& rNewSize); - - Size calculateRequisition() const; - void setAllocation(const Size &rAllocation); - - void markLayoutDirty() - { - mbLayoutDirty = true; - } -}; - -#endif // _SV_TABCTRL_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/tabdlg.hxx b/vcl/inc/vcl/tabdlg.hxx deleted file mode 100644 index 7555f3f01701..000000000000 --- a/vcl/inc/vcl/tabdlg.hxx +++ /dev/null @@ -1,64 +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 . - */ - -#ifndef _SV_TABDLG_HXX -#define _SV_TABDLG_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/dialog.hxx> - -class FixedLine; -class TabControl; - -// ---------------------- -// - TabDialog - -// ---------------------- - -class VCL_DLLPUBLIC TabDialog : public Dialog -{ -private: - FixedLine* mpFixedLine; - Window* mpViewWindow; - WindowAlign meViewAlign; - sal_Bool mbPosControls; - - SAL_DLLPRIVATE void ImplInitTabDialogData(); - SAL_DLLPRIVATE void ImplPosControls(); - -public: - TabDialog( Window* pParent, - WinBits nStyle = WB_STDTABDIALOG ); - TabDialog( Window* pParent, const ResId& rResId ); - TabDialog( Window* pParent, const OString& rID, const OUString& rUIXMLDescription ); - ~TabDialog(); - - virtual void StateChanged( StateChangedType nStateChange ); - - void AdjustLayout(); - - void SetViewWindow( Window* pWindow ) { mpViewWindow = pWindow; } - Window* GetViewWindow() const { return mpViewWindow; } - void SetViewAlign( WindowAlign eAlign ) { meViewAlign = eAlign; } - WindowAlign GetViewAlign() const { return meViewAlign; } -}; - -#endif // _SV_TABDLG_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/tabpage.hxx b/vcl/inc/vcl/tabpage.hxx deleted file mode 100644 index 3414ec76e834..000000000000 --- a/vcl/inc/vcl/tabpage.hxx +++ /dev/null @@ -1,65 +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 . - */ - -#ifndef _SV_TABPAGE_HXX -#define _SV_TABPAGE_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/builder.hxx> -#include <vcl/window.hxx> - -// ----------- -// - TabPage - -// ----------- - -class VCL_DLLPUBLIC TabPage - : public Window - , public VclBuilderContainer -{ -private: - using Window::ImplInit; - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - SAL_DLLPRIVATE void ImplInitSettings(); - -public: - TabPage( Window* pParent, WinBits nStyle = 0 ); - TabPage(Window *pParent, const OString& rID, const OUString& rUIXMLDescription); - - TabPage( Window* pParent, const ResId& rResId ); - - virtual void Paint( const Rectangle& rRect ); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - - virtual void StateChanged( StateChangedType nStateChange ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void ActivatePage(); - virtual void DeactivatePage(); - - //To-Do, consider inheriting from VclContainer - virtual void SetPosSizePixel(const Point& rNewPos, const Size& rNewSize); - virtual void SetPosPixel(const Point& rNewPos); - virtual void SetSizePixel(const Size& rNewSize); - virtual Size GetOptimalSize() const; -}; - -#endif // _SV_TABPAGE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/taskpanelist.hxx b/vcl/inc/vcl/taskpanelist.hxx deleted file mode 100644 index 9a9621b77e88..000000000000 --- a/vcl/inc/vcl/taskpanelist.hxx +++ /dev/null @@ -1,48 +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 . - */ - -#ifndef _SV_TASKPANELIST_HXX -#define _SV_TASKPANELIST_HXX - -#include <vcl/dllapi.h> - -#include <vector> -#include <vcl/window.hxx> - -class VCL_DLLPUBLIC TaskPaneList -{ - ::std::vector<Window *> mTaskPanes; - Window *FindNextFloat( Window *pWindow, sal_Bool bForward = sal_True ); - Window *FindNextSplitter( Window *pWindow, sal_Bool bForward = sal_True ); - -public: - sal_Bool IsInList( Window *pWindow ); - -public: - TaskPaneList(); - ~TaskPaneList(); - - void AddWindow( Window *pWindow ); - void RemoveWindow( Window *pWindow ); - sal_Bool HandleKeyEvent( KeyEvent aKeyEvent ); -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/textdata.hxx b/vcl/inc/vcl/textdata.hxx deleted file mode 100644 index 476ba00279df..000000000000 --- a/vcl/inc/vcl/textdata.hxx +++ /dev/null @@ -1,172 +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 . - */ - -#ifndef _TEXTDATA_HXX -#define _TEXTDATA_HXX - -#include <vcl/dllapi.h> -#include <svl/brdcst.hxx> -#include <svl/smplhint.hxx> -#include <tools/string.hxx> - -// for Notify, if all paragraphs were deleted -#define TEXT_PARA_ALL 0xFFFFFFFF - -class TextPaM -{ -private: - sal_uLong mnPara; - sal_uInt16 mnIndex; - -public: - TextPaM() { mnPara = 0, mnIndex = 0; } - TextPaM( sal_uLong nPara, sal_uInt16 nIndex ) { mnPara = nPara, mnIndex = nIndex; } - - sal_uLong GetPara() const { return mnPara; } - sal_uLong& GetPara() { return mnPara; } - - sal_uInt16 GetIndex() const { return mnIndex; } - sal_uInt16& GetIndex() { return mnIndex; } - - inline sal_Bool operator == ( const TextPaM& rPaM ) const; - inline sal_Bool operator != ( const TextPaM& rPaM ) const; - inline sal_Bool operator < ( const TextPaM& rPaM ) const; - inline sal_Bool operator > ( const TextPaM& rPaM ) const; -}; - -inline sal_Bool TextPaM::operator == ( const TextPaM& rPaM ) const -{ - return ( ( mnPara == rPaM.mnPara ) && ( mnIndex == rPaM.mnIndex ) ) ? sal_True : sal_False; -} - -inline sal_Bool TextPaM::operator != ( const TextPaM& rPaM ) const -{ - return !( *this == rPaM ); -} - -inline sal_Bool TextPaM::operator < ( const TextPaM& rPaM ) const -{ - return ( ( mnPara < rPaM.mnPara ) || - ( ( mnPara == rPaM.mnPara ) && mnIndex < rPaM.mnIndex ) ) ? sal_True : sal_False; -} - -inline sal_Bool TextPaM::operator > ( const TextPaM& rPaM ) const -{ - return ( ( mnPara > rPaM.mnPara ) || - ( ( mnPara == rPaM.mnPara ) && mnIndex > rPaM.mnIndex ) ) ? sal_True : sal_False; -} - -class VCL_DLLPUBLIC TextSelection -{ -private: - TextPaM maStartPaM; - TextPaM maEndPaM; - -public: - TextSelection(); - TextSelection( const TextPaM& rPaM ); - TextSelection( const TextPaM& rStart, const TextPaM& rEnd ); - - const TextPaM& GetStart() const { return maStartPaM; } - TextPaM& GetStart() { return maStartPaM; } - - const TextPaM& GetEnd() const { return maEndPaM; } - TextPaM& GetEnd() { return maEndPaM; } - - void Justify(); - - sal_Bool HasRange() const { return maStartPaM != maEndPaM; } - - inline sal_Bool operator == ( const TextSelection& rSel ) const; - inline sal_Bool operator != ( const TextSelection& rSel ) const; -}; - -inline sal_Bool TextSelection::operator == ( const TextSelection& rSel ) const -{ - return ( ( maStartPaM == rSel.maStartPaM ) && ( maEndPaM == rSel.maEndPaM ) ); -} - -inline sal_Bool TextSelection::operator != ( const TextSelection& rSel ) const -{ - return !( *this == rSel ); -} - -#define TEXT_HINT_PARAINSERTED 1 -#define TEXT_HINT_PARAREMOVED 2 -#define TEXT_HINT_PARACONTENTCHANGED 3 -#define TEXT_HINT_TEXTHEIGHTCHANGED 4 -#define TEXT_HINT_FORMATPARA 5 -#define TEXT_HINT_TEXTFORMATTED 6 -#define TEXT_HINT_MODIFIED 7 -#define TEXT_HINT_BLOCKNOTIFICATION_START 8 -#define TEXT_HINT_BLOCKNOTIFICATION_END 9 -#define TEXT_HINT_INPUT_START 10 -#define TEXT_HINT_INPUT_END 11 - -#define TEXT_HINT_VIEWSCROLLED 100 -#define TEXT_HINT_VIEWSELECTIONCHANGED 101 - -class VCL_DLLPUBLIC TextHint : public SfxSimpleHint -{ -private: - sal_uLong mnValue; - -public: - TYPEINFO(); - TextHint( sal_uLong nId ); - TextHint( sal_uLong nId, sal_uLong nValue ); - - sal_uLong GetValue() const { return mnValue; } - void SetValue( sal_uLong n ) { mnValue = n; } -}; - -struct TEIMEInfos -{ - String aOldTextAfterStartPos; - sal_uInt16* pAttribs; - TextPaM aPos; - sal_uInt16 nLen; - sal_Bool bCursor; - sal_Bool bWasCursorOverwrite; - - TEIMEInfos( const TextPaM& rPos, const String& rOldTextAfterStartPos ); - ~TEIMEInfos(); - - void CopyAttribs( const sal_uInt16* pA, sal_uInt16 nL ); - void DestroyAttribs(); -}; - -// ----------------- Wrapper for old Tools List ------------------- - -#include <vector> -#include <algorithm> - -template <class T> class ToolsList : public ::std::vector< T > -{ -public: - sal_uLong Count() const { return static_cast<sal_uLong>(::std::vector< T >::size()); } - sal_uLong GetPos( T pObject ) const { return ( ::std::find( this->begin(), this->end(), pObject ) ) - this->begin(); } - T GetObject( sal_uLong nIndex ) const { return (*this)[nIndex]; } - void Insert( T pObject, sal_uLong nPos ) { ::std::vector< T >::insert( this->begin()+nPos, pObject ); } - void Remove( sal_uLong nPos ) { ::std::vector< T >::erase( this->begin()+nPos ); } -}; - -#endif // _TEXTDATA_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/texteng.hxx b/vcl/inc/vcl/texteng.hxx deleted file mode 100644 index 85b5a7b59a25..000000000000 --- a/vcl/inc/vcl/texteng.hxx +++ /dev/null @@ -1,322 +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 . - */ -#ifndef _TEXTENG_HXX -#define _TEXTENG_HXX - -#include <vcl/dllapi.h> - -class TextDoc; -class TextView; -class TextPaM; -class TextSelection; -class TEParaPortions; -class TextAttrib; -class TextCharAttrib; -class TextUndo; -class TextUndoManager; -class EditSelFunctionSet; -class IdleFormatter; -class TextNode; -class OutputDevice; -class SfxUndoAction; -class KeyEvent; -class Timer; - -namespace svl -{ - class IUndoManager; -} - -class TextLine; -class TETextPortion; -#include <svl/brdcst.hxx> -#include <tools/link.hxx> -#include <vcl/font.hxx> -#include <tools/string.hxx> -#include <tools/gen.hxx> - -#include <com/sun/star/lang/Locale.hpp> -#include <com/sun/star/uno/Reference.hxx> - -struct TEIMEInfos; -class SvtCTLOptions; - -namespace com { -namespace sun { -namespace star { -namespace i18n { - class XBreakIterator; - class XExtendedInputSequenceChecker; -}}}} - -class LocaleDataWrapper; - -enum TxtAlign { TXTALIGN_LEFT, TXTALIGN_CENTER, TXTALIGN_RIGHT }; - -typedef std::vector<TextView*> TextViews; - -class VCL_DLLPUBLIC TextEngine : public SfxBroadcaster -{ - friend class TextView; - friend class TextSelFunctionSet; - friend class ExtTextEngine; - friend class ExtTextView; - - friend class TextUndo; - friend class TextUndoManager; - friend class TextUndoDelPara; - friend class TextUndoConnectParas; - friend class TextUndoSplitPara; - friend class TextUndoInsertChars; - friend class TextUndoRemoveChars; - friend class TextUndoSetAttribs; - -private: - TextDoc* mpDoc; - TEParaPortions* mpTEParaPortions; - OutputDevice* mpRefDev; - - TextViews* mpViews; - TextView* mpActiveView; - - TextUndoManager* mpUndoManager; - - IdleFormatter* mpIdleFormatter; - - TEIMEInfos* mpIMEInfos; - - ::com::sun::star::lang::Locale maLocale; - ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator > mxBreakIterator; - - Rectangle maInvalidRect; - Range maInvalidRange; - - LocaleDataWrapper* mpLocaleDataWrapper; - - Font maFont; - Color maTextColor; - sal_uInt16 mnCharHeight; - sal_uInt16 mnFixCharWidth100; - - sal_uLong mnMaxTextLen; - sal_uLong mnMaxTextWidth; - sal_uLong mnCurTextWidth; - sal_uLong mnCurTextHeight; - sal_uLong mnDefTab; - - TxtAlign meAlign; - - sal_Bool mbIsFormatting : 1; // semaphore for the Hook's - sal_Bool mbFormatted : 1; - sal_Bool mbUpdate : 1; - sal_Bool mbModified : 1; - sal_Bool mbUndoEnabled : 1; - sal_Bool mbIsInUndo : 1; - sal_Bool mbDowning : 1; - sal_Bool mbRightToLeft : 1; - sal_Bool mbHasMultiLineParas : 1; - - TextEngine( const TextEngine& ) : SfxBroadcaster() {} - TextEngine& operator=( const TextEngine& ) { return *this; } - -protected: - - void CursorMoved( sal_uLong nNode ); - void TextModified(); - - void ImpInitDoc(); - void ImpRemoveText(); - TextPaM ImpDeleteText( const TextSelection& rSel ); - TextPaM ImpInsertText( const TextSelection& rSel, sal_Unicode c, sal_Bool bOverwrite = sal_False ); - TextPaM ImpInsertText( const TextSelection& rSel, const String& rText ); - TextPaM ImpInsertParaBreak( const TextSelection& rTextSelection, sal_Bool bKeepEndingAttribs = sal_True ); - TextPaM ImpInsertParaBreak( const TextPaM& rPaM, sal_Bool bKeepEndingAttribs = sal_True ); - void ImpRemoveChars( const TextPaM& rPaM, sal_uInt16 nChars, SfxUndoAction* pCurUndo = 0 ); - TextPaM ImpConnectParagraphs( sal_uLong nLeft, sal_uLong nRight ); - void ImpRemoveParagraph( sal_uLong nPara ); - void ImpInitWritingDirections( sal_uLong nPara ); - LocaleDataWrapper* ImpGetLocaleDataWrapper(); - - // to remain compatible in the minor release we copy the above ImpInsertText - // function and add the extra parameter we need but make sure this function - // gets not exported. First and seconf parameter swapped to have a different signatur. - SAL_DLLPRIVATE TextPaM ImpInsertText( sal_Unicode c, const TextSelection& rSel, sal_Bool bOverwrite = sal_False, sal_Bool bIsUserInput = sal_False ); - // some other new functions needed that must not be exported to remain compatible - SAL_DLLPRIVATE ::com::sun::star::uno::Reference < ::com::sun::star::i18n::XExtendedInputSequenceChecker > GetInputSequenceChecker() const; - SAL_DLLPRIVATE sal_Bool IsInputSequenceCheckingRequired( sal_Unicode c, const TextSelection& rCurSel ) const; - - // broadcast or adjust selections - void ImpParagraphInserted( sal_uLong nPara ); - void ImpParagraphRemoved( sal_uLong nPara ); - void ImpCharsRemoved( sal_uLong nPara, sal_uInt16 nPos, sal_uInt16 nChars ); - void ImpCharsInserted( sal_uLong nPara, sal_uInt16 nPos, sal_uInt16 nChars ); - void ImpFormattingParagraph( sal_uLong nPara ); - void ImpTextHeightChanged(); - void ImpTextFormatted(); - - DECL_LINK( IdleFormatHdl, void * ); - void CheckIdleFormatter(); - void IdleFormatAndUpdate( TextView* pCurView = 0, sal_uInt16 nMaxTimerRestarts = 5 ); - - sal_Bool CreateLines( sal_uLong nPara ); - void CreateAndInsertEmptyLine( sal_uLong nPara ); - void ImpBreakLine( sal_uLong nPara, TextLine* pLine, TETextPortion* pPortion, sal_uInt16 nPortionStart, long nRemainingWidth ); - sal_uInt16 SplitTextPortion( sal_uLong nPara, sal_uInt16 nPos ); - void CreateTextPortions( sal_uLong nPara, sal_uInt16 nStartPos ); - void RecalcTextPortion( sal_uLong nPara, sal_uInt16 nStartPos, short nNewChars ); - void SeekCursor( sal_uLong nNode, sal_uInt16 nPos, Font& rFont, OutputDevice* pOutDev ); - - void FormatDoc(); - void FormatFullDoc(); - void FormatAndUpdate( TextView* pCurView = 0 ); - sal_Bool IsFormatting() const { return mbIsFormatting; } - void UpdateViews( TextView* pCurView = 0 ); - - void ImpPaint( OutputDevice* pOut, const Point& rStartPos, Rectangle const* pPaintArea, TextSelection const* pPaintRange = 0, TextSelection const* pSelection = 0 ); - - void UpdateSelections(); - - sal_Bool IsFormatted() const { return mbFormatted; } - - sal_uInt16 GetCharPos( sal_uLong nPara, sal_uInt16 nLine, long nDocPosX, sal_Bool bSmart = sal_False ); - Rectangle GetEditCursor( const TextPaM& rPaM, sal_Bool bSpecial, sal_Bool bPreferPortionStart = sal_False ); - sal_uInt16 ImpFindIndex( sal_uLong nPortion, const Point& rPosInPara, sal_Bool bSmart ); - long ImpGetPortionXOffset( sal_uLong nPara, TextLine* pLine, sal_uInt16 nTextPortion ); - long ImpGetXPos( sal_uLong nPara, TextLine* pLine, sal_uInt16 nIndex, sal_Bool bPreferPortionStart = sal_False ); - long ImpGetOutputOffset( sal_uLong nPara, TextLine* pLine, sal_uInt16 nIndex, sal_uInt16 nIndex2 ); - sal_uInt8 ImpGetRightToLeft( sal_uLong nPara, sal_uInt16 nPos, sal_uInt16* pStart = NULL, sal_uInt16* pEnd = NULL ); - void ImpInitLayoutMode( OutputDevice* pOutDev, sal_Bool bDrawingR2LPortion = sal_False ); - TxtAlign ImpGetAlign() const; - - sal_uLong CalcTextHeight(); - sal_uLong CalcParaHeight( sal_uLong nParagraph ) const; - sal_uLong CalcTextWidth( sal_uLong nPara ); - sal_uLong CalcTextWidth( sal_uLong nPara, sal_uInt16 nPortionStart, sal_uInt16 nPortionLen, const Font* pFont = 0 ); - Range GetInvalidYOffsets( sal_uLong nPortion ); - - // for Undo/Redo - void InsertContent( TextNode* pNode, sal_uLong nPara ); - TextPaM SplitContent( sal_uLong nNode, sal_uInt16 nSepPos ); - TextPaM ConnectContents( sal_uLong nLeftNode ); - - // adjust PaM's and selections that were transfered to the API to a valid range - void ValidateSelection( TextSelection& rSel ) const; - void ValidatePaM( TextPaM& rPaM ) const; - -public: - TextEngine(); - ~TextEngine(); - - void SetText( const OUString& rStr ); - String GetText( LineEnd aSeparator = LINEEND_LF ) const; - String GetText( const TextSelection& rSel, LineEnd aSeparator = LINEEND_LF ) const; - String GetTextLines( LineEnd aSeparator = LINEEND_LF ) const; - void ReplaceText(const TextSelection& rSel, const String& rText); - - sal_uLong GetTextLen( LineEnd aSeparator = LINEEND_LF ) const; - sal_uLong GetTextLen( const TextSelection& rSel, LineEnd aSeparator = LINEEND_LF ) const; - - void SetFont( const Font& rFont ); - const Font& GetFont() const { return maFont; } - - sal_uInt16 GetDefTab() const; - - void SetLeftMargin( sal_uInt16 n ); - sal_uInt16 GetLeftMargin() const; - - void SetUpdateMode( sal_Bool bUpdate ); - sal_Bool GetUpdateMode() const { return mbUpdate; } - - sal_uInt16 GetViewCount() const; - TextView* GetView( sal_uInt16 nView ) const; - void InsertView( TextView* pTextView ); - void RemoveView( TextView* pTextView ); - TextView* GetActiveView() const; - void SetActiveView( TextView* pView ); - - void SetMaxTextLen( sal_uLong nLen ); - sal_uLong GetMaxTextLen() const { return mnMaxTextLen; } - - void SetMaxTextWidth( sal_uLong nWidth ); - sal_uLong GetMaxTextWidth() const { return mnMaxTextWidth; } - - sal_uLong GetTextHeight() const; - sal_uLong CalcTextWidth(); - sal_uInt16 GetCharHeight() const { return mnCharHeight; } - - sal_uLong GetParagraphCount() const; - String GetText( sal_uLong nParagraph ) const; - sal_uInt16 GetTextLen( sal_uLong nParagraph ) const; - sal_uLong GetTextHeight( sal_uLong nParagraph ) const; - - sal_uInt16 GetLineCount( sal_uLong nParagraph ) const; - sal_uInt16 GetLineLen( sal_uLong nParagraph, sal_uInt16 nLine ) const; - - void SetRightToLeft( sal_Bool bR2L ); - sal_Bool IsRightToLeft() const { return mbRightToLeft; } - - sal_Bool HasUndoManager() const { return mpUndoManager ? sal_True : sal_False; } - ::svl::IUndoManager& - GetUndoManager(); - void UndoActionStart( sal_uInt16 nId = 0 ); - void UndoActionEnd(); - void InsertUndo( TextUndo* pUndo, sal_Bool bTryMerge = sal_False ); - sal_Bool IsInUndo() { return mbIsInUndo; } - void SetIsInUndo( sal_Bool bInUndo ) { mbIsInUndo = bInUndo; } - void ResetUndo(); - - void EnableUndo( sal_Bool bEnable ); - sal_Bool IsUndoEnabled() { return mbUndoEnabled; } - - void SetModified( sal_Bool bModified ) { mbModified = bModified; } - sal_Bool IsModified() const { return mbModified; } - - sal_Bool Read( SvStream& rInput, const TextSelection* pSel = NULL ); - - sal_Bool Write( SvStream& rOutput, const TextSelection* pSel = NULL, sal_Bool bHTML = sal_False ); - - TextPaM GetPaM( const Point& rDocPos, sal_Bool bSmart = sal_True ); - Rectangle PaMtoEditCursor( const TextPaM& rPaM, sal_Bool bSpecial = sal_False ); - String GetWord( const TextPaM& rCursorPos, TextPaM* pStartOfWord = 0 ); - - sal_Bool HasAttrib( sal_uInt16 nWhich ) const; - const TextAttrib* FindAttrib( const TextPaM& rPaM, sal_uInt16 nWhich ) const; - const TextCharAttrib* FindCharAttrib( const TextPaM& rPaM, sal_uInt16 nWhich ) const; - - void RemoveAttribs( sal_uLong nPara, sal_uInt16 nWhich, sal_Bool bIdleFormatAndUpdate ); - void RemoveAttrib( sal_uLong nPara, const TextCharAttrib& rAttrib ); - void RemoveAttribs( sal_uLong nPara, sal_Bool bIdleFormatAndUpdate = sal_True ); - void SetAttrib( const TextAttrib& rAttr, sal_uLong nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_Bool bIdleFormatAndUpdate = sal_True ); - - TxtAlign GetTextAlign() const { return meAlign; } - void SetTextAlign( TxtAlign eAlign ); - - void Draw( OutputDevice* pDev, const Point& rPos ); - - void SetLocale( const ::com::sun::star::lang::Locale& rLocale ); - ::com::sun::star::lang::Locale GetLocale(); - ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator > GetBreakIterator(); - - static sal_Bool DoesKeyChangeText( const KeyEvent& rKeyEvent ); - static sal_Bool IsSimpleCharInput( const KeyEvent& rKeyEvent ); -}; - -#endif // _TEXTENG_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/textview.hxx b/vcl/inc/vcl/textview.hxx deleted file mode 100644 index 314e30fa4f1e..000000000000 --- a/vcl/inc/vcl/textview.hxx +++ /dev/null @@ -1,208 +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 . - */ - -#ifndef _TEXTVIEW_HXX -#define _TEXTVIEW_HXX - -#include <vcl/dllapi.h> -#include <vcl/textdata.hxx> -#include <tools/gen.hxx> -#include <vcl/dndhelp.hxx> - -class TextEngine; -class OutputDevice; -class Window; -class Cursor; -class KeyEvent; -class MouseEvent; -class CommandEvent; -class TextSelFunctionSet; -class SelectionEngine; -class VirtualDevice; -struct TextDDInfo; - -namespace com { -namespace sun { -namespace star { -namespace datatransfer { -namespace clipboard { - class XClipboard; -}}}}} - -struct ImpTextView; - -class VCL_DLLPUBLIC TextView : public vcl::unohelper::DragAndDropClient -{ - friend class TextEngine; - friend class TextUndo; - friend class TextUndoManager; - friend class TextSelFunctionSet; - friend class ExtTextView; - -private: - ImpTextView* mpImpl; - - TextView( const TextView& ) : vcl::unohelper::DragAndDropClient() {} - TextView& operator=( const TextView& ) { return *this; } - -protected: - void ShowSelection(); - void HideSelection(); - void ShowSelection( const TextSelection& rSel ); - void ImpShowHideSelection( sal_Bool bShow, const TextSelection* pRange = NULL ); - - TextSelection ImpMoveCursor( const KeyEvent& rKeyEvent ); - TextPaM ImpDelete( sal_uInt8 nMode, sal_uInt8 nDelMode ); - void ImpSetSelection( const TextSelection& rNewSel, sal_Bool bUI ); - sal_Bool IsInSelection( const TextPaM& rPaM ); - - void ImpPaint( OutputDevice* pOut, const Point& rStartPos, Rectangle const* pPaintArea, TextSelection const* pPaintRange = 0, TextSelection const* pSelection = 0 ); - void ImpPaint( const Rectangle& rRect, sal_Bool bUseVirtDev ); - void ImpShowCursor( sal_Bool bGotoCursor, sal_Bool bForceVisCursor, sal_Bool bEndKey ); - void ImpHighlight( const TextSelection& rSel ); - void ImpSetSelection( const TextSelection& rSelection ); - Point ImpGetOutputStartPos( const Point& rStartDocPos ) const; - - void ImpHideDDCursor(); - void ImpShowDDCursor(); - - bool ImplTruncateNewText( OUString& rNewText ) const; - sal_Bool ImplCheckTextLen( const String& rNewText ); - - VirtualDevice* GetVirtualDevice(); - - // DragAndDropClient - virtual void dragGestureRecognized( const ::com::sun::star::datatransfer::dnd::DragGestureEvent& dge ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourceDropEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); - virtual void drop( const ::com::sun::star::datatransfer::dnd::DropTargetDropEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragEnter( const ::com::sun::star::datatransfer::dnd::DropTargetDragEnterEvent& dtdee ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragExit( const ::com::sun::star::datatransfer::dnd::DropTargetEvent& dte ) throw (::com::sun::star::uno::RuntimeException); - virtual void dragOver( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); - - using DragAndDropClient::dragEnter; - using DragAndDropClient::dragExit; - using DragAndDropClient::dragOver; - -public: - TextView( TextEngine* pEng, Window* pWindow ); - virtual ~TextView(); - - TextEngine* GetTextEngine() const; - Window* GetWindow() const; - - void Invalidate(); - void Scroll( long nHorzScroll, long nVertScroll ); - - void ShowCursor( sal_Bool bGotoCursor = sal_True, sal_Bool bForceVisCursor = sal_True ); - void HideCursor(); - - void EnableCursor( sal_Bool bEnable ); - sal_Bool IsCursorEnabled() const; - - const TextSelection& GetSelection() const; - TextSelection& GetSelection(); - void SetSelection( const TextSelection& rNewSel ); - void SetSelection( const TextSelection& rNewSel, sal_Bool bGotoCursor ); - sal_Bool HasSelection() const; - - String GetSelected(); - String GetSelected( LineEnd aSeparator ); - void DeleteSelected(); - - void InsertNewText( const OUString& rNew, sal_Bool bSelect = sal_False ); - // deprecated: use InsertNewText instead - void InsertText( const String& rNew, sal_Bool bSelect = sal_False ); - - sal_Bool KeyInput( const KeyEvent& rKeyEvent ); - void Paint( const Rectangle& rRect ); - void MouseButtonUp( const MouseEvent& rMouseEvent ); - void MouseButtonDown( const MouseEvent& rMouseEvent ); - void MouseMove( const MouseEvent& rMouseEvent ); - void Command( const CommandEvent& rCEvt ); - - void Cut(); - void Copy(); - void Paste(); - - void Copy( ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard >& rxClipboard ); - void Paste( ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard >& rxClipboard ); - - void Undo(); - void Redo(); - - sal_Bool Read( SvStream& rInput ); - - void SetStartDocPos( const Point& rPos ); - const Point& GetStartDocPos() const; - - Point GetDocPos( const Point& rWindowPos ) const; - Point GetWindowPos( const Point& rDocPos ) const; - - void SetInsertMode( sal_Bool bInsert ); - sal_Bool IsInsertMode() const; - - void SetAutoIndentMode( sal_Bool bAutoIndent ); - - void SetReadOnly( sal_Bool bReadOnly ); - sal_Bool IsReadOnly() const; - - void SetAutoScroll( sal_Bool bAutoScroll ); - sal_Bool IsAutoScroll() const; - - sal_Bool SetCursorAtPoint( const Point& rPointPixel ); - sal_Bool IsSelectionAtPoint( const Point& rPointPixel ); - - void SetPaintSelection( sal_Bool bPaint); - - void EraseVirtualDevice(); - - // aus dem protected Teil hierher verschoben - // F�r 'SvtXECTextCursor' (TL). Mu� ggf nochmal anders gel�st werden. - TextPaM PageUp( const TextPaM& rPaM ); - TextPaM PageDown( const TextPaM& rPaM ); - TextPaM CursorUp( const TextPaM& rPaM ); - TextPaM CursorDown( const TextPaM& rPaM ); - TextPaM CursorLeft( const TextPaM& rPaM, sal_uInt16 nCharacterIteratorMode ); - TextPaM CursorRight( const TextPaM& rPaM, sal_uInt16 nCharacterIteratorMode ); - TextPaM CursorWordLeft( const TextPaM& rPaM ); - TextPaM CursorWordRight( const TextPaM& rPaM ); - TextPaM CursorStartOfLine( const TextPaM& rPaM ); - TextPaM CursorEndOfLine( const TextPaM& rPaM ); - TextPaM CursorStartOfParagraph( const TextPaM& rPaM ); - TextPaM CursorEndOfParagraph( const TextPaM& rPaM ); - TextPaM CursorStartOfDoc(); - TextPaM CursorEndOfDoc(); - - /** - Drag and Drop, deleting and selection regards all text that has an attribute - TEXTATTR_PROTECTED set as one entitity. Drag and dropped text is automatically - attibuted as protected. - */ - void SupportProtectAttribute(sal_Bool bSupport); - - /** - Returns the number in paragraph of the line in which the cursor is blinking - if enabled, -1 otherwise. - */ - sal_Int32 GetLineNumberOfCursorInSelection() const; -}; - -#endif // _TEXTVIEW_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/threadex.hxx b/vcl/inc/vcl/threadex.hxx deleted file mode 100644 index 83198187ce1c..000000000000 --- a/vcl/inc/vcl/threadex.hxx +++ /dev/null @@ -1,261 +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 <osl/conditn.h> -#include <osl/thread.h> -#include <tools/link.hxx> -#include <vcl/dllapi.h> - -#include "cppuhelper/exc_hlp.hxx" -#include "boost/optional.hpp" -#include <memory> - -namespace vcl -{ - class VCL_DLLPUBLIC SolarThreadExecutor - { - oslCondition m_aStart; - oslCondition m_aFinish; - long m_nReturn; - bool m_bTimeout; - - DECL_DLLPRIVATE_LINK( worker, void* ); - - public: - SolarThreadExecutor(); - virtual ~SolarThreadExecutor(); - - virtual long doIt() = 0; - long execute() { return impl_execute( NULL ); } - // caution: timeout for getting the solar mutex, not for ending - // the operation of doIt(). If doIt actually gets called within - // the specified timeout, execute will only return after - // doIt() completed - long execute( const TimeValue& _rTimeout ) { return impl_execute( &_rTimeout ); } - - public: - bool didTimeout() const { return m_bTimeout; } - - private: - long impl_execute( const TimeValue* _pTimeout ); - }; - -namespace solarthread { - -/// @internal -namespace detail { - -template <typename FuncT, typename ResultT> -class GenericSolarThreadExecutor : public SolarThreadExecutor -{ -public: - static ResultT exec( FuncT const& func ) - { - typedef GenericSolarThreadExecutor<FuncT, ResultT> ExecutorT; - ::std::auto_ptr<ExecutorT> const pExecutor( new ExecutorT(func) ); - pExecutor->execute(); -#if ! defined(EXCEPTIONS_OFF) - if (pExecutor->m_exc.hasValue()) - ::cppu::throwException( pExecutor->m_exc ); -#endif - return *pExecutor->m_result; - } - -private: - explicit GenericSolarThreadExecutor( FuncT const& func ) - : m_exc(), m_func(func), m_result() {} - - virtual long doIt() - { -#if defined(EXCEPTIONS_OFF) - m_result.reset( m_func() ); -#else - try { - m_result.reset( m_func() ); - } - catch (::com::sun::star::uno::Exception &) { - // only UNO exceptions can be dispatched: - m_exc = ::cppu::getCaughtException(); - } -#endif - return 0; - } - - ::com::sun::star::uno::Any m_exc; - FuncT const m_func; - // using boost::optional here omits the need that ResultT is default - // constructable: - ::boost::optional<ResultT> m_result; -}; - -template <typename FuncT> -class GenericSolarThreadExecutor<FuncT, void> : public SolarThreadExecutor -{ -public: - static void exec( FuncT const& func ) - { - typedef GenericSolarThreadExecutor<FuncT, void> ExecutorT; - ::std::auto_ptr<ExecutorT> const pExecutor( new ExecutorT(func) ); - pExecutor->execute(); -#if ! defined(EXCEPTIONS_OFF) - if (pExecutor->m_exc.hasValue()) - ::cppu::throwException( pExecutor->m_exc ); -#endif - } - -private: - explicit GenericSolarThreadExecutor( FuncT const& func ) - : m_exc(), m_func(func) {} - - virtual long doIt() - { -#if defined(EXCEPTIONS_OFF) - m_func(); -#else - try { - m_func(); - } - catch (::com::sun::star::uno::Exception &) { - // only UNO exceptions can be dispatched: - m_exc = ::cppu::getCaughtException(); - } -#endif - return 0; - } - - ::com::sun::star::uno::Any m_exc; - FuncT const m_func; -}; - -template <typename T> -class copy_back_wrapper -{ -public: - operator T *() const { return &m_holder->m_value; } - operator T &() const { return m_holder->m_value; } - - explicit copy_back_wrapper( T * p ) : m_holder( new data_holder(p) ) {} - - // no thread-safe counting needed here, because calling thread blocks - // until solar thread has executed the functor. - copy_back_wrapper( copy_back_wrapper<T> const& r ) - : m_holder(r.m_holder) { ++m_holder->m_refCount; } - ~copy_back_wrapper() { - --m_holder->m_refCount; - if (m_holder->m_refCount == 0) { - delete m_holder; - } - } -private: - struct data_holder { - T m_value; - T * const m_ptr; - sal_Int32 m_refCount; - data_holder( T * p ) : m_value(*p), m_ptr(p), m_refCount(1) {} - ~data_holder() { *m_ptr = m_value; } - }; - data_holder * const m_holder; -}; - -} // namespace detail - -/** Makes a copy back reference wrapper to be used for inout parameters. - Only use for syncExecute(), the returned wrapper relies on its - implemenation, i.e. the function object is stored in free store. - Type T needs to be copy constructable assignable. - - @see syncExecute() - @param r reference to a stack variable - @return reference wrapper -*/ -template <typename T> -inline detail::copy_back_wrapper<T> inout_by_ref( T & r ) -{ - return detail::copy_back_wrapper<T>(&r); -} - -/** Makes a copy back ptr wrapper to be used for inout parameters. - Only use for syncExecute(), the returned wrapper relies on its - implemenation, i.e. the function object is stored in free store. - Type T needs to be copy constructable assignable. - - @see syncExecute() - @param p pointer to a stack variable - @return ptr wrapper -*/ -template <typename T> -inline detail::copy_back_wrapper<T> inout_by_ptr( T * p ) -{ - return detail::copy_back_wrapper<T>(p); -} - -/** This function will execute the passed functor synchronously in the - solar thread, thus the calling thread will (eventually) be blocked until - the functor has been called. - Any UNO exception that came up calling the functor in the solar thread - will be caught and rethrown in the calling thread. Any non-UNO - exception needs to be handled by the called functor. - The result type of this function needs to be default constructable. - Please keep in mind not to pass addresses to stack variables - (e.g. for out parameters) to foreign threads, use inout_by_ref() - for this purpose. For in parameters, this may not affect you, because - the functor object is copy constructed into free store. This way - you must not use boost::cref()/boost::ref() or similar for objects on - your thread's stack. - Use inout_by_ref() or inout_by_ptr() for this purpose, e.g. - - <pre> - using namespace vcl::solarthread; - - long n = 3; - // calling foo( long & r ): - syncExecute( boost::bind( &foo, inout_by_ref(n) ) ); - // calling foo( long * p ): - syncExecute( boost::bind( &foo, inout_by_ptr(&n) ) ); - - char const* pc = "default"; - // calling foo( char const** ppc ): - syncExecute( boost::bind( &foo, inout_by_ptr(&pc) ) ); - // calling foo( char const*& rpc ): - syncExecute( boost::bind( &foo, inout_by_ref(pc) ) ); - </pre> - - @tpl ResultT result type, defaults to FuncT::result_type to seamlessly - support mem_fn and bind - @tpl FuncT functor type, let your compiler deduce this type - @param func functor object to be executed in solar thread - @return return value of functor -*/ -template <typename ResultT, typename FuncT> -inline ResultT syncExecute( FuncT const& func ) -{ - return detail::GenericSolarThreadExecutor<FuncT, ResultT>::exec(func); -} - -template <typename FuncT> -inline typename FuncT::result_type syncExecute( FuncT const& func ) -{ - return detail::GenericSolarThreadExecutor< - FuncT, typename FuncT::result_type>::exec(func); -} - -} // namespace solarthread -} // namespace vcl - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/throbber.hxx b/vcl/inc/vcl/throbber.hxx deleted file mode 100644 index f2995d7555bc..000000000000 --- a/vcl/inc/vcl/throbber.hxx +++ /dev/null @@ -1,94 +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 . - */ - -#ifndef VCL_THROBBER_HXX -#define VCL_THROBBER_HXX - -#include "vcl/dllapi.h" -#include "vcl/imgctrl.hxx" -#include "vcl/timer.hxx" - -#include <com/sun/star/graphic/XGraphic.hpp> - -#include <vector> - -class VCL_DLLPUBLIC Throbber : public ImageControl -{ -public: - enum ImageSet - { - /// no (default) images at all - IMAGES_NONE, - /// automatically decide between different image sets, depending on what fits best the actual size - IMAGES_AUTO, - /// default images, 16x16 pixels - IMAGES_16_PX, - /// default images, 32x32 pixels - IMAGES_32_PX, - /// default images, 64x64 pixels - IMAGES_64_PX, - }; - -public: - Throbber( Window* i_parentWindow, WinBits i_style, const ImageSet i_imageSet = IMAGES_AUTO ); - Throbber( Window* i_parentWindow, const ResId& i_resId, const ImageSet i_imageSet = IMAGES_AUTO ); - ~Throbber(); - - // Properties - void setStepTime( sal_Int32 nStepTime ) { mnStepTime = nStepTime; } - sal_Int32 getStepTime() const { return mnStepTime; } - - void setRepeat( sal_Bool bRepeat ) { mbRepeat = bRepeat; } - sal_Bool getRepeat() const { return mbRepeat; } - - // animation control - void start(); - void stop(); - bool isRunning() const; - - void setImageList( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > >& ImageList ); - void setImageList( ::std::vector< Image > const& i_images ); - - // default images - static ::std::vector< OUString > - getDefaultImageURLs( const ImageSet i_imageSet ); - -protected: - // Window overridables - virtual void Resize(); - -private: - SAL_DLLPRIVATE void initImages(); - -private: - ::std::vector< Image > maImageList; - - sal_Bool mbRepeat; - sal_Int32 mnStepTime; - sal_Int32 mnCurStep; - sal_Int32 mnStepCount; - AutoTimer maWaitTimer; - ImageSet meImageSet; - - DECL_LINK( TimeOutHdl, void* ); -}; - -#endif // VCL_THROBBER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/timer.hxx b/vcl/inc/vcl/timer.hxx deleted file mode 100644 index 606367277a27..000000000000 --- a/vcl/inc/vcl/timer.hxx +++ /dev/null @@ -1,81 +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 . - */ - -#ifndef _SV_TIMER_HXX -#define _SV_TIMER_HXX - -#include <tools/link.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> - -struct ImplTimerData; -struct ImplSVData; - -// --------- -// - Timer - -// --------- - -class VCL_DLLPUBLIC Timer -{ -protected: - ImplTimerData* mpTimerData; - sal_uLong mnTimeout; - sal_Bool mbActive; - sal_Bool mbAuto; - Link maTimeoutHdl; - -public: - Timer(); - Timer( const Timer& rTimer ); - virtual ~Timer(); - - virtual void Timeout(); - - void Start(); - void Stop(); - - void SetTimeout( sal_uLong nTimeout ); - sal_uLong GetTimeout() const { return mnTimeout; } - sal_Bool IsActive() const { return mbActive; } - - void SetTimeoutHdl( const Link& rLink ) { maTimeoutHdl = rLink; } - const Link& GetTimeoutHdl() const { return maTimeoutHdl; } - - Timer& operator=( const Timer& rTimer ); - - static void ImplDeInitTimer(); - static void ImplTimerCallbackProc(); -}; - -// ------------- -// - AutoTimer - -// ------------- - -class VCL_DLLPUBLIC AutoTimer : public Timer -{ -public: - AutoTimer(); - AutoTimer( const AutoTimer& rTimer ); - - AutoTimer& operator=( const AutoTimer& rTimer ); -}; - -#endif // _SV_TIMER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/toolbox.hxx b/vcl/inc/vcl/toolbox.hxx deleted file mode 100644 index 3b1f69e36477..000000000000 --- a/vcl/inc/vcl/toolbox.hxx +++ /dev/null @@ -1,606 +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 . - */ - -#ifndef _SV_TOOLBOX_HXX -#define _SV_TOOLBOX_HXX - -#include <tools/solar.h> -#include <rsc/rsc-vcl-shared-types.hxx> -#include <vcl/dllapi.h> -#include <vcl/dockwin.hxx> -#include <vcl/image.hxx> -#include <vcl/timer.hxx> -#include <vector> - -class UserDrawEvent; - -struct ImplToolItem; -struct ImplToolSize; -struct ImplToolBoxPrivateData; -class ImplTrackRect; -class PopupMenu; - -namespace vcl -{ - class IImageListProvider; -} - -// ------------------------- -// - ToolBoxCustomizeEvent - -// ------------------------- - -#define TOOLBOX_CUSTOMIZE_RESIZE ((sal_uInt16)0xFFFE) - -class VCL_DLLPUBLIC ToolBoxCustomizeEvent -{ -private: - ToolBox* mpTargetBox; - void* mpData; - sal_uInt16 mnIdFrom; - sal_uInt16 mnPosTo; - -public: - ToolBoxCustomizeEvent(); - ToolBoxCustomizeEvent( ToolBox* pDropBox, - sal_uInt16 nId, sal_uInt16 nPos = 0, - void* pUserData = NULL ); - - ToolBox* GetTargetBox() const { return mpTargetBox; } - sal_uInt16 GetTargetPos() const { return mnPosTo; } - sal_uInt16 GetSourceId() const { return mnIdFrom; } - void* GetData() const { return mpData; } - sal_Bool IsResized() const; -}; - -inline ToolBoxCustomizeEvent::ToolBoxCustomizeEvent() -{ - mpTargetBox = NULL; - mnIdFrom = 0; - mnPosTo = 0; - mpData = NULL; -} - -inline ToolBoxCustomizeEvent::ToolBoxCustomizeEvent( ToolBox* pDropBox, - sal_uInt16 nId, sal_uInt16 nPos, - void* pUserData ) -{ - mpTargetBox = pDropBox; - mnIdFrom = nId; - mnPosTo = nPos; - mpData = pUserData; -} - -inline sal_Bool ToolBoxCustomizeEvent::IsResized() const -{ - if ( mnPosTo == TOOLBOX_CUSTOMIZE_RESIZE ) - return sal_True; - else - return sal_False; -} - -// ----------------- -// - ToolBox-Types - -// ----------------- - -#define TOOLBOX_STYLE_FLAT ((sal_uInt16)0x0004) - -#define TOOLBOX_APPEND ((sal_uInt16)0xFFFF) -#define TOOLBOX_ITEM_NOTFOUND ((sal_uInt16)0xFFFF) - -// item ids in the custom menu may not exceed this constant -#define TOOLBOX_MENUITEM_START ((sal_uInt16)0xE000) - -// defines for the menubutton -#define TOOLBOX_MENUTYPE_NONE ((sal_uInt16)0x0000) // no menu at all, scrolling by spin buttons -#define TOOLBOX_MENUTYPE_CLIPPEDITEMS ((sal_uInt16)0x0001) // menu will contain "more" indicator -#define TOOLBOX_MENUTYPE_CUSTOMIZE ((sal_uInt16)0x0002) // menu will contain "customization" and "more" indicator - -// small or large force an exact toolbox size for proper alignemnt -// dontcare will let the toolbox decide about its size -enum ToolBoxButtonSize { TOOLBOX_BUTTONSIZE_DONTCARE, TOOLBOX_BUTTONSIZE_SMALL, TOOLBOX_BUTTONSIZE_LARGE }; - -// TBX_LAYOUT_NORMAL - traditional layout, items are centered in the toolbar -// TBX_LAYOUT_LOCKVERT - special mode (currently used for calc input/formula -// bar) where item's vertical position is locked, e.g. -// toolbox is prevented from centering the items -enum ToolBoxLayoutMode { TBX_LAYOUT_NORMAL, TBX_LAYOUT_LOCKVERT }; - -struct ImplToolSize -{ - long mnWidth; - long mnHeight; - sal_uInt16 mnLines; -}; - -// ----------- -// - ToolBox - -// ----------- - -class VCL_DLLPUBLIC ToolBox : public DockingWindow -{ - friend class FloatingWindow; - friend class ImplTBDragMgr; - -private: - ImplToolBoxPrivateData* mpData; - std::vector<ImplToolSize> maFloatSizes; - ImageList maImageList; - Timer maTimer; - Rectangle maUpperRect; - Rectangle maLowerRect; - Rectangle maOutDockRect; - Rectangle maInDockRect; - Rectangle maPaintRect; - FloatingWindow* mpFloatWin; - sal_uInt16 mnKeyModifier; - long mnDX; - long mnDY; - long mnMaxItemWidth; // max item width - long mnMaxItemHeight; // max item height (for standard items) - long mnWinHeight; // max window height (for window items) - long mnLeftBorder; // inner border - long mnTopBorder; - long mnRightBorder; - long mnBottomBorder; - long mnLastResizeDY; - long mnActivateCount; - sal_uInt16 mnLastFocusItemId; - sal_uInt16 mnFocusPos; - sal_uInt16 mnOutStyle; - sal_uInt16 mnHighItemId; - sal_uInt16 mnCurItemId; - sal_uInt16 mnDownItemId; - sal_uInt16 mnCurPos; - sal_uInt16 mnLines; // total number of toolbox lines - sal_uInt16 mnCurLine; // the currently visible line - sal_uInt16 mnCurLines; // number of lines due to line breaking - sal_uInt16 mnVisLines; // number of visible lines (for scrolling) - sal_uInt16 mnFloatLines; // number of lines during floating mode - sal_uInt16 mnDockLines; - sal_uInt16 mnConfigItem; - sal_uInt16 mnMouseClicks; - sal_uInt16 mnMouseModifier; - unsigned int mbDrag:1, - mbSelection:1, - mbCommandDrag:1, - mbUpper:1, - mbLower:1, - mbIn:1, - mbCalc:1, - mbFormat:1, - mbFullPaint:1, - mbHorz:1, - mbScroll:1, - mbLastFloatMode:1, - mbCustomize:1, - mbCustomizeMode:1, - mbDragging:1, - mbMenuStrings:1, - mbIsShift:1, - mbIsKeyEvent:1, - mbChangingHighlight:1; - WindowAlign meAlign; - WindowAlign meDockAlign; - ButtonType meButtonType; - PointerStyle meLastStyle; - WinBits mnWinStyle; - ToolBoxLayoutMode meLayoutMode; - Link maClickHdl; - Link maDoubleClickHdl; - Link maActivateHdl; - Link maDeactivateHdl; - Link maHighlightHdl; - Link maSelectHdl; - Link maCommandHandler; - Link maStateChangedHandler; - Link maDataChangedHandler; - - public: - using Window::ImplInit; - private: - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); - using DockingWindow::ImplInitSettings; - SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE ImplToolItem* ImplGetItem( sal_uInt16 nId ) const; - SAL_DLLPRIVATE sal_Bool ImplCalcItem(); - SAL_DLLPRIVATE sal_uInt16 ImplCalcBreaks( long nWidth, long* pMaxLineWidth, sal_Bool bCalcHorz ); - SAL_DLLPRIVATE void ImplFormat( sal_Bool bResize = sal_False ); - SAL_DLLPRIVATE void ImplDrawSpin( sal_Bool bUpperIn, sal_Bool bLowerIn ); - SAL_DLLPRIVATE void ImplDrawSeparator( sal_uInt16 nPos, Rectangle rRect ); - SAL_DLLPRIVATE void ImplDrawItem( sal_uInt16 nPos, sal_uInt16 nHighlight = 0, sal_Bool bPaint = sal_False, sal_Bool bLayout = sal_False ); - using Window::ImplInvalidate; - SAL_DLLPRIVATE void ImplInvalidate( sal_Bool bNewCalc = sal_False, sal_Bool bFullPaint = sal_False ); - SAL_DLLPRIVATE void ImplUpdateItem( sal_uInt16 nIndex = 0xFFFF ); - SAL_DLLPRIVATE const OUString ImplConvertMenuString( const XubString& rStr ); - SAL_DLLPRIVATE sal_Bool ImplHandleMouseMove( const MouseEvent& rMEvt, sal_Bool bRepeat = sal_False ); - SAL_DLLPRIVATE sal_Bool ImplHandleMouseButtonUp( const MouseEvent& rMEvt, sal_Bool bCancel = sal_False ); - SAL_DLLPRIVATE void ImplChangeHighlight( ImplToolItem* pItem, sal_Bool bNoGrabFocus = sal_False ); - SAL_DLLPRIVATE sal_Bool ImplChangeHighlightUpDn( sal_Bool bUp, sal_Bool bNoCycle = sal_False ); - SAL_DLLPRIVATE sal_uInt16 ImplGetItemLine( ImplToolItem* pCurrentItem ); - SAL_DLLPRIVATE ImplToolItem* ImplGetFirstValidItem( sal_uInt16 nLine ); - SAL_DLLPRIVATE sal_Bool ImplOpenItem( KeyCode aKeyCode ); - SAL_DLLPRIVATE sal_Bool ImplActivateItem( KeyCode aKeyCode ); - SAL_DLLPRIVATE void ImplShowFocus(); - SAL_DLLPRIVATE void ImplHideFocus(); - SAL_DLLPRIVATE void ImplUpdateInputEnable(); - SAL_DLLPRIVATE void ImplFillLayoutData() const; - SAL_DLLPRIVATE sal_Bool ImplHasClippedItems(); - SAL_DLLPRIVATE Point ImplGetPopupPosition( const Rectangle& rRect, const Size& rSize ) const; - SAL_DLLPRIVATE void ImplExecuteCustomMenu(); - SAL_DLLPRIVATE sal_Bool ImplIsFloatingMode() const; - SAL_DLLPRIVATE sal_Bool ImplIsInPopupMode() const; - SAL_DLLPRIVATE const XubString& ImplGetHelpText( sal_uInt16 nItemId ) const; - SAL_DLLPRIVATE Size ImplGetOptimalFloatingSize(); - SAL_DLLPRIVATE sal_Bool ImplHasExternalMenubutton(); - SAL_DLLPRIVATE void ImplDrawFloatwinBorder( ImplToolItem* pItem ); - - DECL_DLLPRIVATE_LINK( ImplCallExecuteCustomMenu, void* ); - DECL_DLLPRIVATE_LINK( ImplUpdateHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplResetAutoSizeTriesHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplCustomMenuListener, VclMenuEvent* ); - DECL_DLLPRIVATE_LINK( ImplDropdownLongClickHdl, void* ); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE ToolBox (const ToolBox &); - SAL_DLLPRIVATE ToolBox& operator= (const ToolBox &); - - SAL_DLLPRIVATE void ImplUpdateImageList(); // called if StateChanged -public: - SAL_DLLPRIVATE void ImplFloatControl( sal_Bool bStart, FloatingWindow* pWindow = NULL ); - SAL_DLLPRIVATE void ImplDisableFlatButtons(); - - static SAL_DLLPRIVATE int ImplGetDragWidth( ToolBox* pThis ); - static SAL_DLLPRIVATE void ImplUpdateDragArea( ToolBox *pThis ); - static SAL_DLLPRIVATE void ImplCalcBorder( WindowAlign eAlign, long& rLeft, long& rTop, - long& rRight, long& rBottom, const ToolBox *pThis ); - static SAL_DLLPRIVATE void ImplDrawGrip( ToolBox* pThis ); - static SAL_DLLPRIVATE void ImplDrawGradientBackground( ToolBox* pThis, ImplDockingWindowWrapper *pWrapper ); - static SAL_DLLPRIVATE sal_Bool ImplDrawNativeBackground( ToolBox* pThis, const Region &rRegion ); - static SAL_DLLPRIVATE void ImplDrawTransparentBackground( ToolBox* pThis, const Region &rRegion ); - static SAL_DLLPRIVATE void ImplDrawConstantBackground( ToolBox* pThis, const Region &rRegion, sal_Bool bIsInPopupMode ); - static SAL_DLLPRIVATE void ImplDrawBackground( ToolBox* pThis, const Rectangle &rRect ); - static SAL_DLLPRIVATE void ImplErase( ToolBox* pThis, const Rectangle &rRect, sal_Bool bHighlight = sal_False, sal_Bool bHasOpenPopup = sal_False ); - static SAL_DLLPRIVATE void ImplDrawBorder( ToolBox* pWin ); - static SAL_DLLPRIVATE const ImplToolItem *ImplGetFirstClippedItem( const ToolBox* pThis ); - static SAL_DLLPRIVATE Size ImplCalcSize( const ToolBox* pThis, sal_uInt16 nCalcLines, sal_uInt16 nCalcMode = 0 ); - static SAL_DLLPRIVATE void ImplCalcFloatSizes( ToolBox* pThis ); - static SAL_DLLPRIVATE Size ImplCalcFloatSize( ToolBox* pThis, sal_uInt16& rLines ); - static SAL_DLLPRIVATE void ImplCalcMinMaxFloatSize( ToolBox* pThis, Size& rMinSize, Size& rMaxSize ); - static SAL_DLLPRIVATE void ImplSetMinMaxFloatSize( ToolBox *pThis ); - static SAL_DLLPRIVATE sal_uInt16 ImplCalcLines( ToolBox* pThis, long nToolSize ); - static SAL_DLLPRIVATE sal_uInt16 ImplTestLineSize( ToolBox* pThis, const Point& rPos ); - static SAL_DLLPRIVATE void ImplLineSizing( ToolBox* pThis, const Point& rPos, Rectangle& rRect, sal_uInt16 nLineMode ); - static SAL_DLLPRIVATE sal_uInt16 ImplFindItemPos( ToolBox* pBox, const Point& rPos ); - static SAL_DLLPRIVATE sal_uInt16 ImplFindItemPos( const ImplToolItem* pItem, const std::vector< ImplToolItem >& rList ); - static SAL_DLLPRIVATE void ImplDrawMenubutton( ToolBox *pThis, sal_Bool bHighlight ); - static SAL_DLLPRIVATE sal_uInt16 ImplCountLineBreaks( const ToolBox *pThis ); - SAL_DLLPRIVATE ImplToolBoxPrivateData* ImplGetToolBoxPrivateData() const { return mpData; } - -protected: - void SetCurItemId(sal_uInt16 nSet) { mnCurItemId = nSet; } - -public: - ToolBox( Window* pParent, WinBits nStyle = 0 ); - ToolBox( Window* pParent, const ResId& rResId ); - ~ToolBox(); - - virtual void Click(); - virtual void DoubleClick(); - virtual void Activate(); - virtual void Deactivate(); - virtual void Highlight(); - virtual void Select(); - virtual void Customize( const ToolBoxCustomizeEvent& rCEvt ); - virtual void UserDraw( const UserDrawEvent& rUDEvt ); - - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void MouseButtonUp( const MouseEvent& rMEvt ); - virtual void MouseMove( const MouseEvent& rMEvt ); - virtual void Tracking( const TrackingEvent& rTEvt ); - virtual void Paint( const Rectangle& rRect ); - virtual void Move(); - virtual void Resize(); - virtual void RequestHelp( const HelpEvent& rHEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual void Command( const CommandEvent& rCEvt ); - virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - virtual void GetFocus(); - virtual void LoseFocus(); - virtual void KeyInput( const KeyEvent& rKEvt ); - - virtual sal_Bool PrepareToggleFloatingMode(); - virtual void ToggleFloatingMode(); - virtual void StartDocking(); - virtual sal_Bool Docking( const Point& rPos, Rectangle& rRect ); - virtual void EndDocking( const Rectangle& rRect, sal_Bool bFloatMode ); - virtual void Resizing( Size& rSize ); - - void InsertItem( const ResId& rResId, - sal_uInt16 nPos = TOOLBOX_APPEND ); - void InsertItem( sal_uInt16 nItemId, const Image& rImage, - ToolBoxItemBits nBits = 0, - sal_uInt16 nPos = TOOLBOX_APPEND ); - void InsertItem( sal_uInt16 nItemId, const Image& rImage, - const XubString& rText, - ToolBoxItemBits nBits = 0, - sal_uInt16 nPos = TOOLBOX_APPEND ); - void InsertItem( sal_uInt16 nItemId, const XubString& rText, - ToolBoxItemBits nBits = 0, - sal_uInt16 nPos = TOOLBOX_APPEND ); - void InsertWindow( sal_uInt16 nItemId, Window* pWindow, - ToolBoxItemBits nBits = 0, - sal_uInt16 nPos = TOOLBOX_APPEND ); - void InsertSpace( sal_uInt16 nPos = TOOLBOX_APPEND ); - void InsertSeparator( sal_uInt16 nPos = TOOLBOX_APPEND, - sal_uInt16 nPixSize = 0 ); - void InsertBreak( sal_uInt16 nPos = TOOLBOX_APPEND ); - void RemoveItem( sal_uInt16 nPos ); - void CopyItem( const ToolBox& rToolBox, sal_uInt16 nItemId, - sal_uInt16 nNewPos = TOOLBOX_APPEND ); - void Clear(); - - const ImageList& GetImageList() const { return maImageList; } - void SetImageList( const ImageList& rImageList ); - - void SetButtonType( ButtonType eNewType = BUTTON_SYMBOL ); - ButtonType GetButtonType() const { return meButtonType; } - - // sets a fixed button size (small, large or dontcare (==autosize)) - void SetToolboxButtonSize( ToolBoxButtonSize eSize ); - ToolBoxButtonSize GetToolboxButtonSize() const; - - void SetAlign( WindowAlign eNewAlign = WINDOWALIGN_TOP ); - WindowAlign GetAlign() const { return meAlign; } - sal_Bool IsHorizontal() const { return mbHorz; } - - void SetLineCount( sal_uInt16 nNewLines ); - sal_uInt16 GetLineCount() const { return mnLines; } - sal_uInt16 GetCurLine() const { return mnCurLine; } - void ShowLine( sal_Bool bNext ); - - // Used to enable/disable scrolling one page at a time for toolbar - void SetPageScroll( sal_Bool b ); - - sal_uInt16 GetItemCount() const; - ToolBoxItemType GetItemType( sal_uInt16 nPos ) const; - sal_uInt16 GetItemPos( sal_uInt16 nItemId ) const; - sal_uInt16 GetItemPos( const Point& rPos ) const; - sal_uInt16 GetItemId( sal_uInt16 nPos ) const; - sal_uInt16 GetItemId( const Point& rPos ) const; - Rectangle GetItemRect( sal_uInt16 nItemId ) const; - Rectangle GetItemPosRect( sal_uInt16 nPos ) const; - - // retrieves the optimal position to place a popup window for this item (subtoolbar or dropdown) - Point GetItemPopupPosition( sal_uInt16 nItemId, const Size& rSize ) const; - - Rectangle GetScrollRect() const; - sal_uInt16 GetCurItemId() const { return mnCurItemId; } - sal_uInt16 GetDownItemId() const { return mnDownItemId; } - sal_uInt16 GetClicks() const { return mnMouseClicks; } - sal_uInt16 GetModifier() const { return mnMouseModifier; } - sal_uInt16 GetKeyModifier() const { return mnKeyModifier; } - - void SetItemBits( sal_uInt16 nItemId, ToolBoxItemBits nBits ); - ToolBoxItemBits GetItemBits( sal_uInt16 nItemId ) const; - - void SetItemData( sal_uInt16 nItemId, void* pNewData ); - void* GetItemData( sal_uInt16 nItemId ) const; - void SetItemImage( sal_uInt16 nItemId, const Image& rImage ); - Image GetItemImage( sal_uInt16 nItemId ) const; - void SetItemImageAngle( sal_uInt16 nItemId, long nAngle10 ); - void SetItemImageMirrorMode( sal_uInt16 nItemId, sal_Bool bMirror ); - void SetItemText( sal_uInt16 nItemId, const XubString& rText ); - const XubString& GetItemText( sal_uInt16 nItemId ) const; - void SetItemWindow( sal_uInt16 nItemId, Window* pNewWindow ); - Window* GetItemWindow( sal_uInt16 nItemId ) const; - sal_uInt16 GetHighlightItemId() const { return mnHighItemId; } - - void StartSelection(); - void EndSelection(); - - void SetItemDown( sal_uInt16 nItemId, sal_Bool bDown, sal_Bool bRelease = sal_True ); - - void SetItemState( sal_uInt16 nItemId, TriState eState ); - TriState GetItemState( sal_uInt16 nItemId ) const; - - void CheckItem( sal_uInt16 nItemId, sal_Bool bCheck = sal_True ); - sal_Bool IsItemChecked( sal_uInt16 nItemId ) const; - - void EnableItem( sal_uInt16 nItemId, sal_Bool bEnable = sal_True ); - sal_Bool IsItemEnabled( sal_uInt16 nItemId ) const; - - void TriggerItem( sal_uInt16 nItemId, sal_Bool bShift = sal_False, sal_Bool bCtrl = sal_False ); - void ShowItem( sal_uInt16 nItemId, sal_Bool bVisible = sal_True ); - void HideItem( sal_uInt16 nItemId ) { ShowItem( nItemId, sal_False ); } - sal_Bool IsItemVisible( sal_uInt16 nItemId ) const; - sal_Bool IsItemReallyVisible( sal_uInt16 nItemId ) const; - - void SetItemCommand( sal_uInt16 nItemId, const XubString& rCommand ); - const XubString& GetItemCommand( sal_uInt16 nItemId ) const; - - using Window::SetQuickHelpText; - void SetQuickHelpText( sal_uInt16 nItemId, const XubString& rText ); - using Window::GetQuickHelpText; - const XubString& GetQuickHelpText( sal_uInt16 nItemId ) const; - - void SetHelpText( sal_uInt16 nItemId, const XubString& rText ); - const XubString& GetHelpText( sal_uInt16 nItemId ) const; - - void SetHelpId( sal_uInt16 nItemId, const OString& rHelpId ); - OString GetHelpId( sal_uInt16 nItemId ) const; - - // window size according to current alignment, floating state and number of lines - Size CalcWindowSizePixel() const; - // window size according to current alignment, floating state and a given number of lines - Size CalcWindowSizePixel( sal_uInt16 nCalcLines ) const; - // window size according to current floating state and a given number of lines and a given alignment - Size CalcWindowSizePixel( sal_uInt16 nCalcLines, WindowAlign eAlign ) const; - // floating window size according to number of lines (uses the number of line breaks) - Size CalcFloatingWindowSizePixel() const; - // floating window size with a given number of lines - Size CalcFloatingWindowSizePixel( sal_uInt16 nCalcLines ) const; - // automatic window size for popoup mode - Size CalcPopupWindowSizePixel() const; - - // computes the smallest useful size when docked, ie with the first item visible only (+drag area and menu button) - Size CalcMinimumWindowSizePixel() const; - - void SetDockingRects( const Rectangle& rOutRect, - const Rectangle& rInRect ); - void SetFloatingLines( sal_uInt16 nFloatLines ); - sal_uInt16 GetFloatingLines() const; - - void SetStyle( WinBits nNewStyle ) { mnWinStyle = nNewStyle; } - WinBits GetStyle() const { return mnWinStyle; } - - // enable/disable undocking - void Lock( sal_Bool bLock = sal_True ); - - // read configuration to determine locking behaviour - static sal_Bool AlwaysLocked(); - - void EnableMenuStrings( sal_Bool bEnable = sal_True ) { mbMenuStrings = (bEnable != 0); } - sal_Bool IsMenuStringsEnabled() const { return mbMenuStrings; } - - void SetOutStyle( sal_uInt16 nNewStyle ); - sal_uInt16 GetOutStyle() const { return mnOutStyle; } - - void EnableCustomize( sal_Bool bEnable = sal_True ); - sal_Bool IsCustomize() { return mbCustomize; } - sal_Bool IsInCustomizeMode() const { return mbCustomizeMode; } - - void SetHelpText( const XubString& rText ) - { DockingWindow::SetHelpText( rText ); } - const XubString& GetHelpText() const - { return DockingWindow::GetHelpText(); } - - void SetHelpId( const OString& rId ) - { DockingWindow::SetHelpId( rId ); } - const OString& GetHelpId() const - { return DockingWindow::GetHelpId(); } - - void SetClickHdl( const Link& rLink ) { maClickHdl = rLink; } - const Link& GetClickHdl() const { return maClickHdl; } - void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; } - const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; } - void SetDropdownClickHdl( const Link& rLink ); - const Link& GetDropdownClickHdl() const; - void SetActivateHdl( const Link& rLink ) { maActivateHdl = rLink; } - const Link& GetActivateHdl() const { return maActivateHdl; } - void SetDeactivateHdl( const Link& rLink ) { maDeactivateHdl = rLink; } - const Link& GetDeactivateHdl() const { return maDeactivateHdl; } - void SetHighlightHdl( const Link& rLink ) { maHighlightHdl = rLink; } - const Link& GetHighlightHdl() const { return maHighlightHdl; } - void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } - const Link& GetSelectHdl() const { return maSelectHdl; } - void SetCommandHdl( const Link& aLink ) { maCommandHandler = aLink; } - const Link& GetCommandHdl() const { return maCommandHandler; } - void SetStateChangedHdl( const Link& aLink ) { maStateChangedHandler = aLink; } - const Link& GetStateChangedHdl() const { return maStateChangedHandler; } - void SetDataChangedHdl( const Link& aLink ) { maDataChangedHandler = aLink; } - const Link& GetDataChangedHdl() { return maDataChangedHandler; } - - // support for custom menu (eg for configuration) - // note: this menu will also be used to display currently - // clipped toolbox items, so you should only touch - // items that you added by yourself - // the private toolbox items will only use item ids starting from TOOLBOX_MENUITEM_START - // to allow for customization of the menu the coresponding handler is called - // when the menu button was clicked and before the menu is executed - void SetMenuType( sal_uInt16 aType = TOOLBOX_MENUTYPE_CUSTOMIZE ); - sal_uInt16 GetMenuType() const; - sal_Bool IsMenuEnabled() const; - PopupMenu* GetMenu() const; - void UpdateCustomMenu(); - void SetMenuButtonHdl( const Link& rLink ); - - // open custommenu - void ExecuteCustomMenu(); - - // allow Click Handler to detect special key - bool IsShift() const { return mbIsShift; } - // allow Click Handler to distinguish between mouse and key input - sal_Bool IsKeyEvent() const { return mbIsKeyEvent; } - - // allows framework to set/query the planned popupmode - sal_Bool WillUsePopupMode() const; - void WillUsePopupMode( sal_Bool b); - - // accessibility helpers - - // gets the displayed text - OUString GetDisplayText() const; - // returns the bounding box for the character at index nIndex - // where nIndex is relative to the starting index of the item - // with id nItemId (in coordinates of the displaying window) - Rectangle GetCharacterBounds( sal_uInt16 nItemId, long nIndex ) const; - // -1 is returned if no character is at that point - // if an index is found the corresponding item id is filled in (else 0) - long GetIndexForPoint( const Point& rPoint, sal_uInt16& rItemID ) const; - - const Size& GetDefaultImageSize() const; - void ChangeHighlight( sal_uInt16 nPos ); - - void SetImageListProvider(vcl::IImageListProvider* _pProvider); - void SetToolbarLayoutMode( ToolBoxLayoutMode eLayout ); -}; - -inline void ToolBox::CheckItem( sal_uInt16 nItemId, sal_Bool bCheck ) -{ - SetItemState( nItemId, (bCheck) ? STATE_CHECK : STATE_NOCHECK ); -} - -inline sal_Bool ToolBox::IsItemChecked( sal_uInt16 nItemId ) const -{ - return (GetItemState( nItemId ) == STATE_CHECK); -} - -inline Size ToolBox::CalcWindowSizePixel() const -{ - return CalcWindowSizePixel( mnLines ); -} - -inline Rectangle ToolBox::GetScrollRect() const -{ - return maUpperRect.GetUnion( maLowerRect ); -} - -inline void ToolBox::SetDockingRects( const Rectangle& rOutRect, - const Rectangle& rInRect ) -{ - maOutDockRect = rOutRect; - maInDockRect = rInRect; -} - -inline void ToolBox::SetFloatingLines( sal_uInt16 nNewLines ) -{ - mnFloatLines = nNewLines; -} - -inline sal_uInt16 ToolBox::GetFloatingLines() const -{ - return mnFloatLines; -} - -#endif // _SV_TOOLBOX_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/txtattr.hxx b/vcl/inc/vcl/txtattr.hxx deleted file mode 100644 index feb6131d12ee..000000000000 --- a/vcl/inc/vcl/txtattr.hxx +++ /dev/null @@ -1,227 +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 . - */ - -#ifndef _TXTATTR_HXX -#define _TXTATTR_HXX - -#include <vcl/dllapi.h> -#include <tools/color.hxx> -#include <vcl/vclenum.hxx> -#include <tools/string.hxx> -#include <tools/debug.hxx> - -class Font; - -#define TEXTATTR_INVALID 0 -#define TEXTATTR_FONTCOLOR 1 -#define TEXTATTR_HYPERLINK 2 -#define TEXTATTR_FONTWEIGHT 3 - -#define TEXTATTR_USER_START 1000 //start id for user defined text attributes -#define TEXTATTR_PROTECTED 4 - - -class VCL_DLLPUBLIC TextAttrib -{ -private: - sal_uInt16 mnWhich; - -protected: - TextAttrib( sal_uInt16 nWhich ) { mnWhich = nWhich; } - TextAttrib( const TextAttrib& rAttr ) { mnWhich = rAttr.mnWhich; } - -public: - - virtual ~TextAttrib(); - - sal_uInt16 Which() const { return mnWhich; } - virtual void SetFont( Font& rFont ) const = 0; - virtual TextAttrib* Clone() const = 0; - - virtual int operator==( const TextAttrib& rAttr ) const = 0; - int operator!=( const TextAttrib& rAttr ) const - { return !(*this == rAttr ); } -}; - - - -class VCL_DLLPUBLIC TextAttribFontColor : public TextAttrib -{ -private: - Color maColor; - -public: - TextAttribFontColor( const Color& rColor ); - TextAttribFontColor( const TextAttribFontColor& rAttr ); - ~TextAttribFontColor(); - - const Color& GetColor() const { return maColor; } - - virtual void SetFont( Font& rFont ) const; - virtual TextAttrib* Clone() const; - virtual int operator==( const TextAttrib& rAttr ) const; - -}; - -class VCL_DLLPUBLIC TextAttribFontWeight : public TextAttrib -{ -private: - FontWeight meWeight; - -public: - TextAttribFontWeight( FontWeight eWeight ); - TextAttribFontWeight( const TextAttribFontWeight& rAttr ); - ~TextAttribFontWeight(); - - virtual void SetFont( Font& rFont ) const; - virtual TextAttrib* Clone() const; - virtual int operator==( const TextAttrib& rAttr ) const; - - inline FontWeight getFontWeight() const { return meWeight; } -}; - - -class TextAttribHyperLink : public TextAttrib -{ -private: - XubString maURL; - XubString maDescription; - Color maColor; - -public: - TextAttribHyperLink( const TextAttribHyperLink& rAttr ); - ~TextAttribHyperLink(); - - void SetURL( const XubString& rURL ) { maURL = rURL; } - const XubString& GetURL() const { return maURL; } - - void SetDescription( const XubString& rDescr ) { maDescription = rDescr; } - const XubString& GetDescription() const { return maDescription; } - - void SetColor( const Color& rColor ) { maColor = rColor; } - const Color& GetColor() const { return maColor; } - - virtual void SetFont( Font& rFont ) const; - virtual TextAttrib* Clone() const; - virtual int operator==( const TextAttrib& rAttr ) const; -}; - -class VCL_DLLPUBLIC TextAttribProtect : public TextAttrib -{ -public: - TextAttribProtect(); - TextAttribProtect( const TextAttribProtect& rAttr ); - ~TextAttribProtect(); - - virtual void SetFont( Font& rFont ) const; - virtual TextAttrib* Clone() const; - virtual int operator==( const TextAttrib& rAttr ) const; - -}; - - -class TextCharAttrib -{ -private: - TextAttrib* mpAttr; - sal_uInt16 mnStart; - sal_uInt16 mnEnd; - -protected: - -public: - - TextCharAttrib( const TextAttrib& rAttr, sal_uInt16 nStart, sal_uInt16 nEnd ); - TextCharAttrib( const TextCharAttrib& rTextCharAttrib ); - ~TextCharAttrib(); - - const TextAttrib& GetAttr() const { return *mpAttr; } - - sal_uInt16 Which() const { return mpAttr->Which(); } - - sal_uInt16 GetStart() const { return mnStart; } - sal_uInt16& GetStart() { return mnStart; } - - sal_uInt16 GetEnd() const { return mnEnd; } - sal_uInt16& GetEnd() { return mnEnd; } - - inline sal_uInt16 GetLen() const; - - inline void MoveForward( sal_uInt16 nDiff ); - inline void MoveBackward( sal_uInt16 nDiff ); - - inline void Expand( sal_uInt16 nDiff ); - inline void Collaps( sal_uInt16 nDiff ); - - inline sal_Bool IsIn( sal_uInt16 nIndex ); - inline sal_Bool IsInside( sal_uInt16 nIndex ); - inline sal_Bool IsEmpty(); - -}; - -inline sal_uInt16 TextCharAttrib::GetLen() const -{ - DBG_ASSERT( mnEnd >= mnStart, "TextCharAttrib: nEnd < nStart!" ); - return mnEnd-mnStart; -} - -inline void TextCharAttrib::MoveForward( sal_uInt16 nDiff ) -{ - DBG_ASSERT( ((long)mnEnd + nDiff) <= 0xFFFF, "TextCharAttrib: MoveForward?!" ); - mnStart = mnStart + nDiff; - mnEnd = mnEnd + nDiff; -} - -inline void TextCharAttrib::MoveBackward( sal_uInt16 nDiff ) -{ - DBG_ASSERT( ((long)mnStart - nDiff) >= 0, "TextCharAttrib: MoveBackward?!" ); - mnStart = mnStart - nDiff; - mnEnd = mnEnd - nDiff; -} - -inline void TextCharAttrib::Expand( sal_uInt16 nDiff ) -{ - DBG_ASSERT( ( ((long)mnEnd + nDiff) <= (long)0xFFFF ), "TextCharAttrib: Expand?!" ); - mnEnd = mnEnd + nDiff; -} - -inline void TextCharAttrib::Collaps( sal_uInt16 nDiff ) -{ - DBG_ASSERT( (long)mnEnd - nDiff >= (long)mnStart, "TextCharAttrib: Collaps?!" ); - mnEnd = mnEnd - nDiff; -} - -inline sal_Bool TextCharAttrib::IsIn( sal_uInt16 nIndex ) -{ - return ( ( mnStart <= nIndex ) && ( mnEnd >= nIndex ) ); -} - -inline sal_Bool TextCharAttrib::IsInside( sal_uInt16 nIndex ) -{ - return ( ( mnStart < nIndex ) && ( mnEnd > nIndex ) ); -} - -inline sal_Bool TextCharAttrib::IsEmpty() -{ - return mnStart == mnEnd; -} - -#endif // _TXTATTR_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/unohelp.hxx b/vcl/inc/vcl/unohelp.hxx deleted file mode 100644 index 91168436c3ad..000000000000 --- a/vcl/inc/vcl/unohelp.hxx +++ /dev/null @@ -1,63 +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 . - */ - -#ifndef _VCL_UNOHELP_HXX -#define _VCL_UNOHELP_HXX - -#include <com/sun/star/uno/Reference.h> -#include <rtl/ustring.hxx> -#include <vcl/dllapi.h> - -namespace com { -namespace sun { -namespace star { -namespace i18n { - class XBreakIterator; - class XCharacterClassification; - class XCollator; -}}}} - -namespace com { -namespace sun { -namespace star { -namespace accessibility { - struct AccessibleEventObject; -} -}}} - -namespace comphelper { - namespace string { - class NaturalStringSorter; -}} - -namespace vcl -{ -namespace unohelper -{ -VCL_DLLPUBLIC ::com::sun::star::uno::Reference < ::com::sun::star::i18n::XBreakIterator > CreateBreakIterator(); -VCL_DLLPUBLIC ::com::sun::star::uno::Reference < ::com::sun::star::i18n::XCharacterClassification> CreateCharacterClassification(); -//Get access to singleton Natural String Sorter collating for Application::GetLocale -VCL_DLLPUBLIC const comphelper::string::NaturalStringSorter& getNaturalStringSorterForAppLocale(); -VCL_DLLPUBLIC OUString CreateLibraryName( const sal_Char* pModName, sal_Bool bSUPD ); -VCL_DLLPUBLIC void NotifyAccessibleStateEventGlobally( const ::com::sun::star::accessibility::AccessibleEventObject& rEventObject ); -}} // namespace vcl::unohelper - -#endif // _VCL_UNOHELP_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/unohelp2.hxx b/vcl/inc/vcl/unohelp2.hxx deleted file mode 100644 index 138ad507d656..000000000000 --- a/vcl/inc/vcl/unohelp2.hxx +++ /dev/null @@ -1,77 +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 . - */ - -#ifndef _VCL_UNOHELP2_HXX -#define _VCL_UNOHELP2_HXX - -#include <com/sun/star/datatransfer/XTransferable.hpp> -#include <cppuhelper/weak.hxx> -#include <tools/string.hxx> -#include <osl/mutex.hxx> - -namespace com { namespace sun { namespace star { namespace datatransfer { namespace clipboard { - class XClipboard; -} } } } } -#include <vcl/dllapi.h> - -namespace vcl { namespace unohelper { - - class VCL_DLLPUBLIC TextDataObject : - public ::com::sun::star::datatransfer::XTransferable, - public ::cppu::OWeakObject - { - private: - String maText; - - public: - TextDataObject( const String& rText ); - ~TextDataObject(); - - String& GetString() { return maText; } - - // ::com::sun::star::uno::XInterface - ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - void SAL_CALL acquire() throw() { OWeakObject::acquire(); } - void SAL_CALL release() throw() { OWeakObject::release(); } - - // ::com::sun::star::datatransfer::XTransferable - ::com::sun::star::uno::Any SAL_CALL getTransferData( const ::com::sun::star::datatransfer::DataFlavor& aFlavor ) throw(::com::sun::star::datatransfer::UnsupportedFlavorException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException); - ::com::sun::star::uno::Sequence< ::com::sun::star::datatransfer::DataFlavor > SAL_CALL getTransferDataFlavors( ) throw(::com::sun::star::uno::RuntimeException); - sal_Bool SAL_CALL isDataFlavorSupported( const ::com::sun::star::datatransfer::DataFlavor& aFlavor ) throw(::com::sun::star::uno::RuntimeException); - - /// copies a given string to a given clipboard - static void CopyStringTo( - const String& rContent, - const ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard >& rxClipboard - ); - }; - - struct MutexHelper - { - private: - ::osl::Mutex maMutex; - public: - ::osl::Mutex& GetMutex() { return maMutex; } - }; - -}} // namespace vcl::unohelper - -#endif // _VCL_UNOHELP2_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/unowrap.hxx b/vcl/inc/vcl/unowrap.hxx deleted file mode 100644 index 9632728eac6a..000000000000 --- a/vcl/inc/vcl/unowrap.hxx +++ /dev/null @@ -1,86 +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 . - */ - -#ifndef _VCL_UNOWRAP_HXX -#define _VCL_UNOWRAP_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <com/sun/star/uno/Reference.h> - -class XWindowPeer; -class XToolkit; -class EventList; -class Window; -class OutputDevice; -class MouseEvent; -class CommandEvent; -class KeyEvent; -class Rectangle; -class Menu; - -namespace com { -namespace sun { -namespace star { -namespace awt { - class XGraphics; - class XToolkit; - class XWindowPeer; -} -namespace lang { - class XMultiServiceFactory; -} -} } } - -namespace com { -namespace sun { -namespace star { -namespace accessibility { - class XAccessible; -}}}} - -class VCL_DLLPUBLIC UnoWrapperBase -{ -public: - virtual void Destroy() = 0; - - // Toolkit - virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XToolkit > GetVCLToolkit() = 0; - - // Graphics - virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics > CreateGraphics( OutputDevice* pOutDev ) = 0; - virtual void ReleaseAllGraphics( OutputDevice* pOutDev ) = 0; - - // Window - virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer> GetWindowInterface( Window* pWindow, sal_Bool bCreate ) = 0; - virtual void SetWindowInterface( Window* pWindow, ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xIFace ) = 0; - - virtual void WindowDestroyed( Window* pWindow ) = 0; - - // Accessibility - virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > - CreateAccessible( Menu* pMenu, sal_Bool bIsMenuBar ) = 0; - -protected: - ~UnoWrapperBase() {} -}; - -#endif // _VCL_UNOWRAP_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/vclenum.hxx b/vcl/inc/vcl/vclenum.hxx deleted file mode 100644 index e0760b131c01..000000000000 --- a/vcl/inc/vcl/vclenum.hxx +++ /dev/null @@ -1,137 +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 . - */ - -#ifndef _VCL_VCLENUM_HXX -#define _VCL_VCLENUM_HXX - -#include <sal/types.h> -#include <tools/solar.h> -#include <tools/fontenum.hxx> -#include <rsc/rsc-vcl-shared-types.hxx> - -// ------------------------------------------------------------ - -enum ExtTimeFieldFormat { EXTTIMEF_24H_SHORT, EXTTIMEF_24H_LONG, - EXTTIMEF_12H_SHORT, EXTTIMEF_12H_LONG, - EXTTIMEF_DURATION_SHORT, EXTTIMEF_DURATION_LONG }; - -// ------------------------------------------------------------ - -enum ExtDateFieldFormat { XTDATEF_SYSTEM_SHORT, XTDATEF_SYSTEM_SHORT_YY, XTDATEF_SYSTEM_SHORT_YYYY, - XTDATEF_SYSTEM_LONG, - XTDATEF_SHORT_DDMMYY, XTDATEF_SHORT_MMDDYY, XTDATEF_SHORT_YYMMDD, - XTDATEF_SHORT_DDMMYYYY, XTDATEF_SHORT_MMDDYYYY, XTDATEF_SHORT_YYYYMMDD, - XTDATEF_SHORT_YYMMDD_DIN5008, XTDATEF_SHORT_YYYYMMDD_DIN5008, ExtDateFieldFormat_FORCE_EQUAL_SIZE=SAL_MAX_ENUM }; - -// ------------------------------------------------------------ - -enum GradientStyle -{ - GradientStyle_LINEAR = 0, - GradientStyle_AXIAL = 1, - GradientStyle_RADIAL = 2, - GradientStyle_ELLIPTICAL = 3, - GradientStyle_SQUARE = 4, - GradientStyle_RECT = 5, - GradientStyle_FORCE_EQUAL_SIZE = SAL_MAX_ENUM -}; - -// ------------------------------------------------------------ - -// to avoid conflicts with enum's declared otherwise -#define HATCH_SINGLE HatchStyle_SINGLE -#define HATCH_DOUBLE HatchStyle_DOUBLE -#define HATCH_TRIPLE HatchStyle_TRIPLE -#define HATCH_FORCE_EQUAL_SIZE HatchStyle_FORCE_EQUAL_SIZE - -enum HatchStyle -{ - HATCH_SINGLE = 0, - HATCH_DOUBLE = 1, - HATCH_TRIPLE = 2, - HatchStyle_FORCE_EQUAL_SIZE = SAL_MAX_ENUM -}; - -// ------------------------------------------------------------ - -// to avoid conflicts with enum's declared otherwise -#define LINE_NONE LineStyle_NONE -#define LINE_SOLID LineStyle_SOLID -#define LINE_DASH LineStyle_DASH -#define LINE_FORCE_EQUAL_SIZE LineStyle_FORCE_EQUAL_SIZE - -enum LineStyle -{ - LINE_NONE = 0, - LINE_SOLID = 1, - LINE_DASH = 2, - LineStyle_FORCE_EQUAL_SIZE = SAL_MAX_ENUM -}; - -// ------------------------------------------------------------ - -enum RasterOp { ROP_OVERPAINT, ROP_XOR, ROP_0, ROP_1, ROP_INVERT }; - -// ------------------------------------------------------------ - -enum FontAutoHint { AUTOHINT_DONTKNOW, AUTOHINT_FALSE, AUTOHINT_TRUE }; - -enum FontHinting { HINTING_DONTKNOW, HINTING_FALSE, HINTING_TRUE }; - -enum FontHintStyle { HINT_NONE, HINT_SLIGHT, HINT_MEDIUM, HINT_FULL }; - -// ------------------------------------------------------------ - -typedef sal_uInt32 sal_UCS4; // TODO: this should be moved to rtl - -enum OutDevSupportType { OutDevSupport_TransparentRect, OutDevSupport_B2DClip, OutDevSupport_B2DDraw }; - -struct ItalicMatrix -{ - double xx, xy, yx, yy; - ItalicMatrix() : xx(1), xy(0), yx(0), yy(1) {} -}; - -inline bool operator ==(const ItalicMatrix& a, const ItalicMatrix& b) -{ - return a.xx == b.xx && a.xy == b.xy && a.yx == b.yx && a.yy == b.yy; -} - -inline bool operator !=(const ItalicMatrix& a, const ItalicMatrix& b) -{ - return a.xx != b.xx || a.xy != b.xy || a.yx != b.yx || a.yy != b.yy; -} - -enum VclAlign -{ - VCL_ALIGN_FILL, - VCL_ALIGN_START, - VCL_ALIGN_END, - VCL_ALIGN_CENTER -}; - -enum VclPackType -{ - VCL_PACK_START = 0, - VCL_PACK_END = 1 -}; - -#endif // _VCL_VCLENUM_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/vclevent.hxx b/vcl/inc/vcl/vclevent.hxx deleted file mode 100644 index bc4fa01362c2..000000000000 --- a/vcl/inc/vcl/vclevent.hxx +++ /dev/null @@ -1,289 +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 . - */ - -#ifndef _VCL_VCLEVENT_HXX -#define _VCL_VCLEVENT_HXX - -#include "tools/link.hxx" -#include "tools/rtti.hxx" -#include "vcl/dllapi.h" -#include "vcl/impdel.hxx" - -#include <com/sun/star/uno/Reference.hxx> - -#include <list> -#include <vector> - -class Window; -class Menu; - -namespace com { namespace sun { namespace star { - namespace accessibility { - class XAccessible; - } -}}} - -#define VCLEVENT_OBJECT_DYING 1 - -// VclWindowEvent: -#define VCLEVENT_WINDOW_CHILDCREATED 500 // pData = Window* -#define VCLEVENT_WINDOW_CHILDDESTROYED 501 // pData = Window* -#define VCLEVENT_WINDOW_PAINT 1000 // pData = Rectangle* -#define VCLEVENT_WINDOW_MOVE 1001 -#define VCLEVENT_WINDOW_RESIZE 1002 -#define VCLEVENT_WINDOW_SHOW 1003 -#define VCLEVENT_WINDOW_HIDE 1004 -#define VCLEVENT_WINDOW_ACTIVATE 1005 -#define VCLEVENT_WINDOW_DEACTIVATE 1006 // pData = Window* = pPrevActiveWindow -#define VCLEVENT_WINDOW_CLOSE 1007 -#define VCLEVENT_WINDOW_GETFOCUS 1008 -#define VCLEVENT_WINDOW_LOSEFOCUS 1009 -#define VCLEVENT_WINDOW_MINIMIZE 1010 -#define VCLEVENT_WINDOW_NORMALIZE 1011 -#define VCLEVENT_WINDOW_KEYINPUT 1012 // pData = KeyEvent* -#define VCLEVENT_WINDOW_KEYUP 1013 // pData = KeyEvent* -#define VCLEVENT_WINDOW_COMMAND 1014 // pData = CommandEvent* -#define VCLEVENT_WINDOW_MOUSEMOVE 1015 // pData = MouseEvent* -#define VCLEVENT_WINDOW_MOUSEBUTTONDOWN 1016 // pData = MouseEvent* -#define VCLEVENT_WINDOW_MOUSEBUTTONUP 1017 // pData = MouseEvent* -#define VCLEVENT_WINDOW_FRAMETITLECHANGED 1018 // pData = XubString* = oldTitle -#define VCLEVENT_APPLICATION_DATACHANGED 1019 // pData = DataChangedEvent* -#define VCLEVENT_WINDOW_ENABLED 1020 -#define VCLEVENT_WINDOW_DISABLED 1021 -#define VCLEVENT_WINDOW_DATACHANGED 1022 // pData = DataChangedEvent* -#define VCLEVENT_WINDOW_ZOOM 1023 // pData = ZoomEvent* -#define VCLEVENT_WINDOW_SCROLL 1024 // pData = ScrollEvent* - -// VclWindowEvent -#define VCLEVENT_CONTROL_GETFOCUS 1100 -#define VCLEVENT_CONTROL_LOSEFOCUS 1101 -#define VCLEVENT_BUTTON_CLICK 1102 -#define VCLEVENT_PUSHBUTTON_TOGGLE 1103 -#define VCLEVENT_RADIOBUTTON_TOGGLE 1104 -#define VCLEVENT_CHECKBOX_TOGGLE 1105 -#define VCLEVENT_COMBOBOX_SELECT 1106 -#define VCLEVENT_COMBOBOX_DOUBLECLICK 1107 -#define VCLEVENT_LISTBOX_SELECT 1108 -#define VCLEVENT_LISTBOX_DOUBLECLICK 1109 -#define VCLEVENT_EDIT_MODIFY 1110 -#define VCLEVENT_SCROLLBAR_SCROLL 1111 -#define VCLEVENT_SCROLLBAR_ENDSCROLL 1112 -#define VCLEVENT_SPINBUTTON_UP 1113 -#define VCLEVENT_SPINBUTTON_DOWN 1114 -#define VCLEVENT_SPINFIELD_UP 1115 -#define VCLEVENT_SPINFIELD_DOWN 1116 -#define VCLEVENT_SPINFIELD_FIRST 1117 -#define VCLEVENT_SPINFIELD_LAST 1118 -#define VCLEVENT_STATUSBAR_CLICK 1119 -#define VCLEVENT_STATUSBAR_DOUBLECLICK 1120 -#define VCLEVENT_TOOLBOX_CLICK 1121 -#define VCLEVENT_TOOLBOX_DOUBLECLICK 1122 -#define VCLEVENT_TOOLBOX_ACTIVATE 1123 -#define VCLEVENT_TOOLBOX_DEACTIVATE 1124 -#define VCLEVENT_TOOLBOX_HIGHLIGHT 1125 -#define VCLEVENT_TOOLBOX_SELECT 1126 -// Resort later... -#define VCLEVENT_LISTBOX_SCROLLED 1127 -#define VCLEVENT_COMBOBOX_SCROLLED 1128 -#define VCLEVENT_EDIT_SELECTIONCHANGED 1129 -#define VCLEVENT_DROPDOWN_OPEN 1130 -#define VCLEVENT_DROPDOWN_CLOSE 1131 - -#define VCLEVENT_TOOLBOX_ITEMADDED 1132 // pData = itempos -#define VCLEVENT_TOOLBOX_ITEMREMOVED 1133 // pData = itempos -#define VCLEVENT_TOOLBOX_ALLITEMSCHANGED 1134 -#define VCLEVENT_TOOLBOX_HIGHLIGHTOFF 1135 // pData = itempos -#define VCLEVENT_WINDOW_MENUBARADDED 1136 // pData = pMenuBar -#define VCLEVENT_TABPAGE_ACTIVATE 1137 // pData = pageid -#define VCLEVENT_TABPAGE_DEACTIVATE 1138 // pData = pageid -#define VCLEVENT_TABBAR_PAGEENABLED 1139 // pData = pageid -#define VCLEVENT_TABBAR_PAGEDISABLED 1140 // pData = pageid -#define VCLEVENT_TABBAR_PAGESELECTED 1141 // pData = pageid -#define VCLEVENT_TABBAR_PAGEACTIVATED 1142 // pData = pageid -#define VCLEVENT_TABBAR_PAGEDEACTIVATED 1143 // pData = pageid -#define VCLEVENT_TABBAR_PAGEINSERTED 1144 // pData = pageid -#define VCLEVENT_TABBAR_PAGEREMOVED 1145 // pData = pageid -#define VCLEVENT_TABBAR_PAGEMOVED 1146 // pData = Pair( pagepos_old, pagepos_new ) -#define VCLEVENT_TABBAR_PAGETEXTCHANGED 1147 // pData = pageid -#define VCLEVENT_COMBOBOX_DESELECT 1148 -#define VCLEVENT_TOOLBOX_ITEMTEXTCHANGED 1149 // pData = itempos -#define VCLEVENT_TABPAGE_INSERTED 1150 // pData = pageid -#define VCLEVENT_TABPAGE_REMOVED 1151 // pData = pageid -#define VCLEVENT_TABPAGE_REMOVEDALL 1152 -#define VCLEVENT_LISTBOX_ITEMADDED 1153 // pData = itempos -#define VCLEVENT_LISTBOX_ITEMREMOVED 1154 // pData = itempos, -1=ALL -#define VCLEVENT_COMBOBOX_ITEMADDED 1155 // pData = itempos -#define VCLEVENT_COMBOBOX_ITEMREMOVED 1156 // pData = itempos, -1=ALL -// free 1157 -#define VCLEVENT_WINDOW_MENUBARREMOVED 1158 // pData = pMenuBar -#define VCLEVENT_STATUSBAR_ITEMADDED 1159 // pData = itemid -#define VCLEVENT_STATUSBAR_ITEMREMOVED 1160 // pData = itemid -#define VCLEVENT_STATUSBAR_ALLITEMSREMOVED 1161 -#define VCLEVENT_STATUSBAR_SHOWITEM 1162 // pData = itemid -#define VCLEVENT_STATUSBAR_HIDEITEM 1163 // pData = itemid -#define VCLEVENT_STATUSBAR_SHOWALLITEMS 1164 -#define VCLEVENT_STATUSBAR_HIDEALLITEMS 1165 -#define VCLEVENT_STATUSBAR_DRAWITEM 1166 // pData = itemid -#define VCLEVENT_STATUSBAR_NAMECHANGED 1167 // pData = itemid -#define VCLEVENT_TOOLBOX_ITEMENABLED 1168 // pData = itempos -#define VCLEVENT_TOOLBOX_ITEMDISABLED 1169 // pData = itempos -#define VCLEVENT_TABPAGE_PAGETEXTCHANGED 1170 // pData = pageid -#define VCLEVENT_ROADMAP_ITEMSELECTED 1171 -#define VCLEVENT_TOOLBOX_FORMATCHANGED 1172 // request new layout -#define VCLEVENT_COMBOBOX_SETTEXT 1173 -// #i92103# -#define VCLEVENT_ITEM_EXPANDED 1174 -#define VCLEVENT_ITEM_COLLAPSED 1175 -#define VCLEVENT_DROPDOWN_PRE_OPEN 1176 - -// VclMenuEvent -#define VCLEVENT_MENU_ACTIVATE 1200 -#define VCLEVENT_MENU_DEACTIVATE 1201 -#define VCLEVENT_MENU_HIGHLIGHT 1202 -#define VCLEVENT_MENU_SELECT 1203 -#define VCLEVENT_MENU_ENABLE 1204 -#define VCLEVENT_MENU_INSERTITEM 1205 -#define VCLEVENT_MENU_REMOVEITEM 1206 -#define VCLEVENT_MENU_SUBMENUACTIVATE 1207 -#define VCLEVENT_MENU_SUBMENUDEACTIVATE 1208 -#define VCLEVENT_MENU_SUBMENUCHANGED 1209 -#define VCLEVENT_MENU_DEHIGHLIGHT 1210 -#define VCLEVENT_MENU_DISABLE 1211 -#define VCLEVENT_MENU_ITEMTEXTCHANGED 1212 -#define VCLEVENT_MENU_ITEMCHECKED 1213 -#define VCLEVENT_MENU_ITEMUNCHECKED 1214 -#define VCLEVENT_MENU_ACCESSIBLENAMECHANGED 1215 - -#define VCLEVENT_MENU_SHOW 1250 -#define VCLEVENT_MENU_HIDE 1251 - -#define VCLEVENT_TOOLBOX_ITEMWINDOWCHANGED 1216 - -// DockingWindow -#define VCLEVENT_WINDOW_STARTDOCKING 1217 // pData = DockingData -#define VCLEVENT_WINDOW_DOCKING 1218 -#define VCLEVENT_WINDOW_ENDDOCKING 1219 // pData = EndDockingData -#define VCLEVENT_WINDOW_PREPARETOGGLEFLOATING 1220 // pData = sal_Bool -#define VCLEVENT_WINDOW_TOGGLEFLOATING 1221 -#define VCLEVENT_WINDOW_ENDPOPUPMODE 1222 // pData = EndPopupModeData - -#define VCLEVENT_TOOLBOX_BUTTONSTATECHANGED 1223 // pData = itempos -#define VCLEVENT_TABLECELL_NAMECHANGED 1224 // pData = struct(Entry, Column, oldText) -#define VCLEVENT_TABLEROW_SELECT 1225 - -class VCL_DLLPUBLIC VclSimpleEvent -{ -private: - sal_uLong nId; - -public: - VclSimpleEvent( sal_uLong n ) { nId = n; } - virtual ~VclSimpleEvent() {} - TYPEINFO(); - - sal_uLong GetId() const { return nId; } -}; - -class VCL_DLLPUBLIC VclWindowEvent : public VclSimpleEvent -{ -private: - Window* pWindow; - void* pData; - -public: - VclWindowEvent( Window* pWin, sal_uLong n, void* pDat = NULL ) : VclSimpleEvent(n) { pWindow = pWin; pData = pDat; } - virtual ~VclWindowEvent() {} - TYPEINFO(); - - Window* GetWindow() const { return pWindow; } - void* GetData() const { return pData; } -}; - -class VCL_DLLPUBLIC VclMenuEvent : public VclSimpleEvent -{ -private: - Menu* pMenu; - sal_uInt16 mnPos; - -public: - VclMenuEvent( Menu* pM, sal_uLong n, sal_uInt16 nPos ) : VclSimpleEvent(n) { pMenu = pM; mnPos = nPos; } - virtual ~VclMenuEvent() {} - TYPEINFO(); - - Menu* GetMenu() const { return pMenu; } - sal_uInt16 GetItemPos() const { return mnPos; } -}; - -class VCL_DLLPUBLIC VclAccessibleEvent: public VclSimpleEvent -{ -public: - VclAccessibleEvent( sal_uLong n, const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxAccessible ); - virtual ~VclAccessibleEvent(); - ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetAccessible() const; - -private: - ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > mxAccessible; -}; - -class VCL_DLLPUBLIC VclEventListeners -{ -public: - void Call( VclSimpleEvent* pEvent ) const; - - // stops notifying when any handler has processed the event - // and returns sal_True in that case - // a handler must return sal_True to signal that it has processed the event - sal_Bool Process( VclSimpleEvent* pEvent ) const; - void addListener( const Link& rListener ); - void removeListener( const Link& rListener ); -private: - std::list<Link> m_aListeners; -}; - -class VCL_DLLPUBLIC VclEventListeners2 : public vcl::DeletionNotifier -{ - std::list< Link > m_aListeners; - - struct ListenerIt - { - std::list< Link >::iterator m_aIt; - bool m_bWasInvalidated; - - ListenerIt(const std::list<Link>::iterator& rIt) - : m_aIt(rIt) - , m_bWasInvalidated( false ) - {} - }; - - std::vector< ListenerIt > m_aIterators; - - -public: - VclEventListeners2(); - ~VclEventListeners2(); - - void addListener( const Link& ); - void removeListener( const Link& ); - - void callListeners( VclSimpleEvent* ); -}; - -#endif // _VCL_VCLEVENT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/vclmain.hxx b/vcl/inc/vcl/vclmain.hxx deleted file mode 100644 index 1b60cfba42ce..000000000000 --- a/vcl/inc/vcl/vclmain.hxx +++ /dev/null @@ -1,27 +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/. - */ - -#ifndef INCLUDED_VCL_VCLMAIN_HXX -#define INCLUDED_VCL_VCLMAIN_HXX - -#include "sal/config.h" - -namespace vclmain { - -// Function called from vclmain's implementation of main, needs to be -// implemented by the application and needs to instantiate a (static, derived) -// instance of Application (where the Application constructor takes care to link -// that instance to ImplSVData.mpApp): -void createApplication(); - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/vclmedit.hxx b/vcl/inc/vcl/vclmedit.hxx deleted file mode 100644 index 63caa3b4c352..000000000000 --- a/vcl/inc/vcl/vclmedit.hxx +++ /dev/null @@ -1,142 +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 . - */ - -#ifndef _VCLMEDIT_HXX -#define _VCLMEDIT_HXX - -#include <tools/wintypes.hxx> -#include <vcl/edit.hxx> -#include <vcl/dllapi.h> - - -class ImpVclMEdit; -class Timer; -class ExtTextEngine; -class ExtTextView; - -class VCL_DLLPUBLIC VclMultiLineEdit : public Edit -{ -private: - ImpVclMEdit* pImpVclMEdit; - - OUString aSaveValue; - Link aModifyHdlLink; - - Timer* pUpdateDataTimer; - Link aUpdateDataHdlLink; - -protected: - - DECL_LINK( ImpUpdateDataHdl, void* ); - void StateChanged( StateChangedType nType ); - void DataChanged( const DataChangedEvent& rDCEvt ); - virtual long PreNotify( NotifyEvent& rNEvt ); - long Notify( NotifyEvent& rNEvt ); - using Control::ImplInitSettings; - void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); - WinBits ImplInitStyle( WinBits nStyle ); - - ExtTextEngine* GetTextEngine() const; - ExtTextView* GetTextView() const; - ScrollBar* GetVScrollBar() const; - -public: - VclMultiLineEdit( Window* pParent, WinBits nWinStyle = WB_LEFT | WB_BORDER ); - VclMultiLineEdit( Window* pParent, const ResId& rResId ); - virtual ~VclMultiLineEdit(); - - - virtual void Modify(); - virtual void UpdateData(); - - virtual void SetModifyFlag(); - virtual void ClearModifyFlag(); - virtual sal_Bool IsModified() const; - - virtual void EnableUpdateData( sal_uLong nTimeout = EDIT_UPDATEDATA_TIMEOUT ); - virtual void DisableUpdateData() { delete pUpdateDataTimer; pUpdateDataTimer = NULL; } - virtual sal_uLong IsUpdateDataEnabled() const; - - virtual void SetReadOnly( sal_Bool bReadOnly = sal_True ); - virtual sal_Bool IsReadOnly() const; - - void EnableFocusSelectionHide( sal_Bool bHide ); - - virtual void SetMaxTextLen( xub_StrLen nMaxLen = 0 ); - virtual xub_StrLen GetMaxTextLen() const; - - virtual void SetSelection( const Selection& rSelection ); - virtual const Selection& GetSelection() const; - - virtual void ReplaceSelected( const OUString& rStr ); - virtual void DeleteSelected(); - virtual OUString GetSelected() const; - virtual OUString GetSelected( LineEnd aSeparator ) const; - - virtual void Cut(); - virtual void Copy(); - virtual void Paste(); - - virtual void SetText( const OUString& rStr ); - virtual void SetText( const OUString& rStr, const Selection& rNewSelection ) - { SetText( rStr ); SetSelection( rNewSelection ); } - OUString GetText() const; - OUString GetText( LineEnd aSeparator ) const; - String GetTextLines( LineEnd aSeparator ) const; - - void SetRightToLeft( sal_Bool bRightToLeft ); - sal_Bool IsRightToLeft() const; - - void SaveValue() { aSaveValue = GetText(); } - const OUString& GetSavedValue() const { return aSaveValue; } - - void SetModifyHdl( const Link& rLink ) { aModifyHdlLink = rLink; } - const Link& GetModifyHdl() const { return aModifyHdlLink; } - - void SetUpdateDataHdl( const Link& rLink ) { aUpdateDataHdlLink = rLink; } - - virtual void Resize(); - virtual void GetFocus(); - - Size CalcMinimumSize() const; - Size CalcAdjustedSize( const Size& rPrefSize ) const; - using Edit::CalcSize; - Size CalcSize( sal_uInt16 nColumns, sal_uInt16 nLines ) const; - void GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines ) const; - - void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - - void SetLeftMargin( sal_uInt16 n ); - - void DisableSelectionOnFocus(); - - void SetTextSelectable( sal_Bool bTextSelectable ); - void EnableCursor( sal_Bool bEnable ); - - virtual bool set_property(const OString &rKey, const OString &rValue); -}; - -inline sal_uLong VclMultiLineEdit::IsUpdateDataEnabled() const -{ - return pUpdateDataTimer ? pUpdateDataTimer->GetTimeout() : 0; -} - -#endif //_VCLMEDIT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/virdev.hxx b/vcl/inc/vcl/virdev.hxx deleted file mode 100644 index 5d8a70e8f3dc..000000000000 --- a/vcl/inc/vcl/virdev.hxx +++ /dev/null @@ -1,142 +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 . - */ - -#ifndef _SV_VIRDEV_HXX -#define _SV_VIRDEV_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/outdev.hxx> -#include <basebmp/bitmapdevice.hxx> - -// ----------------- -// - VirtualDevice - -// ----------------- - -class SalVirtualDevice; -struct SystemGraphicsData; - -class VCL_DLLPUBLIC VirtualDevice : public OutputDevice -{ - friend class Application; - friend class OutputDevice; - -private: - SalVirtualDevice* mpVirDev; - VirtualDevice* mpPrev; - VirtualDevice* mpNext; - sal_uInt16 mnBitCount; - sal_Bool mbScreenComp; - sal_Int8 mnAlphaDepth; - sal_uInt8 meRefDevMode; - - SAL_DLLPRIVATE void ImplInitVirDev( const OutputDevice* pOutDev, long nDX, long nDY, sal_uInt16 nBitCount, const SystemGraphicsData *pData = NULL ); - SAL_DLLPRIVATE sal_Bool InnerImplSetOutputSizePixel( const Size& rNewSize, sal_Bool bErase, const basebmp::RawMemorySharedArray &pBuffer ); - SAL_DLLPRIVATE sal_Bool ImplSetOutputSizePixel( const Size& rNewSize, sal_Bool bErase, const basebmp::RawMemorySharedArray &pBuffer ); - - // Copy assignment is forbidden and not implemented. - VirtualDevice (const VirtualDevice &); - VirtualDevice & operator= (const VirtualDevice &); - - /** Used for alpha VDev, to set areas to opaque - - @since #i32109# - */ - SAL_DLLPRIVATE void ImplFillOpaqueRectangle( const Rectangle& rRect ); - - // TODO: add extra member for refdev backward compatibility options - #define REFDEV_FORCE_ZERO_EXTLEAD 0x80 - SAL_DLLPRIVATE bool ForceZeroExtleadBug() const - { return ((meRefDevMode & REFDEV_FORCE_ZERO_EXTLEAD) != 0); } -public: - /** Create a virtual device of size 1x1 - - @param nBitCount - Bit depth of the generated virtual device. Use 0 here, to - indicate: take default screen depth. Only 0, 1 and 8 - are allowed here, with 1 denoting binary mask and 8 a graylevel mask. - */ - VirtualDevice( sal_uInt16 nBitCount = 0 ); - - /** Create a virtual device of size 1x1 - - @param rCompDev - The generated vdev will be compatible to this device. - - @param nBitCount - Bit depth of the generated virtual device. Use 0 here, to - indicate: take default screen depth. Only 0 and 1 - are allowed here, with 1 denoting binary mask. - */ - VirtualDevice( const OutputDevice& rCompDev, - sal_uInt16 nBitCount = 0 ); - - /** Create a virtual device of size 1x1 with alpha channel - - @param rCompDev - The generated vdev will be compatible to this device. - - @param nBitCount - Bit depth of the generated virtual device. Use 0 here, to - indicate: take default screen depth. Only 0 and 1 - are allowed here, with 1 denoting binary mask. - - @param nAlphaBitCount - Bit depth of the generated virtual device. Use 0 here, to - indicate: take default screen depth. Only 0 and 1 - are allowed here, with 1 denoting binary mask. - */ - VirtualDevice( const OutputDevice& rCompDev, - sal_uInt16 nBitCount, sal_uInt16 nAlphaBitCount ); - - /** Create a virtual device using an existing system dependent device or graphics context - Any rendering will happen directly on the context and not on any intermediate bitmap. - Note: This might not be suported on all platforms ! - */ - VirtualDevice( const SystemGraphicsData *pData, sal_uInt16 nBitCount ); - - virtual ~VirtualDevice(); - - sal_Bool SetOutputSizePixel( const Size& rNewSize, sal_Bool bErase = sal_True ); - sal_Bool SetOutputSizePixelScaleOffsetAndBuffer( const Size& rNewSize, const Fraction& rScale, const Point& rNewOffset, const basebmp::RawMemorySharedArray &pBuffer ); - sal_Bool SetOutputSize( const Size& rNewSize, sal_Bool bErase = sal_True ) - { return SetOutputSizePixel( LogicToPixel( rNewSize ), bErase ); } - - // reference device modes for different compatibility levels - enum RefDevMode { REFDEV_NONE = 0, - REFDEV_MODE06 = 1, // 600 dpi - REFDEV_MODE_MSO1 = 3, - REFDEV_MODE_PDF1 = 4, - REFDEV_CUSTOM = 5 - }; - - void SetReferenceDevice( RefDevMode ); - - void Compat_ZeroExtleadBug(); // enable workaround for #i60495# - - void SetReferenceDevice( sal_Int32 i_nDPIX, sal_Int32 i_nDPIY ); - -private: - SAL_DLLPRIVATE void ImplSetReferenceDevice( RefDevMode, sal_Int32 i_nDPIX, sal_Int32 i_nDPIY ); - -}; - -#endif // _SV_VIRDEV_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/waitobj.hxx b/vcl/inc/vcl/waitobj.hxx deleted file mode 100644 index d9164a9a61b0..000000000000 --- a/vcl/inc/vcl/waitobj.hxx +++ /dev/null @@ -1,47 +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 . - */ - -#ifndef _SV_WAITOBJ_HXX -#define _SV_WAITOBJ_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/window.hxx> - -// -------------- -// - WaitObject - -// -------------- - -class VCL_DLLPUBLIC WaitObject -{ -private: - Window* mpWindow; -public: - WaitObject( Window* pWindow ) - { - mpWindow = pWindow; - if ( mpWindow ) - mpWindow->EnterWait(); - } - ~WaitObject(); -}; - -#endif // _SV_WAITOBJ_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/wall.hxx b/vcl/inc/vcl/wall.hxx deleted file mode 100644 index e18adf78f60b..000000000000 --- a/vcl/inc/vcl/wall.hxx +++ /dev/null @@ -1,133 +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 . - */ - -#ifndef _SV_WALL_HXX -#define _SV_WALL_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <tools/color.hxx> -#include <tools/gen.hxx> - -class Gradient; -class BitmapEx; -class ImplWallpaper; - -// ------------------- -// - Wallpaper-Types - -// ------------------- - -#define WALLPAPER_NULL WallpaperStyle_NULL -#define WALLPAPER_TILE WallpaperStyle_TILE -#define WALLPAPER_CENTER WallpaperStyle_CENTER -#define WALLPAPER_SCALE WallpaperStyle_SCALE -#define WALLPAPER_TOPLEFT WallpaperStyle_TOPLEFT -#define WALLPAPER_TOP WallpaperStyle_TOP -#define WALLPAPER_TOPRIGHT WallpaperStyle_TOPRIGHT -#define WALLPAPER_LEFT WallpaperStyle_LEFT -#define WALLPAPER_RIGHT WallpaperStyle_RIGHT -#define WALLPAPER_BOTTOMLEFT WallpaperStyle_BOTTOMLEFT -#define WALLPAPER_BOTTOM WallpaperStyle_BOTTOM -#define WALLPAPER_BOTTOMRIGHT WallpaperStyle_BOTTOMRIGHT -#define WALLPAPER_APPLICATIONGRADIENT WallpaperStyle_APPLICATIONGRADIENT -#define WALLPAPER_FORCE_EQUAL_SIZE WallpaperStyle_FORCE_EQUAL_SIZE - -#ifndef ENUM_WALLPAPERSTYLE_DECLARED -#define ENUM_WALLPAPERSTYLE_DECLARED - -enum WallpaperStyle -{ - WALLPAPER_NULL, - WALLPAPER_TILE, - WALLPAPER_CENTER, - WALLPAPER_SCALE, - WALLPAPER_TOPLEFT, - WALLPAPER_TOP, - WALLPAPER_TOPRIGHT, - WALLPAPER_LEFT, - WALLPAPER_RIGHT, - WALLPAPER_BOTTOMLEFT, - WALLPAPER_BOTTOM, - WALLPAPER_BOTTOMRIGHT, - WALLPAPER_APPLICATIONGRADIENT, // defines a gradient that internally covers the whole application - // and uses a color derived from the face color - WALLPAPER_FORCE_EQUAL_SIZE = 0x7fffffff -}; - -#endif - -// ------------- -// - Wallpaper - -// ------------- - -class VCL_DLLPUBLIC Wallpaper -{ -private: - ImplWallpaper* mpImplWallpaper; - - SAL_DLLPRIVATE void ImplMakeUnique( sal_Bool bReleaseCache = sal_True ); - SAL_DLLPRIVATE Gradient ImplGetApplicationGradient() const; - -public: - SAL_DLLPRIVATE ImplWallpaper* ImplGetImpWallpaper() const { return mpImplWallpaper; } - - -public: - Wallpaper(); - Wallpaper( const Wallpaper& rWallpaper ); - Wallpaper( const Color& rColor ); - Wallpaper( const BitmapEx& rBmpEx ); - Wallpaper( const Gradient& rGradient ); - ~Wallpaper(); - - void SetColor( const Color& rColor ); - const Color& GetColor() const; - - void SetStyle( WallpaperStyle eStyle ); - WallpaperStyle GetStyle() const; - - void SetBitmap( const BitmapEx& rBitmap ); - BitmapEx GetBitmap() const; - sal_Bool IsBitmap() const; - - void SetGradient( const Gradient& rGradient ); - Gradient GetGradient() const; - sal_Bool IsGradient() const; - - void SetRect( const Rectangle& rRect ); - Rectangle GetRect() const; - sal_Bool IsRect() const; - - sal_Bool IsFixed() const; - sal_Bool IsScrollable() const; - - Wallpaper& operator=( const Wallpaper& rWallpaper ); - sal_Bool operator==( const Wallpaper& rWallpaper ) const; - sal_Bool operator!=( const Wallpaper& rWallpaper ) const - { return !(Wallpaper::operator==( rWallpaper )); } - sal_Bool IsSameInstance( const Wallpaper& rWallpaper ) const - { return (mpImplWallpaper == rWallpaper.mpImplWallpaper); } - - friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, Wallpaper& rWallpaper ); - friend VCL_DLLPUBLIC SvStream& operator<<( SvStream& rOStm, const Wallpaper& rWallpaper ); -}; - -#endif // _SV_WALL_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/window.hxx b/vcl/inc/vcl/window.hxx deleted file mode 100644 index 43e232dab55c..000000000000 --- a/vcl/inc/vcl/window.hxx +++ /dev/null @@ -1,1279 +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 . - */ - -#ifndef _SV_WINDOW_HXX -#define _SV_WINDOW_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/outdev.hxx> -#include <tools/resid.hxx> -#include <vcl/pointr.hxx> -#include <tools/wintypes.hxx> -#include <rsc/rsc-vcl-shared-types.hxx> -#include <vcl/apptypes.hxx> -#include <vcl/inputctx.hxx> -#include <vcl/vclevent.hxx> -// Only for compatibility - because many people outside haven't included event.hxx -#include <vcl/event.hxx> -#include <vcl/region.hxx> -#include <vcl/salnativewidgets.hxx> -#include <rtl/ustring.hxx> -#include <cppuhelper/weakref.hxx> -#include <com/sun/star/uno/Reference.hxx> -#include <boost/shared_ptr.hpp> - -class VirtualDevice; -struct ImplDelData; -struct ImplWinData; -struct ImplOverlapData; -struct ImplFrameData; -struct ImplCalcToTopData; -struct SystemEnvData; -struct SystemParentData; -class ImplBorderWindow; -class VirtualDevice; -class Timer; -class Cursor; -class DockingManager; -class ScrollBar; -class Bitmap; -class FixedText; -class Image; -class MouseEvent; -class KeyEvent; -class CommandEvent; -class TrackingEvent; -class HelpEvent; -class DataChangedEvent; -class NotifyEvent; -class SystemWindow; -class SalFrame; -class SalObject; -class MenuFloatingWindow; -class UNOWindowData; -// Nur fuer ExecuteDrag: -struct IDataObject; -class VCLXWindow; -struct ImplAccessibleInfos; - -namespace com { -namespace sun { -namespace star { -namespace accessibility { - class XAccessible; -}}}} - -namespace com { -namespace sun { -namespace star { -namespace beans { - struct PropertyValue; -}}}} - -namespace com { -namespace sun { -namespace star { -namespace rendering { - class XCanvas; - class XSpriteCanvas; -}}}} - -namespace com { -namespace sun { -namespace star { -namespace awt { - class XWindowPeer; - class XWindow; -} -namespace uno { - class Any; - class XInterface; -} -namespace datatransfer { -namespace clipboard { - class XClipboard; -} - -namespace dnd { - class XDragGestureRecognizer; - class XDragSource; - class XDropTarget; -} } } } } - -namespace vcl { - struct ControlLayoutData; -} - -namespace svt { class PopupWindowControllerImpl; } - -// --------------- -// - WindowTypes - -// --------------- - -// Type fuer GetWindow() -#define WINDOW_PARENT ((sal_uInt16)0) -#define WINDOW_FIRSTCHILD ((sal_uInt16)1) -#define WINDOW_LASTCHILD ((sal_uInt16)2) -#define WINDOW_PREV ((sal_uInt16)3) -#define WINDOW_NEXT ((sal_uInt16)4) -#define WINDOW_FIRSTOVERLAP ((sal_uInt16)5) -#define WINDOW_LASTOVERLAP ((sal_uInt16)6) -#define WINDOW_OVERLAP ((sal_uInt16)7) -#define WINDOW_PARENTOVERLAP ((sal_uInt16)8) -#define WINDOW_CLIENT ((sal_uInt16)9) -#define WINDOW_REALPARENT ((sal_uInt16)10) -#define WINDOW_FRAME ((sal_uInt16)11) -#define WINDOW_BORDER ((sal_uInt16)12) -#define WINDOW_FIRSTTOPWINDOWCHILD ((sal_uInt16)13) -#define WINDOW_LASTTOPWINDOWCHILD ((sal_uInt16)14) -#define WINDOW_PREVTOPWINDOWSIBLING ((sal_uInt16)15) -#define WINDOW_NEXTTOPWINDOWSIBLING ((sal_uInt16)16) - -// Flags for setPosSizePixel() -#define WINDOW_POSSIZE_X ((sal_uInt16)0x0001) -#define WINDOW_POSSIZE_Y ((sal_uInt16)0x0002) -#define WINDOW_POSSIZE_WIDTH ((sal_uInt16)0x0004) -#define WINDOW_POSSIZE_HEIGHT ((sal_uInt16)0x0008) -#define WINDOW_POSSIZE_POS (WINDOW_POSSIZE_X | WINDOW_POSSIZE_Y) -#define WINDOW_POSSIZE_SIZE (WINDOW_POSSIZE_WIDTH | WINDOW_POSSIZE_HEIGHT) -#define WINDOW_POSSIZE_POSSIZE (WINDOW_POSSIZE_POS | WINDOW_POSSIZE_SIZE) -#define WINDOW_POSSIZE_ALL (WINDOW_POSSIZE_POSSIZE) -#define WINDOW_POSSIZE_DROPDOWN ((sal_uInt16)0x0010) - -// Flags for Show() -#define SHOW_NOPARENTUPDATE ((sal_uInt16)0x0001) -#define SHOW_NOFOCUSCHANGE ((sal_uInt16)0x0002) -#define SHOW_NOACTIVATE ((sal_uInt16)0x0004) -#define SHOW_FOREGROUNDTASK ((sal_uInt16)0x0008) - -// Flags for SetZOrder() -#define WINDOW_ZORDER_BEFOR ((sal_uInt16)0x0001) -#define WINDOW_ZORDER_BEHIND ((sal_uInt16)0x0002) -#define WINDOW_ZORDER_FIRST ((sal_uInt16)0x0004) -#define WINDOW_ZORDER_LAST ((sal_uInt16)0x0008) - -// Activate-Flags -#define ACTIVATE_MODE_GRABFOCUS ((sal_uInt16)0x0001) - -// ToTop-Flags -#define TOTOP_RESTOREWHENMIN ((sal_uInt16)0x0001) -#define TOTOP_FOREGROUNDTASK ((sal_uInt16)0x0002) -#define TOTOP_NOGRABFOCUS ((sal_uInt16)0x0004) -#define TOTOP_GRABFOCUSONLY ((sal_uInt16)0x0008) - -// Flags for Invalidate -#define INVALIDATE_CHILDREN ((sal_uInt16)0x0001) -#define INVALIDATE_NOCHILDREN ((sal_uInt16)0x0002) -#define INVALIDATE_NOERASE ((sal_uInt16)0x0004) -#define INVALIDATE_UPDATE ((sal_uInt16)0x0008) -#define INVALIDATE_TRANSPARENT ((sal_uInt16)0x0010) -#define INVALIDATE_NOTRANSPARENT ((sal_uInt16)0x0020) -#define INVALIDATE_NOCLIPCHILDREN ((sal_uInt16)0x4000) -// Temporaer fuer Kompatibilitaet -#define INVALIDATE_BACKGROUND INVALIDATE_TRANSPARENT - -// Flags for Validate -#define VALIDATE_CHILDREN ((sal_uInt16)0x0001) -#define VALIDATE_NOCHILDREN ((sal_uInt16)0x0002) - -// Flags for Scroll -#define SCROLL_CLIP ((sal_uInt16)0x0001) -#define SCROLL_CHILDREN ((sal_uInt16)0x0002) -#define SCROLL_NOCHILDREN ((sal_uInt16)0x0004) -#define SCROLL_NOERASE ((sal_uInt16)0x0008) -#define SCROLL_NOINVALIDATE ((sal_uInt16)0x0010) -#define SCROLL_NOWINDOWINVALIDATE ((sal_uInt16)0x0020) -#define SCROLL_USECLIPREGION ((sal_uInt16)0x0040) -#define SCROLL_UPDATE ((sal_uInt16)0x0080) - -// Flags for ParentClipMode -#define PARENTCLIPMODE_CLIP ((sal_uInt16)0x0001) -#define PARENTCLIPMODE_NOCLIP ((sal_uInt16)0x0002) - -// Flags for Invert() -#define INVERT_HIGHLIGHT ((sal_uInt16)0x0001) -#define INVERT_50 ((sal_uInt16)0x0002) - -// Flags for ShowTracking() -#define SHOWTRACK_SMALL ((sal_uInt16)0x0001) -#define SHOWTRACK_BIG ((sal_uInt16)0x0002) -#define SHOWTRACK_SPLIT ((sal_uInt16)0x0003) -#define SHOWTRACK_OBJECT ((sal_uInt16)0x0004) -#define SHOWTRACK_WINDOW ((sal_uInt16)0x1000) -#define SHOWTRACK_CLIP ((sal_uInt16)0x2000) -#define SHOWTRACK_STYLE ((sal_uInt16)0x000F) - -// Flags for StartTracking() -#define STARTTRACK_KEYINPUT ((sal_uInt16)0x0001) -#define STARTTRACK_KEYMOD ((sal_uInt16)0x0002) -#define STARTTRACK_NOKEYCANCEL ((sal_uInt16)0x0004) -#define STARTTRACK_SCROLLREPEAT ((sal_uInt16)0x0008) -#define STARTTRACK_BUTTONREPEAT ((sal_uInt16)0x0010) -#define STARTTRACK_MOUSEBUTTONDOWN ((sal_uInt16)0x0020) -#define STARTTRACK_FOCUSCANCEL ((sal_uInt16)0x0040) - -// Flags for StartAutoScroll() -#define AUTOSCROLL_VERT ((sal_uInt16)0x0001) -#define AUTOSCROLL_HORZ ((sal_uInt16)0x0002) - -// Flags for StateChanged() -typedef sal_uInt16 StateChangedType; -#define STATE_CHANGE_INITSHOW ((StateChangedType)1) -#define STATE_CHANGE_VISIBLE ((StateChangedType)2) -#define STATE_CHANGE_UPDATEMODE ((StateChangedType)3) -#define STATE_CHANGE_ENABLE ((StateChangedType)4) -#define STATE_CHANGE_TEXT ((StateChangedType)5) -#define STATE_CHANGE_IMAGE ((StateChangedType)6) -#define STATE_CHANGE_DATA ((StateChangedType)7) -#define STATE_CHANGE_STATE ((StateChangedType)8) -#define STATE_CHANGE_STYLE ((StateChangedType)9) -#define STATE_CHANGE_ZOOM ((StateChangedType)10) -#define STATE_CHANGE_BORDER ((StateChangedType)11) -#define STATE_CHANGE_TRANSPARENT ((StateChangedType)12) -#define STATE_CHANGE_CONTROLFONT ((StateChangedType)13) -#define STATE_CHANGE_CONTROLFOREGROUND ((StateChangedType)14) -#define STATE_CHANGE_CONTROLBACKGROUND ((StateChangedType)15) -#define STATE_CHANGE_READONLY ((StateChangedType)16) -#define STATE_CHANGE_EXTENDEDSTYLE ((StateChangedType)17) -#define STATE_CHANGE_MIRRORING ((StateChangedType)18) -#define STATE_CHANGE_CONTROL_FOCUS ((StateChangedType)20) -#define STATE_CHANGE_USER ((StateChangedType)10000) - -// GetFocusFlags -#define GETFOCUS_TAB ((sal_uInt16)0x0001) -#define GETFOCUS_CURSOR ((sal_uInt16)0x0002) -#define GETFOCUS_MNEMONIC ((sal_uInt16)0x0004) -#define GETFOCUS_FORWARD ((sal_uInt16)0x0010) -#define GETFOCUS_BACKWARD ((sal_uInt16)0x0020) -#define GETFOCUS_AROUND ((sal_uInt16)0x0040) -#define GETFOCUS_UNIQUEMNEMONIC ((sal_uInt16)0x0100) -#define GETFOCUS_INIT ((sal_uInt16)0x0200) -#define GETFOCUS_FLOATWIN_POPUPMODEEND_CANCEL ((sal_uInt16)0x0400) - -// Draw-Flags fuer Draw() -#define WINDOW_DRAW_MONO ((sal_uLong)0x00000001) -#define WINDOW_DRAW_NOBORDER ((sal_uLong)0x00000002) -#define WINDOW_DRAW_NOCONTROLS ((sal_uLong)0x00000004) -#define WINDOW_DRAW_NODISABLE ((sal_uLong)0x00000008) -#define WINDOW_DRAW_NOMNEMONIC ((sal_uLong)0x00000010) -#define WINDOW_DRAW_NOSELECTION ((sal_uLong)0x00000020) -#define WINDOW_DRAW_NOFOCUS ((sal_uLong)0x00000040) -#define WINDOW_DRAW_NOBACKGROUND ((sal_uLong)0x00000080) -#define WINDOW_DRAW_ROLLOVER ((sal_uLong)0x00000100) - -// DialogControl-Flags -#define WINDOW_DLGCTRL_RETURN ((sal_uInt16)0x0001) -#define WINDOW_DLGCTRL_WANTFOCUS ((sal_uInt16)0x0002) -#define WINDOW_DLGCTRL_MOD1TAB ((sal_uInt16)0x0004) -#define WINDOW_DLGCTRL_FLOATWIN_POPUPMODEEND_CANCEL ((sal_uInt16)0x0008) - -// GetWindowClipRegionPixel-Flags -#define WINDOW_GETCLIPREGION_NULL ((sal_uInt16)0x0001) -#define WINDOW_GETCLIPREGION_NOCHILDREN ((sal_uInt16)0x0002) - -// EndExtTextInput-Flags -#define EXTTEXTINPUT_END_COMPLETE ((sal_uInt16)0x0001) -#define EXTTEXTINPUT_END_CANCEL ((sal_uInt16)0x0002) - -#define IMPL_MINSIZE_BUTTON_WIDTH 70 -#define IMPL_MINSIZE_BUTTON_HEIGHT 22 -#define IMPL_EXTRA_BUTTON_WIDTH 18 -#define IMPL_EXTRA_BUTTON_HEIGHT 10 -#define IMPL_SEP_BUTTON_X 5 -#define IMPL_SEP_BUTTON_Y 5 -#define IMPL_MINSIZE_MSGBOX_WIDTH 150 -#define IMPL_MINSIZE_MSGBOX_HEIGHT 80 -#define IMPL_DIALOG_OFFSET 5 -#define IMPL_DIALOG_BAR_OFFSET 3 -#define IMPL_MSGBOX_OFFSET_EXTRA_X 0 -#define IMPL_MSGBOX_OFFSET_EXTRA_Y 2 -#define IMPL_SEP_MSGBOX_IMAGE 8 - -#define DLGWINDOW_PREV 0 -#define DLGWINDOW_NEXT 1 -#define DLGWINDOW_FIRST 2 - -// ---------- -// - Window - -// ---------- - -#ifdef DBG_UTIL -const char* ImplDbgCheckWindow( const void* pObj ); -#endif - -class Dialog; -class WindowImpl; -class VclBuilder; -class VclSizeGroup; - -struct WindowResHeader -{ - sal_uLong nObjMask; - OString aHelpId; - sal_uLong nRSStyle; -}; - -class VCL_DLLPUBLIC Window : public OutputDevice -{ - friend class Cursor; - friend class OutputDevice; - friend class Application; - friend class SystemWindow; - friend class WorkWindow; - friend class Dialog; - friend class MessBox; - friend class DockingWindow; - friend class FloatingWindow; - friend class GroupBox; - friend class PushButton; - friend class RadioButton; - friend class SystemChildWindow; - friend class ImplBorderWindow; - friend class VclBuilder; - - // TODO: improve missing functionality - // only required because of SetFloatingMode() - friend class ImplDockingWindowWrapper; - friend class ImplPopupFloatWin; - friend class MenuFloatingWindow; - - friend class svt::PopupWindowControllerImpl; - -private: - // NOTE: to remove many dependencies of other modules - // to this central file, all members are now hidden - // in the WindowImpl class and all inline functions - // were removed - // - // Please do *not* add new members or inline functions to class Window, - // but use class WindowImpl instead - // - WindowImpl* mpWindowImpl; - - SAL_DLLPRIVATE void ImplInitWindowData( WindowType nType ); - -#ifdef DBG_UTIL - friend const char* ImplDbgCheckWindow( const void* pObj ); -#endif - friend Window* ImplFindWindow( const SalFrame* pFrame, Point& rSalFramePos ); -public: - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle, SystemParentData* pSystemParentData ); - SAL_DLLPRIVATE WinBits ImplInitRes( const ResId& rResId ); - SAL_DLLPRIVATE WindowResHeader ImplLoadResHeader( const ResId& rResId ); - SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); - SAL_DLLPRIVATE void ImplSetFrameParent( const Window* pParent ); - SAL_DLLPRIVATE void ImplInsertWindow( Window* pParent ); - SAL_DLLPRIVATE void ImplRemoveWindow( sal_Bool bRemoveFrameData ); - SAL_DLLPRIVATE Window* ImplGetWindow(); - SAL_DLLPRIVATE ImplFrameData* ImplGetFrameData(); - SalFrame* ImplGetFrame() const; - SAL_DLLPRIVATE ImplWinData* ImplGetWinData() const; - SAL_DLLPRIVATE SalGraphics* ImplGetFrameGraphics() const; - SAL_DLLPRIVATE void ImplCallFocusChangeActivate( Window* pNewOverlapWindow, Window* pOldOverlapWindow ); - SAL_DLLPRIVATE Window* ImplFindWindow( const Point& rFramePos ); - SAL_DLLPRIVATE sal_uInt16 ImplHitTest( const Point& rFramePos ); - SAL_DLLPRIVATE Window* ImplGetParent() const; - SAL_DLLPRIVATE Window* ImplGetClientWindow() const; - SAL_DLLPRIVATE Window* ImplGetBorderWindow() const; - SAL_DLLPRIVATE Window* ImplGetFirstOverlapWindow(); - SAL_DLLPRIVATE const Window* ImplGetFirstOverlapWindow() const; - SAL_DLLPRIVATE Window* ImplGetFrameWindow() const; - SAL_DLLPRIVATE sal_Bool ImplIsRealParentPath( const Window* pWindow ) const; - SAL_DLLPRIVATE sal_Bool ImplIsChild( const Window* pWindow, sal_Bool bSystemWindow = sal_False ) const; - SAL_DLLPRIVATE sal_Bool ImplIsWindowOrChild( const Window* pWindow, sal_Bool bSystemWindow = sal_False ) const; - SAL_DLLPRIVATE sal_Bool ImplIsDockingWindow() const; - SAL_DLLPRIVATE sal_Bool ImplIsFloatingWindow() const; - SAL_DLLPRIVATE sal_Bool ImplIsSplitter() const; - SAL_DLLPRIVATE sal_Bool ImplIsPushButton() const; - SAL_DLLPRIVATE sal_Bool ImplIsOverlapWindow() const; - SAL_DLLPRIVATE void ImplSetMouseTransparent( sal_Bool bTransparent ); - SAL_DLLPRIVATE int ImplTestMousePointerSet(); - SAL_DLLPRIVATE PointerStyle ImplGetMousePointer() const; - SAL_DLLPRIVATE void ImplResetReallyVisible(); - SAL_DLLPRIVATE void ImplSetReallyVisible(); - SAL_DLLPRIVATE void ImplCallInitShow(); - SAL_DLLPRIVATE void ImplAddDel( ImplDelData* pDel ); - SAL_DLLPRIVATE void ImplRemoveDel( ImplDelData* pDel ); - SAL_DLLPRIVATE void ImplInitResolutionSettings(); - SAL_DLLPRIVATE void ImplPointToLogic( Font& rFont ) const; - SAL_DLLPRIVATE void ImplLogicToPoint( Font& rFont ) const; - SAL_DLLPRIVATE Point ImplOutputToFrame( const Point& rPos ); - SAL_DLLPRIVATE Point ImplFrameToOutput( const Point& rPos ); - SAL_DLLPRIVATE sal_Bool ImplSysObjClip( const Region* pOldRegion ); - SAL_DLLPRIVATE void ImplUpdateSysObjChildrenClip(); - SAL_DLLPRIVATE void ImplUpdateSysObjOverlapsClip(); - SAL_DLLPRIVATE void ImplUpdateSysObjClip(); - SAL_DLLPRIVATE sal_Bool ImplSetClipFlagChildren( sal_Bool bSysObjOnlySmaller = sal_False ); - SAL_DLLPRIVATE sal_Bool ImplSetClipFlagOverlapWindows( sal_Bool bSysObjOnlySmaller = sal_False ); - SAL_DLLPRIVATE sal_Bool ImplSetClipFlag( sal_Bool bSysObjOnlySmaller = sal_False ); - SAL_DLLPRIVATE void ImplIntersectWindowClipRegion( Region& rRegion ); - SAL_DLLPRIVATE void ImplIntersectWindowRegion( Region& rRegion ); - SAL_DLLPRIVATE void ImplExcludeWindowRegion( Region& rRegion ); - SAL_DLLPRIVATE void ImplExcludeOverlapWindows( Region& rRegion ); - SAL_DLLPRIVATE void ImplExcludeOverlapWindows2( Region& rRegion ); - SAL_DLLPRIVATE void ImplClipBoundaries( Region& rRegion, sal_Bool bThis, sal_Bool bOverlaps ); - SAL_DLLPRIVATE sal_Bool ImplClipChildren( Region& rRegion ); - SAL_DLLPRIVATE void ImplClipAllChildren( Region& rRegion ); - SAL_DLLPRIVATE void ImplClipSiblings( Region& rRegion ); - SAL_DLLPRIVATE void ImplInitWinClipRegion(); - SAL_DLLPRIVATE void ImplInitWinChildClipRegion(); - SAL_DLLPRIVATE Region* ImplGetWinChildClipRegion(); - SAL_DLLPRIVATE void ImplIntersectAndUnionOverlapWindows( const Region& rInterRegion, Region& rRegion ); - SAL_DLLPRIVATE void ImplIntersectAndUnionOverlapWindows2( const Region& rInterRegion, Region& rRegion ); - SAL_DLLPRIVATE void ImplCalcOverlapRegionOverlaps( const Region& rInterRegion, Region& rRegion ); - SAL_DLLPRIVATE void ImplCalcOverlapRegion( const Rectangle& rSourceRect, Region& rRegion, - sal_Bool bChildren, sal_Bool bParent, sal_Bool bSiblings ); - SAL_DLLPRIVATE void ImplCallPaint( const Region* pRegion, sal_uInt16 nPaintFlags ); - SAL_DLLPRIVATE void ImplCallOverlapPaint(); - SAL_DLLPRIVATE void ImplPostPaint(); - SAL_DLLPRIVATE void ImplInvalidateFrameRegion( const Region* pRegion, sal_uInt16 nFlags ); - SAL_DLLPRIVATE void ImplInvalidateOverlapFrameRegion( const Region& rRegion ); - SAL_DLLPRIVATE void ImplInvalidateParentFrameRegion( Region& rRegion ); - SAL_DLLPRIVATE void ImplInvalidate( const Region* rRegion, sal_uInt16 nFlags ); - SAL_DLLPRIVATE void ImplValidateFrameRegion( const Region* rRegion, sal_uInt16 nFlags ); - SAL_DLLPRIVATE void ImplValidate( const Region* rRegion, sal_uInt16 nFlags ); - SAL_DLLPRIVATE void ImplMoveInvalidateRegion( const Rectangle& rRect, long nHorzScroll, long nVertScroll, sal_Bool bChildren ); - SAL_DLLPRIVATE void ImplMoveAllInvalidateRegions( const Rectangle& rRect, long nHorzScroll, long nVertScroll, sal_Bool bChildren ); - SAL_DLLPRIVATE void ImplScroll( const Rectangle& rRect, long nHorzScroll, long nVertScroll, sal_uInt16 nFlags ); - SAL_DLLPRIVATE void ImplUpdateAll( sal_Bool bOverlapWindows = sal_True ); - SAL_DLLPRIVATE void ImplUpdateWindowPtr( Window* pWindow ); - SAL_DLLPRIVATE void ImplUpdateWindowPtr(); - SAL_DLLPRIVATE void ImplUpdateOverlapWindowPtr( sal_Bool bNewFrame ); - SAL_DLLPRIVATE sal_Bool ImplUpdatePos(); - SAL_DLLPRIVATE void ImplUpdateSysObjPos(); - SAL_DLLPRIVATE WindowImpl* ImplGetWindowImpl() const { return mpWindowImpl; } - - /** check whether a font is suitable for UI - - The font to be tested will be checked whether it could display a - localized test string. If this is not the case, then the font - is deemed unsuitable as UI font. - - @param rFont - the font to be tested - - @returns - <TRUE/> if the font can be used as UI font - <FALSE/> if the font is unsuitable as UI font - */ - SAL_DLLPRIVATE bool ImplCheckUIFont( const Font& rFont ); - SAL_DLLPRIVATE void ImplUpdateGlobalSettings( AllSettings& rSettings, sal_Bool bCallHdl = sal_True ); - SAL_DLLPRIVATE void ImplAlignChildren(); - SAL_DLLPRIVATE void ImplPosSizeWindow( long nX, long nY, long nWidth, long nHeight, sal_uInt16 nFlags ); - SAL_DLLPRIVATE void ImplToBottomChild(); - SAL_DLLPRIVATE void ImplCalcToTop( ImplCalcToTopData* pPrevData ); - SAL_DLLPRIVATE void ImplToTop( sal_uInt16 nFlags ); - SAL_DLLPRIVATE void ImplStartToTop( sal_uInt16 nFlags ); - SAL_DLLPRIVATE void ImplFocusToTop( sal_uInt16 nFlags, sal_Bool bReallyVisible ); - SAL_DLLPRIVATE void ImplShowAllOverlaps(); - SAL_DLLPRIVATE void ImplHideAllOverlaps(); - SAL_DLLPRIVATE void ImplNotifyKeyMouseCommandEventListeners( NotifyEvent& rNEvt ); - SAL_DLLPRIVATE void ImplCallMouseMove( sal_uInt16 nMouseCode, sal_Bool bModChanged = sal_False ); - SAL_DLLPRIVATE void ImplGenerateMouseMove(); - SAL_DLLPRIVATE void ImplGrabFocus( sal_uInt16 nFlags ); - SAL_DLLPRIVATE void ImplInvertFocus( const Rectangle& rRect ); - SAL_DLLPRIVATE void ImplControlFocus( sal_uInt16 nFlags = 0 ); - SAL_DLLPRIVATE Window* ImplGetDlgWindow( sal_uInt16 n, sal_uInt16 nType, sal_uInt16 nStart = 0, sal_uInt16 nEnd = 0xFFFF, sal_uInt16* pIndex = NULL ); - SAL_DLLPRIVATE sal_Bool ImplDlgCtrl( const KeyEvent& rKEvt, sal_Bool bKeyInput ); - SAL_DLLPRIVATE sal_Bool ImplHasDlgCtrl(); - SAL_DLLPRIVATE void ImplDlgCtrlNextWindow(); - SAL_DLLPRIVATE void ImplDlgCtrlFocusChanged( Window* pWindow, sal_Bool bGetFocus ); - SAL_DLLPRIVATE Window* ImplFindDlgCtrlWindow( Window* pWindow ); - SAL_DLLPRIVATE long ImplLogicUnitToPixelX( long nX, MapUnit eUnit ); - SAL_DLLPRIVATE long ImplLogicUnitToPixelY( long nY, MapUnit eUnit ); - SAL_DLLPRIVATE sal_Bool ImplIsWindowInFront( const Window* pTestWindow ) const; - SAL_DLLPRIVATE void ImplSaveOverlapBackground(); - SAL_DLLPRIVATE sal_Bool ImplRestoreOverlapBackground( Region& rInvRegion ); - SAL_DLLPRIVATE void ImplDeleteOverlapBackground(); - SAL_DLLPRIVATE void ImplInvalidateAllOverlapBackgrounds(); - SAL_DLLPRIVATE static void ImplNewInputContext(); - SAL_DLLPRIVATE void ImplCallActivateListeners(Window*); - SAL_DLLPRIVATE void ImplCallDeactivateListeners(Window*); - DECL_DLLPRIVATE_LINK( ImplHandlePaintHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplGenerateMouseMoveHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplTrackTimerHdl, Timer* ); - DECL_DLLPRIVATE_LINK( ImplAsyncFocusHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplHideOwnerDrawWindowsHdl, void* ); - DECL_DLLPRIVATE_LINK( ImplHandleResizeTimerHdl, void* ); - - SAL_DLLPRIVATE static void ImplCalcSymbolRect( Rectangle& rRect ); - SAL_DLLPRIVATE void ImplHandleScroll( ScrollBar* pHScrl, long nX, ScrollBar* pVScrl, long nY ); - SAL_DLLPRIVATE sal_Bool ImplIsAccessibleCandidate() const; - SAL_DLLPRIVATE sal_Bool ImplIsAccessibleNativeFrame() const; - SAL_DLLPRIVATE sal_uInt16 ImplGetAccessibleCandidateChildWindowCount( sal_uInt16 nFirstWindowType ) const; - SAL_DLLPRIVATE Window* ImplGetAccessibleCandidateChild( sal_uInt16 nChild, sal_uInt16& rChildCount, sal_uInt16 nFirstWindowType, sal_Bool bTopLevel = sal_True ) const; - SAL_DLLPRIVATE sal_Bool ImplRegisterAccessibleNativeFrame(); - SAL_DLLPRIVATE void ImplRevokeAccessibleNativeFrame(); - SAL_DLLPRIVATE void ImplCallResize(); - SAL_DLLPRIVATE void ImplCallMove(); - SAL_DLLPRIVATE Rectangle ImplOutputToUnmirroredAbsoluteScreenPixel( const Rectangle& rRect ) const; - SAL_DLLPRIVATE void ImplMirrorFramePos( Point &pt ) const; - SAL_DLLPRIVATE long ImplGetUnmirroredOutOffX(); - SAL_DLLPRIVATE void ImplIncModalCount(); - SAL_DLLPRIVATE void ImplDecModalCount(); - - // retrieves the list of owner draw decorated windows for this window hiearchy - SAL_DLLPRIVATE ::std::vector<Window *>& ImplGetOwnerDrawList(); - SAL_DLLPRIVATE Window* ImplGetTopmostFrameWindow(); - - SAL_DLLPRIVATE Rectangle ImplGetWindowExtentsRelative( Window *pRelativeWindow, sal_Bool bClientOnly ) const; - SAL_DLLPRIVATE void ImplNotifyIconifiedState( sal_Bool bIconified ); - SAL_DLLPRIVATE bool ImplStopDnd(); - SAL_DLLPRIVATE void ImplStartDnd(); - - SAL_DLLPRIVATE static void ImplInitAppFontData( Window* pWindow ); - SAL_DLLPRIVATE void ImplPaintToDevice( OutputDevice* pTargetOutDev, const Point& rPos ); - - SAL_DLLPRIVATE void ImplIsInTaskPaneList( sal_Bool mbIsInTaskList ); - SAL_DLLPRIVATE ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvas > - ImplGetCanvas( const Size& rFullscreenSize, bool bFullscreen, bool bSpriteCanvas ) const; - -private: - // Default construction is forbidden and not implemented. - SAL_DLLPRIVATE Window(); - - // Copy assignment is forbidden and not implemented. - SAL_DLLPRIVATE Window (const Window &); - SAL_DLLPRIVATE Window & operator= (const Window &); - -protected: - // Single argument ctors shall be explicit. - explicit Window( WindowType nType ); - - void SetCompoundControl( sal_Bool bCompound ); - - void ImplCallEventListeners( sal_uLong nEvent, void* pData = NULL ); - void CallEventListeners( sal_uLong nEvent, void* pData = NULL ); - void FireVclEvent( VclSimpleEvent* pEvent ); - - // FIXME: this is a hack to workaround missing layout functionality - SAL_DLLPRIVATE void ImplAdjustNWFSizes(); - - // These eventually are supposed to go when everything is converted to .ui - SAL_DLLPRIVATE Window* getLegacyNonLayoutAccessibleRelationMemberOf() const; - SAL_DLLPRIVATE Window* getLegacyNonLayoutAccessibleRelationLabeledBy() const; - SAL_DLLPRIVATE Window* getLegacyNonLayoutAccessibleRelationLabelFor() const; - - // Let Label override the code part of GetAccessibleRelationLabelFor - virtual Window* getAccessibleRelationLabelFor() const; - virtual sal_uInt16 getDefaultAccessibleRole() const; - virtual OUString getDefaultAccessibleName() const; -public: - // Single argument ctors shall be explicit. - explicit Window( Window* pParent, WinBits nStyle = 0 ); - - Window( Window* pParent, const ResId& rResId ); - virtual ~Window(); - - virtual void MouseMove( const MouseEvent& rMEvt ); - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void MouseButtonUp( const MouseEvent& rMEvt ); - virtual void KeyInput( const KeyEvent& rKEvt ); - virtual void KeyUp( const KeyEvent& rKEvt ); - virtual void PrePaint(); - virtual void Paint( const Rectangle& rRect ); - - virtual void PostPaint(); - virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ); - virtual void Move(); - virtual void Resize(); - virtual void Activate(); - virtual void Deactivate(); - virtual void GetFocus(); - virtual void LoseFocus(); - virtual void RequestHelp( const HelpEvent& rHEvt ); - virtual void Command( const CommandEvent& rCEvt ); - virtual void Tracking( const TrackingEvent& rTEvt ); - virtual void UserEvent( sal_uLong nEvent, void* pEventData ); - virtual void StateChanged( StateChangedType nStateChange ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - virtual long PreNotify( NotifyEvent& rNEvt ); - virtual long Notify( NotifyEvent& rNEvt ); - virtual Window* GetPreferredKeyInputWindow(); - - /*virtual*/ void AddEventListener( const Link& rEventListener ); - /*virtual*/ void RemoveEventListener( const Link& rEventListener ); - /*virtual*/ void AddChildEventListener( const Link& rEventListener ); - /*virtual*/ void RemoveChildEventListener( const Link& rEventListener ); - - sal_uLong PostUserEvent( const Link& rLink, void* pCaller = NULL ); - sal_Bool PostUserEvent( sal_uLong& rEventId, const Link& rLink, void* pCaller = NULL ); - void RemoveUserEvent( sal_uLong nUserEvent ); - - void IncrementLockCount(); - void DecrementLockCount(); - sal_Bool IsLocked( sal_Bool bChildren = sal_False ) const; - - // returns the input language used for the last key stroke - // may be LANGUAGE_DONTKNOW if not supported by the OS - LanguageType GetInputLanguage() const; - - void SetStyle( WinBits nStyle ); - WinBits GetStyle() const; - WinBits GetPrevStyle() const; - void SetExtendedStyle( WinBits nExtendedStyle ); - WinBits GetExtendedStyle() const; - void SetType( WindowType nType ); - WindowType GetType() const; - sal_Bool IsSystemWindow() const; - sal_Bool IsDialog() const; - sal_Bool IsMenuFloatingWindow() const; - sal_Bool IsToolbarFloatingWindow() const; - sal_Bool IsTopWindow() const; - SystemWindow* GetSystemWindow() const; - - void EnableAllResize( sal_Bool bEnable = sal_True ); - - void SetBorderStyle( sal_uInt16 nBorderStyle ); - sal_uInt16 GetBorderStyle() const; - void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, - sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; - Size CalcWindowSize( const Size& rOutSz ) const; - Size CalcOutputSize( const Size& rWinSz ) const; - long CalcTitleWidth() const; - - void EnableClipSiblings( sal_Bool bClipSiblings = sal_True ); - - void EnableChildTransparentMode( sal_Bool bEnable = sal_True ); - sal_Bool IsChildTransparentModeEnabled() const; - - void SetMouseTransparent( sal_Bool bTransparent ); - sal_Bool IsMouseTransparent() const; - void SetPaintTransparent( sal_Bool bTransparent ); - sal_Bool IsPaintTransparent() const; - void SetDialogControlStart( sal_Bool bStart ); - sal_Bool IsDialogControlStart() const; - void SetDialogControlFlags( sal_uInt16 nFlags ); - sal_uInt16 GetDialogControlFlags() const; - - struct PointerState - { - sal_uLong mnState; // the button state - Point maPos; // mouse position in output coordinates - }; - PointerState GetPointerState(); - sal_Bool IsMouseOver(); - - sal_uLong GetCurrentModButtons(); - - void SetInputContext( const InputContext& rInputContext ); - const InputContext& GetInputContext() const; - void EndExtTextInput( sal_uInt16 nFlags ); - void SetCursorRect( const Rectangle* pRect = NULL, long nExtTextInputWidth = 0 ); - const Rectangle* GetCursorRect() const; - long GetCursorExtTextInputWidth() const; - - using OutputDevice::SetSettings; - virtual void SetSettings( const AllSettings& rSettings ); - virtual void SetSettings( const AllSettings& rSettings, sal_Bool bChild ); - void UpdateSettings( const AllSettings& rSettings, sal_Bool bChild = sal_False ); - void NotifyAllChildren( DataChangedEvent& rDCEvt ); - - void SetPointFont( const Font& rFont ); - Font GetPointFont() const; - void SetZoomedPointFont( const Font& rFont ); - long GetDrawPixel( OutputDevice* pDev, long nPixels ) const; - Font GetDrawPixelFont( OutputDevice* pDev ) const; - - void SetControlFont(); - void SetControlFont( const Font& rFont ); - Font GetControlFont() const; - sal_Bool IsControlFont() const; - void SetControlForeground(); - void SetControlForeground( const Color& rColor ); - Color GetControlForeground() const; - sal_Bool IsControlForeground() const; - void SetControlBackground(); - void SetControlBackground( const Color& rColor ); - Color GetControlBackground() const; - sal_Bool IsControlBackground() const; - - void SetParentClipMode( sal_uInt16 nMode = 0 ); - sal_uInt16 GetParentClipMode() const; - - void SetWindowRegionPixel(); - void SetWindowRegionPixel( const Region& rRegion ); - const Region& GetWindowRegionPixel() const; - sal_Bool IsWindowRegionPixel() const; - Region GetWindowClipRegionPixel( sal_uInt16 nFlags = 0 ) const; - Region GetPaintRegion() const; - sal_Bool IsInPaint() const; - // while IsInPaint returns true ExpandPaintClipRegion adds the - // submitted region to the paint clip region so you can - // paint additional parts of your window if necessary - void ExpandPaintClipRegion( const Region& rRegion ); - - void SetParent( Window* pNewParent ); - Window* GetParent() const; - // return the dialog we are contained in or NULL if un-contained - Dialog* GetParentDialog() const; - - void Show( sal_Bool bVisible = sal_True, sal_uInt16 nFlags = 0 ); - void Hide( sal_uInt16 nFlags = 0 ) { Show( sal_False, nFlags ); } - sal_Bool IsVisible() const; - sal_Bool IsReallyVisible() const; - sal_Bool IsReallyShown() const; - sal_Bool IsInInitShow() const; - - void Enable( bool bEnable = true, bool bChild = true ); - void Disable( bool bChild = true ) { Enable( false, bChild ); } - sal_Bool IsEnabled() const; - - void EnableInput( sal_Bool bEnable = sal_True, sal_Bool bChild = sal_True ); - void EnableInput( sal_Bool bEnable, sal_Bool bChild, sal_Bool bSysWin, - const Window* pExcludeWindow = NULL ); - sal_Bool IsInputEnabled() const; - - /** Override <code>EnableInput</code>. This can be necessary due to other people - using EnableInput for whole window hierarchies. - - - <code>AlwaysEnableInput</code> and <code>AlwaysDisableInput</code> are - mutually exclusive; the last setter wins. - @param bAlways - sets always enabled flag - - @param bChild - if true children are recursively set to AlwaysEnableInput - */ - void AlwaysEnableInput( sal_Bool bAlways, sal_Bool bChild = sal_True ); - /** returns the current AlwaysEnableInput state - @return - true if window is in AlwaysEnableInput state - */ - sal_Bool IsAlwaysEnableInput() const; - /** Override <code>EnableInput</code>, counterpart to AlwaysEnableInput. - Windows with AlwaysDisableInput will not get key events even if enabled - and input enabled.This can be necessary due to other people using EnableInput - for whole window hierarchies. - - <code>AlwaysEnableInput</code> and <code>AlwaysDisableInput</code> are - mutually exclusive; the last setter wins. - - @param bAlways - sets always disable flag - - @param bChild - if true children are recursively set to AlwaysDisableInput - */ - void AlwaysDisableInput( sal_Bool bAlways, sal_Bool bChild = sal_True ); - - /** usually event handlers (see AddEventListener and AddChildEventListener) - are not called on disabled, modal or input disabled windows. There are however rare cases - in which one wants a Window or rather one of its Control subclasses to - not evaluate events but still react to those events externally. In these - rare cases call SetCallHandlersOnInputDisabled( true ) to have your handler - called anyway. - - Currently only mouse events get this special treatment. - - Use this sparingly, chances are if you want to use it you're working around - the real problem. - - @param bCall - Enable/Disable calling event handlers for this disabled, modal or input disabled window. - This call is implicity done recursively for possible child windows. - */ - void SetCallHandlersOnInputDisabled( bool bCall ); - /** get state of SetCallHandlersOnInputDisabled - - @returns whether handlers are called regardless of input enabled state - */ - bool IsCallHandlersOnInputDisabled() const; - /** A window is in modal mode if one of its children or subchildren - is a running modal window (a modal dialog) - - @returns sal_True if a child or subchild is a running modal window - */ - sal_Bool IsInModalMode() const; - - /** - * Necessary for calc ref input handling from modal dialogs - */ - bool IsInModalNonRefMode() const; - - void SetActivateMode( sal_uInt16 nMode ); - sal_uInt16 GetActivateMode() const; - - void ToTop( sal_uInt16 nFlags = 0 ); - void SetZOrder( Window* pRefWindow, sal_uInt16 nFlags ); - void EnableAlwaysOnTop( sal_Bool bEnable = sal_True ); - sal_Bool IsAlwaysOnTopEnabled() const; - - virtual void setPosSizePixel( long nX, long nY, - long nWidth, long nHeight, - sal_uInt16 nFlags = WINDOW_POSSIZE_ALL ); - virtual void SetPosPixel( const Point& rNewPos ); - virtual Point GetPosPixel() const; - virtual void SetSizePixel( const Size& rNewSize ); - virtual Size GetSizePixel() const; - virtual void SetPosSizePixel( const Point& rNewPos, - const Size& rNewSize ); - virtual void SetOutputSizePixel( const Size& rNewSize ); - sal_Bool IsDefaultPos() const; - sal_Bool IsDefaultSize() const; - - // those conversion routines might deliver different results during UI mirroring - Point OutputToScreenPixel( const Point& rPos ) const; - Point ScreenToOutputPixel( const Point& rPos ) const; - // the normalized screen methods work independent from UI mirroring - Point OutputToNormalizedScreenPixel( const Point& rPos ) const; - Point NormalizedScreenToOutputPixel( const Point& rPos ) const; - Point OutputToAbsoluteScreenPixel( const Point& rPos ) const; - Point AbsoluteScreenToOutputPixel( const Point& rPos ) const; - Rectangle GetDesktopRectPixel() const; - // window extents including border and decoratrion - Rectangle GetWindowExtentsRelative( Window *pRelativeWindow ) const; - // window extents of the client window, coordinates to be used in SetPosPixel - Rectangle GetClientWindowExtentsRelative( Window *pRelativeWindow ) const; - - virtual sal_Bool IsScrollable() const; - virtual void Scroll( long nHorzScroll, long nVertScroll, - sal_uInt16 nFlags = 0 ); - virtual void Scroll( long nHorzScroll, long nVertScroll, - const Rectangle& rRect, sal_uInt16 nFlags = 0 ); - virtual void Invalidate( sal_uInt16 nFlags = 0 ); - virtual void Invalidate( const Rectangle& rRect, sal_uInt16 nFlags = 0 ); - virtual void Invalidate( const Region& rRegion, sal_uInt16 nFlags = 0 ); - void Validate( sal_uInt16 nFlags = 0 ); - sal_Bool HasPaintEvent() const; - void Update(); - void Flush(); - void Sync(); - - // toggles new docking support, enabled via toolkit - void EnableDocking( sal_Bool bEnable = sal_True ); - // retrieves the single dockingmanager instance - static DockingManager* GetDockingManager(); - - void EnablePaint( sal_Bool bEnable ); - sal_Bool IsPaintEnabled() const; - void SetUpdateMode( sal_Bool bUpdate ); - sal_Bool IsUpdateMode() const; - void SetParentUpdateMode( sal_Bool bUpdate ); - - void GrabFocus(); - sal_Bool HasFocus() const; - sal_Bool HasChildPathFocus( sal_Bool bSystemWindow = sal_False ) const; - sal_Bool IsActive() const; - sal_Bool HasActiveChildFrame(); - sal_uInt16 GetGetFocusFlags() const; - void GrabFocusToDocument(); - - /** - * Set this when you need to act as if the window has focus even if it - * doesn't. This is necessary for implementing tab stops inside floating - * windows, but floating windows don't get focus from the system. - */ - void SetFakeFocus( bool bFocus ); - - sal_Bool IsCompoundControl() const; - - static sal_uIntPtr SaveFocus(); - static sal_Bool EndSaveFocus( sal_uIntPtr nSaveId, sal_Bool bRestore = sal_True ); - - void CaptureMouse(); - void ReleaseMouse(); - sal_Bool IsMouseCaptured() const; - - void SetPointer( const Pointer& rPointer ); - const Pointer& GetPointer() const; - void EnableChildPointerOverwrite( sal_Bool bOverwrite = sal_True ); - void SetPointerPosPixel( const Point& rPos ); - Point GetPointerPosPixel(); - Point GetLastPointerPosPixel(); - void ShowPointer( sal_Bool bVisible ); - void EnterWait(); - void LeaveWait(); - sal_Bool IsWait() const; - - void SetCursor( Cursor* pCursor ); - Cursor* GetCursor() const; - - void SetZoom( const Fraction& rZoom ); - const Fraction& GetZoom() const; - sal_Bool IsZoom() const; - long CalcZoom( long n ) const; - - virtual void SetText( const OUString& rStr ); - virtual OUString GetText() const; - // return the actual text displayed - // this may have e.g. accellerators removed or portions - // replaced by ellipsis - virtual OUString GetDisplayText() const; - // gets the visible background color. for transparent windows - // this may be the parent's background color; for controls - // this may be a child's background color (e.g. ListBox) - virtual const Wallpaper& GetDisplayBackground() const; - - void SetHelpText( const XubString& rHelpText ); - const XubString& GetHelpText() const; - - void SetQuickHelpText( const XubString& rHelpText ); - const XubString& GetQuickHelpText() const; - - void SetHelpId( const OString& ); - const OString& GetHelpId() const; - - void SetUniqueId( const OString& ); - const OString& GetUniqueId() const; - - Window* FindWindow( const Point& rPos ) const; - - sal_uInt16 GetChildCount() const; - Window* GetChild( sal_uInt16 nChild ) const; - Window* GetWindow( sal_uInt16 nType ) const; - sal_Bool IsChild( const Window* pWindow, sal_Bool bSystemWindow = sal_False ) const; - sal_Bool IsWindowOrChild( const Window* pWindow, sal_Bool bSystemWindow = sal_False ) const; - - void SetData( void* pNewData ); - void* GetData() const; - - void ShowFocus( const Rectangle& rRect ); - void HideFocus(); - - void Invert( const Rectangle& rRect, sal_uInt16 nFlags = 0 ); - void Invert( const Polygon& rPoly, sal_uInt16 nFlags = 0 ); - - // transparent background for selected or checked items in toolboxes etc. - void DrawSelectionBackground( const Rectangle& rRect, sal_uInt16 highlight, sal_Bool bChecked, sal_Bool bDrawBorder, sal_Bool bDrawExtBorderOnly ); - // the same, but fills a passed Color with a text color complementing the selection background - void DrawSelectionBackground( const Rectangle& rRect, sal_uInt16 highlight, sal_Bool bChecked, sal_Bool bDrawBorder, sal_Bool bDrawExtBorderOnly, Color* pSelectionTextColor ); - // support rounded edges in the selection rect - void DrawSelectionBackground( const Rectangle& rRect, sal_uInt16 highlight, sal_Bool bChecked, sal_Bool bDrawBorder, sal_Bool bDrawExtBorderOnly, long nCornerRadius, Color* pSelectionTextColor, Color* pPaintColor ); - - void ShowTracking( const Rectangle& rRect, - sal_uInt16 nFlags = SHOWTRACK_SMALL ); - void HideTracking(); - void InvertTracking( const Rectangle& rRect, - sal_uInt16 nFlags = SHOWTRACK_SMALL ); - void InvertTracking( const Polygon& rPoly, sal_uInt16 nFlags = 0 ); - - void StartTracking( sal_uInt16 nFlags = 0 ); - void EndTracking( sal_uInt16 nFlags = 0 ); - sal_Bool IsTracking() const; - - void StartAutoScroll( sal_uInt16 nFlags ); - void EndAutoScroll(); - - sal_Bool HandleScrollCommand( const CommandEvent& rCmd, - ScrollBar* pHScrl = NULL, - ScrollBar* pVScrl = NULL ); - - void SaveBackground( const Point& rPos, const Size& rSize, - const Point& rDestOff, VirtualDevice& rSaveDevice ); - - const SystemEnvData* GetSystemData() const; - ::com::sun::star::uno::Any GetSystemDataAny() const; - - // API to set/query the component interfaces - virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > GetComponentInterface( sal_Bool bCreate = sal_True ); - virtual void SetComponentInterface( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xIFace ); - - // Accessibility - ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetAccessible( sal_Bool bCreate = sal_True ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible(); - void SetAccessible( ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > ); - - Window* GetAccessibleParentWindow() const; - sal_uInt16 GetAccessibleChildWindowCount(); - Window* GetAccessibleChildWindow( sal_uInt16 n ); - - void SetAccessibleRole( sal_uInt16 nRole ); - sal_uInt16 GetAccessibleRole() const; - - void SetAccessibleName( const String& rName ); - String GetAccessibleName() const; - - void SetAccessibleDescription( const String& rDescr ); - String GetAccessibleDescription() const; - - void SetAccessibleRelationLabeledBy( Window* pLabeledBy ); - Window* GetAccessibleRelationLabeledBy() const; - - void SetAccessibleRelationLabelFor( Window* pLabelFor ); - Window* GetAccessibleRelationLabelFor() const; - - void SetAccessibleRelationMemberOf( Window* pMemberOf ); - Window* GetAccessibleRelationMemberOf() const; - - - // to avoid sending accessibility events in cases like closing dialogs - // by default checks complete parent path - sal_Bool IsAccessibilityEventsSuppressed( sal_Bool bTraverseParentPath = sal_True ); - void SetAccessibilityEventsSuppressed(sal_Bool bSuppressed); - - /// request XCanvas render interface for this window - ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XCanvas > GetCanvas() const; - /// request XSpriteCanvas render interface for this window - ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XSpriteCanvas > GetSpriteCanvas() const; - - /* records all DrawText operations within the passed rectangle; - * a synchronous paint is sent to achieve this - */ - void RecordLayoutData( vcl::ControlLayoutData* pLayout, const Rectangle& rRect ); - - // set and retrieve for Toolkit - VCLXWindow* GetWindowPeer() const; - void SetWindowPeer( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xPeer, VCLXWindow* pVCLXWindow ); - - // remember if it was generated by Toolkit - sal_Bool IsCreatedWithToolkit() const; - void SetCreatedWithToolkit( sal_Bool b ); - - // Deprecated - can use SetAccessibleRelationLabelFor/By nowadys - virtual Window* GetParentLabelFor( const Window* pLabel ) const; - virtual Window* GetParentLabeledBy( const Window* pLabeled ) const; - KeyEvent GetActivationKey() const; - - // Drag and Drop interfaces - virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDropTarget > GetDropTarget(); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragSource > GetDragSource(); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragGestureRecognizer > GetDragGestureRecognizer(); - - // Clipboard/Selection interfaces - virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > GetClipboard(); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > GetPrimarySelection(); - - /* - * Advisory Sizing - what is a good size for this widget - * - * Retrieves the preferred size of a widget ignoring - * "width-request" and "height-request" properties. - * - * Implement this in sub-classes to tell layout - * the preferred widget size. - */ - virtual Size GetOptimalSize() const; - - /* - * Widgets call this to inform their owner container that the widget wants - * to renegotiate its size. Should be called when a widget has a new size - * request. e.g. a FixedText Control gets a new label. - * - * akin to gtk_widget_queue_resize - */ - void queue_resize(); - - /* - * Sets the "width-request" property - * - * Override for width request of the widget, or -1 if natural request - * should be used. - * - * @see get_preferred_size, set_width_request - */ - void set_height_request(sal_Int32 nHeightRequest); - sal_Int32 get_height_request() const; - - /* - * Sets the "height-request" property - * - * Override for height request of the widget, or -1 if natural request - * should be used. - * - * @see get_preferred_size, set_height_request - */ - void set_width_request(sal_Int32 nWidthRequest); - sal_Int32 get_width_request() const; - - /* - * Retrieves the preferred size of a widget taking - * into account the "width-request" and "height-request" properties. - * - * Overrides the result of GetOptimalSize to honor the - * width-request and height-request properties. - * - * @see GetOptimalSize - * - * akin to gtk_widget_get_preferred_size - */ - Size get_preferred_size() const; - - /* - * How to horizontally align this widget - */ - VclAlign get_halign() const; - void set_halign(VclAlign eAlign); - - /* - * How to vertically align this widget - */ - VclAlign get_valign() const; - void set_valign(VclAlign eAlign); - - /* - * Whether the widget would like to use any available extra horizontal - * space. - */ - bool get_hexpand() const; - void set_hexpand(bool bExpand); - - /* - * Whether the widget would like to use any available extra vertical - * space. - */ - bool get_vexpand() const; - void set_vexpand(bool bExpand); - - /* - * Whether the widget would like to use any available extra space. - */ - bool get_expand() const; - void set_expand(bool bExpand); - - /* - * Whether the widget should receive extra space when the parent grows - */ - bool get_fill() const; - void set_fill(bool bFill); - - void set_border_width(sal_Int32 nBorderWidth); - sal_Int32 get_border_width() const; - - void set_margin_left(sal_Int32 nWidth); - sal_Int32 get_margin_left() const; - - void set_margin_right(sal_Int32 nWidth); - sal_Int32 get_margin_right() const; - - void set_margin_top(sal_Int32 nWidth); - sal_Int32 get_margin_top() const; - - void set_margin_bottom(sal_Int32 nWidth); - sal_Int32 get_margin_bottom() const; - - /* - * How the widget is packed with reference to the start or end of the parent - */ - VclPackType get_pack_type() const; - void set_pack_type(VclPackType ePackType); - - /* - * The extra space to put between the widget and its neighbors - */ - sal_Int32 get_padding() const; - void set_padding(sal_Int32 nPadding); - - /* - * The number of columns that the widget spans - */ - sal_Int32 get_grid_width() const; - void set_grid_width(sal_Int32 nCols); - - /* - * The column number to attach the left side of the widget to - */ - sal_Int32 get_grid_left_attach() const; - void set_grid_left_attach(sal_Int32 nAttach); - - /* - * The number of row that the widget spans - */ - sal_Int32 get_grid_height() const; - void set_grid_height(sal_Int32 nRows); - - /* - * The row number to attach the top side of the widget to - */ - sal_Int32 get_grid_top_attach() const; - void set_grid_top_attach(sal_Int32 nAttach); - - /* - * If true this child appears in a secondary layout group of children - * e.g. help buttons in a buttonbox - */ - bool get_secondary() const; - void set_secondary(bool bSecondary); - - /* - * Sets a widget property - * - * @return false if property is unknown - */ - virtual bool set_property(const OString &rKey, const OString &rValue); - - /* - * Sets a font attribute - * - * @return false if attribute is unknown - */ - bool set_font_attribute(const OString &rKey, const OString &rValue); - - /* - * Adds this widget to the xGroup VclSizeGroup - * - */ - void add_to_size_group(boost::shared_ptr< VclSizeGroup > xGroup); - void remove_from_all_size_groups(); - - /* - * add/remove mnemonic label - */ - void add_mnemonic_label(FixedText *pLabel); - void remove_mnemonic_label(FixedText *pLabel); - std::vector<FixedText*> list_mnemonic_labels() const; - - /* - * Move this widget to be the nNewPosition'd child of its parent - */ - void reorderWithinParent(sal_uInt16 nNewPosition); - - //------------------------------------- - // Native Widget Rendering functions - //------------------------------------- - - // form controls must never use native widgets, this can be toggled here - void EnableNativeWidget( sal_Bool bEnable = sal_True ); - sal_Bool IsNativeWidgetEnabled() const; - - // a helper method for a Control's Draw method - void PaintToDevice( OutputDevice* pDevice, const Point& rPos, const Size& rSize ); - - /* mark Window for deletion in top of event queue - */ - void doLazyDelete(); - - //------------------------------------- - // Keyboard access functions - //------------------------------------- - - /** Query the states of keyboard indicators - Caps Lock, Num Lock and - Scroll Lock. Use the following mask to retrieve the state of each - indicator: - - INDICATOR_CAPS_LOCK - INDICATOR_NUM_LOCK - INDICATOR_SCROLL_LOCK - */ - sal_uInt16 GetIndicatorState() const; - - void SimulateKeyPress( sal_uInt16 nKeyCode ) const; - - virtual OUString GetSurroundingText() const; - virtual Selection GetSurroundingTextSelection() const; -}; - - -#endif // _SV_WINDOW_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/wmf.hxx b/vcl/inc/vcl/wmf.hxx deleted file mode 100644 index ed0b5e27fd50..000000000000 --- a/vcl/inc/vcl/wmf.hxx +++ /dev/null @@ -1,70 +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 . - */ - -#ifndef _WMF_HXX -#define _WMF_HXX - -#include <vcl/dllapi.h> - -class FilterConfigItem; -class GDIMetaFile; -class SvStream; - -struct WMF_EXTERNALHEADER -{ - sal_uInt16 xExt; - sal_uInt16 yExt; - - /** One of the following values: - <ul> - <li>MM_TEXT</li> - <li>MM_LOMETRIC</li> - <li>MM_HIMETRIC</li> - <li>MM_LOENGLISH</li> - <li>MM_HIENGLISH</li> - <li>MM_TWIPS</li> - <li>MM_ISOTROPIC</li> - <li>MM_ANISOTROPIC</li> - </ul> - If this value is 0, then no external mapmode has been defined, - the internal one should then be used. - */ - sal_uInt16 mapMode; - - WMF_EXTERNALHEADER() : - xExt( 0 ), - yExt( 0 ), - mapMode( 0 ) - { - } -}; - -sal_Bool ConvertWMFToGDIMetaFile( SvStream & rStreamWMF, GDIMetaFile & rGDIMetaFile, FilterConfigItem* pConfigItem = NULL, WMF_EXTERNALHEADER *pExtHeader = NULL ); - -VCL_DLLPUBLIC sal_Bool ReadWindowMetafile( SvStream& rStream, GDIMetaFile& rMTF, FilterConfigItem* pConfigItem ); - -VCL_DLLPUBLIC sal_Bool ConvertGDIMetaFileToWMF( const GDIMetaFile & rMTF, SvStream & rTargetStream, FilterConfigItem* pConfigItem = NULL, sal_Bool bPlaceable = sal_True ); - -sal_Bool ConvertGDIMetaFileToEMF( const GDIMetaFile & rMTF, SvStream & rTargetStream, FilterConfigItem* pConfigItem = NULL ); - -VCL_DLLPUBLIC sal_Bool WriteWindowMetafileBits( SvStream& rStream, const GDIMetaFile& rMTF ); - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/wrkwin.hxx b/vcl/inc/vcl/wrkwin.hxx deleted file mode 100644 index d151d1f12232..000000000000 --- a/vcl/inc/vcl/wrkwin.hxx +++ /dev/null @@ -1,105 +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 . - */ - -#ifndef _SV_WRKWIN_HXX -#define _SV_WRKWIN_HXX - -#include <tools/solar.h> -#include <vcl/dllapi.h> -#include <vcl/syswin.hxx> - -namespace com { namespace sun { namespace star { namespace uno { class Any; }}}} -struct SystemParentData; - -// ---------------------- -// - WorkWindow - Types - -// ---------------------- - -// Presentation Flags -#define PRESENTATION_HIDEALLAPPS ((sal_uInt16)0x0001) -#define PRESENTATION_NOFULLSCREEN ((sal_uInt16)0x0002) -#define PRESENTATION_NOAUTOSHOW ((sal_uInt16)0x0004) - -// -------------- -// - WorkWindow - -// -------------- - -class VCL_DLLPUBLIC WorkWindow : public SystemWindow -{ -private: - sal_uInt16 mnPresentationFlags; - sal_Bool mbPresentationMode:1, - mbPresentationVisible:1, - mbPresentationFull:1, - mbFullScreenMode:1; - - SAL_DLLPRIVATE void ImplInitWorkWindowData(); - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle, const ::com::sun::star::uno::Any& aSystemWorkWindowToken ); - -private: - SAL_DLLPRIVATE WorkWindow( const WorkWindow& rWin ); - SAL_DLLPRIVATE WorkWindow& operator =( const WorkWindow& rWin ); - -protected: - WorkWindow( WindowType nType ); - SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle, SystemParentData* pSystemParentData = NULL ); - SAL_DLLPRIVATE void ImplSetFrameState( sal_uLong aFrameState ); - -public: - WorkWindow( Window* pParent, WinBits nStyle = WB_STDWORK ); - WorkWindow( Window* pParent, const ::com::sun::star::uno::Any& aSystemWorkWindowToken, WinBits nStyle = WB_STDWORK ); - WorkWindow( SystemParentData* pParent ); // Not in the REMOTE-Version - ~WorkWindow(); - - virtual sal_Bool Close(); - - void ShowFullScreenMode( sal_Bool bFullScreenMode, - sal_Int32 nDisplayScreen ); - /** - @overload Calls ShowFullScreenMode( bFullScreenMode, GetScreenNumber()). - */ - void ShowFullScreenMode( sal_Bool bFullScreenMode = sal_True ); - void EndFullScreenMode() { ShowFullScreenMode( sal_False ); } - sal_Bool IsFullScreenMode() const { return mbFullScreenMode; } - - void StartPresentationMode( sal_Bool bPresentation, - sal_uInt16 nFlags, - sal_Int32 nDisplayScreen ); - /** - @overload Calls StartPresentationMode( bFullScreenMode, nFlags, GetScreenNumber()). - */ - void StartPresentationMode( sal_Bool bPresentation = sal_True, - sal_uInt16 nFlags = 0 ); - void EndPresentationMode() { StartPresentationMode( sal_False ); } - sal_Bool IsPresentationMode() const { return mbPresentationMode; } - - sal_Bool IsMinimized() const; - - sal_Bool SetPluginParent( SystemParentData* pParent ); - - void Minimize(); - void Restore(); - - void Maximize( sal_Bool bMaximize = sal_True ); - sal_Bool IsMaximized() const; -}; - -#endif // _SV_WRKWIN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/vcl/xtextedt.hxx b/vcl/inc/vcl/xtextedt.hxx deleted file mode 100644 index b763e37102c7..000000000000 --- a/vcl/inc/vcl/xtextedt.hxx +++ /dev/null @@ -1,69 +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 . - */ -#ifndef _XTEXTEDT_HXX -#define _XTEXTEDT_HXX - -#include <vcl/dllapi.h> -#include <vcl/texteng.hxx> -#include <vcl/textview.hxx> - -namespace com { -namespace sun { -namespace star { -namespace util { - struct SearchOptions; -}}}} - -class VCL_DLLPUBLIC ExtTextEngine : public TextEngine -{ -private: - String maGroupChars; - -public: - ExtTextEngine(); - ~ExtTextEngine(); - - const String& GetGroupChars() const { return maGroupChars; } - void SetGroupChars( const String& r ) { maGroupChars = r; } - TextSelection MatchGroup( const TextPaM& rCursor ) const; - - sal_Bool Search( TextSelection& rSel, const ::com::sun::star::util::SearchOptions& rSearchOptions, sal_Bool bForward = sal_True ); -}; - -class VCL_DLLPUBLIC ExtTextView : public TextView -{ -protected: - sal_Bool ImpIndentBlock( sal_Bool bRight ); - -public: - ExtTextView( ExtTextEngine* pEng, Window* pWindow ); - ~ExtTextView(); - - sal_Bool MatchGroup(); - - sal_Bool Search( const ::com::sun::star::util::SearchOptions& rSearchOptions, sal_Bool bForward ); - sal_uInt16 Replace( const ::com::sun::star::util::SearchOptions& rSearchOptions, sal_Bool bAll, sal_Bool bForward ); - - sal_Bool IndentBlock(); - sal_Bool UnindentBlock(); -}; - -#endif // _XTEXTEDT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |