OpenTTD Source 20260110-master-g14e0917ae4
cocoa_wnd.h
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD 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.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <https://www.gnu.org/licenses/old-licenses/gpl-2.0>.
6 */
7
10#ifndef COCOA_WND_H
11#define COCOA_WND_H
12
13#import <Cocoa/Cocoa.h>
14
16
17/* Right Mouse Button Emulation enum */
18enum RightMouseButtonEmulationState {
19 RMBE_COMMAND = 0,
20 RMBE_CONTROL = 1,
21 RMBE_OFF = 2,
22};
23
24extern NSString *OTTDMainLaunchGameEngine;
25
27@interface NSCursor (OTTD_QuickdrawCursor)
28+ (NSCursor *) clearCocoaCursor;
29@end
30
32@interface OTTD_CocoaWindow : NSWindow
33 <NSTouchBarDelegate>
34
35- (instancetype)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag driver:(VideoDriver_Cocoa *)drv;
36
37- (void)setFrame:(NSRect)frameRect display:(BOOL)flag;
38
39- (void)refreshSystemSprites;
40@end
41
43@interface OTTD_CocoaView : NSView <NSTextInputClient>
44- (NSRect)getRealRect:(NSRect)rect;
45- (NSRect)getVirtualRect:(NSRect)rect;
46- (CGFloat)getContentsScale;
47- (NSPoint)mousePositionFromEvent:(NSEvent *)e;
48@end
49
51@interface OTTD_CocoaWindowDelegate : NSObject <NSWindowDelegate>
52- (instancetype)initWithDriver:(VideoDriver_Cocoa *)drv;
53
54- (BOOL)windowShouldClose:(id)sender;
55- (void)windowDidEnterFullScreen:(NSNotification *)aNotification;
56- (void)windowDidChangeBackingProperties:(NSNotification *)notification;
57- (NSApplicationPresentationOptions)window:(NSWindow *)window willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)proposedOptions;
58@end
59
60
61extern bool _allow_hidpi_window;
62
63bool CocoaSetupApplication();
64void CocoaExitApplication();
65
66#endif /* COCOA_WND_H */
Subclass of NSView to support mouse awareness and text input.
Definition cocoa_wnd.h:43
Delegate for our NSWindow to send ask for quit on close.
Definition cocoa_wnd.h:51
Subclass of NSWindow to cater our special needs.
Definition cocoa_wnd.h:33