xref: /trunk/main/sw/source/ui/sidebar/PageMarginControl.hxx (revision 2924af3d98650128c24587fbb460f66695671d5f)
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>
29ff0525f2SOliver-Rainer Wittmann #include <unotools/viewoptions.hxx>
30ff0525f2SOliver-Rainer Wittmann 
31ff0525f2SOliver-Rainer Wittmann #include <vector>
32ff0525f2SOliver-Rainer Wittmann 
33ff0525f2SOliver-Rainer Wittmann #define SWPAGE_NARROW_VALUE    720
34ff0525f2SOliver-Rainer Wittmann #define SWPAGE_NORMAL_VALUE    1136
35ff0525f2SOliver-Rainer Wittmann #define SWPAGE_WIDE_VALUE1     1440
36ff0525f2SOliver-Rainer Wittmann #define SWPAGE_WIDE_VALUE2     2880
37ff0525f2SOliver-Rainer Wittmann #define SWPAGE_WIDE_VALUE3     1800
38ff0525f2SOliver-Rainer Wittmann 
39ff0525f2SOliver-Rainer Wittmann 
40ff0525f2SOliver-Rainer Wittmann namespace svx { namespace sidebar {
41ff0525f2SOliver-Rainer Wittmann     class ValueSetWithTextControl;
42ff0525f2SOliver-Rainer Wittmann } }
43ff0525f2SOliver-Rainer Wittmann 
44ff0525f2SOliver-Rainer Wittmann static const long MINBODY = 284; //0.5 cm in twips
45ff0525f2SOliver-Rainer Wittmann 
46ff0525f2SOliver-Rainer Wittmann namespace sw { namespace sidebar {
47ff0525f2SOliver-Rainer Wittmann 
48ff0525f2SOliver-Rainer Wittmann class PagePropertyPanel;
49ff0525f2SOliver-Rainer Wittmann 
50ff0525f2SOliver-Rainer Wittmann 
51ff0525f2SOliver-Rainer Wittmann class PageMarginControl
52ff0525f2SOliver-Rainer Wittmann     : public ::svx::sidebar::PopupControl
53ff0525f2SOliver-Rainer Wittmann {
54ff0525f2SOliver-Rainer Wittmann public:
55ff0525f2SOliver-Rainer Wittmann     PageMarginControl(
56ff0525f2SOliver-Rainer Wittmann         Window* pParent,
57ff0525f2SOliver-Rainer Wittmann         PagePropertyPanel& rPanel,
58ff0525f2SOliver-Rainer Wittmann         const SvxLongLRSpaceItem& aPageLRMargin,
59ff0525f2SOliver-Rainer Wittmann         const SvxLongULSpaceItem& aPageULMargin,
60ff0525f2SOliver-Rainer Wittmann         const bool bMirrored,
61ff0525f2SOliver-Rainer Wittmann         const Size aPageSize,
62ff0525f2SOliver-Rainer Wittmann         const sal_Bool bLandscape,
63ff0525f2SOliver-Rainer Wittmann         const FieldUnit eFUnit,
64ff0525f2SOliver-Rainer Wittmann         const SfxMapUnit eUnit );
65ff0525f2SOliver-Rainer Wittmann     ~PageMarginControl(void);
66ff0525f2SOliver-Rainer Wittmann 
67ff0525f2SOliver-Rainer Wittmann private:
68ff0525f2SOliver-Rainer Wittmann     ::svx::sidebar::ValueSetWithTextControl* mpMarginValueSet;
69ff0525f2SOliver-Rainer Wittmann 
70ff0525f2SOliver-Rainer Wittmann     FixedText maCustom;
71ff0525f2SOliver-Rainer Wittmann     FixedText maLeft;
72ff0525f2SOliver-Rainer Wittmann     FixedText maInner;
73ff0525f2SOliver-Rainer Wittmann     MetricField maLeftMarginEdit;
74ff0525f2SOliver-Rainer Wittmann     FixedText maRight;
75ff0525f2SOliver-Rainer Wittmann     FixedText maOuter;
76ff0525f2SOliver-Rainer Wittmann     MetricField maRightMarginEdit;
77ff0525f2SOliver-Rainer Wittmann     FixedText maTop;
78ff0525f2SOliver-Rainer Wittmann     MetricField maTopMarginEdit;
79ff0525f2SOliver-Rainer Wittmann     FixedText maBottom;
80ff0525f2SOliver-Rainer Wittmann     MetricField maBottomMarginEdit;
81ff0525f2SOliver-Rainer Wittmann 
82ff0525f2SOliver-Rainer Wittmann     // hidden metric field
83ff0525f2SOliver-Rainer Wittmann     MetricField maWidthHeightField;
84ff0525f2SOliver-Rainer Wittmann 
85ff0525f2SOliver-Rainer Wittmann     long mnPageLeftMargin;
86ff0525f2SOliver-Rainer Wittmann     long mnPageRightMargin;
87ff0525f2SOliver-Rainer Wittmann     long mnPageTopMargin;
88ff0525f2SOliver-Rainer Wittmann     long mnPageBottomMargin;
89ff0525f2SOliver-Rainer Wittmann     bool mbMirrored;
90ff0525f2SOliver-Rainer Wittmann 
91ff0525f2SOliver-Rainer Wittmann     const SfxMapUnit meUnit;
92ff0525f2SOliver-Rainer Wittmann 
93*2924af3dSOliver-Rainer Wittmann     bool mbUserCustomValuesAvailable;
94ff0525f2SOliver-Rainer Wittmann     long mnUserCustomPageLeftMargin;
95ff0525f2SOliver-Rainer Wittmann     long mnUserCustomPageRightMargin;
96ff0525f2SOliver-Rainer Wittmann     long mnUserCustomPageTopMargin;
97ff0525f2SOliver-Rainer Wittmann     long mnUserCustomPageBottomMargin;
98ff0525f2SOliver-Rainer Wittmann     bool mbUserCustomMirrored;
99ff0525f2SOliver-Rainer Wittmann 
100ff0525f2SOliver-Rainer Wittmann     bool mbCustomValuesUsed;
101ff0525f2SOliver-Rainer Wittmann 
102ff0525f2SOliver-Rainer Wittmann     PagePropertyPanel& mrPagePropPanel;
103ff0525f2SOliver-Rainer Wittmann 
104ff0525f2SOliver-Rainer Wittmann     DECL_LINK( ImplMarginHdl, void* );
105ff0525f2SOliver-Rainer Wittmann     DECL_LINK( ModifyLRMarginHdl, MetricField* );
106ff0525f2SOliver-Rainer Wittmann     DECL_LINK( ModifyULMarginHdl, MetricField* );
107ff0525f2SOliver-Rainer Wittmann 
108ff0525f2SOliver-Rainer Wittmann     void SetMetricFieldMaxValues( const Size aPageSize );
109ff0525f2SOliver-Rainer Wittmann 
110ff0525f2SOliver-Rainer Wittmann     bool GetUserCustomValues();
111ff0525f2SOliver-Rainer Wittmann     void StoreUserCustomValues();
112ff0525f2SOliver-Rainer Wittmann 
113ff0525f2SOliver-Rainer Wittmann     void FillValueSet(
114ff0525f2SOliver-Rainer Wittmann         const bool bLandscape,
115ff0525f2SOliver-Rainer Wittmann         const bool bUserCustomValuesAvailable );
116ff0525f2SOliver-Rainer Wittmann     void SelectValueSetItem();
117ff0525f2SOliver-Rainer Wittmann };
118ff0525f2SOliver-Rainer Wittmann 
119ff0525f2SOliver-Rainer Wittmann } } // end of namespace sw::sidebar
120ff0525f2SOliver-Rainer Wittmann 
121ff0525f2SOliver-Rainer Wittmann #endif
122