I've decided (hopefully well received) on using a popup button as a
multiple selection control. I use the item's tag values as a bit
position whose mask I keep in index 0; a user selecting this item clears
the entire mask while other item selections toggle that item 'tag' bit.
It's done like this action:
- (void)processPopup:(id)sender
{
unsigned long value;
int i, tag = [[sender selectedItem] tag];
if (![sender indexOfSelectedItem])
{
for (i=1; i<[sender numberOfItems]; i++)
{
[[sender itemAtIndex:i] setState:NSOffState];
}
[[sender itemAtIndex:0] setTag:(value=0)];
tag = 0;
}
else
{
BOOL state = [[sender selectedItem] state];
// tag at index 0 keeps our mask
value = [[sender itemAtIndex:0] tag];
[[sender selectedItem] setState:state];
if (state)
value |= 1<<tag;
else
value ^= 1<<tag;
[[sender itemAtIndex:0] setTag:value];
}
// Tooltip has our name
NSLog(@[EMAIL PROTECTED]
"%@[EMAIL PROTECTED]
(%09x) = '%@[EMAIL PROTECTED]
' %d:%d",
[sender toolTip], value,
[[sender selectedItem] title], tag,
[[sender selectedItem] state]);
}
But the question is how can I get the visual to mimic the model? Do I
need to sub-class the popup button so I can have multiple selections?
--
/los "I was a teenage net-random"