home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_GEN / TVGRAPH.ZIP / README.DOC < prev    next >
Text File  |  1994-01-04  |  11KB  |  290 lines

  1. README.DOC    12/31/93
  2.  
  3. Changes with TVGraphic Version 1.5
  4.  
  5. ------------------------
  6. Partial List of What's New with 1.5
  7.  
  8.   BitMapped Text now faster than belief.
  9.  
  10.   Graphic BitMaps and buttons are here.
  11.     See files TVGrafic.Doc and BitMap.DOC.
  12.  
  13.   With the help of users, many bugs have been fixed. The most
  14.   noticable were in the screen redraw mechanism, Listbox,
  15.   GetShiftState, color selection dialog and F6'ing thru
  16.   subWindows in a TPanWindow.
  17.  
  18.   Menus and Listboxes now have highlight bar under focused item.
  19.  
  20.   Can insert a non-modal dialog into a window.
  21.  
  22.   TV's Blinking Text Cursor added.
  23.  
  24.   Interface to Dialog Design v4.0, a Visual Design tool.
  25.     See file Tools.Doc.
  26.  
  27. -------------------------
  28. In Process
  29.   First generation code for TEditor and TMemo in the Editors unit is
  30. running but work and much testing remain.  - expected March 1994.
  31.  
  32.   An interface/conversion program for Dialog Design that generates
  33. TVGraphic source code is included in 1.5. The interface program to
  34. generate TVGraphic resource files is also expected to be ready in March.
  35.  
  36. ------------------------
  37. REGISTRATION Update   see file TVGrafic.Doc for info/license
  38.  
  39. Public (software) Library handles credit card registration for TVGraphic.
  40. When you Register through them, the author will mail you a disk with
  41. the latest version of TVGraphic.
  42.  
  43. "CREDIT CARD ORDERS ONLY -
  44.  
  45. You can order with MC, Visa, Amex, or Discover from Public (software)
  46. Library by calling 800-2424-PsL or 713-524-6394 or by FAX to 713-524-6398
  47. or by CIS Email to 71355,470. You can also mail credit card orders to PsL
  48. at P.O.Box 35705, Houston, TX 77235-5705.
  49.  
  50. THE ABOVE NUMBERS ARE FOR REGISTRATION ORDERS ONLY.
  51.  
  52. Any questions about the status of the shipment of the order, refunds,
  53. registration options, product details, technical support, volume discounts,
  54. dealer pricing, site licenses, etc, must be directed to
  55.  
  56.     Richard P Andresen
  57.     RR2 Box 900
  58.     Hinesburg VT, 05461
  59.     CompuServe # 71222,1200
  60.  
  61. To insure that you get the latest version, PsL will notify me the day of
  62. your Registration and I will ship the product directly to you."
  63.  
  64.  
  65. COMPUSERVE REGISTRATION
  66.   CompuServe online registration should be available early January 1994.
  67. Type
  68.   Go Computer   and select shareware registration
  69. If you register via CompuServe, I assume you have downloaded the current
  70. version of TVGraphic and do not automatically mail you a disk. Email if
  71. you need one. You will receive the upgrade descibed below.
  72.   NOTE:
  73.   There are two TVGraphic v1.5 entries to allow two registration fees.
  74.  
  75.  
  76. Registered Users
  77.   Registered users will automatically receive the Editors unit and
  78. Resource file interface program when they become available.
  79. Source code for the Interface programs will be included so you
  80. can customize them if desired.
  81.  
  82. This file will be updated as things change.
  83.  
  84. ------------------------
  85. Earlier TVGraphic used different names from Turbo Vision
  86.   for GDialogs objects    {object's palette name tracks object name}
  87.  
  88.       TgDialog          {extra constructor parameter}
  89.       TgCluster
  90.       TgRadioButtons
  91.       TgCheckBoxes
  92.       TgButton
  93.       TgCancelButton               {unique to TVGraphic}
  94.       TgOKButton                   {unique to TVGraphic}
  95.           TgInputLine    {extra constructor parameter}
  96.           TgStaticText   {extra constructor parameter}
  97.           TgParamText    {extra constructor parameter}
  98.           TgLabel        {extra constructor parameter}
  99.  
  100.  
  101. With version 1.5, the following objects revert to using the
  102. same name as in Turbo Vision and the same list of parameters in
  103. their constructors.
  104.  
  105.       TgDialog       -> TDialog   {no extra constructor parameter}
  106.       TgCluster      -> TCluster
  107.       TgRadioButtons -> TRadioButtons
  108.       TgCheckBoxes   -> TCheckBoxes
  109.       TgButton       -> TButton
  110.       TgCancelButton -> TCancelButton     {unique to TVGraphic}
  111.       TgOKButton     -> TOKButton         {unique to TVGraphic}
  112.  
  113.  
  114. The result is that with Ver1.5 and up, only those TVGraphic Dialog
  115. objects that have different names have the extra Opts parameter in
  116. their constructor.  As before, it is always the last parameter.
  117.  
  118. Remembering should be easier too - different names/constructors
  119.   for Text objects and InputLines.
  120.  
  121.  
  122. Dialog VOptions:
  123.   Without the extra constructor parameter, setting flags in
  124.   in a Dialog's  VOption field is done after construction.
  125.  
  126.       MyDialog.Init(........);  (your descendent of TDialog}
  127.       begin
  128.         Dialog.Init(.......));
  129.         VOptions := VOptions or (TVGraphic specific option)
  130.         ....
  131.  
  132.         OR
  133.  
  134.       var Dlg : PDialog;
  135.         ...
  136.         Dlg := New(PDialog, Init(.......));
  137.         Dlg^.VOptions := Dlg^.VOptions or (TVGraphic specific option)
  138.  
  139. ------------------------
  140. UserHook
  141. The name of the record type reserved for users has been changed
  142. from TUserHook to TUserRec.
  143.  
  144. Function TView.UserHook now takes a parameter of type TUserRec
  145. instead of a TRect.
  146.  
  147. -------------------------
  148. MGridSize
  149. The variable containing the current setting of the mouse cursor
  150. grid has been renamed and hidden. MGridSize is now a local
  151. variable. Function MCur.GetGrid(AGridRec : MGridRec) has been
  152. added to access grid info.
  153.  
  154. To find the current grid settings:  MGridSize := MCur.GetGrid;
  155.  
  156. -------------------------
  157. Setting the Screen Mode to Color
  158.  
  159. Previous versions of TVGraphic's TVGDemo1 program forced the screen
  160. into color mode in TDemoApp.Init. This can can cause a problem with
  161. B&W LCD laptops which are able to drive an external VGA color monitor.
  162. They end up in color mode and so Turbo Vision selects the color palette
  163. instead of the B&W palette.
  164.  
  165. -------------------------
  166. Changing Palette Colors
  167. The shade of the dark gray and brown colors is modified by calling
  168.  
  169.        procedure ImprovePaletteColors;
  170.  
  171. in the demo program. This is done both in TMyApp.Init and .DosShell.
  172.  
  173. During debugging in the IDE, if you break out of your program,
  174. the original colors will be restored unless you enable (menu)
  175.  
  176.        Options/Environment/StartUp   EGAVGA Palette Save
  177.  
  178. from the IDE's menu.
  179.  
  180. -------------------------
  181. Vertical Spacing for Text Views/Cursors
  182.  
  183. function VertTextOffset   unit MyGraph3
  184.  
  185. This function has been renamed  CalcVertTextOffset.
  186.   function CalcVertTextOffset(ViewYSize : integer) : integer;
  187.      For the current text font, this function calculates a vertical
  188.      offset for drawing the text in a view ViewYSize tall.
  189.      Can also be used to calculate offset to position text in a
  190.      particular vertical text line spacing by passing the line
  191.      spacing as parameter ViewYSize.
  192.  
  193. TView has had three new functions added
  194.   VertTextOffset  : integer; virtual
  195.   VertTextSpacing : integer; virtual
  196.   HorzTextOffset  : integer; virtual
  197.  
  198. The TView versions return the usual TVGraphic values of
  199.   Boxheight for VertTextSpacing
  200.   ByOffset  for VertTextOffset.
  201.       {VerTextOffset calls CalcVertTextOffset(VertTextSpacing)}
  202.   0         for HorzTextOffset
  203.  
  204. The Draw routine for the blinking text cursor calls VertTextOffset,
  205. VertTextSpacing and HorzTextOffset to locate the cursor properly
  206. on the screen.
  207.  
  208. In your descendant views using the cursor:
  209.   If you change a View's text line spacing or the vertical offset
  210. of text into this spacing, you need to override these functions
  211. to return your values.
  212.  
  213. -------------------------
  214. TOKButton and TCancelButton
  215. These standard TVGraphic buttons have been increased in width
  216. from seven to 10 * Charlen. They now match the width of other buttons.
  217.  
  218. -------------------------
  219. TScroller,  TMyScroller (in Demo program)
  220.  
  221. Earlier versions of TVGraphic fixed TScroller.SetLimit in text
  222. mode coords using Charlen and Boxheight. There was no bug free way
  223. to change scroll step and pageup/down spacing.
  224.  
  225. Procedure TScroller.PartOfSetLimit(X, Y ; integer); virtual;
  226. has been added and is now called by SetLimit to set the Limit and
  227. to call the scrollbars to set their step sizes and pageup/down
  228. sizes. By overriding, the programmer can set up a scroller for
  229. ANY vertical and horizontal text spacing (or drawing grid spacing).
  230. See source code example in demo program - TMyScroller.
  231.  
  232.  
  233. TScroller.SetLimits now works entirely in graphic (pixel) coordinates
  234.   unless PartOfSetLimit is overridden.
  235.  
  236. TMyScroller overrides PartOfSetLimit and works entirely in text
  237.   mode coordinates as before.
  238.       {lines vertically, chars horizontally}
  239.  
  240. You will need to change coordinates in calls to TScroller.SetLimit
  241. and possibly override PartOfSetLimit for views descending from
  242. TScroller rather than from TMyScroller. See demo program.
  243.  
  244. -------------------------
  245. StatusLine
  246.   Events broadcast from the StatusLine now have the InfoPtr set to
  247. Ptr(0000,0001) rather than @Self as in earlier TVGraphic.
  248.  
  249. -------------------------
  250. WriteCStr
  251.   This routine writes highlighted text strings and has been joined
  252. by WriteCStrXY. Both procedures are now in the MyGraph3 unit.
  253.  
  254. -------------------------
  255. Mouse Cursor Madness
  256.   The cursor now can travel full screen. An hourglass "wait" cursor
  257. has been added with a global flag to enable it. TMCur.SelectStdCursor
  258. and TMCur.SelectHourGlass switch between shapes.
  259. See unit MCursor in Reference file.
  260.  
  261. -------------------------
  262. TV's Intrinsic Blinking Text Cursor??
  263.   Yes its here but may not be entirely bug free. To enable the cursor
  264. in a view, you need to set the view's EventMask to include evTimerTick
  265. and call ShowCursor. Due to the fact that graphic mode doesn't support
  266. a blinking cursor in hardware, you are partly responsible for the
  267. cursor in your own redraws unless you redraw by calling DrawView.
  268. As usual, TVGraphic handles the automatic screen redraws.
  269.  
  270. See section in TVGRAPHIC.DOC.
  271. See TView methods SetCursor, ResetCursor in Reference file.
  272.  
  273. -------------------------
  274. TApplication.GetEvent
  275.   Earlier versions of TVGraphic used the demo program's TMyApp.GetEvent
  276. to generate TimerTick events and to update the mouse cursor position.
  277. These operations are now done in TProgram.GetEvent. The remaining code
  278. in TMyApp.GetEvent is optional. In your TApp.GetEvent, eliminate code
  279.  
  280.   if (Event.What = evNothing) then begin
  281.     GetBiosTickEvent(Event);
  282.     if not (Event.What = evNothing) and not (TopView = @Self)
  283.       then begin
  284.         HandleEvent(Event);
  285.       end;
  286.    end;
  287.  
  288. AND
  289.     MCur.Move(Event.Where);    {move cursor to mouse location}
  290.