1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

cc(): fix -x objective-c; ui.focus_app()

This commit is contained in:
Alexander Medvednikov 2019-08-18 16:58:58 +03:00
parent f9fb6f0be4
commit 56fbafe03a
3 changed files with 39 additions and 6 deletions

View File

@ -841,10 +841,14 @@ mut args := ''
if os.dir_exists(v.out_name) {
panic('\'$v.out_name\' is a directory')
}
if v.os == .mac {
a << '-x objective-c'
}
// The C file we are compiling
//a << '"$TmpPath/$v.out_name_c"'
a << '".$v.out_name_c"'
// }
if v.os == .mac {
a << '-x none'
}
// Min macos version is mandatory I think?
if v.os == .mac {
a << '-mmacosx-version-min=10.7'
@ -852,9 +856,6 @@ mut args := ''
a << flags
a << libs
// macOS code can include objective C TODO remove once objective C is replaced with C
if v.os == .mac {
a << '-x objective-c'
}
// Without these libs compilation will fail on Linux
// || os.user_os() == 'linux'
if v.pref.build_mode != .build && (v.os == .linux || v.os == .freebsd || v.os == .openbsd ||

View File

@ -176,7 +176,7 @@ fn (p mut Parser) parse() {
}
p.fgenln('\n')
p.builtin_mod = p.mod == 'builtin'
p.can_chash = p.mod == 'freetype' || p.mod=='ui' || p.file_path.contains('/focus.v') // TODO tmp remove
p.can_chash = p.mod == 'freetype' || p.mod=='ui' // TODO tmp remove
// Import pass - the first and the smallest pass that only analyzes imports
// fully qualify the module name, eg base64 to encoding.base64
fq_mod := p.table.qualify_module(p.mod, p.file_path)

32
vlib/ui/ui_mac.v Normal file
View File

@ -0,0 +1,32 @@
module ui
#flag -framework Carbon
#flag -framework Cocoa
#include <Cocoa/Cocoa.h>
#include <Carbon/Carbon.h>
fn focus_app(next, event, data voidptr) {
#NSLog(@"2The hot key was pressed.");
#NSApplication *myApp = [NSApplication sharedApplication];
#[myApp activateIgnoringOtherApps:YES];
//return noErr;
}
pub fn reg_key_vid() {
println('REGISTERING VID KEY')
#EventHotKeyRef gMyHotKeyRef;
#EventHotKeyID gMyHotKeyID;
#EventTypeSpec eventType;
#eventType.eventClass = kEventClassKeyboard;
#eventType.eventKind = kEventHotKeyPressed;
#InstallApplicationEventHandler(&focus_app, 1, &eventType, NULL, NULL);
#gMyHotKeyID.signature = 'rml1';
#gMyHotKeyID.id = 1;
#RegisterEventHotKey(kVK_ANSI_1, cmdKey, gMyHotKeyID,
#GetApplicationEventTarget(), 0, &gMyHotKeyRef);
}