MaxGUI EventExtra and ListBox example

BlitzMax Forums/MaxGUI Module/MaxGUI EventExtra and ListBox example

Markus Rauch(Posted 2006) [#1]
'For BlitzMax 1.22 with MaxGUI
'M.Rauch 11.12.2006

SuperStrict

Type TItem
Field Name:String
Field Value:Int
'...

Function NewItem:TItem(Name:String,Value:Int)
Local I:TItem = New TItem
I.Name=Name
I.Value=Value
Return I
End Function

End Type

MainLoop()
End

Function MainLoop()

Local MainWindow:TGadget=CreateWindow("BlitzMax MaxGui and EventExtra",ClientWidth(Desktop())/2-200,ClientHeight(Desktop())/2-200,400,400,Null,WINDOW_TITLEBAR|WINDOW_STATUS)

Local Item:TItem
Local MyItems:TList=CreateList()

MyItems.Addlast TItem.NewItem("Banane",100)
MyItems.Addlast TItem.NewItem("Apfel",200)
MyItems.Addlast TItem.NewItem("Birne",300)

'----------
Local MyListeBox:TGadget=CreateListBox(0,0,128,128,MainWindow)
'fill ListBox from a list ClearGadgetItems MeineListeBox
For Item= EachIn MyItems
AddGadgetItem MyListeBox,Item.Name,0,-1,"",Item
Next

'----------

Repeat
WaitEvent()
Select EventID()
'---------------------
Case EVENT_WINDOWCLOSE
Select EventSource()
Case MainWindow
If Confirm("Close App. ?")=True Then Exit
End Select
'---------------------
Case EVENT_GADGETACTION
Select EventSource()
Case MyListeBox
Item=TItem(EventExtra())
If Item=Null Then
SetStatusText MainWindow,"Click to Empty Area :)"
Else
SetStatusText MainWindow,"Click "+Item.Name+":"+Item.Value
EndIf
End Select
'---------------------
Case EVENT_GADGETSELECT
Select EventSource()
Case MyListeBox
Item=TItem(EventExtra())
If Item=Null Then
SetStatusText MainWindow,"Nothing selected"
Else
SetStatusText MainWindow,"Selected "+Item.Name+":"+Item.Value
EndIf
End Select
'---------------------
End Select

Forever 'Event Loop
End Function