libui/redo/darwin/uipriv_darwin.h

67 lines
1.9 KiB
C
Raw Normal View History

// 6 january 2015
#define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_7
#define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_10_7
#import <Cocoa/Cocoa.h>
2015-07-28 13:14:41 -05:00
#import "../out/ui.h"
#import "../ui_darwin.h"
#import "../uipriv.h"
#define toNSString(str) [NSString stringWithUTF8String:(str)]
#define fromNSString(str) [(str) UTF8String]
2015-04-28 13:17:28 -05:00
// These are based on measurements from Interface Builder.
// These seem to be based on Auto Layout constants, but I don't see an API that exposes these...
#define macXMargin 20
#define macYMargin 20
// menu.m
2015-05-03 01:45:59 -05:00
@interface menuManager : NSObject {
// unfortunately NSMutableDictionary copies its keys, meaning we can't use it for pointers
NSMapTable *items;
BOOL hasQuit;
BOOL hasPreferences;
BOOL hasAbout;
2015-04-28 13:17:28 -05:00
}
@property (strong) NSMenuItem *quitItem;
@property (strong) NSMenuItem *preferencesItem;
@property (strong) NSMenuItem *aboutItem;
// NSMenuValidation is only informal
2015-05-03 01:45:59 -05:00
- (BOOL)validateMenuItem:(NSMenuItem *)item;
2015-04-28 13:17:28 -05:00
- (NSMenu *)makeMenubar;
@end
2015-05-03 20:28:21 -05:00
extern void finalizeMenus(void);
2015-05-08 19:31:19 -05:00
extern void uninitMenus(void);
// init.m
@interface applicationClass : NSApplication
@end
// this is needed because NSApp is of type id, confusing clang
#define realNSApp() ((applicationClass *) NSApp)
2015-04-28 13:17:28 -05:00
@interface appDelegate : NSObject <NSApplicationDelegate>
@property (strong) menuManager *menuManager;
2015-04-28 13:17:28 -05:00
@end
#define appDelegate() ((appDelegate *) [realNSApp() delegate])
// util.m
extern void setStandardControlFont(NSControl *);
extern void disableAutocorrect(NSTextView *);
// entry.m
2015-07-22 22:20:01 -05:00
extern void finishNewTextField(uiControl *, NSTextField *, BOOL);
// window.m
extern uiWindow *windowFromNSWindow(NSWindow *);
// alloc.m
extern void initAlloc(void);
extern void uninitAlloc(void);
2015-07-11 16:02:01 -05:00
// bin.c
extern uiControl *newBin(void);
extern void binSetChild(uiControl *, uiControl *);
extern int binMargined(uiControl *);
extern void binSetMargined(uiControl *, int);
2015-07-11 16:02:01 -05:00
// TODO
#define PUT_CODE_HERE 0