Author: zhengfan Date: Tue Apr 2 15:47:46 2013 New Revision: 1463604 URL: http://svn.apache.org/r1463604 Log: i121794: For fix issues paragraph properties panel, for sidebar panel. by ZhengFan.
Modified: openoffice/branches/sidebar/main/sd/sdi/_drvwsh.sdi openoffice/branches/sidebar/main/sd/source/core/typemap.cxx openoffice/branches/sidebar/main/sd/source/ui/inc/DrawViewShell.hxx openoffice/branches/sidebar/main/sd/source/ui/view/drviews2.cxx openoffice/branches/sidebar/main/sd/source/ui/view/drviews3.cxx openoffice/branches/sidebar/main/sd/source/ui/view/drviews8.cxx openoffice/branches/sidebar/main/sd/source/ui/view/drviewsf.cxx openoffice/branches/sidebar/main/svx/inc/svx/nbdtmg.hxx openoffice/branches/sidebar/main/svx/inc/svx/nbdtmgfact.hxx openoffice/branches/sidebar/main/svx/sdi/svx.sdi openoffice/branches/sidebar/main/svx/source/sidebar/nbdtmg.cxx openoffice/branches/sidebar/main/svx/source/sidebar/nbdtmgfact.cxx openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx openoffice/branches/sidebar/main/sw/inc/editsh.hxx openoffice/branches/sidebar/main/sw/sdi/_textsh.sdi openoffice/branches/sidebar/main/sw/source/core/edit/ednumber.cxx openoffice/branches/sidebar/main/sw/source/ui/shells/frmsh.cxx openoffice/branches/sidebar/main/sw/source/ui/shells/textsh1.cxx openoffice/branches/sidebar/main/sw/source/ui/shells/txtnum.cxx openoffice/branches/sidebar/main/sw/source/ui/utlui/navipi.cxx Modified: openoffice/branches/sidebar/main/sd/sdi/_drvwsh.sdi URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/sdi/_drvwsh.sdi?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sd/sdi/_drvwsh.sdi (original) +++ openoffice/branches/sidebar/main/sd/sdi/_drvwsh.sdi Tue Apr 2 15:47:46 2013 @@ -699,6 +699,16 @@ interface DrawView ExecMethod = FuTemporary ; StateMethod = GetMenuState ; ] + FN_NUM_BULLET_ON + [ + ExecMethod = FuTemporary; + StateMethod = GetAttrState; + ] + FN_NUM_NUMBERING_ON + [ + ExecMethod = FuTemporary; + StateMethod = GetAttrState; + ] SID_OUTLINE_BULLET // ole : no, status : ? [ ExecMethod = FuTemporary ; @@ -713,6 +723,18 @@ interface DrawView [ ExecMethod = FuTemporary ; ] + FN_BUL_NUM_RULE_INDEX + [ + ExecMethod = FuTemporary; + StateMethod = GetAttrState; + Asynchron , Volatile , AutoUpdate ; + ] + FN_NUM_NUM_RULE_INDEX + [ + ExecMethod = FuTemporary; + StateMethod = GetAttrState; + Asynchron , Volatile , AutoUpdate ; + ] SID_ATTR_CHAR // ole : no, status : ? [ ExecMethod = FuPermanent ; @@ -2632,4 +2654,74 @@ interface DrawView ExecMethod = FuTable ; StateMethod = GetTableMenuState ; ] + SID_ATTR_CHAR_FONT + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_ATTR_CHAR_FONTHEIGHT + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_ATTR_CHAR_WEIGHT + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_ATTR_CHAR_POSTURE + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_ATTR_CHAR_UNDERLINE + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_ATTR_CHAR_SHADOWED + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_ATTR_CHAR_STRIKEOUT + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_ATTR_CHAR_COLOR + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_ATTR_CHAR_KERNING + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_SET_SUB_SCRIPT + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_SET_SUPER_SCRIPT + [ + ExecMethod = ExecChar ; + StateMethod = GetAttrState ; + ] + SID_TABLE_VERT_NONE + [ + ExecMethod = ExecutePropPanelAttr ; + StateMethod = GetStatePropPanelAttr ; + ] + SID_TABLE_VERT_CENTER + [ + ExecMethod = ExecutePropPanelAttr ; + StateMethod = GetStatePropPanelAttr ; + ] + SID_TABLE_VERT_BOTTOM + [ + ExecMethod = ExecutePropPanelAttr ; + StateMethod = GetStatePropPanelAttr ; + ] } Modified: openoffice/branches/sidebar/main/sd/source/core/typemap.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/core/typemap.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sd/source/core/typemap.cxx (original) +++ openoffice/branches/sidebar/main/sd/source/core/typemap.cxx Tue Apr 2 15:47:46 2013 @@ -38,6 +38,7 @@ #include <editeng/fontitem.hxx> #include <svl/poolitem.hxx> #include <editeng/tstpitem.hxx> +#include <editeng/kernitem.hxx> #include <editeng/lspcitem.hxx> #include <editeng/ulspitem.hxx> #include <editeng/lrspitem.hxx> Modified: openoffice/branches/sidebar/main/sd/source/ui/inc/DrawViewShell.hxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/inc/DrawViewShell.hxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sd/source/ui/inc/DrawViewShell.hxx (original) +++ openoffice/branches/sidebar/main/sd/source/ui/inc/DrawViewShell.hxx Tue Apr 2 15:47:46 2013 @@ -199,6 +199,9 @@ public: void ExecNavigatorWin(SfxRequest& rReq); void GetNavigatorWinState(SfxItemSet& rSet); + void ExecutePropPanelAttr (SfxRequest& rReq); + void GetStatePropPanelAttr(SfxItemSet& rSet); + void ExecEffectWin(SfxRequest& rReq); void Update3DWindow(); @@ -221,6 +224,8 @@ public: void AttrExec (SfxRequest& rReq); void AttrState (SfxItemSet& rSet); + void ExecChar(SfxRequest& rReq); + void ExecuteAnnotation (SfxRequest& rRequest); void GetAnnotationState (SfxItemSet& rItemSet); Modified: openoffice/branches/sidebar/main/sd/source/ui/view/drviews2.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/view/drviews2.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sd/source/ui/view/drviews2.cxx (original) +++ openoffice/branches/sidebar/main/sd/source/ui/view/drviews2.cxx Tue Apr 2 15:47:46 2013 @@ -63,6 +63,26 @@ #include <svx/xlnedwit.hxx> #include <svx/fontworkbar.hxx> +#include <editeng/escpitem.hxx> +#include <editeng/kernitem.hxx> +#include <editeng/wghtitem.hxx> +#include <editeng/postitem.hxx> +#include <editeng/udlnitem.hxx> +#include <editeng/crsditem.hxx> +#include <editeng/cntritem.hxx> +#include <editeng/shdditem.hxx> +#include <svx/xtable.hxx> +#include <svx/svdobj.hxx> +#include <editeng/outlobj.hxx> +#include <editeng/flstitem.hxx> +#include <editeng/scripttypeitem.hxx> +#include <editeng/fontitem.hxx> +#include <editeng/fhgtitem.hxx> +#include <editeng/colritem.hxx> +#include <editeng/brshitem.hxx> + +#include <svl/whiter.hxx> + #include <svx/svxdlg.hxx> #include <svx/dialogs.hrc> @@ -997,7 +1017,164 @@ void DrawViewShell::FuTemporary(SfxReque } } +void DrawViewShell::ExecChar( SfxRequest &rReq ) +{ + SdDrawDocument* pDoc = GetDoc(); + if (!pDoc || !mpDrawView) + return; + + SfxItemSet aEditAttr( pDoc->GetPool() ); + mpDrawView->GetAttributes( aEditAttr ); + + //modified by wj for sym2_1580, if put old itemset into new set, + //when mpDrawView->SetAttributes(aNewAttr) it will invalidate all the item + // and use old attr to update all the attributes +// SfxItemSet aNewAttr( GetPool(), +// EE_ITEMS_START, EE_ITEMS_END ); +// aNewAttr.Put( aEditAttr, sal_False ); + SfxItemSet aNewAttr( pDoc->GetPool() ); + //modified end + + sal_uInt16 nSId = rReq.GetSlot(); + + MapSlot( nSId ); + + switch ( nSId ) + { + case SID_ATTR_CHAR_FONT: + if( rReq.GetArgs() ) + { + SFX_REQUEST_ARG( rReq, pItem, SvxFontItem, SID_ATTR_CHAR_FONT , sal_False ); + if (pItem) + { + aNewAttr.Put(*pItem); + } + } + break; + case SID_ATTR_CHAR_FONTHEIGHT: + if( rReq.GetArgs() ) + { + SFX_REQUEST_ARG( rReq, pItem, SvxFontHeightItem, SID_ATTR_CHAR_FONTHEIGHT , sal_False ); + if (pItem) + { + aNewAttr.Put(*pItem); + } + } + break; + case SID_ATTR_CHAR_WEIGHT: + if( rReq.GetArgs() ) + { + //const SvxWeightItem *pItem = (const SvxWeightItem*) rReq.GetArg( SID_ATTR_CHAR_WEIGHT, sal_False, TYPE(SvxWeightItem) ); + SFX_REQUEST_ARG( rReq, pItem, SvxWeightItem, SID_ATTR_CHAR_WEIGHT , sal_False ); + if (pItem) + { + aNewAttr.Put(*pItem); + } + } + break; + case SID_ATTR_CHAR_POSTURE: + if( rReq.GetArgs() ) + { + //const SvxPostureItem *pItem = (const SvxPostureItem*) rReq.GetArg( SID_ATTR_CHAR_POSTURE, sal_False, TYPE(SvxPostureItem) ); + SFX_REQUEST_ARG( rReq, pItem, SvxPostureItem, SID_ATTR_CHAR_POSTURE , sal_False ); + if (pItem) + { + aNewAttr.Put(*pItem); + } + } + break; + case SID_ATTR_CHAR_UNDERLINE: + if( rReq.GetArgs() ) + { + //<<modify by wj for sym2_1873 + //SFX_REQUEST_ARG( rReq, pItem, SvxTextLineItem, SID_ATTR_CHAR_UNDERLINE , sal_False ); + SFX_REQUEST_ARG( rReq, pItem, SvxUnderlineItem, SID_ATTR_CHAR_UNDERLINE , sal_False ); + //end>> + if (pItem) + { + aNewAttr.Put(*pItem); + } + else + { + FontUnderline eFU = ( (const SvxUnderlineItem&) aEditAttr.Get( EE_CHAR_UNDERLINE ) ).GetLineStyle(); + aNewAttr.Put( SvxUnderlineItem( eFU != UNDERLINE_NONE ?UNDERLINE_NONE : UNDERLINE_SINGLE, EE_CHAR_UNDERLINE ) ); + }//aNewAttr.Put( (const SvxUnderlineItem&)aEditAttr.Get( EE_CHAR_UNDERLINE ) ); + } + break; + case SID_ATTR_CHAR_SHADOWED: + if( rReq.GetArgs() ) + { + SFX_REQUEST_ARG( rReq, pItem, SvxShadowedItem, SID_ATTR_CHAR_SHADOWED , sal_False ); + if (pItem) + { + aNewAttr.Put(*pItem); + } + } + break; + case SID_ATTR_CHAR_STRIKEOUT: + if( rReq.GetArgs() ) + { + SFX_REQUEST_ARG( rReq, pItem, SvxCrossedOutItem, SID_ATTR_CHAR_STRIKEOUT , sal_False ); + if (pItem) + { + aNewAttr.Put(*pItem); + } + } + break; + case SID_ATTR_CHAR_COLOR: + if( rReq.GetArgs() ) + { + SFX_REQUEST_ARG( rReq, pItem, SvxColorItem, SID_ATTR_CHAR_COLOR , sal_False ); + if (pItem) + { + aNewAttr.Put(*pItem); + } + } + break; + case SID_ATTR_CHAR_KERNING: + if( rReq.GetArgs() ) + { + SFX_REQUEST_ARG( rReq, pItem, SvxKerningItem, SID_ATTR_CHAR_KERNING , sal_False ); + if (pItem) + { + aNewAttr.Put(*pItem); + } + } + break; + case SID_SET_SUB_SCRIPT: + if( rReq.GetArgs() ) + { + SvxEscapementItem aItem( EE_CHAR_ESCAPEMENT ); + SvxEscapement eEsc = (SvxEscapement ) ( (const SvxEscapementItem&) + aEditAttr.Get( EE_CHAR_ESCAPEMENT ) ).GetEnumValue(); + if( eEsc == SVX_ESCAPEMENT_SUBSCRIPT ) + aItem.SetEscapement( SVX_ESCAPEMENT_OFF ); + else + aItem.SetEscapement( SVX_ESCAPEMENT_SUBSCRIPT ); + aNewAttr.Put( aItem ); + } + break; + case SID_SET_SUPER_SCRIPT: + if( rReq.GetArgs() ) + { + SvxEscapementItem aItem( EE_CHAR_ESCAPEMENT ); + SvxEscapement eEsc = (SvxEscapement ) ( (const SvxEscapementItem&) + aEditAttr.Get( EE_CHAR_ESCAPEMENT ) ).GetEnumValue(); + if( eEsc == SVX_ESCAPEMENT_SUPERSCRIPT ) + aItem.SetEscapement( SVX_ESCAPEMENT_OFF ); + else + aItem.SetEscapement( SVX_ESCAPEMENT_SUPERSCRIPT ); + aNewAttr.Put( aItem ); + } + break; + default: + ; + } + mpDrawView->SetAttributes(aNewAttr); + rReq.Done(); + Cancel(); +} /** This method consists basically of three parts: @@ -1023,4 +1200,86 @@ SdPage* DrawViewShell::CreateOrDuplicate return pNewPage; } +void DrawViewShell::ExecutePropPanelAttr (SfxRequest& rReq) +{ + if(SlideShow::IsRunning( GetViewShellBase() )) + return; + + SdDrawDocument* pDoc = GetDoc(); + if (!pDoc || !mpDrawView) + return; + + sal_uInt16 nSId = rReq.GetSlot(); + SfxItemSet aAttrs( pDoc->GetPool() ); + + switch ( nSId ) + { + case SID_TABLE_VERT_NONE: + case SID_TABLE_VERT_CENTER: + case SID_TABLE_VERT_BOTTOM: + SdrTextVertAdjust eTVA = SDRTEXTVERTADJUST_TOP; + if (nSId == SID_TABLE_VERT_CENTER) + eTVA = SDRTEXTVERTADJUST_CENTER; + else if (nSId == SID_TABLE_VERT_BOTTOM) + eTVA = SDRTEXTVERTADJUST_BOTTOM; + + aAttrs.Put( SdrTextVertAdjustItem(eTVA) ); + mpDrawView->SetAttributes(aAttrs); + + break; + } +} + +void DrawViewShell::GetStatePropPanelAttr(SfxItemSet& rSet) +{ + SfxWhichIter aIter( rSet ); + sal_uInt16 nWhich = aIter.FirstWhich(); + + SdDrawDocument* pDoc = GetDoc(); + if (!pDoc || !mpDrawView) + return; + + SfxItemSet aAttrs( pDoc->GetPool() ); + mpDrawView->GetAttributes( aAttrs ); + + while ( nWhich ) + { + sal_uInt16 nSlotId = SfxItemPool::IsWhich(nWhich) + ? GetPool().GetSlotId(nWhich) + : nWhich; + switch ( nSlotId ) + { + case SID_TABLE_VERT_NONE: + case SID_TABLE_VERT_CENTER: + case SID_TABLE_VERT_BOTTOM: + sal_Bool bContour = sal_False; + SfxItemState eConState = aAttrs.GetItemState( SDRATTR_TEXT_CONTOURFRAME ); + if( eConState != SFX_ITEM_DONTCARE ) + { + bContour = ( ( const SdrTextContourFrameItem& )aAttrs.Get( SDRATTR_TEXT_CONTOURFRAME ) ).GetValue(); + } + if (bContour) break; + + SfxItemState eVState = aAttrs.GetItemState( SDRATTR_TEXT_VERTADJUST ); + //SfxItemState eHState = aAttrs.GetItemState( SDRATTR_TEXT_HORZADJUST ); + + //if(SFX_ITEM_DONTCARE != eVState && SFX_ITEM_DONTCARE != eHState) + if(SFX_ITEM_DONTCARE != eVState) + { + SdrTextVertAdjust eTVA = (SdrTextVertAdjust)((const SdrTextVertAdjustItem&)aAttrs.Get(SDRATTR_TEXT_VERTADJUST)).GetValue(); + sal_Bool bSet = nSlotId == SID_TABLE_VERT_NONE && eTVA == SDRTEXTVERTADJUST_TOP|| + nSlotId == SID_TABLE_VERT_CENTER && eTVA == SDRTEXTVERTADJUST_CENTER || + nSlotId == SID_TABLE_VERT_BOTTOM && eTVA == SDRTEXTVERTADJUST_BOTTOM; + rSet.Put(SfxBoolItem(nSlotId, bSet)); + } + else + { + rSet.Put(SfxBoolItem(nSlotId, sal_False)); + } + break; + } + nWhich = aIter.NextWhich(); + } +} + } // end of namespace sd Modified: openoffice/branches/sidebar/main/sd/source/ui/view/drviews3.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/view/drviews3.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sd/source/ui/view/drviews3.cxx (original) +++ openoffice/branches/sidebar/main/sd/source/ui/view/drviews3.cxx Tue Apr 2 15:47:46 2013 @@ -711,24 +711,17 @@ void DrawViewShell::ExecRuler(SfxReques case SID_ATTR_PARA_LRSPACE: { - if( mpDrawView->IsTextEdit() ) - { - sal_uInt16 nId = SID_ATTR_PARA_LRSPACE; - const SvxLRSpaceItem& rItem = (const SvxLRSpaceItem&) - pArgs->Get( nId ); + sal_uInt16 nSlot = SID_ATTR_PARA_LRSPACE; + SvxLRSpaceItem aLRSpace = (const SvxLRSpaceItem&)pArgs->Get( + GetPool().GetWhich(nSlot)); - SfxItemSet aEditAttr( GetPool(), EE_PARA_LRSPACE, EE_PARA_LRSPACE ); + SfxItemSet aEditAttr( GetPool(), EE_PARA_LRSPACE, EE_PARA_LRSPACE ); + aLRSpace.SetWhich( EE_PARA_LRSPACE ); - nId = EE_PARA_LRSPACE; - SvxLRSpaceItem aLRSpaceItem( rItem.GetLeft(), - rItem.GetRight(), rItem.GetTxtLeft(), - rItem.GetTxtFirstLineOfst(), nId ); - aEditAttr.Put( aLRSpaceItem ); - mpDrawView->SetAttributes( aEditAttr ); + aEditAttr.Put( aLRSpace ); + mpDrawView->SetAttributes( aEditAttr ); - // #92557# Invalidate is missing here - Invalidate(SID_ATTR_PARA_LRSPACE); - } + Invalidate(SID_ATTR_PARA_LRSPACE); break; } case SID_ATTR_LRSPACE: Modified: openoffice/branches/sidebar/main/sd/source/ui/view/drviews8.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/view/drviews8.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sd/source/ui/view/drviews8.cxx (original) +++ openoffice/branches/sidebar/main/sd/source/ui/view/drviews8.cxx Tue Apr 2 15:47:46 2013 @@ -132,6 +132,20 @@ void DrawViewShell::FuTemp01(SfxRequest& Cancel(); } break; + case FN_NUM_BULLET_ON: + { + // The value (sal_uInt16)0xFFFF means set bullet on/off. + SfxUInt16Item aItem(FN_SVX_SET_BULLET, (sal_uInt16)0xFFFF); + GetViewFrame()->GetDispatcher()->Execute( FN_SVX_SET_BULLET, SFX_CALLMODE_RECORD, &aItem, 0L ); + } + break; + case FN_NUM_NUMBERING_ON: + { + // The value (sal_uInt16)0xFFFF means set bullet on/off. + SfxUInt16Item aItem(FN_SVX_SET_NUMBER, (sal_uInt16)0xFFFF); + GetViewFrame()->GetDispatcher()->Execute( FN_SVX_SET_NUMBER, SFX_CALLMODE_RECORD, &aItem, 0L ); + } + break; case SID_OUTLINE_BULLET: case FN_SVX_SET_BULLET: Modified: openoffice/branches/sidebar/main/sd/source/ui/view/drviewsf.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/view/drviewsf.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sd/source/ui/view/drviewsf.cxx (original) +++ openoffice/branches/sidebar/main/sd/source/ui/view/drviewsf.cxx Tue Apr 2 15:47:46 2013 @@ -506,6 +506,118 @@ void DrawViewShell::GetAttrState( SfxIte } } break; + case FN_BUL_NUM_RULE_INDEX: + case FN_NUM_NUM_RULE_INDEX: + { + SfxItemSet aEditAttr( GetDoc()->GetPool() ); + mpDrawView->GetAttributes( aEditAttr ); + + SfxItemSet aNewAttr( GetPool(), EE_ITEMS_START, EE_ITEMS_END ); + aNewAttr.Put( aEditAttr, sal_False ); + + + sal_uInt16 nActNumLvl = (sal_uInt16)0xFFFF; + SvxNumRule* pNumRule = NULL; + const SfxPoolItem* pTmpItem=NULL; + sal_uInt16 nNumItemId = SID_ATTR_NUMBERING_RULE; + + //if(SFX_ITEM_SET == aNewAttr.GetItemState(SID_PARAM_CUR_NUM_LEVEL, sal_False, &pTmpItem)) + // nActNumLvl = ((const SfxUInt16Item*)pTmpItem)->GetValue(); + rSet.Put(SfxUInt16Item(FN_NUM_NUM_RULE_INDEX,DEFAULT_NONE)); + rSet.Put(SfxUInt16Item(FN_BUL_NUM_RULE_INDEX,DEFAULT_NONE)); + nActNumLvl = mpDrawView->GetSelectionLevel(); + pTmpItem=GetNumBulletItem(aNewAttr, nNumItemId); + + if (pTmpItem) + pNumRule = new SvxNumRule(*((SvxNumBulletItem*)pTmpItem)->GetNumRule()); + + if ( pNumRule ) + { + sal_uInt16 nMask = 1; + sal_uInt16 nCount = 0; + sal_uInt16 nCurLevel = (sal_uInt16)0xFFFF; + for(sal_uInt16 i = 0; i < pNumRule->GetLevelCount(); i++) + { + if(nActNumLvl & nMask) + { + nCount++; + nCurLevel = i; + } + nMask <<= 1; + } + if ( nCount == 1 ) + { + sal_Bool bBullets = sal_False; + const SvxNumberFormat* pNumFmt = pNumRule->Get(nCurLevel); + if ( pNumFmt ) + { + switch(pNumFmt->GetNumberingType()) + { + case SVX_NUM_CHAR_SPECIAL: + case SVX_NUM_BITMAP: + bBullets = sal_True; + break; + + default: + bBullets = sal_False; + } + + rSet.Put(SfxUInt16Item(FN_BUL_NUM_RULE_INDEX,(sal_uInt16)0xFFFF)); + rSet.Put(SfxUInt16Item(FN_NUM_NUM_RULE_INDEX,(sal_uInt16)0xFFFF)); + if ( bBullets ) + { + NBOTypeMgrBase* pBullets = NBOutlineTypeMgrFact::CreateInstance(eNBOType::MIXBULLETS); + if ( pBullets ) + { + sal_uInt16 nBulIndex = pBullets->GetNBOIndexForNumRule(*pNumRule,nActNumLvl); + rSet.Put(SfxUInt16Item(FN_BUL_NUM_RULE_INDEX,nBulIndex)); + } + }else + { + NBOTypeMgrBase* pNumbering = NBOutlineTypeMgrFact::CreateInstance(eNBOType::NUMBERING); + if ( pNumbering ) + { + sal_uInt16 nBulIndex = pNumbering->GetNBOIndexForNumRule(*pNumRule,nActNumLvl); + rSet.Put(SfxUInt16Item(FN_NUM_NUM_RULE_INDEX,nBulIndex)); + } + } + } + } + } + } + break; + //End + // Added by Li Hui for story 179. + case FN_NUM_BULLET_ON: + case FN_NUM_NUMBERING_ON: + { + sal_Bool bEnable = sal_False; + const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); + const ULONG nMarkCount = rMarkList.GetMarkCount(); + for (ULONG nIndex = 0; nIndex < nMarkCount; nIndex++) + { + SdrTextObj* pTextObj = dynamic_cast< SdrTextObj* >(rMarkList.GetMark(nIndex)->GetMarkedSdrObj()); + if (pTextObj && pTextObj->GetObjInventor() == SdrInventor) + { + if (pTextObj->GetObjIdentifier() != OBJ_OLE2) + { + bEnable = sal_True; + break; + } + } + } + if (bEnable) + { + rSet.Put(SfxBoolItem(FN_NUM_BULLET_ON, sal_False)); + rSet.Put(SfxBoolItem(FN_NUM_NUMBERING_ON, sal_False)); + } + else + { + rSet.DisableItem(FN_NUM_BULLET_ON); + rSet.DisableItem(FN_NUM_NUMBERING_ON); + } + } + break; } nWhich = aIter.NextWhich(); } Modified: openoffice/branches/sidebar/main/svx/inc/svx/nbdtmg.hxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/inc/svx/nbdtmg.hxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/svx/inc/svx/nbdtmg.hxx (original) +++ openoffice/branches/sidebar/main/svx/inc/svx/nbdtmg.hxx Tue Apr 2 15:47:46 2013 @@ -1,45 +1,23 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +/************************************************************** * - * Copyright IBM Corporation 2009. - * Copyright 2009. by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: nbdtmg.hxx,v $ - * $Revision: 1.00.00.0 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -/*********************************************************************** - * - * Tool to Visualize Internal Data Structure for Productive Development - * It is a developer's tool from Lotus Symphony Documents Editor Team - * - * This file provides developers of OpenOffice.org a visualize tool for tracing - * the internal data structure and its parameters. - * - * Date: 05/25/2009 - * - ***********************************************************************/ + * 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. + * + *************************************************************/ #ifndef _NBDTMG_HXX #define _NBDTMG_HXX Modified: openoffice/branches/sidebar/main/svx/inc/svx/nbdtmgfact.hxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/inc/svx/nbdtmgfact.hxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/svx/inc/svx/nbdtmgfact.hxx (original) +++ openoffice/branches/sidebar/main/svx/inc/svx/nbdtmgfact.hxx Tue Apr 2 15:47:46 2013 @@ -1,45 +1,23 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +/************************************************************** * - * Copyright IBM Corporation 2009. - * Copyright 2009. by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: nbdtmgfact.hxx,v $ - * $Revision: 1.00.00.0 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -/******************************************************************************** - * - * Tool to Visualize Internal Data Structure for Productive Development - * It is a developer's tool from Lotus Symphony Documents Editor Team - * - * This file implements the base abstract exporter and 2 inherited sub-classes for - * the internal data structure tracer. - * - * Date: 05/25/2009 - * - ********************************************************************************/ + * 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. + * + *************************************************************/ #ifndef _NBDTMGFACT_HXX #define _NBDTMGFACT_HXX Modified: openoffice/branches/sidebar/main/svx/sdi/svx.sdi URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/sdi/svx.sdi?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/svx/sdi/svx.sdi (original) +++ openoffice/branches/sidebar/main/svx/sdi/svx.sdi Tue Apr 2 15:47:46 2013 @@ -6430,6 +6430,63 @@ SfxVoidItem DefaultNumbering FN_NUM_NUMB GroupId = GID_ENUMERATION; ] +SfxBoolItem CurrentBulNumRule FN_BUL_NUM_RULE_INDEX +(SfxUInt16Item On FN_PARAM_1) +[ + /* flags: */ + AutoUpdate = TRUE, + Cachable = Cachable, + FastCall = FALSE, + HasCoreId = FALSE, + HasDialog = FALSE, + ReadOnlyDoc = FALSE, + Toggle = TRUE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Synchron; + + ImageRotation = TRUE; + ImageReflection = TRUE; + /* status: */ + SlotType = SfxBoolItem + + /* config: */ + AccelConfig = TRUE, + MenuConfig = TRUE, + StatusBarConfig = FALSE, + ToolBoxConfig = TRUE, + GroupId = GID_ENUMERATION; +] +SfxBoolItem CurrentNumNumRule FN_NUM_NUM_RULE_INDEX +(SfxUInt16Item On FN_PARAM_1) +[ + /* flags: */ + AutoUpdate = TRUE, + Cachable = Cachable, + FastCall = FALSE, + HasCoreId = FALSE, + HasDialog = FALSE, + ReadOnlyDoc = FALSE, + Toggle = TRUE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Synchron; + + ImageRotation = TRUE; + ImageReflection = TRUE; + /* status: */ + SlotType = SfxBoolItem + + /* config: */ + AccelConfig = TRUE, + MenuConfig = TRUE, + StatusBarConfig = FALSE, + ToolBoxConfig = TRUE, + GroupId = GID_ENUMERATION; +] + //-------------------------------------------------------------------------- SfxVoidItem InsertObject SID_INSERT_OBJECT ( SfxGlobalNameItem ClassId SID_INSERT_OBJECT ) Modified: openoffice/branches/sidebar/main/svx/source/sidebar/nbdtmg.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/source/sidebar/nbdtmg.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/svx/source/sidebar/nbdtmg.cxx (original) +++ openoffice/branches/sidebar/main/svx/source/sidebar/nbdtmg.cxx Tue Apr 2 15:47:46 2013 @@ -1,45 +1,23 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +/************************************************************** * - * Copyright IBM Corporation 2009. - * Copyright 2009. by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: nbdtmg.cxx,v $ - * $Revision: 1.00.00.0 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -/*********************************************************************** - * - * Tool to Visualize Internal Data Structure for Productive Development - * It is a developer's tool from Lotus Symphony Documents Editor Team - * - * This file provides developers of OpenOffice.org a visualize tool for tracing - * the internal data structure and its parameters. - * - * Date: 05/25/2009 - * - ***********************************************************************/ + * 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" #ifndef _NBDTMG_HXX #include <svx/nbdtmg.hxx> @@ -94,7 +72,6 @@ #include <unotools/streamwrap.hxx> #include <unotools/ucbstreamhelper.hxx> #include <unotools/pathoptions.hxx> -//#include <svtools/pathoptions.hxx> #include <editeng/eeitem.hxx> #include <com/sun/star/text/HoriOrientation.hpp> @@ -131,7 +108,6 @@ typedef NumberSettings_Impl* NumberSetti SV_DECL_PTRARR_DEL(NumberSettingsArr_Impl,NumberSettings_ImplPtr,8,4) SV_IMPL_PTRARR( NumberSettingsArr_Impl, NumberSettings_ImplPtr ) -//extern Font& lcl_GetDefaultBulletFont(); Font& lcl_GetDefaultBulletFont() { static sal_Bool bInit = 0; @@ -234,12 +210,7 @@ void NBOTypeMgrBase::StoreBulCharFmtName if ( pSet ) { SfxAllItemSet aSet(*pSet); - //const SfxPoolItem* pItem; - SFX_ITEMSET_ARG(&aSet,pBulletCharFmt,SfxStringItem,SID_BULLET_CHAR_FMT,sal_False); - //if(SFX_ITEM_SET == pSet->GetItemState(SID_BULLET_CHAR_FMT, sal_False, &pItem)) - // pNumCharFmtName = new String(((const SfxStringItem*)pItem)->GetValue()); - - //const SfxStringItem* pBulletCharFmt = (const SfxStringItem*)(pSet->GetItem(SID_BULLET_CHAR_FMT)); + SFX_ITEMSET_ARG(&aSet,pBulletCharFmt,SfxStringItem,SID_BULLET_CHAR_FMT,sal_False); if ( pBulletCharFmt ) { @@ -254,7 +225,6 @@ String NBOTypeMgrBase::GetBulCharFmtName void NBOTypeMgrBase::ImplLoad(String filename) { bIsLoading = true; - //Sym3_2508 store size with stardard unit SfxMapUnit eOldCoreUnit=eCoreUnit; eCoreUnit = SFX_MAPUNIT_100TH_MM; INetURLObject aFile( SvtPathOptions().GetPalettePath() ); @@ -295,7 +265,6 @@ void NBOTypeMgrBase::ImplLoad(String fil void NBOTypeMgrBase::ImplStore(String filename) { if (bIsLoading) return; - //Sym3_2508 store size with stardard unit SfxMapUnit eOldCoreUnit=eCoreUnit; eCoreUnit = SFX_MAPUNIT_100TH_MM; INetURLObject aFile( SvtPathOptions().GetPalettePath() ); @@ -1138,7 +1107,6 @@ sal_Bool MixBulletsTypeMgr::RelplaceNumR const Font* pFont = aFmt.GetBulletFont(); BulletsSettings_Impl* pEntry = (BulletsSettings_Impl*) (pActualBullets[nIndex]->pBullets); pEntry->cBulletChar = cChar; - //Sym3_2884 provide a default font when pFont is NULL pEntry->aFont = pFont?*pFont:lcl_GetDefaultBulletFont(); pEntry->bIsCustomized = sal_True; String aStrFromRES = String(SVX_RESSTR( RID_SVXSTR_NUMBULLET_CUSTOM_BULLET_DESCRIPTION)); @@ -1182,7 +1150,6 @@ sal_Bool MixBulletsTypeMgr::RelplaceNumR //pEntry->pGrfObj = pGrf; pEntry->pGrfObj = new Graphic(*pGrf); pEntry->aSize = aFmt.GetGraphicSize(); - //Sym3_2508 use standard unit to store size pEntry->aSize = OutputDevice::LogicToLogic(pEntry->aSize,(MapUnit)GetMapUnit(),MAP_100TH_MM); sal_uInt16 nDIndex = mGrfTMgr->GetNBOIndexForNumRule(aNum,mLevel); if (nDIndex!=(sal_uInt16)0xFFFF) pEntry->aSize=Size(0,0); @@ -1206,7 +1173,6 @@ sal_Bool MixBulletsTypeMgr::RelplaceNumR pActualBullets[nIndex]->nIndex = nIndex+1; //index in the tab page display,decrease 1 to the index within arr pActualBullets[nIndex]->pBullets = new BulletsSettings_Impl(eNBType::BULLETS) ; ((BulletsSettings_Impl*)(pActualBullets[nIndex]->pBullets))->cBulletChar = cChar; - //Sym3_2884 provide a default font when pFont is NULL ((BulletsSettings_Impl*)(pActualBullets[nIndex]->pBullets))->aFont = pFont?*pFont:lcl_GetDefaultBulletFont(); ((BulletsSettings_Impl*)(pActualBullets[nIndex]->pBullets))->bIsCustomized = sal_True; ((BulletsSettings_Impl*)(pActualBullets[nIndex]->pBullets))->eType = eNBType::BULLETS; @@ -1269,7 +1235,6 @@ sal_Bool MixBulletsTypeMgr::RelplaceNumR //((GrfBulDataRelation*)(pActualBullets[nIndex]->pBullets))->pGrfObj = pGrf; ((GrfBulDataRelation*)(pActualBullets[nIndex]->pBullets))->pGrfObj = new Graphic(*pGrf); ((GrfBulDataRelation*)(pActualBullets[nIndex]->pBullets))->pGrfObj = new Graphic(*pGrf); - //Sym3_2508 use standard unit to store size Size aTmpSize = aFmt.GetGraphicSize(); aTmpSize = OutputDevice::LogicToLogic(aTmpSize,(MapUnit)GetMapUnit(),MAP_100TH_MM); sal_uInt16 nDIndex = mGrfTMgr->GetNBOIndexForNumRule(aNum,mLevel); @@ -1325,8 +1290,7 @@ sal_Bool MixBulletsTypeMgr::ApplyNumRule aFmt.SetNumberingType( SVX_NUM_CHAR_SPECIAL ); aFmt.SetBulletFont(&rActBulletFont); aFmt.SetBulletChar(cChar ); - aFmt.SetCharFmtName(sBulletCharFmtName); - //Sym3_2398 + aFmt.SetCharFmtName(sBulletCharFmtName); String aEmptyStr; aFmt.SetPrefix( aEmptyStr ); aFmt.SetSuffix( aEmptyStr ); @@ -1516,7 +1480,6 @@ void NumberingTypeMgr::Init() pNumEntry->nIndex = i + 1; pNumEntry->nIndexDefault = i; pNumEntry->pNumSetting = pNew; - //Modified for Sym2_7882 //SetItemText( i + 1, SVX_RESSTR( RID_SVXSTR_SINGLENUM_DESCRIPTIONS + i )); { String sText; @@ -2080,7 +2043,6 @@ sal_Bool OutlineTypeMgr::ApplyNumRule(Sv aFmt.SetCharFmtName(sBulletCharFmtName); if (isResetSize) aFmt.SetBulletRelSize(100); } - //Sym3_2636. Do not set indent values if no default value for this level if(pNumSettingsArr->Count() > i) { aFmt.SetLabelFollowedBy(pLevelSettings->eLabelFollowedBy); aFmt.SetListtabPos(pLevelSettings->nTabValue); Modified: openoffice/branches/sidebar/main/svx/source/sidebar/nbdtmgfact.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/source/sidebar/nbdtmgfact.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/svx/source/sidebar/nbdtmgfact.cxx (original) +++ openoffice/branches/sidebar/main/svx/source/sidebar/nbdtmgfact.cxx Tue Apr 2 15:47:46 2013 @@ -1,45 +1,23 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +/************************************************************** * - * Copyright IBM Corporation 2009. - * Copyright 2009. by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: nbdtmgfact.cxx,v $ - * $Revision: 1.00.00.0 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -/******************************************************************************** - * - * Tool to Visualize Internal Data Structure for Productive Development - * It is a developer's tool from Lotus Symphony Documents Editor Team - * - * This file implements the base abstract exporter and 2 inherited sub-classes for - * the internal data structure tracer. - * - * Date: 05/25/2009 - * - ********************************************************************************/ + * 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. + * + *************************************************************/ #ifndef _NBDTMGFACT_HXX #include <svx/nbdtmgfact.hxx> Modified: 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=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx (original) +++ openoffice/branches/sidebar/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx Tue Apr 2 15:47:46 2013 @@ -1324,9 +1324,9 @@ void ParaPropertyPanel::StateChangedInde maTbxIndent_IncDec->EnableItem(BT_TBX_INDENT_DEC, sal_True); } - maTbxProDemote->Enable(); - if( !mbOutLineRight && !mbOutLineLeft ) - maTbxProDemote->EnableItem(SD_HANGING_INDENT, 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 ) @@ -1342,7 +1342,7 @@ void ParaPropertyPanel::StateChangedInde else maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_False); - maTbxProDemote->Disable(); +// maTbxProDemote->Disable(); maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False); } else @@ -1356,7 +1356,7 @@ void ParaPropertyPanel::StateChangedInde maTbxIndent_IncDec->Disable(); else maTbxIndent_IncDec->EnableItem(ID_HANGING_INDENT, sal_False); - maTbxProDemote->Disable(); +// maTbxProDemote->Disable(); maTbxProDemote->EnableItem(SD_HANGING_INDENT, sal_False); } } @@ -1439,14 +1439,14 @@ void ParaPropertyPanel::StateChangeOutLi 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); +// 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 ) Modified: openoffice/branches/sidebar/main/sw/inc/editsh.hxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sw/inc/editsh.hxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sw/inc/editsh.hxx (original) +++ openoffice/branches/sidebar/main/sw/inc/editsh.hxx Tue Apr 2 15:47:46 2013 @@ -496,6 +496,9 @@ public: sal_Bool HasBullet() const; // <- i29560 + sal_Bool SelectionHasNumber() const; + sal_Bool SelectionHasBullet() const; + String GetUniqueNumRuleName( const String* pChkStr = 0, sal_Bool bAutoNum = sal_True ) const; void ChgNumRuleFmts( const SwNumRule& rRule ); // setze und erfrage, ob an aktueller PointPos eine Numerierung mit Modified: openoffice/branches/sidebar/main/sw/sdi/_textsh.sdi URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sw/sdi/_textsh.sdi?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sw/sdi/_textsh.sdi (original) +++ openoffice/branches/sidebar/main/sw/sdi/_textsh.sdi Tue Apr 2 15:47:46 2013 @@ -732,6 +732,18 @@ interface BaseText StateMethod = GetState ; DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; ] + FN_BUL_NUM_RULE_INDEX // status(final|play) + [ + ExecMethod = ExecEnterNum ; + StateMethod = GetState ; + DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; + ] + FN_NUM_NUM_RULE_INDEX // status(final|play) + [ + ExecMethod = ExecEnterNum ; + StateMethod = GetState ; + DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; + ] FN_NUMBER_BULLETS // status(final|play) [ ExecMethod = ExecEnterNum ; Modified: openoffice/branches/sidebar/main/sw/source/core/edit/ednumber.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sw/source/core/edit/ednumber.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sw/source/core/edit/ednumber.cxx (original) +++ openoffice/branches/sidebar/main/sw/source/core/edit/ednumber.cxx Tue Apr 2 15:47:46 2013 @@ -164,7 +164,88 @@ sal_Bool SwEditShell::NoNum() return bRet; } // Loeschen, Splitten der Aufzaehlungsliste +sal_Bool SwEditShell::SelectionHasNumber() const +{ + sal_Bool bResult = HasNumber(); + const SwTxtNode * pTxtNd = + GetCrsr()->GetPoint()->nNode.GetNode().GetTxtNode(); + if (!bResult && pTxtNd && pTxtNd->Len()==0 && !pTxtNd->GetNumRule()) { + SwPamRanges aRangeArr( *GetCrsr() ); + SwPaM aPam( *GetCrsr()->GetPoint() ); + for( sal_uInt16 n = 0; n < aRangeArr.Count(); ++n ) + { + aRangeArr.SetPam( n, aPam ); + { + sal_uInt32 nStt = aPam.GetPoint()->nNode.GetIndex(), + nEnd = aPam.GetMark()->nNode.GetIndex(); + if( nStt > nEnd ) + { + sal_uInt32 nTmp = nStt; nStt = nEnd; nEnd = nTmp; + } + for (sal_uInt32 nPos = nStt; nPos<=nEnd; nPos++) { + SwTxtNode * pTxtNd = pDoc->GetNodes()[nPos]->GetTxtNode(); + if (pTxtNd && pTxtNd->Len()!=0) + { + bResult = pTxtNd->HasNumber(); + + // --> OD 2005-10-26 #b6340308# + // special case: outline numbered, not counted paragraph + if ( bResult && + pTxtNd->GetNumRule() == GetDoc()->GetOutlineNumRule() && + !pTxtNd->IsCountedInList() ) + { + bResult = sal_False; + } + if (bResult==sal_False) { + break; + } + // <-- + } + } + } + } + + } + return bResult; +} +//Sym3_879 add a new function to determine number on/off status +sal_Bool SwEditShell::SelectionHasBullet() const +{ + sal_Bool bResult = HasBullet(); + const SwTxtNode * pTxtNd = + GetCrsr()->GetPoint()->nNode.GetNode().GetTxtNode(); + if (!bResult && pTxtNd && pTxtNd->Len()==0 && !pTxtNd->GetNumRule()) { + SwPamRanges aRangeArr( *GetCrsr() ); + SwPaM aPam( *GetCrsr()->GetPoint() ); + for( sal_uInt16 n = 0; n < aRangeArr.Count(); ++n ) + { + aRangeArr.SetPam( n, aPam ); + { + sal_uInt32 nStt = aPam.GetPoint()->nNode.GetIndex(), + nEnd = aPam.GetMark()->nNode.GetIndex(); + if( nStt > nEnd ) + { + sal_uInt32 nTmp = nStt; nStt = nEnd; nEnd = nTmp; + } + for (sal_uInt32 nPos = nStt; nPos<=nEnd; nPos++) { + SwTxtNode * pTxtNd = pDoc->GetNodes()[nPos]->GetTxtNode(); + if (pTxtNd && pTxtNd->Len()!=0) + { + bResult = pTxtNd->HasBullet(); + + if (bResult==sal_False) { + break; + } + } + } + } + } + + } + + return bResult; +} // -> #i29560# sal_Bool SwEditShell::HasNumber() const { Modified: openoffice/branches/sidebar/main/sw/source/ui/shells/frmsh.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sw/source/ui/shells/frmsh.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sw/source/ui/shells/frmsh.cxx (original) +++ openoffice/branches/sidebar/main/sw/source/ui/shells/frmsh.cxx Tue Apr 2 15:47:46 2013 @@ -391,13 +391,13 @@ void SwFrameShell::Execute(SfxRequest &r bool bApplyNewSize = false; Size aNewSize = aMgr.GetSize(); - if ( SFX_ITEM_SET == pArgs->GetItemState( SID_ATTR_TRANSFORM_WIDTH, FALSE, &pItem ) ) + if ( SFX_ITEM_SET == pArgs->GetItemState( SID_ATTR_TRANSFORM_WIDTH, sal_False, &pItem ) ) { aNewSize.setWidth( static_cast< const SfxUInt32Item* >(pItem)->GetValue() ); bApplyNewSize = true; } - if ( SFX_ITEM_SET == pArgs->GetItemState( SID_ATTR_TRANSFORM_HEIGHT, FALSE, &pItem ) ) + if ( SFX_ITEM_SET == pArgs->GetItemState( SID_ATTR_TRANSFORM_HEIGHT, sal_False, &pItem ) ) { aNewSize.setHeight( static_cast< const SfxUInt32Item* >(pItem)->GetValue() ); bApplyNewSize = true; Modified: openoffice/branches/sidebar/main/sw/source/ui/shells/textsh1.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sw/source/ui/shells/textsh1.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sw/source/ui/shells/textsh1.cxx (original) +++ openoffice/branches/sidebar/main/sw/source/ui/shells/textsh1.cxx Tue Apr 2 15:47:46 2013 @@ -126,7 +126,19 @@ #include <sfx2/objface.hxx> #include <langhelper.hxx> +#ifndef _NBDTMGFACT_HXX +#include <svx/nbdtmgfact.hxx> +#endif +#ifndef _NBDTMG_HXX +#include <svx/nbdtmg.hxx> +#endif + + +#include <numrule.hxx> + + using namespace ::com::sun::star; +using namespace svx::sidebar; void lcl_CharDialog( SwWrtShell &rWrtSh, sal_Bool bUseDialog, sal_uInt16 nSlot,const SfxItemSet *pArgs, SfxRequest *pReq ) @@ -1028,14 +1040,14 @@ void SwTextShell::Execute(SfxRequest &rR //SetNumRuleStart(sal_True) restarts the numbering at the value //that is defined at the starting point of the numbering level //otherwise the SetNodeNumStart() value determines the start - //if it's set to something different than USHRT_MAX + //if it's set to something different than (sal_uInt16)0xFFFF sal_Bool bStart = ((SfxBoolItem&)pSet->Get(FN_NUMBER_NEWSTART)).GetValue(); // --> OD 2007-06-11 #b6560525# - // Default value for restart value has to be USHRT_MAX + // Default value for restart value has to be (sal_uInt16)0xFFFF // in order to indicate that the restart value of the list // style has to be used on restart. - sal_uInt16 nNumStart = USHRT_MAX; + sal_uInt16 nNumStart = (sal_uInt16)0xFFFF; // <-- if( SFX_ITEM_SET == pSet->GetItemState(FN_NUMBER_NEWSTART_AT) ) { @@ -1682,6 +1694,51 @@ void SwTextShell::GetState( SfxItemSet & rSet.DisableItem(nWhich); } break; + case FN_NUM_NUMBERING_ON: + rSet.Put(SfxBoolItem(FN_NUM_NUMBERING_ON,rSh.SelectionHasNumber())); + break; + case FN_NUM_BULLET_ON: + rSet.Put(SfxBoolItem(FN_NUM_BULLET_ON,rSh.SelectionHasBullet())); + break; + case FN_BUL_NUM_RULE_INDEX: + case FN_NUM_NUM_RULE_INDEX: + { + SwNumRule* pCurRule = (SwNumRule*)(GetShell().GetCurNumRule()); + sal_uInt16 nActNumLvl = (sal_uInt16)0xFFFF; + rSet.Put(SfxUInt16Item(FN_NUM_NUM_RULE_INDEX,DEFAULT_NONE)); + rSet.Put(SfxUInt16Item(FN_BUL_NUM_RULE_INDEX,DEFAULT_NONE)); + if( pCurRule ) + { + nActNumLvl = GetShell().GetNumLevel(); + if( nActNumLvl < MAXLEVEL ) + { + nActNumLvl = 1<<nActNumLvl; + } + SvxNumRule aSvxRule = pCurRule->MakeSvxNumRule(); + if ( GetShell().HasBullet()) + { + rSet.Put(SfxUInt16Item(FN_BUL_NUM_RULE_INDEX,(sal_uInt16)0xFFFF)); + rSet.Put(SfxUInt16Item(FN_NUM_NUM_RULE_INDEX,(sal_uInt16)0xFFFF)); + NBOTypeMgrBase* pBullets = NBOutlineTypeMgrFact::CreateInstance(eNBOType::MIXBULLETS); + if ( pBullets ) + { + sal_uInt16 nBulIndex = pBullets->GetNBOIndexForNumRule(aSvxRule,nActNumLvl); + rSet.Put(SfxUInt16Item(FN_BUL_NUM_RULE_INDEX,nBulIndex)); + } + }else if ( GetShell().HasNumber() ) + { + rSet.Put(SfxUInt16Item(FN_BUL_NUM_RULE_INDEX,(sal_uInt16)0xFFFF)); + rSet.Put(SfxUInt16Item(FN_NUM_NUM_RULE_INDEX,(sal_uInt16)0xFFFF)); + NBOTypeMgrBase* pNumbering = NBOutlineTypeMgrFact::CreateInstance(eNBOType::NUMBERING); + if ( pNumbering ) + { + sal_uInt16 nBulIndex = pNumbering->GetNBOIndexForNumRule(aSvxRule,nActNumLvl); + rSet.Put(SfxUInt16Item(FN_NUM_NUM_RULE_INDEX,nBulIndex)); + } + } + } + } + break; case FN_NUM_CONTINUE: { // --> OD 2009-08-26 #i86492# @@ -1780,7 +1837,7 @@ void SwTextShell::ChangeHeaderOrFooter( if( !bCrsrSet && bOn ) bCrsrSet = rSh.SetCrsrInHdFt( - !rStyleName.Len() ? USHRT_MAX : nFrom, + !rStyleName.Len() ? (sal_uInt16)0xFFFF : nFrom, bHeader ); } } Modified: openoffice/branches/sidebar/main/sw/source/ui/shells/txtnum.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sw/source/ui/shells/txtnum.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sw/source/ui/shells/txtnum.cxx (original) +++ openoffice/branches/sidebar/main/sw/source/ui/shells/txtnum.cxx Tue Apr 2 15:47:46 2013 @@ -48,7 +48,8 @@ #include <sfx2/tabdlg.hxx> #include <svx/nbdtmg.hxx> #include <svx/nbdtmgfact.hxx> - +#include <sfx2/viewfrm.hxx> +#include <sfx2/bindings.hxx> using namespace svx::sidebar; void SwTextShell::ExecEnterNum(SfxRequest &rReq) @@ -58,40 +59,60 @@ void SwTextShell::ExecEnterNum(SfxReques { case FN_NUM_NUMBERING_ON: { - SFX_REQUEST_ARG( rReq, pItem, SfxBoolItem, FN_PARAM_1 , sal_False ); - sal_Bool bMode = !GetShell().HasNumber(); // #i29560# - if ( pItem ) - bMode = pItem->GetValue(); - else - rReq.AppendItem( SfxBoolItem( FN_PARAM_1, bMode ) ); - - if ( bMode != (GetShell().HasNumber()) ) // #i29560# - { - rReq.Done(); - if( bMode ) - GetShell().NumOn(); - else - GetShell().NumOrBulletOff(); // #i29560# - } + GetShell().StartAllAction(); + SFX_REQUEST_ARG( rReq, pItem, SfxBoolItem, FN_PARAM_1 , sal_False ); + sal_Bool bMode = !GetShell().SelectionHasNumber(); // #i29560# + if ( pItem ) + bMode = pItem->GetValue(); + else + rReq.AppendItem( SfxBoolItem( FN_PARAM_1, bMode ) ); + + if ( bMode != (GetShell().SelectionHasNumber()) ) // #i29560# + { + rReq.Done(); + if( bMode ) + GetShell().NumOn(); + else + GetShell().NumOrBulletOff(); // #i29560# + } + sal_Bool bNewResult = GetShell().SelectionHasNumber(); + if (bNewResult!=bMode) { + SfxBindings& rBindings = GetView().GetViewFrame()->GetBindings(); + SfxBoolItem aItem(FN_NUM_NUMBERING_ON,!bNewResult); + rBindings.SetState(aItem); + SfxBoolItem aNewItem(FN_NUM_NUMBERING_ON,bNewResult); + rBindings.SetState(aNewItem); + } + GetShell().EndAllAction(); } break; case FN_NUM_BULLET_ON: { - SFX_REQUEST_ARG( rReq, pItem, SfxBoolItem, FN_PARAM_1 , sal_False ); - sal_Bool bMode = !GetShell().HasBullet(); // #i29560# - if ( pItem ) - bMode = pItem->GetValue(); - else - rReq.AppendItem( SfxBoolItem( FN_PARAM_1, bMode ) ); - - if ( bMode != (GetShell().HasBullet()) ) // #i29560# - { - rReq.Done(); - if( bMode ) - GetShell().BulletOn(); - else - GetShell().NumOrBulletOff(); // #i29560# - } + GetShell().StartAllAction(); + SFX_REQUEST_ARG( rReq, pItem, SfxBoolItem, FN_PARAM_1 , sal_False ); + sal_Bool bMode = !GetShell().SelectionHasBullet(); // #i29560# + if ( pItem ) + bMode = pItem->GetValue(); + else + rReq.AppendItem( SfxBoolItem( FN_PARAM_1, bMode ) ); + + if ( bMode != (GetShell().SelectionHasBullet()) ) // #i29560# + { + rReq.Done(); + if( bMode ) + GetShell().BulletOn(); + else + GetShell().NumOrBulletOff(); // #i29560# + } + sal_Bool bNewResult = GetShell().SelectionHasBullet(); + if (bNewResult!=bMode) { + SfxBindings& rBindings = GetView().GetViewFrame()->GetBindings(); + SfxBoolItem aItem(FN_NUM_BULLET_ON,!bNewResult); + rBindings.SetState(aItem); + SfxBoolItem aNewItem(FN_NUM_BULLET_ON,bNewResult); + rBindings.SetState(aNewItem); + } + GetShell().EndAllAction(); } break; case FN_NUMBER_BULLETS: Modified: openoffice/branches/sidebar/main/sw/source/ui/utlui/navipi.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sw/source/ui/utlui/navipi.cxx?rev=1463604&r1=1463603&r2=1463604&view=diff ============================================================================== --- openoffice/branches/sidebar/main/sw/source/ui/utlui/navipi.cxx (original) +++ openoffice/branches/sidebar/main/sw/source/ui/utlui/navipi.cxx Tue Apr 2 15:47:46 2013 @@ -892,7 +892,7 @@ SwNavigationPI::SwNavigationPI( SfxBindi SV_DRAGDROP_ENABLE_TOP ); aContentTree.EnableAsyncDrag(sal_True); aContentTree.ShowTree(); - aContentToolBox.CheckItem(FN_SHOW_CONTENT_BOX, sal_True); + aContentToolBox.CheckItem(FN_SHOW_CONTENT_BOX, sal_True); // TreeListBox fuer Globaldokument aGlobalTree.SetPosSizePixel( 0, nListboxYPos, 0, 0, WINDOW_POSSIZE_Y );