Applied with a few minor changes.

Thank you for the patch!

On 28.04.2011 06:56, Banlu Kemiyatorn wrote:
- (void) setSubviews: (NSArray *)newSubviews
{
        NSEnumerator *en;
        NSView *aView;

        en = [[NSArray arrayWithArray:_subviews] objectEnumerator];
        while ((aView = [en nextObject]))
        {
                if (NO == [newSubviews containsObject:aView])
                {
                        [aView removeFromSuperview];
                }
        }

        NSMutableArray *uniqNew = [NSMutableArray array];
        en = [newSubviews objectEnumerator];
        while ((aView = [en nextObject]))
        {
                id supersub = [aView superview];
                if (supersub != nil&&  supersub != self)
                {
                        [NSException raise:NSInvalidArgumentException
                                    format:@"Superviews of new subviews must be 
either nil or receiver."];
                }

                if ([uniqNew containsObject:aView])
                {
                        [NSException raise:NSInvalidArgumentException
                                    format:@"Duplicated new subviews."];
                }

                if (NO == [_subviews containsObject:aView])
                {
                        [self addSubview:aView];
                }

                [uniqNew addObject:aView];
        }

        ASSIGN(_subviews, uniqNew);
}


_______________________________________________
Gnustep-dev mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to