xref: /trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx (revision facb16e735f93e448ae83858ca0abe498f906969)
1*facb16e7SArmin Le Grand /**************************************************************
2*facb16e7SArmin Le Grand  *
3*facb16e7SArmin Le Grand  * Licensed to the Apache Software Foundation (ASF) under one
4*facb16e7SArmin Le Grand  * or more contributor license agreements.  See the NOTICE file
5*facb16e7SArmin Le Grand  * distributed with this work for additional information
6*facb16e7SArmin Le Grand  * regarding copyright ownership.  The ASF licenses this file
7*facb16e7SArmin Le Grand  * to you under the Apache License, Version 2.0 (the
8*facb16e7SArmin Le Grand  * "License"); you may not use this file except in compliance
9*facb16e7SArmin Le Grand  * with the License.  You may obtain a copy of the License at
10*facb16e7SArmin Le Grand  *
11*facb16e7SArmin Le Grand  *   http://www.apache.org/licenses/LICENSE-2.0
12*facb16e7SArmin Le Grand  *
13*facb16e7SArmin Le Grand  * Unless required by applicable law or agreed to in writing,
14*facb16e7SArmin Le Grand  * software distributed under the License is distributed on an
15*facb16e7SArmin Le Grand  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*facb16e7SArmin Le Grand  * KIND, either express or implied.  See the License for the
17*facb16e7SArmin Le Grand  * specific language governing permissions and limitations
18*facb16e7SArmin Le Grand  * under the License.
19*facb16e7SArmin Le Grand  *
20*facb16e7SArmin Le Grand  *************************************************************/
21*facb16e7SArmin Le Grand 
22*facb16e7SArmin Le Grand #include "precompiled_sc.hxx"
23*facb16e7SArmin Le Grand 
24*facb16e7SArmin Le Grand #include <sfx2/sidebar/propertypanel.hrc>
25*facb16e7SArmin Le Grand #include <sfx2/sidebar/Theme.hxx>
26*facb16e7SArmin Le Grand #include <sfx2/sidebar/ControlFactory.hxx>
27*facb16e7SArmin Le Grand #include <AlignmentPropertyPanel.hxx>
28*facb16e7SArmin Le Grand #include <AlignmentPropertyPanel.hrc>
29*facb16e7SArmin Le Grand #include <svx/dialmgr.hxx>
30*facb16e7SArmin Le Grand #include "sc.hrc"
31*facb16e7SArmin Le Grand #include "scresid.hxx"
32*facb16e7SArmin Le Grand #include <sfx2/bindings.hxx>
33*facb16e7SArmin Le Grand #include <sfx2/dispatch.hxx>
34*facb16e7SArmin Le Grand #include <svx/algitem.hxx>
35*facb16e7SArmin Le Grand #include <svx/dlgutil.hxx>
36*facb16e7SArmin Le Grand #include <vcl/toolbox.hxx>
37*facb16e7SArmin Le Grand #include <svx/sidebar/SidebarDialControl.hxx>
38*facb16e7SArmin Le Grand 
39*facb16e7SArmin Le Grand using namespace css;
40*facb16e7SArmin Le Grand using namespace cssu;
41*facb16e7SArmin Le Grand 
42*facb16e7SArmin Le Grand #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
43*facb16e7SArmin Le Grand 
44*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
45*facb16e7SArmin Le Grand // namespace open
46*facb16e7SArmin Le Grand 
47*facb16e7SArmin Le Grand namespace sc { namespace sidebar {
48*facb16e7SArmin Le Grand 
49*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
50*facb16e7SArmin Le Grand 
51*facb16e7SArmin Le Grand AlignmentPropertyPanel::AlignmentPropertyPanel(
52*facb16e7SArmin Le Grand     Window* pParent,
53*facb16e7SArmin Le Grand     const cssu::Reference<css::frame::XFrame>& rxFrame,
54*facb16e7SArmin Le Grand     SfxBindings* pBindings)
55*facb16e7SArmin Le Grand :   Control(
56*facb16e7SArmin Le Grand         pParent,
57*facb16e7SArmin Le Grand         ScResId(RID_PROPERTYPANEL_SC_ALIGNMENT)),
58*facb16e7SArmin Le Grand     mpTBHorizontal(new ToolBox(this, ScResId(TBX_HORIZONTAL_ALIGNMENT))),
59*facb16e7SArmin Le Grand     mpTBVertical(new ToolBox(this, ScResId(TBX_VERTICAL_ALIGN))),
60*facb16e7SArmin Le Grand     mpFTLeftIndent(new FixedText(this, ScResId(FT_LEFT_INDENT))),
61*facb16e7SArmin Le Grand     mpMFLeftIndent(new MetricField(this, ScResId(MF_LEFT_INDENT))),
62*facb16e7SArmin Le Grand     mpCBXWrapText(new CheckBox(this, ScResId(CBX_WRAP))),
63*facb16e7SArmin Le Grand     mpCBXMergeCell(new CheckBox(this, ScResId(CBX_MERGE))),
64*facb16e7SArmin Le Grand     mpFtRotate(new FixedText(this, ScResId(FT_ORIENT))),
65*facb16e7SArmin Le Grand     mpCtrlDial(new svx::sidebar::SidebarDialControl(this, ScResId(DIAL_CONTROL))), // , true)),
66*facb16e7SArmin Le Grand     mpMtrAngle(new MetricBox(this, ScResId(CBOX_ANGLE))),
67*facb16e7SArmin Le Grand     mpCbStacked(new CheckBox(this, ScResId(CBX_VERT))),
68*facb16e7SArmin Le Grand     maAlignHorControl(SID_H_ALIGNCELL, *pBindings, *this),
69*facb16e7SArmin Le Grand     maAlignVerControl(SID_V_ALIGNCELL, *pBindings, *this),
70*facb16e7SArmin Le Grand     maLeftIndentControl(SID_ATTR_ALIGN_INDENT, *pBindings, *this),
71*facb16e7SArmin Le Grand     maMergeCellControl(FID_MERGE_TOGGLE, *pBindings, *this),
72*facb16e7SArmin Le Grand     maWrapTextControl(SID_ATTR_ALIGN_LINEBREAK, *pBindings, *this),
73*facb16e7SArmin Le Grand     maAngleControl(SID_ATTR_ALIGN_DEGREES, *pBindings, *this),
74*facb16e7SArmin Le Grand     maStackControl(SID_ATTR_ALIGN_STACKED, *pBindings, *this),
75*facb16e7SArmin Le Grand     maIMGAlignLeft(ScResId(IMG_ALIGN_LEFT)),
76*facb16e7SArmin Le Grand     maIMGAlignCenter(ScResId(IMG_ALIGN_CENTER)),
77*facb16e7SArmin Le Grand     maIMGAlignRight(ScResId(IMG_ALIGN_RIGHT)),
78*facb16e7SArmin Le Grand     maIMGAlignJust(ScResId(IMG_ALIGN_JUST)),
79*facb16e7SArmin Le Grand     maIMGAlignTop(ScResId(IMG_ALIGN_TOP)),
80*facb16e7SArmin Le Grand     maIMGAlignCenterV(ScResId(IMG_ALIGN_CENTER_V)),
81*facb16e7SArmin Le Grand     maIMGAlignBottom(ScResId(IMG_ALIGN_BOTTOM)),
82*facb16e7SArmin Le Grand     meHorAlignState(SVX_HOR_JUSTIFY_STANDARD),
83*facb16e7SArmin Le Grand     meVerAlignState(SVX_VER_JUSTIFY_STANDARD),
84*facb16e7SArmin Le Grand     mbMultiDisable(false),
85*facb16e7SArmin Le Grand     mxFrame(rxFrame),
86*facb16e7SArmin Le Grand     maContext(),
87*facb16e7SArmin Le Grand     mpBindings(pBindings)
88*facb16e7SArmin Le Grand {
89*facb16e7SArmin Le Grand     Initialize();
90*facb16e7SArmin Le Grand     FreeResource();
91*facb16e7SArmin Le Grand }
92*facb16e7SArmin Le Grand 
93*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
94*facb16e7SArmin Le Grand 
95*facb16e7SArmin Le Grand AlignmentPropertyPanel::~AlignmentPropertyPanel()
96*facb16e7SArmin Le Grand {
97*facb16e7SArmin Le Grand }
98*facb16e7SArmin Le Grand 
99*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
100*facb16e7SArmin Le Grand 
101*facb16e7SArmin Le Grand void AlignmentPropertyPanel::Initialize()
102*facb16e7SArmin Le Grand {
103*facb16e7SArmin Le Grand     mpTBHorizontal->SetItemImage(ID_SUBSTLEFT, maIMGAlignLeft);
104*facb16e7SArmin Le Grand     mpTBHorizontal->SetItemImage(ID_SUBSTCENTER, maIMGAlignCenter);
105*facb16e7SArmin Le Grand     mpTBHorizontal->SetItemImage(ID_SUBSTRIGHT, maIMGAlignRight);
106*facb16e7SArmin Le Grand     mpTBHorizontal->SetItemImage(ID_SUBSTJUSTIFY, maIMGAlignJust);
107*facb16e7SArmin Le Grand     Size aTbxSize( mpTBHorizontal->CalcWindowSizePixel() );
108*facb16e7SArmin Le Grand     mpTBHorizontal->SetOutputSizePixel( aTbxSize );
109*facb16e7SArmin Le Grand     mpTBHorizontal->SetBackground(Wallpaper());
110*facb16e7SArmin Le Grand     mpTBHorizontal->SetPaintTransparent(true);
111*facb16e7SArmin Le Grand     Link aLink = LINK(this, AlignmentPropertyPanel, TbxHorAlignSelectHdl);
112*facb16e7SArmin Le Grand     mpTBHorizontal->SetSelectHdl ( aLink );
113*facb16e7SArmin Le Grand 
114*facb16e7SArmin Le Grand     mpTBVertical->SetItemImage(IID_VERT_TOP, maIMGAlignTop);
115*facb16e7SArmin Le Grand     mpTBVertical->SetItemImage(IID_VERT_CENTER, maIMGAlignCenterV);
116*facb16e7SArmin Le Grand     mpTBVertical->SetItemImage(IID_VERT_BOTTOM, maIMGAlignBottom);
117*facb16e7SArmin Le Grand     Size aTbxSize2( mpTBVertical->CalcWindowSizePixel() );
118*facb16e7SArmin Le Grand     mpTBVertical->SetOutputSizePixel( aTbxSize2 );
119*facb16e7SArmin Le Grand     mpTBVertical->SetBackground(Wallpaper());
120*facb16e7SArmin Le Grand     mpTBVertical->SetPaintTransparent(true);
121*facb16e7SArmin Le Grand     aLink = LINK(this, AlignmentPropertyPanel, TbxVerAlignSelectHdl);
122*facb16e7SArmin Le Grand     mpTBVertical->SetSelectHdl ( aLink );
123*facb16e7SArmin Le Grand 
124*facb16e7SArmin Le Grand     mpFTLeftIndent->Disable();
125*facb16e7SArmin Le Grand     mpMFLeftIndent->Disable();
126*facb16e7SArmin Le Grand     mpMFLeftIndent->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Left Indent")));    //wj acc
127*facb16e7SArmin Le Grand     aLink = LINK(this, AlignmentPropertyPanel, MFLeftIndentMdyHdl);
128*facb16e7SArmin Le Grand     mpMFLeftIndent->SetModifyHdl ( aLink );
129*facb16e7SArmin Le Grand 
130*facb16e7SArmin Le Grand     aLink = LINK(this, AlignmentPropertyPanel, CBOXMergnCellClkHdl);
131*facb16e7SArmin Le Grand     mpCBXMergeCell->SetClickHdl ( aLink );
132*facb16e7SArmin Le Grand 
133*facb16e7SArmin Le Grand     aLink = LINK(this, AlignmentPropertyPanel, CBOXWrapTextClkHdl);
134*facb16e7SArmin Le Grand     mpCBXWrapText->SetClickHdl ( aLink );
135*facb16e7SArmin Le Grand 
136*facb16e7SArmin Le Grand     //rotation control
137*facb16e7SArmin Le Grand     mpCtrlDial->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Text Orientation")));   //wj acc
138*facb16e7SArmin Le Grand     mpCtrlDial->SetModifyHdl(LINK( this, AlignmentPropertyPanel, RotationHdl));
139*facb16e7SArmin Le Grand     //rotation:
140*facb16e7SArmin Le Grand     mpMtrAngle->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Text Orientation")));   //wj acc
141*facb16e7SArmin Le Grand     mpMtrAngle->SetModifyHdl(LINK( this, AlignmentPropertyPanel, AngleModifiedHdl));
142*facb16e7SArmin Le Grand     mpMtrAngle->EnableAutocomplete( false );
143*facb16e7SArmin Le Grand     //Vertical stacked
144*facb16e7SArmin Le Grand     mpCbStacked->SetClickHdl( LINK( this, AlignmentPropertyPanel, ClickStackHdl ) );
145*facb16e7SArmin Le Grand 
146*facb16e7SArmin Le Grand     //wj
147*facb16e7SArmin Le Grand     mpMtrAngle->InsertValue(0, FUNIT_CUSTOM);
148*facb16e7SArmin Le Grand     mpMtrAngle->InsertValue(45, FUNIT_CUSTOM);
149*facb16e7SArmin Le Grand     mpMtrAngle->InsertValue(90, FUNIT_CUSTOM);
150*facb16e7SArmin Le Grand     mpMtrAngle->InsertValue(135, FUNIT_CUSTOM);
151*facb16e7SArmin Le Grand     mpMtrAngle->InsertValue(180, FUNIT_CUSTOM);
152*facb16e7SArmin Le Grand     mpMtrAngle->InsertValue(225, FUNIT_CUSTOM);
153*facb16e7SArmin Le Grand     mpMtrAngle->InsertValue(270, FUNIT_CUSTOM);
154*facb16e7SArmin Le Grand     mpMtrAngle->InsertValue(315, FUNIT_CUSTOM);
155*facb16e7SArmin Le Grand 
156*facb16e7SArmin Le Grand     //
157*facb16e7SArmin Le Grand     mpTBHorizontal->SetAccessibleRelationLabeledBy(mpTBHorizontal.get());
158*facb16e7SArmin Le Grand     mpTBVertical->SetAccessibleRelationLabeledBy(mpTBVertical.get());
159*facb16e7SArmin Le Grand     mpMFLeftIndent->SetAccessibleRelationLabeledBy(mpFTLeftIndent.get());
160*facb16e7SArmin Le Grand     mpMtrAngle->SetAccessibleRelationLabeledBy(mpFtRotate.get());
161*facb16e7SArmin Le Grand #ifdef HAS_IA2
162*facb16e7SArmin Le Grand     mpMtrAngle->SetMpSubEditAccLableBy(mpFtRotate.get());
163*facb16e7SArmin Le Grand #endif
164*facb16e7SArmin Le Grand }
165*facb16e7SArmin Le Grand 
166*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
167*facb16e7SArmin Le Grand 
168*facb16e7SArmin Le Grand IMPL_LINK( AlignmentPropertyPanel, AngleModifiedHdl, void *, EMPTYARG )
169*facb16e7SArmin Le Grand {
170*facb16e7SArmin Le Grand     String sTmp = mpMtrAngle->GetText();
171*facb16e7SArmin Le Grand 
172*facb16e7SArmin Le Grand     sal_Unicode nChar = sTmp.GetChar( 0 );
173*facb16e7SArmin Le Grand     if((sTmp.Len()== 1 &&  nChar == '-') ||
174*facb16e7SArmin Le Grand         (nChar != '-' && ((nChar < '0') || (nChar > '9') ) ))   ////modify
175*facb16e7SArmin Le Grand         return 0;
176*facb16e7SArmin Le Grand 
177*facb16e7SArmin Le Grand     double dTmp = sTmp.ToDouble();
178*facb16e7SArmin Le Grand     FormatDegrees(dTmp);
179*facb16e7SArmin Le Grand 
180*facb16e7SArmin Le Grand     sal_Int64 nTmp = (sal_Int64)dTmp*100;
181*facb16e7SArmin Le Grand     SfxInt32Item aAngleItem( SID_ATTR_ALIGN_DEGREES,(sal_uInt32) nTmp);
182*facb16e7SArmin Le Grand 
183*facb16e7SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(
184*facb16e7SArmin Le Grand         SID_ATTR_ALIGN_DEGREES, SFX_CALLMODE_RECORD, &aAngleItem, 0L );
185*facb16e7SArmin Le Grand     return 0;
186*facb16e7SArmin Le Grand }
187*facb16e7SArmin Le Grand 
188*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
189*facb16e7SArmin Le Grand 
190*facb16e7SArmin Le Grand IMPL_LINK( AlignmentPropertyPanel, RotationHdl, void *, EMPTYARG )
191*facb16e7SArmin Le Grand {
192*facb16e7SArmin Le Grand     sal_Int32 nTmp = mpCtrlDial->GetRotation();
193*facb16e7SArmin Le Grand     SfxInt32Item aAngleItem( SID_ATTR_ALIGN_DEGREES,(sal_uInt32) nTmp);
194*facb16e7SArmin Le Grand 
195*facb16e7SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(
196*facb16e7SArmin Le Grand         SID_ATTR_ALIGN_DEGREES, SFX_CALLMODE_RECORD, &aAngleItem, 0L );
197*facb16e7SArmin Le Grand 
198*facb16e7SArmin Le Grand     return 0;
199*facb16e7SArmin Le Grand }
200*facb16e7SArmin Le Grand 
201*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
202*facb16e7SArmin Le Grand 
203*facb16e7SArmin Le Grand IMPL_LINK( AlignmentPropertyPanel, ClickStackHdl, void *, EMPTYARG )
204*facb16e7SArmin Le Grand {
205*facb16e7SArmin Le Grand     bool bVertical = mpCbStacked->IsChecked() ? true : false;
206*facb16e7SArmin Le Grand     SfxBoolItem  aStackItem( SID_ATTR_ALIGN_STACKED, bVertical );
207*facb16e7SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(
208*facb16e7SArmin Le Grand         SID_ATTR_ALIGN_STACKED, SFX_CALLMODE_RECORD, &aStackItem, 0L );
209*facb16e7SArmin Le Grand     return 0;
210*facb16e7SArmin Le Grand }
211*facb16e7SArmin Le Grand 
212*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
213*facb16e7SArmin Le Grand 
214*facb16e7SArmin Le Grand IMPL_LINK(AlignmentPropertyPanel, TbxHorAlignSelectHdl, ToolBox*, pToolBox)
215*facb16e7SArmin Le Grand {
216*facb16e7SArmin Le Grand     sal_uInt16 nId = pToolBox->GetCurItemId();
217*facb16e7SArmin Le Grand 
218*facb16e7SArmin Le Grand     if(nId == ID_SUBSTLEFT)
219*facb16e7SArmin Le Grand     {
220*facb16e7SArmin Le Grand         if(meHorAlignState != SVX_HOR_JUSTIFY_LEFT)
221*facb16e7SArmin Le Grand             meHorAlignState = SVX_HOR_JUSTIFY_LEFT;
222*facb16e7SArmin Le Grand         else
223*facb16e7SArmin Le Grand             meHorAlignState = SVX_HOR_JUSTIFY_STANDARD;
224*facb16e7SArmin Le Grand     }
225*facb16e7SArmin Le Grand     else if( nId == ID_SUBSTCENTER )
226*facb16e7SArmin Le Grand     {
227*facb16e7SArmin Le Grand         if(meHorAlignState != SVX_HOR_JUSTIFY_CENTER)
228*facb16e7SArmin Le Grand             meHorAlignState = SVX_HOR_JUSTIFY_CENTER;
229*facb16e7SArmin Le Grand         else
230*facb16e7SArmin Le Grand             meHorAlignState = SVX_HOR_JUSTIFY_STANDARD;
231*facb16e7SArmin Le Grand     }
232*facb16e7SArmin Le Grand     else if( nId == ID_SUBSTRIGHT )
233*facb16e7SArmin Le Grand     {
234*facb16e7SArmin Le Grand         if(meHorAlignState != SVX_HOR_JUSTIFY_RIGHT)
235*facb16e7SArmin Le Grand             meHorAlignState = SVX_HOR_JUSTIFY_RIGHT;
236*facb16e7SArmin Le Grand         else
237*facb16e7SArmin Le Grand             meHorAlignState = SVX_HOR_JUSTIFY_STANDARD;
238*facb16e7SArmin Le Grand     }
239*facb16e7SArmin Le Grand     else if( nId == ID_SUBSTJUSTIFY )
240*facb16e7SArmin Le Grand     {
241*facb16e7SArmin Le Grand         if(meHorAlignState != SVX_HOR_JUSTIFY_BLOCK)
242*facb16e7SArmin Le Grand             meHorAlignState = SVX_HOR_JUSTIFY_BLOCK;
243*facb16e7SArmin Le Grand         else
244*facb16e7SArmin Le Grand             meHorAlignState = SVX_HOR_JUSTIFY_STANDARD;
245*facb16e7SArmin Le Grand     }
246*facb16e7SArmin Le Grand     SvxHorJustifyItem aHorItem(meHorAlignState, SID_H_ALIGNCELL);
247*facb16e7SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_H_ALIGNCELL, SFX_CALLMODE_RECORD, &aHorItem, 0L);
248*facb16e7SArmin Le Grand     UpdateHorAlign();
249*facb16e7SArmin Le Grand     return 0;
250*facb16e7SArmin Le Grand }
251*facb16e7SArmin Le Grand 
252*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
253*facb16e7SArmin Le Grand 
254*facb16e7SArmin Le Grand IMPL_LINK(AlignmentPropertyPanel, TbxVerAlignSelectHdl, ToolBox*, pToolBox)
255*facb16e7SArmin Le Grand {
256*facb16e7SArmin Le Grand     sal_uInt16 nId = pToolBox->GetCurItemId();
257*facb16e7SArmin Le Grand 
258*facb16e7SArmin Le Grand     //Bold
259*facb16e7SArmin Le Grand     if(nId == IID_VERT_TOP)
260*facb16e7SArmin Le Grand     {
261*facb16e7SArmin Le Grand         if(meVerAlignState != SVX_VER_JUSTIFY_TOP)
262*facb16e7SArmin Le Grand             meVerAlignState = SVX_VER_JUSTIFY_TOP;
263*facb16e7SArmin Le Grand         else
264*facb16e7SArmin Le Grand             meVerAlignState = SVX_VER_JUSTIFY_STANDARD;
265*facb16e7SArmin Le Grand     }
266*facb16e7SArmin Le Grand     else if( nId == IID_VERT_CENTER )
267*facb16e7SArmin Le Grand     {
268*facb16e7SArmin Le Grand         if(meVerAlignState != SVX_VER_JUSTIFY_CENTER)
269*facb16e7SArmin Le Grand             meVerAlignState = SVX_VER_JUSTIFY_CENTER;
270*facb16e7SArmin Le Grand         else
271*facb16e7SArmin Le Grand             meVerAlignState = SVX_VER_JUSTIFY_STANDARD;
272*facb16e7SArmin Le Grand     }
273*facb16e7SArmin Le Grand     else if( nId == IID_VERT_BOTTOM )
274*facb16e7SArmin Le Grand     {
275*facb16e7SArmin Le Grand         if(meVerAlignState != SVX_VER_JUSTIFY_BOTTOM)
276*facb16e7SArmin Le Grand             meVerAlignState = SVX_VER_JUSTIFY_BOTTOM;
277*facb16e7SArmin Le Grand         else
278*facb16e7SArmin Le Grand             meVerAlignState = SVX_VER_JUSTIFY_STANDARD;
279*facb16e7SArmin Le Grand     }
280*facb16e7SArmin Le Grand     SvxVerJustifyItem aVerItem(meVerAlignState, SID_V_ALIGNCELL);
281*facb16e7SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_V_ALIGNCELL, SFX_CALLMODE_RECORD, &aVerItem, 0L);
282*facb16e7SArmin Le Grand     UpdateVerAlign();
283*facb16e7SArmin Le Grand     return 0;
284*facb16e7SArmin Le Grand }
285*facb16e7SArmin Le Grand 
286*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
287*facb16e7SArmin Le Grand 
288*facb16e7SArmin Le Grand IMPL_LINK(AlignmentPropertyPanel, MFLeftIndentMdyHdl, void*, EMPTYARG)
289*facb16e7SArmin Le Grand {
290*facb16e7SArmin Le Grand     mpCBXWrapText->EnableTriState(false);
291*facb16e7SArmin Le Grand     sal_uInt16 nVal = (sal_uInt16)mpMFLeftIndent->GetValue();
292*facb16e7SArmin Le Grand     SfxUInt16Item aItem( SID_ATTR_ALIGN_INDENT,  (sal_uInt16)CalcToUnit( nVal,  SFX_MAPUNIT_TWIP ) );
293*facb16e7SArmin Le Grand 
294*facb16e7SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_ALIGN_INDENT, SFX_CALLMODE_RECORD, &aItem, 0L);
295*facb16e7SArmin Le Grand     return( 0L );
296*facb16e7SArmin Le Grand }
297*facb16e7SArmin Le Grand 
298*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
299*facb16e7SArmin Le Grand 
300*facb16e7SArmin Le Grand IMPL_LINK(AlignmentPropertyPanel, CBOXMergnCellClkHdl, void*, EMPTYARG)
301*facb16e7SArmin Le Grand {
302*facb16e7SArmin Le Grand     bool bState = mpCBXMergeCell->IsChecked();
303*facb16e7SArmin Le Grand 
304*facb16e7SArmin Le Grand     //Modified
305*facb16e7SArmin Le Grand     //SfxBoolItem aItem( FID_MERGE_TOGGLE , bState);
306*facb16e7SArmin Le Grand     //GetBindings()->GetDispatcher()->Execute(FID_MERGE_TOGGLE, SFX_CALLMODE_RECORD, &aItem, false, 0L);
307*facb16e7SArmin Le Grand     if(bState)
308*facb16e7SArmin Le Grand         GetBindings()->GetDispatcher()->Execute(FID_MERGE_ON, SFX_CALLMODE_RECORD);
309*facb16e7SArmin Le Grand     else
310*facb16e7SArmin Le Grand         GetBindings()->GetDispatcher()->Execute(FID_MERGE_OFF, SFX_CALLMODE_RECORD);
311*facb16e7SArmin Le Grand     GetBindings()->Invalidate(FID_MERGE_TOGGLE,true,false);
312*facb16e7SArmin Le Grand     //modified end
313*facb16e7SArmin Le Grand 
314*facb16e7SArmin Le Grand     return 0;
315*facb16e7SArmin Le Grand }
316*facb16e7SArmin Le Grand 
317*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
318*facb16e7SArmin Le Grand 
319*facb16e7SArmin Le Grand IMPL_LINK(AlignmentPropertyPanel, CBOXWrapTextClkHdl, void*, EMPTYARG)
320*facb16e7SArmin Le Grand {
321*facb16e7SArmin Le Grand     bool bState = mpCBXWrapText->IsChecked();
322*facb16e7SArmin Le Grand     SfxBoolItem aItem( SID_ATTR_ALIGN_LINEBREAK , bState);
323*facb16e7SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_ALIGN_LINEBREAK, SFX_CALLMODE_RECORD, &aItem, 0L);
324*facb16e7SArmin Le Grand     return 0;
325*facb16e7SArmin Le Grand }
326*facb16e7SArmin Le Grand 
327*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
328*facb16e7SArmin Le Grand 
329*facb16e7SArmin Le Grand AlignmentPropertyPanel* AlignmentPropertyPanel::Create (
330*facb16e7SArmin Le Grand     Window* pParent,
331*facb16e7SArmin Le Grand     const cssu::Reference<css::frame::XFrame>& rxFrame,
332*facb16e7SArmin Le Grand     SfxBindings* pBindings)
333*facb16e7SArmin Le Grand {
334*facb16e7SArmin Le Grand     if (pParent == NULL)
335*facb16e7SArmin Le Grand         throw lang::IllegalArgumentException(A2S("no parent Window given to AlignmentPropertyPanel::Create"), NULL, 0);
336*facb16e7SArmin Le Grand     if ( ! rxFrame.is())
337*facb16e7SArmin Le Grand         throw lang::IllegalArgumentException(A2S("no XFrame given to AlignmentPropertyPanel::Create"), NULL, 1);
338*facb16e7SArmin Le Grand     if (pBindings == NULL)
339*facb16e7SArmin Le Grand         throw lang::IllegalArgumentException(A2S("no SfxBindings given to AlignmentPropertyPanel::Create"), NULL, 2);
340*facb16e7SArmin Le Grand 
341*facb16e7SArmin Le Grand     return new AlignmentPropertyPanel(
342*facb16e7SArmin Le Grand         pParent,
343*facb16e7SArmin Le Grand         rxFrame,
344*facb16e7SArmin Le Grand         pBindings);
345*facb16e7SArmin Le Grand }
346*facb16e7SArmin Le Grand 
347*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
348*facb16e7SArmin Le Grand 
349*facb16e7SArmin Le Grand void AlignmentPropertyPanel::DataChanged(
350*facb16e7SArmin Le Grand     const DataChangedEvent& rEvent)
351*facb16e7SArmin Le Grand {
352*facb16e7SArmin Le Grand     (void)rEvent;
353*facb16e7SArmin Le Grand }
354*facb16e7SArmin Le Grand 
355*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
356*facb16e7SArmin Le Grand 
357*facb16e7SArmin Le Grand void AlignmentPropertyPanel::HandleContextChange(
358*facb16e7SArmin Le Grand     const ::sfx2::sidebar::EnumContext aContext)
359*facb16e7SArmin Le Grand {
360*facb16e7SArmin Le Grand     if(maContext == aContext)
361*facb16e7SArmin Le Grand     {
362*facb16e7SArmin Le Grand         // Nothing to do.
363*facb16e7SArmin Le Grand         return;
364*facb16e7SArmin Le Grand     }
365*facb16e7SArmin Le Grand 
366*facb16e7SArmin Le Grand     maContext = aContext;
367*facb16e7SArmin Le Grand 
368*facb16e7SArmin Le Grand 
369*facb16e7SArmin Le Grand 
370*facb16e7SArmin Le Grand     // todo
371*facb16e7SArmin Le Grand }
372*facb16e7SArmin Le Grand 
373*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
374*facb16e7SArmin Le Grand 
375*facb16e7SArmin Le Grand void AlignmentPropertyPanel::NotifyItemUpdate(
376*facb16e7SArmin Le Grand     sal_uInt16 nSID,
377*facb16e7SArmin Le Grand     SfxItemState eState,
378*facb16e7SArmin Le Grand     const SfxPoolItem* pState)
379*facb16e7SArmin Le Grand {
380*facb16e7SArmin Le Grand     switch(nSID)
381*facb16e7SArmin Le Grand     {
382*facb16e7SArmin Le Grand     case SID_H_ALIGNCELL:
383*facb16e7SArmin Le Grand         if(eState >= SFX_ITEM_DEFAULT && pState && pState->ISA(SvxHorJustifyItem) )
384*facb16e7SArmin Le Grand         {
385*facb16e7SArmin Le Grand                 const SvxHorJustifyItem* pItem = (const SvxHorJustifyItem*)pState;
386*facb16e7SArmin Le Grand                 meHorAlignState = (SvxCellHorJustify)pItem->GetValue();
387*facb16e7SArmin Le Grand         }
388*facb16e7SArmin Le Grand         else
389*facb16e7SArmin Le Grand         {
390*facb16e7SArmin Le Grand             meHorAlignState = SVX_HOR_JUSTIFY_STANDARD;
391*facb16e7SArmin Le Grand         }
392*facb16e7SArmin Le Grand         UpdateHorAlign();
393*facb16e7SArmin Le Grand         break;
394*facb16e7SArmin Le Grand     case SID_V_ALIGNCELL:
395*facb16e7SArmin Le Grand         if(eState >= SFX_ITEM_DEFAULT && pState && pState->ISA(SvxVerJustifyItem) )
396*facb16e7SArmin Le Grand         {
397*facb16e7SArmin Le Grand                 const SvxVerJustifyItem* pItem = (const SvxVerJustifyItem*)pState;
398*facb16e7SArmin Le Grand                 meVerAlignState = (SvxCellVerJustify)pItem->GetValue();
399*facb16e7SArmin Le Grand         }
400*facb16e7SArmin Le Grand         else
401*facb16e7SArmin Le Grand         {
402*facb16e7SArmin Le Grand             meVerAlignState = SVX_VER_JUSTIFY_STANDARD;
403*facb16e7SArmin Le Grand         }
404*facb16e7SArmin Le Grand         UpdateVerAlign();
405*facb16e7SArmin Le Grand         break;
406*facb16e7SArmin Le Grand     case SID_ATTR_ALIGN_INDENT:
407*facb16e7SArmin Le Grand         if(eState >= SFX_ITEM_DEFAULT && pState && pState->ISA(SfxUInt16Item) )
408*facb16e7SArmin Le Grand         {
409*facb16e7SArmin Le Grand                 const SfxUInt16Item* pItem = (const SfxUInt16Item*)pState;
410*facb16e7SArmin Le Grand                 sal_uInt16 nVal = pItem->GetValue();
411*facb16e7SArmin Le Grand                 mpMFLeftIndent->SetValue( CalcToPoint(nVal, SFX_MAPUNIT_TWIP, 1) );
412*facb16e7SArmin Le Grand         }
413*facb16e7SArmin Le Grand         else
414*facb16e7SArmin Le Grand         {
415*facb16e7SArmin Le Grand             mpMFLeftIndent->SetValue(0);
416*facb16e7SArmin Le Grand             mpMFLeftIndent->SetText(String());
417*facb16e7SArmin Le Grand         }
418*facb16e7SArmin Le Grand         break;
419*facb16e7SArmin Le Grand     case FID_MERGE_TOGGLE:
420*facb16e7SArmin Le Grand         if(eState >= SFX_ITEM_DEFAULT && pState && pState->ISA(SfxBoolItem) )
421*facb16e7SArmin Le Grand         {
422*facb16e7SArmin Le Grand             mpCBXMergeCell->Enable();
423*facb16e7SArmin Le Grand             const SfxBoolItem* pItem = (const SfxBoolItem*)pState;
424*facb16e7SArmin Le Grand             bool bVal = pItem->GetValue();
425*facb16e7SArmin Le Grand             if(bVal)
426*facb16e7SArmin Le Grand                 mpCBXMergeCell->Check(true);
427*facb16e7SArmin Le Grand             else
428*facb16e7SArmin Le Grand                 mpCBXMergeCell->Check(false);
429*facb16e7SArmin Le Grand         }
430*facb16e7SArmin Le Grand         else
431*facb16e7SArmin Le Grand         {
432*facb16e7SArmin Le Grand             mpCBXMergeCell->Check(false);
433*facb16e7SArmin Le Grand             mpCBXMergeCell->Disable();
434*facb16e7SArmin Le Grand         }
435*facb16e7SArmin Le Grand         break;
436*facb16e7SArmin Le Grand 
437*facb16e7SArmin Le Grand     case SID_ATTR_ALIGN_LINEBREAK:
438*facb16e7SArmin Le Grand         if(eState == SFX_ITEM_DISABLED)
439*facb16e7SArmin Le Grand         {
440*facb16e7SArmin Le Grand             mpCBXWrapText->EnableTriState(false);
441*facb16e7SArmin Le Grand             mpCBXWrapText->Check(false);
442*facb16e7SArmin Le Grand             mpCBXWrapText->Disable();
443*facb16e7SArmin Le Grand         }
444*facb16e7SArmin Le Grand         else
445*facb16e7SArmin Le Grand         {
446*facb16e7SArmin Le Grand             mpCBXWrapText->Enable();
447*facb16e7SArmin Le Grand             if(eState >= SFX_ITEM_DEFAULT && pState && pState->ISA(SfxBoolItem) )
448*facb16e7SArmin Le Grand             {
449*facb16e7SArmin Le Grand                 mpCBXWrapText->EnableTriState(false);
450*facb16e7SArmin Le Grand                 const SfxBoolItem* pItem = (const SfxBoolItem*)pState;
451*facb16e7SArmin Le Grand                 bool bVal = pItem->GetValue();
452*facb16e7SArmin Le Grand                 if(bVal)
453*facb16e7SArmin Le Grand                     mpCBXWrapText->Check(true);
454*facb16e7SArmin Le Grand                 else
455*facb16e7SArmin Le Grand                     mpCBXWrapText->Check(false);
456*facb16e7SArmin Le Grand             }
457*facb16e7SArmin Le Grand             else if(eState == SFX_ITEM_DONTCARE)
458*facb16e7SArmin Le Grand             {
459*facb16e7SArmin Le Grand                 mpCBXWrapText->EnableTriState(true);
460*facb16e7SArmin Le Grand                 mpCBXWrapText->SetState(STATE_DONTKNOW);
461*facb16e7SArmin Le Grand             }
462*facb16e7SArmin Le Grand         }
463*facb16e7SArmin Le Grand         break;
464*facb16e7SArmin Le Grand     case SID_ATTR_ALIGN_DEGREES:
465*facb16e7SArmin Le Grand         if (eState >= SFX_ITEM_AVAILABLE)
466*facb16e7SArmin Le Grand         {
467*facb16e7SArmin Le Grand             long nTmp = ((const SfxInt32Item*)pState)->GetValue();
468*facb16e7SArmin Le Grand             mpMtrAngle->SetValue( nTmp / 100);  //wj
469*facb16e7SArmin Le Grand             mpCtrlDial->SetRotation( nTmp );
470*facb16e7SArmin Le Grand             switch(nTmp)
471*facb16e7SArmin Le Grand             {
472*facb16e7SArmin Le Grand                 case 0:
473*facb16e7SArmin Le Grand                     mpMtrAngle->SelectEntryPos(0);
474*facb16e7SArmin Le Grand                 break;
475*facb16e7SArmin Le Grand                 case 4500:
476*facb16e7SArmin Le Grand                     mpMtrAngle->SelectEntryPos(1);
477*facb16e7SArmin Le Grand                 break;
478*facb16e7SArmin Le Grand                 case 9000:
479*facb16e7SArmin Le Grand                     mpMtrAngle->SelectEntryPos(2);
480*facb16e7SArmin Le Grand                 break;
481*facb16e7SArmin Le Grand                 case 13500:
482*facb16e7SArmin Le Grand                     mpMtrAngle->SelectEntryPos(3);
483*facb16e7SArmin Le Grand                 break;
484*facb16e7SArmin Le Grand                 case 18000:
485*facb16e7SArmin Le Grand                     mpMtrAngle->SelectEntryPos(4);
486*facb16e7SArmin Le Grand                 break;
487*facb16e7SArmin Le Grand                 case 22500:
488*facb16e7SArmin Le Grand                     mpMtrAngle->SelectEntryPos(5);
489*facb16e7SArmin Le Grand                 break;
490*facb16e7SArmin Le Grand                 case 27000:
491*facb16e7SArmin Le Grand                     mpMtrAngle->SelectEntryPos(6);
492*facb16e7SArmin Le Grand                 break;
493*facb16e7SArmin Le Grand                 case 31500:
494*facb16e7SArmin Le Grand                     mpMtrAngle->SelectEntryPos(7);
495*facb16e7SArmin Le Grand             }
496*facb16e7SArmin Le Grand         }
497*facb16e7SArmin Le Grand         else
498*facb16e7SArmin Le Grand         {
499*facb16e7SArmin Le Grand             mpMtrAngle->SetText( String() );
500*facb16e7SArmin Le Grand             mpCtrlDial->SetRotation( 0 );
501*facb16e7SArmin Le Grand         }
502*facb16e7SArmin Le Grand         break;
503*facb16e7SArmin Le Grand     case SID_ATTR_ALIGN_STACKED:
504*facb16e7SArmin Le Grand         if (eState >= SFX_ITEM_AVAILABLE)
505*facb16e7SArmin Le Grand         {
506*facb16e7SArmin Le Grand             mpCbStacked->EnableTriState(false);
507*facb16e7SArmin Le Grand             const SfxBoolItem* aStackItem = (const SfxBoolItem*)pState;
508*facb16e7SArmin Le Grand             bool IsChecked = (bool)aStackItem->GetValue();
509*facb16e7SArmin Le Grand             if(IsChecked)
510*facb16e7SArmin Le Grand             {
511*facb16e7SArmin Le Grand                 mpCbStacked->Check(IsChecked);
512*facb16e7SArmin Le Grand                 mpFtRotate->Disable();
513*facb16e7SArmin Le Grand                 mpMtrAngle->Disable();
514*facb16e7SArmin Le Grand                 mpCtrlDial->Disable();
515*facb16e7SArmin Le Grand                 mbMultiDisable = true;
516*facb16e7SArmin Le Grand             }
517*facb16e7SArmin Le Grand             else
518*facb16e7SArmin Le Grand             {
519*facb16e7SArmin Le Grand                 mpCbStacked->Check(IsChecked);
520*facb16e7SArmin Le Grand                 mpFtRotate->Enable();
521*facb16e7SArmin Le Grand                 mpMtrAngle->Enable();
522*facb16e7SArmin Le Grand                 mpCtrlDial->Enable();
523*facb16e7SArmin Le Grand                 mbMultiDisable = false;
524*facb16e7SArmin Le Grand             }
525*facb16e7SArmin Le Grand         }
526*facb16e7SArmin Le Grand         else
527*facb16e7SArmin Le Grand         {
528*facb16e7SArmin Le Grand             mbMultiDisable = true;
529*facb16e7SArmin Le Grand             mpFtRotate->Disable();
530*facb16e7SArmin Le Grand             mpMtrAngle->Disable();
531*facb16e7SArmin Le Grand             mpCtrlDial->Disable();
532*facb16e7SArmin Le Grand             mpCbStacked->EnableTriState(true);
533*facb16e7SArmin Le Grand             mpCbStacked->SetState(STATE_DONTKNOW);
534*facb16e7SArmin Le Grand         }
535*facb16e7SArmin Le Grand     }
536*facb16e7SArmin Le Grand }
537*facb16e7SArmin Le Grand 
538*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
539*facb16e7SArmin Le Grand 
540*facb16e7SArmin Le Grand SfxBindings* AlignmentPropertyPanel::GetBindings()
541*facb16e7SArmin Le Grand {
542*facb16e7SArmin Le Grand     return mpBindings;
543*facb16e7SArmin Le Grand }
544*facb16e7SArmin Le Grand 
545*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
546*facb16e7SArmin Le Grand 
547*facb16e7SArmin Le Grand void AlignmentPropertyPanel::FormatDegrees(double& dTmp)
548*facb16e7SArmin Le Grand {
549*facb16e7SArmin Le Grand     while(dTmp<0)
550*facb16e7SArmin Le Grand         dTmp += 360;
551*facb16e7SArmin Le Grand     while (dTmp > 359)  //modify
552*facb16e7SArmin Le Grand         dTmp = 359;
553*facb16e7SArmin Le Grand }
554*facb16e7SArmin Le Grand 
555*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
556*facb16e7SArmin Le Grand 
557*facb16e7SArmin Le Grand void AlignmentPropertyPanel::UpdateHorAlign()
558*facb16e7SArmin Le Grand {
559*facb16e7SArmin Le Grand     mpTBHorizontal->SetItemState(ID_SUBSTLEFT,  STATE_NOCHECK);
560*facb16e7SArmin Le Grand     mpTBHorizontal->SetItemState(ID_SUBSTCENTER,    STATE_NOCHECK);
561*facb16e7SArmin Le Grand     mpTBHorizontal->SetItemState(ID_SUBSTRIGHT, STATE_NOCHECK);
562*facb16e7SArmin Le Grand     mpTBHorizontal->SetItemState(ID_SUBSTJUSTIFY,STATE_NOCHECK);
563*facb16e7SArmin Le Grand     mpFTLeftIndent->Disable();
564*facb16e7SArmin Le Grand     mpMFLeftIndent->Disable();
565*facb16e7SArmin Le Grand     if(meHorAlignState==SVX_HOR_JUSTIFY_REPEAT)
566*facb16e7SArmin Le Grand     {
567*facb16e7SArmin Le Grand         mpFtRotate->Disable();
568*facb16e7SArmin Le Grand         mpCtrlDial->Disable();
569*facb16e7SArmin Le Grand         mpMtrAngle->Disable();
570*facb16e7SArmin Le Grand         mpCbStacked->Disable();
571*facb16e7SArmin Le Grand     }
572*facb16e7SArmin Le Grand     else
573*facb16e7SArmin Le Grand     {
574*facb16e7SArmin Le Grand         if(!mbMultiDisable)
575*facb16e7SArmin Le Grand         {
576*facb16e7SArmin Le Grand             mpFtRotate->Enable();
577*facb16e7SArmin Le Grand             mpCtrlDial->Enable();
578*facb16e7SArmin Le Grand             mpMtrAngle->Enable();
579*facb16e7SArmin Le Grand         }
580*facb16e7SArmin Le Grand         else
581*facb16e7SArmin Le Grand         {
582*facb16e7SArmin Le Grand             mpFtRotate->Disable();
583*facb16e7SArmin Le Grand             mpCtrlDial->Disable();
584*facb16e7SArmin Le Grand             mpMtrAngle->Disable();
585*facb16e7SArmin Le Grand         }
586*facb16e7SArmin Le Grand         mpCbStacked->Enable();
587*facb16e7SArmin Le Grand     }
588*facb16e7SArmin Le Grand     switch(meHorAlignState)
589*facb16e7SArmin Le Grand     {
590*facb16e7SArmin Le Grand     case SVX_HOR_JUSTIFY_LEFT:
591*facb16e7SArmin Le Grand         mpTBHorizontal->SetItemState(ID_SUBSTLEFT,  STATE_CHECK);
592*facb16e7SArmin Le Grand         mpFTLeftIndent->Enable();
593*facb16e7SArmin Le Grand         mpMFLeftIndent->Enable();
594*facb16e7SArmin Le Grand         break;
595*facb16e7SArmin Le Grand     case SVX_HOR_JUSTIFY_CENTER:mpTBHorizontal->SetItemState(ID_SUBSTCENTER,    STATE_CHECK);break;
596*facb16e7SArmin Le Grand     case SVX_HOR_JUSTIFY_RIGHT: mpTBHorizontal->SetItemState(ID_SUBSTRIGHT, STATE_CHECK);break;
597*facb16e7SArmin Le Grand     case SVX_HOR_JUSTIFY_BLOCK: mpTBHorizontal->SetItemState(ID_SUBSTJUSTIFY,STATE_CHECK);break;
598*facb16e7SArmin Le Grand     default:;
599*facb16e7SArmin Le Grand     }
600*facb16e7SArmin Le Grand }
601*facb16e7SArmin Le Grand 
602*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
603*facb16e7SArmin Le Grand 
604*facb16e7SArmin Le Grand void AlignmentPropertyPanel::UpdateVerAlign()
605*facb16e7SArmin Le Grand {
606*facb16e7SArmin Le Grand     mpTBVertical->SetItemState(IID_VERT_TOP,        STATE_NOCHECK);
607*facb16e7SArmin Le Grand     mpTBVertical->SetItemState(IID_VERT_CENTER, STATE_NOCHECK);
608*facb16e7SArmin Le Grand     mpTBVertical->SetItemState(IID_VERT_BOTTOM, STATE_NOCHECK);
609*facb16e7SArmin Le Grand 
610*facb16e7SArmin Le Grand     switch(meVerAlignState)
611*facb16e7SArmin Le Grand     {
612*facb16e7SArmin Le Grand     case SVX_VER_JUSTIFY_TOP:   mpTBVertical->SetItemState(IID_VERT_TOP,        STATE_CHECK);break;
613*facb16e7SArmin Le Grand     case SVX_VER_JUSTIFY_CENTER:mpTBVertical->SetItemState(IID_VERT_CENTER, STATE_CHECK);break;
614*facb16e7SArmin Le Grand     case SVX_VER_JUSTIFY_BOTTOM:    mpTBVertical->SetItemState(IID_VERT_BOTTOM, STATE_CHECK);break;
615*facb16e7SArmin Le Grand     default:;
616*facb16e7SArmin Le Grand     }
617*facb16e7SArmin Le Grand }
618*facb16e7SArmin Le Grand 
619*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
620*facb16e7SArmin Le Grand // namespace close
621*facb16e7SArmin Le Grand 
622*facb16e7SArmin Le Grand }} // end of namespace ::sc::sidebar
623*facb16e7SArmin Le Grand 
624*facb16e7SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
625*facb16e7SArmin Le Grand // eof
626