236 First line holds number of lines in file. EEDRAW Functions ---------------- File menu: ---------- LoadEEDFile - Prompts for a file name (List question), and reads it from the current directory, if SELECT key, abort if ABORT key. Note file type must be '.eed'. A new window is created for it and the user is prompted to set the window size (see ResizeWindow). NewEEDFile - Creates a new drawing window not assosicated with any file. This is the way to create new drawings. The user is prompted to set the window size (see ResizeWindow). SaveAllEED - Saves all unsaved drawings. This is probably useful before quiting eedraw. SaveEEDFile - Saves currently edited file. This routine can be used only after a new file was saved at list once, or it was loaded. In both cases, it will be saved on the same name, after renaming old one to have '.bak' extension. Ask for verification (Yes/No question). SaveEEDAsOld - Same as SaveEEDFile, but prompts with list of all '.eed' files in current directory, and saved by the name selected if SELECT key, or abort if ABORT key. SaveEEDAsNew - Same as SaveEEDFile, but prompts for a new file using String question. CloseEEDFile - Closes a drawing window associated with a file. Note that non of the above saving functions close the window, and this function is the only way to close a window. Ask for verification if data modified (Yes/No question). ClearAll - Clears all eedrawing data in a picked window. The user is requested to "click" on the window to clear. Ask for verification (Yes/No question). Directory - Display content of current directory as in List question. both SELECT key and ABORT key can be used to exit this mode. Unlike LoadEEDFile, all files are displayed. ChangeDir - Prompts with String question for a new directory. Old directory is provided to begin with. ShellToDos - "Fork"s (I wish this was true...) to the DOS O.S. . Type 'exit' at the DOS prompt to return to EEDraw. ExitEEdraw - Exits the Program. Ask for verification (Yes/No question) and issue a warning if not all files were saved. Window menu: ------------ PopWindow - Pops up a window the user picks. The window is being picked by "clicking" on it. ABORT key aborts this operation. PushWindow - Pushes down a window the user picks. The window is being picked by "clicking" on it. ABORT key aborts this operation. MoveWindow - Moves a window the user picks. The window is being picked by "clicking" on it. ABORT key aborts this operation. The picked window frame is poped up so current position is all visible. The cursor prompt changes to a box in the window size that the user needs to place as the new position. ResizeWindow - Same as MoveWindow but for resizing the window. FullSize - Blows up a window the user picks. The window is being picked by "clicking" on it. ABORT key aborts this operation. This make the window as big as possible in the current display device. Calling this function again on the window will recover its original size. This function may be activated on drawing windows only. ShowName - A toggle to show/hide window name. The window name is simply the filename the window is associated with. Also displayed is O)riginal, M)odified, or S)aved file status as O/M/S letters. MakeActive - All drawing operations are performed on the active window. If only one drawing window exists it is the active one. If more, exactly one of them is the active one. This function selects the active window by a user pick. The window is being picked by "clicking" on it. ABORT key aborts this operation. NameActive - All drawing operations are performed on the active window. If only one drawing window exists it is the active one. If more, exactly one of them is the active one. This function selects the active window by name. A list query of all drawing window (file) names is being poped up and the selected becomes the active one. PanWindowLeft - Pan the ACTIVE window a half window to the left. PanWindowRight - Pan the ACTIVE window a half window to the right. PanWindowUp - Pan the ACTIVE window a half window up. PanWindowDown - Pan the ACTIVE window a half window down. Display menu: ------------- ZoomOut - Zoom out (center of screen remains at center) by factor of 2. Note that if you zoom out from regular zoom factor, text will disappear as it can not be shrinked. You can enable text from the Status menu manually. ZoomIn - Zoom in (center of screen remains at center) by factor of 2. ZoomReset - Reset Zoom value to the regular zoom factor. RedrawAll - Redraw all screen. Libs menu: ---------- LoadLibrary - Prompts for a file name (List question), and reads it from the current directory, if SELECT key, abort if ABORT key. Note file type must be '.lib'. FreeLibrary - Prompts with all loaded libraries with List question, and frees the selected one if SELECT key, abort if ABORT. ViewLibrary - Prompts with all loaded libraries with List question, If a library has been selected via SELECT key, prompt with all parts defined in this library again with a List question. Selection of a part with SELECT key will display it. ABORT will go back to library List question, which can be aborted again via the ABORT key. DirLibrary - Displays content of current directory library files (those with '.lib' extension) as in List question. both SELECT key and ABORT key can be used to exit this mode. Draw menu: ---------- DrawLine - Enters drawing mode. If HVLines is set (see SETUP, EEDraw.cfg section), only horizontal/vertical lines are allowed. In this mode, pressing SELECT key will insert a new point in the created polyline and pressing ABORT will delete the last entered point. If however, there are no points at all in the current polyline, ABORT key will abort this mode. Also, pressing SELECT twice (at the SAME place as the last point entered) will complete the drawn polyline. DrawBus - Same as DrawLine, but draw thicker lines. DrawConnect - Draw a connection junction, if SELECT key is pressed, or abort if ABORT key is pressed. DrawText - Prompts for a string with String question, and then position the text horizontally or vertically. If the positioning is terminated with ABORT it is ignored, SELECT will update. DrawLibItem - Prompts for a part name with String question. If this is not the first invocation to this mode, last part will be used as default string (remember you can always use Esc to clear to a fresh line). If part is found (name is exactly the same as shown in the ViewLibrary function above), a pop up menu will allow to rotate it 90 degree CW or CCW or mirror it. Successive SELECT will transform the library item to the desired orientation, while ABORT will abort this DrawLibItem mode. SELECT PlaceIt (top menu entry) will allow to position the part in the exact place. The user is also been prompted for Chip (i.e. 74LS00) and Part (i.e. IC7) names if they are required/allowed (see Appendix on library file definition) for this part. These are positioned similar to the way DrawText position its text, except that Chip name is already known and can not be modified. Modify menu: ------------ This menu is heavily based on Picking objects. a single object is being picked if the cursor is on an object. The cursor is considered on an object if one of the following: A. Line and Bus items: the cursor is on one of the Line/Bus end points (any point that was set by SELECT when it was created, including internal points). B. Connect item: the cursor is on the Connect center. C. Text item: the cursor is inside the smallest axes parallel bounding box holding this text. D. Library item: the cursor is on any polyline end point (including internal points). The picked object will blink. SELECT key will select it, ABORT key will cause the next object, if such exists at this position, to blink until one is selected via the SELECT key, or no more objects can be picked. If no object at all is found at the cursor point, the point is used as first corner of a box to pick a set of objects - a second SELECT key will pick the second corner of the box, ABORT key will abort this mode. All objects intersect with the defined box, will be considered picked, with no more verification. ModifyMove - Pickes object(s), and moves it (them) to a new position. Once the object(s) is (are) picked, SELECT key will set its(their) new position, ABORT will leave it unchanged. ModifyCopy - Pickes object(s), and copies it (them) to a new position. Once object(s) is (are) picked, SELECT key will place it(them) in new position, ABORT will abort the copy operation. EditLibItem - if the picked object(s) is a single library item, allows editing any of the following (via a pop up menu): A. Editing the part name. This is the only way to add a part name to a library item if the library item has none by default. B. Toggle to Draw/Undraw chip name (if this chip is allowed to have one). C. Reposition Chip name (if this chip have one). D. Reposition Part name (if this chip is allowed to have one). E. Reorient the lib part. Picking one of the above via SELECT will allow text positioning or text editing (via String question). ABORT or selecting Done (first menu entry) will abort this EditLibItem mode. ModifyDelete - Deletes the picked object(s). The deleted object(s) is (are) saved in a special 10 places deep stack, and deleted items can be undeleted using the ModifyUnDel function. Each of the 10 placed stack can hold any result of a pick no matter how many objects are inside. This Delete/Undelete mechanism can be used to cut and paste even between different files/windows - this stack is never being cleared. ModifyUnDel - Undelete the last delete operation (see ModifyDelete), from the delete stack (LIFO). ModifyCut - Same as ModifyDelete, but original is NOT deleted. The object is being pushed onto the undelet stack and can then be ModifyUnDel, ModifyPaste etc. ModifyPaste - Same as ModifyUnDel, but the undelete stack is NOT modified. This function enables pasting and placing the same object few times. ModifyDrop - Drops the top of stack from the undelete stack. May be used to drop a cut/paste object sequence from stack. Status menu: ------------ Help - Pops up an help window and displays the content of eedraw.hlp. If the help window is already poped up, this function will close it (acts like a toggle.). GetMemoryFree - Prompts with a continue question, on the current free memory. Getting close to zero is unsafe! GetZoomFactor - Allows you to see the current zoom factor SetDrawText - Sets drawing of text smaller than minimal size (8x8). This will draw text at 8x8 size which is too big, but may be sometimes useful. SetTextSize - Sets the scaling (up only) of the text size. By default this is equal to 1, but up to scaling up by 7 is allowed. SetAutoPan - If TRUE, auto panning will occur when placing objects that have been moved off the active WINDOW. The object will be place so it is centered in the window. SetHVLines - Allows drawing of diagonal lines as well if set to FALSE. Uses Yes/No question. SetSnapFactor - Sets the invisible grid the cursor position is snapped to. You probably do not want to change this, especially not in the middle of file editing. Uses String question, and display current Snap factor to begin with. Other (not in any menu): ------------------------ SameAgain - Executes the last function again. If you have a mouse with 3 buttons, pressing middle button will execute this command (hard-bound). if you have a mouse with 2 buttons, pressing both buttons will execute this command (hard-bound).