diff options
author | Owen Taylor <otaylor@src.gnome.org> | 2000-01-13 04:12:07 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2000-01-13 04:12:07 +0000 |
commit | 282fb5fc9f9d01c4d933a6eb6bee6ae9f0d512c7 (patch) | |
tree | 0b19c69692a2fe52a1b33d5e27c97b26a64417e3 /docs/TEXT | |
parent | 66ae87f9fc45f5f564acf5014e9bd1341d052958 (diff) | |
download | pango-282fb5fc9f9d01c4d933a6eb6bee6ae9f0d512c7.tar.gz |
Initial revision
Diffstat (limited to 'docs/TEXT')
-rw-r--r-- | docs/TEXT/glossary | 49 | ||||
-rw-r--r-- | docs/TEXT/modules | 42 | ||||
-rw-r--r-- | docs/TEXT/questions | 19 | ||||
-rw-r--r-- | docs/TEXT/western-design | 34 |
4 files changed, 144 insertions, 0 deletions
diff --git a/docs/TEXT/glossary b/docs/TEXT/glossary new file mode 100644 index 00000000..aa1d1f58 --- /dev/null +++ b/docs/TEXT/glossary @@ -0,0 +1,49 @@ +CFont: A font component. This is a rendering-specific entity + which is paired with a glyph index to uniquely indentify + a glyph. Each abstract Font maps to one or more CFonts; + the method for obtaining CFonts from Fonts is also + rendering system specific. + +Cluster: A cluster is a small portion of text that is rendered + as typographically intertwined glyphs. + + A number of properties are associated with clusters + and cluster boundaries. + + 1) Clusters are the smallest unit of text that is guaranteed to + progress in reading order. Within a cluster, reordering + of glyphs may occur. + + 2) At the boundaries of clusters, character boundaries + and glyph boundaries are guaranteed to coincide. + + 3) There will be a cursor position between every two clusters. + There may not be a cursor position at some positions + inside a cluster. + + 4) The cluster boundary is the only place where information + about the correspondence between character position + and screen position is conveyed from the shape-engine + to the layers above. + +Engine: A script-specific object that is responsible for + converting Unicode text into glyphs or resolving + the properties of the text. Engines may be + rendering-system specific or independent of rendering + system. + +Font: An abstract font. The method in which a font is + created is dependent on the rendering system. + +Item: An item is a portion of text in a single script, handled + by a single shaping engine, and with a single directional + level. g_script_itemize() returns a list of items. + +Module: A dynamically loaded shared object containing one + or more Engines. + +Range: A subportion of an item. You pass a range into + g_script_shape() by passing in the analysis structure + for the item and some subportion of the text. + + diff --git a/docs/TEXT/modules b/docs/TEXT/modules new file mode 100644 index 00000000..5e250bc8 --- /dev/null +++ b/docs/TEXT/modules @@ -0,0 +1,42 @@ +General points +============== + +One global entry point for each module: + +g_i18n_list_functions() + + function : language : vtable + + +Tool: + + gi18n-updatedb + +Input Method Module +=================== + + Functions: + + Callbacks: + + Set the status area contents + Set the preedit string contents + Position the caret + Begin preediting + End preediting + +Shaping Module +============= + + Segment input text + Turn characters into glyphs + Provide line-break information + + +Output Modules +============== + + Position/justify glyphs + + + diff --git a/docs/TEXT/questions b/docs/TEXT/questions new file mode 100644 index 00000000..a74b8649 --- /dev/null +++ b/docs/TEXT/questions @@ -0,0 +1,19 @@ +- Is it worth splitting off display-font independent stuff + from display dependent stuff. How do we do that? + +- Can we abandon XIM? Can we support XIM in backwards-compatibility + mode? Just in RootWindow mode? + +- Are input methods windowing system independent? What do + we gain/lose? + +- Do we need to worry about glyph changes at line breaks? + +- Do we ever need to break clusters on line breaks? + +- Do input methods need attributed strings for displaying + feedback? If so, do we build such support into GDK? + Into GTK+? + +- How do we index positions in a string + (By character? By byte?) diff --git a/docs/TEXT/western-design b/docs/TEXT/western-design new file mode 100644 index 00000000..57c81dba --- /dev/null +++ b/docs/TEXT/western-design @@ -0,0 +1,34 @@ +Issues that this engine needs to handle: + + - Picking the right character based on language/character + - Composition of combining diacriticals - should use precomposed + diacriticals when possible + - Finding word/line/breaks + +For each sequence of character + combining marks + + - Find combined representations from most combined to least combined. + - If there are particular characters for this combination, use + them, otherwise + +========== + +Ligature table per font. +Pick fonts in order of preference according to LANG + +Characterstics of western/basic: + + Consistent LTR + No reordering + Many characters => one glyph + Character/Word/Line breaking dependent only on character properties + +Issues + + Accent placement for Greek, Vietnamese + How do we handle a case where lang == en_US, we have a glyph + combination with a combined form in iso-8859-2 but not + in iso-8859-1? + + + |