ListViewGadget - What wrong with this code
Posted: Sat Jan 14, 2006 2:04 am
Hi,
I am having some trouble with the ListViewGadget, I can not get it to update properly.
Here is the code,
Structure ListView
Pad.w
String.s
EndStructure
NewList MyListView.ListView()
WBStartup()
If InitTagList(10)
InitGadget(10)
Title.s="ListView Gadget Test"
OpenWindow(0,20,80,200,450,#WFLG_DRAGBAR|#WFLG_CLOSEGADGET,Title.s)
For c.l=0 To 29
AddElement(MyListView())
MyListView()\String="Label "+Str(c.l)
Next
CreateGadgetList()
ButtonGadget(1,30,275,120,25,"New List")
ButtonGadget(2,30,310,120,25,"Old List")
ListViewGadget(3,20,20,150,250,"",ListBase(MyListView()))
ResetTagList(#GTTX_Border,1) : SetGadgetTagList(TagListID())
TextGadget(4,30,345,120,25,0,"")
ResetTagList(#GTTX_Border,1) : SetGadgetTagList(TagListID())
TextGadget(5,30,380,120,25,0,"")
RefreshGadget(-1)
Repeat
Event.l = WaitWindowEvent()
If Event = #IDCMP_GADGETDOWN Or Event = #IDCMP_GADGETUP
EventGadget.l=EventGadgetID()
GadgetState.l=GetGadgetState(EventGadget)
Select EventGadget
Case 1 ; New List
ClearList(MyListView())
FirstElement(MyListView())
For c.l=0 To 59
AddElement(MyListView())
MyListView()\String="Label "+Str(c.l)
Next
List$="New List"
New$= Str(CountList(MyListView()))
ResetTagList(#GTLV_MakeVisible,CountList(MyListView())) : SetGadgetAttribute(3,TagListID())
RefreshGadget(-1)
Case 2 ; Old List
ClearList(MyListView())
FirstElement(MyListView())
For c.l=0 To 29
AddElement(MyListView())
MyListView()\String="Label "+Str(c.l)
Next
List$="Old List"
New$= Str(CountList(MyListView()))
ResetTagList(#GTLV_MakeVisible,CountList(MyListView())) : SetGadgetAttribute(3,TagListID())
RefreshGadget(-1)
Case 3
New$="ListView gadget: "+Str(GadgetState)
SetGadgetState(3,-1)
EndSelect
If New$ <> ""
SetGadgetText(4,List$)
Text$=New$
SetGadgetText(5,Text$)
New$=""
EndIf
EndIf
Until Event = #IDCMP_CLOSEWINDOW
EndIf
End
How do I get it to refresh the content of the ListViewGadget.
Any help would be great.
I am having some trouble with the ListViewGadget, I can not get it to update properly.
Here is the code,
Structure ListView
Pad.w
String.s
EndStructure
NewList MyListView.ListView()
WBStartup()
If InitTagList(10)
InitGadget(10)
Title.s="ListView Gadget Test"
OpenWindow(0,20,80,200,450,#WFLG_DRAGBAR|#WFLG_CLOSEGADGET,Title.s)
For c.l=0 To 29
AddElement(MyListView())
MyListView()\String="Label "+Str(c.l)
Next
CreateGadgetList()
ButtonGadget(1,30,275,120,25,"New List")
ButtonGadget(2,30,310,120,25,"Old List")
ListViewGadget(3,20,20,150,250,"",ListBase(MyListView()))
ResetTagList(#GTTX_Border,1) : SetGadgetTagList(TagListID())
TextGadget(4,30,345,120,25,0,"")
ResetTagList(#GTTX_Border,1) : SetGadgetTagList(TagListID())
TextGadget(5,30,380,120,25,0,"")
RefreshGadget(-1)
Repeat
Event.l = WaitWindowEvent()
If Event = #IDCMP_GADGETDOWN Or Event = #IDCMP_GADGETUP
EventGadget.l=EventGadgetID()
GadgetState.l=GetGadgetState(EventGadget)
Select EventGadget
Case 1 ; New List
ClearList(MyListView())
FirstElement(MyListView())
For c.l=0 To 59
AddElement(MyListView())
MyListView()\String="Label "+Str(c.l)
Next
List$="New List"
New$= Str(CountList(MyListView()))
ResetTagList(#GTLV_MakeVisible,CountList(MyListView())) : SetGadgetAttribute(3,TagListID())
RefreshGadget(-1)
Case 2 ; Old List
ClearList(MyListView())
FirstElement(MyListView())
For c.l=0 To 29
AddElement(MyListView())
MyListView()\String="Label "+Str(c.l)
Next
List$="Old List"
New$= Str(CountList(MyListView()))
ResetTagList(#GTLV_MakeVisible,CountList(MyListView())) : SetGadgetAttribute(3,TagListID())
RefreshGadget(-1)
Case 3
New$="ListView gadget: "+Str(GadgetState)
SetGadgetState(3,-1)
EndSelect
If New$ <> ""
SetGadgetText(4,List$)
Text$=New$
SetGadgetText(5,Text$)
New$=""
EndIf
EndIf
Until Event = #IDCMP_CLOSEWINDOW
EndIf
End
How do I get it to refresh the content of the ListViewGadget.
Any help would be great.