I don’t know what Pro Tools was like in 2010, but I downloaded the trial version 2019.5.0 from official site to try the application. As I understand it, the post is about the difficulty of choosing tools in the toolbar.
I did not find any difficulty in choosing the tools “Zoomer tool”, “Scrubber tool” and “Pencil tool (Free Hand)”.
The difficulty lies in choosing the Trim tool, Selector tool and Grabber tool. These 3 buttons are hidden behind the button - group “Smart tool” (visible to system). The system sees this group without problems, unlike the buttons located in it. These are the so-called “invisible” buttons for the system, which become “visible” only when you hover over them the mouse pointer.
Below I give an example of scripting “Pro Tools”, which has 2 advantages over previously proposed solutions. 1) the coordinates of the buttons are found by the script itself, 2) third-party software is not used.
use AppleScript version "2.4"
use framework "CoreGraphics"
property |⌘| : a reference to current application
property updateMouseCursorPosition : true
property buttonCount : 1 -- left mouse button number
property mouseButtonDown : true -- mouse button pressed?
set aPoint to |⌘|'s CGPointZero
tell application "Pro Tools" to activate
tell application "System Events" to tell process "Pro Tools"
--window 2 is here window ("Edit:" & name of edited file)
tell window 2 to tell group "Cursor Tool Cluster"
click button "Zoomer tool" -- "Zoomer tool"
delay 1
click button "Scrubber tool" -- "Scrubber tool"
delay 1
click button "Pencil tool (Free Hand)" -- "Pencil tool (Free Hand)"
delay 1
click button "Smart tool" -- "Smart tool"
delay 1
set {x0, y0} to position of button "Smart tool"
end tell
end tell
-- choose "Trim tool" inside "Smart tool"
set aPoint to {x0 + 20, y0 + 20}
|⌘|'s CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, not mouseButtonDown)
delay 0.1
|⌘|'s CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, mouseButtonDown)
|⌘|'s CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, not mouseButtonDown)
delay 1
-- choose "Selector tool" inside "Smart tool"
set aPoint to {x0 + 60, y0 + 20}
|⌘|'s CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, not mouseButtonDown)
delay 0.1
|⌘|'s CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, mouseButtonDown)
|⌘|'s CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, not mouseButtonDown)
delay 1
-- choose "Grabber tool" inside "Smart tool"
set aPoint to {x0 + 100, y0 + 20}
|⌘|'s CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, not mouseButtonDown)
delay 0.1
|⌘|'s CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, mouseButtonDown)
|⌘|'s CGPostMouseEvent(aPoint, updateMouseCursorPosition, buttonCount, not mouseButtonDown)
delay 5 -- NOTE: this delay 5 and all delay 1 are only for testing purposes