Encoding implementations

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10511 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2001-07-18 03:25:37 +00:00
parent 6d4850d4c2
commit 82fff1ebf0
4 changed files with 122 additions and 9 deletions

View file

@ -1,3 +1,21 @@
2001-07-17 Adam Fedor <fedor@gnu.org>
* Source/NSTableView.m (-addTableColumn:): Remove redundant mallocs.
(-dealloc): Release backgroundColor.
(-encodeWithCoder:): Implement.
(-initWithCoder:): Likewise.
* Source/NSTableColumn.m (-encodeWithCoder:): New method.
(-initWithCoder:): Likewise.
2001-07-17 Pierre-Yves Rivaille <pyrivail@ens-lyon.fr>
* Source/NSPanel.m ([GSAlertPanel
-initWithContentRect:styleMask:backing;defer:screen]): remove
previous key view chain implementation.
* Source/NSPanel.m ([GSAlertPanel
-setTitle:message:def:alt:other]): new key view chain
initialization code.
Mon Jul 16 11:19:28 2001 Nicola Pero <nicola@brainstorm.co.uk>
* Source/NSView.m ([-adjustPageHeightNew:top:bottom:limit:]):

View file

@ -33,7 +33,7 @@
@class NSCell;
@class NSTableView;
@interface NSTableColumn : NSObject
@interface NSTableColumn : NSObject <NSCoding>
{
id _identifier;
NSTableView *_tableView;

View file

@ -35,8 +35,6 @@
#include <AppKit/NSTableView.h>
@implementation NSTableColumn
{
}
/*
*
@ -241,4 +239,37 @@
{
return _dataCell;
}
/*
* Encoding/Decoding
*/
- (void) encodeWithCoder: (NSCoder*)aCoder
{
[aCoder encodeObject: _identifier];
[aCoder encodeObject: _headerCell];
[aCoder encodeObject: _dataCell];
[aCoder encodeValueOfObjCType: @encode(float) at: &_width];
[aCoder encodeValueOfObjCType: @encode(float) at: &_min_width];
[aCoder encodeValueOfObjCType: @encode(float) at: &_max_width];
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &_is_resizable];
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &_is_editable];
}
- (id) initWithCoder: (NSCoder*)aDecoder
{
self = [super init];
_identifier = RETAIN([aDecoder decodeObject]);
_headerCell = RETAIN([aDecoder decodeObject]);
_dataCell = RETAIN([aDecoder decodeObject]);
[aDecoder decodeValueOfObjCType: @encode(float) at: &_width];
[aDecoder decodeValueOfObjCType: @encode(float) at: &_min_width];
[aDecoder decodeValueOfObjCType: @encode(float) at: &_max_width];
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_is_resizable];
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_is_editable];
return self;
}
@end

View file

@ -278,6 +278,7 @@ _isCellEditable (id delegate, NSArray *tableColumns,
{
TEST_RELEASE (_dataSource);
RELEASE (_gridColor);
RELEASE (_backgroundColor);
RELEASE (_tableColumns);
RELEASE (_selectedColumns);
RELEASE (_selectedRows);
@ -325,9 +326,7 @@ _isCellEditable (id delegate, NSArray *tableColumns,
}
else
{
_columnOrigins = NSZoneMalloc (NSDefaultMallocZone (),
sizeof (float));
_columnOrigins = malloc (sizeof (float));
_columnOrigins = NSZoneMalloc (NSDefaultMallocZone (), sizeof (float));
}
[self tile];
}
@ -2769,13 +2768,78 @@ byExtendingSelection: (BOOL)flag
- (void) encodeWithCoder: (NSCoder*)aCoder
{
[super encodeWithCoder: aCoder];
// TODO
[aCoder encodeConditionalObject: _dataSource];
[aCoder encodeObject: _tableColumns];
[aCoder encodeObject: _gridColor];
[aCoder encodeObject: _backgroundColor];
[aCoder encodeObject: _headerView];
[aCoder encodeObject: _cornerView];
[aCoder encodeConditionalObject: _delegate];
[aCoder encodeConditionalObject: _target];
[aCoder encodeValueOfObjCType: @encode(int) at: &_numberOfRows];
[aCoder encodeValueOfObjCType: @encode(int) at: &_numberOfColumns];
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &_drawsGrid];
[aCoder encodeValueOfObjCType: @encode(float) at: &_rowHeight];
[aCoder encodeValueOfObjCType: @encode(SEL) at: &_doubleAction];
[aCoder encodeSize: _intercellSpacing];
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &_allowsMultipleSelection];
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &_allowsEmptySelection];
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &_allowsColumnSelection];
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &_allowsColumnResizing];
}
- (id) initWithCoder: (NSCoder*)aDecoder
{
return [super initWithCoder: aDecoder];
// TODO
id aDelegate;
self = [super initWithCoder: aDecoder];
_dataSource = RETAIN([aDecoder decodeObject]);
_tableColumns = RETAIN([aDecoder decodeObject]);
_gridColor = RETAIN([aDecoder decodeObject]);
_backgroundColor = RETAIN([aDecoder decodeObject]);
_headerView = RETAIN([aDecoder decodeObject]);
_cornerView = RETAIN([aDecoder decodeObject]);
aDelegate = [aDecoder decodeObject];
_target = [aDecoder decodeObject];
[self setDelegate: aDelegate];
[_headerView setTableView: self];
[_tableColumns makeObjectsPerformSelector: @selector(setTableView:)
withObject: self];
[aDecoder decodeValueOfObjCType: @encode(int) at: &_numberOfRows];
[aDecoder decodeValueOfObjCType: @encode(int) at: &_numberOfColumns];
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_drawsGrid];
[aDecoder decodeValueOfObjCType: @encode(float) at: &_rowHeight];
[aDecoder decodeValueOfObjCType: @encode(SEL) at: &_doubleAction];
_intercellSpacing = [aDecoder decodeSize];
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_allowsMultipleSelection];
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_allowsEmptySelection];
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_allowsColumnSelection];
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_allowsColumnResizing];
ASSIGN (_selectedColumns, [NSMutableArray array]);
ASSIGN (_selectedRows, [NSMutableArray array]);
if (_numberOfColumns)
_columnOrigins = NSZoneMalloc (NSDefaultMallocZone (),
sizeof(float) * _numberOfColumns);
_clickedRow = -1;
_clickedColumn = -1;
_selectingColumns = NO;
_selectedColumn = -1;
_selectedRow = -1;
_editedColumn = -1;
_editedRow = -1;
return self;
}
- (void) _userResizedTableColumn: (int)index