Changeset 4954

Show
Ignore:
Timestamp:
10/14/07 02:50:32 (1 year ago)
Author:
morris
Message:

Add -snapToScreenEdgeAndDisplay:animate:

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • WiredAdditions/trunk/NSWindow-WIAdditions.h

    r4707 r4954  
    3838- (NSDictionary *)propertiesDictionary; 
    3939 
     40- (void)snapToScreenEdgeAndDisplay:(BOOL)display animate:(BOOL)animate; 
     41 
    4042@end 
  • WiredAdditions/trunk/NSWindow-WIAdditions.m

    r4893 r4954  
    2828 
    2929#import <WiredAdditions/NSDictionary-WIAdditions.h> 
     30#import <WiredAdditions/NSEvent-WIAdditions.h> 
    3031#import <WiredAdditions/NSToolbar-WIAdditions.h> 
    3132#import <WiredAdditions/NSWindow-WIAdditions.h> 
     
    127128} 
    128129 
     130 
     131 
     132#pragma mark - 
     133 
     134- (void)snapToScreenEdgeAndDisplay:(BOOL)display animate:(BOOL)animate { 
     135    NSRect                      visibleFrame, frame; 
     136    CGFloat                     gravity = 40.0; 
     137     
     138    frame = [self frame]; 
     139        visibleFrame = [[self screen] visibleFrame]; 
     140                 
     141        if(fabs(visibleFrame.origin.x - frame.origin.x) <= gravity) 
     142                frame.origin.x = visibleFrame.origin.x; 
     143        if(fabs(visibleFrame.origin.x - (frame.origin.x + frame.size.width)) <= gravity) 
     144                frame.origin.x += visibleFrame.origin.x - (frame.origin.x + frame.size.width); 
     145        if(fabs((visibleFrame.origin.x + visibleFrame.size.width) - frame.origin.x) <= gravity) 
     146                frame.origin.x = visibleFrame.origin.x + visibleFrame.size.width; 
     147        if(fabs((visibleFrame.origin.x + visibleFrame.size.width) - (frame.origin.x + frame.size.width)) <= gravity) 
     148                frame.origin.x += (visibleFrame.origin.x + visibleFrame.size.width) - (frame.origin.x + frame.size.width); 
     149         
     150        if(fabs(visibleFrame.origin.y - frame.origin.y) <= gravity) 
     151                frame.origin.y = visibleFrame.origin.y; 
     152        if(fabs(visibleFrame.origin.y - (frame.origin.y + frame.size.height)) <= gravity) 
     153                frame.origin.y += visibleFrame.origin.y - (frame.origin.y + frame.size.height); 
     154        if(fabs((visibleFrame.origin.y + visibleFrame.size.height) - frame.origin.y) <= gravity) 
     155                frame.origin.y = visibleFrame.origin.y + visibleFrame.size.height; 
     156        if(fabs((visibleFrame.origin.y + visibleFrame.size.height) - (frame.origin.y + frame.size.height)) <= gravity) 
     157                frame.origin.y += (visibleFrame.origin.y + visibleFrame.size.height) - (frame.origin.y + frame.size.height); 
     158                 
     159        [self setFrame:frame display:display animate:animate]; 
     160} 
     161 
    129162@end