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