mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-30 21:00:37 +00:00
Improvements in keyed coding and correction for NSCell formatter unarchiving issue.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@20235 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
31eeedc9c5
commit
c0dc199651
7 changed files with 160 additions and 51 deletions
|
@ -338,18 +338,51 @@
|
|||
*/
|
||||
- (void) encodeWithCoder: (NSCoder*)aCoder
|
||||
{
|
||||
[aCoder encodeValueOfObjCType: @encode(NSInterfaceStyle)
|
||||
at: &_interface_style];
|
||||
[aCoder encodeObject: _menu];
|
||||
if([aCoder allowsKeyedCoding])
|
||||
{
|
||||
if(_interface_style != NSNoInterfaceStyle)
|
||||
{
|
||||
[aCoder encodeInt: _interface_style
|
||||
forKey: @"NSInterfaceStyle"];
|
||||
}
|
||||
|
||||
if([self menu] != nil)
|
||||
{
|
||||
[aCoder encodeObject: [self menu]
|
||||
forKey: @"NSMenu"];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
[aCoder encodeValueOfObjCType: @encode(NSInterfaceStyle)
|
||||
at: &_interface_style];
|
||||
[aCoder encodeObject: _menu];
|
||||
}
|
||||
}
|
||||
|
||||
- (id) initWithCoder: (NSCoder*)aDecoder
|
||||
{
|
||||
id obj;
|
||||
|
||||
[aDecoder decodeValueOfObjCType: @encode(NSInterfaceStyle)
|
||||
at: &_interface_style];
|
||||
obj = [aDecoder decodeObject];
|
||||
if([aDecoder allowsKeyedCoding])
|
||||
{
|
||||
if([aDecoder containsValueForKey: @"NSInterfaceStyle"])
|
||||
{
|
||||
_interface_style = [aDecoder decodeIntForKey: @"NSInterfaceStyle"];
|
||||
}
|
||||
|
||||
if([aDecoder containsValueForKey: @"NSMenu"])
|
||||
{
|
||||
obj = [aDecoder decodeObjectForKey: @"NSMenu"];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
[aDecoder decodeValueOfObjCType: @encode(NSInterfaceStyle)
|
||||
at: &_interface_style];
|
||||
obj = [aDecoder decodeObject];
|
||||
}
|
||||
|
||||
[self setMenu: obj];
|
||||
|
||||
return self;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue