25
26 #import "common.h"
27 #import "com_sun_glass_events_ViewEvent.h"
28 #import "com_sun_glass_events_WindowEvent.h"
29 #import "com_sun_glass_ui_Window.h"
30 #import "com_sun_glass_ui_Window_Level.h"
31 #import "com_sun_glass_ui_mac_MacWindow.h"
32
33 #import "GlassMacros.h"
34 #import "GlassWindow+Java.h"
35 #import "GlassScreen.h"
36
37 //#define VERBOSE
38 #ifndef VERBOSE
39 #define LOG(MSG, ...)
40 #else
41 #define LOG(MSG, ...) GLASS_LOG(MSG, ## __VA_ARGS__);
42 #endif
43
44 static NSWindow *s_grabWindow = nil;
45
46 @interface NSWindow (External)
47
48 - (void)_startLiveResize;
49 - (void)_endLiveResize;
50
51 @end
52
53 @implementation GlassWindow (Java)
54
55 #pragma mark --- Callbacks
56
57 - (void)_sendJavaWindowMoveToAnotherScreenEventIfNeeded
58 {
59 NSScreen *newScreen = [self->nsWindow screen];
60
61 // Update only if the newScreen isn't nil
62 if (self->currentScreen != newScreen && newScreen != nil)
63 {
64 self->currentScreen = newScreen;
342 }
343 if (screen == nil)
344 {
345 screen = [[NSScreen screens] objectAtIndex: 0];
346 }
347 return screen;
348 }
349
350 #pragma mark --- Flip
351
352 - (void)_setFlipFrame:(NSRect)frameRect display:(BOOL)displayFlag animate:(BOOL)animateFlag
353 {
354 //NSLog(@"_setFlipFrame: %.2f,%.2f %.2fx%.2f", frameRect.origin.x, frameRect.origin.y, frameRect.size.width, frameRect.size.height);
355 NSScreen * screen = [[NSScreen screens] objectAtIndex: 0];
356 NSRect screenFrame = screen.frame;
357 //NSLog(@" screenFrame: %.2f,%.2f %.2fx%.2f", screenFrame.origin.x, screenFrame.origin.y, screenFrame.size.width, screenFrame.size.height);
358
359 frameRect.origin.y = screenFrame.size.height - frameRect.size.height - frameRect.origin.y;
360 //NSLog(@" set to frameRect:%.2f,%.2f %.2fx%.2f", frameRect.origin.x, frameRect.origin.y, frameRect.size.width, frameRect.size.height);
361
362 [self->nsWindow setFrame:frameRect display:displayFlag animate:animateFlag];
363
364 //frameRect = [self _flipFrame];
365 //NSLog(@" _flipFrame:%.2f,%.2f %.2fx%.2f", frameRect.origin.x, frameRect.origin.y, frameRect.size.width, frameRect.size.height);
366 //frameRect = [super frame];
367 //NSLog(@" frame:%.2f,%.2f %.2fx%.2f", frameRect.origin.x, frameRect.origin.y, frameRect.size.width, frameRect.size.height);
368 }
369
370 - (NSRect)_flipFrame
371 {
372 NSScreen * screen = [[NSScreen screens] objectAtIndex: 0];
373 NSRect screenFrame = screen.frame;
374
375 NSRect frame = [self->nsWindow frame];
376 //NSLog(@"_flipFrame: v.s.h=%.2f f.s.h=%.2f f.o.y=%.2f", screenFrame.size.height, frame.size.height, frame.origin.y);
377 frame.origin.y = screenFrame.size.height - frame.size.height - frame.origin.y;
378 //NSLog(@" result: f.o.y=%.2f", frame.origin.y);
379
380 //NSLog(@"_flipFrame: %.2f,%.2f %.2fx%.2f", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
381 return frame;
|
25
26 #import "common.h"
27 #import "com_sun_glass_events_ViewEvent.h"
28 #import "com_sun_glass_events_WindowEvent.h"
29 #import "com_sun_glass_ui_Window.h"
30 #import "com_sun_glass_ui_Window_Level.h"
31 #import "com_sun_glass_ui_mac_MacWindow.h"
32
33 #import "GlassMacros.h"
34 #import "GlassWindow+Java.h"
35 #import "GlassScreen.h"
36
37 //#define VERBOSE
38 #ifndef VERBOSE
39 #define LOG(MSG, ...)
40 #else
41 #define LOG(MSG, ...) GLASS_LOG(MSG, ## __VA_ARGS__);
42 #endif
43
44 static NSWindow *s_grabWindow = nil;
45 extern NSSize maxScreenDimensions;
46
47 @interface NSWindow (External)
48
49 - (void)_startLiveResize;
50 - (void)_endLiveResize;
51
52 @end
53
54 @implementation GlassWindow (Java)
55
56 #pragma mark --- Callbacks
57
58 - (void)_sendJavaWindowMoveToAnotherScreenEventIfNeeded
59 {
60 NSScreen *newScreen = [self->nsWindow screen];
61
62 // Update only if the newScreen isn't nil
63 if (self->currentScreen != newScreen && newScreen != nil)
64 {
65 self->currentScreen = newScreen;
343 }
344 if (screen == nil)
345 {
346 screen = [[NSScreen screens] objectAtIndex: 0];
347 }
348 return screen;
349 }
350
351 #pragma mark --- Flip
352
353 - (void)_setFlipFrame:(NSRect)frameRect display:(BOOL)displayFlag animate:(BOOL)animateFlag
354 {
355 //NSLog(@"_setFlipFrame: %.2f,%.2f %.2fx%.2f", frameRect.origin.x, frameRect.origin.y, frameRect.size.width, frameRect.size.height);
356 NSScreen * screen = [[NSScreen screens] objectAtIndex: 0];
357 NSRect screenFrame = screen.frame;
358 //NSLog(@" screenFrame: %.2f,%.2f %.2fx%.2f", screenFrame.origin.x, screenFrame.origin.y, screenFrame.size.width, screenFrame.size.height);
359
360 frameRect.origin.y = screenFrame.size.height - frameRect.size.height - frameRect.origin.y;
361 //NSLog(@" set to frameRect:%.2f,%.2f %.2fx%.2f", frameRect.origin.x, frameRect.origin.y, frameRect.size.width, frameRect.size.height);
362
363 if (frameRect.size.width > maxScreenDimensions.width) {
364 frameRect.size.width = maxScreenDimensions.width;
365 }
366
367 if (frameRect.size.height > maxScreenDimensions.height) {
368 frameRect.size.height = maxScreenDimensions.height;
369 }
370
371 [self->nsWindow setFrame:frameRect display:displayFlag animate:animateFlag];
372
373 //frameRect = [self _flipFrame];
374 //NSLog(@" _flipFrame:%.2f,%.2f %.2fx%.2f", frameRect.origin.x, frameRect.origin.y, frameRect.size.width, frameRect.size.height);
375 //frameRect = [super frame];
376 //NSLog(@" frame:%.2f,%.2f %.2fx%.2f", frameRect.origin.x, frameRect.origin.y, frameRect.size.width, frameRect.size.height);
377 }
378
379 - (NSRect)_flipFrame
380 {
381 NSScreen * screen = [[NSScreen screens] objectAtIndex: 0];
382 NSRect screenFrame = screen.frame;
383
384 NSRect frame = [self->nsWindow frame];
385 //NSLog(@"_flipFrame: v.s.h=%.2f f.s.h=%.2f f.o.y=%.2f", screenFrame.size.height, frame.size.height, frame.origin.y);
386 frame.origin.y = screenFrame.size.height - frame.size.height - frame.origin.y;
387 //NSLog(@" result: f.o.y=%.2f", frame.origin.y);
388
389 //NSLog(@"_flipFrame: %.2f,%.2f %.2fx%.2f", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
390 return frame;
|