mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-22 13:10:59 +00:00
Implement real coding for NSWindow
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@5336 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
6aa5a54bc4
commit
06a6deb7d4
2 changed files with 104 additions and 69 deletions
|
@ -1,3 +1,8 @@
|
|||
Tue Nov 30 19:44:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||
|
||||
* Source/NSWindow.m: Rewrote ([-encodeWithCoder:]) and
|
||||
([-initWithCoder:]) so they actually work (more or less).
|
||||
|
||||
Tue Nov 30 11:52:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||
|
||||
* Source/NSCachecImageRep.m: Improve initialisation and added
|
||||
|
|
|
@ -2690,49 +2690,43 @@ resetCursorRectsForView(NSView *theView)
|
|||
- (void) encodeWithCoder: (NSCoder*)aCoder
|
||||
{
|
||||
BOOL flag;
|
||||
id nxt = RETAIN([self nextResponder]);
|
||||
|
||||
[self setNextResponder: nil];
|
||||
|
||||
[super encodeWithCoder: aCoder];
|
||||
|
||||
NSDebugLog(@"NSWindow: start encoding\n");
|
||||
[aCoder encodeRect: frame];
|
||||
[aCoder encodeRect: [[self contentView] frame]];
|
||||
[aCoder encodeValueOfObjCType: @encode(unsigned) at: &style_mask];
|
||||
[aCoder encodeValueOfObjCType: @encode(NSBackingStoreType) at: &backing_type];
|
||||
|
||||
[aCoder encodeObject: content_view];
|
||||
[aCoder encodeValueOfObjCType: @encode(int) at: &window_num];
|
||||
[aCoder encodeObject: background_color];
|
||||
[aCoder encodeObject: represented_filename];
|
||||
[aCoder encodeObject: miniaturized_title];
|
||||
[aCoder encodeObject: window_title];
|
||||
[aCoder encodePoint: last_point];
|
||||
|
||||
[aCoder encodeSize: minimum_size];
|
||||
[aCoder encodeSize: maximum_size];
|
||||
|
||||
[aCoder encodeValueOfObjCType: @encode(int) at: &window_level];
|
||||
|
||||
flag = _f.menu_exclude;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
flag = _f.visible;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
flag = _f.is_key;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
flag = _f.is_main;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
flag = _f.is_edited;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
flag = _f.is_miniaturized;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
[aCoder encodeValueOfObjCType: @encode(unsigned) at: &style_mask];
|
||||
flag = _f.menu_exclude;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
|
||||
// Version 2
|
||||
[aCoder encodeSize: minimum_size];
|
||||
[aCoder encodeSize: maximum_size];
|
||||
[aCoder encodeObject: miniaturized_image];
|
||||
[aCoder encodeConditionalObject: _initial_first_responder];
|
||||
[aCoder encodeValueOfObjCType: @encode(NSBackingStoreType) at: &backing_type];
|
||||
[aCoder encodeValueOfObjCType: @encode(int) at: &window_level];
|
||||
[aCoder encodeValueOfObjCType: @encode(unsigned) at: &disable_flush_window];
|
||||
flag = _f.is_one_shot;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
flag = _f.is_autodisplay;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
flag = _f.optimize_drawing;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
[aCoder encodeValueOfObjCType: @encode(NSWindowDepth) at: &depth_limit];
|
||||
flag = _f.dynamic_depth_limit;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
flag = _f.cursor_rects_enabled;
|
||||
|
@ -2744,66 +2738,102 @@ resetCursorRectsForView(NSView *theView)
|
|||
flag = _f.accepts_mouse_moved;
|
||||
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
|
||||
[aCoder encodeObject: miniaturized_image];
|
||||
[aCoder encodeConditionalObject: _initial_first_responder];
|
||||
|
||||
NSDebugLog(@"NSWindow: finish encoding\n");
|
||||
|
||||
[self setNextResponder: nxt];
|
||||
RELEASE(nxt);
|
||||
}
|
||||
|
||||
- (id) initWithCoder: (NSCoder*)aDecoder
|
||||
{
|
||||
id oldself = self;
|
||||
BOOL flag;
|
||||
|
||||
[super initWithCoder: aDecoder];
|
||||
if ((self = [super initWithCoder: aDecoder]) == oldself)
|
||||
{
|
||||
NSSize aSize;
|
||||
NSRect aRect;
|
||||
unsigned aStyle;
|
||||
NSBackingStoreType aBacking;
|
||||
int anInt;
|
||||
id obj;
|
||||
|
||||
NSDebugLog(@"NSWindow: start decoding\n");
|
||||
frame = [aDecoder decodeRect];
|
||||
content_view = [aDecoder decodeObject];
|
||||
[aDecoder decodeValueOfObjCType: @encode(int) at: &window_num];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &background_color];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &represented_filename];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &miniaturized_title];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &window_title];
|
||||
last_point = [aDecoder decodePoint];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.visible = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.is_key = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.is_main = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.is_edited = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.is_miniaturized = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(unsigned) at: &style_mask];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.menu_exclude = flag;
|
||||
NSDebugLog(@"NSWindow: start decoding\n");
|
||||
aRect = [aDecoder decodeRect];
|
||||
[aDecoder decodeValueOfObjCType: @encode(unsigned)
|
||||
at: &aStyle];
|
||||
[aDecoder decodeValueOfObjCType: @encode(NSBackingStoreType)
|
||||
at: &aBacking];
|
||||
|
||||
// Version 2
|
||||
minimum_size = [aDecoder decodeSize];
|
||||
maximum_size = [aDecoder decodeSize];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &miniaturized_image];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_initial_first_responder];
|
||||
[aDecoder decodeValueOfObjCType: @encode(NSBackingStoreType)
|
||||
at: &backing_type];
|
||||
[aDecoder decodeValueOfObjCType: @encode(int) at: &window_level];
|
||||
[aDecoder decodeValueOfObjCType: @encode(unsigned) at: &disable_flush_window];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.is_one_shot = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.is_autodisplay = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.optimize_drawing = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(NSWindowDepth) at: &depth_limit];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.dynamic_depth_limit = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.cursor_rects_enabled = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.is_released_when_closed = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.hides_on_deactivate = flag;
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
_f.accepts_mouse_moved = flag;
|
||||
self = [self initWithContentRect: aRect
|
||||
styleMask: aStyle
|
||||
backing: aBacking
|
||||
defer: NO
|
||||
screen: nil];
|
||||
|
||||
NSDebugLog(@"NSWindow: finish decoding\n");
|
||||
obj = [aDecoder decodeObject];
|
||||
[self setContentView: obj];
|
||||
obj = [aDecoder decodeObject];
|
||||
[self setBackgroundColor: obj];
|
||||
obj = [aDecoder decodeObject];
|
||||
[self setRepresentedFilename: obj];
|
||||
obj = [aDecoder decodeObject];
|
||||
[self setMiniwindowTitle: obj];
|
||||
obj = [aDecoder decodeObject];
|
||||
[self setTitle: obj];
|
||||
|
||||
aSize = [aDecoder decodeSize];
|
||||
[self setMinSize: aSize];
|
||||
aSize = [aDecoder decodeSize];
|
||||
[self setMaxSize: aSize];
|
||||
|
||||
[aDecoder decodeValueOfObjCType: @encode(int)
|
||||
at: &anInt];
|
||||
[self setLevel: anInt];
|
||||
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
[self setExcludedFromWindowsMenu: flag];
|
||||
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
if (flag)
|
||||
[self orderFrontRegardless];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
if (flag)
|
||||
[self makeKeyWindow];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
if (flag)
|
||||
[self makeMainWindow];
|
||||
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
[self setOneShot: flag];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
[self setAutodisplay: flag];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
[self useOptimizedDrawing: flag];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
[self setDynamicDepthLimit: flag];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
if (flag)
|
||||
[self enableCursorRects];
|
||||
else
|
||||
[self disableCursorRects];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
[self setReleasedWhenClosed: flag];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
[self setHidesOnDeactivate: flag];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
|
||||
[self setAcceptsMouseMovedEvents: flag];
|
||||
|
||||
[aDecoder decodeValueOfObjCType: @encode(id)
|
||||
at: &miniaturized_image];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id)
|
||||
at: &_initial_first_responder];
|
||||
|
||||
NSDebugLog(@"NSWindow: finish decoding\n");
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue