EVE 

EVE User Manual

EVE version 3.53, March 2003
v2.00 - fantastic new alignment/stretching tool!
v2.10 - Polygons/lines up to 42 points, insert/delete points!
v2.18 - Flip selected elements horizontally or vertically!
v2.21 - Rotate elements!
v2.50
- HTML labels!
v2.75 - Mouse-over animation, flash colors!
v2.95 - Edit bitmap pictures!
v2.98 - Pie, chord and arc elements!
v2.99 - Error talkback: semi-automated bug reporting
v3.04 - Link activator now has "go to"
v3.40 - Color morphing/gradient effects
v3.46 - Custom icons for custom shapes in Elements menu
v3.52 - Realtime update from label properties box to diagram.

This User Manual is on one big web page -- BE PATIENT while it downloads! Note, my users like it all on the one page, as it is easy to save the entire manual locally (IE bug -- the SVG graphics have to be saved manually).

The EVE Web Edition User Manual is an extension of this manual. It details the "export to SVG" feature of WE and how to create an SVG graphic on a web page. For an introduction to what EVE WE is all about, go to the EVE WE intro page. For the EVE WE User Manual extension, go to evewemanual.htm.

Now published: the EVE file format specification. This specification may be used by application authors to import and export EVE graphics files. Access to the specification document requires EVEWE registration.

Due to their extreme compactness, I am gradually introducing SVG graphics into this web page (because it has grown to about 500K, which is too big for one page!). So, you must have the Adobe SVG Viewer:

Click on this button to download the SVG Viewer:

download SVG Viewer

 

NOTE 1: You may already have it! Adobe now bundle the SVG viewer with the Acrobat PDF viewer.
NOTE 2: To see the SVG graphics that I am starting to use in this web page, created by EVE WE, and extremely compact compared with the GIF equivalent, scroll down to the first big graphic -- a snapshot of the EVE window -- it is an SVG file at only 2,658 bytes, whereas the equivalent 256-color GIF is 16,763 bytes. For more examples of SVG, jump down to sections "Placing single elements into the Elements menu" and "Disable editing".
 
Preface

Introduction
    Getting started
    User interface introduction
        Basic manipulation of the screen and objects
        More advanced manipulation

Mouse
    Right button
    Left button   v1.40 dragging has "snap to grid" action. v1.48 drag action modified. v1.60 selection/scrolling modified.
    Double-click left button

Keyboard
    DELETE key
    SHIFT key
    CONTROL key
    Arrow keys
    TAB key   v1.46 easy editing of composite-objects. v1.81.
    BACKSPACE key 

Menus
    File menu    v1.39 EVE remembers the last file opened.
    Elements menu   v1.49 Bezier polyline. v1.59 Animation!
    Control menu  v1.93 Enlarge and shrink any group of elements. v2.18 Flip horiz. and vert.

Printing
    Basic printing
        Finetune print size    
    Page grid                 v1.30 alignment grid, page layout. v1.38 finetune grid size.
    Printing troubleshooting

Clipboard

Further element manipulation
    Selection of multiple elements
    Moving multiple elements
    Duplicating multiple elements 
    Importing another diagram
    Resize selected elements   v1.93 Enlarge and shrink any group of elements. v2.20 keep x/y proportions.
    Align selected elements   v2.00 Align on a vertical or horizontal axis.
    Stretch selected elements  v2.00
    Flip selected elements    v2.18
    Rotate selected elements   v2.21

Saving and exporting
    Export EMF vector images
        Printing to Adobe .PDF
    Exporting high-quality graphic images  
    Exporting as embedded file
    Exporting as SVG file   v2.70 HTML labels export to SVG.

Element dialog boxes
    Ellipse dialog box   v2.98 create "partial ellipse": pie, chord and arc. v3.40 color morphing.
    Rectangle dialog box   v3.40 color morphing.
    Sticky line dialog box
    Polygon dialog box   v2.10 up to 42 vertices, insert and delete any vertice.
    Picture icon dialog box   v1.43 scale the display size of pictures. v1.85 scaling refined.
    Label dialog box
        Text display width    v1.22 adjustable width of text display. v1.89 refined.
        Right-aligned text     v1.48 custom text alignment.
        HTML markup tags    v2.50 Display labels with HTML tags.
        Realtime label update v3.52
    Page grid dialog box    v1.30 alignment grid, page layout. v1.38 finetune grid size.
    Link activator dialog box v2.80. v3.04 "go to" added.
        Home folder
    Animation activator dialog box   v2.75 flashing color and mouse-over.

Menu dialog boxes
    Text find dialog box
    Element# find dialog box
    Project management dialog box
    EVE preferences dialog box   v1.40 "snap to grid" action.
        Saving configuration settings   v1.39 can save settings to "eve.ini" configuration file.
    Toolbox dialog box    v1.36 Symbol library now has categories.

Application notes
    Bitmaps
    Rings
    Fine manipulation of lines
        Sticky wires
        Non-sticky wires
        Close up work with wires
        Arrowhead scaling
        Pen width
    Parents and children
        Composite objects
    Bring to front, send to back   v1.25 send to back improved.
        Working with overlapping elements   v1.84 elements selectable only on boundary.
    Object library 
        Usage of the object library
        Creation of library objects
            Placing single elements into the Elements menu
            Managing the Elements menu    v1.21. v1.25 added a "Replace" button.
            Saving and importing an object library 
            Library categories                      v1.36 Symbol library now has categories.
            Snap-to dragging   v1.40
            Dragging near other elements
            Stretching composite-objects   v1.44, v2.00
            TAB to highlight sequentially   v1.46 easy editing of composite-objects.
            Disable editing   v1.81 for users, after it is designed. v1.82 enhancements.
            Placing a bitmap into the Elements menu v3.46
    Binding EVE inside Multimedia Builder   v1.18
        Making an EVE diagram non-editable 
        Bind interface menu
    Animation    
        Animation of parents and children
        Editing
        Trigger events and color animation
        "Home" position
        Color and visibility control
        Goto link animation v3.07
   Color morphing   v3.40

Installation
    System requirements
Limitations
Error talkback v2.99


Preface

EVE is a general application for drawing vector diagrams. Which means any kind of line drawings -- however, this is somewhat of an understatement.

What will really knock your socks off is that EVE is very powerful yet is only about 73K bytes. We are all accustomed to fairly trivial applications being at least 1M byte, so how on earth does EVE get all that power into such a tiny space?

Firstly, why? In these days of 128M RAM and 20G hard drives on entry-level PCs, the vast majority of software developers are not concerned about code efficiency. Nor are the operating system and application vendors. So, we have bloatware.
However, small means fast, and small means that you can send it over the Internet very easily.  You can readily attach EVE to an email or distribute on a floppy disk.

EVE is small because she is handcrafted in assembly language, and was developed to make maximum use of the raw Win32 API. Most software developed these days use tools that result in layers of software -- in other words the tools provide high levels of abstraction to speed code development, with the penalty of enormous code size and slow performance. The difference in code size and speed between these two opposite approaches is staggering.

Another important aspect of EVE's usefulness is that she does not impact on the operating system in any way. In other words, there is no installation process and no changes to the registry or any files or folders. This is important for a number of reasons. One reason is that a person can obtain EVE, run her, then dispose of her, with no impact at all on the OS. EVE can be "binded" inside an application developed with Multimedia Builder, a powerful multimedia application developer, and distributed without concern to have EVE separately installed. You can also have multiple copies of EVE all over the place.

EVE has a number of security measures, to ensure datafiles are not corrupted and to protect against viruses. Whenever a datafile is saved or opened, EVE goes through a comprehensive integrity-check -- an opened datafile must have a correct "checksum" and all database pointers are verified as valid, plus other database structural integrity is verified.

EVE data files are very small and by default compressed with the LZP format. This means that you don't have to ZIP them to send them anywhere, as they're already tiny.

EVE is "talkback enabled", which is a semi-automated bug reporting feature. Not that we expect bugs, but it's real nice to have a hotline direct to the author in the case one does occur. Very few applications have this capability.

EVE is a vector drawing application, and the word "EVE" is an acronym for "Embedded Vector Editor", however EVE is very different from any other drawing application. You will be hard pressed to find even top-of-the-range drawing/drafting/CAD applications that can do some of the things that EVE can do.
Find out -- start-up EVE, open the tutorial, and play ... you will want to rename EVE as "Enjoyable Vector Editor"!


Introduction

Getting started

This is a good place to start to gain an overall feel for how EVE works. Have EVE installed and running and as you read each row of the tables below, immediately try it. It will be easier to experiment if you first open an existing .EVE file, so there is something already created for you to play with.

When you start EVE you will see the following window, except that the client area is blank. Select "File/Open..." to open a data file. EVE data files have file extension of .EVE. This is an SVG image, created in EVE, and is one-sixth the size of the equivalent GIF image:

User interface introduction

EVE has an unusual interface. To obtain some initial familiarity, experiment with these:

Basic manipulation of the screen and objects

Scrolling the diagram with the mouse

There are no scrollbars. To maximise working space, and to scroll, hold down the left mouse button, not over an element, and shift the mouse pointer to a window boundary - everything will scroll. Note, though, that while scrolling, it doesn't matter if elements pass under the mouse button.

Scrolling from the keyboard

The arrow keys also scroll the diagram. Note that for both mouse and keyboard scrolling, it is incremental and accelerates gradually as you keep the mouse pointer on the window boundary or keep the arrow key held down.

Selecting an element

Click on an element with the left-mouse-button, to select (highlight) it. With wires, you have to click at the "mid-point" of the wire -- you'll see a tiny circle at the mid-point, to enable you to locate it (these tiny circles are called handles).

Deleting an element

A selected (highlighted) element can be operated on in various ways. For example, pressing the <delete> key will erase it.

Creating an element

To create an element on the working surface, select an element, say "Ellipse" from the "Elements" menu and move the element to where you want its top-left to be. If you then just click the left button, the element will be deposited there

Moving an element

If you press the left mouse button on an element and hold down the left button and move the mouse pointer, you can drag the element.

More advanced manipulation

The above table is to get you started -- try each of them before continuing. Now try some slightly more ambitious exercises.

You'll need to understand the idea of a "child element". This is an element that is owned by another element. The owner-element can in turn be owned by another, and so on. You can attach multiple elements as children of one element. When you drag a parent-element, so to will all the children move, and when you delete a parent so to will all the children be deleted.

Be careful with deletion, as all the children get deleted, including the children's children, etc.

Practice creating new elements and in particular examine how you create a child element as contrasted with a stand-alone element:

Placing a new element

Select  an ellipse element from the menu, move the mouse cursor to where it is to be placed. If a "free" ellipse, just click the left mouse button to deposit the ellipse.
An ellipse may be placed as a "child" -- after selecting "Element/Ellipse" from the menu, press left button over an existing element (say another ellipse) and drag to (a blank area) where the new element is to be placed -- release button to deposit it.
Lines: each end can be a child of an existing element, so press left button over an element, drag, release button over destination-element of the new wire (note that I also refer to lines as wires).

Manipulating existing elements

Drag any element by pressing left mouse button over the element and dragging. For wires, point to the little circle in the middle of the wire (the handle). To further manipulate wires, left-click on the mid-point to highlight the wire -- you will see more handles appear -- these can be dragged. When a wire is highlighted, you can also drag the ends.

Deleting elements

Left click on the element to select (highlight) it. Press DELETE key. You can delete the most recently placed element by CTRL+DELETE (without highlighting it).

Zooming

You can create an enormous diagram, and zoom out to see the whole thing. Select from the menu "Control/Zoom out" or "Control/Zoom in". When zoomed out, can double-click anywhere not on an element, and screen will zoom back to normal size, coordinates double-clicked on will become top-left of window.

Scrolling

Press left mouse button on any blank area in the window and drag to a window boundary -- the diagram will scroll. It accelerates the longer you keep scrolling. Alternatively, the arrow keys will also cause the diagram to scroll, in the same manner as with the mouse -- you may find the arrow keys more convenient to use for easy and precise control.

Tidy up

If any slight "debris" is left on the screen when elements are manipulated (purely a cosmetic problem), right-click the mouse on any blank area and the entire window will redraw.

Element dialog boxes

Right-click on any element to bring up a dialog box (properties box). Configure the element as required.

Double-click on label element

The label element can be edited by right-button clicking to bring up the dialog box, however, double-click with left-button activates the external editor. Thus, there are two different ways to edit the contents of this element.

Double-click on a link

Any element can be made into a "hot spot" by having attached to it what is known as a "link activator" element -- have a look at the "Elements" menu. A hot spot has a particular reaction to being double-clicked on. For example, double-clicking on an "execution link" can be used to launch another MSWindows (or DOS) application. Note that a single left click can be made equivalent to a double-click (see "Control/EVE preferences...").

Duplicate elements

Enables a section of diagram to be duplicated anywhere on the current diagram. Hold down SHIFT key then left-button-click on all elements to be duplicated, or select menu "Control/Selection rectangle" and draw a rectangle (or rectangles) around the elements to be selected, or directly drag a selection rectangle. Then select "Control/Duplicate selected elements". Duplicated elements will follow the mouse cursor. Can scroll the window by arrow keys or mouse, until a mouse left-button-up will deposit the elements.

Move elements

Enables a section of diagram to be moved anywhere on the current diagram. Hold down SHIFT key then left-button-click on all elements to be duplicated, or select menu "Control/Selection rectangle" and draw a rectangle (or rectangles) around the elements to be selected, or directly drag a selection rectangle. Then select "Control/Move selected elements". Selected elements will follow the mouse cursor. Can scroll the window by arrow keys or mouse, until a mouse left-button-up will deposit the elements.

Inserting and deleting rings on ellipses

An ellipse may have up to 63 rings, and new rings may be inserted after any existing ring, and any existing ring deleted. This is achieved via the ellipse dialog box, activated by a right-button mouse-click. Note that all attached wires will move appropriately, that is, will stay stuck to their correct ring. The innermost ring is number 1.


Mouse

Right button

Press the right mouse button over any element to pop up a local dialog box (properties box). The location is context sensitive and will be different for each type of object. For lines, point to the middle knee-point (handle). (See the "Element dialog boxes" section for descriptions of the dialog boxes).

For ellipses, right-clicking on any ring will bring up the dialog box, however the choice of ring to right-click on affects the "Insert a ring (after)" and "Delete ring" checkboxes. See "Ellipse dialog box" section.

The right button has a useful purpose if clicked over a vacant area - it causes the screen to redraw. This can be handy if there is any "scrap" left behind, which can sometimes happen when objects are dragged or resized.

Also, if the right button is pressed over a blank area and held down for more than 0.5 seconds, an "Elements" menu will popup, enabling an alternative method of selecting a new element.

Left button

The left button is used to place, highlight, or drag objects. When placing "free" elements, after selecting a new element from the menu (under "Elements" heading), move to where you want it, then click once to place it. For "child" elements, after selecting a new element from the menu, press the button at the starting point (tip of the cursor-arrowhead on top of an existing element) and drag to place the other end.

When in-place, wires (lines) can be dragged from their middle knee-point (handle) and can be highlighted at their middle knee-point (a tiny circle identifies the middle-point of a wire).

If placing a child element, simply clicking over an existing element will cause the child to be automatically placed just outside the parent element. This method of placing a new child element is an alternative to the normal method of dragging while holding down the left button.

If the <shift> key is held down prior to left-click on an element, multiple elements can be highlighted. This is used for selecting multiple elements to be duplicated, moved, or deleted. Note that "Control/Selection rectangle" can also be used for selection of multiple elements.

If the left button is depressed while the cursor is over a blank area of the diagram and the cursor then moved to a window boundary, the diagram will scroll. Scrolling is incremental, gradually accelerating, the same as for scrolling using the arrow keys.

When dragging a non-wire element (such as an ellipse), normally all the child-elements will follow. However, by holding down the <control> key the child non-wire elements won't move. This can be useful if a child element accidentally has got hidden underneath its parent. See also the note below about already-highlighted elements.

If you left-click on an element, it becomes highlighted (selected). More handles may appear -- for example, the rectangle will now show handles at right-side and bottom-side, for resizing the element. That is, these handles can be dragged with the left button held down.
However, in the case of "solid" elements (i.e., not a wire or polygon/polyline -- yeah, I'm excluding a polygon here), they can still be dragged in entirety when highlighted. Just as you can press the left button on an element and drag it, so to you can do it while it's already highlighted.
Note however that there is a difference. If the element is already highlighted when you drag it, no children elements will follow. The reason for this is that this mechanism is used for individually adjusting elements in composite-objects, as explained in section " TAB to highlight sequentially".

When an element or composite-object is dragged, if it happens to move over another object/element, that other object/element redraws (ie., is not wiped out). Some comments on this are in section "Dragging near other elements", pertaining to the design of composite-objects.

With version 2.80, a single left click can now be equivalent to a double-click. To enable this, go to "Control/EVE preferences..." and tick the checkbox named "Single-click equivalent to double-click". Refer to section "EVE preferences dialog box". Double-click action is explained in the next section.

Double-click left button

Double-click action on a node is explained in the "Double click action" section. A single left click can also be made equivalent to a double-click, as explained immediately above.

Double-click on a label element activates the external editor. The external editor may be used to edit the text in these elements. A LEFT CLICK CANNOT BE MADE EQUIVALENT TO THIS.
An alternative method is to right-click on the element to bring up the dialog box, which also allows the text to be edited.

Any element may have a link activator element attached to it. Double-click on such an activated element will cause the appropriate action. For example, the link activator can be specified to open a text file in the external editor.
A LEFT CLICK CAN BE MADE EQUIVALENT TO A DOUBLE-CLICK TO INVOKE A LINK ACTION.

Double-click on a text-file link activates the external editor and opens a file as specified in the text-file link's dialog box. See section "Text-file link dialog box".

Double-click on an execution link launches an MS Windows or DOS application. See section "Execution link dialog box".

Double-click in a blank area (i.e., not on an element) causes zooming/scrolling. When zoom-factor is normal (1 logical (diagram) unit equals 1 screen pixel) (the default), double-clicking does nothing.
When zoomed-out, double-clicking causes the diagram to return to normal zoom-factor, with the coordinate where the double-click action took place (i.e., where the cursor was when you double-clicked) being shifted to the top-left of the window.
When zoomed-in (relative to normal), double-click causes zoom-factor to jump out twice beyond normal.


Keyboard

DELETE key

The DELETE key deletes highlighted elements.

CONTROL-DELETE deletes the most recently placed object, even though not highlighted.

SHIFT key

Hold the SHIFT key down when left-mouse-button click on an element allows multiple elements to be highlighted.
Highlighted multiple elements can be moved, duplicated, and deleted. See section "Selection of multiple elements".

Note that multiple elements can also be selected via "Control/Selection rectangle", using the mouse.

The SHIFT key can also be used to stretch and shrink any group of elements -- see section "Stretch selected elements". In particular it is used to stretch a composite-object -- see section "Stretching composite-objects".

The SHIFT key can be used with "Control/Resize selected elements" to keep the x/y proportions. When this menu-item is selected, a grey rectangle will appear around the selected elements, with handles on right side and bottom. These handles can be dragged to proportionally resize the elements. Holding down the SHIFT key will force the x (horizontal) and y (vertical) proportions to remain the same. For further information, see section "Resize selected elements".

CONTROL key

Used with DELETE as explained above.

If CONTROL is depressed prior to pressing an arrow key, the diagram will scroll by one-paper-width/height -- see the "Printing" section.

If the CONTROL key is pressed while dragging an element with the mouse, any attached child non-wire elements won't move. Normally all child elements will follow the parent.
Note, exactly the same effect is achieved by first highlighting an element by clicking on it -- then drag it and children won't follow -- the CONTROL key is not required to be pressed.

Arrow keys

Arrow keys scroll the diagram. The dialog box "Control/EVE preferences..." has options for scrolling. Default is that scrolling is incremental with acceleration. An option is to jump one window each time an arrow key is pressed.

If the CONTROL key is held down when an arrow key is pressed, jumping is by one-paper-width/height -- see "Printing" section.

TAB key

The TAB key is extremely useful when working on elements that are close together and maybe overlapped. In particular, the composite-object has this situation. If an element is highlighted (by left-click of mouse), pressing TAB successively will sequentially highlight each attached element. All children with a common root owner will successively highlight. See section "TAB to highlight sequentially".

However, this can be turned off. For example, you've designed some composite-objects and placed them in the object library (Elements menu), and you don't want users to be able to too-easily or accidentally pull the objects apart. This is done by ticking the "Lock" checkbox of the top (or "boss") element -- see section "Disable editing".

BACKSPACE key

This is an elementary undo function, currently limited to restoring selected elements when resizing.

When the menu-item "Control/Resize selected elements" is selected, a grey rectangle will appear around the selected elements, with handles on right side and bottom. These handles can be dragged to proportionally resize the elements. BACKSPACE will restore the elements to as they were when first selected. For further information, see section "Resize selected elements".


Menus

In keeping with the minimalist, uncluttered, layout of the EVE window, there are just three menu headings: "File", "Elements" and "Control".

File menu

For details on the "output" selections of the "File" menu, refer to the section "Saving and exporting".
 

Menu item

Description

Import template...

This imports the settings of another diagram, but not the other diagram itself. The settings are those in "Control/EVE preferences..." dialog box and the custom colors.

Import diagram...

This is a diagram merge feature. Another EVE diagram can be opened and merged with the current one. See section "Importing another diagram".
This can also be used to import a library of objects. See section "Object library". 

Import a picture...

A GIF, JPG, or BMP bitmap may be imported into the database. The bitmap is not yet assigned to any element and will not display. It becomes a resource that any "picture icon" element can access -- see sections "Icon dialog box" and "Bitmaps".

Import SVG...

This requires the Web Edition of EVE. See the "EVEWE User Manual extension".

Selected elements save as...

This menu option is for saving part of a diagram as a separate diagram. Firstly you need to select some elements, and this is explained in section "Selection of multiple elements".

Export as EMBEDDED...

See section "Exporting as embedded".

Export selected elements as EMF...

See sections "Export EMF vector images" and "Selection of multiple elements".

Export selected elements as SVG...

This requires the Web Edition of EVE. For further information see section "Exporting as SVG file".

Print

Printing is covered in section "Printing".

You can see at the bottom of the "File" menu that there is a path and filename. EVE remembers the last file opened, so it is very quick for you to reopen it. This information is kept in a file "eve.ini", described in section "Saving configuration settings".

Elements menu

The basic object that can be placed on the diagram is called an "element". Drawings are composed of elements grouped together in some way.

The "filled" elements are the ellipse, rectangle, rounded rectangle, and polygon.

The ellipse can also be a "partial ellipse", that is, a pie, chord or arc. The pie and chord are filled shapes, the arc is not. The dialog box for the ellipse allows for toggling between complete-ellipse, pie, chord, or arc shapes: see section "Ellipse dialog box".

The "sticky lines" are curved (Bezier), segmented, and straight lines. The ends are "sticky", that is, they will stick to other elements. See section "Sticky wires".

The "un-sticky line" is the same as the sticky lines, except that automatic stickiness is disabled. A checkbox in the lines properties box can turn this on or off.

The multi-segmented line (polyline) is also "open" like the sticky lines, meaning that it has two ends and cannot have a color fill, but is different from the other lines in that it is not "sticky". See section "Non-sticky wires". It comes in two varieties, straight segments or Bezier curved segments.

A label simply places a text label of up to 65,535 characters on the diagram. See section "Label dialog box".

A picture icon is for placing a picture, that is, a JPG, BMP or GIF bitmap/raster graphic image onto the diagram. The picture must previously have been imported into the database by "File/Import a picture...". See section "Icon dialog box".

Any element on the diagram can be "activated" by attaching a link activator element to it. This means that a double-click (or single click) on the element causes the chosen link action to occur. Current available links are to open a text file in an external editor, open a Windows application, open another EVE diagram, scroll the window (goto), or open a HTTP or FTP site in a web browser. See section "Link activator dialog box".

The page grid element displays an alignment grid, in inches or centimetres, including paper margins. See section "Page grid".

You can design your own symbols/shapes (EVE calls them composite-objects) and place them in the Elements menu. They can even be organised into categories of popup menus if there are lots of them -- see section "Object library".

The animation activator is an element that is normally attached to another element to animate it. See sections "Animation activator dialog box" and "Animation".

Control menu

 

Menu item

Description

Bind interface

See section "Bind interface menu".

Zoom

The coordinates used on the diagram, let's call them "diagram units" are 1 diagram-unit = 1 pixel at normal zoom factor. You can zoom in four times from normal and zoom out six times from normal. Each zoom in or out doubles or halves the scaling.
Zooming keeps the point of the diagram in the centre of the window, at the centre, meaning that if you were to zoom out six times, then back in six times, you would be back to the same place on the diagram. 

Text find...

Finds a text string in label elements. See section "Text find dialog box".

Element# find...

Finds a particular element. Every element placed on the diagram has a unque number. See section "Element# find dialog box".

Manipulation of multiple elements

For moving, duplicating, deleting, see section "Further element manipulation".
Any group of elements can be proportionally resized (enlarged or shrunk), via the "Resize selected elements" entry in the menu, described in section "Resize selected elements".
Any group of elements can be aligned or stretched, via the "Align/stretch selected elements" entry in the menu, described in sections "Align selected elements", "Stretch selected elements" and "Stretching composite-objects".
Any group of elements can be flipped, horizontally or vertically, by the menu entries "Flip selected elements horizontally" or "Flip selected elements vertically". This is further described in section "Flip selected elements".
Selected elements may be rotated. See section "Rotate selected elements". 

Copy window to clipboard as bitmap

Copies the current client area of the window to the clipboard. See sections "Clipboard" and "Exporting high quality graphics images".

Database integrity check

This performs a comprehensive check of the integrity of the elements in the database, such as valid pointers. Note that this is performed every time a file is saved. Note also EVE data files are saved with a "signature" that is used to verify that the file is not corrupted when it is opened.
Thus, although EVE herself cannot be guranteed to be bug-free, extreme lengths are taken to validate the diagram, so that you may have confidence in using EVE for major projects. 

EVE preferences...

See section "EVE preferences dialog box".

Toolbox...

See section "Toolbox dialog box".


Printing

Yes, you can print! In early versions of EVE, printing capability was basic, however it has grown to be very sophisticated, with fine control over size and placement on the paper. The heading below, "Basic printing" is the method of printing supported from the very early versions, and is still an excellent technique. Further down, there is the heading "Page grid", which is a more sophisticated technique.

Basic printing

Notice that the "Control" menu has a "Go to origin" item - this takes the screen back to 0/0 coordinates at the top-left corner of the window, regardless of whether you are zoomed in or out. You may find it convenient to do this first, before printing, so that there is a consistent starting point.

When you select "Print" from the "File" menu, a single page is printed, at the same zoom factor, with the top-left point of the window corresponding to the top-left printable point on the paper. Therefore, you will see more diagram on the paper, because the window won't show the full page unless you have a large monitor.

Note that "Control/EVE preferences..." has an option for displaying the paper margins on the screen. These are just the right and bottom margins, as the left and top are the edges of the window. Also refer to the section "EVE preferences dialog box".

After printing a page, you have the option of jumping in any direction, using the arrow keys, and printing again. To jump exactly one page, hold the CONTROL key down and hit an arrow key. Then, select "Print" again.

Note that you must hold down the CONTROL key, because just pushing an arrow key causes the diagram to scroll incrementally, not one page.

You can print any part of the diagram, at any zoom-factor - just remember that it is the top-left on window client-area and paper that match.

Finetune print size

WYSIWYG, and what you see on-screen is exactly what will print, at the same size. Also, as mentioned above, the top/left corner of the window will align with the top/left printable corner of the paper.

EVE asks Windows what the pixels per inch of the screen are, and the dots per inch of the printer, so is able to calculate the appropriate scaling. However, often Windows doesn't really know, especially with regard to the monitor.

Therefore, I have incorporated a feature into EVE to enable you to finetune the printout size relative to screen size. Have a look at the "Print Options" "Finetune print size" X and Y edit boxes in the EVE preferences dialog box -- see section "EVE preferences dialog box".

The units for these boxes are %. For example, if you type "-10%" into both of these boxes, the on-screen page margin will move in by 10%. The margins have shrunk, which means that the diagram will be enlarged when printed* -- remember always that those grey margins are the extreme printable margins of the paper.

This graphic shows how the right margin appears on the screen:

The left margin is always the left side of the window. To see these margins on-screen, tick the "Show page margins" checkbox in the "Control/EVE preferences..." dialog box.

I don't intend this to be a replacement for zoom-in and zoom-out, just to finetune print size. It is best to zoom-in or zoom-out to the desired magnification, and finetune; usually only a few % is required, if any.

Note that the page grid also has a "finetune grid size" capability, in 1% increments. If you are using the page grid to print (see below), the "finetune grid size" overrides the "finetune print size" settings in the "EVE preferences" dialog box.

When you have finished printing, untick the "Show page margins" checkbox, to eliminate the visual clutter on the screen.

Page grid

The page grid is an element, that can be placed on the diagram just like any other element (see section "Elements menu"). Right-clicking on the handle of a page grid element brings up a dialog box (properties box): see section "Page grid dialog box".

It displays as a little red handle at top/left, with a grey grid, in inches or centimetres. This picture illustrates:

The total grid is exactly the size of the printable area of the paper.

The page grid has two major purposes:

  1. Use the vertical and horizontal grey lines for alignment of elements.
  2. Use the grid to see and choose exactly what will print on the paper.

The above sections on printing explained that the top/left of window will print at the top/left corner of the printable margins of the paper. Thus, you need to scroll the diagram to get it right for printing a page.

However, the grid offers another way of printing a page. The grid can be dragged wherever you want it on the diagram. Highlight the grid (left-click on the little red handle at top/left of grid element) and select "File/Print...".
That's it. It doesn't matter whether you are zoomed out or in or where the grid is in the window, EVE will automatically align the highlighted grid with the paper.

In the above graphic, I zoomed-out once from normal, to see the whole grid. I dragged the grid to frame exactly what I wanted to print on the paper. I then highlighted the grid element and printed. Whatever is within the grid appears on the paper. 

Note that the grid is annotated with measurements in inches or centimetres. These measurements have nothing to do with zoom-factor or the screen. These measurements are correct for printing on paper. This is the main purpose of the grid.
At normal zoom-factor, the measurements (inches or centimetres) are supposed to be WYSIWYG, however you may see that the divisions look slightly bigger or smaller than an actual inch or centimetre. This is because MS Windows does not necessarily know the exact pixels/inch of your display. However, the divisions should be very accurate on paper.

Note that the grid itself does not print. Nor will it export in any way, such as exporting to EMF/WMF or clipboard. 

You will notice that the properties box for the grid element has radio buttons for screen calibration of the grid divisions: see section "Page grid dialog box". Remember always that the grid divisions are correct for the paper, no matter what zoom-factor you are viewing at on-screen. However, you can choose any particular zoom-factor for which the divisions will also be nominally correct on-screen.
The default is normal zoom-factor, which means that the normal-zoom-factor on-screen appearance of the grid divisions is nominally WYSIWYG when printed. If you choose "in 1" in the grid-element properties box, then the divisions will appear correct when you have zoomed-in by one from normal -- at normal zoom-factor, the grid will appear smaller.
This is actually quite simple in practice, though may not seem so when this explanation is first read. 

Using the zoom settings in the grid properties box, you can make the grid any size you want. Then, you can place +ve or -ve values into the "Finetune grid size" edit boxes to adjust the grid size in 1% increments. The grid that you see on the screen represents your piece of paper -- whatever is framed within the grid will enlarge or shrink to print on the paper, exactly as it looks on-screen. Try it, to see how simple it is!

Printing troubleshooting

If you get a "print overrun" message when printing, check to see if the printer driver has a "page protection" setting and if so turn it on.

EVE does not have a printer setup dialog box - the program reads the printer settings on startup. Therefore, if you want to make any changes to the printer settings, quit EVE, make the changes and then restart EVE.
Note that you modify the printer settings by going to "My computer/Printers" icon, double-click to open, then right-click on the required printer driver and select "Properties" to change the settings. Make sure the required printer is set as "Default printer".

Note that some reconfigurability of the printer from within EVE is planned for a future version. However, one of the key philosophies of EVE was no impact on the operating system, so this will have to be done with caution.

If EVE gives error #19 or #20 when you try to print, it means that no printer driver is setup. This is a very unlikely situation, but a couple of users with laptops did report it. As they never previously printed from their laptop, they never setup a printer. To fix this, go to "My computer/Printers" by double-clicking on icon, then double-click on "Add printer"
(of course, "double-clicking" to open an icon or program is the conventional technique, but if you have the Windows desktop configured to behave like a web-page then you may only have to left-click on something to open it).


Clipboard

There is no Cut or Paste, only "Copy window to clipboard as bitmap".

The "Control/Copy window to clipboard as bitmap" menu selection will copy the current client window to the clipboard as a TIF bitmap.

If a diagram is larger than the window, you can take multiple "snapshots", or copies to clipboard, to capture the entire diagram. Each snapshot can be saved as a .GIF image, and if required (inside a text document) can be inserted into cells of a table to reconstruct the entire image.
To move the diagram one-window vertically or horizontally, for the purpose of taking multiple snapshots, go to "Control/EVE preferences..." to set the arrow-keys to jump a window width/height rather than incremental/accelerate diagram scrolling. 

Note that EVE uses the standard-VGA 4-bit color (16 colors) as much as possible. If you have your display set to 16-bit color (High Color, 65536 colors) or 24-bit color (True Color), and save the clipboard image as a 16- or 256-color GIF, sometimes the color mapping is not exactly right. The background should be white, but may not be. If you experience any problem with colors in the GIF image, change the PC's display to 16-color, then take the snapshots and save them as 16-color GIF -- color mapping will then be constrained to be correct.
However, if your EVE diagram contains bitmaps, you will have to set the video display to at least that number of colors -- most GIfs for example are 256 colours (8-bit).

EVE exports the bitmap to the clipboard in TIF format, however it may be pasted into a document or saved as a file in any desired graphic format. I mentioned GIF above, because GIF is most efficient at representing line drawings. There are some freeware/shareware apps that can take whatever is on the clipboard and save as a file in whatever format you want -- GIF, JPG, BMP, etc. If you paste from the clipboard into an application, such as Microsoft Word, you may have options as to what format it will be pasted. Some HTML editors for example will automatically paste it as JPG format, and there may not be any choice -- in that case, get a freeware/shareware program such as "ClipnSave" or "IrfanView" (see note below) to save it from clipboard as a GIF file first, if GIF is what you want.

I have found the freeware application IrfanView to be very useful. A bitmap graphic pasted into it from EVE can then be saved in a wide variety of raster image (bitmap) file formats. IrfanView is available from www.irfanview.com.

For further information on what to do with the graphic image once you've exported it to the clipboard, see section "Exporting high-quality graphic images".

Note that moving, deleting, or duplicating parts of a diagram is not done via the clipboard. This surprises some people, but EVE's technique is actually very efficient -- just different. See section "Further element manipulation" (below).


Further element manipulation

The above sections describe how elements may be created, highlighted (selected), moved and deleted by mouse and keyboard. However, what if you want to manipulate a group of elements?

Selection of multiple elements

Go to menu "Control/Selection rectangle" and the mouse cursor will change to a crosshair. Move to a starting-corner, press left-mouse-button, drag other corner, release mouse button. All elements within the rectangle will be highlighted (selected).

Note that this can also be done manually by holding down the SHIFT key, then left-clicking on elements.

If you want to select elements that don't all fit into a nice neat rectangle, you can draw multiple rectangles. Just keep going to the menu "Control/Selection rectangle" and draw rectangles until you've got all the ones you want.

Note that you cannot un-select any individual elements.

A left-button-click anywhere on a blank area of the window will deselect all the elements, in case you want to cancel the selection.

Moving multiple elements

After having selected a group of elements as described above, go to menu "Control/Move selected elements". The cursor will jump to the first selected element, and as you move the cursor the selected elements will track the cursor (you don't have to press the left-mouse-button to drag, but can if you wish). Left-click to deposit them (or, if dragging with left-button held down, releasing it will deposit them).

Note that you can scroll the diagram and even zoom out while moving the elements. To scroll, press the arrow keys. To zoom out, go to "Control/Zoom out". The selected elements will continue to track the mouse until you left-click in the client-area of the window.

Take care when moving wires (lines). Be sure to draw the selection-rectangle (or draw another selection-rectangle, or add wires by holding down <shift> and left click on mid-point of wire) such that wires that are intended to be moved with the selected elements are also selected.

This graphic illustrates:

The selection-rectangle was drawn such that it encompassed the mid-points of all the wires attached to the elements that are being selected.

The wires will then move ok, and the wire-ends outside the selected group will stay unmoved. The problem that arises if you do not select a wire, say the one labelled "action_ptr", is that it may jump rings on the node being moved, especially if you drag the elements quickly. This problem may be addressed in a future version.

Duplicating multiple elements 

 This works in the same manner as section "Moving multiple elements" above, except that a duplicate copy of the selected elements is moved, and the originals left alone.

Importing another diagram

The menu "File/Import diagram..." will merge another .EVE diagram with the currently open one. Note that the imported diagram is copied into the current diagram and the original (the one being imported) .EVE file is left alone.

Of course, if another diagram is imported, parts of it may physically overlap existing elements on the screen, potentially creating a visual mess. Therefore, all imported elements are displayed as highlighted (selected), and the user may go to the menu "Control" and select "Move selected elements", "Duplicate selected elements" or "Delete selected elements".
Obviously the choice to "Move selected elements" is the logical one to use, to get the imported elements away from any overlapping with existing elements.

Only a certain maximum number of elements can be highlighted, see section "EVE limitations". If the imported diagram is too big, not all elements will be highlighted, meaning that some cannot be moved in one block -- EVE will warn of this.

"File/Import diagram..." can also be used to import an object library -- see section "Object library". And can import bitmaps from another diagram into the bitmap library -- see section "Bitmaps".

Resize selected elements

In EVE terminology, "resize" is different from "stretch". Composite-objects can be stretched, and this is described in sections "Stretch selected elements" (below) and "Stretching composite-objects".

To resize a group of elements, this is what you need to do:

  1. Highlight them. If an individual element or composite-object, just click on it.
  2. Go to the menu "Control/Resize selected elements". A bounding rectangle will appear, in grey pen, with handles on right-side and bottom-side:
     
  3. Drag a handle to enlarge or shrink the elements.
  4. Left-click or right-click anywhere else to terminate the operation.

You can force resizing to maintain x (horizontal) and y (vertical) proportions, by holding down the SHIFT key. You get a memory-jog about this at Step-2 above, as a message appears in the menu-bar, stating this:

SHIFT: held down resizes text, keeps x/y proportions. BACKSPACE: undo.

The SHIFT key also forces any text to resize also.

That is, if you drag a resize-handle without holding down SHIFT, any text stays at the original size. Hold down SHIFT, and text will change size -- so entire selected group will retain exact appearance of original, except will be bigger or smaller.

The BACKSPACE key is a simple form of undo. It simply removes any resizing, restoring the selected elements to as they were when first selected. Note that if you "flip" the elements, the undo memory is cleared, and any further resizing will only go back to the state of the elements immediately after the flip.

A warning about this, and this applies to all vector editors. Enlarging or shrinking can cause slight changes to the placement of each element relative to others in the group. Therefore, if you have a group of elements that are very precisely aligned, be hesitant to use resizing.

Align selected elements

You've got some elements on the diagram, and you would like them to be nicely lined-up, either vertically or horizontally. No problem, v2.00 introduced a very smooth tool for this.

To align a group of elements, this is what you need to do:

  1. Highlight them. If an individual element or composite-object, just click on it.
  2. Go to the menu "Control/Align-stretch selected elements". Crossed vertical and horizontal axes will appear and will follow the mouse pointer. Click to deposit it so it will look like this:
     
  3. You can see handles. In the above graphic, you see that the vertical axis is on the left, so drag the handle on the right and you will see the selected elements move.
  4. Drag the handle so that the selected elements move toward the vertical axis. Each element will stop moving as it touches the axis. Keep dragging until all elements have stopped on the axis.

One of the beautiful things about this mechanism is that it is gradual. Some other vector editors have alignment mechanisms that snap elements to an axis, which may do some unexpected things.

You can drag the alignment-axes around by dragging the handle in the middle, where the axes cross.

You can align elements on the horizontal axis by dragging the bottom handle.

There are two main points to remember about how alignment works:

  1. When using the alignment tool, elements will stop moving if touching or straddling the target axis.
  2. Composite-objects are treated as a single entity -- to reaarrange elements within a comp.-obj, use stretching (see below).

When you click anywhere else other than on one of the three handles on the alignment-tool, the alignment-tool will be deleted. The selected elements are still selected, and you will need to click again anywhere on the diagram to deselect them.

Stretch selected elements

Elements can also be stretched, using the same alignment tool as above. The difference in usage is that you hold the SHIFT key down while dragging an alignment-handle.

The most important principle here, as distinct from alignment above, is:

  1. Elements will not stop moving when straddling the target axis.
  2. Composite-objects are not treated as a single entity, but as individual elements.

What will happen is that all vertices (corners, or points) on the same side of the target axis will move together, either away-from or toward the target axis. For elements that straddle the target axis, those vertices on one side of the target axis will move together with all other vertices on that side.

In practice, this is most useful for composite-objects, as you can enlarge or shrink an object while keeping all vertices either side of the target axis in the same relative positions.

The usage of stretching is further explained in section "Stretching composite-objects".

Flip selected elements

Any group of selected elements can be flipped horizontally or vertically.

This mechanism is generic and works for individually-selected elements, composite-objects, or large selected parts of a diagram.

"Flip" does what the name suggests. For horizontal flip, EVE calculates a vertical centreline in the middle of the bounding-rectangle of the selected elements. Each side of the centreline is flipped, making a mirror-image. Similarly for vertical flip.

However, the flip-action of text and bitmap images is modified. This SVG graphic illustrates:

The bitmap location is flipped, however the image itself remains as-is. Thus, the bitmap retains its integrity in all flipped views -- obviously, the five-dollar note is not going to be correctly displayed if it becomes a mirror-image.

The text is flipped, and angle correctly flipped also, however the direction of the text remains as-is. Thus, the text remains readable in all flipped views, and never becomes a mirror-image. The rationale for this is that you may have a composite-object in the menu library, with text in it. This object is to be used in the diagram in various places, and may require to be oriented in different directions -- however the text must always remain readable.

Rotate selected elements

The menu "Control/Rotate selected elements 90 degrees" achieves this.

The selected elements are rotated 90 degrees in a counter-clockwise direction.


Saving and exporting

"File/Save" and "File/Save as..." will save the .EVE file.

"File/Selected elements save as..." is a useful variation on save-as. It will save-as only the selected elements.
Go to the section "Selection of multiple elements" to find out how to select elements. The original .EVE is closed.

LZP compressed format

When EVE was first created, files were saved uncompressed. Later, a compression technique was adopted, a custom method developed by myself. This custom method has very small compress and uncompress code, however compression is mediocre. With version 3.30 of EVE, LZP compression was introduced.

EVE is backwards compatible, that is EVE can open and save data files as uncompressed. EVE can also open the old compressed format data files, but versions 3.30+ cannot save in this format. Versions 3.30+ open and save in LZP format by default.

All EVE data files, regardless of compression format or lack of, have the filename extension ".EVE" -- there is no need to have different extensions, as EVE is able to determine the storage format by examining information stored inside the file.

To give an indication of the merits of the three data formats, the "eveintro.eve" data file saved uncompressed is 158,848 bytes. Saved in the old compressed format it is 56,430 bytes and saved in the new LZP format it is 43,359 bytes. A small .EVE data file was previously 640 bytes in the old format and became 317 bytes in the LZP format.

Just for interest, note that WinZip v8.0 compressed the uncompressed "eveintro.eve" file to 32,295 bytes in normal mode, and 30,507 bytes in maximum mode. An extra 28 bytes must be added to these values for correct comparison with the above EVE compression formats. Also, the small .EVE data file compressed to 330+28 in normal mode and 315+28 in maximum mode. Experimenting with some other .EVE files, sometimes WinZip did better, sometimes not. For example, a very large EVE diagram in LZP format was 117,490 bytes, whereas WinZip managed 127,702+28 normal mode and 121,680+28 maximum mode.

I wish to acknowledge Charles Bloom (www.cbloom.com), who developed the LZP algorithm. He has kindly given permission to use this algorithm in EVE.

As EVE automatically saves data files in the LZP format, they are about as small as possible, which is good for storage and particularly good for transmission, such as an email attachment. There is no need to zip a .EVE file prior to transmission.

Export EMF vector image

"File/Export selected elements as EMF..." saves the selected elements as a Windows Enhanced MetaFile (EMF) vector graphic file. This file CANNOT be opened inside EVE.EXE.

EMF files are Microsoft's enhancement of the WMF vector graphic standard. EMF files can be inserted and pasted into many Windows applications and opened in graphic editors. However, many applications do not display them correctly. The WMF format is better supported, however the curved lines in .EVE files are bezier curves, requiring EMF format.

In versions of EVE prior to 2.70, I had the menu option of export as WMF, however I have removed it. I found that WMF support in applications is very patchy and inconsistent. However, all is not peaches and cream with EMF either.

Even some of Microsoft's own apps don't display EMF files properly! (* refers to the 1st released version, 1999) --

Many applications will convert the EMF/WMF file to bitmap, which is unsatisfactory.

The good news on EMF

If an application will only import WMF, it's a crappy app. EMF is superior and is the way to go. I've given the bad news above about some apps that do not import EMF properly, however many applications do, and do it properly.

IrfanView
This is a freeware graphics viewer and converter. Doesn't like EVE's WMF files, but opens EMF files beautifully. Thanks to Carl Hennig who told me about this. Carl uses IrfanView to convert EVE's EMF files to other graphic formats, producing, in his words "absolutely stunning results". Version 3.33 has the output formats JPG, GIF, BMP, PNG, TIF, LWF, LDF, PCX, ICO, EMF, TGA, PBM, PGM, PPM -- I'm pleased to see he hasn't bothered with WMF!
You can download IrfanView from various freeware sites and from the author at www.irfanview.com.
Note that IrfanView only exports bitmap formats, going into it via EMF is somewhat roundabout. Simply copying to the clipboard from inside EVE and pasting into IrfanView will achieve the same goal, with the certainty that exactly what you see inside EVE will go into IrfanView -- see section "Exporting high-quality graphic images". 

OpenOffice
OpenOffice, the open-source version of StarOffice, has in May 2002 reached version 1.0. The vector drawing component, Draw, of OpenOffice imports EVE's EMF files very nicely (not WMF though). So, you would expect EVE's EMF graphics to insert nicely into Word, the wordprocessor component, and yes, it's beautiful.
I recommend that you seriously consider OpenOffice as a replacement for Microsoft Office. OpenOffice is multi-platform and runs nicely on my Linux machine -- I was astounded that OpenOffice displayed my EMF graphic perfectly on the Linux platform -- previously EMF has been strictly Windows-only.
(I confess I'm being drawn back to Linux, as I love the Lycoris distribution that I've just installed (May 2002) -- see my new Linux page)

If you need high quality images from EVE, read the following section "Exporting high-quality graphic images". This describes bitmap output via the clipboard, rather than via EMF-to-IrfanView as described above.

Another way to get vector output that looks reasonably like what is seen on screen, is to print to PDF file -- see section "Printing to Adobe .PDF".

If you need vector output that looks exactly like what you see when running EVE.EXE, it is possible to "embed" EVE.EXE inside some applications. I have only done this with Multimedia Builder -- see section "Binding EVE inside Multimedia Builder". This has the feature that EVE.EXE is fully functional inside Multimedia Builder.

Another new and exciting standard for vector graphics is SVG, and the Web Edition of EVE can export to SVG. See section "Exporting as SVG file". This is the way to go for the future.

Printing to Adobe .PDF

The free Adobe Acrobat PDF viewer is not suitable. You need to purchase the Adobe Acrobat full product. This includes a printer driver called "Acrobat Distiller", which can print to file.

What you do is right-click on the "Acrobat Distiller" icon in the "My computer/Printers" folder and choose it as the default printer. Then start EVE.

When you print, output will be to a .PDF file. This is a vector image that can be viewed in the Acrobat reader.

A great advantage of the PDF format is its portability, including inclusion on web sites, as The Abode Acrobat reader integrates with web browsers. You can also insert a PDF file into some Windows applications that support OLE.

There are other .PDF generators out there, including a free one, and I would like feedback on how well they work with EVE.

However, I recommend that you checkout SVG as your first option.

Exporting high-quality graphic images

To export a diagram as a vector graphic image, see section "Export EMF vector image" above. This link also describes how to use a freeware application, IrfanView, to convert EMF to a wide range of bitmap file formats.
This section describes how to output bitmaps (raster images) via the clipboard and paste them into documents.

To export a diagram as a bitmap image, see section "Clipboard".

The bitmap image produced via the clipboard can be pasted into any Windows application. To reduce graininess, it is recommended to zoom-in one step in EVE.EXE, change the video card to a higher resolution if required, expand window to full-size, copy to clipboard. In a wordprocessor such as Lotus/IBM WordPro, paste the image then right-click on the image to change graphics properties. Select "Graphics scaling..." and change to "50%", "40%" or whatever is required. The image will display to fit the required space on the page, but when the document is printed, the graphic will print at full resolution -- ie., scaling on-screen does not make change the actual image file and all the bits are still there -- I cannot guarantee that this will work for all wordprocessors.

You can get remarkable results by using this technique. An extra word of advice -- I recommend that bitmap files exported from EVE via the clipboard be saved as GIF files, not JPG. GIF does a much better job with line drawings, and the file will be smaller. GIF's 16 or 256 colors limit is fine, except when you have JPG bitmap images embedded in the EVE diagram.
Unfortunately, when you paste a bitmap into some applications from the clipboard, the application automatically converts it to JPG format. Some applications have a "Paste special" menu item that gives you some choices.

What I have learnt over the years is that it is good to have several of each kind of application installed on your PC -- one of them is bound to do the right thing! 

Very high quality bitmap images

The technique of zooming in, as described above, is fine, however it also means that you see less diagram in the window. The way around this problem is to create a table in your wordprocessing document, and paste pictures into each cell of the table. Here is how:

  1. Create a table, say 2 rows and 2 columns.
  2. Set the border width and spacing/gap/padding between the cells to zero.
  3. Over in EVE, go to "Control/EVE preferences..." and tick the checkbox to jump one window width/height for each arrow-key press.
  4. Zoom in once or twice. Size the window so that you are seeing say the top-left quarter of the desired image.
  5. Select "Control/Copy window to clipboard as bitmap". Paste into top-left cell of table.
  6. Press right-arrow key, then copy to clipboard again. Paste into top-right cell.
  7. Press down-arrow key, copy to clipboard, paste into table.
  8. Ditto, left-arrow, clipboard, paste.

You can then scale the images to say 25%, to get them to fit on the page. With professional wordprocessors such as WordPro, the original images are retained in the document, even though scaled down, and will print all the bits on a printer of sufficient resolution.

You can get superb quality using this technique, with the advantage that it is exactly as seen on the screen. WMF/EMF files do not have this consistency over different applications.

Exporting as embedded

This option is kind of like "Save as...", except that it saves the EVE data file inside EVE.EXE. The resulting file has a filename like "something.eve.exe", and is an executable.

What actually occurs during the save process, is that a copy of EVE.EXE is made and the datafile is appended to it. Thus there is just the one file.

Double-click on this .EVE.EXE file, and EVE runs, with the data file automatically opened.

Why would you want this? Having it as a single file could have some use, such as an email attachment. It remains to be seen whether this option proves to be useful for users.

Exporting as SVG file

Scalable Vector Graphics is the new international open standard for vector graphics. You need the Web Edition of EVE to activate this feature.

See page EVE WE intro for an introduction to SVG and how to obtain the EVE Web Edition.

See page evewemanual.htm for the EVE WE User Manual extension to this manual.

Here is an SVG image created inside EVE. It is about one-sixth the size of the equivalent GIF file:

SVG graphics exported from EVE look pretty well spot on, that is, just like they do in EVE. Unlike EMF, SVG is a full multimedia specification, allowing hyperlinks, animation, etc., so most of those goodies in EVE, such as the link activator and animation activator, export to SVG. SVG graphics can be inserted into documents in many Windows applications, such as Microsoft Word, and viewed in web browsers.


Element dialog boxes

These are boxes that pop-up when you right-click the mouse pointer on an element -- anywhere in an ellipse or rectangle, or on the knee (mid-point, or handle) of a wire, or on the tiny circle (handle) on a label element. I also sometimes refer to them as "property boxes".

Ellipse dialog box

The entries in this properties box should be fairly self-explanatory. One feature that only ellipses have is multiple rings. See section "Rings". If you right-click on a particular ring of a multi-ring ellipse, you have the option of deleting that ring or inserting another outside of it, by means of the checkboxes.

A feature that all elements have is that they may be freestanding on the diagram or "owned" by another element. I refer to the owner as the parent element, and the element that has a parent is a child. See section "Parents and children".

The "Width" and "Height" edit-boxes have beside them an "Exact" checkbox. Normally, you leave this checkbox alone, unticked. EVE paints ellipses and rectangles by rounding down the width and height to even numbers -- in the above case they're even already. This can result in a discrepancy of 1 diagram-unit (= 1 pixel at normal zoom factor) when painted on the diagram. This rounding down is done for a reason -- it enables sticky wires to stick accurately, and concentric rings to look concentric.
However, sometimes when you want an ellipse or rectangle to align perfectly with other elements, the slight discrepancy is noticeable. For example, due to rounding, the width can be either 40 or 42, not 41, but if you tick the "Exact" checkbox, you can get it to display exactly at a width of 41 diagram-units. This is a subtle enhancement, that is mostly useful for getting composite-objects to look perfect. The "Exact" checkbox only works on ellipses with just one ring.

The "Selectable only on boundary" checkbox restricts mouse-pointer selection of the element to the element's boundary. Normally, clicking anywhere inside the element will select it. This is discussed further in section "Working with overlapping elements".
Note that if an element is already selected, by left-click on it, it becomes highlighted and is then selectable within its entire interior. That is, a left-button press and drag anywhere within the element will drag it, irrespective of the "Selectable only on boundary" checkbox. That is, the checkbox only applies to the initial selection of the element.

You can also select "partial ellipse" shapes. The Pie and chord are filled shapes, the arc is not.
When a pie, chord, or arc is selected, there are two extra resizing handles that will appear in the diagram when the partial-ellipse is highlighted. These are for adjusting the ends of the partial ellipse. The easiest way to see how these work is to just use them.

Color morphing is a feature that will be available for all filled elements. It provides borders and 3-D effects. See section "Color morphing".

Rectangle dialog box

Again, the selections are fairly self-explanatory. See above for links to further explanations.

The greyed-out edit-boxes in the above dialog box are for rounded rectangles. The "Rounded corners" checkbox enables switching between normal rectangle and rounded rectangle.

Color morphing is a feature that will be available for all filled elements. It provides borders and 3-D effects. See section "Color morphing".

Line dialog box

All elements can have an owner, however this group of lines (or wires) can have an owner for each end.

Notice the arrow scaling edit box. An entry of zero is the default size, and a positive value causes a bigger arrow than the default, a negative value causes a smaller arrow. Note that the default arrow size adjusts with line thickness, the thicker the line, the bigger the arrow. So, the arrow scaling entry is an extra scaling factor on top of this.

Note that you can switch the line type between curved (Bezier), segmented and straight.

Be aware that these are "sticky", see section "Sticky wires". If you don't want a sticky wire, you can tick the "Disable auto-stickiness" checkbox, or use an open multi-segmented line (polyline). See the section immediately below.

With the "Disable auto-stickness" ticked, if you drag a line-end, it won't try and stick to another element. You can still manually enter the element-number of an owner into the "Who owns me?" boxes.

For convenience, the Elements menu has a "Un-sticky line, straight" entry, which has this checkbox already ticked. This is convenient when you want to draw dimensioning lines on a diagram and you don't want the ends to automatically snap to a nearby element.

The checkbox "Don't display handle if locked" is ticked for new lines. The handle referred to is the little red dot that displays in the middle of the line. This disappears when there is any kind of output, such as to clipboard, printer, EMF or SVG. However, if this checkbox is ticked, the handle also does not display on-screen if the line is locked ("Lock" checkbox ticked).
The purpose of this is for when the line is part of a composite-object: it is then a component of a bigger object and it is usually inappropriate for its handle to display.

Polygon dialog box 

The multi-segment element can be a closed polygon or an open line (polyline). It can have the number of vertices (points) required by clicking on the appropriate button. The number of vertices includes the two ends in the case of an open line.

A most important thing about the open multi-segment line (polyline) is that it is not sticky (see above section for description of sticky wires). See section "Non-sticky wires".

The Bezier polyline is a variation, with Bezier curve segments rather than straight segments. You will find that when you click on the vertice-number buttons, the number of vertices is constrained to a multiple of 3, plus 1.

You can see in the above figure that each vertice has an x and y coordinate. These can be edited, except for those that are greyed-out. Also the vertices can be individually dragged on the diagram.

EVE versions prior to 2.10 were limited to 14 vertices maximum (the first column in the above graphic) and this is retained for backwards compatibility. That is, the polygons/lines created in older versions of EVE are stuck with this limitation.

EVE from version 2.10 allows up to 42 vertices (points).

Version 2.10 also introduces "vertice management":

Insert button

Click on this button, then click on a vertice-number button. A new vertice will be inserted, with coordinates midway between those it is inserting between. The "Number of vertices:" box will increment.
For example, click on "4" and vertice-4 will become vertice-5,  and the new vertice-4 will be midway between vertices 3 and 5.

Delete button

Click on this button, then click on a vertice-number button. The vertice will be deleted. The "Number of vertices:" box will decrement.

When you click on a polygon/line to select it, each vertice will display as a draggable handle and the number of the vertice will display alongside it. This numbering makes it very easy to insert and delete vertices in the properties box.

A little higher on this page, you can see that the ellipse and rectangle properties boxes have a checkbox "Selectable only on boundary" -- if not ticked, they are selectable anywhere within their interior. Prior to v3.03, polygons were only selectable on their vertices, however this was inconsistent with ellipses and rectangles, so now new polygons by default are selectable anywhere within.
However, by ticking the checkbox "Selectable only on vertices", then the polygon becomes selectable only when there is a left-mouse-button press over a vertice. For polygons in diagrams created prior to v3.03, this checkbox will be ticked.

Note that if a polygon or polyline element is already selected, by left-click on it, it becomes highlighted and is then selectable within its entire interior. That is, a left-button press and drag anywhere within the element will drag it, irrespective of the "Selectable only on vertices" checkbox. That is, the checkbox only applies to the initial selection of the element.
Note that the "interior" of a polyline is the polygon formed by joining the first and last vertices.

Note that ticking or unticking the "Selectable only on vertices" checkbox has no effect for polylines. They remain always initially selectable only on their vertices.

Picture icon dialog box

A most important point about the picture icon is that it can display on the diagram as a bitmap. A bitmap may be loaded from a GIF, JPG, or BMP file. See an explanation of how a bitmap is loaded via "File/Import a picture..." in section "File menu", and more information about bitmaps in section "Bitmaps".

When a bitmap is loaded into the database, it is assigned a number. Numbering is from 1, which is the first bitmap loaded. How do you relate the numbers to what the bitmaps look like? It is quite simple -- move the icon dialog box so that the icon is visible on the diagram. Then, enter a number in the "Pict#:" edit box, then press "APPLY".
The bitmap will appear. Thus, you can scroll through the bitmaps and find the one you want.

I may streamline this process a little bit in the future, maybe with up/down arrows that don't need the extra step of pressing the "Apply" button. Maybe I could even have thumbnails appearing on the dialog box?

It is perhaps a little obtuse, but you can delete a bitmap, that is, remove it from the database, from within a picture icon dialog box. Bitmap deletion is not done from a menu item. Select the Pict# to be deleted, tick the "Delete" checkbox, and click on "Apply".
Please be aware that the "Delete" checkbox deletes the bitmap entirely, and it is no longer available for any icons -- when a bitmap is assigned to an icon, for the sake of compactness the bitmap is not duplicated -- there is only the one original bitmap, so if you delete it, it's gone.

The "Display size" width and height boxes are normally read-only and are automatically computed. You can only manually change them if the icon is locked, that is, the "Lock" box is ticked. This also allows the icon to be stretched when it is part of a composite-object -- see section "Stretching composite-objects".

The "Selectable only on boundary" checkbox restricts mouse-pointer selection of the element to the element's boundary. Normally, clicking anywhere inside the element will select it. This is discussed further in section "Working with overlapping elements".

Fonts

The "Font" section of the dialog box is almost self-explanatory. There are three default fonts; Arial, Times New Roman, and Courier New, selectable in the "Name:" listbox. You can add any fourth font to this list by pressing the "Choose a font" button.

The "Choose a font" dialogbox allows you to also choose a "character set", that is, an international language set, if the font supports it. For example, there are "Turkish" and "Hebrew".

Note that the "Control/EVE preferences..." dialog box allows you to choose a default character set, that will apply to any new label or icon -- read this section for more notes on fonts.

Any changes to the fields in the fonts section of the properties box are immediately displayed in the title edit-box. That is, the title edit-box displays with the correct font.

A very useful point also is that any of the text settings also immediately display on the diagram if changed. For example, change the font angle, and it will immediately display on the diagram with the new angle. To be able to see it though, the dialog box has to be dragged aside.

In the case of the main label edit-box, after making a change, click on any field outside the edit-box to update on the diagram. This is because it is impractical to update the label on the diagram everytime a character is typed or deleted. The correct terminology is that the edit-box has to "lose input focus" to update on the diagram.
All other edit-boxes, checkboxes, list-boxes and radiobuttons will update immediately they are typed into or clicked on.

Pressing the "Cancel" button will abandon any changes made to title settings. Even though these changes are displaying on the diagram, pressing "Cancel" will restore the original settings.
However, the picture icon dialog box does compromise this, and the actual title text and the raster picture will not restore to any original setting.

Picture customise

This is a work-in-progress. The transparent-color boxes are currently read-only and only for GIF files.

The "EDIT PICTURE" button will open an external paint application. The paint application must be chosen in "Control/EVE preferences...", which can be saved to an "eve.ini" file so will be the default paint application for all new EVE diagrams.
When the button is clicked on, the external paint application will open, with a temporary image file called "temp.gif", "temp.bmp" or "temp.jpg". The graphic format will be whatever the graphic was before it was imported into the EVE diagram.
When finished editing, save the file then exit. You will be back in EVE with the modified image displaying.

With regard to choosing a suitable paint application, there are many to choose from. A free one is 602Photo, as described in my "best-of-the-best freeware" page: www.goosee.com/best/.
A basic choice is "MSPAINT.EXE", that you will find in "C:\Program files\Accessories\". Note that on Win95 systems, MSPaint only handles BMP files -- MSPaint is the EVE default, so if you are running Win95, go into "EVE preferences..." and choose something that can handle BMP, GIF and JPG.

Color morphing is a feature that will be available for all filled elements. It provides borders and 3-D effects. See section "Color morphing".

Label dialog box

The label element simply displays a text label. Explanation of some of the fields of this dialog box can be found above, in descriptions of other element dialog boxes.

The checkbox "Don't display handle if locked" is ticked for new labels. The handle referred to is the little red dot that displays at the top-corner of the label. This disappears when there is any kind of output, such as to clipboard, printer, EMF or SVG. However, if this checkbox is ticked, the handle also does not display on-screen if the label is locked ("Lock" checkbox ticked).
The purpose of this is for when the label is part of a composite-object: it is then a component of a bigger object and it is usually inappropriate for its handle to display.

Plain text display width

Plain text:
If you type in text to the "Enter text for the element" edit-box, the default behaviour is that text will display as one long line on the diagram, unless the ENTER key is typed, even though word-wrap occurs in the edit-box.
Type ENTER key when you want a new line.
Default behaviour has the "Automatic width calculation" checkbox ticked.

If you untick the "Automatic width calculation" checkbox, then you can enter a "Custom width". Custom width will force wordwrap to constrain lines within this width. This has no relation to any wordwrap occurring in the "Enter text for the element" edit-box.

You can also visually resize the text width. Left-click on the label's main handle to highlight the label element. A box will appear, with a resizing handle. Drag the resize handle as required. This will only work if the "Automatic width calculation" checkbox is unticked. This picture shows the resize-handle:

Plain text:
Notice that some text is below the box. As you drag the resize-handle, the grey box should enclose all the text. If it does not, as in this case, it is EVE's way of telling you that there is a disagreement with calculated word-breaks if the diagram is to be exported to SVG. To avoid this disagreement, drag the resize handle until the grey box encompasses all the text. This is further explained in the evewemanual.htm. Note: you only need to be concerned about this if you intend to export to SVG, otherwise don't worry if text is below the box or not.

Right-aligned text

Text is automatically left-aligned, with the left margin just to the right of the label element's main handle.

You can make the text flip over to the left side of the main handle and right-align, by attaching the label to another element and moving the main handle to just-left of it. In other words, if the label handle is on the left side of its owner, it displays the text on the left, away from the owner, and right-aligned.

If you ever want to override this default alignment behaviour, you can see above that there are radio buttons for forcing left or right text alignment.

HTML labels default to left-aligned text, and require tags to achieve right, center alignment or full justification, as explained below.

HTML markup tags

Labels can now display text in "HTML" mode. That is, HTML markup tags can be placed in the text source and will display as directed by the tag. The dialog box indicates accepted tags -- all others will be ignored. Therefore, you can use a HTML editor and copy via the clipboard into the label dialog box edit box.
This snapshot illustrates:

HTML labels can be rotated to any angle and will keep the proportions.

Here is the source code for the above example label:

<big>Big heading</big><br>
This label has <i>italic</i>, <b>bold</b>, <font color="#FF0000">colored</font>
text, achieved by HTML markup tags.<br>
<small>Small text</small><br>
<i><font color="#0000FF">Combinations</font></i> allowed.<br>
Labels can be rotated and will keep the proportions.

All ASCII characters below 32 decimal are ignored, including the tab, carriage-return and line-feed characters.

You can see from the dialog box picture, which tags are recognised. The paragraph tag "<p>" is recognised, and the closing tag "</p>" is optional. However, if there is any extra text within "<p text>", then the closing </p> is required.

Currently, right, center alignment and full justification entries are recognised within the "<p>" tag. For example:

The HTML source code for this is:

<p align="justify"><big>Big heading</big> This label has <i>italic</i>, 
<b>bold</b>, <font color="#FF0000">colored</font> text, achieved by HTML
markup tags. <small>Small text</small> <i><font color="#0000FF">Combinations
</font></i> are <big>allowed</big>. This paragraph is fully justified.</p>
<p align="right">Labels can be rotated and will keep the proportions.
This paragraph is right aligned.</p>

When you click on the "Markup tags" radiobutton, the checkbox "Automatic width calculation" becomes unchecked. Therefore, you may enter a custom width, either in the "Custom width:" editbox or by dragging the resizing handle on the diagram.

Realtime label update

Any changes to the text settings of the properties box are immediately displayed in the label edit-box. That is, the label edit-box displays with the correct font.

A very useful point also is that changes to any of the text settings also immediately display on the diagram. For example, change the font angle, and it will immediately display on the diagram with the new angle. To be able to see it though, the dialog box has to be dragged aside.

In the case of the main label edit-box, after making a change, click on any field outside the edit-box to update on the diagram. This is because it is impractical to update the label on the diagram everytime a character is typed or deleted. The correct terminology is that the edit-box has to "lose input focus" to update on the diagram.
All other edit-boxes, checkboxes, list-boxes and radiobuttons will cause an update immediately they are typed into or clicked on.

Pressing the "Cancel" button will abandon any changes made to text settings. Even though these changes are displaying on the diagram, pressing "Cancel" will restore the original settings, including any changes made to the label.

Page grid dialog box

The page grid represents the piece of paper that you intend to print to. Place it on the diagram to frame the section of diagram that is to be printed. Note, you can have any number of page grid elements on the diagram. The grid can be made any size you want on-screen, but still repesents the physical piece of paper, so whatever is inside the grid will enlarge or shrink accordingly when printed.

The page grid is described in section "Page grid".

Link activator dialog box

The link activator element can be attached to any other element. It turns that element into a "hot spot", that is, a link.

The link activator is a small square, color-coded to indicate the type of link. The link activator is like the handle in other elements, in that it is only there during editing and is not seen when there is any kind of output to clipboard, file or printer. Handles can also be hidden via the "Control/EVE preferences..." dialog box.
This graphic shows a link activator and a animation activator attached to a picture icon:

Currently, these are the available link actions: 

Type of link

Description

Execute Win app

The double-click action is to execute the commandline shown in the edit box.

Open text-file

Double-click will launch the external text-editor and open the text-file specified in the edit-box. The default external editor is Microsoft Wordpad, and may be changed in "Control/EVE preferences...".

Open EVE diagram This opens another EVE diagram, in a new window. You can have as many EVE diagrams open at once as you wish -- due to EVE's extremely low memory requirement, there is virtually no limitation.

Play sound

This does what the name suggests. The path and filename of the sound file is entered into the edit-box.

WWW

Opens the specified URL in the default web browser.

Go to The edit-box has destination X and Y coordinates, and the diagram is scrolled to place these coordinates in the centre of the window.

A link may also be activated by a single left click. See section "EVE preferences dialog box".

In the above example, a link activator is attached to a picture icon. Therefore, a single or double click on the icon will invoke the link. However, if you want to get any visual effects, it is necessary to attach an animation activator, also shown in the example. Animation activators are introduced below. For example, the animation activator can provide a color change in the icon when the mouse pointer passes over, or the mouse pointer can change to a pointing hand.

However, the goto link activator does provide animation effects. It scrolls the diagram to specified destination coordinates, and can be made to scroll instantaneously, or gradually over a specified time duration. As this is overlapping into animation-effects, the goto link is further described in the section "Animation".

Home folder

When specifying a link to an external text-file, sound-file, Win app, or .EVE file, it is important to understand how the path is to be entered. Here is a snapshot of the text-file link:

The "[path]" is shown in square brackets, meaning that it is optional.

You could of course specify an absolute path, such as "c:\my documents\test1\eve_faq.rtf", however that is cumbersome and limits portability. Instead, you can make the path relative.

The "home" folder or directory is the same as the currently open .EVE file.

Or, if you have just started EVE and haven't yet saved or opened a .EVE file, EVE initially sets the home folder as the same as the eve.exe executable.

In the above illustration, I just put "eve_faq.rtf", meaning that it is in the same folder as the currently open .EVE diagram. That is, if the external file is in the home folder, there is no need for a path prefix.

Note that I could have put ".\eve_faq.rtf", which means the same thing. That is, the ".\" prefix means "current folder".
Another useful relative prefix is "..\" which means "parent folder", that is, one-up from the current (home) folder.

Animation activator dialog box

I was prompted to support animation in EVE as it is available in the SVG specification 1.0. EVE currently has very basic animation, simply moving an element or composite-object over a fixed linear line in a fixed time, continuously or when mouse-over, mouse-click or mouse-on. Also there is "animation" of the colors and visibility, including flashing.

The Elements menu has the item "Animation activator", see section "Elements menu". This element can be placed on the diagram and attached to the element that it is desired to animate. A right-click on the animation activator brings up this dialog box:

Normally, after selecting "Animation activator" from the "Elements" menu, you would point to the element to be animated, press the left mouse button, and drag to where you want the animator to be, then release button. This places the new animator element and assigns it an owner immediately. Otherwise, if it doesn't have an owner, you have to enter an owner element number in the above dialog box.

The animation activator element appears on the diagram as a little square with grey border, red fill, and a grey line drawn to whatever element it is attached to, as shown here:

Note that like handles, the animation activator disappears when there is any kind of output, such as to clipboard, printer, EMF/WMF, or SVG.

These are the trigger events:

Continuous Animation starts immediately and repeats forever.
Off Animation is never triggered. That is, no animation.
mouse-over The target element is triggered when the mouse pointer is over it. It is continually retriggered as long as the pointer remains over the element. Thus, the animation will keep repeating until the pointer is moved off the element.
mouse-click Move the pointer over the target element and click the left-button, starts the animation, and it will only execute once.
mouse-on Move the pointer over the target element, starts the animation, and it will only execute once. The pointer has to be moved off the element then back on to retrigger the animation.

Note: the "target element" is the element to which the animation activator is directly attached.

Usage of the animation activator is further described in section "Animation".


Menu dialog boxes

Various dialog boxes are available via the menu "Control", "Control/EVE preferences..." and "Control/Toolbox...".

Text find dialog box

An important requirement for practical usage is to be able to find a text string anywhere in the diagram.

Invoked from the menu "Control/Text find...". Finds the elements that contain the specified string. A "replace" feature has not yet been implemented, but this is a start.

The text find dialog box is modeless, meaning that the diagram can be worked on as each instance of the string is found (while the text-find dialog box is still there). After a string is entered into the edit-box, the "Find" button is pressed, and EVE will highlight the first element found that contains the string. Note that you may have to move the Text-find dialog box, as it may be on top of the highlighted element.

If the found element is off the window, the diagram is scrolled so that the element is located in the exact centre of the window.

You could then edit the element in the diagram. Pressing the "Find" button again will find the next element with the string, and so on.

Note that if part-way through the search, you change the text string in the edit-box and then press "Find", EVE will see that the string has changed and will automatically restart the search from the beginning of the diagram.

In the above dialog box you can see the delimiters for the text string. You do not enter these into the edit-box -- these are what EVE looks for before and after your text string, to constitute a valid "whole word" (note: "cr" means carriage-return character, "lf" means line-feed character). Note however, that you can put any of these special characters inside the text string if you wish, and they will be treated as part of the string, but EVE will still require valid delimiters before and after to recognise it as a valid "whole word".

USEFUL:
If you leave the edit-box blank. each press of "Find" button will successively highlight every label in the diagram, from highest-numbered element down.

Element# find dialog box

The above text-find feature can be used to locate any element in the diagram. Another way to find an element, and scroll the diagram so that the element is exact centre of window, is to specify the element's number. Every element in the diagram has a unique number, that you can find by right-clicking on an element to bring up its dialog box.

The found element is highlighted, and if the element number does not exist in the diagram an error message is displayed.

The very first element that you create in a diagram will usually be number 1.

Project management dialog box

An EVE diagram may be assigned a project number and a sub-project number. The former number is the overall project number, so many EVE diagrams (.EVE data files) may have the same project number. To distinguish between each diagram, each may be assigned a unique sub-project number.

This is a purely optional facility, as an aid for large projects that may require many EVE diagrams and be worked on by many people.

EVE preferences dialog box

This dialog box is concerned with configuring the behaviour of EVE.

 

Section

Description

Diagram scrolling

The default is incremental scrolling, in which the diagram scrolls gradually, with acceleration, when an arrow key is pressed. Moving the mouse pointer to the edge of the window with the left button held down has the same effect.
The alternative is to jump an entire window for each press of an arrow key. 

Display options

"Show page margins" displays lines showing the right and bottom margins of the paper if the diagram is printed.
For those with poor eyesight, the little red handles can be made bigger. The default is two pixels radius.

Mouse options

"Element drag coarseness" gives a snapping action when dragging. For 2-unit coarseness, the element jumps even-numbered coordinate amounts. 4-unit coarseness jumps to coordinates that are a multiple of 4. Advice in using this for rapid placement of library objects is given in section "Object library", sub-section "Snap-to dragging".
A single left click can be made equivalent to a double-click. See section "Link activator dialog box".

Text options

Specify the external editor, including a path if necessary. The first editor is for editing text-files specified by the link activator, and the second is for editing text labels.
Specify the default character set, for international language support. This will apply to the font of all new labels and icons. 

Print options

WYSIWYG, and printout is the same size as viewed on-screen. However, if you want to finetune the printout size relative to the screen, enter +ve or -ve values in these boxes. See section "Finetune print size".

File options EVE normally saves the database to file in a compressed format. Ticking this checkbox will turn this off, and the database is copied as-is to file. This results in a larger file size, but may be useful for programmers wishing to import .EVE files to other graphics applications.
Web browser options If the "Use alternative browser" checkbox is not ticked, EVE will use the default browser. If you would prefer to use some browser other than the default, tick the box and choose a suitable browser.
Picture options You can specify an external paint application for editing BMP/GIF/JPG pictures that are inside the EVE database. See section "Link activator dialog box" to use this.
Disable all editing This checkbox does what it's name suggests. The diagram is made read-only, and handles will not display. Nothing can be selected, dragged, or altered in any way. The entire Elements menu becomes disabled, as well as certain items in the File and Control menus.
It is important to note that this is a one-way process -- once ticked, the checkbox cannot be unticked. Users will not be able to change a read-only diagram back to editable, however the EVE Web Edition is able to untick the checkbox.

You can see in the "Label dialog box" and "Picture icon dialog box" sections, that when a new element is created, there are three fonts available: Arial, Times New Roman, and Courier New. By pressing the "Choose font" button, a custom font can be added to the drop-down list. Each element can have its own custom font.
It is important to note that the above "Apply now" button will scan through the database and change the character set to the specified language, but NOT if the element has a custom font. That is, the change applies to only elements that use the three default fonts.

It is my understanding that Arial, Times New Roman and Courier New are available in a wide range of character sets to suit the country in which Windows is being marketed. If this is not the case in your language, please let me know -- the solution will be to have alternative default fonts.

The external editors WORDPAD.EXE and NOTEPAD.EXE are the defaults for EVE. Note that no path is specified as these are supplied with all versions of Windows and Windows knows where they are.
Also, the default external paint application is MSPAINT.EXE, which is also supplied with all versions of Windows, and again no path is required.

Saving configuration settings

You can see in the above graphic, that there are three different ways in which configuration settings can be applied to a diagram:

  1. Save to current diagram.
    When you click on the "OK" button, the settings (marked by **) are saved in the database and saved along with the rest of the diagram.
  2. Import settings.
    If you have another EVE datafile that has settings that you would like to apply to the diagram that you are currently working on, choose "File/Import template...". This will import the settings only (marked by **) of another file, not the diagram of the other file.
  3. Save to "eve.ini".
    If you tick the "YES" checkbox then click the "OK" button, the current settings (marked by **) will be applied to the current diagram but also all of the settings in the preferences window will be saved to an "eve.ini" configuration file. This includes all settings for external editors and browser.
    This "eve.ini" file is created in the same folder as the "eve.exe" executable. In future, whenever you start EVE, or you select "File/New", EVE will read the configuration file and automatically apply the settings to the new diagram. The "eve.ini" settings will not affect the settings marked by ** in existing diagrams, as these are loaded with the diagram.

Toolbox dialog box

The toolbox is an exciting collection of tools for the power user.

 

Section

Description

Low-level tools

Do not play with this. It requires detailed knowledge of the fields and structure of the database. For those who like to get inside things, the file format specification is published, available to EVE WE registered users.

Composite-object library tools

These enable you to insert a composite-object into the library, meaning that it will appear in the "Elements" menu. The textual title in the Elements menu can also be edited and a small bitmap can be added to each menu item. See section "Object library".

Delete entire composite-object library

Deletes the entire library of symbols and removes them from the Elements menu (does not affect symbols already placed in the diagram).

EVE/PC system
settings/info

These checkboxes are intended to fix any problems with using EVE.
"Disable intelligent window redraw" may be useful when zoomed in. EVE uses intelligence to decide if an element lies within the window, however at extreme zoom-in factors an element may not display. This would be an unlikely situation, but if it does occur, this checkbox will fix it -- make sure it's unticked for normal usage, as drawing is slower when EVE's drawing intelligence is turned off. 
"Disable diagram scrolling by mouse" is unlikely to be needed, but it's there in case. The keyboard arrow keys can still scroll the diagram. 
Best to leave these alone.


Application notes

Bitmaps

Section "File menu" describes the "Import picture..." option.

When a bitmap is loaded into the database, it is then available for any picture icon to use. The procedure for doing this is described in section "Picture icon dialog box".

Any number of icons can share the same bitmap. This means for example, that you could have the "music" bitmap illustrated above shared by all sound icons.
On the other hand, you could use different bitmaps. For example, "execution icons" could have bitmaps pertaining to whatever Windows applications they will launch.

There is no limit to the size of bitmap file that can be loaded. Currently however, the file type must be GIF, JPG, or BMP (versions prior to 0.95 only supported GIF). GIF is a very good choice for bitmaps that are line drawings or drawings with areas of consistent color. For example, the "music" icon shown above has a large area of consistent grey background.
EVE currently does not support GIFs with animation.
JPG tends to be better for photographs.

A most important point to note about an icon displaying as a bitmap, is that sticky wires still work. The above figure shows a red wire attached to the icons. Drag the icon, and the wire will stay stuck. Note also that that particular diagram also has the labels beside the sound icon attached to the sound icon. So, the labels will follow also.

In section "Picture icon dialog box" I have described how a bitmap can be attached to an icon, and also how a bitmap can be deleted. Deletion of a bitmap is performed from within an icon dialog box.
However, if a bitmap is deleted, doesn't that upset numbering of the bitmaps? An icon references a bitmap by its number, which is its position in the database, so it would upset the numbering if a bitmap somewhere in the middle was removed.
EVE gets around this problem by not actually removing any bitmaps. Instead, the deleted bitmap gets replaced by a very small default bitmap. This is not the most efficient arrangement, and in a future version of EVE I plan to implement a system whereby a new imported bitmap will overwrite any default bitmap if one exists.
Anyway, this is me rambling on about technical details inside the program, and it doesn't affect your usage of bitmaps. 
The only outcome from the user's point of view, is that after you have deleted a bitmap, you will find that it has been replaced by a tiny little bitmap, with the letters "EVE" in it.

Rings

I have implemented multiple rings for ellipses only. I had a need for this with my GOOSEE code design software engineering product. The innermost ring is number 1, the next is number 2, and so on. All other closed elements, i.e., rectangles and polygons, only have ring 1.

Note that the rings can be offset from each other, not necessarily concentric.

When a wire is attached to a ring, it stays stuck to it. Even if you drag the wire-end, it will tend to stay stuck to the ring, unless you pull it sufficiently to make it snap to the next ring.

Does this have any other uses? I don't know -- it will be interesting to see if anyone comes up with something.

Fine manipulation of lines

Sticky wires

The types of "sticky" lines or wires that can be selected from the "Elements" menu are curved (Bezier), segmented, and straight.

What this means is that if you drag an end near another element, it will automatically stick to it. That is, the end of the wire becomes "owned" by the element.
You can go into the wire's dialog box and delete the "Who owns me" entry -- then you will be able to drag the end of the wire away from the element.

Curved, segmented and straight sticky lines have this sticky behaviour because that is the kind of applications for which they are intended. That is, diagrams in which the lines are paths between various objects such as ellipses and rectangles.

Another thing about sticky wires is that when they attach themselves to an owner they automatically plot a trajectory to allow for an arrowhead that attaches to the owner at a 90 degree angle.

Non-sticky wires

If you want a line that does not automatically try and stick to other elements, there is a checkbox in the sticky line properties box to disable auto-stickiness. For convenience, you can also select a "un-sticky" line from the Elements menu. You can still manually enter the element-number of an owner into the line's properties box, but it won't stick automatically when you first place a line or drag its ends.

Another option if you want to draw a line that does not have this automatic sticky behaviour, nor modifies its trajectory to cater for arrowheads, is the multi-segmented line (polyline).

The multi-segmented line will sit wherever you place it and nothing "automatic" will happen. It's ends won't attach themselves to another object.

However, the multi-segment line is like any other element, and it can as a totality be owned by another element. The difference from sticky-wires however, is that the shape of the polyline remains always exactly as you set it.

Close-up work with wires

With very short lines, it becomes difficult to select the handles because thay are so close. Say that you want to drag the end of a wire -- first you click on the middle handle, then you drag the end handle.

However, when the handles are too close together, you may find difficulty with dragging the end handle, as another one gets selected accidentally.

The solution to this is very simple; zoom in.

Another suggestion is that the "sticky" wire can become unweildy if very small, due to the automatic way in which its trajectory is calculated. Therefore, use the multi-segmented wire (polyline) and you will be able to get a wire that looks precisely as you want. Note however, that you can compensate for, or reduce, the effect of the automatic trajectory -- see the section immediately below, section "Arrowhead scaling".

With the multi-segment wire, you can zoom-in as close-up as you want for really fine work.

Another point to make about the multi-segment wire is that it can be as multi-segmented as you want, via the wire's dialog box. You can go down to just two vertices, which means one straight segment. 

Arrowhead scaling

Sticky wires are described above. EVE calculates their trajectory automatically, which can be a problem. However, there is also a solution. This figure illustrates:

On the extreme left, I drew a curved (Bezier) line. EVE automatically adjusted the ends to cater for possible arrowheads and in the case of the end attached to the rectangle, to have a nice 90 degree exit from the rectangle.

I then went into the wire's dialog box and changed the line width to 2 pixels (at normal zoom factor 1 diagram unit = 1 pixel). Agh, the wire looks awful! This happened because EVE is now thinking that a bigger arrowhead will be required, so is plotting the trajectory further out along the 90 degree exit path from the rectangle.

However, there is a fix for this. To reduce the length of the 90 degree exit trajectory, change the "Arrow scaling" entry in the wire's dialog box to a negative number. As you can see, the wire third from left looks okay again.
I can take this further -- see the fourth from left, in which I have made the arrow scaling -2, reducing the exit trajectory even more.
Then, just to illustrate the effect even more, the extreme right shows the 90 degree exit trajectory enhanced by making the arrow scaling +1.

By adjusting the arrow scaling, you can get a wire to look just like you want it to, for any line width. Note also that for very short wires, there is cause for wanting to reduce the "90 degree exit trajectory" somewhat by means of a negative arrow scaling factor.

Pen width

The element properties boxes allow choice of line width, in pixels. This is for normal zoom-factor.

You can choose zero pixels width, which is special as the line will always display at one pixel width on the screen regardless of zoom factor. If you had chosen 1-pixel width, it would only display as 1 pixel wide at normal zoom-factor, 2 pixels when zoomed-in by one, and so on.

One thing you will discover in the element properties boxes is that if you chose a broken line, that is, dashes, dots, dash-dot, or dash-dot-dot, it is constrained to be only 0 pixels width (ie., always displays as 1 pixel).
This is due to a limitation in the Microsoft Windows GDI (Graphical Device Interface), which can only display (and print) broken lines that are 1-pixel thick (whatever the zoom factor).
Therefore, if you want a thicker broken line, you'll have to try to simulate it with two or more lines in parallel. 

Parents and children

The concept is very simple: any element can have an owner (parent). Furthermore, ownership can be nested, and have a tree structure. What I mean by the latter statement is that any element can have multiple children, and any of those children can in turn have multiple children.
This tree structure means that there is only going to be one "root owner" (I call it the "boss").

What is the practical outcome of this? A very simple example is that you can attach a label to say an ellipse, so whenever you drag the ellipse, the label will follow. However you can still move the label independently.

You really do need to experiment with this. A label for example, can be attached to an ellipse when the label is first created, by pressing the left button when the pointer is over the ellipse, dragging then release the button to deposit the label.
Alternatively, the label can be created as a free element just by clicking in a blank area. Later on it can be attached to the ellipse simply by entering the ellipse's element number into the "Who owns me?" entry in the label's dialog box.

If a parent is dragged, so to will the children follow, and any grandchildren, etc. This is the basis for creation of composite objects, however a child element can still be moved independently.

Note also, that if a parent element is deleted, so to will all the children, grandhildren. etc. This may seem dangerous, but it is necessary. For example, if a wire-end is attached to an ellipse and the ellipse is then deleted, it is appropriate for the wire to also be deleted.
EVE is designed for constructing organisational and structural diagrams -- for example if you had a rectangle representing a person in a business organisational chart, and then you delete that person from the chart, it is appropriate for the line attached to that person to also get removed, plus any attached label. Catbert the evil HR Manager can wipe out an entire department with one button-click!

Composite objects

The above section describes the concept of parents and children. If a parent is dragged, the child follows, but if the child is dragged, it can move independently, and also be deleted independently.

If it is decided that a group of elements are to become one solid object, indivisible, it can be achieved by "locking" the children. In all element dialog boxes you will see a "Lock" checkbox above the "Who owns me?" edit-box. If you tick this, the element will be locked in place relative to its owner.
You will no longer be able to drag it independently, and if you drag it, the whole composite-object will move.

You need to tick the "Lock" checkbox in all of the children, and the composite-object become one indivisible whole. Note however, that you can still right-click on any one of the child elements and bring up its individual dialog box. So, although they are fused together, still their dialog boxes are individually available, and you could if wanted to, unlock one of them and adjust its position or properties in some way, then relock it.

You can also use the TAB key to sequentially highlight each element in a composite-object. See section "TAB to highlight sequentially".

Composite-objects can be placed in a library. See section "Object library".

You can also disable editing of a composite-object -- see section "disable editing" (below).

Bring to front, send to back

The database is simply a sequence of records, numbered from zero. An element occupies one or more records. EVE paints the elements in the window in ascending order, that is, the lowest number first.

This means that element #34 will paint before #35, so if they overlap, #35 will be on top. If you want #34 to be on top, go into its dialog box and tick "Bring to top". EVE actually moves it to the end of the database, so it is no longer #34.

Note that if element #34 had any children, their "Who owns me?" entry would get corrected to the new element number.

Alternatively, if you want an element to paint underneath another, you tick "Send to back". With versions of EVE prior to 1.25, this option is slightly limited in that EVE just searches the database from the beginning looking for the first empty record. Therefore there is no guarantee that an element will actually be moved underneath -- v1.25+ performs a proper "send to back" by shifting the entire database by one record, freeing up record #1 (note, record #0 is reserved).

Working with overlapping elements

The above section, "Bring to front, send to back", aids with working on overlapping elements. If an element is hidden under another, so cannot be selected, the other element can be moved to the back. The hidden element will now be above it, so can now be selected.

ANOTHER WAY to select overlapping elements:
When elements are linked, that is, have the "Who owns me?" field set, highlighting any element in the group and then pressing the TAB key will successively highlight each element in the group, allowing each to be edited. This greatly aids working on the individual elements of a group such as a composite-object. This is discussed in section "TAB to highlight sequentially".

A particular problem that occurs with all vector editors is when there is a large element with smaller elements inside it. It may be that the large element has to be in the front, so that it paints last, but this means the small elements inside can't be selected.
This problem is illustrated in the graphic in section "Getting started".

The graphic in that section has an outer rectangle with orange pen, no fill. It must paint last, to cover the small elements that go into the border.

For other vector editors, you would have to move the large rectangle to the back, but it is messy having to move elements to the back or front to temporarily get rid of them. Even if the large rectangle is at the back, it is still a nuisance as it can easily get selected. Another problem is sticky lines, that get very confused, as the ends will think they are on top of the large rectangle and will automatically stick to it. And, when you create a new element, if you deposit it inside the large rectangle, the new element will automatically think that it is a child of (owned by) the large rectangle.

ANOTHER SOLUTION:
Normally, a rectangle, ellipse, polygon, or icon, is selectable by clicking anywhere inside it. However, the properties boxes have a checkbox "Selectable only on boundary". This checkbox does what the name suggests. It is a godsend in the case of the above-mentioned graphic. The large outer rectangle need only have the checkbox ticked, and small elements can then be edited inside without any problem.

This also works for icons, which means that you can have a large bitmap as a background, and it won't get in the way when you place other elements on top of it.

SELECTING LABELS:
"Control/Text find" will highlight a particular label, and pressing the "Find" button will find all occurrences of a particular string. This can be a way of selecting a label that is buried under other elements.
Note that if the edit-box in the text-find dialog-box is left empty, every label in the diagram will be found.

I recommend that you play with this file for further practice in element manipulation, finding, resizing: lockconfig.zip (lockconfig.eve).


Object library

The object-library is an extension to the Elements menu. Any objects in this extension can be created in the diagram just like any other elements.
There are two sides to this: usage and creation.

Usage of the object library

When you open an existing .EVE datafile, if it has pre-existing library objects, then you may use them. In fact a .EVE file may only have library objects, maybe a set of symbols for some particular purpose, and you can use these in two ways:

  1. "File/Open..." a .EVE datafile which has pre-existing library objects, then you can use them.
  2. If you are working on a diagram and you want to load a symbol library, "File/Import diagram..." can be used to import all of the library symbols of another diagram.

Someone can create a library of symbols, let's say "Boolean logic symbols", and save the file. The file will not have any actual diagram, just library symbols, so "File/Import diagram..." will load those symbols only to your own diagram.
I have created a simple library of logic gates -- here is a small circuit diagram constructed from them:

You can at any time delete the symbols/objects from the library. Say, because you want to load a new set of symbols. Go to "Control/Toolbox..." and click the "Delete entire library" button.
This will not affect your diagram and symbols already created in it.

For further information on the Toolbox, see below and section "Toolbox dialog box".

As you know from the section "Parents and children", elements can be organised in a tree-like structure, with an element having an owner (or parent). For composite-objects, the "Lock" checkbox of each child-element is set to lock it in place as a permanent part of the object.
However, the top element in the ownership tree, the "boss", can also have its "Lock" checbox ticked. This disables editing of the entire object, and it is likely that objects you pull out of the Elements menu will have the bosses "Lock" checkbox ticked. This is explained in section "Disable editing" (below). 

An important point that is explained in the "Disable editing" section, is that text-entry fields in an object can still be edited even when the object has editing disabled.

Creation of library objects 

The Toolbox has low-level tools for spying inside the database, and tools for creation of new library objects. The Toolbox is introduced in section "Toolbox dialog box". For convenience, the Toolbox dialog box is reproduced here:

Composite-objects (call them "symbols" if you like) can be added to the library. What this means is that they will appear in the "Elements" menu. Composite-objects are introduced in section "Composite-objects".

The steps you follow to create a library-object are as follows:

  1. Create a composite-object. Be sure that The "Who owns me?" field is set in all elements of the composite-object and the "Locked" checkbox ticked (for the element that they are all locked to, the "boss", ticking the "Lock" checkbox is optional).
  2. Highlight the composite-object by selecting "Control/Selection rectangle" then draw a rectangle around the object. OR, just click on the composite-object (the latter method is preferred, as it ensures that nothing else is accidentally highlighted).
  3. Go to "Control/Toolbox..." and click the "Append" button (top-left in above graphic). You also have an opportunity to edit the new menu entry, by editing the content of the "Menu description:" edit box.

You will find that the new item appears at the bottom of the Elements menu, and you are free to create the object in the diagram wherever required.

A technical point about this parent-child thing:
The elements of a composite-object will form a tree structure, with one "root owner", or "boss". You can simply attach all elements of a composite-object directly to the root owner, or there could be "branches". That is, one element could be attached to another, which in turn is attached to the root owner. Okay, as long as they are all locked.
In fact, this tree structure allows you to join two or more composite-objects together to form a more complex composite-object (the root owner of one can be attached to the root owner of another, for example).

The above graphic shows the "DC motor" object given as an example in the "eveintro.eve" diagram. It consists of four elements: a polyline (multi-segment line), two rectangles, and an ellipse (not the most efficient way to draw it actually -- I could have used a single polygon and one ellipse). After creating it, I followed the steps described above to place it in the library.
However, there are some factors that you should be aware of with this process:

  1. There will be one "boss" element. That is, any element in the composite-object will have an entry in its "Who owns me?" field (plus the "Locked" checkbox ticked), and it would be normal to choose one of the elements as the "boss" that all the others are locked to.
    For example, I chose the ellipse to be "boss" in the case of the DC motor. The boss has no owner.
  2. Be careful that all elements have "Who owns me?" set to a designated "boss" element and the "Locked" checkbox must be set in all elements except the boss (optional for the boss). If an element is not locked, it will be left behind on the diagram, not placed with the rest of the object in the library.
  3. At least one of the elements must be a closed-element (ellipse, rectangle, polygon) or a polyline (multi-segment line). You cannot have a composite-object composed only of "sticky wires" and picture icons. In fact, I recommend not using "sticky wires" (curved line, straight line, segmented line) for constructing composite-objects, because of their automatic trajectory behaviour -- they are really for drawing lines between objects. Use the Polyline.
  4. If you must use a "sticky wire" in a composite-object, be sure that the first-end is stuck to an element in the group. The second end may be stuck to an element in the group or left free. Do not designate a sticky wire as the "boss" element in a group.
  5. You also leave the "Lock" checkbox of the boss unticked during development. If you tick it, you cannot edit the composite-object -- see section "Disable editing" (below).

Placing single elements into the Elements menu

There is no problem with doing this. The above section described some restrictions though. These are further clarified by this SVG graphic (SVG file size is 1,562 bytes, equivalent 256-color GIF is 11,411 bytes, a ratio of over 7:1):

There is a good example here of the "boss" being invisible. As the picture icon needs a boss to be able to be placed in the Elements menu, an ellipse was chosen. When a composite-object is selected, only the boss highlights, and this has the advantage that the boss can be chosen to provide the desired highlighting. The help-icon illustrates this point, as the boss is an ellipse, so when the object is clicked-on, an elliptical highlighting appears, matching the shape of the bitmap.

The original EVE diagram of the above graphic is file "morecompobjs.eve" and is available via the public library, linked from the www.goosee.com front page.

Managing the Elements menu

A composite-object newly-inserted into the object library by pressing the "Append" button, will appear at the bottom of the "Elements" menu.

However, the Toolbox dialog box has two management buttons: "Move to start of menu" and "Move to end of menu".

  1. In the "Library#" edit box, type the number of the object -- the objects in the Elements menu are numbered from 1 upward. The number of objects in the Elements menu is displayed in the "# of composite-objects in library" box.
  2. Click "View" button to see the menu description.
  3. Click "Move to start of menu" to move the object to the top of the list in the Elements menu.
  4. Or, click "Move to end of menu" to move the object to the bottom of the list.

You will see in the Toolbox, that as well as an "Append" button, there is also a "Replace" button. The latter will insert a highlighted composite-object from the diagram into the Elements menu, replacing a current entry -- whatever number the "Library#:" edit-box is set to.

Apart from being able to replace existing menu entries, the "Replace" button is useful for editing entries. To edit an existing Elements menu entry:

  1. Go to the "Elements" menu, select a library-object and place it on the diagram.
  2. Edit the object.
  3. Highlight the composite-object, by clicking on it (make sure that all elements are locked to a "boss").
  4. Go to "Control/Toolbox...", enter the required "Library#:", press the "View" button to verify it's the right one, then press the "Replace" button.

EVE also allows you to organise entries in the Elements menu into categories. See below, section "Library categories".

Saving and importing an object library

You can create a complete set of symbols, by firstly drawing them on the diagram working surface, then convert them to library objects by the 3-step process described above.
Let's say that you create "Electrical circuit" symbols. Save the diagram with a meaningful name, such as "ElectricalSymbols.eve".

Afterward, any user of EVE can import those symbols to the Elements menu simply by "File/Import diagram...". They will be appended to any symbols already present, unless the user has deleted the previous symbols by "Control/Toolbox.../"Delete entire library" button.

The toolbox also has a facility to delete individual library objects.

Also note that "Import diagram..." will import any bitmaps in the importee diagram and add them to the bitmap picture library. See section "Icon dialog box" for details on how to manage the bitmap library.
Bitmaps that are part of a library-object are still independent bitmaps and will appear in the bitmap library. 

Library categories

EVE is being used in practical projects in which a lot of library symbols have been created for the Elements menu. For example, one project has about 60 library symbols, and it is necessary to be able to group these into categories in the Elements menu.

That is, when you click on the Elements menu, you will see the group headings, or categories, each one being a popup menu with the symbols for that category. The above Toolbox dialog box graphic (top-right) shows you the category features of the library-object management. The graphic below illustrates how categories appear at the bottom of the Elements menu:

Here is how to create a category:

  1. In the "Categories" section (see above graphic), type a text heading into the "Description:" field.
  2. Click on the "Append new" button.

Repeat the process for as many headings/categories as you want. The button "View next" enables you to cycle through and view them all, with the option of deleting (the "Delete" button) or changing the text (the "Change" button).

Earlier in this section (see section "Creation of library objects" above), you read how to create a new library symbol. That is, you constructed it on the diagram, highlighted it by simply clicking on it, then you clicked on "Append" or "Replace" in the Toolbox. The object is not yet in a category -- it will simply appear in the Elements menu.

To place a symbol into a category:

  1. The symbol must already have been imported into the library.
  2. Enter the "Library#:" value and click on "View" to verify that it's the right one.
  3. Over in the Categories section, press "View next" until the desired category appears.
  4. Press the "Place in category" button.

Thats it, its now in a category. In future, if you enter that particular "LIbrary#" and press "View", its category will also display. You are at liberty to move it to any other category.

Note that the buttons "Move to start of menu" and "Move to end of menu" are effective within the current category, or popup menu, only. Which, of course, is what you would expect.

If you want to get library symbols out of all categories, back into the main Elements menu, you can simply delete the category. That is, bring up the appropriate category by "View next", then press "Delete". All symbols in that category will be back onto the main level of the Elements menu.

If you want to get just one symbol out of a category, back to the main level of the Elements menu, there are two ways:

  1. Select the appropriate "Library#:", click "View", then down in the "Low-level tools" select "rpdata" in the "Field" box. The content of this field appears immediately below (with "dec." beside it). Replace the value with zero, and click in any other field to make it take effect.
    This removes the category link for that symbol, however it is a low-level way of doing it and I don't recommend that you play with the "Low-level tools" as there is danger of messing up the database. This is the hacker's method.
  2. Create a new category, place the symbol into that category, then delete the new category. This is the recommended method.

Snap-to dragging

You can see in the section "EVE preferences dialog box", that "dragging coarseness" can be set to 1, 2, or 4 diagram units.

You can take advantage of this snapping action when placing composite-objects from the Elements menu. However, you need to think about this carefully when designing the objects, so that when someone uses them to construct a diagram, they snap together properly.

When you are designing a new symbol:

  1. have fine coarseness turned on (1 unit), so that you can place the individual elements of the symbol accurately.
  2. When the symbol is constructed, place it in the library.
  3. Turn on the required coarseness, 2 or 4 units.
  4. Create the symbol on the diagram.

Drag the new symbol around and see how it snaps to existing symbols. If it doesn't match quite right:

  1. Adjust the shape/size of element/s of the symbol and try again (note, dragging an element's resize handle always has fine coarseness, but if you need to reposition an element, turn coarseness back to fine, position it, then restore coarseness to 2 or 4).
  2. Replace the old symbol in the library with the modified one, then paste it back onto the diagram and again see how it snaps to existing elements.
  3. You may need to loop around steps 1 and 2.

HINT 1:
When you place a symbol on a diagram, from the Elements menu, and coarseness is turned on, it is actually the "boss" element that is initially constrained to having its top/left coordinate set to the coarseness granularity. So, you can offset the other elements of the object from the boss as required. Place the symbol on diagram, left-click to highlight it, then you can use the right/bottom handles to stretch/shrink parts of, or move the entire object (see section "Stretching composite-objects"). Or, you can press the <tab> key to locate the particular element that needs adjusting (see section " TAB to highlight sequentially"). Replace the symbol in the Elements menu library.

HINT 2:
If you have a library of symbols and a diagram created by a version of EVE prior to 1.40, that does not have the "snap" feature, there is a small caution. If you place a composite-object symbol from the Elements library into the diagram, with coarseness turned on (2 or 4 units), it may not exactly align with symbols placed earlier into the diagram. This is due to the initial alignment of the "boss" element explained in HINT 1 above. You may have to turn off coarseness temporarily and "jiggle" an older symbol to align with one newly placed.

Dragging near other elements

Whenever you drag an element or composite-object, EVE watches where you are dragging it, and if it gets dragged over any other element EVE will redraw that element. Note that if the other element did not get redrawn, it would be partially wiped-out as the dragged element/object moves over it.

You can consider this when designing composite-objects. When dragging, EVE looks for any other elements that have their top-left corner within 400 diagram units horizontally and 200 diagram units vertically from the mouse-pointer tip. In the case of a composite-object, the specific element that gets checked for closeness to a dragged element is the "boss" element of the composite-object.

Say that you have built a "biggish" composite-object, and perhaps made the "boss" element a small invisible ellipse somewhere inside the object. You paste your composite-object on the diagram. Then, when dragging some other element, you find that when you drag it over the edge of your composite-object, it gets wiped out. This is because the "boss" is too far away from the element being dragged.
Solution: place the "boss" element more central inside the composite-object.

Actually, it's a bit more involved than that. EVE does check all elements inside a composite-object for closeness to the element being dragged, however some elements, particularly the polygon/polyline are not checked very thoroughly -- not all vertices are checked. However, if the boss is found to be close enough, the entire composite-object gets redrawn.

Stretching composite-objects

Note that EVE terminology has different meaning to "stretch" and "resize". Go to section "Resize selected elements" that explains this. Resizing is enlarging or shrinking the whole thing proprtionally, and you can do this to any group of elements, including composite-objects. So, you can change the shape of a composite-object by resizing, as described in the above link, or you can stretch, as described below.

From version 2.00, EVE has a generic mechanism for stretching, that applies to any group of selected elements. This concept is introduced in section "Stretch selected elements". The text below clarifies how stretching is useful for composite-objects.

When designing a composite-object, it may be that you want to change its appearance in some way. For example, in the graphic below, the composite-object is a construction of rectangles into which text can be typed (you can see the little red handles of the label elements inside each box):

Okay, but what if you need more room for the text in the boxes? EVE has a stretch feature, that enables you to stretch or shrink any part of the object, vertically or horizontally.

What you do is quite simple:

  1. Select the composite-object by clicking anywhere on it.
  2. Go to the menu "Control/Align-stretch selected elements" and deposit the crossed axes as shown above.
  3. Hold down the SHIFT key and drag the handle as indicated by the mouse pointer in the above graphic. Drag it left or right and observe the composite-object.
  4. Click anywhere else to delete the alignment-axes.

For the above graphic, dragging the handle on the right causes all vertices (points or corners) on the left side of the vertical axis to move together, away or toward the vertical axis, and all vertices on the right side also move away or toward together.

The essential difference from proportional enlarging or shrinking is that the object remains the same either side of the "target" axis, just pushed away or pulled closer. This is very important when you have elements that are positioned very carefully relative to each other -- everything stays exactly aligned.

Thus, stretching is the recommended technique for changing the size of a composite-object, rather than proportional resizing.

For a clarification of the advantage of stretching compared with proportional resizing, look at this example:

lockconfig.zip (has lockconfig.eve)

However, if you decide that you would rather edit the object by manipulating individual elements, this is also very easy to do -- see section "TAB to highlight sequentially" (below).

TAB to highlight sequentially

The TAB key is extremely useful when editing a composite-object, as it enables you to successively highlight each element of the object.

Left-click on a composite-object, and the "boss" element will highlight. Press TAB repeatedly, and each element of the object will highlight. When you get to the particular element that you want to edit, as it is highlighted it is real easy -- use the handles, if any to resize it, move it, or right-click to bring up its properties box.

The TAB key makes it a piece of cake to go to any element of an object and edit it. It gets around the problem of an element getting hidden under others so that you can't select it (or you even forget it's there).

Note that TAB will iterate through all elements with a common root owner ("boss"), whether locked or not. You know in the properties boxes that an element can have an owner, and it can also be locked to the owner. Ownership can form a tree structure, and there will always be one root, or top, owner.
So, TAB can be used in any place on the diagram where elements are attached. For example, a label attached to an icon.

Disable editing

The above discussion about how elements of a composite-object can be individually highlighted, then manipulated and changed individually, is fine during development of the object, but once it is in the library (in the Elements menu), you want users to use it, but not so easily get into pulling apart its individual pieces.

For example, clicking anywhere on a composite-object causes the "boss" element to highlight. Also it has handles for resizing. Then, you can drag it independently of the rest of the object, resize it, bring up the dialog box to change settings. Then, you can TAB to successively highlight the other elements of the object and similarly drag and edit them.

The graphic below (an SVG file, requiring Adobe SVG Viewer) illustrates a simple composite-object, composed of 3 elements:

You know that the dialog box (properties box) for each element has a "Who owns me?" field and a "Lock" checkbox. You can see in the above example how the children are owned by element #3, which has no owner, as it's the "boss".

The children are also locked to the boss, meaning that they can no longer be moved independently.

Now, to disable the ability to individually highlight each element and manipulate it, the solution it quite simple -- tick the "Lock" checkbox of the boss.

This principle applies to any element. For a standalone element, or one with children that aren't locked, when the "Lock" checkbox is ticked, the element looses its resize-handles when highlighted, can't be dragged independently of the children, and TAB won't work -- meaning that the children can't be successively highlighted.

To further clarify this, the boss element, or any standalone element (not owned by anything), when locked, has its editing disabled, and if you right-click on it, this is what you get (another SVG graphic, designed in EVE):

You have got to untick this box, click "Okay", then next time you right-click on the element you will get the normal configuration box (dialog box).

So, when the boss-element of a composite-object has its "Lock" checkbox ticked, the entire object is locked, that is, cannot be edited. However, I have made one exception -- text fields. A common requirement is that composite-objects have text-entry fields, and these must work when the object is locked.
So, when the boss is locked, right-clicking on the elements of the object has no effect, unless you do so on a label-element. In that case, this is what you see (another tiny SVG graphic created in EVE):

(I just have to point out the size-advantage to you again -- this SVG graphic is 702 bytes. As a 4-bit (16-color) GIF it is 2,660 bytes).

This gives you text-entry, but no more.

If you decide that you need to edit the composite-object in some way, it is simplicity itself -- click anywhere on the object, and the boss will highlight. Then, right-click on the boss, and untick the "Lock" checkbox.

A composite-object with text-entry fields is given as an example in the tutorial "eveintro.eve" (bundled with the "eve.zip" file).

Placing a bitmap into the Elements menu

The above sections describe how a composite-object, in other words a custom shape designed by the user, can be placed in the Elements menu and a Textual description for it inserted into the menu. It is also possible to insert a small picture.

These small menu-item pictures are very easy to create and insert. Firstly, here is a snapshot of the end result:

The steps for inserting a bitmap are:

  1. In the toolbox, enter a number in "Library#:" edit-box and press "View".
  2. Type the name of the BMP file in the "BMP bitmap file:" edit-box and press "Load".
  3. If nothing happens, you succeeded. An error message will occur on failure.

The rules for the BMP graphic file is that it must be placed in the same folder as the currently open .EVE diagram. It must be 12 by 12 pixels and monochrome or 16-color. It must be no larger than 214 bytes. Windows will display the white color as the same color as the menu background color. For 16-color bitmaps, Windows will process the bitmap and some colors as well as white will be changed to the menu background color.

When you have loaded a BMP bitmap to the Elements menu, it is then inside the database and the original BMP file is not needed. It would however be wise to archive it somewhere, in case you want to change the picture.

Changing the bitmap picture in the Elements menu is very easy. Just repeat the above three steps. Any earlier bitmap will simply be overwritten in the database.

There are many graphic editors that can be used to create such a bitmap, and free. One that I particularly recommend is used by programmers, but makes the job of creating this kind of small BMP graphic an extremely easy exercise. It is the Open Watcom Image Editor, and can be downloaded from:

http://www.openwatcom.org/

Follow the links and you will find various zip files to download. Download "cm_ide_nt.zip". Unzip it and you will find "wimgedit.exe". This will work on Win95 upward.


Binding EVE inside Multimedia Builder

This is something truly amazing, and opens up great potential for EVE. Multimedia Builder (MMB) is a multimedia authoring application, that is both powerful and cheap. To find out more: http://www.mediachance.com.

I discovered MMB when I was asked to help develop a course to teach the Noongar Australian Aboriginal language via the medium of CDROM and utilising sound, animation, hypertext, interactive testing, etc. I knew about Authorware via my work at Edith Cowan University, but a check on the Internet sobered me up when I saw the price of US$1600. I downloaded and played with all the multimedia authoring applications that I could find. I had just about settled on NeoBook4, at only US$199 ... then I made the great discovery ... MMB!

MMB is extremely powerful, extremely easy to use, and only US$45. The same company also sell a very nice vector/bitmap graphic editor called CompactDraw for only US$28. Man oh man, MMB is nice.

MMB is very useful for creating "autoruns" for CDROMs, maybe for a nice graphical installation or startup of your application, but is also great for any course-ware -- and indeed a huge range of applications, as MMB can generate a standalone .EXE executable. Where EVE comes into this, is MMB has the ability to "bind" a MS Windows application inside MMB. The basic paradigm for MMB is that you have pages, like a book, and on any of these pages you can place text, graphics, etc., even another embedded or "bound" application.

Note also, that WMF files exported from EVE can also be inserted into MMB pages, except that MMB won't display the text (if any). But, why bother to export to WMF file and then paste into MMB, when you can have EVE.EXE herself binded inside MMB!!!

To insert a "binding object" onto a page in MMB, go to the menu "Object/Create/Binding object". Then draw a rectangle on the page to the desired size. Then double-click on the binding object to bring up a properties window, and set it as follows:

You should copy EVE.EXE into the working directory (folder) of the current MMB project. When you installed MMB, let's say that you installed it to C:\mmb (rather than the default C:\Program Files\mmb  -- I think it is better to install MMB directly off the root directory of C:). \mmb is where the MMB "player" is located, and the "<SrcDir>" entry above refers to wherever the player is located. Then create your working folders inside C:\mmb.

In my case, I created C:\mmb\mmb_muni\lesson0 as my project folder. For portability, when I export everything across to a CDROM, I enter it as "<SrcDir>\mmb_muni\lesson0". I will create the MMB player on the root directory of the CD (probably with AUTORUN.INF to launch it when the CDROM is inserted into the drive), and the rest of the folder structure can be copied across as-is, ie, mmb\lesson0.

As you can see in the above window, we can have parameters for the commandline, for example:
"eveintro.eve"
Do NOT type the double-quotes. This will open the .EVE file. Put a relative path if required -- in this example I had both EVE.EXE and eveintro.exe in the lesson0 folder.
In an actual project though, maybe you should put EVE.EXE in the same folder as the player, for accessability by all sub-folders. Then, it will be in "<SrcDir>\eve.exe". For the commandline parameter, I would have to put in a relative path, for example "mmb_muni\lesson0\eveintro.eve" (or ".\mmb_muni\lesson0\eveintro.eve").

Remove the tick from "Hide menu" if you want access to the menu bar.

The default for the above window is "Terminate process", however I'm not sure how brutal that is -- it appears not to allow EVE to perform the normal shutdown procedure. It is important that EVE does perform normal shutdown, to remove memory blocks and resources, so tick "Send close and wait".

Making an EVE diagram non-editable

When you bind an EVE diagram inside MMB, you have full use of EVE's editing capabilities, and everything in the menu-bar. You can run your MMB project and work on the EVE diagrams, to get them right.

However, when the time comes to distribute your MMB project, you may not want the EVE diagrams to be editable. On the other hand, you may want to retain some features of the EVE editor. The configuration dialog box at "Control/EVE preferences..." has checkboxes to "Disable right button and dragging" of the mouse, "Hide handles" and "Hide highlighting" -- see section "EVE preferences dialog box". The EVE preferences dialog box is also shown here, with appropriate checkboxes ticked:

If you tick these boxes and then save the diagram, then tick the "Hide menu" checkbox in the above Binding object properties window, you will have converted the diagram into view-only.

What you can still do in view-only mode is double-click on an element -- this is used with icons to perform various actions. You can still scroll with the arrow keys, as the keyboard is not disabled.

Now, here's something nice -- you can create buttons in MMB to select menu-items in the binded EVE, even though EVE's menu-bar is hidden. For example, you can add "zoom in" and "zoom out" buttons. For example, here is script code to activate EVE's zoom out:

SendCommand("Binder","2,1")

Look in the MMB User Manual for a description of this function.

Bind interface menu

To further facilitate interaction between MMB and EVE, I created the "Bind interface" submenu, as shown:

For MMB users, the best way to illustrate usage is by example. The following window is a MMB demonstration, downloadable from the myeve.org front page. Here is a snapshot:

The MMB Clipboard() function can send or receive a text string to/from the clipboard. The "Bind interface" submenu items perform these operations:

"Bind interface" submenu

Description

"Read X from clipboard"

Reads the string from the clipboard and stores it as both a string and also converts it to a numerical value "X" in EVE.

"Read Y from clipboard"

Reads the string from the clipboard and stores it as a numerical value "Y" in EVE.

"Centralise X/Y coords"

Will used those two values as diagram coordinates, and move the diagram so that those coords are in the centre of the window. The values can be positive or negative (-ve is posted to the clipboard by MMB with a leading "-")

"Scroll offset X/Y"

Will use those two values as offsets in screen pixels (regardless of zoom factor), and will scroll the diagram by that amount. The values can be positive or negative (-ve is posted to the clipboard by MMB with a leading "-").

"Find text string X"

Will use the X value as a string, and will locate it on the diagram, and will place the element in the centre of the diagram, highlighted. Repeatedly pressing the button will find all occurences of the string, until a change in the "Text:" box occurs, and the search will start afresh (beginning of the database). Or, "...end text search" will terminate the current search, and the next press of the button will restart at the beginning of the database.

"Find element# X"

Will find and place the element in the centre of the window, highlighted.

To see how these are accessed from within MMB, examine the scripts under each button of the demo.

Animation

The animation activator is an element, selected from the Elements menu (see section "Elements menu"). It can be attached in the usual way to another element, and causes that element to animate.

Right-clicking on the animation activator element brings up a dialog box (ie. properties box), and this is shown in section "Animation activator dialog box". It is displayed again here for convenience:

The animation activator is an inconspicuous little red square, as shown here:

EVE draws a grey line between it and whatever element it is attached to (owned by). Like handles, the activator is only there for editing purposes, and disappears if there is any kind of output, such as to clipboard, printer, EMF/WMF, or SVG. "Control/EVE preferences..." dialog box also has a checkbox for turning off display of handles, for when you have finished editing and want the diagram to be view-only.

The activator can be attached to a single standalone element -- the blue arrow shown above is a single polygon. Or, it can be attached to an element with "children". All children of the animated element will move with it.

Animation of parents and children

Ok, picture this: you attach an animation activator to an element. If the specified trigger event occurs (you can see the choices in the above dialog box), off it goes, but, as stated above, any attached children will also animate. Some vital points can be made about this:

  1. The children will also animate.
  2. It does not matter whether children are locked or not -- the animation activator makes no consideration about the "lock" state of an element (except for color flashing).
  3. If you tick the "Animate "boss"" checkbox, everything, from topmost element and all children will animate.
  4. Trigger events, such as mouse-over and mouse-click pertain only to the element to which the animation activator is directly attached.

Point-3 means that if an animation activator is attached to a child element (which may itself have children), if the child element receives the appropriate trigger event, the entire group of elements will animate. That is, the top-most element without any owner and all its children (one of those children being the one with the attached animator).
This mechanism allows a composite-object to animate in different ways, depending on which child element is triggered, and the whole thing will stick together as one entity.

Editing

It is important to note that the elements can still be fully edited even when they are moving. You can right-click to bring up a dialog box. You can press the left button on the moving element and drag it -- you can adjust its position if the animation is not quite right.

EVE allows an unlimited number of animation activator elements in a diagram, however only 32 animated elements (and their children, that is, the children are in addition to this limit (or, if "Animate boss" is ticked, the entire group of elements is in addition to the limit)) are allowed to be simultaneously animating. EVE manages this automatically -- if an animating element goes out of the current view (the client window) it no longer animates. If you zoom out twice or more from normal zoom factor, nothing will animate. If more than 32 animators are in the current client window (the portion of diagram that you can see in the window), only 32 of them will actually animate.
The purpose of this limitation is to prevent CPU overload for slow CPUs.

Trigger events and color animation

Currently, animation is either off, continuous, when there is a mouse-over, a mouse-click, or mouse-on. Also, while moving there is the option of flashing the fill color or visibility of the moving element.

There is an important difference from coordinate-animation (introduced above). In the case of a moving element with attached children, the children will not flash, however they will flash if locked to the moving element.
Flashing is achieved by inverting the fill color every quarter second.

Reiterating, all children will coordinate-animate, only locked children will color- and visibility-animate.

So, if you have the "Flash colors while animated" checkbox ticked, the element that the animator is attached to will flash, and so will children if they are also locked (locked checkbox ticked in their properties box).
You can also have a "one shot" mode. If the "Oneshot flash color" checkbox is ticked in the animator, an event such as mouse-over will cause the color to invert once and stay inverted until the mouse goes off the element.
If both "Flash colors while animating" and "Oneshot flash color" checkboxes are ticked, the color will invert for half a second then return to normal when an event such as a mouseover occurs.

If you want color flashing but no movement, you must have zero values in the "Horizontal move" and "Vertical move" fields of the animation activator.

EVE moves the animated elements every 1/4 second, so there is some jerkiness. The Web Edition of EVE allows exporting to SVG, and animations viewed in Internet Explorer or Netscape using Adobe's SVG Viewer plugin, move with less jerkiness. This is because the Adobe product has more sophisticated code to calculate a trajectory and incremental movement.

Be aware that a moving element involves a lot of processing time. Therefore, it is unwise to have 32 elements simultaneously moving while you are trying to edit the diagram! Especially with a slow CPU. Keep them turned off -- after all, the purpose of animation is to be realised in the final product, when you have finished your creation.

What is the difference between the three mouse triggers? It is simple:

mouse-over The target element is triggered when the mouse pointer is over it. It is continually retriggered as long as the pointer remains over the element. Thus, the animation will keep repeating until the pointer is moved off the element.
mouse-click Move the pointer over the target element and click the left-button, starts the animation, and it will only execute once.
mouse-on Move the pointer over the target element, starts the animation, and it will only execute once. The pointer has to be moved off the element then back on to retrigger the animation.

"Home" position

An animated element has a "home" position. Obviously, this is its position on the diagram before it commences animating. In the case of mouseover, when the mouse is off the target element (to which the animation activator is attached), the element will be at its home position. On mouseover, the element will move, and when the mouse is moved off the element the element will continue to move until it is back at home position.
In the case of continuous animation, there is still a home position, which you can observe by dragging a selection rectangle around the moving element or elements. The highlighted moving elements will continue moving only until they reach home position.
Note that the reason highlighted elements will stop moving at home position is so that when they are exported to SVG they will animate in the SVG diagram in the correct place, that is, from the home position.

In the dialog box you can see the "No return" radiobutton. With "Jump back" and "Smooth back", the animation returns to its start position, however "No return" causes the animation to stop and not return, which causes the stopped position to be the new "home" position. For no return, each time a trigger event occurs, the animated element will move further away from its original home.

Color and visibility control

The best way to explain these options is by example. Look at the main page for EVE, http://www.goosee.com/. There is an example of a clickable map in the application library. This shows a range of options for implementing such a map.
Here is the first clickable map example:


...dialog box for animation activator.

With this example, when the mouse moves over the large black dot marking Perth, the black dot flashes white-black. The animation activator is attached to the black dot, the latter simply being an ellipse with black fill. That is, the large black dot is not part of the underlying GIF image, it is an ellipse element.
When the mouse moves over the black dot, also a message appears, "Capital city of Western Australia". This is a label that is attached to the black dot and is locked. The label is set to text color the same as the background, and will invert on mouseover, becoming black, thus visible.
Now, it is important to note -- the black dot will flash continuously while the mouse is over, as set by the "Flash colors while animated" checkbox.
However, the child label only changes color once, that is, becomes black color on mouseover and stays black for the duration of the mouseover. This is set by the "Child change once only" checkbox. -- if I had not ticked this, the child color would also flash at 1/4 second intervals.

The second example displays a label on the map itself:


... dialog box of animation activator

The first example toggled the color of the text, while this example toggles the visibility of the text. By toggling visibility, the text can hide on a varied background such as the map illustrated.
Once again, the text appears and stays for the duration that the mouse is over the "black dot".
Notice in the animation activator, the "Toggle visibility" checkbox is ticked.

The third example illustrates an invisible "hot spot":


My screen capture application was unable to show it, but when the mouse cursor moves over the "bullseye" of Perth, the cursor becomes a pointing hand.
The "bulls eye" is not an element, it is part of the map, that is, the bitmap image. The "black dot" of the previous examples is now an invisible ellipse, with brush set to "no fill" and pen set to "invisible" in the ellipse dialog box.
In this case we want the ellipse to stay invisible, so the only checkbox ticked is "Child change once only", which causes the attached label to invert color for the duration of mouseover.

That is, the boss element does not change color, only child elements.

You might also like to experiment with the two checkboxes "Flash colors while animated" and ""One-shot color change":

Flash colors while animated One-shot color change Result
ticked Color will toggle continuously every 1/4 second during event
ticked Color will toggle and stay until end of event then toggle back
ticked ticked Color will toggle at start of event then back after 1/2 second
That last one gives you a single "pulse" effect when the mouseover or other selected event occurs.

Toggle visibility only

Visibility toggling only applies to locked children of an animated group. In the above examples, the boss element of the group has color animation, however it is possible to not have any color animation, only visibility toggling.

Toggle visibility only
In this case, there is no color flashing at all, and only the locked children will toggle visibility.
In this example, a mouse click causes visibility toggle for 5 seconds (time=0 will cause a single 1 second toggle). Mouse-on is the same.
In the case of mouse-over, the visibility will stay toggled for the duration of mouse-over.
 
The library has an example of this: anibuttons.eve.

You can see a little further above, that if you tick "Change once only", nothing else, only locked children will change color, not the boss element. Now, ticking "Toggle visibility" as well is further constraining the locked children and they will only toggle visibility (not color).

Note that the EVE Web Edition Users Manual has further explanation and examples of color and visibility animation.

Goto link animation

The goto link activator also provides animation, by scrolling the entire diagram by a specified vertical and horizontal amount. The link activator is described in section "Link activator dialog box", and the dialog box is shown here with the "Goto" option selected:

The destination coordinates can be:

Also, an optional time duration can be specified, of the form "t=3" where the unit is seconds (and must be a whole number). If this parameter is not given, a time of zero is used, meaning the jump to destination is immediate.

EVE scrolls the diagram in 1/4 second intervals, so for the example of "h=12 v=12 t=1", there will be four increments of 3 diagram units each interval. This is somewhat jerky, and is utilitarian rather than aesthetic!

If the example was "h=13 v=0 t=1", EVE would step three times with horizontal change of 3 diagram units, then on the last step apply a correction and change by 4 units, so that the total horizontal change is 13 units. Thus, EVE arrives at the exact destination.
However, a rounding off error can occur when zoomed out from normal. When zoom=1 (zoomed out by one), odd-numbered destination coordinates are rounded down to even numbers. Thus, it is best to specify coordinates that are divisible by 2 for zoom=1, divisible by 4 when zoom=2, divisible by 8 when zoom=3.
That is, if you want goto link to always go to the exact specified destination for any zoom factor up to out-three-times from normal (zoom=3), used coords that are multiples of 8. "x=64 y=-128" for example.

Note that it is possible to attach both an animation activator and a goto link activator to the same element, and a single mouse over or click can simultaneously animate an element (and it's children/parents) and the entire diagram!
However, for mouse-click activation, the goto link has precendence, and the diagram will scroll first and when it has reached the destination, the animation due to the attached animation activator (if triggered by a mouse click) will occur. That is, they are not truly simultaneous.
Mouse-over triggering is different and occurs immediately the pointer moves over the element.

Color morphing

Currently this is supported for ellipses (including pie, chord and arc), rectangles (including rounded), and picture icons.

The usage is very simple. The dialog box of each element has a section labelled "Border effects". Here are examples of the effects that can be achieved:

Note that the above graphic is a 256 color GIF, so the morphing is somewhat compromised. Inside EVE, the color gradient is smoother.

Each element has a pen color (the border) and a brush color (the fill). A non-zero value in the "Color morphing width:" box will cause a border to be draw of that thickness (it is in diagram units, which equals pixels at normal zoom factor). This overrides the normal pen thickness.
This border is a linear color gradient, from the pen color on the outside, morphing toward the fill color on the inside.

The morphing width can be made whatever thickness is required. Most common application will be for simple buttons, and the morphing width may be just 3 to 8 pixels. It can be made bigger, and the rectangle on the right is an extreme example, in which the morphing thickness is the same as the height of the rectangle.

Note that an element can have "no fill" -- this is one of the selections in the dialog box. In this case, the fill color is still used to paint the morphed border, but inside the element is not painted and anything underneath will show through.

Very nice animation effects can be achieved with two 3D buttons. The data file "anibuttons.eve" is an example.


Installation

Installation is very simple. Create a directory (folder) on your hard disk and copy "eve.exe" into it.

"eve.exe" is ready to go, and can be launched from Windows Explorer, or you could create a shortcut icon for it on the desktop.

To create a shortcut, right-click on the desktop. Browse to find "eve.exe".

OPTIONAL:
Right-click on the shortcut and select "Properties". The "Start in" field can be set to whatever folder (directory) you want to be your working directory. Whenever you select "File/Open" from inside "eve.exe", this working directory will be selected.

If you leave the Working Directory blank, it will default to the directory in which "eve.exe" is installed, which is how you might like to leave it for now, until you get around to an actual project.

RECOMMENDED:
You will have received EVE as a zip file, with a demonstration ".eve" data file included, called "eveintro.eve". Something that is recommended is that you right-click on "eveintro.eve", and select "Open with...", then "Other...", then locate "eve.exe".
After that, whenever you double-click on a ".eve" data file, it will launch "eve.exe".

EVE version 1.39 introduced the "eve.ini" configuration file. The filename of the last-opened datafile is saved here, plus EVE's usage preferences. You don't have to worry about the "eve.ini" file at all -- EVE creates it in the same folder as herself (eve.exe). So, if you have lots of copies of "eve.exe" in different folders, they will quite automatically have their own "eve.ini" files.

System requirements

Minimum system requires a 486 CPU, 8M RAM, Windows 95, 800x600 screen, 16-colour (more colours may be required for displaying GIFs and JPGs properly). It will work with a 640x480 screen, except that the initial window size is too big (you'll need to manually resize the EVE window) and some dialog boxes may be slightly over the edge of the screen.

Windows 95 notes

EVE.EXE requires OLEPRO32.DLL, a library file that provides the code for opening and displaying GIF, JPG, BMP and WMF files. This file was not distributed with the original release of Windows 95, however most PCs of that vintage will probably have it, as many applications use it and one of them will have installed it during its install procedure.

If you have an old Win95 PC that does not have OLEPRO32.DLL, you can find it from somewhere, such as the Internet. Or, install some graphics apps on the PC -- one of them may load it. Or, take a floppy disk to a friend's PC.

OLEPRO32.DLL is kept in C:\WINDOWS\SYSTEM folder, and the Feb. 3, 1999 version is 161Kb.

The default external paint application is set to MSPAINT.EXE. This is Microsoft's basic paint application supplied with all versions of Windows, however the Win95 version only edits BMP files. You need a paint app that can handle BMP, GIF and JPG. Go to the menu "Control/EVE preferences..." and choose a more appropriate paint application -- don't forget to tick the checkbox so that the new settings will be saved to the EVE.INI configuration file.

Bugs

For any compatibility issues, bug reports, or whatever, see the Versions page.


Limitations

Edit-boxes in the element dialog boxes (property sheets) are limited to 255 characters.
The exception to this is the edit-box in label elements -- this can hold up to 65,535 characters. The label element is capable of displaying a label or block of text up to 65,535 characters on the screen. Prior to version 2.30, the limit for label elements was 255 characters.

When the <shift> key is held down, multiple elements can be highlighted by left-clicking on them. This can also be done via the menu "Control/Selection rectangle", or simply by dragging the mouse pointer around the elements of interest. This can be for duplication, moving, deleting, etc. of multiple elements on the current diagram. However, there is a limit of 4096 elements that can be highlighted. This is an arbitrary limit that I chose and can be increased in a future version if required.

Data files (.EVE files) can be as large as memory will hold. EVE uses the MSWindows API function GlobalAlloc() to allocate a space for the data file, then loads the entire file from disk. Any limitation then will be RAM size and how Windows will manage a memory object approaching or exceeding free RAM space.
However, on Win9x systems, there is a marked degradation in speed (maybe even crashing) if the uncompressed database gets beyond about 5M. This is regardless of how much RAM your PC has. Therefore, aim to keep your files below this. When saved, a 5M uncompressed database gets LZP compressed and may be 1M to 4M -- it will be toward the bigger end if it has many graphic images, that are already compressed.

A diagram may have a lot of elements and still respond very quickly -- a diagram I have constructed of 12,000 records still worked perfectly (approx 6,000 elements). Hardly any slow-down. For normal working on elements, creating new ones, etc., it works as fast as ever. Has lots of little GIFs in it too. The only slow-down that I can see is when I zoom right out and redraw the entire diagram by right-clicking or scrolling -- there is a big flicker. Saving and opening also takes a couple of seconds.
When saved, the 12,000-record diagram file size is about 450K (LZP format) (3.3M uncompressed). 

A couple of basic rules. Firstly, for a diagram with few graphic images, up to about 8,000 elements is within the 5M limit. However, graphic images can be big, and importing many of them can rapidly raise the size of the database. I suggest that a second basic rule is don't use an EVE diagram as a repository for a huge number of graphic files or very large graphic files. Importing 1M graphic files will quickly bring the database up to that 5M limit!

Note that EVE determines which elements lie within the window when painting to the window, so even when the diagram is enormous there is not much slowdown. However, as you zoom out, more diagram is within the window, so EVE has to paint more elements, and if you zoom right out to see all 6,000 elements (for example), then the slowdown is noticeable.
The Toolbox has a checkbox "Disable intelligent window paint" that forces EVE to paint all elements even when zoomed in. This will cause a slowdown when zoomed in, so it is recommended that you don't tick this box for large diagrams. 

With version 0.97 I introduced library object management, and this has imposed a potential limitation. Technically, my code uses the Windows menu identifier to hold element numbers. As this identifier is only 16-bit, it can only hold 65,536 values, so no element numbers greater than 65,500 can be made into library objects -- well no, EVE does a little bit of tricky coding, in which the first 4000 menu identifiers are reserved for actual menu items, leaving 65,536 - 4,000 = 61,536.
In practice this is unlikely to be a problem, as a database of 61,536 records is one whopping big diagram!

EVE sometimes creates temporary files. When you edit text files or graphics using the external editors, EVE creates "temp.txt", "temp.bmp", "temp.gif", "temp.jpg" as appropriate. If you open an embedded EVE file, that is with an extension ".eve.exe", EVE creates a temporary file "temp.eve". For EVE Web Edition, a temporary file "temp.svg" is created.
All of these files are created in the same folder as the "eve.exe" executable.
Therefore, avoid creating any file of your own in the "eve.exe" executable folder with these names, as it will be overwritten.

EVE will also create a file "error.eve" if there is a bug in the program, for the purpose of "talkback" (see below). This will be created in the same folder as the currently open .EVE data file, or if no existing .EVE file is open, it will be created in the same folder as the "eve.exe" executable.


Error talkback

EVE is "talkback enabled". I got this idea from Mozilla -- that is, when a crash occurs in Mozilla, the user has the option of sending an automatically-generated bug report back to the Mozilla developers.

EVE does an incredible amount of internal error checking, in particular to verify the integrity of the database, however software can not be guaranteed bug-free, so it is possible that EVE may display an error message or even crash.
EVE is normally very stable, however sometimes when a new version is released, a bug can show up.

To improve the reporting of these hopefully very rare bugs, EVE's talkback feature semi-automates the feedback process. For any kind of error, including what is known as a CPU exception, EVE will pop-up the following message:

The first paragraph explains the type of error that has occurred.

The second paragraph explains that EVE will open your default email client application if you press the "Yes" button.
You will see an email message, ready to be posted, looking like this:

The "Subject" line contains an error code and the values of CPU registers at the instant of the error occurrence, so don't change it.
Type whatever you want into the body of the message.

EVE will have taken a snapshot (picture) of the window at the instant of the error occurrence and placed it on the clipboard, and you may find this useful to attach to the email. I do not know if any email clients support pasting of a bitmap picture straight from the clipboard (Calypso and Outlook Express don't), so you may have to paste it into a graphics application such as Irfanview and save as a GIF file. Then you can attach the GIF to the email.

EVE also takes a snapshot of the database at the instant of the error occurrence, and saves it as "error.eve" in the same folder as the last-opened .EVE file, or in the same folder as the EVE executable "eve.exe".
You may also attach this file to the email, and this may be extremely helpful for me to reproduce exactly the conditions of the error -- as long as you don't mind me seeing whatever it is that you have constructed!

The file "error.eve" is a normal EVE data file, and you can open it and view it, though of course the error may reoccur. You may notice that the file "error.eve" is about twice the size than it would normally be -- this is because it is saved uncompressed -- EVE normally compresses the database before saving it.

Very few applications have such sophisticated error talkback, certainly not an app that weighs in at around 70K bytes!

In case you are interested in the meaning of the text in the "Subject" line of the email message, here is the breakdown:


Main page: http://www.goosee.com/

(c) copyright Barry Kauler 2001/2002/2003. All rights are reserved.

Disclaimer: No liability is accepted for behaviour of applications nor for correctness of any documentation. Use of any program or document indicates acceptance of this total waiver of liability.