Skip to content

Commit

Permalink
Changed metal table header back to old (buggy) implementation. Added …
Browse files Browse the repository at this point in the history
…Gus Mueller's code for a delicious: URL scheme (for making a "Post to Cocoalicious" bookmarklet).
  • Loading branch information
ldandersen committed Sep 17, 2005
1 parent e8a85ce commit f7dc4b4
Show file tree
Hide file tree
Showing 9 changed files with 115 additions and 160 deletions.
74 changes: 45 additions & 29 deletions Application/AppController.m
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ - (void) awakeFromNib {
}

- (void) applicationDidFinishLaunching: (NSNotification *) aNotification {
/* Support for bookmarklet type urls (added by Gus Mueller) */
[[NSAppleEventManager sharedAppleEventManager] setEventHandler: self andSelector: @selector(handleOpenURLAppleEvent:withReplyEvent:) forEventClass: kInternetEventClass andEventID:kAEGetURL];

/* Support for NetNewsWire External Weblog Editor Interface */
[[NSAppleEventManager sharedAppleEventManager] setEventHandler: self andSelector: @selector(postNewNNWLink:withReplyEvent:) forEventClass: DCNNWPostAppleEventClass andEventID: DCNNWPostAppleEventID];

Expand Down Expand Up @@ -128,37 +131,10 @@ - (void) setupTaglist {
[tagList setAction: @selector(makePostListFirstResponder) forKey: NSRightArrowFunctionKey];
[tagList setAction: @selector(endTagListEditing) forKey: 27];

[tagList initializeColumnsUsingHeaderCellClass: [SFHFMetalTableHeaderCell class] formatterClass: [DCAPITagFormatter class]];
[tagList initializeColumnsUsingHeaderCellClass: [SFHFMetalTableHeaderCell class] formatterClass: [DCAPITagFormatter class] textAlignment: NSCenterTextAlignment];

[tagList registerForDraggedTypes: [NSArray arrayWithObject: kDCAPIPostPboardType]];

NSRect superRect = [[tagList headerView] frame];
NSRect cornerRect = [[tagList cornerView] frame];
NSRect insetRect = NSInsetRect(superRect, cornerRect.size.width + 2, 1);
NSTableHeaderView *headerView = [[[NSTableHeaderView alloc] initWithFrame: superRect] autorelease];
[headerView setAutoresizesSubviews: YES];

NSShadow *shadow = [[[NSShadow alloc] init] autorelease];
[shadow setShadowOffset:NSMakeSize(1.1, -1.1)];
[shadow setShadowBlurRadius:0.2];
[shadow setShadowColor:[NSColor colorWithCalibratedWhite:1.0 alpha:0.6]];

NSMutableAttributedString *headerString = [[[NSMutableAttributedString alloc] initWithString:@"Tags"] autorelease];
NSRange range = NSMakeRange(0, [headerString length]);
[headerString addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:11.0] range:range];
[headerString addAttribute:NSShadowAttributeName value:shadow range:range];
[headerString setAlignment:NSCenterTextAlignment range:range];

NSTextField *headerText = [[NSTextField alloc] initWithFrame:insetRect];
[headerText setAutoresizingMask:NSViewWidthSizable];
[headerText setDrawsBackground:NO];
[headerText setBordered:NO];
[headerText setEditable:NO];
[headerText setAttributedStringValue:headerString];

[headerView addSubview:headerText];
[tagList setHeaderView: headerView];

SFHFMetalTableHeaderCell *cornerCell = [[SFHFMetalTableHeaderCell alloc] initTextCell: @" "];
SFHFCornerView *cornerControl = [[SFHFCornerView alloc] init];
[cornerControl setCell: cornerCell];
Expand Down Expand Up @@ -236,7 +212,7 @@ - (void) setupPostlist {

[postList disableDraggingForColumnWithIdentifier: kRATING_COLUMN_IDENTIFIER];

[postList initializeColumnsUsingHeaderCellClass: [SFHFiTunesTableHeaderCell class] formatterClass: nil];
[postList initializeColumnsUsingHeaderCellClass: [SFHFiTunesTableHeaderCell class] formatterClass: nil textAlignment: NSLeftTextAlignment];

SFHFTableHeaderCell *cornerCell = [[SFHFiTunesTableHeaderCell alloc] initTextCell: @" "];
SFHFCornerView *cornerView = [[SFHFCornerView alloc] init];
Expand Down Expand Up @@ -1384,6 +1360,46 @@ - (IBAction) closePostingInterface: (id) sender {
[[NSApp mainWindow] makeFirstResponder: [[NSApp mainWindow] initialFirstResponder]];
}

- (void) handleOpenURLAppleEvent: (NSAppleEventDescriptor *)event withReplyEvent: (NSAppleEventDescriptor *)replyEvent {

NSString *incomingString = [[ event paramDescriptorForKeyword: keyDirectObject] stringValue ];
NSString *description = nil;
NSString *url = nil;

// make sure it's an url we can handle.
if (![[incomingString lowercaseString] hasPrefix: @"delicious:"]) {
// fixme - put something in the replyEvent?
return;
}

// strip off the prefix.
incomingString = [incomingString substringFromIndex: 10];

NSEnumerator *enumerator = [[incomingString componentsSeparatedByString:@"&"] objectEnumerator];
NSString *component;

while ((component = [enumerator nextObject])) {

if ([[component lowercaseString] hasPrefix:@"url="]) {
url = [[component substringFromIndex: 4] stringByReplacingPercentEscapes];
}
else if ([[component lowercaseString] hasPrefix:@"description="]) {
description = [[component substringFromIndex: 12] stringByReplacingPercentEscapes];
}
else {
// just default to using the whole thing as the url.
url = component;
}
}

[currentPostProperties setObject: url forKey: @"url"];

if (description) {
[currentPostProperties setObject: description forKey: @"description"];
}

[self showPostingInterface: self];
}

- (void) postNewNNWLink: (NSAppleEventDescriptor *) event withReplyEvent: (NSAppleEventDescriptor *) reply {
NSAppleEventDescriptor *recordDescriptor = [event descriptorForKeyword: keyDirectObject];
Expand Down
70 changes: 14 additions & 56 deletions Delicious Client.xcodeproj/buzz.mode1
Original file line number Diff line number Diff line change
Expand Up @@ -185,48 +185,7 @@
<key>Notifications</key>
<array/>
<key>OpenEditors</key>
<array>
<dict>
<key>Content</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>6B3FB1F008D95173003CB654</string>
<key>PBXProjectModuleLabel</key>
<string>SFHFiTunesTableHeaderCell.m</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>6B3FB1F108D95173003CB654</string>
<key>PBXProjectModuleLabel</key>
<string>SFHFiTunesTableHeaderCell.m</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>6B5B389208D954B80028C470</string>
<key>history</key>
<array>
<string>6B3FB21808D9538E003CB654</string>
</array>
</dict>
<key>SplitCount</key>
<string>1</string>
</dict>
<key>StatusBarVisibility</key>
<true/>
</dict>
<key>Geometry</key>
<dict>
<key>Frame</key>
<string>{{0, 20}, {793, 466}}</string>
<key>PBXModuleWindowStatusBarHidden2</key>
<false/>
<key>RubberWindowFrame</key>
<string>107 236 793 507 0 0 1280 832 </string>
</dict>
</dict>
</array>
<array/>
<key>PerspectiveWidths</key>
<array>
<integer>-1</integer>
Expand Down Expand Up @@ -405,9 +364,9 @@
</array>
<key>TableOfContents</key>
<array>
<string>6B5B389008D954B80028C470</string>
<string>6B0443DD08DB9DD800ED1B9E</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>6B5B389108D954B80028C470</string>
<string>6B0443DE08DB9DD800ED1B9E</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
Expand Down Expand Up @@ -542,7 +501,8 @@
<key>WindowOrderList</key>
<array>
<string>1C0AD2B3069F1EA900FABCE6</string>
<string>6B3FB1F008D95173003CB654</string>
<string>1C530D57069F1CE1000CFCEE</string>
<string>6BFBD192082EEB42009D11EB</string>
<string>/Users/buzz/Code/Cocoa/cocoalicious/Delicious Client.xcodeproj</string>
</array>
<key>WindowString</key>
Expand All @@ -567,7 +527,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
<string>SFHFTableHeaderCell.m</string>
<string>&lt;No Editor&gt;</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
Expand All @@ -588,8 +548,6 @@
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBuildLogShowsTranscriptDefaultKey</key>
<string>{{0, 43}, {853, 251}}</string>
<key>PBXProjectModuleGUID</key>
<string>XCMainBuildResultsModuleGUID</string>
<key>PBXProjectModuleLabel</key>
Expand Down Expand Up @@ -627,7 +585,7 @@
<key>TableOfContents</key>
<array>
<string>6BFBD192082EEB42009D11EB</string>
<string>6B3FB15E08D94171003CB654</string>
<string>6B0443EB08DBAE6C00ED1B9E</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
Expand Down Expand Up @@ -772,7 +730,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key>
<string>&lt;No Editor&gt;</string>
<string></string>
<key>StatusBarVisibility</key>
<true/>
</dict>
Expand Down Expand Up @@ -828,8 +786,8 @@
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
<string>6B3FB12C08D93D4B003CB654</string>
<string>6B3FB12D08D93D4B003CB654</string>
<string>6B04440408DBAEAC00ED1B9E</string>
<string>6B04440508DBAEAC00ED1B9E</string>
<string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string>
</array>
Expand Down Expand Up @@ -937,8 +895,8 @@
<string>yes</string>
<key>sizes</key>
<array>
<string>{{0, 0}, {491, 168}}</string>
<string>{{0, 173}, {491, 270}}</string>
<string>{{0, 0}, {367, 168}}</string>
<string>{{0, 173}, {367, 270}}</string>
</array>
</dict>
<key>VerticalSplitView</key>
Expand Down Expand Up @@ -987,9 +945,9 @@
<key>TableOfContents</key>
<array>
<string>1C0AD2B3069F1EA900FABCE6</string>
<string>6B5B388808D9542F0028C470</string>
<string>6B04440908DBAF7600ED1B9E</string>
<string>1CD0528B0623707200166675</string>
<string>6B5B388908D9542F0028C470</string>
<string>6B04440A08DBAF7600ED1B9E</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.run</string>
Expand Down
Loading

0 comments on commit f7dc4b4

Please sign in to comment.