1766ce4d0SZheng Fan /************************************************************** 2766ce4d0SZheng Fan * 3766ce4d0SZheng Fan * Licensed to the Apache Software Foundation (ASF) under one 4766ce4d0SZheng Fan * or more contributor license agreements. See the NOTICE file 5766ce4d0SZheng Fan * distributed with this work for additional information 6766ce4d0SZheng Fan * regarding copyright ownership. The ASF licenses this file 7766ce4d0SZheng Fan * to you under the Apache License, Version 2.0 (the 8766ce4d0SZheng Fan * "License"); you may not use this file except in compliance 9766ce4d0SZheng Fan * with the License. You may obtain a copy of the License at 10766ce4d0SZheng Fan * 11766ce4d0SZheng Fan * http://www.apache.org/licenses/LICENSE-2.0 12766ce4d0SZheng Fan * 13766ce4d0SZheng Fan * Unless required by applicable law or agreed to in writing, 14766ce4d0SZheng Fan * software distributed under the License is distributed on an 15766ce4d0SZheng Fan * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16766ce4d0SZheng Fan * KIND, either express or implied. See the License for the 17766ce4d0SZheng Fan * specific language governing permissions and limitations 18766ce4d0SZheng Fan * under the License. 19766ce4d0SZheng Fan * 20766ce4d0SZheng Fan *************************************************************/ 21766ce4d0SZheng Fan 22766ce4d0SZheng Fan #include "precompiled_svx.hxx" 23766ce4d0SZheng Fan #include <svx/sidebar/ColorControl.hxx> 24766ce4d0SZheng Fan 25766ce4d0SZheng Fan #include "ParaPropertyPanel.hxx" 26766ce4d0SZheng Fan #include "ParaPropertyPanel.hrc" 27766ce4d0SZheng Fan 28766ce4d0SZheng Fan #include "ParaLineSpacingPopup.hxx" 29766ce4d0SZheng Fan #include "ParaLineSpacingControl.hxx" 30766ce4d0SZheng Fan #include "ParaBulletsPopup.hxx" 31766ce4d0SZheng Fan #include "ParaBulletsControl.hxx" 32766ce4d0SZheng Fan #include "ParaNumberingPopup.hxx" 33766ce4d0SZheng Fan #include "ParaNumberingControl.hxx" 34766ce4d0SZheng Fan #include <sfx2/sidebar/Theme.hxx> 35766ce4d0SZheng Fan #include <sfx2/sidebar/propertypanel.hrc> 36766ce4d0SZheng Fan #include <sfx2/sidebar/ControlFactory.hxx> 37766ce4d0SZheng Fan #include <svx/sidebar/PopupContainer.hxx> 38766ce4d0SZheng Fan #include <sfx2/dispatch.hxx> 39766ce4d0SZheng Fan #include <editeng/colritem.hxx> 40766ce4d0SZheng Fan #include <editeng/brshitem.hxx> 41766ce4d0SZheng Fan #include <editeng/lrspitem.hxx> 42766ce4d0SZheng Fan #include <editeng/ulspitem.hxx> 43766ce4d0SZheng Fan #include <vcl/toolbox.hxx> 44766ce4d0SZheng Fan #include <vcl/fixed.hxx> 45766ce4d0SZheng Fan #include <vcl/svapp.hxx> 46766ce4d0SZheng Fan #include <svx/svxids.hrc> 47766ce4d0SZheng Fan #include <svl/intitem.hxx> 48766ce4d0SZheng Fan #include "svx/dialmgr.hxx" 49766ce4d0SZheng Fan #include <sfx2/objsh.hxx> 50766ce4d0SZheng Fan #include <svtools/unitconv.hxx> 51766ce4d0SZheng Fan #include <boost/bind.hpp> 52766ce4d0SZheng Fan using namespace css; 53766ce4d0SZheng Fan using namespace cssu; 54766ce4d0SZheng Fan using ::sfx2::sidebar::Theme; 55766ce4d0SZheng Fan using ::sfx2::sidebar::ControlFactory; 56766ce4d0SZheng Fan 57766ce4d0SZheng Fan #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString))) 58766ce4d0SZheng Fan 59766ce4d0SZheng Fan 60766ce4d0SZheng Fan namespace svx {namespace sidebar { 61766ce4d0SZheng Fan #define DEFAULT_VALUE 0 62766ce4d0SZheng Fan #define TOOLBOX_ITEM1 1 63766ce4d0SZheng Fan #define TOOLBOX_ITEM2 2 64766ce4d0SZheng Fan #define TOOLBOX_ITEM3 3 65766ce4d0SZheng Fan #define TOOLBOX_ITEM4 4 66766ce4d0SZheng Fan 67766ce4d0SZheng Fan #define MAX_DURCH 5670 68766ce4d0SZheng Fan 69766ce4d0SZheng Fan #define INDENT_INCREMENT 1 70766ce4d0SZheng Fan #define INDENT_DECREMENT 2 71766ce4d0SZheng Fan #define INDENT_STEP 706 72766ce4d0SZheng Fan #define UL_STEP 58 73766ce4d0SZheng Fan #define UL_INCREMENT 1 74766ce4d0SZheng Fan #define UL_DECREMENT 2 75766ce4d0SZheng Fan 76766ce4d0SZheng Fan #define NEGATIVE_MAX_VALUE -9999 77766ce4d0SZheng Fan #define BEGIN_VALUE 28 78766ce4d0SZheng Fan #define MAX_SW 1709400 79766ce4d0SZheng Fan #define MAX_SC_SD 116220200 80766ce4d0SZheng Fan #define NEGA_MAXVALUE -10000000 81766ce4d0SZheng Fan 82766ce4d0SZheng Fan #define POS_FT_PARA_SPACE Point(LogicToPixel(Point(FT_PARA_SPACE_X,FT_PARA_SPACE_Y), MAP_APPFONT)) 83766ce4d0SZheng Fan #define POS_FT_PARA_SPACE2 Point(LogicToPixel(Point(FT_PARA_SPACE_X,FT_PARA_SPACE_Y2), MAP_APPFONT)) 84766ce4d0SZheng 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)) 85766ce4d0SZheng 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)) 86766ce4d0SZheng Fan #define POS_FT_PARA_INDENT Point(LogicToPixel(Point(FT_PARA_INDENT_X,FT_PARA_INDENT_Y), MAP_APPFONT)) 87766ce4d0SZheng Fan #define POS_FT_PARA_INDENT2 Point(LogicToPixel(Point(FT_PARA_INDENT_X,FT_PARA_INDENT_Y2), MAP_APPFONT)) 88766ce4d0SZheng 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)) 89766ce4d0SZheng 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)) 90766ce4d0SZheng Fan #define POS_MBX_TOP_DIST Point(LogicToPixel(Point(MBX_TOP_DIST_X,MBX_TOP_DIST_Y), MAP_APPFONT)) 91766ce4d0SZheng Fan #define POS_MBX_TOP_DIST2 Point(LogicToPixel(Point(MBX_TOP_DIST_X,MBX_TOP_DIST_Y2), MAP_APPFONT)) 92766ce4d0SZheng Fan #define POS_MBX_BOT_DIST Point(LogicToPixel(Point(MBX_BOT_DIST_X,MBX_BOT_DIST_Y), MAP_APPFONT)) 93766ce4d0SZheng Fan #define POS_MBX_BOT_DIST2 Point(LogicToPixel(Point(MBX_BOT_DIST_X,MBX_BOT_DIST_Y2), MAP_APPFONT)) 94766ce4d0SZheng Fan #define POS_MBX_LEFT_DIST Point(LogicToPixel(Point(MBX_LEFT_DIST_X,MBX_LEFT_DIST_Y), MAP_APPFONT)) 95766ce4d0SZheng Fan #define POS_MBX_LEFT_DIST2 Point(LogicToPixel(Point(MBX_LEFT_DIST_X,MBX_LEFT_DIST_Y2), MAP_APPFONT)) 96766ce4d0SZheng Fan #define POS_MBX_RIGHT_DIST Point(LogicToPixel(Point(MBX_RIGHT_DIST_X,MBX_RIGHT_DIST_Y), MAP_APPFONT)) 97766ce4d0SZheng Fan #define POS_MBX_RIGHT_DIST2 Point(LogicToPixel(Point(MBX_RIGHT_DIST_X,MBX_RIGHT_DIST_Y2), MAP_APPFONT)) 98766ce4d0SZheng Fan #define POS_MBX_FLINE_DIST Point(LogicToPixel(Point(MBX_FLINE_DIST_X,MBX_FLINE_DIST_Y), MAP_APPFONT)) 99766ce4d0SZheng Fan #define POS_MBX_FLINE_DIST2 Point(LogicToPixel(Point(MBX_FLINE_DIST_X,MBX_FLINE_DIST_Y2), MAP_APPFONT)) 100766ce4d0SZheng Fan #define POS_IMG_SPACE1 Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE1_Y), MAP_APPFONT)) 101766ce4d0SZheng Fan #define POS_IMG_SPACE12 Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE1_Y2), MAP_APPFONT)) 102766ce4d0SZheng Fan #define POS_IMG_SPACE2 Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE2_Y), MAP_APPFONT)) 103766ce4d0SZheng Fan #define POS_IMG_SPACE22 Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE2_Y2), MAP_APPFONT)) 104766ce4d0SZheng Fan #define POS_IMG_INDENT1 Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT1_Y), MAP_APPFONT)) 105766ce4d0SZheng Fan #define POS_IMG_INDENT12 Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT1_Y2), MAP_APPFONT)) 106766ce4d0SZheng Fan #define POS_IMG_INDENT2 Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT2_Y), MAP_APPFONT)) 107766ce4d0SZheng Fan #define POS_IMG_INDENT22 Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT2_Y2), MAP_APPFONT)) 108766ce4d0SZheng Fan #define POS_IMG_INDENT3 Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT3_Y), MAP_APPFONT)) 109766ce4d0SZheng Fan #define POS_IMG_INDENT32 Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT3_Y2), MAP_APPFONT)) 110766ce4d0SZheng Fan #define TBX_LINE_SPACE Point(LogicToPixel(Point(TBX_LINE_SPACE_X,TBX_LINE_SPACE_Y), MAP_APPFONT)) 111766ce4d0SZheng Fan #define TBX_LINE_SPACE2 Point(LogicToPixel(Point(TBX_LINE_SPACE_X,TBX_LINE_SPACE_Y2), MAP_APPFONT)) 112766ce4d0SZheng Fan 113766ce4d0SZheng Fan #define LINE_POINT1_WHITE Point(LogicToPixel(Point(LINE_X_WHITE,LINE_TOP_Y), MAP_APPFONT)) 114766ce4d0SZheng Fan #define LINE_POINT2_WHITE Point(LogicToPixel(Point(LINE_X_WHITE,LINE_BOT_Y), MAP_APPFONT)) 115766ce4d0SZheng Fan #define LINE_POINT3_WHITE Point(LogicToPixel(Point(LINE_X_WHITE,LINE_TOP_Y2), MAP_APPFONT)) 116766ce4d0SZheng Fan #define LINE_POINT4_WHITE Point(LogicToPixel(Point(LINE_X_WHITE,LINE_BOT_Y2), MAP_APPFONT)) 117766ce4d0SZheng Fan 118766ce4d0SZheng Fan ParaPropertyPanel* ParaPropertyPanel::Create ( 119766ce4d0SZheng Fan Window* pParent, 120766ce4d0SZheng Fan const cssu::Reference<css::frame::XFrame>& rxFrame, 121766ce4d0SZheng Fan SfxBindings* pBindings) 122766ce4d0SZheng Fan { 123766ce4d0SZheng Fan if (pParent == NULL) 124766ce4d0SZheng Fan throw lang::IllegalArgumentException(A2S("no parent Window given to ParaPropertyPanel::Create"), NULL, 0); 125766ce4d0SZheng Fan if ( ! rxFrame.is()) 126766ce4d0SZheng Fan throw lang::IllegalArgumentException(A2S("no XFrame given to ParaPropertyPanel::Create"), NULL, 1); 127766ce4d0SZheng Fan if (pBindings == NULL) 128766ce4d0SZheng Fan throw lang::IllegalArgumentException(A2S("no SfxBindings given to ParaPropertyPanel::Create"), NULL, 2); 129766ce4d0SZheng Fan 130766ce4d0SZheng Fan return new ParaPropertyPanel( 131766ce4d0SZheng Fan pParent, 132766ce4d0SZheng Fan rxFrame, 133766ce4d0SZheng Fan pBindings); 134766ce4d0SZheng Fan } 135766ce4d0SZheng Fan 136766ce4d0SZheng Fan void ParaPropertyPanel::HandleContextChange ( 137766ce4d0SZheng Fan const ::sfx2::sidebar::EnumContext aContext) 138766ce4d0SZheng Fan { 139766ce4d0SZheng Fan if (maContext == aContext) 140766ce4d0SZheng Fan { 141766ce4d0SZheng Fan // Nothing to do. 142766ce4d0SZheng Fan return; 143766ce4d0SZheng Fan } 144766ce4d0SZheng Fan 145766ce4d0SZheng Fan maContext = aContext; 146766ce4d0SZheng Fan switch (maContext.GetCombinedContext()) 147766ce4d0SZheng Fan { 148766ce4d0SZheng Fan case CombinedEnumContext(Application_Calc, Context_DrawText): 149766ce4d0SZheng Fan { 150766ce4d0SZheng Fan maTBxVertAlign->Show(); 151766ce4d0SZheng Fan maTBxVertAlignBackground->Show(); 152766ce4d0SZheng Fan maTBxBackColor->Hide(); 153766ce4d0SZheng Fan maTBxBackColorBackground->Hide(); 154766ce4d0SZheng Fan maTBxNumBullet->Hide(); 155766ce4d0SZheng Fan maTBxNumBulletBackground->Hide(); 156766ce4d0SZheng Fan ReSize(0); 157766ce4d0SZheng Fan maTbxIndent_IncDec->Show(); 158766ce4d0SZheng Fan maTbxIndent_IncDecBackground->Show(); 159766ce4d0SZheng Fan maTbxProDemote->Hide(); 160766ce4d0SZheng Fan maTbxProDemoteBackground->Hide(); 161766ce4d0SZheng Fan } 162766ce4d0SZheng Fan break; 163766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Draw): 164766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_TextObject): 165766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Graphic): 166766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Draw): 167766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_TextObject): 168766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Graphic): 169766ce4d0SZheng Fan { 170766ce4d0SZheng Fan maTBxVertAlign->Hide(); 171766ce4d0SZheng Fan maTBxVertAlignBackground->Hide(); 172766ce4d0SZheng Fan maTBxBackColor->Hide(); 173766ce4d0SZheng Fan maTBxBackColorBackground->Hide(); 174766ce4d0SZheng Fan maTBxNumBullet->Show(); 175766ce4d0SZheng Fan maTBxNumBulletBackground->Show(); 176766ce4d0SZheng Fan ReSize(1); 177766ce4d0SZheng Fan maTbxIndent_IncDec->Hide(); 178766ce4d0SZheng Fan maTbxIndent_IncDecBackground->Hide(); 179766ce4d0SZheng Fan maTbxProDemote->Show(); 180766ce4d0SZheng Fan maTbxProDemoteBackground->Show(); 181766ce4d0SZheng Fan } 182766ce4d0SZheng Fan break; 183766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_DrawText): 184766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_DrawText): 185766ce4d0SZheng Fan { 186766ce4d0SZheng Fan maTBxVertAlign->Show(); 187766ce4d0SZheng Fan maTBxVertAlignBackground->Show(); 188766ce4d0SZheng Fan maTBxBackColor->Hide(); 189766ce4d0SZheng Fan maTBxBackColorBackground->Hide(); 190766ce4d0SZheng Fan maTBxNumBullet->Show(); 191766ce4d0SZheng Fan maTBxNumBulletBackground->Show(); 192766ce4d0SZheng Fan ReSize(1); 193766ce4d0SZheng Fan maTbxIndent_IncDec->Hide(); 194766ce4d0SZheng Fan maTbxIndent_IncDecBackground->Hide(); 195766ce4d0SZheng Fan maTbxProDemote->Show(); 196766ce4d0SZheng Fan maTbxProDemoteBackground->Show(); 197766ce4d0SZheng Fan } 198766ce4d0SZheng Fan break; 199766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Table): 200766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Table): 201766ce4d0SZheng Fan { 202766ce4d0SZheng Fan maTBxVertAlign->Show(); 203766ce4d0SZheng Fan maTBxVertAlignBackground->Show(); 204766ce4d0SZheng Fan maTBxBackColor->Hide(); 205766ce4d0SZheng Fan maTBxBackColorBackground->Hide(); 206766ce4d0SZheng Fan maTBxNumBullet->Show(); 207766ce4d0SZheng Fan maTBxNumBulletBackground->Show(); 208766ce4d0SZheng Fan ReSize(1); 209766ce4d0SZheng Fan maTbxIndent_IncDec->Hide(); 210766ce4d0SZheng Fan maTbxIndent_IncDecBackground->Hide(); 211766ce4d0SZheng Fan maTbxProDemote->Show(); 212766ce4d0SZheng Fan maTbxProDemoteBackground->Show(); 213766ce4d0SZheng Fan } 214766ce4d0SZheng Fan break; 215766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Default): 216766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Text): 217766ce4d0SZheng Fan { 218766ce4d0SZheng Fan maTBxVertAlign->Hide(); 219766ce4d0SZheng Fan maTBxVertAlignBackground->Hide(); 220766ce4d0SZheng Fan maTBxBackColor->Show(); 221766ce4d0SZheng Fan maTBxBackColorBackground->Show(); 222766ce4d0SZheng Fan maTBxNumBullet->Show(); 223766ce4d0SZheng Fan 224766ce4d0SZheng Fan maTBxNumBulletBackground->Show(); 225766ce4d0SZheng Fan ReSize(1); 226766ce4d0SZheng Fan maTbxIndent_IncDec->Show(); 227766ce4d0SZheng Fan maTbxIndent_IncDecBackground->Show(); 228766ce4d0SZheng Fan maTbxProDemote->Hide(); 229766ce4d0SZheng Fan maTbxProDemoteBackground->Hide(); 230766ce4d0SZheng Fan } 231766ce4d0SZheng Fan break; 232766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Table): 233766ce4d0SZheng Fan { 234766ce4d0SZheng Fan maTBxVertAlign->Show(); 235766ce4d0SZheng Fan maTBxVertAlignBackground->Show(); 236766ce4d0SZheng Fan maTBxBackColor->Show(); 237766ce4d0SZheng Fan maTBxBackColorBackground->Show(); 238766ce4d0SZheng Fan maTBxNumBullet->Show(); 239766ce4d0SZheng Fan maTBxNumBulletBackground->Show(); 240766ce4d0SZheng Fan ReSize(1); 241766ce4d0SZheng Fan maTbxIndent_IncDec->Show(); 242766ce4d0SZheng Fan maTbxIndent_IncDecBackground->Show(); 243766ce4d0SZheng Fan maTbxProDemote->Hide(); 244766ce4d0SZheng Fan maTbxProDemoteBackground->Hide(); 245766ce4d0SZheng Fan } 246766ce4d0SZheng Fan break; 247766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_DrawText): 248766ce4d0SZheng Fan { 249766ce4d0SZheng Fan maTBxVertAlign->Show(); 250766ce4d0SZheng Fan maTBxVertAlignBackground->Show(); 251766ce4d0SZheng Fan maTBxBackColor->Hide(); 252766ce4d0SZheng Fan maTBxBackColorBackground->Hide(); 253766ce4d0SZheng Fan maTBxNumBullet->Hide(); 254766ce4d0SZheng Fan maTBxNumBulletBackground->Hide(); 255766ce4d0SZheng Fan ReSize(0); 256766ce4d0SZheng Fan maTbxIndent_IncDec->Show(); 257766ce4d0SZheng Fan maTbxIndent_IncDecBackground->Show(); 258766ce4d0SZheng Fan maTbxProDemote->Hide(); 259766ce4d0SZheng Fan maTbxProDemoteBackground->Hide(); 260766ce4d0SZheng Fan } 261766ce4d0SZheng Fan break; 262766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Annotation): 263766ce4d0SZheng Fan { 264766ce4d0SZheng Fan maTBxVertAlign->Hide(); 265766ce4d0SZheng Fan maTBxVertAlignBackground->Hide(); 266766ce4d0SZheng Fan maTBxBackColor->Hide(); 267766ce4d0SZheng Fan maTBxBackColorBackground->Hide(); 268766ce4d0SZheng Fan maTBxNumBullet->Hide(); 269766ce4d0SZheng Fan maTBxNumBulletBackground->Hide(); 270766ce4d0SZheng Fan ReSize(0); 271766ce4d0SZheng Fan maTbxIndent_IncDec->Show(); 272766ce4d0SZheng Fan maTbxIndent_IncDecBackground->Show(); 273766ce4d0SZheng Fan maTbxProDemote->Hide(); 274766ce4d0SZheng Fan maTbxProDemoteBackground->Hide(); 275766ce4d0SZheng Fan } 276766ce4d0SZheng Fan break; 277766ce4d0SZheng Fan case CombinedEnumContext(Application_Calc, Context_EditCell): 278766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Text): 279766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_OutlineText): 280766ce4d0SZheng Fan case CombinedEnumContext(Application_Calc, Context_Cell): 281766ce4d0SZheng Fan case CombinedEnumContext(Application_Calc, Context_Pivot): 282766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Text): 283766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_OutlineText): 284766ce4d0SZheng Fan /*{ 285766ce4d0SZheng Fan mpToolBoxScriptSw->Hide(); 286766ce4d0SZheng Fan mpToolBoxScript->Show(); 287766ce4d0SZheng Fan mpToolBoxSpacing->Show(); 288766ce4d0SZheng Fan mpToolBoxHighlight->Hide(); 289766ce4d0SZheng Fan 290766ce4d0SZheng Fan Size aSize(PROPERTYPAGE_WIDTH,TEXT_SECTIONPAGE_HEIGHT); 291766ce4d0SZheng Fan aSize = LogicToPixel( aSize,MapMode(MAP_APPFONT) ); 292766ce4d0SZheng Fan aSize.setWidth(GetOutputSizePixel().Width()); 293766ce4d0SZheng Fan SetSizePixel(aSize); 294766ce4d0SZheng Fan break; 295766ce4d0SZheng Fan }*/ 296766ce4d0SZheng Fan 297766ce4d0SZheng Fan default: 298766ce4d0SZheng Fan break; 299766ce4d0SZheng Fan } 300766ce4d0SZheng Fan } 301766ce4d0SZheng Fan 302766ce4d0SZheng Fan SfxBindings* ParaPropertyPanel::GetBindings() 303766ce4d0SZheng Fan { 304766ce4d0SZheng Fan return mpBindings; 305766ce4d0SZheng Fan } 306766ce4d0SZheng Fan 307766ce4d0SZheng Fan void ParaPropertyPanel::SetupIcons (void) 308766ce4d0SZheng Fan { 309766ce4d0SZheng Fan if (Theme::GetBoolean(Theme::Bool_UseSymphonyIcons)) 310766ce4d0SZheng Fan { 311766ce4d0SZheng Fan } 312766ce4d0SZheng Fan else 313766ce4d0SZheng Fan { 314766ce4d0SZheng Fan } 315766ce4d0SZheng Fan } 316766ce4d0SZheng Fan 317766ce4d0SZheng Fan void ParaPropertyPanel::DataChanged (const DataChangedEvent& rEvent) 318766ce4d0SZheng Fan { 319766ce4d0SZheng Fan (void)rEvent; 320766ce4d0SZheng Fan 321766ce4d0SZheng Fan SetupIcons(); 322766ce4d0SZheng Fan } 323766ce4d0SZheng Fan 324766ce4d0SZheng Fan ParaPropertyPanel::~ParaPropertyPanel() 325766ce4d0SZheng Fan { 326766ce4d0SZheng Fan delete mpLnSPItem; 327766ce4d0SZheng Fan } 328766ce4d0SZheng Fan 329766ce4d0SZheng Fan void ParaPropertyPanel::ReSize(bool bSize) 330766ce4d0SZheng Fan { 331766ce4d0SZheng Fan if(bSize) 332766ce4d0SZheng Fan { 333766ce4d0SZheng Fan //Paragraph spacing 334766ce4d0SZheng Fan maFTUL->SetPosPixel(POS_FT_PARA_SPACE); 335766ce4d0SZheng Fan maTbxUL_IncDec->SetPosPixel(POS_TBX_PARA_SPACE_INC_DEC); 336766ce4d0SZheng Fan maTopDist->SetPosPixel(POS_MBX_TOP_DIST); 337766ce4d0SZheng Fan maBottomDist->SetPosPixel(POS_MBX_BOT_DIST); 338766ce4d0SZheng Fan //Indent 339766ce4d0SZheng Fan maFTIndent->SetPosPixel(POS_FT_PARA_INDENT); 340766ce4d0SZheng Fan maTbxIndent_IncDec->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC); 341766ce4d0SZheng Fan maTbxProDemote->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC); 342766ce4d0SZheng Fan maLeftIndent->SetPosPixel(POS_MBX_LEFT_DIST); 343766ce4d0SZheng Fan maRightIndent->SetPosPixel(POS_MBX_RIGHT_DIST); 344766ce4d0SZheng Fan maFLineIndent->SetPosPixel(POS_MBX_FLINE_DIST); 345766ce4d0SZheng Fan //Line spacing 346766ce4d0SZheng Fan maLineSPTbx->SetPosPixel(TBX_LINE_SPACE); 347766ce4d0SZheng Fan //image 348766ce4d0SZheng Fan maFISpace1.SetPosPixel(POS_IMG_SPACE1); 349766ce4d0SZheng Fan maFISpace2.SetPosPixel(POS_IMG_SPACE2); 350766ce4d0SZheng Fan maFIndent1.SetPosPixel(POS_IMG_INDENT1); 351766ce4d0SZheng Fan maFIndent2.SetPosPixel(POS_IMG_INDENT2); 352766ce4d0SZheng Fan maFIndent3.SetPosPixel(POS_IMG_INDENT3); 353766ce4d0SZheng Fan Size aSize(GetOutputSizePixel().Width(),PARA_SECTIONPAGE_HEIGHT); 354766ce4d0SZheng Fan aSize = LogicToPixel( aSize, MapMode(MAP_APPFONT) ); 355766ce4d0SZheng Fan aSize.setWidth(GetOutputSizePixel().Width()); 356766ce4d0SZheng Fan SetSizePixel(aSize); 357766ce4d0SZheng Fan } 358766ce4d0SZheng Fan else 359766ce4d0SZheng Fan { 360766ce4d0SZheng Fan //Paragraph spacing 361766ce4d0SZheng Fan maFTUL->SetPosPixel(POS_FT_PARA_SPACE2); 362766ce4d0SZheng Fan maTbxUL_IncDec->SetPosPixel(POS_TBX_PARA_SPACE_INC_DEC2); 363766ce4d0SZheng Fan maTopDist->SetPosPixel(POS_MBX_TOP_DIST2); 364766ce4d0SZheng Fan maBottomDist->SetPosPixel(POS_MBX_BOT_DIST2); 365766ce4d0SZheng Fan //Indent 366766ce4d0SZheng Fan maFTIndent->SetPosPixel(POS_FT_PARA_INDENT2); 367766ce4d0SZheng Fan maTbxIndent_IncDec->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC2); 368766ce4d0SZheng Fan maTbxProDemote->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC2); 369766ce4d0SZheng Fan maLeftIndent->SetPosPixel(POS_MBX_LEFT_DIST2); 370766ce4d0SZheng Fan maRightIndent->SetPosPixel(POS_MBX_RIGHT_DIST2); 371766ce4d0SZheng Fan maFLineIndent->SetPosPixel(POS_MBX_FLINE_DIST2); 372766ce4d0SZheng Fan //Line spacing 373766ce4d0SZheng Fan maLineSPTbx->SetPosPixel(TBX_LINE_SPACE2); 374766ce4d0SZheng Fan //image 375766ce4d0SZheng Fan maFISpace1.SetPosPixel(POS_IMG_SPACE12); 376766ce4d0SZheng Fan maFISpace2.SetPosPixel(POS_IMG_SPACE22); 377766ce4d0SZheng Fan maFIndent1.SetPosPixel(POS_IMG_INDENT12); 378766ce4d0SZheng Fan maFIndent2.SetPosPixel(POS_IMG_INDENT22); 379766ce4d0SZheng Fan maFIndent3.SetPosPixel(POS_IMG_INDENT32); 380766ce4d0SZheng Fan Size aSize(GetOutputSizePixel().Width(),PARA_SECTIONPAGE_HEIGHT_2); 381766ce4d0SZheng Fan aSize = LogicToPixel( aSize, MapMode(MAP_APPFONT) ); 382766ce4d0SZheng Fan aSize.setWidth(GetOutputSizePixel().Width()); 383766ce4d0SZheng Fan SetSizePixel(aSize); 384766ce4d0SZheng Fan } 385766ce4d0SZheng Fan } 386766ce4d0SZheng Fan 387766ce4d0SZheng Fan void ParaPropertyPanel::EndSpacingPopupMode (void) 388766ce4d0SZheng Fan { 389766ce4d0SZheng Fan maLineSpacePopup.Hide(); 390766ce4d0SZheng Fan } 391766ce4d0SZheng Fan 392766ce4d0SZheng Fan void ParaPropertyPanel::EndBulletsPopupMode (void) 393766ce4d0SZheng Fan { 394766ce4d0SZheng Fan //maUnderlinePopup.Hide(); 395766ce4d0SZheng Fan } 396766ce4d0SZheng Fan 397766ce4d0SZheng Fan void ParaPropertyPanel::EndNumberingPopupMode (void) 398766ce4d0SZheng Fan { 399766ce4d0SZheng Fan //maUnderlinePopup.Hide(); 400766ce4d0SZheng Fan } 401766ce4d0SZheng Fan 402766ce4d0SZheng Fan 403766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxAlign() 404766ce4d0SZheng Fan { 405766ce4d0SZheng Fan maAlignToolBox->SetItemImage(TOOLBOX_ITEM1,maLeftPara); 406766ce4d0SZheng Fan maAlignToolBox->SetItemImage(TOOLBOX_ITEM2,maCentPara); 407766ce4d0SZheng Fan maAlignToolBox->SetItemImage(TOOLBOX_ITEM3,maRightPara); 408766ce4d0SZheng Fan maAlignToolBox->SetItemImage(TOOLBOX_ITEM4,maJusPara); 409766ce4d0SZheng Fan Link aLink = LINK( this, ParaPropertyPanel, AlignStyleModifyHdl_Impl ); 410766ce4d0SZheng Fan maAlignToolBox->SetSelectHdl( aLink ); 411766ce4d0SZheng Fan Size aTbxSize (maAlignToolBox->CalcWindowSizePixel()); 412766ce4d0SZheng Fan maAlignToolBox->SetOutputSizePixel( aTbxSize ); 413766ce4d0SZheng Fan } 414766ce4d0SZheng Fan 415766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxVertAlign() 416766ce4d0SZheng Fan { 417766ce4d0SZheng Fan InitImageList(maTBxVertAlign, maVertImageList, maVertImageListH); 418766ce4d0SZheng Fan maTBxVertAlign->SetSelectHdl(LINK(this,ParaPropertyPanel,VertTbxSelectHandler)); 419766ce4d0SZheng Fan Size aTbxSize (maTBxVertAlign->CalcWindowSizePixel()); 420766ce4d0SZheng Fan maTBxVertAlign->SetOutputSizePixel( aTbxSize ); 421766ce4d0SZheng Fan } 422766ce4d0SZheng Fan 423766ce4d0SZheng Fan 424766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxIndent() 425766ce4d0SZheng Fan { 426766ce4d0SZheng Fan Link aLink = LINK( this, ParaPropertyPanel, ModifyIndentHdl_Impl ); 427766ce4d0SZheng Fan maLeftIndent->SetModifyHdl( aLink ); 428766ce4d0SZheng Fan maRightIndent->SetModifyHdl( aLink ); 429766ce4d0SZheng Fan maFLineIndent->SetModifyHdl( aLink ); 430766ce4d0SZheng Fan 431766ce4d0SZheng Fan if( Application::GetSettings().GetLayoutRTL()) 432766ce4d0SZheng Fan { 433766ce4d0SZheng Fan maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM1,maIndInc_BD); 434766ce4d0SZheng Fan maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM2,maIndDec_BD); 435766ce4d0SZheng Fan } 436766ce4d0SZheng Fan else 437766ce4d0SZheng Fan { 438766ce4d0SZheng Fan maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM1,maIndInc); 439766ce4d0SZheng Fan maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM2,maIndDec); 440766ce4d0SZheng Fan } 441766ce4d0SZheng Fan maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM3,maIndHang); 442766ce4d0SZheng Fan aLink = LINK( this, ParaPropertyPanel, ClickIndent_IncDec_Hdl_Impl ); 443766ce4d0SZheng Fan maTbxIndent_IncDec->SetSelectHdl(aLink); 444766ce4d0SZheng Fan m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric(); 445766ce4d0SZheng Fan Size aTbxSize = maTbxIndent_IncDec->CalcWindowSizePixel(); 446766ce4d0SZheng Fan maTbxIndent_IncDec->SetOutputSizePixel( aTbxSize ); 447766ce4d0SZheng Fan 448766ce4d0SZheng Fan if( Application::GetSettings().GetLayoutRTL()) 449766ce4d0SZheng Fan { 450766ce4d0SZheng Fan maTbxProDemote->SetItemImage(TOOLBOX_ITEM1,maIndInc_BD); 451766ce4d0SZheng Fan maTbxProDemote->SetItemImage(TOOLBOX_ITEM2,maIndDec_BD); 452766ce4d0SZheng Fan } 453766ce4d0SZheng Fan else 454766ce4d0SZheng Fan { 455766ce4d0SZheng Fan maTbxProDemote->SetItemImage(TOOLBOX_ITEM1,maIndInc); 456766ce4d0SZheng Fan maTbxProDemote->SetItemImage(TOOLBOX_ITEM2,maIndDec); 457766ce4d0SZheng Fan } 458766ce4d0SZheng Fan maTbxProDemote->SetItemImage(TOOLBOX_ITEM3,maIndHang); 459766ce4d0SZheng Fan aLink = LINK( this, ParaPropertyPanel, ClickProDemote_Hdl_Impl ); 460766ce4d0SZheng Fan maTbxProDemote->SetSelectHdl(aLink); 461766ce4d0SZheng Fan m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric(); 462766ce4d0SZheng Fan aTbxSize = maTbxProDemote->CalcWindowSizePixel(); 463766ce4d0SZheng Fan maTbxProDemote->SetOutputSizePixel( aTbxSize ); 464766ce4d0SZheng Fan } 465766ce4d0SZheng Fan 466766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxBGColor() 467766ce4d0SZheng Fan { 468766ce4d0SZheng Fan mpColorUpdater.reset(new ::svx::ToolboxButtonColorUpdater(SID_BACKGROUND_COLOR, TBI_BACK_COLOR, maTBxBackColor.get(), TBX_UPDATER_MODE_CHAR_COLOR_NEW )); 469766ce4d0SZheng Fan 470766ce4d0SZheng Fan maTBxBackColor->SetItemImage(TBI_BACK_COLOR, GetDisplayBackground().GetColor().IsDark()? maImgBackColorHigh : maImgBackColor); 471766ce4d0SZheng Fan maTBxBackColor->SetItemBits( TBI_BACK_COLOR, maTBxBackColor->GetItemBits( TBI_BACK_COLOR ) | TIB_DROPDOWNONLY ); 472766ce4d0SZheng Fan 473766ce4d0SZheng Fan Link aLink = LINK(this, ParaPropertyPanel, ToolBoxBackColorDDHandler); 474766ce4d0SZheng Fan maTBxBackColor->SetDropdownClickHdl ( aLink ); 475766ce4d0SZheng Fan maTBxBackColor->SetSelectHdl ( aLink ); 476766ce4d0SZheng Fan Size aTbxSize (maTBxBackColor->CalcWindowSizePixel()); 477766ce4d0SZheng Fan maTBxBackColor->SetOutputSizePixel( aTbxSize ); 478766ce4d0SZheng Fan } 479766ce4d0SZheng Fan 480766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxBulletsNumbering() 481766ce4d0SZheng Fan { 482766ce4d0SZheng Fan if( Application::GetSettings().GetLayoutRTL())//sym2_7380 483766ce4d0SZheng Fan { 484766ce4d0SZheng Fan maTBxNumBullet->SetItemImage( IID_BULLET, maNumBImageListRTL.GetImage( IID_BULLET ) ); 485766ce4d0SZheng Fan maTBxNumBullet->SetItemImage( IID_NUMBER, maNumBImageListRTL.GetImage( IID_NUMBER ) ); 486766ce4d0SZheng Fan } 487766ce4d0SZheng Fan else 488766ce4d0SZheng Fan InitImageList(maTBxNumBullet, maNumBImageList, maNumBImageListH); 489766ce4d0SZheng Fan 490766ce4d0SZheng Fan maTBxNumBullet->SetDropdownClickHdl(LINK(this,ParaPropertyPanel,NumBTbxDDHandler)); 491766ce4d0SZheng Fan maTBxNumBullet->SetSelectHdl(LINK(this,ParaPropertyPanel,NumBTbxSelectHandler)); 492766ce4d0SZheng Fan Size aTbxSize (maTBxNumBullet->CalcWindowSizePixel()); 493766ce4d0SZheng Fan maTBxNumBullet->SetOutputSizePixel( aTbxSize ); 494766ce4d0SZheng Fan } 495766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxSpacing() 496766ce4d0SZheng Fan { 497766ce4d0SZheng Fan Link aLink = LINK( this, ParaPropertyPanel, ULSpaceHdl_Impl ); 498766ce4d0SZheng Fan maTopDist->SetModifyHdl(aLink); 499766ce4d0SZheng Fan maBottomDist->SetModifyHdl( aLink ); 500766ce4d0SZheng Fan 501766ce4d0SZheng Fan maTbxUL_IncDec->SetItemImage(TOOLBOX_ITEM1,maParInc); 502766ce4d0SZheng Fan maTbxUL_IncDec->SetItemImage(TOOLBOX_ITEM2,maParDec); 503766ce4d0SZheng Fan aLink = LINK( this, ParaPropertyPanel, ClickUL_IncDec_Hdl_Impl ); 504766ce4d0SZheng Fan maTbxUL_IncDec->SetSelectHdl(aLink); 505766ce4d0SZheng Fan m_eULSpaceUnit = maULSpaceControl.GetCoreMetric(); 506766ce4d0SZheng Fan Size aTbxSize = maTbxUL_IncDec->CalcWindowSizePixel(); 507766ce4d0SZheng Fan maTbxUL_IncDec->SetOutputSizePixel( aTbxSize ); 508766ce4d0SZheng Fan } 509766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxLineSpacing() 510766ce4d0SZheng Fan { 511766ce4d0SZheng Fan Link aLink = LINK( this, ParaPropertyPanel, ClickLineSPDropDownHdl_Impl ); 512766ce4d0SZheng Fan maLineSPTbx->SetDropdownClickHdl( aLink ); 513766ce4d0SZheng Fan maLineSPTbx->SetSelectHdl( aLink ); //support keyinput "ENTER" 514766ce4d0SZheng Fan maLineSPTbx->SetItemBits( TOOLBOX_ITEM1, maLineSPTbx->GetItemBits( TOOLBOX_ITEM1 ) | TIB_DROPDOWNONLY ); 515766ce4d0SZheng Fan maLineSPTbx->SetItemImage(TOOLBOX_ITEM1,maSpace3); 516766ce4d0SZheng Fan Size aTbxSize = maLineSPTbx->CalcWindowSizePixel(); 517766ce4d0SZheng Fan maLineSPTbx->SetOutputSizePixel( aTbxSize ); 518766ce4d0SZheng Fan } 519766ce4d0SZheng Fan 520766ce4d0SZheng Fan void ParaPropertyPanel::initial() 521766ce4d0SZheng Fan { 522766ce4d0SZheng Fan maFISpace1.SetImage(maSpace1); 523766ce4d0SZheng Fan maFISpace2.SetImage(maSpace2); 524766ce4d0SZheng Fan maFIndent1.SetImage(maIndent3); 525766ce4d0SZheng Fan maFIndent2.SetImage(maIndent2); 526766ce4d0SZheng Fan maFIndent3.SetImage(maIndent1); 527766ce4d0SZheng Fan 528766ce4d0SZheng Fan GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_LEFT,sal_True,sal_False); 529766ce4d0SZheng Fan GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_CENTER,sal_True,sal_False); 530766ce4d0SZheng Fan GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_RIGHT,sal_True,sal_False); 531766ce4d0SZheng Fan GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_BLOCK,sal_True,sal_False); 532766ce4d0SZheng Fan 533766ce4d0SZheng Fan //toolbox 534766ce4d0SZheng Fan SetupIcons(); 535766ce4d0SZheng Fan InitToolBoxAlign(); 536766ce4d0SZheng Fan InitToolBoxVertAlign(); 537766ce4d0SZheng Fan InitToolBoxIndent(); 538766ce4d0SZheng Fan InitToolBoxBGColor(); 539766ce4d0SZheng Fan InitToolBoxBulletsNumbering(); 540766ce4d0SZheng Fan InitToolBoxSpacing(); 541766ce4d0SZheng Fan InitToolBoxLineSpacing(); 542766ce4d0SZheng Fan 543766ce4d0SZheng Fan #ifdef HAS_IA2 544766ce4d0SZheng Fan maAlignToolBox->SetAccRelationLabeledBy(&maAlignToolBox); 545766ce4d0SZheng Fan maTBxVertAlign->SetMpSubEditAccLableBy(&maTBxVertAlign); 546766ce4d0SZheng Fan maTBxNumBullet->SetAccRelationLabeledBy(&maTBxNumBullet); 547766ce4d0SZheng Fan maTBxBackColor->SetMpSubEditAccLableBy(&maTBxBackColor); 548766ce4d0SZheng Fan maFTUL->SetAccRelationLabeledBy(&maFTUL); 549766ce4d0SZheng Fan maTbxUL_IncDec->SetAccRelationLabeledBy(&maTbxUL_IncDec); 550766ce4d0SZheng Fan maTopDist->SetAccRelationLabeledBy(&maTopDist); 551766ce4d0SZheng Fan maBottomDist->SetAccRelationLabeledBy(&maBottomDist); 552766ce4d0SZheng Fan maLineSPTbx->SetAccRelationLabeledBy(&maLineSPTbx); 553766ce4d0SZheng Fan maFTIndent->SetAccRelationLabeledBy(&maFTIndent); 554766ce4d0SZheng Fan maTbxIndent_IncDec->SetAccRelationLabeledBy(&maTbxIndent_IncDec); 555766ce4d0SZheng Fan maTbxProDemote->SetAccRelationLabeledBy(&maTbxProDemote); 556766ce4d0SZheng Fan maLeftIndent->SetAccRelationLabeledBy(&maLeftIndent); 557766ce4d0SZheng Fan maRightIndent->SetAccRelationLabeledBy(&maRightIndent); 558766ce4d0SZheng Fan maFLineIndent->SetAccRelationLabeledBy(&maFLineIndent); 559766ce4d0SZheng Fan mpColorUpdater->SetAccRelationLabeledBy(&mpColorUpdater); 560766ce4d0SZheng Fan #endif 561766ce4d0SZheng Fan } 562766ce4d0SZheng Fan 563766ce4d0SZheng Fan void ParaPropertyPanel::InitImageList(::boost::scoped_ptr<ToolBox>& rTbx, ImageList& rImglst, ImageList& rImgHlst) 564766ce4d0SZheng Fan { 565766ce4d0SZheng Fan sal_Bool bHighContrast = GetDisplayBackground().GetColor().IsDark(); 566766ce4d0SZheng Fan 567766ce4d0SZheng Fan ImageList& rImgLst = bHighContrast ? rImgHlst : rImglst; 568766ce4d0SZheng Fan 569766ce4d0SZheng Fan sal_uInt16 nCount = rTbx->GetItemCount(); 570766ce4d0SZheng Fan for (sal_uInt16 i = 0; i < nCount; i++) 571766ce4d0SZheng Fan { 572766ce4d0SZheng Fan sal_uInt16 nId = rTbx->GetItemId(i); 573766ce4d0SZheng Fan rTbx->SetItemImage( nId, rImgLst.GetImage( nId ) ); 574766ce4d0SZheng Fan } 575766ce4d0SZheng Fan } 576766ce4d0SZheng Fan 577766ce4d0SZheng Fan //===========================for Numbering & Bullet================================================ 578766ce4d0SZheng Fan 579766ce4d0SZheng Fan 580766ce4d0SZheng Fan 581766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, NumBTbxDDHandler, ToolBox*, pToolBox) 582766ce4d0SZheng Fan { 583766ce4d0SZheng Fan sal_uInt16 nId = pToolBox->GetCurItemId(); 584766ce4d0SZheng Fan 585766ce4d0SZheng Fan EndTracking(); 586766ce4d0SZheng Fan pToolBox->SetItemDown( nId, sal_True ); 587766ce4d0SZheng Fan 588766ce4d0SZheng Fan if (nId == 1) 589766ce4d0SZheng Fan { 590766ce4d0SZheng Fan maBulletsPopup.UpdateValueSet(); 591766ce4d0SZheng Fan maBulletsPopup.Show(*pToolBox); 592766ce4d0SZheng Fan } 593766ce4d0SZheng Fan else if (nId == 2) 594766ce4d0SZheng Fan { 595766ce4d0SZheng Fan maNumberingPopup.UpdateValueSet(); 596766ce4d0SZheng Fan maNumberingPopup.Show(*pToolBox); 597766ce4d0SZheng Fan } 598766ce4d0SZheng Fan pToolBox->SetItemDown( nId, sal_False ); 599766ce4d0SZheng Fan return 0; 600766ce4d0SZheng Fan } 601766ce4d0SZheng Fan 602766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, NumBTbxSelectHandler, ToolBox*, pToolBox) 603766ce4d0SZheng Fan { 604766ce4d0SZheng Fan sal_uInt16 nId = pToolBox->GetCurItemId(); 605766ce4d0SZheng Fan sal_uInt16 nSID = SID_TABLE_VERT_NONE; 606766ce4d0SZheng Fan 607766ce4d0SZheng Fan EndTracking(); 608766ce4d0SZheng Fan if (nId == 1) 609766ce4d0SZheng Fan { 610766ce4d0SZheng Fan nSID = FN_NUM_BULLET_ON; 611766ce4d0SZheng Fan } 612766ce4d0SZheng Fan else if ( nId == 2) 613766ce4d0SZheng Fan { 614766ce4d0SZheng Fan nSID = FN_NUM_NUMBERING_ON; 615766ce4d0SZheng Fan } 616766ce4d0SZheng Fan SfxBoolItem aBoolItem(nSID, sal_True); 617766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(nSID, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 618766ce4d0SZheng Fan 619766ce4d0SZheng Fan return 0; 620766ce4d0SZheng Fan } 621766ce4d0SZheng Fan 622766ce4d0SZheng Fan 623766ce4d0SZheng Fan //================================for Vertical Alignment======================================== 624766ce4d0SZheng Fan 625766ce4d0SZheng Fan 626766ce4d0SZheng Fan 627766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, VertTbxSelectHandler, ToolBox*, pToolBox) 628766ce4d0SZheng Fan { 629766ce4d0SZheng Fan sal_uInt16 nId = pToolBox->GetCurItemId(); 630766ce4d0SZheng Fan sal_uInt16 nSID = SID_TABLE_VERT_NONE; 631766ce4d0SZheng Fan EndTracking(); 632766ce4d0SZheng Fan if (nId == 1) 633766ce4d0SZheng Fan { 634766ce4d0SZheng Fan nSID = SID_TABLE_VERT_NONE; 635766ce4d0SZheng Fan maTBxVertAlign->SetItemState(1, STATE_CHECK); 636766ce4d0SZheng Fan maTBxVertAlign->SetItemState(2, STATE_NOCHECK); 637766ce4d0SZheng Fan maTBxVertAlign->SetItemState(3, STATE_NOCHECK); 638766ce4d0SZheng Fan } 639766ce4d0SZheng Fan else if (nId == 2) 640766ce4d0SZheng Fan { 641766ce4d0SZheng Fan nSID = SID_TABLE_VERT_CENTER; 642766ce4d0SZheng Fan maTBxVertAlign->SetItemState(1, STATE_NOCHECK); 643766ce4d0SZheng Fan maTBxVertAlign->SetItemState(2, STATE_CHECK); 644766ce4d0SZheng Fan maTBxVertAlign->SetItemState(3, STATE_NOCHECK); 645766ce4d0SZheng Fan } 646766ce4d0SZheng Fan else if (nId == 3) 647766ce4d0SZheng Fan { 648766ce4d0SZheng Fan nSID = SID_TABLE_VERT_BOTTOM; 649766ce4d0SZheng Fan maTBxVertAlign->SetItemState(1, STATE_NOCHECK); 650766ce4d0SZheng Fan maTBxVertAlign->SetItemState(2, STATE_NOCHECK); 651766ce4d0SZheng Fan maTBxVertAlign->SetItemState(3, STATE_CHECK); 652766ce4d0SZheng Fan } 653766ce4d0SZheng Fan SfxBoolItem aBoolItem(nSID, sal_True); 654766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(nSID, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 655766ce4d0SZheng Fan 656766ce4d0SZheng Fan return 0; 657766ce4d0SZheng Fan } 658766ce4d0SZheng Fan 659766ce4d0SZheng Fan void ParaPropertyPanel::VertStateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState) 660766ce4d0SZheng Fan { 661766ce4d0SZheng Fan if (eState < SFX_ITEM_DONTCARE) 662766ce4d0SZheng Fan { 663766ce4d0SZheng Fan maTBxVertAlign->SetItemState(1, STATE_NOCHECK); 664766ce4d0SZheng Fan maTBxVertAlign->SetItemState(2, STATE_NOCHECK); 665766ce4d0SZheng Fan maTBxVertAlign->SetItemState(3, STATE_NOCHECK); 666766ce4d0SZheng Fan maTBxVertAlign->EnableItem(1, sal_False); 667766ce4d0SZheng Fan maTBxVertAlign->EnableItem(2, sal_False); 668766ce4d0SZheng Fan maTBxVertAlign->EnableItem(3, sal_False); 669766ce4d0SZheng Fan } 670766ce4d0SZheng Fan else 671766ce4d0SZheng Fan { 672766ce4d0SZheng Fan maTBxVertAlign->EnableItem(1, sal_True); 673766ce4d0SZheng Fan maTBxVertAlign->EnableItem(2, sal_True); 674766ce4d0SZheng Fan maTBxVertAlign->EnableItem(3, sal_True); 675766ce4d0SZheng Fan if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem))) 676766ce4d0SZheng Fan { 677766ce4d0SZheng Fan const SfxBoolItem* pItem= (const SfxBoolItem*)pState; 678766ce4d0SZheng Fan sal_Bool aBool = (sal_Bool)pItem->GetValue(); 679766ce4d0SZheng Fan 680766ce4d0SZheng Fan if (aBool) 681766ce4d0SZheng Fan { 682766ce4d0SZheng Fan if (nSID == SID_TABLE_VERT_NONE) 683766ce4d0SZheng Fan { 684766ce4d0SZheng Fan maTBxVertAlign->SetItemState(1, STATE_CHECK); 685766ce4d0SZheng Fan maTBxVertAlign->SetItemState(2, STATE_NOCHECK); 686766ce4d0SZheng Fan maTBxVertAlign->SetItemState(3, STATE_NOCHECK); 687766ce4d0SZheng Fan } 688766ce4d0SZheng Fan else if (nSID == SID_TABLE_VERT_CENTER) 689766ce4d0SZheng Fan { 690766ce4d0SZheng Fan maTBxVertAlign->SetItemState(1, STATE_NOCHECK); 691766ce4d0SZheng Fan maTBxVertAlign->SetItemState(2, STATE_CHECK); 692766ce4d0SZheng Fan maTBxVertAlign->SetItemState(3, STATE_NOCHECK); 693766ce4d0SZheng Fan } 694766ce4d0SZheng Fan else if (nSID == SID_TABLE_VERT_BOTTOM) 695766ce4d0SZheng Fan { 696766ce4d0SZheng Fan maTBxVertAlign->SetItemState(1, STATE_NOCHECK); 697766ce4d0SZheng Fan maTBxVertAlign->SetItemState(2, STATE_NOCHECK); 698766ce4d0SZheng Fan maTBxVertAlign->SetItemState(3, STATE_CHECK); 699766ce4d0SZheng Fan } 700766ce4d0SZheng Fan } 701766ce4d0SZheng Fan else 702766ce4d0SZheng Fan { 703766ce4d0SZheng Fan if (nSID == SID_TABLE_VERT_NONE) 704766ce4d0SZheng Fan { 705766ce4d0SZheng Fan maTBxVertAlign->SetItemState(1, STATE_NOCHECK); 706766ce4d0SZheng Fan } 707766ce4d0SZheng Fan else if (nSID == SID_TABLE_VERT_CENTER) 708766ce4d0SZheng Fan { 709766ce4d0SZheng Fan maTBxVertAlign->SetItemState(2, STATE_NOCHECK); 710766ce4d0SZheng Fan } 711766ce4d0SZheng Fan else if (nSID == SID_TABLE_VERT_BOTTOM) 712766ce4d0SZheng Fan { 713766ce4d0SZheng Fan maTBxVertAlign->SetItemState(3, STATE_NOCHECK); 714766ce4d0SZheng Fan } 715766ce4d0SZheng Fan } 716766ce4d0SZheng Fan } 717766ce4d0SZheng Fan else 718766ce4d0SZheng Fan { 719766ce4d0SZheng Fan maTBxVertAlign->SetItemState(1, STATE_NOCHECK); 720766ce4d0SZheng Fan maTBxVertAlign->SetItemState(2, STATE_NOCHECK); 721766ce4d0SZheng Fan maTBxVertAlign->SetItemState(3, STATE_NOCHECK); 722766ce4d0SZheng Fan } 723766ce4d0SZheng Fan } 724766ce4d0SZheng Fan } 725766ce4d0SZheng Fan //==================================for Background color===================== 726766ce4d0SZheng Fan 727766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ToolBoxBackColorDDHandler,ToolBox*, pToolBox) 728766ce4d0SZheng Fan { 729766ce4d0SZheng Fan sal_uInt16 nId = pToolBox->GetCurItemId(); 730766ce4d0SZheng Fan OSL_ASSERT(nId == TBI_BACK_COLOR); 731766ce4d0SZheng Fan if(nId == TBI_BACK_COLOR) 732766ce4d0SZheng Fan { 733766ce4d0SZheng Fan pToolBox->SetItemDown( nId, true ); 734766ce4d0SZheng Fan maBGColorPopup.Show(*pToolBox); 735766ce4d0SZheng Fan maBGColorPopup.SetCurrentColor(maColor, mbColorAvailable); 736766ce4d0SZheng Fan } 737766ce4d0SZheng Fan return 0; 738766ce4d0SZheng Fan } 739766ce4d0SZheng Fan 740766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, ImplPopupModeEndHdl, FloatingWindow*, EMPTYARG ) 741766ce4d0SZheng Fan { 742766ce4d0SZheng Fan return 0; 743766ce4d0SZheng Fan } 744766ce4d0SZheng Fan 745766ce4d0SZheng Fan void ParaPropertyPanel::ShowMenu (void) 746766ce4d0SZheng Fan { 747766ce4d0SZheng Fan if (mpBindings != NULL) 748766ce4d0SZheng Fan { 749766ce4d0SZheng Fan SfxDispatcher* pDispatcher = mpBindings->GetDispatcher(); 750766ce4d0SZheng Fan if (pDispatcher != NULL) 751766ce4d0SZheng Fan pDispatcher->Execute(SID_PARA_DLG, SFX_CALLMODE_ASYNCHRON); 752766ce4d0SZheng Fan } 753766ce4d0SZheng Fan } 754766ce4d0SZheng Fan 755766ce4d0SZheng Fan void ParaPropertyPanel::ParaBKGStateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState) 756766ce4d0SZheng Fan { 757766ce4d0SZheng Fan if( eState >= SFX_ITEM_DEFAULT && pState->ISA(SvxBrushItem)) 758766ce4d0SZheng Fan { 759766ce4d0SZheng Fan const SvxBrushItem* pItem = (const SvxBrushItem*)pState; 760766ce4d0SZheng Fan maColor = pItem->GetColor(); 761766ce4d0SZheng Fan mbColorAvailable = sal_True; 762766ce4d0SZheng Fan mpColorUpdater->Update(maColor); 763766ce4d0SZheng Fan } 764766ce4d0SZheng Fan else 765766ce4d0SZheng Fan { 766766ce4d0SZheng Fan mbColorAvailable = sal_False; 767766ce4d0SZheng Fan maColor.SetColor(COL_AUTO); 768766ce4d0SZheng Fan mpColorUpdater->Update(maColor); 769766ce4d0SZheng Fan } 770766ce4d0SZheng Fan } 771766ce4d0SZheng Fan 772766ce4d0SZheng Fan Color ParaPropertyPanel::GetBGColor (void) const 773766ce4d0SZheng Fan { 774766ce4d0SZheng Fan return maColor; 775766ce4d0SZheng Fan } 776766ce4d0SZheng Fan 777766ce4d0SZheng Fan void ParaPropertyPanel::SetBGColor ( 778766ce4d0SZheng Fan const String& rsColorName, 779766ce4d0SZheng Fan const Color aColor) 780766ce4d0SZheng Fan { 781766ce4d0SZheng Fan SvxColorItem aColorItem(aColor, SID_BACKGROUND_COLOR); 782766ce4d0SZheng Fan mpBindings->GetDispatcher()->Execute(SID_BACKGROUND_COLOR, SFX_CALLMODE_RECORD, &aColorItem, 0L); 783766ce4d0SZheng Fan maColor = aColor; 784766ce4d0SZheng Fan } 785766ce4d0SZheng Fan 786766ce4d0SZheng Fan //==================================for Paragraph Alignment===================== 787766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, AlignStyleModifyHdl_Impl, ToolBox*, pBox ) 788766ce4d0SZheng Fan { 789766ce4d0SZheng Fan switch (pBox->GetCurItemId()) 790766ce4d0SZheng Fan { 791766ce4d0SZheng Fan case BT_SUBSTLEFT: 792766ce4d0SZheng Fan { 793766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTLEFT,STATE_CHECK); 794766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 795766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 796766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 797766ce4d0SZheng Fan SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_LEFT, sal_True ); 798766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_LEFT, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 799766ce4d0SZheng Fan } 800766ce4d0SZheng Fan break; 801766ce4d0SZheng Fan case BT_SUBSTCENTER: 802766ce4d0SZheng Fan { 803766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTCENTER,STATE_CHECK); 804766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 805766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 806766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 807766ce4d0SZheng Fan SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_CENTER, sal_True ); 808766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_CENTER, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 809766ce4d0SZheng Fan } 810766ce4d0SZheng Fan break; 811766ce4d0SZheng Fan case BT_SUBSTRIGHT: 812766ce4d0SZheng Fan { 813766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTRIGHT,STATE_CHECK); 814766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 815766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 816766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 817766ce4d0SZheng Fan SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_RIGHT, sal_True ); 818766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_RIGHT, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 819766ce4d0SZheng Fan } 820766ce4d0SZheng Fan break; 821766ce4d0SZheng Fan case BT_SUBSTJUSTIFY: 822766ce4d0SZheng Fan { 823766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_CHECK); 824766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 825766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 826766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 827766ce4d0SZheng Fan SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_BLOCK, sal_True ); 828766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_BLOCK, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 829766ce4d0SZheng Fan } 830766ce4d0SZheng Fan break; 831766ce4d0SZheng Fan } 832766ce4d0SZheng Fan 833766ce4d0SZheng Fan return 0; 834766ce4d0SZheng Fan } 835766ce4d0SZheng Fan //==================================for Paragraph Indent===================== 836766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, ModifyIndentHdl_Impl, SvxRelativeField*, pBox ) 837766ce4d0SZheng Fan { 838766ce4d0SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE ); 839766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) ); 840766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 841766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 842766ce4d0SZheng Fan 843766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 844766ce4d0SZheng Fan SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 845766ce4d0SZheng Fan return 0; 846766ce4d0SZheng Fan } 847766ce4d0SZheng Fan 848766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ClickIndent_IncDec_Hdl_Impl, ToolBox *, pControl) 849766ce4d0SZheng Fan { 850766ce4d0SZheng Fan switch (pControl->GetCurItemId()) 851766ce4d0SZheng Fan { 852766ce4d0SZheng Fan case INDENT_INCREMENT: 853766ce4d0SZheng Fan { 854766ce4d0SZheng Fan switch (maContext.GetCombinedContext()) 855766ce4d0SZheng Fan { 856766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Default): 857766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Text): 858766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Table): 859766ce4d0SZheng Fan { 860766ce4d0SZheng Fan SfxBoolItem aMargin( SID_INC_INDENT, sal_True ); 861766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 862766ce4d0SZheng Fan SID_INC_INDENT, SFX_CALLMODE_RECORD, &aMargin, 0L); 863766ce4d0SZheng Fan } 864766ce4d0SZheng Fan break; 865766ce4d0SZheng Fan default: 866766ce4d0SZheng Fan { 867766ce4d0SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE ); 868766ce4d0SZheng Fan 869766ce4d0SZheng Fan maTxtLeft += INDENT_STEP; 870766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 871766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 872766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)nVal ); 873766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 874766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 875766ce4d0SZheng Fan 876766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 877766ce4d0SZheng Fan SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 878766ce4d0SZheng Fan } 879766ce4d0SZheng Fan } 880766ce4d0SZheng Fan } 881766ce4d0SZheng Fan break; 882766ce4d0SZheng Fan case INDENT_DECREMENT: 883766ce4d0SZheng Fan { 884766ce4d0SZheng Fan switch (maContext.GetCombinedContext()) 885766ce4d0SZheng Fan { 886766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Default): 887766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Text): 888766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Table): 889766ce4d0SZheng Fan { 890766ce4d0SZheng Fan SfxBoolItem aMargin( SID_DEC_INDENT, sal_True ); 891766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 892766ce4d0SZheng Fan SID_DEC_INDENT, SFX_CALLMODE_RECORD, &aMargin, 0L); 893766ce4d0SZheng Fan } 894766ce4d0SZheng Fan break; 895766ce4d0SZheng Fan default: 896766ce4d0SZheng Fan { 897766ce4d0SZheng Fan if((maTxtLeft - INDENT_STEP) < 0) 898766ce4d0SZheng Fan maTxtLeft = DEFAULT_VALUE; 899766ce4d0SZheng Fan else 900766ce4d0SZheng Fan maTxtLeft -= INDENT_STEP; 901766ce4d0SZheng Fan 902766ce4d0SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE ); 903766ce4d0SZheng Fan 904766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 905766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 906766ce4d0SZheng Fan 907766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)nVal ); 908766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 909766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 910766ce4d0SZheng Fan 911766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 912766ce4d0SZheng Fan SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 913766ce4d0SZheng Fan } 914766ce4d0SZheng Fan } 915766ce4d0SZheng Fan } 916766ce4d0SZheng Fan break; 917766ce4d0SZheng Fan case ID_HANGING_INDENT: 918766ce4d0SZheng Fan { 919766ce4d0SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE ); 920766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) + (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 921766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 922766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( ((const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ))*(-1) ); 923766ce4d0SZheng Fan 924766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 925766ce4d0SZheng Fan SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 926766ce4d0SZheng Fan } 927766ce4d0SZheng Fan break; 928766ce4d0SZheng Fan } 929766ce4d0SZheng Fan return( 0L ); 930766ce4d0SZheng Fan } 931766ce4d0SZheng Fan 932766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ClickProDemote_Hdl_Impl, ToolBox *, pControl) 933766ce4d0SZheng Fan { 934766ce4d0SZheng Fan switch (pControl->GetCurItemId()) 935766ce4d0SZheng Fan { 936766ce4d0SZheng Fan case BT_TBX_INDENT_PROMOTE: 937766ce4d0SZheng Fan { 938766ce4d0SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_PARA_RIGHT ); 939766ce4d0SZheng Fan 940766ce4d0SZheng Fan maTxtLeft += INDENT_STEP; 941766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 942766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 943766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)nVal ); 944766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 945766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 946766ce4d0SZheng Fan 947766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 948766ce4d0SZheng Fan SID_ATTR_PARA_RIGHT, SFX_CALLMODE_RECORD, &aMargin, 0L); 949766ce4d0SZheng Fan } 950766ce4d0SZheng Fan break; 951766ce4d0SZheng Fan case BT_TBX_INDENT_DEMOTE: 952766ce4d0SZheng Fan { 953766ce4d0SZheng Fan if((maTxtLeft - INDENT_STEP) < 0) 954766ce4d0SZheng Fan maTxtLeft = DEFAULT_VALUE; 955766ce4d0SZheng Fan else 956766ce4d0SZheng Fan maTxtLeft -= INDENT_STEP; 957766ce4d0SZheng Fan 958766ce4d0SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_PARA_LEFT ); 959766ce4d0SZheng Fan 960766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 961766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 962766ce4d0SZheng Fan 963766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)nVal ); 964766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 965766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 966766ce4d0SZheng Fan 967766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 968766ce4d0SZheng Fan SID_ATTR_PARA_LEFT, SFX_CALLMODE_RECORD, &aMargin, 0L); 969766ce4d0SZheng Fan } 970766ce4d0SZheng Fan break; 971766ce4d0SZheng Fan case SD_HANGING_INDENT: 972766ce4d0SZheng Fan { 973766ce4d0SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE ); 974766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) + (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 975766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 976766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( ((const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ))*(-1) ); 977766ce4d0SZheng Fan 978766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 979766ce4d0SZheng Fan SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 980766ce4d0SZheng Fan } 981766ce4d0SZheng Fan break; 982766ce4d0SZheng Fan } 983766ce4d0SZheng Fan return( 0L ); 984766ce4d0SZheng Fan } 985766ce4d0SZheng Fan //==================================for Paragraph Line Spacing===================== 986766ce4d0SZheng Fan 987766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, ClickLineSPDropDownHdl_Impl, ToolBox*, pBox ) 988766ce4d0SZheng Fan { 989766ce4d0SZheng Fan 990766ce4d0SZheng Fan const sal_uInt16 nId = pBox->GetCurItemId(); 991766ce4d0SZheng Fan OSL_ASSERT(nId == TOOLBOX_ITEM1); 992766ce4d0SZheng Fan if(nId == TOOLBOX_ITEM1) 993766ce4d0SZheng Fan { 994766ce4d0SZheng Fan pBox->SetItemDown( nId, true ); 995766ce4d0SZheng Fan maLineSpacePopup.Rearrange(meLnSpState,m_eMetricUnit,mpLnSPItem,maContext); 996766ce4d0SZheng Fan maLineSpacePopup.Show(*pBox); 997766ce4d0SZheng Fan 998766ce4d0SZheng Fan } 999766ce4d0SZheng Fan return (0L); 1000766ce4d0SZheng Fan } 1001766ce4d0SZheng Fan 1002766ce4d0SZheng Fan //==================================for Paragraph Spacing===================== 1003766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, ULSpaceHdl_Impl, SvxRelativeField*, pBox ) 1004766ce4d0SZheng Fan { 1005766ce4d0SZheng Fan SvxULSpaceItem aMargin( SID_ATTR_ULSPACE ); 1006766ce4d0SZheng Fan aMargin.SetUpper( (sal_uInt16)GetCoreValue( *maTopDist.get(), m_eULSpaceUnit ) ); 1007766ce4d0SZheng Fan aMargin.SetLower( (sal_uInt16)GetCoreValue( *maBottomDist.get(), m_eULSpaceUnit ) ); 1008766ce4d0SZheng Fan 1009766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 1010766ce4d0SZheng Fan SID_ATTR_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 1011766ce4d0SZheng Fan return 0L; 1012766ce4d0SZheng Fan } 1013766ce4d0SZheng Fan 1014766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ClickUL_IncDec_Hdl_Impl, ToolBox *, pControl) 1015766ce4d0SZheng Fan { 1016766ce4d0SZheng Fan switch (pControl->GetCurItemId()) 1017766ce4d0SZheng Fan { 1018766ce4d0SZheng Fan case UL_INCREMENT: 1019766ce4d0SZheng Fan { 1020766ce4d0SZheng Fan SvxULSpaceItem aMargin( SID_ATTR_ULSPACE ); 1021766ce4d0SZheng Fan 1022766ce4d0SZheng Fan maUpper += UL_STEP; 1023766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1024766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 1025766ce4d0SZheng Fan aMargin.SetUpper( (const sal_uInt16)nVal ); 1026766ce4d0SZheng Fan 1027766ce4d0SZheng Fan maLower += UL_STEP; 1028766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1029766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 1030766ce4d0SZheng Fan aMargin.SetLower( (const sal_uInt16)nVal ); 1031766ce4d0SZheng Fan 1032766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 1033766ce4d0SZheng Fan SID_ATTR_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 1034766ce4d0SZheng Fan } 1035766ce4d0SZheng Fan break; 1036766ce4d0SZheng Fan case UL_DECREMENT: 1037766ce4d0SZheng Fan { 1038766ce4d0SZheng Fan SvxULSpaceItem aMargin( SID_ATTR_ULSPACE ); 1039766ce4d0SZheng Fan 1040766ce4d0SZheng Fan if( maUpper >= UL_STEP ) 1041766ce4d0SZheng Fan { 1042766ce4d0SZheng Fan maUpper -= UL_STEP; 1043766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1044766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 1045766ce4d0SZheng Fan aMargin.SetUpper( (const sal_uInt16)nVal ); 1046766ce4d0SZheng Fan } 1047766ce4d0SZheng Fan else 1048766ce4d0SZheng Fan aMargin.SetUpper( DEFAULT_VALUE ); 1049766ce4d0SZheng Fan if( maLower >= UL_STEP ) 1050766ce4d0SZheng Fan { 1051766ce4d0SZheng Fan maLower -= UL_STEP; 1052766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1053766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 1054766ce4d0SZheng Fan aMargin.SetLower( (const sal_uInt16)nVal ); 1055766ce4d0SZheng Fan } 1056766ce4d0SZheng Fan else 1057766ce4d0SZheng Fan aMargin.SetLower( DEFAULT_VALUE ); 1058766ce4d0SZheng Fan 1059766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 1060766ce4d0SZheng Fan SID_ATTR_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 1061766ce4d0SZheng Fan } 1062766ce4d0SZheng Fan break; 1063766ce4d0SZheng Fan } 1064766ce4d0SZheng Fan return( 0L ); 1065766ce4d0SZheng Fan } 1066766ce4d0SZheng Fan 1067766ce4d0SZheng Fan //==================================for Paragraph State change===================== 1068766ce4d0SZheng Fan void ParaPropertyPanel::NotifyItemUpdate( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1069766ce4d0SZheng Fan { 1070766ce4d0SZheng Fan if( nSID == SID_ATTR_METRIC ) 1071766ce4d0SZheng Fan { 1072766ce4d0SZheng Fan m_eMetricUnit = GetCurrentUnit(eState,pState); 1073766ce4d0SZheng Fan if( m_eMetricUnit!=m_last_eMetricUnit ) 1074766ce4d0SZheng Fan { 1075766ce4d0SZheng Fan SetFieldUnit( *maLeftIndent.get(), m_eMetricUnit ); 1076766ce4d0SZheng Fan SetFieldUnit( *maRightIndent.get(), m_eMetricUnit ); 1077766ce4d0SZheng Fan SetFieldUnit( *maFLineIndent.get(), m_eMetricUnit ); 1078766ce4d0SZheng Fan SetFieldUnit( *maTopDist.get(), m_eMetricUnit ); 1079766ce4d0SZheng Fan SetFieldUnit( *maBottomDist.get(), m_eMetricUnit ); 1080766ce4d0SZheng Fan } 1081766ce4d0SZheng Fan m_last_eMetricUnit = m_eMetricUnit; 1082766ce4d0SZheng Fan } 1083766ce4d0SZheng Fan 1084766ce4d0SZheng Fan if( nSID == SID_ATTR_PARA_LRSPACE ) 1085766ce4d0SZheng Fan StateChangedIndentImpl( nSID, eState, pState ); 1086766ce4d0SZheng Fan 1087766ce4d0SZheng Fan if( nSID == SID_ATTR_PARA_LINESPACE ) 1088766ce4d0SZheng Fan StateChangedLnSPImpl( nSID, eState, pState ); 1089766ce4d0SZheng Fan 1090766ce4d0SZheng Fan if( nSID == SID_ATTR_PARA_ULSPACE) 1091766ce4d0SZheng Fan StateChangedULImpl( nSID, eState, pState ); 1092766ce4d0SZheng Fan 1093766ce4d0SZheng 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) 1094766ce4d0SZheng Fan StateChangedAlignmentImpl( nSID, eState, pState ); 1095766ce4d0SZheng Fan 1096766ce4d0SZheng Fan if (nSID==SID_OUTLINE_LEFT || nSID==SID_OUTLINE_RIGHT) 1097766ce4d0SZheng Fan StateChangeOutLineImpl( nSID, eState, pState ); 1098766ce4d0SZheng Fan 1099766ce4d0SZheng Fan if (nSID==SID_INC_INDENT || nSID==SID_DEC_INDENT) 1100766ce4d0SZheng Fan StateChangeIncDecImpl( nSID, eState, pState ); 1101766ce4d0SZheng Fan //Sym3_1093. Add toggle state for numbering and bullet icons 1102766ce4d0SZheng Fan if (nSID==FN_NUM_NUMBERING_ON || nSID==FN_NUM_BULLET_ON) 1103766ce4d0SZheng Fan StateChangeBulletNumImpl( nSID, eState, pState ); 1104766ce4d0SZheng Fan 1105766ce4d0SZheng Fan //Modified for Numbering&Bullets Dialog UX Enh(Story 992) by chengjh,2011.7.5 1106766ce4d0SZheng Fan //Get the num rule index data of the current selection 1107766ce4d0SZheng Fan if ( nSID == FN_BUL_NUM_RULE_INDEX ||nSID == FN_NUM_NUM_RULE_INDEX) 1108766ce4d0SZheng Fan StateChangeBulletNumRuleImpl( nSID, eState, pState ); 1109766ce4d0SZheng Fan //End 1110766ce4d0SZheng Fan 1111766ce4d0SZheng Fan if ((nSID == SID_TABLE_VERT_NONE)||(nSID == SID_TABLE_VERT_CENTER)||(nSID == SID_TABLE_VERT_BOTTOM)) 1112766ce4d0SZheng Fan { 1113766ce4d0SZheng Fan VertStateChanged( nSID, eState, pState); 1114766ce4d0SZheng Fan } 1115766ce4d0SZheng Fan else if (nSID == SID_BACKGROUND_COLOR) 1116766ce4d0SZheng Fan { 1117766ce4d0SZheng Fan ParaBKGStateChanged(nSID, eState, pState); 1118766ce4d0SZheng Fan } 1119766ce4d0SZheng Fan } 1120766ce4d0SZheng Fan 1121766ce4d0SZheng Fan void ParaPropertyPanel::StateChangedAlignmentImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1122766ce4d0SZheng Fan { 1123766ce4d0SZheng Fan if( eState >= SFX_ITEM_AVAILABLE ) 1124766ce4d0SZheng Fan { 1125766ce4d0SZheng Fan const SfxBoolItem* pItem = (const SfxBoolItem*)pState; 1126766ce4d0SZheng Fan bool IsChecked = (bool)pItem->GetValue(); 1127766ce4d0SZheng Fan switch (nSID) 1128766ce4d0SZheng Fan { 1129766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_LEFT: 1130766ce4d0SZheng Fan { 1131766ce4d0SZheng Fan if(IsChecked) 1132766ce4d0SZheng Fan { 1133766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_CHECK); 1134766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 1135766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 1136766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 1137766ce4d0SZheng Fan } 1138766ce4d0SZheng Fan else 1139766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 1140766ce4d0SZheng Fan } 1141766ce4d0SZheng Fan break; 1142766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_CENTER: 1143766ce4d0SZheng Fan { 1144766ce4d0SZheng Fan if(IsChecked) 1145766ce4d0SZheng Fan { 1146766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_CHECK); 1147766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 1148766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 1149766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 1150766ce4d0SZheng Fan } 1151766ce4d0SZheng Fan else 1152766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 1153766ce4d0SZheng Fan } 1154766ce4d0SZheng Fan break; 1155766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_RIGHT: 1156766ce4d0SZheng Fan { 1157766ce4d0SZheng Fan if(IsChecked) 1158766ce4d0SZheng Fan { 1159766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_CHECK); 1160766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 1161766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 1162766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 1163766ce4d0SZheng Fan } 1164766ce4d0SZheng Fan else 1165766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 1166766ce4d0SZheng Fan } 1167766ce4d0SZheng Fan break; 1168766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_BLOCK: 1169766ce4d0SZheng Fan { 1170766ce4d0SZheng Fan if(IsChecked) 1171766ce4d0SZheng Fan { 1172766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_CHECK); 1173766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 1174766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 1175766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 1176766ce4d0SZheng Fan } 1177766ce4d0SZheng Fan else 1178766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 1179766ce4d0SZheng Fan } 1180766ce4d0SZheng Fan break; 1181766ce4d0SZheng Fan } 1182766ce4d0SZheng Fan } 1183766ce4d0SZheng Fan else if( eState == SFX_ITEM_DISABLED ) 1184766ce4d0SZheng Fan { 1185766ce4d0SZheng Fan } 1186766ce4d0SZheng Fan else if ( eState == SFX_ITEM_DONTCARE ) 1187766ce4d0SZheng Fan { 1188766ce4d0SZheng Fan switch (nSID) 1189766ce4d0SZheng Fan { 1190766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_LEFT: 1191766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 1192766ce4d0SZheng Fan break; 1193766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_CENTER: 1194766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 1195766ce4d0SZheng Fan break; 1196766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_RIGHT: 1197766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 1198766ce4d0SZheng Fan break; 1199766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_BLOCK: 1200766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 1201766ce4d0SZheng Fan break; 1202766ce4d0SZheng Fan } 1203766ce4d0SZheng Fan } 1204766ce4d0SZheng Fan } 1205766ce4d0SZheng Fan 1206766ce4d0SZheng Fan void ParaPropertyPanel::StateChangedIndentImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1207766ce4d0SZheng Fan { 1208766ce4d0SZheng Fan switch (maContext.GetCombinedContext()) 1209766ce4d0SZheng Fan { 1210766ce4d0SZheng Fan 1211766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_DrawText): 1212766ce4d0SZheng Fan case CombinedEnumContext(Application_Calc, Context_DrawText): 1213766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Annotation): 1214766ce4d0SZheng Fan { 1215766ce4d0SZheng Fan maLeftIndent->SetMin( DEFAULT_VALUE ); 1216766ce4d0SZheng Fan maRightIndent->SetMin( DEFAULT_VALUE ); 1217766ce4d0SZheng Fan maFLineIndent->SetMin( DEFAULT_VALUE ); 1218766ce4d0SZheng Fan maTbxIndent_IncDec->Show(); 1219766ce4d0SZheng Fan maTbxProDemote->Hide(); 1220766ce4d0SZheng Fan } 1221766ce4d0SZheng Fan break; 1222766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_DrawText): 1223766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_DrawText): 1224766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Draw): 1225766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_TextObject): 1226766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Graphic): 1227766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Draw): 1228766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_TextObject): 1229766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Graphic): 1230766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Table): 1231766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Table): 1232766ce4d0SZheng Fan { 1233766ce4d0SZheng Fan maLeftIndent->SetMin( DEFAULT_VALUE ); 1234766ce4d0SZheng Fan maRightIndent->SetMin( DEFAULT_VALUE ); 1235766ce4d0SZheng Fan maFLineIndent->SetMin( DEFAULT_VALUE ); 1236766ce4d0SZheng Fan maTbxIndent_IncDec->Hide(); 1237766ce4d0SZheng Fan maTbxProDemote->Show(); 1238766ce4d0SZheng Fan } 1239766ce4d0SZheng Fan break; 1240766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Default): 1241766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Text): 1242766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Table): 1243766ce4d0SZheng Fan { 1244766ce4d0SZheng Fan maLeftIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM ); 1245766ce4d0SZheng Fan maRightIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM ); 1246766ce4d0SZheng Fan maFLineIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM ); 1247766ce4d0SZheng Fan maTbxIndent_IncDec->Show(); 1248766ce4d0SZheng Fan maTbxProDemote->Hide(); 1249766ce4d0SZheng Fan } 1250766ce4d0SZheng Fan break; 1251766ce4d0SZheng Fan } 1252766ce4d0SZheng Fan 1253766ce4d0SZheng Fan if( pState && eState >= SFX_ITEM_AVAILABLE ) 1254766ce4d0SZheng Fan { 1255766ce4d0SZheng Fan SvxLRSpaceItem* pSpace = ( SvxLRSpaceItem*)pState; 1256766ce4d0SZheng Fan maTxtLeft = pSpace->GetTxtLeft(); 1257766ce4d0SZheng Fan maTxtLeft = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM ); 1258766ce4d0SZheng Fan maTxtLeft = OutputDevice::LogicToLogic( maTxtLeft, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) ); 1259766ce4d0SZheng Fan 1260766ce4d0SZheng Fan long aTxtRight = pSpace->GetRight(); 1261766ce4d0SZheng Fan aTxtRight = OutputDevice::LogicToLogic( aTxtRight, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM ); 1262766ce4d0SZheng Fan aTxtRight = OutputDevice::LogicToLogic( aTxtRight, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) ); 1263766ce4d0SZheng Fan 1264766ce4d0SZheng Fan long aTxtFirstLineOfst = pSpace->GetTxtFirstLineOfst(); 1265766ce4d0SZheng Fan aTxtFirstLineOfst = OutputDevice::LogicToLogic( aTxtFirstLineOfst, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM ); 1266766ce4d0SZheng Fan aTxtFirstLineOfst = OutputDevice::LogicToLogic( aTxtFirstLineOfst, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) ); 1267766ce4d0SZheng Fan 1268766ce4d0SZheng Fan long nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1269766ce4d0SZheng Fan nVal = (long)maLeftIndent->Normalize( (long)nVal ); 1270766ce4d0SZheng Fan maLeftIndent->SetValue( nVal, FUNIT_100TH_MM ); 1271766ce4d0SZheng Fan 1272766ce4d0SZheng Fan if(maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) && 1273766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) && 1274766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table)) 1275766ce4d0SZheng Fan { 1276766ce4d0SZheng Fan maFLineIndent->SetMin( nVal*(-1), FUNIT_100TH_MM ); 1277766ce4d0SZheng Fan } 1278766ce4d0SZheng Fan 1279766ce4d0SZheng Fan long nrVal = OutputDevice::LogicToLogic( aTxtRight, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1280766ce4d0SZheng Fan nrVal = (long)maRightIndent->Normalize( (long)nrVal ); 1281766ce4d0SZheng Fan maRightIndent->SetValue( nrVal, FUNIT_100TH_MM ); 1282766ce4d0SZheng Fan 1283766ce4d0SZheng Fan long nfVal = OutputDevice::LogicToLogic( aTxtFirstLineOfst, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1284766ce4d0SZheng Fan nfVal = (long)maFLineIndent->Normalize( (long)nfVal ); 1285766ce4d0SZheng Fan maFLineIndent->SetValue( nfVal, FUNIT_100TH_MM ); 1286766ce4d0SZheng Fan 1287766ce4d0SZheng Fan switch (maContext.GetCombinedContext()) 1288766ce4d0SZheng Fan { 1289766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_DrawText): 1290766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Text): 1291766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Default): 1292766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Table): 1293766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Annotation): 1294766ce4d0SZheng Fan { 1295766ce4d0SZheng Fan maLeftIndent->SetMax( MAX_SW - nrVal, FUNIT_100TH_MM ); 1296766ce4d0SZheng Fan maRightIndent->SetMax( MAX_SW - nVal, FUNIT_100TH_MM ); 1297766ce4d0SZheng Fan maFLineIndent->SetMax( MAX_SW - nVal - nrVal, FUNIT_100TH_MM ); 1298766ce4d0SZheng Fan } 1299766ce4d0SZheng Fan break; 1300766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_DrawText): 1301766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Draw): 1302766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Table): 1303766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_TextObject): 1304766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Graphic): 1305766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_TextObject): 1306766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_DrawText): 1307766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Table): 1308766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Draw): 1309766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Graphic): 1310766ce4d0SZheng Fan { 1311766ce4d0SZheng Fan maLeftIndent->SetMax( MAX_SC_SD - nrVal, FUNIT_100TH_MM ); 1312766ce4d0SZheng Fan maRightIndent->SetMax( MAX_SC_SD - nVal, FUNIT_100TH_MM ); 1313766ce4d0SZheng Fan maFLineIndent->SetMax( MAX_SC_SD - nVal - nrVal, FUNIT_100TH_MM ); 1314766ce4d0SZheng Fan } 1315766ce4d0SZheng Fan } 1316766ce4d0SZheng Fan 1317766ce4d0SZheng Fan maTbxIndent_IncDec->Enable(); 1318766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_True); 1319766ce4d0SZheng Fan if(maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) 1320766ce4d0SZheng Fan && maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) 1321766ce4d0SZheng Fan && maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table)) 1322766ce4d0SZheng Fan { 1323766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_INC, sal_True); 1324766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_True); 1325766ce4d0SZheng Fan } 1326766ce4d0SZheng Fan 1327*1ff378efSZheng Fan // maTbxProDemote->Enable(); 1328*1ff378efSZheng Fan // if( !mbOutLineRight && !mbOutLineLeft ) 1329*1ff378efSZheng Fan // maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True); 1330766ce4d0SZheng Fan maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True); 1331766ce4d0SZheng Fan } 1332766ce4d0SZheng Fan else if( eState == SFX_ITEM_DISABLED ) 1333766ce4d0SZheng Fan { 1334766ce4d0SZheng Fan maLeftIndent-> Disable(); 1335766ce4d0SZheng Fan maRightIndent->Disable(); 1336766ce4d0SZheng Fan maFLineIndent->Disable(); 1337766ce4d0SZheng Fan maTbxIndent_IncDec->Disable(); 1338766ce4d0SZheng Fan if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) && 1339766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) && 1340766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table) ) 1341766ce4d0SZheng Fan maTbxIndent_IncDec->Disable(); 1342766ce4d0SZheng Fan else 1343766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_False); 1344766ce4d0SZheng Fan 1345*1ff378efSZheng Fan // maTbxProDemote->Disable(); 1346766ce4d0SZheng Fan maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False); 1347766ce4d0SZheng Fan } 1348766ce4d0SZheng Fan else 1349766ce4d0SZheng Fan { 1350766ce4d0SZheng Fan maLeftIndent->SetEmptyFieldValue(); 1351766ce4d0SZheng Fan maRightIndent->SetEmptyFieldValue(); 1352766ce4d0SZheng Fan maFLineIndent->SetEmptyFieldValue(); 1353766ce4d0SZheng Fan if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) && 1354766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) && 1355766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table) ) 1356766ce4d0SZheng Fan maTbxIndent_IncDec->Disable(); 1357766ce4d0SZheng Fan else 1358766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_False); 1359*1ff378efSZheng Fan // maTbxProDemote->Disable(); 1360766ce4d0SZheng Fan maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False); 1361766ce4d0SZheng Fan } 1362766ce4d0SZheng Fan } 1363766ce4d0SZheng Fan 1364766ce4d0SZheng Fan void ParaPropertyPanel::StateChangedLnSPImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1365766ce4d0SZheng Fan { 1366766ce4d0SZheng Fan meLnSpState = eState; 1367766ce4d0SZheng Fan 1368766ce4d0SZheng Fan if( pState && eState >= SFX_ITEM_AVAILABLE ) 1369766ce4d0SZheng Fan { 1370766ce4d0SZheng Fan if(mpLnSPItem) 1371766ce4d0SZheng Fan delete mpLnSPItem; 1372766ce4d0SZheng Fan mpLnSPItem = ( SvxLineSpacingItem *)pState->Clone(); 1373766ce4d0SZheng Fan } 1374766ce4d0SZheng Fan } 1375766ce4d0SZheng Fan 1376766ce4d0SZheng Fan void ParaPropertyPanel::StateChangedULImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1377766ce4d0SZheng Fan { 1378766ce4d0SZheng Fan maTopDist->SetMax( maTopDist->Normalize( MAX_DURCH ), MapToFieldUnit(m_eULSpaceUnit) ); 1379766ce4d0SZheng Fan maBottomDist->SetMax( maBottomDist->Normalize( MAX_DURCH ), MapToFieldUnit(m_eULSpaceUnit) ); 1380766ce4d0SZheng Fan 1381766ce4d0SZheng Fan if( pState && eState >= SFX_ITEM_AVAILABLE ) 1382766ce4d0SZheng Fan { 1383766ce4d0SZheng Fan SvxULSpaceItem* pOldItem = (SvxULSpaceItem*)pState; 1384766ce4d0SZheng Fan 1385766ce4d0SZheng Fan maUpper = pOldItem->GetUpper(); 1386766ce4d0SZheng Fan maUpper = OutputDevice::LogicToLogic( maUpper, (MapUnit)m_eULSpaceUnit, MAP_100TH_MM ); 1387766ce4d0SZheng Fan maUpper = OutputDevice::LogicToLogic( maUpper, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) ); 1388766ce4d0SZheng Fan 1389766ce4d0SZheng Fan maLower = pOldItem->GetLower(); 1390766ce4d0SZheng Fan maLower = OutputDevice::LogicToLogic( maLower, (MapUnit)m_eULSpaceUnit, MAP_100TH_MM ); 1391766ce4d0SZheng Fan maLower = OutputDevice::LogicToLogic( maLower, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) ); 1392766ce4d0SZheng Fan 1393766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1394766ce4d0SZheng Fan nVal = maTopDist->Normalize( nVal ); 1395766ce4d0SZheng Fan maTopDist->SetValue( nVal, FUNIT_100TH_MM ); 1396766ce4d0SZheng Fan 1397766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1398766ce4d0SZheng Fan nVal = maBottomDist->Normalize( nVal ); 1399766ce4d0SZheng Fan maBottomDist->SetValue( nVal, FUNIT_100TH_MM ); 1400766ce4d0SZheng Fan maTbxUL_IncDec->Enable(); 1401766ce4d0SZheng Fan } 1402766ce4d0SZheng Fan else if(nSID == SID_ATTR_ULSPACE && eState == SFX_ITEM_DISABLED ) 1403766ce4d0SZheng Fan { 1404766ce4d0SZheng Fan maTopDist->Disable(); 1405766ce4d0SZheng Fan maBottomDist->Disable(); 1406766ce4d0SZheng Fan maTbxUL_IncDec->Disable(); 1407766ce4d0SZheng Fan } 1408766ce4d0SZheng Fan else if (nSID == SID_ATTR_ULSPACE) 1409766ce4d0SZheng Fan { 1410766ce4d0SZheng Fan maTopDist->SetEmptyFieldValue(); 1411766ce4d0SZheng Fan maBottomDist->SetEmptyFieldValue(); 1412766ce4d0SZheng Fan maTbxUL_IncDec->Disable(); 1413766ce4d0SZheng Fan } 1414766ce4d0SZheng Fan } 1415766ce4d0SZheng Fan 1416766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeOutLineImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1417766ce4d0SZheng Fan { 1418766ce4d0SZheng Fan if (nSID==SID_OUTLINE_LEFT) 1419766ce4d0SZheng Fan { 1420766ce4d0SZheng Fan if( pState && eState == SFX_ITEM_UNKNOWN ) 1421766ce4d0SZheng Fan mbOutLineLeft = 1; 1422766ce4d0SZheng Fan else 1423766ce4d0SZheng Fan mbOutLineLeft = 0; 1424766ce4d0SZheng Fan } 1425766ce4d0SZheng Fan if (nSID==SID_OUTLINE_RIGHT) 1426766ce4d0SZheng Fan { 1427766ce4d0SZheng Fan if( pState && eState == SFX_ITEM_UNKNOWN ) 1428766ce4d0SZheng Fan mbOutLineRight = 1; 1429766ce4d0SZheng Fan else 1430766ce4d0SZheng Fan mbOutLineRight = 0; 1431766ce4d0SZheng Fan } 1432766ce4d0SZheng Fan if(mbOutLineLeft) 1433766ce4d0SZheng Fan maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_True); 1434766ce4d0SZheng Fan else 1435766ce4d0SZheng Fan maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_False); 1436766ce4d0SZheng Fan 1437766ce4d0SZheng Fan if(mbOutLineRight) 1438766ce4d0SZheng Fan maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_True); 1439766ce4d0SZheng Fan else 1440766ce4d0SZheng Fan maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_False); 1441766ce4d0SZheng Fan 1442*1ff378efSZheng Fan // if( !mbOutLineRight && !mbOutLineLeft ) 1443*1ff378efSZheng Fan // { 1444*1ff378efSZheng Fan // maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_True); 1445*1ff378efSZheng Fan // maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_True); 1446*1ff378efSZheng Fan // maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True); 1447*1ff378efSZheng Fan // } 1448*1ff378efSZheng Fan // else 1449*1ff378efSZheng Fan // maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False); 1450766ce4d0SZheng Fan } 1451766ce4d0SZheng Fan 1452766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeIncDecImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1453766ce4d0SZheng Fan { 1454766ce4d0SZheng Fan if (nSID==SID_INC_INDENT) 1455766ce4d0SZheng Fan { 1456766ce4d0SZheng Fan if( pState && eState == SFX_ITEM_UNKNOWN ) 1457766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_INC, sal_True); 1458766ce4d0SZheng Fan else 1459766ce4d0SZheng Fan if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) && 1460766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) && 1461766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table) ) 1462766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_INC, sal_False); 1463766ce4d0SZheng Fan } 1464766ce4d0SZheng Fan if (nSID==SID_DEC_INDENT) 1465766ce4d0SZheng Fan { 1466766ce4d0SZheng Fan if( pState && eState == SFX_ITEM_UNKNOWN ) 1467766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_True); 1468766ce4d0SZheng Fan else 1469766ce4d0SZheng Fan if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) && 1470766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) && 1471766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table) ) 1472766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_False); 1473766ce4d0SZheng Fan } 1474766ce4d0SZheng Fan } 1475766ce4d0SZheng Fan //Sym3_1093. Add toggle state for numbering and bullet icons 1476766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeBulletNumImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1477766ce4d0SZheng Fan { 1478766ce4d0SZheng Fan if (nSID==FN_NUM_NUMBERING_ON) 1479766ce4d0SZheng Fan { 1480766ce4d0SZheng Fan if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem))) 1481766ce4d0SZheng Fan { 1482766ce4d0SZheng Fan const SfxBoolItem* pItem= (const SfxBoolItem*)pState; 1483766ce4d0SZheng Fan sal_Bool aBool = (sal_Bool)pItem->GetValue(); 1484766ce4d0SZheng Fan if (aBool) { 1485766ce4d0SZheng Fan maTBxNumBullet->SetItemState(IID_NUMBER, STATE_CHECK); 1486766ce4d0SZheng Fan } else { 1487766ce4d0SZheng Fan maTBxNumBullet->SetItemState(IID_NUMBER, STATE_NOCHECK); 1488766ce4d0SZheng Fan } 1489766ce4d0SZheng Fan } 1490766ce4d0SZheng Fan } 1491766ce4d0SZheng Fan if (nSID==FN_NUM_BULLET_ON) 1492766ce4d0SZheng Fan { 1493766ce4d0SZheng Fan if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem))) 1494766ce4d0SZheng Fan { 1495766ce4d0SZheng Fan const SfxBoolItem* pItem= (const SfxBoolItem*)pState; 1496766ce4d0SZheng Fan sal_Bool aBool = (sal_Bool)pItem->GetValue(); 1497766ce4d0SZheng Fan if (aBool) { 1498766ce4d0SZheng Fan maTBxNumBullet->SetItemState(IID_BULLET, STATE_CHECK); 1499766ce4d0SZheng Fan } else { 1500766ce4d0SZheng Fan maTBxNumBullet->SetItemState(IID_BULLET, STATE_NOCHECK); 1501766ce4d0SZheng Fan } 1502766ce4d0SZheng Fan } 1503766ce4d0SZheng Fan } 1504766ce4d0SZheng Fan } 1505766ce4d0SZheng Fan //Modified for Numbering&Bullets Dialog UX Enh(Story 992) by chengjh,2011.7.5 1506766ce4d0SZheng Fan //Handing the transferred the num rule index data of the current selection 1507766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeBulletNumRuleImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1508766ce4d0SZheng Fan { 1509766ce4d0SZheng Fan 1510766ce4d0SZheng Fan const SfxUInt16Item* pIt = (const SfxUInt16Item*)pState; 1511766ce4d0SZheng Fan sal_uInt16 nValue = (sal_uInt16)0xFFFF; 1512766ce4d0SZheng Fan if ( pIt ) 1513766ce4d0SZheng Fan nValue = pIt->GetValue(); 1514766ce4d0SZheng Fan 1515766ce4d0SZheng Fan if ( nSID == FN_BUL_NUM_RULE_INDEX ) 1516766ce4d0SZheng Fan { 1517766ce4d0SZheng Fan nBulletTypeIndex = nValue; 1518766ce4d0SZheng Fan }else if ( nSID == FN_NUM_NUM_RULE_INDEX ) 1519766ce4d0SZheng Fan { 1520766ce4d0SZheng Fan nNumTypeIndex = nValue; 1521766ce4d0SZheng Fan } 1522766ce4d0SZheng Fan } 1523766ce4d0SZheng Fan //End 1524766ce4d0SZheng Fan FieldUnit ParaPropertyPanel::GetCurrentUnit( SfxItemState eState, const SfxPoolItem* pState ) 1525766ce4d0SZheng Fan { 1526766ce4d0SZheng Fan FieldUnit eUnit = FUNIT_NONE; 1527766ce4d0SZheng Fan 1528766ce4d0SZheng Fan if ( pState && eState >= SFX_ITEM_DEFAULT ) 1529766ce4d0SZheng Fan eUnit = (FieldUnit)( (const SfxUInt16Item*)pState )->GetValue(); 1530766ce4d0SZheng Fan else 1531766ce4d0SZheng Fan { 1532766ce4d0SZheng Fan SfxViewFrame* pFrame = SfxViewFrame::Current(); 1533766ce4d0SZheng Fan SfxObjectShell* pSh = NULL; 1534766ce4d0SZheng Fan if ( pFrame ) 1535766ce4d0SZheng Fan pSh = pFrame->GetObjectShell(); 1536766ce4d0SZheng Fan if ( pSh ) //the object shell is not always available during reload 1537766ce4d0SZheng Fan { 1538766ce4d0SZheng Fan SfxModule* pModule = pSh->GetModule(); 1539766ce4d0SZheng Fan if ( pModule ) 1540766ce4d0SZheng Fan { 1541766ce4d0SZheng Fan const SfxPoolItem* pItem = pModule->GetItem( SID_ATTR_METRIC ); 1542766ce4d0SZheng Fan if ( pItem ) 1543766ce4d0SZheng Fan eUnit = (FieldUnit)( (SfxUInt16Item*)pItem )->GetValue(); 1544766ce4d0SZheng Fan } 1545766ce4d0SZheng Fan else 1546766ce4d0SZheng Fan { 1547766ce4d0SZheng Fan DBG_ERRORFILE( "GetModuleFieldUnit(): no module found" ); 1548766ce4d0SZheng Fan } 1549766ce4d0SZheng Fan } 1550766ce4d0SZheng Fan } 1551766ce4d0SZheng Fan 1552766ce4d0SZheng Fan return eUnit; 1553766ce4d0SZheng Fan } 1554766ce4d0SZheng Fan //new FixedText(this, SVX_RES(FT_COLOR)) 1555766ce4d0SZheng Fan 1556766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateLineSpacingControl (PopupContainer* pParent) 1557766ce4d0SZheng Fan { 1558766ce4d0SZheng Fan return new ParaLineSpacingControl(pParent, *this); 1559766ce4d0SZheng Fan } 1560766ce4d0SZheng Fan 1561766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateBulletsPopupControl (PopupContainer* pParent) 1562766ce4d0SZheng Fan { 1563766ce4d0SZheng Fan return new ParaBulletsControl(pParent, *this); 1564766ce4d0SZheng Fan } 1565766ce4d0SZheng Fan 1566766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateNumberingPopupControl (PopupContainer* pParent) 1567766ce4d0SZheng Fan { 1568766ce4d0SZheng Fan return new ParaNumberingControl(pParent, *this); 1569766ce4d0SZheng Fan } 1570766ce4d0SZheng Fan 1571766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateBGColorPopupControl (PopupContainer* pParent) 1572766ce4d0SZheng Fan { 1573766ce4d0SZheng Fan return new ColorControl( 1574766ce4d0SZheng Fan pParent, 1575766ce4d0SZheng Fan mpBindings, 1576766ce4d0SZheng Fan SVX_RES(RID_POPUPPANEL_TEXTPAGE_FONT_COLOR), 1577766ce4d0SZheng Fan SVX_RES(VS_FONT_COLOR), 1578766ce4d0SZheng Fan ::boost::bind(&ParaPropertyPanel::GetBGColor, this), 1579766ce4d0SZheng Fan ::boost::bind(&ParaPropertyPanel::SetBGColor, this, _1,_2), 1580766ce4d0SZheng Fan pParent, 1581766ce4d0SZheng Fan 0); 1582766ce4d0SZheng Fan } 1583766ce4d0SZheng Fan 1584766ce4d0SZheng Fan 1585766ce4d0SZheng Fan ParaPropertyPanel::ParaPropertyPanel(Window* pParent, 1586766ce4d0SZheng Fan const cssu::Reference<css::frame::XFrame>& rxFrame, 1587766ce4d0SZheng Fan SfxBindings* pBindings) 1588766ce4d0SZheng Fan : Control(pParent, SVX_RES(RID_SIDEBAR_PARA_PANEL)) 1589766ce4d0SZheng Fan //, mnContextId (PROPERTY_CONTEXT_NOT_SUPPORT) 1590766ce4d0SZheng Fan //Alignment 1591766ce4d0SZheng Fan ,maAlignToolBoxBackground(ControlFactory::CreateToolBoxBackground(this)) 1592766ce4d0SZheng Fan , maAlignToolBox (ControlFactory::CreateToolBox(maAlignToolBoxBackground.get(),SVX_RES(TBX_HORIZONTALALIGNMENT))) 1593766ce4d0SZheng Fan ,maTBxVertAlignBackground(ControlFactory::CreateToolBoxBackground(this)) 1594766ce4d0SZheng Fan , maTBxVertAlign (ControlFactory::CreateToolBox(maTBxVertAlignBackground.get(),SVX_RES(TBX_VERT_ALIGN))) 1595766ce4d0SZheng Fan , maLeftPara (SVX_RES(IMG_LEFT_PARA)) 1596766ce4d0SZheng Fan , maCentPara (SVX_RES(IMG_CENTER_PARA)) 1597766ce4d0SZheng Fan , maRightPara (SVX_RES(IMG_RIGHT_PARA)) 1598766ce4d0SZheng Fan , maJusPara (SVX_RES(IMG_JUSTIFY_PARA)) 1599766ce4d0SZheng Fan , maVertImageList (SVX_RES(IL_VERT_ALIGN)) 1600766ce4d0SZheng Fan , maVertImageListH (SVX_RES(IL_VERT_ALIGN)) 1601766ce4d0SZheng Fan //Num&Backcolor 1602766ce4d0SZheng Fan ,maTBxNumBulletBackground(ControlFactory::CreateToolBoxBackground(this)) 1603766ce4d0SZheng Fan , maTBxNumBullet (ControlFactory::CreateToolBox(maTBxNumBulletBackground.get(),SVX_RES(TBX_NUM_BULLET))) 1604766ce4d0SZheng Fan ,maTBxBackColorBackground(ControlFactory::CreateToolBoxBackground(this)) 1605766ce4d0SZheng Fan , maTBxBackColor (ControlFactory::CreateToolBox(maTBxBackColorBackground.get(),SVX_RES(TBX_BACK_COLOR))) 1606766ce4d0SZheng Fan , maNumBImageList (SVX_RES(IL_NUM_BULLET)) 1607766ce4d0SZheng Fan , maNumBImageListH (SVX_RES(ILH_NUM_BULLET)) 1608766ce4d0SZheng Fan , maNumBImageListRTL (SVX_RES(IL_NUM_BULLET_RTL)) //wj sym2_7380 1609766ce4d0SZheng Fan , maImgBackColorHigh (SVX_RES(IMG_BACK_COLOR_H)) 1610766ce4d0SZheng Fan , maImgBackColor (SVX_RES(IMG_BACK_COLOR)) 1611766ce4d0SZheng Fan , mpColorUpdater () 1612766ce4d0SZheng Fan , maColor (COL_AUTO) 1613766ce4d0SZheng Fan , mbColorAvailable (sal_True) 1614766ce4d0SZheng Fan //Paragraph spacing 1615766ce4d0SZheng Fan , maFTUL (new FixedText(this, SVX_RES(FT_SPACING))) 1616766ce4d0SZheng Fan ,maTbxUL_IncDecBackground(ControlFactory::CreateToolBoxBackground(this)) 1617766ce4d0SZheng Fan , maTbxUL_IncDec (ControlFactory::CreateToolBox(maTbxUL_IncDecBackground.get(),SVX_RES(TBX_UL_INC_DEC))) 1618766ce4d0SZheng Fan , maParInc (SVX_RES(IMG_PARA_INC)) 1619766ce4d0SZheng Fan , maParDec (SVX_RES(IMG_PARA_DEC)) 1620766ce4d0SZheng Fan , maTopDist (new SvxRelativeField(this, SVX_RES(MF_ABOVE_PARASPACING))) 1621766ce4d0SZheng Fan , maBottomDist (new SvxRelativeField(this, SVX_RES(MF_BELOW_PARASPACING))) 1622766ce4d0SZheng Fan //Indent 1623766ce4d0SZheng Fan , maFTIndent (new FixedText(this, SVX_RES(FT_INDENT))) 1624766ce4d0SZheng Fan ,maTbxIndent_IncDecBackground(ControlFactory::CreateToolBoxBackground(this)) 1625766ce4d0SZheng Fan , maTbxIndent_IncDec (ControlFactory::CreateToolBox(maTbxIndent_IncDecBackground.get(),SVX_RES(TBX_INDENT_INC_DEC))) 1626766ce4d0SZheng Fan ,maTbxProDemoteBackground(ControlFactory::CreateToolBoxBackground(this)) 1627766ce4d0SZheng Fan , maTbxProDemote (ControlFactory::CreateToolBox(maTbxProDemoteBackground.get(),SVX_RES(TBX_INDENT_PRO_DEMOTE))) 1628766ce4d0SZheng Fan , maLeftIndent (new SvxRelativeField(this, SVX_RES(MF_BEFORE_INDENT))) 1629766ce4d0SZheng Fan , maRightIndent (new SvxRelativeField(this, SVX_RES(MF_AFTER_INDENT))) 1630766ce4d0SZheng Fan , maFLineIndent (new SvxRelativeField(this, SVX_RES(MF_FL_INDENT))) 1631766ce4d0SZheng Fan , maIndInc (SVX_RES(IMG_INDENT_INC)) 1632766ce4d0SZheng Fan , maIndDec (SVX_RES(IMG_INDENT_DEC)) 1633766ce4d0SZheng Fan , maIndInc_BD (SVX_RES(IMG_INDENT_INC_BD)) 1634766ce4d0SZheng Fan , maIndDec_BD (SVX_RES(IMG_INDENT_DEC_BD)) 1635766ce4d0SZheng Fan , maIndHang (SVX_RES(IMG_INDENT_HANG)) 1636766ce4d0SZheng Fan , maTxtLeft (0) 1637766ce4d0SZheng Fan //Line spacing 1638766ce4d0SZheng Fan ,maLineSPTbxBackground(ControlFactory::CreateToolBoxBackground(this)) 1639766ce4d0SZheng Fan , maLineSPTbx (ControlFactory::CreateToolBox(maLineSPTbxBackground.get(),SVX_RES(TBX_LINESP))) 1640766ce4d0SZheng Fan , maSpace1 (SVX_RES(IMG_SPACE1)) 1641766ce4d0SZheng Fan , maSpace2 (SVX_RES(IMG_SPACE2)) 1642766ce4d0SZheng Fan , maSpace3 (SVX_RES(IMG_SPACE3)) 1643766ce4d0SZheng Fan , maIndent1 (SVX_RES(IMG_INDENT1)) 1644766ce4d0SZheng Fan , maIndent2 (SVX_RES(IMG_INDENT2)) 1645766ce4d0SZheng Fan , maIndent3 (SVX_RES(IMG_INDENT3)) 1646766ce4d0SZheng Fan , maLineSpacePopup(this, ::boost::bind(&ParaPropertyPanel::CreateLineSpacingControl, this, _1)) 1647766ce4d0SZheng Fan , maBulletsPopup(this, ::boost::bind(&ParaPropertyPanel::CreateBulletsPopupControl, this, _1)) 1648766ce4d0SZheng Fan , maNumberingPopup(this, ::boost::bind(&ParaPropertyPanel::CreateNumberingPopupControl, this, _1)) 1649766ce4d0SZheng Fan , maBGColorPopup(this, ::boost::bind(&ParaPropertyPanel::CreateBGColorPopupControl, this, _1)) 1650766ce4d0SZheng Fan //Controller 1651766ce4d0SZheng Fan , maLeftAlignControl (SID_ATTR_PARA_ADJUST_LEFT, *pBindings,*this) 1652766ce4d0SZheng Fan , maCenterAlignControl (SID_ATTR_PARA_ADJUST_CENTER, *pBindings,*this) 1653766ce4d0SZheng Fan , maRightAlignControl (SID_ATTR_PARA_ADJUST_RIGHT, *pBindings,*this) 1654766ce4d0SZheng Fan , maJustifyAlignControl (SID_ATTR_PARA_ADJUST_BLOCK, *pBindings,*this) 1655766ce4d0SZheng Fan , maLRSpaceControl (SID_ATTR_PARA_LRSPACE,*pBindings,*this) 1656766ce4d0SZheng Fan , maLNSpaceControl (SID_ATTR_PARA_LINESPACE, *pBindings,*this) 1657766ce4d0SZheng Fan , maULSpaceControl (SID_ATTR_PARA_ULSPACE, *pBindings,*this) 1658766ce4d0SZheng Fan , maOutLineLeftControl (SID_OUTLINE_LEFT, *pBindings,*this) 1659766ce4d0SZheng Fan , maOutLineRightControl (SID_OUTLINE_RIGHT, *pBindings,*this) 1660766ce4d0SZheng Fan , maIncIndentControl (SID_INC_INDENT, *pBindings,*this) 1661766ce4d0SZheng Fan , maDecIndentControl (SID_DEC_INDENT, *pBindings,*this) 1662766ce4d0SZheng Fan , maVertTop (SID_TABLE_VERT_NONE, *pBindings,*this) 1663766ce4d0SZheng Fan , maVertCenter (SID_TABLE_VERT_CENTER, *pBindings,*this) 1664766ce4d0SZheng Fan , maVertBottom (SID_TABLE_VERT_BOTTOM,*pBindings,*this) 1665766ce4d0SZheng Fan , maBulletOnOff (FN_NUM_BULLET_ON, *pBindings,*this) 1666766ce4d0SZheng Fan , maNumberOnOff (FN_NUM_NUMBERING_ON, *pBindings,*this) 1667766ce4d0SZheng Fan //Modified for Numbering&Bullets Dialog UX Enh(Story 992) by chengjh,2011.7.5 1668766ce4d0SZheng Fan //Add entry to transfer number rule index data 1669766ce4d0SZheng Fan ,maBulletNumRuleIndex (FN_BUL_NUM_RULE_INDEX, *pBindings,*this) 1670766ce4d0SZheng Fan ,maNumNumRuleIndex (FN_NUM_NUM_RULE_INDEX, *pBindings,*this) 1671766ce4d0SZheng Fan //End 1672766ce4d0SZheng Fan , maBackColorControl (SID_BACKGROUND_COLOR, *pBindings,*this) 1673766ce4d0SZheng Fan , m_aMetricCtl (SID_ATTR_METRIC, *pBindings,*this) 1674766ce4d0SZheng Fan //, m_eMetricUnit (FUNIT_INCH) 1675766ce4d0SZheng Fan //, m_last_eMetricUnit (FUNIT_INCH) 1676766ce4d0SZheng Fan //internal var 1677766ce4d0SZheng Fan , maUpper (0) 1678766ce4d0SZheng Fan , maLower (0) 1679766ce4d0SZheng Fan , mpLnSPItem (NULL) 1680766ce4d0SZheng Fan , meLnSpState (SFX_ITEM_DONTCARE) 1681766ce4d0SZheng Fan , maFISpace1 ( this, SVX_RES( FI_SPACE1)) 1682766ce4d0SZheng Fan , maFISpace2 ( this, SVX_RES( FI_SPACE2)) 1683766ce4d0SZheng Fan , maFIndent1 ( this, SVX_RES( FI_INDENT1)) 1684766ce4d0SZheng Fan , maFIndent2 ( this, SVX_RES( FI_INDENT2)) 1685766ce4d0SZheng Fan , maFIndent3 ( this, SVX_RES( FI_INDENT3)) 1686766ce4d0SZheng Fan , mbOutLineRight (0) 1687766ce4d0SZheng Fan , mbOutLineLeft (0) 1688766ce4d0SZheng Fan ,nBulletTypeIndex ((sal_uInt16)0xFFFF) 1689766ce4d0SZheng Fan ,nNumTypeIndex ((sal_uInt16)0xFFFF) 1690766ce4d0SZheng Fan //End 1691766ce4d0SZheng Fan ,mpBindings(pBindings) 1692766ce4d0SZheng Fan { 1693766ce4d0SZheng Fan initial(); 1694766ce4d0SZheng Fan FreeResource(); 1695766ce4d0SZheng Fan } 1696766ce4d0SZheng Fan 1697766ce4d0SZheng Fan }} 1698