I've done an example below (it does show blurry icons to keep the code small), when clicking the first button it toggle between a play and a pause icon.
This seem to work fine in most of the cases:
- after starting the program
- after resizing the icons (clicking the '+' or '-' icon)
- when changing the toolbar mode (click the 'option' icon to change the position of the button texts)
But it does not work anymore when 'resetting' the toolbar (clicking the 'alert' icon)
Does anyone see what I did wrong here?
Code: Select all
; Define
EnableExplicit
UsePNGImageDecoder()
#DefaultIconSize=128
Enumeration
#Win
#List
#Toolbar
EndEnumeration
Enumeration
#IconStart
#IconStop; Hidden
#IconPause
#IconReset
#IconPlus
#IconMinus
#IconCopy
#IconAlert
#IconOpts
;
#IconTemp1
#IconTemp2
;
EndEnumeration
Enumeration
#ListAddress
#ListState
#ListOkCount
#ListOkPercent
#ListTimeNow
#ListTimeMedian
#ListTimeMax
#ListTTL
#ListSeriesUp
#ListSeriesDown
#ListLastChange
#ListChangeTime
#ListName
EndEnumeration
Structure WinType
X.i
Y.i
Width.i
Height.i
Menu.i
MenuHeight.i
Icon.i
IconHeight.i
ListTop.i
ListHeight.i
;
ToolbarMode.i
ToolbarHandle.i
ToolbarImages.i
IconW.i
IconH.i
IconTextColor.i
;
TimeStamp.SystemTime
EndStructure
Global Win.WinType
DataSection
CompilerIf #PB_Compiler_Debugger
ButtonBlack:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$1200007412000073,$781F66DE0174,$CB38544144490303,$FE10715A4FC9534D,$41EB457FA4D2F515,$1549ADC60AA97B41,$2A5C3704170140DC,$4C5F64141793E0B8,$83D26A5C5136B011,$AE7ADAB1AA5E0F6D,$DDE0DFE31A9EDAB7
Data.q $87A68AF33A6FDB03,$C37BEFBE66F332F,$5060C1601020586F,$8C22448B2FEFDF82,$84A10413228A26A,$F3DCE23D46B1FB94,$8850A1642090F789,$73BD79F13CACACAD,$FF0F0F1F675B5BDB,$8711EA354E50427C,$D892FD8A2E2FF7B8,$D3EB8913263674E9,$E7170E76F8B86393,$4F4F14ABECFDF067,$F9C88B5C4C95204E
Data.q $45B30E1C291A44DF,$F9F7762C5AD5041,$93BFB3377760E10F,$EEEFDE16EDEC1FCE,$3A74FDF9DBD2F614,$B3F8776B6B37BD43,$C3848B296D41A454,$BCDC2092F1ED1C32,$4A933468B580D8DB,$37CCF8E295336024,$F193C9326DFC5237,$4B9C710CA1434438,$62C584A4D0690DC2,$8A25CA6DBB36631,$C079BB75EB2B976E
Data.q $103879FBF21E5EB,$1E3DFB8F9F4108C0,$5D98A2CBE65E59EE,$56924FB766C0B971,$B19F62FD6AD581DA,$1C173CDCC7391015,$A02585100414EE0E,$9F02C2E2C070E4B8,$B373A7A7AFE59D9F,$96963D6AC2615B36,$95E0E0E0D9BB76E8,$1B1F9CD98B066CD9,$989C9871F1D6E51D,$6488C29849C9A980,$6E119191831B1F18
Data.q $8686058B16F29932,$78F319575757BF4C,$6F5EA7F7B7A7AC3C,$83EBEC6F21837AE0,$34001818187EFEFE,$60FD7D7DE6020186,$C8C18379B9011A30,$B18F9F3E5FFAF57B,$A691DD3AB4CA3468,$D6EB95D5D5D0BDBD,$F5D5AE3AB56B96A,$AEF540FB01FE7AE8,$EF6B99D9D1DE6EEE,$ED247747AE828E8,$686E648E19D7D7D6
Data.q $D6DADB3AB536846C,$8E1A35A8351AD5C6,$E0F63948D769A0A6,$B9A9B67EC72B6B55,$9C78F143C3C32C19,$996F5EBC4A28FC31,$2199B04C8AFEBEAA,$92F9796F0B4B7342,$4322013536342453,$C4B8348AE1A1BEB1,$B7F8E37D29498652,$6B6A2FB795E42BC8,$A7572A954AB2CD00,$A732950894EBE652,$142A542D6D4D5AC4
Data.q $7A50770692E476B7,$33333317688F447F,$72F2D3E5F5554572,$812D5D5141CB90A8,$497E7EAAAB5867F2,$268A16E1E692E21C,$B2DC3244E2BA28B2,$83F5555141FCDF11,$D948BC57A8D53940,$91C132512F1635C3,$244B14A952CA304A,$F51AA72812F9D212,$D7F69B5FDD079C8A,$D27394CA3E,$6042AE444E454900,$82
ButtonRed:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$2E0000232E000073,$763FA5780123,$CB38544144494203,$87145714685F934D,$241F0490C6BACCCF,$4562D3057118FA31,$62AB8288A2582565,$2BAE884C825D6830,$D993766CECD06AB5,$A1E6A289B26CCD9,$294943EA287DB4A5
Data.q $552287DA16A9487D,$963129A136EB698A,$B6EA1FE934C16D16,$29ABBBFA73999DDD,$9EEF9CF7B9707C3E,$3B0A4DB6B2973973,$1C1AD07F7F5CA59B,$1C8B2D3261E1EEA4,$29533742449DD4D3,$A0ACB3907EFD8B3A,$40F27FF7902ACD8A,$34C8688687A7A326,$163F7ABE76746F6B,$912E7266733B9F1B,$EA79BA3E244D9C98
Data.q $89052EA244F96BD4,$D2CB64950517B58A,$CB68F47DBD3CF953,$C48A8D12536DB6FC,$88A6988B4FA72262,$F8F10B20B85C88E3,$2D170A72F186BBF4,$C378D87DD941C84A,$CEC89EEB75C5C230,$41E0EF252246E29D,$BDF2EAEE7C3A3B97,$F924BBBBB75D2793,$D1A277C5EDED78BC,$1DB212EE442E3496,$3534CF56F6F6CF47
Data.q $6D76B78B57AB277D,$6E66EF77845A5B89,$9830C5847239636B,$2492F1F8EF131D8F,$7739C675B5A8F293,$95CF500C1C1EC6AE,$83062AE91235742B,$BCC7575BB2F5D452,$763BCCCDE6F30D66,$43A1D11523D9EF08,$C3E65186FB28D1CC,$A972AE2448BDE587,$E0FA142CFA45E2E7,$1122DCD3417F220F,$DCDC3547D9ABAB97
Data.q $BC2EDF6F0B0E1C2C,$F77BFB0891FB176B,$3ADAD17FEEDEDCBA,$6F25E14A23973E7E,$888F2442FC4FD7D5,$5D5FFAC2FE0879BC,$4850A22A56B6B717,$BC45B2DE106C378,$485ADD6C2C253D87,$686D3F25E0109326,$448021671203FBB8,$440FF013C1DF831E,$FC5CBE5BC4CB65E5,$6A693D1B1AF10686,$4D3A660B1B8D89E2
Data.q $D8D0A16344BA5E64,$E887DC2D0A6168F7,$F3F802D133F3F047,$6AF5D16806FF8CA9,$7B0FA6D378FFC6A,$B7DD1A51D1E94703,$F2B4D3DD046BE3AF,$7922A7D993208224,$C20073C6431ED008,$FDFEFAF25555AFF2,$B019235265F2FA46,$155F158AD8E96B2C,$3810F74BD7577C10,$A2D000780CC1A605,$A93E48DE12B4D03C
Data.q $D80D55F5F7F42FAF,$F19A8C8618B28076,$555E7060F185FC78,$79A68DFB804A8132,$C27EF634F5893005,$F62C5CB7F060ADD9,$B4CD490656C9CA92,$BC4E279E35196965,$12AAE7CEF1B1B578,$FDE0A4AB7C0B6950,$5588C9501CBF2B95,$D0D84CFC5E519539,$D6DC302B2CE3F56D,$ADAED7CDCD9BCAF6,$FAFD6B783AFB755A
Data.q $44B671440E0723EB,$49CF8DFF9F6254C5,$985271E0CB4BE802,$AB4BC5EA1191DEB2,$679255967073DAB5,$65DEF1C800FF8AC9,$2E42E77A,$826042AE444E4549
ButtonYellow:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$1200007412000073,$781F66DE0174,$CB38544144497003,$C71465536FEF933D,$D9403FC486F6DD0F,$146262486C76B60F,$F0E318C4CC3042E2,$10C4510583179447,$FBDBDB776D618220,$D743A01D18EDB73C,$90536C1D9C063308
Data.q $1AB1B60D8115692C,$30E706B75B9DB5DA,$D30C92DAE85181AE,$4F8BE73A79E1CF5F,$F7179EFDF39EF7EE,$210294A01294039E,$E1D885894B566C14,$CAAC11A3060EDEB0,$44D42C60C18122E1,$FFF644645784784F,$5D81B6498D154AB0,$3C307FDAE0333FD5,$81F353AD83E7B92C,$75C07B934DF0A9D6,$CAEF08F09E8A0E0
Data.q $BA1DB32468A16581,$E74DF6FA896EF63A,$938661768D981DA3,$A7A3E60CFAE2EF9E,$E9F1D5DD3FDBEA30,$2AAB010DFFA5E116,$EEC5FD3856E49897,$C773BFD2D364D4BA,$DCD08E3F4D633931,$2E4866A4179A88E3,$3531DAE64FD34D39,$BB649AF70CE96BB9,$18951AEC428316C8,$1C8A5916DC19DF56,$73EA6A7481D0C5C1
Data.q $665FAC2A599B854C,$A5F7062E10E708EA,$FD12A221A8766785,$E2DCD0456D426A,$C63EF0326F71B397,$844B134089331BC7,$D89C9663E864B376,$623E844C1ED0C983,$7160EC08962EE089,$9C7B1DB82A4CF6FF,$8B7D0076A5E89F8D,$F5FD273F0D5CD70A,$DFB7E365AFEFD8F9,$17077C6E36DF7164,$7DC62EFFDC61EFFD
Data.q $C1BF6E8F62DE736F,$D3D83BC2B357DE62,$6649300368D9B970,$875DE8BFD5B0BD18,$B22F6362E7CF230B,$53857DE87C46D8D8,$C612F389B6362057,$7173AB8616C0BD6E,$1648B40FABEB1DEE,$BECDB9FAE0524900,$B973E0E8B0D637FB,$F9CB861714B37FB,$77880B6B2307C0AB,$ED73FE0D6377BF51,$BDD43672A1BDDCD9
Data.q $8E9060BFF128DC79,$597759FEFAA9EF41,$9CA7A7FB32A0667E,$14A57BBB196BF5FD,$AEE672EF14ADFEFF,$BB8EECE52FECE194,$15DD6765572F8582,$E4C1BF6B6AFFEF9,$4EE7741387693300,$4CEABEF1C52F9DF,$71FE2D27E26CB5FB,$826727F12F26CB51,$5F32D7DE5A8FD0EB,$A49E0542FF8CBAEF,$5255500F84CC3B4D
Data.q $FD97B1F7494ACB24,$7A4D5DF438B5EEDE,$AD8EB756F0E9CE4,$5E1D59F0D8EBDFA3,$5D12A1FDED26B6FF,$C591BE1917E8D8E,$FA62056A1314B154,$6FD5D8DAD1CF436C,$D674F19F5CE3D0AA,$9B59C79C9ACE3D66,$7AB99F5CEEED7373,$B784C6D5B7CF0ABA,$2ACA2655E5D9E190,$6D7C368748A014BE,$8F178556DBDA34DE
Data.q $A0AE8E6A89D2F16B,$4784F793B12ADAFB,$84A2E2CAB1190B78,$8996553E50D14420,$FD7861C0FC3E1886,$94D08111BAC697EC,$86F97784784F44D7,$A7CD272B021235C4,$C80736A1A26FF116,$8B4202D6964C1DB4,$B22CA72B3DC7A15A,$EC87E43F8191014F,$454900000000B4AF,$826042AE444E
ButtonWhite:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$1200007412000073,$781F66DE0174,$CB3854414449BE02,$3D14515A4ECB534D,$702FC4BF49A4E8A,$AA3ACEDA76A385FE,$1A86526A0A22351,$588D035330D8D81D,$723017228282AE5A,$8D87EF2E140808C1,$9EECEBC074DAA4DA
Data.q $B5AD7ECAC1860375,$13264CCD9EFBB9CF,$1D5D5D5B23468C03,$D91F3333665E5E5F,$723E003A721CDCDC,$5E22F740EE0381A8,$E1045C5C5D195959,$F7145510F8E1DDB5,$350E47C0052E5CCF,$13477D61341DC070,$F4D9B2654D6E6E6F,$B3D3CFE025FF3D3,$6B6B736D4620D13C,$8371B745A0685C0A,$5AB564CB162CC0C1
Data.q $668D1A9BF8F0F7FB,$3D77779B766CD1AB,$787AD1BD7ADDC440,$B56ACFF6AD6AA47C,$A8C1B863B423424E,$9905678B162AF6E8,$AD53AB56AB72A54A,$5CEA1A6BC442E75E,$BF779AB52A58A908,$8C9A31A1678F1E28,$DB366CCB3B3B363A,$176D557942A572FB,$CA979952C5E258A,$50BCC42C42584854,$552A576D5E5CF22C
Data.q $F76D36AE18779A12,$4C997A142D53B70F,$BCF9E241E5CB93B6,$CB9F8253405AAA4A,$9D32674F2818B9E7,$8710E92493D8A142,$22A9C9E9C8188333,$4E9B7BAA54C94406,$ACD343164CE94483,$89E69B7B7433A716,$EB8BE7CFBC8BB264,$A3A48F44C3181617,$DDD7D7D7E4993268,$9520494482412244,$F06E6E6FE4622CD2
Data.q $B638F8F8F705DFD,$F6F6F6CF3F3F3068,$D9797977AC58B1EC,$622E14515CA34689,$757723E0970C4990,$FEEE03A44891E515,$D9EBD7A65A1DBEFE,$17483060DBFAFAFA,$142879941CB6C117,$2C08E123CC3870A2,$382443921E614385,$8DA65965B408103C,$83C7B717A378D8D,$AEEEEEF8D2D2D2DD,$12DBD7AF273F3812
Data.q $9FF33F3F7E6747DF,$3EA77DCFCFBF5871,$8DC480D12D3C78F2,$F0C60D0C76846815,$FB0E1C26D6D6D7C6,$25B7724921E3D7BD,$81615D492473BBB7,$EAFA5EBC4FB408E,$4FFA0D68D0B83DC7,$76765F1328BFA479,$E8DF5CB901C1E764,$24E9D0E059A5CBBB,$3CA7B4478BE9C0D4,$351B5716DBC1A658,$E7DB16AD5B4D3F9B
Data.q $4F366CDF0020EDED,$26A1C6D97DCC36A3,$61DEFC04E1A6C3A,$1FFCEBC3381A872,$1FE608D257987C45,$444E454900000000,$826042AE
SymbolStart:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$B0000130B000073,$189C9A000113,$CB38544144491801,$3304A06068686863,$DD307AFAFA80D550,$5C927CC8CC8D8D8,$681A609595954D20,$A70A1067C6881310,$6D85A5A5A18EAEAE,$E50CCD40AEB5DAED,$865C6C404360E5E5
Data.q $CF5FAFD7E9803360,$45A2D164797CBE5F,$3433575754D72056,$9BF38616F5613535,$FD7F7FBFDF199B9B,$ACDAED76BEFC043F,$309494974A271389,$D5821BA032D6D6D4,$EFF7FEDD3E9F4F80,$F7E5360040BF9FDF,$6F696A9D4EA777EF,$A00BA092B906E76F,$A86FCFE7F3FDFC06,$674E7D7EBF5EFE4B,$D788C15D01F2767
Data.q $1AA0D70BC8018600,$D9ECC360F0783FFF,$17B094B4B4A75B3,$AF881400BA03CE4,$3F3ADD6EBEB8AE8,$6181B4AE24050269,$3B9DCEDB2B6B6B40,$2B640383A3A3AA3,$468A89199A8119C5,$4C75180C320484E4,$73DD3293F5245284,$AA3947B9FE120023,$454900000000B3DD,$826042AE444E
SymbolPause:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$B0000130B000073,$189C9A000113,$CB38544144491201,$D41450836ACB53BD,$DAEE943501F36D0,$6EA58FDF44FD0211,$745DA75D5BF1F145,$39D268F82B6B5C25,$61725A1570924141,$828F1E3B99CE4660,$81ABFC205FC29A69
Data.q $51E99C7B17031861,$11DA69A05404E5CD,$44B2CB0264F54FC4,$17B6DB47801FF7DF,$E8099349E79ED204,$B6D1F55557DE1416,$AF1C714F249277ED,$E71C757F3CF2BFC1,$B6E02AAAAA20678E,$CB2C9C079F34D355,$78A28BC4CA9A69D6,$13F3AEBA9775D77,$FCD1ECF43018240C,$80C1D830E21B148C,$A6C00640E0C4E09F
Data.q $75D5583300CF304F,$F400940AF438F6CD,$21DC960CC3B63187,$504B3BAEBA9033F6,$DC80CEE0251BE596,$B45147286185B3E9,$412FE0B700DC345,$62394514917B3C81,$A658CAB59EB1A458,$AE0993D63E786105,$87C20DFE02FE37FE,$635B23D5,$826042AE444E4549
SymbolReset:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$B0000130B000073,$189C9A000113,$CB3854414449D201,$7E1461824B3B53A5,$69368820E6A6D4D,$7F407EA6A1A229AB,$9B77EF149D26ADA1,$25242BBC441D2484,$2122936420E638B9,$25D06B037829B826,$810AF33F11E74BC9
Data.q $CE79CE1DF7CE1C2F,$B03060CCBCF79E73,$DE47EBD7A0216C75,$7FFFB8F3C9F23468,$1D3A74370A992001,$25741A7E0C952A53,$428F89932609700,$9712244DBD9B3648,$16C88C10B8A7CFF4,$3193264DD18A4D18,$432FEBD7AA25CB97,$32952A4AEA54A93A,$AB533972E4C54A95,$2EA3C063841E6CD5,$B5EBD7BAF264C99B
Data.q $D6AD5A7FF7EFDC50,$6F458B15F050A15B,$31DDCE9D3B969D3A,$61A346AE88C809C3,$A27C18307B63870E,$3B9C307BE9BE4098,$18E040816B76EDD,$76ECF401193C09C2,$EA32467E5CB94EFB,$E3C79D8B162DB3A9,$BB78877F3E7C8BF1,$991A02CD9B377EDD,$D5AACD1931222337,$BED132412ECD196A,$7CD9B37893244891
Data.q $A202C18B0E1C3C45,$8F3842620F215FCF,$61E271EE824FB3C7,$2850B30291A346CC,$BF225D2C10063074,$9F3E87BD7AF62FDF,$C183049C891228EF,$A74EF742672E5CD3,$7023338458B161F3,$D7A0B6D9B369A06,$7A3468AF99BA1C97,$69C44FE2850A6,$F74A952C2AD5AB7D,$C91F56AD562D5AB5,$63264C87952A553F
Data.q $E2BD31E822DDBB71,$19CF0CCC1009AB0B,$8B0BED718A2BA198,$5E55CAD8CD21E2B4,$7AF2177502FF39F7,$78D543CE,$826042AE444E4549
SymbolStop:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$B0000130B000073,$189C9A000113,$CB3854414449AF00,$451020C30ACB93BD,$DD455DFD086DBECD,$764268417E860FEB,$C9910182E769A42E,$C67733081C0D0C03,$A5C41A88C630A879,$AE41B37FEBD6B409,$652C52940802BE1
Data.q $25BEF7856B5815B3,$8A700ADDBE1682BA,$138C63E84216EE73,$56CD07C1B04C4EF1,$F8081FD3894A4682,$83CEB341F06C1F16,$B3140F12774480AD,$157B7C1B02C49F10,$C61699185BC82754,$4E6028BE21A42D53,$D7CC43476C330483,$5E35C3BA0B3DB588,$E35FDFF2AFAA9172,$6F1972BEDAA9020F,$4E4549000000008F
Data.q $826042AE44
SymbolPlus:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$B0000130B000073,$189C9A000113,$CB38544144493401,$F5C7406068686863,$991B1B1BA60F5F5,$415631D0C5919988,$A5C6305ADADA8698,$BDBDBD0D3001A719,$805740A27D7D7DC2,$EAEA80D58419B0C5,$FAFE28A65329866A
Data.q $2FDFBFDFEFCDEBF5,$2412B2B2B0C0B058,$9B40E99000D388C7,$9A61A9A9AE7E4118,$B158287FDEA67339,$5353155555638562,$504BB20D480B1353,$B8A9B200C4540C9C,$FF0A49A4D26198B8,$42C2C2E302E800A0,$5D5D417563083CB0,$2D97D473399CC31D,$1DF342E170BD665B,$C0E0705CC2C4763B,$B9B920E621A06C81
Data.q $4B4B417561AAE773,$27FEEF5FAFD7F30B,$96A800F6FB7DBE00,$66E6E680DC086615,$E7A2C1DCBE5F2FE6,$30C7DC96807321F,$D032B67B3D985E60,$10BD03182F406699,$17A01C85E8003309,$12AA6F405672802C,$5C31102F88A881B,$4D00A4848E234514,$909820302E801F48,$D9A09996A9949AA8,$FA350006765F0999
Data.q $3A5AAEC298E8,$42AE444E45490000,$8260
SymbolMinus:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$B0000130B000073,$189C9A000113,$CB3854414449CD00,$861040820E3B93E5,$19581F087A06F167,$173796414E463CF,$17898D0D433A4A6A,$C93FEAB8C616E4A1,$BE4DD3B0A0489662,$2966CC87F37C990C,$3880A1FA06FA1249
Data.q $1026CC0B534D298E,$E479E786BA02F6EC,$925D3398EC28EEBA,$75D7D8A28A808208,$E89A3D40755554ED,$3BCCF2EC767039E,$E5EDB6D494A4D7F8,$3319E5D99CE07139,$BB9C2534D366E2C0,$BD03CD2815CAEA52,$B7AB00E939C37F1B,$9E79B2CB288A28C4,$3601B02B04B06BE7,$B83BB059C36AEAD8,$D851FDF7C90C30C4
Data.q $A026235719225A19,$9302F0B7F3FC6B8F,$5E35B16415BA71,$AE444E4549000000,$826042
SymbolAlert:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$B0000130B000073,$189C9A000113,$CB3854414449B301,$7D1450C24F3D52A5,$1C6AE884306131AD,$15FD1C27F80FF274,$BE56050A184A2E2E,$E31A590DC4636007,$48560751831A1848,$4B44C0CA04DA48F8,$312BE5A7D21EF169
Data.q $DEE7B9DF779B92FA,$FF609122597B7A7B,$64C9671E3C609DB1,$ABF607C1845F2052,$924CA3468B325E02,$56C8ABB607C195A4,$C1D3C58B15246E32,$A54A5F0E1C3CF060,$AAD9296D8A3019D2,$E4C993C900B2CB28,$C9D4D34C8F9F3E75,$4F02AF6C444C237F,$B8D1A359870E18BA,$366CA1F3E7C9D25D,$88779B3669D7201B
Data.q $62C426AFE157E381,$3366CD1D4A952131,$E885CB97335D75CD,$99464A4A671C701D,$AD610A80F348264C,$56B0891220FDD780,$AF56AD53BD2D25AB,$64C537F25CA952A,$5486015BE2AE5C07,$21D1D4DDF18E1428,$9D3A75ABD7AF6E05,$E7131ACB2CC0F847,$555DDE014FE81BC4,$6E16162C5A747BD5,$CE231FB1B20DB6DB
Data.q $9984D02057E15703,$794C89B2352AEBAE,$87D3A74C180694F6,$E7CB80E061C0428,$595F7EFD590880BC,$FD7AF53728A28EFA,$209F78E063975C9A,$779CC2D1B6C029AE,$E9D4EF69A69ADDBB,$FC9B40ED368C30C3,$17CB972A7B14604F,$BEBE6E02FED6A97C,$E6FE32BADFA30890,$A16C635CD9CFEDAB,$BEC262F3186D55C8
Data.q $B7351017D93FA45,$8BA9FAB3B4,$6042AE444E454900,$82
SymbolOpts:
Data.q $A1A0A0D474E5089,$524448490D000000,$1000000010000000,$FFF31F0000000608,$5948700900000061,$B0000130B000073,$189C9A000113,$CB3854414449B101,$DD1040C26ADB5385,$F5BEB4FD28493E24,$208DA1AB5F6B7DA5,$150A41F6F0188D1A,$6FD0A56D58A318C1,$DA25E34158D46C48,$64303524BC5648CE,$44B3999CF6767676
Data.q $649A74E967E26596,$EF283F418C161932,$ECED4A953AE1D0EC,$FE067C160DBF1CBF,$30F9F3E7C0A142A1,$56722D399F6F39AC,$288966CD9224925D,$A870E1D78C30C48A,$68830A28A271E3C7,$EA412244F5601102,$A952A3565960BAF5,$79DD75DB4B972EDC,$B86F468D1FBD5AB5,$878500A8F2883987,$837C06FEA9A69BB7
Data.q $F648A5CC1CC340C1,$72E5249932779090,$C2C58BBADDBB66F9,$8DFF8226063D75D2,$65403980F6AD5AB1,$E2CD06E4355D8BDF,$E0FD5AB57B71E3C7,$4102082223468D6D,$7AF5EB6319ED34D3,$4E9E3972E7693D0E,$4F93264D5C0B0E7,$8D14FAAAAB260ECE,$3A6CC0AF17816946,$E54A6BC58B157E9D,$E10456AD5B060288
Data.q $6CD9A10A02638E3A,$93792BB76E8528C6,$2F8C179073B0A238,$8CF4089A82BE2804,$3C4DF61F63C4A952,$91D3A74C1B0B2318,$CE80EEE8C3EEDB6D,$8847BE3038D9B36C,$42A22E053D7AF47D,$4386882E9512173B,$18BDF7381DE8703A,$71C553293F6D27EB,$E718878C3430E520,$D79114F94A2F641D,$973339E0298FCBED
Data.q $A5507DD941FF39E,$49000000000B78F9,$826042AE444E45
CompilerElse
ButtonBlack:
IncludeBinary "Data\Button\Black.png"
ButtonRed:
IncludeBinary "Data\Button\Red.png"
ButtonOrange:
IncludeBinary "Data\Button\Orange.png"
ButtonYellow:
IncludeBinary "Data\Button\Yellow.png"
ButtonGreen:
IncludeBinary "Data\Button\Green.png"
ButtonBlue:
IncludeBinary "Data\Button\Blue.png"
ButtonWhite:
IncludeBinary "Data\Button\White.png"
SymbolStart:
IncludeBinary "Data\Symbol\01.png"
SymbolPause:
IncludeBinary "Data\Symbol\02.png"
SymbolReset:
IncludeBinary "Data\Symbol\03a.png"
SymbolStop:
IncludeBinary "Data\Symbol\04.png"
SymbolPlus:
IncludeBinary "Data\Symbol\05.png"
SymbolMinus:
IncludeBinary "Data\Symbol\06.png"
SymbolAlert:
IncludeBinary "Data\Symbol\07.png"
SymbolOpts:
IncludeBinary "Data\Symbol\08.png"
CompilerEndIf
EndDataSection
#GrayGreen= $8CBA73
#GrayRed= $7373BA
Procedure.s ExactTime()
GetSystemTime_(@Win\TimeStamp)
ProcedureReturn RSet(Str(Win\TimeStamp\wDay),2,"0")+"."+RSet(Str(Win\TimeStamp\wMonth),2,"0")+"."+Str(Win\TimeStamp\wYear)+" "+RSet(Str(Win\TimeStamp\wHour),2,"0")+":"+RSet(Str(Win\TimeStamp\wMinute),2,"0")+":"+RSet(Str(Win\TimeStamp\wSecond),2,"0")+"."+RSet(Str(Win\TimeStamp\wMilliseconds),3,"0")
EndProcedure
; EndDefine
Procedure ResizeGadgets()
With Win
If WindowHeight(#Win)=\Width And WindowWidth(#Win)=\Height
Debug "AHA?"
EndIf
\Width= WindowWidth(#Win)
\Height= WindowHeight(#Win)
\ListHeight=\Height-\ListTop
ResizeGadget(#List,0,\ListTop,\Width,\ListHeight)
EndWith
EndProcedure
Macro IconAddress(id)
?icon#id
EndMacro
Macro IconSize(id,nid)
IconAddress(nid)-IconAddress(id)
EndMacro
Procedure ColorizeIcon(x,y,s,d)
ProcedureReturn AlphaBlend((s&$FF000000)|Win\IconTextColor,d)
EndProcedure
Procedure GenerateIcon(icon,*button,*symbol,color=#White)
Protected x
With Win
\IconTextColor=color
If \IconH=\IconW
CatchImage(icon,*button)
CatchImage(#IconTemp1,*symbol)
StartDrawing(ImageOutput(icon))
If color<>#White
DrawingMode(#PB_2DDrawing_CustomFilter)
CustomFilterCallback(@ColorizeIcon())
EndIf
DrawAlphaImage(ImageID(#IconTemp1),0,0)
StopDrawing()
FreeImage(#IconTemp1)
If \IconH<>#DefaultIconSize
ResizeImage(icon,\IconW,\IconH)
EndIf
Else
CreateImage(icon,\IconW,\IconH,32,#PB_Image_Transparent)
CatchImage(#IconTemp1,*button)
CatchImage(#IconTemp2,*symbol)
ResizeImage(#IconTemp1,\IconH,\IconH)
ResizeImage(#IconTemp2,\IconH,\IconH)
x=(\IconW-\IconH)/2
StartDrawing(ImageOutput(icon))
DrawAlphaImage(ImageID(#IconTemp1),x,0)
If color<>#White
DrawingMode(#PB_2DDrawing_CustomFilter)
CustomFilterCallback(@ColorizeIcon())
EndIf
DrawAlphaImage(ImageID(#IconTemp2),x,0)
StopDrawing()
FreeImage(#IconTemp1)
FreeImage(#IconTemp2)
EndIf
EndWith
EndProcedure
Procedure InitToolbar()
Protected image.TBADDBITMAP
Protected i,flag
With Win
GenerateIcon(#IconStart, ?ButtonBlack, ?SymbolStart)
GenerateIcon(#IconStop, ?ButtonRed, ?SymbolStop)
GenerateIcon(#IconPause, ?ButtonYellow, ?SymbolPause)
GenerateIcon(#IconReset, ?ButtonBlack, ?SymbolReset)
GenerateIcon(#IconPlus, ?ButtonWhite, ?SymbolPlus, #GrayGreen)
GenerateIcon(#IconMinus, ?ButtonWhite, ?SymbolMinus, #GrayRed)
GenerateIcon(#IconAlert, ?ButtonBlack, ?SymbolAlert, #Yellow)
GenerateIcon(#IconOpts, ?ButtonWhite, ?SymbolOpts, #Gray)
flag=#PB_ToolBar_Large | (#PB_ToolBar_InlineText*Bool(\ToolbarMode=2)) | (#PB_ToolBar_Text*Bool(\ToolbarMode))
If IsToolBar(#Toolbar)
FreeToolBar(#Toolbar)
EndIf
\ToolbarHandle=CreateToolBar(#Toolbar,WindowID(#Win),flag)
CompilerIf 1 ; Change icon size and symbols
\ToolbarImages=SendMessage_(\ToolBarHandle, #TB_GETIMAGELIST,0,0)
ImageList_SetIconSize_(\ToolbarImages, \IconW,\IconH);
SendMessage_(\ToolbarHandle, #TB_SETBUTTONSIZE,0,\IconW|\IconH<<16)
SendMessage_(\ToolbarHandle, #TB_SETIMAGELIST,0,\ToolBarImages)
SendMessage_(\ToolbarHandle, #TB_AUTOSIZE,0,0)
;image\Hinst=0
;image\nID=ImageID(#IconStop)
;SendMessage_(ToolbarHandle,#TB_ADDBITMAP,0,image)
CompilerEndIf
ToolBarImageButton(#IconStart, ImageID(#IconStart),#PB_ToolBar_Normal,"Start")
ToolBarToolTip(#Toolbar,#IconStart,"Start")
ToolBarImageButton(#IconPause, ImageID(#IconPause),#PB_ToolBar_Normal,"Pause")
ToolBarToolTip(#Toolbar,#IconPause,"Pause")
ToolBarImageButton(#IconStop, ImageID(#IconStop),#PB_ToolBar_Normal,"Stop")
ToolBarToolTip(#Toolbar,#IconStop,"Stop")
ToolBarImageButton(#IconReset, ImageID(#IconReset),#PB_ToolBar_Normal,"Reset")
ToolBarToolTip(#Toolbar,#IconReset,"Reset")
ToolBarSeparator()
ToolBarImageButton(#IconPlus, ImageID(#IconPlus), #PB_ToolBar_Normal,"Increase");"New Entry")
ToolBarImageButton(#IconMinus, ImageID(#IconMinus), #PB_ToolBar_Normal,"Decrease");"Remove Entry")
ToolBarSeparator()
ToolBarImageButton(#IconAlert, ImageID(#IconAlert), #PB_ToolBar_Normal,"Problem")
ToolBarImageButton(#IconOpts, ImageID(#IconOpts), #PB_ToolBar_Normal,"Change Mode")
;ToolBarImageButton(#IconStop, ImageID(#IconStop))
;ToolBarSeparator()
;DisableToolBarButton(#Toolbar,#IconAlert,1)
SendMessage_(\ToolbarHandle,#TB_DELETEBUTTON,#IconStop,#Null)
\IconHeight= ToolBarHeight(#Toolbar)
\ListTop= \MenuHeight+\IconHeight
\ListHeight= \Height-\ListTop
ResizeGadgets()
EndWith
EndProcedure
Procedure Init()
Protected i
With Win
\Width=960
\Height=400
\IconW=48
\IconH=48
If OpenWindow(#Win,0,0,\Width,\Height,"Bird's Beeper",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_SizeGadget)
WindowBounds(#Win,600,200,4000,2500)
ListIconGadget(#List,0,\ListTop,\Width,\ListHeight,"Address",120, #PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_HeaderDragDrop)
AddGadgetColumn(#List,#ListState,"State",60)
AddGadgetColumn(#List,#ListOkCount,"Ok #",55)
AddGadgetColumn(#List,#ListOkPercent,"Ok %",55)
AddGadgetColumn(#List,#ListTimeNow,"ms",45)
AddGadgetColumn(#List,#ListTimeMedian,"Time med",45)
AddGadgetColumn(#List,#ListTimeMax,"Time max",45)
AddGadgetColumn(#List,#ListTTL,"TTL",40)
AddGadgetColumn(#List,#ListSeriesUp,"Ups",60)
AddGadgetColumn(#List,#ListSeriesDown,"Downs",60)
AddGadgetColumn(#List,#ListLastChange,"Change",170)
AddGadgetColumn(#List,#ListChangeTime,"Time",60)
AddGadgetColumn(#List,#ListName,"Name",120)
InitToolBar()
AddGadgetItem(#List,0,"222.222.222.222"+#LF$+"Okay"+#LF$+"999"+#LF$+"99.9%"+#LF$+"123"+#LF$+"60"+#LF$+"1234"+#LF$+"127"+#LF$+"1234"+#LF$+"6666"+#LF$+ExactTime()+#LF$+"12s"+#LF$+"Switch A")
AddWindowTimer(#Win,0,100)
BindEvent(#PB_Event_SizeWindow,@ResizeGadgets(),#Win)
HideWindow(#Win,#Null)
;ButtonGadget(0,20,70,200,30,"Hide ToolBar ")
Protected Shown = 1
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Case #PB_Event_Menu
Select EventGadget()
Case #IconAlert
\IconW=24
\IconH=24
\ToolbarMode=0
i=0
InitToolbar()
Case #IconMinus
If \IconW>16
\IconW-8
\IconH-8
InitToolbar()
EndIf
Case #IconPlus
If \IconW<128
\IconW+8
\IconH+8
InitToolbar()
EndIf
Case #IconOpts
\ToolbarMode+1
\ToolbarMode%3
InitToolbar()
Case #IconStart
;ToolBarImageButton(#IconPlay, ImageID(#IconStop),#PB_ToolBar_Normal,"Stop")
i=1-i
SendMessage_(\ToolbarHandle,#TB_CHANGEBITMAP,#IconStart,i)
ToolBarButtonText(#Toolbar,EventGadget(),StringField("Start.Pause",i+1,"."))
; ShowWindow_(ToolbarHandle,#SW_HIDE) ; now hide toolbar
; ShowWindow_(ToolbarHandle,#SW_SHOWNORMAL) ; now shot toolbar
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf
EndWith
EndProcedure
Init()


