Short: open source gui-library for assembler Author: Andreas G. Szabo Uploader: silva psi5 com (Andreas G. Szabo) Type: dev/gui Version: beta update Requires: 680x0, amigaos 3.0+ Architecture: m68k-amigaos >= 3.0.0 This is the eXternal User Interfaces library WITH SOURCECODE and a demo/config application w/ source and developer files. It looks nice but yet you can only play with the config-app "xuilibinfo" to see what xui can do and what you can edit, but i also added a demo app "xuifilter", a monitor and file scanner. README CONTENTS - REQUIREMENTS - WHERE TO GET NEW VERSIONS - WHAT IS IT - INSTALLATION - KNOWN APPS USING XUI - CONTRIB-WARE - HOW TO ASSEMBLE - KNOWN BUGS - HISTORY - CREDITS - DISCLAIMER For a quick overview how it looks like to use xui in an assembler program please see the file "windowdemo.txt" from this archive. REQUIREMENTS You need Amiga OS starting from v3.0 and it even runs under os4.1 VERY smooth and fast, but I develope and use it on my e/uae installations (no amikit). Xui is compatible to any classic amiga with at least 3.0 rom and with or without gfx card. xui is also compatible to os 4.x as it is, no additional or alternative files needed! You need a jpg datatype to see all of xui, but on low-color or slow systems it is recommended to turn off background images (see INSTALLATION section). NEW VERSIONS screenshots and possibly newer versions are at http://www.psi5.com/~silva/afilter/index.html See http://otaku.oblinehome.de/openxui.readme for a list of recent changes. If you are interested, download a new xui every week. To enhance your collection of usefull background patterns go to: http://www.allfreebackgrounds.com/background_select.html (some of them are in this archive) WHAT IS IT i hope i dont disappoint you with telling you that XUI is neither written in c++, nor better than some other piece of software. my plans are that it should run on ALL amiga systems and compatible OSes starting with os3.0 with full speed beacause it is coded 100% in 68k assembler. XUI is custommade for programs written in 68k. xui is not meant as concurrence for anything and it is not better. its independent and started as an educational just for fun project or 'ego booster' that now may become useable by others. Why 68k asm? Why not, the user cannot see a difference and it runs on all amiga. Coding 68k asm as seen from ppc amigaos 68k emulator is an interpreter language like Java, but much faster. Writing a GUI-System is THE "Hello World" on Amiga. Every Coder once must do it. :-) INSTALLATION xui will run from the progdir just where you unpacked the archive, but if you want to install it permanently i suggest this: xuilibinfo -> config app to sys:prefs/ xuilibinfo.info -> config app icon to sys:prefs/ libs/xuimaster.library -> libs: libs/xui/#? -> libs:xui/ (its ok for now if this is missing) images/#? -> sys:prefs/presets/xui/images/ You can configure the image path with xuilibinfo. Please report bugs and opinions with debug info by enforcer, grim, etc. please report to silva@psi5.com. If you have a slow amiga or no gfxcard you can turn off the backfill images in the config: click "config" tab, scroll list down until you see the item "usebgimages", click it, then click on the checkbox in the upper right of the window and then click on "save". KNOWN APPS USING XUI Currently there is only 1 app using xui, the "xuifilter" is a ripper, scanner and monitor. its yet included in this archive! See xuifilter.readme! FREEWARE, CONTRIB-WARE and OPEN_SOURCE! This piece of software is freeware, read the DISCLAIMER at the bottom of this readme. Besides this XUI is also 'Contrib-Ware'. This means, if you like it or intend to use it, you are asked to contribute with a bug report, bugfix, function, xui app or client (i will support you). Of course you can be credited in readme with name and/or email addr if you want. if you feel like it, you can/may (but not needed!) donate me some on my xui- homepage: http://www.psi5.com/~silva/afilter/#xui i made xui open source (openxui = OX) to attract more people to it and to let them learn from it. open source does not mean that people may do with it what they want. its only for educational purposes and/or if people would like to contribute to it some function, feature or class. if someone uses some code or technique from xui in an own project he is asked to contribute to xui by writing a function, feature, class or bugfix. Functions to do are: 1. draw Icons and Logos: This is going to be done by Martin MASON März and APC1974! HOW TO ASSEMBLE 1. get "phxass" from aminet and put it into c: 2. unpack the openxui archive source directory to a directory 3. make an assign of "p:" to that directory (assign p: ) 4. make sure that you have an assign "INCLUDE:" to the path of the OS .i files 5. change dir to p: and execute the file "asmxui.bat" 6. library and "xuilibinfo" have been assembled to p: 7. copy xuimaster.library from p: to libs: if required (some os supports loading lib from progdir:) KNOWN BUGS - grabpoint of mosue in slider sometimes out of correct pos - morphos: strange displacement of the window resize frame when dragged - pressing mouse in list item and releasing outside list results in pressed state remaining active even that mousebutton is released - clickable area out of position in list gagdet - displacement of gradientslider under os3.0 - colorwheel drawing is sometimes broken under os4.1 - text in string gadget writes out of right border of its box - the jpg background/images could look bad when they have been saved with 100% quality. This is a bug in the datatypes. Save your images with 90% quality. - selcting tabs in the classlist of xuilibinfo and clicking on tabs generates strange behavior such as reseting class description to the hello message or hiliting previously selected entry in class list. HISTORY 11/2009 - fixed problem with slider class, gran point was in relation was to the container, not to the actual mosue pos - reimplemented filerequester (alpha demo) - added "buffer" object to hold variables that are local to a branch of objects, the buffer is accessed through xuiO_userbase. a buffer object may have only one member and that is usually a group or annother single object. the buffer object passes methods, e.g. OXM_GETLAYOUT, 1:1 to his member - added word-wrap and style and color changes to textfield gadget - xuilibinfo: built in asl file requester to select backfill images or path - window minsize may now be smaller than window size at opening a window - made the skins path configurable and able to read images from progdir when not installed so that user can test xui without installing the images - very optimized image-fill rountine so that the size of button, slider and gauge image could be drastically reduced. because of this xui will now load much faster on slow machines - fixed division by zero guru when list had as many entrys as fit in view and slider is dragged - added mini-grim guru handler to the xui default startup-code that gives a little debug info on crashes and that can let the program exit safe and with freeing all resources 10/2009 - fixed strange doslibrary crash under 4.1 when quiting (startupcode reworked) - built in nicer default colors - cleaned up the .i file, added lots of comments to the _lib.i file, made all tags lower case - added smooth redraw of progress-bar, no more flashing - added demo-application "xuifilter" (a ripper, moitor and file scanner) - a lot of internal changes that you cant see as a user, xui can now load external classes without requiring the app to open them - added ability to add an remove program-internal classes from a program - doublebuffering now needs only the mem that is really needed for the size of the window (prior to this allways a full screen bitmap was allocated) - minor changes, some new code here and there 9/2009 - added ability to configure background images - fixed crash on quiting that happened under morphos - changed case of "xui" in attribute names to lower - fixed crash on icon drawing when selecting "icon" in xuilibinfo classes list - fixed bug that caused app to crash on quitting under os4 - sorted files in the distributin archive, unpacks now to new directories - added missing code in vertical layout class - added option to turn off any images execept backgrounds. this speeds up load time on classic amigas very much if the gui uses images for whatever (for example the big XUI-logo). backgrounds can be turned off with an extra option which you will find in the congig list of the "xuilibinfo" app. for speedup of course the backgrounds must be also turned off. - fixed image displace in the image editors image dropbox that occured when window was resized - fixed bug that did set wrong value to the "red" input gadget when the "green" is edited - fixed bug that caused something in the color-editor not to be refreshed on change - workaround in OS 3.0 for nothing was updated when colorwheel knob is moved - fixed bug that caused crash on pressing "test" in the config-panel - fixed bug that caused colorwheel to be drawn twice each change - fixed displacement of colorwheel under os3.0/3.1 - added quick pixel-size check for png, gif, iff and bmp images - added custom (not by datatypes) QUICK pixel-size check for jpg images, now app launsches really fast even on classic amigas (datatypes need to process the whole image before they can tell us the sizes!) - fixed logo looking bad on low color amiga systems, reason was the logo had too many colors. now logo saved as jpg with 10% crunch and now it has lesser colors and look nice even on 32 colors (if these colors are not allocated allready and with colors very different from the grayscale in the logo) - added support for icon.library v39 icons (icon class still makes crashes on all amiga except e/uae, see known bugs) - improved slider-to-value connection, value now rounded up/down for better distribution of the values on the slider path - fixed bug that caused right "usebgimages" options in "config" tab to not be erased before drawn anew (occured after clicking OFF) - fixed bug that caused some images to be loaded twice, now startup is faster - fixed bitplane-depth bug that let xui crash on original amiga w/o gfxcard - currently removed icon-class as icon.library version required is bigger than 3.0 / 3.1 and xui should run on 3.0+ systems (crash reported by APC74) 8/2009 - removed "edit" button because now all edits are done from the config-tab - decided to maybe make xui open source in the near future - worked on images-config - changed internal behavior in some places - added icon drag-and-drop functionality (appwindow) - added flipped sliders with max pos in opposite direction - added connect class and slider-string-gauge connection - added double buffering for draw, now really soft! - added os4.1 opaque resize compatibility - added image fill backgrounds - fixed bugs 7/2009 - fixed nasty bugs - added configuration engine - added color engine - added door to boopsi colorwheel and gradientslider class older changes - added tabs gadget - added button-editor - added pages-gadget - added radiobuttons and checkmarks classes - fixed "i want to grow" messages for title, label and string classes - bugfixed frame and field classes - added filerequester class alpha, yet not really working but looks great - several tests by Simone Bevilacqua showed that it works 99% on Amiga OS 4, reported some bugs in the hotkey/button/inputfield-activation subsystem - added xuilibinfo tool to list classes with examples and show version info - fixed multiple accesses to addr null at startup, reported by stellan pistoor - added support for external classes (this is what this lib is made for) CREDITS OS3x testing and bugreports by APC74, Stellan Pistoor. Thank you for MuForce, MCP and Snoopdos. MORPHOS testing by Kai Koester. Thank you for Screenshots. Other testing: Simone Bevilacqua, Simon Archer, Tokai, Richard Wagenführer, Jocke Birging, Rainer Kraus, Lars Ouff, root131313, henes and Whose. All from #os4welt, #morphos and other Amiga chats and forums. List Sort Function: Fredrik Wikstrom Value to Dezimal String Function supplied (not written) by: Jolo @ amiga-news.de/forum/ Help with off-bitmap drawing for double buffered soft refresh and several other techniques: DerWanderer, bernd_afa, Holger, Thomas Rapp, Thore from http://www.amiga-news.de/forum/. Good Help: some other people at http://www.amiga-news.de/forum/, utilitybase.com/forum and several other forums. DISCLAIMER XUI IS PROVIDED "AS-IS" WITHOUT ANY WARRANTY. I CANNOT BE HELD LIABLE FOR ANY DAMAGE ARISING OUT OF THE (INABILITY OF MAKING) USE OF IT: USE AT YOUR OWN RISK. XUI is freeware. It can be redistributed provided that the whole package is kept intact and that no charge is applied. (Any part of) it cannot be used publically and/or to make profit without written permission.