2013-01-07 21:44:44 +01:00
|
|
|
/*
|
|
|
|
* 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>
|
|
|
|
|
|
|
|
|
2013-01-21 07:07:58 +01:00
|
|
|
@class WineEventQueue;
|
|
|
|
|
|
|
|
|
2013-01-07 21:44:44 +01:00
|
|
|
@interface WineWindow : NSPanel <NSWindowDelegate>
|
2013-01-11 13:18:05 +01:00
|
|
|
{
|
|
|
|
BOOL disabled;
|
2013-01-11 13:18:36 +01:00
|
|
|
BOOL noActivate;
|
2013-01-11 13:18:55 +01:00
|
|
|
BOOL floating;
|
2013-12-30 04:34:48 +01:00
|
|
|
BOOL resizable;
|
|
|
|
BOOL maximized;
|
2013-06-07 00:43:06 +02:00
|
|
|
BOOL fullscreen;
|
2013-06-04 11:59:42 +02:00
|
|
|
BOOL pendingMinimize;
|
2013-12-31 08:05:09 +01:00
|
|
|
BOOL savedVisibleState;
|
2013-01-11 13:19:36 +01:00
|
|
|
WineWindow* latentParentWindow;
|
2013-08-30 07:00:56 +02:00
|
|
|
NSMutableArray* latentChildWindows;
|
2013-01-15 03:23:55 +01:00
|
|
|
|
2013-01-21 07:08:03 +01:00
|
|
|
void* hwnd;
|
2013-01-21 07:07:58 +01:00
|
|
|
WineEventQueue* queue;
|
|
|
|
|
2013-01-15 03:23:55 +01:00
|
|
|
void* surface;
|
|
|
|
pthread_mutex_t* surface_mutex;
|
2013-01-15 03:23:58 +01:00
|
|
|
|
|
|
|
NSBezierPath* shape;
|
2014-10-03 00:06:19 +02:00
|
|
|
NSData* shapeData;
|
2013-01-15 03:23:58 +01:00
|
|
|
BOOL shapeChangedSinceLastDraw;
|
2013-01-15 03:24:02 +01:00
|
|
|
|
|
|
|
BOOL colorKeyed;
|
|
|
|
CGFloat colorKeyRed, colorKeyGreen, colorKeyBlue;
|
|
|
|
|
|
|
|
BOOL usePerPixelAlpha;
|
2013-01-27 23:19:41 +01:00
|
|
|
|
2013-02-04 00:20:18 +01:00
|
|
|
NSUInteger lastModifierFlags;
|
|
|
|
|
2013-04-02 10:17:48 +02:00
|
|
|
NSTimer* liveResizeDisplayTimer;
|
2014-04-24 03:00:29 +02:00
|
|
|
NSRect frameAtResizeStart;
|
|
|
|
BOOL resizingFromLeft, resizingFromTop;
|
2013-04-02 10:17:48 +02:00
|
|
|
|
2013-04-22 04:32:26 +02:00
|
|
|
void* imeData;
|
|
|
|
BOOL commandDone;
|
|
|
|
|
2013-09-18 20:00:37 +02:00
|
|
|
NSSize savedContentMinSize;
|
|
|
|
NSSize savedContentMaxSize;
|
|
|
|
|
2013-10-10 21:22:08 +02:00
|
|
|
BOOL enteringFullScreen;
|
|
|
|
BOOL exitingFullScreen;
|
|
|
|
NSRect nonFullscreenFrame;
|
|
|
|
NSTimeInterval enteredFullScreenTime;
|
|
|
|
|
2015-03-24 00:58:11 +01:00
|
|
|
int draggingPhase;
|
|
|
|
NSPoint dragStartPosition;
|
|
|
|
NSPoint dragWindowStartPosition;
|
|
|
|
|
2013-02-04 00:20:07 +01:00
|
|
|
BOOL ignore_windowDeminiaturize;
|
2013-11-15 03:52:07 +01:00
|
|
|
BOOL ignore_windowResize;
|
2013-09-27 06:46:31 +02:00
|
|
|
BOOL fakingClose;
|
2013-01-11 13:18:05 +01:00
|
|
|
}
|
|
|
|
|
2013-01-27 23:19:48 +01:00
|
|
|
@property (retain, readonly, nonatomic) WineEventQueue* queue;
|
2013-06-18 06:35:56 +02:00
|
|
|
@property (readonly, nonatomic) BOOL disabled;
|
|
|
|
@property (readonly, nonatomic) BOOL noActivate;
|
2013-02-18 02:28:30 +01:00
|
|
|
@property (readonly, nonatomic) BOOL floating;
|
2013-06-07 00:43:06 +02:00
|
|
|
@property (readonly, getter=isFullscreen, nonatomic) BOOL fullscreen;
|
2013-09-27 06:46:31 +02:00
|
|
|
@property (readonly, getter=isFakingClose, nonatomic) BOOL fakingClose;
|
2013-01-27 23:19:48 +01:00
|
|
|
|
2013-05-17 01:43:33 +02:00
|
|
|
- (NSInteger) minimumLevelForActive:(BOOL)active;
|
2013-06-07 00:43:06 +02:00
|
|
|
- (void) updateFullscreen;
|
2013-02-18 02:28:49 +01:00
|
|
|
|
2013-07-09 09:49:59 +02:00
|
|
|
- (void) postKeyEvent:(NSEvent *)theEvent;
|
2013-10-08 09:21:34 +02:00
|
|
|
- (void) postBroughtForwardEvent;
|
|
|
|
|
|
|
|
- (WineWindow*) ancestorWineWindow;
|
2013-07-09 09:49:59 +02:00
|
|
|
|
2014-04-28 22:09:28 +02:00
|
|
|
- (void) updateForCursorClipping;
|
|
|
|
|
2013-01-07 21:44:44 +01:00
|
|
|
@end
|