summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/sdi/drwtxtsh.sdi16
-rw-r--r--sw/source/ui/shells/drwtxtex.cxx72
2 files changed, 84 insertions, 4 deletions
diff --git a/sw/sdi/drwtxtsh.sdi b/sw/sdi/drwtxtsh.sdi
index 7c4231a24a8b..9b2461b4c849 100644
--- a/sw/sdi/drwtxtsh.sdi
+++ b/sw/sdi/drwtxtsh.sdi
@@ -2,9 +2,9 @@
*
* $RCSfile: drwtxtsh.sdi,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: os $ $Date: 2002-09-10 13:06:51 $
+ * last change: $Author: os $ $Date: 2002-12-06 11:24:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -236,6 +236,18 @@ interface TextDrawText : Selection
StateMethod = GetState ;
DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
]
+ SID_ATTR_PARA_LEFT_TO_RIGHT
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
+ ]
+ SID_ATTR_PARA_RIGHT_TO_LEFT
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
+ ]
SID_TEXTDIRECTION_LEFT_TO_RIGHT
[
diff --git a/sw/source/ui/shells/drwtxtex.cxx b/sw/source/ui/shells/drwtxtex.cxx
index da024a5d3cd0..5f2582ff587b 100644
--- a/sw/source/ui/shells/drwtxtex.cxx
+++ b/sw/source/ui/shells/drwtxtex.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: drwtxtex.cxx,v $
*
- * $Revision: 1.18 $
+ * $Revision: 1.19 $
*
- * last change: $Author: fme $ $Date: 2002-11-07 09:45:16 $
+ * last change: $Author: os $ $Date: 2002-12-06 11:24:46 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -128,6 +128,9 @@
#ifndef _SVX_POSTITEM_HXX //autogen
#include <svx/postitem.hxx>
#endif
+#ifndef _SVX_FRMDIRITEM_HXX
+#include <svx/frmdiritem.hxx>
+#endif
#ifndef _SVDOUTL_HXX
#include <svx/svdoutl.hxx>
#endif
@@ -514,7 +517,49 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
}
return;
+ case SID_ATTR_PARA_LEFT_TO_RIGHT:
+ case SID_ATTR_PARA_RIGHT_TO_LEFT:
+ {
+ SdrObject* pTmpObj = pSdrView->GetMarkList().GetMark(0)->GetObj();
+ SdrPageView* pTmpPV = pSdrView->GetPageViewPvNum(0);
+ SdrView* pTmpView = pSdrView;
+
+ rSh.EndTextEdit();
+ sal_Bool bLeftToRight = nSlot == SID_ATTR_PARA_LEFT_TO_RIGHT;
+
+ const SfxPoolItem* pPoolItem;
+ if( SFX_ITEM_SET == pNewAttrs->GetItemState( nSlot, TRUE, &pPoolItem ) )
+ {
+ if( !( (SfxBoolItem*)pPoolItem)->GetValue() )
+ bLeftToRight = !bLeftToRight;
+ }
+ SfxItemSet aAttr( *aNewAttr.GetPool(),
+ EE_PARA_JUST, EE_PARA_JUST,
+ EE_PARA_WRITINGDIR, EE_PARA_WRITINGDIR,
+ 0 );
+
+ USHORT nAdjust = SVX_ADJUST_LEFT;
+ if( SFX_ITEM_ON == aEditAttr.GetItemState(EE_PARA_JUST, TRUE, &pPoolItem ) )
+ nAdjust = ( (SvxAdjustItem*)pPoolItem)->GetEnumValue();
+ if( bLeftToRight )
+ {
+ aAttr.Put( SvxFrameDirectionItem( FRMDIR_HORI_LEFT_TOP, EE_PARA_WRITINGDIR ) );
+ if( nAdjust == SVX_ADJUST_RIGHT )
+ aAttr.Put( SvxAdjustItem( SVX_ADJUST_LEFT, EE_PARA_JUST ) );
+ }
+ else
+ {
+ aAttr.Put( SvxFrameDirectionItem( FRMDIR_HORI_RIGHT_TOP, EE_PARA_WRITINGDIR ) );
+ if( nAdjust == SVX_ADJUST_LEFT )
+ aAttr.Put( SvxAdjustItem( SVX_ADJUST_RIGHT, EE_PARA_JUST ) );
+ }
+ pTmpView->SetAttributes( aAttr );
+ rSh.GetView().BeginTextEdit( pTmpObj, pTmpPV,
+ &rSh.GetView().GetEditWin(), FALSE );
+ rSh.GetView().AttrChangedNotify( &rSh );
+ }
+ return;
default:
ASSERT(!this, falscher Dispatcher);
return;
@@ -639,6 +684,29 @@ ASK_ESCAPE:
}
}
break;
+ case SID_ATTR_PARA_LEFT_TO_RIGHT:
+ case SID_ATTR_PARA_RIGHT_TO_LEFT:
+ {
+ if(pOutliner && pOutliner->IsVertical())
+ {
+ rSet.DisableItem( nWhich );
+ nSlotId = 0;
+ }
+ else
+ {
+ switch( ( ( (SvxFrameDirectionItem&) aEditAttr.Get( EE_PARA_WRITINGDIR ) ) ).GetValue() )
+ {
+ case FRMDIR_HORI_LEFT_TOP:
+ bFlag = nWhich == SID_ATTR_PARA_LEFT_TO_RIGHT;
+ break;
+
+ case FRMDIR_HORI_RIGHT_TOP:
+ bFlag = nWhich != SID_ATTR_PARA_LEFT_TO_RIGHT;
+ break;
+ }
+ }
+ }
+ break;
case SID_TRANSLITERATE_HALFWIDTH:
case SID_TRANSLITERATE_FULLWIDTH:
case SID_TRANSLITERATE_HIRAGANA: