home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / textutil / jgpsuite / Docs / JGPDiscuss < prev    next >
Encoding:
Text File  |  1993-04-20  |  11.1 KB  |  244 lines

  1. .// Source for Doc_JGPDispute  Tue,17 Mar 1992
  2. .gute 5
  3. .ht 2 10 12
  4. .// This sets tabs for the indented layouts below.
  5. .sp 0                   Comment out if Pages wanted; default 66 lines (.sp 66)
  6. .ft
  7. /
  8.  
  9. .col
  10. |Page \p
  11.  
  12. /
  13.  
  14. .hd
  15. :
  16.  
  17. .if \o
  18. .col
  19. |JGPDiscuss|Tue,21 Apr 1992
  20. .else
  21. .col
  22. Tue,21 Apr 1991|JGPDiscuss
  23. .fi
  24.  
  25. :
  26. The JGP (Jolly Good Programs) suite does not fully accord with the desktop
  27. conventions adumbrated in the programmer's reference manual. Apart from the fact
  28. that parts were developed before I fully understood how to cause various
  29. effects, and I still can't seem to work out how to handle text in a window, I
  30. disagree with some principles set out there.
  31.  
  32. I believe in particular that, when a task, for instance an editor, supposes that
  33. the user's channel of attention is totally claimed, it should be the case that
  34. there should be nothing whatsoever elsewhere on the screen to make
  35. that channel noisy, neither another window, nor framing paraphenalia for the
  36. editing window. Like all good rules of practice, there may, rarely, be
  37. circumstances where this does not hold.
  38.  
  39. However, this does not imply that other tasks should not be able to continue in
  40. the background; indeed editors are usually waiting on user input, and, until a
  41. key is pressed, there is plenty of CPU time not to be wasted. Similarly, if a
  42. program is running a printer, the printer buffer will be full, and there is
  43. plenty of CPU time to spare.
  44.  
  45. Again, the editing window should not pre\-empt urgent messages from other tasks,
  46. such as Alarm, or indeed JGPCopy's own requests that are issued for single sheet
  47. and/or verso printing. But, once the pre\-emptive request has been satisfied,
  48. the editing window should be able to be verified and cover the now irrelevant
  49. intruder. (Since it has no frame, the standard desktop click on the title\-bar
  50. is not available.)
  51.  
  52. But, equally, one may wish to lay aside what one is doing to look around
  53. for what is elsewhere on the desktop, before continuing one's main work. The
  54. programs of the JGP suite can close their working window and diminish to simply
  55. assert their continued presence by a small 'latent' window in the desktop.
  56. Clicking menu in the latent window opens a menu which includes the choice of
  57. 'Continue' in the full editing window.
  58.  
  59. The two handlers, for the !jgp suite and the !jgpcopy subset do not, apart from
  60. menu leaves, open windows, but JGEd, JGPrint, JGPCopy and JGConfig each do.
  61. Their individual  charecteristics are discussed below.
  62.  
  63. The programs are written in BCPL, since I regard C's ontology as damagingly
  64. limited and misconceived. Not that C lacks some merit or BCPL some weaknesses. I
  65. do not discuss my choice further here other than to remark that, since I have
  66. written the operating system interface, it lacks parts I am too lazy to include,
  67. such as support for modules, and parts I do not yet understand such as interrupt
  68. and event handling, but at least, what I use, I understand.
  69.  
  70. As at 4/92, I have not split the sprites I use into those to go into the
  71. !sprites and the sprites files. I entirely agree with Acorn that this should be
  72. done, but it always seems low priority. However, I put the sprites into windows,
  73. via a template file, and do not see how to do this except from !Sprites.
  74.  
  75. I use text dialogue rather than menus to drive the programs. My view is that
  76. where the decision tree is deep and narrow rather than wide and flat this is
  77. preferable, and this applies throughout the JGP suite with one exception: in
  78. JGConfig, there is a multi\-way switch to choose what kind of printer
  79. configuration to do, and this would be better as a menu. I have left it as
  80. dialogue, from laziness, unimportance, and to demonstrate where dialogue falls
  81. down.
  82.  
  83. Of course, just as menus require careful ergonomic design, so does dialogue, and
  84. I am fairly well satisfied with what I have provided. In particular the use of
  85. the mouse buttons as aliases - in principle, select for first prompted choice,
  86. adjust for second choice/denial - works well, as does the choice of prompts so
  87. that the regular route through all programs is a succession of selects.
  88.  
  89. The JGPrint driver dialogue (cf. JGPrintInfo) with its unusual use of the Menu
  90. click to modify the following Select or Adjust click, seems at first sight
  91. absurd, but, actually, I find it works quite well.
  92.  
  93. It seems that the use of text windows confuses the Wimp and leaves garbage on
  94. the desktop; if you encounter this an f12 <ret> repaints it cleanly.
  95.  
  96. I list here the facilities I have found lacking: a request to the Wimp to
  97. repaint the desktop; the capability in FormEd or Paint to copy an icon in one
  98. window to another, or to a sprite file; the ability to alter the size of a text
  99. or sprite icon. No doubt I have missed something.
  100.  
  101. .col
  102. |Text Windows
  103.  
  104. Even if I had worked out how to use vdu5 text, I would still use vdu4 for JGEd
  105. and JGPCopy. In both cases it is important to be able to have different sized
  106. text in the editing window; in JGEd, I need the fx 4 0 copy facilities (see
  107. SHIFT-COPY), which is not available in vdu5.
  108.  
  109. .col
  110. |Drivers
  111.  
  112. I use a driver program to instantiate instances of JGEd/Print/PCopy/Config,
  113. rather than a single program which can provide multiple replications defined by
  114. which set of data it is operating on. I think this saves store when nothing much
  115. is going on,
  116.  
  117. .col
  118. Icons and File Numbers
  119.  
  120. At the moment, !jgp.!boot contains:-
  121. .nofj
  122. set File$type_203 JGEd
  123. set File$type_200 JGPrint
  124. set File$type_205 JGPCopy
  125. .usel base
  126.  
  127. I hope Acorn will assign me other file types. I believe that all that is needed
  128. is to use !paint to rename the icons in !boot and !FormEd to rename the names of
  129. the sprite icons in Templates and TemplatesH, and all no actual code will need
  130. to be changed.
  131.  
  132. .col
  133. |JGPSuite details
  134.  
  135. .col
  136. |OwnWindow and latentWindow
  137.  
  138. When the JGPSuite programs are using the screen to interface with the user, they
  139. run in their 'own' window which occupies the whole screen, covering the desktop.
  140.  
  141. They may retreat under user control to a small 'latent' window. Except for
  142. JGPrint, which, unless JGPrinting to 'screen' etc, can happily run "in
  143. desktop", nothing can happen in them until they return to their own window, via
  144. a menu opened by clicking in the latent window, and selecting 'continue'.
  145.  
  146. While in their own window, the JG Programs return control to the Wimp manager,
  147. so that any other concurrent task can use idle resources.
  148.  
  149. Any other task, eg the alarm, may open a window above a JGP own window; when it
  150. goes, the JGP window may need to be reminded to recover the area it occupied.
  151.  
  152. Except in JGEd, clicking mouse-menu moves from own window to latent window.
  153. Except in JGPrint, selecting Continue moves from latent window to own window.
  154. In JGEd, in the editing window, holding shift key while clicking menu gets you
  155. to the latent window; on the macroline, clicking adjust ar executing the macro
  156. 'dk' will also take you to the latent window. In JGPrint, Continue leads to a
  157. sub-menu allowing continuation in either window as appropriate. Writing to the
  158. Jot file always requires the own window. See the individual JGEd and JGPrint
  159. documentation for more details.
  160.  
  161. When JGEd is in the latent window, the file being edited, or a marked block
  162. thereof, can be saved in a filer window or in some other task, notably, of
  163. course, another JGEd task, and a file can be loaded (inserted) from a filer
  164. window, or from another task.
  165.  
  166. .col
  167. |Backup in JGEd
  168.  
  169. The automatic backup facilities of JGEd are discussed in detail in JGEdDoc. If
  170. you haven't yet managed to get round to reading this, you may be puzzled by a
  171. report window  offering to backup your file, and proposing where this should be
  172. done. YOUR EDITED TEXT HAS ALREADY BEEN SAVED. This window is offering to back
  173. up a second copy for you on a chosen floppy, in a chosen directory. If you have
  174. not setup such a directory, using Elsewhere previously, there will be a shaded
  175. window saying b/u unset. To ignore this backup structure, click on Quit, to
  176. backup where suggested, click on Backup. Clicking on Elsewhere will give you a
  177. save window in which you can insert the leafname you want for backup, and then
  178. drag the icon to a filer or application window. 'Elsewhere' may alter whither
  179. future backup proposals are made. See JGEdDoc for details.
  180.  
  181. .col
  182. |'Anonymous Tasks'
  183.  
  184. If an icon is dragged from an application to the JGEd Latent window, JGEd will
  185. insert the text provided by the application in the text it is currently editing,
  186. which could well have been empty, and continue without affecting the name of the
  187. file that it understands itself to be editing.
  188.  
  189. However, if such an icon is dragged to the icon bar, the JGPSuite has a very
  190. profound problem: whence is the file to be JGEdited, JGPrinted or JGPCopyed to
  191. be deemed to come? Of course, the file will be that named <wimp$scrap> at the
  192. time of the interchange, but the JGP tasks may require their source files to
  193. remain available throughout the task's lifetime; but other tasks may need to use
  194. <wimp$scrap> before then.
  195.  
  196. The JGPSuite tackles this problem by copying <wimp$scrap> to <wimp$scrapdir>.fn,
  197. where fn is the leafname of the file that the other task supplied as part of the
  198. interchange protocol (usually by the name used in the save window). The JGPSuite
  199. task is then given this filename to work with, and told that it is its
  200. responsiblity to delete this file when its task terminates.
  201.  
  202. In JGPrint, merge, index and user variable files should be included via the
  203. desktop, rather than the short names in the ownwindow dialogue; however, if you
  204. want to initialise user strings, you must do so via the prompt in the ownwindow
  205. dialogue.
  206.  
  207. In JGEd, on exit, in place of the backup window, a window offers you the choice
  208. of Preserve or Lose the file you have been using. The other tools just lose the
  209. temporary scrap file the handler has given them to use.
  210.  
  211. In JGPCopy, the "+ delete" chice in the option menu is ticked on entry, and
  212. cannot be cleared by menu selection.
  213.  
  214. The handler !JGPCopy, unlike !jgp cannot deal with anonymous tasks.
  215.  
  216. .col
  217. |JGPCopy's Interaction with !Printers
  218.  
  219. In ...!jgp.!boot, Alias$@PrintType_205 is set to
  220. ....SCSI::SCSIDisc4.$.John.!jgp.!runimage 4 %0 and this causes JGPCopy to copy
  221. any JGPCopy file directly through to the Printer on a !printer request, without,
  222. as far as I can see, any diversion from the active printer driver. Moreover,
  223. JGPCopy will respond "Device in use" to a "Device Claim" from the printer port
  224. in use. My !Printers (versin 0.33 ) does not appear to send a PrintError 1
  225. message, so that if there is no selected printer, it fails to print. In
  226. !jgpcopy, these facilities are not available.
  227.  
  228. .col
  229. |Printer configuration files
  230.  
  231. For a discussion of JGPrinter configuration files, see the beginning of
  232. PrParmDoc.
  233.  
  234. .col
  235. |A Bug that Maddens me, Sat,07 Nov, 1992 - April 1993
  236.  
  237. I have had some problems in clearing the text window associated with JGPrint's
  238. Own window both on changing modes and if colours have been changed. There is a
  239. visibly elaborate deleting and creating of new own-windows on re\-entering the
  240. own window from JGEd's latent window that now (4/93) seems to get round it.
  241.  
  242.  
  243.  
  244.