NSMenuItem* menu = [glyphViewMenu itemAtIndex: 1];
NSMenu* p = [[NSMenu alloc] init];
- for (int i = 0; i <= [nm count]; i++) {
+ [p setAutoenablesItems: NO];
+ int i = 0;
+ do {
NSString* t = i == 0 ? @"default" : [nm objectAtIndex: i - 1];
NSMenuItem* m = [[NSMenuItem alloc] init];
[m setTitle: t];
+ [m setAction: @selector(changeFont:)];
+ [m setTarget: self];
+ [m setEnabled: YES];
[p addItem: m];
- }
+ } while (nm != NULL && ++i <= [nm count]);
[menu setSubmenu: p];
}
NSSize vsz = [glyphView bounds].size;
NSImage *m = [[NSImage alloc] initWithSize: vsz];
- NSSize ssz = [s sizeWithAttributes: [self genFontAttrDict: nil size: dummy]];
+ NSSize ssz = [s sizeWithAttributes: [self genFontAttrDict: currentFont size: dummy]];
float fsize = dummy *
(vsz.width >= vsz.height ? 1 / ssz.height * vsz.height :
1 / ssz.width * vsz.width);
- NSDictionary *attr = [self genFontAttrDict: nil size: fsize];
+ NSDictionary *attr = [self genFontAttrDict: currentFont size: fsize];
ssz = [s sizeWithAttributes: attr];
int margin = (vsz.width - ssz.width) / 2;
[m lockFocus];
}
}
+- (IBAction) changeFont: (id) sender {
+ currentFont = [sender title];
+ if (currentCharacter != nil) {
+ [self drawOnGlyphView: currentCharacter];
+ }
+}
+
@end
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="510"/>
- <integer value="57"/>
<integer value="471"/>
+ <integer value="518"/>
+ <integer value="57"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSWindowTemplate" id="376871716">
<int key="NSWindowStyleMask">15</int>
<int key="NSWindowBacking">2</int>
- <string key="NSWindowRect">{{10, 800}, {341, 122}}</string>
+ <string key="NSWindowRect">{{3, 855}, {341, 122}}</string>
<int key="NSWTFlags">603980800</int>
<string key="NSWindowTitle">chartool</string>
<string key="NSWindowClass">NSPanel</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{18, 855}, {341, 122}}</string>
+ <string>{{3, 855}, {341, 122}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{18, 855}, {341, 122}}</string>
+ <string>{{3, 855}, {341, 122}}</string>
<boolean value="YES"/>
<boolean value="YES"/>
<string>{341, 122}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{93, 926}, {86, 23}}</string>
+ <string>{{90, 926}, {83, 23}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <string>changeFont:</string>
<string>clickScriptButton:</string>
<string>copyGlyphCharacter:</string>
<string>search:</string>
<string>id</string>
<string>id</string>
<string>id</string>
+ <string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <string>changeFont:</string>
<string>clickScriptButton:</string>
<string>copyGlyphCharacter:</string>
<string>search:</string>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBActionInfo">
+ <string key="name">changeFont:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
<string key="name">clickScriptButton:</string>
<string key="candidateClassName">id</string>
</object>
JSStringRelease(nm);
}
+- (void) setValue: (const char*) value ToVariable: (const char*) name {
+ JSObjectRef object = JSContextGetGlobalObject(context);
+ JSStringRef nm = JSStringCreateWithUTF8CString(name);
+ JSValueRef var = JSValueMakeString(context, JSStringCreateWithUTF8CString(value));
+ JSObjectSetProperty(context, object, nm, var, kJSPropertyAttributeNone, NULL);
+ JSStringRelease(nm);
+}
+
- (void) setFunctions {
[self setFunction:(JSObjectCallAsFunctionCallback) jsAlert withName: "alert"];
[self setFunction:(JSObjectCallAsFunctionCallback) jsOpenFile withName: "openFile"];
- (void) loadScript {
NSString* script;
- NSString* path = @"./js/charpalette.js";
+ NSString* path = [[NSString alloc] initWithFormat: @"%@/.charpalette.js", NSHomeDirectory()];
NSError* error;
script = [NSString stringWithContentsOfFile: path encoding: NSUTF8StringEncoding error: &error];
if (script) {
[self evaluateScript: script];
[self setFunctions];
+ [self setValue: [NSHomeDirectory() UTF8String] ToVariable: "HOME"];
} else {
NSLog(@"the js file is not found");
}
- (NSArray *) getFontsNameArray {
NSString* v = [self evaluate: @"font"];
- NSArray* r = [v componentsSeparatedByString: @","];
+ if (! [v isEqualToString: @"[Exception]"]) {
+ NSArray* r = [v componentsSeparatedByString: @","];
- return r;
+ return r;
+ } else {
+ return NULL;
+ }
}
- (void) release {