Class: List
Class: List
1. Add Standard entry support
Class Hierarchy:
DFBaseListBoxListMixins:
Dflabel_Mixin, Multi_Item_Shadow_Mixin, Standard_Object_Mixin,
Direct Known Subclasses:
AbstractTreeView, Class Definition
Functions and Procedures
Construct_Object()
OnChange()
Page(integer bState)
The following procedures should be moved to C code. This resolves
certain issues with mapping DF list controls to windows controls.
Users are encouraged to only use two modes of list selection:
select_mode = MULTI_SELECT | SINGLE_SELECT
DO NOT use NO_Select - it won't work right.
Special functionality to Note:
1. Set Select_Count to TRUE : If multi-select sets all select-states to TRUE
if single-select sets current item to TRUE
Set Select_Count to FALSE: Sets all items to false
2. Space bar no Longer toggles select state. If you want this. Create the following:
on_key key_space send toggle_Current_item
3. There is no message that is fired every time the select-state changes.
4. There is no message that ALWAYS gets sent when an object's select_state is
toggled (e.g. marking range via shift+mouse). Do not use set select_state or
item_changed_state for multi-select augmentations. With single select lists
you CAN use set current_item or set Select_State
when paging non-multi lists the select-state item is lost. This fixes this
integerSelect_Count()
The internal Select_Count gets hopelessly out of synch with the
select count in the windows control. Here is what we must do:
1. If no-window control -find the count the hard way. Count them!
2. If window control and Multi select: Forward get count
this works because when paged, DF just gets the LB_SELCOUNT property
which is right)
3. If window control and not multi: Will either be 0 or 1. Check current_item to
see if it is selected. We can't use LB_SELCOUNT because it returns -1
Set(Integer iItem)
set(integer bState)
Set Select_Count is supposed to clear or select all items. This fixes
it to do the following:
If F - clear all selected items
if T and Multi - Select all items
If T and not Multi - Set select-state of current item to True
Set(Integer iItm Integer bSt)
Correct select-states for paged lists.
When the list is not paged it is fine.
When paged, and singlethe only way to get the item selected is to set
its current_item. The only way to clear a selected item is to
send the windows message LB_SERCURSEL
when multi, we need to send windows messages LB_SETSEL
toggle_Current_item()
References (2):