include('wintools') func _create(_data) var(ctrl) fvar(s) println(listBox, ' = new wxListBox(this, ID_', upper(listBox), ', wxPoint(', Left, ', ', Top, '), wxSize(', Width, ', ', Height, '), NULL, wxLB_SINGLE);') ctrl = listBox registerId(ctrl) s = isdef(DataType) ? ('event.GetSelection()')@int : (ctrl+'->GetStringSelection()')@str if(linked(onItemClicked)) createEventArg1(ctrl, 'EVT_LISTBOX', 'onItemClicked', s) end end func initFree() _create('') end func init() lng.decl_priv_var(listBox, 'wxListBox*') if(not linked(doCreate)) fvar(old) old = block.select(BLK_BODY) _create('') block.select(old) end end func doCreate(_data) _create(_data) end func doAdd(_data) println(listBox, '->Append(', Text, ');') end func doClear() println(listBox, '->Clear();') end func CurrentRow() return(listBox + '->GetSelection()') end func Array(_data) // read write count add if(_data[0] = "@perm@") return(1 & 1 & 1 & 1) elseif(_data[0] = "@read@") return((listBox + '->GetString(' + _data[1] + ')')@str) elseif(_data[0] = "@write@") return(listBox + '->SetString(' + _data[1] + ', ' + _data[2] + ')') elseif(_data[0] = "@count@") return(listBox + '->GetCount()') elseif(_data[0] = "@add@") return(listBox + '->Append(' + _data[1] + ')') else return('') end end