diff options
| author | Bill Spitzak <spitzak@gmail.com> | 1999-04-20 04:43:24 +0000 |
|---|---|---|
| committer | Bill Spitzak <spitzak@gmail.com> | 1999-04-20 04:43:24 +0000 |
| commit | 2f22abf4e2713eee5a4bf199cd86cd807e08e4fd (patch) | |
| tree | 345517d34e51108b2dfdb54b0a4eea77ce75984f | |
| parent | df8016354cc3b15968043e347de73609180e5c9e (diff) | |
Compose for Icelandic thorn character is "TH" or "th". Also fixed the
comments in Fl_Input.cxx and fixed the documentation.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@552 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | documentation/events.html | 225 | ||||
| -rw-r--r-- | src/Fl_Input.cxx | 49 |
2 files changed, 132 insertions, 142 deletions
diff --git a/documentation/events.html b/documentation/events.html index a7fcdb44c..e43066dd5 100644 --- a/documentation/events.html +++ b/documentation/events.html @@ -182,147 +182,130 @@ characters. The two characters can be in either order. The [compose] key is any of: Ctrl+Q, the righthand control key, or any key your X server calls <TT>XK_Multi_key</TT>. -<center><table border=1> +<p><center><table border=1> <tr> - <th>Keys</th><th>Char</th> - <th>Keys</th><th>Char</th> - <th>Keys</th><th>Char</th> - <th>Keys</th><th>Char</th> - <th>Keys</th><th>Char</th> - <th>Keys</th><th>Char</th> -</tr> + <th>Keys<th>Char<th> + <th>Keys<th>Char<th> + <th>Keys<th>Char<th> + <th>Keys<th>Char<th> + <th>Keys<th>Char<th> + <th>Keys<th>Char <tr> - <td align=center><TT>sp</TT></td><td align=center>nbsp</td> - <td align=center><TT>*</TT></td><td align=center>°</td> - <td align=center><TT>A`</TT></td><td align=center>À</td> - <td align=center><TT>D-</TT></td><td align=center>Ð</td> - <td align=center><TT>a`</TT></td><td align=center>à</td> - <td align=center><TT>d-</TT></td><td align=center>ð</td> -</tr> + <td align=center><small>space</small><td align=center><small>nbsp</small><td> + <td align=center><TT>*</TT><td align=center>°<td> + <td align=center><TT>A`</TT><td align=center>À<td> + <td align=center><TT>D-</TT><td align=center>Ð<td> + <td align=center><TT>a`</TT><td align=center>à<td> + <td align=center><TT>d-</TT><td align=center>ð <tr> - <td align=center><TT>!</TT></td><td align=center>¡</td> - <td align=center><TT>+-</TT></td><td align=center>±</td> - <td align=center><TT>A'</TT></td><td align=center>Á</td> - <td align=center><TT>N~</TT></td><td align=center>Ñ</td> - <td align=center><TT>a'</TT></td><td align=center>á</td> - <td align=center><TT>n~</TT></td><td align=center>ñ</td> -</tr> + <td align=center><TT>!</TT><td align=center>¡<td> + <td align=center><TT>+-</TT><td align=center>±<td> + <td align=center><TT>A'</TT><td align=center>Á<td> + <td align=center><TT>N~</TT><td align=center>Ñ<td> + <td align=center><TT>a'</TT><td align=center>á<td> + <td align=center><TT>n~</TT><td align=center>ñ <tr> - <td align=center><TT>%</TT></td><td align=center>¢</td> - <td align=center><TT>2</TT></td><td align=center>²</td> - <td align=center><TT>A^</TT></td><td align=center>Â</td> - <td align=center><TT>O`</TT></td><td align=center>Ò</td> - <td align=center><TT>a^</TT></td><td align=center>â</td> - <td align=center><TT>o`</TT></td><td align=center>ò</td> -</tr> + <td align=center><TT>%</TT><td align=center>¢<td> + <td align=center><TT>2</TT><td align=center>²<td> + <td align=center><TT>A^</TT><td align=center>Â<td> + <td align=center><TT>O`</TT><td align=center>Ò<td> + <td align=center><TT>a^</TT><td align=center>â<td> + <td align=center><TT>o`</TT><td align=center>ò <tr> - <td align=center><TT>#</TT></td><td align=center>£</td> - <td align=center><TT>3</TT></td><td align=center>³</td> - <td align=center><TT>A~</TT></td><td align=center>Ã</td> - <td align=center><TT>O'</TT></td><td align=center>Ó</td> - <td align=center><TT>a~</TT></td><td align=center>ã</td> - <td align=center><TT>o'</TT></td><td align=center>ó</td> -</tr> + <td align=center><TT>#</TT><td align=center>£<td> + <td align=center><TT>3</TT><td align=center>³<td> + <td align=center><TT>A~</TT><td align=center>Ã<td> + <td align=center><TT>O'</TT><td align=center>Ó<td> + <td align=center><TT>a~</TT><td align=center>ã<td> + <td align=center><TT>o'</TT><td align=center>ó <tr> - <td align=center><TT>$</TT></td><td align=center>¤</td> - <td align=center><TT>'</TT></td><td align=center>´</td> - <td align=center><TT>A:</TT></td><td align=center>Ä</td> - <td align=center><TT>O^</TT></td><td align=center>Ô</td> - <td align=center><TT>a:</TT></td><td align=center>ä</td> - <td align=center><TT>o^</TT></td><td align=center>ô</td> -</tr> + <td align=center><TT>$</TT><td align=center>¤<td> + <td align=center><TT>'</TT><td align=center>´<td> + <td align=center><TT>A:</TT><td align=center>Ä<td> + <td align=center><TT>O^</TT><td align=center>Ô<td> + <td align=center><TT>a:</TT><td align=center>ä<td> + <td align=center><TT>o^</TT><td align=center>ô <tr> - <td align=center><TT>y=</TT></td><td align=center>¥</td> - <td align=center><TT>u</TT></td><td align=center>µ</td> - <td align=center><TT>A*</TT></td><td align=center>Å</td> - <td align=center><TT>O~</TT></td><td align=center>Õ</td> - <td align=center><TT>a*</TT></td><td align=center>å</td> - <td align=center><TT>o~</TT></td><td align=center>õ</td> -</tr> + <td align=center><TT>y=</TT><td align=center>¥<td> + <td align=center><TT>u</TT><td align=center>µ<td> + <td align=center><TT>A*</TT><td align=center>Å<td> + <td align=center><TT>O~</TT><td align=center>Õ<td> + <td align=center><TT>a*</TT><td align=center>å<td> + <td align=center><TT>o~</TT><td align=center>õ <tr> - <td align=center><TT>|</TT></td><td align=center>¦</td> - <td align=center><TT>p</TT></td><td align=center>¶</td> - <td align=center><TT>AE</TT></td><td align=center>Æ</td> - <td align=center><TT>O:</TT></td><td align=center>Ö</td> - <td align=center><TT>ae</TT></td><td align=center>æ</td> - <td align=center><TT>o:</TT></td><td align=center>ö</td> -</tr> + <td align=center><TT>|</TT><td align=center>¦<td> + <td align=center><TT>p</TT><td align=center>¶<td> + <td align=center><TT>AE</TT><td align=center>Æ<td> + <td align=center><TT>O:</TT><td align=center>Ö<td> + <td align=center><TT>ae</TT><td align=center>æ<td> + <td align=center><TT>o:</TT><td align=center>ö <tr> - <td align=center><TT>&</TT></td><td align=center>§</td> - <td align=center><TT>.</TT></td><td align=center>·</td> - <td align=center><TT>C,</TT></td><td align=center>Ç</td> - <td align=center><TT>x</TT></td><td align=center>×</td> - <td align=center><TT>c,</TT></td><td align=center>ç</td> - <td align=center><TT>-:</TT></td><td align=center>÷</td> -</tr> + <td align=center><TT>&</TT><td align=center>§<td> + <td align=center><TT>.</TT><td align=center>·<td> + <td align=center><TT>C,</TT><td align=center>Ç<td> + <td align=center><TT>x</TT><td align=center>×<td> + <td align=center><TT>c,</TT><td align=center>ç<td> + <td align=center><TT>-:</TT><td align=center>÷ <tr> - <td align=center><TT>:</TT></td><td align=center>¨</td> - <td align=center><TT>,</TT></td><td align=center>¸</td> - <td align=center><TT>E`</TT></td><td align=center>È</td> - <td align=center><TT>O/</TT></td><td align=center>Ø</td> - <td align=center><TT>e`</TT></td><td align=center>è</td> - <td align=center><TT>o/</TT></td><td align=center>ø</td> -</tr> + <td align=center><TT>:</TT><td align=center>¨<td> + <td align=center><TT>,</TT><td align=center>¸<td> + <td align=center><TT>E`</TT><td align=center>È<td> + <td align=center><TT>O/</TT><td align=center>Ø<td> + <td align=center><TT>e`</TT><td align=center>è<td> + <td align=center><TT>o/</TT><td align=center>ø <tr> - <td align=center><TT>c</TT></td><td align=center>©</td> - <td align=center><TT>1</TT></td><td align=center>¹</td> - <td align=center><TT>E'</TT></td><td align=center>É</td> - <td align=center><TT>U`</TT></td><td align=center>Ù</td> - <td align=center><TT>e'</TT></td><td align=center>é</td> - <td align=center><TT>u`</TT></td><td align=center>ù</td> -</tr> + <td align=center><TT>c</TT><td align=center>©<td> + <td align=center><TT>1</TT><td align=center>¹<td> + <td align=center><TT>E'</TT><td align=center>É<td> + <td align=center><TT>U`</TT><td align=center>Ù<td> + <td align=center><TT>e'</TT><td align=center>é<td> + <td align=center><TT>u`</TT><td align=center>ù <tr> - <td align=center><TT>a</TT></td><td align=center>ª</td> - <td align=center><TT>o</TT></td><td align=center>º</td> - <td align=center><TT>E^</TT></td><td align=center>Ê</td> - <td align=center><TT>U'</TT></td><td align=center>Ú</td> - <td align=center><TT>e^</TT></td><td align=center>ê</td> - <td align=center><TT>u'</TT></td><td align=center>ú</td> -</tr> + <td align=center><TT>a</TT><td align=center>ª<td> + <td align=center><TT>o</TT><td align=center>º<td> + <td align=center><TT>E^</TT><td align=center>Ê<td> + <td align=center><TT>U'</TT><td align=center>Ú<td> + <td align=center><TT>e^</TT><td align=center>ê<td> + <td align=center><TT>u'</TT><td align=center>ú <tr> - <td align=center><TT><<</TT></td><td align=center>«</td> - <td align=center><TT>>></TT></td><td align=center>»</td> - <td align=center><TT>E:</TT></td><td align=center>Ë</td> - <td align=center><TT>U^</TT></td><td align=center>Û</td> - <td align=center><TT>e:</TT></td><td align=center>ë</td> - <td align=center><TT>u^</TT></td><td align=center>û</td> -</tr> + <td align=center><TT><<</TT><td align=center>«<td> + <td align=center><TT>>></TT><td align=center>»<td> + <td align=center><TT>E:</TT><td align=center>Ë<td> + <td align=center><TT>U^</TT><td align=center>Û<td> + <td align=center><TT>e:</TT><td align=center>ë<td> + <td align=center><TT>u^</TT><td align=center>û <tr> - <td align=center><TT>~</TT></td><td align=center>¬</td> - <td align=center><TT>14</TT></td><td align=center>¼</td> - <td align=center><TT>I`</TT></td><td align=center>Ì</td> - <td align=center><TT>U:</TT></td><td align=center>Ü</td> - <td align=center><TT>i`</TT></td><td align=center>ì</td> - <td align=center><TT>u:</TT></td><td align=center>ü</td> -</tr> + <td align=center><TT>~</TT><td align=center>¬<td> + <td align=center><TT>14</TT><td align=center>¼<td> + <td align=center><TT>I`</TT><td align=center>Ì<td> + <td align=center><TT>U:</TT><td align=center>Ü<td> + <td align=center><TT>i`</TT><td align=center>ì<td> + <td align=center><TT>u:</TT><td align=center>ü <tr> - <td align=center><TT>-</TT></td><td align=center></td> - <td align=center><TT>12</TT></td><td align=center>½</td> - <td align=center><TT>I'</TT></td><td align=center>Í</td> - <td align=center><TT>Y'</TT></td><td align=center>Ý</td> - <td align=center><TT>i'</TT></td><td align=center>í</td> - <td align=center><TT>y'</TT></td><td align=center>ý</td> -</tr> + <td align=center><TT>-</TT><td align=center><td> + <td align=center><TT>12</TT><td align=center>½<td> + <td align=center><TT>I'</TT><td align=center>Í<td> + <td align=center><TT>Y'</TT><td align=center>Ý<td> + <td align=center><TT>i'</TT><td align=center>í<td> + <td align=center><TT>y'</TT><td align=center>ý <tr> - <td align=center><TT>r</TT></td><td align=center>®</td> - <td align=center><TT>34</TT></td><td align=center>¾</td> - <td align=center><TT>I^</TT></td><td align=center>Î</td> - <td align=center><TT>DD</TT></td><td align=center>Þ</td> - <td align=center><TT>i^</TT></td><td align=center>î</td> - <td align=center><TT>dd</TT></td><td align=center>þ</td> -</tr> + <td align=center><TT>r</TT><td align=center>®<td> + <td align=center><TT>34</TT><td align=center>¾<td> + <td align=center><TT>I^</TT><td align=center>Î<td> + <td align=center><TT>TH</TT><td align=center>Þ<td> + <td align=center><TT>i^</TT><td align=center>î<td> + <td align=center><TT>th</TT><td align=center>þ <tr> - <td align=center><TT>_</TT></td><td align=center>¯</td> - <td align=center><TT>?</TT></td><td align=center>¿</td> - <td align=center><TT>I:</TT></td><td align=center>Ï</td> - <td align=center><TT>ss</TT></td><td align=center>ß</td> - <td align=center><TT>i:</TT></td><td align=center>ï</td> - <td align=center><TT>y:</TT></td><td align=center>ÿ</td> -</tr> + <td align=center><TT>_</TT><td align=center>¯<td> + <td align=center><TT>?</TT><td align=center>¿<td> + <td align=center><TT>I:</TT><td align=center>Ï<td> + <td align=center><TT>ss</TT><td align=center>ß<td> + <td align=center><TT>i:</TT><td align=center>ï<td> + <td align=center><TT>y:</TT><td align=center>ÿ </table> </center> -For instance, to type "á" type [compose][a]['] or [compose]['][a]. +<p>For instance, to type "á" type [compose][a]['] or [compose]['][a]. <P>The character "nbsp" (non-breaking space) is typed by using [compose][space]. diff --git a/src/Fl_Input.cxx b/src/Fl_Input.cxx index 95b0de087..d0e1fc8a3 100644 --- a/src/Fl_Input.cxx +++ b/src/Fl_Input.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Input.cxx,v 1.10 1999/01/24 15:28:59 mike Exp $" +// "$Id: Fl_Input.cxx,v 1.10.2.1 1999/04/20 04:43:24 bill Exp $" // // Input widget for the Fast Light Tool Kit (FLTK). // @@ -54,29 +54,36 @@ int Fl_Input::shift_up_down_position(int p) { //////////////////////////////////////////////////////////////// // Fltk "compose" -// I tried to do compose characters "correctly" with much more user -// feedback. They can see the character they will get, rather than -// the "dead key" effect. Notice that I completely ignore that horrid -// XIM extension! -// Although the current scheme only works for Latin-NR1 character sets -// the intention is to expand this to UTF-8 someday, to allow you to -// compose all characters in all languages with no stupid "locale" -// setting. -// To use, you call "fl_compose()" for each keystroke. You pass it -// the characters it displayed last time plus the new character. It -// returns a new set of characters to replace the old one with. If -// it returns zero length you should leave the old set unchanged and -// treat the new key normally. -// Pressing any function keys or moving the cursor should set the -// compose state back to zero. - -// This string lists a pair for each possible foreign letter in Latin-NR1 +// +// This is a demonstration of a IMHO "correct" interface to compose +// character sequences. It does not have a "dead key" effect: the +// user has feedback at all times, and sees exactly the symbol they +// will get if they stop typing at that point. Notice that I totally +// ignore the horrid XIM extension! +// +// You only need to keep track of your normal text buffer and a +// single integer "state". Call fl_compose() for each character +// keystroke. The return value is the new "state" that must be passed +// the next time you call fl_compose(). It also returns the number of +// characters to delete to the left, a buffer of new characters, and +// the number of characters in that buffer. Obey these editing +// instructions. Reset the state to zero if the user types any +// function keys or clicks the mouse. +// +// Fl_Input does not call fl_compose unless you hit the "compose" key +// first. It may be interesting and useful to always call it, though... + +// Although this simple code is only for ISO-8859-1 character +// encodings, I think the interface can be expanded to UTF-8 (encoded +// Unicode) someday. + +// This string lists a pair for each possible foreign letter in ISO-8859-1 // starting at code 0xa0 (nbsp). If the second character is a space then // only the first character needs to by typed: static const char* const compose_pairs = " ! % # $ y=| & : c a <<~ - r _ * +-2 3 ' u p . , 1 o >>141234? " -"A`A'A^A~A:A*AEC,E`E'E^E:I`I'I^I:D-N~O`O'O^O~O:x O/U`U'U^U:Y'DDss" -"a`a'a^a~a:a*aec,e`e'e^e:i`i'i^i:d-n~o`o'o^o~o:-:o/u`u'u^u:y'ddy:"; +"A`A'A^A~A:A*AEC,E`E'E^E:I`I'I^I:D-N~O`O'O^O~O:x O/U`U'U^U:Y'THss" +"a`a'a^a~a:a*aec,e`e'e^e:i`i'i^i:d-n~o`o'o^o~o:-:o/u`u'u^u:y'thy:"; int fl_compose(int state, char c, int& del, char* buffer, int& ins) { del = 0; ins = 1; buffer[0] = c; @@ -330,5 +337,5 @@ Fl_Input::Fl_Input(int x, int y, int w, int h, const char *l) } // -// End of "$Id: Fl_Input.cxx,v 1.10 1999/01/24 15:28:59 mike Exp $". +// End of "$Id: Fl_Input.cxx,v 1.10.2.1 1999/04/20 04:43:24 bill Exp $". // |
