mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-25 09:31:00 +00:00
* Source/NSButtonCell.m * Source/NSNibAXAttributeConnector.m * Source/NSNibAXRelationshipConnector.m * Source/NSNibBindingConnector.m * Source/NSNib.m * Source/NSProgressIndicator.m: Change to use new headers. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27189 72102866-910b-0410-8b05-ffd578937521
185 lines
4.2 KiB
Objective-C
185 lines
4.2 KiB
Objective-C
/** <title>NSNibBindingConnector</title>
|
|
|
|
<abstract>
|
|
</abstract>
|
|
|
|
Copyright (C) 2007 Free Software Foundation, Inc.
|
|
|
|
Author: Gregory John Casamento
|
|
Date: 2007
|
|
Author: Fred Kiefer <fredkiefer@gmx.de>
|
|
Date: Nov 2007
|
|
|
|
This file is part of the GNUstep GUI Library.
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with this library; see the file COPYING.LIB.
|
|
If not, see <http://www.gnu.org/licenses/> or write to the
|
|
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#import <GNUstepGUI/GSNibLoading.h>
|
|
#import <Foundation/NSString.h>
|
|
#import <Foundation/NSDictionary.h>
|
|
#import <AppKit/NSKeyValueBinding.h>
|
|
|
|
@implementation NSNibBindingConnector
|
|
|
|
- (id) init
|
|
{
|
|
if((self = [super init]) != nil)
|
|
{
|
|
_binding = RETAIN([NSString stringWithString: @""]);
|
|
_keyPath = RETAIN([NSString stringWithString: @""]);
|
|
_options = RETAIN([NSMutableDictionary dictionary]);
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void) dealloc
|
|
{
|
|
RELEASE(_binding);
|
|
RELEASE(_keyPath);
|
|
RELEASE(_options);
|
|
[super dealloc];
|
|
}
|
|
|
|
- (NSString *) binding
|
|
{
|
|
return _binding;
|
|
}
|
|
|
|
- (NSString *) keyPath
|
|
{
|
|
return _keyPath;
|
|
}
|
|
|
|
- (NSDictionary *) options
|
|
{
|
|
return _options;
|
|
}
|
|
|
|
- (void) setBinding: (NSString *)binding
|
|
{
|
|
ASSIGN(_binding, binding);
|
|
}
|
|
|
|
- (void) setKeyPath: (NSString *)keyPath
|
|
{
|
|
ASSIGN(_keyPath, keyPath);
|
|
}
|
|
|
|
- (void) setOptions: (NSDictionary *)options
|
|
{
|
|
ASSIGN(_options, options);
|
|
}
|
|
|
|
- (void) replaceObject: (id)anObject withObject: (id)anotherObject
|
|
{
|
|
if (_binding == anObject)
|
|
{
|
|
ASSIGN(_binding, anotherObject);
|
|
}
|
|
if (_keyPath == anObject)
|
|
{
|
|
ASSIGN(_keyPath, anotherObject);
|
|
}
|
|
if (_options == anObject)
|
|
{
|
|
ASSIGN(_options, anotherObject);
|
|
}
|
|
|
|
[super replaceObject: anObject withObject: anotherObject];
|
|
}
|
|
|
|
- (void) establishConnection
|
|
{
|
|
[_src bind: _binding
|
|
toObject: _dst
|
|
withKeyPath: _keyPath
|
|
options: _options];
|
|
}
|
|
|
|
- (void) encodeWithCoder: (NSCoder*)aCoder
|
|
{
|
|
if ([aCoder allowsKeyedCoding])
|
|
{
|
|
if (_binding != nil)
|
|
{
|
|
[aCoder encodeObject: _binding forKey: @"NSBinding"];
|
|
}
|
|
if (_keyPath != nil)
|
|
{
|
|
[aCoder encodeObject: _keyPath forKey: @"NSKeyPath"];
|
|
}
|
|
if (_options != nil)
|
|
{
|
|
[aCoder encodeObject: _options forKey: @"NSOptions"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
[aCoder encodeObject: _binding];
|
|
[aCoder encodeObject: _keyPath];
|
|
[aCoder encodeObject: _options];
|
|
}
|
|
}
|
|
|
|
- (id) initWithCoder: (NSCoder*)aDecoder
|
|
{
|
|
if (!(self = [super initWithCoder: aDecoder]))
|
|
{
|
|
return nil;
|
|
}
|
|
|
|
if ([aDecoder allowsKeyedCoding])
|
|
{
|
|
if ([aDecoder decodeIntForKey: @"NSNibBindingConnectorVersion"] != 2)
|
|
{
|
|
RELEASE(self);
|
|
return nil;
|
|
}
|
|
if ([aDecoder containsValueForKey: @"NSBinding"])
|
|
{
|
|
ASSIGN(_binding, [aDecoder decodeObjectForKey: @"NSBinding"]);
|
|
}
|
|
if ([aDecoder containsValueForKey: @"NSKeyPath"])
|
|
{
|
|
ASSIGN(_keyPath, [aDecoder decodeObjectForKey: @"NSKeyPath"]);
|
|
}
|
|
if ([aDecoder containsValueForKey: @"NSOptions"])
|
|
{
|
|
ASSIGN(_options, [aDecoder decodeObjectForKey: @"NSOptions"]);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ASSIGN(_binding,[aDecoder decodeObject]);
|
|
ASSIGN(_keyPath,[aDecoder decodeObject]);
|
|
ASSIGN(_options,[aDecoder decodeObject]);
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
- (NSString *) description
|
|
{
|
|
return [NSString stringWithFormat: @"<%@ binding=%@ keypath=%@ options=%@>",
|
|
[super description],
|
|
[self binding],
|
|
[self keyPath],
|
|
[self options]];
|
|
}
|
|
|
|
@end
|