VisualOberon

A GUI library for the ooc compiler

from 13 December 1998

Tim Teulings


Table of Contents


1 Copying

Every part of the archive under the GNU license (see section 1.1 The GNU license) if not otherwise stated.

1.1 The GNU license

GNU GENERAL PUBLIC LICENSE Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.> Copyright (C) 19yy <name of author>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.

<signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.

2 About

2.1 What is VisualOberon?

VisualOberon (or short 'VO') is a collection of classes written in the programming language Oberon-2. The classes are designed to easily build graphical user interfaces for programs written in Oberon-2. VO is distributed under the GNU license and it uses OO2C as development tool.

Oberon-2 is an object-oriented programming language, a successor of Pascal, designed by the renowned Niklaus Wirth. It combines the popular and proven design of Pascal (strict type system, easy to read code, easy to follow program flow, possibility to naturally structure your source code) with the modularity of Modula-2 and enhances both of them with clean, simple but powerful object-oriented concepts, including inheritance, dynamic type information, virtual methods, various access rules on class and module basis and a built-in garbage collector.

VisualOberon uses OOC and its first implementation OO2C as development tool, but VisualOberon's design is not limited to that compiler. It is based on the language defined by the official language report and thus should be easily portable to other compilers.

2.2 What are its main design criteria?

Simplicity:
VO should provide a powerful layout tool for the programmer, but should also eliminate the need to handle low-level GUI details. It should also free from needing to make low-level design decisions. In a way it is similar to TeX. You give it a abstract description and it will generate a good-looking GUI by its own.
Extensibility and flexibility:
The classes should be designed to make them easily extensible. Features missing should be easy to integrate without the need to rewrite huge code sections and without breaking compability.
Portability:
The class library should be portable so that the classes share the same interface among different platforms. Programs building an interface under one operating system should be portable without any changes to the code. The class library itself is not portable because it is implemented by making specific OS-dependent calls. VO must be adapted to each OS. However, VO tries to build a abstraction layer everywhere where it is possible to hide OS-dependent details.
Configurability:
Since VO should be platform independent it must be possible to get a native look and feel. VO achieves this not by building a layer on the existing API of the OS, but by building its own GUI objects which are flexible enough that their look and feel can be easily configured to mimic the look and feel of the current OS. While far from being perfect, the current version demonstrates the potential and proves the concept of a configurable GUI.
Modern features:
VO should give the programmer access to all common GUI features like auto font adapting, resizability, and things like drag and drop... It should be possible to build a complete state-of-the-art GUI.
Free use:
VisualOberon is available under the GNU programming licence (GPL) and thus guarantees free use.
Development style:
The incremental development methodology offers quick updates and bug fixes, fast response to problems and good communication and code exchange between developers and users.

2.3 What is the current status?

Many common object have already been implemented. Key features like keyboard and focus handling and drag and drop have already been implemented. VisualOberon has also been used as the development basis for a number of programs which have shown the validity of the applied concepts. The screenshots on our homepage should show that VisualOberon is already beyond its planning phase and is well within its implementation phase. Only a few common objects are still missing.

2.4 What is missing?

While the concept of VisualOberon has been proven, a lot of work still remains. There are a number of objects missing. VisualOberon is currently a project led by a few people and it is clear that their combined efforts are not enough to make VisualOberon the state-of-the-art GUI engine we know it could be.

Thus VisualOberon definitely needs the active support of more people. This should of course mainly be programmers but also designers and people with knowledge about various systems and concepts are needed. We also need more demo programs and people using VisualOberon in real world applications by writing programs. People writing documentation are also welcome. In the end, support for hardware in the form of mirrors and ftp access for the developers are a good things to have :-)

You ask what you can get back for your investment in supporting VisualOberon? First you can learn much about the design and the implementation of a huge project. You learn much about the design of a GUI system from the ground of. VisualOberon and it full published source code lets you look behind the scenes of a modern, object-oriented GUI. You learn much about cooperating and programming in a team.

There are also direct advantages for your own programs. VisualOberon due to its powerfull design:

2.5 Addresses of mailing list, home page, ftp and address of the programmer:

The address of the home page is:
@url{http://ping.de/sites/edge/VisualOberon.html}.
The address for source code downloads is currently also:
@url{http://ping.de/sites/edge/VisualOberon.html}.
The address of the mailing list is:
@email{VisualOberon@edge.ping.de}. Write to @email{majordomo@edge.ping.de} for information how to get on the VisualOberon mailing list.
Contact person:
Tim Teulings @email{rael@edge.ping.de}.

2.6 Information about Oberon-2

For a first overview over Oberon-2 look at @url{http://www.ics.uci.edu/~oberon/intro.html}.

A huge number of additional information can be found at @url{http://www.math.tau.ac.il/~laden/Ob-pkgs.html}. A european mirror will soon be @url{http://shulen.Hagen.de/IF/Oberon/}.

3 Concepts

3.1 Messagesystem

The messagesystem used in VO is rather simple but nevertheless very powerfull. It allows you to handle messages using one or both of the two common message handling paradigms.

The first common event-handling mechanism is the event-loop aproach. All events are handed to a procedure. Within this procedure - the event handler - the programmer analyses the type and the source of the handled event and then calles the apropiate operations. This aproach f.e. it is used in `XTest.Mod' at some place.

Another aproach is to connect events directly to the apropiate actions. This can be done by using callback functions. That means that for every event and seperat functions is called that exspecially handles the given action. Motif f.e. uses such a aproach. A variation of this aproach is, that events directly generate actions by using some kind of mapping table. While the first aproach (event loop) better maps to the mind and the way of thinking of most programmers and also has the advantage of centralizing the operation decision section of your program the callback aproach is more fitting for an automatic driven GUI, where the programmer just makes "connections" and the event handling and dispatching system of the GUI then "automatically" and "automagically" mappes the right stuff. The callback method has the disadvantage of spreadding event-handling code all over your program and makes it difficult for th programmer to follow event and datatflow.

The callback aproach is also used in `XTest.Mod' but is more hidden withing the GUI creating code.

As said, VisualOberon supports both aproaches in an easy to use and understandable way. VisualOberon does not force th programmer to use on on the other aproach. The programmer can switch between both aproaches or even use both of them simultanious where he thinks its apropiate.

The base of the whole eventhandling is realized in module `VOObject.Mod', implementing the baseclass for all message exchanging and message handling objects. It it well commented, but I'll give an in deep description at this place.

The eventhandling will be handled between objects inheriting from MsgObject. All visible objects do, the global display instance and windows do and models also do. So messages can be send to who ever you like if it just inherits from MsgObject.

Objects do have a number of actions/msgstypes they can send. They also have a number of actions/messages you can send them that will trigger actions at the receiver (You can send a close-message to a window and it will close. Otherwise the window can send you an close-message when it gets closed).

If your interested in getting notified about an action occouring, you add your receiver object (which must inherit from VOObject.MsgObject) using MsgObject.AddHandler. When adding your receiver object you must name the msgtype you want to receiv but handing the msgtype id. A message sending object defines a unique id for every message type it can handle. There are special id common to all message object that state that you want to handle all events from that object or that you want to send an event to all handlers (EveryMsg and BroadcastMsg).

But you do not only want to get notified about an actions ourself but also want to trigger new actions for other objects when an action occurred. F.e. you want to close the popup-window in XTest when someone presses the OK or Cancel button. Since actions may not parameterless we need a generic way to transform the send action to another action (which implies on the Oberon level that you must convert an instance of one class to another class) that the second object can receive. This means, we must transform the Clicked-msg of the buttons to a Close-msg for the popup, without the buttons and the popup knowing each other and the structure of their messages.

As a consequence we do not pass the receiver directly to MsgObject.AddHandler but we only assign a handler. The receiver object itself has to be registered within the handler. The handler must be derived from VOObject.Handler and gets called by the object when it send its message. The handler has to return a message itself which then gets send to the receiver stated in the handler. The returned message can be the same as the passed but it need not to be. That way we can write our own handler that transforms the clicked-Msg of the button to a close-Msg of the popup. However the popup itself already offers us a special handler that blindly returns a close-Msg (regardles of the message received) when it gets called (VOPopup.Msg2Close).

To send a message you call the Send-method inherited from the VOObject.MsgObject class. You must hand an instance of your message and the special id of the type of message you want to send. Send then will go trough the list of registered handlers (registered using AddHandler) comparing the handed msgtype id with the msgtype id registered with each handler. If the ids match the Send-message of the handler will be called handing the message instance. The Send-method of the handler then in turn will call its Convert-method giving you the change to exchange the message type. The returned message instance (which can but needs not to be the same as the handed message instance) then will be handed to the Recieve-method of the destination object registered within the handler.

This gives us simple eventhandling but also some more advanced features. You can now write selfdriven GUIs by adding special handlers to the objects or you can use the event-loop paradigm by creating one msg-object, which gets all messages of all objects. You can even overload use on of the existing message bjects, a window or the global display instance as event handling object. You must of course take care to call the method of the baseclass.

The message system is of course not window-based, so clinging together the events of different windows is no problem.

3.1.1 References

XTest.Mod
section 5.17 XTest.Mod
VOObject.Mod
section 5.23 VOObject.Mod

3.2 The MV-concept

There are different kinds of graphical objects in VO. Some that trigger actions, some that trigger actions and/or hold a state or value and other that just show themselfs (They are inherited from VOGUIObject.Image, which has no event handling routines).

Objects that store a value or state (with value we do not mean preference-stuff like a frame to choose or something else, but the value store by the object, f.e. the string a stringgadget represents or the boolean value of a radiobutton), do not store it themself but have a reference to an model that implements a variable of the needed type. Of cause an object can have more than one model as it can have more than one value (A scroller needs 3 values, top, visible and total area). The other way round a model can be connected to more than one object, so different objects can hold and operate on the same values. The fact that one can attach a model to more than one object bears an interesting fact. Changing the value of the model you automatically update all of the dependend objects. This way you can connect f.e. a scroller and a list by assigning the same model for the top position. Each time you then move the scroller the list view updates accordingly. There is no need to explicitely handle scrolling events.

The programmer now does not change the value using the object but rather changes the value of the model which in turn notifies it objects that it value has changed. The baseclass for models is implemented in `VOObject.Mod'. It owns a number of methods to add or remove objects to models. Notifying is done using Model.Notify which goes through the list of all added objects and calls Object.Resync for each object. The model can add special defined messages derived from VOObject.ResyncMsg to give more information to the object about what has happened, but it needs not do so. A object should try to implement optimised actions for all messages the corresponding model can send and it should do a complete resync, when Resync is called with no valid message. The more information an object gets the better it can redisplay itself and a implementor of a model should try to make the message as informative as possible.

Another point is, that the model should only send messages, if its state really has changed. Thus setting a boolean model with the value TRUE to TRUE should not create a ResyncMsg.

3.2.1 References

VOObject.Mod
section 5.23 VOObject.Mod
Model
section 5.23.8 ModelDesc
BoolModel
section 5.85.1 BoolModelDesc
IntModel
section 5.88.1 IntModelDesc
StringModel
section 5.91.1 StringModelDesc
ListModel
section 5.89.4 ListModelDesc
ResyncMsg
section 5.23.6 ResyncMsgDesc

3.3 GUIObject concept

3.3.1 General object handling

This chapter is a general description of the concepts behind the handling of graphical objects. This is only a description of the Object baseclass in VOGUIObject.Mod and it inherited classes Image, Gadget and Group. The use of the other fundamental display classes like Display will only described as necessary. More information about this can be found in another chapter.

The typical lifecycle of an object can be divided in a number of states:

Instantation
Initial instantation will be done by allocating the object using the NEW operator of Oberon-2.
Initialisation
The object gets initialised by calling theInit-method, which has be inherited from VOObject.Object. If you implement your own object, take care that you call the Init-method of the baseclass and then initialise all own members. The init functions should initialize all members of the class to a state, where using without further initialisation should do no harm. Further, optional initialisation can be done by calling corresponding methods. Note, that most of the initialisation must be done before the object gets layouted first. F.e. labels for a button must be set before the object gets layout to get a valid size. However most objects try to be robust, but donīt call on that. When you build your own object you should of course try to reduce the number of such limits as much as possible. After that the object gets included into the object tree of the window by adding it to a group object with one of the AddXX-methods or by assigning it (most likely for group objects) directly as top object of the window to the window.
Initial layouting
Before the window opens itself for the first time the initial size and position of the objects within the window must be calculated to get the right size of the window. The window achives that by calling CalcSize for the top objects, which in turn calls it for all its subobjects to determine its own bounds in dependence of the bounds of it subobjects.
Displaying, hiding, redrawing
After the window has calculated it bounds it opens itself and draws the top object with (again) in turn draw itself and all its subobjects. When the window gets closed it hides the top object, so that the top object and all it children know that they not visible and must not update themselfs. Drawing will be done using Draw, hiding via Hide. There also also exists a Rdraw method for convinience which calls Draw with the coordinates currently stored within the object. Howver because of the dependence of initialisation of internal structures Redraw may only be called after a first call to Draw. If the window gets covered, redrawing of parts of the window contents may be needed. This will be achieved by calculating the rectangle that contains the the damaged area and tells the top the refresh that part by calling Refresh. The top object then redraws itself (it should try optimised this procedure as much as possible). After that it tells all its children that intersect with the dirty area to redraw themself within the dirty rectangular. Another possible action that needs redrawing is the resizing of a window. This works in a similar recursive way: The window finds out its new size and resizes the top object, which in turn resizes all its children. Since not all object may want to be resized an object can optimise the resizing by questioning the object first if it is able to grow or shrink. After the window has resized the top object and by doing this all the children, it clears the display and redraws the top object.
Change of configuration
Another special action is when the uses changes the preferences. The programmer must the force a complete redraw of all windows by calling VODisplay.Display.ReinitWindows. Each window then in turn calles CalcSize (again) for the top object (and all its subobjects), resizes itself to the new bounds and redraws the window contents. As a consequence CalcSize can be called more then once. An objects must be prepared for that. F.e. it must be aware that CalcSize and Free are not called in pairs. An object can check if CalcSize has been called for the first time by checking the existance of the flag VOGUIObject.inited in VOGUIObject.Object.flags. If the flag has been set, CalcSize has already been called.

3.3.2 Layouting

This chapter will introduce the layouting concepts behind VisualOberon, which garanty the generation of fontsentiv and resolution independent GUIs. The chapter will be devided intwo two sections. The first sections describe the routines involded in calculating the size and the size restrictions of an object itself. The second subsection will describe how group objects work and how the layout of a dialog can be described by grouping and combining the various grouping objects.

3.3.2.1 Object sizing

The bounds of an object are described by a rectangular area. The object is the complete owner of the drawing area within its bounds. While other objects may draw into the area of foreign objects as long as they handle correct refreshing they are urged not to do so. But the size of an object is not only defined by its bounds, defined by the x and y coordinates of its upper left corner and the width and the height of the object.

Size dynamic reszing is an inherent feature of VisualOberon the size of an object is not onyl defined by it current width but an object also has minimal and maximal bounds. The Init method of the VOGUIObject.Object initializes the minimal bounds to zero and the maximal bounds to the largest possible number (i.e. MAX(LONGINT)). For most objects of course this a not useable numbers. So it is the duty of the object to reassign sensable minimal and maximal bounds. The place to do this is within the CalcSize method. For example, a string object should at least as heigh as the used font plus the vertical bounds of the frame and it should be at least as width as the width of a string containg a few letters of the used font plus the horizontal bounds of the surrounding frame.

While sizes are internaly described in pixels, this is not the best way to describe sizes since the size of an object in most cases depend of the font size and other aspects. To support this VisualOberon offers to the possibility to calculate the sizes of printed text using special fonts and it also offers you the two memebers of VODisplay.Display spaceWidth and spaceHeight which are closely bound the the size of the normaly used font. Fractions and multiples of theses values should be used for sizing objects.

In many cases an object consists of a number of other objects. A button f.e. consists of an objects that serves as label and a frame object. The size of the button results in the width and height of the label object (you must call CalcSize for this object) and the frame thickness of the frame object. Also there should be some space between the frame and the label. The size of this space should be a fraction of the above named size properties of VODisplay.Display. An object should also respect the minimal and maximal bounds of its components. The button must not be smaller than its label. In practice this means that the calculation used for the evaluaton of the current size must be done also for the minimal and maximal bounds. Currently most objects only respect the minimal bounds of its component objects. Future version of VisualOberon will fx this.

But sizes are not only defined by the object itself. Sometimes the designer of a dialog want to specify the size of an object explicitely. because of that there various SetXXX methods, which give the developer the possibilty to exactly define minimal, normal, maximal width and height. Also, since - as stated before - pixel measurements are not optimal, the SetXXX methods offers various measurements modes, like factions and multiples of the VODisplay.Display space units.

Another way of manipulating the sizing of an object is setting special flags in the flags memeber of VOGUIObject.Object. The flags horizontalFlex and verticalFlex allow resizing for the specified direction. If the flag for a direction is not set, CalcSize will automatically set the minimal and maximal bounds for that direction to the "normal" bounds. Thus all sizes and sizings must be set before CalcSize is called. This is normally before the window gets opened the first time.

3.3.2.2 Grouping

Most GUI systems use a rather primitive way for layouting a dialog. Most GUI systems only allow hardcoded placement (possibly specified within a builder program) or use a rubber band based concept. VisualOberon uses another way Since both mentioned aproaches don't work well when fontsentitivity is needed, when senseable reszing is needed or when the contents of a dialog get more complex such that layouting cannot be described well.

Instead VisualOberon follows the path of object orientation a step further and defines a second kind of objects that represent a collection of child, sub or component objects and that are responsible for layouting all it children. Thatfor VisualOberon offers a class named VOGUIObject.Group derived from VOGUIObject.Object as baseclass for all grouping objects. Group offers an Add method, a list of child objects, filled by the Add member, and it implements the methods inherited by Object in a sensable way. From the view point of the programmer the Group serves as a collection in which you can trow objects using the Add method.The Add method and the list of object must of course not used, they are only a convienient feature, since they reduce the code to be implemented for most group objects. However the group object should support the Add method somehow if possible.

While VisualOberon offers you a rich set of group objects you are not restricted to them. You can alway implement your own groups by inheriting from Group and overwriting and implementing all needed methods. So it is no problem to implement a HTML-like layouting group in which you can throw text and images togheter with layouting information are a group which aranges all objects in a circle.

Also the programmer is not restricted to two hierachie levels (objects within groups). Since groups itself again are objects you can put groups cotaining objects (or groups) in another group and so on. As soon as you have a HTML-like and a circle group its is no problem to put your circle of objects into your HTML page.

At this place a special object should be metioned, that helps layouting within an group object: The space object (`VOSpace'). A space object uses a specified amount of horizontal or vertical space without drawing anything. A space object can be used to add space between objects. We now the use of groups, space and normal objects and their interaction in the layouting process using a few simple examples.

For the examples we will postulate a special group object: The group object will display all its members horizontally from left to right. The group will be as high as the highest memeber. Members smaller then the group will be centered vertically. If the with of the group is greater than the sum of of the withs of all its members, it will try to enlarge all children that are enlargeable equally. We will drop a number of buttons into the group. Details about the button are not interesting in this examples.

We use the following symbols for the various objects: > represents the left edge of the group, < the right edge. x and X stand for a button, _ symbolizes as space object.

  1. Ok, example one: We simply drop a number of horizontally differently sized buttons into the group. Since we do not set horizontalFlex the buttons are not resizeable.
    >XXXxxXXXX<
    
    The buttonn will simply be drawn from left to right with no space between them. This is a in most cases unwanted layout.
  2. Normally we at least some space between the buttons. We add some horizontal space objects between the buttons. The space object will not have horizontalFlex set, too.
    >XXX_xx_XXXX<
    
  3. The above examples are the constalations resulting in the initial calculation in CalcSize. Adding horizontalFlex to the buttons or the space object will not change the layouting since there is no space left for resizing. Because of the we asume in the following examples, that the group is wider than the sum of the widths of its contens. The can be because the object our group is child of is wider and has resized the group or because of window resizing of the user. The resulting relayuting will be done in the Draw method of the group. Initial layouting in CalcSize and delayed layouting in Draw is common for groups. In this example we add buttons and spaces as dexribed and without horizontalFlex set.
    >XXX_xx_XXX            <
    
    As described the group will draw objects from left to right. Since the group cannot resize its contents (because of the lacking horizontalFlex) the objects are simply left aligned and have their initial width.
  4. We now set horizontalFlex for the buttons.
    >XXXXXXX_xxxxxx_XXXXXXX<
    
    The group now can resize the buttons adn thus will divide the space left equaliy between the buttons. Note, that this does not result in all buttons equaly sized. If their initial size is different and the get resized by the same amount they are of course differently sized after the layouting process. Also decrising the size of the group to its inital size will result in case two.
  5. We now set horizontalFlex not for the buttons but for the spaces.
    >XXX_______xx_______XXX<
    
    This has been somehow exspected, or?
  6. Ok, now for something completely different ;-) We add a new space object in front of the first button and sethorizontalFlex only for that special space object.
    >____________XXX_xx_XXX<
    
    Ups, suddenly we have right aligned our groups of buttons.
  7. Now we do not only add a space object in front of the first button but also after the last button. For both spaces we set horizontalFlex.
    >______XXX_xx_XXX______<
    
    After left and right aligment this example results in centered buttons within the group.

3.4 Drawing concept

3.4.1 Display

Most GUI systems need somekind of handle that represents a connection to the graphic subsystem (X11) or work as a general handle to the GUI.

In VisualOberon the VODisplay.Display class does this. Before you can use VisualOberon you must create and successfully initialize an instance of the Display class. You can do this f.e. with the following code:

...

VAR
    d : VODisplay.Display;
...

BEGIN
  NEW(d);
  IF ~d.InitDisplay("XTest") THEN
    Err.String("Cannot init application!"); Err.Ln;
    HALT(1);
  END;

  ...

Note, that initialisation of the display can fail. Possible Reasons for this can f.e be, that you don't have an X sever running. Note also, that it normally does not make sense to initialize more than one instance of Display.

The Display class also serves as interface to the event-loop. In VisualOberon each window does not have a separate event-loop but it does exist one event-loop that dispatches the events itself. It does wait for events from the graphics subsystem and delegates them. The event-loop can be started by calling Display.Handler. This methods will return when the global event-loop has been stoped. You can stop the event-loop by calling Display.Exit or by sending an exit message to the display. You can restart the event-loop by calling Display.Handler again.

The Display class also serves other global ressources. These are colors, fonts, the selection mechanism, timed events, window handling, tooltips and general drag and drop handling. We'll describe certain features in place, other are described in separate chapters.

3.4.1.1 Color handling

As a convinience for the developer of GUI objects and for a easy configuration of general look and feel, VisualOberon already offers a number of building colors by defining a number of predefined pens, named by an abstract purpose description. F.e. there exists a color handle for the globally defined window background and a color handle for text color. You should use this default pens everywhere where possible. These colors are granted to be defined senseable and using them will take away from you the work of handling various possible color depths.

Howver the programmer can allocate its own colors. Custom color handling in VisualOberon is currently rather simple. It is designed for work for a limited number of colors because for each color used a internal structure is allocated. Allocating a huge number of colors may result in huge memory consuption. There is also a hardcode limit of maximal allocatable colors (MAX(LONGINT) DIV 2).

Custom color handling is based on allocating a color when needed and freeing it when it is no longer needed. For allocating a color, two ways can be used: Allocating a color by its name (which names exist may be dependent of the operating system or even the computer the program is running) using AllocateNamedColor or by giving the rgb value of the color, where every part is described by a LONGINT value (AllocateColor). While a LONGINT has a rather huge resolution (32 bits) VisualOberon is free to cut the resolution down to a lower resolution.

Another important thing to now, is, that VisualOberon does somekind of color sharing. This means, that, when two objects allocate the same color, both will share the same handle. VisualOberon internaly does somekind of reference counting. Only when all objects free the color, it gets really deallocated. This means that a handle can be valid, even when the object already deallocated the handle. Don't count on that! You should use color names as often as possible, to ensure, that color sharing can be as effective as possible and reduce the number of system colors used. Most display have a limit of globaly allocated colors.

The allocation of a color can fail. Reasons can likely be found on the operating system side. Allocating colors might fail on lower or monochrome displays. The maximum number of globaly allocated colors migh have been reached. However it is possible, that VisualOberon (or the underlying operating system) might return a color close to the original color values or even dither the color. Note, that you can query the number of colors by examing the colorMode and colorDepth members of Display. To reduce the problem of handling of failed color requests and to make the application more robust regarding external ressources, you must always hand a default handle (wich should abviously be maped to some internaly offered abstract color handle). The allocation methods will automatically return the default handle when the allocation of a pen failed.

Freeing of colors in VisualOberon is rather tricky since garbage collection does not work for it (it is possible that this may change, when an mechanism for finalisation within the garbage collector exists.). You must explicitely free a color, or frequent allocation of colors might result into a color overrun over the time. Best way to do semi-automatic color freeing is by using the build methods of registering objects within the destruction of windows.

3.4.1.2 Font handling

Font handling in VisualOberon is currently rather primitive. As with colors VisualOberon supports a number of predefined fonts. There exist two classes of predefined fonts: One for pproportional fonts and one for fixed fonts. Proportional fonts constants are named similar to TeX font sizes. VisualOberon supports at the moment only one fixed font.

The DrawInfo class offeres you a number of ways to calculate the size of an string in respect to a given font.

3.4.2 DrawInfo

Similar to other graphics engines VisualOberon has a class that stores all information necessary for drawing into a window. The methods of this class offer you a number of ways to draw into a window. DrawInfo encapsulates the OS-dependend details from you and hides them behind its interface. Each window has its own instance of DrawInfo since the information hold are specific for one window. Because of that and because of the graphical objects storing the offered instance one must take special care when trying to draw an object into different windows. Also, while it should be in priciple possible, VisualOberon does currently not support the allocation of more than one instance of DrawInfo for a window. You must use the instance allocated and handed by the window.

One concept that is used when handling various attributes of drawing like pen size and font type, is that of pushing and poping these attributes.

Existing attribute values are not overwritten but the old various are pushed on a stack and then the new values are set. When you don't need the set values you must then pop them of the stack and by this restore the old values. You must take care that your call push and pop methods in pairs! If not, you will get strange effects, most likely object using wrong attributes, like wrong colors or wrong fonts. VisualOberon checks, after a instance of DrawInfo gets deleted aka a window has been closed, if all stacks are empty and will dump a warning if not.

This aproach has advantages, since objects need not to store old attribute values when setting them. However, since currently most object exspect default values for some attributes (f.e. all objects assume that the pen size is zero) one should not have attributes pushed while calling drawing routines of other objects.

3.4.2.1 Clipping

Not done yet.

3.5 Keyboard focus

Using, handling and displaying of keyboard focus can be divided in to three parts.

3.5.1 Display and window

Not done yet.

3.5.2 Keyboard handler class

The task of the keyboard handler class is to store the list of objects that has been registered by the programmer via the AddFocusObject-method. It purpose is also the implement the abstract interface defined by the interaction between the VODisplay.Display and the various window classes derived from VODisplay.Window. It has to handle focus displaying when the window gets (de)activated and when the window (called by the display) wants a new object to focus.

3.5.3 Object and keyboard focus

The objects uses itself some flags in the VOGUIObject.Object.flags attribute to hold information about its state regarding keyboard focus handling:

stdFocus
The object uses the build in way to graphically display that it has the keyboard focus. The default way is to draw a frame around the object. CalcSize automatically allocates enough space to display the focus (in fact this is the reason for using separate attributes width, height and oWidth, oheight for differentiating between the interior and exterior size). Other objects should always use the later one while the object itself should always use the first attributes for dealing with its bounds.
canFocus
This flag signals, that the object is prepared to handle keyboard input when it has the keyboard focus. A button f.e. can be selected by using the space-key, a scrollbar can be scrolled by using the cursor up and cursor down keys. This flags to not state that the object can display the focus since this is allways possible using the build in default facilities.
mayFocus
This flags means, that the object has been added to the keyboard chain and thus should prepare itself to display its keyboard frame. It should f.e. reseve extra space for the frame. This flag will be set by the keyboard handler object for a registered object or by a registered object to delegate the display of keyboard focusing to a sub object. A button f.e. may delegate the display of the focus frame to its label, most likely when the label itself does not use the build in focus frame display routines but its own (which will be signalled by the stdFocus flag).
hasFocus
This flag will be set when the object currently does have the keyboard focus. The flag will be set and cleared by the CatchedFocus and LostFocus methods of the VOGUIObject.Object baseclass which in turn will be called by the keyboard handler of the window. This methods will also call DrawFocus and HideFocus methods which are responsible for drawing and hiding the keyboard focus frame (the baseclass methods will implement drawing a focus via the build in way). When doing drawing and refreshing and the hasFocus flag of the object is set the object should then also call its DrawFocus method. A object should not set the flag for its sub objects (e.g the label of a button) but should call their DrawFocus method within its own DrawFocus method. Look at the description of the showFocus flag for that case.
showFocus
This flag will be set by an object that has the keyboard focus (CatchedFocus has been called and hasFocus has been set within this method) for a subobject (f.e. the buttons sets it for its label) to signal the subobject that it should display a keyboard focus when drawing. The flag must clear when the focus has been lost (LostFocus has been called). An object should be check, if it has to draw the focus by calling DisplayFocus, which will return TRUE when either hasFocus or showFocus have been set and the object does not have stdFocus set (Draw will draw the standard keyboard frame, when stdFocus is set).

To summerise, there are two different kinds of object dealing differently with focus displaying:

Objects (likely gadgets or group objects) that handle keyboard input on keyboard focus directly get the focus when CatchedFocus has been called and loose it whenLostFocus has been called. When stdFocus has been set no more interaction is necessary since DrawFocus, HideFocus and Draw handle everything automatically. If there want to display a custom focus the must overload DrawFocus and HideFocus and must draw the focus in Draw when hasFocus has been set. If mayFocus has been set, the object must prepare itself to display its focus and must eventually reserve extra space while layouting in CalcSize.

If the object wants to delegate the displaying of the focus to another subobject it has to overload CatchedFocus and LostFocus and set / clear the showFocus flag for that subobject. It does not have to call extra code in Draw since the subobject knows that it displays the focus and will do that automatically when Draw gets called.

Passive object using the default way of displaying focus donīt have do to anything to support focus framing.

If they want to implement custom focus displaying the should clear the stdFocus flag to signal this. They also must overload the DrawFocus and HideFocus methods to handle focus switching and must also check the result of DisplayFocus within Draw (and possibly other drawing methods like Redawand Refresh) to display the focus in that routine, too.

Active object are urged to only delegate focus displaying when the subobject support its own way of focus displaying, e.g. stdFocus is not set.

Note also, that, if you overwrite other drawing methods like Redaw and Refresh you are responsible for drawing the keyboard focus, too, even if you are using the default methods of focus displaying.

3.6 XpmImages

VO supports loading and displaying of Xpm images trough the VOXpmImage-class. To get the best result, there are some restrictions you must consider, if you are using this class:

Since VO handles all display types from monochrome upto true colour your images must display themselves on all these displays, too. The get this working, you must extensively use the possibilities the xpm-format offers. Thus you must define a reasonable colour for all four display types xpm supports (m, m4, g, c). To support the correct display of images, VOXpmImage does even more for you. It offers all its internal coloursettings as symbolic name for you. Thus to get the background of your image with the correct background colour currently used by VO you can specify a symbolic name for your backgroundcolour named background. For all symbolic colours supported, look at the end of `VODisplay.Mod'-module.

3.7 Drag and drop

Drag and drop today is a common mechanism for manipulating data and ease the use of dialogs. This chapter describes the use of drag and drop from the view of the user and then the internal drag and drop mechanisms of VisualOberon and how one can integrate drag and drop within its own application or object.

3.7.1 Drag & drop for the user

Drag and drop is initiated by pressing the drag and drop mousebutton (under X11 this is the middle mousebutton) ofter an object (the drag object) and then moving the mouse while holding the mousebutton. The mouse pointer will change to show the start of dragging. You can then move the mouse (while still pressing the mousebutton) to the object (the drop object) where you want the drop the data associated with the draged object on. The drag and the drop object can be in different windows but the windows must (currently) belong to the same application. VisualOberon does not support inter application drag and drop yet.

One of a number of different actions can be associated with drag and drop. Which action has been choosed will be visualised by the mouse pointer. Which action is choosed depends on the keyboard qualifier you have pressed when starting the drag. There is also some default action assiciated with each object type. If you do not press a qualifier that action will be choosed.

The different actions are:

copy (control qualifier)
The data associated with the drag object will be copied to the drop destination.
move (shift qualifier)
The data associated with the drag object will be move to the drop destination. That means, the data will be deleted at the drag object copied to the drop objec.
link (shift and control qualifier)
The data will not be copied but a link between the drag and the drop object or their data will be established.

3.7.2 Internal drag & drop mechanism

The way VisualOberon internally is rather complex but most of the protocol stuff will be handled by VODisplay.Window - the window baseclass - so normally you just need to implement a few nw methos for an object to support drag and drop.

The drag and drop information flow will shown following the methods that get called while doing drag and drop.

VOWindow.GetDnDObject
After the window got the special combination of mouse and key events that possibly start a drag action it asks itself for an drag object under the mousepointer by calling Window.GetDnDObject. Each window inheriting from VODisplay.Window must overload this method and in turn must ask its top object by calling Object.GetDnDObject. Group object must delegate the call to all the object they contain while other object must check if they are under the mouse pointer and must check if support dragging of data. If they do so they must return a pointer to themself.
Object.GetDragInfo
The widow base class then ask this object to fill the handed DnDDragInfo instance with information about the datatype group and datatypes it supports, the possible actions it supports for each entry and the default action is defines for each entry. The window then changes the mouse pointer to the action the used selected by using the mentioned special qualifiers. Then it just polls the event loop as usual until the user raises the mouse button again.
VOWindow.GetDnDObject
It then calls VOWindow.GetDnDObject again, now to find out the drop object in the destination window (which can be the same as he window of the drag object).
Object.GetDropDataType
If the destination window is not blocked (f.e., because some modal window has been opened) and drag and drop object are not equal the window then calls Object.getDropDataType handing the DnDDataInfo structure and the drag and drop action choosen by the user. The Object then has to return the datatype group and datatype it wants to get from the drag object. It may analyse the structure itself but it may also the select mechanism build in in DnDDataInfo for convinience.
Object.GetDragData
If the drop object has selected a datatype this datatype will the be requested from the drag object by calling Object.GetDragData. The object returns an instance of the DnDData object. The DnDData object can be overloaded to return any datatype you like.
Object.handleDrop
After that the window hands the DnDData object recieved by the drag object to the drop object together with action. It is then the task of the drop object to interpret the type of DnDData and the action.

3.7.3 References

VODisplay.Mod
section 5.19 VODisplay.Mod
VODisplay.ObjectDesc
section 5.19.1 ObjectDesc
VOGUIObject.Mod
section 5.22 VOGUIObject.Mod
VOGUIObject.ObjectDesc
section 5.22.2 ObjectDesc
VODragDrop.Mod
section 5.20 VODragDrop.Mod
VODragDrop.DnDData
section 5.20.3 DnDDataDesc
VODragDrop.DnDDataInfo
section 5.20.2 DnDDataInfoDesc

4 Configuration

VO implements a powerfull configurationsystem, which enables the user to adapt the look and the feel of VO for his own likes.

4.1 Configuration concepts

The purpose of the configuration and preference system is maximum usebillity and flexibility. It archives by using a well named and ordered number of textual configurationsfiles. VO searches for this files in the directory `.VisualOberon' in the homedirectory of the user.

Like VO itself, which splits itself into a number of modules, each of this modules has its own configuration file. The name of the configurations is closed bound to the name of the corresponding module. All configurationfile end in `.res'

Each of this files follows the same syntax:

A configurations file consists of a number of blocks. Each blocks starts with BEGIN follow by the name of the block, after that a number of entries and ended by the word END.

A entry consists of a name follow by := and a value. A value can be a name, a number, a string beginning and ending with " or '. It its possible that an entry consists of a list of values, values are then separated by ,. Since VO supports nested structures another possible value is another block. Entries itself are separated by ;. Names are alphanumeric, starting with a character and are casesensitive.

You can also use comments, which start with a "#" and go till the end of the current line. Note, that configurationsfiles might get generated and comments will then be lost.

An example:

BEGIN COLORS
  backgroundColor      := "grey70";
  textColor            := "black";
  shineColor           := "grey95";
  shadowColor          := "grey20";
  fillColor            := "royal blue";
  fillTextColor        := "black";
  tableBackgroundColor := "white";
  textBackgroundColor  := "white";
  cursorColor          := "red";
  halfShineColor       := "grey82";
  halfShadowColor      := "grey45";
  warnColor            := "red";
  disabledColor        := "grey20";
  focusColor           := "grey30";
  blackColor           := "black";
  whiteColor           := "white";
END

BEGIN FONTS
  fixedFont  := "fixed";
  smallFont  := "-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1";
  normalFont := "-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1";
  bigFont    := "-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1";
END

4.2 Display

VO has a separate configuration file for each possible display and for every display a separate file for each colourmode. The name for a display gets generated by the name `Display' followed by a point, followed by either `mono', `grey' or `colour', depending of the colour resolution your display uses, followed by another point and the ended by the contents of your DISPLAY-variable, which normally consisting of the name of the computer followed by an optional screennumber. As all configurationfiles the files end in `.res'.

An example:

Display.color.edge:0.0.res

Display consists of two blocks: COLORS, describing the colours to use, and FONTS, describing the fonts to use.

The different colour- and fontdefinitions VO supports and their defaultvalues can be found at the end of the file `VODisplay.Mod'. Since they are likely to change, their are not described here yet. Colornames and fontnames follow the definition of the operating system. Examples can be found in the `VisualOberon' subdirectory of the VO archive or in the example given above.

5 Modules

5.1 AsciiTable.Mod

MODULENAME
AsciiTable
DESCRIPTION
A demo for the VOArray class. Shows all 256 keycodes in an array of buttons.
IMPORTS

5.2 Clock.Mod

MODULENAME
Clock
DESCRIPTION
A demo for the VOClock class. This little clock is really useable and is used by the author as part of its fvwm2 button pannel.
IMPORTS

5.3 DigiClock.Mod

MODULENAME
DigiClock
DESCRIPTION
A demo for the VODigiClock class. This little clock is really useable and is used by the author as part of its fvwm2 button pannel.
IMPORTS

5.4 DiskSize.Mod

MODULENAME
DiskSize
DESCRIPTION
Displays size of all disks.
IMPORTS

5.5 Doom.Mod

MODULENAME
Doom
DESCRIPTION
A little program to demonstrate our small doom engine.
IMPORTS

5.6 FontList.Mod

MODULENAME
FontList
DESCRIPTION
Demo for VisualOberon. Shows a list of all available fonts. Note, that the fontlist may differ from the OS fontlist, because VisualOberon may do some filtering.
IMPORTS
FUNCTIONS
PROCEDURE GetFontList(model : VOTableModel.ASTableModel);
DESCRIPTION
(no description)

5.7 HelloWorld.Mod

MODULENAME
HelloWorld
DESCRIPTION
A simple "Hello world!" demo for VisualOberon.
IMPORTS

5.8 PipeTest.Mod

MODULENAME
PipeTest
DESCRIPTION
A demo for the VOModelPipe class. This should demonstrate how different model-types (int's & string's) can be mixed to make an automated GUI
IMPORTS

5.9 PlotTest.Mod

MODULENAME
PlotTest
DESCRIPTION
Demo for VisualOberon. Demonstrates the plot object.
IMPORTS

5.9.1 SinModelDesc

CLASSNAME
SinModelDesc*
BASECLASS
FM.FunctionLRealModelDesc
POINTER
SinModel
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetValue*(dim : LONGINT; value : LONGREAL);
DESCRIPTION
(no description)
PROCEDURE Dimension*():LONGINT;
DESCRIPTION
(no description)
PROCEDURE Execute*():LONGREAL;
DESCRIPTION
(no description)

5.10 StringTest.Mod

MODULENAME
StringTest
DESCRIPTION
(no description)
IMPORTS

5.11 TestTable.Mod

MODULENAME
TestTable
DESCRIPTION
Demo for VisualOberon. Demonstrates the table object.
IMPORTS

5.12 TestTree.Mod

MODULENAME
TestTree
DESCRIPTION
Demo for VisualOberon. Demonstrates the tree object.
IMPORTS

5.13 Text.Mod

MODULENAME
TextView
DESCRIPTION
(no description)
IMPORTS
FUNCTIONS
PROCEDURE LoadFile(name : ARRAY OF CHAR);
DESCRIPTION
(no description)

5.14 VisualPrefs.Mod

MODULENAME
VisualPrefs
DESCRIPTION
The preferences program of VisualOberon. All configuration of the GUI can be done, using this program.
IMPORTS

5.15 VisualShow.Mod

MODULENAME
VisualShow
DESCRIPTION
Demo for VisualOberon. Demonstrates the image object.
IMPORTS

5.16 VOOOCP.Mod

MODULENAME
VOOOCP
DESCRIPTION
VisualOberon preferences program for oo(2)c.
IMPORTS
FUNCTIONS
PROCEDURE AddBool(label : VOLabel.Label; handler : VOKeyHandler.KeyHandler; text : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE AddString(label : VOLabel.Label; handler : VOKeyHandler.KeyHandler; text : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE AddList(handler : VOKeyHandler.KeyHandler):VOGUIObject.Object;
DESCRIPTION
(no description)

5.17 XTest.Mod

MODULENAME
XTest
DESCRIPTION
A senseless demo-programm for VisualOberon.
IMPORTS
FUNCTIONS
PROCEDURE MakeOKPopup(gadget : VOButton.Button):VOPopup.Popup;
DESCRIPTION
(no description)
PROCEDURE NewImageEntry*(file : ARRAY OF CHAR):VOListModel.SimplEntry;
DESCRIPTION
(no description)
PROCEDURE NewImage*(file : ARRAY OF CHAR):VOImage.Image;
DESCRIPTION
(no description)

5.17.1 DisplayDesc

CLASSNAME
DisplayDesc*
BASECLASS
D.DisplayDesc
POINTER
Display
DESCIPTION
(no description)
METHODS
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)

5.18 VObackground.Mod

MODULENAME
VOBackground
DESCRIPTION
Implements some classes for drawing object backgrounds in various ways.
IMPORTS
FUNCTIONS
PROCEDURE LoadBackground*(top : VOPrefsParser.Item):VOGUIObject.Background;
DESCRIPTION
(no description)
PROCEDURE SaveBackground*(block : VOPrefsParser.BlockItem; background : VOGUIObject.Background);
DESCRIPTION
(no description)

5.18.1 ImageBackgroundDesc

CLASSNAME
ImageBackgroundDesc*
BASECLASS
G.BackgroundDesc
POINTER
ImageBackground
DESCIPTION
(no description)
METHODS
PROCEDURE Init*(filename : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(object : VOGUIObject.Object; x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Copy*():VOGUIObject.Background;
DESCRIPTION
(no description)
PROCEDURE Free*;
DESCRIPTION
(no description)

5.18.2 TileBackgroundDesc

CLASSNAME
TileBackgroundDesc*
BASECLASS
G.BackgroundDesc
POINTER
TileBackground
DESCIPTION
(no description)
METHODS
PROCEDURE Init*(filename : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(object : VOGUIObject.Object; x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Copy*():VOGUIObject.Background;
DESCRIPTION
(no description)
PROCEDURE Free*;
DESCRIPTION
(no description)

5.19 VODisplay.Mod

MODULENAME
VODisplay
DESCRIPTION
This module is responsible for the handling of the display and all its attributes like color, font and that sort. It also exports the class DrawInfo which implements an abstract, that means OS-independend, drawing engine.
TODO
* Busy function for *all* windows * Rethink pens
IMPORTS
FUNCTIONS
PROCEDURE GetField(VAR source : ARRAY OF CHAR; pos : INTEGER; VAR string : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE ConvertField(VAR source : ARRAY OF CHAR; pos : INTEGER; string : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE CreatePixmapCursor(bit1,bit2 : C.address; w,h : LONGINT):X11.Cursor;
DESCRIPTION
(no description)
PROCEDURE XFree*(pointer : SYSTEM.PTR);
DESCRIPTION
Frees memory allocated using X11 if the pointer is not NIL.

5.19.1 ObjectDesc

CLASSNAME
ObjectDesc*
BASECLASS
O.MsgObjectDesc
POINTER
Object
DESCIPTION
The display defines its GUIobject to be able to store pointers to GUIobjects. VOGUIObject.Object inherits from this object.
METHODS
PROCEDURE GetDragInfo*(VAR dragInfo : VODragDrop.DnDDataInfo);
DESCRIPTION
Before the data drop actually occurs the drag object will be asked for a list of supported datatypes. This will then be handed to the drop object which than can select a apropiate datatype. This type will the requested from the drag object and after that will be handed to the drop object.
NOTE
The is no way to cancel the action at that point the object has already made itself valid by answering VOGUIObject.Object.GetDnDObject. This is only true for internal drag and drop. External drag and drop may leave some of the described steps. An object must be prepared of that.
PROCEDURE GetDragData*(group, type, action : LONGINT):VODragDrop.DnDData;
DESCRIPTION
All objects support drag actions. Return a derived class from VODragDrop.DnDData if you can offer drag data of the given type or NIL.
NOTE
data should really be of type DataDesc, but there seems to be compiler bugs with it. We will change this later.
PROCEDURE GetDropDataType*(VAR dragInfo : VODragDrop.DnDDataInfo; VAR group,type,action : LONGINT):BOOLEAN;
DESCRIPTION
The object gets a list of supported datatypes of the drag object and has to choose one of them. If there is no fitting datatype it must return FALSE.
PROCEDURE HandleDrop*(data : VODragDrop.DnDData; action : LONGINT):BOOLEAN;
DESCRIPTION
All object can handle drop actions. Return TRUE if you have handled the drop event.
PROCEDURE Deselect*;
DESCRIPTION
Gets called, when the object has registered a selection using Display.RegisterSelection and now should deselect itself because somebody else has registered an selection.

5.19.2 WindowDesc

CLASSNAME
WindowDesc*
BASECLASS
O.MsgObjectDesc
POINTER
Window
DESCIPTION
The abstract baseclass for all windows. All windows should derive from this class and call the apropiate methods where stated.
NOTE
Window inherits from O.MsgObject, you can send messages to it.
METHODS
PROCEDURE GrabOn;
DESCRIPTION
Grabs the mouse cursor and keyboard.
PROCEDURE GrabOff;
DESCRIPTION
Releases the grab of the mouse cursor and the keyboard.
PROCEDURE HandleDrag(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
Called when some drag action should be started.
PROCEDURE HandleDragDrop(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
Called when a drop action should be handled.
PROCEDURE HandleXSelectionNotify(event : X11.XSelectionEvent);
DESCRIPTION
Handle the XSelecitionNotify of X11. A SelectionNotify gets send when someone made a request for the selection value. The event states where one can get the selection value from.
PROCEDURE HandleXSelectionRequest(event : X11.XSelectionRequestEvent);
DESCRIPTION
handle XSelectionrequest of X11. A SelectionRequest gets send when some application wants the selection value and your window has registered the selection. We ask the object which has registered the selection for the selection value and return a notify message to the requestor.
PROCEDURE Init*;
DESCRIPTION
Initialize an instance of the window class.
NOTE
You must call this before using a window.
PROCEDURE SetParent*(parent : Window);
DESCRIPTION
Sets the parent window of the current window. VisualOberon will try to make use of the supplied information about the hierachical structure of the window tree.
NOTE
Parent will only be evaluated before first opening.
PROCEDURE SetTitle*(name : ARRAY OF CHAR);
DESCRIPTION
Sets the title of the window.
NOTE
Value will only be used before first opening.
PROCEDURE SetDisplay*(display : Display);
DESCRIPTION
Sets the display for the window.
NOTE
Only evaluated before first opening.
PROCEDURE SetModal*;
DESCRIPTION
Make the window modal.
PROCEDURE SetBackground*(color : Color);
DESCRIPTION
Sets the background color.
PROCEDURE Borderless*(borderless : BOOLEAN);
DESCRIPTION
Make the window borderless.
NOTE
Only evaluated before first opening.
PROCEDURE CreateAllways*(create : BOOLEAN);
DESCRIPTION
Tells the window to allways create a new window of the underlying windowing-system on a call to Window.Open. This is most usefull for unmodal windows or popups where it is difficult to track open and close calls.
PROCEDURE SetSize*(width,height : LONGINT);
DESCRIPTION
Sets the width and height of the window.
NOTE
Does only work, if the windows is not open. If the window is open, use Window.Resize instead.
PROCEDURE SetMinSize*(width,height : LONGINT);
DESCRIPTION
Sets the minimal width and height of the window.
NOTE
Does only work, if the windows is not open. If the window is open, use Window.Resize instead.
PROCEDURE SetMaxSize*(width,height : LONGINT);
DESCRIPTION
Sets the maximal width and height of the window.
NOTE
Does only work, if the windows is not open. If the window is open, use Window.Resize instead.
PROCEDURE SetPos*(x,y : LONGINT);
DESCRIPTION
Sets the top left of the window.
NOTE
Does only work, if the windows is not open. If the window is open, use Window.Resize instead.
PROCEDURE SetPosition*(horiz, vert : LONGINT);
DESCRIPTION
Set the position modes for vertical and horizotal positioning of the window on the display. If no modes are explicitly set, the x,y position of the window will be used. This position is the position set with SetPos or defaults to zero. In this case the windowmanager might position the window (it might, too, if you set a mode, since a windowmanager may ignore these values).
PROCEDURE AddFreeList*(object : VOObject.Object);
DESCRIPTION
Using this function you can link object to the window. If the window gets deleted (you must call Window.Delete when the window is not used anymore!) all Object.Free gets called for all objects in the freelist. This way you can asure that objects that allocate OS ressources (like bitmaps, colors, fonts etc...) free this ressources. The order of calls to Free for the registered objects is not determinated. Also can cannot be sure that Free gets called only ones. For windows which have createAllways set, Free gets called every time after the window gets closed. So you should allocate your ressources and register yourself in GObject.CalcSize to asure reentrace. Object.Free is currently not called on program exit! You can call AddFreeList more than once. You can get a pointer to the window via Display.currentWin while in Object.CalcSize.
PROCEDURE Resize*(width,height : LONGINT);
DESCRIPTION
Resize the window to the given size. Be carefull to not resize the window below the minimal bounds of the top object. Best is to leave resize handling completely to the derived window class.
NOTE
Derived class should size against minimal and maximal size of its top object.
PROCEDURE PreInit*;
DESCRIPTION
Will be called, when the Window.Open methods needs to create a window of the underlying OS. This maybe once before the first call to open or before every open when CreateAllways has been called. This allows delayed creation of the object-hierachie within the window.
NOTE
You must call the method of the baseclass if you overload this method.
PROCEDURE Grab*(grab : BOOLEAN);
DESCRIPTION
Do mouse and keyboard-grabing.
NOTE
Changing the value does only work, when the window is not visible.
PROCEDURE Open*;
DESCRIPTION
Opens the window.
NOTE
Derived classes must call th e baseclass method.
PROCEDURE ReinitWindow*;
DESCRIPTION
Called, when the display want the window to reinit itself, f.e when the preferences of some or all of the objects has been changed.
PROCEDURE Hide*;
DESCRIPTION
Call this method when you want the window to hide. The window has to call Object.Hide on each of its containing object to ensure, that the Object.visible has has been cleared.
NOTE
Hiding a window does not mean that the window will be destroyed. After creation you can open and hide a window as often as you like. Currently this message does nothing however should always call the baseclass method.
PROCEDURE Close*;
DESCRIPTION
Removes the window from the list of windows known by the Display.
NOTE
You must call this method before closing the window.
PROCEDURE Delete*;
DESCRIPTION
Deinitializes the window.
NOTE
Call this method before deleting the window.
PROCEDURE GetXY*(VAR x,y : LONGINT);
DESCRIPTION
Convert the window relative x,y coords to absolute coords.
PROCEDURE GetMousePos*(VAR rx, ry, wx, wy : LONGINT);
DESCRIPTION
Returns the mouse position in window relative and abslute coords.
PROCEDURE ClosePressed*;
DESCRIPTION
Called when the the closing gadget of the window got pressed.
PROCEDURE Maped*;
DESCRIPTION
Called, when window has been maped. Call baseclass method, when you inherit.
PROCEDURE Unmaped*;
DESCRIPTION
Called, when window has been unmaped. Call baseclass method, when you inherit.
PROCEDURE FocusIn*;
DESCRIPTION
Called, when the window gets the keyboard focus.
PROCEDURE FocusOut*;
DESCRIPTION
Called, when the window looses the keyboard focus.
PROCEDURE Hidden*;
DESCRIPTION
This method get calls, when the window becomes (partial) hidden, e.g. gets covered by another window. This is likely to not be supported for all platforms.
PROCEDURE Left*;
DESCRIPTION
Gets called, when the mouse (not the focus!) has left the window.
PROCEDURE Draw*;
DESCRIPTION
Will be called, if you have to initial draw yourself. Overload it as aproximate.
PROCEDURE Redraw*(x,y,width,height : LONGINT);
DESCRIPTION
Will be called, if you have to redraw yourself. Overload it as aproximate. The window can restrict the redrawing to the given area.
PROCEDURE Resized*(width,height : LONGINT);
DESCRIPTION
This method gets called, when the window has been resized. The given size is the size of the window-inner, that means, the size of the window without its borders. Note, that window#decorationwindow!
PROCEDURE ContextHelp*;
DESCRIPTION
This method gets called, when the display thinks you should open a tooltip help.
PROCEDURE ContextMenu*():BOOLEAN;
DESCRIPTION
This method gets called, when the display things you should open a context sensitiv menu.
RESULT
Return TRUE if you have opened a context menu, else FALSE.
NOTE
If this method returns FALSE, the display will propagate the corresponding event that started contextsensitive help to the window.
PROCEDURE FocusNext*;
DESCRIPTION
This one gets called, when the display thinks the window should change the KeyboardFocus.
PROCEDURE FocusObjectHides*;
DESCRIPTION
This one gets called by the focus object, if it hides.
PROCEDURE GetDnDObject*(x,y : LONGINT; drag : BOOLEAN):Object;
DESCRIPTION
Returns the object that coveres the given point and that supports dragging of data. If drag is TRUE, when want to find a object that we can drag data from, else we want an object to drop data on.
NOTE
A window can be sure to be called only, if dragging or dropping makes sense. For example, you cannot drop data onto a window that is block due to its modal count. However, you can always drag data from a window.
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
If you derive yourself from window and want to overload the defaulthandler, call the baseclass first in your handler and check the result, if its is TRUE the defaulthandler has allready handled it.

5.19.3 BitmapDesc

CLASSNAME
BitmapDesc*
BASECLASS
(no base)
POINTER
Bitmap
DESCIPTION
(no description)

5.19.4 FontDesc

CLASSNAME
FontDesc*
BASECLASS
(no base)
POINTER
Font
DESCIPTION
Abstract fontdefinition.
METHODS
PROCEDURE InitFromFontInfo(name : ARRAY OF CHAR; info : X11.XFontStructPtr);
DESCRIPTION
(no description)
PROCEDURE StyleToPos(style : SET):LONGINT;
DESCRIPTION
Calculates the position in the fontstyle array for the given style.
PROCEDURE GetFontPos(style : SET):LONGINT;
DESCRIPTION
Returns the offset in the font array, that corresponds to the given style. uses Font.StyleToPos.
NOTE
GetFontPos tries to find a "close" font if a font with the given style bits does not exist. Currently it sees italic and slanted as equal, so if no italic font does exist, it tries a slanted one and vice versa.
PROCEDURE LoadFont(display : Display; name: ARRAY OF CHAR; full : BOOLEAN):BOOLEAN;
DESCRIPTION
Loads the given font. First tries to find an ressource entry with the given name and load the font stored there before falling back to the given default. This method is X11 specific.
PROCEDURE Load(display : Display; VAR id : LONGINT):BOOLEAN;
DESCRIPTION
Loads the font. The OS specific font will be matched by evaluating the handed features. Every font loaded must be free using Free. RETURNS If the font can be loaded the method returns a new instance of font that must be used for future uses exspecially when calling Free.
PROCEDURE Free(display : Display);
DESCRIPTION
(no description)
PROCEDURE GetFontHandle(style : SET):X11.XFontStructPtr;
DESCRIPTION
Returns a pointer to the OS-specific font handler.
PROCEDURE Init*;
DESCRIPTION
Initialize a font object.
PROCEDURE TextWidth*(text : ARRAY OF CHAR; length : LONGINT; style : SET):LONGINT;
DESCRIPTION
Returns the width of the given text in pixels in respect to the font.
PROCEDURE TextExtent*(text : ARRAY OF CHAR; length : LONGINT; style : SET; VAR extent : FontExtentDesc);
DESCRIPTION
Returns a FontExtent giving more information about the size of the string.

5.19.5 FontExtentDesc

CLASSNAME
FontExtentDesc*
BASECLASS
(no base)
POINTER
(no pointer)
DESCIPTION
Returned by Font.FontExtent.

5.19.6 ColorEntryDesc

CLASSNAME
ColorEntryDesc*
BASECLASS
(no base)
POINTER
ColorEntry
DESCIPTION
Internal structure to store information about on color entry.
NOTE
color should hold information about OS specific colorinformation.

5.19.7 DisplayDesc

CLASSNAME
DisplayDesc*
BASECLASS
O.MsgObjectDesc
POINTER
Display
DESCIPTION
Class that abstracts the properties of a display.
METHODS
PROCEDURE AddFont(font : Font);
DESCRIPTION
Initializes an Data object.
PROCEDURE CheckTimeOuts;
DESCRIPTION
Check the list of registered timeouts and send a message for every elapsed timeout.
PROCEDURE GetNextTimeOut(VAR interval : Time.Interval);
DESCRIPTION
Return the next pending future time event. If there is no event pending it will return a event 10 seconds in the future.
PROCEDURE CheckSleeps;
DESCRIPTION
Check the list of registered sleeps and send a message for every elapsed timeout.
PROCEDURE SetNewWindow(window : Window);
DESCRIPTION
This will be set before a window calls its Preinit method. If you overload the Preinit method to add some custom stuff (common way to create custom dialogs).
NOTE
I'm not sure why I wrote this one, however XpmImage uses it!?
PROCEDURE GetWindowOnScreen(VAR rX,rY,cX,cY : LONGINT):X11.Window;
DESCRIPTION
Returns the window currently under the mouse pointer. It also returns the screen relative and window relative mouse coordinates.
PROCEDURE GetFont*(id : LONGINT):Font;
DESCRIPTION
Return the font for the given font id.
PROCEDURE LoadFont*(font : Font; VAR id : LONGINT):BOOLEAN;
DESCRIPTION
Loads the font. The OS specific font will be matched by evaluating the handed features. Every font loaded must be free using Free. RETURNS If the font can be loaded the method returns a new instance of font that must be used for future uses exspecially when calling Free.
PROCEDURE FreeFont*(id : LONGINT);
DESCRIPTION
Free a font loaded using LoadFont.
PROCEDURE GetX11Color*(color : Color):C.longint;
DESCRIPTION
Converts the nummerical VO color id to a X11 color id.
NOTE
Though this method s is exported you should not use it. It is only for some lowlevel classes like XpmImage, which need direct access to the X11 color values.
PROCEDURE AllocateColor*(r,g,b,default : LONGINT):Color;
DESCRIPTION
Allocate a color with the given rgb values. Since colors cannot be garbage collected you must store the color id and free the color later.
RESULT
A color id. You need to store this to free the color later.
NOTE
You cannot be sure that all bits of the color values will be used. X11 f.e. only uses 16 bit for color description.
PROCEDURE AllocateNamedColor*(name : ARRAY OF CHAR; default : Color):Color;
DESCRIPTION
(no description)
PROCEDURE IsAllocatedColor*(color : Color):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE FreeColor*(color : Color);
DESCRIPTION
(no description)
PROCEDURE AddTimeOut*(sec, msec : LONGINT; object : VOObject.MsgObject):TimeOut;
DESCRIPTION
Add a timeout. The object will be send a TimeOutMsg directly after the given (relative) time has been elapsed.
NOTE
It is garanteed that the time has been elasped when the object get notified. However, since there is no real multitasking involved, it may get called later. If the timeout has been elasped and the message has been send, there is no need to remove the TimeOut. Dipslay does this for you.
PROCEDURE RemoveTimeOut*(timeOut : TimeOut);
DESCRIPTION
Remove a TimeOut before it has been elasped. It is save to call this function with a TimeOut-instance of an already elapsed time event.
PROCEDURE AddSleep*(object : VOObject.MsgObject):Sleep;
DESCRIPTION
Using this method, you can add an object to be called whenever the application is not busy. This way you can write applications that take as much processor time as possible while still listening to windowing events. Note, that you must design the action to be taken when the object is called to be rather short, since all event handling will be blocked during this time. If you want do handle long time actions you must split them into short partial actions.
PROCEDURE RemoveSleep*(sleep : Sleep);
DESCRIPTION
Removes the given sleep notifier.
PROCEDURE AddChannel*(channel : Channel.Channel; object : VOObject.MsgObject):Channel;
DESCRIPTION
Using this method, you can add an object to be called whenever the handed channel gets available. Note, that you must design the action to be taken when the object is called to be rather short, since the complete event handling will be blocked during this time. If you want do handle long time actions you must split them into short partial actions.
PROCEDURE RemoveChannel*(channel : Channel);
DESCRIPTION
Removes the given sleep notifier.
PROCEDURE StopContextHelp*;
DESCRIPTION
Call this method if you want the Display to stop generating QuickHelp calls to windows. This is necessesarry, if you are opening a QuickHelp and don't want to have a second after the second timeout.
PROCEDURE RestartContextHelp*;
DESCRIPTION
Restart the generation of QuickHelp calls to windows stoped with Display.StopContextHelp.
PROCEDURE StartContextHelp*;
DESCRIPTION
Restart the generation of QuickHelp calls to windows stoped with Display.StopContextHelp.
PROCEDURE AddWindow*(w : Window);
DESCRIPTION
Adds window to the internal list of windows.
PROCEDURE RemoveWindow*(w : Window);
DESCRIPTION
Removes window from the internal list of windows.
PROCEDURE GetNewWindow*():Window;
DESCRIPTION
Return the window set using SetNewWindow.
PROCEDURE CreateBitmap*(width, height : LONGINT):Bitmap;
DESCRIPTION
(no description)
PROCEDURE FreeBitmap*(bitmap : Bitmap);
DESCRIPTION
(no description)
PROCEDURE GetFontList*():Font;
DESCRIPTION
(no description)
PROCEDURE GetWindow*(window : X11.Window):Window;
DESCRIPTION
Get the VO window matching the given X11 window.
PROCEDURE InitDisplay*(name : ARRAY OF CHAR):BOOLEAN;
DESCRIPTION
Initialize a instance of the Display class.
PROCEDURE Flush*;
DESCRIPTION
Flushes all pending events. makes only sense for asnsycronous windowing systems like X11.
PROCEDURE RegisterSelection*(object : Object; window : Window):BOOLEAN;
DESCRIPTION
using this method an object can register itself a holder of the current selection.
PROCEDURE CancelSelection*;
DESCRIPTION
Using this method an object can cacel the before registered selection. This can f.e happen, when the object hides.
PROCEDURE QuerySelection*(window: Window; object: Object; type: LONGINT):BOOLEAN;
DESCRIPTION
Call this method if you want to get the value of the global selection. If VisualOberon can get the selection the handleDropData method of the querying object will be called with a VODragDrop.insert action. Note that there may be some undeterminate amount of time between the query and the drop, it is also possible that the HandleDrop method will never will called.
PROCEDURE ReinitWindows*;
DESCRIPTION
Call this methods, if you want all windows to reinit themself, f.e. when the preferences of the some of the objects have been changed.
PROCEDURE PutBackEvent*(event : VOEvent.Event; destWin : Window);
DESCRIPTION
Put an event back into the message handling queue.
PROCEDURE GetEvent*;
DESCRIPTION
(no description)
PROCEDURE Wait*(x11FD : C.int; interval : Time.Interval):BOOLEAN;
DESCRIPTION
Waits for events on the given filedescriptor with the given timeout. Returns TRUE, if the wait exceeds the given timeout, else FALSE, if Wait returned because the filedescriptor got available. You can overload this method to wait for other events (f.e. other filedescriptors like sockets, etc...), too.
NOTE
This method must be seen as lowlevel stuff. Not all windowing systems or OSs may use filedescriptors. It maybe that ported versions of VisualOberon hand other parameters to this method.
PROCEDURE Handler*;
DESCRIPTION
This is the main event loop of your application. Call this the get things started. If you want to leave the event loop and fiish the application, send a ExitMsg to the display.
PROCEDURE Exit*;
DESCRIPTION
This sets the exit flag to true. The handler-method will be left after this flag has been set.
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
The message receive function of the Display. Currently only ExitMsg and TimeOutMsgs, which get generated by Display when a contextHelp should occure, are supported.
PROCEDURE Deinit*;
DESCRIPTION
Deinitialize the display. Call this when your application finishes.

5.19.8 DisplayPrefsDesc

CLASSNAME
DisplayPrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
DisplayPrefs
DESCIPTION
In this class all preferences stuff of the display is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
Initializes an instance.

5.19.9 ExitMsgDesc

CLASSNAME
ExitMsgDesc*
BASECLASS
O.MessageDesc
POINTER
ExitMsg
DESCIPTION
Send this message to Display if you want to leave the application.

5.19.10 TimeOutMsgDesc

CLASSNAME
TimeOutMsgDesc*
BASECLASS
O.MessageDesc
POINTER
TimeOutMsg
DESCIPTION
The message an objects gets, when the given timeout runs out.

5.19.11 SleepMsgDesc

CLASSNAME
SleepMsgDesc*
BASECLASS
O.MessageDesc
POINTER
SleepMsg
DESCIPTION
The message an objects gets, when a registered sleep event get called.

5.19.12 ChannelMsgDesc

CLASSNAME
ChannelMsgDesc*
BASECLASS
O.MessageDesc
POINTER
ChannelMsg
DESCIPTION
The message an objects gets, when a registered fd event get called.

5.19.13 Msg2ExitDesc

CLASSNAME
Msg2ExitDesc*
BASECLASS
O.HandlerDesc
POINTER
Msg2Exit
DESCIPTION
A converter that throuws the incomming message away and generates a ExitMsg for Display.
METHODS
PROCEDURE Convert*(message : VOObject.Message):VOObject.Message;
DESCRIPTION
Converts any incomming message to a ExitMsg.

5.19.14 DrawInfoDesc

CLASSNAME
DrawInfoDesc*
BASECLASS
(no base)
POINTER
DrawInfo
DESCIPTION
The class for all abstract drawings.
METHODS
PROCEDURE RecalcClipRegion;
DESCRIPTION
Recalces the current clipping regions by analysing the current clipping stack.
PROCEDURE Init(display : Display; window : X11.Drawable; vWindow : Window);
DESCRIPTION
Initialize an instance of the DrawInfo class.
PROCEDURE Deinit;
DESCRIPTION
Deinitializes the drawInfo
PROCEDURE Beep*;
DESCRIPTION
Do a display beep.
PROCEDURE InstallClip*();
DESCRIPTION
Start a new clipping. Calling this function does not start any cliping (in fact it copies the cliping rectangles of the current cliping) you must add cliping rectangles using DrawInfo.AddRegion. Clips are stacked and must be freed in order.
PROCEDURE ReinstallClip*;
DESCRIPTION
(no description)
PROCEDURE AddRegion*(x,y,width,height : LONGINT);
DESCRIPTION
Add a new cliping rectangle to the current clip.
PROCEDURE GetClipRegion*(VAR x,y,w,h : LONGINT);
DESCRIPTION
Returns the outer box of the current clip region.
PROCEDURE FreeLastClip*;
DESCRIPTION
Free the current clip and reset clipping the the last stacked clip.
PROCEDURE PushFont*(id : LONGINT; style : SET);
DESCRIPTION
Push the given font on the stack and make it the current one.
PROCEDURE PopFont*;
DESCRIPTION
Pops the last stacked font and reactivates the last stacked.
PROCEDURE DrawString*(x,y : LONGINT; text : ARRAY OF CHAR; length : LONGINT);
DESCRIPTION
Draws the given string in the current font at the given position.
PROCEDURE DrawFillString*(x,y : LONGINT; text : ARRAY OF CHAR; length : LONGINT);
DESCRIPTION
Draws the given string in the current font at the given position. The background will be filled with the current background color.
PROCEDURE PushForeground*(color : Color);
DESCRIPTION
Push the given color on the stack and make it the current foreground color.
PROCEDURE PopForeground*;
DESCRIPTION
Pop the last pushed foreground color from the stack and thus reinstalls the previous color.
PROCEDURE PushDrawMode*(mode : LONGINT);
DESCRIPTION
Push the given draw mode on the stack and make it the current draw mode.
PROCEDURE PopDrawMode*;
DESCRIPTION
Pop the last pushed draw mode from the stack and thus reinstalls the previous draw mode.
PROCEDURE PushBackground*(color : Color);
DESCRIPTION
Push the given color on the stack and make it the current background color.
PROCEDURE PopBackground*;
DESCRIPTION
Pop the last pushed background color from the stack and thus reinstalls the previous color.
PROCEDURE PushStyle*(size, mode : LONGINT);
DESCRIPTION
Push the drawinfo mode and a pensize on the stack.
PROCEDURE PopStyle*;
DESCRIPTION
Pop the last pushed style from the stack and thus reinstalls the previous style.
PROCEDURE PushDash*(dashList : ARRAY OF CHAR; mode : LONGINT);
DESCRIPTION
Pushes the a new style for drawing lines on the stack.
PROCEDURE PopDash*;
DESCRIPTION
Pop the last pushed dash style from the stack and thus reinstalls the previous dash style.
PROCEDURE PushPattern*(pattern : ARRAY OF CHAR; width, height : LONGINT; mode : LONGINT);
DESCRIPTION
Push a new pattern for filling onto the stack.
PROCEDURE PopPattern*;
DESCRIPTION
Pop the last pushed pattern from the stack and thus reinstalls the previous pattern.
PROCEDURE PushUniqueFillPattern*(pos, maximum : LONGINT);
DESCRIPTION
This methods tries to create a unique fill pattern on the stack. VisualOberon tries to select the optimal fill pattern for the given color mode.VisualOberon cannot offer an unlimited number of different fill patterns. After a not specified amount of patterns (at three) VisualOberon will reuse the patterns. E.g. when VisualOberon offers three patterns the fourth one will be equal to the first one. VisualOberon will also garantee that the the last pattern will not be equal to the first pattern. Garanteeing this, you need not take special care when filling f.e. a pie chart.
PARAMETER
- pos is the running number of the pattern. - maximum is the maximum number of patterns you want. Only when this value is correctly set VisualOberon will garantee the above fact. If you don't want VisualOberon to take special care just hand -1.
PROCEDURE PopUniqueFillPattern*(pos, maximum : LONGINT);
DESCRIPTION
Pop the pushed pattern from the stack.
PROCEDURE DrawPoint*(x,y : LONGINT);
DESCRIPTION
Draws a point at the given position.
PROCEDURE DrawLine*(x1,y1,x2,y2 : LONGINT);
DESCRIPTION
Draws a line from x1,y1 to x2,y2.
PROCEDURE FillRectangle*(x,y,width,height : LONGINT);
DESCRIPTION
Draws afilled rectangle with the uper left corner at x,y and with the given width and height.
PROCEDURE DrawArc*(x,y,with,height,angle1,angle2 : LONGINT);
DESCRIPTION
(no description)
PROCEDURE FillArc*(x,y,with,height,angle1,angle2 : LONGINT);
DESCRIPTION
(no description)
PROCEDURE FillPolygon*(points : ARRAY OF PointDesc; count : LONGINT);
DESCRIPTION
(no description)
PROCEDURE FillBackground*(x,y,width,height : LONGINT);
DESCRIPTION
Fill the given rectangle with the background color defined in Display. This is a high level function. You should use it whenever you want to clear a area and give it the background color.
PROCEDURE CopyArea*(sX,sY,width,height,dX,dY : LONGINT);
DESCRIPTION
Copies the given area to a new place.
PROCEDURE CopyFromBitmap*(bitmap : Bitmap; sX,sY,width,height,dX,dY : LONGINT);
DESCRIPTION
(no description)
PROCEDURE CopyToBitmap*(sX,sY,width,height,dX,dY : LONGINT; bitmap : Bitmap);
DESCRIPTION
(no description)

5.20 VODragDrop.Mod

MODULENAME
VODragDrop
DESCRIPTION
This class iimplements the necessary classes for drag and drop data exchange.
IMPORTS

5.20.1 DnDDataInfoEntryDesc

CLASSNAME
DnDDataInfoEntryDesc*
BASECLASS
(no base)
POINTER
(no pointer)
DESCIPTION
Represents entry in the datatype table of DnDdataInfo.

5.20.2 DnDDataInfoDesc

CLASSNAME
DnDDataInfoDesc*
BASECLASS
(no base)
POINTER
DnDDataInfo
DESCIPTION
DnDDataInfo has to be used to define the datatypes and object support for drag and drop. If the object has be the source of an drag action and a valid drop zone can be found, the drag object will be asked to fill a given instance of DnDDataInfo with a description of the supported datatypes. This list will than handed to the drop object, which can then analyse the best to fit datatype, which in turn then can be requested from the drag object.
METHODS
PROCEDURE Init*;
DESCRIPTION
Initialisation. Must be called before first use.
PROCEDURE AddDataType*(group, type : LONGINT; actions : SET; defaultAction : LONGINT);
DESCRIPTION
Add a new datatype to the list of supported datatypes. A datatypes is described by a datatype group which defines a physical representation (text, image ...) , a type that more closely describes the pysical structure (image/gif) or or the logical structure (text/file).
PROCEDURE FindDataType*(VAR group,type,action : LONGINT):BOOLEAN;
DESCRIPTION
Search in the list of supported datatypes for the occurence of this special group and type. You can give joker as group or type name. In that case the match will be skiped for that part. The actuall found group and type will be returned if found.

5.20.3 DnDDataDesc

CLASSNAME
DnDDataDesc*
BASECLASS
(no base)
POINTER
DnDData
DESCIPTION
Baseclass for all drag and drop data exchange.

5.20.4 DnDStringDataDesc

CLASSNAME
DnDStringDataDesc*
BASECLASS
DnDDataDesc
POINTER
DnDStringData
DESCIPTION
A special datat exchnage class for simple strings.

5.21 VOEvent.Mod

MODULENAME
VOEvent
DESCRIPTION
This class defines a number of events - based on userinteraction - a object (gadget, window) can get. These messages are OS-independant, but offer a way to interpret the underlying OS-specific events, however the interface to that part of the events is not portable.
NOTE
* Not all GUIs can name the qualifiers extactly. F.e. X11 does not make a destinction between shift_left and shift_right in the qualifier field of an event. use the qualifier mask for that or handle key up and down for qualifiers explicitely..
IMPORTS
FUNCTIONS
PROCEDURE GetEvent*(event : X11.XEvent):Event;
DESCRIPTION
Convert the given X11 event to a VisualOberon event.

5.21.1 EventDesc

CLASSNAME
EventDesc*
BASECLASS
(no base)
POINTER
Event
DESCIPTION
Baseclass for events. Currently all objects get a instance of this baseclass and then have to analyse the message by evaluating the containing X11-event itself. This may change in the future. Display will send generate and send instances of inherited Classes thatd define abstract events.
METHODS
PROCEDURE EvaluateQualifier(state : X11.uintmask):SET;
DESCRIPTION
Convert the given X11 qualifier description to a VisualOberon qualifier description.

5.21.2 KeyEventDesc

CLASSNAME
KeyEventDesc*
BASECLASS
EventDesc
POINTER
KeyEvent
DESCIPTION
Keyboard event. The application receives this event when a key has been pressed or raised.
METHODS
PROCEDURE SetX11Event*(event : X11.XKeyEvent);
DESCRIPTION
NOTE
THis as a VODisplay-only access-method for initializing the MouseEvent. Do not call this method in your code, it is VODisplay only and does only exists on X11 implementations of VisualOberon.
PROCEDURE GetText*(VAR string : ARRAY OF CHAR):LONGINT;
DESCRIPTION
Returns the ASCII-string corresponding to the keyboard event.
RESULT
The number of characters in the string.
PROCEDURE GetKey*():LONGINT;
DESCRIPTION
Returns the ASCII-string corresponding to the keyboard event.
RESULT
The number of characters in the string.
PROCEDURE GetName*(keysym : LONGINT; VAR buffer : ARRAY OF CHAR);
DESCRIPTION
Returns a string representing the name of key(s) pressed.

5.21.3 MouseEventDesc

CLASSNAME
MouseEventDesc*
BASECLASS
EventDesc
POINTER
MouseEvent
DESCIPTION
Mouse event. The application recieves this event when one or more mousebuttons have been pressed or released. You'll also get events when the mouse moves.
METHODS
PROCEDURE SetX11Event*(event : X11.XButtonEvent);
DESCRIPTION
NOTE
THis as a VODisplay-only access-method for initializing the MouseEvent. Do not call this method in your code, it is VODisplay only and does only exists on X11 implementations of VisualOberon.

5.21.4 MotionEventDesc

CLASSNAME
MotionEventDesc*
BASECLASS
EventDesc
POINTER
MotionEvent
DESCIPTION
Mouse event. The application recieves this event when one or more mousebuttons have been pressed or released. You'll also get events when the mouse moves.
METHODS
PROCEDURE SetX11Event*(event : X11.XMotionEvent);
DESCRIPTION
NOTE
THis as a VODisplay-only access-method for initializing the MouseEvent. Do not call this method in your code, it is VODisplay only and does only exists on X11 implementations of VisualOberon.

5.22 VOGUIObject.Mod

MODULENAME
VOGUIObject
DESCRIPTION
Baseclass for all displayable objects.
TODO
* Implement Image.AddaptWidthToHeight and Image.AddaptHeightToWidth * Implement Object.HandleKeyShortcut (similar to Object.GetPosObject) * Multicolumn listview (should be rather easy). * A DirectoryModel (inherits from ListModel) for directory browsing. * A TextModel and corresponding gadget. Can load data from a file. * A InfoModel and corresponding gadgets (inherits from TextModel?). * A Presenter gadget, that displays pages of text, images and a number of blend-over effects.
IMPORTS
FUNCTIONS
PROCEDURE MaxLong*(a,b : LONGINT):LONGINT;
DESCRIPTION
Returns the maximum of the two numbers given.
PROCEDURE MinLong*(a,b : LONGINT):LONGINT;
DESCRIPTION
Returns the minumum of the two numbers given.
PROCEDURE RoundRange*(x,a,b : LONGINT):LONGINT;
DESCRIPTION
Modifies x so that i is in the range between a and b including.
PROCEDURE GetAlignment*(name : ARRAY OF CHAR):LONGINT;
DESCRIPTION
Returns the alignment value corresponding to the the given string value. Returns -1, if the string contains no valid alignment name.

5.22.1 BackgroundDesc

CLASSNAME
BackgroundDesc*
BASECLASS
(no base)
POINTER
Background
DESCIPTION
An object can have a background color or an background object that is responsible for drawing the given region in the background style. Background object could draw the background simply using the background color (though you can achive this b y simply setting the background color without using an background object), a regular pattern, a titled image, an image stretched to fit the whole object or something even more complicated. The apropiate method of filling the background will be handled the DrawBackground method. It will fill the given area in the backgrojund area or will delegate drawing to the background object - if available. source stores the orign of this Background. E.g., yo assign a background object to a button. The button will delegate the background to it label. However in some cases the background must not be rendered relative to the size of the label but still relative to the button.
METHODS
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
Initilalize the object with the display.
PROCEDURE Draw*(object : Object; x,y,w,h : LONGINT);
DESCRIPTION
Draw the background. The baseclass will simply fill the given area with the defined object background color.
PROCEDURE Copy*():Background;
DESCRIPTION
Return a copy of the current background object.
PROCEDURE Free*;
DESCRIPTION
Free internal data.

5.22.2 ObjectDesc

CLASSNAME
ObjectDesc*
BASECLASS
D.ObjectDesc
POINTER
Object
DESCIPTION
The baseclass for all GUI objects. All GUI-objects do have messaging so the class derives itself from VOObject.MsgObject
METHODS
PROCEDURE Init*;
DESCRIPTION
Every object needs an initialiser. If you provide an Init-method for an object you must first cann the Init-method of the baseclass. Note, that this does not hinder you ro provide function-like initializer, too. They just have to call this method.
PROCEDURE SetFlags*(flags : SET);
DESCRIPTION
Via this functions you can add the given flags to the flags already set.
PROCEDURE RemoveFlags*(flags : SET);
DESCRIPTION
Via this functions you can remove the given flags from the flags already set.
PROCEDURE ClearFlags*;
DESCRIPTION
Via this functions you can clear all flags.
NOTE
This is a dangerous operations. There are many internal flags used by VO and it is likely that some things will not operate the way you want them to. Use removeFlags instead whenever possible.
PROCEDURE SetWidth*(mode, value : LONGINT);
DESCRIPTION
Set the width of the object. "Mode" defines the interpretation of the given value.
PROCEDURE SetHeight*(mode, value : LONGINT);
DESCRIPTION
Set the height of the object. "Mode" defines the interpretation of the given value.
PROCEDURE SetMinWidth*(mode, value : LONGINT);
DESCRIPTION
Set the minWidth of the object. "Mode" defines the interpretation of the given value.
PROCEDURE SetMinHeight*(mode, value : LONGINT);
DESCRIPTION
Set the minHeight of the object. "Mode" defines the interpretation of the given value.
PROCEDURE SetBackground*(backgroundColor : LONGINT);
DESCRIPTION
Set the background color for the object. Behaviour for complex/group objects is undefined.
PROCEDURE SetBackgroundObject*(background : Background);
DESCRIPTION
Set the background object for the object. Behaviour for complex/group objects is undefined.
PROCEDURE CopyBackground*(destination : Object);
DESCRIPTION
(no description)
PROCEDURE SetLabelObject*(label : Object);
DESCRIPTION
Assign a label to the object. Some object may support some tricky operations with their label. A checkbox f.e. may delegate its focus frame to its label.
PROCEDURE SetHelpObject*(helpObject : VODisplay.Window);
DESCRIPTION
Assign an window that will displayed as tooltip. The baseclass will store the object within a private variable and will return it when GetHelpObject gets called.
NOTE
Special objects may overload this method this implement different behaviour. They must then also overload GetPosObject.
PROCEDURE GetHelpObject*():VODisplay.Window;
DESCRIPTION
Returns the help window for this object.
NOTE
Special objects may overload this method to f.e. implement dynamic tooltips. They must then also overload GetPosObject.
PROCEDURE SetMenuObject*(menuObject : VODisplay.Window);
DESCRIPTION
Assign a window that will displayed as menu. The baseclass will store the object within a private variable and will return it when GetMenuObject gets called.
NOTE
Special objects may overload this method this implement different behaviour. They must then also overload GetPosObject.
PROCEDURE GetMenuObject*():VODisplay.Window;
DESCRIPTION
Returns the menu window for this object.
NOTE
Special objects may overload this method to f.e. implement dynamic menues. They must then also overload GetPosObject.
PROCEDURE StdFocus*():BOOLEAN;
DESCRIPTION
Returns TRUE, when the object displays itself using the standard functionality of displaying focus frameing, e.g. stdFocus is in Object.flags.
PROCEDURE HasFocus*():BOOLEAN;
DESCRIPTION
Returns TRUE, when the object has the focus, e.g. hasFocus is in Object.flags.
PROCEDURE CanFocus*():BOOLEAN;
DESCRIPTION
Returns TRUE, when the object can handle keyboard focus events,a e.g. canFocus is in Object.flags.
PROCEDURE MayFocus*():BOOLEAN;
DESCRIPTION
Returns TRUE, when the object may show its focusframe,a e.g. mayFocus is in Object.flags.
PROCEDURE ShowFocus*():BOOLEAN;
DESCRIPTION
Returns TRUE, when the object should show its focusframe,a e.g. showFocus is in Object.flags.
PROCEDURE DisplayFocus*():BOOLEAN;
DESCRIPTION
Returns TRUE, when the object should display its focusframe,a e.g. showFocus or hasFocus is in Object.flags.
PROCEDURE GetSize*(value, type, min, max, default : LONGINT; horiz : BOOLEAN; display : VODisplay.Display):LONGINT;
DESCRIPTION
This methods returns a size calculated from the given value and type in respect with the given min and maximum ranges. If type=sizeGiven or unknown, the dfault value is returned.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
Tell the object it should calculate its size depending on its current settings This method normally gets calleed once before the first call of ObjectDraw. The window calls this method for its top object before it opens itself and draws its content. The top object call this method automatically for all its children. If this method get called for you object you normally have to simly propagate it to all your children and set the values for minWidth, minHeight, width and height. The setting of the max-values is optional, the defaultvalue for them is MAX(LONGINT). After this your *must* call this method of your baseclass.
PROCEDURE CanGrow*(horiz : BOOLEAN):BOOLEAN;
DESCRIPTION
Returns true, if the object can grow in the stated direction An object is resizable, if * It hase the xxxFlex-flag set for that direction * And if its current size is smaller than it maximal size
PROCEDURE CanShrink*(horiz : BOOLEAN):BOOLEAN;
DESCRIPTION
Same as Object.CanGrow only for shrinking
PROCEDURE CanResize*(grow, horiz : BOOLEAN):BOOLEAN;
DESCRIPTION
This calls Object.CanGrow or Object.Can.Shrink depending on its options
PROCEDURE CanDrag*():BOOLEAN;
DESCRIPTION
Returns TRUE if you can drag data from the object.
PROCEDURE Resize*(width,height : LONGINT);
DESCRIPTION
This function tries to resize the object to the given measurement Note, that the object may not have the giving size after calling since it have the follow the settings for o.flags and it maximal size Normally the features of this implementation are enought. But you can overload it (At the moment none of the classes does this).
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
Tells the object to draw itself at the given position and with the mode set in draw.mode. You can igonore modes you do not support and simply assume mode=normal. You *must* call the Draw-method of your superclass first!
PROCEDURE Redraw*;
DESCRIPTION
Tells the object to redraw itself You normally do not need to overload this method.
PROCEDURE Intersect*(x,y,w,h : LONGINT):BOOLEAN;
DESCRIPTION
Returns TRUE if the two areas intersect, else FALSE.
PROCEDURE RestrictToBounds*(VAR x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
This method gets called by the display (or by the super object, which in turn got called by the display), when it has to get refreshed because of exposure. The exposed region is given as parameter and the object should try to refresh only that parts within the given area. The baseclass simply calls Object.Redraw when Object.IsIn return TRUE and the object is visible.
PROCEDURE DrawDisabled*;
DESCRIPTION
This is just a convinience function. Call this if your are a gadget and want to show yourself disabled. It draws a pattern over the bound of the gadget. Not that this is just a proposal. You can of cause use other methods to show yourself disabled, but keep some style guide in mind.
PROCEDURE DrawBackground*(x,y,w,h : LONGINT);
DESCRIPTION
This is just a convinience function. Draws the given rectangle in the background color of the object.
PROCEDURE DrawHide*;
DESCRIPTION
This is just a convinience function. Call this if your are an object and want to hide yourself. It just draw a rectangle in the backgroundcolor of the bounds of the gadget. Not that this is just a proposal. You can of cause use other methods to hide yourself.
PROCEDURE Disable*(disable : BOOLEAN);
DESCRIPTION
Disable the object. The object should show it's disabled state via it's visual apperance.
PROCEDURE Hide*;
DESCRIPTION
Tell the object to hide itself. The space of the object should have the backgroundcolor after hiding. The method of the baseclass simply sets Object.visible to FALSE. If you implement your own object, you must overload this methods and hide your object (you may use Object.DrawHide for this). After that call Object.Hide of your baseclass. Since Object.Hide may have other purposes in the future, too.
NOTE
If you use other objects for your drawing you have to overload this method and call Hide for each of them to get Object.visible correct.
PROCEDURE DrawFocus*;
DESCRIPTION
This method gets called when the window thinks, that the object should show somekind of keyboardfocus. This will happen, when the object gets the focus, or when the focus has to be refreshed because of a window refresh.
NOTE
You can use the supplied focusFrame but you need not to do. The baseclass does nothing.
PROCEDURE HideFocus*;
DESCRIPTION
This method gets called when the window thinks, that the object should hide the keyboardfocus. This happens when the pbject loses the focus.
PROCEDURE LeaveFocus*;
DESCRIPTION
Ask the window to change the focus to the next entry. This is usefull f.e. for stringgadgets. If you enter return, the gadget should get deactivated and the focus should change to the next element.
NOTE
The object must have the focus, otherwise nothing will happen.
PROCEDURE PointIsIn*(x,y : LONGINT):BOOLEAN;
DESCRIPTION
Ask the object, if the given point it in its bounds. We also check if the pointer is within the bounds of the label of the object, if the object has one.
PROCEDURE MouseIsIn*():BOOLEAN;
DESCRIPTION
Tells if the mouse pointer is currently ober the object. We also check if the mouse pointer is within the bounds of the label of the object, if the object has one.
PROCEDURE GetFocus*(event : VOEvent.Event):Object;
DESCRIPTION
Ask the object, if it wants the focus after inverstigating the given event GetFocus returns the object, that whants to have the focus or NIL.
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
After getting the focus with GetFocus you will get all events via this function. return TRUE if you are finished with eventhandling.
PROCEDURE GetPosObject*(x,y : LONGINT; type : LONGINT):Object;
DESCRIPTION
Get a pointer to the object, which is in the given bounds and has an menu or help-object attached. If there is no object, return NIL. Return also true, if the object is currently not visible.
PROCEDURE GetDnDObject*(x,y : LONGINT; drag : BOOLEAN):Object;
DESCRIPTION
Returns the object that coveres the given point and that supports drag and drop of data. If drag is TRUE, when want to find a object that we can drag data from, else we want an object to drop data on.
PROCEDURE Free*;
DESCRIPTION
Before freeing the object call this function. This method is not supported by the current objects.

5.22.3 ImageDesc

CLASSNAME
ImageDesc*
BASECLASS
ObjectDesc
POINTER
Image
DESCIPTION
The baseclass for all images. Images do not have any event-handling.

5.22.4 GadgetDesc

CLASSNAME
GadgetDesc*
BASECLASS
ObjectDesc
POINTER
Gadget
DESCIPTION
The baseclass for all gadgets. Gadgets have methods for event handling, unlike images for example.
METHODS
PROCEDURE CatchedFocus*;
DESCRIPTION
Called, when you got the keyboard focus.
PROCEDURE LostFocus*;
DESCRIPTION
Call, when the keyboard focus has been taken away from you.
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
This gets called, when you have the current keyboard focus and the users presses keys. You can expect to get only keyboard events.
RESULT
Return TRUE if you have handled the event, else FALSE.
NOTE
If you activtly have grabed the focus using Object.GetFocus and Object.handleEvent you will get the keyboardevents there. This function gets only called when you don't grabed the focus.
PROCEDURE HandleShortcutEvent*(id,state : LONGINT);
DESCRIPTION
Via this method you get informed about shortcut events you've registered via the keyboard handler of the window.
PARAMETER
id - the id you've registered your shortcut with. state - the state of the shortcut event. This may either be pressed, released or canceled.

5.22.5 GroupDesc

CLASSNAME
GroupDesc*
BASECLASS
GadgetDesc
POINTER
Group
DESCIPTION
An group is a special kind of Object. Since it is a collection of objects, it may have to behave like an gadget, so we inherit from Gadget. It collects a number of object and presents them as one object to the rest of the world.
METHODS
PROCEDURE Init*;
DESCRIPTION
A group object is derived from Object. Its purpure is, to collect a number of object and represent them to the ouer space as one object. It has some more methods and attributs.
PROCEDURE Disable*(disabled : BOOLEAN);
DESCRIPTION
Disables all elements of the group object. Note, that inherited group objects may interpret beeing disabled different. VOTab f.e. disables itself.
PROCEDURE Add*(object : Object);
DESCRIPTION
Add a new Object to the group Removing objects is currently not supported Note that some group-objects have a more special functions for adding members. However Add should always be supported
PROCEDURE GetFocus*(event : VOEvent.Event):Object;
DESCRIPTION
The defaulthandler ask all members of the Group for the focus
PROCEDURE GetPosObject*(x,y : LONGINT; type : LONGINT):Object;
DESCRIPTION
The defaulthandler ask all members of the Group You have to overload this method if you do not use Group.Add and Group.list.
PROCEDURE GetDnDObject*(x,y : LONGINT; drag : BOOLEAN):Object;
DESCRIPTION
Returns the object that coveres the given point and that supports drag and drop of data. If drag is TRUE, when want to find a object that we can drag data from, else we want an object to drop data on.
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
Refreshes the group object by refreshing all objects in the object list. The refresh retangle is preserved and will be handled to all subobjects.

5.22.6 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
Special Preferences object for graphical objects.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Free*;
DESCRIPTION
(no description)

5.22.7 LabelClickedMsgDesc

CLASSNAME
LabelClickedMsgDesc*
BASECLASS
O.MessageDesc
POINTER
LabelClickedMsg
DESCIPTION
The LabelClickedMsg maybe generated when someone clicks on your label.

5.23 VOObject.Mod

MODULENAME
VOObject
DESCRIPTION
Baseclass for all objects. Does also define the derived class MsgObject which implements message communication between objects. Model, the baseclass for all models, is also implemented here.
IMPORTS
FUNCTIONS
PROCEDURE FindRef*(id: LONGINT) : Object;
DESCRIPTION
This routine extracts previously-defined objects.
PROCEDURE Create*(r: BinaryRider.Reader) : Object;
DESCRIPTION
This generic object creation routine will read type object type information from the stream, create the object, and initialize it's fields from the stream -- using the associated Load method. If the object already exists in memory, a pointer to that object will be returned with no initialization necessary.

5.23.1 ObjectDesc

CLASSNAME
ObjectDesc*
BASECLASS
(no base)
POINTER
Object
DESCIPTION
The abstract baseclass for all objects in VO
METHODS
PROCEDURE Init*;
DESCRIPTION
Each object has an initialisation routine. If an object initializes itself, it must call the init-method of the baseclass. Note, that this method does not prevent a class to implement initialize-functions, but they must then call this method.
PROCEDURE Load*(r: BinaryRider.Reader);
DESCRIPTION
Each object has a load routine. The persistent data is read from the passed reader. If a derived class overrides this method, it must call the super-method before restoring its internal state.
PROCEDURE Store*(w: BinaryRider.Writer) : BOOLEAN;
DESCRIPTION
Each object has a store routine. The persistent data is written to the passed writer. If a derived class overrides this method, it must call the super-method before storing its internal state.
PROCEDURE Free*;
DESCRIPTION
All object have some kind of finalizer method. Such a method is needed for OS-specific ressources like filehandles or GUI stuff that does not get freed automatically by garbage collection. Later versions of oo2c/VisualOberon may have an direct interface to the GC to realize finalisation, since then me must use a not that nice method: objects can register themself a a window. The window will call Free for all registered objects on deletion.

5.23.2 MsgObjectDesc

CLASSNAME
MsgObjectDesc*
BASECLASS
ObjectDesc
POINTER
MsgObject
DESCIPTION
This is a second abstract class derived from Object. MsgObject can send and recieve messages.
METHODS
PROCEDURE Init*;
DESCRIPTION
MsgObject inherits the Init-function from Object.
PROCEDURE SetId*(id : LONGINT);
DESCRIPTION
We must have the ability to set the id of an object
PROCEDURE Receive*(message : Message);
DESCRIPTION
This method of an object gets called when someone sends a method to it.
PROCEDURE AddHandler*(handler : Handler; type : LONGINT);
DESCRIPTION
You can add a handler to an object. The handler gets then called after the sender sends the object and before the receiver recieves it. type defines the type of message the handler wants to get called for. The objects have to suply constants for that.
PROCEDURE RemoveHandler*(handler : Handler);
DESCRIPTION
You also can remove a handler anytime.
PROCEDURE Forward*(type : LONGINT; destination : MsgObject);
DESCRIPTION
You can also tell the object to send msgs of a specific type simply to another object. This is done by simply adding a default handler.
PROCEDURE Load*(r: BinaryRider.Reader);
DESCRIPTION
Load the MsgObject object state information.
PROCEDURE Store*(w: BinaryRider.Writer) : BOOLEAN;
DESCRIPTION
Store the MsgObject object state information.
PROCEDURE Send*(message : Message; type : LONGINT);
DESCRIPTION
Call this method if you want to send a message with a given type.
PROCEDURE Resync*(model : Model; msg : ResyncMsg);
DESCRIPTION
This method gets called when a model wants you to resync yourself with its contents.
PROCEDURE UnattachModel*(model : Model);
DESCRIPTION
Deattach an object from the given model.
PROCEDURE AttachModel*(model : Model);
DESCRIPTION
Use this function to attach an object to a model. Normaly you should not call this method directly, the object should offer special methods for this.

5.23.3 HandlerDesc

CLASSNAME
HandlerDesc*
BASECLASS
(no base)
POINTER
Handler
DESCIPTION
All message sending between objects goes through handlers. Using a handler between the sender and reciever of an message allows us to change the messagetyp on the fly. This is a simple way to get objects freely communicate with each other without knowing the messages the reciever knows. You simply insert a handler between sender reciever that converts the sender message to the reciever messsage.
METHODS
PROCEDURE Convert*(message : Message):Message;
DESCRIPTION
This function of the handler gets called after the sender sends the object and before the receiver recieves it. This gives you the possibility to change the type of the message. Just create the new message and return it. You don't have copy the destination field, that will be done by Handler.Send automatically.
PROCEDURE Send*(message : Message);
DESCRIPTION
This method gets called by an object for each handler which is interested in the message.

5.23.4 MessageDesc

CLASSNAME
MessageDesc*
BASECLASS
(no base)
POINTER
Message
DESCIPTION
The (abstract) baseclass for all messages.

5.23.5 ActionDesc

CLASSNAME
ActionDesc*
BASECLASS
MessageDesc
POINTER
Action
DESCIPTION
A special message for prameterless actions (like for example a event that gets triggered when a button is pressed). You store the type of the action in the action memebr variable. Using action instead of a self-derived class while reduce code bloat and class count.

5.23.6 ResyncMsgDesc

CLASSNAME
ResyncMsgDesc*
BASECLASS
(no base)
POINTER
ResyncMsg
DESCIPTION
This message is the abstract baseclass for all resync-messages. a model can send to its viewers when the contents of the model have changed.

5.23.7 NotifyDesc

CLASSNAME
NotifyDesc*
BASECLASS
ResyncMsgDesc
POINTER
Notify
DESCIPTION
(no description)

5.23.8 ModelDesc

CLASSNAME
ModelDesc*
BASECLASS
MsgObjectDesc
POINTER
Model
DESCIPTION
The abstract baseclass for all models. A model is a container for an in any way designed datacollection. A Object (viewer) does not hold its values itself but has a pointer to a model. The user changes the value of the model and not the value of the object. The model then sends an ResyncMsg to all its viewers to make them update the representation of the datas the model holds.
METHODS
PROCEDURE Init*;
DESCRIPTION
A model must be inited.
PROCEDURE AddObject*(object : MsgObject);
DESCRIPTION
Add an object (viewer) to a model
PROCEDURE Load*(r: BinaryRider.Reader);
DESCRIPTION
Load the model state information.
PROCEDURE Store*(w: BinaryRider.Writer) : BOOLEAN;
DESCRIPTION
Store the model state information.
PROCEDURE RemoveObject*(object : MsgObject);
DESCRIPTION
Remove an object from an model (not yet implemented)
PROCEDURE Notify*(msg : ResyncMsg);
DESCRIPTION
A model should call this method with an optional resynmessage when you want your viewers to resync themselfs.

5.24 VOPrefs.Mod

MODULENAME
VOPrefs
DESCRIPTION
Baseclass for all preferences stuff. While I have a implemention in mind, nothing is implemented yet.
TODO
Implement searching in subdirectories using the applicationname.
FUNCTIONS
PROCEDURE Free*;
DESCRIPTION
Free all registered preferences.

5.24.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
(no base)
POINTER
Prefs
DESCIPTION
Base class for all preferences classes.
METHODS
PROCEDURE Init*;
DESCRIPTION
Initialize the preferences struct. The baseclass adds the instance to the global list of instances.
PROCEDURE Free*;
DESCRIPTION
(no description)

5.25 VOUtil.Mod

MODULENAME
VOUtil
DESCRIPTION
A number of utility functions.
IMPORTS
FUNCTIONS
PROCEDURE EscapeString*(string : ARRAY OF CHAR):Text;
DESCRIPTION
Returns a newly allocated array pointing to the given string, where all escape sequences has been converted. Currently supported are: \n, \e and \t.
PROCEDURE UpDiv*(a,b : LONGINT):LONGINT;
DESCRIPTION
PROCEDURE RoundDiv*(a,b :LONGINT):LONGINT;
DESCRIPTION
Rounds to the nearest integer number.
PROCEDURE RoundUpEven*(a : LONGINT):LONGINT;
DESCRIPTION
Rounds the number so that is is even. Currently only works correctly for numbers greater zero.

5.26 VOKeyHandler.Mod

MODULENAME
VOKeyHandler
DESCRIPTION
Implements a handler for keyboards focus chains.
IMPORTS

5.26.1 ShortcutEntryDesc

CLASSNAME
ShortcutEntryDesc*
BASECLASS
(no base)
POINTER
ShortcutEntry
DESCIPTION
Store one shortcut entry.
METHODS
PROCEDURE Match(qualifier : SET; keysym : LONGINT; char : CHAR):BOOLEAN;
DESCRIPTION
Checks if the given shortcut entry matches the given key.

5.26.2 KeyHandlerDesc

CLASSNAME
KeyHandlerDesc*
BASECLASS
(no base)
POINTER
KeyHandler
DESCIPTION
Every window has a KeyHandler. The KeyHandler does handle keyevents. It is responsible for switching the keyboardfocus and the handling of hotkeys. The use of a Keyhandler it optional for a window. The KeyHandler accepts only Gadgets as objects.
METHODS
PROCEDURE SetObject(chain : KeyChain; entry : KeyChainEntry);
DESCRIPTION
hands the focus to the given entry.
PROCEDURE GetChainEntry(gadget : VOGUIObject.Gadget):KeyChainEntry;
DESCRIPTION
Searches for the given gadget in the KeyChains and returns the corresponding KeyChainEntry, if it exists.
NOTE
If we support more than one KeyChain, we must modify the parameterlist to return the found KeyChain, too.
PROCEDURE GetSCEntry(qualifier : SET; keysym : LONGINT; char : CHAR):ShortcutEntry;
DESCRIPTION
Returns the shortcut matching or NIL.
PROCEDURE CancelCurrent;
DESCRIPTION
PROCEDURE Init*;
DESCRIPTION
Initializes the KeyHander. Must be called first after allocation.
PROCEDURE AddShortcutObject*(gadget : VOGUIObject.Gadget; qualifier : SET; char : CHAR; id,mode : LONGINT);
DESCRIPTION
Adds a shortcut with the given qualifier and character for an object. Additional a specialmode can be given for the shortcut whith states additional situations the shortcut get evaluated. An object must be visible to get notified, so shortcuts can be shared as long as only one object at the time is visible.
PROCEDURE AddFocusObject*(gadget : VOGUIObject.Gadget);
DESCRIPTION
Adds a new gadget to the current KeyChain.
PROCEDURE NextObject*();
DESCRIPTION
The user has pressed tab and wants the KeyHandler to deactivate the current and to activate the next valid object.
PROCEDURE LastObject*();
DESCRIPTION
The user has pressed shift tab and wants the KeyHandler to deactivate the current and to activate the last valid object.
PROCEDURE NextChain*();
DESCRIPTION
The user has pressed alt tab and wants the KeyHandler to deactivate the current and to activate the next (valid) KeyChain.
NOTE
Not suported yet.
PROCEDURE LastChain*();
DESCRIPTION
The user has pressed shift alt tab and wants the KeyHandler to deactivate the current and to activate the last (valid) KeyChain.
NOTE
Not suported yet.
PROCEDURE SetCurrentObject*(gadget : VOGUIObject.Gadget);
DESCRIPTION
Called by the window, when a new object gets the focus. The Keyhandler should look for this object in any of the keychains and make it the object witht he current keyboardfocus, if it is in.
PROCEDURE FindNewObject*();
DESCRIPTION
The window got called by the object with the current keyboard focus that it hides itself. KeyHandler has now to find out a new object with keyboard focus.
PROCEDURE Refocus*;
DESCRIPTION
If there is no current focus object, get a new one, else do nothing.
PROCEDURE Activate*();
DESCRIPTION
Gets called when the window get activated.
PROCEDURE Deactivate*();
DESCRIPTION
Gets called when the window has been deactivated.
PROCEDURE HandleEvent*(event : VOEvent.KeyEvent; preObject : BOOLEAN):BOOLEAN;
DESCRIPTION
This method gets called by the window, if the window has no current gadget which has the focus. The window does only call this method for keyboard events.

5.27 VOPrefsParser.Mod

MODULENAME
VOPrefsParser
DESCRIPTION
(no description)
IMPORTS
FUNCTIONS
PROCEDURE FindSlash():INTEGER;
DESCRIPTION
(no description)
PROCEDURE Error(n: INTEGER);
DESCRIPTION
(no description)
PROCEDURE Get();
DESCRIPTION
(no description)
PROCEDURE Expect(n: INTEGER);
DESCRIPTION
(no description)
PROCEDURE StartOf(s: INTEGER): BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE ExpectWeak(n, follow: INTEGER);
DESCRIPTION
(no description)
PROCEDURE WeakSeparator(n, syFol, repFol: INTEGER): BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Number(VAR value : ValueItem);
DESCRIPTION
(no description)
PROCEDURE String(VAR value : ValueItem);
DESCRIPTION
(no description)
PROCEDURE Parameter(VAR item : Item);
DESCRIPTION
(no description)
PROCEDURE Entry(block : BlockItem);
DESCRIPTION
(no description)
PROCEDURE Ident(VAR text : VOUtil.Text);
DESCRIPTION
(no description)
PROCEDURE Block(VAR block : BlockItem);
DESCRIPTION
(no description)
PROCEDURE VOPrefs;
DESCRIPTION
(no description)
PROCEDURE Number(VAR value : ValueItem);
DESCRIPTION
(no description)
PROCEDURE String(VAR value : ValueItem);
DESCRIPTION
(no description)
PROCEDURE Parameter(VAR item : Item);
DESCRIPTION
(no description)
PROCEDURE Entry(block : BlockItem);
DESCRIPTION
(no description)
PROCEDURE Ident(VAR text : VOUtil.Text);
DESCRIPTION
(no description)
PROCEDURE Block(VAR block : BlockItem);
DESCRIPTION
(no description)
PROCEDURE VOPrefs;
DESCRIPTION
(no description)
PROCEDURE Initialize*(item : Item);
DESCRIPTION
(no description)
PROCEDURE Parse*;
DESCRIPTION
(no description)

5.27.1 ItemDesc

CLASSNAME
ItemDesc*
BASECLASS
(no base)
POINTER
Item
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE AddItem*(item : Item);
DESCRIPTION
(no description)
PROCEDURE GetEntry*(path : ARRAY OF CHAR):Item;
DESCRIPTION
(no description)
PROCEDURE GetStringEntry*(name : ARRAY OF CHAR; VAR text : ARRAY OF CHAR):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE GetIntEntry*(name : ARRAY OF CHAR; default : LONGINT):LONGINT;
DESCRIPTION
(no description)
PROCEDURE GetBoolEntry*(name : ARRAY OF CHAR; default : BOOLEAN):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Print*(writer : TextRider.Writer; indent : LONGINT);
DESCRIPTION
(no description)

5.27.2 BlockItemDesc

CLASSNAME
BlockItemDesc*
BASECLASS
ItemDesc
POINTER
BlockItem
DESCIPTION
(no description)
METHODS
PROCEDURE SetName*(name : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE Print*(writer : TextRider.Writer; indent : LONGINT);
DESCRIPTION
(no description)

5.27.3 ValueItemDesc

CLASSNAME
ValueItemDesc*
BASECLASS
ItemDesc
POINTER
ValueItem
DESCIPTION
(no description)
METHODS
PROCEDURE SetValue*(name,value : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE SetBool*(name : ARRAY OF CHAR; value : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE SetInt*(name : ARRAY OF CHAR; value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Print*(writer : TextRider.Writer; indent : LONGINT);
DESCRIPTION
(no description)

5.28 VOPrefsScanner.Mod

MODULENAME
VOPrefsScanner
DESCRIPTION
(no description)
IMPORTS
FUNCTIONS
PROCEDURE NextCh();
DESCRIPTION
(no description)
PROCEDURE Comment(): BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE CheckLiteral();
DESCRIPTION
(no description)
PROCEDURE Get*(VAR sym: INTEGER);
DESCRIPTION
(no description)
PROCEDURE GetName*(pos: LONGINT; len: INTEGER; VAR s: ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE StdErrorProc*(n: INTEGER; pos: LONGINT);
DESCRIPTION
(no description)
PROCEDURE Initialize*(t : VOUtil.Text; errProc: ErrorProc);
DESCRIPTION
(no description)

5.29 VOColSelDlg.Mod

MODULENAME
VOColSelDlg
DESCRIPTION
A dialog to select one of the internal colors.
IMPORTS

5.29.1 ColSelDlgDesc

CLASSNAME
ColSelDlgDesc*
BASECLASS
W.WindowDesc
POINTER
ColSelDlg
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE PreInit*;
DESCRIPTION
(no description)
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)
PROCEDURE SetColor*(color : LONGINT);
DESCRIPTION
(no description)

5.29.2 SetMsgDesc

CLASSNAME
SetMsgDesc*
BASECLASS
O.MessageDesc
POINTER
SetMsg
DESCIPTION
(no description)

5.30 VOFrmSelDlg.Mod

MODULENAME
VOFrmSelDlg
DESCRIPTION
A dialog to select a internal frame.
IMPORTS

5.30.1 FrmSelDlgDesc

CLASSNAME
FrmSelDlgDesc*
BASECLASS
W.WindowDesc
POINTER
FrmSelDlg
DESCIPTION
A custom dialog that lets you select one of all internally supported frames.
METHODS
PROCEDURE Init*;
DESCRIPTION
Initializes an instance.
PROCEDURE PreInit*;
DESCRIPTION
Fills the window with all necessary objects.
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)
PROCEDURE SetFrame*(frame : LONGINT);
DESCRIPTION
Sets the given frame as the select one.

5.30.2 SetMsgDesc

CLASSNAME
SetMsgDesc*
BASECLASS
O.MessageDesc
POINTER
SetMsg
DESCIPTION
(no description)

5.31 VOImgSelDlg.Mod

MODULENAME
VOImgSelDlg
DESCRIPTION
A dialog to select one of the internal images.
IMPORTS

5.31.1 ImgSelDlgDesc

CLASSNAME
ImgSelDlgDesc*
BASECLASS
W.WindowDesc
POINTER
ImgSelDlg
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE PreInit*;
DESCRIPTION
(no description)
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)
PROCEDURE SetImage*(image : LONGINT);
DESCRIPTION
(no description)

5.31.2 SetMsgDesc

CLASSNAME
SetMsgDesc*
BASECLASS
O.MessageDesc
POINTER
SetMsg
DESCIPTION
(no description)

5.32 VOMsgDialog.Mod

MODULENAME
VOMsgDialog
DESCRIPTION
A module for creating simple dialogs for displaying modal messages and getting simple user response.
TODO
Preferences for imgaes to use.
IMPORTS
FUNCTIONS
PROCEDURE Dialog*(display : VODisplay.Display; parent : VODisplay.Window; title,text,button : ARRAY OF CHAR; type : LONGINT):MsgDialog;
DESCRIPTION
(no description)

5.32.1 MsgDialogDesc

CLASSNAME
MsgDialogDesc*
BASECLASS
W.WindowDesc
POINTER
MsgDialog
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetText*(text,button : ARRAY OF CHAR; type : LONGINT);
DESCRIPTION
Set the text to display in the dialog, the buttons to be showed and the image.
PARAMETER
Text can use any escape sequences supported by VOText, button consists of a list of button labels ("_","*","^" and "#" are supported) devided by "|" and type can be one of the constants defined in this module.
PROCEDURE PreInit*;
DESCRIPTION
(no description)
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)

5.33 VOPrefsGUI.Mod

MODULENAME
VOPrefsGUI
DESCRIPTION
Module for handling of the various preferences GUIs. Offers a flexible settings dialog.
IMPORTS
FUNCTIONS
PROCEDURE Msg(string : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE PrefsCallback(appName : ARRAY OF CHAR; display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE StdErrorProc*(n: INTEGER; pos: LONGINT);
DESCRIPTION
The standard error handler for the preferences parser. It just prints out errors to stderr.
PROCEDURE CreateFrameButton*(value : LONGINT; VAR frame : VOFrame.Frame; display : VODisplay.Display; destination : VOObject.MsgObject; keyHandler : VOKeyHandler.KeyHandler; tooltip : ARRAY OF CHAR):VOButton.Button;
DESCRIPTION
(no description)
PROCEDURE CreateImageButton*(value : LONGINT; VAR image : VOVecImage.VecImage; display : VODisplay.Display; destination : VOObject.MsgObject; keyHandler : VOKeyHandler.KeyHandler; tooltip : ARRAY OF CHAR):VOButton.Button;
DESCRIPTION
(no description)

5.33.1 PrefsItemDesc

CLASSNAME
PrefsItemDesc*
BASECLASS
O.MsgObjectDesc
POINTER
PrefsItem
DESCIPTION
(no description)
METHODS
PROCEDURE SetData(window : VOWindow.Window; display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE LoadPrefsFile*(name,application : ARRAY OF CHAR):VOPrefsParser.Item;
DESCRIPTION
Load the preferences file with the given name. Don't start the filename with something like ~/.VisualOberon, VO will prepend that itself. If the file can be found and has been successfully parsed, it will return a pointe to the top node. Use VOPrefsParser.Item.GetEntry to get its contents.
PROCEDURE ErrorWrongData*(name,value : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE LoadPrefs*(appName : ARRAY OF CHAR);
DESCRIPTION
All preferences should have a load-method. The baseclass does nothing.
PROCEDURE GetObject*():VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE SaveItems*(name : ARRAY OF CHAR; top : VOPrefsParser.Item);
DESCRIPTION
(no description)
PROCEDURE Apply*;
DESCRIPTION
(no description)
PROCEDURE Save*;
DESCRIPTION
(no description)
PROCEDURE Refresh*;
DESCRIPTION
(no description)

5.33.2 SettingsDesc

CLASSNAME
SettingsDesc*
BASECLASS
W.WindowDesc
POINTER
Settings
DESCIPTION
(no description)
METHODS
PROCEDURE AddItem*(item : PrefsItem);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetDisplay*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE ExitOnClose*(exit : BOOLEAN);
DESCRIPTION
If you want the dialog to quit the application, set this to true. This is usefull, if the configuration dialog is a standalone window.
PROCEDURE PreInit*;
DESCRIPTION
(no description)
PROCEDURE Open*;
DESCRIPTION
(no description)
PROCEDURE LoadPrefs*(appName : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE ApplyPrefs*;
DESCRIPTION
(no description)
PROCEDURE SavePrefs*;
DESCRIPTION
(no description)
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)

5.33.3 Sel2SetDesc

CLASSNAME
Sel2SetDesc*
BASECLASS
O.HandlerDesc
POINTER
Sel2Set
DESCIPTION
(no description)
METHODS
PROCEDURE Convert*(message : VOObject.Message):VOObject.Message;
DESCRIPTION
(no description)

5.34 VOBool.Mod

MODULENAME
VOBool
DESCRIPTION
A simple boolean button with a selected and an unselected state.
IMPORTS

5.34.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.34.2 BoolDesc

CLASSNAME
BoolDesc*
BASECLASS
G.GadgetDesc
POINTER
Bool
DESCIPTION
Implementation of a bool gadget.
METHODS
PROCEDURE IsIn(x,y : LONGINT):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetModel*(model : VOBoolModel.BoolModel);
DESCRIPTION
Assign a bool model to the bool-gadget. The bool gadget will up to now always display the value of the bool model.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE DrawFocus*;
DESCRIPTION
Draw the keyboard focus.
PROCEDURE HideFocus*;
DESCRIPTION
Hide the keyboard focus.
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.34.3 ClickedMsgDesc

CLASSNAME
ClickedMsgDesc*
BASECLASS
O.MessageDesc
POINTER
ClickedMsg
DESCIPTION
The PressedMsg generated everytime the button get clicked.

5.35 VOButton.Mod

MODULENAME
VOButton
DESCRIPTION
This module implements a button. The button label can be a text or any other graphical object. This module is well documented to show how to implement a simple gadget. It also demonstrates, how the VO-engine works.
IMPORTS

5.35.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(b : Button);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.35.2 ButtonDesc

CLASSNAME
ButtonDesc*
BASECLASS
G.GadgetDesc
POINTER
Button
DESCIPTION
THe ButtonClass. Since a button needs some eventhandling, so we inherit from VOGUIObject.Gadget.
METHODS
PROCEDURE Init*;
DESCRIPTION
The Init-method of our button.
PROCEDURE SetFont*(font : LONGINT);
DESCRIPTION
Set a new font to be used by the string gadget.
PROCEDURE SetText*(string : ARRAY OF CHAR);
DESCRIPTION
Call this method, if you want the given text to be displayed in the button. This creates simply an VOText.Text instance for Button.image.
PROCEDURE SetLabelText*(string : ARRAY OF CHAR; keyHandler : VOKeyHandler.KeyHandler);
DESCRIPTION
Call this method, if you want the given text to be displayed in the button and want the button to interpret the given string regarding shortcuts. This creates simply an VOText.Text instance for Button.image.
PROCEDURE SetImage*(image : VOGUIObject.Object);
DESCRIPTION
Use this method if you do not want text displayed in the button. We use n external initialized image. Not that for Button there is no difference between text and any oher image after this point.
PROCEDURE SetType*(type : LONGINT);
DESCRIPTION
We can define special types of buttons. Currently supported are normal, small and image.
PROCEDURE SetPulse*(pulse : BOOLEAN);
DESCRIPTION
Is pulsemode is true, the button send permanent pressedMsg on mouse button down and none on the final button up. This is usefull for buttons in a scroller or similar.
PROCEDURE GetDnDObject*(x,y : LONGINT; drag : BOOLEAN):VOGUIObject.Object;
DESCRIPTION
Returns the object that coveres the given point and that supports drag and drop of data. If drag is TRUE, when want to find a object that we can drag data from, else we want an object to drop data on.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
This method gets called by the parent object before the first call to Button.Draw. We have to calculate the bounds of our button.
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
This method gets called when the window gets an event and looks for someone that processes it. If GetFocus return an object, that objets HandleEvent-method get called untill it gives away the focus.
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
Handles all events after GetFocus catched the focus for us.
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
This method gets called when we have the keyboard focus and a key is pressed. We analyse the key. If it is the space-key, we've been selected.
TODO
Go into the selected state, when we get a KeyPress-event for the space key. Get unselected again, if we receive a KeyRelease- event and send a PressedMsg. Get unselected without sending a PressedMsg when Object.LostFocus got called.
PROCEDURE HandleShortcutEvent*(id,state : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
Gets called if the engine whants us to draw ourself.
PROCEDURE DrawFocus*;
DESCRIPTION
Draw the keyboard focus.
PROCEDURE HideFocus*;
DESCRIPTION
Hide the keyboard focus.
PROCEDURE Hide*;
DESCRIPTION
Hides the button. The buttons hides itself by hiding its label and its frame. Note, that you must set Object.visible yourself when you overload Object.Hide.
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)

5.35.3 PressedMsgDesc

CLASSNAME
PressedMsgDesc*
BASECLASS
O.MessageDesc
POINTER
PressedMsg
DESCIPTION
The PressedMsg generated everytime the button get clicked.

5.36 VOClock.Mod

MODULENAME
VOClock
DESCRIPTION
A nice analog clock, to be placed everywhere you like.
IMPORTS
FUNCTIONS
PROCEDURE sin(grad : LONGINT):LONGINT;
DESCRIPTION
(no description)
PROCEDURE cos(grad : LONGINT):LONGINT;
DESCRIPTION
(no description)

5.36.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(c : Clock);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.36.2 ClockDesc

CLASSNAME
ClockDesc*
BASECLASS
G.GadgetDesc
POINTER
Clock
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE ShowFrame*(framed : BOOLEAN);
DESCRIPTION
Tell if the clock should be framed. Defaults to TRUE.
PROCEDURE SetText*(text1,text2 : ARRAY OF CHAR);
DESCRIPTION
Set the text to display in normal state and when clicked. Use placeholders defined in module Calendar. If you don't set a text, no space for text will be reserved. Length is the estimated length in characters. Note that VOClocck will use the width of a special character for calculation of the string length in pixel, so the real size may be different.
NOTE
Text must no exceed 50 characters. Currently text must be set on creation. But can then be altered on the fly.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
This method gets called when the window gets an event and looks for someone that processes it. If GetFocus return an object, that objets HandleEvent-method get called untill it gives away the focus.
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
Handles all events after GetFocus catched the focus for us.
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Receive*(msg : VOObject.Message);
DESCRIPTION
(no description)

5.37 VOColorArea.Mod

MODULENAME
VOColorArea
DESCRIPTION
Just a plain area with a given color. Usefull for a buttonimage, when you want some kind of palette button.
IMPORTS

5.37.1 ColorAreaDesc

CLASSNAME
ColorAreaDesc*
BASECLASS
O.ImageDesc
POINTER
ColorArea
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetColor*(color : VODisplay.Color);
DESCRIPTION
The the color of the color area.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.38 VOCycle.Mod

MODULENAME
VOCycle
DESCRIPTION
A cycle gadget as nown from the amiga.
IMPORTS

5.38.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the cycle is stored.
METHODS
PROCEDURE SetPrefs(c : Cycle);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.38.2 CycleDesc

CLASSNAME
CycleDesc*
BASECLASS
G.GroupDesc
POINTER
Cycle
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetModel*(model : VOIntModel.IntModel);
DESCRIPTION
Assign the model for the cycle object. The cycle object will show the nth entry given by the value of the integer model.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
Refreshes the group object by refreshing all objects in the object list. The refresh retangle is preserved and will be handled to all subobjects.
PROCEDURE DrawFocus*;
DESCRIPTION
(no description)
PROCEDURE HideFocus*;
DESCRIPTION
Hide the keyboard focus.
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.38.3 SelectedMsgDesc

CLASSNAME
SelectedMsgDesc*
BASECLASS
O.MessageDesc
POINTER
SelectedMsg
DESCIPTION
(no description)

5.39 VODigiClock.Mod

MODULENAME
VODigiClock
DESCRIPTION
A nice digital clock, to be placed everywhere you like.
IMPORTS

5.39.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(d : DigiClock);
DESCRIPTION
(no description)

5.39.2 DigiClockDesc

CLASSNAME
DigiClockDesc*
BASECLASS
G.GadgetDesc
POINTER
DigiClock
DESCIPTION
(no description)
METHODS
PROCEDURE DrawClock(full : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetForeground*(color : VODisplay.Color);
DESCRIPTION
(no description)
PROCEDURE SetNumberBackground*(color : VODisplay.Color);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
This method gets called when the window gets an event and looks for someone that processes it. If GetFocus return an object, that objets HandleEvent-method get called untill it gives away the focus.
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
Handles all events after GetFocus catched the focus for us.
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Receive*(msg : VOObject.Message);
DESCRIPTION
(no description)

5.40 VODoom.Mod

MODULENAME
VODoom
DESCRIPTION
A small doom engine.
IMPORTS
FUNCTIONS
PROCEDURE IsHit(x,y : LONGINT; VAR side : LONGINT; VAR dist : REAL):BOOLEAN;
DESCRIPTION
(no description)

5.40.1 DoomDesc

CLASSNAME
DoomDesc*
BASECLASS
G.GadgetDesc
POINTER
Doom
DESCIPTION
(no description)
METHODS
PROCEDURE DrawImage(rotate : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Receive*(msg : VOObject.Message);
DESCRIPTION
(no description)
PROCEDURE Free*;
DESCRIPTION
(no description)

5.41 VOFrame.Mod

MODULENAME
VOFrame
DESCRIPTION
A image class that implements a number of frames. Use the frames implemented here everywhere where possible. Do not implement your own frames, add them here. Add your frames also here, when you want to implement another look.
TODO
* nicer frame for string gadget * Make some frames support label (groupFrame) * Isn't a line a special frame?
IMPORTS
FUNCTIONS
PROCEDURE GetFrameEntry*(name : ARRAY OF CHAR):LONGINT;
DESCRIPTION
(no description)

5.41.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.41.2 FrameDesc

CLASSNAME
FrameDesc*
BASECLASS
G.ImageDesc
POINTER
Frame
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetFrame*(type : LONGINT);
DESCRIPTION
Set the frame to be used.
NOTE
The frame can be changed at runtime.
PROCEDURE SetInternalFrame*(type : LONGINT);
DESCRIPTION
Set the frame to be used.
NOTE
The frame can be changed at runtime.
PROCEDURE SetLabel*(label : VOGUIObject.Object);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.42 VOFuelGauge.Mod

MODULENAME
VOFuelGauge
DESCRIPTION
A imgae class that implements a fuel gauge, needed for displaying the amount a process has yet proceded.
IMPORTS

5.42.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.42.2 FuelGaugeDesc

CLASSNAME
FuelGaugeDesc*
BASECLASS
G.ImageDesc
POINTER
FuelGauge
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetDirection*(vertical : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE SetRange*(min,max : LONGINT);
DESCRIPTION
Set the minimal and maximal value the fuel gauge should display.
NOTE
The image currently does not cut down the value to the given range, so be carefull.
PROCEDURE SetModel*(model : VOIntModel.IntModel);
DESCRIPTION
Set the integer model which represents the current value.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)

5.43 VOImage.Mod

MODULENAME
VOImage
DESCRIPTION
This module implements loading and displaying of images. This implementation use the Imlib to handle loading and drawing.
IMPORTS

5.43.1 ImageDesc

CLASSNAME
ImageDesc*
BASECLASS
G.ImageDesc
POINTER
Image
DESCIPTION
(no description)
METHODS
PROCEDURE FreePixmaps;
DESCRIPTION
(no description)
PROCEDURE MakePixmap;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
Initialized the object. Must be called.
PROCEDURE SetAlignment*(horiz, vert : LONGINT);
DESCRIPTION
Set the alignment of the image within the image area. See VOGUIObject for alignments supported.
PROCEDURE SetFilename*(name : ARRAY OF CHAR);
DESCRIPTION
Set the filename of the image. Must be set before use.
PROCEDURE SetMode*(mode : LONGINT);
DESCRIPTION
Set the mode of the object. * plainMode Uses the fillColor when selecting. * buttonMode draw the image a little bit more left and down on select, so one gets a 3D feal when selecting-
PROCEDURE Resize*(width,height : LONGINT);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE DrawPart*(x,y,w,h,dx,dy : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE DrawTiled*(x,y,w,h,dx,dy : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Free*;
DESCRIPTION
Must be called before image gets garbage collected or you possibly get memory leaks.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE DrawPart*(x,y,w,h,dx,dy : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE DrawTiled*(x,y,w,h,dx,dy : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)

5.44 VOLED.Mod

MODULENAME
VOLED
DESCRIPTION
A simple led with two states: on and off.
IMPORTS

5.44.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.44.2 LEDDesc

CLASSNAME
LEDDesc*
BASECLASS
G.ImageDesc
POINTER
LED
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetModel*(model : VOBoolModel.BoolModel);
DESCRIPTION
Assign the boolean model to the LED. The LED will be on, when the value of the model is true, else it will off.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)

5.45 VOLightChain.Mod

MODULENAME
VOLightChain
DESCRIPTION
An oszilloscope-like object to display a continious number of values on a timeline.
IMPORTS
FUNCTIONS
PROCEDURE InitChar(VAR font : Font; letter : CHAR; store : CharStore);
DESCRIPTION
(no description)

5.45.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.45.2 LightChainDesc

CLASSNAME
LightChainDesc*
BASECLASS
G.ImageDesc
POINTER
LightChain
DESCIPTION
(no description)
METHODS
PROCEDURE Readapt(letters : LONGINT);
DESCRIPTION
Refresh internal datatstructures after an resize peration.
PROCEDURE DrawPoint(x,y : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Scroll;
DESCRIPTION
Scroll the display one character to the left.
PROCEDURE Invert;
DESCRIPTION
Invert the display.
PROCEDURE SoftScroll;
DESCRIPTION
Scroll the display one pixel to the left.
PROCEDURE AddChar(char : Character; bit : LONGINT);
DESCRIPTION
Scroll the display one pixel left if needed and add the given row of the given character to the display.
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetText*(text : ARRAY OF CHAR);
DESCRIPTION
Set the text to be displayed in the display.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Resize*(width,height : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Receive*(msg : VOObject.Message);
DESCRIPTION
(no description)

5.46 VOLine.Mod

MODULENAME
VOLine
DESCRIPTION
Simply draws vertical or horizontal lines. Usefull for visually seperating groups of objects.
IMPORTS

5.46.1 LineDesc

CLASSNAME
LineDesc*
BASECLASS
G.ObjectDesc
POINTER
Line
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(vert : BOOLEAN; size : SHORTINT);
DESCRIPTION
Spezify direction (vertical or horizontal) and the size of the line. Size spezifies the size of the line within its bounds in procent. E.g., if you spezify the line will always have half the size of its bounds and will be displayed centered.
PROCEDURE CalcSize*(d : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.47 VOList.Mod

MODULENAME
VOList
DESCRIPTION
A list gadget. Is prepared for handling multible columns. Can be used as multi-selection listgadget.
IMPORTS

5.47.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.47.2 ListDesc

CLASSNAME
ListDesc*
BASECLASS
G.GadgetDesc
POINTER
List
DESCIPTION
(no description)
METHODS
PROCEDURE GetEntry(y : LONGINT):VOListModel.ListEntry;
DESCRIPTION
(no description)
PROCEDURE RedrawEntry(entry : VOListModel.ListEntry);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetModel*(model : VOListModel.ListModel);
DESCRIPTION
(no description)
PROCEDURE SetReadOnly*(readonly : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE UseScroller*(use : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE SetTop*(top : LONGINT);
DESCRIPTION
(no description)

5.47.3 SelectedMsgDesc

CLASSNAME
SelectedMsgDesc*
BASECLASS
O.MessageDesc
POINTER
SelectedMsg
DESCIPTION
(no description)

5.48 VOLoad.Mod

MODULENAME
VOLoad
DESCRIPTION
Implements a load-like percentage display.
IMPORTS

5.48.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.48.2 LoadDesc

CLASSNAME
LoadDesc*
BASECLASS
G.ImageDesc
POINTER
Load
DESCIPTION
(no description)
METHODS
PROCEDURE DrawLoad;
DESCRIPTION
Refresh loadmeter and text.
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetVertical*(vertical : BOOLEAN);
DESCRIPTION
Tell, if the load should be display horizontally or vertically. Default is vertical.
PROCEDURE ShowLabel*(useLabel : BOOLEAN);
DESCRIPTION
Tell, if the object should display its label.
PROCEDURE ShowFrame*(framed : BOOLEAN);
DESCRIPTION
Tell, if the object should be framed. Defaults to TRUE.
PROCEDURE SetModel*(model : VOIntModel.IntModel);
DESCRIPTION
Set the integer model which represents the current value.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE SetRange*(bottom,top : LONGINT);
DESCRIPTION
Set the bottom and top value the object should use for displaying.
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)
PROCEDURE Free*;
DESCRIPTION
(no description)

5.49 VOOszil.Mod

MODULENAME
VOOszil
DESCRIPTION
An oszilloscope-like object to display a continious number of values on a timeline.
NOTE
The interface for adding values might change in future to support multiple graphs.
IMPORTS

5.49.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(o : Oszil);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.49.2 OszilDesc

CLASSNAME
OszilDesc*
BASECLASS
G.ImageDesc
POINTER
Oszil
DESCIPTION
(no description)
METHODS
PROCEDURE CalcMinMax();
DESCRIPTION
(no description)
PROCEDURE ResizePoints(width : LONGINT);
DESCRIPTION
(no description)
PROCEDURE ResizeSize(size : LONGINT);
DESCRIPTION
(no description)
PROCEDURE DrawPoint(x : LONGINT; scroll : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE ShowFrame*(framed : BOOLEAN);
DESCRIPTION
Tell, if the object should be framed. Defaults to TRUE.
PROCEDURE SetRange*(bottom,top : LONGINT);
DESCRIPTION
Set the bottom and top value of the visible area. Values outside this area are clipped and thus will not be displayed.
PROCEDURE SetInterval*(horizInt,vertInt : LONGINT);
DESCRIPTION
The the interval at which horizontal and vertical scaling lines will be displayed.
PROCEDURE SetModel*(model : VODataStreamModel.StreamLongModel);
DESCRIPTION
Set the integer model which represents the current value.
PROCEDURE SetColor*(channel : LONGINT; color : VODisplay.Color);
DESCRIPTION
Set a color for the given channel of the channel model. Colors will currently be reset when the channel size of the model changes.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Resize*(width, height : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)
PROCEDURE Free*;
DESCRIPTION
(no description)

5.50 VOPatternLegend.Mod

MODULENAME
VOPatternLegend
DESCRIPTION
IMPORTS

5.50.1 PatternLegendDesc

CLASSNAME
PatternLegendDesc*
BASECLASS
G.GroupDesc
POINTER
PatternLegend
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetMaximum*(maximum : LONGINT);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.51 VOPieChart.Mod

MODULENAME
VOPieChart
DESCRIPTION
A simple pie chart for statistic stuff.
IMPORTS

5.51.1 PieChartDesc

CLASSNAME
PieChartDesc*
BASECLASS
G.ImageDesc
POINTER
PieChart
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetTotal*(total : LONGREAL);
DESCRIPTION
(no description)
PROCEDURE AddValue*(value : LONGREAL);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.52 VOPlot.Mod

MODULENAME
VOPlot
DESCRIPTION
VOPlot - Visual Oberon object to plot bar charts, linear, semi-log and full logarithmic plots complete with labels and legends.
IMPORTS
FUNCTIONS
PROCEDURE PutCh(c:CHAR);
DESCRIPTION
(no description)
PROCEDURE PutNumDig(c:LONGINT);
DESCRIPTION
(no description)
PROCEDURE PutExp(exp:INTEGER);
DESCRIPTION
(no description)
PROCEDURE LogOf(x : LONGREAL) : LONGREAL;
DESCRIPTION
(no description)
PROCEDURE Classify(VAR Boundary : ClassSet; x, y : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Clip(Boundary : ClassSet);
DESCRIPTION
(no description)
PROCEDURE PlotLine(x1, y1, x2, y2 : LONGINT);
DESCRIPTION
(no description)
PROCEDURE PlotMinorX;
DESCRIPTION
(no description)
PROCEDURE PlotMinorY;
DESCRIPTION
(no description)
PROCEDURE RealToString*(num:LONGREAL; VAR str:ARRAY OF CHAR; minchars:INTEGER; fracchars:INTEGER; pad:CHAR): BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Empty*() : Plot;
DESCRIPTION
(no description)
PROCEDURE DonePlot*(VAR p : Plot);
DESCRIPTION
(no description)

5.53 VOPower.Mod

MODULENAME
VOPower
DESCRIPTION
A simple flashing light, to show that your application has not crashed (yet ;-)).
IMPORTS

5.53.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.53.2 PowerDesc

CLASSNAME
PowerDesc*
BASECLASS
G.ImageDesc
POINTER
Power
DESCIPTION
(no description)
METHODS
PROCEDURE DrawBox;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Receive*(msg : VOObject.Message);
DESCRIPTION
(no description)

5.54 VORadio.Mod

MODULENAME
VORadio
DESCRIPTION
A radio button.
IMPORTS

5.54.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.54.2 RadioDesc

CLASSNAME
RadioDesc*
BASECLASS
G.GadgetDesc
POINTER
Radio
DESCIPTION
(no description)
METHODS
PROCEDURE IsIn(x,y : LONGINT):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetModel*(model : VOIntModel.IntModel; number : LONGINT);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE DrawFocus*;
DESCRIPTION
Draw the keyboard focus.
PROCEDURE HideFocus*;
DESCRIPTION
Hide the keyboard focus.
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.54.3 ClickedMsgDesc

CLASSNAME
ClickedMsgDesc*
BASECLASS
O.MessageDesc
POINTER
ClickedMsg
DESCIPTION
The PressedMsg generated everytime the button get clicked.

5.55 VOScale.Mod

MODULENAME
VOScale
DESCRIPTION
A scale for numerical intervals.
IMPORTS

5.55.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.

5.55.2 ScaleDesc

CLASSNAME
ScaleDesc*
BASECLASS
G.ImageDesc
POINTER
Scale
DESCIPTION
(no description)
METHODS
PROCEDURE GetExp(number : LONGINT):LONGINT;
DESCRIPTION
Calculates log10 number.
PROCEDURE Pow10(exp : LONGINT):LONGINT;
DESCRIPTION
Calculates 10^exp
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetDirection*(vertical : BOOLEAN);
DESCRIPTION
Define, if you want a vertical or horizontal scale.
PROCEDURE SetInterval*(from, to : LONGINT);
DESCRIPTION
Set the range the scale should go. For example 0,100 for a procentual scale.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.56 VOScroller.Mod

MODULENAME
VOScroller
DESCRIPTION
Implements horizontal and vertical scrollers.
TODO
* Support for prior, next, home, end
IMPORTS

5.56.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the cycle is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.56.2 ScrollerDesc

CLASSNAME
ScrollerDesc*
BASECLASS
G.GadgetDesc
POINTER
Scroller
DESCIPTION
(no description)
METHODS
PROCEDURE DrawKnob;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(vert : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE SetOffset*(offset : LONGINT);
DESCRIPTION
(no description)
PROCEDURE SetModel*(top, visible, total : VOIntModel.IntModel);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)

5.57 VOSegment.Mod

MODULENAME
VOSegment
DESCRIPTION
A simple segment display.
IMPORTS

5.57.1 SegmentDesc

CLASSNAME
SegmentDesc*
BASECLASS
G.ImageDesc
POINTER
Segment
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetStringWidth*(width : LONGINT);
DESCRIPTION
(no description)
PROCEDURE SetString*(string : ARRAY OF CHAR);
DESCRIPTION
Set the new text to display. Redraws the object if its visible.
PROCEDURE StoreString*(string : ARRAY OF CHAR);
DESCRIPTION
Set the new text to display widthout redrawing the object.
PROCEDURE SetForeground*(color : VODisplay.Color);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.58 VOSegment7.Mod

MODULENAME
VOSegment7
DESCRIPTION
A simple segment display.
IMPORTS

5.58.1 Segment7Desc

CLASSNAME
Segment7Desc*
BASECLASS
G.ImageDesc
POINTER
Segment7
DESCIPTION
(no description)
METHODS
PROCEDURE DrawSegment;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetOnColor*(color : VODisplay.Color);
DESCRIPTION
(no description)
PROCEDURE SetOffColor*(color : VODisplay.Color);
DESCRIPTION
(no description)
PROCEDURE SetValue*(value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.59 VOSlider.Mod

MODULENAME
VOSlider
DESCRIPTION
Implements horizontal and vertical sliders.
TODO
* No highlighting of arrows, should change
IMPORTS

5.59.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(s : Slider);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.59.2 SliderDesc

CLASSNAME
SliderDesc*
BASECLASS
G.GadgetDesc
POINTER
Slider
DESCIPTION
(no description)
METHODS
PROCEDURE DrawKnob;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(vert : BOOLEAN);
DESCRIPTION
Set the direction (horizontal or vertical) of the slider.
PROCEDURE UseScale*(use : BOOLEAN);
DESCRIPTION
Define, if we should use a scale, or not..
PROCEDURE SetRange*(from,to : LONGINT);
DESCRIPTION
Set the minimal and maximal value of the slider.
PROCEDURE SetModel*(pos : VOIntModel.IntModel);
DESCRIPTION
Set the integer model to the slider. The slider will always represent the value of the model.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE DrawFocus*;
DESCRIPTION
(no description)
PROCEDURE HideFocus*;
DESCRIPTION
(no description)
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)

5.59.3 MovedMsgDesc

CLASSNAME
MovedMsgDesc*
BASECLASS
O.MessageDesc
POINTER
MovedMsg
DESCIPTION
The PressedMsg generated everytime the button get clicked.

5.60 VOSpace.Mod

MODULENAME
VOSpace
DESCRIPTION
Just some amount of invisible space hidden in the endless number of dimensions of the univers.
IMPORTS

5.60.1 SpaceDesc

CLASSNAME
SpaceDesc*
BASECLASS
G.ImageDesc
POINTER
Space
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(vert : BOOLEAN; size : LONGINT);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.61 VOString.Mod

MODULENAME
VOString
DESCRIPTION
Implements a textinput field. The string gadget is drag source and drop destination.
TODO
* Optimize redrawing to avoid flicker.
IMPORTS

5.61.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.61.2 StringDesc

CLASSNAME
StringDesc*
BASECLASS
G.GadgetDesc
POINTER
String
DESCIPTION
(no description)
METHODS
PROCEDURE GetCursorPos(x : LONGINT):LONGINT;
DESCRIPTION
Sets the cursor under the mouse.
PROCEDURE Selected():BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE SetSelection(a,b : LONGINT);
DESCRIPTION
(no description)
PROCEDURE ClearSelection;
DESCRIPTION
(no description)
PROCEDURE DeleteSelection;
DESCRIPTION
(no description)
PROCEDURE DrawText;
DESCRIPTION
(no description)
PROCEDURE HandleKeys(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetFont*(font : LONGINT);
DESCRIPTION
Set a new font to be used by the string gadget.
PROCEDURE SetModel*(model : VOObject.Model);
DESCRIPTION
Assign a string model to string gadget.
PROCEDURE SetStringWidth*(width,visWidth : LONGINT);
DESCRIPTION
Set the maximum text with of string gadget and the visible with of the string gadget in letters.
NOTE
The with in letters will be estimated and thus the real width may differ from the given one.
PROCEDURE SetStringAlignment*(a:Alignment);
DESCRIPTION
Set the aligment for the text within the string object.
PROCEDURE CalcSize*(d : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetDnDObject*(x,y : LONGINT; drag : BOOLEAN):VOGUIObject.Object;
DESCRIPTION
Returns the object that coveres the given point and that supports drag and drop of data. If drag is TRUE, when want to find a object that we can drag data from, else we want an object to drop data on.
PROCEDURE GetDragInfo*(VAR dragInfo : VODragDrop.DnDDataInfo);
DESCRIPTION
Return a list of supported datatypes.
PROCEDURE GetDropDataType*(VAR dragInfo : VODragDrop.DnDDataInfo; VAR group, type, action : LONGINT):BOOLEAN;
DESCRIPTION
The object gets a list of supported datatypes of the drag object and has to choose one of them. If there is no fitting datatype it must return FALSE.
PROCEDURE GetDragData*(group, type, action : LONGINT):VODragDrop.DnDData;
DESCRIPTION
Called if we want to get the drag & drop data from the object. data will we garanted to be initialized.
PROCEDURE HandleDrop*(data : VODragDrop.DnDData; action : LONGINT):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Deselect*;
DESCRIPTION
Clear the current selection.
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE DrawFocus*;
DESCRIPTION
Called, when you got the keyboard focus.
PROCEDURE HideFocus*;
DESCRIPTION
Call, when the keyboard focus has been taken away from you.
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)

5.61.3 EnteredMsgDesc

CLASSNAME
EnteredMsgDesc*
BASECLASS
O.MessageDesc
POINTER
EnteredMsg
DESCIPTION
(no description)

5.61.4 EscapeMsgDesc

CLASSNAME
EscapeMsgDesc*
BASECLASS
O.MessageDesc
POINTER
EscapeMsg
DESCIPTION
(no description)

5.62 VOStringClock.Mod

MODULENAME
VOStringClock
DESCRIPTION
A nice digital clock, to be placed everywhere you like.
IMPORTS

5.62.1 StringClockDesc

CLASSNAME
StringClockDesc*
BASECLASS
G.GadgetDesc
POINTER
StringClock
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetForeground*(color : VODisplay.Color);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
This method gets called when the window gets an event and looks for someone that processes it. If GetFocus return an object, that objets HandleEvent-method get called untill it gives away the focus.
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
Handles all events after GetFocus catched the focus for us.
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Receive*(msg : VOObject.Message);
DESCRIPTION
(no description)

5.63 VOTable.Mod

MODULENAME
VOTable
DESCRIPTION
A table object displaying data in scrollable grid.
IMPORTS

5.63.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.63.2 DrawInfoDesc

CLASSNAME
DrawInfoDesc*
BASECLASS
(no base)
POINTER
(no pointer)
DESCIPTION
Object handed to the RedrawCell/RedrawRow methods.

5.63.3 TableDesc

CLASSNAME
TableDesc*
BASECLASS
G.GadgetDesc
POINTER
Table
DESCIPTION
(no description)
METHODS
PROCEDURE CalcCol;
DESCRIPTION
Caculate width and height of the columns. Create a textobject for column header if necessary.
PROCEDURE RedrawRow(y : LONGINT);
DESCRIPTION
Redraw the given row if visible.
PROCEDURE RedrawCell(x,y : LONGINT);
DESCRIPTION
Redraw the given cell if visible.
PROCEDURE DrawHeader;
DESCRIPTION
Draw the column headers
PROCEDURE DrawText(header : BOOLEAN);
DESCRIPTION
Redraw complete table. Redraw header, too, if header=TRUE.
PROCEDURE GetCell(mx,my : LONGINT; VAR x,y : LONGINT):BOOLEAN;
DESCRIPTION
Return the cell under the given coordinates. Returns FALSE if there is no cell at the gien position.
PROCEDURE HandleKeys(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE ReInit;
DESCRIPTION
Completely reinitialize the table.
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetSelectionType*(type : LONGINT);
DESCRIPTION
Set the type of selection. Current supported are: cellSelect - select an individual cell singleRowSelect - select one row
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE DrawCell*(VAR info : DrawInfoDesc);
DESCRIPTION
DrawCell is responsible of drawing a single cell. You must always render the text given info info. You must also render the background, depending of the selete flag set or not, if background is set.
PROCEDURE DrawRow*(VAR info : DrawInfoDesc);
DESCRIPTION
DrawRow is responsible for drawing the frame or the background of a complete row. Currently you must draw the background if background is set in flags depending of selected beeing set or not.
PROCEDURE MakeVisible*(x,y : LONGINT);
DESCRIPTION
Make the given cell visible. Handle an negative number, if the you want the method to ignore the column or row.
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE SetModel*(model : VOTableModel.TableModel);
DESCRIPTION
The the table model for the table object.
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE DrawFocus*;
DESCRIPTION
Draw the keyboard focus.
PROCEDURE HideFocus*;
DESCRIPTION
Hide the keyboard focus.
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)

5.64 VOText.Mod

MODULENAME
VOText
DESCRIPTION
Multiline formatted text. The text is draggable.
TODO
* Rethink integration of U.EscapeString into Text
IMPORTS
FUNCTIONS
PROCEDURE MakeLeftText*(string : ARRAY OF CHAR):Text;
DESCRIPTION
(no description)
PROCEDURE MakeCenterText*(string : ARRAY OF CHAR):Text;
DESCRIPTION
(no description)

5.64.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(t : Text);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.64.2 TextDesc

CLASSNAME
TextDesc*
BASECLASS
G.ImageDesc
POINTER
Text
DESCIPTION
(no description)
METHODS
PROCEDURE AppendLine(l : Line);
DESCRIPTION
(no description)
PROCEDURE CloseLine;
DESCRIPTION
(no description)
PROCEDURE NewLine;
DESCRIPTION
(no description)
PROCEDURE AddTextToPart(text : ARRAY OF CHAR; start, stop : LONGINT);
DESCRIPTION
(no description)
PROCEDURE SetJustification(type : SHORTINT);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE GetDnDObject*(x,y : LONGINT; drag : BOOLEAN):VOGUIObject.Object;
DESCRIPTION
Returns the object that coveres the given point and that supports drag and drop of data. If drag is TRUE, when want to find a object that we can drag data from, else we want an object to drop data on.
PROCEDURE GetDragInfo*(VAR dragInfo : VODragDrop.DnDDataInfo);
DESCRIPTION
Return a list of supported datatypes
PROCEDURE GetDragData*(group, type, action : LONGINT):VODragDrop.DnDData;
DESCRIPTION
Called if we want to get the drag & drop data from the object. data will we garanted to be initialized.
PROCEDURE CalcTextSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE SetText*(text : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE SetDefault*(adjustment : SHORTINT; drawMode : SET; font : LONGINT);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE DrawFocus*;
DESCRIPTION
(no description)
PROCEDURE HideFocus*;
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.65 VOTextView.Mod

MODULENAME
VOTextView
DESCRIPTION
A gadget, that displays text offered by a derived class from TextViewModel.
IMPORTS

5.65.1 TextViewDesc

CLASSNAME
TextViewDesc*
BASECLASS
G.ImageDesc
POINTER
TextView
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetModel*(model : VOTextViewModel.TextModel);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display :VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)
PROCEDURE ShowBottom*;
DESCRIPTION
(no description)

5.66 VOTree.Mod

MODULENAME
VOTree
DESCRIPTION
A tree object displaying simple tree-like data.
IMPORTS

5.66.1 TreeDesc

CLASSNAME
TreeDesc*
BASECLASS
G.GadgetDesc
POINTER
Tree
DESCIPTION
(no description)
METHODS
PROCEDURE GetClickedEntryPos(y : LONGINT):LONGINT;
DESCRIPTION
(no description)
PROCEDURE MakeVisible(y : LONGINT);
DESCRIPTION
(no description)
PROCEDURE DrawItem(item : VOTreeModel.TreeItem; VAR y : LONGINT; offset : LONGINT; goUp : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE DrawTree;
DESCRIPTION
(no description)
PROCEDURE HandleClick(event : VOEvent.MouseEvent);
DESCRIPTION
(no description)
PROCEDURE HandleKeys(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE ReInit;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE SetModel*(model : VOTreeModel.TreeModel);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE DrawFocus*;
DESCRIPTION
Draw the keyboard focus.
PROCEDURE HideFocus*;
DESCRIPTION
Hide the keyboard focus.
PROCEDURE Resync*(model : VOObject.Model; msg : VOObject.ResyncMsg);
DESCRIPTION
(no description)

5.66.2 SelectedMsgDesc

CLASSNAME
SelectedMsgDesc*
BASECLASS
O.MessageDesc
POINTER
SelectedMsg
DESCIPTION
(no description)

5.67 VOVecImage.Mod

MODULENAME
VOVecImage
DESCRIPTION
Implements scaleable images. If you have a nice scaleable image that maybe widly used, add it here.
TODO
* More images, make existing images nicer
IMPORTS
FUNCTIONS
PROCEDURE GetImageEntry*(name : ARRAY OF CHAR):LONGINT;
DESCRIPTION
(no description)

5.67.1 VecImageDesc

CLASSNAME
VecImageDesc*
BASECLASS
G.ImageDesc
POINTER
VecImage
DESCIPTION
(no description)
METHODS
PROCEDURE DrawRectangle(x,y,w,h : LONGINT; in : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE Set*(type : LONGINT);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE DrawFocus*;
DESCRIPTION
(no description)
PROCEDURE HideFocus*;
DESCRIPTION
(no description)

5.68 VOWireFrame.Mod

MODULENAME
VOWireFrame
DESCRIPTION
A simple test for the bitmap feature of VisualOberon. We implement a simple wire frame engine. When visible the objects will be rotated automatically around 0-0-0. We use a simple double buffering algorithm for displaying.
TODO
Implement a similar engine with filled polygons and some lightsourcing stuff. We must investigate 3D clipping algorithms for this. We could also implement a simple doom-like engine ;-) (Year, look at VODoom.Mod)
BUGS
If the 2 dimentional plane the image will be projected to is within the created object a line behind the plane will be projected in front of the plane.
IMPORTS

5.68.1 WireFrameDesc

CLASSNAME
WireFrameDesc*
BASECLASS
G.ImageDesc
POINTER
WireFrame
DESCIPTION
(no description)
METHODS
PROCEDURE DrawBox(rotate : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE AddLine*(x1,y1,z1,x2,y2,z2 : REAL);
DESCRIPTION
Add a line to be displayed to the engine.
PROCEDURE SetViewer*(x,y,z,bz : REAL);
DESCRIPTION
Set the position of the viwer and the distance in z-direction of the projection plane from the 0 point.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Receive*(msg : VOObject.Message);
DESCRIPTION
(no description)
PROCEDURE Free*;
DESCRIPTION
(no description)

5.69 VOXpmImage.Mod

MODULENAME
VOXpmImage
DESCRIPTION
This module implements loading and displaying of xpm images using the widly spread xpmlib.
IMPORTS
FUNCTIONS
PROCEDURE PrintError(err : LONGINT);
DESCRIPTION
(no description)

5.69.1 XpmImageDesc

CLASSNAME
XpmImageDesc*
BASECLASS
G.ImageDesc
POINTER
XpmImage
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
Initialized the object. Must be called.
PROCEDURE SetAlignment*(horiz, vert : LONGINT);
DESCRIPTION
Set the alignment of the image within the image area. See VOGUIObject for alignments supported.
PROCEDURE SetFilename*(name : ARRAY OF CHAR);
DESCRIPTION
Set the filename of the image. Must be set before use.
PROCEDURE SetMode*(mode : LONGINT);
DESCRIPTION
Set the mode of the object. * plainMode Uses the fillColor when selecting. * buttonMode draw the image a little bit more left and down on select, so one gets a 3D feal when selecting-
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Free*;
DESCRIPTION
Must be called before image gets lost in the undergrounds of the garbarge collector or you possibly get memory leaks.

5.70 VOArray.Mod

MODULENAME
VOArray
DESCRIPTION
A layout group, that arranges all it children in an two-dimensional array.
IMPORTS
FUNCTIONS
PROCEDURE Count(Zahl, Div : LONGINT):LONGINT;
DESCRIPTION
(no description)

5.70.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the array is stored.
METHODS
PROCEDURE SetPrefs(a : Array);
DESCRIPTION
(no description)

5.70.2 ArrayDesc

CLASSNAME
ArrayDesc*
BASECLASS
G.GroupDesc
POINTER
Array
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(count : LONGINT; horiz : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE SetSpace*(horiz, vert : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.71 VOButtonRow.Mod

MODULENAME
VOButtonRow
DESCRIPTION
A layout group, that layouts a number of buttons horizontaly.
IMPORTS

5.71.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button row is stored.
METHODS
PROCEDURE SetPrefs(b : ButtonRow);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.71.2 ButtonRowDesc

CLASSNAME
ButtonRowDesc*
BASECLASS
G.GroupDesc
POINTER
ButtonRow
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.72 VOFrameGroup.Mod

MODULENAME
VOFrameGroup
DESCRIPTION
a group object that puts a free defineable frame around its single child object.
IMPORTS

5.72.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(f : FrameGroup);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.72.2 FrameGroupDesc

CLASSNAME
FrameGroupDesc*
BASECLASS
G.GroupDesc
POINTER
FrameGroup
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Add*(object : VOGUIObject.Object);
DESCRIPTION
(no description)
PROCEDURE SetFrame*(type : INTEGER);
DESCRIPTION
(no description)
PROCEDURE SetSpace*(horizValue, horizType, vertValue, vertType : LONGINT);
DESCRIPTION
Set the space beween the frame and its contens in percent. Default to value=100 and type=VOGUIObject.spaceFontRel.
NOTE
VOGUIObject.sizeScreenRel is not supported.
PROCEDURE SetLabel*(object : VOGUIObject.Object);
DESCRIPTION
(no description)
PROCEDURE SetTextLabel*(string : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.73 VOLabel.Mod

MODULENAME
VOLabel
DESCRIPTION
A groupclass that places nicely formated textlabels (or any other object) to the left of a vertical list of objects.
IMPORTS

5.73.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button row is stored.
METHODS
PROCEDURE SetPrefs(l : Label);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.73.2 LabelDesc

CLASSNAME
LabelDesc*
BASECLASS
G.GroupDesc
POINTER
Label
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE AddLabel*(text, object : VOGUIObject.Object);
DESCRIPTION
Add a label entry to label group. A label entry consists of two objects. One object is the label for the other.
PROCEDURE AddTextLabel*(string : ARRAY OF CHAR; object : VOGUIObject.Object);
DESCRIPTION
Add a textual label entry. The label object will generate a text object out of the given string and will then assign it as label object to the other object.
PROCEDURE Set*(labelFlex : BOOLEAN);
DESCRIPTION
Tell, if the label object should stretch the label or the object when beeing resized horizontally.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Resize*(width,height : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE GetPosObject*(x,y : LONGINT; type : LONGINT):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE GetDnDObject*(x,y : LONGINT; drag : BOOLEAN):VOGUIObject.Object;
DESCRIPTION
(no description)

5.74 VOMulti.Mod

MODULENAME
VOMulti
DESCRIPTION
Implements a tab groupobject.
TODO
* Hide is suboptimal.
IMPORTS

5.74.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(m : Multi);
DESCRIPTION
(no description)

5.74.2 MultiDesc

CLASSNAME
MultiDesc*
BASECLASS
G.GroupDesc
POINTER
Multi
DESCIPTION
(no description)
METHODS
PROCEDURE GetEntry(count :LONGINT): VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE SetEntry*(pos : LONGINT);
DESCRIPTION
Set the nth entry the multi object should display.
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
The Handler for messages from user and other objects

5.74.3 SetMsgDesc

CLASSNAME
SetMsgDesc*
BASECLASS
O.MessageDesc
POINTER
SetMsg
DESCIPTION
(no description)

5.75 VOPanel.Mod

MODULENAME
VOPanel
DESCRIPTION
A layouting class for grouping objects horizontaly or verticaly. Does some complex resizing operations to make the arrangement of its children look lice.
IMPORTS

5.75.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(pa : Panel);
DESCRIPTION
(no description)

5.75.2 PanelDesc

CLASSNAME
PanelDesc*
BASECLASS
G.GroupDesc
POINTER
Panel
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(type : LONGINT);
DESCRIPTION
Set the direction (horizontal or vertical) of the panel.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.76 VOPane.Mod

MODULENAME
VOPane
DESCRIPTION
A layouting class for grouping objects horizontaly or verticaly. The size of the objects can be changed by some sliders.
IMPORTS

5.76.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.76.2 PaneDesc

CLASSNAME
PaneDesc*
BASECLASS
G.GroupDesc
POINTER
Pane
DESCIPTION
(no description)
METHODS
PROCEDURE MoveObjects(o1,o2,mover : VOGUIObject.Object; pos : LONGINT);
DESCRIPTION
(no description)
PROCEDURE DrawSelection(mode : INTEGER; x,y : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(type : LONGINT);
DESCRIPTION
Tell if the objects should be arranged horizontally or vertically.
PROCEDURE Add*(object : VOGUIObject.Object);
DESCRIPTION
Add an object to the group. Pane will add mover objects automatically when appropiate.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.77 VOPlate.Mod

MODULENAME
VOPlate
DESCRIPTION
A simple group with one child. The group just puts a little bit, defineable space around the object. Usefull, if you want an object enbedded with a little space and with background color set.
IMPORTS

5.77.1 PlateDesc

CLASSNAME
PlateDesc*
BASECLASS
G.GroupDesc
POINTER
Plate
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Add*(object : VOGUIObject.Object);
DESCRIPTION
Add the object to present.
NOTE
Plate only support one object. Repeatetly calling add will overwrite this object with the new one.
PROCEDURE SetSpace*(horizValue, horizType, vertValue, vertType : LONGINT);
DESCRIPTION
Set the space beween the frame and its contens in percent. Default to Display.spaceWidth and Display.spaceHeight.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.78 VOStatusLine.Mod

MODULENAME
VOStatusLine
DESCRIPTION
Implements a statusline group object.
IMPORTS

5.78.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff is stored.
METHODS
PROCEDURE SetPrefs(s : StatusLine);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.78.2 StatusLineDesc

CLASSNAME
StatusLineDesc*
BASECLASS
G.GroupDesc
POINTER
StatusLine
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.79 VOTab.Mod

MODULENAME
VOTab
DESCRIPTION
Implements a tab groupobject.
TODO
* Hide is suboptimal.
IMPORTS

5.79.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(t : Tab);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.79.2 TabDesc

CLASSNAME
TabDesc*
BASECLASS
G.GroupDesc
POINTER
Tab
DESCIPTION
(no description)
METHODS
PROCEDURE GetEntry(count :LONGINT): TabEntry;
DESCRIPTION
(no description)
PROCEDURE DrawTab(count : LONGINT; selected : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE DrawTop;
DESCRIPTION
(no description)
PROCEDURE DrawObject(count : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Disable*(disable : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE AddTab*(label, object : VOGUIObject.Object);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(d : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE HandleFocusEvent*(event : VOEvent.KeyEvent):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE GetPosObject*(x,y : LONGINT; type : LONGINT):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE GetDnDObject*(x,y : LONGINT; drag : BOOLEAN):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE DrawFocus*;
DESCRIPTION
Draw the keyboard focus.
PROCEDURE HideFocus*;
DESCRIPTION
Hide the keyboard focus.
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
Must be overloaded because the baseclass implements this methods differently.
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.79.3 ChangedMsgDesc

CLASSNAME
ChangedMsgDesc*
BASECLASS
O.MessageDesc
POINTER
ChangedMsg
DESCIPTION
The PressedMsg generated everytime the button get clicked.

5.80 VOToolbar.Mod

MODULENAME
VOToolbar
DESCRIPTION
A special group object for toolbar buttons.
IMPORTS

5.80.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button row is stored.
METHODS
PROCEDURE SetPrefs(t : Toolbar);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)

5.80.2 ToolbarDesc

CLASSNAME
ToolbarDesc*
BASECLASS
G.GroupDesc
POINTER
Toolbar
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetEqualSize*(equal : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.81 VOMenu.Mod

MODULENAME
VOMenu
DESCRIPTION
Implements popup menues.
TODO
* Add support for check menu and radio menu * Cleanup code and share more code with VOWindow
IMPORTS
FUNCTIONS
PROCEDURE InitMenu*(d : VODisplay.Display):Menu;
DESCRIPTION
(no description)

5.81.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
G.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE SetPrefs(m : Menu);
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
Initalisation of preferences.

5.81.2 MenuStripDesc

CLASSNAME
MenuStripDesc*
BASECLASS
G.GroupDesc
POINTER
MenuStrip
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE AddTextStrip*(title : ARRAY OF CHAR; menu : Menu);
DESCRIPTION
Adds an entry to the menustrip and bind that entry to a menu.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)
PROCEDURE GetFocus*(event : VOEvent.Event):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Draw*(x,y : LONGINT; draw : VODisplay.DrawInfo);
DESCRIPTION
(no description)
PROCEDURE Refresh*(x,y,w,h : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)

5.81.3 MenuDesc

CLASSNAME
MenuDesc*
BASECLASS
D.WindowDesc
POINTER
Menu
DESCIPTION
(no description)
METHODS
PROCEDURE SetPullDown(strip : MenuStrip; reference : VOGUIObject.Object; offset : LONGINT);
DESCRIPTION
This makes the menu a pulldown relative to the given object.
NOTE
The pulldown flag gets cleared after closing the menu, you must explizitely set it before calling Menu.Open.
PROCEDURE Add(entry : MenuEntry);
DESCRIPTION
Initializes an empty menu.
PROCEDURE CalcSize;
DESCRIPTION
(no description)
PROCEDURE CursorIsIn():BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE GetSelected():MenuEntry;
DESCRIPTION
(no description)
PROCEDURE CloseAll;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE AddItem*(name, shortcut : VOGUIObject.Object; id : LONGINT);
DESCRIPTION
(no description)
PROCEDURE AddTextItem*(label, shortcut : ARRAY OF CHAR; id : LONGINT);
DESCRIPTION
(no description)
PROCEDURE AddTextItemSC*(label, shortcut : ARRAY OF CHAR; id : LONGINT; qualifier : SET; char : CHAR; keyHandler : VOKeyHandler.KeyHandler);
DESCRIPTION
(no description)
PROCEDURE AddSeparator*;
DESCRIPTION
(no description)
PROCEDURE AddTitle*(name : VOGUIObject.Object);
DESCRIPTION
(no description)
PROCEDURE AddTextTitle*(label : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE AddSubMenu*(name : VOGUIObject.Object; menu : Menu);
DESCRIPTION
(no description)
PROCEDURE AddTextSubMenu*(label : ARRAY OF CHAR; menu : Menu);
DESCRIPTION
(no description)
PROCEDURE Send*(message : VOObject.Message; type : LONGINT);
DESCRIPTION
(no description)
PROCEDURE PreInit*;
DESCRIPTION
(no description)
PROCEDURE Close*;
DESCRIPTION
(no description)
PROCEDURE Draw*;
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Hidden*;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)

5.81.4 SelectedMsgDesc

CLASSNAME
SelectedMsgDesc*
BASECLASS
O.MessageDesc
POINTER
SelectedMsg
DESCIPTION
(no description)

5.81.5 CloseMsgDesc

CLASSNAME
CloseMsgDesc*
BASECLASS
O.MessageDesc
POINTER
CloseMsg
DESCIPTION
(no description)

5.82 VOPopup.Mod

MODULENAME
VOPopup
DESCRIPTION
Implements popup-windows.
TODO
* Share more code with VOWindow
IMPORTS

5.82.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.82.2 PopupDesc

CLASSNAME
PopupDesc*
BASECLASS
D.WindowDesc
POINTER
Popup
DESCIPTION
(no description)
METHODS
PROCEDURE CalcSize;
DESCRIPTION
(no description)
PROCEDURE CursorIsIn():BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE GetPosObject(mode : LONGINT):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
PROCEDURE SetTop*(top,reference : VOGUIObject.Object);
DESCRIPTION
Set the top object for this window and its reference. The popup tries to open itself directly under the referenced object. It also tires to get the same width as the popup.
PROCEDURE PreInit*;
DESCRIPTION
(no description)
PROCEDURE AddKeyHandler*(handler : VOKeyHandler.KeyHandler);
DESCRIPTION
Add a keyhandler to the popup window.
PROCEDURE Draw*;
DESCRIPTION
(no description)
PROCEDURE Redraw*(x,y,width,height : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE FocusIn*;
DESCRIPTION
(no description)
PROCEDURE FocusOut*;
DESCRIPTION
(no description)
PROCEDURE GetDnDObject*(x,y : LONGINT; drag : BOOLEAN):VOGUIObject.Object;
DESCRIPTION
Returns the object that coveres the given point and that supports dragging of data. If drag is TRUE, when want to find a object that we can drag data from, else we want an object to drop data on.
PROCEDURE ContextHelp*;
DESCRIPTION
(no description)
PROCEDURE ContextMenu*():BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE FocusNext*;
DESCRIPTION
(no description)
PROCEDURE FocusObjectHides*;
DESCRIPTION
(no description)
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
(no description)

5.82.3 OpenMsgDesc

CLASSNAME
OpenMsgDesc*
BASECLASS
O.MessageDesc
POINTER
OpenMsg
DESCIPTION
(no description)

5.82.4 CloseMsgDesc

CLASSNAME
CloseMsgDesc*
BASECLASS
O.MessageDesc
POINTER
CloseMsg
DESCIPTION
(no description)

5.82.5 Msg2OpenDesc

CLASSNAME
Msg2OpenDesc*
BASECLASS
O.HandlerDesc
POINTER
Msg2Open
DESCIPTION
(no description)
METHODS
PROCEDURE Convert*(message : VOObject.Message):VOObject.Message;
DESCRIPTION
(no description)

5.82.6 Msg2CloseDesc

CLASSNAME
Msg2CloseDesc*
BASECLASS
O.HandlerDesc
POINTER
Msg2Close
DESCIPTION
(no description)
METHODS
PROCEDURE Convert*(message : VOObject.Message):VOObject.Message;
DESCRIPTION
(no description)

5.83 VOQuickHelp.Mod

MODULENAME
VOQuickHelp
DESCRIPTION
Implements toolstips, known from windows.
TODO
* Share more code with VOWindow
IMPORTS
FUNCTIONS
PROCEDURE InitHelp*(d : VODisplay.Display; help,reference : VOGUIObject.Object):Help;
DESCRIPTION
Initializes a tooltip with help as child which ooccurs directly beneth reference. You must explizitly assign the tooltip to the object you want to give help for. This is not done automatically by this function.

5.83.1 PrefsDesc

CLASSNAME
PrefsDesc*
BASECLASS
P.PrefsDesc
POINTER
Prefs
DESCIPTION
In this class all preferences stuff of the button is stored.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)

5.83.2 HelpDesc

CLASSNAME
HelpDesc*
BASECLASS
D.WindowDesc
POINTER
Help
DESCIPTION
(no description)
METHODS
PROCEDURE CalcSize;
DESCRIPTION
(no description)
PROCEDURE CursorIsIn():BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE PreInit*;
DESCRIPTION
(no description)
PROCEDURE Draw*;
DESCRIPTION
(no description)
PROCEDURE Hide*;
DESCRIPTION
(no description)
PROCEDURE Left*;
DESCRIPTION
(no description)
PROCEDURE Hidden*;
DESCRIPTION
(no description)
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
(no description)

5.84 VOWindow.Mod

MODULENAME
VOWindow
DESCRIPTION
Implements windows.
TODO
* When unmaped, HandleEvents calls top.Hide, which then tries to draw in an allready unmaped window. Solution: object.Hide has to check window.maped. * Cleanup window-generation code, divide it into more methods * Redesign eventloop handling, on method for each event, more functionality in baseclase. Maybe some abstraction mechanism for certain events. * Support future Object.Refresh
IMPORTS

5.84.1 WindowDesc

CLASSNAME
WindowDesc*
BASECLASS
D.WindowDesc
POINTER
Window
DESCIPTION
(no description)
METHODS
PROCEDURE GetPosObject(mode : LONGINT):VOGUIObject.Object;
DESCRIPTION
Returns the object under the cursor to supports the given mode.
PROCEDURE Init*;
DESCRIPTION
Initialize the window object.
PROCEDURE SetTop*(top : VOGUIObject.Object);
DESCRIPTION
Set the top object for this window.
PROCEDURE PreInit*;
DESCRIPTION
Creates a window on the display with top as top object and with title as title.
PROCEDURE ReinitWindow*;
DESCRIPTION
(no description)
PROCEDURE AddKeyHandler*(handler : VOKeyHandler.KeyHandler);
DESCRIPTION
(no description)
PROCEDURE ClosePressed*;
DESCRIPTION
(no description)
PROCEDURE Unmaped*;
DESCRIPTION
(no description)
PROCEDURE FocusIn*;
DESCRIPTION
(no description)
PROCEDURE FocusOut*;
DESCRIPTION
(no description)
PROCEDURE Draw*;
DESCRIPTION
Draw the window contents.
PROCEDURE Redraw*(x,y,width,height : LONGINT);
DESCRIPTION
Redraw the given area of the window.
PROCEDURE Hide*;
DESCRIPTION
Hide the window.
PROCEDURE Resized*(width,height : LONGINT);
DESCRIPTION
Tell the window that it has been resized. The window resizes in turn its top object and redraws itself.
PROCEDURE GetDnDObject*(x,y : LONGINT; drag : BOOLEAN):VOGUIObject.Object;
DESCRIPTION
Returns the object that coveres the given point and that supports dragging of data. If drag is TRUE, when want to find a object that we can drag data from, else we want an object to drop data on.
PROCEDURE ContextHelp*;
DESCRIPTION
Show the context help of an object under the cursor.
PROCEDURE ContextMenu*():BOOLEAN;
DESCRIPTION
Open the context menu for an object under the cursor.
PROCEDURE FocusNext*;
DESCRIPTION
Move the keyboard focus to the next valid object.
PROCEDURE FocusObjectHides*;
DESCRIPTION
Since the object with the keyboard focus hides, we find another one.
PROCEDURE HandleEvent*(event : VOEvent.Event):BOOLEAN;
DESCRIPTION
The handler, that handles all events not dealed with in the special handler-methods
PROCEDURE Receive*(message : VOObject.Message);
DESCRIPTION
The Handler for messages by user and other objects

5.84.2 OpenMsgDesc

CLASSNAME
OpenMsgDesc*
BASECLASS
O.MessageDesc
POINTER
OpenMsg
DESCIPTION
(no description)

5.84.3 CloseMsgDesc

CLASSNAME
CloseMsgDesc*
BASECLASS
O.MessageDesc
POINTER
CloseMsg
DESCIPTION
(no description)

5.84.4 DeleteMsgDesc

CLASSNAME
DeleteMsgDesc*
BASECLASS
O.MessageDesc
POINTER
DeleteMsg
DESCIPTION
(no description)

5.84.5 Msg2OpenDesc

CLASSNAME
Msg2OpenDesc*
BASECLASS
O.HandlerDesc
POINTER
Msg2Open
DESCIPTION
(no description)
METHODS
PROCEDURE Convert*(message : VOObject.Message):VOObject.Message;
DESCRIPTION
(no description)

5.84.6 Msg2CloseDesc

CLASSNAME
Msg2CloseDesc*
BASECLASS
O.HandlerDesc
POINTER
Msg2Close
DESCIPTION
(no description)
METHODS
PROCEDURE Convert*(message : VOObject.Message):VOObject.Message;
DESCRIPTION
(no description)

5.84.7 Msg2DeleteDesc

CLASSNAME
Msg2DeleteDesc*
BASECLASS
O.HandlerDesc
POINTER
Msg2Delete
DESCIPTION
(no description)
METHODS
PROCEDURE Convert*(message : VOObject.Message):VOObject.Message;
DESCRIPTION
(no description)

5.85 VOBoolModel.Mod

MODULENAME
VOBoolModel
DESCRIPTION
A model for boolean values.
IMPORTS

5.85.1 BoolModelDesc

CLASSNAME
BoolModelDesc*
BASECLASS
O.ModelDesc
POINTER
BoolModel
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(bool : BOOLEAN);
DESCRIPTION
(no description)
PROCEDURE Toggle*;
DESCRIPTION
(no description)

5.86 VODataStreamModel.Mod

MODULENAME
VODataStreamModel
DESCRIPTION
A model for stream-like nummerical data input.
IMPORTS

5.86.1 StreamLongModelDesc

CLASSNAME
StreamLongModelDesc*
BASECLASS
O.ModelDesc
POINTER
StreamLongModel
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetSize*(size : LONGINT);
DESCRIPTION
Sets the number of data stream channels. You assign a channel count to the model before you can assign any values to it. You can resize the model but currently all previous stored data will be lost.
PROCEDURE SetNotificationMode*(mode : LONGINT);
DESCRIPTION
Sets the notifycation mode of the model.
PROCEDURE SetValue*(value,channel : LONGINT);
DESCRIPTION
Assigns a value to a given channel of the model. Note that the point of notification of the assignment will be determinented by the notification mode of the model.
PROCEDURE GetValue*(channel : LONGINT):LONGINT;
DESCRIPTION
Returns the current value of the specified channel.
PROCEDURE TriggerNotify*;
DESCRIPTION
Explicitely generate a notification after setting a number of values. You can only trigger a notification if the model is in the corresponding mode.

5.87 VOFunctionModel.Mod

MODULENAME
VOFunctionModel
DESCRIPTION
A model for nummerical data as a result of a multi-dimensional function y=f(x_i), fir 0<= i < infinity, and y a scalar value.
IMPORTS

5.87.1 FunctionLRealModelDesc

CLASSNAME
FunctionLRealModelDesc*
BASECLASS
O.ModelDesc
POINTER
FunctionLRealModel
DESCIPTION
(no description)
METHODS
PROCEDURE SetValue*(dim : LONGINT; value : LONGREAL);
DESCRIPTION
Assigns a new value for x_i to the model.
PROCEDURE SetDescribtion*(descr : ARRAY OF CHAR);
DESCRIPTION
Assign a describtion for the function to the model. A viewer can use this describtion. He will get a Label msg, if the label changes.
PROCEDURE Dimension*():LONGINT;
DESCRIPTION
Returns the dimension of the function, that is i.
PROCEDURE Execute*():LONGREAL;
DESCRIPTION
Executes the function with the current values of x_i.
PROCEDURE NotifyFunctionChange*;
DESCRIPTION
Notifies all viewers, that the function has changed. As a result, all viewers should reassign all x_i and recalculate the function.
NOTE
For speed, no special notification object will be created.

5.87.2 LabelDesc

CLASSNAME
LabelDesc*
BASECLASS
O.ResyncMsgDesc
POINTER
Label
DESCIPTION
(no description)

5.88 VOIntModel.Mod

MODULENAME
VOIntModel
DESCRIPTION
A model for numbers.
IMPORTS

5.88.1 IntModelDesc

CLASSNAME
IntModelDesc*
BASECLASS
O.ModelDesc
POINTER
IntModel
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE ForceSet*(value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Inc*;
DESCRIPTION
(no description)
PROCEDURE Dec*;
DESCRIPTION
(no description)
PROCEDURE Add*(value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Sub*(value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Mul*(value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Div*(value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Mod*(value : LONGINT);
DESCRIPTION
(no description)

5.89 VOListModel.Mod

MODULENAME
VOListModel
DESCRIPTION
A model for lists. Also declares some convinience classes for handling one-column lists and lists of text.
TODO
* Create special ResyncMsgs for certain operatation, that allows the corresponding ListObject the make optimized refeshes
IMPORTS
FUNCTIONS
PROCEDURE NewSimplEntry*(object : VOGUIObject.Object):SimplEntry;
DESCRIPTION
Create a new SimplEntry with object as only child.
PROCEDURE NewTextEntry*(text : ARRAY OF CHAR):SimplEntry;
DESCRIPTION
Create a special TextEntry with includes one textobject generatd from the text text. Escaping is done by this function.

5.89.1 ListEntryDesc

CLASSNAME
ListEntryDesc*
BASECLASS
(no base)
POINTER
ListEntry
DESCIPTION
(no description)
METHODS
PROCEDURE GetObject*(pos : LONGINT):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE Select*;
DESCRIPTION
(no description)
PROCEDURE Deselect*;
DESCRIPTION
(no description)
PROCEDURE Toggle*;
DESCRIPTION
(no description)
PROCEDURE GetPos*():LONGINT;
DESCRIPTION
Returns the position in the list, starting with 1. If the entry is not in the list (each entry store directly a pointer to its corresponding ListModel) it returns -1.
NOTE
This is an exspensive operation. The mehtods goes through the list of elements until it finds the entry. If you want to now the position of more than one entry, goes through the list once and count yourself.
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)

5.89.2 SimplEntryDesc

CLASSNAME
SimplEntryDesc*
BASECLASS
ListEntryDesc
POINTER
SimplEntry
DESCIPTION
(no description)
METHODS
PROCEDURE SetObject*(object : VOGUIObject.Object);
DESCRIPTION
(no description)
PROCEDURE GetObject*(pos : LONGINT):VOGUIObject.Object;
DESCRIPTION
(no description)
PROCEDURE CalcSize*(display : VODisplay.Display);
DESCRIPTION
(no description)

5.89.3 TextEntryDesc

CLASSNAME
TextEntryDesc*
BASECLASS
SimplEntryDesc
POINTER
TextEntry
DESCIPTION
(no description)

5.89.4 ListModelDesc

CLASSNAME
ListModelDesc*
BASECLASS
O.ModelDesc
POINTER
ListModel
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Append*(entry : ListEntry);
DESCRIPTION
(no description)
PROCEDURE Delete*(entry : ListEntry);
DESCRIPTION
(no description)
PROCEDURE Clear*;
DESCRIPTION
(no description)
PROCEDURE Get*(pos : LONGINT):ListEntry;
DESCRIPTION
(no description)
PROCEDURE GetSelected*():ListEntry;
DESCRIPTION
(no description)
PROCEDURE Select*(pos : LONGINT);
DESCRIPTION
Selects the given entry.
PROCEDURE Deselect*(pos : LONGINT);
DESCRIPTION
Deselects the given entry.
PROCEDURE Toggle*(pos : LONGINT);
DESCRIPTION
Toggles he selection of the given entry.

5.89.5 EntryChgdMsgDesc

CLASSNAME
EntryChgdMsgDesc*
BASECLASS
O.ResyncMsgDesc
POINTER
EntryChgdMsg
DESCIPTION
(no description)

5.90 VORealModel.Mod

MODULENAME
VORealModel
DESCRIPTION
A model for floating point numbers.
IMPORTS

5.90.1 RealModelDesc

CLASSNAME
RealModelDesc*
BASECLASS
O.ModelDesc
POINTER
RealModel
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(value : LONGREAL);
DESCRIPTION
(no description)
PROCEDURE ForceSet*(value : LONGREAL);
DESCRIPTION
(no description)
PROCEDURE Inc*;
DESCRIPTION
(no description)
PROCEDURE Dec*;
DESCRIPTION
(no description)
PROCEDURE Add*(value : LONGREAL);
DESCRIPTION
(no description)
PROCEDURE Sub*(value : LONGREAL);
DESCRIPTION
(no description)
PROCEDURE Mul*(value : LONGREAL);
DESCRIPTION
(no description)
PROCEDURE Div*(value : LONGREAL);
DESCRIPTION
(no description)

5.91 VOStringModel.Mod

MODULENAME
VOStringModel
DESCRIPTION
A model for strings.
IMPORTS

5.91.1 StringModelDesc

CLASSNAME
StringModelDesc*
BASECLASS
O.ModelDesc
POINTER
StringModel
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE Set*(string : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE Delete*(startPos, count : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Insert*(source : ARRAY OF CHAR; startPos : LONGINT);
DESCRIPTION
(no description)
PROCEDURE GetCopy*(VAR string : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE GetString*():VOUtil.Text;
DESCRIPTION
(no description)

5.92 VOTableModel.Mod

MODULENAME
VOTableModel
DESCRIPTION
A model for table-like data. This is an abstract baseclass. It just defines an interface which must be implemented by derived models. A database modl f.e. would directly work on the result set. Other model may work on lists as internal datarepresentation. These models may implement additional methods for direct access or for adding and removing lines or data.
IMPORTS

5.92.1 TableModelDesc

CLASSNAME
TableModelDesc*
BASECLASS
O.ModelDesc
POINTER
TableModel
DESCIPTION
Abstract baseclass for all table models. Its purpose is, to define an common interface for all tablemodels. The table object itself will only talk with the model through this interface.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE GetColumns*():LONGINT;
DESCRIPTION
(no description)
PROCEDURE GetColumnWidth*(index : LONGINT):LONGINT;
DESCRIPTION
(no description)
PROCEDURE GetRows*():LONGINT;
DESCRIPTION
(no description)
PROCEDURE GetText*(x,y : LONGINT):VOUtil.Text;
DESCRIPTION
(no description)

5.92.2 ASTableModelDesc

CLASSNAME
ASTableModelDesc*
BASECLASS
TableModelDesc
POINTER
ASTableModel
DESCIPTION
This implementation stores the value internally as a two dimentional (a)rray of (s) strings.
METHODS
PROCEDURE SetSize*(width,height : LONGINT);
DESCRIPTION
Set the size of the table in rows and columns. Currently all previous stored texts are lost. This may change in the future.
NOTE
We make the internally used array one greater in width and height to store possible additional information. Currently the first row is used to store the column header texts.
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE GetColumns*():LONGINT;
DESCRIPTION
(no description)
PROCEDURE GetColumnWidth*(index : LONGINT):LONGINT;
DESCRIPTION
(no description)
PROCEDURE SetColumnWidth*(index,width : LONGINT);
DESCRIPTION
(no description)
PROCEDURE SetColumnText*(index : LONGINT; text : VOUtil.Text);
DESCRIPTION
(no description)
PROCEDURE SetColumnString*(index : LONGINT; string : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE GetRows*():LONGINT;
DESCRIPTION
(no description)
PROCEDURE SetText*(x,y : LONGINT; text : VOUtil.Text);
DESCRIPTION
(no description)
PROCEDURE SetString*(x,y : LONGINT; string : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE GetText*(x,y : LONGINT):VOUtil.Text;
DESCRIPTION
(no description)

5.92.3 TestModelDesc

CLASSNAME
TestModelDesc*
BASECLASS
TableModelDesc
POINTER
TestTable
DESCIPTION
A simple model implementation, just for testing purpose.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE GetColumns*():LONGINT;
DESCRIPTION
(no description)
PROCEDURE GetColumnWidth*(index : LONGINT):LONGINT;
DESCRIPTION
(no description)
PROCEDURE GetRows*():LONGINT;
DESCRIPTION
(no description)
PROCEDURE GetText*(x,y : LONGINT):VOUtil.Text;
DESCRIPTION
(no description)

5.92.4 RefreshCellDesc

CLASSNAME
RefreshCellDesc*
BASECLASS
O.ResyncMsgDesc
POINTER
RefreshCell
DESCIPTION
(no description)

5.93 VOTextViewModel.Mod

MODULENAME
VOTextViewModel
DESCRIPTION
An abstract model for readonly multiline text.
IMPORTS

5.93.1 ReaderDesc

CLASSNAME
ReaderDesc*
BASECLASS
(no base)
POINTER
Reader
DESCIPTION
A reader for the textmodel.
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE IsValid*():BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Assign*(reader : Reader);
DESCRIPTION
(no description)
PROCEDURE Position*(line : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Forward*(lines : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Backward*(lines : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Next*;
DESCRIPTION
(no description)
PROCEDURE Last*;
DESCRIPTION
(no description)
PROCEDURE GetLine*(VAR line : LineDesc);
DESCRIPTION
(no description)

5.93.2 TextModelDesc

CLASSNAME
TextModelDesc*
BASECLASS
O.ModelDesc
POINTER
TextModel
DESCIPTION
The textmodel baseclass.
METHODS
PROCEDURE ResyncMsg;
DESCRIPTION
(no description)
PROCEDURE ResizeMsg;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE GetReader*():Reader;
DESCRIPTION
(no description)

5.93.3 LineDesc

CLASSNAME
LineDesc*
BASECLASS
(no base)
POINTER
Line
DESCIPTION
(no description)

5.93.4 ReloadMsgDesc

CLASSNAME
ReloadMsgDesc*
BASECLASS
O.ResyncMsgDesc
POINTER
ReloadMsg
DESCIPTION
(no description)

5.93.5 ListTextModelDesc

CLASSNAME
ListTextModelDesc*
BASECLASS
TextModelDesc
POINTER
ListTextModel
DESCIPTION
(no description)
METHODS
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE GetReader*():Reader;
DESCRIPTION
(no description)
PROCEDURE Clear*;
DESCRIPTION
(no description)
PROCEDURE AddText*(text : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE AddLn*;
DESCRIPTION
(no description)
PROCEDURE AddLine*(text : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE RemoveLastLine*;
DESCRIPTION
(no description)
PROCEDURE LoadFromChannel*(channel : Channel.Channel):BOOLEAN;
DESCRIPTION
(no description)

5.93.6 ListReaderDesc

CLASSNAME
ListReaderDesc*
BASECLASS
ReaderDesc
POINTER
ListReader
DESCIPTION
(no description)
METHODS
PROCEDURE Attach;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE IsValid*():BOOLEAN;
DESCRIPTION
(no description)
PROCEDURE Assign*(reader : Reader);
DESCRIPTION
(no description)
PROCEDURE Position*(line : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Forward*(lines : LONGINT);
DESCRIPTION
(no description)
PROCEDURE Backward*(lines : LONGINT);
DESCRIPTION
(no description)
PROCEDURE GetLine*(VAR line : LineDesc);
DESCRIPTION
(no description)

5.94 VOTreeModel.Mod

MODULENAME
VOTreeModel
DESCRIPTION
A model for tree-like data structures.
IMPORTS
FUNCTIONS
PROCEDURE CreateTextItem*(model : TreeModel; text : ARRAY OF CHAR):TextItem;
DESCRIPTION
(no description)

5.94.1 TreeItemDesc

CLASSNAME
TreeItemDesc*
BASECLASS
(no base)
POINTER
TreeItem
DESCIPTION
(no description)
METHODS
PROCEDURE UpdateChildCount(count : LONGINT);
DESCRIPTION
(no description)
PROCEDURE RecalcVisible;
DESCRIPTION
(no description)
PROCEDURE Init*(model : TreeModel);
DESCRIPTION
Initialize the treeitem
PROCEDURE GetText*():VOUtil.Text;
DESCRIPTION
Return the text belonging to the treeitem. It is allowed to return NIL. This method always returns NIL. You have to derive from TreeItem and implement this method. This way you can influence the way the item stores the text.
PROCEDURE AddChild*(item : TreeItem);
DESCRIPTION
Append a new child to the list of existing childs of the current item.
PROCEDURE InsertAfter*(item : TreeItem);
DESCRIPTION
PROCEDURE ShowChilds*;
DESCRIPTION
Show the childs of this item.
PROCEDURE HideChilds*;
DESCRIPTION
Hide the childs of this item.
PROCEDURE HasChilds*():BOOLEAN;
DESCRIPTION
returns TRUE if the item has childs.
PROCEDURE IsVisible*():BOOLEAN;
DESCRIPTION
Return TRUE, if the item is currently visible. This routine is possibly expensive, since it walks up in the tree to check if all parents are visible.
PROCEDURE VisibleParent*():TreeItem;
DESCRIPTION
Return the next visible parent or the object itself, if it is visible. As isVisible this method is rather expensive.
PROCEDURE Last*():TreeItem;
DESCRIPTION
Returns the last visible entry. It is current exspected that the current item is already visible.
PROCEDURE Next*():TreeItem;
DESCRIPTION
Returns the next visible entry. It is current exspected that the current item is already visible.

5.94.2 TextItemDesc

CLASSNAME
TextItemDesc*
BASECLASS
TreeItemDesc
POINTER
TextItem
DESCIPTION
(no description)
METHODS
PROCEDURE Init*(model : TreeModel);
DESCRIPTION
(no description)
PROCEDURE SetText*(text : ARRAY OF CHAR);
DESCRIPTION
(no description)
PROCEDURE GetText*():VOUtil.Text;
DESCRIPTION
(no description)

5.94.3 TreeModelDesc

CLASSNAME
TreeModelDesc*
BASECLASS
O.ModelDesc
POINTER
TreeModel
DESCIPTION
(no description)
METHODS
PROCEDURE RecalcVisible;
DESCRIPTION
(no description)
PROCEDURE Init*;
DESCRIPTION
(no description)
PROCEDURE SetTop*(item : TreeItem);
DESCRIPTION
(no description)
PROCEDURE GetVisibleItem*(pos : LONGINT; VAR indent : LONGINT):TreeItem;
DESCRIPTION
(no description)

5.94.4 ItemSwitchedMsgDesc

CLASSNAME
ItemSwitchedMsgDesc*
BASECLASS
O.ResyncMsgDesc
POINTER
ItemSwitchedMsg
DESCIPTION
(no description)

5.95 VOIntStrPipe.Mod

MODULENAME
VOIntStrPipe
DESCRIPTION
Piping of data between different integer and string models.
IMPORTS

5.95.1 IntStrPipeDesc

CLASSNAME
IntStrPipeDesc*
BASECLASS
VOPipe.PipeDesc
POINTER
IntStrPipe
DESCIPTION
(no description)
METHODS
PROCEDURE int2str();
DESCRIPTION
(no description)
PROCEDURE str2int();
DESCRIPTION
(no description)
PROCEDURE Init*();
DESCRIPTION
(no description)
PROCEDURE Lock*(model: VOObject.Model);
DESCRIPTION
(no description)
PROCEDURE Unlock*(model: VOObject.Model);
DESCRIPTION
(no description)
PROCEDURE SetIntModel*(new: VOIntModel.IntModel);
DESCRIPTION
(no description)
PROCEDURE SetStringModel*(new: VOStringModel.StringModel);
DESCRIPTION
(no description)
PROCEDURE Resync*(model: VOObject.Model; msg: VOObject.ResyncMsg);
DESCRIPTION
(no description)
PROCEDURE Unlink*();
DESCRIPTION
(no description)

5.96 VOPipe.Mod

MODULENAME
VOPipe
DESCRIPTION
Piping of data between different models.
IMPORTS

5.96.1 PipeDesc

CLASSNAME
PipeDesc*
BASECLASS
VOObject.MsgObjectDesc
POINTER
Pipe
DESCIPTION
(no description)
METHODS
PROCEDURE Init*();
DESCRIPTION
(no description)
PROCEDURE Lock*(model: VOObject.Model);
DESCRIPTION
(no description)
PROCEDURE Unlock*(model: VOObject.Model);
DESCRIPTION
(no description)
PROCEDURE Unlink*();
DESCRIPTION
(no description)

5.97 VORealStrPipe.Mod

MODULENAME
VORealStrPipe
DESCRIPTION
Piping of data between real and string models.
IMPORTS

5.97.1 RealStrPipeDesc

CLASSNAME
RealStrPipeDesc*
BASECLASS
VOPipe.PipeDesc
POINTER
RealStrPipe
DESCIPTION
(no description)
METHODS
PROCEDURE real2str();
DESCRIPTION
(no description)
PROCEDURE str2real();
DESCRIPTION
(no description)
PROCEDURE Init*();
DESCRIPTION
(no description)
PROCEDURE Lock*(model: VOObject.Model);
DESCRIPTION
(no description)
PROCEDURE Unlock*(model: VOObject.Model);
DESCRIPTION
(no description)
PROCEDURE SetRealModel*(new: VORealModel.RealModel);
DESCRIPTION
(no description)
PROCEDURE SetStringModel*(new: VOStringModel.StringModel);
DESCRIPTION
(no description)
PROCEDURE Resync*(model: VOObject.Model; msg: VOObject.ResyncMsg);
DESCRIPTION
(no description)
PROCEDURE Unlink*();
DESCRIPTION
(no description)

5.98 Imlib.Mod

MODULENAME
Imlib
DESCRIPTION
(no description)
IMPORTS
FUNCTIONS
PROCEDURE Imlibinit*(disp : X11.DisplayPtr):DataPtr;
DESCRIPTION
(no description)
PROCEDURE Imlibload_image*(id : DataPtr; file : ARRAY OF CHAR):ImagePtr;
DESCRIPTION
(no description)
PROCEDURE Imlibrender*(id : DataPtr; image : ImagePtr; width,height : C.int):C.int;
DESCRIPTION
(no description)
PROCEDURE Imlibcopy_image*(id : DataPtr; image : ImagePtr):X11.Pixmap;
DESCRIPTION
(no description)
PROCEDURE Imlibcopy_mask*(id : DataPtr; image : ImagePtr):X11.Pixmap;
DESCRIPTION
(no description)
PROCEDURE Imlibmove_image*(id : DataPtr; image : ImagePtr):X11.Pixmap;
DESCRIPTION
(no description)
PROCEDURE Imlibmove_mask*(id : DataPtr; image : ImagePtr):X11.Pixmap;
DESCRIPTION
(no description)
PROCEDURE Imlibdestroy_image*(id : DataPtr; image : ImagePtr);
DESCRIPTION
(no description)
PROCEDURE Imlibkill_image*(id : DataPtr; image : ImagePtr);
DESCRIPTION
(no description)
PROCEDURE Imlibfree_colors*(id : DataPtr);
DESCRIPTION
(no description)
PROCEDURE Imlibfree_pixmap*(id : DataPtr; pixmap: X11.Pixmap);
DESCRIPTION
(no description)
PROCEDURE Imlibset_image_shape*(id : DataPtr; image : ImagePtr; VAR color : Color);
DESCRIPTION
(no description)

5.98.1 Border

CLASSNAME
Border*
BASECLASS
(no base)
POINTER
BorderPtr
DESCIPTION
(no description)

5.98.2 Color

CLASSNAME
Color*
BASECLASS
(no base)
POINTER
ColorPtr
DESCIPTION
(no description)

5.98.3 ColorModifier

CLASSNAME
ColorModifier*
BASECLASS
(no base)
POINTER
ColorModifierPtr
DESCIPTION
(no description)

5.98.4 Image

CLASSNAME
Image*
BASECLASS
(no base)
POINTER
ImagePtr
DESCIPTION
(no description)

5.98.5 ImageCache

CLASSNAME
ImageCache*
BASECLASS
(no base)
POINTER
ImageCachePtr
DESCIPTION
(no description)

5.98.6 PixmapCache

CLASSNAME
PixmapCache*
BASECLASS
(no base)
POINTER
PixmapCachePtr
DESCIPTION
(no description)

5.98.7 Xdata

CLASSNAME
Xdata*
BASECLASS
(no base)
POINTER
XdataPtr
DESCIPTION
(no description)

5.98.8 Data

CLASSNAME
Data*
BASECLASS
(no base)
POINTER
DataPtr
DESCIPTION
(no description)

5.99 Motif.Mod

MODULENAME
Motif
DESCRIPTION
Interface to some motif defines and structs.

5.99.1 XmDndReceiverProp

CLASSNAME
XmDndReceiverProp*
BASECLASS
(no base)
POINTER
(no pointer)
DESCIPTION
(no description)

5.99.2 XmDndInitiatorProp

CLASSNAME
XmDndInitiatorProp*
BASECLASS
(no base)
POINTER
(no pointer)
DESCIPTION
(no description)

5.100 MotifM.Mod

MODULENAME
MotifM
DESCRIPTION
Some motif macros.
FUNCTIONS
PROCEDURE GetEventType*(flag : CHAR):INTEGER;
DESCRIPTION
(no description)
PROCEDURE GetMsgType*(flag : CHAR):INTEGER;
DESCRIPTION
(no description)
PROCEDURE GetOperation*(flag : INTEGER):INTEGER;
DESCRIPTION
(no description)
PROCEDURE GetStatus*(flag : INTEGER):INTEGER;
DESCRIPTION
(no description)
PROCEDURE GetOperations*(flag : INTEGER):INTEGER;
DESCRIPTION
(no description)
PROCEDURE GetCompletition*(flag : INTEGER):INTEGER;
DESCRIPTION
(no description)
PROCEDURE SetEventType*(VAR flag : CHAR; value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE SetOperation*(VAR flag : INTEGER; value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE SetStatus*(VAR flag: INTEGER; value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE SetOperations*(VAR flag: INTEGER; value : LONGINT);
DESCRIPTION
(no description)
PROCEDURE SetCompletition*(VAR flag: INTEGER; value : LONGINT);
DESCRIPTION
(no description)

5.101 VOLLFor.Mod

MODULENAME
VOLLFor
DESCRIPTION
Interface to some functions of the underlying UNIX system.
NOTE
This is currently a first implementation to acess directories based on the existance of dirent.h. This module may not compile on all plattforms!
IMPORTS
FUNCTIONS
PROCEDURE GetDirName*(directory : VOLLInt.direntPtr):C.charPtr1d;
DESCRIPTION
(no description)

5.102 VOLLInt.Mod

MODULENAME
VOLLInt
DESCRIPTION
Interface to some functions of the underlying UNIX system.
IMPORTS
FUNCTIONS
PROCEDURE select*(n : C.int; readfds, writefds, exceptfds : fd_setPtr; VAR timeval : timeval):C.int;
DESCRIPTION
(no description)
PROCEDURE opendir*(name : ARRAY OF CHAR):DIRPtr;
DESCRIPTION
(no description)
PROCEDURE closedir*(directory : DIRPtr);
DESCRIPTION
(no description)
PROCEDURE readdir*(directory : DIRPtr):direntPtr;
DESCRIPTION
(no description)

5.102.1 timeval

CLASSNAME
timeval*
BASECLASS
(no base)
POINTER
(no pointer)
DESCIPTION
(no description)

5.102.2 DIR

CLASSNAME
DIR*
BASECLASS
(no base)
POINTER
DIRPtr
DESCIPTION
(no description)

5.102.3 dirent

CLASSNAME
dirent*
BASECLASS
(no base)
POINTER
direntPtr
DESCIPTION
(no description)

5.103 VOLLMac.Mod

MODULENAME
VOLLMac
DESCRIPTION
Some macros for the lowlevel-stuff defined in `VOLLInt.Mod'
IMPORTS
FUNCTIONS
PROCEDURE FDCLR*(fd : C.int; VAR set : VOLLInt.fd_set);
DESCRIPTION
Deletes fd from set.
PROCEDURE FDISSET*(fd : C.int; VAR set : VOLLInt.fd_set):BOOLEAN;
DESCRIPTION
Checks if fd is included in set.
PROCEDURE FDSET*(fd : C.int; VAR set : VOLLInt.fd_set);
DESCRIPTION
Sets fd in set.
PROCEDURE FDZERO*(VAR set : VOLLInt.fd_set);
DESCRIPTION
Clears set out.

5.104 xpm.Mod

MODULENAME
xpm
DESCRIPTION
(no description)
IMPORTS
FUNCTIONS
PROCEDURE XpmCreatePixmapFromData*(display : X11.DisplayPtr; d : X11.Drawable; data : C.charPtr2d; VAR pixmap : X11.Pixmap; VAR shapemask_return : X11.Pixmap; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateDataFromPixmap*(display : X11.DisplayPtr; VAR data_return : C.charPtr2d; pixmap : X11.Pixmap; shapemask : X11.Pixmap; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmReadFileToPixmap*(display : X11.DisplayPtr; d : X11.Drawable; filename : ARRAY OF CHAR; VAR pixmap : X11.Pixmap; VAR shapemask_return : X11.Pixmap; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmWriteFileFromPixmap*(display : X11.DisplayPtr; filename : ARRAY OF CHAR; pixmap : X11.Pixmap; shapemask : X11.Pixmap; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateImageFromData*(display : X11.DisplayPtr; data : C.charPtr2d; VAR image_return : X11.XImagePtr; VAR hapemask_return : X11.XImagePtr; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateDataFromImage*(display : X11.DisplayPtr; VAR data_return : C.charPtr2d; image : X11.XImagePtr; shapeimage : X11.XImagePtr; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmReadFileToImage*(display : X11.DisplayPtr; filename : ARRAY OF CHAR; VAR image_return : X11.XImagePtr; VAR shapeimage_return : X11.XImagePtr; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmWriteFileFromImage*(display : X11.DisplayPtr; filename : ARRAY OF CHAR; image : X11.XImagePtr; shapeimage : X11.XImagePtr; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateImageFromBuffer*(display : X11.DisplayPtr; buffer : ARRAY OF CHAR; VAR image_return : X11.XImagePtr; VAR shapemask_return : X11.XImagePtr; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreatePixmapFromBuffer*(display : X11.DisplayPtr; d : X11.Drawable; buffer : ARRAY OF CHAR; VAR pixmap : X11.Pixmap; VAR shapemask_return : X11.Pixmap; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateBufferFromImage*(display : X11.DisplayPtr; VAR buffer_return : C.charPtr1d; image : X11.XImagePtr; shapeimage : X11.XImagePtr; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateBufferFromPixmap*(display : X11.DisplayPtr; VAR buffer_return : C.charPtr1d; pixmap : X11.Pixmap; shapemask : X11.Pixmap; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmReadFileToBuffer*(filename : ARRAY OF CHAR; VAR buffer_return : C.charPtr1d):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmWriteFileFromBuffer*(filename : ARRAY OF CHAR; buffer : ARRAY OF CHAR):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmReadFileToData*(filename : ARRAY OF CHAR; VAR data_return : C.charPtr2d):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmWriteFileFromData*(filename : ARRAY OF CHAR; data : C.charPtr2d):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmAttributesSize*():C.int;
DESCRIPTION
(no description)
PROCEDURE XpmFreeAttributes*(attributes : XpmAttributesPtr);
DESCRIPTION
(no description)
PROCEDURE XpmFreeExtensions*(extensions : XpmExtensionPtr; nextensions : C.int);
DESCRIPTION
(no description)
PROCEDURE XpmFreeXpmImage*(image : XpmImagePtr);
DESCRIPTION
(no description)
PROCEDURE XpmFreeXpmInfo*(info : XpmInfoPtr);
DESCRIPTION
(no description)
PROCEDURE XpmGetErrorString*(errcode : C.int):C.charPtr1d;
DESCRIPTION
(no description)
PROCEDURE XpmLibraryVersion*():C.int;
DESCRIPTION
(no description)
PROCEDURE XpmReadFileToXpmImage*(filename : ARRAY OF CHAR; image : XpmImagePtr; info : XpmInfoPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmWriteFileFromXpmImage*(filename : ARRAY OF CHAR; image : XpmImagePtr; info : XpmInfoPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreatePixmapFromXpmImage*(display : X11.DisplayPtr; d : X11.Drawable; image : XpmImagePtr; VAR pixmap : X11.Pixmap; VAR shapemask_return : X11.Pixmap; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateImageFromXpmImage*(display : X11.DisplayPtr; image : XpmImagePtr; VAR image_return : X11.XImagePtr; VAR shapeimage_return : X11.XImagePtr; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateXpmImageFromImage*(display : X11.DisplayPtr; image : X11.XImagePtr; shapeimage : X11.XImagePtr; xpmimage : XpmImagePtr; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateXpmImageFromPixmap*(display : X11.DisplayPtr; pixmap : X11.Pixmap; shapemask : X11.Pixmap; xpmimage : XpmImagePtr; attributes : XpmAttributesPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateDataFromXpmImage*(VAR data_return : C.charPtr2d; image : XpmImagePtr; info : XpmInfoPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateXpmImageFromData*(data : C.charPtr2d; image : XpmImagePtr; info : XpmInfoPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateXpmImageFromBuffer*(buffer : ARRAY OF CHAR; image : XpmImagePtr; info : XpmInfoPtr):C.int;
DESCRIPTION
(no description)
PROCEDURE XpmCreateBufferFromXpmImage*(VAR buffer_return : C.charPtr1d; image : XpmImagePtr; info : XpmInfoPtr):C.int;
DESCRIPTION
(no description)

5.104.1 XpmColorSymbol

CLASSNAME
XpmColorSymbol*
BASECLASS
(no base)
POINTER
XpmColorSymbolPtr
DESCIPTION
(no description)

5.104.2 XpmExtension

CLASSNAME
XpmExtension*
BASECLASS
(no base)
POINTER
XpmExtensionPtr
DESCIPTION
(no description)

5.104.3 XpmColor

CLASSNAME
XpmColor*
BASECLASS
(no base)
POINTER
XpmColorPtr
DESCIPTION
(no description)

5.104.4 XpmImage

CLASSNAME
XpmImage*
BASECLASS
(no base)
POINTER
XpmImagePtr
DESCIPTION
(no description)

5.104.5 XpmInfo

CLASSNAME
XpmInfo*
BASECLASS
(no base)
POINTER
XpmInfoPtr
DESCIPTION
(no description)

5.104.6 XpmAttributes

CLASSNAME
XpmAttributes*
BASECLASS
(no base)
POINTER
XpmAttributesPtr
DESCIPTION
(no description)

section 5.19 VODisplay.Mod.

6 Index of all modules

a

  • AsciiTable
  • c

  • Clock
  • d

  • DigiClock
  • DiskSize
  • Doom
  • f

  • FontList
  • h

  • HelloWorld
  • i

  • Imlib
  • m

  • Motif
  • MotifM
  • p

  • PipeTest
  • PlotTest
  • s

  • StringTest
  • t

  • TestTable
  • TestTree
  • TextView
  • v

  • VisualPrefs
  • VisualShow
  • VOArray
  • VOBackground
  • VOBool
  • VOBoolModel
  • VOButton
  • VOButtonRow
  • VOClock
  • VOColorArea
  • VOColSelDlg
  • VOCycle
  • VODataStreamModel
  • VODigiClock
  • VODisplay
  • VODoom
  • VODragDrop
  • VOEvent
  • VOFrame
  • VOFrameGroup
  • VOFrmSelDlg
  • VOFuelGauge
  • VOFunctionModel
  • VOGUIObject
  • VOImage
  • VOImgSelDlg
  • VOIntModel
  • VOIntStrPipe
  • VOKeyHandler
  • VOLabel
  • VOLED
  • VOLightChain
  • VOLine
  • VOList
  • VOListModel
  • VOLLFor
  • VOLLInt
  • VOLLMac
  • VOLoad
  • VOMenu
  • VOMsgDialog
  • VOMulti
  • VOObject
  • VOOOCP
  • VOOszil
  • VOPane
  • VOPanel
  • VOPatternLegend
  • VOPieChart
  • VOPipe
  • VOPlate
  • VOPlot
  • VOPopup
  • VOPower
  • VOPrefs
  • VOPrefsGUI
  • VOPrefsParser
  • VOPrefsScanner
  • VOQuickHelp
  • VORadio
  • VORealModel
  • VORealStrPipe
  • VOScale
  • VOScroller
  • VOSegment
  • VOSegment7
  • VOSlider
  • VOSpace
  • VOStatusLine
  • VOString
  • VOStringClock
  • VOStringModel
  • VOTab
  • VOTable
  • VOTableModel
  • VOText
  • VOTextView
  • VOTextViewModel
  • VOToolbar
  • VOTree
  • VOTreeModel
  • VOUtil
  • VOVecImage
  • VOWindow
  • VOWireFrame
  • VOXpmImage
  • x

  • xpm
  • XTest
  • 7 Index of all classes

    a

  • Action
  • ActionDesc
  • Array
  • ArrayDesc
  • ASTableModel
  • ASTableModelDesc
  • b

  • Background
  • BackgroundDesc
  • Bitmap
  • BitmapDesc
  • BlockItem
  • BlockItemDesc
  • Bool
  • BoolDesc
  • BoolModel
  • BoolModelDesc
  • Border
  • BorderPtr
  • Button
  • ButtonDesc
  • ButtonRow
  • ButtonRowDesc
  • c

  • ChangedMsg
  • ChangedMsgDesc
  • ChannelMsg
  • ChannelMsgDesc
  • ClickedMsg, ClickedMsg
  • ClickedMsgDesc, ClickedMsgDesc
  • Clock
  • ClockDesc
  • CloseMsg, CloseMsg, CloseMsg
  • CloseMsgDesc, CloseMsgDesc, CloseMsgDesc
  • Color
  • ColorArea
  • ColorAreaDesc
  • ColorEntry
  • ColorEntryDesc
  • ColorModifier
  • ColorModifierPtr
  • ColorPtr
  • ColSelDlg
  • ColSelDlgDesc
  • Configuration concepts
  • Cycle
  • CycleDesc
  • d

  • Data
  • DataPtr
  • DeleteMsg
  • DeleteMsgDesc
  • DigiClock
  • DigiClockDesc
  • DIR
  • dirent
  • direntPtr
  • DIRPtr
  • Display, Display
  • Display configuration
  • DisplayDesc, DisplayDesc
  • DisplayPrefs
  • DisplayPrefsDesc
  • DnDData
  • DnDDataDesc
  • DnDDataInfo
  • DnDDataInfoDesc
  • DnDDataInfoEntryDesc
  • DnDStringData
  • DnDStringDataDesc
  • Doom
  • DoomDesc
  • DrawInfo
  • DrawInfoDesc, DrawInfoDesc
  • e

  • EnteredMsg
  • EnteredMsgDesc
  • EntryChgdMsg
  • EntryChgdMsgDesc
  • EscapeMsg
  • EscapeMsgDesc
  • Event
  • EventDesc
  • ExitMsg
  • ExitMsgDesc
  • f

  • Font
  • FontDesc
  • FontExtentDesc
  • Frame
  • FrameDesc
  • FrameGroup
  • FrameGroupDesc
  • FrmSelDlg
  • FrmSelDlgDesc
  • FuelGauge
  • FuelGaugeDesc
  • FunctionLRealModel
  • FunctionLRealModelDesc
  • g

  • Gadget
  • GadgetDesc
  • Group
  • GroupDesc
  • h

  • Handler
  • HandlerDesc
  • Help
  • HelpDesc
  • i

  • Image, Image, Image
  • ImageBackground
  • ImageBackgroundDesc
  • ImageCache
  • ImageCachePtr
  • ImageDesc, ImageDesc
  • ImagePtr
  • ImgSelDlg
  • ImgSelDlgDesc
  • IntModel
  • IntModelDesc
  • IntStrPipe
  • IntStrPipeDesc
  • Item
  • ItemDesc
  • ItemSwitchedMsg
  • ItemSwitchedMsgDesc
  • k

  • KeyEvent
  • KeyEventDesc
  • KeyHandler
  • KeyHandlerDesc
  • l

  • Label, Label
  • LabelClickedMsg
  • LabelClickedMsgDesc
  • LabelDesc, LabelDesc
  • LED
  • LEDDesc
  • LightChain
  • LightChainDesc
  • Line, Line
  • LineDesc, LineDesc
  • List
  • ListDesc
  • ListEntry
  • ListEntryDesc
  • ListModel
  • ListModelDesc
  • ListReader
  • ListReaderDesc
  • ListTextModel
  • ListTextModelDesc
  • Load
  • LoadDesc
  • m

  • Menu
  • MenuDesc
  • MenuStrip
  • MenuStripDesc
  • Message
  • MessageDesc
  • Model
  • ModelDesc
  • MotionEvent
  • MotionEventDesc
  • MouseEvent
  • MouseEventDesc
  • MovedMsg
  • MovedMsgDesc
  • Msg2Close, Msg2Close
  • Msg2CloseDesc, Msg2CloseDesc
  • Msg2Delete
  • Msg2DeleteDesc
  • Msg2Exit
  • Msg2ExitDesc
  • Msg2Open, Msg2Open
  • Msg2OpenDesc, Msg2OpenDesc
  • MsgDialog
  • MsgDialogDesc
  • MsgObject
  • MsgObjectDesc
  • Multi
  • MultiDesc
  • n

  • Notify
  • NotifyDesc
  • o

  • Object, Object, Object
  • ObjectDesc, ObjectDesc, ObjectDesc
  • OpenMsg, OpenMsg
  • OpenMsgDesc, OpenMsgDesc
  • Oszil
  • OszilDesc
  • p

  • Pane
  • PaneDesc
  • Panel
  • PanelDesc
  • PatternLegend
  • PatternLegendDesc
  • PieChart
  • PieChartDesc
  • Pipe
  • PipeDesc
  • PixmapCache
  • PixmapCachePtr
  • Plate
  • PlateDesc
  • Popup
  • PopupDesc
  • Power
  • PowerDesc
  • Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs, Prefs
  • PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc, PrefsDesc
  • PrefsItem
  • PrefsItemDesc
  • PressedMsg
  • PressedMsgDesc
  • r

  • Radio
  • RadioDesc
  • Reader
  • ReaderDesc
  • RealModel
  • RealModelDesc
  • RealStrPipe
  • RealStrPipeDesc
  • RefreshCell
  • RefreshCellDesc
  • ReloadMsg
  • ReloadMsgDesc
  • ResyncMsg
  • ResyncMsgDesc
  • s

  • Scale
  • ScaleDesc
  • Scroller
  • ScrollerDesc
  • Segment
  • Segment7
  • Segment7Desc
  • SegmentDesc
  • Sel2Set
  • Sel2SetDesc
  • SelectedMsg, SelectedMsg, SelectedMsg, SelectedMsg
  • SelectedMsgDesc, SelectedMsgDesc, SelectedMsgDesc, SelectedMsgDesc
  • SetMsg, SetMsg, SetMsg, SetMsg
  • SetMsgDesc, SetMsgDesc, SetMsgDesc, SetMsgDesc
  • Settings
  • SettingsDesc
  • ShortcutEntry
  • ShortcutEntryDesc
  • SimplEntry
  • SimplEntryDesc
  • SinModel
  • SinModelDesc
  • SleepMsg
  • SleepMsgDesc
  • Slider
  • SliderDesc
  • Space
  • SpaceDesc
  • StatusLine
  • StatusLineDesc
  • StreamLongModel
  • StreamLongModelDesc
  • String
  • StringClock
  • StringClockDesc
  • StringDesc
  • StringModel
  • StringModelDesc
  • t

  • Tab
  • TabDesc
  • Table
  • TableDesc
  • TableModel
  • TableModelDesc
  • TestModelDesc
  • TestTable
  • Text
  • TextDesc
  • TextEntry
  • TextEntryDesc
  • TextItem
  • TextItemDesc
  • TextModel
  • TextModelDesc
  • TextView
  • TextViewDesc
  • TileBackground
  • TileBackgroundDesc
  • TimeOutMsg
  • TimeOutMsgDesc
  • timeval
  • Toolbar
  • ToolbarDesc
  • Tree
  • TreeDesc
  • TreeItem
  • TreeItemDesc
  • TreeModel
  • TreeModelDesc
  • v

  • ValueItem
  • ValueItemDesc
  • VecImage
  • VecImageDesc
  • w

  • Window, Window
  • WindowDesc, WindowDesc
  • WireFrame
  • WireFrameDesc
  • x

  • Xdata
  • XdataPtr
  • XmDndInitiatorProp
  • XmDndReceiverProp
  • XpmAttributes
  • XpmAttributesPtr
  • XpmColor
  • XpmColorPtr
  • XpmColorSymbol
  • XpmColorSymbolPtr
  • XpmExtension
  • XpmExtensionPtr
  • XpmImage, XpmImage
  • XpmImageDesc
  • XpmImagePtr
  • XpmInfo
  • XpmInfoPtr
  • 8 Index of functions and methods

    a

  • ArrayDesc.CalcSize
  • ArrayDesc.Draw
  • ArrayDesc.Hide
  • ArrayDesc.Init
  • ArrayDesc.Set
  • ArrayDesc.SetSpace
  • ASTableModelDesc.GetColumns
  • ASTableModelDesc.GetColumnWidth
  • ASTableModelDesc.GetRows
  • ASTableModelDesc.GetText
  • ASTableModelDesc.Init
  • ASTableModelDesc.SetColumnString
  • ASTableModelDesc.SetColumnText
  • ASTableModelDesc.SetColumnWidth
  • ASTableModelDesc.SetSize
  • ASTableModelDesc.SetString
  • ASTableModelDesc.SetText
  • b

  • BackgroundDesc.CalcSize
  • BackgroundDesc.Copy
  • BackgroundDesc.Draw
  • BackgroundDesc.Free
  • BlockItemDesc.Print
  • BlockItemDesc.SetName
  • BoolDesc.CalcSize
  • BoolDesc.Draw
  • BoolDesc.DrawFocus
  • BoolDesc.GetFocus
  • BoolDesc.HandleEvent
  • BoolDesc.HandleFocusEvent
  • BoolDesc.Hide
  • BoolDesc.HideFocus
  • BoolDesc.Init
  • BoolDesc.IsIn
  • BoolDesc.Receive
  • BoolDesc.Resync
  • BoolDesc.SetModel
  • BoolModelDesc.Init
  • BoolModelDesc.Set
  • BoolModelDesc.Toggle
  • ButtonDesc.CalcSize
  • ButtonDesc.Draw
  • ButtonDesc.DrawFocus
  • ButtonDesc.GetDnDObject
  • ButtonDesc.GetFocus
  • ButtonDesc.HandleEvent
  • ButtonDesc.HandleFocusEvent
  • ButtonDesc.HandleShortcutEvent
  • ButtonDesc.Hide
  • ButtonDesc.HideFocus
  • ButtonDesc.Init
  • ButtonDesc.Receive
  • ButtonDesc.SetFont
  • ButtonDesc.SetImage
  • ButtonDesc.SetLabelText
  • ButtonDesc.SetPulse
  • ButtonDesc.SetText
  • ButtonDesc.SetType
  • ButtonRowDesc.CalcSize
  • ButtonRowDesc.Draw
  • ButtonRowDesc.Hide
  • ButtonRowDesc.Init
  • c

  • ClockDesc.CalcSize
  • ClockDesc.Draw
  • ClockDesc.GetFocus
  • ClockDesc.HandleEvent
  • ClockDesc.Hide
  • ClockDesc.Init
  • ClockDesc.Receive
  • ClockDesc.SetText
  • ClockDesc.ShowFrame
  • ColorAreaDesc.CalcSize
  • ColorAreaDesc.Draw
  • ColorAreaDesc.Hide
  • ColorAreaDesc.Init
  • ColorAreaDesc.SetColor
  • ColSelDlgDesc.Init
  • ColSelDlgDesc.PreInit
  • ColSelDlgDesc.Receive
  • ColSelDlgDesc.SetColor
  • CycleDesc.CalcSize
  • CycleDesc.Draw
  • CycleDesc.DrawFocus
  • CycleDesc.GetFocus
  • CycleDesc.HandleEvent
  • CycleDesc.HandleFocusEvent
  • CycleDesc.Hide
  • CycleDesc.HideFocus
  • CycleDesc.Init
  • CycleDesc.Refresh
  • CycleDesc.Resync
  • CycleDesc.SetModel
  • d

  • DigiClockDesc.CalcSize
  • DigiClockDesc.Draw
  • DigiClockDesc.DrawClock
  • DigiClockDesc.GetFocus
  • DigiClockDesc.HandleEvent
  • DigiClockDesc.Hide
  • DigiClockDesc.Init
  • DigiClockDesc.Receive
  • DigiClockDesc.SetForeground
  • DigiClockDesc.SetNumberBackground
  • DisplayDesc.AddChannel
  • DisplayDesc.AddFont
  • DisplayDesc.AddSleep
  • DisplayDesc.AddTimeOut
  • DisplayDesc.AddWindow
  • DisplayDesc.AllocateColor
  • DisplayDesc.AllocateNamedColor
  • DisplayDesc.CancelSelection
  • DisplayDesc.CheckSleeps
  • DisplayDesc.CheckTimeOuts
  • DisplayDesc.CreateBitmap
  • DisplayDesc.Deinit
  • DisplayDesc.Exit
  • DisplayDesc.Flush
  • DisplayDesc.FreeBitmap
  • DisplayDesc.FreeColor
  • DisplayDesc.FreeFont
  • DisplayDesc.GetEvent
  • DisplayDesc.GetFont
  • DisplayDesc.GetFontList
  • DisplayDesc.GetNewWindow
  • DisplayDesc.GetNextTimeOut
  • DisplayDesc.GetWindow
  • DisplayDesc.GetWindowOnScreen
  • DisplayDesc.GetX11Color
  • DisplayDesc.Handler
  • DisplayDesc.InitDisplay
  • DisplayDesc.IsAllocatedColor
  • DisplayDesc.LoadFont
  • DisplayDesc.PutBackEvent
  • DisplayDesc.QuerySelection
  • DisplayDesc.Receive, DisplayDesc.Receive
  • DisplayDesc.RegisterSelection
  • DisplayDesc.ReinitWindows
  • DisplayDesc.RemoveChannel
  • DisplayDesc.RemoveSleep
  • DisplayDesc.RemoveTimeOut
  • DisplayDesc.RemoveWindow
  • DisplayDesc.RestartContextHelp
  • DisplayDesc.SetNewWindow
  • DisplayDesc.StartContextHelp
  • DisplayDesc.StopContextHelp
  • DisplayDesc.Wait
  • DisplayPrefsDesc.Init
  • DnDDataInfoDesc.AddDataType
  • DnDDataInfoDesc.FindDataType
  • DnDDataInfoDesc.Init
  • DoomDesc.CalcSize
  • DoomDesc.Draw
  • DoomDesc.DrawImage
  • DoomDesc.Free
  • DoomDesc.Hide
  • DoomDesc.Init
  • DoomDesc.Receive
  • DrawInfoDesc.AddRegion
  • DrawInfoDesc.Beep
  • DrawInfoDesc.CopyArea
  • DrawInfoDesc.CopyFromBitmap
  • DrawInfoDesc.CopyToBitmap
  • DrawInfoDesc.Deinit
  • DrawInfoDesc.DrawArc
  • DrawInfoDesc.DrawFillString
  • DrawInfoDesc.DrawLine
  • DrawInfoDesc.DrawPoint
  • DrawInfoDesc.DrawString
  • DrawInfoDesc.FillArc
  • DrawInfoDesc.FillBackground
  • DrawInfoDesc.FillPolygon
  • DrawInfoDesc.FillRectangle
  • DrawInfoDesc.FreeLastClip
  • DrawInfoDesc.GetClipRegion
  • DrawInfoDesc.Init
  • DrawInfoDesc.InstallClip
  • DrawInfoDesc.PopBackground
  • DrawInfoDesc.PopDash
  • DrawInfoDesc.PopDrawMode
  • DrawInfoDesc.PopFont
  • DrawInfoDesc.PopForeground
  • DrawInfoDesc.PopPattern
  • DrawInfoDesc.PopStyle
  • DrawInfoDesc.PopUniqueFillPattern
  • DrawInfoDesc.PushBackground
  • DrawInfoDesc.PushDash
  • DrawInfoDesc.PushDrawMode
  • DrawInfoDesc.PushFont
  • DrawInfoDesc.PushForeground
  • DrawInfoDesc.PushPattern
  • DrawInfoDesc.PushStyle
  • DrawInfoDesc.PushUniqueFillPattern
  • DrawInfoDesc.RecalcClipRegion
  • DrawInfoDesc.ReinstallClip
  • e

  • EventDesc.EvaluateQualifier
  • f

  • FontDesc.Free
  • FontDesc.GetFontHandle
  • FontDesc.GetFontPos
  • FontDesc.Init
  • FontDesc.InitFromFontInfo
  • FontDesc.Load
  • FontDesc.LoadFont
  • FontDesc.StyleToPos
  • FontDesc.TextExtent
  • FontDesc.TextWidth
  • FontList.GetFontList
  • FrameDesc.CalcSize
  • FrameDesc.Draw
  • FrameDesc.Hide
  • FrameDesc.Init
  • FrameDesc.SetFrame
  • FrameDesc.SetInternalFrame
  • FrameDesc.SetLabel
  • FrameGroupDesc.Add
  • FrameGroupDesc.CalcSize
  • FrameGroupDesc.Draw
  • FrameGroupDesc.Hide
  • FrameGroupDesc.Init
  • FrameGroupDesc.Refresh
  • FrameGroupDesc.SetFrame
  • FrameGroupDesc.SetLabel
  • FrameGroupDesc.SetSpace
  • FrameGroupDesc.SetTextLabel
  • FrmSelDlgDesc.Init
  • FrmSelDlgDesc.PreInit
  • FrmSelDlgDesc.Receive
  • FrmSelDlgDesc.SetFrame
  • FuelGaugeDesc.CalcSize
  • FuelGaugeDesc.Draw
  • FuelGaugeDesc.Hide
  • FuelGaugeDesc.Init
  • FuelGaugeDesc.Resync
  • FuelGaugeDesc.SetDirection
  • FuelGaugeDesc.SetModel
  • FuelGaugeDesc.SetRange
  • FunctionLRealModelDesc.Dimension
  • FunctionLRealModelDesc.Execute
  • FunctionLRealModelDesc.NotifyFunctionChange
  • FunctionLRealModelDesc.SetDescribtion
  • FunctionLRealModelDesc.SetValue
  • g

  • GadgetDesc.CatchedFocus
  • GadgetDesc.HandleFocusEvent
  • GadgetDesc.HandleShortcutEvent
  • GadgetDesc.LostFocus
  • GroupDesc.Add
  • GroupDesc.Disable
  • GroupDesc.GetDnDObject
  • GroupDesc.GetFocus
  • GroupDesc.GetPosObject
  • GroupDesc.Init
  • GroupDesc.Refresh
  • h

  • HandlerDesc.Convert
  • HandlerDesc.Send
  • HelpDesc.CalcSize
  • HelpDesc.CursorIsIn
  • HelpDesc.Draw
  • HelpDesc.HandleEvent
  • HelpDesc.Hidden
  • HelpDesc.Hide
  • HelpDesc.Left
  • HelpDesc.PreInit
  • i

  • ImageBackgroundDesc.CalcSize
  • ImageBackgroundDesc.Copy
  • ImageBackgroundDesc.Draw
  • ImageBackgroundDesc.Free
  • ImageBackgroundDesc.Init
  • ImageDesc.CalcSize, ImageDesc.CalcSize
  • ImageDesc.Draw
  • ImageDesc.DrawPart, ImageDesc.DrawPart
  • ImageDesc.DrawTiled, ImageDesc.DrawTiled
  • ImageDesc.Free
  • ImageDesc.FreePixmaps
  • ImageDesc.Hide
  • ImageDesc.Init
  • ImageDesc.MakePixmap
  • ImageDesc.Resize
  • ImageDesc.SetAlignment
  • ImageDesc.SetFilename
  • ImageDesc.SetMode
  • ImgSelDlgDesc.Init
  • ImgSelDlgDesc.PreInit
  • ImgSelDlgDesc.Receive
  • ImgSelDlgDesc.SetImage
  • Imlib.Imlib, Imlib.Imlib, Imlib.Imlib, Imlib.Imlib, Imlib.Imlib, Imlib.Imlib, Imlib.Imlib, Imlib.Imlib, Imlib.Imlib, Imlib.Imlib, Imlib.Imlib, Imlib.Imlib
  • IntModelDesc.Add
  • IntModelDesc.Dec
  • IntModelDesc.Div
  • IntModelDesc.ForceSet
  • IntModelDesc.Inc
  • IntModelDesc.Init
  • IntModelDesc.Mod
  • IntModelDesc.Mul
  • IntModelDesc.Set
  • IntModelDesc.Sub
  • IntStrPipeDesc.Init
  • IntStrPipeDesc.int2str
  • IntStrPipeDesc.Lock
  • IntStrPipeDesc.Resync
  • IntStrPipeDesc.SetIntModel
  • IntStrPipeDesc.SetStringModel
  • IntStrPipeDesc.str2int
  • IntStrPipeDesc.Unlink
  • IntStrPipeDesc.Unlock
  • ItemDesc.AddItem
  • ItemDesc.GetBoolEntry
  • ItemDesc.GetEntry
  • ItemDesc.GetIntEntry
  • ItemDesc.GetStringEntry
  • ItemDesc.Init
  • ItemDesc.Print
  • k

  • KeyEventDesc.GetKey
  • KeyEventDesc.GetName
  • KeyEventDesc.GetText
  • KeyEventDesc.SetX11Event
  • KeyHandlerDesc.Activate
  • KeyHandlerDesc.AddFocusObject
  • KeyHandlerDesc.AddShortcutObject
  • KeyHandlerDesc.CancelCurrent
  • KeyHandlerDesc.Deactivate
  • KeyHandlerDesc.FindNewObject
  • KeyHandlerDesc.GetChainEntry
  • KeyHandlerDesc.GetSCEntry
  • KeyHandlerDesc.HandleEvent
  • KeyHandlerDesc.Init
  • KeyHandlerDesc.LastChain
  • KeyHandlerDesc.LastObject
  • KeyHandlerDesc.NextChain
  • KeyHandlerDesc.NextObject
  • KeyHandlerDesc.Refocus
  • KeyHandlerDesc.SetCurrentObject
  • KeyHandlerDesc.SetObject
  • l

  • LabelDesc.AddLabel
  • LabelDesc.AddTextLabel
  • LabelDesc.CalcSize
  • LabelDesc.Draw
  • LabelDesc.GetDnDObject
  • LabelDesc.GetPosObject
  • LabelDesc.Hide
  • LabelDesc.Init
  • LabelDesc.Refresh
  • LabelDesc.Resize
  • LabelDesc.Set
  • LEDDesc.CalcSize
  • LEDDesc.Draw
  • LEDDesc.Init
  • LEDDesc.Resync
  • LEDDesc.SetModel
  • LightChainDesc.AddChar
  • LightChainDesc.CalcSize
  • LightChainDesc.Draw
  • LightChainDesc.DrawPoint
  • LightChainDesc.Hide
  • LightChainDesc.Init
  • LightChainDesc.Invert
  • LightChainDesc.Readapt
  • LightChainDesc.Receive
  • LightChainDesc.Resize
  • LightChainDesc.Scroll
  • LightChainDesc.SetText
  • LightChainDesc.SoftScroll
  • LineDesc.CalcSize
  • LineDesc.Draw
  • LineDesc.Hide
  • LineDesc.Init
  • LineDesc.Set
  • ListDesc.CalcSize
  • ListDesc.Draw
  • ListDesc.GetEntry
  • ListDesc.GetFocus
  • ListDesc.HandleEvent
  • ListDesc.HandleFocusEvent
  • ListDesc.Hide
  • ListDesc.Init
  • ListDesc.RedrawEntry
  • ListDesc.Resync
  • ListDesc.SetModel
  • ListDesc.SetReadOnly
  • ListDesc.SetTop
  • ListDesc.UseScroller
  • ListEntryDesc.CalcSize
  • ListEntryDesc.Deselect
  • ListEntryDesc.GetObject
  • ListEntryDesc.GetPos
  • ListEntryDesc.Select
  • ListEntryDesc.Toggle
  • ListModelDesc.Append
  • ListModelDesc.Clear
  • ListModelDesc.Delete
  • ListModelDesc.Deselect
  • ListModelDesc.Get
  • ListModelDesc.GetSelected
  • ListModelDesc.Init
  • ListModelDesc.Select
  • ListModelDesc.Toggle
  • ListReaderDesc.Assign
  • ListReaderDesc.Attach
  • ListReaderDesc.Backward
  • ListReaderDesc.Forward
  • ListReaderDesc.GetLine
  • ListReaderDesc.Init
  • ListReaderDesc.IsValid
  • ListReaderDesc.Position
  • ListTextModelDesc.AddLine
  • ListTextModelDesc.AddLn
  • ListTextModelDesc.AddText
  • ListTextModelDesc.Clear
  • ListTextModelDesc.GetReader
  • ListTextModelDesc.Init
  • ListTextModelDesc.LoadFromChannel
  • ListTextModelDesc.RemoveLastLine
  • LoadDesc.CalcSize
  • LoadDesc.Draw
  • LoadDesc.DrawLoad
  • LoadDesc.Free
  • LoadDesc.Hide
  • LoadDesc.Init
  • LoadDesc.Resync
  • LoadDesc.SetModel
  • LoadDesc.SetRange
  • LoadDesc.SetVertical
  • LoadDesc.ShowFrame
  • LoadDesc.ShowLabel
  • m

  • MenuDesc.Add
  • MenuDesc.AddItem
  • MenuDesc.AddSeparator
  • MenuDesc.AddSubMenu
  • MenuDesc.AddTextItem
  • MenuDesc.AddTextItemSC
  • MenuDesc.AddTextSubMenu
  • MenuDesc.AddTextTitle
  • MenuDesc.AddTitle
  • MenuDesc.CalcSize
  • MenuDesc.Close
  • MenuDesc.CloseAll
  • MenuDesc.CursorIsIn
  • MenuDesc.Draw
  • MenuDesc.GetSelected
  • MenuDesc.HandleEvent
  • MenuDesc.Hidden
  • MenuDesc.Hide
  • MenuDesc.Init
  • MenuDesc.PreInit
  • MenuDesc.Send
  • MenuDesc.SetPullDown
  • MenuStripDesc.AddTextStrip
  • MenuStripDesc.CalcSize
  • MenuStripDesc.Draw
  • MenuStripDesc.GetFocus
  • MenuStripDesc.HandleEvent
  • MenuStripDesc.Hide
  • MenuStripDesc.Init
  • MenuStripDesc.Refresh
  • ModelDesc.AddObject
  • ModelDesc.Init
  • ModelDesc.Load
  • ModelDesc.Notify
  • ModelDesc.RemoveObject
  • ModelDesc.Store
  • MotifM.GetCompletition
  • MotifM.GetEventType
  • MotifM.GetMsgType
  • MotifM.GetOperation
  • MotifM.GetOperations
  • MotifM.GetStatus
  • MotifM.SetCompletition
  • MotifM.SetEventType
  • MotifM.SetOperation
  • MotifM.SetOperations
  • MotifM.SetStatus
  • MotionEventDesc.SetX11Event
  • MouseEventDesc.SetX11Event
  • Msg2CloseDesc.Convert, Msg2CloseDesc.Convert
  • Msg2DeleteDesc.Convert
  • Msg2ExitDesc.Convert
  • Msg2OpenDesc.Convert, Msg2OpenDesc.Convert
  • MsgDialogDesc.Init
  • MsgDialogDesc.PreInit
  • MsgDialogDesc.Receive
  • MsgDialogDesc.SetText
  • MsgObjectDesc.AddHandler
  • MsgObjectDesc.AttachModel
  • MsgObjectDesc.Forward
  • MsgObjectDesc.Init
  • MsgObjectDesc.Load
  • MsgObjectDesc.Receive
  • MsgObjectDesc.RemoveHandler
  • MsgObjectDesc.Resync
  • MsgObjectDesc.Send
  • MsgObjectDesc.SetId
  • MsgObjectDesc.Store
  • MsgObjectDesc.UnattachModel
  • MultiDesc.CalcSize
  • MultiDesc.Draw
  • MultiDesc.GetEntry
  • MultiDesc.GetFocus
  • MultiDesc.Hide
  • MultiDesc.Init
  • MultiDesc.Receive
  • MultiDesc.Refresh
  • MultiDesc.SetEntry
  • o

  • ObjectDesc.CalcSize
  • ObjectDesc.CanDrag
  • ObjectDesc.CanFocus
  • ObjectDesc.CanGrow
  • ObjectDesc.CanResize
  • ObjectDesc.CanShrink
  • ObjectDesc.ClearFlags
  • ObjectDesc.CopyBackground
  • ObjectDesc.Deselect
  • ObjectDesc.Disable
  • ObjectDesc.DisplayFocus
  • ObjectDesc.Draw
  • ObjectDesc.DrawBackground
  • ObjectDesc.DrawDisabled
  • ObjectDesc.DrawFocus
  • ObjectDesc.DrawHide
  • ObjectDesc.Free, ObjectDesc.Free
  • ObjectDesc.GetDnDObject
  • ObjectDesc.GetDragData
  • ObjectDesc.GetDragInfo
  • ObjectDesc.GetDropDataType
  • ObjectDesc.GetFocus
  • ObjectDesc.GetHelpObject
  • ObjectDesc.GetMenuObject
  • ObjectDesc.GetPosObject
  • ObjectDesc.GetSize
  • ObjectDesc.HandleDrop
  • ObjectDesc.HandleEvent
  • ObjectDesc.HasFocus
  • ObjectDesc.Hide
  • ObjectDesc.HideFocus
  • ObjectDesc.Init, ObjectDesc.Init
  • ObjectDesc.Intersect
  • ObjectDesc.LeaveFocus
  • ObjectDesc.Load
  • ObjectDesc.MayFocus
  • ObjectDesc.MouseIsIn
  • ObjectDesc.PointIsIn
  • ObjectDesc.Redraw
  • ObjectDesc.Refresh
  • ObjectDesc.RemoveFlags
  • ObjectDesc.Resize
  • ObjectDesc.RestrictToBounds
  • ObjectDesc.SetBackground
  • ObjectDesc.SetBackgroundObject
  • ObjectDesc.SetFlags
  • ObjectDesc.SetHeight
  • ObjectDesc.SetHelpObject
  • ObjectDesc.SetLabelObject
  • ObjectDesc.SetMenuObject
  • ObjectDesc.SetMinHeight
  • ObjectDesc.SetMinWidth
  • ObjectDesc.SetWidth
  • ObjectDesc.ShowFocus
  • ObjectDesc.StdFocus
  • ObjectDesc.Store
  • OszilDesc.CalcMinMax
  • OszilDesc.CalcSize
  • OszilDesc.Draw
  • OszilDesc.DrawPoint
  • OszilDesc.Free
  • OszilDesc.Hide
  • OszilDesc.Init
  • OszilDesc.Resize
  • OszilDesc.ResizePoints
  • OszilDesc.ResizeSize
  • OszilDesc.Resync
  • OszilDesc.SetColor
  • OszilDesc.SetInterval
  • OszilDesc.SetModel
  • OszilDesc.SetRange
  • OszilDesc.ShowFrame
  • p

  • PaneDesc.Add
  • PaneDesc.CalcSize
  • PaneDesc.Draw
  • PaneDesc.DrawSelection
  • PaneDesc.GetFocus
  • PaneDesc.HandleEvent
  • PaneDesc.Hide
  • PaneDesc.Init
  • PaneDesc.MoveObjects
  • PaneDesc.Refresh
  • PaneDesc.Set
  • PanelDesc.CalcSize
  • PanelDesc.Draw
  • PanelDesc.Hide
  • PanelDesc.Init
  • PanelDesc.Refresh
  • PanelDesc.Set
  • PatternLegendDesc.CalcSize
  • PatternLegendDesc.Draw
  • PatternLegendDesc.Hide
  • PatternLegendDesc.Init
  • PatternLegendDesc.Refresh
  • PatternLegendDesc.SetMaximum
  • PieChartDesc.AddValue
  • PieChartDesc.CalcSize
  • PieChartDesc.Draw
  • PieChartDesc.Hide
  • PieChartDesc.Init
  • PieChartDesc.SetTotal
  • PipeDesc.Init
  • PipeDesc.Lock
  • PipeDesc.Unlink
  • PipeDesc.Unlock
  • PlateDesc.Add
  • PlateDesc.CalcSize
  • PlateDesc.Draw
  • PlateDesc.Hide
  • PlateDesc.Init
  • PlateDesc.Refresh
  • PlateDesc.SetSpace
  • PopupDesc.AddKeyHandler
  • PopupDesc.CalcSize
  • PopupDesc.ContextHelp
  • PopupDesc.ContextMenu
  • PopupDesc.CursorIsIn
  • PopupDesc.Draw
  • PopupDesc.FocusIn
  • PopupDesc.FocusNext
  • PopupDesc.FocusObjectHides
  • PopupDesc.FocusOut
  • PopupDesc.GetDnDObject
  • PopupDesc.GetPosObject
  • PopupDesc.HandleEvent
  • PopupDesc.Hide
  • PopupDesc.Init
  • PopupDesc.PreInit
  • PopupDesc.Receive
  • PopupDesc.Redraw
  • PopupDesc.SetTop
  • PowerDesc.CalcSize
  • PowerDesc.Draw
  • PowerDesc.DrawBox
  • PowerDesc.Hide
  • PowerDesc.Init
  • PowerDesc.Receive
  • PrefsDesc.Free, PrefsDesc.Free
  • PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init, PrefsDesc.Init
  • PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs, PrefsDesc.SetPrefs
  • PrefsItemDesc.Apply
  • PrefsItemDesc.ErrorWrongData
  • PrefsItemDesc.GetObject
  • PrefsItemDesc.Init
  • PrefsItemDesc.LoadPrefs
  • PrefsItemDesc.LoadPrefsFile
  • PrefsItemDesc.Refresh
  • PrefsItemDesc.Save
  • PrefsItemDesc.SaveItems
  • PrefsItemDesc.SetData
  • r

  • RadioDesc.CalcSize
  • RadioDesc.Draw
  • RadioDesc.DrawFocus
  • RadioDesc.GetFocus
  • RadioDesc.HandleEvent
  • RadioDesc.HandleFocusEvent
  • RadioDesc.Hide
  • RadioDesc.HideFocus
  • RadioDesc.Init
  • RadioDesc.IsIn
  • RadioDesc.Receive
  • RadioDesc.Resync
  • RadioDesc.SetModel
  • ReaderDesc.Assign
  • ReaderDesc.Backward
  • ReaderDesc.Forward
  • ReaderDesc.GetLine
  • ReaderDesc.Init
  • ReaderDesc.IsValid
  • ReaderDesc.Last
  • ReaderDesc.Next
  • ReaderDesc.Position
  • RealModelDesc.Add
  • RealModelDesc.Dec
  • RealModelDesc.Div
  • RealModelDesc.ForceSet
  • RealModelDesc.Inc
  • RealModelDesc.Init
  • RealModelDesc.Mul
  • RealModelDesc.Set
  • RealModelDesc.Sub
  • RealStrPipeDesc.Init
  • RealStrPipeDesc.Lock
  • RealStrPipeDesc.real2str
  • RealStrPipeDesc.Resync
  • RealStrPipeDesc.SetRealModel
  • RealStrPipeDesc.SetStringModel
  • RealStrPipeDesc.str2real
  • RealStrPipeDesc.Unlink
  • RealStrPipeDesc.Unlock
  • s

  • ScaleDesc.CalcSize
  • ScaleDesc.Draw
  • ScaleDesc.GetExp
  • ScaleDesc.Hide
  • ScaleDesc.Init
  • ScaleDesc.Pow10
  • ScaleDesc.SetDirection
  • ScaleDesc.SetInterval
  • ScrollerDesc.CalcSize
  • ScrollerDesc.Draw
  • ScrollerDesc.DrawKnob
  • ScrollerDesc.GetFocus
  • ScrollerDesc.HandleEvent
  • ScrollerDesc.HandleFocusEvent
  • ScrollerDesc.Hide
  • ScrollerDesc.Init
  • ScrollerDesc.Receive
  • ScrollerDesc.Resync
  • ScrollerDesc.Set
  • ScrollerDesc.SetModel
  • ScrollerDesc.SetOffset
  • Segment7Desc.CalcSize
  • Segment7Desc.Draw
  • Segment7Desc.DrawSegment
  • Segment7Desc.Hide
  • Segment7Desc.Init
  • Segment7Desc.SetOffColor
  • Segment7Desc.SetOnColor
  • Segment7Desc.SetValue
  • SegmentDesc.CalcSize
  • SegmentDesc.Draw
  • SegmentDesc.Hide
  • SegmentDesc.Init
  • SegmentDesc.SetForeground
  • SegmentDesc.SetString
  • SegmentDesc.SetStringWidth
  • SegmentDesc.StoreString
  • Sel2SetDesc.Convert
  • SettingsDesc.AddItem
  • SettingsDesc.ApplyPrefs
  • SettingsDesc.ExitOnClose
  • SettingsDesc.Init
  • SettingsDesc.LoadPrefs
  • SettingsDesc.Open
  • SettingsDesc.PreInit
  • SettingsDesc.Receive
  • SettingsDesc.SavePrefs
  • SettingsDesc.SetDisplay
  • ShortcutEntryDesc.Match
  • SimplEntryDesc.CalcSize
  • SimplEntryDesc.GetObject
  • SimplEntryDesc.SetObject
  • SinModelDesc.Dimension
  • SinModelDesc.Execute
  • SinModelDesc.Init
  • SinModelDesc.SetValue
  • SliderDesc.CalcSize
  • SliderDesc.Draw
  • SliderDesc.DrawFocus
  • SliderDesc.DrawKnob
  • SliderDesc.GetFocus
  • SliderDesc.HandleEvent
  • SliderDesc.HandleFocusEvent
  • SliderDesc.Hide
  • SliderDesc.HideFocus
  • SliderDesc.Init
  • SliderDesc.Resync
  • SliderDesc.Set
  • SliderDesc.SetModel
  • SliderDesc.SetRange
  • SliderDesc.UseScale
  • SpaceDesc.CalcSize
  • SpaceDesc.Draw
  • SpaceDesc.Hide
  • SpaceDesc.Init
  • SpaceDesc.Set
  • StatusLineDesc.CalcSize
  • StatusLineDesc.Draw
  • StatusLineDesc.Hide
  • StatusLineDesc.Init
  • StatusLineDesc.Refresh
  • StreamLongModelDesc.GetValue
  • StreamLongModelDesc.Init
  • StreamLongModelDesc.SetNotificationMode
  • StreamLongModelDesc.SetSize
  • StreamLongModelDesc.SetValue
  • StreamLongModelDesc.TriggerNotify
  • StringClockDesc.CalcSize
  • StringClockDesc.Draw
  • StringClockDesc.GetFocus
  • StringClockDesc.HandleEvent
  • StringClockDesc.Hide
  • StringClockDesc.Init
  • StringClockDesc.Receive
  • StringClockDesc.SetForeground
  • StringDesc.CalcSize
  • StringDesc.ClearSelection
  • StringDesc.DeleteSelection
  • StringDesc.Deselect
  • StringDesc.Draw
  • StringDesc.DrawFocus
  • StringDesc.DrawText
  • StringDesc.GetCursorPos
  • StringDesc.GetDnDObject
  • StringDesc.GetDragData
  • StringDesc.GetDragInfo
  • StringDesc.GetDropDataType
  • StringDesc.GetFocus
  • StringDesc.HandleDrop
  • StringDesc.HandleEvent
  • StringDesc.HandleFocusEvent
  • StringDesc.HandleKeys
  • StringDesc.Hide
  • StringDesc.HideFocus
  • StringDesc.Init
  • StringDesc.Resync
  • StringDesc.Selected
  • StringDesc.SetFont
  • StringDesc.SetModel
  • StringDesc.SetSelection
  • StringDesc.SetStringAlignment
  • StringDesc.SetStringWidth
  • StringModelDesc.Delete
  • StringModelDesc.GetCopy
  • StringModelDesc.GetString
  • StringModelDesc.Init
  • StringModelDesc.Insert
  • StringModelDesc.Set
  • t

  • TabDesc.AddTab
  • TabDesc.CalcSize
  • TabDesc.Disable
  • TabDesc.Draw
  • TabDesc.DrawFocus
  • TabDesc.DrawObject
  • TabDesc.DrawTab
  • TabDesc.DrawTop
  • TabDesc.GetDnDObject
  • TabDesc.GetEntry
  • TabDesc.GetFocus
  • TabDesc.GetPosObject
  • TabDesc.HandleEvent
  • TabDesc.HandleFocusEvent
  • TabDesc.Hide
  • TabDesc.HideFocus
  • TabDesc.Init
  • TabDesc.Refresh
  • TableDesc.CalcCol
  • TableDesc.CalcSize
  • TableDesc.Draw
  • TableDesc.DrawCell
  • TableDesc.DrawFocus
  • TableDesc.DrawHeader
  • TableDesc.DrawRow
  • TableDesc.DrawText
  • TableDesc.GetCell
  • TableDesc.GetFocus
  • TableDesc.HandleEvent
  • TableDesc.HandleFocusEvent
  • TableDesc.HandleKeys
  • TableDesc.Hide
  • TableDesc.HideFocus
  • TableDesc.Init
  • TableDesc.MakeVisible
  • TableDesc.RedrawCell
  • TableDesc.RedrawRow
  • TableDesc.ReInit
  • TableDesc.Resync
  • TableDesc.SetModel
  • TableDesc.SetSelectionType
  • TableModelDesc.GetColumns
  • TableModelDesc.GetColumnWidth
  • TableModelDesc.GetRows
  • TableModelDesc.GetText
  • TableModelDesc.Init
  • TestModelDesc.GetColumns
  • TestModelDesc.GetColumnWidth
  • TestModelDesc.GetRows
  • TestModelDesc.GetText
  • TestModelDesc.Init
  • TextDesc.AddTextToPart
  • TextDesc.AppendLine
  • TextDesc.CalcSize
  • TextDesc.CalcTextSize
  • TextDesc.CloseLine
  • TextDesc.Draw
  • TextDesc.DrawFocus
  • TextDesc.GetDnDObject
  • TextDesc.GetDragData
  • TextDesc.GetDragInfo
  • TextDesc.Hide
  • TextDesc.HideFocus
  • TextDesc.Init
  • TextDesc.NewLine
  • TextDesc.SetDefault
  • TextDesc.SetJustification
  • TextDesc.SetText
  • TextItemDesc.GetText
  • TextItemDesc.Init
  • TextItemDesc.SetText
  • TextModelDesc.GetReader
  • TextModelDesc.Init
  • TextModelDesc.ResizeMsg
  • TextModelDesc.ResyncMsg
  • TextView.LoadFile
  • TextViewDesc.CalcSize
  • TextViewDesc.Draw
  • TextViewDesc.Hide
  • TextViewDesc.Init
  • TextViewDesc.Resync
  • TextViewDesc.SetModel
  • TextViewDesc.ShowBottom
  • TileBackgroundDesc.CalcSize
  • TileBackgroundDesc.Copy
  • TileBackgroundDesc.Draw
  • TileBackgroundDesc.Free
  • TileBackgroundDesc.Init
  • ToolbarDesc.CalcSize
  • ToolbarDesc.Draw
  • ToolbarDesc.Hide
  • ToolbarDesc.Init
  • ToolbarDesc.Refresh
  • ToolbarDesc.SetEqualSize
  • TreeDesc.CalcSize
  • TreeDesc.Draw
  • TreeDesc.DrawFocus
  • TreeDesc.DrawItem
  • TreeDesc.DrawTree
  • TreeDesc.GetClickedEntryPos
  • TreeDesc.GetFocus
  • TreeDesc.HandleClick
  • TreeDesc.HandleEvent
  • TreeDesc.HandleFocusEvent
  • TreeDesc.HandleKeys
  • TreeDesc.Hide
  • TreeDesc.HideFocus
  • TreeDesc.Init
  • TreeDesc.MakeVisible
  • TreeDesc.ReInit
  • TreeDesc.Resync
  • TreeDesc.SetModel
  • TreeItemDesc.AddChild
  • TreeItemDesc.GetText
  • TreeItemDesc.HasChilds
  • TreeItemDesc.HideChilds
  • TreeItemDesc.Init
  • TreeItemDesc.InsertAfter
  • TreeItemDesc.IsVisible
  • TreeItemDesc.Last
  • TreeItemDesc.Next
  • TreeItemDesc.RecalcVisible
  • TreeItemDesc.ShowChilds
  • TreeItemDesc.UpdateChildCount
  • TreeItemDesc.VisibleParent
  • TreeModelDesc.GetVisibleItem
  • TreeModelDesc.Init
  • TreeModelDesc.RecalcVisible
  • TreeModelDesc.SetTop
  • v

  • ValueItemDesc.Print
  • ValueItemDesc.SetBool
  • ValueItemDesc.SetInt
  • ValueItemDesc.SetValue
  • VecImageDesc.CalcSize
  • VecImageDesc.Draw
  • VecImageDesc.DrawFocus
  • VecImageDesc.DrawRectangle
  • VecImageDesc.Hide
  • VecImageDesc.HideFocus
  • VecImageDesc.Set
  • VOArray.Count
  • VOBackground.LoadBackground
  • VOBackground.SaveBackground
  • VOClock.cos
  • VOClock.sin
  • VODisplay.ConvertField
  • VODisplay.CreatePixmapCursor
  • VODisplay.GetField
  • VODisplay.XFree
  • VODoom.IsHit
  • VOEvent.GetEvent
  • VOFrame.GetFrameEntry
  • VOGUIObject.GetAlignment
  • VOGUIObject.MaxLong
  • VOGUIObject.MinLong
  • VOGUIObject.RoundRange
  • VOLightChain.InitChar
  • VOListModel.NewSimplEntry
  • VOListModel.NewTextEntry
  • VOLLFor.GetDirName
  • VOLLInt.closedir
  • VOLLInt.opendir
  • VOLLInt.readdir
  • VOLLInt.select
  • VOLLMac.FD, VOLLMac.FD, VOLLMac.FD, VOLLMac.FD
  • VOMenu.InitMenu
  • VOMsgDialog.Dialog
  • VOObject.Create
  • VOObject.FindRef
  • VOOOCP.AddBool
  • VOOOCP.AddList
  • VOOOCP.AddString
  • VOPlot.Classify
  • VOPlot.Clip
  • VOPlot.DonePlot
  • VOPlot.Empty
  • VOPlot.LogOf
  • VOPlot.PlotLine
  • VOPlot.PlotMinorX
  • VOPlot.PlotMinorY
  • VOPlot.PutCh
  • VOPlot.PutExp
  • VOPlot.PutNumDig
  • VOPlot.RealToString
  • VOPrefs.Free
  • VOPrefsGUI.CreateFrameButton
  • VOPrefsGUI.CreateImageButton
  • VOPrefsGUI.Msg
  • VOPrefsGUI.PrefsCallback
  • VOPrefsGUI.StdErrorProc
  • VOPrefsParser.Block, VOPrefsParser.Block
  • VOPrefsParser.Entry, VOPrefsParser.Entry
  • VOPrefsParser.Error
  • VOPrefsParser.Expect
  • VOPrefsParser.ExpectWeak
  • VOPrefsParser.FindSlash
  • VOPrefsParser.Get
  • VOPrefsParser.Ident, VOPrefsParser.Ident
  • VOPrefsParser.Initialize
  • VOPrefsParser.Number, VOPrefsParser.Number
  • VOPrefsParser.Parameter, VOPrefsParser.Parameter
  • VOPrefsParser.Parse
  • VOPrefsParser.StartOf
  • VOPrefsParser.String, VOPrefsParser.String
  • VOPrefsParser.VOPrefs, VOPrefsParser.VOPrefs
  • VOPrefsParser.WeakSeparator
  • VOPrefsScanner.CheckLiteral
  • VOPrefsScanner.Comment
  • VOPrefsScanner.Get
  • VOPrefsScanner.GetName
  • VOPrefsScanner.Initialize
  • VOPrefsScanner.NextCh
  • VOPrefsScanner.StdErrorProc
  • VOQuickHelp.InitHelp
  • VOText.MakeCenterText
  • VOText.MakeLeftText
  • VOTreeModel.CreateTextItem
  • VOUtil.EscapeString
  • VOUtil.RoundDiv
  • VOUtil.RoundUpEven
  • VOUtil.UpDiv
  • VOVecImage.GetImageEntry
  • VOXpmImage.PrintError
  • w

  • WindowDesc.AddFreeList
  • WindowDesc.AddKeyHandler
  • WindowDesc.Borderless
  • WindowDesc.Close
  • WindowDesc.ClosePressed, WindowDesc.ClosePressed
  • WindowDesc.ContextHelp, WindowDesc.ContextHelp
  • WindowDesc.ContextMenu, WindowDesc.ContextMenu
  • WindowDesc.CreateAllways
  • WindowDesc.Delete
  • WindowDesc.Draw, WindowDesc.Draw
  • WindowDesc.FocusIn, WindowDesc.FocusIn
  • WindowDesc.FocusNext, WindowDesc.FocusNext
  • WindowDesc.FocusObjectHides, WindowDesc.FocusObjectHides
  • WindowDesc.FocusOut, WindowDesc.FocusOut
  • WindowDesc.GetDnDObject, WindowDesc.GetDnDObject
  • WindowDesc.GetMousePos
  • WindowDesc.GetPosObject
  • WindowDesc.GetXY
  • WindowDesc.Grab
  • WindowDesc.GrabOff
  • WindowDesc.GrabOn
  • WindowDesc.HandleDrag
  • WindowDesc.HandleDragDrop
  • WindowDesc.HandleEvent, WindowDesc.HandleEvent
  • WindowDesc.HandleXSelectionNotify
  • WindowDesc.HandleXSelectionRequest
  • WindowDesc.Hidden
  • WindowDesc.Hide, WindowDesc.Hide
  • WindowDesc.Init, WindowDesc.Init
  • WindowDesc.Left
  • WindowDesc.Maped
  • WindowDesc.Open
  • WindowDesc.PreInit, WindowDesc.PreInit
  • WindowDesc.Receive
  • WindowDesc.Redraw, WindowDesc.Redraw
  • WindowDesc.ReinitWindow, WindowDesc.ReinitWindow
  • WindowDesc.Resize
  • WindowDesc.Resized, WindowDesc.Resized
  • WindowDesc.SetBackground
  • WindowDesc.SetDisplay
  • WindowDesc.SetMaxSize
  • WindowDesc.SetMinSize
  • WindowDesc.SetModal
  • WindowDesc.SetParent
  • WindowDesc.SetPos
  • WindowDesc.SetPosition
  • WindowDesc.SetSize
  • WindowDesc.SetTitle
  • WindowDesc.SetTop
  • WindowDesc.Unmaped, WindowDesc.Unmaped
  • WireFrameDesc.AddLine
  • WireFrameDesc.CalcSize
  • WireFrameDesc.Draw
  • WireFrameDesc.DrawBox
  • WireFrameDesc.Free
  • WireFrameDesc.Hide
  • WireFrameDesc.Init
  • WireFrameDesc.Receive
  • WireFrameDesc.SetViewer
  • x

  • xpm.XpmAttributesSize
  • xpm.XpmCreateBufferFromImage
  • xpm.XpmCreateBufferFromPixmap
  • xpm.XpmCreateBufferFromXpmImage
  • xpm.XpmCreateDataFromImage
  • xpm.XpmCreateDataFromPixmap
  • xpm.XpmCreateDataFromXpmImage
  • xpm.XpmCreateImageFromBuffer
  • xpm.XpmCreateImageFromData
  • xpm.XpmCreateImageFromXpmImage
  • xpm.XpmCreatePixmapFromBuffer
  • xpm.XpmCreatePixmapFromData
  • xpm.XpmCreatePixmapFromXpmImage
  • xpm.XpmCreateXpmImageFromBuffer
  • xpm.XpmCreateXpmImageFromData
  • xpm.XpmCreateXpmImageFromImage
  • xpm.XpmCreateXpmImageFromPixmap
  • xpm.XpmFreeAttributes
  • xpm.XpmFreeExtensions
  • xpm.XpmFreeXpmImage
  • xpm.XpmFreeXpmInfo
  • xpm.XpmGetErrorString
  • xpm.XpmLibraryVersion
  • xpm.XpmReadFileToBuffer
  • xpm.XpmReadFileToData
  • xpm.XpmReadFileToImage
  • xpm.XpmReadFileToPixmap
  • xpm.XpmReadFileToXpmImage
  • xpm.XpmWriteFileFromBuffer
  • xpm.XpmWriteFileFromData
  • xpm.XpmWriteFileFromImage
  • xpm.XpmWriteFileFromPixmap
  • xpm.XpmWriteFileFromXpmImage
  • XpmImageDesc.CalcSize
  • XpmImageDesc.Draw
  • XpmImageDesc.Free
  • XpmImageDesc.Hide
  • XpmImageDesc.Init
  • XpmImageDesc.SetAlignment
  • XpmImageDesc.SetFilename
  • XpmImageDesc.SetMode
  • XTest.MakeOKPopup
  • XTest.NewImage
  • XTest.NewImageEntry
  • 9 Index of variables, attributes and constants

    10 Concept index

    a

  • About
  • Addresses
  • Attribute index
  • c

  • Class index
  • Clipping
  • color handling
  • Concept index
  • Concepts
  • Configuration
  • Copying
  • d

  • Design criteria
  • Drag & drop for the user
  • Drag and drop
  • Drawing
  • Drawing concept
  • f

  • font handling
  • Function index
  • g

  • General object handling
  • GNU license
  • Grouping
  • GUIObject concept
  • i

  • Information about Oberon-2
  • Internal drag & drop mechanism
  • k

  • Keyboard focus
  • l

  • Layouting
  • m

  • Messagesystem
  • Module index
  • Modules
  • MV-concept
  • o

  • Object sizing
  • w

  • What is missing?
  • What is the current status?
  • What is VisualOberon?
  • x

  • XpmImages

  • This document was generated on 13 December 1998 using the texi2html translator version 1.51.