Short: OOP library + misc GUI & font sourrces Author: pdroldan@yahoo.com (Pablo Roldan) Uploader: pdroldan yahoo com (Pablo Roldan) Type: dev/misc Replaces: dev/misc/geavl.lzh Architecture: m68k-amigaos -------------------------------------------------------------------- GEngine shared library version 0.1 (c)2001-2002 by Pablo Roldan note: this archive replaces geavl.lzh (avl trees in PCQ Pascal) which were not working at all (I prefer not to talk about it). 1. The library ----------- This library was thought at a first moment to gather all de graphic and GUI routines that I had written. Later on, this become into a library that allow AmigaOS1.3 users to create screen and font sensitive GUIs. Therefore allowing 1.3 programs to show a correct GUI in both 1.3 and 2.0+ systems. Although this goal has not been achieved at the time, the library incorporates: - Colour matching routines, as GetBestPen, that returns the closest palette entry to the passed RGB value. - AVL trees routines, search, insert & delete criteria customizable via hooks. - Memory pools. Auto-expand/shrink in user defined chunks - Object oriented system. A copy of BOOPSI, currently only the root class implemented in the library. - Taglists routines, also a copy of the ones in utility.library 2. The pascal sources ------------------ The pascal source include some test programs as well as gengine_d.i, a include file containing the following: - A custom slider gadget, capable of displaying text inside the knob just like the MUI ones. Also is font sensitive. Note: The current implementation has problems with visualprefs. - A scalable & rotable vector graphics engine. - A 'event handler', not the best one, but does it's job until now. - A pop-up menu, font sensitive. The test programs: - testpop.p : This is the oldest one, it demoes the sliders, vectors, pop-up menus and the color matching routines in the library. - test1.p : Test the color matching routines, opens 2 windows, the 1st contains 3 sliders, one for each primary color, at the right is a rectangle filled of the nearest color in the palette that matched the values on the sliders. The 2nd window display the standard GUI colors, DrawInfo like. - test2.p : Test the scalable-rotable vector engine. Again the program opens 2 windows, one contains a vector shape, the second 2 sliders that controls the angle and size of the vector shape respectively. - test3.p : Test AVL trees, only text displayed on the CLI window. This is not the best test, as I discover later. - testtag.p : Test both the taglist routines and class adding and removing. - testiclass.p : The last one, test a pascal-implemented imageclass, this time 4 sliders allows you to move an image object (currently only a box). The image moves by using the methods GIM_ERASE, GM_SET and GM_DRAW. 3. The pascal includes ------------------- These are the PCQ pascal includes to use the library with this compiler. Some of these have pascal source of some routines that have not been yet added to the shared library. 4. Compiling --------- The library has been written entirely in assembler, I use phxass+blink to compile and link it. To compile the pascal test programs you will need the PCQ pascal compiler, you will also need to compile gengine/asm/gengine_pcq.asm to gengine/asm/gengine_pcq.lib (glue routines) and gengine/test/callhook.asm to gengine/asm/callhook.o (hook routines). Then link the object code that created the pascal compiler with this two files (and offcourse the pascal library). 5. Compatibility ------------- Only an early version of the library has been tested on my real Amiga 500. The entire development of the library has been doned on a PeeCee running WinUAE. However, I has tested the library under various kickstarts and workbench configurations, and only found a visual problem with the custom slider gadgets and the program visualprefs, this can be fixed by making the slider BORDERLESS and letting it to refresh it's border. 6. The future ---------- Currently the development is temporarily stopped, as I'm busy with other GUI/Gfx related project. When I finish it (or get bored of it, whatever happens first) I will continue developing the library. Anyway... the future will bring us: - fixed color matching routines to use the same API that the included in kickstart v39+. - further development will be done in C (rewritting de Pascal code into asm is a REALLY slow process) - code will take more advantage of newer OS versions. - built in image class (among others) - finished gadget class and vector graphics engine converted into a built in class. - better docs. - nicer test programs. - and a heap of things more... 7. Distribution ------------ The contents of this archive are all FREEWARE, you can use the library and the source codes as you want. If you find usefull some of this, write a program that uses the library or, for some obscure reason you want to continue developing the library, pleas e-mail me at the address listed below. 8. Contact ------- You can reach me via e-mail at: pdroldan@yahoo.com or by snail mail: Rivadavia 249 dto 6B (9100) Trelew Pcia. del Chubut Argentina My web page: http://www.geocities.com/soft154i/index.htm As you can see at my web page I'm very insterested in old 8/16 bits computers, so any donation, either hardware, software or documentation *is* VERY welcome. 9. Disclaimer --------- No warranties of any kind are made as to the functionality of this library and programs. You are using it at YOUR own risk.