home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 626a.lha / GUISpell_v1.0 / GUISpell.doc.pp / GUISpell.doc
Text File  |  1992-04-07  |  16KB  |  356 lines

  1. Welcome to GUISpell-1.0 by Loren J. Rittle (l-rittle@uiuc.edu).
  2.  
  3. [Warning: you must have AmigaOS release 2.04 (with ARexx running) to
  4.  use GUISpell.  This program makes use of many 2.04 features and there
  5.  will never be a version of GUISpell that works with pre-2.04.]
  6.  
  7. GUISpell is a graphical front end to ISpell-3.1ljr (or later) [with
  8. ARexx server mode/port added by yours truly] or to any spelling
  9. checker that adheres to the standard ``Spell Checker ARexx Interface''
  10. as first described in ISpell documentation and more recently in a
  11. UseNet message posted by myself on `Mon, 23 Mar 92 10:32:37 GMT' to
  12. comp.sys.amiga.applications (see file, entitled UseNet_posts, which
  13. contains the three messages I posted to UseNet on the subject).
  14.  
  15. [This free version of GUISpell, as distributed, only works with
  16.  ISpell-3.1ljr (or later).  Since this is the only spelling checker
  17.  that adheres to the standard ``Spell Checker ARexx Interface'' at this
  18.  time, this is no great restriction.  The full release doesn't have
  19.  this restriction.]
  20.  
  21. Let's get the nasty legal stuff out of the way first (PLEASE READ IT
  22. FOR YOUR SAKE, ESP. IF YOU DECIDE TO USE GUISpell):
  23. This is the initial public release of GUISpell (known before, during and
  24. after beta testing as IGadSpell.  Sorry Chris, but the name of the ARexx
  25. port changed from 'IGadSpell' to 'GUISpell').  This software package is
  26. Copyright © 1991, 1992  Loren J. Rittle (l-rittle@uiuc.edu)
  27. and may only be used as licensed by the author and copyright holder,
  28. Loren J. Rittle.  Please read the license statement carefully,
  29. I don't want anyone getting into legal trouble:
  30.  
  31. [Although this package works closely with ISpell (or some other spell
  32.  checker backend) via ARexx, it is a completely separate product with
  33.  a different original author and different use license.]
  34.  
  35. This work is Copyright © 1991, 1992  Loren J. Rittle (l-rittle@uiuc.edu)
  36. This software may be freely distributed and redistributed,
  37. non-commercially for non-commercial purposes, provided this notice is
  38. included.  You have the right to use the information contained within
  39. this document/program in any way that you see fit, as long as you
  40. quote this as the source of the information (e.g.  you have the right
  41. to study the code to GUISpell and see how I do clipboard hooks and
  42. copy the method or a small bit of code into your own project, but you
  43. must state that ideas/code snip was taken from GUISpell).  With this
  44. free version of GUISpell, you *don't* have the right to change and/or
  45. recompile the program from the included source code.  You have the
  46. right to run the included binary.  All other rights, most notably
  47. commercial ones, are reserved by the author.  Of main importance, note
  48. that the right to modify this package in any way and redistribute is
  49. reserved by the author (this will be the only freely redistributable
  50. version of GUISpell.  I know this version of GUISpell is limited in
  51. some ways, but this restriction is in place so I can recoup my
  52. development costs by selling enhanced versions, but yet allow the
  53. source code to be useful to other people/developers).
  54.  
  55. Contact the author for other licensing agreements, the full non-freely
  56. redistributable release as described below and for inclusion into any
  57. commercial package (I'm all for the idea :-) at:
  58.  
  59. Internet EMail (preferred for initial contact):
  60. l-rittle@uiuc.edu
  61.  
  62. Snail Mail (extra slow because I don't really live here):
  63. Loren J. Rittle
  64. 1008 Landing Rd.
  65. Naperville, IL  60540
  66.  
  67. DISCLAIMER:
  68. This software is provided 'as-is', without warranty of any kind,
  69. either expressed or implied.  In no event will I, Loren J. Rittle,
  70. be liable for direct, indirect, incidental or consequential damages
  71. or data loss resulting from the use or application of this software.
  72. The entire risk as to the results and performance of this software
  73. is assumed by you."
  74.  
  75. This program is distributed in the hope that it will be useful,
  76. but WITHOUT ANY WARRANTY; without even the implied warranty of
  77. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  78.  
  79. There, how's that for legal mush?  Just trying to cover my...
  80.  
  81. Special thanks to Mike Schwartz (mykes@amiga0.sf-bay.org) for his PD
  82. GadTools Example that was posted to alt.sources.amiga on `11 Nov 91
  83. 12:14:43 PST'.  Thanks so much Mike, your example inspired me to write
  84. this!
  85.  
  86. I also wish to thank Chris A. Wichura (caw@miroc.chi.il.us) for being
  87. a beta tester and for writing some TurboText macros that play with
  88. ISpell and GUISpell.  Thanks to Eddy Carroll for Small.a (I now use
  89. cres.o, but thanks).  Thanks to Michael Jansson for smallIFFparse (a
  90. sub-set of IFFparse that is Freely Redistributable) and sample code.
  91. Thanks to Radical Eye Software for MinRexx (which is used almost
  92. unchanged in ISpell and with some modification to allow an application
  93. to send ARexx commands and receive string responses in GUISpell).
  94.  
  95. Thanks finally to people who worked on the Amiga port of ISpell before
  96. I received it and added the ARexx Server Mode:
  97. Luis Soltero
  98. Tomas Rokicki of Radical Eye Software
  99.  
  100. This is the first and only scheduled public release (but believed to
  101. be quite stable).  If you like (or at least use) this free version of
  102. GUISpell, please send [e]mail to me so I can keep track of the number
  103. of people interested in ISpell and GUISpell related software.  The
  104. [e]mail address you use will be kept and when I announce the full
  105. version of the software, I'll mail you at that address with details.
  106.  
  107. Please send information about any programs (or the actual macros) you
  108. have made or make to interface with this package:  ISpell and GUISpell
  109. (if you look at the examples that I provide, you will note that
  110. requests to 'IRexxSpell' and 'GUISpell' are intertwined --- it is now
  111. assumed that if you have ISpell, you will also have GUISpell).  Please
  112. give yourself credit in the macros' header comment.
  113.  
  114. Currently I have ISpell/GUISpell interfaces for the following programs:
  115.  - CED (3 different sets now!
  116.         * 1 for pre v 2.12 - just ISpell
  117.         * 1 for v 2.12 - just ISpell
  118.         * 1 for v 2.12 - GUISpell w/ ISpell),
  119.  - mg,
  120.  - TurboText (both
  121.    * plain ISpell and
  122.    * GUISpell w/ ISpell),
  123.  - CLI/WShell,
  124.  - idea for a VLT interface using the keystroke trapper (not done yet),
  125.  - rough set for ProVector,
  126.  - GUISpell by itself.
  127.  
  128. I have heard of a set of macros that play with ProWrite.  I would
  129. like them, so I can include them in this package.
  130.  
  131. As I updated some of the macros I use with ISpell when I got 2.04
  132. (because they had some filenaming problems), I will include them
  133. in this package.  Look in rexx/ for GUISpell/ISpell macros.
  134.  
  135. Currently, GUISpell makes no attempt to fire up ISpell, thus you must
  136. make sure that it is up and running before GUISpell tries to request
  137. ISpell services.  If you forget to start ISpell, currently the screen
  138. will flash when GUISpell tries to send ISpell a message.  You may
  139. start up ISpell and retry the GUISpell operation, no harm done...
  140. This issue is being looked into and is to be addressed in the full
  141. release.
  142.  
  143.  
  144. This is a rough manual to GUISpell:
  145.  
  146. GUISpell - The GUI:
  147.  
  148. These are brief notes to get you going, play around a bit.
  149.  
  150. [This public release of GUISpell only supports public screens as
  151.  follows:  first try to open on CED's screen if available,
  152.        else try to open on WorkBench screen.
  153.  Other releases will support public screens in a general way and allow
  154.  public screen jumping, etc., but you will have to buy that version.]
  155.  
  156. [This public release of GUISpell only supports the plain ISpell
  157.  program's ARexx port.  The full release supports general spell
  158.  checking programs that adhere to the `Spell Checker ARexx Interface'
  159.  and International ISpell ARexx port.]
  160.  
  161. Lookup Style-
  162.  
  163. Spell:   uses address 'IRexxSpell' check <current word in user text area>
  164.          to generate a list of replacement words in the list view area
  165.          when a `check' is requested (see below).
  166. Reg exp: uses address 'IRexxSpell' lookup ...
  167. Exact:   uses address 'IRexxSpell' quickcheck ...
  168.  
  169. Auto-Clip-
  170.  
  171. [If turned on]
  172. Turns on the clipboard hooks!  When another application places text
  173. IFF data into the clipboard, GUISpell will take the new data from the
  174. clipboard and place it into the user text area.  The new data is then
  175. checked with the currently selected Lookup Style.  There is a discriminator
  176. filter that will not latch new data if it looks like more than one word.
  177. In cases that are discriminated against, the user must manually invoke
  178. the `from clip' operation by hitting the From Clip button.  This mode works
  179. great with Snap's ability to snap a word into the clipboard.
  180.  
  181. Likewise, when the user selects a replacement word from the list view area,
  182. the word is transferred to the clipboard.
  183.  
  184. Add button-
  185.  
  186. Adds the current word in the user text area to the personal dictionary,
  187. using the address 'IRexxSpell' add ... command of ISpell.
  188. [If no personal dictionary was found at startup time, then one is created
  189. by ISpell.  Consult ISpell documentation, as I think that there may be
  190. some differences based upon version.  The version I currently use likes to
  191. create and find the personal dictionary in the directory pointed to by
  192. env:HOME and then in S: (if env:HOME is not set).]
  193.  
  194. User text area-
  195.  
  196. There are many ways that this field can be set.  The most direct way is
  197. for the user to click inside the field and type new data.  Standard
  198. Amiga-Q/Amiga-X handling is performed.  Hitting return while the text
  199. cursor is anywhere in the field will start a spell check with the currently
  200. set Lookup Style.
  201.  
  202. Do button-
  203.  
  204. Alternate way to start a spell check with the currently set Lookup Style.
  205.  
  206. From Clip button-
  207.  
  208. The manual way to get data from the clipboard.  The new data is then
  209. checked with the current Lookup Style.  There is a discriminator
  210. filter that will not *check* (note how this is different from the
  211. discriminator on the auto-clip action) new data if it looks like more than
  212. one word.  In cases that are discriminated against, the user must manually
  213. invoke the `Do' operation by hitting the Do button.
  214.  
  215. To Clip button-
  216.  
  217. The manual way to put data into the clipboard.  The current text in the
  218. user text area is transferred to the clipboard.
  219.  
  220. List View area-
  221.  
  222. The user can view available replacement words after a check is completed
  223. by using the available scoll bar.  If a word is clicked upon, then it
  224. is transferred to the user text area (a REXX call back and an auto-clip action
  225. may take place also).
  226.  
  227. This area can be hidden from view with the ZOOM gadget.  It is
  228. restored in the same manner as hiding, another click on the ZOOM
  229. gadget.
  230.  
  231. The first entry in the list view is a solo character form the table below
  232. (OR "yes" or "no", if in exact mode):
  233. [This is a temp kludge.  See future issues below. -Loren]
  234. [Excerpt taken from man/ispell.1:]
  235. If the word was found in the main dictionary, or your personal dictionary,
  236. then the line contains only a '*'.  If the word was found through suffix
  237. removal, then the line contains a '+', a space, and the root word.  If the
  238. word is not in the dictionary, but there are near misses, then the line
  239. contains an '&', a space, and a list of the near misses separated by
  240. spaces.
  241.  
  242. Also, each near miss is capitalized the same as the input word if unless
  243. such capitalization is illegal; in the latter case each near miss is
  244. capitalized correctly according to the dictionary.  Finally, if the word
  245. neither appears in the dictionary, and there are no near misses, then the
  246. line contains only a '#'.  This mode is also suitable for interactive use
  247. when you want to figure out the spelling of a single word.
  248.  
  249. GUISpell - The ARexx interface:
  250.  
  251. [This public release of GUISpell only supports one ARexx port name.
  252.  The name of the port is 'GUISpell'.]
  253.  
  254. CHECK <word>
  255.  
  256.   Inserts <word> into the user's edit window and initiates an async
  257.   spell check upon the word.  The list view is updated once the request
  258.   has been satisfied by ISpell.  Returns the string, "ok".
  259.  
  260.   NOTE: Returns right after initiating the spell request.  GUISpell
  261.   doesn't wait for the return from ISpell.  Use the IRexxSpell interface
  262.   if you want to directly spell check a word.  Currently, the lookup style
  263.   is always `Spell' (even if the user has set some other mode via the
  264.   GUI).
  265.  
  266. CURRENTTEXT
  267.  
  268.   Returns, in string form, the current user selected text (i.e. the
  269.   text in the user's edit window).
  270.  
  271. CHECKCALLBACKHOOK <path:path/.../file.rexx> <parameters>
  272.  
  273.   If a check call back hook is not already present, this ARexx message
  274.   causes GUISpell to install a call back hook that is activated ONCE
  275.   AND ONLY ONCE when a user clicks on a replacement word.
  276.   Returns the string "installed" or "notinstalled" depending upon if
  277.   a hook could be installed.
  278.  
  279.   NOTE:  Currently, the rexx call back with parameters should be less than
  280.   512 bytes of data.  If a request to install a call back with more than
  281.   512 bytes of data is found, it will fail with a "notinstalled" return.
  282.  
  283. VERSION
  284.  
  285.   A short version string is returned with a list of all supported ARexx
  286.   commands.
  287.  
  288. EXIT
  289.  
  290.   Causes GUISpell to terminate after replying to the request.
  291.   Returns the string "bye".
  292.  
  293.  
  294. WARNING: I did find a nasty bug in Snap 1.61 that *will* cause a
  295. system crash if the IFF text in the clipboard has an ANNO chunk after
  296. the the data chunk!  Mail has been sent to Snap's author, but after a
  297. month, I still haven't heard a reply.  Surprisingly, ASDG's cb2rx has
  298. a problem (not a crash inducing error) with ANNO chunks in IFF text
  299. also!  Needless to say, I don't put ANNO chunks in the IFF files
  300. anymore.
  301.  
  302.  
  303.  
  304. Features in the full non-freely redistributable release (that isn't
  305. quite done yet):
  306.  
  307. Ability to specify which public screen to open on at startup time.
  308.  
  309. Move (jump) between public screens via ARexx and GUI.
  310.  
  311. Support for more than one GUISpell being open (ARexx port stuff fails
  312. currently in the free public release) and ability to name the ARexx
  313. port GUISpell should use.
  314.  
  315. Ability to specify name of backend spell server's ARexx port to
  316. connect to a startup time and dynamically via GUI and ARexx.
  317.  
  318. Ability to start a backend spell server via GUI.
  319.  
  320. Support for user specified window/zoom coordinates.
  321.  
  322. More power exposed to ARexx interface.
  323.  
  324. True `hide window' state (ARexx or commodity HotKey brings back) in
  325. addition to `zoom window'.
  326.  
  327. Fix of the List View Solo Character on First Line kludge.  That is,
  328. the list view is only used to list replacement words and the result of
  329. a spell check is displayed in another (cleaner) manner.
  330.  
  331. Support, I won't answer any [e]mail related to GUISpell unless you are
  332. registers.  Bug fixes will be as fast as I can make them if you are
  333. registered.
  334.  
  335. Full source included as in this version.  Unlike this free public
  336. version, you will have the right to make changes (that may be passed
  337. around to other registered users of GUISpell if you like).  I believe
  338. in full source disclosure (ah, the one thing about GNU software that I
  339. really like).
  340.  
  341.  
  342. If you use ISpell, please give this beast a work out.  Feel free to
  343. tell me what you like and hate about the implementation (proposed and
  344. actual).  New feature ideas will be welcomed.  FINAL DISCLAIMER:  I am
  345. under no obligation to provide support or reply [e]mail on anything
  346. you [e]mail me related to this free public release of GUISpell OR to
  347. provide the above mentioned full non-freely redistributable version of
  348. GUISpell.  I'm somewhat of a softy and will most likely answer your
  349. [e]mail and I have every intention of finishing the full release soon,
  350. but one never knows what might come up.
  351.  
  352. Regards and thanks for reading this document,
  353. Loren J. Rittle
  354. l-rittle@uiuc.edu
  355. Wed Mar 25 22:19:59 1992
  356.