mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-06-04 19:00:53 +00:00
Window/Menu location saving updated to be exactly as per MacOS-X
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@5196 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
4b2276ae81
commit
b5d656145f
2 changed files with 63 additions and 10 deletions
|
@ -4,6 +4,8 @@ Tue Nov 16 7:05:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||||
up to date on exit.
|
up to date on exit.
|
||||||
* Source/NSWindow.m: various changes to sving window frame info.
|
* Source/NSWindow.m: various changes to sving window frame info.
|
||||||
Use top-left as window origin, and save in OPENSTEP format.
|
Use top-left as window origin, and save in OPENSTEP format.
|
||||||
|
Include code to save NSMenuWindow locations exactly as in
|
||||||
|
MacOS-X also.
|
||||||
|
|
||||||
Mon Nov 15 21:29:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
Mon Nov 15 21:29:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,8 @@
|
||||||
#include <AppKit/NSGraphicsContext.h>
|
#include <AppKit/NSGraphicsContext.h>
|
||||||
#include <AppKit/GSWraps.h>
|
#include <AppKit/GSWraps.h>
|
||||||
|
|
||||||
|
@class NSMenuWindow;
|
||||||
|
|
||||||
BOOL GSViewAcceptsDrag(NSView *v, id<NSDraggingInfo> dragInfo);
|
BOOL GSViewAcceptsDrag(NSView *v, id<NSDraggingInfo> dragInfo);
|
||||||
|
|
||||||
@interface GSWindowView : NSView
|
@interface GSWindowView : NSView
|
||||||
|
@ -2174,13 +2176,40 @@ resetCursorRectsForView(NSView *theView)
|
||||||
|
|
||||||
- (void) saveFrameUsingName: (NSString *)name
|
- (void) saveFrameUsingName: (NSString *)name
|
||||||
{
|
{
|
||||||
|
NSUserDefaults *defs;
|
||||||
NSString *key;
|
NSString *key;
|
||||||
NSString *obj;
|
id obj;
|
||||||
|
|
||||||
key = [NSString stringWithFormat: @"NSWindow frame %@", name];
|
|
||||||
obj = [self stringWithSavedFrame];
|
|
||||||
[windowsLock lock];
|
[windowsLock lock];
|
||||||
[[NSUserDefaults standardUserDefaults] setObject: obj forKey: key];
|
defs = [NSUserDefaults standardUserDefaults];
|
||||||
|
obj = [self stringWithSavedFrame];
|
||||||
|
if ([self isKindOfClass: [NSMenuWindow class]])
|
||||||
|
{
|
||||||
|
id dict;
|
||||||
|
|
||||||
|
key = @"NSMenuLocations";
|
||||||
|
dict = [defs objectForKey: key];
|
||||||
|
if (dict == nil)
|
||||||
|
{
|
||||||
|
dict = [NSMutableDictionary dictionaryWithCapacity: 1];
|
||||||
|
}
|
||||||
|
else if ([dict isKindOfClass: [NSDictionary class]] == NO)
|
||||||
|
{
|
||||||
|
NSLog(@"NSMenuLocations default is not a dictionary - overwriting");
|
||||||
|
dict = [NSMutableDictionary dictionaryWithCapacity: 1];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dict = AUTORELEASE([dict mutableCopy]);
|
||||||
|
}
|
||||||
|
[dict setObject: obj forKey: name];
|
||||||
|
obj = dict;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
key = [NSString stringWithFormat: @"NSWindow frame %@", name];
|
||||||
|
}
|
||||||
|
[defs setObject: obj forKey: key];
|
||||||
[windowsLock unlock];
|
[windowsLock unlock];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2328,12 +2357,34 @@ resetCursorRectsForView(NSView *theView)
|
||||||
|
|
||||||
- (BOOL) setFrameUsingName: (NSString *)name
|
- (BOOL) setFrameUsingName: (NSString *)name
|
||||||
{
|
{
|
||||||
|
NSUserDefaults *defs;
|
||||||
|
id obj;
|
||||||
|
|
||||||
|
[windowsLock lock];
|
||||||
|
defs = [NSUserDefaults standardUserDefaults];
|
||||||
|
if ([self isKindOfClass: [NSMenuWindow class]] == YES)
|
||||||
|
{
|
||||||
|
obj = [defs objectForKey: @"NSMenuLocations"];
|
||||||
|
if (obj != nil)
|
||||||
|
{
|
||||||
|
if ([obj isKindOfClass: [NSDictionary class]] == YES)
|
||||||
|
{
|
||||||
|
obj = [obj objectForKey: name];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
NSLog(@"NSMenuLocations default is not a dictionary");
|
||||||
|
obj = nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
NSString *key;
|
NSString *key;
|
||||||
NSString *obj;
|
|
||||||
|
|
||||||
key = [NSString stringWithFormat: @"NSWindow frame %@", name];
|
key = [NSString stringWithFormat: @"NSWindow frame %@", name];
|
||||||
[windowsLock lock];
|
obj = [defs objectForKey: key];
|
||||||
obj = [[NSUserDefaults standardUserDefaults] objectForKey: key];
|
}
|
||||||
[windowsLock unlock];
|
[windowsLock unlock];
|
||||||
if (obj == nil)
|
if (obj == nil)
|
||||||
return NO;
|
return NO;
|
||||||
|
@ -2355,7 +2406,7 @@ resetCursorRectsForView(NSView *theView)
|
||||||
*/
|
*/
|
||||||
sRect = [[NSScreen mainScreen] frame];
|
sRect = [[NSScreen mainScreen] frame];
|
||||||
|
|
||||||
return [NSString stringWithFormat: @"%d %d %d %d %d %d % d %d",
|
return [NSString stringWithFormat: @"%d %d %d %d %d %d % d %d ",
|
||||||
(int)fRect.origin.x, (int)fRect.origin.y,
|
(int)fRect.origin.x, (int)fRect.origin.y,
|
||||||
(int)fRect.size.width, (int)fRect.size.height,
|
(int)fRect.size.width, (int)fRect.size.height,
|
||||||
(int)sRect.origin.x, (int)sRect.origin.y,
|
(int)sRect.origin.x, (int)sRect.origin.y,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue