[Libreoffice-commits] core.git: Branch 'feature/table-style' - 3 commits - sw/inc sw/source
Rebased ref, commits from common ancestor: commit b3781d43adbc0c9701af80d393c302c9c2252ba2 Author: Alex Ivan alexni...@yahoo.com Date: Thu Sep 12 16:19:51 2013 +0300 Remove obsolete UpdateTo/FromSet methods These should have been removed some time ago, since they were not used any more. Seems they somehow escaped. Change-Id: I958de698f96a6c48e4cb41dc5226f96134d2886b diff --git a/sw/inc/tblafmt.hxx b/sw/inc/tblafmt.hxx index a4a330a..05de618 100644 --- a/sw/inc/tblafmt.hxx +++ b/sw/inc/tblafmt.hxx @@ -127,12 +127,6 @@ public: void SetName( const String rNew ) { m_pTableStyle-SetName( rNew ); nStrResId = USHRT_MAX; } const String GetName() const { return m_pTableStyle-GetName(); } -enum UpdateFlags { UPDATE_CHAR = 1, UPDATE_BOX = 2, UPDATE_ALL = 3 }; -void UpdateFromSet( sal_uInt8 nPos, const SfxItemSet rSet, -UpdateFlags eFlags, SvNumberFormatter* ); -void UpdateToSet( sal_uInt8 nPos, SfxItemSet rSet, UpdateFlags eFlags, -SvNumberFormatter* ) const ; - void RestoreTableProperties(SwTable table) const; void StoreTableProperties(const SwTable table); diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx index 426f0e6..2ff9b38 100644 --- a/sw/source/core/doc/tblafmt.cxx +++ b/sw/source/core/doc/tblafmt.cxx @@ -584,158 +584,6 @@ SwTableBoxFmt* SwTableAutoFmt::GetBoxFmt( sal_uInt8 nPos ) const return m_pTableStyle-GetBoxFmt( nPos ); } - -void SwTableAutoFmt::UpdateFromSet( sal_uInt8 nPos, -const SfxItemSet rSet, -UpdateFlags eFlags, -SvNumberFormatter* pNFmtr) -{ -OSL_ENSURE( nPos 16, wrong area ); - -SwTableBoxFmt* pFmt = GetBoxFmt( nPos ); - -if( UPDATE_CHAR eFlags ) -{ -pFmt-SetFont( (SvxFontItem)rSet.Get( RES_CHRATR_FONT ) ); -pFmt-SetHeight( (SvxFontHeightItem)rSet.Get( RES_CHRATR_FONTSIZE ) ); -pFmt-SetWeight( (SvxWeightItem)rSet.Get( RES_CHRATR_WEIGHT ) ); -pFmt-SetPosture( (SvxPostureItem)rSet.Get( RES_CHRATR_POSTURE ) ); -pFmt-SetCJKFont( (SvxFontItem)rSet.Get( RES_CHRATR_CJK_FONT ) ); -pFmt-SetCJKHeight( (SvxFontHeightItem)rSet.Get( RES_CHRATR_CJK_FONTSIZE ) ); -pFmt-SetCJKWeight( (SvxWeightItem)rSet.Get( RES_CHRATR_CJK_WEIGHT ) ); -pFmt-SetCJKPosture( (SvxPostureItem)rSet.Get( RES_CHRATR_CJK_POSTURE ) ); -pFmt-SetCTLFont( (SvxFontItem)rSet.Get( RES_CHRATR_CTL_FONT ) ); -pFmt-SetCTLHeight( (SvxFontHeightItem)rSet.Get( RES_CHRATR_CTL_FONTSIZE ) ); -pFmt-SetCTLWeight( (SvxWeightItem)rSet.Get( RES_CHRATR_CTL_WEIGHT ) ); -pFmt-SetCTLPosture( (SvxPostureItem)rSet.Get( RES_CHRATR_CTL_POSTURE ) ); -pFmt-SetUnderline( (SvxUnderlineItem)rSet.Get( RES_CHRATR_UNDERLINE ) ); -pFmt-SetOverline( (SvxOverlineItem)rSet.Get( RES_CHRATR_OVERLINE ) ); -pFmt-SetCrossedOut( (SvxCrossedOutItem)rSet.Get( RES_CHRATR_CROSSEDOUT ) ); -pFmt-SetContour( (SvxContourItem)rSet.Get( RES_CHRATR_CONTOUR ) ); -pFmt-SetShadowed( (SvxShadowedItem)rSet.Get( RES_CHRATR_SHADOWED ) ); -pFmt-SetColor( (SvxColorItem)rSet.Get( RES_CHRATR_COLOR ) ); -pFmt-SetAdjust( (SvxAdjustItem)rSet.Get( RES_PARATR_ADJUST ) ); -} -if( UPDATE_BOX eFlags ) -{ -pFmt-SetBox( (SvxBoxItem)rSet.Get( RES_BOX ) ); -// FIXME - add attribute IDs for the diagonal line items -//pFmt-SetTLBR( (SvxLineItem)rSet.Get( RES_... ) ); -//pFmt-SetBLTR( (SvxLineItem)rSet.Get( RES_... ) ); -pFmt-SetBackground( (SvxBrushItem)rSet.Get( RES_BACKGROUND ) ); -pFmt-SetTextOrientation(static_castconst SvxFrameDirectionItem(rSet.Get(RES_FRAMEDIR))); -pFmt-SetVerticalAlignment(static_castconst SwFmtVertOrient(rSet.Get(RES_VERT_ORIENT))); - -const SwTblBoxNumFormat* pNumFmtItem; -const SvNumberformat* pNumFormat = 0; -if( SFX_ITEM_SET == rSet.GetItemState( RES_BOXATR_FORMAT, sal_True, -(const SfxPoolItem**)pNumFmtItem ) pNFmtr -0 != (pNumFormat = pNFmtr-GetEntry( pNumFmtItem-GetValue() )) ) -pFmt-SetValueFormat( ((SvNumberformat*)pNumFormat)-GetFormatstring(), -pNumFormat-GetLanguage(), -::GetAppLanguage()); -else -{ -// default -pFmt-SetValueFormat( aEmptyStr, LANGUAGE_SYSTEM, - ::GetAppLanguage() ); -} -} - -// we cannot handle the rest, that's specific to StarCalc -} - - -void SwTableAutoFmt::UpdateToSet(sal_uInt8 nPos, SfxItemSet rSet, - UpdateFlags eFlags, SvNumberFormatter* pNFmtr) const -{ -const SwTableBoxFmt rChg = *GetBoxFmt( nPos ); - -if( UPDATE_CHAR eFlags ) -{ -if( IsFont() ) -{ -rSet.Put(
[Libreoffice-commits] core.git: Branch 'feature/table-style' - 3 commits - sw/inc sw/source
Rebased ref, commits from common ancestor: commit b3781d43adbc0c9701af80d393c302c9c2252ba2 Author: Alex Ivan alexni...@yahoo.com Date: Thu Sep 12 16:19:51 2013 +0300 Remove obsolete UpdateTo/FromSet methods These should have been removed some time ago, since they were not used any more. Seems they somehow escaped. Change-Id: I958de698f96a6c48e4cb41dc5226f96134d2886b diff --git a/sw/inc/tblafmt.hxx b/sw/inc/tblafmt.hxx index a4a330a..05de618 100644 --- a/sw/inc/tblafmt.hxx +++ b/sw/inc/tblafmt.hxx @@ -127,12 +127,6 @@ public: void SetName( const String rNew ) { m_pTableStyle-SetName( rNew ); nStrResId = USHRT_MAX; } const String GetName() const { return m_pTableStyle-GetName(); } -enum UpdateFlags { UPDATE_CHAR = 1, UPDATE_BOX = 2, UPDATE_ALL = 3 }; -void UpdateFromSet( sal_uInt8 nPos, const SfxItemSet rSet, -UpdateFlags eFlags, SvNumberFormatter* ); -void UpdateToSet( sal_uInt8 nPos, SfxItemSet rSet, UpdateFlags eFlags, -SvNumberFormatter* ) const ; - void RestoreTableProperties(SwTable table) const; void StoreTableProperties(const SwTable table); diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx index 426f0e6..2ff9b38 100644 --- a/sw/source/core/doc/tblafmt.cxx +++ b/sw/source/core/doc/tblafmt.cxx @@ -584,158 +584,6 @@ SwTableBoxFmt* SwTableAutoFmt::GetBoxFmt( sal_uInt8 nPos ) const return m_pTableStyle-GetBoxFmt( nPos ); } - -void SwTableAutoFmt::UpdateFromSet( sal_uInt8 nPos, -const SfxItemSet rSet, -UpdateFlags eFlags, -SvNumberFormatter* pNFmtr) -{ -OSL_ENSURE( nPos 16, wrong area ); - -SwTableBoxFmt* pFmt = GetBoxFmt( nPos ); - -if( UPDATE_CHAR eFlags ) -{ -pFmt-SetFont( (SvxFontItem)rSet.Get( RES_CHRATR_FONT ) ); -pFmt-SetHeight( (SvxFontHeightItem)rSet.Get( RES_CHRATR_FONTSIZE ) ); -pFmt-SetWeight( (SvxWeightItem)rSet.Get( RES_CHRATR_WEIGHT ) ); -pFmt-SetPosture( (SvxPostureItem)rSet.Get( RES_CHRATR_POSTURE ) ); -pFmt-SetCJKFont( (SvxFontItem)rSet.Get( RES_CHRATR_CJK_FONT ) ); -pFmt-SetCJKHeight( (SvxFontHeightItem)rSet.Get( RES_CHRATR_CJK_FONTSIZE ) ); -pFmt-SetCJKWeight( (SvxWeightItem)rSet.Get( RES_CHRATR_CJK_WEIGHT ) ); -pFmt-SetCJKPosture( (SvxPostureItem)rSet.Get( RES_CHRATR_CJK_POSTURE ) ); -pFmt-SetCTLFont( (SvxFontItem)rSet.Get( RES_CHRATR_CTL_FONT ) ); -pFmt-SetCTLHeight( (SvxFontHeightItem)rSet.Get( RES_CHRATR_CTL_FONTSIZE ) ); -pFmt-SetCTLWeight( (SvxWeightItem)rSet.Get( RES_CHRATR_CTL_WEIGHT ) ); -pFmt-SetCTLPosture( (SvxPostureItem)rSet.Get( RES_CHRATR_CTL_POSTURE ) ); -pFmt-SetUnderline( (SvxUnderlineItem)rSet.Get( RES_CHRATR_UNDERLINE ) ); -pFmt-SetOverline( (SvxOverlineItem)rSet.Get( RES_CHRATR_OVERLINE ) ); -pFmt-SetCrossedOut( (SvxCrossedOutItem)rSet.Get( RES_CHRATR_CROSSEDOUT ) ); -pFmt-SetContour( (SvxContourItem)rSet.Get( RES_CHRATR_CONTOUR ) ); -pFmt-SetShadowed( (SvxShadowedItem)rSet.Get( RES_CHRATR_SHADOWED ) ); -pFmt-SetColor( (SvxColorItem)rSet.Get( RES_CHRATR_COLOR ) ); -pFmt-SetAdjust( (SvxAdjustItem)rSet.Get( RES_PARATR_ADJUST ) ); -} -if( UPDATE_BOX eFlags ) -{ -pFmt-SetBox( (SvxBoxItem)rSet.Get( RES_BOX ) ); -// FIXME - add attribute IDs for the diagonal line items -//pFmt-SetTLBR( (SvxLineItem)rSet.Get( RES_... ) ); -//pFmt-SetBLTR( (SvxLineItem)rSet.Get( RES_... ) ); -pFmt-SetBackground( (SvxBrushItem)rSet.Get( RES_BACKGROUND ) ); -pFmt-SetTextOrientation(static_castconst SvxFrameDirectionItem(rSet.Get(RES_FRAMEDIR))); -pFmt-SetVerticalAlignment(static_castconst SwFmtVertOrient(rSet.Get(RES_VERT_ORIENT))); - -const SwTblBoxNumFormat* pNumFmtItem; -const SvNumberformat* pNumFormat = 0; -if( SFX_ITEM_SET == rSet.GetItemState( RES_BOXATR_FORMAT, sal_True, -(const SfxPoolItem**)pNumFmtItem ) pNFmtr -0 != (pNumFormat = pNFmtr-GetEntry( pNumFmtItem-GetValue() )) ) -pFmt-SetValueFormat( ((SvNumberformat*)pNumFormat)-GetFormatstring(), -pNumFormat-GetLanguage(), -::GetAppLanguage()); -else -{ -// default -pFmt-SetValueFormat( aEmptyStr, LANGUAGE_SYSTEM, - ::GetAppLanguage() ); -} -} - -// we cannot handle the rest, that's specific to StarCalc -} - - -void SwTableAutoFmt::UpdateToSet(sal_uInt8 nPos, SfxItemSet rSet, - UpdateFlags eFlags, SvNumberFormatter* pNFmtr) const -{ -const SwTableBoxFmt rChg = *GetBoxFmt( nPos ); - -if( UPDATE_CHAR eFlags ) -{ -if( IsFont() ) -{ -rSet.Put(
[Libreoffice-commits] core.git: Branch 'feature/table-style' - 3 commits - sw/inc sw/source
sw/inc/swtblfmt.hxx |9 + sw/source/core/doc/swtblfmt.cxx | 30 -- sw/source/core/docnode/ndtbl.cxx |9 +++-- 3 files changed, 28 insertions(+), 20 deletions(-) New commits: commit b17dad3335476d9631d0f504876810efd7d929e7 Author: Alex Ivan alexni...@yahoo.com Date: Mon Aug 5 14:15:04 2013 +0300 Fix column width in TextToTable Change-Id: Ibe6321e5c79a7b1081087b0ae7d24a22ca676c4c diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index 1cf3585..614800d 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -729,17 +729,14 @@ const SwTable* SwDoc::TextToTable( const SwInsertTableOptions rInsTblOpts, for( sal_uInt16 i = 0; i nCols; ++i ) { SwTableBox* pBox = rBoxes[ i ]; -bool bChgSz = false; sal_uInt8 nId = (i nCols - 1 ? 0 : 1) + (n ? 2 : 0 ); if( bUseBoxFmt ) ::lcl_SetDfltBoxAttr( *pBox, *aBoxFmtArr1, nId ); else { -bChgSz = 0 == (*aBoxFmtArr2)[ nId ]; pBoxF = new SwTableBoxFmt ( *::lcl_CreateDfltBoxFmt( *this, *aBoxFmtArr2, USHRT_MAX, nId ) ); -if( bChgSz ) -pBoxF-SetFmtAttr( pBox-GetFrmFmt()-GetFrmSize() ); +pBoxF-SetFmtAttr( pBox-GetFrmFmt()-GetFrmSize() ); pBox-ChgFrmFmt( pBoxF ); } } commit 873220ff9607f25e1b58073e881f7881a33e8f3c Author: Alex Ivan alexni...@yahoo.com Date: Mon Aug 5 12:19:52 2013 +0300 Fix borders on insert table Checking borders in Insert Table dialog will no longer prevent the borders of the table style from being correctly displayed. Change-Id: Ie9fd2ca19e7ba6355e2de6b9f8d7c954ca3a9c76 diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index 8b117c5..1cf3585 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -442,7 +442,7 @@ const SwTable* SwDoc::InsertTable( const SwInsertTableOptions rInsTblOpts, std::vectorSwTableBoxFmt* aBoxFmtArr; SwTableBoxFmt* pBoxFmt = 0; -if( !bDfltBorders ) +if( !bDfltBorders || pTAFmt ) { pBoxFmt = MakeTableBoxFmt(); pBoxFmt-SetFmtAttr( SwFmtFrmSize( ATT_VAR_SIZE, USHRT_MAX / nCols, 0 )); @@ -460,7 +460,7 @@ const SwTable* SwDoc::InsertTable( const SwInsertTableOptions rInsTblOpts, for( sal_uInt16 i = 0; i nCols; ++i ) { SwTableBoxFmt *pBoxF; -if( bDfltBorders ) +if( !pTAFmt bDfltBorders ) { sal_uInt8 nBoxId = (i nCols - 1 ? 0 : 1) + (n ? 2 : 0 ); pBoxF = new SwTableBoxFmt( *::lcl_CreateDfltBoxFmt( *this, aBoxFmtArr, nCols, nBoxId) ); commit 59e9d983b8fe4ccb3b752a615ab8d291602447af Author: Alex Ivan alexni...@yahoo.com Date: Mon Aug 5 11:54:04 2013 +0300 Some cleanup of the parent assigning Change-Id: If7b0e0a06e6ffa3a1739be1422548ff0c6460b4f diff --git a/sw/inc/swtblfmt.hxx b/sw/inc/swtblfmt.hxx index e61a0bb..51c279a 100644 --- a/sw/inc/swtblfmt.hxx +++ b/sw/inc/swtblfmt.hxx @@ -121,11 +121,12 @@ public: sal_Bool GetRowSplit() const; sal_uInt16 GetRepeatHeading() const; -static void RestoreTableProperties( SwTableFmt* pSrcFmt, SwTable table ); -static SwTableFmt* StoreTableProperties( const SwTable table ); +static void RestoreTableProperties( SwTableFmt* pSrcFmt, SwTable rTable ); +static SwTableFmt* StoreTableProperties( const SwTable rTable ); -static void AssignLineParents( SwTableFmt* pSrcFmt, SwTable table ); -static void AssignBoxParents( SwTableLineFmt* pSrcLineFmt, SwTableLine line ); +static void AssignFormatParents( SwTableFmt* pSrcFmt, SwTable rTable ); +static void AssignLineParents( SwTableFmt* pSrcFmt, SwTable rTable ); +static void AssignBoxParents( SwTableLineFmt* pSrcLineFmt, SwTableLine rLine ); static void AssignLineParents_Complex( SwTableLineFmt* pSrcLineFmt, SwTableBoxFmt* pSrcBoxFmt, SwTableBox rBox ); static void AssignBoxParents_Complex( SwTableLineFmt* pSrcLineFmt, SwTableBoxFmt* pSrcBoxFmt, SwTableLine rLine ); diff --git a/sw/source/core/doc/swtblfmt.cxx b/sw/source/core/doc/swtblfmt.cxx index 8c91b77..8a798f0 100644 --- a/sw/source/core/doc/swtblfmt.cxx +++ b/sw/source/core/doc/swtblfmt.cxx @@ -230,9 +230,9 @@ sal_uInt16 SwTableFmt::GetRepeatHeading() const return 0; } -void SwTableFmt::RestoreTableProperties( SwTableFmt* pSrcFmt, SwTable table ) +void SwTableFmt::RestoreTableProperties( SwTableFmt* pSrcFmt, SwTable rTable ) { -SwTableFmt *pHardFmt = table.GetTableFmt(); +SwTableFmt *pHardFmt = rTable.GetTableFmt(); if( !pHardFmt ) return; @@ -247,33 +247,43 @@ void SwTableFmt::RestoreTableProperties( SwTableFmt*
[Libreoffice-commits] core.git: Branch 'feature/table-style' - 3 commits - sw/inc sw/source
sw/inc/swtblfmt.hxx | 26 ++- sw/inc/tblafmt.hxx | 134 -- sw/source/core/bastyp/init.cxx |3 sw/source/core/doc/swtblfmt.cxx | 115 +++ sw/source/core/doc/tblafmt.cxx | 293 sw/source/ui/table/tautofmt.cxx | 11 - 6 files changed, 177 insertions(+), 405 deletions(-) New commits: commit 6668e83e1341112872c8e7f376534c6c76aac514 Author: Alex Ivan alexni...@yahoo.com Date: Thu Jul 4 14:01:17 2013 +0300 Remove SwAutoBoxFmt class from implementation SwAutoBoxFmt class has been completely removed from the current implementation. All the functionality has been moved to SwTableBoxFmt. Change-Id: I4d4486a7819c125cf5ef6785eb4af39fff3cf145 diff --git a/sw/inc/tblafmt.hxx b/sw/inc/tblafmt.hxx index 98f2132..a1e59b3 100644 --- a/sw/inc/tblafmt.hxx +++ b/sw/inc/tblafmt.hxx @@ -63,124 +63,6 @@ struct SwAfVersions; class SvNumberFormatter; -class SwBoxAutoFmt -{ -// common attributes of Calc and Writer -// --- from 641 on: CJK and CTL font settings -SvxFontItem aFont; -SvxFontHeightItem aHeight; -SvxWeightItem aWeight; -SvxPostureItem aPosture; - -SvxFontItem aCJKFont; -SvxFontHeightItem aCJKHeight; -SvxWeightItem aCJKWeight; -SvxPostureItem aCJKPosture; - -SvxFontItem aCTLFont; -SvxFontHeightItem aCTLHeight; -SvxWeightItem aCTLWeight; -SvxPostureItem aCTLPosture; - -SvxUnderlineItemaUnderline; -SvxOverlineItem aOverline; -SvxCrossedOutItem aCrossedOut; -SvxContourItem aContour; -SvxShadowedItem aShadowed; -SvxColorItemaColor; -SvxBoxItem aBox; -SvxLineItem aTLBR; -SvxLineItem aBLTR; -SvxBrushItemaBackground; - -// Writer specific -SvxAdjustItem aAdjust; -SvxFrameDirectionItem m_aTextOrientation; -SwFmtVertOrient m_aVerticalAlignment; - -// Calc specific -SvxHorJustifyItem aHorJustify; -SvxVerJustifyItem aVerJustify; -SfxBoolItem aStacked; -SvxMarginItem aMargin; -SfxBoolItem aLinebreak; -SfxInt32ItemaRotateAngle; -SvxRotateModeItem aRotateMode; - -// number format -String sNumFmtString; -LanguageTypeeSysLanguage, eNumFmtLanguage; - -public: -SwBoxAutoFmt(); -SwBoxAutoFmt( const SwBoxAutoFmt rNew ); -~SwBoxAutoFmt(); - -int operator==( const SwBoxAutoFmt rCmp ) const; -SwBoxAutoFmt operator=( const SwBoxAutoFmt rNew ); - -// The get-methods. -const SvxFontItem GetFont() const{ return aFont; } -const SvxFontHeightItem GetHeight() const { return aHeight; } -const SvxWeightItem GetWeight() const { return aWeight; } -const SvxPostureItemGetPosture() const { return aPosture; } -const SvxFontItem GetCJKFont() const { return aCJKFont; } -const SvxFontHeightItem GetCJKHeight() const { return aCJKHeight; } -const SvxWeightItem GetCJKWeight() const { return aCJKWeight; } -const SvxPostureItemGetCJKPosture() const { return aCJKPosture; } -const SvxFontItem GetCTLFont() const { return aCTLFont; } -const SvxFontHeightItem GetCTLHeight() const { return aCTLHeight; } -const SvxWeightItem GetCTLWeight() const { return aCTLWeight; } -const SvxPostureItemGetCTLPosture() const { return aCTLPosture; } -const SvxUnderlineItem GetUnderline() const { return aUnderline; } -const SvxOverlineItem GetOverline() const{ return aOverline; } -const SvxCrossedOutItem GetCrossedOut() const { return aCrossedOut; } -const SvxContourItemGetContour() const { return aContour; } -const SvxShadowedItem GetShadowed() const{ return aShadowed; } -const SvxColorItem GetColor() const { return aColor; } -const SvxAdjustItem GetAdjust() const { return aAdjust; } -const SvxFrameDirectionItem GetTextOrientation() const { return m_aTextOrientation; } -const SwFmtVertOrient GetVerticalAlignment() const { return m_aVerticalAlignment; } -const SvxBoxItemGetBox() const { return aBox; } -const SvxLineItem GetTLBR() const{ return aTLBR; } -const SvxLineItem GetBLTR() const{ return aBLTR; } -const SvxBrushItem GetBackground() const { return aBackground; } -void GetValueFormat( String rFmt, LanguageType rLng, LanguageType rSys ) const -{ rFmt = sNumFmtString; rLng = eNumFmtLanguage; rSys = eSysLanguage; } - -// The set-methods. -void SetFont( const SvxFontItem rNew ) { aFont = rNew; } -void SetHeight( const SvxFontHeightItem rNew ) { aHeight = rNew; } -void SetWeight( const SvxWeightItem rNew ) { aWeight = rNew; } -void SetPosture( const