
Recently I needed a accordion gadget for a small project, but had to have the same face on windows and linux and the customer wanted on Linux accordion style.
Then just fit me make this module.
I hope it's helpful to someone, it needs many improvements but think it might be useful for someone who want to collaborate feel free.
------------------------------------------------------------------------------------------------------------------
1.6
[+] Added support for background color to the item AccordionGadget
[+] Added support for item icon in the AccordionGadget
1.5
[+] Added support for gradient colors on the item in the procedure AddAccordionItem
[+] Added the #AccordionGadget_Expand and #AccordionGadget_Portray flags for Accordion widget that changes the item's behavior
[*] Changed the procedure name GetAccordionWidth() to GetAccordionItemWidth()
[*] Changed the procedure name GetAccordionHeight() to GetAccordionItemHeight()
[+] Added the procedure GetAccordionWidth() to get the width of the AccordionGadget
[+] Added the procedure GetAccordionHeight() to get the height of the AccordionGadget
1.4
[+] Added support for MacOS untested
[+] Added GetAccordionWidth e GetAccordionHeight to help treat the content
[-] Removed for...next unnecessary (small optimization)
------------------------------------------------------------------------------------------------------------------
Code: Select all
;-Module AccordionGadget
; Comment :
; Author : holzhacker - romerio@gmail.com
; Version : v1.6
; OS: Windows, Linux
; Created : 03.01.2016
; Updated : 10.01.2016
; Link EN : http://www.purebasic.fr/english/viewtopic.php?f=12&t=64517
; ***************************************************************************************
; TODO
; Add support for multiple accordions;
; Add better treatment pixel calculation between OS
; Confirm the operation in MacOS
; ***************************************************************************************
DeclareModule Accordion
Global accordions.i = -1
Global itens.i = -1
Global ActualAccordionItem.i
Global FirstRun.i = #True
Structure Accordion
gadget.i
x.i
y.i
w.i
h.i
dashboard.i
complement.f
type.i
EndStructure
Structure AccordionItens
accordion.i
gadget.i
item.i
text.s
x.i
y.i
w.i
h.i
expanded.i
gadget_container.i
state.i
image_selected.i
image_unselected.i
EndStructure
Enumeration ; Types of Accordions
#AccordionGadget_Expand
#AccordionGadget_Portray
#AccordionGadget_Animated
EndEnumeration
Global Dim Accordion.Accordion(0)
Global Dim AccordionItens.AccordionItens(0)
Declare.i AccordionGadget(x, y, w, h, TypeAccordion.i)
Declare.i AddAccordionItem(gadget, text$, backcolor_.i=$763B0A, frontcolor_.i=$D1B499, imageid_.i=0)
Declare.i UseAccordionGadgetItemList(item)
Declare.i SetActiveItemAccordion(item)
Declare.i ChangeItemAccordion()
Declare.i GetActiveItemAccordion()
Declare.i SetAccordionComplement(complement.f)
Declare.i GetAccordionItemWidth(item)
Declare.i GetAccordionItemHeight(item)
Declare.i GetAccordionWidth()
Declare.i GetAccordionHeight()
Declare.i SetAccordionBackColor(item.i, color.i)
EndDeclareModule
Module Accordion
Procedure.i GetBackgroundColor()
CompilerIf (#PB_Compiler_OS = #PB_OS_Windows)
ProcedureReturn (GetSysColor_(#COLOR_BTNFACE))
CompilerElse
ProcedureReturn ($EAEAEA)
CompilerEndIf
EndProcedure
Procedure.i Arrow(X1,Y1,Direction = - 1,ArrowLineWidth = 2, Size = 4, ArrowColor = 0)
;http://www.purebasic.fr/english/viewtopic.php?f=12&t=64377
Protected I
X1 = X1 + Size*2
DrawingMode(#PB_2DDrawing_Default)
For i = 1 To Size
If Direction = 1
; Up
LineXY(((X1-(1))+i),(Y1+i),((X1-(1))+i),(Y1+i)+ArrowLineWidth,ArrowColor )
LineXY(((X1+(1))-i),(Y1+i),((X1+(1))-i),(Y1+i)+ArrowLineWidth,ArrowColor )
ElseIf Direction = - 1
; Down
LineXY(((X1-Size)+i),(Y1+i),((X1-Size)+i),(Y1+i)+ArrowLineWidth,ArrowColor )
LineXY(((X1+Size)-i),(Y1+i),((X1+Size)-i),(Y1+i)+ArrowLineWidth,ArrowColor )
EndIf
Next
EndProcedure
Procedure.i ChangeItemAccordion()
For ii= 0 To itens
If AccordionItens(ii)\gadget = EventGadget()
ActualAccordionItem = ii
If AccordionItens(ActualAccordionItem)\expanded = #True
AccordionItens(ActualAccordionItem)\expanded = #False
Else
AccordionItens(ActualAccordionItem)\expanded = #True
EndIf
SetActiveItemAccordion(ii)
EndIf
Next
EndProcedure
Procedure.i AccordionGadget(x, y, w, h, TypeAccordion.i)
accordions = accordions + 1
ReDim Accordion.Accordion(accordions)
Accordion(accordions)\gadget = ContainerGadget(#PB_Any, x, y, w, h, #PB_Container_Flat)
Accordion(accordions)\x = x
Accordion(accordions)\y = y
Accordion(accordions)\w = w
Accordion(accordions)\h = h
Accordion(accordions)\dashboard = w
Accordion(accordions)\complement = 12.3
Accordion(accordions)\type = TypeAccordion
CloseGadgetList()
ProcedureReturn Accordion(accordions)\gadget
EndProcedure
Procedure.i AddAccordionItem(gadget, text$, backcolor_.i=$763B0A, frontcolor_.i=$D1B499, imageid_.i=0)
itens = itens + 1
ReDim AccordionItens.AccordionItens(itens)
tmpFnt1= LoadFont(#PB_Any, "Anonymous Pro Minus", 16*0.5, #PB_Font_HighQuality)
tmpFnt2= LoadFont(#PB_Any, "Anonymous Pro Minus", 17*0.5, #PB_Font_HighQuality|#PB_Font_Bold)
If backcolor_ = #PB_Ignore
backcolor_ = $763B0A
EndIf
If frontcolor_ = #PB_Ignore
frontcolor_ = $D1B499
EndIf
OpenGadgetList(gadget)
If Accordion(ii)\gadget = gadget
If itens > 0
yy.i = 0
For ii= 0 To itens -1
ResizeGadget(AccordionItens(ii)\gadget, AccordionItens(ii)\x, AccordionItens(ii)\y, #PB_Ignore, #PB_Ignore)
yy = yy + GadgetHeight(AccordionItens(ii)\gadget) + 2; + 10
Gadget = AccordionItens(ii)\gadget
accordionID = AccordionItens(ii)\accordion
Next
EndIf
AccordionItens(itens)\accordion = accordions -1
AccordionItens(itens)\item = item
AccordionItens(itens)\x = GadgetX(Gadget)-1
AccordionItens(itens)\y = yy*1
AccordionItens(itens)\w = GadgetWidth(Gadget); - 10
AccordionItens(itens)\h = 20
;Selected
AccordionItens(itens)\image_selected = CreateImage(#PB_Any, AccordionItens(itens)\w, AccordionItens(itens)\h)
StartDrawing(ImageOutput(AccordionItens(itens)\image_selected))
DrawingMode(#PB_2DDrawing_Gradient)
BackColor(backcolor_)
FrontColor(frontcolor_)
LinearGradient(0, 0, AccordionItens(itens)\w, AccordionItens(itens)\h)
Box(0,0,AccordionItens(itens)\w, AccordionItens(itens)\h, $8F3000)
DrawingMode(#PB_2DDrawing_AlphaBlend)
If imageid_ > 0
DrawImage(ImageID(imageid_), 0, -((ImageHeight(imageid_)-20)/2), 38, 38)
EndIf
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor(RGB(255,255,255))
DrawingFont(FontID(tmpFnt2))
If imageid_ > 0
DrawText(10 + ImageWidth(imageid_), 3, Text$)
Else
DrawText(10, 3, Text$)
EndIf
Arrow(AccordionItens(itens)\w-30,AccordionItens(itens)\h/2-4,-1,2,4, RGB(255,255,255))
StopDrawing()
;UnSelected
AccordionItens(itens)\image_unselected= CreateImage(#PB_Any, AccordionItens(itens)\w, AccordionItens(itens)\h)
StartDrawing(ImageOutput(AccordionItens(itens)\image_unselected))
Box(0,0,AccordionItens(itens)\w, AccordionItens(itens)\h, GetBackgroundColor()); RGB(228,228,228))
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor(RGB(128,128,128))
DrawingFont(FontID(tmpFnt1))
DrawText(10, 4, Text$)
Arrow(AccordionItens(itens)\w-30,AccordionItens(itens)\h/2-4,1,2,4)
If itens > 0
Line(0, 0, AccordionItens(itens)\w, 1, RGB(188,188,188))
EndIf
StopDrawing()
AccordionItens(itens)\gadget = ImageGadget(#PB_Any, AccordionItens(itens)\x, AccordionItens(itens)\y, AccordionItens(itens)\w, AccordionItens(itens)\h, ImageID(AccordionItens(itens)\image_unselected))
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
AccordionItens(itens)\gadget_container = ContainerGadget(#PB_Any, GadgetX(Gadget), yy+31, GadgetWidth(Gadget), Accordion(0)\dashboard)
CompilerElseIf #PB_Compiler_OS = #PB_OS_Linux
AccordionItens(itens)\gadget_container = ContainerGadget(#PB_Any, GadgetX(Gadget), yy+31, GadgetWidth(Gadget)-12, Accordion(0)\dashboard - 400-(yy+31))
CompilerElseIf #PB_Compiler_OS = #PB_OS_MacOS
AccordionItens(itens)\gadget_container = ContainerGadget(#PB_Any, GadgetX(Gadget), yy+31, GadgetWidth(Gadget)-12, Accordion(0)\dashboard - 400-(yy+31))
CompilerEndIf
AccordionItens(itens)\State = #True
Accordion(0)\dashboard = Accordion(0)\dashboard - (AccordionItens(itens)\h + AccordionItens(itens)\x + 1)
;SetGadgetColor(AccordionItens(itens)\gadget_container, #PB_Gadget_BackColor, RGB(Random(255),Random(255),Random(255)))
EndIf
BindGadgetEvent(AccordionItens(itens)\gadget, @ChangeItemAccordion(), #PB_EventType_LeftClick)
; If Accordion(accordions)\type = #AccordionGadget_Expand
SetActiveItemAccordion(0)
; EndIf
EndProcedure
Procedure.i UseAccordionGadgetItemList(item)
OpenGadgetList(AccordionItens(item)\gadget)
EndProcedure
Procedure.i GetActiveItemAccordion()
ProcedureReturn ActualAccordionItem
EndProcedure
Procedure.i SetActiveItemAccordion(itemAccordion.i)
Protected difference=1
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
jump = Accordion(0)\h - ((itens * 2) * Accordion(0)\complement)
CompilerElseIf #PB_Compiler_OS = #PB_OS_Linux
jump = Accordion(0)\h - ((itens * 2)) + Accordion(0)\complement
CompilerElseIf #PB_Compiler_OS = #PB_OS_MacOS
jump = Accordion(0)\h - ((itens * 2)) + Accordion(0)\complement
CompilerEndIf
For i=0 To itens
HideGadget(AccordionItens(i)\gadget_container, #True)
If i-itemAccordion>=1
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
difference=jump
CompilerElseIf #PB_Compiler_OS = #PB_OS_Linux
difference=Accordion(0)\h
CompilerElseIf #PB_Compiler_OS = #PB_OS_MacOS
difference=Accordion(0)\h
CompilerEndIf
EndIf
If Accordion(accordions)\type = #AccordionGadget_Expand
ResizeGadget(AccordionItens(i)\gadget,0,(GadgetHeight(AccordionItens(i)\gadget)*i+difference)-1,Accordion(0)\w,#PB_Ignore)
ElseIf Accordion(accordions)\type = #AccordionGadget_Portray
If AccordionItens(ActualAccordionItem)\expanded = #True
ResizeGadget(AccordionItens(i)\gadget,0,(GadgetHeight(AccordionItens(i)\gadget)*i+difference)+1,Accordion(0)\w,#PB_Ignore)
Else
ResizeGadget(AccordionItens(i)\gadget,0,(i*20)+2,Accordion(0)\w,#PB_Ignore)
HideGadget(AccordionItens(i)\gadget_container, #True)
EndIf
EndIf
If i = itemAccordion
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
ResizeGadget(AccordionItens(i)\gadget_container,1,GadgetHeight(AccordionItens(i)\gadget)+GadgetHeight(AccordionItens(i)\gadget)*i+difference,GadgetWidth(AccordionItens(i)\gadget),jump); - ((itens*2)))
CompilerElseIf #PB_Compiler_OS = #PB_OS_Linux
ResizeGadget(AccordionItens(i)\gadget_container,1,GadgetHeight(AccordionItens(i)\gadget)+GadgetHeight(AccordionItens(i)\gadget)*i+difference,GadgetWidth(AccordionItens(i)\gadget),jump)
CompilerElseIf #PB_Compiler_OS = #PB_OS_MacOS
ResizeGadget(AccordionItens(i)\gadget_container,1,GadgetHeight(AccordionItens(i)\gadget)+GadgetHeight(AccordionItens(i)\gadget)*i+difference,GadgetWidth(AccordionItens(i)\gadget),jump)
CompilerEndIf
If Accordion(accordions)\type = #AccordionGadget_Expand
SetGadgetState(AccordionItens(i)\gadget, ImageID(AccordionItens(i)\image_selected))
HideGadget(AccordionItens(ActualAccordionItem)\gadget_container, #False)
ElseIf Accordion(accordions)\type = #AccordionGadget_Portray
If AccordionItens(ActualAccordionItem)\expanded = #True
SetGadgetState(AccordionItens(i)\gadget, ImageID(AccordionItens(i)\image_selected))
HideGadget(AccordionItens(ActualAccordionItem)\gadget_container, #False)
Else
SetGadgetState(AccordionItens(i)\gadget, ImageID(AccordionItens(i)\image_unselected))
HideGadget(AccordionItens(ActualAccordionItem)\gadget_container, #True)
EndIf
EndIf
AccordionItens(i)\state = #True
Else
SetGadgetState(AccordionItens(i)\gadget, ImageID(AccordionItens(i)\image_unselected))
If Accordion(accordions)\type = #AccordionGadget_Expand
HideGadget(AccordionItens(i)\gadget_container, #True)
ElseIf Accordion(accordions)\type = #AccordionGadget_Portray
If AccordionItens(ActualAccordionItem)\expanded = #True
HideGadget(AccordionItens(ActualAccordionItem)\gadget_container, #False)
Else
HideGadget(AccordionItens(i)\gadget_container, #True)
EndIf
EndIf
AccordionItens(i)\state = #False
EndIf
Next
EndProcedure
Procedure.i SetAccordionComplement(complement.f)
Accordion(0)\complement.f = complement.f
SetActiveItemAccordion(ActualAccordionItem)
EndProcedure
Procedure.i GetAccordionItemWidth(item)
For ii= 0 To itens
If ii = item
ProcedureReturn GadgetWidth(AccordionItens(ii)\gadget_container)
EndIf
Next
EndProcedure
Procedure.i GetAccordionItemHeight(item)
For ii= 0 To itens
If ii = item
ProcedureReturn GadgetHeight(AccordionItens(ii)\gadget_container)
EndIf
Next
EndProcedure
Procedure.i GetAccordionWidth()
ProcedureReturn GadgetWidth(Accordion(0)\gadget)
EndProcedure
Procedure.i GetAccordionHeight()
ProcedureReturn GadgetHeight(Accordion(0)\gadget)
EndProcedure
Procedure.i SetAccordionBackColor(item, color)
SetGadgetColor(AccordionItens(item)\gadget_container, #PB_Gadget_BackColor, color)
EndProcedure
EndModule
CompilerIf #PB_Compiler_IsMainFile
UseModule Accordion
Global Window_0
Global Container_0, ScrollArea_0, ButtonImage_0, Container_1
OpenWindow(0, 0, 0, 800, 500, "Example AccordionGadget", #PB_Window_SystemMenu|#PB_Window_WindowCentered|#PB_Window_ScreenCentered)
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
gadget.i = AccordionGadget(10, 10, 710, 480, #AccordionGadget_Portray)
CompilerElseIf #PB_Compiler_OS = #PB_OS_Linux
gadget.i = AccordionGadget(10, 10, 710, 400, #AccordionGadget_Portray)
CompilerElseIf #PB_Compiler_OS = #PB_OS_MacOS
gadget.i = AccordionGadget(10, 10, 710, 400, #AccordionGadget_Portray)
CompilerEndIf
UsePNGImageDecoder()
tmp1 = CatchImage(#PB_Any, ?coinsicon_png_start)
tmp2 = CatchImage(#PB_Any, ?clouds_png_start)
AddAccordionItem(gadget, "Gadget.pb", $00006E, $FFDFF6, tmp1)
;{
#WindowWidth = 390
#WindowHeight = 350
Top = 10
GadgetHeight = 24
FrameGadget(#PB_Any, 10, Top, 370, 290, "Player...") : Top+20
StringGadget(0, 20, Top, 200, GadgetHeight, "")
ButtonGadget(1, 223, Top, 72, GadgetHeight, "Play")
ButtonGadget(2, 295, Top, 72, GadgetHeight, "Stop") : Top+35
DisableGadget(2,1)
GadgetToolTip(1,"Play the current song")
PanelGadget(3, 20, Top, #WindowWidth-50, #WindowHeight-Top-60)
AddGadgetItem(3, 0, "MP3 PlayList")
ListViewGadget(4, 6, 10, 230, 148)
For k=0 To 30
AddGadgetItem(4, -1, "Music Song n° "+Str(k))
Next
ButtonGadget(5, 250, 10, 80, GadgetHeight, "Add")
ButtonGadget(6, 250, 38, 80, GadgetHeight, "Remove")
ButtonGadget(7, 250, 66, 80, GadgetHeight, "Select")
GadgetToolTip(7, "Select the current song")
TrackBarGadget(17, 10, 168, 310, 25, 0, 100)
AddGadgetItem(3, 1, "Options")
Top = 10
CheckBoxGadget(10, 10, Top, 250, GadgetHeight, "Enable low-pass filter") : Top+30
CheckBoxGadget(11, 10, Top, 250, GadgetHeight, "Enable visual plug-in") : Top+30
ComboBoxGadget(12, 10, Top, 250, 21) : Top+30
AddGadgetItem(12, -1, "FireWorks")
AddGadgetItem(12, -1, "OpenGL spectrum")
AddGadgetItem(12, -1, "Bump bass")
SetGadgetState(12,0)
DisableGadget(12,1)
OptionGadget(13, 10, Top, 80, GadgetHeight, "640*480") : Top+20
OptionGadget(14, 10, Top, 80, GadgetHeight, "800*600") : Top+20
OptionGadget(15, 10, Top, 80, GadgetHeight, "1024*768")
SetGadgetState(13, 1)
ButtonGadget(16, 150, Top, 80, GadgetHeight, "Info")
CloseGadgetList()
TextGadget (9, 10, #WindowHeight-30, 250, 24, "PureBasic - Gadget demonstration")
ButtonGadget(8, #WindowWidth-100, #WindowHeight-36, 80, 24, "Quit")
SetGadgetState(3, 0)
;}
CloseGadgetList()
AddAccordionItem(gadget, "GadgetAdvanced.pb", $007900, $BBFFB7)
;{
ListIconGadget(55, 170, 50, 265, 200, "Column 1", 131)
AddGadgetColumn(55, 1, "Column 2", 300)
AddGadgetColumn(55, 2, "Column 3", 80)
TextGadget(54, 10, 16, 180, 24, "Please wait while initializing...")
ProgressBarGadget(53, 10, 260, #WindowWidth-25, 20, 0, 100)
; Update the ProgressBar, just for fun !
;
For k=0 To 100
SetGadgetState(53, k)
Delay(10)
Next
ButtonGadget(50, 200, 5, 0, 0, "button1")
ButtonGadget(51, 384, 5, 50, 36, "button2")
TreeGadget (52, 10, 50, 150, 200)
SetGadgetText(54, "Initialize Ok... Welcome !")
; Fill Up the Tree gadget with lot of entries (including the image)
;
For k=0 To 10
AddGadgetItem(52, -1, "General "+Str(k))
AddGadgetItem(52, -1, "ScreenMode")
AddGadgetItem(52, -1, "640*480", 0, 1)
AddGadgetItem(52, -1, "800*600", 0, 1)
AddGadgetItem(52, -1, "1024*768", 0, 1)
AddGadgetItem(52, -1, "1600*1200", 0, 1)
AddGadgetItem(52, -1, "Joystick")
Next
; Fill Up the ListIcon gadget. Notice than the column are separated by Chr(10) (NewLine) character
;
For k=0 To 100
AddGadgetItem(55, -1, "Element "+Str(k)+Chr(10)+"C 2"+Chr(10)+"Comment 3", 0)
Next
SetGadgetState(55, 8)
;}
CloseGadgetList()
AddAccordionItem(gadget, "WebBrowser.pb", #PB_Ignore, #PB_Ignore, tmp2)
ButtonGadget(71, 0, 0, 50, 25, "Back")
ButtonGadget(72, 50, 0, 50, 25, "Next")
ButtonGadget(73, 100, 0, 50, 25, "Stop")
StringGadget(74, 155, 0, 520, 20, "http://www.purebasic.com")
ButtonGadget(75, 675, 0, 25, 25, "Go")
If WebGadget(710, 0, 31, 705, 370, "http://www.purebasic.com") = 0
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
MessageRequester("Error", "ATL.dll not found", 0)
CompilerElse ; Linux and OX uses Webkit
MessageRequester("Error", "Webkit library not found", 0)
CompilerEndIf
End ; Quit
EndIf
AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
CloseGadgetList()
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
SetAccordionComplement(16)
CompilerElseIf #PB_Compiler_OS = #PB_OS_Linux
SetAccordionComplement(2)
CompilerElseIf #PB_Compiler_OS = #PB_OS_MacOS
SetAccordionComplement(2)
CompilerEndIf
Debug GadgetHeight(Accordion::Accordion(0)\gadget)
Debug "---"
Debug GetAccordionWidth()
Debug GetAccordionHeight()
SetAccordionBackColor(1, $00FFB7)
Repeat
event = WaitWindowEvent(1)
Select event
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case 0
If EventType() = #PB_EventType_ReturnKey
MessageRequester("Info", "Return key pressed", 0)
SetActiveGadget(0)
EndIf
Case 1 ; Play
DisableGadget(2,0) ; Enable the 'Stop' gadget
DisableGadget(1,1) ; Disable the 'Play' Gadget
Case 2 ; Stop
DisableGadget(1,0) ; Enable the 'Play' gadget
DisableGadget(2,1) ; Disable the 'Stop' Gadget
Case 4
If EventType() = 2
SetGadgetText(0, GetGadgetText(4)) ; Get the current item from the ListView..
EndIf
Case 5 ; Add
AddGadgetItem(4, -1, "New Item Added...")
Case 6 ; Remove
RemoveGadgetItem(4, GetGadgetState(4)) ; Remove the current element of the ListView
Case 7 ; Select
SetGadgetText(0, GetGadgetText(4)) ; Get the current item from the ListView..
Case 8 ; Quit...
Event = #PB_Event_CloseWindow
Case 11 ; Enable PlugIn..
DisableGadget(12, 1-GetGadgetState(11))
Case 16 ;
If GetGadgetState(13) : Result$ = GetGadgetText(13) : EndIf
If GetGadgetState(14) : Result$ = GetGadgetText(14) : EndIf
If GetGadgetState(15) : Result$ = GetGadgetText(15) : EndIf
MessageRequester("Info", "Selected screen mode: "+Result$, 0)
Case 17
SetGadgetText(0, Str(GetGadgetState(17)))
Case 51
MessageRequester("Information", "You did it !", 0)
Case 52
SetGadgetText(4, "Tree Gadget. Item selected: "+Str(GetGadgetState(2)))
If EventType() = 2
MessageRequester("Information", "Doubleclick: item"+Str(GetGadgetState(2))+", Text: "+GetGadgetText(2), 0)
ElseIf EventType() = 1
DisplayPopupMenu(0, WindowID(0))
EndIf
Case 55
SetGadgetText(4, "ListIcon Gadget. Item selected: "+Str(GetGadgetState(5)))
If EventType() = 2
MessageRequester("Information", "Doubleclick: item"+Str(GetGadgetState(5))+", Text: "+GetGadgetText(5), 0)
ElseIf EventType() = 1
DisplayPopupMenu(0, WindowID(0))
EndIf
Case 71
SetGadgetState(710, #PB_Web_Back)
Case 72
SetGadgetState(710, #PB_Web_Forward)
Case 73
SetGadgetState(710, #PB_Web_Stop)
Case 75
SetGadgetText(710, GetGadgetText(74))
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
DataSection
coinsicon_png_start:
; size : 1288 bytes
Data.q $0A1A0A0D474E5089,$524448490D000000,$2000000020000000,$7A7A730000000608,$414449CF040000F4
Data.q $1C4FDB97EDDA7854,$0B3BB333BFC71C55,$6F62A5D965974B2C,$36B6311B135A4D26,$E178AD009AB4A35A
Data.q $5FEA3E6FAC66F8D6,$6CDF6A3193EA4FA1,$3EA7D07C1A5469A1,$56354A6942B5A268,$59765D858665CB4A
Data.q $05D60173BF1736F6,$DD9EC9C62635D064,$E7CEFEF9CCE739D9,$B843B7804677CEFC,$5BFF1AA1E3E9C9F5
Data.q $3656D40414E8497E,$C99239BA4AE44D30,$EB3BF86D7E1EEF6B,$FFBBE3687B1BA792,$5F19E0F183974BD9
Data.q $36915E21C2F82ECB,$4A6865A9680CD2B6,$E5C0E0FC3325591A,$07521010D5ABAD97,$DCCCC24F5391D3BB
Data.q $1055D392E0D6A462,$45882115FF636FD6,$0352F7AC449B7E2C,$E85CACD010D5322B,$6057533023FD6350
Data.q $8A5B1927E400FF2C,$1953C75885A745BD,$D66F5013D043A182,$357CCD63143BDE22,$B576559F9F12C404
Data.q $0441EC63DD5F0EBF,$8559280E71661646,$1621A61661E71463,$788A2B7A8598CC29,$9009AAD57D9C60CF
Data.q $3291907E20461F5B,$177F34D2840CD2F2,$0D3430E8443A9820,$173146497E42565A,$2257E80AAA95EC40
Data.q $318CB3AF5451E79D,$690A30B3CBE809E8,$0205209772E241DE,$61634C6FA8FC1B90,$4F84A03033DAA6B2
Data.q $F3D47B28F754839E,$33F4B1855DA70AD2,$B119CF239F64B944,$441FE9B37044E810,$0B7E9C33FD38A520
Data.q $86030623534422C1,$FF823FF2B0475A5E,$06FFA3043281821E,$41106F73F0955782,$42828164B1D6FF1B
Data.q $33B7736086ABB704,$F0C9038D0CBF0FAD,$20FE1BB2D020F645,$022AD11BDA4C2D07,$8519290442B042D3
Data.q $D6D80B3C86089915,$34C974EE45116CED,$44579F81FA49B34A,$AA41880FC705B918,$65A81A3141AFE1A9
Data.q $AE76ADB2CCDDA9D3,$9530659DBAE53DDB,$80A116441568E76E,$24600FFEF11555C4,$CC8A931A453338C6
Data.q $61DDE41C8C9435F8,$B34235B65BBD1AF8,$B9815DF58D4BB172,$61DE793DF3230234,$76ED844744AB24E3
Data.q $11FA8CA1E6EDD701,$25C4639B9000FE3D,$E7D10927E50E8288,$E6C4116C4ECCC04F,$4A33C194C6D56D96
Data.q $0C428FEAF81E99F8,$894052F93280E01C,$9F325DFCDEB2CD0B,$DF55CC3C653B7359,$8B316022EF3B3D00
Data.q $65BAC418F11D9F88,$020C456EA1D402DB,$8310C3E6E4236881,$883DE28DC73221FB,$E76EBA99B17B2985
Data.q $E7645A428FC96E79,$A4A08982946088F7,$83EC9E344BFAF942,$ED96AB1053CC742F,$EC8A7E75340CE008
Data.q $19B6B10CBA0E05C4,$BBE76B332D093E66,$2F9E6EB502977CCE,$821663D10FABF121,$42E51D43A8810759
Data.q $AED96E51053D106C,$3C112F7B70941780,$AB59A7E1D7B0210E,$5B29F91465F237FD,$151B940CDAE79DBD
Data.q $EBB44133E5724408,$59BEB104BDB7B23C,$E2A3417AA2408A6D,$94FAAAC6F535FDE2,$F82054F4110CF91F
Data.q $747044FD53911866,$8088BFAB36CA20FB,$022E68167944F059,$0473B17E65105BC1,$4F38E9BD88F1FA96
Data.q $81122F44F16E56FE,$642FAA020EFE20D7,$E921AD83AEE75603,$8833F0F78E4CE997,$E3DE40839F7B7091
Data.q $62C4158C8833A104,$29BEC43FA9AC1135,$C7C761FEB8699777,$902344089C340F7B,$82528833D52087A3
Data.q $D3E434AC1053CB4F,$7BDDC41DA20593B3,$19DC7B86E723D5C6,$35C5BEAC77678220,$E77BEC5EF7040B1B
Data.q $F1FD62DA3B17B6CD,$23C1D76DC988F946,$494027C533119BB9,$DBE2EE71FABEC6E6,$56F6931582FB5FEF
Data.q $A17DD6A5E751F63C,$3E1E2FEB1EAA77A7,$040B8589A951EB16,$83850F23C62F7741,$F1DD3B6EB2A4EE37
Data.q $B82CB0C9D02A3072,$E3D54EF77D53F7EA,$6859F801965EAF8F,$59662D5DA75D908B,$2184CF42CF22DE61
Data.q $787A83638AFA99FC,$56E565B0132CF978,$830F7AA579D837EA,$34D0D4290EFC7B6F,$00000000C3DC183E
Data.q $826042AE444E4549
coinsicon_png_end:
clouds_png_start:
; size : 1232 bytes
Data.q $0A1A0A0D474E5089,$524448490D000000,$2000000020000000,$7A7A730000000608,$58457419000000F4
Data.q $72617774666F5374,$2065626F64410065,$6165526567616D49,$00003C65C9717964,$DA78544144497204
Data.q $FE14551C4C5D57EC,$B82D281677766766,$69A9A2A58FCA0285,$83EC694908AD0C49,$290BEA26AD0A60C1
Data.q $317C63469A1F60BC,$128989AD0F8C5F51,$80915890DAD1360D,$8A6B5A307C4C6A92,$5DF974B6910D34A6
Data.q $F9D9DD816597767E,$80967E56BB3B9EBD,$973321C9BD83C215,$AEF77CE73BE7E733,$78B6072E56C318C0
Data.q $52D61003CB600FDD,$C792CCACF69DFA78,$EC92EC834F1EDCDB,$E7AF94C6A037553D,$E18BE6F0FF346E87
Data.q $2DA53D3399EE0B4D,$EBE5B0A83FAC83DD,$AB36E3A97B18D1C7,$F5FE449EBA53DB3D,$43F7C6FBC6753CAA
Data.q $837E4BB19305B3B6,$ED301AFCB6E88E75,$AA882997B18C7F7D,$6D5A47EAF7BD6753,$05D5EBDCE6BFBBDF
Data.q $1243A03970B412B8,$F89A8E18D6726912,$158D0B8F79A0243D,$6EDA39D0EE68F805,$A5D53D09AA363120
Data.q $BAD3CB88BA637539,$937452471490A51D,$A465F22A2A9B93E1,$0448D9BFC75EDF6F,$7618095C6E19B9DC
Data.q $57F168BEA64B16CE,$6D925C26837A04D5,$26380151BF324DC6,$AD6EF702DBA20315,$514E1CA8C7F7C4A2
Data.q $C51041C050F76340,$4D1DE3A123575D55,$8A18D759549B7E4F,$A32327B1FEB85C2F,$B3183A6B881C1449
Data.q $0DA56B2C2158FE50,$DB3CFA2C046C1041,$37072E0B8E40E025,$471DEF6898A02026,$B5D352D9DF57D460
Data.q $FB3FC7880895BB12,$A289F1AF2CAAADA3,$0EAE183149C3F06C,$B9639D94EAAA22CF,$B0C326C63AE3C477
Data.q $20837D1164DB030C,$6A2F1ED546ECFE5D,$B482F95465F0F3CB,$64E32042D7C474F9,$17C63E6F7ABE6F8F
Data.q $AE4053A67194E84C,$25B266874440C247,$4E10C9E98E8AA3CE,$1B189794EF9484D3,$5BD8136FC1F1C508
Data.q $1AAAA0E7C63713B4,$F17F533C2C44D34C,$C808E12554EE81C4,$B4CDD89840C453B2,$71AA3F832A22C06C
Data.q $59468BD35A7BB87F,$D237747AD0854F4E,$8C4921A01D3E7FE8,$6B0F8C80F055010D,$943D943E77DAF04B
Data.q $37D0B34442594C83,$6A92891A4A927420,$144B1A70D4331D0C,$06A0C0D512FF258B,$4FF6DA701F33F934
Data.q $FF7A34016564E2CD,$2131C7CE2C7DFA89,$9DED3AEF69FA1604,$56E20C1D5C41EA7E,$EEC4510428F500C4
Data.q $333580F1ABBCC7C3,$C54DD88A1C2BBB72,$173B301306245CC5,$281CD27204F0E8C3,$E12695011BD195CB
Data.q $BA2A54073E973358,$4193C22299A3C4EC,$87C51519EA01FD84,$2403DD8EF1522BEA,$545597BCF7EF75C5
Data.q $4DF870E8FF4A2B56,$2170F57CA08B2142,$BABB040B9FC05CB2,$88B307194DFD833A,$A4E88C668F894818
Data.q $FD1E0FF6F43197F5,$03C193C5EE9A95E6,$936491E490764910,$DF79FF3E73D91738,$91902EF3ED8EB7F9
Data.q $E9C6B0A4F7978209,$6E9764AD413D92C3,$A5EEF93C4C5E0507,$1932591E1B4FD15B,$A5ADBCA549207977
Data.q $F2BFB852385F6F23,$678CBA5B622DC7BC,$E5E3B6BA3460E5F7,$A1CDD694E95E2C41,$B9AB54281504EE00
Data.q $2A7760E9A3BEA050,$950D62775D139E7B,$518A9E322670C825,$BBC7D2E678FFAD7D,$B3FED9B094B73D28
Data.q $8A8A969C3DCF6D0F,$622602510253B23D,$A06B2F6F7AD85489,$A44A3D423090B231,$D149002A93DA5765
Data.q $AE13607824A7100C,$1026CC6CF1CD1A60,$9B5AAFB5C6005529,$BFD1B12117369681,$DAEE95D1A239F81B
Data.q $2379542A4603EE45,$1D7E33D7BFC922EE,$055852649FA2338B,$800A4DA53A927725,$2B7D5BA98778345F
Data.q $803EFFE1B7FF7087,$BAFB4B46001804BF,$00000000E6064E8E,$826042AE444E4549
clouds_png_end:
EndDataSection
CompilerEndIf