Lines 775-782
Link Here
|
775 |
_bMirror = _bMirror && !pPage->OnRightPage(); |
775 |
_bMirror = _bMirror && !pPage->OnRightPage(); |
776 |
|
776 |
|
777 |
Point aPos; |
777 |
Point aPos; |
778 |
BOOL bVertic = FALSE; |
778 |
bool bVertic = false; |
779 |
BOOL bRTL = FALSE; |
779 |
BOOL bRTL = FALSE; |
|
|
780 |
// --> OD 2009-09-01 #mongolianlayout# |
781 |
bool bVerticalL2R = false; |
782 |
// <-- |
780 |
|
783 |
|
781 |
if( FLY_PAGE == _nAnchorId || FLY_AT_FLY == _nAnchorId ) // LAYER_IMPL |
784 |
if( FLY_PAGE == _nAnchorId || FLY_AT_FLY == _nAnchorId ) // LAYER_IMPL |
782 |
{ |
785 |
{ |
Lines 801-809
Link Here
|
801 |
else |
804 |
else |
802 |
aPos = (pFrm->Frm().*fnRect->fnGetPos)(); |
805 |
aPos = (pFrm->Frm().*fnRect->fnGetPos)(); |
803 |
|
806 |
|
804 |
if( bVert ) |
807 |
// --> OD 2009-09-01 #mongolianlayout# |
|
|
808 |
if( bVert || bVertL2R ) |
809 |
// <-- |
805 |
{ |
810 |
{ |
806 |
bVertic = TRUE; |
811 |
// --> OD 2009-09-01 #mongolianlayout# |
|
|
812 |
bVertic = bVert ? true : false; |
813 |
bVerticalL2R = bVertL2R ? true : false; |
814 |
// <-- |
807 |
_bMirror = false; // no mirroring in vertical environment |
815 |
_bMirror = false; // no mirroring in vertical environment |
808 |
switch ( _eHoriRelOrient ) |
816 |
switch ( _eHoriRelOrient ) |
809 |
{ |
817 |
{ |
Lines 852-859
Link Here
|
852 |
default:break; |
860 |
default:break; |
853 |
} |
861 |
} |
854 |
} |
862 |
} |
855 |
// --> OD 2006-12-12 #i67221# - proposed patch |
863 |
// --> OD 2009-09-01 #mongolianlayout# |
856 |
if( bVert ) |
864 |
if ( bVert && !bVertL2R ) |
|
|
865 |
// <-- |
857 |
{ |
866 |
{ |
858 |
switch ( _eVertRelOrient ) |
867 |
switch ( _eVertRelOrient ) |
859 |
{ |
868 |
{ |
Lines 865-870
Link Here
|
865 |
break; |
874 |
break; |
866 |
} |
875 |
} |
867 |
} |
876 |
} |
|
|
877 |
// --> OD 2009-09-01 #mongolianlayout# |
878 |
else if ( bVertL2R ) |
879 |
{ |
880 |
switch ( _eVertRelOrient ) |
881 |
{ |
882 |
case text::RelOrientation::PRINT_AREA: |
883 |
case text::RelOrientation::PAGE_PRINT_AREA: |
884 |
{ |
885 |
aPos.X() += pFrm->GetLeftMargin(); |
886 |
} |
887 |
break; |
888 |
} |
889 |
} |
890 |
// <-- |
868 |
else |
891 |
else |
869 |
{ |
892 |
{ |
870 |
switch ( _eVertRelOrient ) |
893 |
switch ( _eVertRelOrient ) |
Lines 929-938
Link Here
|
929 |
// to page areas. |
952 |
// to page areas. |
930 |
if ( _eVertRelOrient == text::RelOrientation::PAGE_FRAME || _eVertRelOrient == text::RelOrientation::PAGE_PRINT_AREA ) |
953 |
if ( _eVertRelOrient == text::RelOrientation::PAGE_FRAME || _eVertRelOrient == text::RelOrientation::PAGE_PRINT_AREA ) |
931 |
{ |
954 |
{ |
932 |
if ( bVert ) |
955 |
// --> OD 2009-09-01 #mongolianlayout# |
|
|
956 |
if ( bVert && !bVertL2R ) |
957 |
// <-- |
933 |
{ |
958 |
{ |
934 |
aPos.X() = aVertEnvironRect.Right(); |
959 |
aPos.X() = aVertEnvironRect.Right(); |
935 |
} |
960 |
} |
|
|
961 |
// --> OD 2009-09-01 #mongolianlayout# |
962 |
else if ( bVertL2R ) |
963 |
{ |
964 |
aPos.X() = aVertEnvironRect.Left(); |
965 |
} |
936 |
else |
966 |
else |
937 |
{ |
967 |
{ |
938 |
aPos.Y() = aVertEnvironRect.Top(); |
968 |
aPos.Y() = aVertEnvironRect.Top(); |
Lines 949-955
Link Here
|
949 |
// to page areas. |
979 |
// to page areas. |
950 |
if ( _eVertRelOrient == text::RelOrientation::PAGE_FRAME || _eVertRelOrient == text::RelOrientation::PAGE_PRINT_AREA ) |
980 |
if ( _eVertRelOrient == text::RelOrientation::PAGE_FRAME || _eVertRelOrient == text::RelOrientation::PAGE_PRINT_AREA ) |
951 |
{ |
981 |
{ |
952 |
if ( bVert ) |
982 |
// --> OD 2009-09-01 #mongolianlayout# |
|
|
983 |
if ( bVert && !bVertL2R ) |
984 |
// <-- |
953 |
{ |
985 |
{ |
954 |
aPos.X() = aVertEnvironRect.Right(); |
986 |
aPos.X() = aVertEnvironRect.Right(); |
955 |
if ( _eVertRelOrient == text::RelOrientation::PAGE_PRINT_AREA ) |
987 |
if ( _eVertRelOrient == text::RelOrientation::PAGE_PRINT_AREA ) |
Lines 957-962
Link Here
|
957 |
aPos.X() -= rVertEnvironLayFrm.GetRightMargin(); |
989 |
aPos.X() -= rVertEnvironLayFrm.GetRightMargin(); |
958 |
} |
990 |
} |
959 |
} |
991 |
} |
|
|
992 |
// --> OD 2009-09-01 #mongolianlayout# |
993 |
else if ( bVertL2R ) |
994 |
{ |
995 |
aPos.X() = aVertEnvironRect.Left(); |
996 |
if ( _eVertRelOrient == text::RelOrientation::PAGE_PRINT_AREA ) |
997 |
{ |
998 |
aPos.X() += rVertEnvironLayFrm.GetLeftMargin(); |
999 |
} |
1000 |
} |
1001 |
// <-- |
960 |
else |
1002 |
else |
961 |
{ |
1003 |
{ |
962 |
aPos.Y() = aVertEnvironRect.Top(); |
1004 |
aPos.Y() = aVertEnvironRect.Top(); |
Lines 1016-1025
Link Here
|
1016 |
pTxtFrm->GetTopOfLine( nTop, aDefaultCntntPos ); |
1058 |
pTxtFrm->GetTopOfLine( nTop, aDefaultCntntPos ); |
1017 |
} |
1059 |
} |
1018 |
} |
1060 |
} |
1019 |
if ( bVert ) |
1061 |
// --> OD 2009-09-01 #mongolianlayout# |
|
|
1062 |
if ( bVert || bVertL2R ) |
1020 |
{ |
1063 |
{ |
1021 |
aPos.X() = nTop; |
1064 |
aPos.X() = nTop; |
1022 |
} |
1065 |
} |
|
|
1066 |
// <-- |
1023 |
else |
1067 |
else |
1024 |
{ |
1068 |
{ |
1025 |
aPos.Y() = nTop; |
1069 |
aPos.Y() = nTop; |
Lines 1046-1055
Link Here
|
1046 |
pTxtFrm->GetAutoPos( aChRect, aDefaultCntntPos ); |
1090 |
pTxtFrm->GetAutoPos( aChRect, aDefaultCntntPos ); |
1047 |
} |
1091 |
} |
1048 |
nLeft = (aChRect.*fnRect->fnGetLeft)(); |
1092 |
nLeft = (aChRect.*fnRect->fnGetLeft)(); |
1049 |
if ( bVert ) |
1093 |
// --> OD 2009-09-01 #mongolianlayout# |
|
|
1094 |
if ( bVert || bVertL2R ) |
1050 |
{ |
1095 |
{ |
1051 |
aPos.Y() = nLeft; |
1096 |
aPos.Y() = nLeft; |
1052 |
} |
1097 |
} |
|
|
1098 |
// <-- |
1053 |
else |
1099 |
else |
1054 |
{ |
1100 |
{ |
1055 |
aPos.X() = nLeft; |
1101 |
aPos.X() = nLeft; |
Lines 1057-1063
Link Here
|
1057 |
} |
1103 |
} |
1058 |
// <-- |
1104 |
// <-- |
1059 |
|
1105 |
|
1060 |
if ( bVert ) |
1106 |
// --> OD 2009-09-01 #mongolianlayout# |
|
|
1107 |
if ( bVert || bVertL2R ) |
1108 |
// <-- |
1061 |
{ |
1109 |
{ |
1062 |
_orRect = SwRect( aVertEnvironRect.Left(), |
1110 |
_orRect = SwRect( aVertEnvironRect.Left(), |
1063 |
aHoriEnvironRect.Top(), |
1111 |
aHoriEnvironRect.Top(), |
Lines 1091-1097
Link Here
|
1091 |
} |
1139 |
} |
1092 |
// bei zeichengebundenen lieber nur 90% der Hoehe ausnutzen |
1140 |
// bei zeichengebundenen lieber nur 90% der Hoehe ausnutzen |
1093 |
{ |
1141 |
{ |
1094 |
if( bVert ) |
1142 |
// --> OD 2009-09-01 #mongolianlayout# |
|
|
1143 |
if( bVert || bVertL2R ) |
1144 |
// <-- |
1095 |
_orRect.Width( (_orRect.Width()*9)/10 ); |
1145 |
_orRect.Width( (_orRect.Width()*9)/10 ); |
1096 |
else |
1146 |
else |
1097 |
_orRect.Height( (_orRect.Height()*9)/10 ); |
1147 |
_orRect.Height( (_orRect.Height()*9)/10 ); |
Lines 1101-1126
Link Here
|
1101 |
const SwTwips nBaseOfstForFly = ( pFrm->IsTxtFrm() && pFly ) ? |
1151 |
const SwTwips nBaseOfstForFly = ( pFrm->IsTxtFrm() && pFly ) ? |
1102 |
((SwTxtFrm*)pFrm)->GetBaseOfstForFly( !bWrapThrough ) : |
1152 |
((SwTxtFrm*)pFrm)->GetBaseOfstForFly( !bWrapThrough ) : |
1103 |
0; |
1153 |
0; |
1104 |
if( bVert ) |
1154 |
// --> OD 2009-09-01 #mongolianlayout# |
|
|
1155 |
if( bVert || bVertL2R ) |
1156 |
// <-- |
1105 |
{ |
1157 |
{ |
1106 |
bVertic = TRUE; |
1158 |
// --> OD 2009-09-01 #mongolianlayout# |
|
|
1159 |
bVertic = bVert ? true : false; |
1160 |
bVerticalL2R = bVertL2R ? true : false; |
1161 |
// <-- |
1107 |
_bMirror = false; |
1162 |
_bMirror = false; |
1108 |
|
1163 |
|
1109 |
switch ( _eHoriRelOrient ) |
1164 |
switch ( _eHoriRelOrient ) |
1110 |
{ |
1165 |
{ |
1111 |
case text::RelOrientation::FRAME_RIGHT: aPos.Y() += pFrm->Prt().Height(); |
1166 |
case text::RelOrientation::FRAME_RIGHT: |
|
|
1167 |
{ |
1168 |
aPos.Y() += pFrm->Prt().Height(); |
1112 |
aPos += (pFrm->Prt().*fnRect->fnGetPos)(); |
1169 |
aPos += (pFrm->Prt().*fnRect->fnGetPos)(); |
1113 |
break; |
1170 |
break; |
1114 |
case text::RelOrientation::PRINT_AREA: aPos += (pFrm->Prt().*fnRect->fnGetPos)(); |
1171 |
} |
|
|
1172 |
case text::RelOrientation::PRINT_AREA: |
1173 |
{ |
1174 |
aPos += (pFrm->Prt().*fnRect->fnGetPos)(); |
1115 |
aPos.Y() += nBaseOfstForFly; |
1175 |
aPos.Y() += nBaseOfstForFly; |
1116 |
break; |
1176 |
break; |
1117 |
case text::RelOrientation::PAGE_RIGHT: aPos.Y() = pPage->Frm().Top() |
1177 |
} |
1118 |
+ pPage->Prt().Bottom(); break; |
1178 |
case text::RelOrientation::PAGE_RIGHT: |
1119 |
case text::RelOrientation::PAGE_PRINT_AREA: aPos.Y() = pPage->Frm().Top() |
1179 |
{ |
1120 |
+ pPage->Prt().Top(); break; |
1180 |
aPos.Y() = pPage->Frm().Top() + pPage->Prt().Bottom(); |
|
|
1181 |
break; |
1182 |
} |
1183 |
case text::RelOrientation::PAGE_PRINT_AREA: |
1184 |
{ |
1185 |
aPos.Y() = pPage->Frm().Top() + pPage->Prt().Top(); |
1186 |
break; |
1187 |
} |
1121 |
case text::RelOrientation::PAGE_LEFT: |
1188 |
case text::RelOrientation::PAGE_LEFT: |
1122 |
case text::RelOrientation::PAGE_FRAME: aPos.Y() = pPage->Frm().Top(); break; |
1189 |
case text::RelOrientation::PAGE_FRAME: |
1123 |
case text::RelOrientation::FRAME: aPos.Y() += nBaseOfstForFly; break; |
1190 |
{ |
|
|
1191 |
aPos.Y() = pPage->Frm().Top(); |
1192 |
break; |
1193 |
} |
1194 |
case text::RelOrientation::FRAME: |
1195 |
{ |
1196 |
aPos.Y() += nBaseOfstForFly; |
1197 |
break; |
1198 |
} |
1124 |
default: break; |
1199 |
default: break; |
1125 |
} |
1200 |
} |
1126 |
} |
1201 |
} |
Lines 1178-1196
Link Here
|
1178 |
{ |
1253 |
{ |
1179 |
switch ( _eHoriRelOrient ) |
1254 |
switch ( _eHoriRelOrient ) |
1180 |
{ |
1255 |
{ |
1181 |
case text::RelOrientation::FRAME_RIGHT: aPos.X() += pFrm->Prt().Width(); |
1256 |
case text::RelOrientation::FRAME_RIGHT: |
|
|
1257 |
aPos.X() += pFrm->Prt().Width(); |
1182 |
aPos += pFrm->Prt().Pos(); |
1258 |
aPos += pFrm->Prt().Pos(); |
1183 |
break; |
1259 |
break; |
1184 |
case text::RelOrientation::PRINT_AREA: aPos += pFrm->Prt().Pos(); |
1260 |
case text::RelOrientation::PRINT_AREA: |
|
|
1261 |
aPos += pFrm->Prt().Pos(); |
1185 |
aPos.X() += nBaseOfstForFly; |
1262 |
aPos.X() += nBaseOfstForFly; |
1186 |
break; |
1263 |
break; |
1187 |
case text::RelOrientation::PAGE_RIGHT: aPos.X() = pPage->Frm().Left() |
1264 |
case text::RelOrientation::PAGE_RIGHT: |
1188 |
+ pPage->Prt().Right(); break; |
1265 |
aPos.X() = pPage->Frm().Left() + pPage->Prt().Right(); |
1189 |
case text::RelOrientation::PAGE_PRINT_AREA: aPos.X() = pPage->Frm().Left() |
1266 |
break; |
1190 |
+ pPage->Prt().Left(); break; |
1267 |
case text::RelOrientation::PAGE_PRINT_AREA: |
|
|
1268 |
aPos.X() = pPage->Frm().Left() + pPage->Prt().Left(); |
1269 |
break; |
1191 |
case text::RelOrientation::PAGE_LEFT: |
1270 |
case text::RelOrientation::PAGE_LEFT: |
1192 |
case text::RelOrientation::PAGE_FRAME: aPos.X() = pPage->Frm().Left(); break; |
1271 |
case text::RelOrientation::PAGE_FRAME: |
1193 |
case text::RelOrientation::FRAME: aPos.X() += nBaseOfstForFly; break; |
1272 |
aPos.X() = pPage->Frm().Left(); |
|
|
1273 |
break; |
1274 |
case text::RelOrientation::FRAME: |
1275 |
aPos.X() += nBaseOfstForFly; |
1276 |
break; |
1194 |
default: break; |
1277 |
default: break; |
1195 |
} |
1278 |
} |
1196 |
} |
1279 |
} |
Lines 1198-1205
Link Here
|
1198 |
} |
1281 |
} |
1199 |
if( !_opRef ) |
1282 |
if( !_opRef ) |
1200 |
{ |
1283 |
{ |
1201 |
if( bVertic ) |
1284 |
if( bVertic && !bVerticalL2R ) |
1202 |
_orRect.Pos( aPos.X() - _orRect.Width() - _orRect.Left(), _orRect.Top() - aPos.Y() ); |
1285 |
_orRect.Pos( aPos.X() - _orRect.Width() - _orRect.Left(), _orRect.Top() - aPos.Y() ); |
|
|
1286 |
// --> OD 2009-09-01 #mongolianlayout# |
1287 |
else if( bVerticalL2R ) |
1288 |
_orRect.Pos( _orRect.Left() - aPos.X(), _orRect.Top() - aPos.Y() ); |
1289 |
// <-- |
1203 |
else if ( bRTL ) |
1290 |
else if ( bRTL ) |
1204 |
_orRect.Pos( - ( _orRect.Right() - aPos.X() ), _orRect.Top() - aPos.Y() ); |
1291 |
_orRect.Pos( - ( _orRect.Right() - aPos.X() ), _orRect.Top() - aPos.Y() ); |
1205 |
else |
1292 |
else |
Lines 1242-1251
Link Here
|
1242 |
/* -----------------------------12.08.2002 12:51------------------------------ |
1329 |
/* -----------------------------12.08.2002 12:51------------------------------ |
1243 |
|
1330 |
|
1244 |
---------------------------------------------------------------------------*/ |
1331 |
---------------------------------------------------------------------------*/ |
1245 |
BOOL SwFEShell::IsFrmVertical(BOOL bEnvironment, BOOL& bRTL) const |
1332 |
// --> OD 2009-08-31 #mongolianlayou# |
|
|
1333 |
// add output parameter <bVertL2R> |
1334 |
BOOL SwFEShell::IsFrmVertical( const BOOL bEnvironment, |
1335 |
BOOL& bRTL, |
1336 |
BOOL& bVertL2R ) const |
1246 |
{ |
1337 |
{ |
1247 |
BOOL bVert = FALSE; |
1338 |
BOOL bVert = FALSE; |
1248 |
bRTL = FALSE; |
1339 |
bRTL = FALSE; |
|
|
1340 |
bVertL2R = FALSE; |
1249 |
|
1341 |
|
1250 |
if ( Imp()->HasDrawView() ) |
1342 |
if ( Imp()->HasDrawView() ) |
1251 |
{ |
1343 |
{ |
Lines 1287-1296
Link Here
|
1287 |
|
1379 |
|
1288 |
bVert = pRef->IsVertical(); |
1380 |
bVert = pRef->IsVertical(); |
1289 |
bRTL = pRef->IsRightToLeft(); |
1381 |
bRTL = pRef->IsRightToLeft(); |
|
|
1382 |
bVertL2R = pRef->IsVertLR(); |
1290 |
} |
1383 |
} |
1291 |
|
1384 |
|
1292 |
return bVert; |
1385 |
return bVert; |
1293 |
} |
1386 |
} |
|
|
1387 |
// <-- |
1294 |
|
1388 |
|
1295 |
void SwFEShell::MoveObjectIfActive( svt::EmbeddedObjectRef&, const Point& ) |
1389 |
void SwFEShell::MoveObjectIfActive( svt::EmbeddedObjectRef&, const Point& ) |
1296 |
{ |
1390 |
{ |