Live Scroll
Posted: Tue Feb 05, 2013 12:27 am
Is there anyway to enable LiveScroll for the TrackBar GadGet?
Code: Select all
OpenWindow(0, 100, 100, 300, 200, "Test")
ScrollBarGadget(0, 10, 10, 200, 20, 0, 100, 10)
ImportC ""
sel_registerName(str.p-ascii)
class_addMethod(class, selector, imp, types.p-ascii)
EndImport
Global appDelegate = CocoaMessage(0, CocoaMessage(0, 0, "NSApplication sharedApplication"), "delegate")
Global delegateClass = CocoaMessage(0, appDelegate, "class")
ProcedureC Callback(obj, sel, notification)
Debug "Callback()"
EndProcedure
selector = sel_registerName("Callback:")
class_addMethod(delegateClass, selector, @Callback(), "v@:@")
;CocoaMessage(0, GadgetID(0), "setTag:", @Callback())
CocoaMessage(0, GadgetID(0), "setTarget:", appDelegate)
CocoaMessage(0, GadgetID(0), "setAction:", selector)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
CocoaMessage(0, GadgetID(0), "setTarget:", #Null)
CocoaMessage(0, GadgetID(0), "setAction:", #Null)
Code: Select all
ImportC ""
sel_registerName(str.p-ascii)
class_addMethod(class, selector, imp, types.p-ascii)
EndImport
Global appDelegate = CocoaMessage(0, CocoaMessage(0, 0, "NSApplication sharedApplication"), "delegate")
Global delegateClass = CocoaMessage(0, appDelegate, "class")
PrototypeC ProtoCallback(sender)
ProcedureC ForwardAction(obj, sel, sender)
Protected Callback.ProtoCallback = CocoaMessage(0, sender, "tag")
Callback(sender)
EndProcedure
Global selForwardAction = sel_registerName("forwardAction:")
class_addMethod(delegateClass, selForwardAction, @ForwardAction(), "v@:@")
Procedure SetTargetActionCallback(control, *cbfunction)
CocoaMessage(0, control, "setTag:", *cbfunction)
CocoaMessage(0, control, "setTarget:", appDelegate)
CocoaMessage(0, control, "setAction:", selForwardAction)
EndProcedure
; *** demo ***
ProcedureC TrackBar0Callback(sender)
Debug GetGadgetState(0)
EndProcedure
ProcedureC TrackBar1Callback(sender)
Debug GetGadgetState(1)
EndProcedure
OpenWindow(0, 100, 100, 300, 200, "Test")
TrackBarGadget(0, 10, 10, 200, 20, 0, 100)
TrackBarGadget(1, 10, 40, 200, 20, 0, 10)
SetTargetActionCallback(GadgetID(0), @TrackBar0Callback())
SetTargetActionCallback(GadgetID(1), @TrackBar1Callback())
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindowCode: Select all
ImportC ""
sel_registerName(str.p-ascii)
class_addMethod(class, selector, imp, types.p-ascii)
EndImport
Global appDelegate = CocoaMessage(0, CocoaMessage(0, 0, "NSApplication sharedApplication"), "delegate")
Global delegateClass = CocoaMessage(0, appDelegate, "class")
PrototypeC ProtoCallback(sender)
ProcedureC ForwardAction(obj, sel, sender)
Protected Callback.ProtoCallback = CocoaMessage(0, sender, "tag")
Callback(sender)
EndProcedure
Global selForwardAction = sel_registerName("forwardAction:")
class_addMethod(delegateClass, selForwardAction, @ForwardAction(), "v@:@")
Procedure SetTargetActionCallback(control, *cbfunction)
CocoaMessage(0, control, "setTag:", *cbfunction)
CocoaMessage(0, control, "setTarget:", appDelegate)
CocoaMessage(0, control, "setAction:", selForwardAction)
EndProcedure
; *** demo ***
ProcedureC Callback(sender)
If sender = GadgetID(0)
Debug "TrackBarGadget 0"
ElseIf sender = GadgetID(1)
Debug "TrackBarGadget 1"
EndIf
EndProcedure
OpenWindow(0, 100, 100, 300, 200, "Test")
TrackBarGadget(0, 10, 10, 200, 20, 0, 100)
TrackBarGadget(1, 10, 40, 200, 20, 0, 10)
SetTargetActionCallback(GadgetID(0), @Callback())
SetTargetActionCallback(GadgetID(1), @Callback())
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow