summaryrefslogtreecommitdiff
path: root/docs/TEXT
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@src.gnome.org>2000-01-13 04:12:07 +0000
committerOwen Taylor <otaylor@src.gnome.org>2000-01-13 04:12:07 +0000
commit282fb5fc9f9d01c4d933a6eb6bee6ae9f0d512c7 (patch)
tree0b19c69692a2fe52a1b33d5e27c97b26a64417e3 /docs/TEXT
parent66ae87f9fc45f5f564acf5014e9bd1341d052958 (diff)
downloadpango-282fb5fc9f9d01c4d933a6eb6bee6ae9f0d512c7.tar.gz
Initial revision
Diffstat (limited to 'docs/TEXT')
-rw-r--r--docs/TEXT/glossary49
-rw-r--r--docs/TEXT/modules42
-rw-r--r--docs/TEXT/questions19
-rw-r--r--docs/TEXT/western-design34
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?
+
+
+