xref: /trunk/main/sw/source/ui/sidebar/PagePropertyPanel.cxx (revision 344957f76007126c8053525f8d780d21c982c6d4)
10520cc2cSOliver-Rainer Wittmann /**************************************************************
2ff0525f2SOliver-Rainer Wittmann *
30520cc2cSOliver-Rainer Wittmann * Licensed to the Apache Software Foundation (ASF) under one
40520cc2cSOliver-Rainer Wittmann * or more contributor license agreements.  See the NOTICE file
50520cc2cSOliver-Rainer Wittmann * distributed with this work for additional information
60520cc2cSOliver-Rainer Wittmann * regarding copyright ownership.  The ASF licenses this file
70520cc2cSOliver-Rainer Wittmann * to you under the Apache License, Version 2.0 (the
80520cc2cSOliver-Rainer Wittmann * "License"); you may not use this file except in compliance
90520cc2cSOliver-Rainer Wittmann * with the License.  You may obtain a copy of the License at
10ff0525f2SOliver-Rainer Wittmann *
110520cc2cSOliver-Rainer Wittmann *   http://www.apache.org/licenses/LICENSE-2.0
120520cc2cSOliver-Rainer Wittmann *
130520cc2cSOliver-Rainer Wittmann * Unless required by applicable law or agreed to in writing,
140520cc2cSOliver-Rainer Wittmann * software distributed under the License is distributed on an
150520cc2cSOliver-Rainer Wittmann * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
160520cc2cSOliver-Rainer Wittmann * KIND, either express or implied.  See the License for the
170520cc2cSOliver-Rainer Wittmann * specific language governing permissions and limitations
180520cc2cSOliver-Rainer Wittmann * under the License.
190520cc2cSOliver-Rainer Wittmann *
200520cc2cSOliver-Rainer Wittmann *************************************************************/
21ff0525f2SOliver-Rainer Wittmann 
22*344957f7Smseidel 
23*344957f7Smseidel 
24ff0525f2SOliver-Rainer Wittmann #include "precompiled_sw.hxx"
25ff0525f2SOliver-Rainer Wittmann 
26ff0525f2SOliver-Rainer Wittmann #include "PagePropertyPanel.hxx"
27ff0525f2SOliver-Rainer Wittmann #include "PagePropertyPanel.hrc"
28ff0525f2SOliver-Rainer Wittmann 
29ff0525f2SOliver-Rainer Wittmann #include "PropertyPanel.hrc"
30ff0525f2SOliver-Rainer Wittmann 
31ff0525f2SOliver-Rainer Wittmann #include <svx/sidebar/PopupContainer.hxx>
32ff0525f2SOliver-Rainer Wittmann #include "PageOrientationControl.hxx"
33ff0525f2SOliver-Rainer Wittmann #include "PageMarginControl.hxx"
34ff0525f2SOliver-Rainer Wittmann #include "PageSizeControl.hxx"
35ff0525f2SOliver-Rainer Wittmann #include "PageColumnControl.hxx"
36ff0525f2SOliver-Rainer Wittmann 
37ff0525f2SOliver-Rainer Wittmann #include <swtypes.hxx>
38ff0525f2SOliver-Rainer Wittmann #include <cmdid.h>
39ff0525f2SOliver-Rainer Wittmann #include <errhdl.hxx>
40ff0525f2SOliver-Rainer Wittmann 
41ff0525f2SOliver-Rainer Wittmann #include <svl/intitem.hxx>
42ff0525f2SOliver-Rainer Wittmann #include <editeng/sizeitem.hxx>
43ff0525f2SOliver-Rainer Wittmann #include <editeng/paperinf.hxx>
44ff0525f2SOliver-Rainer Wittmann #include <svx/svxids.hrc>
45ff0525f2SOliver-Rainer Wittmann #include <svx/dlgutil.hxx>
46ff0525f2SOliver-Rainer Wittmann #include <svx/rulritem.hxx>
47ff0525f2SOliver-Rainer Wittmann 
48ff0525f2SOliver-Rainer Wittmann #include <sfx2/sidebar/ControlFactory.hxx>
496a606da0SAndre Fischer #include <sfx2/sidebar/Layouter.hxx>
506a606da0SAndre Fischer #include <sfx2/sidebar/ResourceDefinitions.hrc>
51ff0525f2SOliver-Rainer Wittmann #include <sfx2/dispatch.hxx>
52ff0525f2SOliver-Rainer Wittmann #include <sfx2/bindings.hxx>
53ff0525f2SOliver-Rainer Wittmann #include <sfx2/viewsh.hxx>
54ff0525f2SOliver-Rainer Wittmann #include <sfx2/objsh.hxx>
55ff0525f2SOliver-Rainer Wittmann 
56ff0525f2SOliver-Rainer Wittmann #include <boost/bind.hpp>
57ff0525f2SOliver-Rainer Wittmann 
58550fbbbdSOliver-Rainer Wittmann #include <com/sun/star/frame/XController.hpp>
59550fbbbdSOliver-Rainer Wittmann #include <com/sun/star/frame/XModel.hpp>
60550fbbbdSOliver-Rainer Wittmann #include <com/sun/star/document/XUndoManagerSupplier.hpp>
61550fbbbdSOliver-Rainer Wittmann 
626a606da0SAndre Fischer using namespace ::sfx2::sidebar;
636a606da0SAndre Fischer 
64ff0525f2SOliver-Rainer Wittmann #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
65ff0525f2SOliver-Rainer Wittmann 
66ff0525f2SOliver-Rainer Wittmann #define SetFldVal(rField, lValue) (rField).SetValue((rField).Normalize(lValue), FUNIT_TWIP)
67ff0525f2SOliver-Rainer Wittmann 
68550fbbbdSOliver-Rainer Wittmann namespace {
getUndoManager(const cssu::Reference<css::frame::XFrame> & rxFrame)69550fbbbdSOliver-Rainer Wittmann     const cssu::Reference< css::document::XUndoManager > getUndoManager( const cssu::Reference< css::frame::XFrame >& rxFrame )
70550fbbbdSOliver-Rainer Wittmann     {
71550fbbbdSOliver-Rainer Wittmann         const cssu::Reference< css::frame::XController >& xController = rxFrame->getController();
72550fbbbdSOliver-Rainer Wittmann         if ( xController.is() )
73550fbbbdSOliver-Rainer Wittmann         {
74550fbbbdSOliver-Rainer Wittmann             const cssu::Reference< css::frame::XModel >& xModel = xController->getModel();
75550fbbbdSOliver-Rainer Wittmann             if ( xModel.is() )
76550fbbbdSOliver-Rainer Wittmann             {
77550fbbbdSOliver-Rainer Wittmann                 const cssu::Reference< css::document::XUndoManagerSupplier > xSuppUndo( xModel, cssu::UNO_QUERY_THROW );
78550fbbbdSOliver-Rainer Wittmann                 if ( xSuppUndo.is() )
79550fbbbdSOliver-Rainer Wittmann                 {
80550fbbbdSOliver-Rainer Wittmann                     const cssu::Reference< css::document::XUndoManager > xUndoManager( xSuppUndo->getUndoManager(), cssu::UNO_QUERY_THROW );
81550fbbbdSOliver-Rainer Wittmann                     return xUndoManager;
82550fbbbdSOliver-Rainer Wittmann                 }
83550fbbbdSOliver-Rainer Wittmann             }
84550fbbbdSOliver-Rainer Wittmann         }
85550fbbbdSOliver-Rainer Wittmann 
86550fbbbdSOliver-Rainer Wittmann         return cssu::Reference< css::document::XUndoManager > ();
87550fbbbdSOliver-Rainer Wittmann     }
88550fbbbdSOliver-Rainer Wittmann }
89550fbbbdSOliver-Rainer Wittmann 
90ff0525f2SOliver-Rainer Wittmann 
91ff0525f2SOliver-Rainer Wittmann namespace sw { namespace sidebar {
92ff0525f2SOliver-Rainer Wittmann 
Create(Window * pParent,const::com::sun::star::uno::Reference<::com::sun::star::frame::XFrame> & rxFrame,SfxBindings * pBindings)93ff0525f2SOliver-Rainer Wittmann PagePropertyPanel* PagePropertyPanel::Create (
94ff0525f2SOliver-Rainer Wittmann     Window* pParent,
95550fbbbdSOliver-Rainer Wittmann     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame>& rxFrame,
96ff0525f2SOliver-Rainer Wittmann     SfxBindings* pBindings)
97ff0525f2SOliver-Rainer Wittmann {
98ff0525f2SOliver-Rainer Wittmann     if (pParent == NULL)
99ff0525f2SOliver-Rainer Wittmann         throw ::com::sun::star::lang::IllegalArgumentException(A2S("no parent Window given to PagePropertyPanel::Create"), NULL, 0);
100550fbbbdSOliver-Rainer Wittmann     if ( ! rxFrame.is())
101550fbbbdSOliver-Rainer Wittmann         throw ::com::sun::star::lang::IllegalArgumentException(A2S("no XFrame given to PagePropertyPanel::Create"), NULL, 1);
102ff0525f2SOliver-Rainer Wittmann     if (pBindings == NULL)
103ff0525f2SOliver-Rainer Wittmann         throw ::com::sun::star::lang::IllegalArgumentException(A2S("no SfxBindings given to PagePropertyPanel::Create"), NULL, 2);
104ff0525f2SOliver-Rainer Wittmann 
105ff0525f2SOliver-Rainer Wittmann     return new PagePropertyPanel(
106ff0525f2SOliver-Rainer Wittmann         pParent,
107550fbbbdSOliver-Rainer Wittmann         rxFrame,
108ff0525f2SOliver-Rainer Wittmann         pBindings);
109ff0525f2SOliver-Rainer Wittmann }
110ff0525f2SOliver-Rainer Wittmann 
PagePropertyPanel(Window * pParent,const::com::sun::star::uno::Reference<::com::sun::star::frame::XFrame> & rxFrame,SfxBindings * pBindings)111ff0525f2SOliver-Rainer Wittmann PagePropertyPanel::PagePropertyPanel(
112ff0525f2SOliver-Rainer Wittmann             Window* pParent,
113550fbbbdSOliver-Rainer Wittmann             const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame>& rxFrame,
114ff0525f2SOliver-Rainer Wittmann             SfxBindings* pBindings)
115ff0525f2SOliver-Rainer Wittmann     : Control(pParent, SW_RES(RID_PROPERTYPANEL_SWPAGE))
116ff0525f2SOliver-Rainer Wittmann     , mpBindings(pBindings)
117ff0525f2SOliver-Rainer Wittmann     // visible controls
118ff0525f2SOliver-Rainer Wittmann     , maFtOrientation( this, SW_RES(FT_ORIENTATION) )
119ff0525f2SOliver-Rainer Wittmann     , mpToolBoxOrientationBackground( ::sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this) )
120ff0525f2SOliver-Rainer Wittmann     , mpToolBoxOrientation( ::sfx2::sidebar::ControlFactory::CreateToolBox( mpToolBoxOrientationBackground.get(), SW_RES(TB_ORIENTATION)) )
121ff0525f2SOliver-Rainer Wittmann     , maFtMargin( this, SW_RES(FT_MARGIN) )
122ff0525f2SOliver-Rainer Wittmann     , mpToolBoxMarginBackground( ::sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this) )
123ff0525f2SOliver-Rainer Wittmann     , mpToolBoxMargin( ::sfx2::sidebar::ControlFactory::CreateToolBox( mpToolBoxMarginBackground.get(), SW_RES(TB_MARGIN)) )
124ff0525f2SOliver-Rainer Wittmann     , maFtSize( this, SW_RES(FT_SIZE) )
125ff0525f2SOliver-Rainer Wittmann     , mpToolBoxSizeBackground( ::sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this) )
126ff0525f2SOliver-Rainer Wittmann     , mpToolBoxSize( ::sfx2::sidebar::ControlFactory::CreateToolBox( mpToolBoxSizeBackground.get(), SW_RES(TB_SIZE)) )
127ff0525f2SOliver-Rainer Wittmann     , maFtColumn( this, SW_RES(FT_COLUMN) )
128ff0525f2SOliver-Rainer Wittmann     , mpToolBoxColumnBackground( ::sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this) )
129ff0525f2SOliver-Rainer Wittmann     , mpToolBoxColumn( ::sfx2::sidebar::ControlFactory::CreateToolBox( mpToolBoxColumnBackground.get(), SW_RES(TB_COLUMN)) )
130ff0525f2SOliver-Rainer Wittmann     // image resources
131ff0525f2SOliver-Rainer Wittmann     , maImgSize                 (NULL)
132ff0525f2SOliver-Rainer Wittmann     , maImgSize_L                   (NULL)
133ff0525f2SOliver-Rainer Wittmann     , mImgPortrait              (SW_RES(IMG_PAGE_PORTRAIT))
134ff0525f2SOliver-Rainer Wittmann     , mImgLandscape             (SW_RES(IMG_PAGE_LANDSCAPE))
135ff0525f2SOliver-Rainer Wittmann     , mImgNarrow                    (SW_RES(IMG_PAGE_NARROW))
136ff0525f2SOliver-Rainer Wittmann     , mImgNormal                    (SW_RES(IMG_PAGE_NORMAL))
137ff0525f2SOliver-Rainer Wittmann     , mImgWide                  (SW_RES(IMG_PAGE_WIDE))
138ff0525f2SOliver-Rainer Wittmann     , mImgMirrored              (SW_RES(IMG_PAGE_MIRRORED))
139ff0525f2SOliver-Rainer Wittmann     , mImgMarginCustom          (SW_RES(IMG_PAGE_MARGIN_CUSTOM))
140ff0525f2SOliver-Rainer Wittmann     , mImgNarrow_L              (SW_RES(IMG_PAGE_NARROW_L))
141ff0525f2SOliver-Rainer Wittmann     , mImgNormal_L              (SW_RES(IMG_PAGE_NORMAL_L))
142ff0525f2SOliver-Rainer Wittmann     , mImgWide_L                    (SW_RES(IMG_PAGE_WIDE_L))
143ff0525f2SOliver-Rainer Wittmann     , mImgMirrored_L                (SW_RES(IMG_PAGE_MIRRORED_L))
144ff0525f2SOliver-Rainer Wittmann     , mImgMarginCustom_L            (SW_RES(IMG_PAGE_MARGIN_CUSTOM_L))
145ff0525f2SOliver-Rainer Wittmann     , mImgA3                        (SW_RES(IMG_PAGE_A3))
146ff0525f2SOliver-Rainer Wittmann     , mImgA4                        (SW_RES(IMG_PAGE_A4))
147ff0525f2SOliver-Rainer Wittmann     , mImgA5                        (SW_RES(IMG_PAGE_A5))
148ff0525f2SOliver-Rainer Wittmann     , mImgB4                        (SW_RES(IMG_PAGE_B4))
149ff0525f2SOliver-Rainer Wittmann     , mImgB5                        (SW_RES(IMG_PAGE_B5))
150ff0525f2SOliver-Rainer Wittmann     , mImgC5                        (SW_RES(IMG_PAGE_C5))
151ff0525f2SOliver-Rainer Wittmann     , mImgLetter                    (SW_RES(IMG_PAGE_LETTER))
152ff0525f2SOliver-Rainer Wittmann     , mImgLegal                 (SW_RES(IMG_PAGE_LEGAL))
153ff0525f2SOliver-Rainer Wittmann     , mImgSizeNone              (SW_RES(IMG_PAGE_SIZE_NONE))
154ff0525f2SOliver-Rainer Wittmann     , mImgA3_L                  (SW_RES(IMG_PAGE_A3_L))
155ff0525f2SOliver-Rainer Wittmann     , mImgA4_L                  (SW_RES(IMG_PAGE_A4_L))
156ff0525f2SOliver-Rainer Wittmann     , mImgA5_L                  (SW_RES(IMG_PAGE_A5_L))
157ff0525f2SOliver-Rainer Wittmann     , mImgB4_L                  (SW_RES(IMG_PAGE_B4_L))
158ff0525f2SOliver-Rainer Wittmann     , mImgB5_L                  (SW_RES(IMG_PAGE_B5_L))
159ff0525f2SOliver-Rainer Wittmann     , mImgC5_L                  (SW_RES(IMG_PAGE_C5_L))
160ff0525f2SOliver-Rainer Wittmann     , mImgLetter_L              (SW_RES(IMG_PAGE_LETTER_L))
161ff0525f2SOliver-Rainer Wittmann     , mImgLegal_L                   (SW_RES(IMG_PAGE_LEGAL_L))
162ff0525f2SOliver-Rainer Wittmann     , mImgSizeNone_L                (SW_RES(IMG_PAGE_SIZE_NONE_L))
163ff0525f2SOliver-Rainer Wittmann     , mImgColumn1                   (SW_RES(IMG_PAGE_COLUMN_1))
164ff0525f2SOliver-Rainer Wittmann     , mImgColumn2                   (SW_RES(IMG_PAGE_COLUMN_2))
165ff0525f2SOliver-Rainer Wittmann     , mImgColumn3                   (SW_RES(IMG_PAGE_COLUMN_3))
166ff0525f2SOliver-Rainer Wittmann     , mImgLeft                  (SW_RES(IMG_PAGE_COLUMN_LEFT))
167ff0525f2SOliver-Rainer Wittmann     , mImgRight                 (SW_RES(IMG_PAGE_COLUMN_RIGHT))
168ff0525f2SOliver-Rainer Wittmann     , mImgColumnNone                (SW_RES(IMG_PAGE_COLUMN_NONE))
169ff0525f2SOliver-Rainer Wittmann     , mImgColumn1_L             (SW_RES(IMG_PAGE_COLUMN_1_L))
170ff0525f2SOliver-Rainer Wittmann     , mImgColumn2_L             (SW_RES(IMG_PAGE_COLUMN_2_L))
171ff0525f2SOliver-Rainer Wittmann     , mImgColumn3_L             (SW_RES(IMG_PAGE_COLUMN_3_L))
172ff0525f2SOliver-Rainer Wittmann     , mImgLeft_L                    (SW_RES(IMG_PAGE_COLUMN_LEFT_L))
173ff0525f2SOliver-Rainer Wittmann     , mImgRight_L                   (SW_RES(IMG_PAGE_COLUMN_RIGHT_L))
174ff0525f2SOliver-Rainer Wittmann     , mImgColumnNone_L          (SW_RES(IMG_PAGE_COLUMN_NONE_L))
175ff0525f2SOliver-Rainer Wittmann 
176ff0525f2SOliver-Rainer Wittmann     , mpPageItem( new SvxPageItem(SID_ATTR_PAGE) )
1778a2dd8f0SOliver-Rainer Wittmann     , mpPageLRMarginItem( new SvxLongLRSpaceItem( 0, 0, SID_ATTR_PAGE_LRSPACE ) )
1788a2dd8f0SOliver-Rainer Wittmann     , mpPageULMarginItem( new SvxLongULSpaceItem( 0, 0, SID_ATTR_PAGE_ULSPACE ) )
179ff0525f2SOliver-Rainer Wittmann     , mpPageSizeItem( new SvxSizeItem(SID_ATTR_PAGE_SIZE) )
180ff0525f2SOliver-Rainer Wittmann     , mePaper( PAPER_USER )
1818a2dd8f0SOliver-Rainer Wittmann     , mpPageColumnTypeItem( new SfxInt16Item(SID_ATTR_PAGE_COLUMN) )
182ff0525f2SOliver-Rainer Wittmann 
183ff0525f2SOliver-Rainer Wittmann     , meFUnit()
184ff0525f2SOliver-Rainer Wittmann     , meUnit()
185ff0525f2SOliver-Rainer Wittmann 
1868a2dd8f0SOliver-Rainer Wittmann     , m_aSwPagePgULControl(SID_ATTR_PAGE_ULSPACE, *pBindings, *this)
1878a2dd8f0SOliver-Rainer Wittmann     , m_aSwPagePgLRControl(SID_ATTR_PAGE_LRSPACE, *pBindings, *this)
188ff0525f2SOliver-Rainer Wittmann     , m_aSwPagePgSizeControl(SID_ATTR_PAGE_SIZE, *pBindings, *this)
189ff0525f2SOliver-Rainer Wittmann     , m_aSwPagePgControl(SID_ATTR_PAGE, *pBindings, *this)
1908a2dd8f0SOliver-Rainer Wittmann     , m_aSwPageColControl(SID_ATTR_PAGE_COLUMN, *pBindings, *this)
191ff0525f2SOliver-Rainer Wittmann     , m_aSwPagePgMetricControl(SID_ATTR_METRIC, *pBindings, *this)
192ff0525f2SOliver-Rainer Wittmann 
193550fbbbdSOliver-Rainer Wittmann     , maOrientationPopup( this,
194550fbbbdSOliver-Rainer Wittmann                           ::boost::bind( &PagePropertyPanel::CreatePageOrientationControl, this, _1 ),
195550fbbbdSOliver-Rainer Wittmann                           A2S("Page orientation") )
196550fbbbdSOliver-Rainer Wittmann     , maMarginPopup( this,
197550fbbbdSOliver-Rainer Wittmann                      ::boost::bind( &PagePropertyPanel::CreatePageMarginControl, this, _1 ),
198550fbbbdSOliver-Rainer Wittmann                      A2S("Page margins") )
199550fbbbdSOliver-Rainer Wittmann     , maSizePopup( this,
200550fbbbdSOliver-Rainer Wittmann                    ::boost::bind( &PagePropertyPanel::CreatePageSizeControl, this, _1 ),
201550fbbbdSOliver-Rainer Wittmann                    A2S("Page size") )
202550fbbbdSOliver-Rainer Wittmann     , maColumnPopup( this,
203550fbbbdSOliver-Rainer Wittmann                      ::boost::bind( &PagePropertyPanel::CreatePageColumnControl, this, _1 ),
204550fbbbdSOliver-Rainer Wittmann                      A2S("Page columns") )
2057dc3d34dSOliver-Rainer Wittmann 
206550fbbbdSOliver-Rainer Wittmann     , mxUndoManager( getUndoManager( rxFrame ) )
207f3fdaad6SPavel Janík 
2086a606da0SAndre Fischer     , mbInvalidateSIDAttrPageOnSIDAttrPageSizeNotify( false ),
2096a606da0SAndre Fischer       maLayouter(*this)
210ff0525f2SOliver-Rainer Wittmann {
211ff0525f2SOliver-Rainer Wittmann     Initialize();
2127dc3d34dSOliver-Rainer Wittmann     mbInvalidateSIDAttrPageOnSIDAttrPageSizeNotify = true;
213ff0525f2SOliver-Rainer Wittmann     FreeResource();
2146a606da0SAndre Fischer 
2156a606da0SAndre Fischer     // Setup the grid layouter.
2166a606da0SAndre Fischer     maLayouter.GetCell(0,0).SetControl(maFtOrientation).SetGridWidth(2);
2176a606da0SAndre Fischer     maLayouter.GetCell(1,0).SetControl(*mpToolBoxOrientationBackground).SetFixedWidth();
2186a606da0SAndre Fischer 
2196a606da0SAndre Fischer     maLayouter.GetCell(0,3).SetControl(maFtMargin).SetGridWidth(2);
2206a606da0SAndre Fischer     maLayouter.GetCell(1,3).SetControl(*mpToolBoxMarginBackground).SetFixedWidth();
2216a606da0SAndre Fischer 
2226a606da0SAndre Fischer     maLayouter.GetCell(2,0).SetControl(maFtSize).SetGridWidth(2);
2236a606da0SAndre Fischer     maLayouter.GetCell(3,0).SetControl(*mpToolBoxSizeBackground).SetFixedWidth();
2246a606da0SAndre Fischer 
2256a606da0SAndre Fischer     maLayouter.GetCell(2,3).SetControl(maFtColumn).SetGridWidth(2);
2266a606da0SAndre Fischer     maLayouter.GetCell(3,3).SetControl(*mpToolBoxColumnBackground).SetFixedWidth();
2276a606da0SAndre Fischer 
2286a606da0SAndre Fischer     maLayouter.GetColumn(0)
2296a606da0SAndre Fischer         .SetWeight(0)
2306a606da0SAndre Fischer         .SetLeftPadding(Layouter::MapWidth(*this,SECTIONPAGE_MARGIN_HORIZONTAL));
2316a606da0SAndre Fischer     maLayouter.GetColumn(1)
2326a606da0SAndre Fischer         .SetWeight(1)
2336a606da0SAndre Fischer         .SetMinimumWidth(Layouter::MapWidth(*this,MBOX_WIDTH/2));
2346a606da0SAndre Fischer     maLayouter.GetColumn(2)
2356a606da0SAndre Fischer         .SetWeight(0)
2366a606da0SAndre Fischer         .SetMinimumWidth(Layouter::MapWidth(*this, CONTROL_SPACING_HORIZONTAL));
2376a606da0SAndre Fischer     maLayouter.GetColumn(3)
2386a606da0SAndre Fischer         .SetWeight(0);
2396a606da0SAndre Fischer     maLayouter.GetColumn(4)
2406a606da0SAndre Fischer         .SetWeight(1)
2416a606da0SAndre Fischer         .SetRightPadding(Layouter::MapWidth(*this,SECTIONPAGE_MARGIN_HORIZONTAL))
2426a606da0SAndre Fischer         .SetMinimumWidth(Layouter::MapWidth(*this,MBOX_WIDTH/2));
2436a606da0SAndre Fischer 
2446a606da0SAndre Fischer     // Make controls that display text handle short widths more
2456a606da0SAndre Fischer     // graceful.
2466a606da0SAndre Fischer     Layouter::PrepareForLayouting(maFtOrientation);
2476a606da0SAndre Fischer     Layouter::PrepareForLayouting(maFtMargin);
2486a606da0SAndre Fischer     Layouter::PrepareForLayouting(maFtSize);
2496a606da0SAndre Fischer     Layouter::PrepareForLayouting(maFtColumn);
250ff0525f2SOliver-Rainer Wittmann }
251ff0525f2SOliver-Rainer Wittmann 
2526a606da0SAndre Fischer 
2536a606da0SAndre Fischer 
2546a606da0SAndre Fischer 
~PagePropertyPanel()255ff0525f2SOliver-Rainer Wittmann PagePropertyPanel::~PagePropertyPanel()
256ff0525f2SOliver-Rainer Wittmann {
257ff0525f2SOliver-Rainer Wittmann     delete[] maImgSize;
258ff0525f2SOliver-Rainer Wittmann     delete[] maImgSize_L;
259ff0525f2SOliver-Rainer Wittmann 
260ff0525f2SOliver-Rainer Wittmann     // destroy the toolbox windows.
261ff0525f2SOliver-Rainer Wittmann     mpToolBoxOrientation.reset();
262ff0525f2SOliver-Rainer Wittmann     mpToolBoxMargin.reset();
263ff0525f2SOliver-Rainer Wittmann     mpToolBoxSize.reset();
264ff0525f2SOliver-Rainer Wittmann     mpToolBoxColumn.reset();
265ff0525f2SOliver-Rainer Wittmann 
266ff0525f2SOliver-Rainer Wittmann     // destroy the background windows of the toolboxes.
267ff0525f2SOliver-Rainer Wittmann     mpToolBoxOrientationBackground.reset();
268ff0525f2SOliver-Rainer Wittmann     mpToolBoxMarginBackground.reset();
269ff0525f2SOliver-Rainer Wittmann     mpToolBoxSizeBackground.reset();
270ff0525f2SOliver-Rainer Wittmann     mpToolBoxColumnBackground.reset();
271ff0525f2SOliver-Rainer Wittmann }
272ff0525f2SOliver-Rainer Wittmann 
Initialize()273ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::Initialize()
274ff0525f2SOliver-Rainer Wittmann {
27537fee4fdSAndre Fischer     maFtOrientation.SetBackground(Wallpaper());
27637fee4fdSAndre Fischer     maFtMargin.SetBackground(Wallpaper());
27737fee4fdSAndre Fischer     maFtSize.SetBackground(Wallpaper());
27837fee4fdSAndre Fischer     maFtColumn.SetBackground(Wallpaper());
27937fee4fdSAndre Fischer 
280ff0525f2SOliver-Rainer Wittmann     // popup for page orientation
281ff0525f2SOliver-Rainer Wittmann     Link aLink = LINK( this, PagePropertyPanel, ClickOrientationHdl );
282ff0525f2SOliver-Rainer Wittmann     mpToolBoxOrientation->SetDropdownClickHdl( aLink );
283ff0525f2SOliver-Rainer Wittmann     mpToolBoxOrientation->SetSelectHdl( aLink );
284ff0525f2SOliver-Rainer Wittmann     mpToolBoxOrientation->SetItemImage( TBI_ORIENTATION, mImgPortrait);
285ff0525f2SOliver-Rainer Wittmann     mpToolBoxOrientation->SetItemBits( TBI_ORIENTATION, mpToolBoxOrientation->GetItemBits( TBI_ORIENTATION ) | TIB_DROPDOWNONLY );
286ff0525f2SOliver-Rainer Wittmann     mpToolBoxOrientation->SetQuickHelpText(TBI_ORIENTATION,String(SW_RES(STR_QHELP_TB_ORIENTATION)));
287ff0525f2SOliver-Rainer Wittmann     mpToolBoxOrientation->SetOutputSizePixel( mpToolBoxOrientation->CalcWindowSizePixel() );
288ff0525f2SOliver-Rainer Wittmann     mpToolBoxOrientation->SetBackground( Wallpaper() );
289ff0525f2SOliver-Rainer Wittmann     mpToolBoxOrientation->SetPaintTransparent( sal_True );
290ff0525f2SOliver-Rainer Wittmann 
291ff0525f2SOliver-Rainer Wittmann     // popup for page margins
292ff0525f2SOliver-Rainer Wittmann     aLink = LINK( this, PagePropertyPanel, ClickMarginHdl );
293ff0525f2SOliver-Rainer Wittmann     mpToolBoxMargin->SetDropdownClickHdl( aLink );
294ff0525f2SOliver-Rainer Wittmann     mpToolBoxMargin->SetSelectHdl( aLink );
295ff0525f2SOliver-Rainer Wittmann     mpToolBoxMargin->SetItemImage(TBI_MARGIN, mImgNormal);
296ff0525f2SOliver-Rainer Wittmann     mpToolBoxMargin->SetItemBits( TBI_MARGIN, mpToolBoxMargin->GetItemBits( TBI_MARGIN ) | TIB_DROPDOWNONLY );
297ff0525f2SOliver-Rainer Wittmann     mpToolBoxMargin->SetQuickHelpText(TBI_MARGIN,String(SW_RES(STR_QHELP_TB_MARGIN)));
298ff0525f2SOliver-Rainer Wittmann     mpToolBoxMargin->SetOutputSizePixel( mpToolBoxMargin->CalcWindowSizePixel() );
299ff0525f2SOliver-Rainer Wittmann     mpToolBoxMargin->SetBackground(Wallpaper());
300ff0525f2SOliver-Rainer Wittmann     mpToolBoxMargin->SetPaintTransparent( sal_True );
301ff0525f2SOliver-Rainer Wittmann 
302ff0525f2SOliver-Rainer Wittmann     // popup for page size
303ff0525f2SOliver-Rainer Wittmann     aLink = LINK( this, PagePropertyPanel, ClickSizeHdl );
304ff0525f2SOliver-Rainer Wittmann     mpToolBoxSize->SetDropdownClickHdl( aLink );
305ff0525f2SOliver-Rainer Wittmann     mpToolBoxSize->SetSelectHdl( aLink );
306ff0525f2SOliver-Rainer Wittmann     mpToolBoxSize->SetItemImage(TBI_SIZE, mImgLetter);
307ff0525f2SOliver-Rainer Wittmann     mpToolBoxSize->SetItemBits( TBI_SIZE, mpToolBoxSize->GetItemBits( TBI_SIZE ) | TIB_DROPDOWNONLY );
308ff0525f2SOliver-Rainer Wittmann     mpToolBoxSize->SetQuickHelpText(TBI_SIZE,String(SW_RES(STR_QHELP_TB_SIZE)));
309ff0525f2SOliver-Rainer Wittmann     mpToolBoxSize->SetOutputSizePixel( mpToolBoxSize->CalcWindowSizePixel() );
310ff0525f2SOliver-Rainer Wittmann     mpToolBoxSize->SetBackground(Wallpaper());
311ff0525f2SOliver-Rainer Wittmann     mpToolBoxSize->SetPaintTransparent( sal_True );
312ff0525f2SOliver-Rainer Wittmann     maImgSize = new Image[8];
313ff0525f2SOliver-Rainer Wittmann     maImgSize[0] = mImgA3;
314ff0525f2SOliver-Rainer Wittmann     maImgSize[1] = mImgA4;
315ff0525f2SOliver-Rainer Wittmann     maImgSize[2] = mImgA5;
316ff0525f2SOliver-Rainer Wittmann     maImgSize[3] = mImgB4;
317ff0525f2SOliver-Rainer Wittmann     maImgSize[4] = mImgB5;
318ff0525f2SOliver-Rainer Wittmann     maImgSize[5] = mImgC5;
319ff0525f2SOliver-Rainer Wittmann     maImgSize[6] = mImgLetter;
320ff0525f2SOliver-Rainer Wittmann     maImgSize[7] = mImgLegal;
321ff0525f2SOliver-Rainer Wittmann     maImgSize_L = new Image[8];
322ff0525f2SOliver-Rainer Wittmann     maImgSize_L[0] = mImgA3_L;
323ff0525f2SOliver-Rainer Wittmann     maImgSize_L[1] = mImgA4_L;
324ff0525f2SOliver-Rainer Wittmann     maImgSize_L[2] = mImgA5_L;
325ff0525f2SOliver-Rainer Wittmann     maImgSize_L[3] = mImgB4_L;
326ff0525f2SOliver-Rainer Wittmann     maImgSize_L[4] = mImgB5_L;
327ff0525f2SOliver-Rainer Wittmann     maImgSize_L[5] = mImgC5_L;
328ff0525f2SOliver-Rainer Wittmann     maImgSize_L[6] = mImgLetter_L;
329ff0525f2SOliver-Rainer Wittmann     maImgSize_L[7] = mImgLegal_L;
330ff0525f2SOliver-Rainer Wittmann 
331ff0525f2SOliver-Rainer Wittmann     // popup for page column property
332ff0525f2SOliver-Rainer Wittmann     aLink = LINK( this, PagePropertyPanel, ClickColumnHdl );
333ff0525f2SOliver-Rainer Wittmann     mpToolBoxColumn->SetDropdownClickHdl( aLink );
334ff0525f2SOliver-Rainer Wittmann     mpToolBoxColumn->SetSelectHdl( aLink );
335ff0525f2SOliver-Rainer Wittmann     mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn1);
336ff0525f2SOliver-Rainer Wittmann     mpToolBoxColumn->SetItemBits( TBI_COLUMN, mpToolBoxColumn->GetItemBits( TBI_COLUMN ) | TIB_DROPDOWNONLY );
337ff0525f2SOliver-Rainer Wittmann     mpToolBoxColumn->SetQuickHelpText(TBI_COLUMN,String(SW_RES(STR_QHELP_TB_COLUMN)));
338ff0525f2SOliver-Rainer Wittmann     mpToolBoxColumn->SetOutputSizePixel( mpToolBoxColumn->CalcWindowSizePixel() );
339ff0525f2SOliver-Rainer Wittmann     mpToolBoxColumn->SetBackground(Wallpaper());
340ff0525f2SOliver-Rainer Wittmann     mpToolBoxColumn->SetPaintTransparent( sal_True );
341ff0525f2SOliver-Rainer Wittmann 
342ff0525f2SOliver-Rainer Wittmann     meFUnit = GetModuleFieldUnit();
343ff0525f2SOliver-Rainer Wittmann     meUnit = m_aSwPagePgSizeControl.GetCoreMetric();
344ff0525f2SOliver-Rainer Wittmann 
345ff0525f2SOliver-Rainer Wittmann     // 'pull' for page style's attribute values
3468a2dd8f0SOliver-Rainer Wittmann     mpBindings->Update( SID_ATTR_PAGE_LRSPACE );
3478a2dd8f0SOliver-Rainer Wittmann     mpBindings->Update( SID_ATTR_PAGE_ULSPACE );
348ff0525f2SOliver-Rainer Wittmann     mpBindings->Update( SID_ATTR_PAGE );
349ff0525f2SOliver-Rainer Wittmann     mpBindings->Update( SID_ATTR_PAGE_SIZE );
350ff0525f2SOliver-Rainer Wittmann }
351ff0525f2SOliver-Rainer Wittmann 
352ff0525f2SOliver-Rainer Wittmann 
CreatePageOrientationControl(::svx::sidebar::PopupContainer * pParent)353ff0525f2SOliver-Rainer Wittmann ::svx::sidebar::PopupControl* PagePropertyPanel::CreatePageOrientationControl( ::svx::sidebar::PopupContainer* pParent )
354ff0525f2SOliver-Rainer Wittmann {
355ff0525f2SOliver-Rainer Wittmann     return new PageOrientationControl( pParent, *this , mpPageItem->IsLandscape() );
356ff0525f2SOliver-Rainer Wittmann }
357ff0525f2SOliver-Rainer Wittmann 
358ff0525f2SOliver-Rainer Wittmann 
IMPL_LINK(PagePropertyPanel,ClickOrientationHdl,ToolBox *,pToolBox)359ff0525f2SOliver-Rainer Wittmann IMPL_LINK( PagePropertyPanel, ClickOrientationHdl, ToolBox*, pToolBox )
360ff0525f2SOliver-Rainer Wittmann {
361550fbbbdSOliver-Rainer Wittmann     maOrientationPopup.Show( *pToolBox );
362ff0525f2SOliver-Rainer Wittmann 
363ff0525f2SOliver-Rainer Wittmann     return 0L;
364ff0525f2SOliver-Rainer Wittmann }
365ff0525f2SOliver-Rainer Wittmann 
366ff0525f2SOliver-Rainer Wittmann 
ExecuteOrientationChange(const sal_Bool bLandscape)367ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecuteOrientationChange( const sal_Bool bLandscape )
368ff0525f2SOliver-Rainer Wittmann {
369550fbbbdSOliver-Rainer Wittmann     StartUndo();
370550fbbbdSOliver-Rainer Wittmann 
371ff0525f2SOliver-Rainer Wittmann     {
372ff0525f2SOliver-Rainer Wittmann         // set new page orientation
373ff0525f2SOliver-Rainer Wittmann         mpPageItem->SetLandscape( bLandscape );
374ff0525f2SOliver-Rainer Wittmann 
375ff0525f2SOliver-Rainer Wittmann         // swap the width and height of the page size
376ff0525f2SOliver-Rainer Wittmann         mpPageSizeItem->SetSize( Size( mpPageSizeItem->GetSize().Height(), mpPageSizeItem->GetSize().Width() ) );
377ff0525f2SOliver-Rainer Wittmann 
378ff0525f2SOliver-Rainer Wittmann         // apply changed attributes
379ff0525f2SOliver-Rainer Wittmann         GetBindings()->GetDispatcher()->Execute( SID_ATTR_PAGE_SIZE, SFX_CALLMODE_RECORD, mpPageSizeItem.get(), mpPageItem.get(), 0L );
380ff0525f2SOliver-Rainer Wittmann     }
381ff0525f2SOliver-Rainer Wittmann 
382ff0525f2SOliver-Rainer Wittmann     // check, if margin values still fit to the changed page size.
383ff0525f2SOliver-Rainer Wittmann     // if not, adjust margin values
384ff0525f2SOliver-Rainer Wittmann     {
385ff0525f2SOliver-Rainer Wittmann         const long nML = mpPageLRMarginItem->GetLeft();
386ff0525f2SOliver-Rainer Wittmann         const long nMR = mpPageLRMarginItem->GetRight();
387ff0525f2SOliver-Rainer Wittmann         const long nTmpPW = nML + nMR + MINBODY;
388ff0525f2SOliver-Rainer Wittmann 
389ff0525f2SOliver-Rainer Wittmann         const long nPW = mpPageSizeItem->GetSize().Width();
390ff0525f2SOliver-Rainer Wittmann 
391ff0525f2SOliver-Rainer Wittmann         if ( nTmpPW > nPW )
392ff0525f2SOliver-Rainer Wittmann         {
393ff0525f2SOliver-Rainer Wittmann             if ( nML <= nMR )
394ff0525f2SOliver-Rainer Wittmann             {
395ff0525f2SOliver-Rainer Wittmann                 ExecuteMarginLRChange( mpPageLRMarginItem->GetLeft(), nMR - (nTmpPW - nPW ) );
396ff0525f2SOliver-Rainer Wittmann             }
397ff0525f2SOliver-Rainer Wittmann             else
398ff0525f2SOliver-Rainer Wittmann             {
399ff0525f2SOliver-Rainer Wittmann                 ExecuteMarginLRChange( nML - (nTmpPW - nPW ), mpPageLRMarginItem->GetRight() );
400ff0525f2SOliver-Rainer Wittmann             }
401ff0525f2SOliver-Rainer Wittmann         }
402ff0525f2SOliver-Rainer Wittmann 
403ff0525f2SOliver-Rainer Wittmann         const long nMT = mpPageULMarginItem->GetUpper();
404ff0525f2SOliver-Rainer Wittmann         const long nMB = mpPageULMarginItem->GetLower();
405ff0525f2SOliver-Rainer Wittmann         const long nTmpPH = nMT + nMB + MINBODY;
406ff0525f2SOliver-Rainer Wittmann 
407ff0525f2SOliver-Rainer Wittmann         const long nPH = mpPageSizeItem->GetSize().Height();
408ff0525f2SOliver-Rainer Wittmann 
409ff0525f2SOliver-Rainer Wittmann         if ( nTmpPH > nPH )
410ff0525f2SOliver-Rainer Wittmann         {
411ff0525f2SOliver-Rainer Wittmann             if ( nMT <= nMB )
412ff0525f2SOliver-Rainer Wittmann             {
413ff0525f2SOliver-Rainer Wittmann                 ExecuteMarginULChange( mpPageULMarginItem->GetUpper(), nMB - ( nTmpPH - nPH ) );
414ff0525f2SOliver-Rainer Wittmann             }
415ff0525f2SOliver-Rainer Wittmann             else
416ff0525f2SOliver-Rainer Wittmann             {
417ff0525f2SOliver-Rainer Wittmann                 ExecuteMarginULChange( nMT - ( nTmpPH - nPH ), mpPageULMarginItem->GetLower() );
418ff0525f2SOliver-Rainer Wittmann             }
419ff0525f2SOliver-Rainer Wittmann         }
420ff0525f2SOliver-Rainer Wittmann     }
421550fbbbdSOliver-Rainer Wittmann 
422550fbbbdSOliver-Rainer Wittmann     EndUndo();
423ff0525f2SOliver-Rainer Wittmann }
424ff0525f2SOliver-Rainer Wittmann 
425ff0525f2SOliver-Rainer Wittmann 
ClosePageOrientationPopup()426ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ClosePageOrientationPopup()
427ff0525f2SOliver-Rainer Wittmann {
428550fbbbdSOliver-Rainer Wittmann     maOrientationPopup.Hide();
429ff0525f2SOliver-Rainer Wittmann }
430ff0525f2SOliver-Rainer Wittmann 
431ff0525f2SOliver-Rainer Wittmann 
432ff0525f2SOliver-Rainer Wittmann 
433ff0525f2SOliver-Rainer Wittmann 
CreatePageMarginControl(::svx::sidebar::PopupContainer * pParent)434ff0525f2SOliver-Rainer Wittmann ::svx::sidebar::PopupControl* PagePropertyPanel::CreatePageMarginControl( ::svx::sidebar::PopupContainer* pParent )
435ff0525f2SOliver-Rainer Wittmann {
436ff0525f2SOliver-Rainer Wittmann     return new PageMarginControl(
437ff0525f2SOliver-Rainer Wittmann         pParent,
438ff0525f2SOliver-Rainer Wittmann         *this,
439ff0525f2SOliver-Rainer Wittmann         *mpPageLRMarginItem.get(),
440ff0525f2SOliver-Rainer Wittmann         *mpPageULMarginItem.get(),
441ff0525f2SOliver-Rainer Wittmann         mpPageItem->GetPageUsage() == SVX_PAGE_MIRROR,
442ff0525f2SOliver-Rainer Wittmann         mpPageSizeItem->GetSize(),
443ff0525f2SOliver-Rainer Wittmann         mpPageItem->IsLandscape(),
444ff0525f2SOliver-Rainer Wittmann         meFUnit,
445ff0525f2SOliver-Rainer Wittmann         meUnit );
446ff0525f2SOliver-Rainer Wittmann }
447ff0525f2SOliver-Rainer Wittmann 
448ff0525f2SOliver-Rainer Wittmann 
ExecuteMarginLRChange(const long nPageLeftMargin,const long nPageRightMargin)449ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecuteMarginLRChange(
450ff0525f2SOliver-Rainer Wittmann     const long nPageLeftMargin,
451ff0525f2SOliver-Rainer Wittmann     const long nPageRightMargin )
452ff0525f2SOliver-Rainer Wittmann {
453ff0525f2SOliver-Rainer Wittmann     mpPageLRMarginItem->SetLeft( nPageLeftMargin );
454ff0525f2SOliver-Rainer Wittmann     mpPageLRMarginItem->SetRight( nPageRightMargin );
4558a2dd8f0SOliver-Rainer Wittmann     GetBindings()->GetDispatcher()->Execute( SID_ATTR_PAGE_LRSPACE, SFX_CALLMODE_RECORD, mpPageLRMarginItem.get(), 0L );
456ff0525f2SOliver-Rainer Wittmann }
457ff0525f2SOliver-Rainer Wittmann 
ExecuteMarginULChange(const long nPageTopMargin,const long nPageBottomMargin)458ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecuteMarginULChange(
459ff0525f2SOliver-Rainer Wittmann     const long nPageTopMargin,
460ff0525f2SOliver-Rainer Wittmann     const long nPageBottomMargin )
461ff0525f2SOliver-Rainer Wittmann {
462ff0525f2SOliver-Rainer Wittmann     mpPageULMarginItem->SetUpper( nPageTopMargin );
463ff0525f2SOliver-Rainer Wittmann     mpPageULMarginItem->SetLower( nPageBottomMargin );
4648a2dd8f0SOliver-Rainer Wittmann     GetBindings()->GetDispatcher()->Execute( SID_ATTR_PAGE_ULSPACE, SFX_CALLMODE_RECORD, mpPageULMarginItem.get(), 0L );
465ff0525f2SOliver-Rainer Wittmann }
466ff0525f2SOliver-Rainer Wittmann 
467ff0525f2SOliver-Rainer Wittmann 
ExecutePageLayoutChange(const bool bMirrored)468ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecutePageLayoutChange( const bool bMirrored )
469ff0525f2SOliver-Rainer Wittmann {
470ff0525f2SOliver-Rainer Wittmann     mpPageItem->SetPageUsage( bMirrored ? SVX_PAGE_MIRROR : SVX_PAGE_ALL );
471ff0525f2SOliver-Rainer Wittmann     GetBindings()->GetDispatcher()->Execute( SID_ATTR_PAGE, SFX_CALLMODE_RECORD, mpPageItem.get(), 0L );
472ff0525f2SOliver-Rainer Wittmann }
473ff0525f2SOliver-Rainer Wittmann 
474ff0525f2SOliver-Rainer Wittmann 
IMPL_LINK(PagePropertyPanel,ClickMarginHdl,ToolBox *,pToolBox)475ff0525f2SOliver-Rainer Wittmann IMPL_LINK( PagePropertyPanel, ClickMarginHdl, ToolBox*, pToolBox )
476ff0525f2SOliver-Rainer Wittmann {
477550fbbbdSOliver-Rainer Wittmann     maMarginPopup.Show( *pToolBox );
478ff0525f2SOliver-Rainer Wittmann 
479ff0525f2SOliver-Rainer Wittmann     return 0L;
480ff0525f2SOliver-Rainer Wittmann }
481ff0525f2SOliver-Rainer Wittmann 
482ff0525f2SOliver-Rainer Wittmann 
ClosePageMarginPopup()483ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ClosePageMarginPopup()
484ff0525f2SOliver-Rainer Wittmann {
485550fbbbdSOliver-Rainer Wittmann     maMarginPopup.Hide();
486ff0525f2SOliver-Rainer Wittmann }
487ff0525f2SOliver-Rainer Wittmann 
488ff0525f2SOliver-Rainer Wittmann 
489ff0525f2SOliver-Rainer Wittmann 
490ff0525f2SOliver-Rainer Wittmann 
CreatePageSizeControl(::svx::sidebar::PopupContainer * pParent)491ff0525f2SOliver-Rainer Wittmann ::svx::sidebar::PopupControl* PagePropertyPanel::CreatePageSizeControl( ::svx::sidebar::PopupContainer* pParent )
492ff0525f2SOliver-Rainer Wittmann {
493ff0525f2SOliver-Rainer Wittmann     return new PageSizeControl(
494ff0525f2SOliver-Rainer Wittmann         pParent,
495ff0525f2SOliver-Rainer Wittmann         *this,
496ff0525f2SOliver-Rainer Wittmann         mePaper,
497ff0525f2SOliver-Rainer Wittmann         mpPageItem->IsLandscape(),
498ff0525f2SOliver-Rainer Wittmann         meFUnit );
499ff0525f2SOliver-Rainer Wittmann }
500ff0525f2SOliver-Rainer Wittmann 
501ff0525f2SOliver-Rainer Wittmann 
ExecuteSizeChange(const Paper ePaper)502ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecuteSizeChange( const Paper ePaper )
503ff0525f2SOliver-Rainer Wittmann {
504ff0525f2SOliver-Rainer Wittmann     Size aPageSize = SvxPaperInfo::GetPaperSize( ePaper, (MapUnit)(meUnit) );
505ff0525f2SOliver-Rainer Wittmann     if ( mpPageItem->IsLandscape() )
506ff0525f2SOliver-Rainer Wittmann     {
507ff0525f2SOliver-Rainer Wittmann         Swap( aPageSize );
508ff0525f2SOliver-Rainer Wittmann     }
509ff0525f2SOliver-Rainer Wittmann     mpPageSizeItem->SetSize( aPageSize );
510ff0525f2SOliver-Rainer Wittmann 
511ff0525f2SOliver-Rainer Wittmann     mpBindings->GetDispatcher()->Execute(SID_ATTR_PAGE_SIZE, SFX_CALLMODE_RECORD, mpPageSizeItem.get(), 0L );
512ff0525f2SOliver-Rainer Wittmann }
513ff0525f2SOliver-Rainer Wittmann 
514ff0525f2SOliver-Rainer Wittmann 
IMPL_LINK(PagePropertyPanel,ClickSizeHdl,ToolBox *,pToolBox)515ff0525f2SOliver-Rainer Wittmann IMPL_LINK( PagePropertyPanel, ClickSizeHdl, ToolBox*, pToolBox )
516ff0525f2SOliver-Rainer Wittmann {
517550fbbbdSOliver-Rainer Wittmann     maSizePopup.Show( *pToolBox );
518ff0525f2SOliver-Rainer Wittmann 
519ff0525f2SOliver-Rainer Wittmann     return 0L;
520ff0525f2SOliver-Rainer Wittmann }
521ff0525f2SOliver-Rainer Wittmann 
522ff0525f2SOliver-Rainer Wittmann 
ClosePageSizePopup()523ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ClosePageSizePopup()
524ff0525f2SOliver-Rainer Wittmann {
525550fbbbdSOliver-Rainer Wittmann     maSizePopup.Hide();
526ff0525f2SOliver-Rainer Wittmann }
527ff0525f2SOliver-Rainer Wittmann 
528ff0525f2SOliver-Rainer Wittmann 
529ff0525f2SOliver-Rainer Wittmann 
530ff0525f2SOliver-Rainer Wittmann 
CreatePageColumnControl(::svx::sidebar::PopupContainer * pParent)531ff0525f2SOliver-Rainer Wittmann ::svx::sidebar::PopupControl* PagePropertyPanel::CreatePageColumnControl( ::svx::sidebar::PopupContainer* pParent )
532ff0525f2SOliver-Rainer Wittmann {
533ff0525f2SOliver-Rainer Wittmann     return new PageColumnControl(
534ff0525f2SOliver-Rainer Wittmann         pParent,
535ff0525f2SOliver-Rainer Wittmann         *this,
536ff0525f2SOliver-Rainer Wittmann         mpPageColumnTypeItem->GetValue(),
537ff0525f2SOliver-Rainer Wittmann         mpPageItem->IsLandscape() );
538ff0525f2SOliver-Rainer Wittmann }
539ff0525f2SOliver-Rainer Wittmann 
540ff0525f2SOliver-Rainer Wittmann 
ExecuteColumnChange(const sal_uInt16 nColumnType)541ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ExecuteColumnChange( const sal_uInt16 nColumnType )
542ff0525f2SOliver-Rainer Wittmann {
543ff0525f2SOliver-Rainer Wittmann     mpPageColumnTypeItem->SetValue( nColumnType );
5448a2dd8f0SOliver-Rainer Wittmann     mpBindings->GetDispatcher()->Execute(SID_ATTR_PAGE_COLUMN, SFX_CALLMODE_RECORD, mpPageColumnTypeItem.get(), 0L );
545ff0525f2SOliver-Rainer Wittmann }
546ff0525f2SOliver-Rainer Wittmann 
547ff0525f2SOliver-Rainer Wittmann 
IMPL_LINK(PagePropertyPanel,ClickColumnHdl,ToolBox *,pToolBox)548ff0525f2SOliver-Rainer Wittmann IMPL_LINK( PagePropertyPanel, ClickColumnHdl, ToolBox*, pToolBox )
549ff0525f2SOliver-Rainer Wittmann {
550550fbbbdSOliver-Rainer Wittmann     maColumnPopup.Show( *pToolBox );
551ff0525f2SOliver-Rainer Wittmann 
552ff0525f2SOliver-Rainer Wittmann     return 0L;
553ff0525f2SOliver-Rainer Wittmann }
554ff0525f2SOliver-Rainer Wittmann 
555ff0525f2SOliver-Rainer Wittmann 
ClosePageColumnPopup()556ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ClosePageColumnPopup()
557ff0525f2SOliver-Rainer Wittmann {
558550fbbbdSOliver-Rainer Wittmann     maColumnPopup.Hide();
559ff0525f2SOliver-Rainer Wittmann }
560ff0525f2SOliver-Rainer Wittmann 
561ff0525f2SOliver-Rainer Wittmann 
562ff0525f2SOliver-Rainer Wittmann 
563ff0525f2SOliver-Rainer Wittmann 
NotifyItemUpdate(const sal_uInt16 nSId,const SfxItemState eState,const SfxPoolItem * pState,const bool bIsEnabled)564ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::NotifyItemUpdate(
565ff0525f2SOliver-Rainer Wittmann     const sal_uInt16 nSId,
566ff0525f2SOliver-Rainer Wittmann     const SfxItemState eState,
56745da7d5eSAndre Fischer     const SfxPoolItem* pState,
56845da7d5eSAndre Fischer     const bool bIsEnabled)
569ff0525f2SOliver-Rainer Wittmann {
57045da7d5eSAndre Fischer     (void)bIsEnabled;
57145da7d5eSAndre Fischer 
572ff0525f2SOliver-Rainer Wittmann     switch( nSId )
573ff0525f2SOliver-Rainer Wittmann     {
5748a2dd8f0SOliver-Rainer Wittmann     case SID_ATTR_PAGE_COLUMN:
575ff0525f2SOliver-Rainer Wittmann         {
576ff0525f2SOliver-Rainer Wittmann             if ( eState >= SFX_ITEM_AVAILABLE &&
577ff0525f2SOliver-Rainer Wittmann                  pState && pState->ISA(SfxInt16Item) )
578ff0525f2SOliver-Rainer Wittmann             {
579ff0525f2SOliver-Rainer Wittmann                 mpPageColumnTypeItem.reset( static_cast<SfxInt16Item*>(pState->Clone()) );
580ff0525f2SOliver-Rainer Wittmann                 ChangeColumnImage( mpPageColumnTypeItem->GetValue() );
581ff0525f2SOliver-Rainer Wittmann             }
582ff0525f2SOliver-Rainer Wittmann         }
583ff0525f2SOliver-Rainer Wittmann         break;
5848a2dd8f0SOliver-Rainer Wittmann     case SID_ATTR_PAGE_LRSPACE:
585ff0525f2SOliver-Rainer Wittmann         if ( eState >= SFX_ITEM_AVAILABLE &&
586ff0525f2SOliver-Rainer Wittmann              pState && pState->ISA(SvxLongLRSpaceItem) )
587ff0525f2SOliver-Rainer Wittmann         {
588ff0525f2SOliver-Rainer Wittmann             mpPageLRMarginItem.reset( static_cast<SvxLongLRSpaceItem*>(pState->Clone()) );
589ff0525f2SOliver-Rainer Wittmann             ChangeMarginImage();
590ff0525f2SOliver-Rainer Wittmann         }
591ff0525f2SOliver-Rainer Wittmann         break;
592ff0525f2SOliver-Rainer Wittmann 
5938a2dd8f0SOliver-Rainer Wittmann     case SID_ATTR_PAGE_ULSPACE:
594ff0525f2SOliver-Rainer Wittmann         if ( eState >= SFX_ITEM_AVAILABLE &&
595ff0525f2SOliver-Rainer Wittmann              pState && pState->ISA(SvxLongULSpaceItem) )
596ff0525f2SOliver-Rainer Wittmann         {
597ff0525f2SOliver-Rainer Wittmann             mpPageULMarginItem.reset( static_cast<SvxLongULSpaceItem*>(pState->Clone()) );
598ff0525f2SOliver-Rainer Wittmann             ChangeMarginImage();
599ff0525f2SOliver-Rainer Wittmann         }
600ff0525f2SOliver-Rainer Wittmann         break;
601ff0525f2SOliver-Rainer Wittmann 
602ff0525f2SOliver-Rainer Wittmann     case SID_ATTR_PAGE:
603ff0525f2SOliver-Rainer Wittmann         if ( eState >= SFX_ITEM_AVAILABLE &&
604ff0525f2SOliver-Rainer Wittmann              pState && pState->ISA(SvxPageItem) )
605ff0525f2SOliver-Rainer Wittmann         {
606ff0525f2SOliver-Rainer Wittmann             mpPageItem.reset( static_cast<SvxPageItem*>(pState->Clone()) );
607ff0525f2SOliver-Rainer Wittmann             if ( mpPageItem->IsLandscape() )
608ff0525f2SOliver-Rainer Wittmann             {
609ff0525f2SOliver-Rainer Wittmann                 mpToolBoxOrientation->SetItemImage(TBI_ORIENTATION, mImgLandscape);
610ff0525f2SOliver-Rainer Wittmann             }
611ff0525f2SOliver-Rainer Wittmann             else
612ff0525f2SOliver-Rainer Wittmann             {
613ff0525f2SOliver-Rainer Wittmann                 mpToolBoxOrientation->SetItemImage(TBI_ORIENTATION, mImgPortrait);
614ff0525f2SOliver-Rainer Wittmann             }
615ff0525f2SOliver-Rainer Wittmann             ChangeMarginImage();
616ff0525f2SOliver-Rainer Wittmann             ChangeSizeImage();
617ff0525f2SOliver-Rainer Wittmann             ChangeColumnImage( mpPageColumnTypeItem->GetValue() );
618ff0525f2SOliver-Rainer Wittmann         }
619ff0525f2SOliver-Rainer Wittmann         break;
620ff0525f2SOliver-Rainer Wittmann 
621ff0525f2SOliver-Rainer Wittmann     case SID_ATTR_PAGE_SIZE:
6227dc3d34dSOliver-Rainer Wittmann         if ( mbInvalidateSIDAttrPageOnSIDAttrPageSizeNotify )
6237dc3d34dSOliver-Rainer Wittmann         {
624ff0525f2SOliver-Rainer Wittmann             mpBindings->Invalidate( SID_ATTR_PAGE, sal_True, sal_False );
6257dc3d34dSOliver-Rainer Wittmann         }
626ff0525f2SOliver-Rainer Wittmann         if ( eState >= SFX_ITEM_AVAILABLE &&
627ff0525f2SOliver-Rainer Wittmann              pState && pState->ISA(SvxSizeItem) )
628ff0525f2SOliver-Rainer Wittmann         {
629ff0525f2SOliver-Rainer Wittmann             mpPageSizeItem.reset( static_cast<SvxSizeItem*>(pState->Clone()) );
630ff0525f2SOliver-Rainer Wittmann             ChangeSizeImage();
631ff0525f2SOliver-Rainer Wittmann         }
632ff0525f2SOliver-Rainer Wittmann         break;
633ff0525f2SOliver-Rainer Wittmann     case SID_ATTR_METRIC:
634ff0525f2SOliver-Rainer Wittmann         MetricState( eState, pState );
635ff0525f2SOliver-Rainer Wittmann         break;
636ff0525f2SOliver-Rainer Wittmann     }
637ff0525f2SOliver-Rainer Wittmann }
638ff0525f2SOliver-Rainer Wittmann 
639ff0525f2SOliver-Rainer Wittmann 
MetricState(SfxItemState eState,const SfxPoolItem * pState)640ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::MetricState( SfxItemState eState, const SfxPoolItem* pState )
641ff0525f2SOliver-Rainer Wittmann {
642ff0525f2SOliver-Rainer Wittmann     meFUnit = FUNIT_NONE;
643ff0525f2SOliver-Rainer Wittmann     if ( pState && eState >= SFX_ITEM_DEFAULT )
644ff0525f2SOliver-Rainer Wittmann     {
645ff0525f2SOliver-Rainer Wittmann         meFUnit = (FieldUnit)( (const SfxUInt16Item*)pState )->GetValue();
646ff0525f2SOliver-Rainer Wittmann     }
647ff0525f2SOliver-Rainer Wittmann     else
648ff0525f2SOliver-Rainer Wittmann     {
649ff0525f2SOliver-Rainer Wittmann         SfxViewFrame* pFrame = SfxViewFrame::Current();
650ff0525f2SOliver-Rainer Wittmann         SfxObjectShell* pSh = NULL;
651ff0525f2SOliver-Rainer Wittmann         if ( pFrame )
652ff0525f2SOliver-Rainer Wittmann             pSh = pFrame->GetObjectShell();
653ff0525f2SOliver-Rainer Wittmann         if ( pSh )
654ff0525f2SOliver-Rainer Wittmann         {
655ff0525f2SOliver-Rainer Wittmann             SfxModule* pModule = pSh->GetModule();
656ff0525f2SOliver-Rainer Wittmann             if ( pModule )
657ff0525f2SOliver-Rainer Wittmann             {
658ff0525f2SOliver-Rainer Wittmann                 const SfxPoolItem* pItem = pModule->GetItem( SID_ATTR_METRIC );
659ff0525f2SOliver-Rainer Wittmann                 if ( pItem )
660ff0525f2SOliver-Rainer Wittmann                     meFUnit = (FieldUnit)( (SfxUInt16Item*)pItem )->GetValue();
661ff0525f2SOliver-Rainer Wittmann             }
662ff0525f2SOliver-Rainer Wittmann             else
663ff0525f2SOliver-Rainer Wittmann             {
664ff0525f2SOliver-Rainer Wittmann                 DBG_ERRORFILE( "<PagePropertyPanel::MetricState(..)>: no module found" );
665ff0525f2SOliver-Rainer Wittmann             }
666ff0525f2SOliver-Rainer Wittmann         }
667ff0525f2SOliver-Rainer Wittmann     }
668ff0525f2SOliver-Rainer Wittmann }
669ff0525f2SOliver-Rainer Wittmann 
670ff0525f2SOliver-Rainer Wittmann 
671ff0525f2SOliver-Rainer Wittmann 
672ff0525f2SOliver-Rainer Wittmann 
ChangeMarginImage()673ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ChangeMarginImage()
674ff0525f2SOliver-Rainer Wittmann {
675ff0525f2SOliver-Rainer Wittmann     if ( mpPageLRMarginItem.get() == 0 ||
676ff0525f2SOliver-Rainer Wittmann          mpPageULMarginItem.get() == 0 ||
677ff0525f2SOliver-Rainer Wittmann          mpPageItem.get() == 0 )
678ff0525f2SOliver-Rainer Wittmann     {
679ff0525f2SOliver-Rainer Wittmann         return;
680ff0525f2SOliver-Rainer Wittmann     }
681ff0525f2SOliver-Rainer Wittmann 
682ff0525f2SOliver-Rainer Wittmann     const long cTolerance = 5;
683ff0525f2SOliver-Rainer Wittmann 
684ff0525f2SOliver-Rainer Wittmann     if( abs(mpPageLRMarginItem->GetLeft() - SWPAGE_NARROW_VALUE) <= cTolerance &&
685ff0525f2SOliver-Rainer Wittmann         abs(mpPageLRMarginItem->GetRight() - SWPAGE_NARROW_VALUE) <= cTolerance &&
686ff0525f2SOliver-Rainer Wittmann         abs(mpPageULMarginItem->GetUpper() - SWPAGE_NARROW_VALUE) <= cTolerance &&
687ff0525f2SOliver-Rainer Wittmann         abs(mpPageULMarginItem->GetLower() - SWPAGE_NARROW_VALUE) <= cTolerance &&
688ff0525f2SOliver-Rainer Wittmann         mpPageItem->GetPageUsage() != SVX_PAGE_MIRROR )
689ff0525f2SOliver-Rainer Wittmann         mpToolBoxMargin->SetItemImage( TBI_MARGIN, mpPageItem->IsLandscape() ? mImgNarrow_L : mImgNarrow );
690ff0525f2SOliver-Rainer Wittmann 
691ff0525f2SOliver-Rainer Wittmann     else if( abs(mpPageLRMarginItem->GetLeft() - SWPAGE_NORMAL_VALUE) <= cTolerance &&
692ff0525f2SOliver-Rainer Wittmann         abs(mpPageLRMarginItem->GetRight() - SWPAGE_NORMAL_VALUE) <= cTolerance &&
693ff0525f2SOliver-Rainer Wittmann         abs(mpPageULMarginItem->GetUpper() - SWPAGE_NORMAL_VALUE) <= cTolerance &&
694ff0525f2SOliver-Rainer Wittmann         abs(mpPageULMarginItem->GetLower() - SWPAGE_NORMAL_VALUE) <= cTolerance &&
695ff0525f2SOliver-Rainer Wittmann         mpPageItem->GetPageUsage() != SVX_PAGE_MIRROR )
696ff0525f2SOliver-Rainer Wittmann         mpToolBoxMargin->SetItemImage(TBI_MARGIN, mpPageItem->IsLandscape() ? mImgNormal_L : mImgNormal );
697ff0525f2SOliver-Rainer Wittmann 
698ff0525f2SOliver-Rainer Wittmann     else if( abs(mpPageLRMarginItem->GetLeft() - SWPAGE_WIDE_VALUE2) <= cTolerance &&
699ff0525f2SOliver-Rainer Wittmann         abs(mpPageLRMarginItem->GetRight() - SWPAGE_WIDE_VALUE2) <= cTolerance &&
700ff0525f2SOliver-Rainer Wittmann         abs(mpPageULMarginItem->GetUpper() - SWPAGE_WIDE_VALUE1) <= cTolerance &&
701ff0525f2SOliver-Rainer Wittmann         abs(mpPageULMarginItem->GetLower() - SWPAGE_WIDE_VALUE1) <= cTolerance &&
702ff0525f2SOliver-Rainer Wittmann         mpPageItem->GetPageUsage() != SVX_PAGE_MIRROR )
703ff0525f2SOliver-Rainer Wittmann         mpToolBoxMargin->SetItemImage(TBI_MARGIN, mpPageItem->IsLandscape() ? mImgWide_L : mImgWide );
704ff0525f2SOliver-Rainer Wittmann 
705ff0525f2SOliver-Rainer Wittmann     else if( abs(mpPageLRMarginItem->GetLeft() - SWPAGE_WIDE_VALUE3) <= cTolerance &&
706ff0525f2SOliver-Rainer Wittmann         abs(mpPageLRMarginItem->GetRight() - SWPAGE_WIDE_VALUE1) <= cTolerance &&
707ff0525f2SOliver-Rainer Wittmann         abs(mpPageULMarginItem->GetUpper() - SWPAGE_WIDE_VALUE1) <= cTolerance &&
708ff0525f2SOliver-Rainer Wittmann         abs(mpPageULMarginItem->GetLower() - SWPAGE_WIDE_VALUE1) <= cTolerance &&
709ff0525f2SOliver-Rainer Wittmann         mpPageItem->GetPageUsage() == SVX_PAGE_MIRROR )
710ff0525f2SOliver-Rainer Wittmann         mpToolBoxMargin->SetItemImage(TBI_MARGIN, mpPageItem->IsLandscape() ? mImgMirrored_L : mImgMirrored );
711ff0525f2SOliver-Rainer Wittmann 
712ff0525f2SOliver-Rainer Wittmann     else
713ff0525f2SOliver-Rainer Wittmann         mpToolBoxMargin->SetItemImage(TBI_MARGIN, mpPageItem->IsLandscape() ? mImgMarginCustom_L : mImgMarginCustom );
714ff0525f2SOliver-Rainer Wittmann }
715ff0525f2SOliver-Rainer Wittmann 
716ff0525f2SOliver-Rainer Wittmann 
ChangeSizeImage()717ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ChangeSizeImage()
718ff0525f2SOliver-Rainer Wittmann {
719ff0525f2SOliver-Rainer Wittmann     if ( mpPageSizeItem.get() == 0 ||
720ff0525f2SOliver-Rainer Wittmann          mpPageItem.get() == 0 )
721ff0525f2SOliver-Rainer Wittmann     {
722ff0525f2SOliver-Rainer Wittmann         return;
723ff0525f2SOliver-Rainer Wittmann     }
724ff0525f2SOliver-Rainer Wittmann 
725ff0525f2SOliver-Rainer Wittmann     Size aTmpPaperSize = mpPageSizeItem->GetSize();
726ff0525f2SOliver-Rainer Wittmann     if ( mpPageItem->IsLandscape() )
727ff0525f2SOliver-Rainer Wittmann     {
728ff0525f2SOliver-Rainer Wittmann         Swap( aTmpPaperSize ); // Swap(..) defined in editeng/paperinf.hxx
729ff0525f2SOliver-Rainer Wittmann     }
730ff0525f2SOliver-Rainer Wittmann 
731ff0525f2SOliver-Rainer Wittmann     mePaper = SvxPaperInfo::GetSvxPaper( aTmpPaperSize, static_cast<MapUnit>(meUnit), sal_True );
732ff0525f2SOliver-Rainer Wittmann 
733ff0525f2SOliver-Rainer Wittmann     sal_uInt16 nImageIdx = 0;
734ff0525f2SOliver-Rainer Wittmann     switch ( mePaper )
735ff0525f2SOliver-Rainer Wittmann     {
736ff0525f2SOliver-Rainer Wittmann     case PAPER_A3:
737ff0525f2SOliver-Rainer Wittmann         nImageIdx = 1;
738ff0525f2SOliver-Rainer Wittmann         break;
739ff0525f2SOliver-Rainer Wittmann     case PAPER_A4:
740ff0525f2SOliver-Rainer Wittmann         nImageIdx = 2;
741ff0525f2SOliver-Rainer Wittmann         break;
742ff0525f2SOliver-Rainer Wittmann     case PAPER_A5:
743ff0525f2SOliver-Rainer Wittmann         nImageIdx = 3;
744ff0525f2SOliver-Rainer Wittmann         break;
745ff0525f2SOliver-Rainer Wittmann     case PAPER_B4_ISO:
746ff0525f2SOliver-Rainer Wittmann         nImageIdx = 4;
747ff0525f2SOliver-Rainer Wittmann         break;
748ff0525f2SOliver-Rainer Wittmann     case PAPER_B5_ISO:
749ff0525f2SOliver-Rainer Wittmann         nImageIdx = 5;
750ff0525f2SOliver-Rainer Wittmann         break;
751ff0525f2SOliver-Rainer Wittmann     case PAPER_ENV_C5:
752ff0525f2SOliver-Rainer Wittmann         nImageIdx = 6;
753ff0525f2SOliver-Rainer Wittmann         break;
754ff0525f2SOliver-Rainer Wittmann     case PAPER_LETTER:
755ff0525f2SOliver-Rainer Wittmann         nImageIdx = 7;
756ff0525f2SOliver-Rainer Wittmann         break;
757ff0525f2SOliver-Rainer Wittmann     case PAPER_LEGAL:
758ff0525f2SOliver-Rainer Wittmann         nImageIdx = 8;
759ff0525f2SOliver-Rainer Wittmann         break;
760ff0525f2SOliver-Rainer Wittmann     default:
761ff0525f2SOliver-Rainer Wittmann         nImageIdx = 0;
762ff0525f2SOliver-Rainer Wittmann         mePaper = PAPER_USER;
763ff0525f2SOliver-Rainer Wittmann         break;
764ff0525f2SOliver-Rainer Wittmann     }
765ff0525f2SOliver-Rainer Wittmann 
766ff0525f2SOliver-Rainer Wittmann     if ( nImageIdx == 0 )
767ff0525f2SOliver-Rainer Wittmann     {
768ff0525f2SOliver-Rainer Wittmann         mpToolBoxSize->SetItemImage( TBI_SIZE,
769ff0525f2SOliver-Rainer Wittmann                                      ( mpPageItem->IsLandscape() ? mImgSizeNone_L : mImgSizeNone ) );
770ff0525f2SOliver-Rainer Wittmann     }
771ff0525f2SOliver-Rainer Wittmann     else
772ff0525f2SOliver-Rainer Wittmann     {
773ff0525f2SOliver-Rainer Wittmann         mpToolBoxSize->SetItemImage( TBI_SIZE,
774ff0525f2SOliver-Rainer Wittmann                                      ( mpPageItem->IsLandscape() ? maImgSize_L[nImageIdx-1] : maImgSize[nImageIdx-1] ) );
775ff0525f2SOliver-Rainer Wittmann     }
776ff0525f2SOliver-Rainer Wittmann }
777ff0525f2SOliver-Rainer Wittmann 
778ff0525f2SOliver-Rainer Wittmann 
ChangeColumnImage(const sal_uInt16 nColumnType)779ff0525f2SOliver-Rainer Wittmann void PagePropertyPanel::ChangeColumnImage( const sal_uInt16 nColumnType )
780ff0525f2SOliver-Rainer Wittmann {
781ff0525f2SOliver-Rainer Wittmann     if ( mpPageItem.get() == 0 )
782ff0525f2SOliver-Rainer Wittmann     {
783ff0525f2SOliver-Rainer Wittmann         return;
784ff0525f2SOliver-Rainer Wittmann     }
785ff0525f2SOliver-Rainer Wittmann 
786ff0525f2SOliver-Rainer Wittmann     if ( !mpPageItem->IsLandscape() )
787ff0525f2SOliver-Rainer Wittmann     {
788ff0525f2SOliver-Rainer Wittmann         switch( nColumnType )
789ff0525f2SOliver-Rainer Wittmann         {
790ff0525f2SOliver-Rainer Wittmann         case 1:
791ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn1);
792ff0525f2SOliver-Rainer Wittmann             break;
793ff0525f2SOliver-Rainer Wittmann         case 2:
794ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn2);
795ff0525f2SOliver-Rainer Wittmann             break;
796ff0525f2SOliver-Rainer Wittmann         case 3:
797ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn3);
798ff0525f2SOliver-Rainer Wittmann             break;
799ff0525f2SOliver-Rainer Wittmann         case 4:
800ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgLeft);
801ff0525f2SOliver-Rainer Wittmann             break;
802ff0525f2SOliver-Rainer Wittmann         case 5:
803ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgRight);
804ff0525f2SOliver-Rainer Wittmann             break;
805ff0525f2SOliver-Rainer Wittmann         default:
806ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumnNone);
807ff0525f2SOliver-Rainer Wittmann         }
808ff0525f2SOliver-Rainer Wittmann     }
809ff0525f2SOliver-Rainer Wittmann     else
810ff0525f2SOliver-Rainer Wittmann     {
811ff0525f2SOliver-Rainer Wittmann         switch( nColumnType )
812ff0525f2SOliver-Rainer Wittmann         {
813ff0525f2SOliver-Rainer Wittmann         case 1:
814ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn1_L);
815ff0525f2SOliver-Rainer Wittmann             break;
816ff0525f2SOliver-Rainer Wittmann         case 2:
817ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn2_L);
818ff0525f2SOliver-Rainer Wittmann             break;
819ff0525f2SOliver-Rainer Wittmann         case 3:
820ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumn3_L);
821ff0525f2SOliver-Rainer Wittmann             break;
822ff0525f2SOliver-Rainer Wittmann         case 4:
823ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgLeft_L);
824ff0525f2SOliver-Rainer Wittmann             break;
825ff0525f2SOliver-Rainer Wittmann         case 5:
826ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgRight_L);
827ff0525f2SOliver-Rainer Wittmann             break;
828ff0525f2SOliver-Rainer Wittmann         default:
829ff0525f2SOliver-Rainer Wittmann             mpToolBoxColumn->SetItemImage(TBI_COLUMN, mImgColumnNone_L);
830ff0525f2SOliver-Rainer Wittmann         }
831ff0525f2SOliver-Rainer Wittmann     }
832ff0525f2SOliver-Rainer Wittmann }
833ff0525f2SOliver-Rainer Wittmann 
834550fbbbdSOliver-Rainer Wittmann 
StartUndo()835550fbbbdSOliver-Rainer Wittmann void PagePropertyPanel::StartUndo()
836550fbbbdSOliver-Rainer Wittmann {
837763264f0SArmin Le Grand     if ( mxUndoManager.is() )
838550fbbbdSOliver-Rainer Wittmann     {
839550fbbbdSOliver-Rainer Wittmann         mxUndoManager->enterUndoContext( A2S("") );
840550fbbbdSOliver-Rainer Wittmann     }
841550fbbbdSOliver-Rainer Wittmann }
842550fbbbdSOliver-Rainer Wittmann 
843550fbbbdSOliver-Rainer Wittmann 
EndUndo()844550fbbbdSOliver-Rainer Wittmann void PagePropertyPanel::EndUndo()
845550fbbbdSOliver-Rainer Wittmann {
846763264f0SArmin Le Grand     if ( mxUndoManager.is() )
847550fbbbdSOliver-Rainer Wittmann     {
848550fbbbdSOliver-Rainer Wittmann         mxUndoManager->leaveUndoContext();
849550fbbbdSOliver-Rainer Wittmann     }
850550fbbbdSOliver-Rainer Wittmann }
851550fbbbdSOliver-Rainer Wittmann 
8526a606da0SAndre Fischer 
8536a606da0SAndre Fischer 
8546a606da0SAndre Fischer 
Resize(void)8556a606da0SAndre Fischer void PagePropertyPanel::Resize (void)
8566a606da0SAndre Fischer {
8576a606da0SAndre Fischer     maLayouter.Layout();
8586a606da0SAndre Fischer }
8596a606da0SAndre Fischer 
8606a606da0SAndre Fischer 
8616a606da0SAndre Fischer 
8626a606da0SAndre Fischer 
8636a606da0SAndre Fischer 
864ff0525f2SOliver-Rainer Wittmann } } // end of namespace ::sw::sidebar
865*344957f7Smseidel 
866*344957f7Smseidel /* vim: set noet sw=4 ts=4: */
867