Initial commit
[amiga/OpenBoopsi.git] / gadgets / ListView / BoopsiLV.readme
1 Short:    Fast boopsi ListView class with many features (w/ src)
2 Author:   bernardo.innocenti@usa.net (Bernardo Innocenti)
3 Uploader: bernardo.innocenti@usa.net (Bernardo Innocenti)
4 Type:     dev/src
5 Version:  2.0
6
7  The ListBoxClass is a flexible and efficient boopsi gadget class which
8 replaces the original GadTools LISTVIEW_KIND gadget and offers a lot
9 more functionality. It's a subclass of the groupgclass and incorporates
10 several other gadgets to build a full featured listview with vertical
11 and horizontal scroll bars, a surrounding border and, of course, a
12 ListView object.
13
14  The ListViewClass is a subclass of Intuition's gadgetclass which
15 builds a plain listview gadget without any border or scroll bars.
16 It handles selection of multiple items and it can be resized on the fly.
17 The GFLG_REL#? attributes are fully supported and you can even display
18 a list of images and other boopsi objects. Lists with multiple columns
19 are possible but not yet implemented. Horizontal scrolling would also
20 be easy to add. Usually you don't need to create objects from this class
21 directly because the ListBoxClass will do it for you.
22
23  The LVDemo program demonstrates the usage of both classes. The
24 ListViewClass is attached to scroll bars in the window borders.
25 The demo is also a useful source of information on several
26 Intuition and boopsi topics.
27
28  Three different binary versions are provided:
29
30         LVDemo_Generic
31                 Works even on plain 68000 and includes OS 2.0 support
32
33         LVDemo_020_OS30
34                 Optimized for 68020, no OS 2.0 support
35
36         LVDemo_Trace
37                 Outputs debug messages with kprintf(), view them with
38                 serial terminal or sushi
39
40
41  Some features:
42
43         + Easy to use (almost a drop-in replacement for LISTVIEW_KIND)
44         + Can be resized and supports GREL_#? flags
45         + Multiple selection of items
46         + Notifies your `boopsi' sliders
47         + Multiple columns (TODO)
48         + Redraws quickly without clearing
49           (which is good for solid window sizing)
50         + Horizontal scrolling (TODO)
51         + Items can be `boopsi' images as well as texts
52         + Using arrays instead of exec lists
53         + You can use `boopsi' label images instead of plain text
54         + You can use your own custom rendering hook
55         + You can use your own item-retriving callback hook
56         + List titles (TODO)
57         + Full Keyboard control (shift, alt and control key combos
58           are supported)
59         + Asynchronous scrolling with inertia (TODO)
60         + OS 3.0 optimized (V39-only version also available)
61         + RTG friendly and optimized (no planar stuff in chunky bitmaps)
62         + Small code size! (less then 10KB)
63         + Written in C to be highly portable across compilers and CPUs
64         + Comes with source code with detailed comments
65         + Source code compiles with SAS/C, StormC and GCC
66         + Subclasses can be easlily derived from the base listview class
67
68
69 The source code shows how to:
70
71         * Build a `boopsi' class on top of the gadgetclass
72         * Build a `boopsi' class on top of the groupgclass
73         * Write a `boopsi' gadget dispatcher with complex GM_DRAW
74           and GM_HANDLEINPUT
75         * Use the `boopsi' sysiclass images
76         * Connect `boopsi' objects together using the icclass
77         * Overlay the buttongclass to make a scroll button
78         * Create a sizeable window with sliders
79         * Make a C program without startup
80         * Correctly opening/closing libraries, windows and other
81           system resources