// // Simple stick shift test interactor by Scott Hudson 3/97 // This interactor is a simple two position switch done as a lever or stick // shift. It has an intermediate feedback position between the top and the // bottom positions and does a callback whenever the "stick" is released // in the top of bottom position (whether this is a change or not). // region display at 0,0, 41,125 drawn with "stick_top2.gif"; region top at 2,0,41,39; region mid at 1,45,40,84; region bot at 0,86,39,125; state in_top on enter top goto in_top { set_image(display, "stick_top2.gif"); }; on enter mid goto mid_from_top { set_image(display, "stick_mid2.gif"); }; on enter bot goto in_bot { set_image(display, "stick_bot2.gif"); }; on release top goto in_top { callback(0,"Callback from top"); }; on release none or release display goto in_top; end state; state in_bot on enter top goto in_top { set_image(display, "stick_top2.gif"); }; on enter mid goto mid_from_bot { set_image(display, "stick_mid2.gif"); }; on enter bot goto in_bot { set_image(display, "stick_bot2.gif"); }; on release bot goto in_bot { callback(0,"Callback from bot"); }; on release none or release display goto in_bot; end state; state mid_from_top on enter top goto in_top { set_image(display, "stick_top2.gif"); }; on enter bot goto in_bot { set_image(display, "stick_bot2.gif"); }; on release mid or release none or release display goto in_top { set_image(display, "stick_top2.gif"); }; end state; state mid_from_bot on enter top goto in_top { set_image(display, "stick_top2.gif"); }; on enter bot goto in_bot { set_image(display, "stick_bot2.gif"); }; on release mid or release none or release display goto in_bot { set_image(display, "stick_bot2.gif"); }; end state;