gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: remove -removeSubview:


From: Fred Kiefer
Subject: Re: remove -removeSubview:
Date: Thu, 19 May 2011 10:18:30 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.17) Gecko/20110414 SUSE/3.1.10 Thunderbird/3.1.10

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);
}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]