mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-22 20:50:44 +00:00
Use enum instead of string for preferredEdge
This commit is contained in:
parent
5a0958ec46
commit
52fd3b0cc6
3 changed files with 25 additions and 26 deletions
|
@ -26,6 +26,7 @@
|
|||
#define _NSStoryboardSegue_h_GNUSTEP_GUI_INCLUDE
|
||||
|
||||
#import <Foundation/NSObject.h>
|
||||
#import <Foundation/NSGeometry.h>
|
||||
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_10, GS_API_LATEST)
|
||||
|
||||
|
@ -46,7 +47,7 @@ DEFINE_BLOCK_TYPE_NO_ARGS(GSStoryboardSeguePerformHandler, void);
|
|||
NSString *_relationship;
|
||||
id _popoverAnchorView;
|
||||
NSString *_popoverBehavior;
|
||||
NSString *_preferredEdge;
|
||||
NSRectEdge _preferredEdge;
|
||||
GSStoryboardSeguePerformHandler _handler;
|
||||
}
|
||||
|
||||
|
|
|
@ -61,8 +61,8 @@
|
|||
- (id) _popoverAnchorView;
|
||||
- (void) _setPopoverBehavior: (NSString *)behavior;
|
||||
- (NSString *) _popoverBehavior;
|
||||
- (void) _setPreferredEdge: (NSString *)edge;
|
||||
- (NSString *) _preferredEdge;
|
||||
- (void) _setPreferredEdge: (NSRectEdge)edge;
|
||||
- (NSRectEdge) _preferredEdge;
|
||||
@end
|
||||
|
||||
// this needs to be set on segues
|
||||
|
@ -107,9 +107,9 @@
|
|||
return _popoverBehavior;
|
||||
}
|
||||
|
||||
- (void) _setPreferredEdge: (NSString *)edge
|
||||
- (void) _setPreferredEdge: (NSRectEdge)edge
|
||||
{
|
||||
ASSIGN(_preferredEdge, edge);
|
||||
_preferredEdge = edge;
|
||||
}
|
||||
|
||||
- (NSString *) _preferredEdge
|
||||
|
@ -779,6 +779,23 @@
|
|||
NSString *pb = [attr stringValue];
|
||||
attr = [obj attributeForName: @"preferredEdge"];
|
||||
NSString *pe = [attr stringValue];
|
||||
NSRectEdge edge = NSMinXEdge;
|
||||
if ([pe isEqualToString: @"maxY"])
|
||||
{
|
||||
edge = NSMaxYEdge;
|
||||
}
|
||||
else if ([pe isEqualToString: @"minY"])
|
||||
{
|
||||
edge = NSMinYEdge;
|
||||
}
|
||||
else if ([pe isEqualToString: @"maxX"])
|
||||
{
|
||||
edge = NSMaxXEdge;
|
||||
}
|
||||
else if ([pe isEqualToString: @"minX"])
|
||||
{
|
||||
edge = NSMinXEdge;
|
||||
}
|
||||
[obj detach]; // segue can't be in the archive since it doesn't conform to NSCoding
|
||||
|
||||
// Create proxy object to invoke methods on the window controller
|
||||
|
@ -821,7 +838,7 @@
|
|||
[ss _setKind: kind];
|
||||
[ss _setRelationship: rel];
|
||||
[ss _setPopoverBehavior: pb];
|
||||
[ss _setPreferredEdge: pe];
|
||||
[ss _setPreferredEdge: edge];
|
||||
|
||||
// Add to maptable...
|
||||
[mapTable setObject: ss
|
||||
|
|
|
@ -174,27 +174,8 @@
|
|||
{
|
||||
NSPopover *po = [[NSPopover alloc] init];
|
||||
NSRect rect = [_popoverAnchorView frame];
|
||||
NSRectEdge edge = NSMinXEdge;
|
||||
NSPopoverBehavior behavior = NSPopoverBehaviorApplicationDefined;
|
||||
|
||||
// Convert edge...
|
||||
if ([_preferredEdge isEqualToString: @"maxY"])
|
||||
{
|
||||
edge = NSMaxYEdge;
|
||||
}
|
||||
else if ([_preferredEdge isEqualToString: @"minY"])
|
||||
{
|
||||
edge = NSMinYEdge;
|
||||
}
|
||||
else if ([_preferredEdge isEqualToString: @"maxX"])
|
||||
{
|
||||
edge = NSMaxXEdge;
|
||||
}
|
||||
else if ([_preferredEdge isEqualToString: @"minX"])
|
||||
{
|
||||
edge = NSMinXEdge;
|
||||
}
|
||||
|
||||
// Convert behavior
|
||||
if ([_popoverBehavior isEqualToString: @"a"])
|
||||
{
|
||||
|
@ -212,7 +193,7 @@
|
|||
[po setContentViewController: _destinationController];
|
||||
[po showRelativeToRect: rect
|
||||
ofView: _popoverAnchorView
|
||||
preferredEdge: edge];
|
||||
preferredEdge: _preferredEdge];
|
||||
}
|
||||
else if ([_kind isEqualToString: @"sheet"])
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue