summaryrefslogtreecommitdiff
path: root/sw/source/core/text/pormulti.hxx
diff options
context:
space:
mode:
authorFrank Meies <fme@openoffice.org>2002-02-28 11:42:19 +0000
committerFrank Meies <fme@openoffice.org>2002-02-28 11:42:19 +0000
commit6829122e78bc5614930e1b03595ef74eece941ff (patch)
treea9893f5d172a0b987a17137e8fb51c221df954f0 /sw/source/core/text/pormulti.hxx
parent6c76e70c31ef21bdf4c8bf21b425386a5b1d4166 (diff)
#95586# Accessibility - Handling of text portions
Diffstat (limited to 'sw/source/core/text/pormulti.hxx')
-rw-r--r--sw/source/core/text/pormulti.hxx36
1 files changed, 34 insertions, 2 deletions
diff --git a/sw/source/core/text/pormulti.hxx b/sw/source/core/text/pormulti.hxx
index 02f6e65b1543..fc080e5a87e8 100644
--- a/sw/source/core/text/pormulti.hxx
+++ b/sw/source/core/text/pormulti.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pormulti.hxx,v $
*
- * $Revision: 1.17 $
+ * $Revision: 1.18 $
*
- * last change: $Author: fme $ $Date: 2002-01-31 14:29:52 $
+ * last change: $Author: fme $ $Date: 2002-02-28 12:42:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -86,6 +86,9 @@ class SwFont;
#define SW_MC_DOUBLE 0
#define SW_MC_RUBY 1
#define SW_MC_ROTATE 2
+#ifdef BIDI
+#define SW_MC_BIDI 3
+#endif
struct SwMultiCreator
{
@@ -129,6 +132,9 @@ class SwMultiPortion : public SwLinePortion
sal_Bool bTab2 :1; // Second line includes tabulator
sal_Bool bDouble :1; // Double line
sal_Bool bRuby :1; // Phonetics
+#ifdef BIDI
+ sal_Bool bBidi :1;
+#endif
sal_Bool bTop :1; // Phonetic position
sal_Bool bFormatted :1; // Already formatted
sal_Bool bFollowFld :1; // Field follow inside
@@ -136,12 +142,21 @@ class SwMultiPortion : public SwLinePortion
sal_Bool bFlyInCntnt:1; // Fly as character inside
protected:
SwMultiPortion( xub_StrLen nEnd ) : pFldRest( 0 ), bTab1( sal_False ),
+#ifdef BIDI
+ bTab2( sal_False ), bDouble( sal_False ), bRuby( sal_False ),
+ bBidi( sal_False ), bFormatted( sal_False ), bFollowFld( sal_False ),
+ nDirection( 0 ), bFlyInCntnt( sal_False )
+#else
bTab2( sal_False ), bDouble( sal_False ), bRuby( sal_False ),
bFormatted( sal_False ), bFollowFld( sal_False ), nDirection( 0 ),
bFlyInCntnt( sal_False )
+#endif
{ SetWhichPor( POR_MULTI ); SetLen( nEnd ); }
inline void SetDouble() { bDouble = sal_True; }
inline void SetRuby() { bRuby = sal_True; }
+#ifdef BIDI
+ inline void SetBidi() { bBidi = sal_True; }
+#endif
inline void SetTop( sal_Bool bNew ) { bTop = bNew; }
inline void SetTab1( sal_Bool bNew ) { bTab1 = bNew; }
inline void SetTab2( sal_Bool bNew ) { bTab2 = bNew; }
@@ -164,6 +179,9 @@ public:
inline void SetFlyInCntnt( sal_Bool bNew ) { bFlyInCntnt = bNew; }
inline sal_Bool IsDouble() const { return bDouble; }
inline sal_Bool IsRuby() const { return bRuby; }
+#ifdef BIDI
+ inline sal_Bool IsBidi() const { return bBidi; }
+#endif
inline sal_Bool OnTop() const { return bTop; }
void ActualizeTabulator();
@@ -180,6 +198,10 @@ public:
inline sal_uInt8 GetDirection() const { return nDirection; }
inline USHORT GetFontRotation() const
{ return ( HasRotation() ? ( IsRevers() ? 2700 : 900 ) : 0 ); }
+
+ // Accessibility: pass information about this portion to the PortionHandler
+ virtual void HandlePortion( SwPortionHandler& rPH ) const;
+
OUTPUT_OPERATOR
};
@@ -250,6 +272,16 @@ public:
: SwMultiPortion( nEnd ) { SetDirection( nDir ); }
};
+#ifdef BIDI
+class SwBidiPortion : public SwMultiPortion
+{
+public:
+ SwBidiPortion( const SwMultiCreator& rCreate, xub_StrLen nEnd );
+ SwBidiPortion( xub_StrLen nEnd )
+ : SwMultiPortion( nEnd ) { SetBidi(); }
+};
+#endif
+
// For cursor travelling in multiportions
class SwTxtCursorSave