wine/dlls/winemac.drv/cocoa_window.h
Ken Thomases 5ebb83ad4e winemac: Defer ordering a window out if it's in the process of entering or exiting Cocoa full-screen mode.
Cocoa doesn't handle the window being ordered out or closed during the
animation well and leaves a ghost window around.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-24 20:32:11 +02:00

112 lines
2.9 KiB
Objective-C

/*
* MACDRV Cocoa window declarations
*
* Copyright 2011, 2012, 2013 Ken Thomases for CodeWeavers Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#import <AppKit/AppKit.h>
@class WineEventQueue;
@interface WineWindow : NSPanel <NSWindowDelegate>
{
BOOL disabled;
BOOL noActivate;
BOOL floating;
BOOL resizable;
BOOL maximized;
BOOL fullscreen;
BOOL pendingMinimize;
BOOL pendingOrderOut;
BOOL savedVisibleState;
BOOL drawnSinceShown;
WineWindow* latentParentWindow;
NSMutableArray* latentChildWindows;
void* hwnd;
WineEventQueue* queue;
void* surface;
pthread_mutex_t* surface_mutex;
CGDirectDisplayID _lastDisplayID;
NSTimeInterval _lastDisplayTime;
NSRect wineFrame;
NSRect roundedWineFrame;
NSBezierPath* shape;
NSData* shapeData;
BOOL shapeChangedSinceLastDraw;
BOOL colorKeyed;
CGFloat colorKeyRed, colorKeyGreen, colorKeyBlue;
BOOL usePerPixelAlpha;
NSUInteger lastModifierFlags;
NSRect frameAtResizeStart;
BOOL resizingFromLeft, resizingFromTop;
void* imeData;
BOOL commandDone;
NSSize savedContentMinSize;
NSSize savedContentMaxSize;
BOOL enteringFullScreen;
BOOL exitingFullScreen;
NSRect nonFullscreenFrame;
NSTimeInterval enteredFullScreenTime;
int draggingPhase;
NSPoint dragStartPosition;
NSPoint dragWindowStartPosition;
NSTimeInterval lastDockIconSnapshot;
BOOL allowKeyRepeats;
BOOL ignore_windowDeminiaturize;
BOOL ignore_windowResize;
BOOL fakingClose;
}
@property (retain, readonly, nonatomic) WineEventQueue* queue;
@property (readonly, nonatomic) BOOL disabled;
@property (readonly, nonatomic) BOOL noActivate;
@property (readonly, nonatomic) BOOL floating;
@property (readonly, getter=isFullscreen, nonatomic) BOOL fullscreen;
@property (readonly, getter=isFakingClose, nonatomic) BOOL fakingClose;
@property (readonly, nonatomic) NSRect wine_fractionalFrame;
- (NSInteger) minimumLevelForActive:(BOOL)active;
- (void) updateFullscreen;
- (void) postKeyEvent:(NSEvent *)theEvent;
- (void) postBroughtForwardEvent;
- (WineWindow*) ancestorWineWindow;
- (void) updateForCursorClipping;
- (void) setRetinaMode:(int)mode;
@end