1*766ce4d0SZheng Fan /**************************************************************
2*766ce4d0SZheng Fan  *
3*766ce4d0SZheng Fan  * Licensed to the Apache Software Foundation (ASF) under one
4*766ce4d0SZheng Fan  * or more contributor license agreements.  See the NOTICE file
5*766ce4d0SZheng Fan  * distributed with this work for additional information
6*766ce4d0SZheng Fan  * regarding copyright ownership.  The ASF licenses this file
7*766ce4d0SZheng Fan  * to you under the Apache License, Version 2.0 (the
8*766ce4d0SZheng Fan  * "License"); you may not use this file except in compliance
9*766ce4d0SZheng Fan  * with the License.  You may obtain a copy of the License at
10*766ce4d0SZheng Fan  *
11*766ce4d0SZheng Fan  *   http://www.apache.org/licenses/LICENSE-2.0
12*766ce4d0SZheng Fan  *
13*766ce4d0SZheng Fan  * Unless required by applicable law or agreed to in writing,
14*766ce4d0SZheng Fan  * software distributed under the License is distributed on an
15*766ce4d0SZheng Fan  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*766ce4d0SZheng Fan  * KIND, either express or implied.  See the License for the
17*766ce4d0SZheng Fan  * specific language governing permissions and limitations
18*766ce4d0SZheng Fan  * under the License.
19*766ce4d0SZheng Fan  *
20*766ce4d0SZheng Fan  *************************************************************/
21*766ce4d0SZheng Fan 
22*766ce4d0SZheng Fan #include "precompiled_svx.hxx"
23*766ce4d0SZheng Fan #include <svx/sidebar/ColorControl.hxx>
24*766ce4d0SZheng Fan 
25*766ce4d0SZheng Fan #include "ParaPropertyPanel.hxx"
26*766ce4d0SZheng Fan #include "ParaPropertyPanel.hrc"
27*766ce4d0SZheng Fan 
28*766ce4d0SZheng Fan #include "ParaLineSpacingPopup.hxx"
29*766ce4d0SZheng Fan #include "ParaLineSpacingControl.hxx"
30*766ce4d0SZheng Fan #include "ParaBulletsPopup.hxx"
31*766ce4d0SZheng Fan #include "ParaBulletsControl.hxx"
32*766ce4d0SZheng Fan #include "ParaNumberingPopup.hxx"
33*766ce4d0SZheng Fan #include "ParaNumberingControl.hxx"
34*766ce4d0SZheng Fan #include <sfx2/sidebar/Theme.hxx>
35*766ce4d0SZheng Fan #include <sfx2/sidebar/propertypanel.hrc>
36*766ce4d0SZheng Fan #include <sfx2/sidebar/ControlFactory.hxx>
37*766ce4d0SZheng Fan #include <svx/sidebar/PopupContainer.hxx>
38*766ce4d0SZheng Fan #include <sfx2/dispatch.hxx>
39*766ce4d0SZheng Fan #include <editeng/colritem.hxx>
40*766ce4d0SZheng Fan #include <editeng/brshitem.hxx>
41*766ce4d0SZheng Fan #include <editeng/lrspitem.hxx>
42*766ce4d0SZheng Fan #include <editeng/ulspitem.hxx>
43*766ce4d0SZheng Fan #include <vcl/toolbox.hxx>
44*766ce4d0SZheng Fan #include <vcl/fixed.hxx>
45*766ce4d0SZheng Fan #include <vcl/svapp.hxx>
46*766ce4d0SZheng Fan #include <svx/svxids.hrc>
47*766ce4d0SZheng Fan #include <svl/intitem.hxx>
48*766ce4d0SZheng Fan #include "svx/dialmgr.hxx"
49*766ce4d0SZheng Fan #include <sfx2/objsh.hxx>
50*766ce4d0SZheng Fan #include <svtools/unitconv.hxx>
51*766ce4d0SZheng Fan #include <boost/bind.hpp>
52*766ce4d0SZheng Fan using namespace css;
53*766ce4d0SZheng Fan using namespace cssu;
54*766ce4d0SZheng Fan using ::sfx2::sidebar::Theme;
55*766ce4d0SZheng Fan using ::sfx2::sidebar::ControlFactory;
56*766ce4d0SZheng Fan 
57*766ce4d0SZheng Fan #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
58*766ce4d0SZheng Fan 
59*766ce4d0SZheng Fan 
60*766ce4d0SZheng Fan namespace svx {namespace sidebar {
61*766ce4d0SZheng Fan #define DEFAULT_VALUE          0
62*766ce4d0SZheng Fan #define TOOLBOX_ITEM1          1
63*766ce4d0SZheng Fan #define TOOLBOX_ITEM2          2
64*766ce4d0SZheng Fan #define TOOLBOX_ITEM3          3
65*766ce4d0SZheng Fan #define TOOLBOX_ITEM4          4
66*766ce4d0SZheng Fan 
67*766ce4d0SZheng Fan #define MAX_DURCH             5670
68*766ce4d0SZheng Fan 
69*766ce4d0SZheng Fan #define INDENT_INCREMENT       1
70*766ce4d0SZheng Fan #define INDENT_DECREMENT       2
71*766ce4d0SZheng Fan #define INDENT_STEP            706
72*766ce4d0SZheng Fan #define UL_STEP                58
73*766ce4d0SZheng Fan #define UL_INCREMENT           1
74*766ce4d0SZheng Fan #define UL_DECREMENT           2
75*766ce4d0SZheng Fan 
76*766ce4d0SZheng Fan #define NEGATIVE_MAX_VALUE              -9999
77*766ce4d0SZheng Fan #define BEGIN_VALUE            28
78*766ce4d0SZheng Fan #define MAX_SW                  1709400
79*766ce4d0SZheng Fan #define MAX_SC_SD				116220200
80*766ce4d0SZheng Fan #define NEGA_MAXVALUE          -10000000
81*766ce4d0SZheng Fan 
82*766ce4d0SZheng Fan #define POS_FT_PARA_SPACE								Point(LogicToPixel(Point(FT_PARA_SPACE_X,FT_PARA_SPACE_Y), MAP_APPFONT))
83*766ce4d0SZheng Fan #define POS_FT_PARA_SPACE2								Point(LogicToPixel(Point(FT_PARA_SPACE_X,FT_PARA_SPACE_Y2), MAP_APPFONT))
84*766ce4d0SZheng Fan #define POS_TBX_PARA_SPACE_INC_DEC						Point(LogicToPixel(Point(TBX_PARA_SPACE_INC_DEC_X,TBX_PARA_SPACE_INC_DEC_Y), MAP_APPFONT))
85*766ce4d0SZheng Fan #define POS_TBX_PARA_SPACE_INC_DEC2						Point(LogicToPixel(Point(TBX_PARA_SPACE_INC_DEC_X,TBX_PARA_SPACE_INC_DEC_Y2), MAP_APPFONT))
86*766ce4d0SZheng Fan #define POS_FT_PARA_INDENT								Point(LogicToPixel(Point(FT_PARA_INDENT_X,FT_PARA_INDENT_Y), MAP_APPFONT))
87*766ce4d0SZheng Fan #define POS_FT_PARA_INDENT2								Point(LogicToPixel(Point(FT_PARA_INDENT_X,FT_PARA_INDENT_Y2), MAP_APPFONT))
88*766ce4d0SZheng Fan #define POS_TBX_PARA_INDENT_INC_DEC						Point(LogicToPixel(Point(TBX_PARA_INDENT_INC_DEC_X,TBX_PARA_INDENT_INC_DEC_Y), MAP_APPFONT))
89*766ce4d0SZheng Fan #define POS_TBX_PARA_INDENT_INC_DEC2					Point(LogicToPixel(Point(TBX_PARA_INDENT_INC_DEC_X,TBX_PARA_INDENT_INC_DEC_Y2), MAP_APPFONT))
90*766ce4d0SZheng Fan #define POS_MBX_TOP_DIST								Point(LogicToPixel(Point(MBX_TOP_DIST_X,MBX_TOP_DIST_Y), MAP_APPFONT))
91*766ce4d0SZheng Fan #define POS_MBX_TOP_DIST2								Point(LogicToPixel(Point(MBX_TOP_DIST_X,MBX_TOP_DIST_Y2), MAP_APPFONT))
92*766ce4d0SZheng Fan #define POS_MBX_BOT_DIST								Point(LogicToPixel(Point(MBX_BOT_DIST_X,MBX_BOT_DIST_Y), MAP_APPFONT))
93*766ce4d0SZheng Fan #define POS_MBX_BOT_DIST2								Point(LogicToPixel(Point(MBX_BOT_DIST_X,MBX_BOT_DIST_Y2), MAP_APPFONT))
94*766ce4d0SZheng Fan #define POS_MBX_LEFT_DIST								Point(LogicToPixel(Point(MBX_LEFT_DIST_X,MBX_LEFT_DIST_Y), MAP_APPFONT))
95*766ce4d0SZheng Fan #define POS_MBX_LEFT_DIST2								Point(LogicToPixel(Point(MBX_LEFT_DIST_X,MBX_LEFT_DIST_Y2), MAP_APPFONT))
96*766ce4d0SZheng Fan #define POS_MBX_RIGHT_DIST								Point(LogicToPixel(Point(MBX_RIGHT_DIST_X,MBX_RIGHT_DIST_Y), MAP_APPFONT))
97*766ce4d0SZheng Fan #define POS_MBX_RIGHT_DIST2								Point(LogicToPixel(Point(MBX_RIGHT_DIST_X,MBX_RIGHT_DIST_Y2), MAP_APPFONT))
98*766ce4d0SZheng Fan #define POS_MBX_FLINE_DIST								Point(LogicToPixel(Point(MBX_FLINE_DIST_X,MBX_FLINE_DIST_Y), MAP_APPFONT))
99*766ce4d0SZheng Fan #define POS_MBX_FLINE_DIST2								Point(LogicToPixel(Point(MBX_FLINE_DIST_X,MBX_FLINE_DIST_Y2), MAP_APPFONT))
100*766ce4d0SZheng Fan #define POS_IMG_SPACE1									Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE1_Y), MAP_APPFONT))
101*766ce4d0SZheng Fan #define POS_IMG_SPACE12									Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE1_Y2), MAP_APPFONT))
102*766ce4d0SZheng Fan #define POS_IMG_SPACE2									Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE2_Y), MAP_APPFONT))
103*766ce4d0SZheng Fan #define POS_IMG_SPACE22									Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE2_Y2), MAP_APPFONT))
104*766ce4d0SZheng Fan #define POS_IMG_INDENT1									Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT1_Y), MAP_APPFONT))
105*766ce4d0SZheng Fan #define POS_IMG_INDENT12								Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT1_Y2), MAP_APPFONT))
106*766ce4d0SZheng Fan #define POS_IMG_INDENT2									Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT2_Y), MAP_APPFONT))
107*766ce4d0SZheng Fan #define POS_IMG_INDENT22								Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT2_Y2), MAP_APPFONT))
108*766ce4d0SZheng Fan #define POS_IMG_INDENT3									Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT3_Y), MAP_APPFONT))
109*766ce4d0SZheng Fan #define POS_IMG_INDENT32								Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT3_Y2), MAP_APPFONT))
110*766ce4d0SZheng Fan #define TBX_LINE_SPACE									Point(LogicToPixel(Point(TBX_LINE_SPACE_X,TBX_LINE_SPACE_Y), MAP_APPFONT))
111*766ce4d0SZheng Fan #define TBX_LINE_SPACE2									Point(LogicToPixel(Point(TBX_LINE_SPACE_X,TBX_LINE_SPACE_Y2), MAP_APPFONT))
112*766ce4d0SZheng Fan 
113*766ce4d0SZheng Fan #define LINE_POINT1_WHITE								Point(LogicToPixel(Point(LINE_X_WHITE,LINE_TOP_Y), MAP_APPFONT))
114*766ce4d0SZheng Fan #define LINE_POINT2_WHITE								Point(LogicToPixel(Point(LINE_X_WHITE,LINE_BOT_Y), MAP_APPFONT))
115*766ce4d0SZheng Fan #define LINE_POINT3_WHITE								Point(LogicToPixel(Point(LINE_X_WHITE,LINE_TOP_Y2), MAP_APPFONT))
116*766ce4d0SZheng Fan #define LINE_POINT4_WHITE								Point(LogicToPixel(Point(LINE_X_WHITE,LINE_BOT_Y2), MAP_APPFONT))
117*766ce4d0SZheng Fan 
118*766ce4d0SZheng Fan ParaPropertyPanel* ParaPropertyPanel::Create (
119*766ce4d0SZheng Fan     Window* pParent,
120*766ce4d0SZheng Fan     const cssu::Reference<css::frame::XFrame>& rxFrame,
121*766ce4d0SZheng Fan     SfxBindings* pBindings)
122*766ce4d0SZheng Fan {
123*766ce4d0SZheng Fan     if (pParent == NULL)
124*766ce4d0SZheng Fan         throw lang::IllegalArgumentException(A2S("no parent Window given to ParaPropertyPanel::Create"), NULL, 0);
125*766ce4d0SZheng Fan     if ( ! rxFrame.is())
126*766ce4d0SZheng Fan         throw lang::IllegalArgumentException(A2S("no XFrame given to ParaPropertyPanel::Create"), NULL, 1);
127*766ce4d0SZheng Fan     if (pBindings == NULL)
128*766ce4d0SZheng Fan         throw lang::IllegalArgumentException(A2S("no SfxBindings given to ParaPropertyPanel::Create"), NULL, 2);
129*766ce4d0SZheng Fan 
130*766ce4d0SZheng Fan     return new ParaPropertyPanel(
131*766ce4d0SZheng Fan         pParent,
132*766ce4d0SZheng Fan         rxFrame,
133*766ce4d0SZheng Fan         pBindings);
134*766ce4d0SZheng Fan }
135*766ce4d0SZheng Fan 
136*766ce4d0SZheng Fan void ParaPropertyPanel::HandleContextChange (
137*766ce4d0SZheng Fan     const ::sfx2::sidebar::EnumContext aContext)
138*766ce4d0SZheng Fan {
139*766ce4d0SZheng Fan     if (maContext == aContext)
140*766ce4d0SZheng Fan     {
141*766ce4d0SZheng Fan         // Nothing to do.
142*766ce4d0SZheng Fan         return;
143*766ce4d0SZheng Fan     }
144*766ce4d0SZheng Fan 
145*766ce4d0SZheng Fan     maContext = aContext;
146*766ce4d0SZheng Fan     switch (maContext.GetCombinedContext())
147*766ce4d0SZheng Fan     {
148*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Calc, Context_DrawText):
149*766ce4d0SZheng Fan 	{
150*766ce4d0SZheng Fan 		maTBxVertAlign->Show();
151*766ce4d0SZheng Fan 		maTBxVertAlignBackground->Show();
152*766ce4d0SZheng Fan 		maTBxBackColor->Hide();
153*766ce4d0SZheng Fan 		maTBxBackColorBackground->Hide();
154*766ce4d0SZheng Fan 		maTBxNumBullet->Hide();
155*766ce4d0SZheng Fan 		maTBxNumBulletBackground->Hide();
156*766ce4d0SZheng Fan 		ReSize(0);
157*766ce4d0SZheng Fan 		maTbxIndent_IncDec->Show();
158*766ce4d0SZheng Fan 		maTbxIndent_IncDecBackground->Show();
159*766ce4d0SZheng Fan 		maTbxProDemote->Hide();
160*766ce4d0SZheng Fan 		maTbxProDemoteBackground->Hide();
161*766ce4d0SZheng Fan 	}
162*766ce4d0SZheng Fan 	break;
163*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Draw, Context_Draw):
164*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Draw, Context_TextObject):
165*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Draw, Context_Graphic):
166*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Impress, Context_Draw):
167*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Impress, Context_TextObject):
168*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Impress, Context_Graphic):
169*766ce4d0SZheng Fan 	{
170*766ce4d0SZheng Fan 		maTBxVertAlign->Hide();
171*766ce4d0SZheng Fan 		maTBxVertAlignBackground->Hide();
172*766ce4d0SZheng Fan 		maTBxBackColor->Hide();
173*766ce4d0SZheng Fan 		maTBxBackColorBackground->Hide();
174*766ce4d0SZheng Fan 		maTBxNumBullet->Show();
175*766ce4d0SZheng Fan 		maTBxNumBulletBackground->Show();
176*766ce4d0SZheng Fan 		ReSize(1);
177*766ce4d0SZheng Fan 		maTbxIndent_IncDec->Hide();
178*766ce4d0SZheng Fan 		maTbxIndent_IncDecBackground->Hide();
179*766ce4d0SZheng Fan 		maTbxProDemote->Show();
180*766ce4d0SZheng Fan 		maTbxProDemoteBackground->Show();
181*766ce4d0SZheng Fan 	}
182*766ce4d0SZheng Fan 	break;
183*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Draw, Context_DrawText):
184*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Impress, Context_DrawText):
185*766ce4d0SZheng Fan 	{
186*766ce4d0SZheng Fan 		maTBxVertAlign->Show();
187*766ce4d0SZheng Fan 		maTBxVertAlignBackground->Show();
188*766ce4d0SZheng Fan 		maTBxBackColor->Hide();
189*766ce4d0SZheng Fan 		maTBxBackColorBackground->Hide();
190*766ce4d0SZheng Fan 		maTBxNumBullet->Show();
191*766ce4d0SZheng Fan 		maTBxNumBulletBackground->Show();
192*766ce4d0SZheng Fan 		ReSize(1);
193*766ce4d0SZheng Fan 		maTbxIndent_IncDec->Hide();
194*766ce4d0SZheng Fan 		maTbxIndent_IncDecBackground->Hide();
195*766ce4d0SZheng Fan 		maTbxProDemote->Show();
196*766ce4d0SZheng Fan 		maTbxProDemoteBackground->Show();
197*766ce4d0SZheng Fan 	}
198*766ce4d0SZheng Fan 	break;
199*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Impress, Context_Table):
200*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Draw, Context_Table):
201*766ce4d0SZheng Fan 	{
202*766ce4d0SZheng Fan 		maTBxVertAlign->Show();
203*766ce4d0SZheng Fan 		maTBxVertAlignBackground->Show();
204*766ce4d0SZheng Fan 		maTBxBackColor->Hide();
205*766ce4d0SZheng Fan 		maTBxBackColorBackground->Hide();
206*766ce4d0SZheng Fan 		maTBxNumBullet->Show();
207*766ce4d0SZheng Fan 		maTBxNumBulletBackground->Show();
208*766ce4d0SZheng Fan 		ReSize(1);
209*766ce4d0SZheng Fan 		maTbxIndent_IncDec->Hide();
210*766ce4d0SZheng Fan 		maTbxIndent_IncDecBackground->Hide();
211*766ce4d0SZheng Fan 		maTbxProDemote->Show();
212*766ce4d0SZheng Fan 		maTbxProDemoteBackground->Show();
213*766ce4d0SZheng Fan 	}
214*766ce4d0SZheng Fan 	break;
215*766ce4d0SZheng Fan 	case CombinedEnumContext(Application_Writer, Context_Default):
216*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Writer, Context_Text):
217*766ce4d0SZheng Fan 	{
218*766ce4d0SZheng Fan 		maTBxVertAlign->Hide();
219*766ce4d0SZheng Fan 		maTBxVertAlignBackground->Hide();
220*766ce4d0SZheng Fan 		maTBxBackColor->Show();
221*766ce4d0SZheng Fan 		maTBxBackColorBackground->Show();
222*766ce4d0SZheng Fan 		maTBxNumBullet->Show();
223*766ce4d0SZheng Fan 
224*766ce4d0SZheng Fan 		maTBxNumBulletBackground->Show();
225*766ce4d0SZheng Fan 		ReSize(1);
226*766ce4d0SZheng Fan 		maTbxIndent_IncDec->Show();
227*766ce4d0SZheng Fan 		maTbxIndent_IncDecBackground->Show();
228*766ce4d0SZheng Fan 		maTbxProDemote->Hide();
229*766ce4d0SZheng Fan 		maTbxProDemoteBackground->Hide();
230*766ce4d0SZheng Fan 	}
231*766ce4d0SZheng Fan 	break;
232*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Writer, Context_Table):
233*766ce4d0SZheng Fan         {
234*766ce4d0SZheng Fan 		maTBxVertAlign->Show();
235*766ce4d0SZheng Fan 		maTBxVertAlignBackground->Show();
236*766ce4d0SZheng Fan 		maTBxBackColor->Show();
237*766ce4d0SZheng Fan 		maTBxBackColorBackground->Show();
238*766ce4d0SZheng Fan 		maTBxNumBullet->Show();
239*766ce4d0SZheng Fan 		maTBxNumBulletBackground->Show();
240*766ce4d0SZheng Fan 		ReSize(1);
241*766ce4d0SZheng Fan 		maTbxIndent_IncDec->Show();
242*766ce4d0SZheng Fan 		maTbxIndent_IncDecBackground->Show();
243*766ce4d0SZheng Fan 		maTbxProDemote->Hide();
244*766ce4d0SZheng Fan 		maTbxProDemoteBackground->Hide();
245*766ce4d0SZheng Fan         }
246*766ce4d0SZheng Fan 	break;
247*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Writer, Context_DrawText):
248*766ce4d0SZheng Fan 	{
249*766ce4d0SZheng Fan 		maTBxVertAlign->Show();
250*766ce4d0SZheng Fan 		maTBxVertAlignBackground->Show();
251*766ce4d0SZheng Fan 		maTBxBackColor->Hide();
252*766ce4d0SZheng Fan 		maTBxBackColorBackground->Hide();
253*766ce4d0SZheng Fan 		maTBxNumBullet->Hide();
254*766ce4d0SZheng Fan 		maTBxNumBulletBackground->Hide();
255*766ce4d0SZheng Fan 		ReSize(0);
256*766ce4d0SZheng Fan 		maTbxIndent_IncDec->Show();
257*766ce4d0SZheng Fan 		maTbxIndent_IncDecBackground->Show();
258*766ce4d0SZheng Fan 		maTbxProDemote->Hide();
259*766ce4d0SZheng Fan 		maTbxProDemoteBackground->Hide();
260*766ce4d0SZheng Fan 	}
261*766ce4d0SZheng Fan 	break;
262*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Writer, Context_Annotation):
263*766ce4d0SZheng Fan         {
264*766ce4d0SZheng Fan 		maTBxVertAlign->Hide();
265*766ce4d0SZheng Fan 		maTBxVertAlignBackground->Hide();
266*766ce4d0SZheng Fan 		maTBxBackColor->Hide();
267*766ce4d0SZheng Fan 		maTBxBackColorBackground->Hide();
268*766ce4d0SZheng Fan 		maTBxNumBullet->Hide();
269*766ce4d0SZheng Fan 		maTBxNumBulletBackground->Hide();
270*766ce4d0SZheng Fan 		ReSize(0);
271*766ce4d0SZheng Fan 		maTbxIndent_IncDec->Show();
272*766ce4d0SZheng Fan 		maTbxIndent_IncDecBackground->Show();
273*766ce4d0SZheng Fan 		maTbxProDemote->Hide();
274*766ce4d0SZheng Fan 		maTbxProDemoteBackground->Hide();
275*766ce4d0SZheng Fan         }
276*766ce4d0SZheng Fan 	break;
277*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Calc, Context_EditCell):
278*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Draw, Context_Text):
279*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Draw, Context_OutlineText):
280*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Calc, Context_Cell):
281*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Calc, Context_Pivot):
282*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Impress, Context_Text):
283*766ce4d0SZheng Fan         case CombinedEnumContext(Application_Impress, Context_OutlineText):
284*766ce4d0SZheng Fan         /*{
285*766ce4d0SZheng Fan             mpToolBoxScriptSw->Hide();
286*766ce4d0SZheng Fan             mpToolBoxScript->Show();
287*766ce4d0SZheng Fan             mpToolBoxSpacing->Show();
288*766ce4d0SZheng Fan             mpToolBoxHighlight->Hide();
289*766ce4d0SZheng Fan 
290*766ce4d0SZheng Fan             Size aSize(PROPERTYPAGE_WIDTH,TEXT_SECTIONPAGE_HEIGHT);
291*766ce4d0SZheng Fan             aSize = LogicToPixel( aSize,MapMode(MAP_APPFONT) );
292*766ce4d0SZheng Fan             aSize.setWidth(GetOutputSizePixel().Width());
293*766ce4d0SZheng Fan             SetSizePixel(aSize);
294*766ce4d0SZheng Fan             break;
295*766ce4d0SZheng Fan         }*/
296*766ce4d0SZheng Fan 
297*766ce4d0SZheng Fan         default:
298*766ce4d0SZheng Fan             break;
299*766ce4d0SZheng Fan     }
300*766ce4d0SZheng Fan }
301*766ce4d0SZheng Fan 
302*766ce4d0SZheng Fan SfxBindings* ParaPropertyPanel::GetBindings()
303*766ce4d0SZheng Fan {
304*766ce4d0SZheng Fan     return mpBindings;
305*766ce4d0SZheng Fan }
306*766ce4d0SZheng Fan 
307*766ce4d0SZheng Fan void ParaPropertyPanel::SetupIcons (void)
308*766ce4d0SZheng Fan {
309*766ce4d0SZheng Fan     if (Theme::GetBoolean(Theme::Bool_UseSymphonyIcons))
310*766ce4d0SZheng Fan     {
311*766ce4d0SZheng Fan     }
312*766ce4d0SZheng Fan     else
313*766ce4d0SZheng Fan     {
314*766ce4d0SZheng Fan     }
315*766ce4d0SZheng Fan }
316*766ce4d0SZheng Fan 
317*766ce4d0SZheng Fan void ParaPropertyPanel::DataChanged (const DataChangedEvent& rEvent)
318*766ce4d0SZheng Fan {
319*766ce4d0SZheng Fan     (void)rEvent;
320*766ce4d0SZheng Fan 
321*766ce4d0SZheng Fan     SetupIcons();
322*766ce4d0SZheng Fan }
323*766ce4d0SZheng Fan 
324*766ce4d0SZheng Fan ParaPropertyPanel::~ParaPropertyPanel()
325*766ce4d0SZheng Fan {
326*766ce4d0SZheng Fan 	delete mpLnSPItem;
327*766ce4d0SZheng Fan }
328*766ce4d0SZheng Fan 
329*766ce4d0SZheng Fan void ParaPropertyPanel::ReSize(bool bSize)
330*766ce4d0SZheng Fan {
331*766ce4d0SZheng Fan 	if(bSize)
332*766ce4d0SZheng Fan 	{
333*766ce4d0SZheng Fan 		//Paragraph spacing
334*766ce4d0SZheng Fan 		maFTUL->SetPosPixel(POS_FT_PARA_SPACE);
335*766ce4d0SZheng Fan 		maTbxUL_IncDec->SetPosPixel(POS_TBX_PARA_SPACE_INC_DEC);
336*766ce4d0SZheng Fan 		maTopDist->SetPosPixel(POS_MBX_TOP_DIST);
337*766ce4d0SZheng Fan 		maBottomDist->SetPosPixel(POS_MBX_BOT_DIST);
338*766ce4d0SZheng Fan 		//Indent
339*766ce4d0SZheng Fan 		maFTIndent->SetPosPixel(POS_FT_PARA_INDENT);
340*766ce4d0SZheng Fan 		maTbxIndent_IncDec->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC);
341*766ce4d0SZheng Fan 		maTbxProDemote->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC);
342*766ce4d0SZheng Fan 		maLeftIndent->SetPosPixel(POS_MBX_LEFT_DIST);
343*766ce4d0SZheng Fan 		maRightIndent->SetPosPixel(POS_MBX_RIGHT_DIST);
344*766ce4d0SZheng Fan 		maFLineIndent->SetPosPixel(POS_MBX_FLINE_DIST);
345*766ce4d0SZheng Fan 		//Line spacing
346*766ce4d0SZheng Fan 		maLineSPTbx->SetPosPixel(TBX_LINE_SPACE);
347*766ce4d0SZheng Fan 		//image
348*766ce4d0SZheng Fan 		maFISpace1.SetPosPixel(POS_IMG_SPACE1);
349*766ce4d0SZheng Fan 		maFISpace2.SetPosPixel(POS_IMG_SPACE2);
350*766ce4d0SZheng Fan 		maFIndent1.SetPosPixel(POS_IMG_INDENT1);
351*766ce4d0SZheng Fan 		maFIndent2.SetPosPixel(POS_IMG_INDENT2);
352*766ce4d0SZheng Fan 		maFIndent3.SetPosPixel(POS_IMG_INDENT3);
353*766ce4d0SZheng Fan 		Size aSize(GetOutputSizePixel().Width(),PARA_SECTIONPAGE_HEIGHT);
354*766ce4d0SZheng Fan 		aSize = LogicToPixel( aSize, MapMode(MAP_APPFONT) );
355*766ce4d0SZheng Fan 		aSize.setWidth(GetOutputSizePixel().Width());
356*766ce4d0SZheng Fan 		SetSizePixel(aSize);
357*766ce4d0SZheng Fan 	}
358*766ce4d0SZheng Fan 	else
359*766ce4d0SZheng Fan 	{
360*766ce4d0SZheng Fan 		//Paragraph spacing
361*766ce4d0SZheng Fan 		maFTUL->SetPosPixel(POS_FT_PARA_SPACE2);
362*766ce4d0SZheng Fan 		maTbxUL_IncDec->SetPosPixel(POS_TBX_PARA_SPACE_INC_DEC2);
363*766ce4d0SZheng Fan 		maTopDist->SetPosPixel(POS_MBX_TOP_DIST2);
364*766ce4d0SZheng Fan 		maBottomDist->SetPosPixel(POS_MBX_BOT_DIST2);
365*766ce4d0SZheng Fan 		//Indent
366*766ce4d0SZheng Fan 		maFTIndent->SetPosPixel(POS_FT_PARA_INDENT2);
367*766ce4d0SZheng Fan 		maTbxIndent_IncDec->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC2);
368*766ce4d0SZheng Fan 		maTbxProDemote->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC2);
369*766ce4d0SZheng Fan 		maLeftIndent->SetPosPixel(POS_MBX_LEFT_DIST2);
370*766ce4d0SZheng Fan 		maRightIndent->SetPosPixel(POS_MBX_RIGHT_DIST2);
371*766ce4d0SZheng Fan 		maFLineIndent->SetPosPixel(POS_MBX_FLINE_DIST2);
372*766ce4d0SZheng Fan 		//Line spacing
373*766ce4d0SZheng Fan 		maLineSPTbx->SetPosPixel(TBX_LINE_SPACE2);
374*766ce4d0SZheng Fan 		//image
375*766ce4d0SZheng Fan 		maFISpace1.SetPosPixel(POS_IMG_SPACE12);
376*766ce4d0SZheng Fan 		maFISpace2.SetPosPixel(POS_IMG_SPACE22);
377*766ce4d0SZheng Fan 		maFIndent1.SetPosPixel(POS_IMG_INDENT12);
378*766ce4d0SZheng Fan 		maFIndent2.SetPosPixel(POS_IMG_INDENT22);
379*766ce4d0SZheng Fan 		maFIndent3.SetPosPixel(POS_IMG_INDENT32);
380*766ce4d0SZheng Fan 		Size aSize(GetOutputSizePixel().Width(),PARA_SECTIONPAGE_HEIGHT_2);
381*766ce4d0SZheng Fan 		aSize = LogicToPixel( aSize, MapMode(MAP_APPFONT) );
382*766ce4d0SZheng Fan 		aSize.setWidth(GetOutputSizePixel().Width());
383*766ce4d0SZheng Fan 		SetSizePixel(aSize);
384*766ce4d0SZheng Fan 	}
385*766ce4d0SZheng Fan }
386*766ce4d0SZheng Fan 
387*766ce4d0SZheng Fan void ParaPropertyPanel::EndSpacingPopupMode (void)
388*766ce4d0SZheng Fan {
389*766ce4d0SZheng Fan     maLineSpacePopup.Hide();
390*766ce4d0SZheng Fan }
391*766ce4d0SZheng Fan 
392*766ce4d0SZheng Fan void ParaPropertyPanel::EndBulletsPopupMode (void)
393*766ce4d0SZheng Fan {
394*766ce4d0SZheng Fan 	//maUnderlinePopup.Hide();
395*766ce4d0SZheng Fan }
396*766ce4d0SZheng Fan 
397*766ce4d0SZheng Fan void ParaPropertyPanel::EndNumberingPopupMode (void)
398*766ce4d0SZheng Fan {
399*766ce4d0SZheng Fan 	//maUnderlinePopup.Hide();
400*766ce4d0SZheng Fan }
401*766ce4d0SZheng Fan 
402*766ce4d0SZheng Fan 
403*766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxAlign()
404*766ce4d0SZheng Fan {
405*766ce4d0SZheng Fan 	maAlignToolBox->SetItemImage(TOOLBOX_ITEM1,maLeftPara);
406*766ce4d0SZheng Fan 	maAlignToolBox->SetItemImage(TOOLBOX_ITEM2,maCentPara);
407*766ce4d0SZheng Fan 	maAlignToolBox->SetItemImage(TOOLBOX_ITEM3,maRightPara);
408*766ce4d0SZheng Fan 	maAlignToolBox->SetItemImage(TOOLBOX_ITEM4,maJusPara);
409*766ce4d0SZheng Fan 	Link aLink = LINK( this, ParaPropertyPanel, AlignStyleModifyHdl_Impl );
410*766ce4d0SZheng Fan 	maAlignToolBox->SetSelectHdl( aLink );
411*766ce4d0SZheng Fan 	Size aTbxSize (maAlignToolBox->CalcWindowSizePixel());
412*766ce4d0SZheng Fan 	maAlignToolBox->SetOutputSizePixel( aTbxSize );
413*766ce4d0SZheng Fan }
414*766ce4d0SZheng Fan 
415*766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxVertAlign()
416*766ce4d0SZheng Fan {
417*766ce4d0SZheng Fan 	InitImageList(maTBxVertAlign, maVertImageList, maVertImageListH);
418*766ce4d0SZheng Fan 	maTBxVertAlign->SetSelectHdl(LINK(this,ParaPropertyPanel,VertTbxSelectHandler));
419*766ce4d0SZheng Fan 	Size aTbxSize (maTBxVertAlign->CalcWindowSizePixel());
420*766ce4d0SZheng Fan 	maTBxVertAlign->SetOutputSizePixel( aTbxSize );
421*766ce4d0SZheng Fan }
422*766ce4d0SZheng Fan 
423*766ce4d0SZheng Fan 
424*766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxIndent()
425*766ce4d0SZheng Fan {
426*766ce4d0SZheng Fan 	Link aLink = LINK( this, ParaPropertyPanel, ModifyIndentHdl_Impl );
427*766ce4d0SZheng Fan 	maLeftIndent->SetModifyHdl( aLink );
428*766ce4d0SZheng Fan 	maRightIndent->SetModifyHdl( aLink );
429*766ce4d0SZheng Fan 	maFLineIndent->SetModifyHdl( aLink );
430*766ce4d0SZheng Fan 
431*766ce4d0SZheng Fan 	if( Application::GetSettings().GetLayoutRTL())
432*766ce4d0SZheng Fan 	{
433*766ce4d0SZheng Fan 		maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM1,maIndInc_BD);
434*766ce4d0SZheng Fan 		maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM2,maIndDec_BD);
435*766ce4d0SZheng Fan 	}
436*766ce4d0SZheng Fan 	else
437*766ce4d0SZheng Fan 	{
438*766ce4d0SZheng Fan 		maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM1,maIndInc);
439*766ce4d0SZheng Fan 		maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM2,maIndDec);
440*766ce4d0SZheng Fan 	}
441*766ce4d0SZheng Fan 	maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM3,maIndHang);
442*766ce4d0SZheng Fan 	aLink = LINK( this, ParaPropertyPanel, ClickIndent_IncDec_Hdl_Impl );
443*766ce4d0SZheng Fan 	maTbxIndent_IncDec->SetSelectHdl(aLink);
444*766ce4d0SZheng Fan 	m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric();
445*766ce4d0SZheng Fan 	Size aTbxSize = maTbxIndent_IncDec->CalcWindowSizePixel();
446*766ce4d0SZheng Fan 	maTbxIndent_IncDec->SetOutputSizePixel( aTbxSize );
447*766ce4d0SZheng Fan 
448*766ce4d0SZheng Fan 	if( Application::GetSettings().GetLayoutRTL())
449*766ce4d0SZheng Fan 	{
450*766ce4d0SZheng Fan 		maTbxProDemote->SetItemImage(TOOLBOX_ITEM1,maIndInc_BD);
451*766ce4d0SZheng Fan 		maTbxProDemote->SetItemImage(TOOLBOX_ITEM2,maIndDec_BD);
452*766ce4d0SZheng Fan 	}
453*766ce4d0SZheng Fan 	else
454*766ce4d0SZheng Fan 	{
455*766ce4d0SZheng Fan 		maTbxProDemote->SetItemImage(TOOLBOX_ITEM1,maIndInc);
456*766ce4d0SZheng Fan 		maTbxProDemote->SetItemImage(TOOLBOX_ITEM2,maIndDec);
457*766ce4d0SZheng Fan 	}
458*766ce4d0SZheng Fan 	maTbxProDemote->SetItemImage(TOOLBOX_ITEM3,maIndHang);
459*766ce4d0SZheng Fan 	aLink = LINK( this, ParaPropertyPanel, ClickProDemote_Hdl_Impl );
460*766ce4d0SZheng Fan 	maTbxProDemote->SetSelectHdl(aLink);
461*766ce4d0SZheng Fan 	m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric();
462*766ce4d0SZheng Fan 	aTbxSize = maTbxProDemote->CalcWindowSizePixel();
463*766ce4d0SZheng Fan 	maTbxProDemote->SetOutputSizePixel( aTbxSize );
464*766ce4d0SZheng Fan }
465*766ce4d0SZheng Fan 
466*766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxBGColor()
467*766ce4d0SZheng Fan {
468*766ce4d0SZheng Fan 	mpColorUpdater.reset(new ::svx::ToolboxButtonColorUpdater(SID_BACKGROUND_COLOR, TBI_BACK_COLOR, maTBxBackColor.get(), TBX_UPDATER_MODE_CHAR_COLOR_NEW ));
469*766ce4d0SZheng Fan 
470*766ce4d0SZheng Fan 	maTBxBackColor->SetItemImage(TBI_BACK_COLOR, GetDisplayBackground().GetColor().IsDark()? maImgBackColorHigh : maImgBackColor);
471*766ce4d0SZheng Fan 	maTBxBackColor->SetItemBits( TBI_BACK_COLOR, maTBxBackColor->GetItemBits( TBI_BACK_COLOR ) | TIB_DROPDOWNONLY );
472*766ce4d0SZheng Fan 
473*766ce4d0SZheng Fan 	Link aLink = LINK(this, ParaPropertyPanel, ToolBoxBackColorDDHandler);
474*766ce4d0SZheng Fan 	maTBxBackColor->SetDropdownClickHdl ( aLink );
475*766ce4d0SZheng Fan 	maTBxBackColor->SetSelectHdl ( aLink );
476*766ce4d0SZheng Fan 	Size aTbxSize (maTBxBackColor->CalcWindowSizePixel());
477*766ce4d0SZheng Fan 	maTBxBackColor->SetOutputSizePixel( aTbxSize );
478*766ce4d0SZheng Fan }
479*766ce4d0SZheng Fan 
480*766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxBulletsNumbering()
481*766ce4d0SZheng Fan {
482*766ce4d0SZheng Fan 	if( Application::GetSettings().GetLayoutRTL())//sym2_7380
483*766ce4d0SZheng Fan 	{
484*766ce4d0SZheng Fan 		maTBxNumBullet->SetItemImage( IID_BULLET, maNumBImageListRTL.GetImage( IID_BULLET ) );
485*766ce4d0SZheng Fan 		maTBxNumBullet->SetItemImage( IID_NUMBER, maNumBImageListRTL.GetImage( IID_NUMBER ) );
486*766ce4d0SZheng Fan 	}
487*766ce4d0SZheng Fan 	else
488*766ce4d0SZheng Fan 		InitImageList(maTBxNumBullet, maNumBImageList, maNumBImageListH);
489*766ce4d0SZheng Fan 
490*766ce4d0SZheng Fan 	maTBxNumBullet->SetDropdownClickHdl(LINK(this,ParaPropertyPanel,NumBTbxDDHandler));
491*766ce4d0SZheng Fan 	maTBxNumBullet->SetSelectHdl(LINK(this,ParaPropertyPanel,NumBTbxSelectHandler));
492*766ce4d0SZheng Fan 	Size aTbxSize (maTBxNumBullet->CalcWindowSizePixel());
493*766ce4d0SZheng Fan 	maTBxNumBullet->SetOutputSizePixel( aTbxSize );
494*766ce4d0SZheng Fan }
495*766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxSpacing()
496*766ce4d0SZheng Fan {
497*766ce4d0SZheng Fan 	Link aLink = LINK( this, ParaPropertyPanel, ULSpaceHdl_Impl );
498*766ce4d0SZheng Fan 	maTopDist->SetModifyHdl(aLink);
499*766ce4d0SZheng Fan 	maBottomDist->SetModifyHdl( aLink );
500*766ce4d0SZheng Fan 
501*766ce4d0SZheng Fan 	maTbxUL_IncDec->SetItemImage(TOOLBOX_ITEM1,maParInc);
502*766ce4d0SZheng Fan 	maTbxUL_IncDec->SetItemImage(TOOLBOX_ITEM2,maParDec);
503*766ce4d0SZheng Fan 	aLink = LINK( this, ParaPropertyPanel, ClickUL_IncDec_Hdl_Impl );
504*766ce4d0SZheng Fan 	maTbxUL_IncDec->SetSelectHdl(aLink);
505*766ce4d0SZheng Fan 	m_eULSpaceUnit = maULSpaceControl.GetCoreMetric();
506*766ce4d0SZheng Fan 	Size aTbxSize = maTbxUL_IncDec->CalcWindowSizePixel();
507*766ce4d0SZheng Fan 	maTbxUL_IncDec->SetOutputSizePixel( aTbxSize );
508*766ce4d0SZheng Fan }
509*766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxLineSpacing()
510*766ce4d0SZheng Fan {
511*766ce4d0SZheng Fan 	Link aLink = LINK( this, ParaPropertyPanel, ClickLineSPDropDownHdl_Impl );
512*766ce4d0SZheng Fan 	maLineSPTbx->SetDropdownClickHdl( aLink );
513*766ce4d0SZheng Fan 	maLineSPTbx->SetSelectHdl( aLink );		//support keyinput "ENTER"
514*766ce4d0SZheng Fan 	maLineSPTbx->SetItemBits( TOOLBOX_ITEM1, maLineSPTbx->GetItemBits( TOOLBOX_ITEM1 ) | TIB_DROPDOWNONLY );
515*766ce4d0SZheng Fan 	maLineSPTbx->SetItemImage(TOOLBOX_ITEM1,maSpace3);
516*766ce4d0SZheng Fan 	Size aTbxSize = maLineSPTbx->CalcWindowSizePixel();
517*766ce4d0SZheng Fan 	maLineSPTbx->SetOutputSizePixel( aTbxSize );
518*766ce4d0SZheng Fan }
519*766ce4d0SZheng Fan 
520*766ce4d0SZheng Fan void ParaPropertyPanel::initial()
521*766ce4d0SZheng Fan {
522*766ce4d0SZheng Fan 	maFISpace1.SetImage(maSpace1);
523*766ce4d0SZheng Fan 	maFISpace2.SetImage(maSpace2);
524*766ce4d0SZheng Fan 	maFIndent1.SetImage(maIndent3);
525*766ce4d0SZheng Fan 	maFIndent2.SetImage(maIndent2);
526*766ce4d0SZheng Fan 	maFIndent3.SetImage(maIndent1);
527*766ce4d0SZheng Fan 
528*766ce4d0SZheng Fan 	GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_LEFT,sal_True,sal_False);
529*766ce4d0SZheng Fan 	GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_CENTER,sal_True,sal_False);
530*766ce4d0SZheng Fan 	GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_RIGHT,sal_True,sal_False);
531*766ce4d0SZheng Fan 	GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_BLOCK,sal_True,sal_False);
532*766ce4d0SZheng Fan 
533*766ce4d0SZheng Fan 	//toolbox
534*766ce4d0SZheng Fan 	SetupIcons();
535*766ce4d0SZheng Fan 	InitToolBoxAlign();
536*766ce4d0SZheng Fan 	InitToolBoxVertAlign();
537*766ce4d0SZheng Fan 	InitToolBoxIndent();
538*766ce4d0SZheng Fan 	InitToolBoxBGColor();
539*766ce4d0SZheng Fan 	InitToolBoxBulletsNumbering();
540*766ce4d0SZheng Fan 	InitToolBoxSpacing();
541*766ce4d0SZheng Fan 	InitToolBoxLineSpacing();
542*766ce4d0SZheng Fan 
543*766ce4d0SZheng Fan #ifdef HAS_IA2
544*766ce4d0SZheng Fan 	maAlignToolBox->SetAccRelationLabeledBy(&maAlignToolBox);
545*766ce4d0SZheng Fan 	maTBxVertAlign->SetMpSubEditAccLableBy(&maTBxVertAlign);
546*766ce4d0SZheng Fan 	maTBxNumBullet->SetAccRelationLabeledBy(&maTBxNumBullet);
547*766ce4d0SZheng Fan 	maTBxBackColor->SetMpSubEditAccLableBy(&maTBxBackColor);
548*766ce4d0SZheng Fan 	maFTUL->SetAccRelationLabeledBy(&maFTUL);
549*766ce4d0SZheng Fan 	maTbxUL_IncDec->SetAccRelationLabeledBy(&maTbxUL_IncDec);
550*766ce4d0SZheng Fan 	maTopDist->SetAccRelationLabeledBy(&maTopDist);
551*766ce4d0SZheng Fan 	maBottomDist->SetAccRelationLabeledBy(&maBottomDist);
552*766ce4d0SZheng Fan 	maLineSPTbx->SetAccRelationLabeledBy(&maLineSPTbx);
553*766ce4d0SZheng Fan 	maFTIndent->SetAccRelationLabeledBy(&maFTIndent);
554*766ce4d0SZheng Fan 	maTbxIndent_IncDec->SetAccRelationLabeledBy(&maTbxIndent_IncDec);
555*766ce4d0SZheng Fan 	maTbxProDemote->SetAccRelationLabeledBy(&maTbxProDemote);
556*766ce4d0SZheng Fan 	maLeftIndent->SetAccRelationLabeledBy(&maLeftIndent);
557*766ce4d0SZheng Fan 	maRightIndent->SetAccRelationLabeledBy(&maRightIndent);
558*766ce4d0SZheng Fan 	maFLineIndent->SetAccRelationLabeledBy(&maFLineIndent);
559*766ce4d0SZheng Fan 	mpColorUpdater->SetAccRelationLabeledBy(&mpColorUpdater);
560*766ce4d0SZheng Fan #endif
561*766ce4d0SZheng Fan }
562*766ce4d0SZheng Fan 
563*766ce4d0SZheng Fan void ParaPropertyPanel::InitImageList(::boost::scoped_ptr<ToolBox>& rTbx, ImageList& rImglst, ImageList& rImgHlst)
564*766ce4d0SZheng Fan {
565*766ce4d0SZheng Fan 	sal_Bool bHighContrast = GetDisplayBackground().GetColor().IsDark();
566*766ce4d0SZheng Fan 
567*766ce4d0SZheng Fan     ImageList& rImgLst = bHighContrast ? rImgHlst : rImglst;
568*766ce4d0SZheng Fan 
569*766ce4d0SZheng Fan 	sal_uInt16 nCount = rTbx->GetItemCount();
570*766ce4d0SZheng Fan     for (sal_uInt16 i = 0; i < nCount; i++)
571*766ce4d0SZheng Fan     {
572*766ce4d0SZheng Fan     	sal_uInt16 nId = rTbx->GetItemId(i);
573*766ce4d0SZheng Fan 		rTbx->SetItemImage( nId, rImgLst.GetImage( nId ) );
574*766ce4d0SZheng Fan     }
575*766ce4d0SZheng Fan }
576*766ce4d0SZheng Fan 
577*766ce4d0SZheng Fan //===========================for Numbering & Bullet================================================
578*766ce4d0SZheng Fan 
579*766ce4d0SZheng Fan 
580*766ce4d0SZheng Fan 
581*766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, NumBTbxDDHandler, ToolBox*, pToolBox)
582*766ce4d0SZheng Fan {
583*766ce4d0SZheng Fan 	sal_uInt16 nId = pToolBox->GetCurItemId();
584*766ce4d0SZheng Fan 
585*766ce4d0SZheng Fan 	EndTracking();
586*766ce4d0SZheng Fan 	pToolBox->SetItemDown( nId, sal_True );
587*766ce4d0SZheng Fan 
588*766ce4d0SZheng Fan 	if (nId == 1)
589*766ce4d0SZheng Fan     {
590*766ce4d0SZheng Fan 		maBulletsPopup.UpdateValueSet();
591*766ce4d0SZheng Fan 		maBulletsPopup.Show(*pToolBox);
592*766ce4d0SZheng Fan 	}
593*766ce4d0SZheng Fan 	else if (nId == 2)
594*766ce4d0SZheng Fan 	{
595*766ce4d0SZheng Fan 		maNumberingPopup.UpdateValueSet();
596*766ce4d0SZheng Fan 		maNumberingPopup.Show(*pToolBox);
597*766ce4d0SZheng Fan 	}
598*766ce4d0SZheng Fan 	pToolBox->SetItemDown( nId, sal_False );
599*766ce4d0SZheng Fan 	return 0;
600*766ce4d0SZheng Fan }
601*766ce4d0SZheng Fan 
602*766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, NumBTbxSelectHandler, ToolBox*, pToolBox)
603*766ce4d0SZheng Fan {
604*766ce4d0SZheng Fan 	sal_uInt16 nId = pToolBox->GetCurItemId();
605*766ce4d0SZheng Fan 	sal_uInt16 nSID = SID_TABLE_VERT_NONE;
606*766ce4d0SZheng Fan 
607*766ce4d0SZheng Fan 	EndTracking();
608*766ce4d0SZheng Fan 	if (nId == 1)
609*766ce4d0SZheng Fan     {
610*766ce4d0SZheng Fan 		nSID = FN_NUM_BULLET_ON;
611*766ce4d0SZheng Fan 	}
612*766ce4d0SZheng Fan 	else if ( nId == 2)
613*766ce4d0SZheng Fan 	{
614*766ce4d0SZheng Fan 		nSID = FN_NUM_NUMBERING_ON;
615*766ce4d0SZheng Fan 	}
616*766ce4d0SZheng Fan 	SfxBoolItem aBoolItem(nSID, sal_True);
617*766ce4d0SZheng Fan 	GetBindings()->GetDispatcher()->Execute(nSID, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
618*766ce4d0SZheng Fan 
619*766ce4d0SZheng Fan 	return 0;
620*766ce4d0SZheng Fan }
621*766ce4d0SZheng Fan 
622*766ce4d0SZheng Fan 
623*766ce4d0SZheng Fan //================================for Vertical Alignment========================================
624*766ce4d0SZheng Fan 
625*766ce4d0SZheng Fan 
626*766ce4d0SZheng Fan 
627*766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, VertTbxSelectHandler, ToolBox*, pToolBox)
628*766ce4d0SZheng Fan {
629*766ce4d0SZheng Fan 	sal_uInt16 nId = pToolBox->GetCurItemId();
630*766ce4d0SZheng Fan 	sal_uInt16 nSID = SID_TABLE_VERT_NONE;
631*766ce4d0SZheng Fan 	EndTracking();
632*766ce4d0SZheng Fan 	if (nId == 1)
633*766ce4d0SZheng Fan     {
634*766ce4d0SZheng Fan         nSID = SID_TABLE_VERT_NONE;
635*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(1, STATE_CHECK);
636*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
637*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
638*766ce4d0SZheng Fan 	}
639*766ce4d0SZheng Fan 	else if (nId == 2)
640*766ce4d0SZheng Fan 	{
641*766ce4d0SZheng Fan 		nSID = SID_TABLE_VERT_CENTER;
642*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
643*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(2, STATE_CHECK);
644*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
645*766ce4d0SZheng Fan 	}
646*766ce4d0SZheng Fan 	else if (nId == 3)
647*766ce4d0SZheng Fan 	{
648*766ce4d0SZheng Fan 		nSID = SID_TABLE_VERT_BOTTOM;
649*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
650*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
651*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(3, STATE_CHECK);
652*766ce4d0SZheng Fan 	}
653*766ce4d0SZheng Fan 	SfxBoolItem aBoolItem(nSID, sal_True);
654*766ce4d0SZheng Fan 	GetBindings()->GetDispatcher()->Execute(nSID, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
655*766ce4d0SZheng Fan 
656*766ce4d0SZheng Fan 	return 0;
657*766ce4d0SZheng Fan }
658*766ce4d0SZheng Fan 
659*766ce4d0SZheng Fan void ParaPropertyPanel::VertStateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState)
660*766ce4d0SZheng Fan {
661*766ce4d0SZheng Fan 	if (eState < SFX_ITEM_DONTCARE)
662*766ce4d0SZheng Fan 	{
663*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
664*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
665*766ce4d0SZheng Fan 		maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
666*766ce4d0SZheng Fan 		maTBxVertAlign->EnableItem(1, sal_False);
667*766ce4d0SZheng Fan 		maTBxVertAlign->EnableItem(2, sal_False);
668*766ce4d0SZheng Fan 		maTBxVertAlign->EnableItem(3, sal_False);
669*766ce4d0SZheng Fan 	}
670*766ce4d0SZheng Fan 	else
671*766ce4d0SZheng Fan 	{
672*766ce4d0SZheng Fan 		maTBxVertAlign->EnableItem(1, sal_True);
673*766ce4d0SZheng Fan 		maTBxVertAlign->EnableItem(2, sal_True);
674*766ce4d0SZheng Fan 		maTBxVertAlign->EnableItem(3, sal_True);
675*766ce4d0SZheng Fan 		if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem)))
676*766ce4d0SZheng Fan 		{
677*766ce4d0SZheng Fan 			const SfxBoolItem* pItem= (const SfxBoolItem*)pState;
678*766ce4d0SZheng Fan 			sal_Bool aBool = (sal_Bool)pItem->GetValue();
679*766ce4d0SZheng Fan 
680*766ce4d0SZheng Fan 			if (aBool)
681*766ce4d0SZheng Fan 			{
682*766ce4d0SZheng Fan 				if (nSID == SID_TABLE_VERT_NONE)
683*766ce4d0SZheng Fan 				{
684*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(1, STATE_CHECK);
685*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
686*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
687*766ce4d0SZheng Fan 				}
688*766ce4d0SZheng Fan 				else if (nSID == SID_TABLE_VERT_CENTER)
689*766ce4d0SZheng Fan 				{
690*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
691*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(2, STATE_CHECK);
692*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
693*766ce4d0SZheng Fan 				}
694*766ce4d0SZheng Fan 				else if (nSID == SID_TABLE_VERT_BOTTOM)
695*766ce4d0SZheng Fan 				{
696*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
697*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
698*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(3, STATE_CHECK);
699*766ce4d0SZheng Fan 				}
700*766ce4d0SZheng Fan 			}
701*766ce4d0SZheng Fan 			else
702*766ce4d0SZheng Fan 			{
703*766ce4d0SZheng Fan 				if (nSID == SID_TABLE_VERT_NONE)
704*766ce4d0SZheng Fan 				{
705*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
706*766ce4d0SZheng Fan 				}
707*766ce4d0SZheng Fan 				else if (nSID == SID_TABLE_VERT_CENTER)
708*766ce4d0SZheng Fan 				{
709*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
710*766ce4d0SZheng Fan 				}
711*766ce4d0SZheng Fan 				else if (nSID == SID_TABLE_VERT_BOTTOM)
712*766ce4d0SZheng Fan 				{
713*766ce4d0SZheng Fan 					maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
714*766ce4d0SZheng Fan 				}
715*766ce4d0SZheng Fan 			}
716*766ce4d0SZheng Fan 		}
717*766ce4d0SZheng Fan 		else
718*766ce4d0SZheng Fan 		{
719*766ce4d0SZheng Fan 			maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
720*766ce4d0SZheng Fan 			maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
721*766ce4d0SZheng Fan 			maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
722*766ce4d0SZheng Fan 		}
723*766ce4d0SZheng Fan 	}
724*766ce4d0SZheng Fan }
725*766ce4d0SZheng Fan //==================================for Background color=====================
726*766ce4d0SZheng Fan 
727*766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ToolBoxBackColorDDHandler,ToolBox*, pToolBox)
728*766ce4d0SZheng Fan {
729*766ce4d0SZheng Fan 	sal_uInt16 nId = pToolBox->GetCurItemId();
730*766ce4d0SZheng Fan 	OSL_ASSERT(nId == TBI_BACK_COLOR);
731*766ce4d0SZheng Fan 	if(nId == TBI_BACK_COLOR)
732*766ce4d0SZheng Fan 	{
733*766ce4d0SZheng Fan 		pToolBox->SetItemDown( nId, true );
734*766ce4d0SZheng Fan 		maBGColorPopup.Show(*pToolBox);
735*766ce4d0SZheng Fan 		maBGColorPopup.SetCurrentColor(maColor, mbColorAvailable);
736*766ce4d0SZheng Fan 	}
737*766ce4d0SZheng Fan 	return 0;
738*766ce4d0SZheng Fan }
739*766ce4d0SZheng Fan 
740*766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, ImplPopupModeEndHdl, FloatingWindow*, EMPTYARG )
741*766ce4d0SZheng Fan {
742*766ce4d0SZheng Fan 	return 0;
743*766ce4d0SZheng Fan }
744*766ce4d0SZheng Fan 
745*766ce4d0SZheng Fan void ParaPropertyPanel::ShowMenu (void)
746*766ce4d0SZheng Fan {
747*766ce4d0SZheng Fan     if (mpBindings != NULL)
748*766ce4d0SZheng Fan     {
749*766ce4d0SZheng Fan         SfxDispatcher* pDispatcher = mpBindings->GetDispatcher();
750*766ce4d0SZheng Fan         if (pDispatcher != NULL)
751*766ce4d0SZheng Fan             pDispatcher->Execute(SID_PARA_DLG, SFX_CALLMODE_ASYNCHRON);
752*766ce4d0SZheng Fan     }
753*766ce4d0SZheng Fan }
754*766ce4d0SZheng Fan 
755*766ce4d0SZheng Fan void ParaPropertyPanel::ParaBKGStateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState)
756*766ce4d0SZheng Fan {
757*766ce4d0SZheng Fan 	if( eState >= SFX_ITEM_DEFAULT && pState->ISA(SvxBrushItem))
758*766ce4d0SZheng Fan 	{
759*766ce4d0SZheng Fan 		const SvxBrushItem* pItem =  (const SvxBrushItem*)pState;
760*766ce4d0SZheng Fan 		maColor = pItem->GetColor();
761*766ce4d0SZheng Fan 		mbColorAvailable = sal_True;
762*766ce4d0SZheng Fan 		mpColorUpdater->Update(maColor);
763*766ce4d0SZheng Fan 	}
764*766ce4d0SZheng Fan 	else
765*766ce4d0SZheng Fan 	{
766*766ce4d0SZheng Fan 		mbColorAvailable = sal_False;
767*766ce4d0SZheng Fan 		maColor.SetColor(COL_AUTO);
768*766ce4d0SZheng Fan 		mpColorUpdater->Update(maColor);
769*766ce4d0SZheng Fan 	}
770*766ce4d0SZheng Fan }
771*766ce4d0SZheng Fan 
772*766ce4d0SZheng Fan Color ParaPropertyPanel::GetBGColor (void) const
773*766ce4d0SZheng Fan {
774*766ce4d0SZheng Fan     return maColor;
775*766ce4d0SZheng Fan }
776*766ce4d0SZheng Fan 
777*766ce4d0SZheng Fan void ParaPropertyPanel::SetBGColor (
778*766ce4d0SZheng Fan     const String& rsColorName,
779*766ce4d0SZheng Fan     const Color aColor)
780*766ce4d0SZheng Fan {
781*766ce4d0SZheng Fan 	SvxColorItem aColorItem(aColor, SID_BACKGROUND_COLOR);
782*766ce4d0SZheng Fan 	mpBindings->GetDispatcher()->Execute(SID_BACKGROUND_COLOR, SFX_CALLMODE_RECORD, &aColorItem, 0L);
783*766ce4d0SZheng Fan 	maColor = aColor;
784*766ce4d0SZheng Fan }
785*766ce4d0SZheng Fan 
786*766ce4d0SZheng Fan //==================================for Paragraph Alignment=====================
787*766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, AlignStyleModifyHdl_Impl, ToolBox*, pBox )
788*766ce4d0SZheng Fan {
789*766ce4d0SZheng Fan 	switch (pBox->GetCurItemId())
790*766ce4d0SZheng Fan 	{
791*766ce4d0SZheng Fan 	case BT_SUBSTLEFT:
792*766ce4d0SZheng Fan 		{
793*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTLEFT,STATE_CHECK);
794*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
795*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
796*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
797*766ce4d0SZheng Fan 			SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_LEFT,  sal_True );
798*766ce4d0SZheng Fan 			GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_LEFT, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
799*766ce4d0SZheng Fan 		}
800*766ce4d0SZheng Fan 		break;
801*766ce4d0SZheng Fan 	case BT_SUBSTCENTER:
802*766ce4d0SZheng Fan 		{
803*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTCENTER,STATE_CHECK);
804*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
805*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
806*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
807*766ce4d0SZheng Fan 			SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_CENTER, sal_True );
808*766ce4d0SZheng Fan 			GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_CENTER, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
809*766ce4d0SZheng Fan 		}
810*766ce4d0SZheng Fan 		break;
811*766ce4d0SZheng Fan 	case BT_SUBSTRIGHT:
812*766ce4d0SZheng Fan 		{
813*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTRIGHT,STATE_CHECK);
814*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
815*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
816*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
817*766ce4d0SZheng Fan 			SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_RIGHT, sal_True );
818*766ce4d0SZheng Fan 			GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_RIGHT, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
819*766ce4d0SZheng Fan 		}
820*766ce4d0SZheng Fan 		break;
821*766ce4d0SZheng Fan 	case BT_SUBSTJUSTIFY:
822*766ce4d0SZheng Fan 		{
823*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_CHECK);
824*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
825*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
826*766ce4d0SZheng Fan 			pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
827*766ce4d0SZheng Fan 			SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_BLOCK, sal_True );
828*766ce4d0SZheng Fan 			GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_BLOCK, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
829*766ce4d0SZheng Fan 		}
830*766ce4d0SZheng Fan 		break;
831*766ce4d0SZheng Fan 	}
832*766ce4d0SZheng Fan 
833*766ce4d0SZheng Fan 	return 0;
834*766ce4d0SZheng Fan }
835*766ce4d0SZheng Fan //==================================for Paragraph Indent=====================
836*766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, ModifyIndentHdl_Impl, SvxRelativeField*, pBox )
837*766ce4d0SZheng Fan {
838*766ce4d0SZheng Fan 	SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE );
839*766ce4d0SZheng Fan 	aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) );
840*766ce4d0SZheng Fan 	aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
841*766ce4d0SZheng Fan 	aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
842*766ce4d0SZheng Fan 
843*766ce4d0SZheng Fan 	GetBindings()->GetDispatcher()->Execute(
844*766ce4d0SZheng Fan 		SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
845*766ce4d0SZheng Fan 	return 0;
846*766ce4d0SZheng Fan }
847*766ce4d0SZheng Fan 
848*766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ClickIndent_IncDec_Hdl_Impl, ToolBox *, pControl)
849*766ce4d0SZheng Fan {
850*766ce4d0SZheng Fan 	switch (pControl->GetCurItemId())
851*766ce4d0SZheng Fan 	{
852*766ce4d0SZheng Fan 		case INDENT_INCREMENT:
853*766ce4d0SZheng Fan 		{
854*766ce4d0SZheng Fan 			switch (maContext.GetCombinedContext())
855*766ce4d0SZheng Fan 			{
856*766ce4d0SZheng Fan 				case CombinedEnumContext(Application_Writer, Context_Default):
857*766ce4d0SZheng Fan 				case CombinedEnumContext(Application_Writer, Context_Text):
858*766ce4d0SZheng Fan 				case CombinedEnumContext(Application_Writer, Context_Table):
859*766ce4d0SZheng Fan 				{
860*766ce4d0SZheng Fan 					SfxBoolItem aMargin( SID_INC_INDENT, sal_True );
861*766ce4d0SZheng Fan 					GetBindings()->GetDispatcher()->Execute(
862*766ce4d0SZheng Fan 						SID_INC_INDENT, SFX_CALLMODE_RECORD, &aMargin, 0L);
863*766ce4d0SZheng Fan 				}
864*766ce4d0SZheng Fan 				break;
865*766ce4d0SZheng Fan 				default:
866*766ce4d0SZheng Fan 				{
867*766ce4d0SZheng Fan 					SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE );
868*766ce4d0SZheng Fan 
869*766ce4d0SZheng Fan 					maTxtLeft += INDENT_STEP;
870*766ce4d0SZheng Fan 					sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
871*766ce4d0SZheng Fan 					nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
872*766ce4d0SZheng Fan 					aMargin.SetTxtLeft( (const long)nVal );
873*766ce4d0SZheng Fan 					aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
874*766ce4d0SZheng Fan 					aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
875*766ce4d0SZheng Fan 
876*766ce4d0SZheng Fan 					GetBindings()->GetDispatcher()->Execute(
877*766ce4d0SZheng Fan 						SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
878*766ce4d0SZheng Fan 				}
879*766ce4d0SZheng Fan 			}
880*766ce4d0SZheng Fan 		}
881*766ce4d0SZheng Fan 		break;
882*766ce4d0SZheng Fan 		case INDENT_DECREMENT:
883*766ce4d0SZheng Fan 		{
884*766ce4d0SZheng Fan 			switch (maContext.GetCombinedContext())
885*766ce4d0SZheng Fan 			{
886*766ce4d0SZheng Fan 				case CombinedEnumContext(Application_Writer, Context_Default):
887*766ce4d0SZheng Fan 				case CombinedEnumContext(Application_Writer, Context_Text):
888*766ce4d0SZheng Fan 				case CombinedEnumContext(Application_Writer, Context_Table):
889*766ce4d0SZheng Fan 				{
890*766ce4d0SZheng Fan 					SfxBoolItem aMargin( SID_DEC_INDENT, sal_True );
891*766ce4d0SZheng Fan 					GetBindings()->GetDispatcher()->Execute(
892*766ce4d0SZheng Fan 						SID_DEC_INDENT, SFX_CALLMODE_RECORD, &aMargin, 0L);
893*766ce4d0SZheng Fan 				}
894*766ce4d0SZheng Fan 				break;
895*766ce4d0SZheng Fan 				default:
896*766ce4d0SZheng Fan 				{
897*766ce4d0SZheng Fan 					if((maTxtLeft - INDENT_STEP) < 0)
898*766ce4d0SZheng Fan 						maTxtLeft = DEFAULT_VALUE;
899*766ce4d0SZheng Fan 					else
900*766ce4d0SZheng Fan 						maTxtLeft -= INDENT_STEP;
901*766ce4d0SZheng Fan 
902*766ce4d0SZheng Fan 					SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE );
903*766ce4d0SZheng Fan 
904*766ce4d0SZheng Fan 					sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
905*766ce4d0SZheng Fan 					nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
906*766ce4d0SZheng Fan 
907*766ce4d0SZheng Fan 					aMargin.SetTxtLeft( (const long)nVal );
908*766ce4d0SZheng Fan 					aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
909*766ce4d0SZheng Fan 					aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
910*766ce4d0SZheng Fan 
911*766ce4d0SZheng Fan 					GetBindings()->GetDispatcher()->Execute(
912*766ce4d0SZheng Fan 						SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
913*766ce4d0SZheng Fan 				}
914*766ce4d0SZheng Fan 			}
915*766ce4d0SZheng Fan 		}
916*766ce4d0SZheng Fan 		break;
917*766ce4d0SZheng Fan 		case ID_HANGING_INDENT:
918*766ce4d0SZheng Fan 		{
919*766ce4d0SZheng Fan 			SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE );
920*766ce4d0SZheng Fan 			aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) + (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
921*766ce4d0SZheng Fan 			aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
922*766ce4d0SZheng Fan 			aMargin.SetTxtFirstLineOfst( ((const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ))*(-1) );
923*766ce4d0SZheng Fan 
924*766ce4d0SZheng Fan 			GetBindings()->GetDispatcher()->Execute(
925*766ce4d0SZheng Fan 				SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
926*766ce4d0SZheng Fan 		}
927*766ce4d0SZheng Fan 		break;
928*766ce4d0SZheng Fan 	}
929*766ce4d0SZheng Fan 	return( 0L );
930*766ce4d0SZheng Fan }
931*766ce4d0SZheng Fan 
932*766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ClickProDemote_Hdl_Impl, ToolBox *, pControl)
933*766ce4d0SZheng Fan {
934*766ce4d0SZheng Fan 	switch (pControl->GetCurItemId())
935*766ce4d0SZheng Fan 	{
936*766ce4d0SZheng Fan 		case BT_TBX_INDENT_PROMOTE:
937*766ce4d0SZheng Fan 		{
938*766ce4d0SZheng Fan 			SvxLRSpaceItem aMargin( SID_ATTR_PARA_RIGHT );
939*766ce4d0SZheng Fan 
940*766ce4d0SZheng Fan 			maTxtLeft += INDENT_STEP;
941*766ce4d0SZheng Fan 			sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
942*766ce4d0SZheng Fan 			nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
943*766ce4d0SZheng Fan 			aMargin.SetTxtLeft( (const long)nVal );
944*766ce4d0SZheng Fan 			aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
945*766ce4d0SZheng Fan 			aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
946*766ce4d0SZheng Fan 
947*766ce4d0SZheng Fan 			GetBindings()->GetDispatcher()->Execute(
948*766ce4d0SZheng Fan 				SID_ATTR_PARA_RIGHT, SFX_CALLMODE_RECORD, &aMargin, 0L);
949*766ce4d0SZheng Fan 		}
950*766ce4d0SZheng Fan 		break;
951*766ce4d0SZheng Fan 		case BT_TBX_INDENT_DEMOTE:
952*766ce4d0SZheng Fan 		{
953*766ce4d0SZheng Fan 			if((maTxtLeft - INDENT_STEP) < 0)
954*766ce4d0SZheng Fan 				maTxtLeft = DEFAULT_VALUE;
955*766ce4d0SZheng Fan 			else
956*766ce4d0SZheng Fan 				maTxtLeft -= INDENT_STEP;
957*766ce4d0SZheng Fan 
958*766ce4d0SZheng Fan 			SvxLRSpaceItem aMargin( SID_ATTR_PARA_LEFT );
959*766ce4d0SZheng Fan 
960*766ce4d0SZheng Fan 			sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
961*766ce4d0SZheng Fan 			nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
962*766ce4d0SZheng Fan 
963*766ce4d0SZheng Fan 			aMargin.SetTxtLeft( (const long)nVal );
964*766ce4d0SZheng Fan 			aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
965*766ce4d0SZheng Fan 			aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
966*766ce4d0SZheng Fan 
967*766ce4d0SZheng Fan 			GetBindings()->GetDispatcher()->Execute(
968*766ce4d0SZheng Fan 				SID_ATTR_PARA_LEFT, SFX_CALLMODE_RECORD, &aMargin, 0L);
969*766ce4d0SZheng Fan 		}
970*766ce4d0SZheng Fan 		break;
971*766ce4d0SZheng Fan 		case SD_HANGING_INDENT:
972*766ce4d0SZheng Fan 		{
973*766ce4d0SZheng Fan 			SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE );
974*766ce4d0SZheng Fan 			aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) + (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
975*766ce4d0SZheng Fan 			aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
976*766ce4d0SZheng Fan 			aMargin.SetTxtFirstLineOfst( ((const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ))*(-1) );
977*766ce4d0SZheng Fan 
978*766ce4d0SZheng Fan 			GetBindings()->GetDispatcher()->Execute(
979*766ce4d0SZheng Fan 				SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
980*766ce4d0SZheng Fan 		}
981*766ce4d0SZheng Fan 		break;
982*766ce4d0SZheng Fan 	}
983*766ce4d0SZheng Fan 	return( 0L );
984*766ce4d0SZheng Fan }
985*766ce4d0SZheng Fan //==================================for Paragraph Line Spacing=====================
986*766ce4d0SZheng Fan 
987*766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, ClickLineSPDropDownHdl_Impl, ToolBox*, pBox )
988*766ce4d0SZheng Fan {
989*766ce4d0SZheng Fan 
990*766ce4d0SZheng Fan 	const sal_uInt16 nId = pBox->GetCurItemId();
991*766ce4d0SZheng Fan 	OSL_ASSERT(nId == TOOLBOX_ITEM1);
992*766ce4d0SZheng Fan 	if(nId == TOOLBOX_ITEM1)
993*766ce4d0SZheng Fan 	{
994*766ce4d0SZheng Fan 		pBox->SetItemDown( nId, true );
995*766ce4d0SZheng Fan 		maLineSpacePopup.Rearrange(meLnSpState,m_eMetricUnit,mpLnSPItem,maContext);
996*766ce4d0SZheng Fan 		maLineSpacePopup.Show(*pBox);
997*766ce4d0SZheng Fan 
998*766ce4d0SZheng Fan 	}
999*766ce4d0SZheng Fan 	return (0L);
1000*766ce4d0SZheng Fan }
1001*766ce4d0SZheng Fan 
1002*766ce4d0SZheng Fan //==================================for Paragraph Spacing=====================
1003*766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, ULSpaceHdl_Impl, SvxRelativeField*, pBox )
1004*766ce4d0SZheng Fan {
1005*766ce4d0SZheng Fan 	SvxULSpaceItem aMargin( SID_ATTR_ULSPACE );
1006*766ce4d0SZheng Fan 	aMargin.SetUpper( (sal_uInt16)GetCoreValue( *maTopDist.get(), m_eULSpaceUnit ) );
1007*766ce4d0SZheng Fan 	aMargin.SetLower( (sal_uInt16)GetCoreValue( *maBottomDist.get(), m_eULSpaceUnit ) );
1008*766ce4d0SZheng Fan 
1009*766ce4d0SZheng Fan 	GetBindings()->GetDispatcher()->Execute(
1010*766ce4d0SZheng Fan 		SID_ATTR_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
1011*766ce4d0SZheng Fan 	return 0L;
1012*766ce4d0SZheng Fan }
1013*766ce4d0SZheng Fan 
1014*766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ClickUL_IncDec_Hdl_Impl, ToolBox *, pControl)
1015*766ce4d0SZheng Fan {
1016*766ce4d0SZheng Fan 	switch (pControl->GetCurItemId())
1017*766ce4d0SZheng Fan 		{
1018*766ce4d0SZheng Fan 	    case UL_INCREMENT:
1019*766ce4d0SZheng Fan 		     {
1020*766ce4d0SZheng Fan 				 SvxULSpaceItem aMargin( SID_ATTR_ULSPACE );
1021*766ce4d0SZheng Fan 
1022*766ce4d0SZheng Fan 				 maUpper += UL_STEP;
1023*766ce4d0SZheng Fan 				 sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
1024*766ce4d0SZheng Fan 				 nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
1025*766ce4d0SZheng Fan 				 aMargin.SetUpper( (const sal_uInt16)nVal );
1026*766ce4d0SZheng Fan 
1027*766ce4d0SZheng Fan 				 maLower += UL_STEP;
1028*766ce4d0SZheng Fan 				 nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
1029*766ce4d0SZheng Fan 				 nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
1030*766ce4d0SZheng Fan 	             aMargin.SetLower( (const sal_uInt16)nVal );
1031*766ce4d0SZheng Fan 
1032*766ce4d0SZheng Fan 				 GetBindings()->GetDispatcher()->Execute(
1033*766ce4d0SZheng Fan 					 SID_ATTR_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
1034*766ce4d0SZheng Fan 			 }
1035*766ce4d0SZheng Fan 			 break;
1036*766ce4d0SZheng Fan 		case UL_DECREMENT:
1037*766ce4d0SZheng Fan 			{
1038*766ce4d0SZheng Fan 				 SvxULSpaceItem aMargin( SID_ATTR_ULSPACE );
1039*766ce4d0SZheng Fan 
1040*766ce4d0SZheng Fan 				 if( maUpper >= UL_STEP )
1041*766ce4d0SZheng Fan 				 {
1042*766ce4d0SZheng Fan 					maUpper -= UL_STEP;
1043*766ce4d0SZheng Fan 					sal_Int64	nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
1044*766ce4d0SZheng Fan 					nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
1045*766ce4d0SZheng Fan 					aMargin.SetUpper( (const sal_uInt16)nVal );
1046*766ce4d0SZheng Fan 				 }
1047*766ce4d0SZheng Fan 				 else
1048*766ce4d0SZheng Fan 					aMargin.SetUpper( DEFAULT_VALUE );
1049*766ce4d0SZheng Fan 				 if( maLower >= UL_STEP )
1050*766ce4d0SZheng Fan 				 {
1051*766ce4d0SZheng Fan 					maLower -= UL_STEP;
1052*766ce4d0SZheng Fan 					sal_Int64	nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
1053*766ce4d0SZheng Fan 					nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
1054*766ce4d0SZheng Fan 					aMargin.SetLower( (const sal_uInt16)nVal );
1055*766ce4d0SZheng Fan 				 }
1056*766ce4d0SZheng Fan 				 else
1057*766ce4d0SZheng Fan 					aMargin.SetLower( DEFAULT_VALUE );
1058*766ce4d0SZheng Fan 
1059*766ce4d0SZheng Fan 				 GetBindings()->GetDispatcher()->Execute(
1060*766ce4d0SZheng Fan 					 SID_ATTR_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
1061*766ce4d0SZheng Fan 			}
1062*766ce4d0SZheng Fan 			break;
1063*766ce4d0SZheng Fan 		}
1064*766ce4d0SZheng Fan 	return( 0L );
1065*766ce4d0SZheng Fan }
1066*766ce4d0SZheng Fan 
1067*766ce4d0SZheng Fan //==================================for Paragraph State change=====================
1068*766ce4d0SZheng Fan void ParaPropertyPanel::NotifyItemUpdate( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
1069*766ce4d0SZheng Fan {
1070*766ce4d0SZheng Fan 	if( nSID == SID_ATTR_METRIC )
1071*766ce4d0SZheng Fan 	{
1072*766ce4d0SZheng Fan 		m_eMetricUnit = GetCurrentUnit(eState,pState);
1073*766ce4d0SZheng Fan 		if( m_eMetricUnit!=m_last_eMetricUnit )
1074*766ce4d0SZheng Fan 		{
1075*766ce4d0SZheng Fan 			SetFieldUnit( *maLeftIndent.get(), m_eMetricUnit );
1076*766ce4d0SZheng Fan 			SetFieldUnit( *maRightIndent.get(), m_eMetricUnit );
1077*766ce4d0SZheng Fan 			SetFieldUnit( *maFLineIndent.get(), m_eMetricUnit );
1078*766ce4d0SZheng Fan 			SetFieldUnit( *maTopDist.get(), m_eMetricUnit );
1079*766ce4d0SZheng Fan 			SetFieldUnit( *maBottomDist.get(), m_eMetricUnit );
1080*766ce4d0SZheng Fan 		}
1081*766ce4d0SZheng Fan 		m_last_eMetricUnit = m_eMetricUnit;
1082*766ce4d0SZheng Fan 	}
1083*766ce4d0SZheng Fan 
1084*766ce4d0SZheng Fan 	if( nSID == SID_ATTR_PARA_LRSPACE )
1085*766ce4d0SZheng Fan 		StateChangedIndentImpl( nSID, eState, pState );
1086*766ce4d0SZheng Fan 
1087*766ce4d0SZheng Fan 	if( nSID == SID_ATTR_PARA_LINESPACE )
1088*766ce4d0SZheng Fan 		StateChangedLnSPImpl( nSID, eState, pState );
1089*766ce4d0SZheng Fan 
1090*766ce4d0SZheng Fan 	if( nSID == SID_ATTR_PARA_ULSPACE)
1091*766ce4d0SZheng Fan 		StateChangedULImpl( nSID, eState, pState );
1092*766ce4d0SZheng Fan 
1093*766ce4d0SZheng Fan 	if (nSID==SID_ATTR_PARA_ADJUST_LEFT || nSID==SID_ATTR_PARA_ADJUST_CENTER || nSID==SID_ATTR_PARA_ADJUST_RIGHT || nSID==SID_ATTR_PARA_ADJUST_BLOCK)
1094*766ce4d0SZheng Fan 		StateChangedAlignmentImpl( nSID, eState, pState );
1095*766ce4d0SZheng Fan 
1096*766ce4d0SZheng Fan 	if (nSID==SID_OUTLINE_LEFT || nSID==SID_OUTLINE_RIGHT)
1097*766ce4d0SZheng Fan 		StateChangeOutLineImpl( nSID, eState, pState );
1098*766ce4d0SZheng Fan 
1099*766ce4d0SZheng Fan 	if (nSID==SID_INC_INDENT || nSID==SID_DEC_INDENT)
1100*766ce4d0SZheng Fan 		StateChangeIncDecImpl( nSID, eState, pState );
1101*766ce4d0SZheng Fan 	//Sym3_1093. Add toggle state for numbering and bullet icons
1102*766ce4d0SZheng Fan 	if (nSID==FN_NUM_NUMBERING_ON || nSID==FN_NUM_BULLET_ON)
1103*766ce4d0SZheng Fan 		StateChangeBulletNumImpl( nSID, eState, pState );
1104*766ce4d0SZheng Fan 
1105*766ce4d0SZheng Fan 	//Modified for Numbering&Bullets Dialog UX Enh(Story 992) by chengjh,2011.7.5
1106*766ce4d0SZheng Fan 	//Get the num rule index data of the current selection
1107*766ce4d0SZheng Fan 	if ( nSID == FN_BUL_NUM_RULE_INDEX ||nSID == FN_NUM_NUM_RULE_INDEX)
1108*766ce4d0SZheng Fan 		StateChangeBulletNumRuleImpl( nSID, eState, pState );
1109*766ce4d0SZheng Fan 	//End
1110*766ce4d0SZheng Fan 
1111*766ce4d0SZheng Fan 	if ((nSID == SID_TABLE_VERT_NONE)||(nSID == SID_TABLE_VERT_CENTER)||(nSID == SID_TABLE_VERT_BOTTOM))
1112*766ce4d0SZheng Fan 	{
1113*766ce4d0SZheng Fan 		VertStateChanged( nSID, eState, pState);
1114*766ce4d0SZheng Fan 	}
1115*766ce4d0SZheng Fan 	else if (nSID == SID_BACKGROUND_COLOR)
1116*766ce4d0SZheng Fan 	{
1117*766ce4d0SZheng Fan 		ParaBKGStateChanged(nSID, eState, pState);
1118*766ce4d0SZheng Fan 	}
1119*766ce4d0SZheng Fan }
1120*766ce4d0SZheng Fan 
1121*766ce4d0SZheng Fan void ParaPropertyPanel::StateChangedAlignmentImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
1122*766ce4d0SZheng Fan {
1123*766ce4d0SZheng Fan 	if( eState >= SFX_ITEM_AVAILABLE )
1124*766ce4d0SZheng Fan 	{
1125*766ce4d0SZheng Fan 		const SfxBoolItem* pItem = (const SfxBoolItem*)pState;
1126*766ce4d0SZheng Fan 		bool IsChecked = (bool)pItem->GetValue();
1127*766ce4d0SZheng Fan 		switch (nSID)
1128*766ce4d0SZheng Fan 		{
1129*766ce4d0SZheng Fan 		case SID_ATTR_PARA_ADJUST_LEFT:
1130*766ce4d0SZheng Fan 			{
1131*766ce4d0SZheng Fan 				if(IsChecked)
1132*766ce4d0SZheng Fan 				{
1133*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_CHECK);
1134*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
1135*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
1136*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
1137*766ce4d0SZheng Fan 				}
1138*766ce4d0SZheng Fan 				else
1139*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
1140*766ce4d0SZheng Fan 			}
1141*766ce4d0SZheng Fan 			break;
1142*766ce4d0SZheng Fan 		case SID_ATTR_PARA_ADJUST_CENTER:
1143*766ce4d0SZheng Fan 			{
1144*766ce4d0SZheng Fan 				if(IsChecked)
1145*766ce4d0SZheng Fan 				{
1146*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_CHECK);
1147*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
1148*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
1149*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
1150*766ce4d0SZheng Fan 				}
1151*766ce4d0SZheng Fan 				else
1152*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
1153*766ce4d0SZheng Fan 			}
1154*766ce4d0SZheng Fan 			break;
1155*766ce4d0SZheng Fan 		case SID_ATTR_PARA_ADJUST_RIGHT:
1156*766ce4d0SZheng Fan 			{
1157*766ce4d0SZheng Fan 				if(IsChecked)
1158*766ce4d0SZheng Fan 				{
1159*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_CHECK);
1160*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
1161*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
1162*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
1163*766ce4d0SZheng Fan 				}
1164*766ce4d0SZheng Fan 				else
1165*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
1166*766ce4d0SZheng Fan 			}
1167*766ce4d0SZheng Fan 			break;
1168*766ce4d0SZheng Fan 		case SID_ATTR_PARA_ADJUST_BLOCK:
1169*766ce4d0SZheng Fan 			{
1170*766ce4d0SZheng Fan 				if(IsChecked)
1171*766ce4d0SZheng Fan 				{
1172*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_CHECK);
1173*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
1174*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
1175*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
1176*766ce4d0SZheng Fan 				}
1177*766ce4d0SZheng Fan 				else
1178*766ce4d0SZheng Fan 					maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
1179*766ce4d0SZheng Fan 			}
1180*766ce4d0SZheng Fan 			break;
1181*766ce4d0SZheng Fan 		}
1182*766ce4d0SZheng Fan 	}
1183*766ce4d0SZheng Fan 	else if( eState == SFX_ITEM_DISABLED )
1184*766ce4d0SZheng Fan 	{
1185*766ce4d0SZheng Fan 	}
1186*766ce4d0SZheng Fan 	else if ( eState == SFX_ITEM_DONTCARE )
1187*766ce4d0SZheng Fan 	{
1188*766ce4d0SZheng Fan 		switch (nSID)
1189*766ce4d0SZheng Fan 		{
1190*766ce4d0SZheng Fan 		case SID_ATTR_PARA_ADJUST_LEFT:
1191*766ce4d0SZheng Fan 			maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
1192*766ce4d0SZheng Fan 			break;
1193*766ce4d0SZheng Fan 		case SID_ATTR_PARA_ADJUST_CENTER:
1194*766ce4d0SZheng Fan 			maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
1195*766ce4d0SZheng Fan 			break;
1196*766ce4d0SZheng Fan 		case SID_ATTR_PARA_ADJUST_RIGHT:
1197*766ce4d0SZheng Fan 			maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
1198*766ce4d0SZheng Fan 			break;
1199*766ce4d0SZheng Fan 		case SID_ATTR_PARA_ADJUST_BLOCK:
1200*766ce4d0SZheng Fan 			maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
1201*766ce4d0SZheng Fan 			break;
1202*766ce4d0SZheng Fan 		}
1203*766ce4d0SZheng Fan 	}
1204*766ce4d0SZheng Fan }
1205*766ce4d0SZheng Fan 
1206*766ce4d0SZheng Fan void ParaPropertyPanel::StateChangedIndentImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
1207*766ce4d0SZheng Fan {
1208*766ce4d0SZheng Fan 	switch (maContext.GetCombinedContext())
1209*766ce4d0SZheng Fan 	{
1210*766ce4d0SZheng Fan 
1211*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Writer, Context_DrawText):
1212*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Calc, Context_DrawText):
1213*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Writer, Context_Annotation):
1214*766ce4d0SZheng Fan 		{
1215*766ce4d0SZheng Fan 			maLeftIndent->SetMin( DEFAULT_VALUE );
1216*766ce4d0SZheng Fan 			maRightIndent->SetMin( DEFAULT_VALUE );
1217*766ce4d0SZheng Fan 			maFLineIndent->SetMin( DEFAULT_VALUE );
1218*766ce4d0SZheng Fan 			maTbxIndent_IncDec->Show();
1219*766ce4d0SZheng Fan 			maTbxProDemote->Hide();
1220*766ce4d0SZheng Fan 		}
1221*766ce4d0SZheng Fan 		break;
1222*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Draw, Context_DrawText):
1223*766ce4d0SZheng Fan         	case CombinedEnumContext(Application_Impress, Context_DrawText):
1224*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Draw, Context_Draw):
1225*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Draw, Context_TextObject):
1226*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Draw, Context_Graphic):
1227*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Impress, Context_Draw):
1228*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Impress, Context_TextObject):
1229*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Impress, Context_Graphic):
1230*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Impress, Context_Table):
1231*766ce4d0SZheng Fan         	case CombinedEnumContext(Application_Draw, Context_Table):
1232*766ce4d0SZheng Fan 		{
1233*766ce4d0SZheng Fan     		maLeftIndent->SetMin( DEFAULT_VALUE );
1234*766ce4d0SZheng Fan 			maRightIndent->SetMin( DEFAULT_VALUE );
1235*766ce4d0SZheng Fan 			maFLineIndent->SetMin( DEFAULT_VALUE );
1236*766ce4d0SZheng Fan 			maTbxIndent_IncDec->Hide();
1237*766ce4d0SZheng Fan 			maTbxProDemote->Show();
1238*766ce4d0SZheng Fan 		}
1239*766ce4d0SZheng Fan 		break;
1240*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Writer, Context_Default):
1241*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Writer, Context_Text):
1242*766ce4d0SZheng Fan 		case CombinedEnumContext(Application_Writer, Context_Table):
1243*766ce4d0SZheng Fan 		{
1244*766ce4d0SZheng Fan 			maLeftIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM );
1245*766ce4d0SZheng Fan 			maRightIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM );
1246*766ce4d0SZheng Fan 			maFLineIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM );
1247*766ce4d0SZheng Fan 			maTbxIndent_IncDec->Show();
1248*766ce4d0SZheng Fan 			maTbxProDemote->Hide();
1249*766ce4d0SZheng Fan 		}
1250*766ce4d0SZheng Fan 		break;
1251*766ce4d0SZheng Fan 	}
1252*766ce4d0SZheng Fan 
1253*766ce4d0SZheng Fan 	if( pState && eState >= SFX_ITEM_AVAILABLE )
1254*766ce4d0SZheng Fan 	{
1255*766ce4d0SZheng Fan 		SvxLRSpaceItem* pSpace = ( SvxLRSpaceItem*)pState;
1256*766ce4d0SZheng Fan 		maTxtLeft = pSpace->GetTxtLeft();
1257*766ce4d0SZheng Fan 		maTxtLeft = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM );
1258*766ce4d0SZheng Fan 		maTxtLeft = OutputDevice::LogicToLogic( maTxtLeft, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) );
1259*766ce4d0SZheng Fan 
1260*766ce4d0SZheng Fan 		long aTxtRight = pSpace->GetRight();
1261*766ce4d0SZheng Fan 		aTxtRight = OutputDevice::LogicToLogic( aTxtRight, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM );
1262*766ce4d0SZheng Fan 		aTxtRight = OutputDevice::LogicToLogic( aTxtRight, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) );
1263*766ce4d0SZheng Fan 
1264*766ce4d0SZheng Fan 		long aTxtFirstLineOfst = pSpace->GetTxtFirstLineOfst();
1265*766ce4d0SZheng Fan 		aTxtFirstLineOfst = OutputDevice::LogicToLogic( aTxtFirstLineOfst, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM );
1266*766ce4d0SZheng Fan 		aTxtFirstLineOfst = OutputDevice::LogicToLogic( aTxtFirstLineOfst, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) );
1267*766ce4d0SZheng Fan 
1268*766ce4d0SZheng Fan 		long nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
1269*766ce4d0SZheng Fan 		nVal = (long)maLeftIndent->Normalize( (long)nVal );
1270*766ce4d0SZheng Fan 		maLeftIndent->SetValue( nVal, FUNIT_100TH_MM );
1271*766ce4d0SZheng Fan 
1272*766ce4d0SZheng Fan 		if(maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) &&
1273*766ce4d0SZheng Fan 			maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) &&
1274*766ce4d0SZheng Fan 			maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table))
1275*766ce4d0SZheng Fan 		{
1276*766ce4d0SZheng Fan 			maFLineIndent->SetMin( nVal*(-1), FUNIT_100TH_MM );
1277*766ce4d0SZheng Fan 		}
1278*766ce4d0SZheng Fan 
1279*766ce4d0SZheng Fan 		long nrVal = OutputDevice::LogicToLogic( aTxtRight, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
1280*766ce4d0SZheng Fan 		nrVal = (long)maRightIndent->Normalize( (long)nrVal );
1281*766ce4d0SZheng Fan 	    maRightIndent->SetValue( nrVal, FUNIT_100TH_MM );
1282*766ce4d0SZheng Fan 
1283*766ce4d0SZheng Fan 		long nfVal = OutputDevice::LogicToLogic( aTxtFirstLineOfst, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
1284*766ce4d0SZheng Fan 		nfVal = (long)maFLineIndent->Normalize( (long)nfVal );
1285*766ce4d0SZheng Fan 		maFLineIndent->SetValue( nfVal, FUNIT_100TH_MM );
1286*766ce4d0SZheng Fan 
1287*766ce4d0SZheng Fan 		switch (maContext.GetCombinedContext())
1288*766ce4d0SZheng Fan 		{
1289*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Writer, Context_DrawText):
1290*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Writer, Context_Text):
1291*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Writer, Context_Default):
1292*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Writer, Context_Table):
1293*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Writer, Context_Annotation):
1294*766ce4d0SZheng Fan 			{
1295*766ce4d0SZheng Fan 				maLeftIndent->SetMax( MAX_SW - nrVal, FUNIT_100TH_MM );
1296*766ce4d0SZheng Fan 				maRightIndent->SetMax( MAX_SW - nVal, FUNIT_100TH_MM );
1297*766ce4d0SZheng Fan 				maFLineIndent->SetMax( MAX_SW - nVal - nrVal, FUNIT_100TH_MM );
1298*766ce4d0SZheng Fan 			}
1299*766ce4d0SZheng Fan 			break;
1300*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Draw, Context_DrawText):
1301*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Draw, Context_Draw):
1302*766ce4d0SZheng Fan         		case CombinedEnumContext(Application_Draw, Context_Table):
1303*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Draw, Context_TextObject):
1304*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Draw, Context_Graphic):
1305*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Impress, Context_TextObject):
1306*766ce4d0SZheng Fan         		case CombinedEnumContext(Application_Impress, Context_DrawText):
1307*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Impress, Context_Table):
1308*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Impress, Context_Draw):
1309*766ce4d0SZheng Fan 			case CombinedEnumContext(Application_Impress, Context_Graphic):
1310*766ce4d0SZheng Fan 			{
1311*766ce4d0SZheng Fan 				maLeftIndent->SetMax( MAX_SC_SD - nrVal, FUNIT_100TH_MM );
1312*766ce4d0SZheng Fan 				maRightIndent->SetMax( MAX_SC_SD - nVal, FUNIT_100TH_MM );
1313*766ce4d0SZheng Fan 				maFLineIndent->SetMax( MAX_SC_SD - nVal - nrVal, FUNIT_100TH_MM );
1314*766ce4d0SZheng Fan 			}
1315*766ce4d0SZheng Fan 		}
1316*766ce4d0SZheng Fan 
1317*766ce4d0SZheng Fan 		maTbxIndent_IncDec->Enable();
1318*766ce4d0SZheng Fan 		maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_True);
1319*766ce4d0SZheng Fan 		if(maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text)
1320*766ce4d0SZheng Fan 			&& maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default)
1321*766ce4d0SZheng Fan 			&& maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table))
1322*766ce4d0SZheng Fan 		{
1323*766ce4d0SZheng Fan 			maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_INC, sal_True);
1324*766ce4d0SZheng Fan 			maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_True);
1325*766ce4d0SZheng Fan 		}
1326*766ce4d0SZheng Fan 
1327*766ce4d0SZheng Fan 		maTbxProDemote->Enable();
1328*766ce4d0SZheng Fan 		if( !mbOutLineRight && !mbOutLineLeft )
1329*766ce4d0SZheng Fan 			maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True);
1330*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True);
1331*766ce4d0SZheng Fan 	}
1332*766ce4d0SZheng Fan 	else if( eState == SFX_ITEM_DISABLED )
1333*766ce4d0SZheng Fan 	{
1334*766ce4d0SZheng Fan 		maLeftIndent-> Disable();
1335*766ce4d0SZheng Fan 		maRightIndent->Disable();
1336*766ce4d0SZheng Fan 		maFLineIndent->Disable();
1337*766ce4d0SZheng Fan 		maTbxIndent_IncDec->Disable();
1338*766ce4d0SZheng Fan 		if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text)  &&
1339*766ce4d0SZheng Fan 			maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) &&
1340*766ce4d0SZheng Fan 			maContext.GetCombinedContext() !=  CombinedEnumContext(Application_Writer, Context_Table) )
1341*766ce4d0SZheng Fan 			maTbxIndent_IncDec->Disable();
1342*766ce4d0SZheng Fan 		else
1343*766ce4d0SZheng Fan 			maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_False);
1344*766ce4d0SZheng Fan 
1345*766ce4d0SZheng Fan 		maTbxProDemote->Disable();
1346*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False);
1347*766ce4d0SZheng Fan 	}
1348*766ce4d0SZheng Fan 	else
1349*766ce4d0SZheng Fan 	{
1350*766ce4d0SZheng Fan 		maLeftIndent->SetEmptyFieldValue();
1351*766ce4d0SZheng Fan 		maRightIndent->SetEmptyFieldValue();
1352*766ce4d0SZheng Fan 		maFLineIndent->SetEmptyFieldValue();
1353*766ce4d0SZheng Fan 		if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text)  &&
1354*766ce4d0SZheng Fan 			maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) &&
1355*766ce4d0SZheng Fan 			maContext.GetCombinedContext() !=  CombinedEnumContext(Application_Writer, Context_Table) )
1356*766ce4d0SZheng Fan 			maTbxIndent_IncDec->Disable();
1357*766ce4d0SZheng Fan 		else
1358*766ce4d0SZheng Fan 			maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_False);
1359*766ce4d0SZheng Fan 		maTbxProDemote->Disable();
1360*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False);
1361*766ce4d0SZheng Fan 	}
1362*766ce4d0SZheng Fan }
1363*766ce4d0SZheng Fan 
1364*766ce4d0SZheng Fan void ParaPropertyPanel::StateChangedLnSPImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
1365*766ce4d0SZheng Fan {
1366*766ce4d0SZheng Fan 	meLnSpState = eState;
1367*766ce4d0SZheng Fan 
1368*766ce4d0SZheng Fan 	if( pState && eState >= SFX_ITEM_AVAILABLE )
1369*766ce4d0SZheng Fan 	{
1370*766ce4d0SZheng Fan 		if(mpLnSPItem)
1371*766ce4d0SZheng Fan 			delete mpLnSPItem;
1372*766ce4d0SZheng Fan 		mpLnSPItem = ( SvxLineSpacingItem *)pState->Clone();
1373*766ce4d0SZheng Fan 	}
1374*766ce4d0SZheng Fan }
1375*766ce4d0SZheng Fan 
1376*766ce4d0SZheng Fan void ParaPropertyPanel::StateChangedULImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
1377*766ce4d0SZheng Fan {
1378*766ce4d0SZheng Fan 	maTopDist->SetMax( maTopDist->Normalize( MAX_DURCH ), MapToFieldUnit(m_eULSpaceUnit) );
1379*766ce4d0SZheng Fan 	maBottomDist->SetMax( maBottomDist->Normalize( MAX_DURCH ), MapToFieldUnit(m_eULSpaceUnit) );
1380*766ce4d0SZheng Fan 
1381*766ce4d0SZheng Fan 	if( pState && eState >= SFX_ITEM_AVAILABLE )
1382*766ce4d0SZheng Fan 	{
1383*766ce4d0SZheng Fan 		SvxULSpaceItem* pOldItem = (SvxULSpaceItem*)pState;
1384*766ce4d0SZheng Fan 
1385*766ce4d0SZheng Fan 		maUpper = pOldItem->GetUpper();
1386*766ce4d0SZheng Fan 		maUpper = OutputDevice::LogicToLogic( maUpper, (MapUnit)m_eULSpaceUnit, MAP_100TH_MM );
1387*766ce4d0SZheng Fan 		maUpper = OutputDevice::LogicToLogic( maUpper, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) );
1388*766ce4d0SZheng Fan 
1389*766ce4d0SZheng Fan 		maLower = pOldItem->GetLower();
1390*766ce4d0SZheng Fan 		maLower = OutputDevice::LogicToLogic( maLower, (MapUnit)m_eULSpaceUnit, MAP_100TH_MM );
1391*766ce4d0SZheng Fan 		maLower = OutputDevice::LogicToLogic( maLower, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) );
1392*766ce4d0SZheng Fan 
1393*766ce4d0SZheng Fan 		sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
1394*766ce4d0SZheng Fan 		nVal = maTopDist->Normalize( nVal );
1395*766ce4d0SZheng Fan 		maTopDist->SetValue( nVal, FUNIT_100TH_MM );
1396*766ce4d0SZheng Fan 
1397*766ce4d0SZheng Fan 		nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
1398*766ce4d0SZheng Fan 		nVal = maBottomDist->Normalize( nVal );
1399*766ce4d0SZheng Fan 		maBottomDist->SetValue( nVal, FUNIT_100TH_MM );
1400*766ce4d0SZheng Fan 		maTbxUL_IncDec->Enable();
1401*766ce4d0SZheng Fan 	}
1402*766ce4d0SZheng Fan 	else if(nSID == SID_ATTR_ULSPACE && eState == SFX_ITEM_DISABLED )
1403*766ce4d0SZheng Fan 	{
1404*766ce4d0SZheng Fan 		maTopDist->Disable();
1405*766ce4d0SZheng Fan 		maBottomDist->Disable();
1406*766ce4d0SZheng Fan 		maTbxUL_IncDec->Disable();
1407*766ce4d0SZheng Fan 	}
1408*766ce4d0SZheng Fan 	else if (nSID == SID_ATTR_ULSPACE)
1409*766ce4d0SZheng Fan 	{
1410*766ce4d0SZheng Fan 		maTopDist->SetEmptyFieldValue();
1411*766ce4d0SZheng Fan 		maBottomDist->SetEmptyFieldValue();
1412*766ce4d0SZheng Fan 		maTbxUL_IncDec->Disable();
1413*766ce4d0SZheng Fan 	}
1414*766ce4d0SZheng Fan }
1415*766ce4d0SZheng Fan 
1416*766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeOutLineImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
1417*766ce4d0SZheng Fan {
1418*766ce4d0SZheng Fan     if (nSID==SID_OUTLINE_LEFT)
1419*766ce4d0SZheng Fan 	{
1420*766ce4d0SZheng Fan 		if( pState && eState == SFX_ITEM_UNKNOWN )
1421*766ce4d0SZheng Fan 			mbOutLineLeft = 1;
1422*766ce4d0SZheng Fan 		else
1423*766ce4d0SZheng Fan 			mbOutLineLeft = 0;
1424*766ce4d0SZheng Fan 	}
1425*766ce4d0SZheng Fan 	if (nSID==SID_OUTLINE_RIGHT)
1426*766ce4d0SZheng Fan 	{
1427*766ce4d0SZheng Fan 		if( pState && eState == SFX_ITEM_UNKNOWN )
1428*766ce4d0SZheng Fan 			mbOutLineRight = 1;
1429*766ce4d0SZheng Fan 		else
1430*766ce4d0SZheng Fan 			mbOutLineRight = 0;
1431*766ce4d0SZheng Fan 	}
1432*766ce4d0SZheng Fan 	if(mbOutLineLeft)
1433*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_True);
1434*766ce4d0SZheng Fan 	else
1435*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_False);
1436*766ce4d0SZheng Fan 
1437*766ce4d0SZheng Fan 	if(mbOutLineRight)
1438*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_True);
1439*766ce4d0SZheng Fan 	else
1440*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_False);
1441*766ce4d0SZheng Fan 
1442*766ce4d0SZheng Fan 	if( !mbOutLineRight && !mbOutLineLeft )
1443*766ce4d0SZheng Fan 	{
1444*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_True);
1445*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_True);
1446*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True);
1447*766ce4d0SZheng Fan 	}
1448*766ce4d0SZheng Fan 	else
1449*766ce4d0SZheng Fan 		maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False);
1450*766ce4d0SZheng Fan }
1451*766ce4d0SZheng Fan 
1452*766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeIncDecImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
1453*766ce4d0SZheng Fan {
1454*766ce4d0SZheng Fan 	if (nSID==SID_INC_INDENT)
1455*766ce4d0SZheng Fan 	{
1456*766ce4d0SZheng Fan 		if( pState && eState == SFX_ITEM_UNKNOWN )
1457*766ce4d0SZheng Fan 			maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_INC, sal_True);
1458*766ce4d0SZheng Fan 		else
1459*766ce4d0SZheng Fan 			if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text)  &&
1460*766ce4d0SZheng Fan 				maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) &&
1461*766ce4d0SZheng Fan 			maContext.GetCombinedContext() !=  CombinedEnumContext(Application_Writer, Context_Table) )
1462*766ce4d0SZheng Fan 				maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_INC, sal_False);
1463*766ce4d0SZheng Fan 	}
1464*766ce4d0SZheng Fan 	if (nSID==SID_DEC_INDENT)
1465*766ce4d0SZheng Fan 	{
1466*766ce4d0SZheng Fan 		if( pState && eState == SFX_ITEM_UNKNOWN )
1467*766ce4d0SZheng Fan 			maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_True);
1468*766ce4d0SZheng Fan 		else
1469*766ce4d0SZheng Fan 			if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text)  &&
1470*766ce4d0SZheng Fan 				maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) &&
1471*766ce4d0SZheng Fan 			maContext.GetCombinedContext() !=  CombinedEnumContext(Application_Writer, Context_Table) )
1472*766ce4d0SZheng Fan 				maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_False);
1473*766ce4d0SZheng Fan 	}
1474*766ce4d0SZheng Fan }
1475*766ce4d0SZheng Fan //Sym3_1093. Add toggle state for numbering and bullet icons
1476*766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeBulletNumImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
1477*766ce4d0SZheng Fan {
1478*766ce4d0SZheng Fan 	if (nSID==FN_NUM_NUMBERING_ON)
1479*766ce4d0SZheng Fan 	{
1480*766ce4d0SZheng Fan 		if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem)))
1481*766ce4d0SZheng Fan 		{
1482*766ce4d0SZheng Fan 			const SfxBoolItem* pItem= (const SfxBoolItem*)pState;
1483*766ce4d0SZheng Fan 			sal_Bool aBool = (sal_Bool)pItem->GetValue();
1484*766ce4d0SZheng Fan 			if (aBool) {
1485*766ce4d0SZheng Fan 				maTBxNumBullet->SetItemState(IID_NUMBER,	STATE_CHECK);
1486*766ce4d0SZheng Fan 			} else {
1487*766ce4d0SZheng Fan 				maTBxNumBullet->SetItemState(IID_NUMBER,	STATE_NOCHECK);
1488*766ce4d0SZheng Fan 			}
1489*766ce4d0SZheng Fan 		}
1490*766ce4d0SZheng Fan 	}
1491*766ce4d0SZheng Fan 	if (nSID==FN_NUM_BULLET_ON)
1492*766ce4d0SZheng Fan 	{
1493*766ce4d0SZheng Fan 		if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem)))
1494*766ce4d0SZheng Fan 		{
1495*766ce4d0SZheng Fan 			const SfxBoolItem* pItem= (const SfxBoolItem*)pState;
1496*766ce4d0SZheng Fan 			sal_Bool aBool = (sal_Bool)pItem->GetValue();
1497*766ce4d0SZheng Fan 			if (aBool) {
1498*766ce4d0SZheng Fan 				maTBxNumBullet->SetItemState(IID_BULLET,	STATE_CHECK);
1499*766ce4d0SZheng Fan 			} else {
1500*766ce4d0SZheng Fan 				maTBxNumBullet->SetItemState(IID_BULLET,	STATE_NOCHECK);
1501*766ce4d0SZheng Fan 			}
1502*766ce4d0SZheng Fan 		}
1503*766ce4d0SZheng Fan 	}
1504*766ce4d0SZheng Fan }
1505*766ce4d0SZheng Fan //Modified for Numbering&Bullets Dialog UX Enh(Story 992) by chengjh,2011.7.5
1506*766ce4d0SZheng Fan //Handing the transferred the num rule index data of the current selection
1507*766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeBulletNumRuleImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
1508*766ce4d0SZheng Fan {
1509*766ce4d0SZheng Fan 
1510*766ce4d0SZheng Fan 	const SfxUInt16Item* pIt = (const SfxUInt16Item*)pState;
1511*766ce4d0SZheng Fan 	sal_uInt16 nValue = (sal_uInt16)0xFFFF;
1512*766ce4d0SZheng Fan 	if ( pIt )
1513*766ce4d0SZheng Fan 		nValue = pIt->GetValue();
1514*766ce4d0SZheng Fan 
1515*766ce4d0SZheng Fan 	if ( nSID == FN_BUL_NUM_RULE_INDEX )
1516*766ce4d0SZheng Fan 	{
1517*766ce4d0SZheng Fan 		nBulletTypeIndex = nValue;
1518*766ce4d0SZheng Fan 	}else if ( nSID == FN_NUM_NUM_RULE_INDEX )
1519*766ce4d0SZheng Fan 	{
1520*766ce4d0SZheng Fan 		nNumTypeIndex = nValue;
1521*766ce4d0SZheng Fan 	}
1522*766ce4d0SZheng Fan }
1523*766ce4d0SZheng Fan //End
1524*766ce4d0SZheng Fan FieldUnit ParaPropertyPanel::GetCurrentUnit( SfxItemState eState, const SfxPoolItem* pState )
1525*766ce4d0SZheng Fan {
1526*766ce4d0SZheng Fan 	FieldUnit eUnit = FUNIT_NONE;
1527*766ce4d0SZheng Fan 
1528*766ce4d0SZheng Fan 	if ( pState && eState >= SFX_ITEM_DEFAULT )
1529*766ce4d0SZheng Fan 		eUnit = (FieldUnit)( (const SfxUInt16Item*)pState )->GetValue();
1530*766ce4d0SZheng Fan 	else
1531*766ce4d0SZheng Fan 	{
1532*766ce4d0SZheng Fan 		SfxViewFrame* pFrame = SfxViewFrame::Current();
1533*766ce4d0SZheng Fan 		SfxObjectShell* pSh = NULL;
1534*766ce4d0SZheng Fan 		if ( pFrame )
1535*766ce4d0SZheng Fan 			pSh = pFrame->GetObjectShell();
1536*766ce4d0SZheng Fan 		if ( pSh )  //the object shell is not always available during reload
1537*766ce4d0SZheng Fan 		{
1538*766ce4d0SZheng Fan 			SfxModule* pModule = pSh->GetModule();
1539*766ce4d0SZheng Fan 			if ( pModule )
1540*766ce4d0SZheng Fan 			{
1541*766ce4d0SZheng Fan 				const SfxPoolItem* pItem = pModule->GetItem( SID_ATTR_METRIC );
1542*766ce4d0SZheng Fan 				if ( pItem )
1543*766ce4d0SZheng Fan 					eUnit = (FieldUnit)( (SfxUInt16Item*)pItem )->GetValue();
1544*766ce4d0SZheng Fan 			}
1545*766ce4d0SZheng Fan 			else
1546*766ce4d0SZheng Fan 			{
1547*766ce4d0SZheng Fan 				DBG_ERRORFILE( "GetModuleFieldUnit(): no module found" );
1548*766ce4d0SZheng Fan 			}
1549*766ce4d0SZheng Fan 		}
1550*766ce4d0SZheng Fan 	}
1551*766ce4d0SZheng Fan 
1552*766ce4d0SZheng Fan 	return eUnit;
1553*766ce4d0SZheng Fan }
1554*766ce4d0SZheng Fan //new FixedText(this, SVX_RES(FT_COLOR))
1555*766ce4d0SZheng Fan 
1556*766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateLineSpacingControl (PopupContainer* pParent)
1557*766ce4d0SZheng Fan {
1558*766ce4d0SZheng Fan 	return new ParaLineSpacingControl(pParent, *this);
1559*766ce4d0SZheng Fan }
1560*766ce4d0SZheng Fan 
1561*766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateBulletsPopupControl (PopupContainer* pParent)
1562*766ce4d0SZheng Fan {
1563*766ce4d0SZheng Fan 	return new ParaBulletsControl(pParent, *this);
1564*766ce4d0SZheng Fan }
1565*766ce4d0SZheng Fan 
1566*766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateNumberingPopupControl (PopupContainer* pParent)
1567*766ce4d0SZheng Fan {
1568*766ce4d0SZheng Fan 	return new ParaNumberingControl(pParent, *this);
1569*766ce4d0SZheng Fan }
1570*766ce4d0SZheng Fan 
1571*766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateBGColorPopupControl (PopupContainer* pParent)
1572*766ce4d0SZheng Fan {
1573*766ce4d0SZheng Fan 	return new ColorControl(
1574*766ce4d0SZheng Fan         pParent,
1575*766ce4d0SZheng Fan         mpBindings,
1576*766ce4d0SZheng Fan         SVX_RES(RID_POPUPPANEL_TEXTPAGE_FONT_COLOR),
1577*766ce4d0SZheng Fan         SVX_RES(VS_FONT_COLOR),
1578*766ce4d0SZheng Fan         ::boost::bind(&ParaPropertyPanel::GetBGColor, this),
1579*766ce4d0SZheng Fan         ::boost::bind(&ParaPropertyPanel::SetBGColor, this, _1,_2),
1580*766ce4d0SZheng Fan         pParent,
1581*766ce4d0SZheng Fan         0);
1582*766ce4d0SZheng Fan }
1583*766ce4d0SZheng Fan 
1584*766ce4d0SZheng Fan 
1585*766ce4d0SZheng Fan ParaPropertyPanel::ParaPropertyPanel(Window* pParent,
1586*766ce4d0SZheng Fan     const cssu::Reference<css::frame::XFrame>& rxFrame,
1587*766ce4d0SZheng Fan     SfxBindings* pBindings)
1588*766ce4d0SZheng Fan :	Control(pParent, SVX_RES(RID_SIDEBAR_PARA_PANEL))
1589*766ce4d0SZheng Fan //, mnContextId			(PROPERTY_CONTEXT_NOT_SUPPORT)
1590*766ce4d0SZheng Fan //Alignment
1591*766ce4d0SZheng Fan ,maAlignToolBoxBackground(ControlFactory::CreateToolBoxBackground(this))
1592*766ce4d0SZheng Fan , maAlignToolBox          (ControlFactory::CreateToolBox(maAlignToolBoxBackground.get(),SVX_RES(TBX_HORIZONTALALIGNMENT)))
1593*766ce4d0SZheng Fan ,maTBxVertAlignBackground(ControlFactory::CreateToolBoxBackground(this))
1594*766ce4d0SZheng Fan , maTBxVertAlign	(ControlFactory::CreateToolBox(maTBxVertAlignBackground.get(),SVX_RES(TBX_VERT_ALIGN)))
1595*766ce4d0SZheng Fan , maLeftPara              (SVX_RES(IMG_LEFT_PARA))
1596*766ce4d0SZheng Fan , maCentPara              (SVX_RES(IMG_CENTER_PARA))
1597*766ce4d0SZheng Fan , maRightPara             (SVX_RES(IMG_RIGHT_PARA))
1598*766ce4d0SZheng Fan , maJusPara               (SVX_RES(IMG_JUSTIFY_PARA))
1599*766ce4d0SZheng Fan , maVertImageList		  (SVX_RES(IL_VERT_ALIGN))
1600*766ce4d0SZheng Fan , maVertImageListH		  (SVX_RES(IL_VERT_ALIGN))
1601*766ce4d0SZheng Fan //Num&Backcolor
1602*766ce4d0SZheng Fan ,maTBxNumBulletBackground(ControlFactory::CreateToolBoxBackground(this))
1603*766ce4d0SZheng Fan , maTBxNumBullet		  (ControlFactory::CreateToolBox(maTBxNumBulletBackground.get(),SVX_RES(TBX_NUM_BULLET)))
1604*766ce4d0SZheng Fan ,maTBxBackColorBackground(ControlFactory::CreateToolBoxBackground(this))
1605*766ce4d0SZheng Fan , maTBxBackColor		  (ControlFactory::CreateToolBox(maTBxBackColorBackground.get(),SVX_RES(TBX_BACK_COLOR)))
1606*766ce4d0SZheng Fan , maNumBImageList		  (SVX_RES(IL_NUM_BULLET))
1607*766ce4d0SZheng Fan , maNumBImageListH		  (SVX_RES(ILH_NUM_BULLET))
1608*766ce4d0SZheng Fan , maNumBImageListRTL	  (SVX_RES(IL_NUM_BULLET_RTL))	//wj sym2_7380
1609*766ce4d0SZheng Fan , maImgBackColorHigh	  (SVX_RES(IMG_BACK_COLOR_H))
1610*766ce4d0SZheng Fan , maImgBackColor		  (SVX_RES(IMG_BACK_COLOR))
1611*766ce4d0SZheng Fan , mpColorUpdater		  ()
1612*766ce4d0SZheng Fan , maColor				  (COL_AUTO)
1613*766ce4d0SZheng Fan , mbColorAvailable		  (sal_True)
1614*766ce4d0SZheng Fan //Paragraph spacing
1615*766ce4d0SZheng Fan , maFTUL                  (new FixedText(this, SVX_RES(FT_SPACING)))
1616*766ce4d0SZheng Fan ,maTbxUL_IncDecBackground(ControlFactory::CreateToolBoxBackground(this))
1617*766ce4d0SZheng Fan , maTbxUL_IncDec          (ControlFactory::CreateToolBox(maTbxUL_IncDecBackground.get(),SVX_RES(TBX_UL_INC_DEC)))
1618*766ce4d0SZheng Fan , maParInc                (SVX_RES(IMG_PARA_INC))
1619*766ce4d0SZheng Fan , maParDec                (SVX_RES(IMG_PARA_DEC))
1620*766ce4d0SZheng Fan , maTopDist				  (new SvxRelativeField(this, SVX_RES(MF_ABOVE_PARASPACING)))
1621*766ce4d0SZheng Fan , maBottomDist            (new SvxRelativeField(this, SVX_RES(MF_BELOW_PARASPACING)))
1622*766ce4d0SZheng Fan //Indent
1623*766ce4d0SZheng Fan , maFTIndent              (new FixedText(this, SVX_RES(FT_INDENT)))
1624*766ce4d0SZheng Fan ,maTbxIndent_IncDecBackground(ControlFactory::CreateToolBoxBackground(this))
1625*766ce4d0SZheng Fan , maTbxIndent_IncDec      (ControlFactory::CreateToolBox(maTbxIndent_IncDecBackground.get(),SVX_RES(TBX_INDENT_INC_DEC)))
1626*766ce4d0SZheng Fan ,maTbxProDemoteBackground(ControlFactory::CreateToolBoxBackground(this))
1627*766ce4d0SZheng Fan , maTbxProDemote          (ControlFactory::CreateToolBox(maTbxProDemoteBackground.get(),SVX_RES(TBX_INDENT_PRO_DEMOTE)))
1628*766ce4d0SZheng Fan , maLeftIndent			  (new SvxRelativeField(this, SVX_RES(MF_BEFORE_INDENT)))
1629*766ce4d0SZheng Fan , maRightIndent			  (new SvxRelativeField(this, SVX_RES(MF_AFTER_INDENT)))
1630*766ce4d0SZheng Fan , maFLineIndent			  (new SvxRelativeField(this, SVX_RES(MF_FL_INDENT)))
1631*766ce4d0SZheng Fan , maIndInc                (SVX_RES(IMG_INDENT_INC))
1632*766ce4d0SZheng Fan , maIndDec                (SVX_RES(IMG_INDENT_DEC))
1633*766ce4d0SZheng Fan , maIndInc_BD             (SVX_RES(IMG_INDENT_INC_BD))
1634*766ce4d0SZheng Fan , maIndDec_BD             (SVX_RES(IMG_INDENT_DEC_BD))
1635*766ce4d0SZheng Fan , maIndHang				  (SVX_RES(IMG_INDENT_HANG))
1636*766ce4d0SZheng Fan , maTxtLeft               (0)
1637*766ce4d0SZheng Fan //Line spacing
1638*766ce4d0SZheng Fan ,maLineSPTbxBackground(ControlFactory::CreateToolBoxBackground(this))
1639*766ce4d0SZheng Fan , maLineSPTbx             (ControlFactory::CreateToolBox(maLineSPTbxBackground.get(),SVX_RES(TBX_LINESP)))
1640*766ce4d0SZheng Fan , maSpace1                (SVX_RES(IMG_SPACE1))
1641*766ce4d0SZheng Fan , maSpace2                (SVX_RES(IMG_SPACE2))
1642*766ce4d0SZheng Fan , maSpace3                (SVX_RES(IMG_SPACE3))
1643*766ce4d0SZheng Fan , maIndent1               (SVX_RES(IMG_INDENT1))
1644*766ce4d0SZheng Fan , maIndent2               (SVX_RES(IMG_INDENT2))
1645*766ce4d0SZheng Fan , maIndent3               (SVX_RES(IMG_INDENT3))
1646*766ce4d0SZheng Fan , maLineSpacePopup(this, ::boost::bind(&ParaPropertyPanel::CreateLineSpacingControl, this, _1))
1647*766ce4d0SZheng Fan , maBulletsPopup(this, ::boost::bind(&ParaPropertyPanel::CreateBulletsPopupControl, this, _1))
1648*766ce4d0SZheng Fan , maNumberingPopup(this, ::boost::bind(&ParaPropertyPanel::CreateNumberingPopupControl, this, _1))
1649*766ce4d0SZheng Fan , maBGColorPopup(this, ::boost::bind(&ParaPropertyPanel::CreateBGColorPopupControl, this, _1))
1650*766ce4d0SZheng Fan //Controller
1651*766ce4d0SZheng Fan , maLeftAlignControl      (SID_ATTR_PARA_ADJUST_LEFT, *pBindings,*this)
1652*766ce4d0SZheng Fan , maCenterAlignControl    (SID_ATTR_PARA_ADJUST_CENTER, *pBindings,*this)
1653*766ce4d0SZheng Fan , maRightAlignControl     (SID_ATTR_PARA_ADJUST_RIGHT, *pBindings,*this)
1654*766ce4d0SZheng Fan , maJustifyAlignControl   (SID_ATTR_PARA_ADJUST_BLOCK, *pBindings,*this)
1655*766ce4d0SZheng Fan , maLRSpaceControl        (SID_ATTR_PARA_LRSPACE,*pBindings,*this)
1656*766ce4d0SZheng Fan , maLNSpaceControl        (SID_ATTR_PARA_LINESPACE, *pBindings,*this)
1657*766ce4d0SZheng Fan , maULSpaceControl        (SID_ATTR_PARA_ULSPACE, *pBindings,*this)
1658*766ce4d0SZheng Fan , maOutLineLeftControl    (SID_OUTLINE_LEFT, *pBindings,*this)
1659*766ce4d0SZheng Fan , maOutLineRightControl   (SID_OUTLINE_RIGHT, *pBindings,*this)
1660*766ce4d0SZheng Fan , maIncIndentControl	  (SID_INC_INDENT, *pBindings,*this)
1661*766ce4d0SZheng Fan , maDecIndentControl      (SID_DEC_INDENT, *pBindings,*this)
1662*766ce4d0SZheng Fan , maVertTop				  (SID_TABLE_VERT_NONE, *pBindings,*this)
1663*766ce4d0SZheng Fan , maVertCenter			  (SID_TABLE_VERT_CENTER, *pBindings,*this)
1664*766ce4d0SZheng Fan , maVertBottom			  (SID_TABLE_VERT_BOTTOM,*pBindings,*this)
1665*766ce4d0SZheng Fan , maBulletOnOff			  (FN_NUM_BULLET_ON, *pBindings,*this)
1666*766ce4d0SZheng Fan , maNumberOnOff			  (FN_NUM_NUMBERING_ON, *pBindings,*this)
1667*766ce4d0SZheng Fan //Modified for Numbering&Bullets Dialog UX Enh(Story 992) by chengjh,2011.7.5
1668*766ce4d0SZheng Fan //Add entry to transfer number rule index data
1669*766ce4d0SZheng Fan ,maBulletNumRuleIndex		(FN_BUL_NUM_RULE_INDEX, *pBindings,*this)
1670*766ce4d0SZheng Fan ,maNumNumRuleIndex		(FN_NUM_NUM_RULE_INDEX, *pBindings,*this)
1671*766ce4d0SZheng Fan //End
1672*766ce4d0SZheng Fan , maBackColorControl      (SID_BACKGROUND_COLOR,	*pBindings,*this)
1673*766ce4d0SZheng Fan , m_aMetricCtl			  (SID_ATTR_METRIC, *pBindings,*this)
1674*766ce4d0SZheng Fan //, m_eMetricUnit			  (FUNIT_INCH)
1675*766ce4d0SZheng Fan //, m_last_eMetricUnit      (FUNIT_INCH)
1676*766ce4d0SZheng Fan //internal var
1677*766ce4d0SZheng Fan , maUpper                       (0)
1678*766ce4d0SZheng Fan , maLower                       (0)
1679*766ce4d0SZheng Fan , mpLnSPItem					(NULL)
1680*766ce4d0SZheng Fan , meLnSpState					(SFX_ITEM_DONTCARE)
1681*766ce4d0SZheng Fan , maFISpace1                    ( this, SVX_RES( FI_SPACE1))
1682*766ce4d0SZheng Fan , maFISpace2                    ( this, SVX_RES( FI_SPACE2))
1683*766ce4d0SZheng Fan , maFIndent1                    ( this, SVX_RES( FI_INDENT1))
1684*766ce4d0SZheng Fan , maFIndent2                    ( this, SVX_RES( FI_INDENT2))
1685*766ce4d0SZheng Fan , maFIndent3                    ( this, SVX_RES( FI_INDENT3))
1686*766ce4d0SZheng Fan , mbOutLineRight				(0)
1687*766ce4d0SZheng Fan , mbOutLineLeft					(0)
1688*766ce4d0SZheng Fan ,nBulletTypeIndex ((sal_uInt16)0xFFFF)
1689*766ce4d0SZheng Fan ,nNumTypeIndex ((sal_uInt16)0xFFFF)
1690*766ce4d0SZheng Fan //End
1691*766ce4d0SZheng Fan ,mpBindings(pBindings)
1692*766ce4d0SZheng Fan {
1693*766ce4d0SZheng Fan 	initial();
1694*766ce4d0SZheng Fan 	FreeResource();
1695*766ce4d0SZheng Fan }
1696*766ce4d0SZheng Fan 
1697*766ce4d0SZheng Fan }}
1698