So far everyone is covering panel tabs, here is something for listicon:this goes also to listicon if i have certin item that if i change it status i want to change the icon also, how can it be done...?
Code: Select all
; Listicon image changer
; netmaestro, Oct 2007 updated for forum tip Feb 2012
Enumeration 1
#icon1
#icon2
#icon3
#mask1
#mask2
#mask3
EndEnumeration
Global Dim iconinfos.ICONINFO(3)
Global Dim icon(3)
*unpacked = AllocateMemory(2360)
UnpackMemory(?PicPak, *unpacked)
img0 = CatchImage(#PB_Any, *unpacked, 2360)
FreeMemory(*unpacked)
GrabImage(img0, #icon1,0,0,16,16)
GrabImage(img0, #icon2,16,0,16,16)
GrabImage(img0, #icon3,32,0,16,16)
FreeImage(img0)
For a = #mask1 To #mask3
CreateImage(a, 16, 16)
StartDrawing(ImageOutput(a))
DrawImage(ImageID(a-3),0,0)
transcol=Point(0,0)
For i=0 To 15
For j=0 To 15
If Point(i,j)=transcol
Plot(i,j,#White)
Else
Plot(i,j,#Black)
EndIf
Next
Next
StopDrawing()
iconinfos(a-3)\fIcon = #True
iconinfos(a-3)\hbmMask = ImageID(a)
iconinfos(a-3)\hbmColor = ImageID(a-3)
icon(a-3) = CreateIconIndirect_(iconinfos(a-3))
Next
ImgList = ImageList_Create_(16,16,#ILC_MASK|#ILC_COLOR32,0,3)
pendingicon = ImageList_AddIcon_(ImgList,icon(1))
workingicon = ImageList_AddIcon_(ImgList,icon(2))
successicon = ImageList_AddIcon_(ImgList,icon(3))
Procedure ChangeIcon(gadget,row,column,icon)
LVG.lv_item
LVG\mask=#LVIF_IMAGE|#LVIF_TEXT
LVG\iItem=row
LVG\iSubItem=column
txt$=GetGadgetItemText(gadget,row,column)
LVG\pszText=@txt$
LVG\iImage=icon
SendMessage_(GadgetID(gadget),#LVM_SETITEM,0,@LVG)
EndProcedure
OpenWindow(0,0,0,240,280,"",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ListIconGadget(0,20,20,200,200,"Status",50,#PB_ListIcon_GridLines)
TextGadget(#PB_Any, 20,230,50,20,"Progress:")
ProgressBarGadget(1,70,230,150,14,0,1000)
AddGadgetColumn(0,1,"Description",145)
ButtonGadget(2,20,250,200,20,"Start")
SendMessage_(GadgetID(0),#LVM_SETIMAGELIST,#LVSIL_SMALL,ImgList)
ImageList_SetBkColor_(ImgList,#CLR_NONE)
SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,#LVS_EX_SUBITEMIMAGES,#LVS_EX_SUBITEMIMAGES)
AddGadgetItem(0,-1,Chr(10)+"Job One")
AddGadgetItem(0,-1,Chr(10)+"Job Two")
AddGadgetItem(0,-1,Chr(10)+"Job Three")
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Timer
Select EventTimer()
Case 1
progress+10
SetGadgetState(1,progress)
If progress >= 1000
progress=0
changeicon(0,currentjob-1,0,successicon)
currentjob+1
changeicon(0,currentjob-1,0,workingicon)
If currentjob>3
RemoveWindowTimer(0,1)
AddWindowTimer(0,2,1000)
SetGadgetState(1,0)
EndIf
EndIf
Case 2
changeicon(0,0,0,pendingicon)
changeicon(0,1,0,pendingicon)
changeicon(0,2,0,pendingicon)
DisableGadget(2,0)
RemoveWindowTimer(0,2)
EndSelect
Case #PB_Event_Gadget
If EventGadget()=2
progress=0
currentjob=1
changeicon(0,currentjob-1,0,workingicon)
AddWindowTimer(0,1,10)
DisableGadget(2,1)
EndIf
EndSelect
Until EventID = #PB_Event_CloseWindow
*unpacked = AllocateMemory(2360)
UnpackMemory(?PicPak, *unpacked)
img0 = CatchImage(#PB_Any, *unpacked, 2360)
DataSection
PicPak:
Data.q $A3DB00000938434A,$146920D0A9B3D4B7,$104AB008CA128849,$81890246300C9825,$A3DF42D810607020,$B696BEC12F8D14FF,$EA714BD73324C897
Data.q $AF78203D055F01BE,$690501A31F72FB00,$3DF02BB3300EFEDB,$B93E317BB3000250,$98D21FB49984D78E,$91B45EFB012F553E,$C3CD780F4154D730
Data.q $8C5D2637FCD01B58,$D666855403D0374B,$119374CB78095506,$91D3EFC9FE7F91DA,$FBEAFDF925EEA4D8,$6D08C91AFB12A892,$A1F6509D6A5E4760
Data.q $338E75D406D0020B,$9B48DA2F213885FD,$F74F401B7EEC1ED4,$0ABF8DB097DB9363,$48B884940EBF5048,$315610BF1B793C02,$EFC0CFEEE8FF260C
Data.q $4FBE85C65BFFF946,$B75E4DA2B180A9A6,$4BDDB26C73E7C699,$BCD054248B7EEFA4,$262A324A075FB9E4,$FD7C782742D7CF09,$6EB0AD37E215B64F
Data.q $1EFC3684284EFE34,$52D3FF64CE7385A8,$927DCE31360989B4,$3C35EFA93507225B,$82F397B6F85A573F,$FF7CCF0925F24979,$A0EDC922C13ABD92
Data.q $BA9CD9E7A262A11C,$B0B69348B9CD2D26,$B39E65069027E07F,$5A192271BDE15423,$7089B827E7FC368D,$7F16B0792DE01398,$3CDB25DBD93993FB
Data.q $9A4EDB7B497A24A5,$112600D351822244,$6627198273D95F6D,$F8D3FD4C1BD93F25,$5051F7CFE0C9B40F,$745F0155AC7069E7,$26D2EF4BE44E016D
Data.q $CFA40B5D7AC473C5,$6DC79B09352FC184,$58939A411807944D,$2FD74863019E6FAE,$A12C24905B34B9B1,$F28F2CE284748169,$C4271829B7D2D08F
Data.q $42CED0C3407AFF96,$E1FB360C12660AAC,$3612826A0EDE7C24,$539A27FC726DAFC9,$24D34D16690726B5,$2844DF5A24B2CCE1,$F8939A434F8F7E7B
Data.q $AB00422301B0B4A1,$56BBB5C296C51E82,$26B6CE4D83DBB8D1,$EC9AFBD45E4193EF,$F3C6960AB7AE3F87,$61E6248E4F09604B,$EB292BFCD21A22CE
Data.q $8FA26CA584E467F0,$BC224DA4F48F26E5,$BA492D462DA16F49,$16D063AC509AE7BE,$59E8AE4496A36185,$95E7C6A8C91A161F,$0DE5478275523780
Data.q $9AA70466849ABC69,$CF063C2A89264F45,$E73C25F1BA927553,$619730273F7D7169,$28479ABB332D524E,$77BAC04AC30AC3DA,$3836AAC2BF9C2DB8
Data.q $1373D89B482D6F71,$2A54CE508CFB72EB,$4105B3455FBE6949,$4239C0845076D925,$58AF6C11879460C1,$18054005085558A2,$6C9A96EB1A41077F
Data.q $DB6AB1828AD46C27,$1CAC2B187B78AE8A,$BA4D60AA300BBB60,$824B59155875A62B,$BB8C8A0AC0AA7DB4,$16CE02E8AC9CB8A0,$71E7A135E7052B21
Data.q $17CA1003541465E6,$C601FCD80397979C,$9122745E85149C17
Data.b $09,$20,$00,$00,$00,$00
PicPakend:
EndDataSection