mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-22 23:11:18 +00:00
Implement encoding
This commit is contained in:
parent
c96ce7edf4
commit
d5b6cf01ae
2 changed files with 46 additions and 0 deletions
|
@ -48,9 +48,11 @@ extern "C" {
|
|||
- (void) setSplitView: (NSSplitView *)splitView;
|
||||
- (NSSplitViewItem *) splitViewItemForViewController: (NSViewController *)vc;
|
||||
- (CGFloat) minimumThicknessForInlineSidebars;
|
||||
- (void) setMinimumThicknessForInlineSidebars: (CGFloat)value;
|
||||
|
||||
// manage splitview items...
|
||||
- (NSArray *) splitViewItems;
|
||||
- (void) setSplitViewItems: (NSArray *)items;
|
||||
- (void) addSplitViewItem: (NSSplitViewItem *)item;
|
||||
- (void) insertSplitViewItem: (NSSplitViewItem *)item atIndex: (NSInteger)index;
|
||||
- (void) removeSplitViewItem: (NSSplitViewItem *)item;
|
||||
|
|
|
@ -61,6 +61,11 @@
|
|||
{
|
||||
return _minimumThicknessForInlineSidebars;
|
||||
}
|
||||
|
||||
- (void) setMinimumThicknessForInlineSidebars: (CGFloat)value
|
||||
{
|
||||
_minimumThicknessForInlineSidebars = value;
|
||||
}
|
||||
|
||||
// manage splitview items...
|
||||
- (NSArray *) splitViewItems
|
||||
|
@ -68,6 +73,12 @@
|
|||
return _splitViewItems;
|
||||
}
|
||||
|
||||
- (void) setSplitViewItems: (NSArray *)items
|
||||
{
|
||||
NSMutableArray *mutableItems = [items mutableCopy];
|
||||
ASSIGN(_splitViewItems, mutableItems);
|
||||
}
|
||||
|
||||
- (void) addSplitViewItem: (NSSplitViewItem *)item
|
||||
{
|
||||
[self insertSplitViewItem: item atIndex: [_splitViewItems count]];
|
||||
|
@ -103,6 +114,12 @@
|
|||
[_splitViewItems removeObject: item];
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
RELEASE(_splitViewItems);
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
// instance methods...
|
||||
- (NSRect)splitView:(NSSplitView *)splitView additionalEffectiveRectOfDividerAtIndex:(NSInteger)dividerIndex
|
||||
{
|
||||
|
@ -151,12 +168,39 @@
|
|||
NSArray *items = [coder decodeObjectForKey: @"NSSplitViewItems"];
|
||||
[_splitViewItems addObjectsFromArray: items];
|
||||
}
|
||||
if ([coder containsValueForKey: @"NSMinimumThicknessForInlineSidebars"])
|
||||
{
|
||||
_minimumThicknessForInlineSidebars = [coder decodeFloatForKey: @"NSMinimumThicknessForInlineSidebars"];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NSSplitView *sv = [coder decodeObject];
|
||||
[self setSplitView: sv];
|
||||
NSArray *items = [coder decodeObject];
|
||||
[self setSplitViewItems: items];
|
||||
[coder decodeValueOfObjCType: @encode(CGFloat) at: &_minimumThicknessForInlineSidebars];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) encodeWithCoder: (NSCoder *)coder
|
||||
{
|
||||
[super encodeWithCoder: coder];
|
||||
if ([coder allowsKeyedCoding])
|
||||
{
|
||||
NSSplitView *sv = [coder decodeObjectForKey: @"NSSplitView"];
|
||||
[self setSplitView: sv];
|
||||
NSArray *items = [coder decodeObjectForKey: @"NSSplitViewItems"];
|
||||
[_splitViewItems addObjectsFromArray: items];
|
||||
_minimumThicknessForInlineSidebars = [coder decodeFloatForKey: @"NSMinimumThicknessForInlineSidebars"];
|
||||
}
|
||||
else
|
||||
{
|
||||
[coder encodeObject: [self splitView]];
|
||||
[coder encodeObject: [self splitViewItems]];
|
||||
[coder encodeValueOfObjCType: @encode(CGFloat) at: &_minimumThicknessForInlineSidebars];
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
|
|
Loading…
Reference in a new issue