diff --git a/camino/PreferencePanes/Appearance/Appearance.h b/camino/PreferencePanes/Appearance/Appearance.h index 107f91a11b9..ceb65b11328 100644 --- a/camino/PreferencePanes/Appearance/Appearance.h +++ b/camino/PreferencePanes/Appearance/Appearance.h @@ -25,6 +25,7 @@ IBOutlet NSTextField *fontSampleSerif; IBOutlet NSTextField *fontSampleSansSerif; IBOutlet NSTextField *fontSampleMonospace; + IBOutlet NSTextField *fontSampleCursive; NSArray *regionMappingTable; } diff --git a/camino/PreferencePanes/Appearance/Appearance.mm b/camino/PreferencePanes/Appearance/Appearance.mm index c8e69d1261a..74de10a2027 100644 --- a/camino/PreferencePanes/Appearance/Appearance.mm +++ b/camino/PreferencePanes/Appearance/Appearance.mm @@ -13,10 +13,6 @@ #include "nsIPref.h" #include "nsIMemory.h" -// Use a category to put a changeFont message onto the tab view -@interface NSTabView (FontManagerDelegate) -- (void)changeFont:(id)sender; -@end @interface OrgMozillaChimeraPreferenceAppearance(Private) @@ -41,6 +37,7 @@ @end + @implementation OrgMozillaChimeraPreferenceAppearance - (void) dealloc @@ -48,6 +45,12 @@ [regionMappingTable release]; } +- (id)initWithBundle:(NSBundle *)bundle +{ + self = [super initWithBundle:bundle]; + return self; +} + - (void) mainViewDidLoad { BOOL gotPref; @@ -65,7 +68,10 @@ [colorwellVisitedLinks setColor:[self getColorPref:"browser.visited_color" withSuccess:&gotPref]]; [self setupFontRegionTable]; - [NSFontManager sharedFontManager]; + + // prep the font panel + NSFontPanel *fontPanel = [[NSFontManager sharedFontManager] fontPanel:YES]; + //[fontPanel setBecomesKeyOnlyIfNeeded:NO]; } - (void)willUnselect @@ -85,8 +91,12 @@ regionMappingTable = [[NSArray arrayWithContentsOfFile:resPath] retain]; [self loadFontPrefs]; - + [tableViewFontRegion reloadData]; + + if ([tableViewFontRegion selectedRow] == 0) + [tableViewFontRegion selectRow:-1 byExtendingSelection:NO]; // make sure the next line triggers a change + [tableViewFontRegion selectRow:0 byExtendingSelection:NO]; // trigger initial setup } @@ -122,7 +132,9 @@ - (IBAction)fontChoiceButtonClicked:(id)sender { [self syncFontPanel]; - [[NSFontManager sharedFontManager] orderFrontFontPanel:self]; + + NSFontPanel *fontPanel = [[NSFontManager sharedFontManager] fontPanel:YES]; + [fontPanel makeKeyAndOrderFront:self]; } - (IBAction)fontRegionListClicked:(id)sender @@ -140,26 +152,33 @@ /* For each region in the array, there is a dictionary of { - region = code = + region = (from localized strings file) to which we add here a sub-dictionary per font type, thus: serif = { - fontname = - fontsize = + fontfamily = Times-Regular + fontsize = 16 } sans-serif = { - fontname = + fontfamily = fontsize = missing = // set if a font is missing } monospace = { - fontname = + fontfamily = + fontsize = + } + cursive = { + fontfamily = fontsize = } } */ + NSString *regionName = NSLocalizedStringFromTableInBundle(regionCode, @"RegionNames", + [NSBundle bundleForClass:[OrgMozillaChimeraPreferenceAppearance class]], @""); + [regionDict setObject:regionName forKey:@"region"]; NSMutableDictionary *serifDict = [self makeDictFromPrefsForFontType:@"serif" andRegion:regionCode]; [regionDict setObject:serifDict forKey:@"serif"]; @@ -169,6 +188,9 @@ NSMutableDictionary *monoDict = [self makeDictFromPrefsForFontType:@"monospace" andRegion:regionCode]; [regionDict setObject:monoDict forKey:@"monospace"]; + + NSMutableDictionary *cursDict = [self makeDictFromPrefsForFontType:@"cursive" andRegion:regionCode]; + [regionDict setObject:cursDict forKey:@"cursive"]; } } @@ -185,6 +207,7 @@ [self saveToPrefsEntriesInDict:(NSDictionary*)regionDict forFontType:@"serif"]; [self saveToPrefsEntriesInDict:(NSDictionary*)regionDict forFontType:@"sans-serif"]; [self saveToPrefsEntriesInDict:(NSDictionary*)regionDict forFontType:@"monospace"]; + [self saveToPrefsEntriesInDict:(NSDictionary*)regionDict forFontType:@"cursive"]; } } @@ -206,7 +229,7 @@ if (gotPref && gotSize) { - [fontDict setObject:fontName forKey:@"fontname"]; + [fontDict setObject:fontName forKey:@"fontfamily"]; [fontDict setObject:[NSNumber numberWithInt:fontSize] forKey:@"fontsize"]; } @@ -220,7 +243,7 @@ if (!fontTypeDict || !regionCode) return; - NSString *fontName = [fontTypeDict objectForKey:@"fontname"]; + NSString *fontName = [fontTypeDict objectForKey:@"fontfamily"]; int fontSize = [[fontTypeDict objectForKey:@"fontsize"] intValue]; NSString *fontPrefName = [NSString stringWithFormat:@"font.name.%@.%@", fontType, regionCode]; @@ -249,7 +272,7 @@ if (theFont) { - [fontTypeDict setObject:[theFont familyName] forKey:@"fontname"]; + [fontTypeDict setObject:[theFont familyName] forKey:@"fontfamily"]; [fontTypeDict setObject:[NSNumber numberWithInt:(int)[theFont pointSize]] forKey:@"fontsize"]; } } @@ -257,15 +280,20 @@ - (NSFont*)getFontOfType:(NSString*)fontType fromDict:(NSDictionary*)regionDict; { NSDictionary *fontTypeDict = [regionDict objectForKey:fontType]; - NSString *fontName = [fontTypeDict objectForKey:@"fontname"]; + NSString *fontName = [fontTypeDict objectForKey:@"fontfamily"]; int fontSize = [[fontTypeDict objectForKey:@"fontsize"] intValue]; NSFont *returnFont = nil; if (fontName && fontSize > 0) - returnFont = [NSFont fontWithName:fontName size:fontSize]; + { + // we can't use [NSFont fontWithName] here, because we only store font + // family names in the prefs file. So use the font manager instead + // returnFont = [NSFont fontWithName:fontName size:fontSize]; + returnFont = [[NSFontManager sharedFontManager] fontWithFamily:fontName traits:0 weight:5 size:fontSize]; + } else if (fontName) // no size - returnFont = [NSFont fontWithName:fontName size:16.0]; + returnFont = [[NSFontManager sharedFontManager] fontWithFamily:fontName traits:0 weight:5 size:16.0]; /* if (returnFont == nil) @@ -283,6 +311,7 @@ [self setupFontSampleOfType:@"serif" fromDict:regionDict]; [self setupFontSampleOfType:@"sans-serif" fromDict:regionDict]; [self setupFontSampleOfType:@"monospace" fromDict:regionDict]; + [self setupFontSampleOfType:@"cursive" fromDict:regionDict]; } - (void)setupFontSampleOfType:(NSString*)fontType fromDict:(NSDictionary*)regionDict; @@ -297,14 +326,14 @@ // a string to display from the dict. NSMutableDictionary *fontTypeDict = [regionDict objectForKey:fontType]; - NSTextField *textField = [self getFontSampleForType:fontType]; + NSTextField *sampleCell = [self getFontSampleForType:fontType]; NSString *displayString = nil; if (font == nil) { if (regionDict) { - NSString *fontName = [fontTypeDict objectForKey:@"fontname"]; + NSString *fontName = [fontTypeDict objectForKey:@"fontfamily"]; int fontSize = [[fontTypeDict objectForKey:@"fontsize"] intValue]; // XXX localize @@ -338,8 +367,8 @@ [fontTypeDict removeObjectForKey:@"missing"]; } - [textField setFont:font]; - [textField setStringValue:displayString]; + [sampleCell setFont:font]; + [sampleCell setStringValue:displayString]; } - (void)updateFontSampleOfType:(NSString *)fontType @@ -350,8 +379,8 @@ NSMutableDictionary *regionDict = [regionMappingTable objectAtIndex:selectedRow]; - NSTextField *textField = [self getFontSampleForType:fontType]; - NSFont *sampleFont = [[NSFontManager sharedFontManager] convertFont:[textField font]]; + NSTextField *sampleCell = [self getFontSampleForType:fontType]; + NSFont *sampleFont = [[NSFontManager sharedFontManager] convertFont:[sampleCell font]]; [self setFontSampleOfType:fontType withFont:sampleFont andDict:regionDict]; } @@ -367,6 +396,9 @@ if ([fontType isEqualToString:@"monospace"]) return fontSampleMonospace; + if ([fontType isEqualToString:@"cursive"]) + return fontSampleCursive; + return nil; } @@ -389,6 +421,7 @@ [self saveFontsToDict:regionDict forFontType:@"serif"]; [self saveFontsToDict:regionDict forFontType:@"sans-serif"]; [self saveFontsToDict:regionDict forFontType:@"monospace"]; + [self saveFontsToDict:regionDict forFontType:@"cursive"]; } @end @@ -397,8 +430,6 @@ - (void)tableViewSelectionDidChange:(NSNotification *)aNotification { - NSLog(@"Table selection changed"); - if ([aNotification object] != tableViewFontRegion) return; @@ -459,21 +490,3 @@ } @end - -// Use a category to put a changeFont message onto the tab view (since this -// is guaranteed to be in the repsonder chain. We've set the tab view's delegate -// to be the file's owner in IB, so we just forward the message. -@implementation NSTabView (FontManagerDelegate) - -- (void)changeFont:(id)sender -{ - [[self delegate] changeFont:sender]; -} - -- (BOOL)fontManager:(id)theFontManager willIncludeFont:(NSString *)fontName -{ - NSLog(@"willIncludeFont called"); - return YES; -} - -@end diff --git a/camino/PreferencePanes/Appearance/Appearance.nib/classes.nib b/camino/PreferencePanes/Appearance/Appearance.nib/classes.nib index 29d3eda1463..45add191f65 100644 --- a/camino/PreferencePanes/Appearance/Appearance.nib/classes.nib +++ b/camino/PreferencePanes/Appearance/Appearance.nib/classes.nib @@ -1,7 +1,13 @@ { IBClasses = ( {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - {CLASS = FontChangeReceiver; LANGUAGE = ObjC; SUPERCLASS = NSView; }, + { + ACTIONS = {}; + CLASS = FontReceiverView; + LANGUAGE = ObjC; + OUTLETS = {delegate = id; }; + SUPERCLASS = NSView; + }, { CLASS = NSPreferencePane; LANGUAGE = ObjC; @@ -24,6 +30,7 @@ colorwellTextColor = NSColorWell; colorwellUnvisitedLinks = NSColorWell; colorwellVisitedLinks = NSColorWell; + fontSampleCursive = NSTextField; fontSampleMonospace = NSTextField; fontSampleSansSerif = NSTextField; fontSampleSerif = NSTextField; diff --git a/camino/PreferencePanes/Appearance/Appearance.nib/objects.nib b/camino/PreferencePanes/Appearance/Appearance.nib/objects.nib index 8c84ce7846c..ef10a55956f 100644 Binary files a/camino/PreferencePanes/Appearance/Appearance.nib/objects.nib and b/camino/PreferencePanes/Appearance/Appearance.nib/objects.nib differ diff --git a/camino/PreferencePanes/Appearance/English.lproj/Appearance.nib/classes.nib b/camino/PreferencePanes/Appearance/English.lproj/Appearance.nib/classes.nib index 29d3eda1463..45add191f65 100644 --- a/camino/PreferencePanes/Appearance/English.lproj/Appearance.nib/classes.nib +++ b/camino/PreferencePanes/Appearance/English.lproj/Appearance.nib/classes.nib @@ -1,7 +1,13 @@ { IBClasses = ( {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - {CLASS = FontChangeReceiver; LANGUAGE = ObjC; SUPERCLASS = NSView; }, + { + ACTIONS = {}; + CLASS = FontReceiverView; + LANGUAGE = ObjC; + OUTLETS = {delegate = id; }; + SUPERCLASS = NSView; + }, { CLASS = NSPreferencePane; LANGUAGE = ObjC; @@ -24,6 +30,7 @@ colorwellTextColor = NSColorWell; colorwellUnvisitedLinks = NSColorWell; colorwellVisitedLinks = NSColorWell; + fontSampleCursive = NSTextField; fontSampleMonospace = NSTextField; fontSampleSansSerif = NSTextField; fontSampleSerif = NSTextField; diff --git a/camino/PreferencePanes/Appearance/English.lproj/Appearance.nib/objects.nib b/camino/PreferencePanes/Appearance/English.lproj/Appearance.nib/objects.nib index 8c84ce7846c..ef10a55956f 100644 Binary files a/camino/PreferencePanes/Appearance/English.lproj/Appearance.nib/objects.nib and b/camino/PreferencePanes/Appearance/English.lproj/Appearance.nib/objects.nib differ diff --git a/camino/PreferencePanes/Appearance/English.lproj/RegionNames.strings b/camino/PreferencePanes/Appearance/English.lproj/RegionNames.strings new file mode 100644 index 00000000000..51c88d75264 --- /dev/null +++ b/camino/PreferencePanes/Appearance/English.lproj/RegionNames.strings @@ -0,0 +1,15 @@ +"x-western" = "Western"; +"x-central-euro" = "Central European"; +"x-cyrillic" = "Cyrillic"; +"x-baltic" = "Baltic"; +"el" = "Greek"; +"tr" = "Turkish"; +"he" = "Hebrew"; +"ar" = "Arabic"; +"ko" = "Korean"; +"th" = "Thai"; +"zh-TW" = "Traditional Chinese"; +"zh-CN" = "Simplified Chinese"; +"ja" = "Japanese"; +"x-unicode" = "Unicode"; +"x-user-def" = "User-Defined"; diff --git a/camino/PreferencePanes/Appearance/RegionMapping.plist b/camino/PreferencePanes/Appearance/RegionMapping.plist index 249ea228a0a..75f4d380788 100644 --- a/camino/PreferencePanes/Appearance/RegionMapping.plist +++ b/camino/PreferencePanes/Appearance/RegionMapping.plist @@ -1,62 +1,47 @@ ( { - region = "Western"; code = "x-western"; }, { - region = "Central European"; code = "x-central-euro"; }, { - region = "Japanese"; - code = "ja"; - }, - { - region = "Traditional Chinese"; - code = "zh-TW"; - }, - { - region = "Simplified Chinese"; - code = "zh-CN"; - }, - { - region = "Korean"; - code = "ko"; - }, - { - region = "Cyrillic"; code = "x-cyrillic"; }, { - region = "Baltic"; code = "x-baltic"; }, { - region = "Greek"; code = "el"; }, { - region = "Turkish"; code = "tr"; }, { - region = "Unicode"; - code = "x-unicode"; - }, - { - region = "User-Defined"; - code = "x-user-def"; - }, - { - region = "Thai"; - code = "th"; - }, - { - region = "Hebrew"; code = "he"; }, { - region = "Arabic"; code = "ar"; + }, + { + code = "ko"; + }, + { + code = "th"; + }, + { + code = "zh-TW"; + }, + { + code = "zh-CN"; + }, + { + code = "ja"; + }, + { + code = "x-unicode"; + }, + { + code = "x-user-def"; } ) diff --git a/chimera/PreferencePanes/Appearance/Appearance.h b/chimera/PreferencePanes/Appearance/Appearance.h index 107f91a11b9..ceb65b11328 100644 --- a/chimera/PreferencePanes/Appearance/Appearance.h +++ b/chimera/PreferencePanes/Appearance/Appearance.h @@ -25,6 +25,7 @@ IBOutlet NSTextField *fontSampleSerif; IBOutlet NSTextField *fontSampleSansSerif; IBOutlet NSTextField *fontSampleMonospace; + IBOutlet NSTextField *fontSampleCursive; NSArray *regionMappingTable; } diff --git a/chimera/PreferencePanes/Appearance/Appearance.mm b/chimera/PreferencePanes/Appearance/Appearance.mm index c8e69d1261a..74de10a2027 100644 --- a/chimera/PreferencePanes/Appearance/Appearance.mm +++ b/chimera/PreferencePanes/Appearance/Appearance.mm @@ -13,10 +13,6 @@ #include "nsIPref.h" #include "nsIMemory.h" -// Use a category to put a changeFont message onto the tab view -@interface NSTabView (FontManagerDelegate) -- (void)changeFont:(id)sender; -@end @interface OrgMozillaChimeraPreferenceAppearance(Private) @@ -41,6 +37,7 @@ @end + @implementation OrgMozillaChimeraPreferenceAppearance - (void) dealloc @@ -48,6 +45,12 @@ [regionMappingTable release]; } +- (id)initWithBundle:(NSBundle *)bundle +{ + self = [super initWithBundle:bundle]; + return self; +} + - (void) mainViewDidLoad { BOOL gotPref; @@ -65,7 +68,10 @@ [colorwellVisitedLinks setColor:[self getColorPref:"browser.visited_color" withSuccess:&gotPref]]; [self setupFontRegionTable]; - [NSFontManager sharedFontManager]; + + // prep the font panel + NSFontPanel *fontPanel = [[NSFontManager sharedFontManager] fontPanel:YES]; + //[fontPanel setBecomesKeyOnlyIfNeeded:NO]; } - (void)willUnselect @@ -85,8 +91,12 @@ regionMappingTable = [[NSArray arrayWithContentsOfFile:resPath] retain]; [self loadFontPrefs]; - + [tableViewFontRegion reloadData]; + + if ([tableViewFontRegion selectedRow] == 0) + [tableViewFontRegion selectRow:-1 byExtendingSelection:NO]; // make sure the next line triggers a change + [tableViewFontRegion selectRow:0 byExtendingSelection:NO]; // trigger initial setup } @@ -122,7 +132,9 @@ - (IBAction)fontChoiceButtonClicked:(id)sender { [self syncFontPanel]; - [[NSFontManager sharedFontManager] orderFrontFontPanel:self]; + + NSFontPanel *fontPanel = [[NSFontManager sharedFontManager] fontPanel:YES]; + [fontPanel makeKeyAndOrderFront:self]; } - (IBAction)fontRegionListClicked:(id)sender @@ -140,26 +152,33 @@ /* For each region in the array, there is a dictionary of { - region = code = + region = (from localized strings file) to which we add here a sub-dictionary per font type, thus: serif = { - fontname = - fontsize = + fontfamily = Times-Regular + fontsize = 16 } sans-serif = { - fontname = + fontfamily = fontsize = missing = // set if a font is missing } monospace = { - fontname = + fontfamily = + fontsize = + } + cursive = { + fontfamily = fontsize = } } */ + NSString *regionName = NSLocalizedStringFromTableInBundle(regionCode, @"RegionNames", + [NSBundle bundleForClass:[OrgMozillaChimeraPreferenceAppearance class]], @""); + [regionDict setObject:regionName forKey:@"region"]; NSMutableDictionary *serifDict = [self makeDictFromPrefsForFontType:@"serif" andRegion:regionCode]; [regionDict setObject:serifDict forKey:@"serif"]; @@ -169,6 +188,9 @@ NSMutableDictionary *monoDict = [self makeDictFromPrefsForFontType:@"monospace" andRegion:regionCode]; [regionDict setObject:monoDict forKey:@"monospace"]; + + NSMutableDictionary *cursDict = [self makeDictFromPrefsForFontType:@"cursive" andRegion:regionCode]; + [regionDict setObject:cursDict forKey:@"cursive"]; } } @@ -185,6 +207,7 @@ [self saveToPrefsEntriesInDict:(NSDictionary*)regionDict forFontType:@"serif"]; [self saveToPrefsEntriesInDict:(NSDictionary*)regionDict forFontType:@"sans-serif"]; [self saveToPrefsEntriesInDict:(NSDictionary*)regionDict forFontType:@"monospace"]; + [self saveToPrefsEntriesInDict:(NSDictionary*)regionDict forFontType:@"cursive"]; } } @@ -206,7 +229,7 @@ if (gotPref && gotSize) { - [fontDict setObject:fontName forKey:@"fontname"]; + [fontDict setObject:fontName forKey:@"fontfamily"]; [fontDict setObject:[NSNumber numberWithInt:fontSize] forKey:@"fontsize"]; } @@ -220,7 +243,7 @@ if (!fontTypeDict || !regionCode) return; - NSString *fontName = [fontTypeDict objectForKey:@"fontname"]; + NSString *fontName = [fontTypeDict objectForKey:@"fontfamily"]; int fontSize = [[fontTypeDict objectForKey:@"fontsize"] intValue]; NSString *fontPrefName = [NSString stringWithFormat:@"font.name.%@.%@", fontType, regionCode]; @@ -249,7 +272,7 @@ if (theFont) { - [fontTypeDict setObject:[theFont familyName] forKey:@"fontname"]; + [fontTypeDict setObject:[theFont familyName] forKey:@"fontfamily"]; [fontTypeDict setObject:[NSNumber numberWithInt:(int)[theFont pointSize]] forKey:@"fontsize"]; } } @@ -257,15 +280,20 @@ - (NSFont*)getFontOfType:(NSString*)fontType fromDict:(NSDictionary*)regionDict; { NSDictionary *fontTypeDict = [regionDict objectForKey:fontType]; - NSString *fontName = [fontTypeDict objectForKey:@"fontname"]; + NSString *fontName = [fontTypeDict objectForKey:@"fontfamily"]; int fontSize = [[fontTypeDict objectForKey:@"fontsize"] intValue]; NSFont *returnFont = nil; if (fontName && fontSize > 0) - returnFont = [NSFont fontWithName:fontName size:fontSize]; + { + // we can't use [NSFont fontWithName] here, because we only store font + // family names in the prefs file. So use the font manager instead + // returnFont = [NSFont fontWithName:fontName size:fontSize]; + returnFont = [[NSFontManager sharedFontManager] fontWithFamily:fontName traits:0 weight:5 size:fontSize]; + } else if (fontName) // no size - returnFont = [NSFont fontWithName:fontName size:16.0]; + returnFont = [[NSFontManager sharedFontManager] fontWithFamily:fontName traits:0 weight:5 size:16.0]; /* if (returnFont == nil) @@ -283,6 +311,7 @@ [self setupFontSampleOfType:@"serif" fromDict:regionDict]; [self setupFontSampleOfType:@"sans-serif" fromDict:regionDict]; [self setupFontSampleOfType:@"monospace" fromDict:regionDict]; + [self setupFontSampleOfType:@"cursive" fromDict:regionDict]; } - (void)setupFontSampleOfType:(NSString*)fontType fromDict:(NSDictionary*)regionDict; @@ -297,14 +326,14 @@ // a string to display from the dict. NSMutableDictionary *fontTypeDict = [regionDict objectForKey:fontType]; - NSTextField *textField = [self getFontSampleForType:fontType]; + NSTextField *sampleCell = [self getFontSampleForType:fontType]; NSString *displayString = nil; if (font == nil) { if (regionDict) { - NSString *fontName = [fontTypeDict objectForKey:@"fontname"]; + NSString *fontName = [fontTypeDict objectForKey:@"fontfamily"]; int fontSize = [[fontTypeDict objectForKey:@"fontsize"] intValue]; // XXX localize @@ -338,8 +367,8 @@ [fontTypeDict removeObjectForKey:@"missing"]; } - [textField setFont:font]; - [textField setStringValue:displayString]; + [sampleCell setFont:font]; + [sampleCell setStringValue:displayString]; } - (void)updateFontSampleOfType:(NSString *)fontType @@ -350,8 +379,8 @@ NSMutableDictionary *regionDict = [regionMappingTable objectAtIndex:selectedRow]; - NSTextField *textField = [self getFontSampleForType:fontType]; - NSFont *sampleFont = [[NSFontManager sharedFontManager] convertFont:[textField font]]; + NSTextField *sampleCell = [self getFontSampleForType:fontType]; + NSFont *sampleFont = [[NSFontManager sharedFontManager] convertFont:[sampleCell font]]; [self setFontSampleOfType:fontType withFont:sampleFont andDict:regionDict]; } @@ -367,6 +396,9 @@ if ([fontType isEqualToString:@"monospace"]) return fontSampleMonospace; + if ([fontType isEqualToString:@"cursive"]) + return fontSampleCursive; + return nil; } @@ -389,6 +421,7 @@ [self saveFontsToDict:regionDict forFontType:@"serif"]; [self saveFontsToDict:regionDict forFontType:@"sans-serif"]; [self saveFontsToDict:regionDict forFontType:@"monospace"]; + [self saveFontsToDict:regionDict forFontType:@"cursive"]; } @end @@ -397,8 +430,6 @@ - (void)tableViewSelectionDidChange:(NSNotification *)aNotification { - NSLog(@"Table selection changed"); - if ([aNotification object] != tableViewFontRegion) return; @@ -459,21 +490,3 @@ } @end - -// Use a category to put a changeFont message onto the tab view (since this -// is guaranteed to be in the repsonder chain. We've set the tab view's delegate -// to be the file's owner in IB, so we just forward the message. -@implementation NSTabView (FontManagerDelegate) - -- (void)changeFont:(id)sender -{ - [[self delegate] changeFont:sender]; -} - -- (BOOL)fontManager:(id)theFontManager willIncludeFont:(NSString *)fontName -{ - NSLog(@"willIncludeFont called"); - return YES; -} - -@end diff --git a/chimera/PreferencePanes/Appearance/Appearance.nib/classes.nib b/chimera/PreferencePanes/Appearance/Appearance.nib/classes.nib index 29d3eda1463..45add191f65 100644 --- a/chimera/PreferencePanes/Appearance/Appearance.nib/classes.nib +++ b/chimera/PreferencePanes/Appearance/Appearance.nib/classes.nib @@ -1,7 +1,13 @@ { IBClasses = ( {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - {CLASS = FontChangeReceiver; LANGUAGE = ObjC; SUPERCLASS = NSView; }, + { + ACTIONS = {}; + CLASS = FontReceiverView; + LANGUAGE = ObjC; + OUTLETS = {delegate = id; }; + SUPERCLASS = NSView; + }, { CLASS = NSPreferencePane; LANGUAGE = ObjC; @@ -24,6 +30,7 @@ colorwellTextColor = NSColorWell; colorwellUnvisitedLinks = NSColorWell; colorwellVisitedLinks = NSColorWell; + fontSampleCursive = NSTextField; fontSampleMonospace = NSTextField; fontSampleSansSerif = NSTextField; fontSampleSerif = NSTextField; diff --git a/chimera/PreferencePanes/Appearance/Appearance.nib/objects.nib b/chimera/PreferencePanes/Appearance/Appearance.nib/objects.nib index 8c84ce7846c..ef10a55956f 100644 Binary files a/chimera/PreferencePanes/Appearance/Appearance.nib/objects.nib and b/chimera/PreferencePanes/Appearance/Appearance.nib/objects.nib differ diff --git a/chimera/PreferencePanes/Appearance/English.lproj/Appearance.nib/classes.nib b/chimera/PreferencePanes/Appearance/English.lproj/Appearance.nib/classes.nib index 29d3eda1463..45add191f65 100644 --- a/chimera/PreferencePanes/Appearance/English.lproj/Appearance.nib/classes.nib +++ b/chimera/PreferencePanes/Appearance/English.lproj/Appearance.nib/classes.nib @@ -1,7 +1,13 @@ { IBClasses = ( {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - {CLASS = FontChangeReceiver; LANGUAGE = ObjC; SUPERCLASS = NSView; }, + { + ACTIONS = {}; + CLASS = FontReceiverView; + LANGUAGE = ObjC; + OUTLETS = {delegate = id; }; + SUPERCLASS = NSView; + }, { CLASS = NSPreferencePane; LANGUAGE = ObjC; @@ -24,6 +30,7 @@ colorwellTextColor = NSColorWell; colorwellUnvisitedLinks = NSColorWell; colorwellVisitedLinks = NSColorWell; + fontSampleCursive = NSTextField; fontSampleMonospace = NSTextField; fontSampleSansSerif = NSTextField; fontSampleSerif = NSTextField; diff --git a/chimera/PreferencePanes/Appearance/English.lproj/Appearance.nib/objects.nib b/chimera/PreferencePanes/Appearance/English.lproj/Appearance.nib/objects.nib index 8c84ce7846c..ef10a55956f 100644 Binary files a/chimera/PreferencePanes/Appearance/English.lproj/Appearance.nib/objects.nib and b/chimera/PreferencePanes/Appearance/English.lproj/Appearance.nib/objects.nib differ diff --git a/chimera/PreferencePanes/Appearance/English.lproj/RegionNames.strings b/chimera/PreferencePanes/Appearance/English.lproj/RegionNames.strings new file mode 100644 index 00000000000..e69de29bb2d diff --git a/chimera/PreferencePanes/Appearance/RegionMapping.plist b/chimera/PreferencePanes/Appearance/RegionMapping.plist index 249ea228a0a..e69de29bb2d 100644 --- a/chimera/PreferencePanes/Appearance/RegionMapping.plist +++ b/chimera/PreferencePanes/Appearance/RegionMapping.plist @@ -1,62 +0,0 @@ -( - { - region = "Western"; - code = "x-western"; - }, - { - region = "Central European"; - code = "x-central-euro"; - }, - { - region = "Japanese"; - code = "ja"; - }, - { - region = "Traditional Chinese"; - code = "zh-TW"; - }, - { - region = "Simplified Chinese"; - code = "zh-CN"; - }, - { - region = "Korean"; - code = "ko"; - }, - { - region = "Cyrillic"; - code = "x-cyrillic"; - }, - { - region = "Baltic"; - code = "x-baltic"; - }, - { - region = "Greek"; - code = "el"; - }, - { - region = "Turkish"; - code = "tr"; - }, - { - region = "Unicode"; - code = "x-unicode"; - }, - { - region = "User-Defined"; - code = "x-user-def"; - }, - { - region = "Thai"; - code = "th"; - }, - { - region = "Hebrew"; - code = "he"; - }, - { - region = "Arabic"; - code = "ar"; - } -)