diff options
Diffstat (limited to 'sfx2/inc/sfx2/printer.hxx')
-rw-r--r-- | sfx2/inc/sfx2/printer.hxx | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/sfx2/inc/sfx2/printer.hxx b/sfx2/inc/sfx2/printer.hxx new file mode 100644 index 000000000000..a96033835a84 --- /dev/null +++ b/sfx2/inc/sfx2/printer.hxx @@ -0,0 +1,143 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SFX_PRINTER_HXX +#define _SFX_PRINTER_HXX + +#include "sal/config.h" +#include "sfx2/dllapi.h" +#include "sal/types.h" +#ifndef _PRINT_HXX //autogen +#include <vcl/print.hxx> +#endif + +class SfxFont; +class SfxTabPage; +class SfxItemSet; + +struct SfxPrinter_Impl; + +#define SFX_RANGE_NOTSET ((USHORT)0xFFFF) + +// class SfxFontSizeInfo ------------------------------------------------- + +class SfxFontSizeInfo +{ +private: + static USHORT pStaticSizes[]; + Size* pSizes; + USHORT nSizes; + BOOL bScalable; + +public: + SfxFontSizeInfo( const SfxFont& rFont, const OutputDevice& rDevice ); + ~SfxFontSizeInfo(); + + BOOL HasSize(const Size &rSize) const; + BOOL IsScalable() const { return bScalable; } + + USHORT SizeCount() const { return nSizes; } + const Size& GetSize( USHORT nNo ) const + { return pSizes[nNo]; } +}; + +// class SfxFont --------------------------------------------------------- + +class SFX2_DLLPUBLIC SfxFont +{ +private: + String aName; + FontFamily eFamily; + FontPitch ePitch; + CharSet eCharSet; + + SfxFont& operator=(const SfxFont& rFont); // not implemented + +public: + SfxFont( const FontFamily eFam, + const String& aName, + const FontPitch eFontPitch = PITCH_DONTKNOW, + const CharSet eFontCharSet = RTL_TEXTENCODING_DONTKNOW ); + // ZugriffsMethoden: + inline const String& GetName() const { return aName; } + inline FontFamily GetFamily() const { return eFamily; } + inline FontPitch GetPitch() const { return ePitch; } + inline CharSet GetCharSet() const { return eCharSet; } +}; + +// class SfxPrinter ------------------------------------------------------ + +class SFX2_DLLPUBLIC SfxPrinter : public Printer +{ +private: + JobSetup aOrigJobSetup; + SfxItemSet* pOptions; + SfxPrinter_Impl* pImpl; + BOOL bKnown; + + SAL_DLLPRIVATE void operator =(SfxPrinter &); // not defined + + SAL_DLLPRIVATE void UpdateFonts_Impl(); + +public: + SfxPrinter( SfxItemSet *pTheOptions ); + SfxPrinter( SfxItemSet *pTheOptions, + const String &rPrinterName ); + SfxPrinter( SfxItemSet *pTheOptions, + const JobSetup &rTheOrigJobSetup ); + SfxPrinter( SfxItemSet *pTheOptions, + const String &rPrinterName, + const JobSetup &rTheOrigJobSetup ); + SfxPrinter( const SfxPrinter &rPrinter ); + ~SfxPrinter(); + + SfxPrinter* Clone() const; + + static SfxPrinter* Create( SvStream &rStream, SfxItemSet *pOptions ); + SvStream& Store( SvStream &rStream ) const; + + const JobSetup& GetOrigJobSetup() const { return aOrigJobSetup; } + void SetOrigJobSetup( const JobSetup &rNewJobSetup ); + + const SfxItemSet& GetOptions() const { return *pOptions; } + void SetOptions( const SfxItemSet &rNewOptions ); + + void EnableRange( USHORT nRange ); + void DisableRange( USHORT nRange ); + BOOL IsRangeEnabled( USHORT nRange ) const; + + BOOL IsKnown() const { return bKnown; } + BOOL IsOriginal() const { return bKnown; } + + using OutputDevice::GetFont; + USHORT GetFontCount(); + const SfxFont* GetFont( USHORT nNo ) const; + const SfxFont* GetFontByName( const String &rFontName ); + + BOOL InitJob( Window* pUIParent, BOOL bAskAboutTransparentObjects ); +}; + +#endif |