To clarify, my end goal is to change the white background color of OS X ScintillaGadget (beyond the SCI_SCROLLWIDTH).
Code: Select all
EnableExplicit
Procedure.i NSColor(RGB.i)
Protected.CGFloat r, g, b, a
r = Red(RGB) / 255.0
g = Green(RGB) / 255.0
b = Blue(RGB) / 255.0
a = 1.0
ProcedureReturn (CocoaMessage(0, 0, "NSColor colorWithDeviceRed:@", @r, "green:@", @g, "blue:@", @b, "alpha:@", @a))
EndProcedure
Procedure.i Cocoa_SetBackgroundColor(Object.i, RGB.i)
ProcedureReturn (CocoaMessage(0, Object, "setBackgroundColor:", NSColor(RGB)))
EndProcedure
Procedure.s Cocoa_ClassName(Object.i)
Protected Result.s
CocoaMessage(@Object, Object, "className")
CocoaMessage(@Object, Object, "UTF8String")
Result = PeekS(Object, -1, #PB_UTF8)
ProcedureReturn (Result)
EndProcedure
Procedure.i Cocoa_Superclass(Object.i)
ProcedureReturn (CocoaMessage(0, Object, "superclass"))
EndProcedure
Procedure.i Cocoa_Superview(Object.i)
ProcedureReturn (CocoaMessage(0, Object, "superview"))
EndProcedure
Procedure Cocoa_DebugClasses(Object.i)
Debug "Superclasses:"
While (Object)
Debug Cocoa_ClassName(Object)
Object = Cocoa_Superclass(Object)
Wend
EndProcedure
Procedure Cocoa_DebugViews(Object.i)
Debug "Superviews:"
While (Object)
Debug Cocoa_ClassName(Object)
Object = Cocoa_Superview(Object)
Wend
EndProcedure
DisableExplicit
OpenWindow(0, 0, 0, 200, 200, "Test", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
InitScintilla()
ScintillaGadget(0, 0, 0, 200, 100, #Null)
ScintillaSendMessage(0, #SCI_SETSCROLLWIDTH, 100, 0)
ScintillaSendMessage(0, #SCI_STYLESETBACK, #STYLE_DEFAULT, RGB(192, 255, 255))
ScrollAreaGadget(1, 0, 100, 200, 100, 100, 50)
CloseGadgetList()
Cocoa_SetBackgroundColor(GadgetID(1), RGB(192, 255, 255))
ID = GadgetID(0) ; PBScintillaView
ID = Cocoa_Superview(ID)
ID = Cocoa_Superview(ID)
Cocoa_SetBackgroundColor(ID, RGB(255, 255, 192))
CocoaMessage(0, ID, "setDrawsBackground:", #YES)
Cocoa_DebugClasses(ID)
Debug ""
Cocoa_DebugViews(ID)
Debug ""
Repeat
Event = WaitWindowEvent()
Until (Event = #PB_Event_CloseWindow) Or (Event = #PB_Event_Menu)