summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2008-12-16 13:30:53 +0000
committerRüdiger Timm <rt@openoffice.org>2008-12-16 13:30:53 +0000
commit80ff83fc04c785abc22d6a14e0f71d5e9ab3e28c (patch)
treeb6fb2674b6a2bff77cf78c97aa82e00decaa4d58 /sw
parenta2c470025fe6cc4b711fdfe88976e829aef713ab (diff)
CWS-TOOLING: integrate CWS rtlcontrols
2008-12-11 21:08:49 +0100 fs r265367 : CONTEXT_WRITING_MODE is transient 2008-12-11 21:08:00 +0100 fs r265365 : REGISTER_PROP_3 2008-12-11 20:53:44 +0100 fs r265362 : ContextWritingMode is not MAYBEVOID 2008-12-11 15:29:08 +0100 fs r265315 : prevent a deadlock during complex.dbaccess.DatabaseDocument test 2008-12-11 15:01:13 +0100 fs r265304 : manual RESYNC to m37 2008-12-10 20:04:38 +0100 pl r265230 : #i30631# fix a snafu in mirroring 2008-12-10 19:14:45 +0100 pl r265229 : #i30631# rework PaintToDevice for RTL controls 2008-12-05 10:19:13 +0100 fs r264893 : #i10000# ImplInitSettings => ImplInitWindow (ImplInitSettings clashed with base classes ImplInitSettings on unxsols4) 2008-12-03 12:55:24 +0100 fs r264768 : #i100000# 2008-12-03 07:11:48 +0100 fs r264741 : #i10000# 2008-12-02 10:37:51 +0100 fs r264670 : CWS-TOOLING: rebase CWS rtlcontrols to trunk@264325 (milestone: DEV300:m36) 2008-12-02 09:27:50 +0100 fs r264660 : merge from trunk 2008-11-25 10:28:36 +0100 ama r264277 : Fix #i94572# 2008-11-24 11:46:48 +0100 fs r264218 : #i30631# proper context writing mode 2008-11-24 09:38:04 +0100 fs r264204 : #i30631# (approved by PL) 2008-11-24 09:35:47 +0100 fs r264203 : #i30631# Context/WritingMode 2008-11-24 09:33:36 +0100 fs r264202 : #i30631# Context/WritingMode 2008-11-24 09:31:53 +0100 fs r264200 : #i30631# RTL 2008-11-19 08:51:48 +0100 fs r263963 : #i10000# 2008-11-18 20:58:11 +0100 fs r263878 : #i10000# 2008-11-18 15:30:44 +0100 fs r263778 : migrate the CWS from CVS to SVN the CVS changes contained in this change set are the ones between the following two CVS tags: CWS_DEV300_RTLCONTROLS_ANCHOR CWS_DEV300_RTLCONTROLS_PRE_MIGRATION 2008-11-18 12:29:04 +0100 ama r263762 : Fix #i94572#: Context direction for drawing objects 2008-11-18 12:25:50 +0100 ama r263761 : Fix #i94572#: Context direction for drawing objects 2008-11-18 12:02:30 +0100 ama r263759 : Fix #i94572#: Context direction for drawing objects
Diffstat (limited to 'sw')
-rw-r--r--sw/inc/dcontact.hxx2
-rw-r--r--sw/source/core/draw/dcontact.cxx20
-rw-r--r--sw/source/core/layout/ssfrm.cxx1
3 files changed, 23 insertions, 0 deletions
diff --git a/sw/inc/dcontact.hxx b/sw/inc/dcontact.hxx
index ca2767b77a84..146f3f41225c 100644
--- a/sw/inc/dcontact.hxx
+++ b/sw/inc/dcontact.hxx
@@ -72,6 +72,8 @@ inline const SwFrmFmt *FindFrmFmt( const SdrObject *pObj )
{ return ::FindFrmFmt( (SdrObject*)pObj ); }
sal_Bool HasWrap( const SdrObject* pObj );
+void setContextWritingMode( SdrObject* pObj, SwFrm* pAnchor );
+
//Bei Aenderungen das Objekt aus dem ContourCache entfernen.
//Implementierung in TxtFly.Cxx
void ClrContourCache( const SdrObject *pObj );
diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx
index 1fa0fdc41851..cecab8acca79 100644
--- a/sw/source/core/draw/dcontact.cxx
+++ b/sw/source/core/draw/dcontact.cxx
@@ -90,6 +90,8 @@
#include <svx/sdr/contact/viewobjectcontactofsdrobj.hxx>
#endif
+#include <com/sun/star/text/WritingMode2.hpp>
+
using namespace ::com::sun::star;
@@ -97,6 +99,22 @@ TYPEINIT1( SwContact, SwClient )
TYPEINIT1( SwFlyDrawContact, SwContact )
TYPEINIT1( SwDrawContact, SwContact )
+void setContextWritingMode( SdrObject* pObj, SwFrm* pAnchor )
+{
+ if( pObj && pAnchor )
+ {
+ short nWritingDirection = text::WritingMode2::LR_TB;
+ if( pAnchor->IsVertical() )
+ {
+ nWritingDirection = text::WritingMode2::TB_RL;
+ } else if( pAnchor->IsRightToLeft() )
+ {
+ nWritingDirection = text::WritingMode2::RL_TB;
+ }
+ pObj->SetContextWritingMode( nWritingDirection );
+ }
+}
+
//Der Umgekehrte Weg: Sucht das Format zum angegebenen Objekt.
//Wenn das Object ein SwVirtFlyDrawObj ist so wird das Format von
@@ -246,6 +264,7 @@ void SwContact::MoveObjToVisibleLayer( SdrObject* _pDrawObj )
"<SwContact::MoveObjToInvisibleLayer(..)> - missing anchored object" );
if ( pAnchoredObj )
{
+ ::setContextWritingMode( _pDrawObj, pAnchoredObj->GetAnchorFrmContainingAnchPos() );
// Note: as-character anchored objects aren't registered at a page frame and
// a notification of its background isn't needed.
if ( pAnchoredObj->GetPageFrm() )
@@ -2056,6 +2075,7 @@ void SwDrawContact::ConnectToLayout( const SwFmtAnchor* pAnch )
}
if ( GetAnchorFrm() )
{
+ ::setContextWritingMode( maAnchoredDrawObj.DrawObj(), GetAnchorFrm() );
// OD 2004-04-01 #i26791# - invalidate objects instead of direct positioning
_InvalidateObjs();
}
diff --git a/sw/source/core/layout/ssfrm.cxx b/sw/source/core/layout/ssfrm.cxx
index 520a5945b9d9..1efe4c723e7b 100644
--- a/sw/source/core/layout/ssfrm.cxx
+++ b/sw/source/core/layout/ssfrm.cxx
@@ -309,6 +309,7 @@ void SwFrm::CheckDirChange()
// --> OD 2004-07-27 #i31698# - update layout direction of
// anchored object
{
+ ::setContextWritingMode( pAnchoredObj->DrawObj(), pAnchoredObj->GetAnchorFrmContainingAnchPos() );
pAnchoredObj->UpdateLayoutDir();
}
// <--