File: HyperlinkButton.m

package info (click to toggle)
mediainfo 25.04-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 17,124 kB
  • sloc: cpp: 18,542; objc: 3,089; sh: 1,417; xml: 1,268; python: 319; makefile: 214; perl: 207
file content (60 lines) | stat: -rw-r--r-- 1,534 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*  Copyright (c) MediaArea.net SARL. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license that can
 *  be found in the License.html file in the root of the source tree.
 */

//  Created by Max Pozdeev on 16.08.12.

#import "HyperlinkButton.h"

@implementation HyperlinkButton

- (void)dealloc {
	[url release];
	[super dealloc];
}

- (void) awakeFromNib {
	
	[self setBordered:NO];
	[self setBezelStyle:NSRegularSquareBezelStyle];
	[self setButtonType:NSMomentaryChangeButton];
		
	NSDictionary *attributes = @{
								 NSUnderlineStyleAttributeName  : [NSNumber numberWithInt:NSUnderlineStyleSingle],
								 NSForegroundColorAttributeName : [NSColor blueColor]
								};
	
	self.attributedTitle = [[[NSAttributedString alloc] initWithString:self.title attributes:attributes] autorelease];
	[self sizeToFit]; //will align to left
	
	//calc parent bounds to center the button's frame
	//button autosize should be set to center with fixed size
	NSRect parentSize = [[self superview] bounds];
	NSRect newSize = [self frame];
	newSize.origin.x = (parentSize.size.width - newSize.size.width)/2;
	[self setFrame:newSize];
	
	self.action = @selector(openURL:);
	self.target = self;
}

- (void)setActionUrl:(NSURL*)anUrl {
	
	[url release];
	url = [anUrl retain];

	[self setToolTip:[url absoluteString]];
}

- (IBAction) openURL:(id) sender {
	[[NSWorkspace sharedWorkspace] openURL:url];
}


- (void)resetCursorRects {
	[self addCursorRect:[self bounds] cursor:[NSCursor pointingHandCursor]];
}

@end