You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by zh...@apache.org on 2013/03/21 21:23:21 UTC

svn commit: r1459509 [3/5] - in /openoffice/branches/sidebar/main: default_images/svx/res/ default_images/svx/res/symphony/ default_images/sw/res/sidebar/ officecfg/registry/data/org/openoffice/Office/UI/ sc/sdi/ sc/source/ui/drawfunc/ sc/source/ui/inc...

Added: openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx?rev=1459509&view=auto
==============================================================================
--- openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx (added)
+++ openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx Thu Mar 21 20:23:16 2013
@@ -0,0 +1,1727 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+#include "precompiled_svx.hxx"
+
+#include "ParaPropertyPanel.hxx"
+#include "ParaPropertyPanel.hrc"
+
+#include "ParaLineSpacingPopup.hxx"
+#include "ParaLineSpacingControl.hxx"
+#include <sfx2/sidebar/Theme.hxx>
+#include <sfx2/sidebar/propertypanel.hrc>
+#include <sfx2/sidebar/ControlFactory.hxx>
+#include <svx/sidebar/PopupContainer.hxx>
+#include <sfx2/dispatch.hxx>
+#include <editeng/colritem.hxx>
+#include <editeng/brshitem.hxx>
+#include <editeng/lrspitem.hxx>
+#include <editeng/ulspitem.hxx>
+#include <vcl/toolbox.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/svapp.hxx>
+#include <svx/svxids.hrc>
+#include <svl/intitem.hxx>
+#include "svx/dialmgr.hxx"
+#include <sfx2/objsh.hxx>
+#include <svtools/unitconv.hxx>
+#include <boost/bind.hpp>
+using namespace css;
+using namespace cssu;
+using ::sfx2::sidebar::Theme;
+using ::sfx2::sidebar::ControlFactory;
+
+#define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
+
+
+namespace svx {namespace sidebar {
+#define DEFAULT_VALUE          0
+#define TOOLBOX_ITEM1          1
+#define TOOLBOX_ITEM2          2
+#define TOOLBOX_ITEM3          3
+#define TOOLBOX_ITEM4          4
+
+#define MAX_DURCH             5670
+
+#define INDENT_INCREMENT       1
+#define INDENT_DECREMENT       2
+#define INDENT_STEP            706
+#define UL_STEP                58
+#define UL_INCREMENT           1
+#define UL_DECREMENT           2
+
+#define NEGATIVE_MAX_VALUE              -9999
+#define BEGIN_VALUE            28
+#define MAX_SW                  1709400
+#define MAX_SC_SD				116220200
+#define NEGA_MAXVALUE          -10000000
+
+#define POS_FT_PARA_SPACE								Point(LogicToPixel(Point(FT_PARA_SPACE_X,FT_PARA_SPACE_Y), MAP_APPFONT))
+#define POS_FT_PARA_SPACE2								Point(LogicToPixel(Point(FT_PARA_SPACE_X,FT_PARA_SPACE_Y2), MAP_APPFONT))
+#define POS_TBX_PARA_SPACE_INC_DEC						Point(LogicToPixel(Point(TBX_PARA_SPACE_INC_DEC_X,TBX_PARA_SPACE_INC_DEC_Y), MAP_APPFONT))
+#define POS_TBX_PARA_SPACE_INC_DEC2						Point(LogicToPixel(Point(TBX_PARA_SPACE_INC_DEC_X,TBX_PARA_SPACE_INC_DEC_Y2), MAP_APPFONT))
+#define POS_FT_PARA_INDENT								Point(LogicToPixel(Point(FT_PARA_INDENT_X,FT_PARA_INDENT_Y), MAP_APPFONT))
+#define POS_FT_PARA_INDENT2								Point(LogicToPixel(Point(FT_PARA_INDENT_X,FT_PARA_INDENT_Y2), MAP_APPFONT))
+#define POS_TBX_PARA_INDENT_INC_DEC						Point(LogicToPixel(Point(TBX_PARA_INDENT_INC_DEC_X,TBX_PARA_INDENT_INC_DEC_Y), MAP_APPFONT))
+#define POS_TBX_PARA_INDENT_INC_DEC2					Point(LogicToPixel(Point(TBX_PARA_INDENT_INC_DEC_X,TBX_PARA_INDENT_INC_DEC_Y2), MAP_APPFONT))
+#define POS_MBX_TOP_DIST								Point(LogicToPixel(Point(MBX_TOP_DIST_X,MBX_TOP_DIST_Y), MAP_APPFONT))
+#define POS_MBX_TOP_DIST2								Point(LogicToPixel(Point(MBX_TOP_DIST_X,MBX_TOP_DIST_Y2), MAP_APPFONT))
+#define POS_MBX_BOT_DIST								Point(LogicToPixel(Point(MBX_BOT_DIST_X,MBX_BOT_DIST_Y), MAP_APPFONT))
+#define POS_MBX_BOT_DIST2								Point(LogicToPixel(Point(MBX_BOT_DIST_X,MBX_BOT_DIST_Y2), MAP_APPFONT))
+#define POS_MBX_LEFT_DIST								Point(LogicToPixel(Point(MBX_LEFT_DIST_X,MBX_LEFT_DIST_Y), MAP_APPFONT))
+#define POS_MBX_LEFT_DIST2								Point(LogicToPixel(Point(MBX_LEFT_DIST_X,MBX_LEFT_DIST_Y2), MAP_APPFONT))
+#define POS_MBX_RIGHT_DIST								Point(LogicToPixel(Point(MBX_RIGHT_DIST_X,MBX_RIGHT_DIST_Y), MAP_APPFONT))
+#define POS_MBX_RIGHT_DIST2								Point(LogicToPixel(Point(MBX_RIGHT_DIST_X,MBX_RIGHT_DIST_Y2), MAP_APPFONT))
+#define POS_MBX_FLINE_DIST								Point(LogicToPixel(Point(MBX_FLINE_DIST_X,MBX_FLINE_DIST_Y), MAP_APPFONT))
+#define POS_MBX_FLINE_DIST2								Point(LogicToPixel(Point(MBX_FLINE_DIST_X,MBX_FLINE_DIST_Y2), MAP_APPFONT))
+#define POS_IMG_SPACE1									Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE1_Y), MAP_APPFONT))
+#define POS_IMG_SPACE12									Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE1_Y2), MAP_APPFONT))
+#define POS_IMG_SPACE2									Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE2_Y), MAP_APPFONT))
+#define POS_IMG_SPACE22									Point(LogicToPixel(Point(IMG_SPACE_X,IMG_SPACE2_Y2), MAP_APPFONT))
+#define POS_IMG_INDENT1									Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT1_Y), MAP_APPFONT))
+#define POS_IMG_INDENT12								Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT1_Y2), MAP_APPFONT))
+#define POS_IMG_INDENT2									Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT2_Y), MAP_APPFONT))
+#define POS_IMG_INDENT22								Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT2_Y2), MAP_APPFONT))
+#define POS_IMG_INDENT3									Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT3_Y), MAP_APPFONT))
+#define POS_IMG_INDENT32								Point(LogicToPixel(Point(IMG_INDENT_X,IMG_INDENT3_Y2), MAP_APPFONT))
+#define TBX_LINE_SPACE									Point(LogicToPixel(Point(TBX_LINE_SPACE_X,TBX_LINE_SPACE_Y), MAP_APPFONT))
+#define TBX_LINE_SPACE2									Point(LogicToPixel(Point(TBX_LINE_SPACE_X,TBX_LINE_SPACE_Y2), MAP_APPFONT))
+
+#define LINE_POINT1_WHITE								Point(LogicToPixel(Point(LINE_X_WHITE,LINE_TOP_Y), MAP_APPFONT))
+#define LINE_POINT2_WHITE								Point(LogicToPixel(Point(LINE_X_WHITE,LINE_BOT_Y), MAP_APPFONT))
+#define LINE_POINT3_WHITE								Point(LogicToPixel(Point(LINE_X_WHITE,LINE_TOP_Y2), MAP_APPFONT))
+#define LINE_POINT4_WHITE								Point(LogicToPixel(Point(LINE_X_WHITE,LINE_BOT_Y2), MAP_APPFONT))
+
+ParaPropertyPanel* ParaPropertyPanel::Create (
+    Window* pParent,
+    const cssu::Reference<css::frame::XFrame>& rxFrame,
+    SfxBindings* pBindings)
+{
+    if (pParent == NULL)
+        throw lang::IllegalArgumentException(A2S("no parent Window given to ParaPropertyPanel::Create"), NULL, 0);
+    if ( ! rxFrame.is())
+        throw lang::IllegalArgumentException(A2S("no XFrame given to ParaPropertyPanel::Create"), NULL, 1);
+    if (pBindings == NULL)
+        throw lang::IllegalArgumentException(A2S("no SfxBindings given to ParaPropertyPanel::Create"), NULL, 2);
+    
+    return new ParaPropertyPanel(
+        pParent,
+        rxFrame,
+        pBindings);
+}
+
+void ParaPropertyPanel::HandleContextChange (
+    const ::sfx2::sidebar::EnumContext aContext)
+{
+    if (maContext == aContext)
+    {
+        // Nothing to do.
+        return;
+    }
+
+    maContext = aContext;
+    switch (maContext.GetCombinedContext())
+    {
+        case CombinedEnumContext(Application_Calc, Context_DrawText):
+	{
+		maTBxVertAlign->Show();
+		maTBxVertAlignBackground->Show();
+		maTBxBackColor->Hide();
+		maTBxBackColorBackground->Hide();
+		maTBxNumBullet->Hide();
+		maTBxNumBulletBackground->Hide();
+		ReSize(0);
+		maTbxIndent_IncDec->Show();
+		maTbxIndent_IncDecBackground->Show();
+		maTbxProDemote->Hide();
+		maTbxProDemoteBackground->Hide();
+	}
+	break;
+        case CombinedEnumContext(Application_Draw, Context_Draw):
+        case CombinedEnumContext(Application_Draw, Context_TextObject):
+        case CombinedEnumContext(Application_Draw, Context_Graphic):
+        case CombinedEnumContext(Application_Impress, Context_Draw):
+        case CombinedEnumContext(Application_Impress, Context_TextObject):
+        case CombinedEnumContext(Application_Impress, Context_Graphic):
+	{
+		maTBxVertAlign->Hide();
+		maTBxVertAlignBackground->Hide();
+		maTBxBackColor->Hide();
+		maTBxBackColorBackground->Hide();
+		maTBxNumBullet->Show();
+		maTBxNumBulletBackground->Show();
+		ReSize(1);
+		maTbxIndent_IncDec->Hide();
+		maTbxIndent_IncDecBackground->Hide();
+		maTbxProDemote->Show();
+		maTbxProDemoteBackground->Show();
+	}
+	break;
+        case CombinedEnumContext(Application_Draw, Context_DrawText):
+        case CombinedEnumContext(Application_Impress, Context_DrawText):
+	{
+		maTBxVertAlign->Show();
+		maTBxVertAlignBackground->Show();
+		maTBxBackColor->Hide();
+		maTBxBackColorBackground->Hide();
+		maTBxNumBullet->Show();
+		maTBxNumBulletBackground->Show();
+		ReSize(1);
+		maTbxIndent_IncDec->Hide();
+		maTbxIndent_IncDecBackground->Hide();
+		maTbxProDemote->Show();
+		maTbxProDemoteBackground->Show();
+	}
+	break;
+        case CombinedEnumContext(Application_Impress, Context_Table):
+        case CombinedEnumContext(Application_Draw, Context_Table):
+	{
+		maTBxVertAlign->Show();
+		maTBxVertAlignBackground->Show();
+		maTBxBackColor->Hide();
+		maTBxBackColorBackground->Hide();
+		maTBxNumBullet->Show();
+		maTBxNumBulletBackground->Show();
+		ReSize(1);
+		maTbxIndent_IncDec->Hide();
+		maTbxIndent_IncDecBackground->Hide();
+		maTbxProDemote->Show();
+		maTbxProDemoteBackground->Show();
+	}
+	break;
+	case CombinedEnumContext(Application_Writer, Context_Default):
+        case CombinedEnumContext(Application_Writer, Context_Text):
+	{
+		maTBxVertAlign->Hide();
+		maTBxVertAlignBackground->Hide();
+		maTBxBackColor->Show();
+		maTBxBackColorBackground->Show();
+		maTBxNumBullet->Show();
+		
+		maTBxNumBulletBackground->Show();
+		ReSize(1);
+		maTbxIndent_IncDec->Show();
+		maTbxIndent_IncDecBackground->Show();
+		maTbxProDemote->Hide();
+		maTbxProDemoteBackground->Hide();
+	}
+	break;
+        case CombinedEnumContext(Application_Writer, Context_Table):
+        {
+		maTBxVertAlign->Show();
+		maTBxVertAlignBackground->Show();
+		maTBxBackColor->Show();
+		maTBxBackColorBackground->Show();
+		maTBxNumBullet->Show();
+		maTBxNumBulletBackground->Show();
+		ReSize(1);
+		maTbxIndent_IncDec->Show();
+		maTbxIndent_IncDecBackground->Show();
+		maTbxProDemote->Hide();
+		maTbxProDemoteBackground->Hide();
+        }
+	break;
+        case CombinedEnumContext(Application_Writer, Context_DrawText):
+	{
+		maTBxVertAlign->Show();
+		maTBxVertAlignBackground->Show();
+		maTBxBackColor->Hide();
+		maTBxBackColorBackground->Hide();
+		maTBxNumBullet->Hide();
+		maTBxNumBulletBackground->Hide();
+		ReSize(0);
+		maTbxIndent_IncDec->Show();
+		maTbxIndent_IncDecBackground->Show();
+		maTbxProDemote->Hide();
+		maTbxProDemoteBackground->Hide();
+	}
+	break;
+        case CombinedEnumContext(Application_Writer, Context_Annotation):
+        {
+		maTBxVertAlign->Hide();
+		maTBxVertAlignBackground->Hide();
+		maTBxBackColor->Hide();
+		maTBxBackColorBackground->Hide();
+		maTBxNumBullet->Hide();
+		maTBxNumBulletBackground->Hide();
+		ReSize(0);
+		maTbxIndent_IncDec->Show();
+		maTbxIndent_IncDecBackground->Show();
+		maTbxProDemote->Hide();
+		maTbxProDemoteBackground->Hide();
+        }
+	break;
+        case CombinedEnumContext(Application_Calc, Context_EditCell):
+        case CombinedEnumContext(Application_Draw, Context_Text):
+        case CombinedEnumContext(Application_Draw, Context_OutlineText):
+        case CombinedEnumContext(Application_Calc, Context_Cell):
+        case CombinedEnumContext(Application_Calc, Context_Pivot):
+        case CombinedEnumContext(Application_Impress, Context_Text):
+        case CombinedEnumContext(Application_Impress, Context_OutlineText):
+        /*{
+            mpToolBoxScriptSw->Hide();
+            mpToolBoxScript->Show();
+            mpToolBoxSpacing->Show();
+            mpToolBoxHighlight->Hide();
+
+            Size aSize(PROPERTYPAGE_WIDTH,TEXT_SECTIONPAGE_HEIGHT);
+            aSize = LogicToPixel( aSize,MapMode(MAP_APPFONT) ); 
+            aSize.setWidth(GetOutputSizePixel().Width());
+            SetSizePixel(aSize);
+            break;
+        }*/
+
+        default:
+            break;
+    }
+}
+
+SfxBindings* ParaPropertyPanel::GetBindings() 
+{ 
+    return mpBindings; 
+}
+
+void ParaPropertyPanel::SetupIcons (void)
+{
+    if (Theme::GetBoolean(Theme::Bool_UseSymphonyIcons))
+    {
+    }
+    else
+    {
+    }
+}
+
+void ParaPropertyPanel::DataChanged (const DataChangedEvent& rEvent)
+{
+    (void)rEvent;
+    
+    SetupIcons();
+}
+
+ParaPropertyPanel::~ParaPropertyPanel()
+{
+	delete mpLnSPItem;
+}
+
+void ParaPropertyPanel::ReSize(bool bSize)
+{
+	if(bSize)
+	{
+		//Paragraph spacing
+		maFTUL->SetPosPixel(POS_FT_PARA_SPACE);
+		maTbxUL_IncDec->SetPosPixel(POS_TBX_PARA_SPACE_INC_DEC);
+		maTopDist->SetPosPixel(POS_MBX_TOP_DIST);
+		maBottomDist->SetPosPixel(POS_MBX_BOT_DIST);
+		//Indent
+		maFTIndent->SetPosPixel(POS_FT_PARA_INDENT);
+		maTbxIndent_IncDec->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC);
+		maTbxProDemote->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC);
+		maLeftIndent->SetPosPixel(POS_MBX_LEFT_DIST);
+		maRightIndent->SetPosPixel(POS_MBX_RIGHT_DIST);
+		maFLineIndent->SetPosPixel(POS_MBX_FLINE_DIST);
+		//Line spacing
+		maLineSPTbx->SetPosPixel(TBX_LINE_SPACE);
+		//image
+		maFISpace1.SetPosPixel(POS_IMG_SPACE1);
+		maFISpace2.SetPosPixel(POS_IMG_SPACE2);
+		maFIndent1.SetPosPixel(POS_IMG_INDENT1);
+		maFIndent2.SetPosPixel(POS_IMG_INDENT2);
+		maFIndent3.SetPosPixel(POS_IMG_INDENT3);
+		Size aSize(GetOutputSizePixel().Width(),PARA_SECTIONPAGE_HEIGHT);
+		aSize = LogicToPixel( aSize, MapMode(MAP_APPFONT) ); 
+		aSize.setWidth(GetOutputSizePixel().Width());
+		SetSizePixel(aSize);
+	}
+	else
+	{
+		//Paragraph spacing
+		maFTUL->SetPosPixel(POS_FT_PARA_SPACE2);
+		maTbxUL_IncDec->SetPosPixel(POS_TBX_PARA_SPACE_INC_DEC2);
+		maTopDist->SetPosPixel(POS_MBX_TOP_DIST2);
+		maBottomDist->SetPosPixel(POS_MBX_BOT_DIST2);
+		//Indent
+		maFTIndent->SetPosPixel(POS_FT_PARA_INDENT2);
+		maTbxIndent_IncDec->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC2);
+		maTbxProDemote->SetPosPixel(POS_TBX_PARA_INDENT_INC_DEC2);
+		maLeftIndent->SetPosPixel(POS_MBX_LEFT_DIST2);
+		maRightIndent->SetPosPixel(POS_MBX_RIGHT_DIST2);
+		maFLineIndent->SetPosPixel(POS_MBX_FLINE_DIST2);
+		//Line spacing
+		maLineSPTbx->SetPosPixel(TBX_LINE_SPACE2);
+		//image
+		maFISpace1.SetPosPixel(POS_IMG_SPACE12);
+		maFISpace2.SetPosPixel(POS_IMG_SPACE22);
+		maFIndent1.SetPosPixel(POS_IMG_INDENT12);
+		maFIndent2.SetPosPixel(POS_IMG_INDENT22);
+		maFIndent3.SetPosPixel(POS_IMG_INDENT32);
+		Size aSize(GetOutputSizePixel().Width(),PARA_SECTIONPAGE_HEIGHT_2);
+		aSize = LogicToPixel( aSize, MapMode(MAP_APPFONT) );
+		aSize.setWidth(GetOutputSizePixel().Width());
+		SetSizePixel(aSize);
+	}
+}
+
+void ParaPropertyPanel::EndSpacingPopupMode (void)
+{
+    maLineSpacePopup.Hide();
+}
+
+void ParaPropertyPanel::EndBulletsPopupMode (void)
+{
+	//maUnderlinePopup.Hide();
+}
+
+void ParaPropertyPanel::EndNumberingPopupMode (void)
+{
+	//maUnderlinePopup.Hide();
+}
+
+
+void ParaPropertyPanel::InitToolBoxAlign()
+{
+	maAlignToolBox->SetItemImage(TOOLBOX_ITEM1,maLeftPara);
+	maAlignToolBox->SetItemImage(TOOLBOX_ITEM2,maCentPara);
+	maAlignToolBox->SetItemImage(TOOLBOX_ITEM3,maRightPara);
+	maAlignToolBox->SetItemImage(TOOLBOX_ITEM4,maJusPara);
+	Link aLink = LINK( this, ParaPropertyPanel, AlignStyleModifyHdl_Impl );
+	maAlignToolBox->SetSelectHdl( aLink );
+	Size aTbxSize (maAlignToolBox->CalcWindowSizePixel());
+	maAlignToolBox->SetOutputSizePixel( aTbxSize );
+}
+
+void ParaPropertyPanel::InitToolBoxVertAlign()
+{
+	InitImageList(maTBxVertAlign, maVertImageList, maVertImageListH);
+	maTBxVertAlign->SetSelectHdl(LINK(this,ParaPropertyPanel,VertTbxSelectHandler));
+	Size aTbxSize (maTBxVertAlign->CalcWindowSizePixel());
+	maTBxVertAlign->SetOutputSizePixel( aTbxSize );
+}
+
+
+void ParaPropertyPanel::InitToolBoxIndent()
+{
+	Link aLink = LINK( this, ParaPropertyPanel, ModifyIndentHdl_Impl );
+	maLeftIndent->SetModifyHdl( aLink );
+	maRightIndent->SetModifyHdl( aLink );
+	maFLineIndent->SetModifyHdl( aLink );
+
+	if( Application::GetSettings().GetLayoutRTL())
+	{
+		maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM1,maIndInc_BD);
+		maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM2,maIndDec_BD);
+	}
+	else
+	{
+		maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM1,maIndInc);
+		maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM2,maIndDec);
+	}
+	maTbxIndent_IncDec->SetItemImage(TOOLBOX_ITEM3,maIndHang);
+	aLink = LINK( this, ParaPropertyPanel, ClickIndent_IncDec_Hdl_Impl );
+	maTbxIndent_IncDec->SetSelectHdl(aLink);    
+	m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric();
+	Size aTbxSize = maTbxIndent_IncDec->CalcWindowSizePixel();
+	maTbxIndent_IncDec->SetOutputSizePixel( aTbxSize );
+	
+	if( Application::GetSettings().GetLayoutRTL())
+	{
+		maTbxProDemote->SetItemImage(TOOLBOX_ITEM1,maIndInc_BD);
+		maTbxProDemote->SetItemImage(TOOLBOX_ITEM2,maIndDec_BD);
+	}
+	else
+	{
+		maTbxProDemote->SetItemImage(TOOLBOX_ITEM1,maIndInc);
+		maTbxProDemote->SetItemImage(TOOLBOX_ITEM2,maIndDec);
+	}
+	maTbxProDemote->SetItemImage(TOOLBOX_ITEM3,maIndHang);
+	aLink = LINK( this, ParaPropertyPanel, ClickProDemote_Hdl_Impl );
+	maTbxProDemote->SetSelectHdl(aLink);    
+	m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric();
+	aTbxSize = maTbxProDemote->CalcWindowSizePixel();
+	maTbxProDemote->SetOutputSizePixel( aTbxSize );
+}
+
+void ParaPropertyPanel::InitToolBoxBGColor()
+{
+	mpColorUpdater.reset(new ::svx::ToolboxButtonColorUpdater(SID_BACKGROUND_COLOR, TBI_BACK_COLOR, maTBxBackColor.get(), TBX_UPDATER_MODE_CHAR_COLOR_NEW ));
+
+	maTBxBackColor->SetItemImage(TBI_BACK_COLOR, GetDisplayBackground().GetColor().IsDark()? maImgBackColorHigh : maImgBackColor);
+	maTBxBackColor->SetItemBits( TBI_BACK_COLOR, maTBxBackColor->GetItemBits( TBI_BACK_COLOR ) | TIB_DROPDOWNONLY );
+
+	Link aLink = LINK(this, ParaPropertyPanel, ToolBoxBackColorDDHandler);
+	maTBxBackColor->SetDropdownClickHdl ( aLink );
+	maTBxBackColor->SetSelectHdl ( aLink );
+	Size aTbxSize (maTBxBackColor->CalcWindowSizePixel());
+	maTBxBackColor->SetOutputSizePixel( aTbxSize );
+}
+
+void ParaPropertyPanel::InitToolBoxBulletsNumbering()
+{
+	if( Application::GetSettings().GetLayoutRTL())//sym2_7380
+	{
+		maTBxNumBullet->SetItemImage( IID_BULLET, maNumBImageListRTL.GetImage( IID_BULLET ) );
+		maTBxNumBullet->SetItemImage( IID_NUMBER, maNumBImageListRTL.GetImage( IID_NUMBER ) );
+	}
+	else
+		InitImageList(maTBxNumBullet, maNumBImageList, maNumBImageListH);
+
+	maTBxNumBullet->SetDropdownClickHdl(LINK(this,ParaPropertyPanel,NumBTbxDDHandler));
+	maTBxNumBullet->SetSelectHdl(LINK(this,ParaPropertyPanel,NumBTbxSelectHandler));
+	Size aTbxSize (maTBxNumBullet->CalcWindowSizePixel());
+	maTBxNumBullet->SetOutputSizePixel( aTbxSize );
+}
+void ParaPropertyPanel::InitToolBoxSpacing()
+{
+	Link aLink = LINK( this, ParaPropertyPanel, ULSpaceHdl_Impl );
+	maTopDist->SetModifyHdl(aLink);
+	maBottomDist->SetModifyHdl( aLink );
+
+	maTbxUL_IncDec->SetItemImage(TOOLBOX_ITEM1,maParInc);
+	maTbxUL_IncDec->SetItemImage(TOOLBOX_ITEM2,maParDec);
+	aLink = LINK( this, ParaPropertyPanel, ClickUL_IncDec_Hdl_Impl );
+	maTbxUL_IncDec->SetSelectHdl(aLink);
+	m_eULSpaceUnit = maULSpaceControl.GetCoreMetric();
+	Size aTbxSize = maTbxUL_IncDec->CalcWindowSizePixel();
+	maTbxUL_IncDec->SetOutputSizePixel( aTbxSize );
+}
+void ParaPropertyPanel::InitToolBoxLineSpacing()
+{
+	Link aLink = LINK( this, ParaPropertyPanel, ClickLineSPDropDownHdl_Impl );
+	maLineSPTbx->SetDropdownClickHdl( aLink );
+	maLineSPTbx->SetSelectHdl( aLink );		//support keyinput "ENTER"
+	maLineSPTbx->SetItemBits( TOOLBOX_ITEM1, maLineSPTbx->GetItemBits( TOOLBOX_ITEM1 ) | TIB_DROPDOWNONLY );
+	maLineSPTbx->SetItemImage(TOOLBOX_ITEM1,maSpace3);
+	Size aTbxSize = maLineSPTbx->CalcWindowSizePixel();
+	maLineSPTbx->SetOutputSizePixel( aTbxSize );
+}
+
+void ParaPropertyPanel::initial()
+{
+	maFISpace1.SetImage(maSpace1);
+	maFISpace2.SetImage(maSpace2);
+	maFIndent1.SetImage(maIndent3);
+	maFIndent2.SetImage(maIndent2);
+	maFIndent3.SetImage(maIndent1);
+
+	GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_LEFT,sal_True,sal_False);
+	GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_CENTER,sal_True,sal_False);
+	GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_RIGHT,sal_True,sal_False);
+	GetBindings()->Invalidate(SID_ATTR_PARA_ADJUST_BLOCK,sal_True,sal_False);
+
+	//toolbox
+	SetupIcons();
+	InitToolBoxAlign();
+	InitToolBoxVertAlign();
+	InitToolBoxIndent();
+	InitToolBoxBGColor();
+	InitToolBoxBulletsNumbering();
+	InitToolBoxSpacing();
+	InitToolBoxLineSpacing();
+
+#ifdef HAS_IA2
+	maAlignToolBox->SetAccRelationLabeledBy(&maAlignToolBox);
+	maTBxVertAlign->SetMpSubEditAccLableBy(&maTBxVertAlign);
+	maTBxNumBullet->SetAccRelationLabeledBy(&maTBxNumBullet);
+	maTBxBackColor->SetMpSubEditAccLableBy(&maTBxBackColor);
+	maFTUL->SetAccRelationLabeledBy(&maFTUL);
+	maTbxUL_IncDec->SetAccRelationLabeledBy(&maTbxUL_IncDec);
+	maTopDist->SetAccRelationLabeledBy(&maTopDist);
+	maBottomDist->SetAccRelationLabeledBy(&maBottomDist);
+	maLineSPTbx->SetAccRelationLabeledBy(&maLineSPTbx);
+	maFTIndent->SetAccRelationLabeledBy(&maFTIndent);
+	maTbxIndent_IncDec->SetAccRelationLabeledBy(&maTbxIndent_IncDec);
+	maTbxProDemote->SetAccRelationLabeledBy(&maTbxProDemote);
+	maLeftIndent->SetAccRelationLabeledBy(&maLeftIndent);
+	maRightIndent->SetAccRelationLabeledBy(&maRightIndent);
+	maFLineIndent->SetAccRelationLabeledBy(&maFLineIndent);
+	mpColorUpdater->SetAccRelationLabeledBy(&mpColorUpdater);
+#endif	
+}
+
+void ParaPropertyPanel::InitImageList(::boost::scoped_ptr<ToolBox>& rTbx, ImageList& rImglst, ImageList& rImgHlst)
+{	
+	sal_Bool bHighContrast = GetDisplayBackground().GetColor().IsDark();
+
+    ImageList& rImgLst = bHighContrast ? rImgHlst : rImglst;
+
+	sal_uInt16 nCount = rTbx->GetItemCount();
+    for (sal_uInt16 i = 0; i < nCount; i++)
+    {
+    	sal_uInt16 nId = rTbx->GetItemId(i);
+		rTbx->SetItemImage( nId, rImgLst.GetImage( nId ) );
+    }
+}
+
+//===========================for Numbering & Bullet================================================
+
+
+
+IMPL_LINK(ParaPropertyPanel, NumBTbxDDHandler, ToolBox*, pToolBox)
+{
+	sal_uInt16 nId = pToolBox->GetCurItemId();
+	
+	EndTracking();
+	pToolBox->SetItemDown( nId, sal_True ); 
+
+	if (nId == 1)
+    {
+		/*SvxParaBulletPage* pBulletPage = GetBulletPage();	
+		pBulletPage->UpdateValueSet();
+		Size aFloatSz = pBulletPage->GetOutputSizePixel();
+		GetBulletFloatWin()->SetSizePixel( aFloatSz );
+
+		Point aPos=maTBxNumBullet->GetPosPixel();
+		aPos = OutputToScreenPixel( aPos );
+		Size aSize = maTBxNumBullet->GetSizePixel();
+		Rectangle aRect( aPos, aSize );
+		GetBulletFloatWin()->StartPopupMode( aRect, FLOATWIN_POPUPMODE_DOWN | FLOATWIN_POPUPMODE_NOFOCUSCLOSE);
+		GetBulletFloatWin()->SetPopupModeFlags(GetBulletFloatWin()->GetPopupModeFlags() | FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE );
+		GetBulletPage()->ToGetFocus();*/
+	}
+	else if (nId == 2)
+	{
+		/*SvxParaNumberPage* pNumberPage = GetNumberPage();	
+		pNumberPage->UpdateValueSet();
+		Size aFloatSz = pNumberPage->GetOutputSizePixel();
+		GetNumberFloatWin()->SetSizePixel( aFloatSz );
+
+		Point aPos=maTBxNumBullet->GetPosPixel();
+		aPos = OutputToScreenPixel( aPos );
+		Size aSize = maTBxNumBullet->GetSizePixel();
+		Rectangle aRect( aPos, aSize );
+
+		GetNumberFloatWin()->StartPopupMode( aRect, FLOATWIN_POPUPMODE_DOWN | FLOATWIN_POPUPMODE_NOFOCUSCLOSE);
+		GetNumberFloatWin()->SetPopupModeFlags(GetNumberFloatWin()->GetPopupModeFlags() | FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE );
+		GetNumberPage()->ToGetFocus();*/
+	}
+	pToolBox->SetItemDown( nId, sal_False ); 
+	return 0;
+}
+
+IMPL_LINK(ParaPropertyPanel, NumBTbxSelectHandler, ToolBox*, pToolBox)
+{
+	sal_uInt16 nId = pToolBox->GetCurItemId();
+	sal_uInt16 nSID = SID_TABLE_VERT_NONE;
+	
+	EndTracking();
+	if (nId == 1)
+    {
+		nSID = FN_NUM_BULLET_ON;
+	}
+	else if ( nId == 2)
+	{
+		nSID = FN_NUM_NUMBERING_ON;
+	}
+	SfxBoolItem aBoolItem(nSID, sal_True);
+	GetBindings()->GetDispatcher()->Execute(nSID, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
+
+	return 0;	
+}
+
+
+//================================for Vertical Alignment========================================
+
+
+
+IMPL_LINK(ParaPropertyPanel, VertTbxSelectHandler, ToolBox*, pToolBox)
+{
+	sal_uInt16 nId = pToolBox->GetCurItemId();
+	sal_uInt16 nSID = SID_TABLE_VERT_NONE;
+	EndTracking();
+	if (nId == 1)
+    {
+        nSID = SID_TABLE_VERT_NONE;
+		maTBxVertAlign->SetItemState(1, STATE_CHECK);
+		maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
+		maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
+	}
+	else if (nId == 2)
+	{
+		nSID = SID_TABLE_VERT_CENTER;
+		maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
+		maTBxVertAlign->SetItemState(2, STATE_CHECK);
+		maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
+	}
+	else if (nId == 3)
+	{
+		nSID = SID_TABLE_VERT_BOTTOM;
+		maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
+		maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
+		maTBxVertAlign->SetItemState(3, STATE_CHECK);
+	}
+	SfxBoolItem aBoolItem(nSID, sal_True);
+	GetBindings()->GetDispatcher()->Execute(nSID, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
+
+	return 0;
+}
+
+void ParaPropertyPanel::VertStateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState)
+{	
+	if (eState < SFX_ITEM_DONTCARE)
+	{
+		maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
+		maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
+		maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
+		maTBxVertAlign->EnableItem(1, sal_False);
+		maTBxVertAlign->EnableItem(2, sal_False);
+		maTBxVertAlign->EnableItem(3, sal_False);
+	}
+	else
+	{
+		maTBxVertAlign->EnableItem(1, sal_True);
+		maTBxVertAlign->EnableItem(2, sal_True);
+		maTBxVertAlign->EnableItem(3, sal_True);
+		if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem)))
+		{
+			const SfxBoolItem* pItem= (const SfxBoolItem*)pState;
+			sal_Bool aBool = (sal_Bool)pItem->GetValue();
+
+			if (aBool)
+			{
+				if (nSID == SID_TABLE_VERT_NONE)
+				{
+					maTBxVertAlign->SetItemState(1, STATE_CHECK);
+					maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
+					maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
+				}
+				else if (nSID == SID_TABLE_VERT_CENTER)
+				{
+					maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
+					maTBxVertAlign->SetItemState(2, STATE_CHECK);
+					maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
+				}
+				else if (nSID == SID_TABLE_VERT_BOTTOM)
+				{
+					maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
+					maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
+					maTBxVertAlign->SetItemState(3, STATE_CHECK);
+				}
+			}
+			else
+			{
+				if (nSID == SID_TABLE_VERT_NONE)
+				{
+					maTBxVertAlign->SetItemState(1, STATE_NOCHECK);					
+				}
+				else if (nSID == SID_TABLE_VERT_CENTER)
+				{					
+					maTBxVertAlign->SetItemState(2, STATE_NOCHECK);				
+				}
+				else if (nSID == SID_TABLE_VERT_BOTTOM)
+				{					
+					maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
+				}
+			}
+		}
+		else
+		{
+			maTBxVertAlign->SetItemState(1, STATE_NOCHECK);
+			maTBxVertAlign->SetItemState(2, STATE_NOCHECK);
+			maTBxVertAlign->SetItemState(3, STATE_NOCHECK);
+		}
+	}
+}
+//==================================for Background color=====================
+
+IMPL_LINK(ParaPropertyPanel, ToolBoxBackColorDDHandler,ToolBox*, pToolBox)
+{
+	sal_uInt16 nId = pToolBox->GetCurItemId();
+	if(nId == TBI_BACK_COLOR)
+	{
+		pToolBox->SetItemDown( nId, sal_True );
+
+		/*SvxParaBackColorPage* pBackColorPage = GetBackColorPage();
+		Size aFloatSz = pBackColorPage->GetOutputSizePixel();
+		GetBackColorFloatWin()->SetSizePixel( aFloatSz );
+
+		Point aPos = maTBxBackColor->GetPosPixel();
+		aPos = OutputToScreenPixel( aPos );
+		Size aSize = maTBxBackColor->GetSizePixel();
+		Rectangle aRect( aPos, aSize );
+
+		GetBackColorFloatWin()->StartPopupMode( aRect, FLOATWIN_POPUPMODE_NOFOCUSCLOSE|FLOATWIN_POPUPMODE_DOWN );
+		GetBackColorFloatWin()->SetPopupModeFlags(GetBackColorFloatWin()->GetPopupModeFlags() | FLOATWIN_POPUPMODE_NOAPPFOCUSCLOSE );
+
+		pBackColorPage->ToGetFocus();
+		pBackColorPage->SetCurColorSelect(maColor, mbColorAvailable);	*/
+	}
+	return 0;
+}
+
+IMPL_LINK( ParaPropertyPanel, ImplPopupModeEndHdl, FloatingWindow*, EMPTYARG )
+{	
+	return 0;
+}
+
+void ParaPropertyPanel::ShowMenu (void)
+{
+    if (mpBindings != NULL)
+    {
+        SfxDispatcher* pDispatcher = mpBindings->GetDispatcher();
+        if (pDispatcher != NULL)
+            pDispatcher->Execute(SID_PARA_DLG, SFX_CALLMODE_ASYNCHRON);
+    }
+}
+
+void ParaPropertyPanel::ParaBKGStateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState)
+{
+	if( eState >= SFX_ITEM_DEFAULT && pState->ISA(SvxBrushItem))
+	{
+		const SvxBrushItem* pItem =  (const SvxBrushItem*)pState;
+		maColor = pItem->GetColor();
+		mbColorAvailable = sal_True;
+		mpColorUpdater->Update(maColor);
+	}
+	else
+	{
+		mbColorAvailable = sal_False;
+		maColor.SetColor(COL_AUTO);
+		mpColorUpdater->Update(maColor);
+	}
+}
+
+//==================================for Paragraph Alignment=====================
+IMPL_LINK( ParaPropertyPanel, AlignStyleModifyHdl_Impl, ToolBox*, pBox )
+{
+	switch (pBox->GetCurItemId())
+	{
+	case BT_SUBSTLEFT:
+		{
+			pBox->SetItemState(BT_SUBSTLEFT,STATE_CHECK);
+			pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
+			pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
+			pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
+			SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_LEFT,  sal_True );
+			GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_LEFT, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
+		}
+		break;
+	case BT_SUBSTCENTER:
+		{
+			pBox->SetItemState(BT_SUBSTCENTER,STATE_CHECK);
+			pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
+			pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
+			pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
+			SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_CENTER, sal_True );
+			GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_CENTER, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
+		}
+		break;
+	case BT_SUBSTRIGHT:
+		{
+			pBox->SetItemState(BT_SUBSTRIGHT,STATE_CHECK);
+			pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
+			pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
+			pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
+			SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_RIGHT, sal_True );
+			GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_RIGHT, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
+		}
+		break;
+	case BT_SUBSTJUSTIFY:
+		{
+			pBox->SetItemState(BT_SUBSTJUSTIFY,STATE_CHECK);
+			pBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
+			pBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
+			pBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
+			SfxBoolItem aBoolItem( SID_ATTR_PARA_ADJUST_BLOCK, sal_True );
+			GetBindings()->GetDispatcher()->Execute(SID_ATTR_PARA_ADJUST_BLOCK, SFX_CALLMODE_RECORD, &aBoolItem, 0L);
+		}
+		break;
+	}
+
+	return 0;
+}
+//==================================for Paragraph Indent=====================
+IMPL_LINK( ParaPropertyPanel, ModifyIndentHdl_Impl, SvxRelativeField*, pBox )
+{
+	SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE );
+	aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) );
+	aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
+	aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
+
+	GetBindings()->GetDispatcher()->Execute(
+		SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
+	return 0;
+}
+
+IMPL_LINK(ParaPropertyPanel, ClickIndent_IncDec_Hdl_Impl, ToolBox *, pControl)
+{
+	switch (pControl->GetCurItemId())
+	{
+		case INDENT_INCREMENT:
+		{
+			switch (maContext.GetCombinedContext())
+			{
+				case CombinedEnumContext(Application_Writer, Context_Default):
+				case CombinedEnumContext(Application_Writer, Context_Text):
+				case CombinedEnumContext(Application_Writer, Context_Table):
+				{
+					SfxBoolItem aMargin( SID_INC_INDENT, sal_True );
+					GetBindings()->GetDispatcher()->Execute(
+						SID_INC_INDENT, SFX_CALLMODE_RECORD, &aMargin, 0L);
+				}
+				break;
+				default:
+				{
+					SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE );
+
+					maTxtLeft += INDENT_STEP;
+					sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+					nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
+					aMargin.SetTxtLeft( (const long)nVal );
+					aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
+					aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
+
+					GetBindings()->GetDispatcher()->Execute(
+						SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
+				}
+			}
+		}
+		break;
+		case INDENT_DECREMENT:
+		{
+			switch (maContext.GetCombinedContext())
+			{
+				case CombinedEnumContext(Application_Writer, Context_Default):
+				case CombinedEnumContext(Application_Writer, Context_Text):
+				case CombinedEnumContext(Application_Writer, Context_Table):
+				{
+					SfxBoolItem aMargin( SID_DEC_INDENT, sal_True );
+					GetBindings()->GetDispatcher()->Execute(
+						SID_DEC_INDENT, SFX_CALLMODE_RECORD, &aMargin, 0L);
+				}
+				break;
+				default:
+				{
+					if((maTxtLeft - INDENT_STEP) < 0)
+						maTxtLeft = DEFAULT_VALUE;
+					else
+						maTxtLeft -= INDENT_STEP;
+
+					SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE );
+					
+					sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+					nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
+
+					aMargin.SetTxtLeft( (const long)nVal );
+					aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
+					aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
+
+					GetBindings()->GetDispatcher()->Execute(
+						SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
+				}
+			}
+		}
+		break;
+		case ID_HANGING_INDENT:
+		{
+			SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE );
+			aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) + (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
+			aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
+			aMargin.SetTxtFirstLineOfst( ((const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ))*(-1) );
+
+			GetBindings()->GetDispatcher()->Execute(
+				SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
+		}
+		break;
+	}
+	return( 0L );
+}
+
+IMPL_LINK(ParaPropertyPanel, ClickProDemote_Hdl_Impl, ToolBox *, pControl)
+{
+	switch (pControl->GetCurItemId())
+	{
+		case BT_TBX_INDENT_PROMOTE:
+		{
+			/*SvxLRSpaceItem aMargin( SID_ATTR_PARA_RIGHT );
+
+			maTxtLeft += INDENT_STEP;
+			sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+			nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
+			aMargin.SetTxtLeft( (const long)nVal );
+			aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
+			aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );*/
+
+			//GetBindings()->GetDispatcher()->Execute(
+			//	SID_ATTR_PARA_RIGHT, SFX_CALLMODE_RECORD, &aMargin, 0L);
+		}
+		break;
+		case BT_TBX_INDENT_DEMOTE:
+		{
+			if((maTxtLeft - INDENT_STEP) < 0)
+				maTxtLeft = DEFAULT_VALUE;
+			else
+				maTxtLeft -= INDENT_STEP;
+
+			/*SvxLRSpaceItem aMargin( SID_ATTR_PARA_LEFT );
+			
+			sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+			nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
+
+			aMargin.SetTxtLeft( (const long)nVal );
+			aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
+			aMargin.SetTxtFirstLineOfst( (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );*/
+
+			//GetBindings()->GetDispatcher()->Execute(
+			//	SID_ATTR_PARA_LEFT, SFX_CALLMODE_RECORD, &aMargin, 0L);
+		}
+		break;
+		case SD_HANGING_INDENT:
+		{
+			SvxLRSpaceItem aMargin( SID_ATTR_LRSPACE );
+			aMargin.SetTxtLeft( (const long)GetCoreValue( *maLeftIndent.get(), m_eLRSpaceUnit ) + (const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ) );
+			aMargin.SetRight( (const long)GetCoreValue( *maRightIndent.get(), m_eLRSpaceUnit ) );
+			aMargin.SetTxtFirstLineOfst( ((const short)GetCoreValue( *maFLineIndent.get(), m_eLRSpaceUnit ))*(-1) );
+
+			GetBindings()->GetDispatcher()->Execute(
+				SID_ATTR_LRSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
+		}
+		break;
+	}
+	return( 0L );
+}
+//==================================for Paragraph Line Spacing=====================
+
+IMPL_LINK( ParaPropertyPanel, ClickLineSPDropDownHdl_Impl, ToolBox*, pBox )
+{
+	
+	const sal_uInt16 nId = pBox->GetCurItemId();
+	OSL_ASSERT(nId == TOOLBOX_ITEM1);
+	if(nId == TOOLBOX_ITEM1)
+	{
+		pBox->SetItemDown( nId, true );
+		maLineSpacePopup.Rearrange(meLnSpState,m_eMetricUnit,mpLnSPItem,maContext);
+		maLineSpacePopup.Show(*pBox);
+
+	}
+	/*
+	ParaPropertyPanel::SvxLineSPPopPage* pLineSPPage = GetLineSPPopPage();
+
+	
+	*/
+	return (0L);
+}
+
+/*IMPL_LINK( ParaPropertyPanel, LineSPCloseHdl_Impl, SfxPopupPanelWin*, pControl )
+{
+	
+	if( mbUseLineSPCustom )
+	{
+		maLinePos = mpLineSPPage->maPos;
+	    maLineValue = mpLineSPPage->maValue;
+
+		SvtViewOptions aWinOpt( E_WINDOW, LSP_POS_GLOBAL_VALUE );
+		::com::sun::star::uno::Sequence < ::com::sun::star::beans::NamedValue > aSeq(1);
+		aSeq[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("maLinePos") );
+		aSeq[0].Value <<= ::rtl::OUString( String::CreateFromInt64( maLinePos ));
+		aWinOpt.SetUserData( aSeq );
+
+		SvtViewOptions aWinOpt2( E_WINDOW, LSP_LV_GLOBAL_VALUE );
+		aSeq[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("maLineValue") );
+		aSeq[0].Value <<= ::rtl::OUString( String::CreateFromInt64( maLineValue ));
+		aWinOpt2.SetUserData( aSeq );
+	}	
+	return 0;
+	
+}*/
+//==================================for Paragraph Spacing=====================
+IMPL_LINK( ParaPropertyPanel, ULSpaceHdl_Impl, SvxRelativeField*, pBox )
+{
+	SvxULSpaceItem aMargin( SID_ATTR_ULSPACE );
+	aMargin.SetUpper( (sal_uInt16)GetCoreValue( *maTopDist.get(), m_eULSpaceUnit ) );
+	aMargin.SetLower( (sal_uInt16)GetCoreValue( *maBottomDist.get(), m_eULSpaceUnit ) );
+
+	GetBindings()->GetDispatcher()->Execute(
+		SID_ATTR_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
+	return 0L;
+}
+
+IMPL_LINK(ParaPropertyPanel, ClickUL_IncDec_Hdl_Impl, ToolBox *, pControl)
+{
+	switch (pControl->GetCurItemId())
+		{
+	    case UL_INCREMENT:
+		     {
+				 SvxULSpaceItem aMargin( SID_ATTR_ULSPACE );
+
+				 maUpper += UL_STEP;
+				 sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+				 nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
+				 aMargin.SetUpper( (const sal_uInt16)nVal );
+
+				 maLower += UL_STEP;
+				 nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+				 nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
+	             aMargin.SetLower( (const sal_uInt16)nVal );
+
+				 GetBindings()->GetDispatcher()->Execute(
+					 SID_ATTR_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
+			 }
+			 break;
+		case UL_DECREMENT:
+			{
+				 SvxULSpaceItem aMargin( SID_ATTR_ULSPACE );
+
+				 if( maUpper >= UL_STEP )
+				 {
+					maUpper -= UL_STEP;
+					sal_Int64	nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+					nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
+					aMargin.SetUpper( (const sal_uInt16)nVal );
+				 }
+				 else
+					aMargin.SetUpper( DEFAULT_VALUE );
+				 if( maLower >= UL_STEP )
+				 {
+					maLower -= UL_STEP;
+					sal_Int64	nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+					nVal = OutputDevice::LogicToLogic( (long)nVal, MAP_100TH_MM, (MapUnit)m_eLRSpaceUnit );
+					aMargin.SetLower( (const sal_uInt16)nVal );
+				 }
+				 else
+					aMargin.SetLower( DEFAULT_VALUE );
+
+				 GetBindings()->GetDispatcher()->Execute(
+					 SID_ATTR_ULSPACE, SFX_CALLMODE_RECORD, &aMargin, 0L);
+			}
+			break;
+		}
+	return( 0L );
+}
+
+//==================================for Paragraph State change=====================
+void ParaPropertyPanel::NotifyItemUpdate( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
+{	
+	if( nSID == SID_ATTR_METRIC )
+	{
+		m_eMetricUnit = GetCurrentUnit(eState,pState);
+		if( m_eMetricUnit!=m_last_eMetricUnit )
+		{
+			SetFieldUnit( *maLeftIndent.get(), m_eMetricUnit );
+			SetFieldUnit( *maRightIndent.get(), m_eMetricUnit );
+			SetFieldUnit( *maFLineIndent.get(), m_eMetricUnit );
+			SetFieldUnit( *maTopDist.get(), m_eMetricUnit );
+			SetFieldUnit( *maBottomDist.get(), m_eMetricUnit );
+		}
+		m_last_eMetricUnit = m_eMetricUnit;
+	}
+
+	if( nSID == SID_ATTR_LRSPACE )
+		StateChangedIndentImpl( nSID, eState, pState );		
+
+	if( nSID == SID_ATTR_PARA_LINESPACE )	
+		StateChangedLnSPImpl( nSID, eState, pState );	
+
+	if( nSID == SID_ATTR_ULSPACE )
+		StateChangedULImpl( nSID, eState, pState );
+
+	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)
+		StateChangedAlignmentImpl( nSID, eState, pState );
+
+	if (nSID==SID_OUTLINE_LEFT || nSID==SID_OUTLINE_RIGHT)
+		StateChangeOutLineImpl( nSID, eState, pState );
+
+	if (nSID==SID_INC_INDENT || nSID==SID_DEC_INDENT)
+		StateChangeIncDecImpl( nSID, eState, pState );
+	//Sym3_1093. Add toggle state for numbering and bullet icons
+	if (nSID==FN_NUM_NUMBERING_ON || nSID==FN_NUM_BULLET_ON) 
+		StateChangeBulletNumImpl( nSID, eState, pState );
+
+	//Modified for Numbering&Bullets Dialog UX Enh(Story 992) by chengjh,2011.7.5
+	//Get the num rule index data of the current selection
+	if ( nSID == FN_BUL_NUM_RULE_INDEX ||nSID == FN_NUM_NUM_RULE_INDEX) 
+		StateChangeBulletNumRuleImpl( nSID, eState, pState );
+	//End
+	
+	if ((nSID == SID_TABLE_VERT_NONE)||(nSID == SID_TABLE_VERT_CENTER)||(nSID == SID_TABLE_VERT_BOTTOM))
+	{
+		VertStateChanged( nSID, eState, pState);
+	}
+	else if (nSID == SID_BACKGROUND_COLOR)
+	{
+		ParaBKGStateChanged(nSID, eState, pState);
+	}
+}
+
+void ParaPropertyPanel::StateChangedAlignmentImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
+{
+	if( eState >= SFX_ITEM_AVAILABLE )
+	{
+		const SfxBoolItem* pItem = (const SfxBoolItem*)pState;
+		bool IsChecked = (bool)pItem->GetValue();
+		switch (nSID)
+		{
+		case SID_ATTR_PARA_ADJUST_LEFT:
+			{
+				if(IsChecked)
+				{
+					maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_CHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
+				}
+				else
+					maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
+			}
+			break;
+		case SID_ATTR_PARA_ADJUST_CENTER:
+			{
+				if(IsChecked)
+				{
+					maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_CHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
+				}
+				else
+					maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
+			}
+			break;
+		case SID_ATTR_PARA_ADJUST_RIGHT:
+			{
+				if(IsChecked)
+				{
+					maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_CHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
+				}
+				else
+					maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
+			}
+			break;
+		case SID_ATTR_PARA_ADJUST_BLOCK:
+			{
+				if(IsChecked)
+				{
+					maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_CHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
+					maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);
+				}
+				else
+					maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
+			}
+			break;
+		}
+	}
+	else if( eState == SFX_ITEM_DISABLED )
+	{
+	}
+	else if ( eState == SFX_ITEM_DONTCARE )
+	{
+		switch (nSID)
+		{
+		case SID_ATTR_PARA_ADJUST_LEFT:
+			maAlignToolBox->SetItemState(BT_SUBSTLEFT,STATE_NOCHECK);
+			break;
+		case SID_ATTR_PARA_ADJUST_CENTER:
+			maAlignToolBox->SetItemState(BT_SUBSTCENTER,STATE_NOCHECK);
+			break;
+		case SID_ATTR_PARA_ADJUST_RIGHT:
+			maAlignToolBox->SetItemState(BT_SUBSTRIGHT,STATE_NOCHECK);	
+			break;
+		case SID_ATTR_PARA_ADJUST_BLOCK:
+			maAlignToolBox->SetItemState(BT_SUBSTJUSTIFY,STATE_NOCHECK);
+			break;
+		}
+	}
+}
+
+void ParaPropertyPanel::StateChangedIndentImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
+{
+	switch (maContext.GetCombinedContext())
+	{
+		
+		case CombinedEnumContext(Application_Writer, Context_DrawText):
+		case CombinedEnumContext(Application_Calc, Context_DrawText):
+		case CombinedEnumContext(Application_Writer, Context_Annotation):
+		{
+			maLeftIndent->SetMin( DEFAULT_VALUE );
+			maRightIndent->SetMin( DEFAULT_VALUE );
+			maFLineIndent->SetMin( DEFAULT_VALUE );
+			maTbxIndent_IncDec->Show();
+			maTbxProDemote->Hide();
+		}
+		break;
+		case CombinedEnumContext(Application_Draw, Context_DrawText):
+        	case CombinedEnumContext(Application_Impress, Context_DrawText):
+		case CombinedEnumContext(Application_Draw, Context_Draw):
+		case CombinedEnumContext(Application_Draw, Context_TextObject):
+		case CombinedEnumContext(Application_Draw, Context_Graphic):
+		case CombinedEnumContext(Application_Impress, Context_Draw):
+		case CombinedEnumContext(Application_Impress, Context_TextObject):
+		case CombinedEnumContext(Application_Impress, Context_Graphic):
+		case CombinedEnumContext(Application_Impress, Context_Table):
+        	case CombinedEnumContext(Application_Draw, Context_Table):
+		{
+    		maLeftIndent->SetMin( DEFAULT_VALUE );
+			maRightIndent->SetMin( DEFAULT_VALUE );
+			maFLineIndent->SetMin( DEFAULT_VALUE );
+			maTbxIndent_IncDec->Hide();
+			maTbxProDemote->Show();
+		}
+		break;
+		case CombinedEnumContext(Application_Writer, Context_Default):
+		case CombinedEnumContext(Application_Writer, Context_Text):
+		case CombinedEnumContext(Application_Writer, Context_Table):
+		{
+			maLeftIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM );
+			maRightIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM );
+			maFLineIndent->SetMin( NEGA_MAXVALUE, FUNIT_100TH_MM );
+			maTbxIndent_IncDec->Show();
+			maTbxProDemote->Hide();
+		}
+		break;
+	}
+
+	if( pState && eState >= SFX_ITEM_AVAILABLE )
+	{
+		SvxLRSpaceItem* pSpace = ( SvxLRSpaceItem*)pState;
+		maTxtLeft = pSpace->GetTxtLeft();
+		maTxtLeft = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM );
+		maTxtLeft = OutputDevice::LogicToLogic( maTxtLeft, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) );
+
+		long aTxtRight = pSpace->GetRight();
+		aTxtRight = OutputDevice::LogicToLogic( aTxtRight, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM );
+		aTxtRight = OutputDevice::LogicToLogic( aTxtRight, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) );
+
+		long aTxtFirstLineOfst = pSpace->GetTxtFirstLineOfst();
+		aTxtFirstLineOfst = OutputDevice::LogicToLogic( aTxtFirstLineOfst, (MapUnit)m_eLRSpaceUnit, MAP_100TH_MM );
+		aTxtFirstLineOfst = OutputDevice::LogicToLogic( aTxtFirstLineOfst, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) );
+
+		long nVal = OutputDevice::LogicToLogic( maTxtLeft, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+		nVal = (long)maLeftIndent->Normalize( (long)nVal );
+		maLeftIndent->SetValue( nVal, FUNIT_100TH_MM );
+
+		if(maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) && 
+			maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) &&
+			maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table))
+		{
+			maFLineIndent->SetMin( nVal*(-1), FUNIT_100TH_MM );
+		}
+
+		long nrVal = OutputDevice::LogicToLogic( aTxtRight, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+		nrVal = (long)maRightIndent->Normalize( (long)nrVal );
+	    maRightIndent->SetValue( nrVal, FUNIT_100TH_MM );
+
+		long nfVal = OutputDevice::LogicToLogic( aTxtFirstLineOfst, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+		nfVal = (long)maFLineIndent->Normalize( (long)nfVal );
+		maFLineIndent->SetValue( nfVal, FUNIT_100TH_MM );	
+
+		switch (maContext.GetCombinedContext())
+		{
+			case CombinedEnumContext(Application_Writer, Context_DrawText):
+			case CombinedEnumContext(Application_Writer, Context_Text):
+			case CombinedEnumContext(Application_Writer, Context_Default):
+			case CombinedEnumContext(Application_Writer, Context_Table):
+			case CombinedEnumContext(Application_Writer, Context_Annotation):
+			{
+				maLeftIndent->SetMax( MAX_SW - nrVal, FUNIT_100TH_MM );
+				maRightIndent->SetMax( MAX_SW - nVal, FUNIT_100TH_MM );
+				maFLineIndent->SetMax( MAX_SW - nVal - nrVal, FUNIT_100TH_MM );
+			}
+			break;
+			case CombinedEnumContext(Application_Draw, Context_DrawText):
+			case CombinedEnumContext(Application_Draw, Context_Draw):
+        		case CombinedEnumContext(Application_Draw, Context_Table):
+			case CombinedEnumContext(Application_Draw, Context_TextObject):
+			case CombinedEnumContext(Application_Draw, Context_Graphic):
+			case CombinedEnumContext(Application_Impress, Context_TextObject):
+        		case CombinedEnumContext(Application_Impress, Context_DrawText):
+			case CombinedEnumContext(Application_Impress, Context_Table):
+			case CombinedEnumContext(Application_Impress, Context_Draw):
+			case CombinedEnumContext(Application_Impress, Context_Graphic):
+			{
+				maLeftIndent->SetMax( MAX_SC_SD - nrVal, FUNIT_100TH_MM );
+				maRightIndent->SetMax( MAX_SC_SD - nVal, FUNIT_100TH_MM );
+				maFLineIndent->SetMax( MAX_SC_SD - nVal - nrVal, FUNIT_100TH_MM );
+			}
+		}
+
+		maTbxIndent_IncDec->Enable();
+		maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_True);
+		if(maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text) 
+			&& maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default)
+			&& maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Table))
+		{
+			maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_INC, sal_True);
+			maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_True);
+		}
+
+		maTbxProDemote->Enable();
+		if( !mbOutLineRight && !mbOutLineLeft )
+			maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True);
+		maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True);
+	}
+	else if( eState == SFX_ITEM_DISABLED )
+	{
+		maLeftIndent-> Disable();
+		maRightIndent->Disable();
+		maFLineIndent->Disable();
+		maTbxIndent_IncDec->Disable();
+		if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text)  && 
+			maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) &&
+			maContext.GetCombinedContext() !=  CombinedEnumContext(Application_Writer, Context_Table) )
+			maTbxIndent_IncDec->Disable();
+		else
+			maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_False);
+
+		maTbxProDemote->Disable();
+		maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False);
+	}
+	else
+	{
+		maLeftIndent->SetEmptyFieldValue();
+		maRightIndent->SetEmptyFieldValue();
+		maFLineIndent->SetEmptyFieldValue();
+		if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text)  && 
+			maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) &&
+			maContext.GetCombinedContext() !=  CombinedEnumContext(Application_Writer, Context_Table) )
+			maTbxIndent_IncDec->Disable();
+		else
+			maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_False);
+		maTbxProDemote->Disable();
+		maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False);
+	}
+}
+
+void ParaPropertyPanel::StateChangedLnSPImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
+{
+	meLnSpState = eState;
+
+	if( pState && eState >= SFX_ITEM_AVAILABLE )
+	{
+		if(mpLnSPItem)
+			delete mpLnSPItem;
+		mpLnSPItem = ( SvxLineSpacingItem *)pState->Clone();
+	}
+}
+
+void ParaPropertyPanel::StateChangedULImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
+{
+	maTopDist->SetMax( maTopDist->Normalize( MAX_DURCH ), MapToFieldUnit(m_eULSpaceUnit) );
+	maBottomDist->SetMax( maBottomDist->Normalize( MAX_DURCH ), MapToFieldUnit(m_eULSpaceUnit) );
+
+	if( pState && eState >= SFX_ITEM_AVAILABLE )
+	{
+		SvxULSpaceItem* pOldItem = (SvxULSpaceItem*)pState;
+
+		maUpper = pOldItem->GetUpper();
+		maUpper = OutputDevice::LogicToLogic( maUpper, (MapUnit)m_eULSpaceUnit, MAP_100TH_MM );
+		maUpper = OutputDevice::LogicToLogic( maUpper, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) );
+
+		maLower = pOldItem->GetLower();
+		maLower = OutputDevice::LogicToLogic( maLower, (MapUnit)m_eULSpaceUnit, MAP_100TH_MM );
+		maLower = OutputDevice::LogicToLogic( maLower, MAP_100TH_MM, (MapUnit)(SFX_MAPUNIT_TWIP) );
+
+		sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+		nVal = maTopDist->Normalize( nVal );
+		maTopDist->SetValue( nVal, FUNIT_100TH_MM );
+
+		nVal = OutputDevice::LogicToLogic( maLower, (MapUnit)(SFX_MAPUNIT_TWIP), MAP_100TH_MM );
+		nVal = maBottomDist->Normalize( nVal );
+		maBottomDist->SetValue( nVal, FUNIT_100TH_MM );
+		maTbxUL_IncDec->Enable();
+	}
+	else if( eState == SFX_ITEM_DISABLED )
+	{
+		maTopDist->Disable();
+		maBottomDist->Disable();
+		maTbxUL_IncDec->Disable();
+	}
+	else
+	{
+		maTopDist->SetEmptyFieldValue();
+		maBottomDist->SetEmptyFieldValue();
+		maTbxUL_IncDec->Disable();
+	}
+}
+
+void ParaPropertyPanel::StateChangeOutLineImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
+{
+    if (nSID==SID_OUTLINE_LEFT)
+	{
+		if( pState && eState == SFX_ITEM_UNKNOWN )
+			mbOutLineLeft = 1;
+		else 
+			mbOutLineLeft = 0;
+	}
+	if (nSID==SID_OUTLINE_RIGHT)
+	{
+		if( pState && eState == SFX_ITEM_UNKNOWN )
+			mbOutLineRight = 1;
+		else 
+			mbOutLineRight = 0;
+	}
+	if(mbOutLineLeft)
+		maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_True);
+	else
+		maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_False);
+
+	if(mbOutLineRight)
+		maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_True);
+	else
+		maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_False);
+
+	if( !mbOutLineRight && !mbOutLineLeft )
+	{
+		maTbxProDemote->EnableItem(BT_TBX_INDENT_PROMOTE, sal_True);
+		maTbxProDemote->EnableItem(BT_TBX_INDENT_DEMOTE, sal_True);
+		maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_True);
+	}
+	else 
+		maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False);
+}
+
+void ParaPropertyPanel::StateChangeIncDecImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
+{
+	if (nSID==SID_INC_INDENT)
+	{
+		if( pState && eState == SFX_ITEM_UNKNOWN )
+			maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_INC, sal_True);
+		else
+			if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text)  && 
+				maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) &&
+			maContext.GetCombinedContext() !=  CombinedEnumContext(Application_Writer, Context_Table) )
+				maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_INC, sal_False);
+	}
+	if (nSID==SID_DEC_INDENT)
+	{
+		if( pState && eState == SFX_ITEM_UNKNOWN )
+			maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_True);
+		else
+			if( maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Text)  &&
+				maContext.GetCombinedContext() != CombinedEnumContext(Application_Writer, Context_Default) &&
+			maContext.GetCombinedContext() !=  CombinedEnumContext(Application_Writer, Context_Table) )
+				maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_False);
+	}
+}
+//Sym3_1093. Add toggle state for numbering and bullet icons
+void ParaPropertyPanel::StateChangeBulletNumImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
+{
+	if (nSID==FN_NUM_NUMBERING_ON)
+	{
+		if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem)))
+		{
+			const SfxBoolItem* pItem= (const SfxBoolItem*)pState;
+			sal_Bool aBool = (sal_Bool)pItem->GetValue();
+			if (aBool) {
+				maTBxNumBullet->SetItemState(IID_NUMBER,	STATE_CHECK);
+			} else {
+				maTBxNumBullet->SetItemState(IID_NUMBER,	STATE_NOCHECK);
+			}
+		}
+	}
+	if (nSID==FN_NUM_BULLET_ON)
+	{
+		if ( (eState >= SFX_ITEM_DEFAULT) && (pState->ISA(SfxBoolItem)))
+		{
+			const SfxBoolItem* pItem= (const SfxBoolItem*)pState;
+			sal_Bool aBool = (sal_Bool)pItem->GetValue();
+			if (aBool) {
+				maTBxNumBullet->SetItemState(IID_BULLET,	STATE_CHECK);
+			} else {
+				maTBxNumBullet->SetItemState(IID_BULLET,	STATE_NOCHECK);
+			}
+		}
+	}
+}
+//Modified for Numbering&Bullets Dialog UX Enh(Story 992) by chengjh,2011.7.5
+//Handing the transferred the num rule index data of the current selection
+void ParaPropertyPanel::StateChangeBulletNumRuleImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
+{
+	
+	const SfxUInt16Item* pIt = (const SfxUInt16Item*)pState;
+	sal_uInt16 nValue = (sal_uInt16)0xFFFF;
+	if ( pIt )
+		nValue = pIt->GetValue();
+
+	if ( nSID == FN_BUL_NUM_RULE_INDEX ) 
+	{
+		nBulletTypeIndex = nValue;
+	}else if ( nSID == FN_NUM_NUM_RULE_INDEX ) 
+	{
+		nNumTypeIndex = nValue;
+	}
+}
+//End
+FieldUnit ParaPropertyPanel::GetCurrentUnit( SfxItemState eState, const SfxPoolItem* pState )
+{
+	FieldUnit eUnit = FUNIT_NONE;
+
+	if ( pState && eState >= SFX_ITEM_DEFAULT )
+		eUnit = (FieldUnit)( (const SfxUInt16Item*)pState )->GetValue();
+	else
+	{
+		SfxViewFrame* pFrame = SfxViewFrame::Current();
+		SfxObjectShell* pSh = NULL;
+		if ( pFrame )
+			pSh = pFrame->GetObjectShell();
+		if ( pSh )  //the object shell is not always available during reload
+		{
+			SfxModule* pModule = pSh->GetModule();
+			if ( pModule )
+			{
+				const SfxPoolItem* pItem = pModule->GetItem( SID_ATTR_METRIC );
+				if ( pItem )
+					eUnit = (FieldUnit)( (SfxUInt16Item*)pItem )->GetValue();
+			}
+			else
+			{
+				DBG_ERRORFILE( "GetModuleFieldUnit(): no module found" );
+			}
+		}
+	}
+	
+	return eUnit;
+}
+//new FixedText(this, SVX_RES(FT_COLOR))
+
+PopupControl* ParaPropertyPanel::CreateLineSpacingControl (PopupContainer* pParent)
+{
+	return new ParaLineSpacingControl(pParent, *this);
+}
+
+/*PopupControl* ParaPropertyPanel::CreateBulletsPopupControl (PopupContainer* pParent)
+{
+}
+
+PopupControl* ParaPropertyPanel::CreateNumberingPopupControl (PopupContainer* pParent)
+{
+}
+
+PopupControl* ParaPropertyPanel::CreateBGColorPopupControl (PopupContainer* pParent)
+{
+
+}*/
+
+
+ParaPropertyPanel::ParaPropertyPanel(Window* pParent,
+    const cssu::Reference<css::frame::XFrame>& rxFrame,
+    SfxBindings* pBindings)
+:	Control(pParent, SVX_RES(RID_SIDEBAR_PARA_PANEL))
+//, mnContextId			(PROPERTY_CONTEXT_NOT_SUPPORT)
+//Alignment
+,maAlignToolBoxBackground(ControlFactory::CreateToolBoxBackground(this))
+, maAlignToolBox          (ControlFactory::CreateToolBox(maAlignToolBoxBackground.get(),SVX_RES(TBX_HORIZONTALALIGNMENT)))
+,maTBxVertAlignBackground(ControlFactory::CreateToolBoxBackground(this))
+, maTBxVertAlign	(ControlFactory::CreateToolBox(maTBxVertAlignBackground.get(),SVX_RES(TBX_VERT_ALIGN)))
+, maLeftPara              (SVX_RES(IMG_LEFT_PARA))
+, maCentPara              (SVX_RES(IMG_CENTER_PARA))
+, maRightPara             (SVX_RES(IMG_RIGHT_PARA))
+, maJusPara               (SVX_RES(IMG_JUSTIFY_PARA))
+, maVertImageList		  (SVX_RES(IL_VERT_ALIGN))
+, maVertImageListH		  (SVX_RES(IL_VERT_ALIGN))
+//Num&Backcolor
+,maTBxNumBulletBackground(ControlFactory::CreateToolBoxBackground(this))
+, maTBxNumBullet		  (ControlFactory::CreateToolBox(maTBxNumBulletBackground.get(),SVX_RES(TBX_NUM_BULLET)))
+,maTBxBackColorBackground(ControlFactory::CreateToolBoxBackground(this))
+, maTBxBackColor		  (ControlFactory::CreateToolBox(maTBxBackColorBackground.get(),SVX_RES(TBX_BACK_COLOR)))
+, maNumBImageList		  (SVX_RES(IL_NUM_BULLET))
+, maNumBImageListH		  (SVX_RES(ILH_NUM_BULLET))
+, maNumBImageListRTL	  (SVX_RES(IL_NUM_BULLET_RTL))	//wj sym2_7380
+, maImgBackColorHigh	  (SVX_RES(IMG_BACK_COLOR_H))
+, maImgBackColor		  (SVX_RES(IMG_BACK_COLOR))
+, mpColorUpdater		  ()
+, maColor				  (COL_AUTO)
+, mbColorAvailable		  (sal_True)
+//Paragraph spacing
+, maFTUL                  (new FixedText(this, SVX_RES(FT_SPACING)))
+,maTbxUL_IncDecBackground(ControlFactory::CreateToolBoxBackground(this))
+, maTbxUL_IncDec          (ControlFactory::CreateToolBox(maTbxUL_IncDecBackground.get(),SVX_RES(TBX_UL_INC_DEC)))
+, maParInc                (SVX_RES(IMG_PARA_INC))
+, maParDec                (SVX_RES(IMG_PARA_DEC))
+, maTopDist				  (new SvxRelativeField(this, SVX_RES(MF_ABOVE_PARASPACING)))
+, maBottomDist            (new SvxRelativeField(this, SVX_RES(MF_BELOW_PARASPACING)))
+//Indent
+, maFTIndent              (new FixedText(this, SVX_RES(FT_INDENT)))
+,maTbxIndent_IncDecBackground(ControlFactory::CreateToolBoxBackground(this))
+, maTbxIndent_IncDec      (ControlFactory::CreateToolBox(maTbxIndent_IncDecBackground.get(),SVX_RES(TBX_INDENT_INC_DEC)))
+,maTbxProDemoteBackground(ControlFactory::CreateToolBoxBackground(this))
+, maTbxProDemote          (ControlFactory::CreateToolBox(maTbxProDemoteBackground.get(),SVX_RES(TBX_INDENT_PRO_DEMOTE)))
+, maLeftIndent			  (new SvxRelativeField(this, SVX_RES(MF_BEFORE_INDENT)))
+, maRightIndent			  (new SvxRelativeField(this, SVX_RES(MF_AFTER_INDENT)))
+, maFLineIndent			  (new SvxRelativeField(this, SVX_RES(MF_FL_INDENT)))
+, maIndInc                (SVX_RES(IMG_INDENT_INC))
+, maIndDec                (SVX_RES(IMG_INDENT_DEC))
+, maIndInc_BD             (SVX_RES(IMG_INDENT_INC_BD))
+, maIndDec_BD             (SVX_RES(IMG_INDENT_DEC_BD))
+, maIndHang				  (SVX_RES(IMG_INDENT_HANG))
+, maTxtLeft               (0)
+//Line spacing
+,maLineSPTbxBackground(ControlFactory::CreateToolBoxBackground(this))
+, maLineSPTbx             (ControlFactory::CreateToolBox(maLineSPTbxBackground.get(),SVX_RES(TBX_LINESP)))
+, maSpace1                (SVX_RES(IMG_SPACE1))
+, maSpace2                (SVX_RES(IMG_SPACE2))
+, maSpace3                (SVX_RES(IMG_SPACE3))
+, maIndent1               (SVX_RES(IMG_INDENT1))
+, maIndent2               (SVX_RES(IMG_INDENT2))
+, maIndent3               (SVX_RES(IMG_INDENT3))
+, maLineSpacePopup(this, ::boost::bind(&ParaPropertyPanel::CreateLineSpacingControl, this, _1))
+//Controller
+, maLeftAlignControl      (SID_ATTR_PARA_ADJUST_LEFT, *pBindings,*this)
+, maCenterAlignControl    (SID_ATTR_PARA_ADJUST_CENTER, *pBindings,*this)
+, maRightAlignControl     (SID_ATTR_PARA_ADJUST_RIGHT, *pBindings,*this)
+, maJustifyAlignControl   (SID_ATTR_PARA_ADJUST_BLOCK, *pBindings,*this)
+, maLRSpaceControl        (SID_ATTR_LRSPACE,*pBindings,*this)
+, maLNSpaceControl        (SID_ATTR_PARA_LINESPACE, *pBindings,*this)
+, maULSpaceControl        (SID_ATTR_ULSPACE, *pBindings,*this)
+, maOutLineLeftControl    (SID_OUTLINE_LEFT, *pBindings,*this)
+, maOutLineRightControl   (SID_OUTLINE_RIGHT, *pBindings,*this)
+, maIncIndentControl	  (SID_INC_INDENT, *pBindings,*this)
+, maDecIndentControl      (SID_DEC_INDENT, *pBindings,*this)
+, maVertTop				  (SID_TABLE_VERT_NONE, *pBindings,*this)
+, maVertCenter			  (SID_TABLE_VERT_CENTER, *pBindings,*this)
+, maVertBottom			  (SID_TABLE_VERT_BOTTOM,*pBindings,*this)
+, maBulletOnOff			  (FN_NUM_BULLET_ON, *pBindings,*this)
+, maNumberOnOff			  (FN_NUM_NUMBERING_ON, *pBindings,*this)
+//Modified for Numbering&Bullets Dialog UX Enh(Story 992) by chengjh,2011.7.5
+//Add entry to transfer number rule index data
+,maBulletNumRuleIndex		(FN_BUL_NUM_RULE_INDEX, *pBindings,*this)
+,maNumNumRuleIndex		(FN_NUM_NUM_RULE_INDEX, *pBindings,*this)
+//End
+, maBackColorControl      (SID_BACKGROUND_COLOR,	*pBindings,*this)
+, m_aMetricCtl			  (SID_ATTR_METRIC, *pBindings,*this)
+//, m_eMetricUnit			  (FUNIT_INCH)
+//, m_last_eMetricUnit      (FUNIT_INCH)
+//internal var
+, maUpper                       (0)
+, maLower                       (0)
+, mpLnSPItem					(NULL)
+, meLnSpState					(SFX_ITEM_DONTCARE)
+, maFISpace1                    ( this, SVX_RES( FI_SPACE1))
+, maFISpace2                    ( this, SVX_RES( FI_SPACE2))
+, maFIndent1                    ( this, SVX_RES( FI_INDENT1))
+, maFIndent2                    ( this, SVX_RES( FI_INDENT2))
+, maFIndent3                    ( this, SVX_RES( FI_INDENT3))
+, mbOutLineRight				(0)
+, mbOutLineLeft					(0)
+//Modified for Numbering&Bullets Dialog UX Enh(Story 992) by chengjh,2011.7.5
+//Add variable to record bullet/numbering type index data
+,nBulletTypeIndex (USHRT_MAX)
+,nNumTypeIndex (USHRT_MAX)
+//End
+,mpBindings(pBindings)
+{
+	initial();
+	FreeResource();	
+}
+
+}}

Propchange: openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.hrc
URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.hrc?rev=1459509&view=auto
==============================================================================
--- openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.hrc (added)
+++ openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.hrc Thu Mar 21 20:23:16 2013
@@ -0,0 +1,378 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+#include "svx/dialogs.hrc"
+
+#define BT_SUBSTLEFT                                 1     
+#define BT_SUBSTCENTER                               2                  
+#define BT_SUBSTRIGHT                                3    
+#define BT_SUBSTJUSTIFY                              4   
+#define BT_BTX_LINESP                                1
+#define BT_TBX_INDENT_INC                            1
+#define BT_TBX_INDENT_DEC                            2
+#define BT_TBX_UL_INC                                1
+#define BT_TBX_UL_DEC                                2
+#define ID_HANGING_INDENT							 3
+#define BT_TBX_INDENT_PROMOTE					     1
+#define BT_TBX_INDENT_DEMOTE					     2
+#define SD_HANGING_INDENT						     3
+#define MF_BEFORE_INDENT						     2
+#define MF_AFTER_INDENT						         4
+#define MF_FL_INDENT							     6
+#define TBX_HORIZONTALALIGNMENT                      5    
+#define IMG_LEFT_PARA                                7
+#define IMG_CENTER_PARA                              8 
+#define IMG_RIGHT_PARA                               9
+#define IMG_JUSTIFY_PARA                             10
+#define IMG_INDENT_INC                               11
+#define IMG_INDENT_DEC                               12
+#define IMG_PARA_INC                                 13
+#define IMG_PARA_DEC                                 14
+#define IMG_INDENT_HANG								 15
+#define FT_INDENT                                    16 
+#define TBX_INDENT_INC_DEC                           17
+#define FI_SPACE1								     18
+#define FI_SPACE2								     19
+#define FI_INDENT1								     20
+#define FI_INDENT2								     21
+#define FI_INDENT3								     22
+#define IMG_SPACE3							         23
+#define TBX_LINESP                                   25
+#define IMG_SPACE1                                   26
+#define IMG_INDENT1                                  27
+#define IMG_INDENT2                                  28
+#define IMG_SPACE2                                   29
+#define IMG_INDENT3                                  30
+#define FT_SPACING                                   31
+#define TBX_UL_INC_DEC                               33
+#define MF_ABOVE_PARASPACING						 32
+#define MF_BELOW_PARASPACING						 34
+#define TBX_INDENT_PRO_DEMOTE						 35
+#define TBX_VERT_ALIGN		40
+#define IL_VERT_ALIGN		41
+#define	ILH_VERT_ALIGN		42
+#define TBX_NUM_BULLET		44
+#define IL_NUM_BULLET		45
+#define ILH_NUM_BULLET		46
+#define FT_BACK_COLOR		47
+#define TBX_BACK_COLOR		48
+#define TBI_BACK_COLOR		49
+#define IMG_BACK_COLOR		50
+#define	IMG_BACK_COLOR_H	51
+#define IL_NUM_BULLET_RTL		52	//sym2_7380
+#define TBI_VERT_ALIGN_TOP	    60
+#define TBI_VERT_ALIGN_CENTER	61
+#define TBI_VERT_ALIGN_BOT	    62
+#define TBI_NUMBERING	        63
+#define TBI_BULLET	            64
+#define TBI_HOR_ALIGN_LEFT	    65
+#define TBI_HOR_ALIGN_CENTER	66
+#define TBI_HOR_ALIGN_RIGHT	    67
+#define TBI_HOR_ALIGN_JUSTIFY	68
+#define TBI_INDENT_INC		    69
+#define TBI_INDENT_DEC		    70
+#define TBI_UL_INC			    71
+#define TBI_UL_DEC			    72
+#define IMG_INDENT_INC_BD		73
+#define IMG_INDENT_DEC_BD		74
+
+//for vertical alignment
+#define IID_VERT_TOP		1
+#define IID_VERT_CENTER		2
+#define IID_VERT_BOTTOM		3
+
+//for numbering and bullett
+#define IID_BULLET			1
+#define IID_NUMBER			2
+//============================== popup bullet and numbering & back color =========================
+#define VS_VALUES			1
+#define IL_BULLET_BITMAPS	2
+#define CB_BULLET_MORE		4
+#define BMP_BULLET_MORE		5
+#define BMP_BULLET_MORE_H	6
+#define IMG_SEPERATOR_BULLET	7
+
+#define VS_NUMBERING		10
+#define CB_NUMBERING_MORE	12
+#define BMP_NUMERING_MORE	13
+#define BMP_NUMERING_MORE_H	14
+#define IMG_SEPERATOR_NUMBERING	15
+#define VS_FONT_COLOR		1
+#define STR_NOFILL			2
+
+//============================== line space popup page ==============================
+
+#define LB_LINE_SPACING                    1
+#define ED_SBINDE_LINEDISTPERCENT          2
+#define ED_SBINDE_LINEDISTPOINT	           3
+
+#define FT_CUSTOM                          14
+#define FT_LINE_SPACING                    15
+#define FT_OF                              16 
+#define IMG_SPACING1                       18
+#define IMG_SPACING115                     19
+#define IMG_SPACING15                      20
+#define IMG_SPACING2                       21
+#define IMG_SPACINGLCUSTOM                 22
+#define IMG_SEL_SPACING1                   23
+#define IMG_SEL_SPACING115                 24
+#define IMG_SEL_SPACING15                  25
+#define IMG_SEL_SPACING2                   26
+#define IMG_LPCUSTOMNOBORDER               27
+#define FI_CUSTOM_NOBORDER_LSPACE          28
+#define LINE_SPACING					   29
+#define STR_SPACING1					   30
+#define STR_SPACING115                     31
+#define STR_SPACING15                      32
+#define STR_SPACING2                       33
+#define IMG_CUSTOM					       34
+#define IMG_CUSTOM_GRAY				       35
+#define STR_LCVALUE						   36
+#define STR_LS_SINGLE					   37
+#define STR_LS_115					       38
+#define STR_LS_15					       39
+#define STR_LS_DOUBLE					   40
+#define STR_LSPACING					   41
+#define STR_LS_OF					       42
+
+//============================== Help ID ==============================
+#define HID_TBX_HORIZONTALALIGNMENT	"HID_TBX_HORIZONTALALIGNMENT" 
+#define HID_TBI_HOR_ALIGN_LEFT		"HID_TBI_HOR_ALIGN_LEFT" 
+#define HID_TBI_HOR_ALIGN_CENTER	"HID_TBI_HOR_ALIGN_CENTER"
+#define HID_TBI_HOR_ALIGN_RIGHT		"HID_TBI_HOR_ALIGN_RIGHT"
+#define HID_TBI_HOR_ALIGN_JUSTIFY	"HID_TBI_HOR_ALIGN_JUSTIFY"
+
+#define HID_TBX_VERT_ALIGN			"HID_TBX_VERT_ALIGN"
+#define HID_TBI_VERT_ALIGN_TOP		"HID_TBI_VERT_ALIGN_TOP"
+#define HID_TBI_VERT_ALIGN_CENTER	"HID_TBI_VERT_ALIGN_CENTER"
+#define HID_TBI_VERT_ALIGN_BOT		"HID_TBI_VERT_ALIGN_BOT"
+
+#define HID_TBX_INDENT "HID_TBX_INDENT" 
+#define HID_TBI_INDENT "HID_TBI_INDENT"
+//#define HID_TBX_LINESP 705263129 
+//#define HID_TBI_LINESP 705262617
+#define HID_TBX_GRSPACE "HID_TBX_GRSPACE"
+#define HID_TBI_GRSPACE "HID_TBI_GRSPACE"
+#define HID_TBX_BACK_COLOR	"HID_TBX_BACK_COLOR"
+#define HID_TBI_BACK_COLOR	"HID_TBI_BACK_COLOR"
+
+//#define HID_TBX_INDENT_INC_DEC 705263121
+//#define HID_TBI_INDENT_DEC 705262662
+//#define HID_TBI_INDENT_INC 705262661
+//#define HID_TBX_UL_INC_DEC 705263137
+//#define HID_TBI_UL_INC 705262663
+//#define HID_TBI_UL_DEC 705262664
+
+//#define HID_TBX_NUM_BULLET 705263148
+//#define HID_TBI_NUMBERING 705262655
+//#define HID_TBI_BULLET	705262656
+
+#define HID_POPUP_BULLET_CB_BULLET_MORE	"HID_POPUP_BULLET_CB_BULLET_MORE"
+#define HID_POPUP_BULLET_VS_VALUES		"HID_POPUP_BULLET_VS_VALUES"
+#define HID_POPUP_NUM_CB_NUMBERING_MORE "HID_POPUP_NUM_CB_NUMBERING_MORE"
+#define HID_POPUP_NUM_VS_NUMBERING		"HID_POPUP_NUM_VS_NUMBERING"
+
+#define HID_POPUP_INDENT_ED_INDENT_LEFTINDENT	"HID_POPUP_INDENT_ED_INDENT_LEFTINDENT"
+#define HID_POPUP_INDENT_ED_INDENT_RIGHTINDENT	"HID_POPUP_INDENT_ED_INDENT_RIGHTINDENT"
+#define HID_POPUP_INDENT_ED_INDENT_FLINDENT		"HID_POPUP_INDENT_ED_INDENT_FLINDENT"
+#define HID_POPUP_INDENT_TBX_INDENT_NONE	"HID_POPUP_INDENT_TBX_INDENT_NONE"
+#define HID_POPUP_INDENT_TBI_INDENT_NONE	"HID_POPUP_INDENT_TBI_INDENT_NONE"
+#define HID_POPUP_INDENT_TBX_INDENT_BEFORE1	"HID_POPUP_INDENT_TBX_INDENT_BEFORE1"
+#define HID_POPUP_INDENT_TBI_INDENT_BEFORE1	"HID_POPUP_INDENT_TBI_INDENT_BEFORE1"
+#define HID_POPUP_INDENT_TBX_INDENT_BEFORE2 "HID_POPUP_INDENT_TBX_INDENT_BEFORE2"
+#define HID_POPUP_INDENT_TBI_INDENT_BEFORE2 "HID_POPUP_INDENT_TBI_INDENT_BEFORE2"
+#define HID_POPUP_INDENT_TBX_INDENT_FLINE	"HID_POPUP_INDENT_TBX_INDENT_FLINE"
+#define HID_POPUP_INDENT_TBI_INDENT_FLINE	"HID_POPUP_INDENT_TBI_INDENT_FLINE"
+#define HID_POPUP_INDENT_TBX_INDENT_HANGING	"HID_POPUP_INDENT_TBX_INDENT_HANGING"
+#define HID_POPUP_INDENT_TBI_INDENT_HANGING "HID_POPUP_INDENT_TBI_INDENT_HANGING"
+#define HID_POPUP_INDENT_TBX_INDENT_LCUSTOM "HID_POPUP_INDENT_TBX_INDENT_LCUSTOM"
+#define HID_POPUP_INDENT_TBI_INDENT_LCUSTOM "HID_POPUP_INDENT_TBI_INDENT_LCUSTOM"
+
+#define HID_POPUP_LS_LB_LINE_SPACING			"HID_POPUP_LS_LB_LINE_SPACING"
+#define HID_POPUP_LS_ED_SBINDE_LINEDISTPERCENT	"HID_POPUP_LS_ED_SBINDE_LINEDISTPERCENT"
+#define HID_POPUP_LS_ED_SBINDE_LINEDISTPOINT	 "HID_POPUP_LS_ED_SBINDE_LINEDISTPOINT"
+#define HID_POPUP_LS_TBX_LINESP_1				"HID_POPUP_LS_TBX_LINESP_1"
+#define HID_POPUP_LS_TBI_LINESP_1				"HID_POPUP_LS_TBI_LINESP_1"
+#define HID_POPUP_LS_TBX_LINESP_15				"HID_POPUP_LS_TBX_LINESP_15"
+#define HID_POPUP_LS_TBI_LINESP_15				"HID_POPUP_LS_TBI_LINESP_15"
+#define HID_POPUP_LS_TBX_LINESP_2				"HID_POPUP_LS_TBX_LINESP_2"
+#define HID_POPUP_LS_TBI_LINESP_2				"HID_POPUP_LS_TBI_LINESP_2"
+#define HID_POPUP_LS_TBX_LINESP_115				"HID_POPUP_LS_TBX_LINESP_115"
+#define HID_POPUP_LS_TBI_LINESP_115				"HID_POPUP_LS_TBI_LINESP_115"
+#define HID_POPUP_LS_TBX_LINESP_LCUSTOM			"HID_POPUP_LS_TBX_LINESP_LCUSTOM"
+#define HID_POPUP_LS_TBI_LINESP_LCUSTOM			"HID_POPUP_LS_TBI_LINESP_LCUSTOM"
+
+#define HID_POPUP_PS_ED_SBINDE_TOPDIST		"HID_POPUP_PS_ED_SBINDE_TOPDIST"
+#define HID_POPUP_PS_ED_SBINDE_BOTTOMDIST	"HID_POPUP_PS_ED_SBINDE_BOTTOMDIST"
+#define HID_POPUP_PS_TBX_NORMAL				"HID_POPUP_PS_TBX_NORMAL"
+#define HID_POPUP_PS_TBI_NORMAL				"HID_POPUP_PS_TBI_NORMAL"
+#define HID_POPUP_PS_TBX_NARROW				"HID_POPUP_PS_TBX_NARROW"
+#define HID_POPUP_PS_TBI_NARROW				"HID_POPUP_PS_TBI_NARROW"
+#define HID_POPUP_PS_TBX_WIDE				"HID_POPUP_PS_TBX_WIDE"
+#define HID_POPUP_PS_TBI_WIDE				"HID_POPUP_PS_TBI_WIDE"
+#define HID_POPUP_PS_TBX_LASTCUSTOM			"HID_POPUP_PS_TBX_LASTCUSTOM"
+#define HID_POPUP_PS_TBI_LASTCUSTOM			"HID_POPUP_PS_TBI_LASTCUSTOM"
+
+//============================== Property ==============================
+#define _FIXED_TEXT_HEIGHT          9
+#define _FIXED_TEXT_WIDTH           40
+#define CONTROL_HEIGHT		        15
+#define CONTROL_WIDTH		        45
+#define ALIGNMENT_TBX_HEIGHT        17
+#define ALIGNMENT_TBX_WIDTH         13
+#define LISTBOX_HEIGHT              80
+#define IMAGE_SIZE                  23
+#define POPUP_TOOLBOX_SIZE          32
+#define TOOLBOX_HEIGHT              22
+#define TOOLBOX_WIDTH               23
+#define TEXT_SPACING_VERTICAL       2
+#define BUTTON_SPACING              18
+//#define TOOLBOX_ITEM_HEIGHT			17
+#define VS_SPACING_WIDTH		    78
+
+//==============================Section page position==============================
+
+#define TBX_HORI_ALIGN_X	SECTIONPAGE_MARGIN_HORIZONTAL + TBX_OUT_BORDER_OFFSET_X/2
+#define TBX_HORI_ALIGN_Y	SECTIONPAGE_MARGIN_VERTICAL_TOP
+
+#define TBX_VERT_ALIGN_X	TBX_HORI_ALIGN_X + TBX_OUT_BORDER_OFFSET_X*2 + TOOLBOX_ITEM_WIDTH * 4 + CONTROL_SPACING_HORIZONTAL
+#define TBX_VERT_ALIGN_Y	TBX_HORI_ALIGN_Y
+
+#define TBX_NUM_BULLET_X	TBX_HORI_ALIGN_X
+#define TBX_NUM_BULLET_Y	TBX_HORI_ALIGN_Y + TOOLBOX_ITEM_HEIGHT + CONTROL_SPACING_VERTICAL - 1
+
+#define TBX_BACK_COLOR_X	TBX_HORI_ALIGN_X + TBX_OUT_BORDER_OFFSET_X*2 + TOOLBOX_ITEM_WIDTH * 3 + CONTROL_SPACING_HORIZONTAL
+#define TBX_BACK_COLOR_Y	TBX_NUM_BULLET_Y
+
+#define FT_PARA_SPACE_X		SECTIONPAGE_MARGIN_HORIZONTAL
+#define FT_PARA_SPACE_Y		TBX_NUM_BULLET_Y + TOOLBOX_ITEM_HEIGHT + CONTROL_SPACING_VERTICAL - 3
+#define FT_PARA_SPACE_Y2	TBX_HORI_ALIGN_Y + TOOLBOX_ITEM_HEIGHT + CONTROL_SPACING_VERTICAL - 2
+
+#define TBX_PARA_SPACE_INC_DEC_X	TBX_HORI_ALIGN_X
+#define TBX_PARA_SPACE_INC_DEC_Y	FT_PARA_SPACE_Y + TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL
+#define TBX_PARA_SPACE_INC_DEC_Y2	FT_PARA_SPACE_Y2 + TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL
+
+#define FT_PARA_INDENT_X	TBX_VERT_ALIGN_X
+#define FT_PARA_INDENT_Y	FT_PARA_SPACE_Y
+#define FT_PARA_INDENT_Y2	FT_PARA_SPACE_Y2
+
+#define TBX_PARA_INDENT_INC_DEC_X	TBX_VERT_ALIGN_X
+#define TBX_PARA_INDENT_INC_DEC_Y	TBX_PARA_SPACE_INC_DEC_Y
+#define TBX_PARA_INDENT_INC_DEC_Y2	TBX_PARA_SPACE_INC_DEC_Y2
+
+#define MBX_TOP_DIST_X		FT_PARA_SPACE_X + TOOLBOX_ITEM_WIDTH - 2
+#define MBX_TOP_DIST_Y		TBX_PARA_SPACE_INC_DEC_Y + TOOLBOX_ITEM_WIDTH + CONTROL_SPACING_VERTICAL + 4*TBX_OUT_BORDER_OFFSET_Y - 1
+#define MBX_TOP_DIST_Y2		TBX_PARA_SPACE_INC_DEC_Y2 + TOOLBOX_ITEM_WIDTH + CONTROL_SPACING_VERTICAL + 4*TBX_OUT_BORDER_OFFSET_Y - 1
+#define MBX_BOT_DIST_X		MBX_TOP_DIST_X
+#define MBX_BOT_DIST_Y		MBX_TOP_DIST_Y + MBOX_HEIGHT + CONTROL_SPACING_VERTICAL
+#define MBX_BOT_DIST_Y2		MBX_TOP_DIST_Y2 + MBOX_HEIGHT + CONTROL_SPACING_VERTICAL
+
+#define IMG_SPACE_X		    FT_PARA_SPACE_X - 7
+#define IMG_SPACE1_Y		MBX_TOP_DIST_Y  - 5
+#define IMG_SPACE2_Y		MBX_BOT_DIST_Y  - 5
+#define IMG_SPACE1_Y2		MBX_TOP_DIST_Y2  - 5
+#define IMG_SPACE2_Y2		MBX_BOT_DIST_Y2  - 5
+
+#define MBX_LEFT_DIST_X		FT_PARA_INDENT_X + TOOLBOX_ITEM_WIDTH -3
+#define MBX_LEFT_DIST_Y		MBX_TOP_DIST_Y
+#define MBX_LEFT_DIST_Y2	MBX_TOP_DIST_Y2
+#define MBX_RIGHT_DIST_X	MBX_LEFT_DIST_X
+#define MBX_RIGHT_DIST_Y	MBX_BOT_DIST_Y
+#define MBX_RIGHT_DIST_Y2	MBX_BOT_DIST_Y2
+#define MBX_FLINE_DIST_X	MBX_LEFT_DIST_X
+#define MBX_FLINE_DIST_Y	MBX_RIGHT_DIST_Y + MBOX_HEIGHT + CONTROL_SPACING_VERTICAL
+#define MBX_FLINE_DIST_Y2	MBX_RIGHT_DIST_Y2 + MBOX_HEIGHT + CONTROL_SPACING_VERTICAL
+
+#define IMG_INDENT_X		FT_PARA_INDENT_X - 8
+#define IMG_INDENT1_Y		MBX_LEFT_DIST_Y - 5
+#define IMG_INDENT2_Y		MBX_RIGHT_DIST_Y - 5
+#define IMG_INDENT3_Y		MBX_FLINE_DIST_Y - 5
+#define IMG_INDENT1_Y2		MBX_LEFT_DIST_Y2 - 5
+#define IMG_INDENT2_Y2		MBX_RIGHT_DIST_Y2- 5
+#define IMG_INDENT3_Y2		MBX_FLINE_DIST_Y2- 5
+
+#define TBX_LINE_SPACE_X	TBX_HORI_ALIGN_X
+#define TBX_LINE_SPACE_Y	MBX_FLINE_DIST_Y
+#define TBX_LINE_SPACE_Y2	MBX_FLINE_DIST_Y2
+
+#define PARA_SECTIONPAGE_HEIGHT		MBX_FLINE_DIST_Y + TOOLBOX_ITEM_HEIGHT + SECTIONPAGE_MARGIN_VERTICAL_BOT
+#define PARA_SECTIONPAGE_HEIGHT_2	MBX_FLINE_DIST_Y2 + TOOLBOX_ITEM_HEIGHT + SECTIONPAGE_MARGIN_VERTICAL_BOT
+
+#define LINE_X_WHITE		FT_PARA_INDENT_X - 5
+#define LINE_TOP_Y			FT_PARA_INDENT_Y + 1
+#define LINE_TOP_Y2			FT_PARA_INDENT_Y2 + 1
+#define LINE_BOT_Y			TBX_LINE_SPACE_Y + TOOLBOX_ITEM_HEIGHT - 1
+#define LINE_BOT_Y2			TBX_LINE_SPACE_Y2 + TOOLBOX_ITEM_HEIGHT - 1
+
+//==============================numbering and bullet==============================
+#define NB_MARGIN_VERTICAL		POPUPPANEL_MARGIN_VERTICAL
+#define NB_MARGIN_HORIZONTAL	POPUPPANEL_MARGIN_HORIZONTAL
+#define SPACING_VERTICAL_S3		    8
+//#define SPACING_VERTICAL_S1		12
+#define POPUPPANEL_MARGIN_NB   4
+
+#define NB_IMAGE_WIDTH		25
+#define NB_IMAGE_HEIGHT		25
+#define NB_IMAGE_SPACING	5
+
+#define BULLET_IMAGE_WIDTH		NB_IMAGE_WIDTH
+#define BULLET_IMAGE_HEIGHT		NB_IMAGE_HEIGHT
+#define BULLET_IMAGE_SPACING	NB_IMAGE_SPACING
+
+#define NUM_IMAGE_WIDTH		25
+#define NUM_IMAGE_HEIGHT	35
+#define NUM_IMAGE_SPACING	NB_IMAGE_SPACING
+
+#define FIXED_TEXT_HEIGHT        13
+#define FIXED_TEXT_WIDTH         80
+#define CUST_MORE_BUTTON_HEIGHT	 15
+
+#define VS_WIDTH_BULLET		BULLET_IMAGE_WIDTH*3+BULLET_IMAGE_SPACING*2
+#define VS_HEIGHT_BULLET	BULLET_IMAGE_HEIGHT*4+BULLET_IMAGE_SPACING*3
+#define VS_WIDTH_NUM		NUM_IMAGE_WIDTH*3+NB_IMAGE_SPACING*2
+#define VS_HEIGHT_NUM		NUM_IMAGE_HEIGHT*3+NB_IMAGE_SPACING*2
+
+#define POPUP_WIDTH_BULLET	VS_WIDTH_BULLET + POPUPPANEL_MARGIN_NB * 2
+#define POPUP_HEIGHT_BULLET	VS_HEIGHT_BULLET + POPUPPANEL_MARGIN_NB * 3 + CUST_MORE_BUTTON_HEIGHT
+#define POPUP_WIDTH_NUM		VS_WIDTH_NUM + POPUPPANEL_MARGIN_NB * 2
+#define POPUP_HEIGHT_NUM	VS_HEIGHT_NUM + POPUPPANEL_MARGIN_NB * 3 + CUST_MORE_BUTTON_HEIGHT
+
+#define CUST_MORE_BUTTON_X	1
+#define CUST_MORE_BUTTON_IMG_OFF_X		2	//NB_MARGIN_HORIZONTAL - CUST_MORE_BUTTON_X + OFFSET_X
+
+//==============================Line Spacing popup page=======================
+
+#define POPUP_PAGE_HEIGHT    POP_BORDER_Y + BD_HEIGHT + POPUPPANEL_MARGIN_NB + OFFSET_Y
+#define POP_FT_CUSTOM_X      POPUPPANEL_MARGIN_NB + OFFSET_X
+#define POP_FT_CUSTOM_Y      POPUPPANEL_MARGIN_SMALL * 2 + 17 * 5
+#define POP_BORDER_X         POPUPPANEL_MARGIN_NB + OFFSET_X + 1
+#define POP_BORDER_Y         POPUPPANEL_MARGIN_SMALL * 3 + 17 * 5 + TEXT_HEIGHT
+#define BD_WIDTH             VS_SPACING_WIDTH - 6
+#define BD_HEIGHT            TEXT_HEIGHT*2 + CONTROL_HEIGHT*2 + CONTROL_SPACING_VERTICAL*3 + TEXT_CONTROL_SPACING_VERTICAL*2 - 4
+
+#define FT_1_X               POP_BORDER_X + POPUPPANEL_MARGIN_LARGE
+#define FT_1_Y               POP_BORDER_Y + CONTROL_SPACING_VERTICAL
+#define EDIT_1_X             FT_1_X
+#define EDIT_1_Y             FT_1_Y + TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL
+#define FT_2_X               FT_1_X
+#define FT_2_Y               EDIT_1_Y + CONTROL_HEIGHT + CONTROL_SPACING_VERTICAL - 3
+#define EDIT_2_X             FT_1_X
+#define EDIT_2_Y             FT_2_Y + TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL
\ No newline at end of file

Propchange: openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.hrc
------------------------------------------------------------------------------
    svn:executable = *