mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
40 lines
1.1 KiB
V
40 lines
1.1 KiB
V
module darwin
|
|
|
|
#include <Cocoa/Cocoa.h>
|
|
#include <CoreFoundation/CoreFoundation.h>
|
|
|
|
#flag -framework Cocoa
|
|
|
|
struct C.NSString { }
|
|
|
|
// macOS and iOS helpers
|
|
pub fn nsstring(s string) *C.NSString {
|
|
// println('ns $s len=$s.len')
|
|
# return [ [ NSString alloc ] initWithBytesNoCopy:s.str length:s.len
|
|
# encoding:NSUTF8StringEncoding freeWhenDone: false];
|
|
return 0
|
|
|
|
//ns := C.alloc_NSString()
|
|
//return ns.initWithBytesNoCopy(s.str, length: s.len,
|
|
//encoding: NSUTF8StringEncoding, freeWhenDone: false)
|
|
}
|
|
|
|
// returns absolute path to folder where your resources should / will reside
|
|
// for .app packages: .../my.app/Contents/Resources
|
|
// for cli: .../parent_folder/Resources
|
|
pub fn resource_path() string {
|
|
|
|
main_bundle := C.CFBundleGetMainBundle()
|
|
resource_dir_url := C.CFBundleCopyResourcesDirectoryURL(main_bundle)
|
|
assert !isnil(resource_dir_url)
|
|
buffer_size := 4096
|
|
mut buffer := malloc(buffer_size)
|
|
buffer[0] = 0
|
|
conv_result := C.CFURLGetFileSystemRepresentation(resource_dir_url, true, buffer, buffer_size)
|
|
assert conv_result
|
|
result := string(buffer)
|
|
C.CFRelease(resource_dir_url)
|
|
return result
|
|
}
|
|
|