Repository navigation
tkListTree
Home › All Categories › tkControls › tkListTree
Shows a scrolling list of rows you paint that is also a tree, with columns and editing.
tkListTree is a list box and a tree view in one control. Rows have a fixed height and are drawn by your paint callback; the control decides which rows are visible, where they sit and what state each is in. A flat list, a grouped list (collapsible header rows), a report with resizable columns and a tree of any depth with twisties are all the same control. It also does single, multiple and extended selection, per-row tooltips, in-place label editing and drag reordering.
Reach for it for a file pane, a results list, a symbol browser or a settings tree. Rows are addressed by model index, the order you added them: collapsing a group or a node hides rows but never renumbers anything, and selection stays on the rows across a collapse.
The control builds its own parts: the row surface, a tkVScrollBar that shows only while the rows overflow, and a tkColumnHeader band that starts hidden. The in-place editor is a tkTextBox. Setters are silent; the callbacks fire only for what the user does.
#import "vendor/tkControls/tkListTree"
using tkListTree
using tkHost
using tkPaintThe module brings in tkHost, tkTheme, tkTooltip, tkTextBox, tkColumnHeader, tkVScrollBar and tkScrollBar. Add using tkColumnHeader to name the HDR_* callback types for the column band.
A tree with twisties and rename-in-place, using the built-in row painter. gHost is the window (tkHost); gFont10 is a font opened with tkHost_OpenFont.
sub OnSel( byval hList as TK_WIDGET ptr, byval row as integer )
print "selected: "; tkListTree_GetText( hList, row )
end sub
sub PaintRow( byval p as TKLISTTREE_PAINTINFO ptr )
tkListTree_PaintRowDefault( p )
end sub
dim as TK_WIDGET ptr gTree = tkListTree_Create( tkHost_Root( gHost ), 1020 )
tkListTree_SetFont( gTree, gFont10 )
tkListTree_SetPaintCallback( gTree, @PaintRow )
tkListTree_SetSelChangeCallback( gTree, @OnSel )
tkListTree_SetTreeIndent( gTree, true )
tkListTree_ShowTwisty( gTree, true )
tkListTree_EnableLabelEdit( gTree, true )
tkListTree_SetBorderWidth( gTree, 1 )
dim as integer proj = tkListTree_AddNode( gTree, -1, "MyProject" )
dim as integer src = tkListTree_AddNode( gTree, proj, "src" )
tkListTree_AddNode( gTree, src, "main.tiko" )
dim as integer docs = tkListTree_AddNode( gTree, proj, "docs" )
tkListTree_AddNode( gTree, docs, "README.md" )
tkListTree_SetCurSel( gTree, proj )
tkWidget_SetPos( gTree, 16, 16, 300, 240 )For a report, add columns with tkListTree_AddColumn, call tkListTree_ShowHeader( h, true ) and fill cells with tkListTree_SetCellText. Column 0 is the row's text. The toolchain's examples/tkControls/tkListTree/ shows a grouped list, a report and a tree side by side.
The PsListTree page remains the behaviour reference for everything not listed here: the row model, groups and trees, selection, the keyboard, batch updates, drag reorder and label editing all work the same way.
-
PsListTree_*→tkListTree_*;PSLISTTREE_*types →TKLISTTREE_*. - The unprefixed callback types take an
LT_prefix:PaintCallbackSub→LT_PaintCallbackSub,SelChangeCallbackSub→LT_SelChangeCallbackSub, and so on for every callback. -
tkListTree_Create( parent, id )takes aTK_WIDGET ptrparent and returns the control as aTK_WIDGET ptr. - Fonts are
TTF_Font ptr(SetFont,SetHeaderFont,SetTwistyFont). -
TKLISTTREE_MESSAGEINFO.hListis the control, not the row surface. It carries surface-localx,y,clicksandwheelYinstead of wParam and lParam; a double click isTKM_LBUTTONDOWNwithclicks = 2. - The twisty is a drawn chevron until you give it a glyph font with
tkListTree_SetTwistyFont. - The mouse wheel scrolls 3 rows a notch, at most a page. A wheel against the end is left unclaimed, so a parent can scroll.
- Tooltips use the tkControls tooltip;
tkListTree_GetTooltipHandlereturns aTK_TIP ptr. The tooltip callback supplies the text, else the row text is shown. - The editor is created on the first edit and hidden, not destroyed, when an edit ends.
- Added:
tkListTree_PaintRowDefault, a ready-made row painter you can call from your paint callback (without a paint callback the rows stay blank, as before);hListandhasFocusinTKLISTTREE_PAINTINFO;tkListTree_GetSurface,tkListTree_GetEditor,tkListTree_GetItemHeightPx,tkListTree_IsDragging. - No equivalent:
FilterMessage(Enter and Escape reach the editor on their own), theWM_CHARswallowing helpers,SetTooltipMode/GetTooltipMode/GetPsTooltipHandle,ProbeRenderedPixel(use the tkTest pixel probes),PositionWindows, PsRegistry andRescale(a scale change re-derives the metrics itself).
Every public name the module declares, as the source declares it. Signatures are exact; type bodies keep their field comments and drop the rest.
const CLISTTREE_DEFAULT_ROWHEIGHT = 22 ' unscaled
const CLISTTREE_DEFAULT_HEADERHEIGHT = 24 ' unscaled
const CLISTTREE_DEFAULT_SCROLLWIDTH = 12 ' unscaled
const CLISTTREE_DEFAULT_INDENT = 16 ' unscaled
const CLISTTREE_DEFAULT_TWISTY = 16 ' unscaled
const CLISTTREE_DRAG_THRESHOLD = 4 ' scaled: SDL has no SM_CXDRAG
const CLISTTREE_DRAGSCROLL_ZONE = 16 ' scaled
const CLISTTREE_DRAGSCROLL_MS = 60type TKLISTTREE_CELLINFO
iCol as integer
rc as TKRECT
wszText as ustring
end type
type TKLISTTREE_PAINTINFO
hList as TK_WIDGET ptr ' the control
itemID as integer ' MODEL index
b as TK_PAINT ptr
rc as TKRECT ' surface-local
isHot as boolean
isSelected as boolean
isFocused as boolean ' the caret row
hasFocus as boolean ' the surface has the keyboard focus (tk addition)
isHeader as boolean
isCollapsed as boolean
isSpanned as boolean
isSelectable as boolean
wszCaption as ustring
level as integer
hasChildren as boolean
isExpanded as boolean
indent as integer
rcTwisty as TKRECT
columnCount as integer
cells as TKLISTTREE_CELLINFO ptr
end type
type TKLISTTREE_MESSAGEINFO
hList as TK_WIDGET ptr
msg as long ' TKM_*
x as single ' surface-local
y as single
clicks as long
wheelY as single
idx as integer ' MODEL row under the mouse, or -1
isCtrl as boolean
isShift as boolean
end type
type TKLISTTREE_ROWINFO
IsHeader as boolean = false
bCollapsed as boolean = false
bSpanColumns as boolean = false
bSelectable as boolean = true
level as integer = 0
selected as boolean = false
Text as ustring
cells(any) as ustring ' columns 1..N, sparse
itemData as integer
itemDataExtra as integer
declare sub EnsureCells( byval n as integer )
declare sub TrimCells( byval n as integer )
end type
type TKLISTTREE_DROPINFO
hList as TK_WIDGET ptr
srcRows as integer ptr
srcCount as integer
insertBefore as integer
onHeader as boolean
targetRow as integer
targetInfo as TKLISTTREE_ROWINFO ptr
end type
type TKLISTTREE_STATE ' per-instance state; reach it through the procedures
type LT_PaintCallbackSub as sub( byval p as TKLISTTREE_PAINTINFO ptr )
type LT_MessageCallbackFunc as function( byval m as TKLISTTREE_MESSAGEINFO ptr ) as boolean
type LT_TooltipCallbackFunc as function( byval hList as TK_WIDGET ptr, byval row as integer, byval col as integer ) as ustring
type LT_SelChangeCallbackSub as sub( byval hList as TK_WIDGET ptr, byval row as integer )
type LT_ActivateCallbackSub as sub( byval hList as TK_WIDGET ptr, byval row as integer )
type LT_CanDropCallbackFunc as function( byval p as TKLISTTREE_DROPINFO ptr ) as boolean
type LT_DragDropCallbackSub as sub( byval hList as TK_WIDGET ptr, byval newFirstRow as integer, byval count as integer )
type LT_BeginLabelEditCallbackFunc as function( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
type LT_EndLabelEditCallbackFunc as function( byval hList as TK_WIDGET ptr, byval row as integer, byval newText as ustring ) as boolean
type LT_ExpandCollapseCallbackSub as sub( byval hList as TK_WIDGET ptr, byval row as integer, byval bExpanded as boolean )function tkListTree_Create( byval hParent as TK_WIDGET ptr, byval CtrlID as long ) as TK_WIDGET ptr
function tkListTree_AddString( byval hList as TK_WIDGET ptr, byval Text as ustring, byval itemData as integer = 0, byval itemDataExtra as integer = 0 ) as integer
function tkListTree_AddHeader( byval hList as TK_WIDGET ptr, byval Text as ustring, byval itemData as integer = 0, byval itemDataExtra as integer = 0 ) as integer
function tkListTree_InsertString( byval hList as TK_WIDGET ptr, byval row as integer, byval Text as ustring, byval itemData as integer = 0, byval itemDataExtra as integer = 0 ) as integer
function tkListTree_AddNode( byval hList as TK_WIDGET ptr, byval parentRow as integer, byval Text as ustring, byval itemData as integer = 0, byval itemDataExtra as integer = 0 ) as integer
function tkListTree_InsertNode( byval hList as TK_WIDGET ptr, byval parentRow as integer, byval childIndex as integer, byval Text as ustring, byval itemData as integer = 0, byval itemDataExtra as integer = 0 ) as integer
function tkListTree_DeleteString( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
sub tkListTree_Clear( byval hList as TK_WIDGET ptr )
function tkListTree_GetCount( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_GetVisibleCount( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_GetText( byval hList as TK_WIDGET ptr, byval row as integer ) as ustring
function tkListTree_SetText( byval hList as TK_WIDGET ptr, byval row as integer, byval Text as ustring ) as boolean
function tkListTree_GetCellText( byval hList as TK_WIDGET ptr, byval row as integer, byval col as integer ) as ustring
function tkListTree_SetCellText( byval hList as TK_WIDGET ptr, byval row as integer, byval col as integer, byval Text as ustring ) as boolean
function tkListTree_GetItemData( byval hList as TK_WIDGET ptr, byval row as integer ) as integer
function tkListTree_SetItemData( byval hList as TK_WIDGET ptr, byval row as integer, byval itemData as integer ) as boolean
function tkListTree_GetItemDataExtra( byval hList as TK_WIDGET ptr, byval row as integer ) as integer
function tkListTree_SetItemDataExtra( byval hList as TK_WIDGET ptr, byval row as integer, byval itemDataExtra as integer ) as boolean
sub tkListTree_BeginUpdate( byval hList as TK_WIDGET ptr )
sub tkListTree_EndUpdate( byval hList as TK_WIDGET ptr )
sub tkListTree_Refresh( byval hList as TK_WIDGET ptr )
sub tkListTree_InvalidateRow( byval hList as TK_WIDGET ptr, byval row as integer )
sub tkListTree_InvalidateRows( byval hList as TK_WIDGET ptr, byval first_ as integer, byval last_ as integer )
sub tkListTree_UpdateNow( byval hList as TK_WIDGET ptr )
function tkListTree_IsHeader( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
function tkListTree_IsCollapsed( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
function tkListTree_CollapseRow( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
function tkListTree_ExpandRow( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
function tkListTree_ToggleRow( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
function tkListTree_SetNodeCollapsed( byval hList as TK_WIDGET ptr, byval row as integer, byval bCollapsed as boolean ) as boolean
function tkListTree_CollapseAll( byval hList as TK_WIDGET ptr ) as boolean
function tkListTree_ExpandAll( byval hList as TK_WIDGET ptr ) as boolean
function tkListTree_GetLevel( byval hList as TK_WIDGET ptr, byval row as integer ) as integer
function tkListTree_GetParent( byval hList as TK_WIDGET ptr, byval row as integer ) as integer
function tkListTree_GetChildCount( byval hList as TK_WIDGET ptr, byval row as integer ) as integer
function tkListTree_HasChildren( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
function tkListTree_GetCurSel( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_SetCurSel( byval hList as TK_WIDGET ptr, byval row as integer ) as integer
function tkListTree_GetTopIndex( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_SetTopIndex( byval hList as TK_WIDGET ptr, byval row as integer ) as integer
function tkListTree_GetSel( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
function tkListTree_SetSel( byval hList as TK_WIDGET ptr, byval row as integer, byval state as boolean ) as boolean
function tkListTree_GetSelCount( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_GetSelItems( byval hList as TK_WIDGET ptr, selItems() as integer ) as integer
sub tkListTree_SelectAll( byval hList as TK_WIDGET ptr, byval state as boolean )
function tkListTree_SetMultiSelect( byval hList as TK_WIDGET ptr, byval enable as boolean ) as boolean
function tkListTree_SetExtendedSelect( byval hList as TK_WIDGET ptr, byval enable as boolean ) as boolean
function tkListTree_PreventDoubleClick( byval hList as TK_WIDGET ptr, byval enable as boolean = true ) as boolean
function tkListTree_SetRowSpanColumns( byval hList as TK_WIDGET ptr, byval row as integer, byval bSpan as boolean = true ) as boolean
function tkListTree_GetRowSpanColumns( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
function tkListTree_SetRowSelectable( byval hList as TK_WIDGET ptr, byval row as integer, byval bSelectable as boolean = true ) as boolean
function tkListTree_GetRowSelectable( byval hList as TK_WIDGET ptr, byval row as integer ) as boolean
function tkListTree_SetDragReorder( byval hList as TK_WIDGET ptr, byval enable as boolean = true ) as boolean
function tkListTree_GetDragReorder( byval hList as TK_WIDGET ptr ) as boolean
function tkListTree_MoveRows( byval hList as TK_WIDGET ptr, srcRows() as integer, byval insertBefore as integer ) as integer
function tkListTree_SetDragIndicatorColor( byval hList as TK_WIDGET ptr, byval clr as ulong ) as ulong
function tkListTree_GetDragIndicatorColor( byval hList as TK_WIDGET ptr ) as ulong
function tkListTree_IsDragging( byval hList as TK_WIDGET ptr ) as boolean
function tkListTree_GetBackColor( byval hList as TK_WIDGET ptr ) as ulong
function tkListTree_SetBackColor( byval hList as TK_WIDGET ptr, byval clr as ulong ) as ulong
function tkListTree_GetRowHeight( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_SetRowHeight( byval hList as TK_WIDGET ptr, byval nHeight as integer ) as integer
function tkListTree_GetItemHeightPx( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_GetFont( byval hList as TK_WIDGET ptr ) as TTF_Font ptr
function tkListTree_SetFont( byval hList as TK_WIDGET ptr, byval f as TTF_Font ptr ) as boolean
function tkListTree_GetBorderWidth( byval hList as TK_WIDGET ptr ) as integer
sub tkListTree_SetBorderWidth( byval hList as TK_WIDGET ptr, byval nWidth as integer )
function tkListTree_GetBorderColor( byval hList as TK_WIDGET ptr ) as ulong
sub tkListTree_SetBorderColor( byval hList as TK_WIDGET ptr, byval clr as ulong )
function tkListTree_SetTreeIndent( byval hList as TK_WIDGET ptr, byval enable as boolean = true ) as boolean
function tkListTree_GetTreeIndent( byval hList as TK_WIDGET ptr ) as boolean
function tkListTree_SetIndentWidth( byval hList as TK_WIDGET ptr, byval nWidth as integer ) as integer
function tkListTree_GetIndentWidth( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_ShowTwisty( byval hList as TK_WIDGET ptr, byval enable as boolean = true ) as boolean
function tkListTree_IsTwistyShown( byval hList as TK_WIDGET ptr ) as boolean
sub tkListTree_SetTwistyWidth( byval hList as TK_WIDGET ptr, byval nWidth as integer )
sub tkListTree_SetTwistyColor( byval hList as TK_WIDGET ptr, byval clr as ulong )
sub tkListTree_SetTwistyFont( byval hList as TK_WIDGET ptr, byval f as TTF_Font ptr )
sub tkListTree_SetTwistyGlyphs( byval hList as TK_WIDGET ptr, byval wszExpanded as ustring, byval wszCollapsed as ustring )
function tkListTree_EnableLabelEdit( byval hList as TK_WIDGET ptr, byval enable as boolean = true ) as boolean
function tkListTree_IsLabelEditEnabled( byval hList as TK_WIDGET ptr ) as boolean
function tkListTree_SetClickToEdit( byval hList as TK_WIDGET ptr, byval enable as boolean = true ) as boolean
function tkListTree_SetEditColumn( byval hList as TK_WIDGET ptr, byval col as integer ) as boolean
function tkListTree_GetEditColumn( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_SetEnterEdits( byval hList as TK_WIDGET ptr, byval enable as boolean = true ) as boolean
sub tkListTree_SetEditColors( byval hList as TK_WIDGET ptr, byval clrBack as ulong, byval clrFore as ulong, byval clrBorder as ulong, byval clrFocusBorder as ulong )
sub tkListTree_SetEditSelectAll( byval hList as TK_WIDGET ptr, byval enable as boolean )
sub tkListTree_SetEditTextInset( byval hList as TK_WIDGET ptr, byval nPx as integer )
function tkListTree_BeginEdit( byval hList as TK_WIDGET ptr, byval row as integer, byval col as integer = 0 ) as boolean
function tkListTree_EndEdit( byval hList as TK_WIDGET ptr, byval bCommit as boolean = true ) as boolean
function tkListTree_IsEditing( byval hList as TK_WIDGET ptr ) as boolean
function tkListTree_GetEditRow( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_GetEditCol( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_GetEditor( byval hList as TK_WIDGET ptr ) as TK_WIDGET ptr
function tkListTree_GetTooltipHandle( byval hList as TK_WIDGET ptr ) as TK_TIP ptr
sub tkListTree_SetHoverTime( byval hList as TK_WIDGET ptr, byval ms as long )
sub tkListTree_SetAutoPopTime( byval hList as TK_WIDGET ptr, byval ms as long )
sub tkListTree_SetReshowTime( byval hList as TK_WIDGET ptr, byval ms as long )
function tkListTree_GetScrollBar( byval hList as TK_WIDGET ptr ) as TK_WIDGET ptr
sub tkListTree_SetScrollBarWidth( byval hList as TK_WIDGET ptr, byval nWidth as integer )
sub tkListTree_SetScrollBarColors( byval hList as TK_WIDGET ptr, byval backclr as ulong, byval foreclr as ulong, byval foreclrhot as ulong )
sub tkListTree_SetScrollBarDividerColor( byval hList as TK_WIDGET ptr, byval clr as ulong, byval bShow as boolean = true )
sub tkListTree_SetScrollBarPaintCallback( byval hList as TK_WIDGET ptr, byval usersub as VScrollPaintCallbackSub )
function tkListTree_AddColumn( byval hList as TK_WIDGET ptr, byval Text as ustring, byval nWidth as integer = 100, byval nMinWidth as integer = 0, byval itemData as integer = 0 ) as integer
function tkListTree_InsertColumn( byval hList as TK_WIDGET ptr, byval idx as integer, byval Text as ustring, byval nWidth as integer = 100, byval nMinWidth as integer = 0, byval itemData as integer = 0 ) as integer
function tkListTree_DeleteColumn( byval hList as TK_WIDGET ptr, byval idx as integer ) as boolean
sub tkListTree_ClearColumns( byval hList as TK_WIDGET ptr )
function tkListTree_GetColumnCount( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_GetColumnText( byval hList as TK_WIDGET ptr, byval idx as integer ) as ustring
function tkListTree_SetColumnText( byval hList as TK_WIDGET ptr, byval idx as integer, byval Text as ustring ) as boolean
function tkListTree_GetColumnWidth( byval hList as TK_WIDGET ptr, byval idx as integer ) as integer
function tkListTree_SetColumnWidth( byval hList as TK_WIDGET ptr, byval idx as integer, byval nWidth as integer ) as boolean
function tkListTree_GetColumnRect( byval hList as TK_WIDGET ptr, byval idx as integer, byref rc as TKRECT ) as boolean
function tkListTree_GetColumnMinWidth( byval hList as TK_WIDGET ptr, byval idx as integer ) as integer
function tkListTree_SetColumnMinWidth( byval hList as TK_WIDGET ptr, byval idx as integer, byval nMinWidth as integer ) as boolean
function tkListTree_GetFillColumn( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_SetFillColumn( byval hList as TK_WIDGET ptr, byval idx as integer ) as boolean
function tkListTree_ShowHeader( byval hList as TK_WIDGET ptr, byval bShow as boolean = true ) as boolean
function tkListTree_IsHeaderVisible( byval hList as TK_WIDGET ptr ) as boolean
function tkListTree_GetHeaderHeight( byval hList as TK_WIDGET ptr ) as integer
function tkListTree_SetHeaderHeight( byval hList as TK_WIDGET ptr, byval nHeight as integer ) as integer
function tkListTree_GetHeader( byval hList as TK_WIDGET ptr ) as TK_WIDGET ptr
function tkListTree_GetSurface( byval hList as TK_WIDGET ptr ) as TK_WIDGET ptr
sub tkListTree_SetPaintCallback( byval hList as TK_WIDGET ptr, byval usersub as LT_PaintCallbackSub )
sub tkListTree_SetMessageCallback( byval hList as TK_WIDGET ptr, byval userfunc as LT_MessageCallbackFunc )
sub tkListTree_SetTooltipCallback( byval hList as TK_WIDGET ptr, byval userfunc as LT_TooltipCallbackFunc )
sub tkListTree_SetSelChangeCallback( byval hList as TK_WIDGET ptr, byval usersub as LT_SelChangeCallbackSub )
sub tkListTree_SetActivateCallback( byval hList as TK_WIDGET ptr, byval usersub as LT_ActivateCallbackSub )
sub tkListTree_SetBeginLabelEditCallback( byval hList as TK_WIDGET ptr, byval userfunc as LT_BeginLabelEditCallbackFunc )
sub tkListTree_SetEndLabelEditCallback( byval hList as TK_WIDGET ptr, byval userfunc as LT_EndLabelEditCallbackFunc )
sub tkListTree_SetExpandCollapseCallback( byval hList as TK_WIDGET ptr, byval usersub as LT_ExpandCollapseCallbackSub )
sub tkListTree_SetCanDropCallback( byval hList as TK_WIDGET ptr, byval userfunc as LT_CanDropCallbackFunc )
sub tkListTree_SetDragDropCallback( byval hList as TK_WIDGET ptr, byval usersub as LT_DragDropCallbackSub )
sub tkListTree_SetColumnResizeCallback( byval hList as TK_WIDGET ptr, byval usersub as HDR_WidthChangedCallbackSub )
sub tkListTree_SetColumnClickCallback( byval hList as TK_WIDGET ptr, byval usersub as HDR_ClickCallbackSub )
sub tkListTree_SetColumnAutoSizeCallback( byval hList as TK_WIDGET ptr, byval userfunc as HDR_AutoSizeCallbackFunc )
sub tkListTree_SetHeaderPaintCallback( byval hList as TK_WIDGET ptr, byval usersub as HDR_PaintCallbackSub )
sub tkListTree_SetHeaderTooltipCallback( byval hList as TK_WIDGET ptr, byval userfunc as HDR_TooltipCallbackFunc )
sub tkListTree_SetHeaderBackColor( byval hList as TK_WIDGET ptr, byval clr as ulong )
sub tkListTree_SetHeaderFont( byval hList as TK_WIDGET ptr, byval f as TTF_Font ptr )
sub tkListTree_ApplyTheme( byval hList as TK_WIDGET ptr, byref t as TKTHEME_COLORS )
sub tkListTree_UnpinColors( byval hList as TK_WIDGET ptr )
sub tkListTree_ApplyFonts( byval hList as TK_WIDGET ptr, byval fText as TTF_Font ptr, byval fGlyph as TTF_Font ptr )
sub tkListTree_PaintRowDefault( byval pi as TKLISTTREE_PAINTINFO ptr )- tkControls
- tkApp, tkHost
- PsListTree, the PsControls control
tiko-lang · Home · Feature Index · Keyword Index · License
FreeBASIC manual pages reproduced under the GNU FDL 1.3.
- Generics
- Interfaces
- For Each
- Iterators
- Tuples
- Array Results
- Defer
- Lambdas
- Block Strings
- Partial Types
- String Slices
- Embed
- Typed Variadics
- C Header Import
- Foreign Library Linking
- UString
- Fixed-Width Types
- Nullptr
- String Library
- Format
- Array
- Map
- Set
- LinkedList
- OrderedMap
- OrderedSet
- Sorting
- Optional
- Result
- Smart Pointers
- Date and Time (Chrono)
- Filesystem
- File Streams
- Config (INI and TOML)
- Codec
- Hash
- UUID
- OS
- Process
- Net
- HTTP and TLS
- Math Library
- Finance
- Logging
- Terminal TUI Library
- PsControls
- tkControls
- sys/win
- Goroutines and Channels
- LLVM Backend
- tiko build
- TIKO_COMPILER
- Variable Declarations
- Standard Data Types
- User Defined Types
- Procedures
- Operators
- Control Flow Statements
- Converting Data Types
- Array Functions
- String Functions
- Mathematical Functions
- Bit Manipulation
- Date and Time Functions
- File I/O Functions
- Console Functions
- User Input (Runtime Library)
- User Input Functions (Graphics Library)
- Screen Functions
- 2D Drawing Functions
- Graphics Library Reference
- Graphics Keyword List
- Memory Functions
- Threading Support Functions
- Error Handling Functions
- Operating System Functions
- Preprocessor
- Intrinsic Defines
- Miscellaneous Keywords
- Modularizing