aUCBLogo Demos and Tests / listcontroltest


be listcontroltest
   
lctest
;   thread [lctest]
end

to lctest
;   local [f icid id row tcfname tcname tclogo lc i 
;      bappend bdelete bs bsh bsh2 finish]
   
f=Frame [][MyFrame]
      
wxDefault_Frame_Style+wxStay_on_Top
      
[0 0][400 400] 
   
FrameSetBackgroundColor RGB .89 .87 .83
   
FrameOnClose [lctest::finish=true]

   
icid=(IntControl [ID1 1 400
      
[   id=IntControlValue
         
repeat ListControlItemCount lc
         
[   row=repcount-1
            
if (ListControlGetItem lc row 0)==id [break]
         
]
         
updateForm row lc
      
wxSP_Arrow_Keys [10 20][50 -1])

   
row=0
   
tcfname=(TextControl [First name"
      
[   ;OnChange
      
]
      
[   ;OnEnter
         
txt=TextControlValue
         
ListControlSetItem lc row txt
      
])

   
tcname=(TextControl [Name"
      
[   ;OnChange
      
]
      
[   ;OnEnter
         
txt=TextControlValue
         
ListControlSetItem lc row txt
      
])

   
tclogo=(TextControl [Logo"
      
[   ;OnChange
      
]
      
[   ;OnEnter
         
txt=TextControlValue
         
ListControlSetItem lc row txt
      
])

   
lc=(ListControl [MyListControl]
      
[   row=ListControlRow 
         
(pr word [row=] row
            
word [column=] ListControlColumn
            
ListControlText
            
[Selected])
         
id=Int (ListControlGetItem lc row 0)
         
IntControlSetValue icid id
         
updateForm row lc
      
]
      
[   (pr word [row=] ListControlRow 
            
word [column=] ListControlColumn
            
ListControlText
            
[Activated])
      
]
      
[   c=ListControlColumn
         
(pr word [column=] c
            
[Columnclick])
         
ListControlSort lc c
      
wxLC_REPORT [--1][--1])

   
foreach [[[ID40][[First Name80][[Name120][[Logo120]]
   
[   (ListControlInsertColumn lc # (?).1 (?).2)  
   
]
   
   
data=
   
[   [Brian Harvey UCBLogo]
      
[George Mills MSWLogo]
      
[Pavel Boytchev Elica]
      
[Lionel Laske Liogo]
      
[Andreas Micheler aUCBLogo]
   
]
   
ListControlSet lc data
;   foreach data
;   [   row=repcount-1
;      ListControlInsertItem lc row
;      ListControlSetRow lc row ? 
;   ]
;   ListControlSetColumn lc 2 [H. M. B. L. M.]


   
bappend=Button [&Insert item]
   
[   i=ListControlItemCount lc
      
ListControlInsertItem lc i
      
repeat ListControlColumnCount lc
      
[   ListControlSetItem lc i repcount-se [Itemgensym
      
]
   
]
   
bdelete=Button [&Delete last item]
   
[   if (ListControlItemCount lc) > 0
      
[   ListControlDeleteItem lc (ListControlItemCount lc)-1
      
]
   
]   
   
bs=BoxSizer wxVertical
   
bsh=BoxSizer wxHorizontal
   
BoxSizerAdd bs bsh wxAll+wxExpand 10
   
BoxSizerAdd bsh icid wxExpand 0
   
BoxSizerAdd bsh tcfname wxExpand 0
   
BoxSizerAdd bsh tcname wxExpand 0
   
BoxSizerAdd bsh tclogo wxExpand 0
   
BoxSizerAdd bs lc wxExpand 0
   
bsh2=BoxSizer wxHorizontal
   
BoxSizerAdd bsh2 bappend wxExpand 0
   
BoxSizerAdd bsh2 bdelete wxExpand 0
   
BoxSizerAdd bs bsh2 wxExpand 0
   
FrameSetSizer f bs
   
   
updateForm lc
stop   
   
finish=false
   
until [finish]
   
[   dispatchMessages
      
waituS 100000
   
]   
end

to updateForm row lc
   
TextControlSetValue tcfname (ListControlGetItem lc row 1)
   
TextControlSetValue tcname (ListControlGetItem lc row 2)
   
TextControlSetValue tclogo (ListControlGetItem lc row 3)
end