Update
Changes :
- Fixed some ListView/TreeView coloring problems with ImageList
- Added support for PanelGadget (see example 15)
- After ClearGadgetItemList(#ListIcon), PureCOLOR_ClearAllColorsForGadget(#ListIcon) is automatically called
- Added ListIcon cell coloring callback (see example 14)
PanelGadget :
Code: Select all
Procedure GUI_CB(WindowId,message,wParam,lParam)
Result = #PB_ProcessPureBasicEvents
Result = PureCOLOR_CallBack(WindowId,message,wParam,lParam, Result)
ProcedureReturn Result
EndProcedure
;
Enumeration
#gFrame
#gPanel
#gPanelB1
#gPanelB2
#gContainer
#gContainerExplorer
EndEnumeration
;
OpenWindow(0, 303, 182, 347, 300, #PB_Window_SystemMenu|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_SizeGadget|#PB_Window_ScreenCentered, "PureCOLOR : PanelGadget demo")
CreateGadgetList(WindowID(0))
Frame3DGadget(#gFrame, 5, 5, 335, 75, "Frame3D Gadget", #PB_Frame3D_Single)
PanelGadget(#gPanel, 5, 85, 335, 100)
AddGadgetItem(#gPanel,-1,"Panel Gadget - 1")
ButtonGadget(#gPanelB1,5,5,320,22,"Button inside Panel Gadget - 1")
AddGadgetItem(#gPanel,-1,"Panel Gadget - 2")
ButtonGadget(#gPanelB2,5,5,320,22,"Button inside Panel Gadget - 2")
CloseGadgetList()
ContainerGadget(#gContainer,5,190,335,105,#PB_Container_Flat)
ExplorerTreeGadget(#gContainerExplorer,5,5,325,95,"c:\")
CloseGadgetList()
;
SetWindowCallback(@GUI_CB())
PureCOLOR_SetGadgetColor(#gPanel, #Yellow, #Blue)
PureCOLOR_SetGadgetColor(#gContainer, #Yellow, #Black)
PureCOLOR_SetGadgetColor(#gContainerExplorer, #Black, #Red)
PureCOLOR_SetButtonColor(#gPanelB1, #Blue, #Red)
PureCOLOR_SetButtonColor(#gPanelB2, #Yellow, #Black)
PureCOLOR_SetWindowColor(0, #Blue)
;
Repeat
Select WaitWindowEvent()
Case #PB_EventCloseWindow
Break
EndSelect
Until WaitWindowEvent()=#PB_EventCloseWindow
;
End
Cell Callback :
Code: Select all
Procedure.l WindowCallBack(WindowId.l, message.l, wParam.l, lParam.l)
ReturnValue.l = #PB_ProcessPureBasicEvents
;
ReturnValue = PureCOLOR_CallBack(WindowId, message, wParam, lParam, ReturnValue)
;
ProcedureReturn ReturnValue
EndProcedure
;
Procedure MyCellColorCallback(GadgetNumber.l, CellRow.l, CellColumn.l, *TextColor, *BackColor)
If GadgetNumber = 1
CellText.s = GetGadgetItemText(GadgetNumber, CellRow, CellColumn)
Debug Str(CellRow) + ":" + Str(CellColumn) + ">" + CellText
Select CellText
Case "Red"
PokeL(*TextColor, #Red)
Debug "-> Red"
Case "Blue"
PokeL(*BackColor, #Blue)
PokeL(*TextColor, #White)
Debug "-> Blue"
Case "Green"
PokeL(*TextColor, #Green)
Debug "-> Green"
EndSelect
EndIf
EndProcedure
; Create Window
OpenWindow(0, 100, 300, 400, 200, #PB_Window_SystemMenu, "PureCOLOR test : cell callback demo")
SetWindowCallback(@WindowCallBack())
If CreateGadgetList(WindowID())
ListIconGadget(1, 1, 1, 300, 160, "0", 100, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect)
;
AddGadgetColumn(1, 1, "1", 100)
AddGadgetColumn(1, 2, "2", 100)
AddGadgetItem(1, -1, "0:0" + Chr(10) + "0:1" + Chr(10) + "Red")
AddGadgetItem(1, -1, "1:0" + Chr(10) + "1:1" + Chr(10) + "1:2")
AddGadgetItem(1, -1, "Blue" + Chr(10) + "Green" + Chr(10) + "2:2")
AddGadgetItem(1, -1, "3:0" + Chr(10) + "Red" + Chr(10) + "3:2")
AddGadgetItem(1, -1, "Red" + Chr(10) + "4:1" + Chr(10) + "Red")
AddGadgetItem(1, -1, "Green" + Chr(10) + "Blue" + Chr(10) + "5:2")
AddGadgetItem(1, -1, "6:0" + Chr(10) + "6:1" + Chr(10) + "6:2")
AddGadgetItem(1, -1, "Red" + Chr(10) + "Blue" + Chr(10) + "7:2")
EndIf
PureCOLOR_SetCellColorCallback(@MyCellColorCallback())
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_EventCloseWindow
Break
EndIf
ForEver
;
End