Chameleon Applications

Chameleon Applications Svn Source Tree

Root/branches/diebuche/ChameleonPrefPane/Sources/CTGradient.h

1//
2// CTGradient.h
3//
4// Created by Chad Weider on 2/14/07.
5// Copyright (c) 2007 Chad Weider.
6// Some rights reserved: <http://creativecommons.org/licenses/by/2.5/>
7//
8// Version: 1.6
9
10#import <Cocoa/Cocoa.h>
11
12typedef struct _CTGradientElement
13{
14float red, green, blue, alpha;
15float position;
16
17struct _CTGradientElement *nextElement;
18} CTGradientElement;
19
20typedef enum _CTBlendingMode
21{
22CTLinearBlendingMode,
23CTChromaticBlendingMode,
24CTInverseChromaticBlendingMode
25} CTGradientBlendingMode;
26
27
28@interface CTGradient : NSObject <NSCopying, NSCoding>
29{
30CTGradientElement* elementList;
31CTGradientBlendingMode blendingMode;
32
33CGFunctionRef gradientFunction;
34}
35
36+ (id)gradientWithBeginningColor:(NSColor *)begin endingColor:(NSColor *)end;
37
38+ (id)aquaSelectedGradient;
39+ (id)aquaNormalGradient;
40+ (id)aquaPressedGradient;
41
42+ (id)unifiedSelectedGradient;
43+ (id)unifiedNormalGradient;
44+ (id)unifiedPressedGradient;
45+ (id)unifiedDarkGradient;
46
47+ (id)sourceListSelectedGradient;
48+ (id)sourceListUnselectedGradient;
49
50+ (id)rainbowGradient;
51+ (id)hydrogenSpectrumGradient;
52
53- (CTGradient *)gradientWithAlphaComponent:(float)alpha;
54
55- (CTGradient *)addColorStop:(NSColor *)color atPosition:(float)position;//positions given relative to [0,1]
56- (CTGradient *)removeColorStopAtIndex:(unsigned)index;
57- (CTGradient *)removeColorStopAtPosition:(float)position;
58
59- (CTGradientBlendingMode)blendingMode;
60- (NSColor *)colorStopAtIndex:(unsigned)index;
61- (NSColor *)colorAtPosition:(float)position;
62
63
64- (void)drawSwatchInRect:(NSRect)rect;
65- (void)fillRect:(NSRect)rect angle:(float)angle;//fills rect with axial gradient
66//angle in degrees
67- (void)radialFillRect:(NSRect)rect;//fills rect with radial gradient
68// gradient from center outwards
69- (void)fillBezierPath:(NSBezierPath *)path angle:(float)angle;
70- (void)radialFillBezierPath:(NSBezierPath *)path;
71
72@end

Archive Download this file

Revision: 80