CheckListΒΆ

class CheckList

The base class for check list widgets

Hierarchy

class CheckList < class Window

Children classes : class ToggleCheckList

Members

Constructors:

CheckList list create ( ) Create a CheckList widget

Methods:

nil createitemwindow ( ) Init the item window
nil fill ( ) Fill the widget with all lines
{string} items getitems ( ) Callback for when the widget needs the list of items
number state getitemstate ( ) Callback for when the widget needs the state of an item of the list.
nil itemclicked ( ) Callback for when the an item of the list was clicked.
nil update ( ) Update the list state
nil updateitemwindow ( ) Update the item window


Inherited from class Window

Methods:

nil destroy ( ) Destroy the window and all its children windows
nil setx ( number x , number parentpivot , number pivot ) Set the X window placement
nil sety ( number y , number parentpivot , number pivot ) Set the Y window placement
nil setw ( number w , number parentmul , number childadd , number childmul ) Set the window width
nil seth ( number h , number parentmul , number childadd , number childmul ) Set the window height
nil getx ( ) Get the window X coordinate in the parent space
nil gety ( ) Get the window Y coordinate in the parent space
nil getw ( ) Get the window width
nil geth ( ) Get the window height
nil hide ( ) Hide the window
nil show ( ) Show the window
nil disable ( ) Disable the window
nil enable ( ) Enable the window
string path getnodepath ( ) Returns the edited node path (is nil if the method is not supported)
nil setnodepath ( string path )
nil addtracker ( table tracker ) Add a tracker to this window. A tracker receives notification when the tracked window is invalidated or destroyed. A tracker may implement onTrackedDestroyed and onTrackedInvalidated to get notifications on such events
nil removetracker ( table tracker ) Remove a tracker of this window.
nil setcolor ( ui.color color ) Change the window color, see also ui.color function
nil getparent ( string|nil parentclass ) Get the first parent window of given class (immediate parent if no class is provided)
nil settopmost ( ) Set the window as top most in children order
nil getchild ( string|number name ) Get a child window
Window container getcontainer ( ) Get the main container of a window
nil settitle ( string name ) Change the window title
nil setfocus ( ) Set the focus to the window
nil getroot ( ) Return the root window of this window

Documentation

nil createitemwindow ( )

Init the item window


nil fill ( )

Fill the widget with all lines

This method is separated from create so you can create the widget, create overriding methods and then call fill

{string} items getitems ( )

Callback for when the widget needs the list of items

You must implement this method, which in turn returns the items contained:

-- Create a title window
local title = ui.titlewindow ()
title:settitle ("Test")
title:setpos { w=200, h=200 }

-- Create a check list in the title window
local checklist = CheckList.create ("list", title)
function checklist:getitems ()
    -- Return the list of items
    return { "One""Two""Three" }
end
checklist:fill ()
checklist:setpos { x=0, y=0, w=ui.full }

Alternatively, the default implementation will use the Items field in the widget if present.

Return:

  • items The list of items in the list


number state getitemstate ( )

Callback for when the widget needs the state of an item of the list.

You must implement this method, which in turn returns the state of the given item. The passed item is the same that is returned by the getitems method:

-- Create a title window
local title = ui.titlewindow ()
title:settitle ("Test")
title:setpos { w=200, h=200 }

-- Create a check list in the title window
local checklist = CheckList.create ("list", title)
checklist.Items = { "One""Two""Three" }
function checklist:getitemstate (item)
    -- Return the state of an item
    return item == "One" and CheckList.ItemDefault or
        item == "Two" and CheckList.ItemChecked or
                  CheckList.ItemUnchecked
end
checklist:fill ()
checklist:setpos { x=0, y=0, w=ui.full }

The possible item states are:

  • CheckList.ItemDefault: the item is displayed using the default style
  • CheckList.ItemChecked: the item is displayed using the checked style
  • CheckList.ItemUnchecked: the item is displayed using the not checked style
  • CheckList.ItemHighlight: the item is displayed using the highlight style
Return:

  • state The current item state


nil itemclicked ( )

Callback for when the an item of the list was clicked.

You must implement this method to react to the user clicking a list item:

-- Create a title window
local title = ui.titlewindow ()
title:settitle ("Test")
title:setpos { w=200, h=200 }

-- Create a check list in the title window
local checklist = CheckList.create ("list", title)
-- init items states
checklist.State = { One=true, Two=false, Three=true }
checklist.Items = { "One""Two""Three" }
function checklist:getitemstate (item)
    -- Return the state of an item
    return self.State[item] and CheckList.ItemChecked or CheckList.ItemDefault
end
function checklist:itemclicked (item)
    -- Invert the state of the clicked item
    self.State[item] = not self.State[item]
end
checklist:fill ()
checklist:setpos { x=0, y=0, w=ui.full }

nil update ( )

Update the list state


nil updateitemwindow ( )

Update the item window