Short: Fast boopsi ListView class with many features (w/ src) Author: bernardo.innocenti@usa.net (Bernardo Innocenti) Uploader: bernardo.innocenti@usa.net (Bernardo Innocenti) Type: dev/src Version: 2.0 The ListBoxClass is a flexible and efficient boopsi gadget class which replaces the original GadTools LISTVIEW_KIND gadget and offers a lot more functionality. It's a subclass of the groupgclass and incorporates several other gadgets to build a full featured listview with vertical and horizontal scroll bars, a surrounding border and, of course, a ListView object. The ListViewClass is a subclass of Intuition's gadgetclass which builds a plain listview gadget without any border or scroll bars. It handles selection of multiple items and it can be resized on the fly. The GFLG_REL#? attributes are fully supported and you can even display a list of images and other boopsi objects. Lists with multiple columns are possible but not yet implemented. Horizontal scrolling would also be easy to add. Usually you don't need to create objects from this class directly because the ListBoxClass will do it for you. The LVDemo program demonstrates the usage of both classes. The ListViewClass is attached to scroll bars in the window borders. The demo is also a useful source of information on several Intuition and boopsi topics. Three different binary versions are provided: LVDemo_Generic Works even on plain 68000 and includes OS 2.0 support LVDemo_020_OS30 Optimized for 68020, no OS 2.0 support LVDemo_Trace Outputs debug messages with kprintf(), view them with serial terminal or sushi Some features: + Easy to use (almost a drop-in replacement for LISTVIEW_KIND) + Can be resized and supports GREL_#? flags + Multiple selection of items + Notifies your `boopsi' sliders + Multiple columns (TODO) + Redraws quickly without clearing (which is good for solid window sizing) + Horizontal scrolling (TODO) + Items can be `boopsi' images as well as texts + Using arrays instead of exec lists + You can use `boopsi' label images instead of plain text + You can use your own custom rendering hook + You can use your own item-retriving callback hook + List titles (TODO) + Full Keyboard control (shift, alt and control key combos are supported) + Asynchronous scrolling with inertia (TODO) + OS 3.0 optimized (V39-only version also available) + RTG friendly and optimized (no planar stuff in chunky bitmaps) + Small code size! (less then 10KB) + Written in C to be highly portable across compilers and CPUs + Comes with source code with detailed comments + Source code compiles with SAS/C, StormC and GCC + Subclasses can be easlily derived from the base listview class The source code shows how to: * Build a `boopsi' class on top of the gadgetclass * Build a `boopsi' class on top of the groupgclass * Write a `boopsi' gadget dispatcher with complex GM_DRAW and GM_HANDLEINPUT * Use the `boopsi' sysiclass images * Connect `boopsi' objects together using the icclass * Overlay the buttongclass to make a scroll button * Create a sizeable window with sliders * Make a C program without startup * Correctly opening/closing libraries, windows and other system resources