one button cannot be aware of the others because none of them really exist except in the time their function is active?
I've only glanced at this stuff but that was my first question, also. In the GUI code I've just been doing, some buttons are inactive (greyed out) depending on other button states.