Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!apple!agate!linus!linus!sdimax2!jrv From: jrv@sdimax2.mitre.org (VanZandt) Newsgroups: comp.lang.c++ Subject: Re: Turbo C++ and Zinc Interface Library, Recommendations? Message-ID: <125640@linus.mitre.org> Date: 7 Nov 90 13:37:07 GMT References: <1990Nov2.015742.19381@murdoch.acc.Virginia.EDU> Sender: usenet@linus.mitre.org Lines: 129 I recently got a copy of the Zinc library demo disk. Here are my initial reactions... --- Demo disk files --- Root directory files: README 857 9-01-90 2:00p DEMO EXE 214785 9-01-90 2:00p D_HELP HLP 13908 9-01-90 2:00p SOURCE 9-01-90 2:00p Source code files: D_CALC CPP 4924 9-01-90 2:00p D_CLASS CPP 1963 9-01-90 2:00p D_CTRL CPP 10922 9-01-90 2:00p D_DATA CPP 2723 9-01-90 2:00p D_DEMO CPP 4851 9-01-90 2:00p D_DEMO HPP 2706 9-01-90 2:00p D_DIRECT CPP 7104 9-01-90 2:00p D_EVENT CPP 6840 9-01-90 2:00p D_GRAPH CPP 2395 9-01-90 2:00p D_ICON CPP 10380 9-01-90 2:00p D_PIANO CPP 5826 9-01-90 2:00p D_WIN CPP 11415 9-01-90 2:00p --- Comments & Questions --- The demo runs in graphics mode by default, but will also run in several text modes and the user can switch from one mode to another. The text mode windows look a lot like those in the TCE. The graphics mode windows look much sharper. Size: The demo file is 214K - how much of this is TC++ library code, and how much is Zinc library code? What is the minimum size of a program using Zinc? Presumably the demo uses nearly all the functions. Will the linker include functions for unused features? Speed: Opening 24 overlapping graphics mode windows of various sizes, then closing them, took about 2.7 sec on a 25 MHz '386. The same sequence in text mode took about half as long. Mouse functions: With a mouse, multiple windows can be opened, with the most recently opened window being active. The active window has minimize and maximize buttons in the upper right and an anonymous button in the upper left. Clicking on the anonymous button brings up a generic window menu with the options restore, close, move, resize, maximize, and minimize. I found these functions easier to access directly: move a window by dragging on its title, resize it by dragging on a side or a corner, minimize or maximize by clicking the appropriate buttons, and close by hitting the escape key. The "restore" command undoes the effect of the minimize or maximize command. In contrast, the minimize and maximize buttons in the corner of the window are toggles. Windows can fall partly off the screen, so long as part of the top edge remains visible. Clicking in an inactive window makes it active and brings it to the front. Dragging on a menu will move the "current choice" bar, but releasing the mouse button does not select the highlighted choice. An explicit click is needed. I found no way to pop up the generic window menu with keyboard commands. However, there are alt-function key combinations for those commands, plus exit and editing commands. Is the programmer responsible for restoring material covered by a window, or does the library code save and restore it for him? (This is a time+complexity vs. space tradeoff.) The text for windows (including the help windows) are in the separate file D_HELP.HLP. The demo will run without the text file, but buttons that would call up text windows don't work. Keeping the two files together is a configuration control problem. Here is a dump of the beginning of D_HELP.HLP: 0000H AF 05 01 00 23 00 CE 32 00 00 54 68 65 20 66 6F '/...#.N2..The fo' 0010H 6C 6C 6F 77 69 6E 67 20 61 63 74 69 6F 6E 73 20 'llowing actions ' 0020H 63 61 6E 20 62 65 20 70 65 72 66 6F 72 6D 65 64 'can be performed' 0030H 20 6F 6E 20 77 69 6E 64 6F 77 73 3A 20 0D 0A 0D ' on windows: ...' 0040H 0A 20 20 4D 41 58 49 4D 49 5A 45 20 3C 41 6C 74 '. MAXIMIZE MINIMIZ' 0060H 45 20 3C 41 6C 74 20 46 39 3E 0D 0A 20 20 4E 45 'E .. NE' 0070H 58 54 20 20 20 20 20 3C 41 6C 54 20 46 36 3E 20 'XT ' 0080H 20 20 20 20 4D 4F 56 45 20 20 20 20 20 3C 41 6C ' MOVE .. SIZE ' 00A0H 20 20 3C 41 6C 74 20 46 38 3E 20 20 20 20 20 43 ' C' 00B0H 4C 4F 53 45 20 20 20 20 3C 45 73 63 3E 0D 0A 20 'LOSE .. ' 00C0H 20 52 45 53 54 4F 52 45 20 20 3C 41 6C 74 20 46 ' RESTORE ....The follo' 00E0H 77 69 6E 67 20 6F 70 65 72 61 74 69 6F 6E 73 20 'wing operations ' 00F0H 63 61 6E 20 62 65 20 70 65 72 66 6F 72 6D 65 64 'can be performed' ...which is straight ASCII text, except for the first ten bytes (and some bytes near the end of the file). The text does not appear in the source code. Can it be maintained by a straight ASCII text editor? If so, how do the first ten bytes get added? How is the correspondence between the windows and their respective text maintained? The text file has CRLFs only at the end of paragraphs. Wordwrapping is done on the fly, and changes when the window "maximize" button is toggled. In text mode, or in graphics mode on a VGA, the current status is indicated by "square root" symbols to the left of the corresponding menu buttons. In graphics mode on a Paradise EGA, there was no indication. In graphics mode, window buttons for "close", "minimize", and "maximize" are displayed with a 3D effect as if they were lighted from the upper left. Menu buttons lack this. In menus, buttons are merely black text on white (or black on gray for the current button). In the sample pulldown menu, each pulldown menu is left-aligned with its button in the menu bar. Is this a requirement? (If so, then buttons with wide pulldown menus cannot be placed near the right end of the menu bar.) Many of the windows have buttons with labels like "about the help system" that pop up associated information windows. Apparently these windows are special cases of the help window. This means that if you ask for help from within an information window, the help window replaces the information window. When the help window is closed the information window is gone too. ------------------------------------------------------------------------- Maybe someone with the Zinc library can answer some of my questions. In the mean time, I hope this helps. - Jim Van Zandt