Alventis and Designer use an innovative windowing interface allowing you to work in multiple concurrently open forms. The concept should be familiar to you from numerous other applications using the standard Microsoft Windows Multiple Document Interface (MDI). Alventis and Designer are similar in many ways, but differ in some important details. Since both Alventis and Designer use the same exact interface, and this entire chapter applies equally to both, we will be only mentioning Alventis for the rest of this discussion for the sake of brevity.


A large part of Alventis' interface follows the "standard" quite closely:

You can open as many forms as you like. Note that we call them "forms" but many applications refer to them as "windows".
You can arrange forms within the Alventis Workspace (the empty area of the main application form) whichever way you like.
All forms are resizable. Note that we are talking here only about forms that can reside in the Alventis Workspace concurrently with other similar forms. This excludes dialog boxes, for example.
You can minimize forms. They appear as little rectangles at the bottom of the Workspace.
You can maximize forms to make them as large as the Workspace.
You can activate the desired form by picking it from the Form List dropdown menu BarIfxFormList. You can also switch between the current and the previously-active form using the Alt-F6 shortcut.


As you can see, there's nothing unusual about the most essential aspects of Alventis' interface. There are only two new and unusual elements:

Forms are Workspace-bound. Not only do they appear within the Alventis Workspace, but they cannot extend beyond its boundaries. You simply can't move or resize a form to make it not fit. Resizing the Workspace moves and/or resizes forms within it if necessary. A very nice consequence of this aspect of Alventis' interface is that it becomes remarkably easy to place a form, say, in the corner of the Workspace. You no longer have to carefully move it in the desired position only to overshoot by a pixel or two and get the dreaded Workspace scrollbars. In Alventis, you just move it as far as it will go: because it won't go any further than the corner or side of the Workspace.
Maximize is per-form. When you maximize a form, only this form is maximized. The rest of them remain normal, so you can have a sizable form on top of a maximized one if this is convenient. You are free to maximize multiple forms, of course.



Interface Persistence. Alventis attempts to preserve the last known state of everything within it and restore it whenever you re-open the relevant form. Simply put, you can close Alventis that has two dozen open forms, re-open it the next day, and find everything in place as if you haven't closed it at all. The following is a partial list of the most important elements Alventis preserves for you:

Form state and position
Menu and bars setup
InstaButton's individual settings
Splitter positions
Grid customizations
MRU (Most-Recently Used) combo box's lists


You may occasionally want to defeat the automatic saving or loading of these Persistence states. Both saving and loading do not occur if the Shift key on the keyboard is pressed. Pressing and holding it starting with the moment the Splash Screen appears, for example, will launch Alventis "clean" with nothing re-opened and re-loaded. Same goes for InfoView forms: Shift-opening them will prevent their Persistence loading. You may not be able to successfully exercise "fine control" over what you do and don't want to save/load, i.e., it is not possible for you to launch Alventis re-loading its menu/bar setup but not MRU lists of combo boxes. Nevertheless, you can certainly use this feature to, say, open an InfoView, mess-up its layout with its Splitters and Grids, and Shift-close the InfoView without saving any of your unwanted changes for posterity.


Whenever you launch Alventis with the Shift key pressed, the first thing it does is offer you to clear all Persistence information completely. You can accept or reject this offer based on the circumstances.



Alventis has some menus and toolbars. On these menus and toolbars, you will find buttons, combo boxes, and other interface elements that together expose almost all the features available to you. By default, both menus and toolbars contain almost all available items. Together, they contain all of them. The items not duplicated on the menus are simply more appropriate for toolbars: Bold/Italic/Underline/Strikeout buttons, as well as Font Name, Size, Style Picker, and MemoSearch combo boxes. Toolbars and menus are essentially equivalent in the sense that they give you access to whatever items they happen to contain. Clicking a button on a toolbar is therefore no different from clicking the same button on a menu. Which is why we won't be making any explicit distinctions about bars and menus when we talk about clicking buttons or using other similar items. Whether you prefer to use menus or toolbars is a matter of your personal taste. We tend to favor toolbars since they offer a more direct access to the buttons they contain. In particular, toolbars are more convenient when dealing with numerous InstaButtons. That said, you can have multiple InstaButtons on menus too, so it's completely up to you.

You can fully customize both menus and toolbars to your liking. See the Customizing Toolbars and Menus chapter for more information.



Alventis supports a variety of common data controls, such as Edit Boxes, Combo Boxes, Radio Button Groups, and so on. These should be familiar to you from other software, so we won't be describing these in any detail.


You may be less familiar with a few other items, so we'll give you brief tips on their use.

SpinEdit Boxes allow you to enter numeric values. Some are limited to integers, others allow floating point numbers. You can enter values directly as you would in a regular Edit Box. You can also "spin" the value incrementing or decrementing it using the little up/down buttons. You can do the same using the keyboard by hitting the Up/Down keys. You can also use PageUp/PageDown to increment/decrement the value in larger steps. For example, Up may increment by 1, while PageUp would increment by 4.
Image Boxes can store pictures. All operations available to you are accessible via the context menu. To open it, right-click the Image Box.
Calculator, Date, and Time Boxes work on the same principle: you can enter values directly as you would in an Edit Box or you can use the drop-down dialogs that allow you to calculate or pick the desired value.



RotoSplitters. These are the fairly common draggable dividers you should be familiar with from other software. The only unusual thing about splitters in Alventis is that they can be rotated. Look for a little "button" at the right or bottom edge. Splitters that have this button are RotoSplitters. You can rotate them, i.e., toggle their orientation between horizontal and vertical, by clicking the little button or by Shift-double-clicking anywhere on the splitter. A few splitters cannot be rotated: usually, such splitters have an obvious preferable orientation, so changing it simply wouldn't make much sense.



PanelZoom. Alventis allows you to "zoom-in" to a particular Panel (or area of a form). This amounts to "maximizing" that Panel to temporarily fill the entire form much as you would maximize a form to fill the entire Workspace of the application. There are two ways to zoom a Panel. You can double-click the desired Panel. Note that you can double-click not only the Panel per se, but any Label, Shape or static (cosmetic) Image on it anything on the Panel that normally does not react to clicks. The other way is to invoke the PanelZoom command BarIfxPanelZoom from a toolbar or a menu. This will zoom the Panel closest to the currently focused item on the form. This seemingly simple statement hides a lot of complexity, so let's try to see what it is really trying to tell you.


Alventis always tries to zoom the closest enclosing Panel that supports zooming. And not all Panels do. Time for an example.




Let's imagine that the designer of the form depicted above has set the following Panels to be zoomable: A, B1, and B2. This case is fairly simple: you can zoom the entire Panel A by double-clicking it. You can also zoom each of the split sub-panels B1 and B2.


Let's now imagine that the designer has specified only Panel B to be zoomable. Attempts to zoom either sub-panel B1 or B2 will no longer zoom the corresponding sub-panel, but rather the entire Split Panel B. Let's say we double-clicked B1. This sub-panel is not zoomable though, so Alventis will start looking for the next enclosing Panel. In the above example, it won't have to look very far: the very next Panel is the entire Split Panel B, which is zoomable, so this is what gets zoomed. Similarly, attempts to zoom Panel A will result in Alventis going through Panels in the order A B1 B, and zooming B again.


What Panels are or are not zoomable is up to the designer of the form. As far as InfoView forms are concerned, this is set on a per-Panel basis in Alventis Designer.