Hi,
Enabling and disabling functionality is mostly done by enabling or disabling the appropriate Actionlist. This can be done in the webinterface, using the API or using a task in another Action.
The tricky part is that if you disable the OSC, UDP or Button source, you can't use that anymore to enable it again. There are a few tricks to get around this. One is to enable/disable the list through a different protocol than what you use for the controls. The other is a bit more work, and might cause you to hit the limits of ShowControl (amount of actions/task etc.)
You can route any functionality you want to disable through a Userlist. This is done by the task "Action - link". When using buttons, instead of placing the needed tasks in the button action, you put them in a new action in a userlist. Now in the original button action, you use the "Action - link" task to execute the action in the userlist. Now you can enable and disable the userlist, without disabling the other button actions.
Greetings,
Bootsy