Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!ut-emx!walt.cc.utexas.edu!bittner From: bittner@walt.cc.utexas.edu (George A. Bittner) Newsgroups: comp.sys.amiga.tech Subject: Re: Mutual Exclude Gadgets Summary: The Guru speaks Message-ID: <23148@ut-emx.UUCP> Date: 13 Jan 90 01:04:46 GMT References: <3454@hub.UUCP> Sender: news@ut-emx.UUCP Reply-To: hcobb@walt.cc.utexas.edu (Henry J Cobb) Organization: The University of Texas at Austin, Austin, Texas Lines: 25 Here's how to do it. I hope that C= will code this for us. AllocGroup(); returns a 32bit magic cookie used internally to track groups. You just use this pointer to add gadgets to groups. Returns NULL when out of space. AddToGroup(GadgetA , GroupB); Adds A to the group. Only one gadget in B can be active at a time. RemoveFromGroup(GadgetA, GroupB); A no longer excludes the gadgets in B, unless it is in another Group with them. DelleteGroup(GroupB); Returns the adminstrative space used to handle B. Internally the functions keep a list of who's in each group and only munge the gadgets that conflict, so searching takes no extra time. If I was going to do this as an add-on I would position my program high up in the input stream and produce gadget deselections that I trap after Intuition has finished with them. Henry J Cobb hcobb@ccwf.cc.utexas.edu