UPDATED FOR TSM 3
TSM does not allow you to macro many of it's buttons. The devs refuse to add this functionality because it could be used for 'botting'. That's their prerogative, I suppose, but for those like me that have legit uses for binding the buttons to hotkeys, it's a bit of an inconvenience and so I decided to fix it.
Now, one might ask the question: why? Why is it beneficial to do this? There's plenty of reasons why one might want to, but here's what I use it for. I use this modification in conjunction with multiboxing software such as IsBoxer, KeyClone, or HotKeyNet to camp the auction house on a second account while I go about my normal everyday gameplay activities on my main account. By setting keybinds to any of TSM's features, I am able to weave extra keypresses into my normal combat rotation that carry out all of my auction house activities, without having to actually move my mouse over to the second WoW window. This means I can continually run post and cancel scans without needing to take even a moment break from gameplay on my main account. With a bit of practice, you can camp the AH while killing a raid boss, fighting in an arena, or whatever it is you choose to do with your time, without being distracted or having to pause your primary activity. And... it's all legit, since you are working within the generally accepted rules for multiboxing (ie. one keypress = one action... therefore no automation).
To assign macros to TSM buttons that aren't normally macroable, do the following:
1) Open the file \Interface\AddOns\TradeSkillMaster_Auctioning\modules\GUI.lua
2) Find the following block of code
Code:
{
type = "Button",
key = "postBtn",
text = L["Start Post Scan"],
textHeight = 18,
size = {actionBtnWidth, 25},
points = {{"BOTTOMLEFT", 5, 5}},
scripts = {"OnClick"},
},
3) Add the line
Code:
name = "TSMStartPostScanButton",
into this block like so:
Code:
{
type = "Button",
key = "postBtn",
name = "TSMStartPostScanButton",
text = L["Start Post Scan"],
textHeight = 18,
size = {actionBtnWidth, 25},
points = {{"BOTTOMLEFT", 5, 5}},
scripts = {"OnClick"},
},
4) Save the file and create the following macro in-game:
Code:
/click TSMStartPostScanButton
5) Repeat this process for all of the TSM Auctioning buttons you want macros for. You can find the appropriate code blocks by searching for the button text (ie. "Start Post Scan", "Start Cancel Scan", "Start Reset Scan", etc.). You can name the buttons whatever you want, just make sure the macros you create in-game correspond to the names you give the buttons in the .lua file. The "Open All Mail" button can be found in /TradeSkillMaster_Mailing/Modules/inbox.lua and if you want to bind buttons for the Shopping module you'll have to look through the .lua files in the /TradeSkillMaster_Shopping/Modules/ folder.
Note: If you use the TSM Desktop app, it now automatically updates the TSM addons (and there's no way that I am aware of to turn this off short of making the folders read only). Each time it updates the addons, these changes are overwritten and you will need to redo them.