xref: /AOO41X/main/sw/source/ui/sidebar/PageMarginControl.hxx (revision ca62e2c2083b5d0995f1245bad6c2edfb455fbec)
1ff0525f2SOliver-Rainer Wittmann /**************************************************************
2ff0525f2SOliver-Rainer Wittmann  *
3ff0525f2SOliver-Rainer Wittmann  * Licensed to the Apache Software Foundation (ASF) under one
4ff0525f2SOliver-Rainer Wittmann  * or more contributor license agreements.  See the NOTICE file
5ff0525f2SOliver-Rainer Wittmann  * distributed with this work for additional information
6ff0525f2SOliver-Rainer Wittmann  * regarding copyright ownership.  The ASF licenses this file
7ff0525f2SOliver-Rainer Wittmann  * to you under the Apache License, Version 2.0 (the
8ff0525f2SOliver-Rainer Wittmann  * "License"); you may not use this file except in compliance
9ff0525f2SOliver-Rainer Wittmann  * with the License.  You may obtain a copy of the License at
10ff0525f2SOliver-Rainer Wittmann  *
11ff0525f2SOliver-Rainer Wittmann  *   http://www.apache.org/licenses/LICENSE-2.0
12ff0525f2SOliver-Rainer Wittmann  *
13ff0525f2SOliver-Rainer Wittmann  * Unless required by applicable law or agreed to in writing,
14ff0525f2SOliver-Rainer Wittmann  * software distributed under the License is distributed on an
15ff0525f2SOliver-Rainer Wittmann  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16ff0525f2SOliver-Rainer Wittmann  * KIND, either express or implied.  See the License for the
17ff0525f2SOliver-Rainer Wittmann  * specific language governing permissions and limitations
18ff0525f2SOliver-Rainer Wittmann  * under the License.
19ff0525f2SOliver-Rainer Wittmann  *
20ff0525f2SOliver-Rainer Wittmann  *************************************************************/
21ff0525f2SOliver-Rainer Wittmann 
22ff0525f2SOliver-Rainer Wittmann #ifndef _SW_SIDEBAR_PAGE_MARGIN_CONTROL_HXX_
23ff0525f2SOliver-Rainer Wittmann #define _SW_SIDEBAR_PAGE_MARGIN_CONTROL_HXX_
24ff0525f2SOliver-Rainer Wittmann 
25ff0525f2SOliver-Rainer Wittmann #include <svx/sidebar/PopupControl.hxx>
26ff0525f2SOliver-Rainer Wittmann 
27ff0525f2SOliver-Rainer Wittmann #include <tools/fldunit.hxx>
28ff0525f2SOliver-Rainer Wittmann #include <svl/poolitem.hxx>
29*f120fe41SAndre Fischer #include <svx/rulritem.hxx>
30ff0525f2SOliver-Rainer Wittmann #include <unotools/viewoptions.hxx>
31*f120fe41SAndre Fischer #include <vcl/fixed.hxx>
32*f120fe41SAndre Fischer #include <vcl/field.hxx>
33*f120fe41SAndre Fischer #include <svtools/unitconv.hxx>
34ff0525f2SOliver-Rainer Wittmann #include <vector>
35ff0525f2SOliver-Rainer Wittmann 
36ff0525f2SOliver-Rainer Wittmann #define SWPAGE_NARROW_VALUE    720
37ff0525f2SOliver-Rainer Wittmann #define SWPAGE_NORMAL_VALUE    1136
38ff0525f2SOliver-Rainer Wittmann #define SWPAGE_WIDE_VALUE1     1440
39ff0525f2SOliver-Rainer Wittmann #define SWPAGE_WIDE_VALUE2	   2880
40ff0525f2SOliver-Rainer Wittmann #define SWPAGE_WIDE_VALUE3	   1800
41ff0525f2SOliver-Rainer Wittmann 
42ff0525f2SOliver-Rainer Wittmann 
43ff0525f2SOliver-Rainer Wittmann namespace svx { namespace sidebar {
44ff0525f2SOliver-Rainer Wittmann     class ValueSetWithTextControl;
45ff0525f2SOliver-Rainer Wittmann } }
46ff0525f2SOliver-Rainer Wittmann 
47ff0525f2SOliver-Rainer Wittmann static const long MINBODY = 284; //0.5 cm in twips
48ff0525f2SOliver-Rainer Wittmann 
49ff0525f2SOliver-Rainer Wittmann namespace sw { namespace sidebar {
50ff0525f2SOliver-Rainer Wittmann 
51ff0525f2SOliver-Rainer Wittmann class PagePropertyPanel;
52ff0525f2SOliver-Rainer Wittmann 
53ff0525f2SOliver-Rainer Wittmann 
54ff0525f2SOliver-Rainer Wittmann class PageMarginControl
55ff0525f2SOliver-Rainer Wittmann     : public ::svx::sidebar::PopupControl
56ff0525f2SOliver-Rainer Wittmann {
57ff0525f2SOliver-Rainer Wittmann public:
58ff0525f2SOliver-Rainer Wittmann     PageMarginControl(
59ff0525f2SOliver-Rainer Wittmann         Window* pParent,
60ff0525f2SOliver-Rainer Wittmann         PagePropertyPanel& rPanel,
61ff0525f2SOliver-Rainer Wittmann         const SvxLongLRSpaceItem& aPageLRMargin,
62ff0525f2SOliver-Rainer Wittmann         const SvxLongULSpaceItem& aPageULMargin,
63ff0525f2SOliver-Rainer Wittmann         const bool bMirrored,
64ff0525f2SOliver-Rainer Wittmann         const Size aPageSize,
65ff0525f2SOliver-Rainer Wittmann         const sal_Bool bLandscape,
66ff0525f2SOliver-Rainer Wittmann         const FieldUnit eFUnit,
67ff0525f2SOliver-Rainer Wittmann         const SfxMapUnit eUnit );
68ff0525f2SOliver-Rainer Wittmann     ~PageMarginControl(void);
69ff0525f2SOliver-Rainer Wittmann 
70ff0525f2SOliver-Rainer Wittmann private:
71ff0525f2SOliver-Rainer Wittmann     ::svx::sidebar::ValueSetWithTextControl* mpMarginValueSet;
72ff0525f2SOliver-Rainer Wittmann 
73ff0525f2SOliver-Rainer Wittmann     FixedText maCustom;
74ff0525f2SOliver-Rainer Wittmann     FixedText maLeft;
75ff0525f2SOliver-Rainer Wittmann     FixedText maInner;
76ff0525f2SOliver-Rainer Wittmann     MetricField maLeftMarginEdit;
77ff0525f2SOliver-Rainer Wittmann     FixedText maRight;
78ff0525f2SOliver-Rainer Wittmann     FixedText maOuter;
79ff0525f2SOliver-Rainer Wittmann     MetricField maRightMarginEdit;
80ff0525f2SOliver-Rainer Wittmann     FixedText maTop;
81ff0525f2SOliver-Rainer Wittmann     MetricField maTopMarginEdit;
82ff0525f2SOliver-Rainer Wittmann     FixedText maBottom;
83ff0525f2SOliver-Rainer Wittmann     MetricField maBottomMarginEdit;
84ff0525f2SOliver-Rainer Wittmann 
85ff0525f2SOliver-Rainer Wittmann     // hidden metric field
86ff0525f2SOliver-Rainer Wittmann     MetricField maWidthHeightField;
87ff0525f2SOliver-Rainer Wittmann 
88ff0525f2SOliver-Rainer Wittmann     long mnPageLeftMargin;
89ff0525f2SOliver-Rainer Wittmann     long mnPageRightMargin;
90ff0525f2SOliver-Rainer Wittmann     long mnPageTopMargin;
91ff0525f2SOliver-Rainer Wittmann     long mnPageBottomMargin;
92ff0525f2SOliver-Rainer Wittmann     bool mbMirrored;
93ff0525f2SOliver-Rainer Wittmann 
94ff0525f2SOliver-Rainer Wittmann     const SfxMapUnit meUnit;
95ff0525f2SOliver-Rainer Wittmann 
962924af3dSOliver-Rainer Wittmann     bool mbUserCustomValuesAvailable;
97ff0525f2SOliver-Rainer Wittmann     long mnUserCustomPageLeftMargin;
98ff0525f2SOliver-Rainer Wittmann     long mnUserCustomPageRightMargin;
99ff0525f2SOliver-Rainer Wittmann     long mnUserCustomPageTopMargin;
100ff0525f2SOliver-Rainer Wittmann     long mnUserCustomPageBottomMargin;
101ff0525f2SOliver-Rainer Wittmann     bool mbUserCustomMirrored;
102ff0525f2SOliver-Rainer Wittmann 
103ff0525f2SOliver-Rainer Wittmann     bool mbCustomValuesUsed;
104ff0525f2SOliver-Rainer Wittmann 
105ff0525f2SOliver-Rainer Wittmann     PagePropertyPanel& mrPagePropPanel;
106ff0525f2SOliver-Rainer Wittmann 
107ff0525f2SOliver-Rainer Wittmann     DECL_LINK( ImplMarginHdl, void* );
108ff0525f2SOliver-Rainer Wittmann     DECL_LINK( ModifyLRMarginHdl, MetricField* );
109ff0525f2SOliver-Rainer Wittmann     DECL_LINK( ModifyULMarginHdl, MetricField* );
110ff0525f2SOliver-Rainer Wittmann 
111ff0525f2SOliver-Rainer Wittmann     void SetMetricFieldMaxValues( const Size aPageSize );
112ff0525f2SOliver-Rainer Wittmann 
113ff0525f2SOliver-Rainer Wittmann     bool GetUserCustomValues();
114ff0525f2SOliver-Rainer Wittmann     void StoreUserCustomValues();
115ff0525f2SOliver-Rainer Wittmann 
116ff0525f2SOliver-Rainer Wittmann     void FillValueSet(
117ff0525f2SOliver-Rainer Wittmann         const bool bLandscape,
118ff0525f2SOliver-Rainer Wittmann         const bool bUserCustomValuesAvailable );
119ff0525f2SOliver-Rainer Wittmann     void SelectValueSetItem();
120ff0525f2SOliver-Rainer Wittmann };
121ff0525f2SOliver-Rainer Wittmann 
122ff0525f2SOliver-Rainer Wittmann } } // end of namespace sw::sidebar
123ff0525f2SOliver-Rainer Wittmann 
124ff0525f2SOliver-Rainer Wittmann #endif
125