diff options
author | David Robillard <d@drobilla.net> | 2019-07-28 18:53:31 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-07-29 22:43:19 +0200 |
commit | b0a92df939138ba3fb92d0d5b3cafcc822df4fec (patch) | |
tree | 7a3c330f97cf98a21ae6d7ea6dd42ec08941f184 /pugl/detail/mac.h | |
parent | 074538bae86584b962b9cd41304fed235f8731b1 (diff) | |
download | pugl-b0a92df939138ba3fb92d0d5b3cafcc822df4fec.tar.gz pugl-b0a92df939138ba3fb92d0d5b3cafcc822df4fec.tar.bz2 pugl-b0a92df939138ba3fb92d0d5b3cafcc822df4fec.zip |
Mac: Separate backends from platform implementation
Diffstat (limited to 'pugl/detail/mac.h')
-rw-r--r-- | pugl/detail/mac.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/pugl/detail/mac.h b/pugl/detail/mac.h new file mode 100644 index 0000000..9a5997d --- /dev/null +++ b/pugl/detail/mac.h @@ -0,0 +1,59 @@ +/* + Copyright 2012-2019 David Robillard <http://drobilla.net> + Copyright 2017 Hanspeter Portner <dev@open-music-kontrollers.ch> + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +/** + @file win.h Shared definitions for MacOS implementation. +*/ + +#include "pugl/pugl.h" + +#import <Cocoa/Cocoa.h> + +#include <stdint.h> + +@interface PuglWrapperView : NSView<NSTextInputClient> +{ +@public + PuglView* puglview; + NSTrackingArea* trackingArea; + NSMutableAttributedString* markedText; + NSTimer* timer; + NSTimer* urgentTimer; +} + +- (void) dispatchConfigure:(NSRect)bounds; + +@end + +@interface PuglWindow : NSWindow +{ +@public + PuglView* puglview; +} + +- (void) setPuglview:(PuglView*)view; + +@end + +struct PuglInternalsImpl { + NSApplication* app; + PuglWrapperView* wrapperView; + NSView* drawView; + id window; + NSEvent* nextEvent; + uint32_t mods; +}; |