xref: /AOO41X/main/svtools/inc/svtools/printoptions.hxx (revision 01aa44aa134af97080e2cf8e8bf3a0a4cd1cffe0)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef INCLUDED_SVTOOLS_PRINTOPTIONS_HXX
25 #define INCLUDED_SVTOOLS_PRINTOPTIONS_HXX
26 
27 #include "svtools/svtdllapi.h"
28 #include <sal/types.h>
29 #include <osl/mutex.hxx>
30 #include <rtl/ustring.hxx>
31 #include <unotools/options.hxx>
32 
33 class SvtPrintOptions_Impl;
34 
35 // -----------------------
36 // - SvtBasePrintOptions -
37 // -----------------------
38 
39 class PrinterOptions;
40 
41 class SVT_DLLPUBLIC SvtBasePrintOptions: public utl::detail::Options
42 {
43 protected:
44 
45     SvtPrintOptions_Impl* m_pDataContainer;
46 
SetDataContainer(SvtPrintOptions_Impl * pDataContainer)47     void        SetDataContainer( SvtPrintOptions_Impl* pDataContainer ) { m_pDataContainer = pDataContainer; }
48 
49 public:
50 
51     static ::osl::Mutex& GetOwnStaticMutex();
52 
53 public:
54 
55                 SvtBasePrintOptions();
56                 virtual ~SvtBasePrintOptions();
57 
58     sal_Bool    IsReduceTransparency() const;
59     sal_Int16   GetReducedTransparencyMode() const;
60     sal_Bool    IsReduceGradients() const;
61     sal_Int16   GetReducedGradientMode() const;
62     sal_Int16   GetReducedGradientStepCount() const;
63     sal_Bool    IsReduceBitmaps() const;
64     sal_Int16   GetReducedBitmapMode() const;
65     sal_Int16   GetReducedBitmapResolution() const;
66     sal_Bool    IsReducedBitmapIncludesTransparency() const;
67     sal_Bool    IsConvertToGreyscales() const;
68 
69     void        SetReduceTransparency( sal_Bool bState );
70     void        SetReducedTransparencyMode( sal_Int16 nMode );
71     void        SetReduceGradients( sal_Bool bState );
72     void        SetReducedGradientMode( sal_Int16 nMode );
73     void        SetReducedGradientStepCount( sal_Int16 nStepCount );
74     void        SetReduceBitmaps( sal_Bool bState );
75     void        SetReducedBitmapMode( sal_Int16   bState );
76     void        SetReducedBitmapResolution( sal_Int16 nResolution );
77     void        SetReducedBitmapIncludesTransparency( sal_Bool bState );
78     void        SetConvertToGreyscales( sal_Bool bState );
79 
80 public:
81 
82     void        GetPrinterOptions( PrinterOptions& rOptions ) const;
83     void        SetPrinterOptions( const PrinterOptions& rOptions );
84 };
85 
86 // ---------------------
87 // - SvtPrinterOptions -
88 // ---------------------
89 
90 class SVT_DLLPUBLIC SvtPrinterOptions : public SvtBasePrintOptions
91 {
92 private:
93 
94     static SvtPrintOptions_Impl*    m_pStaticDataContainer; /// impl. data container as dynamic pointer for smaller memory requirements!
95     static sal_Int32                m_nRefCount;            /// internal ref count mechanism
96 
97 public:
98 
99     SvtPrinterOptions();
100     virtual ~SvtPrinterOptions();
101 };
102 
103 // -----------------------
104 // - SvtPrintFileOptions -
105 // -----------------------
106 
107 class SVT_DLLPUBLIC SvtPrintFileOptions : public SvtBasePrintOptions
108 {
109 private:
110 
111     static SvtPrintOptions_Impl*    m_pStaticDataContainer; /// impl. data container as dynamic pointer for smaller memory requirements!
112     static sal_Int32                m_nRefCount;            /// internal ref count mechanism
113 
114 public:
115 
116     SvtPrintFileOptions();
117     virtual ~SvtPrintFileOptions();
118 };
119 
120 #endif // INCLUDED_SVTOOLS_PRINTOPTIONS_HXX
121