-
Notifications
You must be signed in to change notification settings - Fork 0
MUI_Listview
It's important to know that MUI makes a difference between a list and a listview. A list is just a collection of some entries and is part of a listview, which attaches a scrollbar and input handling to the list.
During object creation time, you have to be careful not specifying listview tags for the list object or list tags for the listview object, both versions won't work. Once the objects are setup, you can of course talk to the listview as if it was the list directly.
Since MUI4 Listview class is just a wrapper for List class and List class can be used directly without a surrounding Listview object. As such List class of MUI4 understands all attributes and Methods of Listview class. However, if your application wants to maintain compatibility to MUI3 then of course the old Listview plus List approach must be used.
Attribute | Version | ISG | Type |
---|---|---|---|
MUIA_Listview_AgainClick | V20 | I.G | BOOL |
MUIA_Listview_ClickColumn | V7 | ..G | LONG |
MUIA_Listview_DefClickColumn | V7 | ISG | LONG |
MUIA_Listview_DoubleClick | V4 | I.G | BOOL |
MUIA_Listview_DragType | V11 | ISG | LONG |
MUIA_Listview_Input | V4 | I.. | BOOL |
MUIA_Listview_List | V4 | I.G | Object * |
MUIA_Listview_MultiSelect | V7 | I.. | LONG |
MUIA_Listview_ScrollerPos | V10 | I.. | BOOL |
MUIA_Listview_SelectChange | V4 | ..G | BOOL |
MUIA_Listview_AgainClick -- V20 [I.G], BOOL
, 0x804214c2
This attribute is set to TRUE whenever the user clicks on the same entry again, but not necessarily within the system's double click time.
MUIA_Listview_ClickColumn -- V7 [..G], LONG
, 0x8042d1b3
When using a multi column list, this attribute contains the number of the column where the user clicked.
MUIA_Listview_DefClickColumn -- V7 [ISG], LONG
, 0x8042b296
When the listview is controlled with the keyboard and the user presses RETURN, the value given here will be used as default for MUIA_Listview_ClickColumn.
MUIA_Listview_DoubleClick -- V4 [I.G], BOOL
, 0x80424635
This attribute is set to TRUE whenever the user double clicks on an entry in the list.
MUIA_Listview_DragType -- V11 [ISG], LONG
, 0x80425cd3
- MUIV_Listview_DragType_None
- MUIV_Listview_DragType_Immediate
If you want the user to be able to drag items out of your list, you must set this for the listview class. Currently, only one drag type is defined.
MUIA_Listview_Input -- V4 [I..], BOOL
, 0x8042682d
Setting this to FALSE will result in a read only listview.
Defaults to TRUE.
MUIA_Listview_List -- V4 [I.G], Object *
, 0x8042bcce
Every listview needs a list object as child. Specify it here.
As every other child, it will get disposes when its parent object is disposed.
ListviewObject,
MUIA_Listview_Input, FALSE,
MUIA_Listview_List, ListObject,
ReadListFrame,
MUIA_List_Format, ",,",
End,
nd;
MUIA_Listview_MultiSelect -- V7 [I..], LONG
, 0x80427e08
- MUIV_Listview_MultiSelect_None
- MUIV_Listview_MultiSelect_Default
- MUIV_Listview_MultiSelect_Shifted
- MUIV_Listview_MultiSelect_Always
Four possibilities exist for a listviews multi select capabilities:
MUIV_Listview_MultiSelect_None
The listview cannot multiselect at all.
MUIV_Listview_MultiSelect_Default
The multi select type (with or without shift) depends on the user's
preferences setting.
MUIV_Listview_MultiSelect_Shifted
Overrides the users prefs, multi selecting only together with shift key.
MUIV_Listview_MultiSelect_Always
Overrides the users prefs, multi selecting without shift key.
Please do NOT override the users prefs unless you have a good reason!
MUIA_Listview_ScrollerPos -- V10 [I..], BOOL
, 0x8042b1b4
- MUIV_Listview_ScrollerPos_Default
- MUIV_Listview_ScrollerPos_Left
- MUIV_Listview_ScrollerPos_Right
- MUIV_Listview_ScrollerPos_None
Specifies the position of a listviews scrollbar. Don't use this tag unless it's absolutely required!
If you specify MUIV_Listview_ScrollerPos_None, your listview won't get a scroller at all and look much like a list object alone. However, listviews without scroller are still more powerful than list objects as they feature e.g. drag&drop possibilities.
Creating listviews without a scrollbar makes sense if you want to have the scrollbar somewhere else, e.g. outside of a horizontal virtual group where the listview resides. This technique allows the creation of horizontally scrollable listviews.
When you create the scrollbar on your own, connect it to the list object (not listview object!) like this:
DoMethod(sbar, MUIM_Notify, MUIA_Prop_First, MUIV_EveryTime,
list, 3, MUIM_Set,
MUIA_List_TopPixel, MUIV_TriggerValue);
DoMethod(list, MUIM_Notify, MUIA_List_TotalPixel, MUIV_EveryTime,
sbar, 3, MUIM_Set,
MUIA_Prop_Entries, MUIV_TriggerValue);
DoMethod(list, MUIM_Notify, MUIA_List_VisiblePixel, MUIV_EveryTime,
sbar, 3, MUIM_Set,
MUIA_Prop_Visible, MUIV_TriggerValue);
DoMethod(list, MUIM_Notify, MUIA_List_TopPixel, MUIV_EveryTime,
sbar, 3, MUIM_Set,
MUIA_Prop_First, MUIV_TriggerValue);
MUIA_Listview_SelectChange -- V4 [..G], BOOL
, 0x8042178f
This attribute is set to TRUE whenever the selection state of one or more items in the list is changing. You can use this e.g. if you want to display the number of selected items in a status line.
Copyright © 1992-2006 by Stefan Stuntz Copyright © 2006-2021 by Thore Böckelmann, Jens Maus |
MUI for AmigaOS Homepage MUI for AmigaOS Wiki |
Updated: 11-Oct-2021 |