I must be missing something really simple here but ...
How do I code to put application buttons on the TouchBar of my MacBook Pro (October 2017)
I can't see anything relevant in the docs or on-line.
Example code would be very welcome as would a link to documentation (if this actually exists).
Dave
TouchBar use?
Re: TouchBar use?
At the moment the touch bar in the version PB v5.62 is deactivated because of massive problems with MacOS 10.9 and Xcode 8.x.
PrinterRequester and WebGadget can lead to crashes.
I tested it with MacOS 10.10.x and Xcode 9.x.
It seems to work correctly again with the current version of Xcode. But I can't guarantee it.
You can reactivate the touchbar for PB-APP with a workaround.
But I don't know how you can add your own functions to the touchbar via cocoa.
Translated with www.DeepL.com/Translator
PrinterRequester and WebGadget can lead to crashes.
I tested it with MacOS 10.10.x and Xcode 9.x.
It seems to work correctly again with the current version of Xcode. But I can't guarantee it.
You can reactivate the touchbar for PB-APP with a workaround.
But I don't know how you can add your own functions to the touchbar via cocoa.
Translated with www.DeepL.com/Translator
Code: Select all
;-TOP
; Touchbar workaround by mk-soft
; Version v1.03
; Date 08/15/2017
Procedure IsTouchbar()
Protected standardUserDefaults, r1
standardUserDefaults = CocoaMessage(0, 0, "NSUserDefaults standardUserDefaults")
r1 = CocoaMessage(0, standardUserDefaults, "integerForKey:$", @"NSFunctionBarAPIEnabled")
ProcedureReturn r1
EndProcedure
Procedure DisableTouchbar()
Protected standardUserDefaults
If IsTouchbar()
standardUserDefaults = CocoaMessage(0, 0, "NSUserDefaults standardUserDefaults")
CocoaMessage(0, standardUserDefaults, "setBool:", #NO, "forKey:$", @"NSFunctionBarAPIEnabled")
RunProgram(ProgramFilename(), ProgramParameter(), GetCurrentDirectory())
End
EndIf
EndProcedure
Procedure EnableTouchbar()
Protected standardUserDefaults
If IsTouchbar() = 0
standardUserDefaults = CocoaMessage(0, 0, "NSUserDefaults standardUserDefaults")
CocoaMessage(0, standardUserDefaults, "setBool:", #YES, "forKey:$", @"NSFunctionBarAPIEnabled")
RunProgram(ProgramFilename(), ProgramParameter(), GetCurrentDirectory())
End
EndIf
EndProcedure
; ***************************************************************************************
CompilerIf #PB_Compiler_IsMainFile
Debug IsTouchbar()
EnableTouchbar()
;DisableTouchbar()
If OpenWindow(0, 0, 0, 600, 300, "WebGadget: "+Str(IsTouchbar()), #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateImage(0,16,16)
StartDrawing(ImageOutput(0))
Box(0,0,16,16,RGB(255,255,255))
Box(4,4,8,8,RGB(255,0,0))
StopDrawing()
CreateImage(1,16,16)
StartDrawing(ImageOutput(1))
Box(0,0,16,16,RGB(255,0,0))
Box(4,4,8,8,RGB(255,255,255))
StopDrawing()
If CreateToolBar(0, WindowID(0), #PB_ToolBar_Large)
ToolBarImageButton(0,ImageID(0))
ToolBarImageButton(1,ImageID(1))
EndIf
;Delay(100)
; this website doesn't crash the app
;WebGadget(0, 10, 10, 580, 280, "http://www.apple.com")
; this website crashes the app
WebGadget(0, 10, 10, 580, 280, "http://google.com")
Repeat
; crash with "http://google.com"
Until WaitWindowEvent() = #PB_Event_CloseWindow ; <- Invalid memory access
EndIf
CompilerEndIf
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive