diff options
author | Danny de Bruijne <dannydb44@gmail.com> | 2021-08-19 17:39:44 +0100 |
---|---|---|
committer | Michael Lutz <michi@icosahedron.de> | 2021-09-23 21:03:00 +0200 |
commit | 753b1d7e155ffe7b3585273998278aceee25fa1a (patch) | |
tree | b8ba3600e21138ee0441970ff57a9b0aeaa3c4b8 /src/video/cocoa/cocoa_wnd.h | |
parent | 16aac9c34126d3af183f3782571791dddcbbcf6b (diff) | |
download | openttd-753b1d7e155ffe7b3585273998278aceee25fa1a.tar.xz |
Feature: Add selected toolbar buttons to MacBook Pro Touch Bar
Diffstat (limited to 'src/video/cocoa/cocoa_wnd.h')
-rw-r--r-- | src/video/cocoa/cocoa_wnd.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/video/cocoa/cocoa_wnd.h b/src/video/cocoa/cocoa_wnd.h index 3ddd5a4f0..0b5c51b99 100644 --- a/src/video/cocoa/cocoa_wnd.h +++ b/src/video/cocoa/cocoa_wnd.h @@ -11,6 +11,8 @@ #define COCOA_WND_H #import <Cocoa/Cocoa.h> +#include "toolbar_gui.h" +#include "table/sprites.h" class VideoDriver_Cocoa; @@ -28,8 +30,67 @@ extern NSString *OTTDMainLaunchGameEngine; + (NSCursor *) clearCocoaCursor; @end +#ifdef HAVE_OSX_1015_SDK +/* 9 items can be displayed on the touch bar when using default buttons. */ +static NSArray *touchBarButtonIdentifiers = @[ + @"openttd.pause", + @"openttd.fastforward", + @"openttd.zoom_in", + @"openttd.zoom_out", + @"openttd.build_rail", + @"openttd.build_road", + @"openttd.build_tram", + @"openttd.build_docks", + @"openttd.build_airport", + NSTouchBarItemIdentifierOtherItemsProxy +]; + +static NSDictionary *touchBarButtonSprites = @{ + @"openttd.pause": [NSNumber numberWithInt:SPR_IMG_PAUSE], + @"openttd.fastforward": [NSNumber numberWithInt:SPR_IMG_FASTFORWARD], + @"openttd.zoom_in": [NSNumber numberWithInt:SPR_IMG_ZOOMIN], + @"openttd.zoom_out": [NSNumber numberWithInt:SPR_IMG_ZOOMOUT], + @"openttd.build_rail": [NSNumber numberWithInt:SPR_IMG_BUILDRAIL], + @"openttd.build_road": [NSNumber numberWithInt:SPR_IMG_BUILDROAD], + @"openttd.build_tram": [NSNumber numberWithInt:SPR_IMG_BUILDTRAMS], + @"openttd.build_docks": [NSNumber numberWithInt:SPR_IMG_BUILDWATER], + @"openttd.build_airport": [NSNumber numberWithInt:SPR_IMG_BUILDAIR], +}; + +static NSDictionary *touchBarButtonActions = @{ + @"openttd.pause": [NSNumber numberWithInt:MTHK_PAUSE], + @"openttd.fastforward": [NSNumber numberWithInt:MTHK_FASTFORWARD], + @"openttd.zoom_in": [NSNumber numberWithInt:MTHK_ZOOM_IN], + @"openttd.zoom_out": [NSNumber numberWithInt:MTHK_ZOOM_OUT], + @"openttd.build_rail": [NSNumber numberWithInt:MTHK_BUILD_RAIL], + @"openttd.build_road": [NSNumber numberWithInt:MTHK_BUILD_ROAD], + @"openttd.build_tram": [NSNumber numberWithInt:MTHK_BUILD_TRAM], + @"openttd.build_docks": [NSNumber numberWithInt:MTHK_BUILD_DOCKS], + @"openttd.build_airport": [NSNumber numberWithInt:MTHK_BUILD_AIRPORT], +}; + +static NSDictionary *touchBarFallbackText = @{ + @"openttd.pause": @"Pause", + @"openttd.fastforward": @"Fast Forward", + @"openttd.zoom_in": @"Zoom In", + @"openttd.zoom_out": @"Zoom Out", + @"openttd.build_rail": @"Rail", + @"openttd.build_road": @"Road", + @"openttd.build_tram": @"Tram", + @"openttd.build_docks": @"Docks", + @"openttd.build_airport": @"Airport", +}; +#endif + /** Subclass of NSWindow to cater our special needs */ +#ifdef HAVE_OSX_1015_SDK +@interface OTTD_CocoaWindow : NSWindow <NSTouchBarDelegate> +@property (strong) NSSet *touchbarItems; +- (NSImage*)generateImage:(int)spriteId; +#else @interface OTTD_CocoaWindow : NSWindow +#endif + - (instancetype)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag driver:(VideoDriver_Cocoa *)drv; - (void)setFrame:(NSRect)frameRect display:(BOOL)flag; |