Customisation de AMRollOverButton

ObiObi Membre
18:36 modifié dans API AppKit #1
Je viens de découvrir une classe AMRollOverButton qui reproduit les boutons de la barre de signets de Safari :
http://www.harmless.de/cocoa.html
C'est très sympa mais les couleurs par défaut sont pas les mêmes que celle dans Safari alors j'ai fait quelques modifs qui peuvent peut-etre vous interesser.

Dans une sous-classe de AMRollOverButton, dans le awakeFromNib :
<br />[self setControlColor: [NSColor clearColor]];<br />[self setMouseoverControlColor: [NSColor colorWithDeviceWhite:0.44 alpha:1]];<br />[self setHighlightedControlColor: [NSColor colorWithDeviceWhite:0.37 alpha:1]];<br /><br />[self setFrameColor: [NSColor clearColor]];<br />[self setMouseoverFrameColor: [NSColor clearColor]];<br />[self setHighlightedFrameColor: [NSColor colorWithDeviceWhite:1.00 alpha:1]];<br /><br />[self setTextColor: [NSColor colorWithDeviceWhite:0.21 alpha:1]];<br />[self setMouseoverTextColor: [NSColor colorWithDeviceWhite:1.00 alpha:1]];<br />[self setHighlightedTextColor: [NSColor colorWithDeviceWhite:1.00 alpha:1]];<br /><br />[self setArrowColor: [NSColor colorWithDeviceWhite:0.31 alpha:1]];<br />[self setMouseoverArrowColor: [NSColor colorWithDeviceWhite:1.00 alpha:1]];<br />[self setHighlightedArrowColor: [NSColor colorWithDeviceWhite:1.00 alpha:1]];<br /><br />[self setArrowColor: [NSColor colorWithDeviceWhite:0.31 alpha:1]];<br />[self setMouseoverArrowColor: [NSColor colorWithDeviceWhite:1.00 alpha:1]];<br />[self setHighlightedArrowColor: [NSColor colorWithDeviceWhite:1.00 alpha:1]];<br /><br />[self setTextShadow: [self textShadowWithColor:[NSColor colorWithDeviceWhite:1.00 alpha:1]]];<br />[self setMouseoverTextShadow: [self textShadowWithColor:[NSColor colorWithDeviceWhite:0.20 alpha:1]]];<br />[self setHighlightedTextShadow: [self textShadowWithColor:[NSColor colorWithDeviceWhite:0.20 alpha:1]]];<br /><br />[self setNeedsDisplay:YES];<br />


Et cette méthode à  ajouter :
<br />-(NSShadow *)textShadowWithColor:(NSColor *)color {<br />	NSShadow *result = nil;<br />	if ([color alphaComponent] != 0.0) {<br />		result = [[[NSShadow alloc] init] autorelease];<br />		[result setShadowOffset:NSMakeSize(0.0, -1.0)];<br />		[result setShadowBlurRadius:1.0];<br />		[result setShadowColor:color];<br />	}<br />	return result;<br />}<br />


Voilà Â  ;)
Connectez-vous ou Inscrivez-vous pour répondre.