summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-write/qcomplextext.cpp
Unidiff
Diffstat (limited to 'noncore/apps/opie-write/qcomplextext.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-write/qcomplextext.cpp3
1 files changed, 0 insertions, 3 deletions
diff --git a/noncore/apps/opie-write/qcomplextext.cpp b/noncore/apps/opie-write/qcomplextext.cpp
index 0fa6c2e..e8b94da 100644
--- a/noncore/apps/opie-write/qcomplextext.cpp
+++ b/noncore/apps/opie-write/qcomplextext.cpp
@@ -45,51 +45,48 @@
45 45
46using namespace Qt3; 46using namespace Qt3;
47 47
48// ----------------------------------------------------- 48// -----------------------------------------------------
49 49
50/* a small helper class used internally to resolve Bidi embedding levels. 50/* a small helper class used internally to resolve Bidi embedding levels.
51 Each line of text caches the embedding level at the start of the line for faster 51 Each line of text caches the embedding level at the start of the line for faster
52 relayouting 52 relayouting
53*/ 53*/
54QBidiContext::QBidiContext( uchar l, QChar::Direction e, QBidiContext *p, bool o ) 54QBidiContext::QBidiContext( uchar l, QChar::Direction e, QBidiContext *p, bool o )
55 : level(l) , override(o), dir(e) 55 : level(l) , override(o), dir(e)
56{ 56{
57 if ( p ) 57 if ( p )
58 p->ref(); 58 p->ref();
59 parent = p; 59 parent = p;
60 count = 0; 60 count = 0;
61} 61}
62 62
63QBidiContext::~QBidiContext() 63QBidiContext::~QBidiContext()
64{ 64{
65 if( parent && parent->deref() ) 65 if( parent && parent->deref() )
66 delete parent; 66 delete parent;
67} 67}
68 68
69static QChar *shapeBuffer = 0;
70static int shapeBufSize = 0;
71
72/* 69/*
73 Arabic shaping obeys a number of rules according to the joining classes (see Unicode book, section on 70 Arabic shaping obeys a number of rules according to the joining classes (see Unicode book, section on
74 arabic). 71 arabic).
75 72
76 Each unicode char has a joining class (right, dual (left&right), center (joincausing) or transparent). 73 Each unicode char has a joining class (right, dual (left&right), center (joincausing) or transparent).
77 transparent joining is not encoded in QChar::joining(), but applies to all combining marks and format marks. 74 transparent joining is not encoded in QChar::joining(), but applies to all combining marks and format marks.
78 75
79 Right join-causing: dual + center 76 Right join-causing: dual + center
80 Left join-causing: dual + right + center 77 Left join-causing: dual + right + center
81 78
82 Rules are as follows (for a string already in visual order, as we have it here): 79 Rules are as follows (for a string already in visual order, as we have it here):
83 80
84 R1 Transparent characters do not affect joining behaviour. 81 R1 Transparent characters do not affect joining behaviour.
85 R2 A right joining character, that has a right join-causing char on the right will get form XRight 82 R2 A right joining character, that has a right join-causing char on the right will get form XRight
86 (R3 A left joining character, that has a left join-causing char on the left will get form XLeft) 83 (R3 A left joining character, that has a left join-causing char on the left will get form XLeft)
87 Note: the above rule is meaningless, as there are no pure left joining characters defined in Unicode 84 Note: the above rule is meaningless, as there are no pure left joining characters defined in Unicode
88 R4 A dual joining character, that has a left join-causing char on the left and a right join-causing char on 85 R4 A dual joining character, that has a left join-causing char on the left and a right join-causing char on
89 the right will get form XMedial 86 the right will get form XMedial
90 R5 A dual joining character, that has a right join causing char on the right, and no left join causing char on the left 87 R5 A dual joining character, that has a right join causing char on the right, and no left join causing char on the left
91 will get form XRight 88 will get form XRight
92 R6 A dual joining character, that has a left join causing char on the left, and no right join causing char on the right 89 R6 A dual joining character, that has a left join causing char on the left, and no right join causing char on the right
93 will get form XLeft 90 will get form XLeft
94 R7 Otherwise the character will get form XIsolated 91 R7 Otherwise the character will get form XIsolated
95 92