Revision: 3097
http://skim-app.svn.sourceforge.net/skim-app/?rev=3097&view=rev
Author: hofman
Date: 2007-10-30 05:54:45 -0700 (Tue, 30 Oct 2007)
Log Message:
-----------
Add hidden default for font size used in text tables.
Modified Paths:
--------------
trunk/SKFindTableView.m
trunk/SKMainWindowController.m
trunk/SKNoteOutlineView.m
trunk/SKNotesDocument.m
trunk/SKOutlineView.m
trunk/SKTableView.m
trunk/SKTocOutlineView.m
Modified: trunk/SKFindTableView.m
===================================================================
--- trunk/SKFindTableView.m 2007-10-30 11:54:58 UTC (rev 3096)
+++ trunk/SKFindTableView.m 2007-10-30 12:54:45 UTC (rev 3097)
@@ -47,6 +47,12 @@
[super dealloc];
}
+- (void)awakeFromNib {
+ NSNumber *fontSize = [[NSUserDefaults standardUserDefaults]
objectForKey:@"SKTableFontSize"];
+ if (fontSize)
+ [self setFont:[NSFont systemFontOfSize:[fontSize floatValue]]];
+}
+
- (void)removeTrackingRects {
if (trackingRects) {
CFIndex idx = CFArrayGetCount(trackingRects);
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2007-10-30 11:54:58 UTC (rev 3096)
+++ trunk/SKMainWindowController.m 2007-10-30 12:54:45 UTC (rev 3097)
@@ -3444,16 +3444,12 @@
}
- (float)outlineView:(NSOutlineView *)ov heightOfRowByItem:(id)item {
- if ([ov isEqual:outlineView]) {
- return [ov rowHeight];
- } else if ([ov isEqual:noteOutlineView]) {
+ if ([ov isEqual:noteOutlineView]) {
// the item is an opaque wrapper object used for binding. The actual
note is is given by -observedeObject. I don't know of any alternative (read
public) way to get the actual item
- if ([item respondsToSelector:@selector(rowHeight)] == NO)
- return 17.0;
- else
+ if ([item respondsToSelector:@selector(rowHeight)])
return [item rowHeight];
}
- return 17.0;
+ return [ov rowHeight];
}
- (BOOL)outlineView:(NSOutlineView *)ov canResizeRowByItem:(id)item {
@@ -3591,9 +3587,10 @@
}
- (void)autoSizeNoteRows:(id)sender {
+ float rowHeight = [noteOutlineView rowHeight];
NSTableColumn *tableColumn = [noteOutlineView
tableColumnWithIdentifier:@"note"];
id cell = [tableColumn dataCell];
- float width = NSWidth([cell drawingRectForBounds:NSMakeRect(0.0, 0.0,
[tableColumn width] - 17.0, 17.0)]);
+ float width = NSWidth([cell drawingRectForBounds:NSMakeRect(0.0, 0.0,
[tableColumn width] - 17.0, rowHeight)]);
NSSize size = NSMakeSize(width, FLT_MAX);
NSMutableArray *items = [NSMutableArray array];
@@ -3615,7 +3612,7 @@
[cell setObjectValue:[item string]];
NSAttributedString *attrString = [cell attributedStringValue];
NSRect rect = [attrString boundingRectWithSize:size
options:NSStringDrawingUsesLineFragmentOrigin];
- [item setRowHeight:fmaxf(NSHeight(rect) + 3.0, 19.0)];
+ [item setRowHeight:fmaxf(NSHeight(rect) + 3.0, rowHeight + 2.0)];
row = [noteOutlineView rowForItem:item];
if (row != -1)
[rowIndexes addIndex:row];
@@ -3733,7 +3730,7 @@
else
return fmaxf(32.0, fminf(cellSize.width, thumbSize.width) *
thumbSize.height / thumbSize.width);
}
- return 17.0;
+ return [tv rowHeight];
}
- (void)tableView:(NSTableView *)tv deleteRowsWithIndexes:(NSIndexSet
*)rowIndexes {
Modified: trunk/SKNoteOutlineView.m
===================================================================
--- trunk/SKNoteOutlineView.m 2007-10-30 11:54:58 UTC (rev 3096)
+++ trunk/SKNoteOutlineView.m 2007-10-30 12:54:45 UTC (rev 3097)
@@ -52,6 +52,9 @@
- (void)awakeFromNib {
[self noteTypeMenu]; // this sets the menu for the header view
+ NSNumber *fontSize = [[NSUserDefaults standardUserDefaults]
objectForKey:@"SKTableFontSize"];
+ if (fontSize)
+ [self setFont:[NSFont systemFontOfSize:[fontSize floatValue]]];
}
- (BOOL)resizeRow:(int)row withEvent:(NSEvent *)theEvent {
Modified: trunk/SKNotesDocument.m
===================================================================
--- trunk/SKNotesDocument.m 2007-10-30 11:54:58 UTC (rev 3096)
+++ trunk/SKNotesDocument.m 2007-10-30 12:54:45 UTC (rev 3097)
@@ -145,7 +145,7 @@
[note setValue:contents forKey:@"contents"];
[contents release];
}
- [note setObject:[NSNumber numberWithFloat:19.0]
forKey:@"rowHeight"];
+ [note setObject:[NSNumber numberWithFloat:[outlineView rowHeight]
+ 2.0] forKey:@"rowHeight"];
[newNotes addObject:note];
[note release];
@@ -228,9 +228,10 @@
}
- (void)autoSizeNoteRows:(id)sender {
+ float rowHeight = [outlineView rowHeight];
NSTableColumn *tableColumn = [outlineView
tableColumnWithIdentifier:@"note"];
id cell = [tableColumn dataCell];
- float width = NSWidth([cell drawingRectForBounds:NSMakeRect(0.0, 0.0,
[tableColumn width] - 17.0, 17.0)]);
+ float width = NSWidth([cell drawingRectForBounds:NSMakeRect(0.0, 0.0,
[tableColumn width] - 17.0, rowHeight)]);
NSSize size = NSMakeSize(width, FLT_MAX);
NSMutableArray *items = [NSMutableArray array];
@@ -252,7 +253,7 @@
[cell setObjectValue:[item valueForKey:@"string"]];
NSAttributedString *attrString = [cell attributedStringValue];
NSRect rect = [attrString boundingRectWithSize:size
options:NSStringDrawingUsesLineFragmentOrigin];
- [item setValue:[NSNumber numberWithFloat:fmaxf(NSHeight(rect) + 3.0,
19.0)] forKey:@"rowHeight"];
+ [item setValue:[NSNumber numberWithFloat:fmaxf(NSHeight(rect) + 3.0,
rowHeight + 2.0)] forKey:@"rowHeight"];
row = [outlineView rowForItem:item];
if (row != -1)
[rowIndexes addIndex:row];
@@ -396,7 +397,7 @@
- (float)outlineView:(NSOutlineView *)ov heightOfRowByItem:(id)item {
NSNumber *heightNumber = [item valueForKey:@"rowHeight"];
- return heightNumber ? [heightNumber floatValue] : 17.0;
+ return heightNumber ? [heightNumber floatValue] : [ov rowHeight];
}
- (void)outlineView:(NSOutlineView *)ov setHeightOfRow:(int)newHeight
byItem:(id)item {
Modified: trunk/SKOutlineView.m
===================================================================
--- trunk/SKOutlineView.m 2007-10-30 11:54:58 UTC (rev 3096)
+++ trunk/SKOutlineView.m 2007-10-30 12:54:45 UTC (rev 3097)
@@ -186,4 +186,25 @@
[[self dataSource] outlineView:self dragEndedWithOperation:operation];
}
+- (NSFont *)font {
+ NSArray *tableColumns = [self tableColumns];
+ return [tableColumns count] ? [[(NSTableColumn *)[tableColumns
objectAtIndex:0] dataCell] font] : nil;
+}
+
+- (void)setFont:(NSFont *)font {
+ static NSLayoutManager *layoutManager = nil;
+ if (layoutManager == nil) {
+ layoutManager = [[NSLayoutManager alloc] init];
+ [layoutManager
setTypesetterBehavior:NSTypesetterBehavior_10_2_WithCompatibility];
+ }
+
+ NSEnumerator *tcEnum = [[self tableColumns] objectEnumerator];
+ NSTableColumn *tc;
+
+ while (tc = [tcEnum nextObject])
+ [[tc dataCell] setFont:font];
+
+ [self setRowHeight:[layoutManager defaultLineHeightForFont:font]];
+}
+
@end
Modified: trunk/SKTableView.m
===================================================================
--- trunk/SKTableView.m 2007-10-30 11:54:58 UTC (rev 3096)
+++ trunk/SKTableView.m 2007-10-30 12:54:45 UTC (rev 3097)
@@ -159,4 +159,25 @@
return menu;
}
+- (NSFont *)font {
+ NSArray *tableColumns = [self tableColumns];
+ return [tableColumns count] ? [[(NSTableColumn *)[tableColumns
objectAtIndex:0] dataCell] font] : nil;
+}
+
+- (void)setFont:(NSFont *)font {
+ static NSLayoutManager *layoutManager = nil;
+ if (layoutManager == nil) {
+ layoutManager = [[NSLayoutManager alloc] init];
+ [layoutManager
setTypesetterBehavior:NSTypesetterBehavior_10_2_WithCompatibility];
+ }
+
+ NSEnumerator *tcEnum = [[self tableColumns] objectEnumerator];
+ NSTableColumn *tc;
+
+ while (tc = [tcEnum nextObject])
+ [[tc dataCell] setFont:font];
+
+ [self setRowHeight:[layoutManager defaultLineHeightForFont:font]];
+}
+
@end
Modified: trunk/SKTocOutlineView.m
===================================================================
--- trunk/SKTocOutlineView.m 2007-10-30 11:54:58 UTC (rev 3096)
+++ trunk/SKTocOutlineView.m 2007-10-30 12:54:45 UTC (rev 3097)
@@ -49,6 +49,12 @@
[super dealloc];
}
+- (void)awakeFromNib {
+ NSNumber *fontSize = [[NSUserDefaults standardUserDefaults]
objectForKey:@"SKTableFontSize"];
+ if (fontSize)
+ [self setFont:[NSFont systemFontOfSize:[fontSize floatValue]]];
+}
+
- (NSColor *)backgroundColor {
return [NSColor tableBackgroundColor];
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit