Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View cxa's full-sized avatar
🦥

realazy cxa

🦥
View GitHub Profile
@cxa
cxa / gist:226a07fa8aad9335c2fb
Last active August 29, 2015 14:13
Keyboard Layout Model with Swift
enum ShiftKeyType {
case None
case Once
case Always
}
enum PunctuationSwitcherType {
case More
case Numeric
}
@cxa
cxa / gist:bb8708a8214fe6d02365
Last active August 29, 2015 14:02
Swift example: Interacting with C APIs
// BridgeHeader.h
#import <unicode/uchar.h>
// UnicodeBlock.swift
import Foundation
class UnicodeBlock {
class var blocks: UnicodeBlock[] {
@cxa
cxa / Prefix.pch
Last active December 11, 2015 19:18
Is there a one-step solution for line 10? Currently I must assign a compiler flag to a .m file with `-DCOMPILE_ONCE`.
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#define BUNDLE_NAME CXAFileManagerResourceBundle
extern NSBundle *BUNDLE_NAME;
#undef NSLocalizedString
#define NSLocalizedString(key, comment) [BUNDLE_NAME localizedStringForKey:(key) value:@"" table:nil]
#ifdef COMPILE_ONCE
@cxa
cxa / gist:4618561
Last active December 11, 2015 15:08
int fiddle = open("DOCUMENT_DIRECTORY", O_EVTONLY);
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t source = dispatch_source_create(DISPATCH_SOURCE_TYPE_VNODE, fiddle, DISPATCH_VNODE_WRITE, queue);
dispatch_source_set_event_handler(source, ^{
// how to determine if a file has finished copying?
});
@cxa
cxa / gist:3936832
Created October 23, 2012 05:18 — forked from huacnlee/gist:3936299
Mac 清理 TextMate 2 不断升级带出一堆多余的打开方式
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
@cxa
cxa / cascadelist.m
Created May 11, 2012 08:19 — forked from jjgod/cascadelist.m
Use cascade list attribute to customize font fallback in Core Text
#import <ApplicationServices/ApplicationServices.h>
#import <Foundation/Foundation.h>
int main(int argc, char *argv[])
{
if (argc != 2)
return 0;
NSAutoreleasePool *pool = [NSAutoreleasePool new];
CFStringRef name = (CFStringRef) [NSString stringWithUTF8String: argv[1]];
@cxa
cxa / CGFontToFontData.m
Created May 5, 2012 15:06 — forked from Bokugene/CGFontToFontData.m
Read Table Data from a CGFont, then wrap them into a OTF/TTF font.
typedef struct FontHeader {
int32_t fVersion;
uint16_t fNumTables;
uint16_t fSearchRange;
uint16_t fEntrySelector;
uint16_t fRangeShift;
}FontHeader;
typedef struct TableEntry {
uint32_t fTag;
@cxa
cxa / gist:2437310
Created April 21, 2012 14:17
CTFont with kCTFontCascadeListAttribute
CGFloat pointSize = 17.0;
CTFontDescriptorRef descLatin = CTFontDescriptorCreateWithNameAndSize(CFSTR("TimesNewRomanPSMT"), pointSize);
CTFontDescriptorRef descZh = CTFontDescriptorCreateWithNameAndSize(CFSTR("STHeitiSC-Light"), pointSize);
NSArray *cascade = [NSArray arrayWithObjects:(id)descLatin, (id)descZh, nil];
NSDictionary *attrs = [NSDictionary dictionaryWithObject:cascade forKey:(id)kCTFontCascadeListAttribute];
CTFontDescriptorRef desc = CTFontDescriptorCreateWithAttributes((CFDictionaryRef)attrs);
CTFontRef font = CTFontCreateWithFontDescriptor(desc, pointSize, NULL);
// use the font
...
CFRelease(descLatin);
@cxa
cxa / NSUserDefaults
Created September 12, 2011 02:22
NSUserDefaults shortcut
#define DEFAULTS(type, key) ([[NSUserDefaults standardUserDefaults] type##ForKey:key])
#define SET_DEFAULTS(Type, key, val) do {\
[[NSUserDefaults standardUserDefaults] set##Type:val forKey:key];\
[[NSUserDefaults standardUserDefaults] synchronize];\
} while (0)
@cxa
cxa / toChineseNumer.m
Created May 28, 2011 12:46
Convert Arabic number to Chinese
#define CHAR_MAX 32
NSString* toChineseNumer(NSUInteger num){
static NSString *cnums = @"〇一二三四五六七八九";
unichar ch[32];
int i = 0;
do ch[i++] = [cnums characterAtIndex:num%10];
while ((num /= 10) > 0);