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, 12137fee4fdSAndre Fischer SfxBindings* pBindings, 12237fee4fdSAndre Fischer const cssu::Reference<css::ui::XSidebar>& rxSidebar) 123766ce4d0SZheng Fan { 124766ce4d0SZheng Fan if (pParent == NULL) 125766ce4d0SZheng Fan throw lang::IllegalArgumentException(A2S("no parent Window given to ParaPropertyPanel::Create"), NULL, 0); 126766ce4d0SZheng Fan if ( ! rxFrame.is()) 127766ce4d0SZheng Fan throw lang::IllegalArgumentException(A2S("no XFrame given to ParaPropertyPanel::Create"), NULL, 1); 128766ce4d0SZheng Fan if (pBindings == NULL) 129766ce4d0SZheng Fan throw lang::IllegalArgumentException(A2S("no SfxBindings given to ParaPropertyPanel::Create"), NULL, 2); 130766ce4d0SZheng Fan 131766ce4d0SZheng Fan return new ParaPropertyPanel( 132766ce4d0SZheng Fan pParent, 133766ce4d0SZheng Fan rxFrame, 13437fee4fdSAndre Fischer pBindings, 13537fee4fdSAndre Fischer rxSidebar); 136766ce4d0SZheng Fan } 137766ce4d0SZheng Fan 138766ce4d0SZheng Fan void ParaPropertyPanel::HandleContextChange ( 139766ce4d0SZheng Fan const ::sfx2::sidebar::EnumContext aContext) 140766ce4d0SZheng Fan { 141766ce4d0SZheng Fan if (maContext == aContext) 142766ce4d0SZheng Fan { 143766ce4d0SZheng Fan // Nothing to do. 144766ce4d0SZheng Fan return; 145766ce4d0SZheng Fan } 146766ce4d0SZheng Fan 147766ce4d0SZheng Fan maContext = aContext; 14837fee4fdSAndre Fischer switch (maContext.GetCombinedContext_DI()) 149766ce4d0SZheng Fan { 150766ce4d0SZheng Fan case CombinedEnumContext(Application_Calc, Context_DrawText): 15137fee4fdSAndre Fischer maTBxVertAlign->Show(); 15237fee4fdSAndre Fischer maTBxVertAlignBackground->Show(); 15337fee4fdSAndre Fischer maTBxBackColor->Hide(); 15437fee4fdSAndre Fischer maTBxBackColorBackground->Hide(); 15537fee4fdSAndre Fischer maTBxNumBullet->Hide(); 15637fee4fdSAndre Fischer maTBxNumBulletBackground->Hide(); 15737fee4fdSAndre Fischer ReSize(false); 15837fee4fdSAndre Fischer maTbxIndent_IncDec->Show(); 15937fee4fdSAndre Fischer maTbxIndent_IncDecBackground->Show(); 16037fee4fdSAndre Fischer maTbxProDemote->Hide(); 16137fee4fdSAndre Fischer maTbxProDemoteBackground->Hide(); 16237fee4fdSAndre Fischer break; 16337fee4fdSAndre Fischer 16437fee4fdSAndre Fischer case CombinedEnumContext(Application_DrawImpress, Context_Draw): 16537fee4fdSAndre Fischer case CombinedEnumContext(Application_DrawImpress, Context_TextObject): 16637fee4fdSAndre Fischer case CombinedEnumContext(Application_DrawImpress, Context_Graphic): 16737fee4fdSAndre Fischer maTBxVertAlign->Hide(); 16837fee4fdSAndre Fischer maTBxVertAlignBackground->Hide(); 16937fee4fdSAndre Fischer maTBxBackColor->Hide(); 17037fee4fdSAndre Fischer maTBxBackColorBackground->Hide(); 17137fee4fdSAndre Fischer maTBxNumBullet->Show(); 17237fee4fdSAndre Fischer maTBxNumBulletBackground->Show(); 17337fee4fdSAndre Fischer ReSize(true); 17437fee4fdSAndre Fischer maTbxIndent_IncDec->Hide(); 17537fee4fdSAndre Fischer maTbxIndent_IncDecBackground->Hide(); 17637fee4fdSAndre Fischer maTbxProDemote->Show(); 17737fee4fdSAndre Fischer maTbxProDemoteBackground->Show(); 17837fee4fdSAndre Fischer break; 17937fee4fdSAndre Fischer 18037fee4fdSAndre Fischer case CombinedEnumContext(Application_DrawImpress, Context_DrawText): 18137fee4fdSAndre Fischer maTBxVertAlign->Show(); 18237fee4fdSAndre Fischer maTBxVertAlignBackground->Show(); 18337fee4fdSAndre Fischer maTBxBackColor->Hide(); 18437fee4fdSAndre Fischer maTBxBackColorBackground->Hide(); 18537fee4fdSAndre Fischer maTBxNumBullet->Show(); 18637fee4fdSAndre Fischer maTBxNumBulletBackground->Show(); 18737fee4fdSAndre Fischer ReSize(true); 18837fee4fdSAndre Fischer maTbxIndent_IncDec->Hide(); 18937fee4fdSAndre Fischer maTbxIndent_IncDecBackground->Hide(); 19037fee4fdSAndre Fischer maTbxProDemote->Show(); 19137fee4fdSAndre Fischer maTbxProDemoteBackground->Show(); 19237fee4fdSAndre Fischer break; 19337fee4fdSAndre Fischer 19437fee4fdSAndre Fischer case CombinedEnumContext(Application_DrawImpress, Context_Table): 19537fee4fdSAndre Fischer maTBxVertAlign->Show(); 19637fee4fdSAndre Fischer maTBxVertAlignBackground->Show(); 19737fee4fdSAndre Fischer maTBxBackColor->Hide(); 19837fee4fdSAndre Fischer maTBxBackColorBackground->Hide(); 19937fee4fdSAndre Fischer maTBxNumBullet->Show(); 20037fee4fdSAndre Fischer maTBxNumBulletBackground->Show(); 20137fee4fdSAndre Fischer ReSize(true); 20237fee4fdSAndre Fischer maTbxIndent_IncDec->Hide(); 20337fee4fdSAndre Fischer maTbxIndent_IncDecBackground->Hide(); 20437fee4fdSAndre Fischer maTbxProDemote->Show(); 20537fee4fdSAndre Fischer maTbxProDemoteBackground->Show(); 20637fee4fdSAndre Fischer break; 20737fee4fdSAndre Fischer 20885f1aca2SAndre Fischer case CombinedEnumContext(Application_WriterVariants, Context_Default): 20985f1aca2SAndre Fischer case CombinedEnumContext(Application_WriterVariants, Context_Text): 21037fee4fdSAndre Fischer maTBxVertAlign->Hide(); 21137fee4fdSAndre Fischer maTBxVertAlignBackground->Hide(); 21237fee4fdSAndre Fischer maTBxBackColor->Show(); 21337fee4fdSAndre Fischer maTBxBackColorBackground->Show(); 21437fee4fdSAndre Fischer maTBxNumBullet->Show(); 215766ce4d0SZheng Fan 21637fee4fdSAndre Fischer maTBxNumBulletBackground->Show(); 21737fee4fdSAndre Fischer ReSize(true); 21837fee4fdSAndre Fischer maTbxIndent_IncDec->Show(); 21937fee4fdSAndre Fischer maTbxIndent_IncDecBackground->Show(); 22037fee4fdSAndre Fischer maTbxProDemote->Hide(); 22137fee4fdSAndre Fischer maTbxProDemoteBackground->Hide(); 22237fee4fdSAndre Fischer break; 22337fee4fdSAndre Fischer 22485f1aca2SAndre Fischer case CombinedEnumContext(Application_WriterVariants, Context_Table): 22537fee4fdSAndre Fischer maTBxVertAlign->Show(); 22637fee4fdSAndre Fischer maTBxVertAlignBackground->Show(); 22737fee4fdSAndre Fischer maTBxBackColor->Show(); 22837fee4fdSAndre Fischer maTBxBackColorBackground->Show(); 22937fee4fdSAndre Fischer maTBxNumBullet->Show(); 23037fee4fdSAndre Fischer maTBxNumBulletBackground->Show(); 23137fee4fdSAndre Fischer ReSize(true); 23237fee4fdSAndre Fischer maTbxIndent_IncDec->Show(); 23337fee4fdSAndre Fischer maTbxIndent_IncDecBackground->Show(); 23437fee4fdSAndre Fischer maTbxProDemote->Hide(); 23537fee4fdSAndre Fischer maTbxProDemoteBackground->Hide(); 23637fee4fdSAndre Fischer break; 23737fee4fdSAndre Fischer 23885f1aca2SAndre Fischer case CombinedEnumContext(Application_WriterVariants, Context_DrawText): 23937fee4fdSAndre Fischer maTBxVertAlign->Show(); 24037fee4fdSAndre Fischer maTBxVertAlignBackground->Show(); 24137fee4fdSAndre Fischer maTBxBackColor->Hide(); 24237fee4fdSAndre Fischer maTBxBackColorBackground->Hide(); 24337fee4fdSAndre Fischer maTBxNumBullet->Hide(); 24437fee4fdSAndre Fischer maTBxNumBulletBackground->Hide(); 24537fee4fdSAndre Fischer ReSize(false); 24637fee4fdSAndre Fischer maTbxIndent_IncDec->Show(); 24737fee4fdSAndre Fischer maTbxIndent_IncDecBackground->Show(); 24837fee4fdSAndre Fischer maTbxProDemote->Hide(); 24937fee4fdSAndre Fischer maTbxProDemoteBackground->Hide(); 25037fee4fdSAndre Fischer break; 25137fee4fdSAndre Fischer 25285f1aca2SAndre Fischer case CombinedEnumContext(Application_WriterVariants, Context_Annotation): 25337fee4fdSAndre Fischer maTBxVertAlign->Hide(); 25437fee4fdSAndre Fischer maTBxVertAlignBackground->Hide(); 25537fee4fdSAndre Fischer maTBxBackColor->Hide(); 25637fee4fdSAndre Fischer maTBxBackColorBackground->Hide(); 25737fee4fdSAndre Fischer maTBxNumBullet->Hide(); 25837fee4fdSAndre Fischer maTBxNumBulletBackground->Hide(); 25937fee4fdSAndre Fischer ReSize(false); 26037fee4fdSAndre Fischer maTbxIndent_IncDec->Show(); 26137fee4fdSAndre Fischer maTbxIndent_IncDecBackground->Show(); 26237fee4fdSAndre Fischer maTbxProDemote->Hide(); 26337fee4fdSAndre Fischer maTbxProDemoteBackground->Hide(); 26437fee4fdSAndre Fischer break; 26537fee4fdSAndre Fischer 266766ce4d0SZheng Fan case CombinedEnumContext(Application_Calc, Context_EditCell): 267766ce4d0SZheng Fan case CombinedEnumContext(Application_Calc, Context_Cell): 268766ce4d0SZheng Fan case CombinedEnumContext(Application_Calc, Context_Pivot): 26937fee4fdSAndre Fischer case CombinedEnumContext(Application_DrawImpress, Context_Text): 27037fee4fdSAndre Fischer case CombinedEnumContext(Application_DrawImpress, Context_OutlineText): 271766ce4d0SZheng Fan /*{ 272766ce4d0SZheng Fan mpToolBoxScriptSw->Hide(); 273766ce4d0SZheng Fan mpToolBoxScript->Show(); 274766ce4d0SZheng Fan mpToolBoxSpacing->Show(); 275766ce4d0SZheng Fan mpToolBoxHighlight->Hide(); 276766ce4d0SZheng Fan 277766ce4d0SZheng Fan Size aSize(PROPERTYPAGE_WIDTH,TEXT_SECTIONPAGE_HEIGHT); 278766ce4d0SZheng Fan aSize = LogicToPixel( aSize,MapMode(MAP_APPFONT) ); 279766ce4d0SZheng Fan aSize.setWidth(GetOutputSizePixel().Width()); 280766ce4d0SZheng Fan SetSizePixel(aSize); 281766ce4d0SZheng Fan }*/ 28237fee4fdSAndre Fischer break; 283766ce4d0SZheng Fan 284766ce4d0SZheng Fan default: 285766ce4d0SZheng Fan break; 286766ce4d0SZheng Fan } 287766ce4d0SZheng Fan } 288766ce4d0SZheng Fan 289766ce4d0SZheng Fan SfxBindings* ParaPropertyPanel::GetBindings() 290766ce4d0SZheng Fan { 291766ce4d0SZheng Fan return mpBindings; 292766ce4d0SZheng Fan } 293766ce4d0SZheng Fan 294*3cac12cfSAndre Fischer 295*3cac12cfSAndre Fischer 296766ce4d0SZheng Fan 297766ce4d0SZheng Fan void ParaPropertyPanel::DataChanged (const DataChangedEvent& rEvent) 298766ce4d0SZheng Fan { 299766ce4d0SZheng Fan (void)rEvent; 300766ce4d0SZheng Fan } 301766ce4d0SZheng Fan 302766ce4d0SZheng Fan ParaPropertyPanel::~ParaPropertyPanel() 303766ce4d0SZheng Fan { 304766ce4d0SZheng Fan delete mpLnSPItem; 305766ce4d0SZheng Fan } 306766ce4d0SZheng Fan 307766ce4d0SZheng Fan void ParaPropertyPanel::ReSize(bool bSize) 308766ce4d0SZheng Fan { 309766ce4d0SZheng Fan if(bSize) 310766ce4d0SZheng Fan { 311766ce4d0SZheng Fan //Paragraph spacing 312766ce4d0SZheng Fan maFTUL->SetPosPixel(POS_FT_PARA_SPACE); 313766ce4d0SZheng Fan maTbxUL_IncDec->SetPosPixel(POS_TBX_PARA_SPACE_INC_DEC); 314766ce4d0SZheng Fan maTopDist->SetPosPixel(POS_MBX_TOP_DIST); 315766ce4d0SZheng Fan maBottomDist->SetPosPixel(POS_MBX_BOT_DIST); 316766ce4d0SZheng Fan //Indent 317766ce4d0SZheng Fan maFTIndent->SetPosPixel(POS_FT_PARA_INDENT); 318766ce4d0SZheng Fan maTbxIndent_IncDec->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC); 319766ce4d0SZheng Fan maTbxProDemote->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC); 320766ce4d0SZheng Fan maLeftIndent->SetPosPixel(POS_MBX_LEFT_DIST); 321766ce4d0SZheng Fan maRightIndent->SetPosPixel(POS_MBX_RIGHT_DIST); 322766ce4d0SZheng Fan maFLineIndent->SetPosPixel(POS_MBX_FLINE_DIST); 323766ce4d0SZheng Fan //Line spacing 324766ce4d0SZheng Fan maLineSPTbx->SetPosPixel(TBX_LINE_SPACE); 325766ce4d0SZheng Fan //image 326766ce4d0SZheng Fan maFISpace1.SetPosPixel(POS_IMG_SPACE1); 327766ce4d0SZheng Fan maFISpace2.SetPosPixel(POS_IMG_SPACE2); 328766ce4d0SZheng Fan maFIndent1.SetPosPixel(POS_IMG_INDENT1); 329766ce4d0SZheng Fan maFIndent2.SetPosPixel(POS_IMG_INDENT2); 330766ce4d0SZheng Fan maFIndent3.SetPosPixel(POS_IMG_INDENT3); 331766ce4d0SZheng Fan Size aSize(GetOutputSizePixel().Width(),PARA_SECTIONPAGE_HEIGHT); 332766ce4d0SZheng Fan aSize = LogicToPixel( aSize, MapMode(MAP_APPFONT) ); 333766ce4d0SZheng Fan aSize.setWidth(GetOutputSizePixel().Width()); 334766ce4d0SZheng Fan SetSizePixel(aSize); 335766ce4d0SZheng Fan } 336766ce4d0SZheng Fan else 337766ce4d0SZheng Fan { 338766ce4d0SZheng Fan //Paragraph spacing 339766ce4d0SZheng Fan maFTUL->SetPosPixel(POS_FT_PARA_SPACE2); 340766ce4d0SZheng Fan maTbxUL_IncDec->SetPosPixel(POS_TBX_PARA_SPACE_INC_DEC2); 341766ce4d0SZheng Fan maTopDist->SetPosPixel(POS_MBX_TOP_DIST2); 342766ce4d0SZheng Fan maBottomDist->SetPosPixel(POS_MBX_BOT_DIST2); 343766ce4d0SZheng Fan //Indent 344766ce4d0SZheng Fan maFTIndent->SetPosPixel(POS_FT_PARA_INDENT2); 345766ce4d0SZheng Fan maTbxIndent_IncDec->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC2); 346766ce4d0SZheng Fan maTbxProDemote->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC2); 347766ce4d0SZheng Fan maLeftIndent->SetPosPixel(POS_MBX_LEFT_DIST2); 348766ce4d0SZheng Fan maRightIndent->SetPosPixel(POS_MBX_RIGHT_DIST2); 349766ce4d0SZheng Fan maFLineIndent->SetPosPixel(POS_MBX_FLINE_DIST2); 350766ce4d0SZheng Fan //Line spacing 351766ce4d0SZheng Fan maLineSPTbx->SetPosPixel(TBX_LINE_SPACE2); 352766ce4d0SZheng Fan //image 353766ce4d0SZheng Fan maFISpace1.SetPosPixel(POS_IMG_SPACE12); 354766ce4d0SZheng Fan maFISpace2.SetPosPixel(POS_IMG_SPACE22); 355766ce4d0SZheng Fan maFIndent1.SetPosPixel(POS_IMG_INDENT12); 356766ce4d0SZheng Fan maFIndent2.SetPosPixel(POS_IMG_INDENT22); 357766ce4d0SZheng Fan maFIndent3.SetPosPixel(POS_IMG_INDENT32); 358766ce4d0SZheng Fan Size aSize(GetOutputSizePixel().Width(),PARA_SECTIONPAGE_HEIGHT_2); 359766ce4d0SZheng Fan aSize = LogicToPixel( aSize, MapMode(MAP_APPFONT) ); 360766ce4d0SZheng Fan aSize.setWidth(GetOutputSizePixel().Width()); 361766ce4d0SZheng Fan SetSizePixel(aSize); 362766ce4d0SZheng Fan } 36337fee4fdSAndre Fischer 36437fee4fdSAndre Fischer if (mxSidebar.is()) 36537fee4fdSAndre Fischer mxSidebar->requestLayout(); 366766ce4d0SZheng Fan } 367766ce4d0SZheng Fan 368766ce4d0SZheng Fan void ParaPropertyPanel::EndSpacingPopupMode (void) 369766ce4d0SZheng Fan { 370766ce4d0SZheng Fan maLineSpacePopup.Hide(); 371766ce4d0SZheng Fan } 372766ce4d0SZheng Fan 373766ce4d0SZheng Fan void ParaPropertyPanel::EndBulletsPopupMode (void) 374766ce4d0SZheng Fan { 3758a9f1ce2SZheng Fan //i122054, Missed following line, for collapse the bullets popup 3768a9f1ce2SZheng Fan maBulletsPopup.Hide(); 377766ce4d0SZheng Fan } 378766ce4d0SZheng Fan 379766ce4d0SZheng Fan void ParaPropertyPanel::EndNumberingPopupMode (void) 380766ce4d0SZheng Fan { 3818a9f1ce2SZheng Fan //i122054, Missed following line, for collapse the numbering popup 3828a9f1ce2SZheng Fan maNumberingPopup.Hide(); 383766ce4d0SZheng Fan } 384766ce4d0SZheng Fan 385766ce4d0SZheng Fan 386766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxAlign() 387766ce4d0SZheng Fan { 388*3cac12cfSAndre Fischer const bool bIsHighContrastModeActive (Theme::IsHighContrastMode()); 389*3cac12cfSAndre Fischer maAlignToolBox->SetItemImage(TOOLBOX_ITEM1, maLeftAlignControl.GetIcon(bIsHighContrastModeActive)); 390*3cac12cfSAndre Fischer maAlignToolBox->SetItemImage(TOOLBOX_ITEM2, maCenterAlignControl.GetIcon(bIsHighContrastModeActive)); 391*3cac12cfSAndre Fischer maAlignToolBox->SetItemImage(TOOLBOX_ITEM3, maRightAlignControl.GetIcon(bIsHighContrastModeActive)); 392*3cac12cfSAndre Fischer maAlignToolBox->SetItemImage(TOOLBOX_ITEM4, maJustifyAlignControl.GetIcon(bIsHighContrastModeActive)); 393*3cac12cfSAndre Fischer 394766ce4d0SZheng Fan Link aLink = LINK( this, ParaPropertyPanel, AlignStyleModifyHdl_Impl ); 395766ce4d0SZheng Fan maAlignToolBox->SetSelectHdl( aLink ); 396766ce4d0SZheng Fan Size aTbxSize (maAlignToolBox->CalcWindowSizePixel()); 397766ce4d0SZheng Fan maAlignToolBox->SetOutputSizePixel( aTbxSize ); 398766ce4d0SZheng Fan } 399766ce4d0SZheng Fan 400766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxVertAlign() 401766ce4d0SZheng Fan { 402*3cac12cfSAndre Fischer const bool bIsHighContrastModeActive (Theme::IsHighContrastMode()); 403*3cac12cfSAndre Fischer maTBxVertAlign->SetItemImage(IID_VERT_TOP, maVertTop.GetIcon(bIsHighContrastModeActive)); 404*3cac12cfSAndre Fischer maTBxVertAlign->SetItemImage(IID_VERT_CENTER, maVertCenter.GetIcon(bIsHighContrastModeActive)); 405*3cac12cfSAndre Fischer maTBxVertAlign->SetItemImage(IID_VERT_BOTTOM, maVertBottom.GetIcon(bIsHighContrastModeActive)); 406766ce4d0SZheng Fan maTBxVertAlign->SetSelectHdl(LINK(this,ParaPropertyPanel,VertTbxSelectHandler)); 407766ce4d0SZheng Fan Size aTbxSize (maTBxVertAlign->CalcWindowSizePixel()); 408766ce4d0SZheng Fan maTBxVertAlign->SetOutputSizePixel( aTbxSize ); 409766ce4d0SZheng Fan } 410766ce4d0SZheng Fan 411766ce4d0SZheng Fan 412766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxIndent() 413766ce4d0SZheng Fan { 414766ce4d0SZheng Fan Link aLink = LINK( this, ParaPropertyPanel, ModifyIndentHdl_Impl ); 415766ce4d0SZheng Fan maLeftIndent->SetModifyHdl( aLink ); 416766ce4d0SZheng Fan maRightIndent->SetModifyHdl( aLink ); 417766ce4d0SZheng Fan maFLineIndent->SetModifyHdl( aLink ); 418766ce4d0SZheng Fan 419*3cac12cfSAndre Fischer const bool bIsHighContrastModeActive (Theme::IsHighContrastMode()); 420*3cac12cfSAndre Fischer 421766ce4d0SZheng Fan if( Application::GetSettings().GetLayoutRTL()) 422766ce4d0SZheng Fan { 423*3cac12cfSAndre Fischer maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM1, maIncIndentControl.GetIcon(bIsHighContrastModeActive)); 424*3cac12cfSAndre Fischer maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM2, maDecIndentControl.GetIcon(bIsHighContrastModeActive)); 425766ce4d0SZheng Fan } 426766ce4d0SZheng Fan else 427766ce4d0SZheng Fan { 428*3cac12cfSAndre Fischer maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM1, maIncIndentControl.GetIcon(bIsHighContrastModeActive)); 429*3cac12cfSAndre Fischer maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM2, maDecIndentControl.GetIcon(bIsHighContrastModeActive)); 430766ce4d0SZheng Fan } 431766ce4d0SZheng Fan maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM3,maIndHang); 432766ce4d0SZheng Fan aLink = LINK( this, ParaPropertyPanel, ClickIndent_IncDec_Hdl_Impl ); 433766ce4d0SZheng Fan maTbxIndent_IncDec->SetSelectHdl(aLink); 434766ce4d0SZheng Fan m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric(); 435766ce4d0SZheng Fan Size aTbxSize = maTbxIndent_IncDec->CalcWindowSizePixel(); 436766ce4d0SZheng Fan maTbxIndent_IncDec->SetOutputSizePixel( aTbxSize ); 437766ce4d0SZheng Fan 438766ce4d0SZheng Fan if( Application::GetSettings().GetLayoutRTL()) 439766ce4d0SZheng Fan { 440*3cac12cfSAndre Fischer maTbxProDemote->SetItemImage(TOOLBOX_ITEM1, maOutLineLeftControl.GetIcon(bIsHighContrastModeActive)); 441*3cac12cfSAndre Fischer maTbxProDemote->SetItemImage(TOOLBOX_ITEM2, maOutLineRightControl.GetIcon(bIsHighContrastModeActive)); 442766ce4d0SZheng Fan } 443766ce4d0SZheng Fan else 444766ce4d0SZheng Fan { 445*3cac12cfSAndre Fischer maTbxProDemote->SetItemImage(TOOLBOX_ITEM1, maOutLineLeftControl.GetIcon(bIsHighContrastModeActive)); 446*3cac12cfSAndre Fischer maTbxProDemote->SetItemImage(TOOLBOX_ITEM2, maOutLineRightControl.GetIcon(bIsHighContrastModeActive)); 447766ce4d0SZheng Fan } 448766ce4d0SZheng Fan maTbxProDemote->SetItemImage(TOOLBOX_ITEM3,maIndHang); 449766ce4d0SZheng Fan aLink = LINK( this, ParaPropertyPanel, ClickProDemote_Hdl_Impl ); 450766ce4d0SZheng Fan maTbxProDemote->SetSelectHdl(aLink); 451766ce4d0SZheng Fan m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric(); 452766ce4d0SZheng Fan aTbxSize = maTbxProDemote->CalcWindowSizePixel(); 453766ce4d0SZheng Fan maTbxProDemote->SetOutputSizePixel( aTbxSize ); 454766ce4d0SZheng Fan } 455766ce4d0SZheng Fan 456766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxBGColor() 457766ce4d0SZheng Fan { 458766ce4d0SZheng Fan mpColorUpdater.reset(new ::svx::ToolboxButtonColorUpdater(SID_BACKGROUND_COLOR, TBI_BACK_COLOR, maTBxBackColor.get(), TBX_UPDATER_MODE_CHAR_COLOR_NEW )); 459766ce4d0SZheng Fan 460766ce4d0SZheng Fan maTBxBackColor->SetItemImage(TBI_BACK_COLOR, GetDisplayBackground().GetColor().IsDark()? maImgBackColorHigh : maImgBackColor); 461766ce4d0SZheng Fan maTBxBackColor->SetItemBits( TBI_BACK_COLOR, maTBxBackColor->GetItemBits( TBI_BACK_COLOR ) | TIB_DROPDOWNONLY ); 462766ce4d0SZheng Fan 463766ce4d0SZheng Fan Link aLink = LINK(this, ParaPropertyPanel, ToolBoxBackColorDDHandler); 464766ce4d0SZheng Fan maTBxBackColor->SetDropdownClickHdl ( aLink ); 465766ce4d0SZheng Fan maTBxBackColor->SetSelectHdl ( aLink ); 466766ce4d0SZheng Fan Size aTbxSize (maTBxBackColor->CalcWindowSizePixel()); 467766ce4d0SZheng Fan maTBxBackColor->SetOutputSizePixel( aTbxSize ); 468766ce4d0SZheng Fan } 469766ce4d0SZheng Fan 470766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxBulletsNumbering() 471766ce4d0SZheng Fan { 472*3cac12cfSAndre Fischer const bool bIsHighContrastModeActive (Theme::IsHighContrastMode()); 473*3cac12cfSAndre Fischer maTBxNumBullet->SetItemImage(IID_BULLET, maBulletOnOff.GetIcon(bIsHighContrastModeActive)); 474*3cac12cfSAndre Fischer maTBxNumBullet->SetItemImage(IID_NUMBER, maNumberOnOff.GetIcon(bIsHighContrastModeActive)); 475766ce4d0SZheng Fan 476766ce4d0SZheng Fan maTBxNumBullet->SetDropdownClickHdl(LINK(this,ParaPropertyPanel,NumBTbxDDHandler)); 477766ce4d0SZheng Fan maTBxNumBullet->SetSelectHdl(LINK(this,ParaPropertyPanel,NumBTbxSelectHandler)); 478766ce4d0SZheng Fan Size aTbxSize (maTBxNumBullet->CalcWindowSizePixel()); 479766ce4d0SZheng Fan maTBxNumBullet->SetOutputSizePixel( aTbxSize ); 480766ce4d0SZheng Fan } 481766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxSpacing() 482766ce4d0SZheng Fan { 483766ce4d0SZheng Fan Link aLink = LINK( this, ParaPropertyPanel, ULSpaceHdl_Impl ); 484766ce4d0SZheng Fan maTopDist->SetModifyHdl(aLink); 485766ce4d0SZheng Fan maBottomDist->SetModifyHdl( aLink ); 486766ce4d0SZheng Fan 487*3cac12cfSAndre Fischer maTbxUL_IncDec->SetItemImage(TOOLBOX_ITEM1, maParInc); 488*3cac12cfSAndre Fischer maTbxUL_IncDec->SetItemImage(TOOLBOX_ITEM2, maParDec); 489766ce4d0SZheng Fan aLink = LINK( this, ParaPropertyPanel, ClickUL_IncDec_Hdl_Impl ); 490766ce4d0SZheng Fan maTbxUL_IncDec->SetSelectHdl(aLink); 491766ce4d0SZheng Fan m_eULSpaceUnit = maULSpaceControl.GetCoreMetric(); 492766ce4d0SZheng Fan Size aTbxSize = maTbxUL_IncDec->CalcWindowSizePixel(); 493766ce4d0SZheng Fan maTbxUL_IncDec->SetOutputSizePixel( aTbxSize ); 494766ce4d0SZheng Fan } 495766ce4d0SZheng Fan void ParaPropertyPanel::InitToolBoxLineSpacing() 496766ce4d0SZheng Fan { 497766ce4d0SZheng Fan Link aLink = LINK( this, ParaPropertyPanel, ClickLineSPDropDownHdl_Impl ); 498766ce4d0SZheng Fan maLineSPTbx->SetDropdownClickHdl( aLink ); 499766ce4d0SZheng Fan maLineSPTbx->SetSelectHdl( aLink ); //support keyinput "ENTER" 500766ce4d0SZheng Fan maLineSPTbx->SetItemBits( TOOLBOX_ITEM1, maLineSPTbx->GetItemBits( TOOLBOX_ITEM1 ) | TIB_DROPDOWNONLY ); 501766ce4d0SZheng Fan maLineSPTbx->SetItemImage(TOOLBOX_ITEM1,maSpace3); 502766ce4d0SZheng Fan Size aTbxSize = maLineSPTbx->CalcWindowSizePixel(); 503766ce4d0SZheng Fan maLineSPTbx->SetOutputSizePixel( aTbxSize ); 504766ce4d0SZheng Fan } 505766ce4d0SZheng Fan 506766ce4d0SZheng Fan void ParaPropertyPanel::initial() 507766ce4d0SZheng Fan { 50837fee4fdSAndre Fischer maFTUL->SetBackground(Wallpaper()); 50937fee4fdSAndre Fischer maFTIndent->SetBackground(Wallpaper()); 51037fee4fdSAndre Fischer maFISpace1.SetBackground(Wallpaper()); 51137fee4fdSAndre Fischer maFISpace2.SetBackground(Wallpaper()); 51237fee4fdSAndre Fischer maFIndent1.SetBackground(Wallpaper()); 51337fee4fdSAndre Fischer maFIndent2.SetBackground(Wallpaper()); 51437fee4fdSAndre Fischer maFIndent3.SetBackground(Wallpaper()); 51537fee4fdSAndre Fischer 51637fee4fdSAndre Fischer maFISpace1.SetImage(maSpace1); 517766ce4d0SZheng Fan maFISpace2.SetImage(maSpace2); 518766ce4d0SZheng Fan maFIndent1.SetImage(maIndent3); 519766ce4d0SZheng Fan maFIndent2.SetImage(maIndent2); 520766ce4d0SZheng Fan maFIndent3.SetImage(maIndent1); 521766ce4d0SZheng Fan 522766ce4d0SZheng Fan GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_LEFT,sal_True,sal_False); 523766ce4d0SZheng Fan GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_CENTER,sal_True,sal_False); 524766ce4d0SZheng Fan GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_RIGHT,sal_True,sal_False); 525766ce4d0SZheng Fan GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_BLOCK,sal_True,sal_False); 526766ce4d0SZheng Fan 527766ce4d0SZheng Fan //toolbox 528766ce4d0SZheng Fan InitToolBoxAlign(); 529766ce4d0SZheng Fan InitToolBoxVertAlign(); 530766ce4d0SZheng Fan InitToolBoxIndent(); 531766ce4d0SZheng Fan InitToolBoxBGColor(); 532766ce4d0SZheng Fan InitToolBoxBulletsNumbering(); 533766ce4d0SZheng Fan InitToolBoxSpacing(); 534766ce4d0SZheng Fan InitToolBoxLineSpacing(); 535766ce4d0SZheng Fan 536766ce4d0SZheng Fan #ifdef HAS_IA2 537766ce4d0SZheng Fan maAlignToolBox->SetAccRelationLabeledBy(&maAlignToolBox); 538766ce4d0SZheng Fan maTBxVertAlign->SetMpSubEditAccLableBy(&maTBxVertAlign); 539766ce4d0SZheng Fan maTBxNumBullet->SetAccRelationLabeledBy(&maTBxNumBullet); 540766ce4d0SZheng Fan maTBxBackColor->SetMpSubEditAccLableBy(&maTBxBackColor); 541766ce4d0SZheng Fan maFTUL->SetAccRelationLabeledBy(&maFTUL); 542766ce4d0SZheng Fan maTbxUL_IncDec->SetAccRelationLabeledBy(&maTbxUL_IncDec); 543766ce4d0SZheng Fan maTopDist->SetAccRelationLabeledBy(&maTopDist); 544766ce4d0SZheng Fan maBottomDist->SetAccRelationLabeledBy(&maBottomDist); 545766ce4d0SZheng Fan maLineSPTbx->SetAccRelationLabeledBy(&maLineSPTbx); 546766ce4d0SZheng Fan maFTIndent->SetAccRelationLabeledBy(&maFTIndent); 547766ce4d0SZheng Fan maTbxIndent_IncDec->SetAccRelationLabeledBy(&maTbxIndent_IncDec); 548766ce4d0SZheng Fan maTbxProDemote->SetAccRelationLabeledBy(&maTbxProDemote); 549766ce4d0SZheng Fan maLeftIndent->SetAccRelationLabeledBy(&maLeftIndent); 550766ce4d0SZheng Fan maRightIndent->SetAccRelationLabeledBy(&maRightIndent); 551766ce4d0SZheng Fan maFLineIndent->SetAccRelationLabeledBy(&maFLineIndent); 552766ce4d0SZheng Fan mpColorUpdater->SetAccRelationLabeledBy(&mpColorUpdater); 553766ce4d0SZheng Fan #endif 554766ce4d0SZheng Fan } 555766ce4d0SZheng Fan 556766ce4d0SZheng Fan void ParaPropertyPanel::InitImageList(::boost::scoped_ptr<ToolBox>& rTbx, ImageList& rImglst, ImageList& rImgHlst) 557766ce4d0SZheng Fan { 558766ce4d0SZheng Fan sal_Bool bHighContrast = GetDisplayBackground().GetColor().IsDark(); 559766ce4d0SZheng Fan 560766ce4d0SZheng Fan ImageList& rImgLst = bHighContrast ? rImgHlst : rImglst; 561766ce4d0SZheng Fan 562766ce4d0SZheng Fan sal_uInt16 nCount = rTbx->GetItemCount(); 563766ce4d0SZheng Fan for (sal_uInt16 i = 0; i < nCount; i++) 564766ce4d0SZheng Fan { 565766ce4d0SZheng Fan sal_uInt16 nId = rTbx->GetItemId(i); 566766ce4d0SZheng Fan rTbx->SetItemImage( nId, rImgLst.GetImage( nId ) ); 567766ce4d0SZheng Fan } 568766ce4d0SZheng Fan } 569766ce4d0SZheng Fan 570766ce4d0SZheng Fan //===========================for Numbering & Bullet================================================ 571766ce4d0SZheng Fan 572766ce4d0SZheng Fan 573766ce4d0SZheng Fan 574766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, NumBTbxDDHandler, ToolBox*, pToolBox) 575766ce4d0SZheng Fan { 576766ce4d0SZheng Fan sal_uInt16 nId = pToolBox->GetCurItemId(); 577766ce4d0SZheng Fan 578766ce4d0SZheng Fan EndTracking(); 579766ce4d0SZheng Fan pToolBox->SetItemDown( nId, sal_True ); 580766ce4d0SZheng Fan 581766ce4d0SZheng Fan if (nId == 1) 582766ce4d0SZheng Fan { 583766ce4d0SZheng Fan maBulletsPopup.UpdateValueSet(); 584766ce4d0SZheng Fan maBulletsPopup.Show(*pToolBox); 585766ce4d0SZheng Fan } 586766ce4d0SZheng Fan else if (nId == 2) 587766ce4d0SZheng Fan { 588766ce4d0SZheng Fan maNumberingPopup.UpdateValueSet(); 589766ce4d0SZheng Fan maNumberingPopup.Show(*pToolBox); 590766ce4d0SZheng Fan } 591766ce4d0SZheng Fan pToolBox->SetItemDown( nId, sal_False ); 592766ce4d0SZheng Fan return 0; 593766ce4d0SZheng Fan } 594766ce4d0SZheng Fan 595766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, NumBTbxSelectHandler, ToolBox*, pToolBox) 596766ce4d0SZheng Fan { 597766ce4d0SZheng Fan sal_uInt16 nId = pToolBox->GetCurItemId(); 598766ce4d0SZheng Fan sal_uInt16 nSID = SID_TABLE_VERT_NONE; 599766ce4d0SZheng Fan 600766ce4d0SZheng Fan EndTracking(); 601766ce4d0SZheng Fan if (nId == 1) 602766ce4d0SZheng Fan { 603766ce4d0SZheng Fan nSID = FN_NUM_BULLET_ON; 604766ce4d0SZheng Fan } 605766ce4d0SZheng Fan else if ( nId == 2) 606766ce4d0SZheng Fan { 607766ce4d0SZheng Fan nSID = FN_NUM_NUMBERING_ON; 608766ce4d0SZheng Fan } 609766ce4d0SZheng Fan SfxBoolItem aBoolItem(nSID, sal_True); 610766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(nSID, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 611766ce4d0SZheng Fan 612766ce4d0SZheng Fan return 0; 613766ce4d0SZheng Fan } 614766ce4d0SZheng Fan 615766ce4d0SZheng Fan 616766ce4d0SZheng Fan //================================for Vertical Alignment======================================== 617766ce4d0SZheng Fan 618766ce4d0SZheng Fan 619766ce4d0SZheng Fan 620766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, VertTbxSelectHandler, ToolBox*, pToolBox) 621766ce4d0SZheng Fan { 622766ce4d0SZheng Fan sal_uInt16 nId = pToolBox->GetCurItemId(); 623766ce4d0SZheng Fan sal_uInt16 nSID = SID_TABLE_VERT_NONE; 624766ce4d0SZheng Fan EndTracking(); 625766ce4d0SZheng Fan if (nId == 1) 626766ce4d0SZheng Fan { 627766ce4d0SZheng Fan nSID = SID_TABLE_VERT_NONE; 628*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_TOP, STATE_CHECK); 629*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_CENTER, STATE_NOCHECK); 630*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_BOTTOM, STATE_NOCHECK); 631766ce4d0SZheng Fan } 632766ce4d0SZheng Fan else if (nId == 2) 633766ce4d0SZheng Fan { 634766ce4d0SZheng Fan nSID = SID_TABLE_VERT_CENTER; 635*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_TOP, STATE_NOCHECK); 636*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_CENTER, STATE_CHECK); 637*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_BOTTOM, STATE_NOCHECK); 638766ce4d0SZheng Fan } 639766ce4d0SZheng Fan else if (nId == 3) 640766ce4d0SZheng Fan { 641766ce4d0SZheng Fan nSID = SID_TABLE_VERT_BOTTOM; 642*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_TOP, STATE_NOCHECK); 643*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_CENTER, STATE_NOCHECK); 644*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_BOTTOM, STATE_CHECK); 645766ce4d0SZheng Fan } 646766ce4d0SZheng Fan SfxBoolItem aBoolItem(nSID, sal_True); 647766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(nSID, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 648766ce4d0SZheng Fan 649766ce4d0SZheng Fan return 0; 650766ce4d0SZheng Fan } 651766ce4d0SZheng Fan 652766ce4d0SZheng Fan void ParaPropertyPanel::VertStateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState) 653766ce4d0SZheng Fan { 654766ce4d0SZheng Fan if (eState < SFX_ITEM_DONTCARE) 655766ce4d0SZheng Fan { 656*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_TOP, STATE_NOCHECK); 657*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_CENTER, STATE_NOCHECK); 658*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_BOTTOM, STATE_NOCHECK); 659*3cac12cfSAndre Fischer maTBxVertAlign->EnableItem(IID_VERT_TOP, sal_False); 660*3cac12cfSAndre Fischer maTBxVertAlign->EnableItem(IID_VERT_CENTER, sal_False); 661*3cac12cfSAndre Fischer maTBxVertAlign->EnableItem(IID_VERT_BOTTOM, sal_False); 662766ce4d0SZheng Fan } 663766ce4d0SZheng Fan else 664766ce4d0SZheng Fan { 665*3cac12cfSAndre Fischer maTBxVertAlign->EnableItem(IID_VERT_TOP, sal_True); 666*3cac12cfSAndre Fischer maTBxVertAlign->EnableItem(IID_VERT_CENTER, sal_True); 667*3cac12cfSAndre Fischer maTBxVertAlign->EnableItem(IID_VERT_BOTTOM, sal_True); 668766ce4d0SZheng Fan if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem))) 669766ce4d0SZheng Fan { 670766ce4d0SZheng Fan const SfxBoolItem* pItem= (const SfxBoolItem*)pState; 671766ce4d0SZheng Fan sal_Bool aBool = (sal_Bool)pItem->GetValue(); 672766ce4d0SZheng Fan 673766ce4d0SZheng Fan if (aBool) 674766ce4d0SZheng Fan { 675766ce4d0SZheng Fan if (nSID == SID_TABLE_VERT_NONE) 676766ce4d0SZheng Fan { 677*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_TOP, STATE_CHECK); 678*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_CENTER, STATE_NOCHECK); 679*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_BOTTOM, STATE_NOCHECK); 680766ce4d0SZheng Fan } 681766ce4d0SZheng Fan else if (nSID == SID_TABLE_VERT_CENTER) 682766ce4d0SZheng Fan { 683*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_TOP, STATE_NOCHECK); 684*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_CENTER, STATE_CHECK); 685*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_BOTTOM, STATE_NOCHECK); 686766ce4d0SZheng Fan } 687766ce4d0SZheng Fan else if (nSID == SID_TABLE_VERT_BOTTOM) 688766ce4d0SZheng Fan { 689*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_TOP, STATE_NOCHECK); 690*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_CENTER, STATE_NOCHECK); 691*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_BOTTOM, STATE_CHECK); 692766ce4d0SZheng Fan } 693766ce4d0SZheng Fan } 694766ce4d0SZheng Fan else 695766ce4d0SZheng Fan { 696766ce4d0SZheng Fan if (nSID == SID_TABLE_VERT_NONE) 697766ce4d0SZheng Fan { 698*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_TOP, STATE_NOCHECK); 699766ce4d0SZheng Fan } 700766ce4d0SZheng Fan else if (nSID == SID_TABLE_VERT_CENTER) 701766ce4d0SZheng Fan { 702*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_CENTER, STATE_NOCHECK); 703766ce4d0SZheng Fan } 704766ce4d0SZheng Fan else if (nSID == SID_TABLE_VERT_BOTTOM) 705766ce4d0SZheng Fan { 706*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_BOTTOM, STATE_NOCHECK); 707766ce4d0SZheng Fan } 708766ce4d0SZheng Fan } 709766ce4d0SZheng Fan } 710766ce4d0SZheng Fan else 711766ce4d0SZheng Fan { 712*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_TOP, STATE_NOCHECK); 713*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_CENTER, STATE_NOCHECK); 714*3cac12cfSAndre Fischer maTBxVertAlign->SetItemState(IID_VERT_BOTTOM, STATE_NOCHECK); 715766ce4d0SZheng Fan } 716766ce4d0SZheng Fan } 717766ce4d0SZheng Fan } 718766ce4d0SZheng Fan //==================================for Background color===================== 719766ce4d0SZheng Fan 720766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ToolBoxBackColorDDHandler,ToolBox*, pToolBox) 721766ce4d0SZheng Fan { 722766ce4d0SZheng Fan sal_uInt16 nId = pToolBox->GetCurItemId(); 723766ce4d0SZheng Fan OSL_ASSERT(nId == TBI_BACK_COLOR); 724766ce4d0SZheng Fan if(nId == TBI_BACK_COLOR) 725766ce4d0SZheng Fan { 726766ce4d0SZheng Fan pToolBox->SetItemDown( nId, true ); 727766ce4d0SZheng Fan maBGColorPopup.Show(*pToolBox); 728766ce4d0SZheng Fan maBGColorPopup.SetCurrentColor(maColor, mbColorAvailable); 729766ce4d0SZheng Fan } 730766ce4d0SZheng Fan return 0; 731766ce4d0SZheng Fan } 732766ce4d0SZheng Fan 733766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, ImplPopupModeEndHdl, FloatingWindow*, EMPTYARG ) 734766ce4d0SZheng Fan { 735766ce4d0SZheng Fan return 0; 736766ce4d0SZheng Fan } 737766ce4d0SZheng Fan 738766ce4d0SZheng Fan void ParaPropertyPanel::ShowMenu (void) 739766ce4d0SZheng Fan { 740766ce4d0SZheng Fan if (mpBindings != NULL) 741766ce4d0SZheng Fan { 742766ce4d0SZheng Fan SfxDispatcher* pDispatcher = mpBindings->GetDispatcher(); 743766ce4d0SZheng Fan if (pDispatcher != NULL) 744766ce4d0SZheng Fan pDispatcher->Execute(SID_PARA_DLG, SFX_CALLMODE_ASYNCHRON); 745766ce4d0SZheng Fan } 746766ce4d0SZheng Fan } 747766ce4d0SZheng Fan 7481715803bSPavel Janík void ParaPropertyPanel::ParaBKGStateChanged(sal_uInt16 /* nSID */, SfxItemState eState, const SfxPoolItem* pState) 749766ce4d0SZheng Fan { 750445e496eSZheng Fan if( eState >= SFX_ITEM_DEFAULT && pState->ISA(SvxColorItem)) 751766ce4d0SZheng Fan { 752445e496eSZheng Fan const SvxColorItem* pItem = (const SvxColorItem*)pState; 753445e496eSZheng Fan maColor = pItem->GetValue(); 754766ce4d0SZheng Fan mbColorAvailable = sal_True; 755766ce4d0SZheng Fan mpColorUpdater->Update(maColor); 756766ce4d0SZheng Fan } 757766ce4d0SZheng Fan else 758766ce4d0SZheng Fan { 759766ce4d0SZheng Fan mbColorAvailable = sal_False; 760766ce4d0SZheng Fan maColor.SetColor(COL_AUTO); 761766ce4d0SZheng Fan mpColorUpdater->Update(maColor); 762766ce4d0SZheng Fan } 763766ce4d0SZheng Fan } 764766ce4d0SZheng Fan 765766ce4d0SZheng Fan void ParaPropertyPanel::SetBGColor ( 7661715803bSPavel Janík const String& /* rsColorName */, 767766ce4d0SZheng Fan const Color aColor) 768766ce4d0SZheng Fan { 769766ce4d0SZheng Fan SvxColorItem aColorItem(aColor, SID_BACKGROUND_COLOR); 770766ce4d0SZheng Fan mpBindings->GetDispatcher()->Execute(SID_BACKGROUND_COLOR, SFX_CALLMODE_RECORD, &aColorItem, 0L); 771766ce4d0SZheng Fan maColor = aColor; 772766ce4d0SZheng Fan } 773766ce4d0SZheng Fan 774766ce4d0SZheng Fan //==================================for Paragraph Alignment===================== 775766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, AlignStyleModifyHdl_Impl, ToolBox*, pBox ) 776766ce4d0SZheng Fan { 777766ce4d0SZheng Fan switch (pBox->GetCurItemId()) 778766ce4d0SZheng Fan { 779766ce4d0SZheng Fan case BT_SUBSTLEFT: 780766ce4d0SZheng Fan { 781766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTLEFT,STATE_CHECK); 782766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 783766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 784766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 785766ce4d0SZheng Fan SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_LEFT, sal_True ); 786766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_LEFT, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 787766ce4d0SZheng Fan } 788766ce4d0SZheng Fan break; 789766ce4d0SZheng Fan case BT_SUBSTCENTER: 790766ce4d0SZheng Fan { 791766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTCENTER,STATE_CHECK); 792766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 793766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 794766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 795766ce4d0SZheng Fan SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_CENTER, sal_True ); 796766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_CENTER, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 797766ce4d0SZheng Fan } 798766ce4d0SZheng Fan break; 799766ce4d0SZheng Fan case BT_SUBSTRIGHT: 800766ce4d0SZheng Fan { 801766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTRIGHT,STATE_CHECK); 802766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 803766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 804766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 805766ce4d0SZheng Fan SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_RIGHT, sal_True ); 806766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_RIGHT, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 807766ce4d0SZheng Fan } 808766ce4d0SZheng Fan break; 809766ce4d0SZheng Fan case BT_SUBSTJUSTIFY: 810766ce4d0SZheng Fan { 811766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_CHECK); 812766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 813766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 814766ce4d0SZheng Fan pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 815766ce4d0SZheng Fan SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_BLOCK, sal_True ); 816766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_BLOCK, SFX_CALLMODE_RECORD, &aBoolItem, 0L); 817766ce4d0SZheng Fan } 818766ce4d0SZheng Fan break; 819766ce4d0SZheng Fan } 820766ce4d0SZheng Fan 821766ce4d0SZheng Fan return 0; 822766ce4d0SZheng Fan } 823766ce4d0SZheng Fan //==================================for Paragraph Indent===================== 8241715803bSPavel Janík IMPL_LINK( ParaPropertyPanel, ModifyIndentHdl_Impl, SvxRelativeField*, /* pBox */ ) 825766ce4d0SZheng Fan { 826512ec161SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_PARA_LRSPACE ); 827766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) ); 828766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 829766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 830766ce4d0SZheng Fan 831766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 832512ec161SZheng Fan SID_ATTR_PARA_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 833766ce4d0SZheng Fan return 0; 834766ce4d0SZheng Fan } 835766ce4d0SZheng Fan 836766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ClickIndent_IncDec_Hdl_Impl, ToolBox *, pControl) 837766ce4d0SZheng Fan { 838766ce4d0SZheng Fan switch (pControl->GetCurItemId()) 839766ce4d0SZheng Fan { 840766ce4d0SZheng Fan case INDENT_INCREMENT: 841766ce4d0SZheng Fan { 842766ce4d0SZheng Fan switch (maContext.GetCombinedContext()) 843766ce4d0SZheng Fan { 844766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Default): 845766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Text): 846766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Table): 847766ce4d0SZheng Fan { 848766ce4d0SZheng Fan SfxBoolItem aMargin( SID_INC_INDENT, sal_True ); 849766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 850766ce4d0SZheng Fan SID_INC_INDENT, SFX_CALLMODE_RECORD, &aMargin, 0L); 851766ce4d0SZheng Fan } 852766ce4d0SZheng Fan break; 853766ce4d0SZheng Fan default: 854766ce4d0SZheng Fan { 855512ec161SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_PARA_LRSPACE ); 856766ce4d0SZheng Fan 857766ce4d0SZheng Fan maTxtLeft += INDENT_STEP; 858766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 859766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 860766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)nVal ); 861766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 862766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 863766ce4d0SZheng Fan 864766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 865512ec161SZheng Fan SID_ATTR_PARA_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 866766ce4d0SZheng Fan } 867766ce4d0SZheng Fan } 868766ce4d0SZheng Fan } 869766ce4d0SZheng Fan break; 870766ce4d0SZheng Fan case INDENT_DECREMENT: 871766ce4d0SZheng Fan { 872766ce4d0SZheng Fan switch (maContext.GetCombinedContext()) 873766ce4d0SZheng Fan { 874766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Default): 875766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Text): 876766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Table): 877766ce4d0SZheng Fan { 878766ce4d0SZheng Fan SfxBoolItem aMargin( SID_DEC_INDENT, sal_True ); 879766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 880766ce4d0SZheng Fan SID_DEC_INDENT, SFX_CALLMODE_RECORD, &aMargin, 0L); 881766ce4d0SZheng Fan } 882766ce4d0SZheng Fan break; 883766ce4d0SZheng Fan default: 884766ce4d0SZheng Fan { 885766ce4d0SZheng Fan if((maTxtLeft - INDENT_STEP) < 0) 886766ce4d0SZheng Fan maTxtLeft = DEFAULT_VALUE; 887766ce4d0SZheng Fan else 888766ce4d0SZheng Fan maTxtLeft -= INDENT_STEP; 889766ce4d0SZheng Fan 890512ec161SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_PARA_LRSPACE ); 891766ce4d0SZheng Fan 892766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 893766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 894766ce4d0SZheng Fan 895766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)nVal ); 896766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 897766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 898766ce4d0SZheng Fan 899766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 900512ec161SZheng Fan SID_ATTR_PARA_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 901766ce4d0SZheng Fan } 902766ce4d0SZheng Fan } 903766ce4d0SZheng Fan } 904766ce4d0SZheng Fan break; 905766ce4d0SZheng Fan case ID_HANGING_INDENT: 906766ce4d0SZheng Fan { 907512ec161SZheng Fan SvxLRSpaceItem aMargin( SID_ATTR_PARA_LRSPACE ); 908766ce4d0SZheng Fan aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) + (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 909766ce4d0SZheng Fan aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 910766ce4d0SZheng Fan aMargin.SetTxtFirstLineOfst( ((const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ))*(-1) ); 911766ce4d0SZheng Fan 912766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 913512ec161SZheng Fan SID_ATTR_PARA_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 914766ce4d0SZheng Fan } 915766ce4d0SZheng Fan break; 916766ce4d0SZheng Fan } 917766ce4d0SZheng Fan return( 0L ); 918766ce4d0SZheng Fan } 919766ce4d0SZheng Fan 920766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ClickProDemote_Hdl_Impl, ToolBox *, pControl) 921766ce4d0SZheng Fan { 922395b75f9SOliver-Rainer Wittmann switch (pControl->GetCurItemId()) 923395b75f9SOliver-Rainer Wittmann { 924395b75f9SOliver-Rainer Wittmann case BT_TBX_INDENT_PROMOTE: 925395b75f9SOliver-Rainer Wittmann { 926395b75f9SOliver-Rainer Wittmann GetBindings()->GetDispatcher()->Execute( SID_OUTLINE_RIGHT, SFX_CALLMODE_RECORD ); 927395b75f9SOliver-Rainer Wittmann } 928395b75f9SOliver-Rainer Wittmann break; 929395b75f9SOliver-Rainer Wittmann case BT_TBX_INDENT_DEMOTE: 930395b75f9SOliver-Rainer Wittmann { 931395b75f9SOliver-Rainer Wittmann GetBindings()->GetDispatcher()->Execute( SID_OUTLINE_LEFT, SFX_CALLMODE_RECORD ); 932395b75f9SOliver-Rainer Wittmann } 933395b75f9SOliver-Rainer Wittmann break; 934395b75f9SOliver-Rainer Wittmann case SD_HANGING_INDENT: 935395b75f9SOliver-Rainer Wittmann { 936395b75f9SOliver-Rainer Wittmann SvxLRSpaceItem aMargin( SID_ATTR_PARA_LRSPACE ); 937395b75f9SOliver-Rainer Wittmann aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) + (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) ); 938395b75f9SOliver-Rainer Wittmann aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) ); 939395b75f9SOliver-Rainer Wittmann aMargin.SetTxtFirstLineOfst( ((const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ))*(-1) ); 940395b75f9SOliver-Rainer Wittmann 941395b75f9SOliver-Rainer Wittmann GetBindings()->GetDispatcher()->Execute( SID_ATTR_PARA_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 942395b75f9SOliver-Rainer Wittmann } 943395b75f9SOliver-Rainer Wittmann break; 944395b75f9SOliver-Rainer Wittmann } 945395b75f9SOliver-Rainer Wittmann return( 0L ); 946766ce4d0SZheng Fan } 947766ce4d0SZheng Fan //==================================for Paragraph Line Spacing===================== 948766ce4d0SZheng Fan 949766ce4d0SZheng Fan IMPL_LINK( ParaPropertyPanel, ClickLineSPDropDownHdl_Impl, ToolBox*, pBox ) 950766ce4d0SZheng Fan { 951766ce4d0SZheng Fan 952766ce4d0SZheng Fan const sal_uInt16 nId = pBox->GetCurItemId(); 953766ce4d0SZheng Fan OSL_ASSERT(nId == TOOLBOX_ITEM1); 954766ce4d0SZheng Fan if(nId == TOOLBOX_ITEM1) 955766ce4d0SZheng Fan { 956766ce4d0SZheng Fan pBox->SetItemDown( nId, true ); 957766ce4d0SZheng Fan maLineSpacePopup.Rearrange(meLnSpState,m_eMetricUnit,mpLnSPItem,maContext); 958766ce4d0SZheng Fan maLineSpacePopup.Show(*pBox); 959766ce4d0SZheng Fan 960766ce4d0SZheng Fan } 961766ce4d0SZheng Fan return (0L); 962766ce4d0SZheng Fan } 963766ce4d0SZheng Fan 964766ce4d0SZheng Fan //==================================for Paragraph Spacing===================== 9651715803bSPavel Janík IMPL_LINK( ParaPropertyPanel, ULSpaceHdl_Impl, SvxRelativeField*, /* pBox */) 966766ce4d0SZheng Fan { 967512ec161SZheng Fan SvxULSpaceItem aMargin( SID_ATTR_PARA_ULSPACE ); 968766ce4d0SZheng Fan aMargin.SetUpper( (sal_uInt16)GetCoreValue( *maTopDist.get(), m_eULSpaceUnit ) ); 969766ce4d0SZheng Fan aMargin.SetLower( (sal_uInt16)GetCoreValue( *maBottomDist.get(), m_eULSpaceUnit ) ); 970766ce4d0SZheng Fan 971766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 972512ec161SZheng Fan SID_ATTR_PARA_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 973766ce4d0SZheng Fan return 0L; 974766ce4d0SZheng Fan } 975766ce4d0SZheng Fan 976766ce4d0SZheng Fan IMPL_LINK(ParaPropertyPanel, ClickUL_IncDec_Hdl_Impl, ToolBox *, pControl) 977766ce4d0SZheng Fan { 978766ce4d0SZheng Fan switch (pControl->GetCurItemId()) 979766ce4d0SZheng Fan { 980766ce4d0SZheng Fan case UL_INCREMENT: 981766ce4d0SZheng Fan { 982512ec161SZheng Fan SvxULSpaceItem aMargin( SID_ATTR_PARA_ULSPACE ); 983766ce4d0SZheng Fan 984766ce4d0SZheng Fan maUpper += UL_STEP; 985766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 986766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 987766ce4d0SZheng Fan aMargin.SetUpper( (const sal_uInt16)nVal ); 988766ce4d0SZheng Fan 989766ce4d0SZheng Fan maLower += UL_STEP; 990766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 991766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 992766ce4d0SZheng Fan aMargin.SetLower( (const sal_uInt16)nVal ); 993766ce4d0SZheng Fan 994766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 995512ec161SZheng Fan SID_ATTR_PARA_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 996766ce4d0SZheng Fan } 997766ce4d0SZheng Fan break; 998766ce4d0SZheng Fan case UL_DECREMENT: 999766ce4d0SZheng Fan { 1000512ec161SZheng Fan SvxULSpaceItem aMargin( SID_ATTR_PARA_ULSPACE ); 1001766ce4d0SZheng Fan 1002766ce4d0SZheng Fan if( maUpper >= UL_STEP ) 1003766ce4d0SZheng Fan { 1004766ce4d0SZheng Fan maUpper -= UL_STEP; 1005766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1006766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 1007766ce4d0SZheng Fan aMargin.SetUpper( (const sal_uInt16)nVal ); 1008766ce4d0SZheng Fan } 1009766ce4d0SZheng Fan else 1010766ce4d0SZheng Fan aMargin.SetUpper( DEFAULT_VALUE ); 1011766ce4d0SZheng Fan if( maLower >= UL_STEP ) 1012766ce4d0SZheng Fan { 1013766ce4d0SZheng Fan maLower -= UL_STEP; 1014766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1015766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit ); 1016766ce4d0SZheng Fan aMargin.SetLower( (const sal_uInt16)nVal ); 1017766ce4d0SZheng Fan } 1018766ce4d0SZheng Fan else 1019766ce4d0SZheng Fan aMargin.SetLower( DEFAULT_VALUE ); 1020766ce4d0SZheng Fan 1021766ce4d0SZheng Fan GetBindings()->GetDispatcher()->Execute( 1022512ec161SZheng Fan SID_ATTR_PARA_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L); 1023766ce4d0SZheng Fan } 1024766ce4d0SZheng Fan break; 1025766ce4d0SZheng Fan } 1026766ce4d0SZheng Fan return( 0L ); 1027766ce4d0SZheng Fan } 1028766ce4d0SZheng Fan 1029766ce4d0SZheng Fan //==================================for Paragraph State change===================== 103045da7d5eSAndre Fischer void ParaPropertyPanel::NotifyItemUpdate( 103145da7d5eSAndre Fischer sal_uInt16 nSID, 103245da7d5eSAndre Fischer SfxItemState eState, 103345da7d5eSAndre Fischer const SfxPoolItem* pState, 103445da7d5eSAndre Fischer const bool bIsEnabled) 103545da7d5eSAndre Fischer { 103645da7d5eSAndre Fischer (void)bIsEnabled; 103745da7d5eSAndre Fischer 1038766ce4d0SZheng Fan if( nSID == SID_ATTR_METRIC ) 1039766ce4d0SZheng Fan { 1040766ce4d0SZheng Fan m_eMetricUnit = GetCurrentUnit(eState,pState); 1041766ce4d0SZheng Fan if( m_eMetricUnit!=m_last_eMetricUnit ) 1042766ce4d0SZheng Fan { 1043766ce4d0SZheng Fan SetFieldUnit( *maLeftIndent.get(), m_eMetricUnit ); 1044766ce4d0SZheng Fan SetFieldUnit( *maRightIndent.get(), m_eMetricUnit ); 1045766ce4d0SZheng Fan SetFieldUnit( *maFLineIndent.get(), m_eMetricUnit ); 1046766ce4d0SZheng Fan SetFieldUnit( *maTopDist.get(), m_eMetricUnit ); 1047766ce4d0SZheng Fan SetFieldUnit( *maBottomDist.get(), m_eMetricUnit ); 1048766ce4d0SZheng Fan } 1049766ce4d0SZheng Fan m_last_eMetricUnit = m_eMetricUnit; 1050766ce4d0SZheng Fan } 1051766ce4d0SZheng Fan 1052766ce4d0SZheng Fan if( nSID == SID_ATTR_PARA_LRSPACE ) 1053766ce4d0SZheng Fan StateChangedIndentImpl( nSID, eState, pState ); 1054766ce4d0SZheng Fan 1055766ce4d0SZheng Fan if( nSID == SID_ATTR_PARA_LINESPACE ) 1056766ce4d0SZheng Fan StateChangedLnSPImpl( nSID, eState, pState ); 1057766ce4d0SZheng Fan 1058766ce4d0SZheng Fan if( nSID == SID_ATTR_PARA_ULSPACE) 1059766ce4d0SZheng Fan StateChangedULImpl( nSID, eState, pState ); 1060766ce4d0SZheng Fan 1061766ce4d0SZheng 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) 1062766ce4d0SZheng Fan StateChangedAlignmentImpl( nSID, eState, pState ); 1063766ce4d0SZheng Fan 1064766ce4d0SZheng Fan if (nSID==SID_OUTLINE_LEFT || nSID==SID_OUTLINE_RIGHT) 1065766ce4d0SZheng Fan StateChangeOutLineImpl( nSID, eState, pState ); 1066766ce4d0SZheng Fan 1067766ce4d0SZheng Fan if (nSID==SID_INC_INDENT || nSID==SID_DEC_INDENT) 1068766ce4d0SZheng Fan StateChangeIncDecImpl( nSID, eState, pState ); 106937fee4fdSAndre Fischer // Add toggle state for numbering and bullet icons 1070766ce4d0SZheng Fan if (nSID==FN_NUM_NUMBERING_ON || nSID==FN_NUM_BULLET_ON) 1071766ce4d0SZheng Fan StateChangeBulletNumImpl( nSID, eState, pState ); 1072766ce4d0SZheng Fan 1073766ce4d0SZheng Fan //Get the num rule index data of the current selection 1074766ce4d0SZheng Fan if ( nSID == FN_BUL_NUM_RULE_INDEX ||nSID == FN_NUM_NUM_RULE_INDEX) 1075766ce4d0SZheng Fan StateChangeBulletNumRuleImpl( nSID, eState, pState ); 1076766ce4d0SZheng Fan 1077766ce4d0SZheng Fan if ((nSID == SID_TABLE_VERT_NONE)||(nSID == SID_TABLE_VERT_CENTER)||(nSID == SID_TABLE_VERT_BOTTOM)) 1078766ce4d0SZheng Fan { 1079766ce4d0SZheng Fan VertStateChanged( nSID, eState, pState); 1080766ce4d0SZheng Fan } 1081766ce4d0SZheng Fan else if (nSID == SID_BACKGROUND_COLOR) 1082766ce4d0SZheng Fan { 1083766ce4d0SZheng Fan ParaBKGStateChanged(nSID, eState, pState); 1084766ce4d0SZheng Fan } 1085766ce4d0SZheng Fan } 1086766ce4d0SZheng Fan 108745da7d5eSAndre Fischer 108845da7d5eSAndre Fischer 108945da7d5eSAndre Fischer 1090766ce4d0SZheng Fan void ParaPropertyPanel::StateChangedAlignmentImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1091766ce4d0SZheng Fan { 1092766ce4d0SZheng Fan if( eState >= SFX_ITEM_AVAILABLE ) 1093766ce4d0SZheng Fan { 1094766ce4d0SZheng Fan const SfxBoolItem* pItem = (const SfxBoolItem*)pState; 1095766ce4d0SZheng Fan bool IsChecked = (bool)pItem->GetValue(); 1096766ce4d0SZheng Fan switch (nSID) 1097766ce4d0SZheng Fan { 1098766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_LEFT: 1099766ce4d0SZheng Fan { 1100766ce4d0SZheng Fan if(IsChecked) 1101766ce4d0SZheng Fan { 1102766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_CHECK); 1103766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 1104766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 1105766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 1106766ce4d0SZheng Fan } 1107766ce4d0SZheng Fan else 1108766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 1109766ce4d0SZheng Fan } 1110766ce4d0SZheng Fan break; 1111766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_CENTER: 1112766ce4d0SZheng Fan { 1113766ce4d0SZheng Fan if(IsChecked) 1114766ce4d0SZheng Fan { 1115766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_CHECK); 1116766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 1117766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 1118766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 1119766ce4d0SZheng Fan } 1120766ce4d0SZheng Fan else 1121766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 1122766ce4d0SZheng Fan } 1123766ce4d0SZheng Fan break; 1124766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_RIGHT: 1125766ce4d0SZheng Fan { 1126766ce4d0SZheng Fan if(IsChecked) 1127766ce4d0SZheng Fan { 1128766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_CHECK); 1129766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 1130766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 1131766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 1132766ce4d0SZheng Fan } 1133766ce4d0SZheng Fan else 1134766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 1135766ce4d0SZheng Fan } 1136766ce4d0SZheng Fan break; 1137766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_BLOCK: 1138766ce4d0SZheng Fan { 1139766ce4d0SZheng Fan if(IsChecked) 1140766ce4d0SZheng Fan { 1141766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_CHECK); 1142766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 1143766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 1144766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 1145766ce4d0SZheng Fan } 1146766ce4d0SZheng Fan else 1147766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 1148766ce4d0SZheng Fan } 1149766ce4d0SZheng Fan break; 1150766ce4d0SZheng Fan } 1151766ce4d0SZheng Fan } 1152766ce4d0SZheng Fan else if( eState == SFX_ITEM_DISABLED ) 1153766ce4d0SZheng Fan { 1154766ce4d0SZheng Fan } 1155766ce4d0SZheng Fan else if ( eState == SFX_ITEM_DONTCARE ) 1156766ce4d0SZheng Fan { 1157766ce4d0SZheng Fan switch (nSID) 1158766ce4d0SZheng Fan { 1159766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_LEFT: 1160766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK); 1161766ce4d0SZheng Fan break; 1162766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_CENTER: 1163766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK); 1164766ce4d0SZheng Fan break; 1165766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_RIGHT: 1166766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK); 1167766ce4d0SZheng Fan break; 1168766ce4d0SZheng Fan case SID_ATTR_PARA_ADJUST_BLOCK: 1169766ce4d0SZheng Fan maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK); 1170766ce4d0SZheng Fan break; 1171766ce4d0SZheng Fan } 1172766ce4d0SZheng Fan } 1173766ce4d0SZheng Fan } 1174766ce4d0SZheng Fan 11751715803bSPavel Janík void ParaPropertyPanel::StateChangedIndentImpl( sal_uInt16 /* nSID */, SfxItemState eState, const SfxPoolItem* pState ) 1176766ce4d0SZheng Fan { 1177766ce4d0SZheng Fan switch (maContext.GetCombinedContext()) 1178766ce4d0SZheng Fan { 1179766ce4d0SZheng Fan 1180766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_DrawText): 1181766ce4d0SZheng Fan case CombinedEnumContext(Application_Calc, Context_DrawText): 1182766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Annotation): 1183766ce4d0SZheng Fan { 1184766ce4d0SZheng Fan maLeftIndent->SetMin( DEFAULT_VALUE ); 1185766ce4d0SZheng Fan maRightIndent->SetMin( DEFAULT_VALUE ); 1186766ce4d0SZheng Fan maFLineIndent->SetMin( DEFAULT_VALUE ); 1187766ce4d0SZheng Fan maTbxIndent_IncDec->Show(); 1188766ce4d0SZheng Fan maTbxProDemote->Hide(); 1189766ce4d0SZheng Fan } 1190766ce4d0SZheng Fan break; 1191766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_DrawText): 1192766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_DrawText): 1193766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Draw): 1194766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_TextObject): 1195766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Graphic): 1196766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Draw): 1197766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_TextObject): 1198766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Graphic): 1199766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Table): 1200766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Table): 1201766ce4d0SZheng Fan { 1202766ce4d0SZheng Fan maLeftIndent->SetMin( DEFAULT_VALUE ); 1203766ce4d0SZheng Fan maRightIndent->SetMin( DEFAULT_VALUE ); 1204766ce4d0SZheng Fan maFLineIndent->SetMin( DEFAULT_VALUE ); 1205766ce4d0SZheng Fan maTbxIndent_IncDec->Hide(); 1206766ce4d0SZheng Fan maTbxProDemote->Show(); 1207766ce4d0SZheng Fan } 1208766ce4d0SZheng Fan break; 1209766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Default): 1210766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Text): 1211766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Table): 1212766ce4d0SZheng Fan { 1213766ce4d0SZheng Fan maLeftIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM ); 1214766ce4d0SZheng Fan maRightIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM ); 1215766ce4d0SZheng Fan maFLineIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM ); 1216766ce4d0SZheng Fan maTbxIndent_IncDec->Show(); 1217766ce4d0SZheng Fan maTbxProDemote->Hide(); 1218766ce4d0SZheng Fan } 1219766ce4d0SZheng Fan break; 1220766ce4d0SZheng Fan } 1221766ce4d0SZheng Fan 1222766ce4d0SZheng Fan if( pState && eState >= SFX_ITEM_AVAILABLE ) 1223766ce4d0SZheng Fan { 1224766ce4d0SZheng Fan SvxLRSpaceItem* pSpace = ( SvxLRSpaceItem*)pState; 1225766ce4d0SZheng Fan maTxtLeft = pSpace->GetTxtLeft(); 1226766ce4d0SZheng Fan maTxtLeft = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM ); 1227766ce4d0SZheng Fan maTxtLeft = OutputDevice::LogicToLogic( maTxtLeft, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) ); 1228766ce4d0SZheng Fan 1229766ce4d0SZheng Fan long aTxtRight = pSpace->GetRight(); 1230766ce4d0SZheng Fan aTxtRight = OutputDevice::LogicToLogic( aTxtRight, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM ); 1231766ce4d0SZheng Fan aTxtRight = OutputDevice::LogicToLogic( aTxtRight, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) ); 1232766ce4d0SZheng Fan 1233766ce4d0SZheng Fan long aTxtFirstLineOfst = pSpace->GetTxtFirstLineOfst(); 1234766ce4d0SZheng Fan aTxtFirstLineOfst = OutputDevice::LogicToLogic( aTxtFirstLineOfst, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM ); 1235766ce4d0SZheng Fan aTxtFirstLineOfst = OutputDevice::LogicToLogic( aTxtFirstLineOfst, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) ); 1236766ce4d0SZheng Fan 1237766ce4d0SZheng Fan long nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1238766ce4d0SZheng Fan nVal = (long)maLeftIndent->Normalize( (long)nVal ); 1239766ce4d0SZheng Fan maLeftIndent->SetValue( nVal, FUNIT_100TH_MM ); 1240766ce4d0SZheng Fan 1241766ce4d0SZheng Fan if(maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) && 1242766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) && 1243766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table)) 1244766ce4d0SZheng Fan { 1245766ce4d0SZheng Fan maFLineIndent->SetMin( nVal*(-1), FUNIT_100TH_MM ); 1246766ce4d0SZheng Fan } 1247766ce4d0SZheng Fan 1248766ce4d0SZheng Fan long nrVal = OutputDevice::LogicToLogic( aTxtRight, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1249766ce4d0SZheng Fan nrVal = (long)maRightIndent->Normalize( (long)nrVal ); 1250766ce4d0SZheng Fan maRightIndent->SetValue( nrVal, FUNIT_100TH_MM ); 1251766ce4d0SZheng Fan 1252766ce4d0SZheng Fan long nfVal = OutputDevice::LogicToLogic( aTxtFirstLineOfst, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1253766ce4d0SZheng Fan nfVal = (long)maFLineIndent->Normalize( (long)nfVal ); 1254766ce4d0SZheng Fan maFLineIndent->SetValue( nfVal, FUNIT_100TH_MM ); 1255766ce4d0SZheng Fan 1256766ce4d0SZheng Fan switch (maContext.GetCombinedContext()) 1257766ce4d0SZheng Fan { 1258766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_DrawText): 1259766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Text): 1260766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Default): 1261766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Table): 1262766ce4d0SZheng Fan case CombinedEnumContext(Application_Writer, Context_Annotation): 1263766ce4d0SZheng Fan { 1264766ce4d0SZheng Fan maLeftIndent->SetMax( MAX_SW - nrVal, FUNIT_100TH_MM ); 1265766ce4d0SZheng Fan maRightIndent->SetMax( MAX_SW - nVal, FUNIT_100TH_MM ); 1266766ce4d0SZheng Fan maFLineIndent->SetMax( MAX_SW - nVal - nrVal, FUNIT_100TH_MM ); 1267766ce4d0SZheng Fan } 1268766ce4d0SZheng Fan break; 1269766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_DrawText): 1270766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Draw): 1271766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Table): 1272766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_TextObject): 1273766ce4d0SZheng Fan case CombinedEnumContext(Application_Draw, Context_Graphic): 1274766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_TextObject): 1275766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_DrawText): 1276766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Table): 1277766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Draw): 1278766ce4d0SZheng Fan case CombinedEnumContext(Application_Impress, Context_Graphic): 1279766ce4d0SZheng Fan { 1280766ce4d0SZheng Fan maLeftIndent->SetMax( MAX_SC_SD - nrVal, FUNIT_100TH_MM ); 1281766ce4d0SZheng Fan maRightIndent->SetMax( MAX_SC_SD - nVal, FUNIT_100TH_MM ); 1282766ce4d0SZheng Fan maFLineIndent->SetMax( MAX_SC_SD - nVal - nrVal, FUNIT_100TH_MM ); 1283766ce4d0SZheng Fan } 1284766ce4d0SZheng Fan } 1285766ce4d0SZheng Fan 1286eeb4e5d3SOliver-Rainer Wittmann maTbxIndent_IncDec->Enable(); 1287eeb4e5d3SOliver-Rainer Wittmann maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_True); 1288eeb4e5d3SOliver-Rainer Wittmann if ( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) 1289eeb4e5d3SOliver-Rainer Wittmann && maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) 1290eeb4e5d3SOliver-Rainer Wittmann && maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table) ) 1291eeb4e5d3SOliver-Rainer Wittmann { 1292eeb4e5d3SOliver-Rainer Wittmann maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_INC, sal_True); 1293eeb4e5d3SOliver-Rainer Wittmann maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_True); 1294eeb4e5d3SOliver-Rainer Wittmann } 1295766ce4d0SZheng Fan 12961ff378efSZheng Fan // maTbxProDemote->Enable(); 12971ff378efSZheng Fan // if( !mbOutLineRight && !mbOutLineLeft ) 12981ff378efSZheng Fan // maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True); 1299766ce4d0SZheng Fan maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True); 1300766ce4d0SZheng Fan } 1301766ce4d0SZheng Fan else if( eState == SFX_ITEM_DISABLED ) 1302766ce4d0SZheng Fan { 1303766ce4d0SZheng Fan maLeftIndent-> Disable(); 1304766ce4d0SZheng Fan maRightIndent->Disable(); 1305766ce4d0SZheng Fan maFLineIndent->Disable(); 1306766ce4d0SZheng Fan maTbxIndent_IncDec->Disable(); 1307766ce4d0SZheng Fan if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) && 1308766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) && 1309766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table) ) 1310766ce4d0SZheng Fan maTbxIndent_IncDec->Disable(); 1311766ce4d0SZheng Fan else 1312766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_False); 1313766ce4d0SZheng Fan 13141ff378efSZheng Fan // maTbxProDemote->Disable(); 1315766ce4d0SZheng Fan maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False); 1316766ce4d0SZheng Fan } 1317766ce4d0SZheng Fan else 1318766ce4d0SZheng Fan { 1319766ce4d0SZheng Fan maLeftIndent->SetEmptyFieldValue(); 1320766ce4d0SZheng Fan maRightIndent->SetEmptyFieldValue(); 1321766ce4d0SZheng Fan maFLineIndent->SetEmptyFieldValue(); 1322766ce4d0SZheng Fan if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) && 1323766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) && 1324766ce4d0SZheng Fan maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table) ) 1325766ce4d0SZheng Fan maTbxIndent_IncDec->Disable(); 1326766ce4d0SZheng Fan else 1327766ce4d0SZheng Fan maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_False); 13281ff378efSZheng Fan // maTbxProDemote->Disable(); 1329766ce4d0SZheng Fan maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False); 1330766ce4d0SZheng Fan } 1331766ce4d0SZheng Fan } 1332766ce4d0SZheng Fan 13331715803bSPavel Janík void ParaPropertyPanel::StateChangedLnSPImpl( sal_uInt16 /* nSID */, SfxItemState eState, const SfxPoolItem* pState ) 1334766ce4d0SZheng Fan { 1335766ce4d0SZheng Fan meLnSpState = eState; 1336766ce4d0SZheng Fan 1337766ce4d0SZheng Fan if( pState && eState >= SFX_ITEM_AVAILABLE ) 1338766ce4d0SZheng Fan { 1339766ce4d0SZheng Fan if(mpLnSPItem) 1340766ce4d0SZheng Fan delete mpLnSPItem; 1341766ce4d0SZheng Fan mpLnSPItem = ( SvxLineSpacingItem *)pState->Clone(); 1342766ce4d0SZheng Fan } 1343766ce4d0SZheng Fan } 1344766ce4d0SZheng Fan 13451715803bSPavel Janík void ParaPropertyPanel::StateChangedULImpl( sal_uInt16 /* nSID */, SfxItemState eState, const SfxPoolItem* pState ) 1346766ce4d0SZheng Fan { 1347766ce4d0SZheng Fan maTopDist->SetMax( maTopDist->Normalize( MAX_DURCH ), MapToFieldUnit(m_eULSpaceUnit) ); 1348766ce4d0SZheng Fan maBottomDist->SetMax( maBottomDist->Normalize( MAX_DURCH ), MapToFieldUnit(m_eULSpaceUnit) ); 1349766ce4d0SZheng Fan 1350766ce4d0SZheng Fan if( pState && eState >= SFX_ITEM_AVAILABLE ) 1351766ce4d0SZheng Fan { 1352766ce4d0SZheng Fan SvxULSpaceItem* pOldItem = (SvxULSpaceItem*)pState; 1353766ce4d0SZheng Fan 1354766ce4d0SZheng Fan maUpper = pOldItem->GetUpper(); 1355766ce4d0SZheng Fan maUpper = OutputDevice::LogicToLogic( maUpper, (MapUnit)m_eULSpaceUnit, MAP_100TH_MM ); 1356766ce4d0SZheng Fan maUpper = OutputDevice::LogicToLogic( maUpper, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) ); 1357766ce4d0SZheng Fan 1358766ce4d0SZheng Fan maLower = pOldItem->GetLower(); 1359766ce4d0SZheng Fan maLower = OutputDevice::LogicToLogic( maLower, (MapUnit)m_eULSpaceUnit, MAP_100TH_MM ); 1360766ce4d0SZheng Fan maLower = OutputDevice::LogicToLogic( maLower, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) ); 1361766ce4d0SZheng Fan 1362766ce4d0SZheng Fan sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1363766ce4d0SZheng Fan nVal = maTopDist->Normalize( nVal ); 1364766ce4d0SZheng Fan maTopDist->SetValue( nVal, FUNIT_100TH_MM ); 1365766ce4d0SZheng Fan 1366766ce4d0SZheng Fan nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM ); 1367766ce4d0SZheng Fan nVal = maBottomDist->Normalize( nVal ); 1368766ce4d0SZheng Fan maBottomDist->SetValue( nVal, FUNIT_100TH_MM ); 1369766ce4d0SZheng Fan maTbxUL_IncDec->Enable(); 1370766ce4d0SZheng Fan } 1371512ec161SZheng Fan else if(eState == SFX_ITEM_DISABLED ) 1372766ce4d0SZheng Fan { 1373766ce4d0SZheng Fan maTopDist->Disable(); 1374766ce4d0SZheng Fan maBottomDist->Disable(); 1375766ce4d0SZheng Fan maTbxUL_IncDec->Disable(); 1376766ce4d0SZheng Fan } 1377512ec161SZheng Fan else 1378766ce4d0SZheng Fan { 1379766ce4d0SZheng Fan maTopDist->SetEmptyFieldValue(); 1380766ce4d0SZheng Fan maBottomDist->SetEmptyFieldValue(); 1381766ce4d0SZheng Fan maTbxUL_IncDec->Disable(); 1382766ce4d0SZheng Fan } 1383766ce4d0SZheng Fan } 1384766ce4d0SZheng Fan 1385766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeOutLineImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1386766ce4d0SZheng Fan { 1387766ce4d0SZheng Fan if (nSID==SID_OUTLINE_LEFT) 1388766ce4d0SZheng Fan { 1389766ce4d0SZheng Fan if( pState && eState == SFX_ITEM_UNKNOWN ) 1390766ce4d0SZheng Fan mbOutLineLeft = 1; 1391766ce4d0SZheng Fan else 1392766ce4d0SZheng Fan mbOutLineLeft = 0; 1393766ce4d0SZheng Fan } 1394766ce4d0SZheng Fan if (nSID==SID_OUTLINE_RIGHT) 1395766ce4d0SZheng Fan { 1396766ce4d0SZheng Fan if( pState && eState == SFX_ITEM_UNKNOWN ) 1397766ce4d0SZheng Fan mbOutLineRight = 1; 1398766ce4d0SZheng Fan else 1399766ce4d0SZheng Fan mbOutLineRight = 0; 1400766ce4d0SZheng Fan } 1401766ce4d0SZheng Fan if(mbOutLineLeft) 1402766ce4d0SZheng Fan maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_True); 1403766ce4d0SZheng Fan else 1404766ce4d0SZheng Fan maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_False); 1405766ce4d0SZheng Fan 1406766ce4d0SZheng Fan if(mbOutLineRight) 1407766ce4d0SZheng Fan maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_True); 1408766ce4d0SZheng Fan else 1409766ce4d0SZheng Fan maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_False); 1410766ce4d0SZheng Fan 1411766ce4d0SZheng Fan } 1412766ce4d0SZheng Fan 1413766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeIncDecImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1414766ce4d0SZheng Fan { 1415eeb4e5d3SOliver-Rainer Wittmann if ( ( maContext.GetCombinedContext() == CombinedEnumContext(Application_Writer, Context_Text) 1416eeb4e5d3SOliver-Rainer Wittmann || maContext.GetCombinedContext() == CombinedEnumContext(Application_Writer, Context_Default) 1417eeb4e5d3SOliver-Rainer Wittmann || maContext.GetCombinedContext() == CombinedEnumContext(Application_Writer, Context_Table) ) 1418eeb4e5d3SOliver-Rainer Wittmann && ( nSID == SID_INC_INDENT || nSID == SID_DEC_INDENT ) ) 1419eeb4e5d3SOliver-Rainer Wittmann { 1420eeb4e5d3SOliver-Rainer Wittmann // Writer's text shell is the only one which provides reasonable states for Slots SID_INC_INDENT and SID_DEC_INDENT 1421eeb4e5d3SOliver-Rainer Wittmann // - namely SFX_ITEM_UNKNOWN and SFX_ITEM_DISABLED 1422eeb4e5d3SOliver-Rainer Wittmann maTbxIndent_IncDec->EnableItem( 1423eeb4e5d3SOliver-Rainer Wittmann nSID == SID_INC_INDENT ? BT_TBX_INDENT_INC : BT_TBX_INDENT_DEC, 1424eeb4e5d3SOliver-Rainer Wittmann ( pState && eState == SFX_ITEM_UNKNOWN ) ? sal_True : sal_False ); 1425eeb4e5d3SOliver-Rainer Wittmann } 1426766ce4d0SZheng Fan } 1427eeb4e5d3SOliver-Rainer Wittmann 1428eeb4e5d3SOliver-Rainer Wittmann 142937fee4fdSAndre Fischer // Add toggle state for numbering and bullet icons 1430766ce4d0SZheng Fan void ParaPropertyPanel::StateChangeBulletNumImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1431766ce4d0SZheng Fan { 14327aed46aaSOliver-Rainer Wittmann if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem)) ) 14337aed46aaSOliver-Rainer Wittmann { 14347aed46aaSOliver-Rainer Wittmann if (nSID==FN_NUM_NUMBERING_ON) 14357aed46aaSOliver-Rainer Wittmann { 14367aed46aaSOliver-Rainer Wittmann const SfxBoolItem* pItem= (const SfxBoolItem*)pState; 14377aed46aaSOliver-Rainer Wittmann sal_Bool aBool = (sal_Bool)pItem->GetValue(); 14387aed46aaSOliver-Rainer Wittmann if (aBool) { 14397aed46aaSOliver-Rainer Wittmann maTBxNumBullet->SetItemState(IID_NUMBER, STATE_CHECK); 14407aed46aaSOliver-Rainer Wittmann } else { 14417aed46aaSOliver-Rainer Wittmann maTBxNumBullet->SetItemState(IID_NUMBER, STATE_NOCHECK); 14427aed46aaSOliver-Rainer Wittmann } 14437aed46aaSOliver-Rainer Wittmann } 14447aed46aaSOliver-Rainer Wittmann else if (nSID==FN_NUM_BULLET_ON) 14457aed46aaSOliver-Rainer Wittmann { 14467aed46aaSOliver-Rainer Wittmann const SfxBoolItem* pItem= (const SfxBoolItem*)pState; 14477aed46aaSOliver-Rainer Wittmann sal_Bool aBool = (sal_Bool)pItem->GetValue(); 14487aed46aaSOliver-Rainer Wittmann if (aBool) { 14497aed46aaSOliver-Rainer Wittmann maTBxNumBullet->SetItemState(IID_BULLET, STATE_CHECK); 14507aed46aaSOliver-Rainer Wittmann } else { 14517aed46aaSOliver-Rainer Wittmann maTBxNumBullet->SetItemState(IID_BULLET, STATE_NOCHECK); 14527aed46aaSOliver-Rainer Wittmann } 14537aed46aaSOliver-Rainer Wittmann } 14547aed46aaSOliver-Rainer Wittmann } 1455766ce4d0SZheng Fan } 14567aed46aaSOliver-Rainer Wittmann 14577aed46aaSOliver-Rainer Wittmann 14587aed46aaSOliver-Rainer Wittmann void ParaPropertyPanel::StateChangeBulletNumRuleImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) 1459766ce4d0SZheng Fan { 14607aed46aaSOliver-Rainer Wittmann if ( eState >= SFX_ITEM_DEFAULT && pState->ISA(SfxUInt16Item) ) 14617aed46aaSOliver-Rainer Wittmann { 14627aed46aaSOliver-Rainer Wittmann sal_uInt16 nValue = (sal_uInt16)0xFFFF; 14637aed46aaSOliver-Rainer Wittmann { 14647aed46aaSOliver-Rainer Wittmann const SfxUInt16Item* pIt = (const SfxUInt16Item*)pState; 14657aed46aaSOliver-Rainer Wittmann if ( pIt ) 14667aed46aaSOliver-Rainer Wittmann nValue = pIt->GetValue(); 14677aed46aaSOliver-Rainer Wittmann } 1468766ce4d0SZheng Fan 14697aed46aaSOliver-Rainer Wittmann if ( nSID == FN_BUL_NUM_RULE_INDEX ) 14707aed46aaSOliver-Rainer Wittmann { 14717aed46aaSOliver-Rainer Wittmann mnBulletTypeIndex = nValue; 14727aed46aaSOliver-Rainer Wittmann } 14737aed46aaSOliver-Rainer Wittmann else if ( nSID == FN_NUM_NUM_RULE_INDEX ) 14747aed46aaSOliver-Rainer Wittmann { 14757aed46aaSOliver-Rainer Wittmann mnNumTypeIndex = nValue; 14767aed46aaSOliver-Rainer Wittmann } 14777aed46aaSOliver-Rainer Wittmann } 1478766ce4d0SZheng Fan } 14797aed46aaSOliver-Rainer Wittmann 14807aed46aaSOliver-Rainer Wittmann 1481766ce4d0SZheng Fan FieldUnit ParaPropertyPanel::GetCurrentUnit( SfxItemState eState, const SfxPoolItem* pState ) 1482766ce4d0SZheng Fan { 1483766ce4d0SZheng Fan FieldUnit eUnit = FUNIT_NONE; 1484766ce4d0SZheng Fan 1485766ce4d0SZheng Fan if ( pState && eState >= SFX_ITEM_DEFAULT ) 1486766ce4d0SZheng Fan eUnit = (FieldUnit)( (const SfxUInt16Item*)pState )->GetValue(); 1487766ce4d0SZheng Fan else 1488766ce4d0SZheng Fan { 1489766ce4d0SZheng Fan SfxViewFrame* pFrame = SfxViewFrame::Current(); 1490766ce4d0SZheng Fan SfxObjectShell* pSh = NULL; 1491766ce4d0SZheng Fan if ( pFrame ) 1492766ce4d0SZheng Fan pSh = pFrame->GetObjectShell(); 1493766ce4d0SZheng Fan if ( pSh ) //the object shell is not always available during reload 1494766ce4d0SZheng Fan { 1495766ce4d0SZheng Fan SfxModule* pModule = pSh->GetModule(); 1496766ce4d0SZheng Fan if ( pModule ) 1497766ce4d0SZheng Fan { 1498766ce4d0SZheng Fan const SfxPoolItem* pItem = pModule->GetItem( SID_ATTR_METRIC ); 1499766ce4d0SZheng Fan if ( pItem ) 1500766ce4d0SZheng Fan eUnit = (FieldUnit)( (SfxUInt16Item*)pItem )->GetValue(); 1501766ce4d0SZheng Fan } 1502766ce4d0SZheng Fan else 1503766ce4d0SZheng Fan { 1504766ce4d0SZheng Fan DBG_ERRORFILE( "GetModuleFieldUnit(): no module found" ); 1505766ce4d0SZheng Fan } 1506766ce4d0SZheng Fan } 1507766ce4d0SZheng Fan } 1508766ce4d0SZheng Fan 1509766ce4d0SZheng Fan return eUnit; 1510766ce4d0SZheng Fan } 15117aed46aaSOliver-Rainer Wittmann 1512766ce4d0SZheng Fan 1513766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateLineSpacingControl (PopupContainer* pParent) 1514766ce4d0SZheng Fan { 1515766ce4d0SZheng Fan return new ParaLineSpacingControl(pParent, *this); 1516766ce4d0SZheng Fan } 1517766ce4d0SZheng Fan 1518766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateBulletsPopupControl (PopupContainer* pParent) 1519766ce4d0SZheng Fan { 1520766ce4d0SZheng Fan return new ParaBulletsControl(pParent, *this); 1521766ce4d0SZheng Fan } 1522766ce4d0SZheng Fan 1523766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateNumberingPopupControl (PopupContainer* pParent) 1524766ce4d0SZheng Fan { 1525766ce4d0SZheng Fan return new ParaNumberingControl(pParent, *this); 1526766ce4d0SZheng Fan } 1527766ce4d0SZheng Fan 1528b7a56e95SArmin Le Grand namespace 1529b7a56e95SArmin Le Grand { 1530b7a56e95SArmin Le Grand Color GetNoBackgroundColor(void) 1531b7a56e95SArmin Le Grand { 1532b7a56e95SArmin Le Grand return COL_TRANSPARENT; 1533b7a56e95SArmin Le Grand } 1534b7a56e95SArmin Le Grand } // end of anonymous namespace 1535b7a56e95SArmin Le Grand 1536766ce4d0SZheng Fan PopupControl* ParaPropertyPanel::CreateBGColorPopupControl (PopupContainer* pParent) 1537766ce4d0SZheng Fan { 1538b7a56e95SArmin Le Grand const ResId aResId(SVX_RES(STR_NOFILL)); 1539b7a56e95SArmin Le Grand 1540b7a56e95SArmin Le Grand return new ColorControl( 1541766ce4d0SZheng Fan pParent, 1542766ce4d0SZheng Fan mpBindings, 1543b7a56e95SArmin Le Grand SVX_RES(RID_POPUPPANEL_PARAPAGE_BACK_COLOR), 1544766ce4d0SZheng Fan SVX_RES(VS_FONT_COLOR), 1545b7a56e95SArmin Le Grand ::boost::bind(GetNoBackgroundColor), 1546766ce4d0SZheng Fan ::boost::bind(&ParaPropertyPanel::SetBGColor, this, _1,_2), 1547766ce4d0SZheng Fan pParent, 1548b7a56e95SArmin Le Grand &aResId); 1549766ce4d0SZheng Fan } 1550766ce4d0SZheng Fan 1551766ce4d0SZheng Fan 1552766ce4d0SZheng Fan ParaPropertyPanel::ParaPropertyPanel(Window* pParent, 1553*3cac12cfSAndre Fischer const cssu::Reference<css::frame::XFrame>& rxFrame, 155437fee4fdSAndre Fischer SfxBindings* pBindings, 155537fee4fdSAndre Fischer const cssu::Reference<css::ui::XSidebar>& rxSidebar) 155637fee4fdSAndre Fischer : Control(pParent, SVX_RES(RID_SIDEBAR_PARA_PANEL)), 155737fee4fdSAndre Fischer maAlignToolBoxBackground(ControlFactory::CreateToolBoxBackground(this)), 155837fee4fdSAndre Fischer maAlignToolBox (ControlFactory::CreateToolBox(maAlignToolBoxBackground.get(),SVX_RES(TBX_HORIZONTALALIGNMENT))), 155937fee4fdSAndre Fischer maTBxVertAlignBackground(ControlFactory::CreateToolBoxBackground(this)), 156037fee4fdSAndre Fischer maTBxVertAlign (ControlFactory::CreateToolBox(maTBxVertAlignBackground.get(),SVX_RES(TBX_VERT_ALIGN))), 156137fee4fdSAndre Fischer maTBxNumBulletBackground(ControlFactory::CreateToolBoxBackground(this)), 156237fee4fdSAndre Fischer maTBxNumBullet (ControlFactory::CreateToolBox(maTBxNumBulletBackground.get(),SVX_RES(TBX_NUM_BULLET))), 156337fee4fdSAndre Fischer maTBxBackColorBackground(ControlFactory::CreateToolBoxBackground(this)), 156437fee4fdSAndre Fischer maTBxBackColor (ControlFactory::CreateToolBox(maTBxBackColorBackground.get(),SVX_RES(TBX_BACK_COLOR))), 156537fee4fdSAndre Fischer maFTUL (new FixedText(this, SVX_RES(FT_SPACING))), 156637fee4fdSAndre Fischer maTbxUL_IncDecBackground(ControlFactory::CreateToolBoxBackground(this)), 156737fee4fdSAndre Fischer maTbxUL_IncDec (ControlFactory::CreateToolBox(maTbxUL_IncDecBackground.get(),SVX_RES(TBX_UL_INC_DEC))), 156837fee4fdSAndre Fischer maTopDist (new SvxRelativeField(this, SVX_RES(MF_ABOVE_PARASPACING))), 156937fee4fdSAndre Fischer maBottomDist (new SvxRelativeField(this, SVX_RES(MF_BELOW_PARASPACING))), 157037fee4fdSAndre Fischer maLineSPTbxBackground(ControlFactory::CreateToolBoxBackground(this)), 157137fee4fdSAndre Fischer maLineSPTbx (ControlFactory::CreateToolBox(maLineSPTbxBackground.get(),SVX_RES(TBX_LINESP))), 157237fee4fdSAndre Fischer maFTIndent (new FixedText(this, SVX_RES(FT_INDENT))), 157337fee4fdSAndre Fischer maTbxIndent_IncDecBackground(ControlFactory::CreateToolBoxBackground(this)), 157437fee4fdSAndre Fischer maTbxIndent_IncDec (ControlFactory::CreateToolBox(maTbxIndent_IncDecBackground.get(),SVX_RES(TBX_INDENT_INC_DEC))), 157537fee4fdSAndre Fischer maTbxProDemoteBackground(ControlFactory::CreateToolBoxBackground(this)), 157637fee4fdSAndre Fischer maTbxProDemote (ControlFactory::CreateToolBox(maTbxProDemoteBackground.get(),SVX_RES(TBX_INDENT_PRO_DEMOTE))), 157737fee4fdSAndre Fischer maLeftIndent (new SvxRelativeField(this, SVX_RES(MF_BEFORE_INDENT))), 157837fee4fdSAndre Fischer maRightIndent (new SvxRelativeField(this, SVX_RES(MF_AFTER_INDENT))), 157937fee4fdSAndre Fischer maFLineIndent (new SvxRelativeField(this, SVX_RES(MF_FL_INDENT))), 158037fee4fdSAndre Fischer mpColorUpdater (), 158137fee4fdSAndre Fischer maFISpace1 ( this, SVX_RES( FI_SPACE1)), 158237fee4fdSAndre Fischer maFISpace2 ( this, SVX_RES( FI_SPACE2)), 158337fee4fdSAndre Fischer maFIndent1 ( this, SVX_RES( FI_INDENT1)), 158437fee4fdSAndre Fischer maFIndent2 ( this, SVX_RES( FI_INDENT2)), 158537fee4fdSAndre Fischer maFIndent3 ( this, SVX_RES( FI_INDENT3)), 158637fee4fdSAndre Fischer maSpace1 (SVX_RES(IMG_SPACE1)), 158737fee4fdSAndre Fischer maSpace2 (SVX_RES(IMG_SPACE2)), 158837fee4fdSAndre Fischer maSpace3 (SVX_RES(IMG_SPACE3)), 158937fee4fdSAndre Fischer maIndent1 (SVX_RES(IMG_INDENT1)), 159037fee4fdSAndre Fischer maIndent2 (SVX_RES(IMG_INDENT2)), 159137fee4fdSAndre Fischer maIndent3 (SVX_RES(IMG_INDENT3)), 159237fee4fdSAndre Fischer maIndHang (SVX_RES(IMG_INDENT_HANG)), 159337fee4fdSAndre Fischer maParInc (SVX_RES(IMG_PARA_INC)), 159437fee4fdSAndre Fischer maParDec (SVX_RES(IMG_PARA_DEC)), 159537fee4fdSAndre Fischer maNumBImageList (SVX_RES(IL_NUM_BULLET)), 159637fee4fdSAndre Fischer maNumBImageListH (SVX_RES(ILH_NUM_BULLET)), 159737fee4fdSAndre Fischer maNumBImageListRTL (SVX_RES(IL_NUM_BULLET_RTL)), 159837fee4fdSAndre Fischer maImgBackColorHigh (SVX_RES(IMG_BACK_COLOR_H)), 159937fee4fdSAndre Fischer maImgBackColor (SVX_RES(IMG_BACK_COLOR)), 160037fee4fdSAndre Fischer maTxtLeft (0), 160137fee4fdSAndre Fischer mpLnSPItem (NULL), 160237fee4fdSAndre Fischer meLnSpState (SFX_ITEM_DONTCARE), 160337fee4fdSAndre Fischer mbOutLineLeft (false), 160437fee4fdSAndre Fischer mbOutLineRight (false), 160537fee4fdSAndre Fischer maUpper (0), 160637fee4fdSAndre Fischer maLower (0), 160737fee4fdSAndre Fischer mnBulletTypeIndex ((sal_uInt16)0xFFFF), 160837fee4fdSAndre Fischer mnNumTypeIndex ((sal_uInt16)0xFFFF), 160937fee4fdSAndre Fischer maColor (COL_AUTO), 161037fee4fdSAndre Fischer mbColorAvailable (true), 161137fee4fdSAndre Fischer m_eLRSpaceUnit(), 161237fee4fdSAndre Fischer m_eULSpaceUnit(), 1613*3cac12cfSAndre Fischer maLeftAlignControl(SID_ATTR_PARA_ADJUST_LEFT, *pBindings, *this, A2S("LeftPara"), rxFrame), 1614*3cac12cfSAndre Fischer maCenterAlignControl(SID_ATTR_PARA_ADJUST_CENTER, *pBindings, *this, A2S("CenterPara"), rxFrame), 1615*3cac12cfSAndre Fischer maRightAlignControl(SID_ATTR_PARA_ADJUST_RIGHT, *pBindings, *this, A2S("RightPara"), rxFrame), 1616*3cac12cfSAndre Fischer maJustifyAlignControl(SID_ATTR_PARA_ADJUST_BLOCK, *pBindings, *this, A2S("JustifyPara"), rxFrame), 161737fee4fdSAndre Fischer maLRSpaceControl (SID_ATTR_PARA_LRSPACE,*pBindings,*this), 161837fee4fdSAndre Fischer maLNSpaceControl (SID_ATTR_PARA_LINESPACE, *pBindings,*this), 161937fee4fdSAndre Fischer maULSpaceControl (SID_ATTR_PARA_ULSPACE, *pBindings,*this), 1620*3cac12cfSAndre Fischer maOutLineLeftControl(SID_OUTLINE_LEFT, *pBindings, *this, A2S("OutlineRight"), rxFrame), 1621*3cac12cfSAndre Fischer maOutLineRightControl(SID_OUTLINE_RIGHT, *pBindings, *this, A2S("OutlineLeft"), rxFrame), 1622*3cac12cfSAndre Fischer maDecIndentControl(SID_DEC_INDENT, *pBindings,*this, A2S("DecrementIndent"), rxFrame), 1623*3cac12cfSAndre Fischer maIncIndentControl(SID_INC_INDENT, *pBindings,*this, A2S("IncrementIndent"), rxFrame), 1624*3cac12cfSAndre Fischer maVertTop (SID_TABLE_VERT_NONE, *pBindings, *this, A2S("CellVertTop"), rxFrame), 1625*3cac12cfSAndre Fischer maVertCenter (SID_TABLE_VERT_CENTER, *pBindings,*this, A2S("CellVertCenter"), rxFrame), 1626*3cac12cfSAndre Fischer maVertBottom (SID_TABLE_VERT_BOTTOM,*pBindings,*this, A2S("CellVertBottom"), rxFrame), 1627*3cac12cfSAndre Fischer maBulletOnOff(FN_NUM_BULLET_ON, *pBindings, *this, A2S("DefaultBullet"), rxFrame), 1628*3cac12cfSAndre Fischer maNumberOnOff(FN_NUM_NUMBERING_ON, *pBindings, *this, A2S("DefaultNumbering"), rxFrame), 162937fee4fdSAndre Fischer maBackColorControl (SID_BACKGROUND_COLOR, *pBindings,*this), 163037fee4fdSAndre Fischer m_aMetricCtl (SID_ATTR_METRIC, *pBindings,*this), 163137fee4fdSAndre Fischer maBulletNumRuleIndex (FN_BUL_NUM_RULE_INDEX, *pBindings,*this), 163237fee4fdSAndre Fischer maNumNumRuleIndex (FN_NUM_NUM_RULE_INDEX, *pBindings,*this), 16338cdef556SPavel Janík mxFrame(rxFrame), 163437fee4fdSAndre Fischer maContext(), 163537fee4fdSAndre Fischer mpBindings(pBindings), 163637fee4fdSAndre Fischer maLineSpacePopup(this, ::boost::bind(&ParaPropertyPanel::CreateLineSpacingControl, this, _1)), 163737fee4fdSAndre Fischer maBulletsPopup(this, ::boost::bind(&ParaPropertyPanel::CreateBulletsPopupControl, this, _1)), 163837fee4fdSAndre Fischer maNumberingPopup(this, ::boost::bind(&ParaPropertyPanel::CreateNumberingPopupControl, this, _1)), 163937fee4fdSAndre Fischer maBGColorPopup(this, ::boost::bind(&ParaPropertyPanel::CreateBGColorPopupControl, this, _1)), 164037fee4fdSAndre Fischer mxSidebar(rxSidebar) 1641766ce4d0SZheng Fan { 1642766ce4d0SZheng Fan initial(); 1643*3cac12cfSAndre Fischer FreeResource(); 1644766ce4d0SZheng Fan } 1645766ce4d0SZheng Fan 164637fee4fdSAndre Fischer } } // end of namespace svx::sidebar 1647