Annotation of q_a/samples/uniput/uniput.rtf, revision 1.1.1.1

1.1       root        1: {\rtf1\ansi \deff0\deflang1024{\fonttbl{\f0\froman Times New Roman;}{\f1\froman Symbol;}{\f2\fswiss Arial;}{\f3\fnil Times;}{\f4\fnil Helvetica;}{\f5\fmodern Courier;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;
                      2: \red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue127;\red0\green127\blue127;\red0\green127\blue0;\red127\green0\blue127;\red127\green0\blue0;
                      3: \red127\green127\blue0;\red127\green127\blue127;\red192\green192\blue192;}{\stylesheet{\s242\fi-1886\li360\sb60\keep\keepn\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340\tqc\tx4320\tqr\tx8640 \b\f5\fs20\up6 \sbasedon0\snext242 footer;}{
                      4: \s243\tqc\tx4320\tqr\tx8640 \f3\fs12\lang1033 \sbasedon0\snext243 header;}{\s244\fi-1886\li360\sb60\keep\keepn\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340\tqc\tx4320\tqr\tx8640 \b\f5\fs16\up6 \sbasedon0\snext0 footnote reference;}{
                      5: \s245\fi-1886\li360\sb60\keep\keepn\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340\tqc\tx4320\tqr\tx8640 \b\f5\fs20\up6 \sbasedon0\snext245 footnote text;}{\s246\li720 \i\f3\fs20\lang1033 \sbasedon0\snext255 heading 9;}{\s247\li720 \i\f3\fs20 
                      6: \sbasedon0\snext255 heading 8;}{\s248\li720 \i\f3\fs20\lang1033 \sbasedon0\snext255 heading 7;}{\s249\li720 \f3\fs20\ul\lang1033 \sbasedon0\snext255 heading 6;}{\s250\li720 \b\f3\fs20\lang1033 \sbasedon0\snext255 heading 5;}{\s251\li360 \f3\ul\lang10 
                      7: \sbasedon0\snext255 heading 4;}{\s252\li360 \b\f3\lang1033 \sbasedon0\snext255 heading 3;}{\s253\sb120 \b\f4\lang1033 \sbasedon0\snext0 heading 2;}{\s254\sb240 \b\f4\ul\lang1033 \sbasedon0\snext0 heading 1;}{\s255\li720 \f3\fs12\lang1033 
                      8: \sbasedon0\snext255 Normal Indent;}{\f3\fs12\lang1033 \snext0 Normal;}{\s2 \b\f4\fs28\lang1033 \sbasedon0\snext2 Title;}{\s3\li720 \b\f4\fs28\lang1033 \sbasedon0\snext3 Body;}{\s4\li270\sb60\tx1440\tx2340 \b\f4\fs28\lang1033 \sbasedon0\snext4 List;}{
                      9: \s5\li270\sb60\tx1440\tx2340 \b\f4\fs20\lang1033 \sbasedon3\snext5 JumpBody;}{\s6\li270\sb60\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f4\fs28\lang1033 \sbasedon0\snext6 PopUpTitle;}{\s7\li180\sb60\keep\brdrb\brdrs\brdrw30\brsp20\brdrcf2 
                     10: \tx1440\tx2340 \b\f4\fs20\lang1033 \sbasedon5\snext7 PopUpBody;}{\s8\fi-1886\li2160\sb60\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f4\fs20\lang1033 \sbasedon4\snext8 GlossaryEntry;}{\s9\fi-1886\li360\sb60\keep\brdrb
                     11: \brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f5\fs8 \snext0 FixedText;}{\s10\fi-1886\li360\sb60\keep\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f5\fs20\up6 \snext0 ControlCodes;}}{\info{\author Steve Firebaugh}{\operator Steve Firebaugh}
                     12: {\creatim\yr1992\mo10\dy9\hr15\min50}{\revtim\yr1992\mo10\dy9\hr15\min50}{\version2}{\edmins167}{\nofpages0}{\nofwords65536}{\nofchars65536}{\vern16433}}\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0 \sectd \linex0 \pard\plain 
                     13: \s6\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 # Uniput}}${\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 
                     14: $ Uniput}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K Uniput}}}{\plain \b\f4\fs28 Uniput}{\plain \b\f4\fs28 -- Input of Unicode characters}{\plain \b\f4\fs28\up6 
                     15: \par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\ul\lang1033 
                     16: \par }{\plain \f3\ul\lang1033 Quick Start:}{\plain \f3\lang1033 
                     17: \par }\pard \s4\fi-360\li360\sb60\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 {\plain \f3\lang1033 0.  (Make sure that the UCLUCIDA.TTF font file has been installed.)}{\plain \f3\lang1033 
                     18: \par }{\plain \f3\lang1033 1.  Run uniput and unipad (distributed on the Win32 SDK) side by side.}{\plain \f3\lang1033 
                     19: \par }{\plain \f3\lang1033 2}{\plain \f3\lang1033 .  Mouse click on characters displayed in the main uniput window.  Drag them to unipad.}{\plain \f3\lang1033 
                     20: \par }{\plain \f3\lang1033 3.  Scroll through character point ranges with the horizontal scroll bar.}{\plain \f3\lang1033 
                     21: \par }{\plain \f3\lang1033 4.  Create additional MDI windows as necessary.}{\plain \f3\lang1033 
                     22: \par }\pard \s4\sb60\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 {\plain \f3\lang1033 
                     23: \par }{\plain \f3\ul\lang1033 Introduction:}{\plain \f3\ul\lang1033 
                     24: \par }{\plain \f3\lang1033 
                     25: Uniput provides a method for inputing unicode character to any application which is unicode enabled.  The user can grab any character displayed in the uniput window, drag it to another application, and drop the character there.  The second application wil
                     26: }{\plain \f3\lang1033 l receive a WM_CHAR message}{\plain \f3\lang1033 
                     27:  with the proper 16 bit characer code if the second application is unicode enabled.  There is no special programming required for the second application.  If it is a Windows program that takes character input, it will work with uniput.}{\plain 
                     28: \f3\lang1033 
                     29: \par }{\plain \f3\lang1033 
                     30: \par }{\plain \f3\ul\lang1033 More Information:}{\plain \f3\ul\lang1033 
                     31: \par }{\plain \f3\lang1033 
                     32: \par }{\plain \f3\uldb\lang1033 Overview}{\plain \v\f3\lang1033 Overview}{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 \tab \tab \tab }{\plain \f3\uldb\lang1033 Advanced Features}{\plain \v\f3 Advanced}{\plain \f3\lang1033 
                     33: \par }{\plain \f3\uldb\lang1033 Font Support}{\plain \v\f3\uldb\lang1033 Fonts}{\plain \f3\lang1033 \tab \tab \tab \tab }{\plain \f3\uldb\lang1033 References}{\plain \v\f3\lang1033 References}{\plain \f3\lang1033 
                     34: \par }{\plain \f3\lang1033 
                     35: \par }\pard\plain \s6\sb60\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 \page #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 # Overview}}${\footnote \pard\plain 
                     36: \f3\fs12\lang1033 {\plain \f3\lang1033 $ Overview}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K Overview}}}Overview{\up6 
                     37: \par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\lang1033 The Uniput program was written to provide an interim input method for entering unicode characters.  }{\plain \f3\lang1033 
                     38: The UNIPAD application distributed with the October beta of Windows/NT is able to properly display left-to-right unicode strings.  However, it allows no practical input method.  That is the reason for Uniput.  In a sense, it serves as a crude input method
                     39: }{\plain \f3\lang1033  for the UNIPAD application.  Notice that this is an interim solution.  It is not part of Microsoft's future direction for input methods.}{\plain \f3\lang1033 
                     40: \par }{\plain \f3\lang1033 
                     41: \par }{\plain \f3\lang1033 The status bar currently has three fields.  The left most field displays the name of the window that a character was}{\plain \f3\lang1033 
                     42:  last dropped on.  The center field provides the type of that window, either "unicode" or "Ansi."  The right most field shows the stream of characters which have been chosen.  Notice that this is actually a static text window with the font set to be "Luci
                     43: }{\plain \f3\lang1033 da Sans Unicode."  As such, it is one way to see how Windows/NT will write a unicode string.  For example, diacritical (non spacing) marks are currently handled correctly.}{\plain \f3\lang1033 
                     44: \par }\pard\plain \s6\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 \page {\plain \f4\fs28\lang1033 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 # Advanced}}}{\plain \f3  }
                     45: {\plain \f4\fs28\lang1033 ${\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 $ Advanced}}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K Advanced}}}{\plain \b\f4\fs28 Advanced Features}{\plain 
                     46: \b\f4\fs28\up6 
                     47: \par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\lang1033 
                     48: \par }{\plain \f3\lang1033 
                     49: By using the multiple document interface features fully, it is possible to tailor the application somewhat to the user's input needs.  For example, it is easy to create two windows (use the "Window, New" menu), one with the desired character range, and th
                     50: }{\plain \f3\lang1033 
                     51: e other with diacritical marks.  Then, by tiling the two windows, it is easy to quickly pick characters, and modify them as needed with the diacritical marks.  It is also possible to create multiple windows, and scroll them to different character ranges i
                     52: }{\plain \f3\lang1033 nd}{\plain \f3\lang1033 ependently.}{\plain \f3\lang1033 
                     53: \par }{\plain \f3\lang1033 
                     54: \par }{\plain \f3\lang1033 
                     55: The "Options" menu allows the user to set four preferences.  The later two, the font size, and the number of characters per line are self explanatory.  They may be different for each child window.  The first two preferences are Boolean, and the applicatio
                     56: }{\plain \f3\lang1033 
                     57: n starts with them being checked ON.  The first controls whether the hexadecimal value for the code point is displayed in the square with the character glyph.  The second affects the title of the child window.  With the item checked on, the t}{\plain 
                     58: \f3\lang1033 itle attempts to display the name of the character point range that the displayed characters are from.  Both of these Boolean options apply to ALL of the child windows in the application.}{\plain \f3\lang1033 
                     59: \par }\pard\plain \s6\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \b\f4\lang1033 \page }{\plain \f4\fs28\lang1033 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1 # }{\plain 
                     60: \b\f3 Fonts}}}{\plain \f4\fs28\lang1033 ${\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 $ }{\plain \b\f3 Font Support}}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K }{\plain \b\f3 Font Support}}
                     61: }{\plain \b\f4\fs28 F}{\plain \b\f4\fs28 ont Support}{\plain \b\f4\fs28\up6 
                     62: \par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\lang1033 
                     63: In order for the Uniput program to work, it is necessary to have a font which covers a significant number of unicode code points.  The "Lucida Sans Unicode" font has about eleven hundred as of the October beta.  When the application first begins, it tries
                     64: }{\plain \f3\lang1033  }{\plain \f3\lang1033 
                     65: to create a logical font with that face name.  It then counts the number of character ranges in the realized font.  If it is less than some threshold (currently 30), the user is warned with a message box.  In this case, the user should quit the applicatio
                     66: }{\plain \f3\lang1033 n, install the UCLUCIDA.TTF font with the control panel, and try the application again.  This same procedure is true for the NTFONTS and SHOWUNI samples distributed on the SDK.}{\plain \f3\lang1033 
                     67: \par }\pard\plain \keepn \f3\fs12\lang1033 \page {\b\fs36 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \b\f3\lang1033 # }{\plain \f3 References}}}{\b\fs36 ${\footnote \pard\plain \f3\fs12\lang1033 {\plain \b\f3\lang1033 $ }{\plain \f3 
                     68: References/more information}}}{\b\fs36 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \b\f3\lang1033 K }{\plain \f3 References/more information}}}{\b\fs36 References}{\b\fs36\up6 
                     69: \par }\pard {\plain \f3\lang1033 NTFonts was written by Steve Firebaugh in Microsoft's Developer Support.  Look for us in the MSWIN32}{\plain \f3\lang1033  forum of Compuserve.  Questions or bug reports related to this program should be posted there.}{\plain 
                     70: \f3\lang1033 
                     71: \par }{\plain \f3\lang1033 
                     72: \par }{\plain \f3\lang1033 
                     73: \par }{\plain \f3\lang1033 Understanding the 'cmap' table is most easily possible with a specification for TrueType font files.  This is available from many sources including the following:}{\plain \f3\lang1033 
                     74: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Microsoft Software Library.  (Available on Compuserve by "GO MDKB" then search for keyword TTSPEC1.)}{\plain \f3\lang1033 
                     75: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Anonymous ftp on ftp.uu.net in vendor/microsoft/TrueType-Info.}{\plain \f3\lang1033 
                     76: \par }{\plain \f3\lang1033 
                     77: \par }{\plain \f3\lang1033 
                     78: \par }{\plain \f3\lang1033 To learn all about unicode, including the names given to the different code}{\plain \f3\lang1033  point ranges, the best reference is the following two volume book available from Addison-Wesley:}{\plain \f3\lang1033 
                     79: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 The Unicode Standard}{\plain \f3\lang1033 
                     80: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 World-wide character encoding}{\plain \f3\lang1033 
                     81: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Version 1.0}{\plain \f3\lang1033 
                     82: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Vol 1: ISBN 0-201-56788-1}{\plain \f3\lang1033 
                     83: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Vol 2: ISBN 0-201-60845-6}{\plain \f3\lang1033 
                     84: \par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \b\f4\lang1033 \page }{\plain \b\f3\lang1033 
                     85: \par }}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.