It is fixed, thanks for the quick action.

Code: Select all
SetGadgetColor(#Txt_1, #PB_Gadget_BackColor, #Blue) : InvalidateRect_(GadgetID(#Txt_1), #Null, #True)
Code: Select all
Declare DelGadgetObjectTheme(Gadget)
Code: Select all
Procedure DelGadgetObjectTheme(Gadget)
Protected ReturnValue
If Not IsGadget(Gadget) : ProcedureReturn ReturnValue : EndIf
With ObjectTheme()
If FindMapElement(ObjectTheme(), Str(GadgetID(Gadget)))
Select \PBGadgetType
Case #PB_GadgetType_CheckBox, #PB_GadgetType_Frame, #PB_GadgetType_Option, #PB_GadgetType_Text, #PB_GadgetType_TrackBar, #PB_GadgetType_ScrollBar
If \OldProc : SetWindowLongPtr_(\IDGadget, #GWLP_WNDPROC, \OldProc) : EndIf
SetWindowTheme_(\IDGadget, 0, 0)
FreeMemory(\ObjectInfo)
DeleteMapElement(ObjectTheme())
ReturnValue = #True
Case #PB_GadgetType_Editor, #PB_GadgetType_Spin, #PB_GadgetType_String, #PB_GadgetType_HyperLink
If \OldProc : SetWindowLongPtr_(\IDGadget, #GWLP_WNDPROC, \OldProc) : EndIf
SetWindowTheme_(\IDGadget, 0, 0)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_BackColor, #PB_Default)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_FrontColor, #PB_Default)
FreeMemory(\ObjectInfo)
DeleteMapElement(ObjectTheme())
ReturnValue = #True
Case #PB_GadgetType_Container, #PB_GadgetType_ProgressBar, #PB_GadgetType_ScrollArea
If \OldProc : SetWindowLongPtr_(\IDGadget, #GWLP_WNDPROC, \OldProc) : EndIf
SetWindowTheme_(\IDGadget, 0, 0)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_BackColor, #PB_Default)
FreeMemory(\ObjectInfo)
DeleteMapElement(ObjectTheme())
ReturnValue = #True
Case #PB_GadgetType_Tree
If \OldProc : SetWindowLongPtr_(\IDGadget, #GWLP_WNDPROC, \OldProc) : EndIf
SetWindowTheme_(\IDGadget, 0, 0)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_FrontColor, #PB_Default)
FreeMemory(\ObjectInfo)
DeleteMapElement(ObjectTheme())
ReturnValue = #True
Case #PB_GadgetType_Calendar, #PB_GadgetType_Date
If \OldProc : SetWindowLongPtr_(\IDGadget, #GWLP_WNDPROC, \OldProc) : EndIf
SetWindowTheme_(\IDGadget, 0, 0)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_BackColor, #PB_Default)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_FrontColor, #PB_Default)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_TitleBackColor, #PB_Default)
FreeMemory(\ObjectInfo)
DeleteMapElement(ObjectTheme())
ReturnValue = #True
Case #PB_GadgetType_ExplorerList, #PB_GadgetType_ExplorerTree, #PB_GadgetType_ListIcon
If \OldProc : SetWindowLongPtr_(\IDGadget, #GWLP_WNDPROC, \OldProc) : EndIf
SetWindowTheme_(\IDGadget, 0, 0)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_BackColor, #PB_Default)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_FrontColor, #PB_Default)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_LineColor, #PB_Default)
FreeMemory(\ObjectInfo)
DeleteMapElement(ObjectTheme())
ReturnValue = #True
Case #PB_GadgetType_Panel
If \OldProc : SetWindowLongPtr_(\IDGadget, #GWLP_WNDPROC, \OldProc) : EndIf
SetWindowTheme_(\IDGadget, 0, 0)
SetWindowLongPtr_(\IDGadget, #GWL_STYLE, GetWindowLongPtr_(\IDGadget, #GWL_STYLE) &~ #TCS_OWNERDRAWFIXED)
FreeMemory(\ObjectInfo)
DeleteMapElement(ObjectTheme())
ReturnValue = #True
Case #PB_GadgetType_ComboBox
If Not (GetWindowLongPtr_(\IDGadget, #GWL_STYLE) & #CBS_OWNERDRAWFIXED = #CBS_OWNERDRAWFIXED)
If \OldProc : SetWindowLongPtr_(\IDGadget, #GWLP_WNDPROC, \OldProc) : EndIf
SetWindowTheme_(\IDGadget, "", "")
FreeMemory(\ObjectInfo)
DeleteMapElement(ObjectTheme())
ReturnValue = #True
EndIf
Case #PB_GadgetType_ListView
If \OldProc : SetWindowLongPtr_(\IDGadget, #GWLP_WNDPROC, \OldProc) : EndIf
SetWindowTheme_(\IDGadget, 0, 0)
SetWindowLongPtr_(\IDGadget, #GWL_STYLE, GetWindowLongPtr_(\IDGadget, #GWL_STYLE) &~ #WS_BORDER)
SetWindowLongPtr_(\IDGadget, #GWL_EXSTYLE, GetWindowLongPtr_(\IDGadget, #GWL_EXSTYLE) | #WS_EX_CLIENTEDGE)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_BackColor, #PB_Default)
_PB(SetGadgetColor)(\PBGadget, #PB_Gadget_FrontColor, #PB_Default)
FreeMemory(\ObjectInfo)
DeleteMapElement(ObjectTheme())
ReturnValue = #True
Case #PB_GadgetType_Splitter
If \OldProc : SetWindowLongPtr_(\IDGadget, #GWLP_WNDPROC, \OldProc) : EndIf
SetWindowTheme_(\IDGadget, 0, 0)
If \ObjectInfo\hObjSplitterGripper : DeleteObject_(\ObjectInfo\hObjSplitterGripper) : EndIf
SetClassLongPtr_(\IDGadget, #GCL_STYLE, GetClassLongPtr_(\IDGadget, #GCL_STYLE) &~ #CS_DBLCLKS)
SetWindowLongPtr_(\IDGadget, #GWL_STYLE, GetWindowLongPtr_(\IDGadget, #GWL_STYLE) &~ #WS_CLIPCHILDREN)
FreeMemory(\ObjectInfo)
DeleteMapElement(ObjectTheme())
ReturnValue = #True
Case #PB_GadgetType_Button, #PB_GadgetType_ButtonImage
FreeButtonTheme(\IDGadget)
ReturnValue = #True
EndSelect
EndIf
EndWith
ProcedureReturn ReturnValue
EndProcedure
Code: Select all
SetGadgetColor(#Txt_1, #PB_Gadget_BackColor, #Blue) : InvalidateRect_(GadgetID(#Txt_1), #Null, #True)