aboutsummaryrefslogtreecommitdiff
path: root/AppKit/GTMNSBezierPath+Shading.h
blob: 5d687282207b57951643681d3ae58527c045fe42 (plain)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
//
//  GTMNSBezierPath+Shading.h
//
//  Category for radial and axial stroke and fill functions for NSBezierPaths
//
//  Copyright 2006-2008 Google Inc.
//
//  Licensed under the Apache License, Version 2.0 (the "License"); you may not
//  use this file except in compliance with the License.  You may obtain a copy
//  of the License at
// 
//  http://www.apache.org/licenses/LICENSE-2.0
// 
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
//  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
//  License for the specific language governing permissions and limitations under
//  the License.
//

#import <Cocoa/Cocoa.h>
#import "GTMDefines.h"

@protocol GTMShading;

//
///  Category for radial and axial stroke and fill functions for NSBezierPaths
//
@interface NSBezierPath (GTMBezierPathShadingAdditions)

///  Stroke the path axially with a color blend defined by |shading|.
//
///  The fill will extend from |fromPoint| to |toPoint| and will extend
///  indefinitely perpendicular to the axis of the line defined by the
///  two points. You can extend beyond the |fromPoint|/|toPoint by setting 
///  |extendingStart|/|extendingEnd| respectively.
//  
//  Args: 
//    fromPoint: point to start the shading at
//    toPoint: point to end the shading at
//    extendingStart: should we extend the shading before |fromPoint| using 
//                    the first color in our shading?
//    extendingEnd: should we extend the shading after |toPoint| using the
//                  last color in our shading?
//    shading: the shading to use to take our colors from.
//
- (void)gtm_strokeAxiallyFrom:(NSPoint)fromPoint to:(NSPoint)toPoint 
               extendingStart:(BOOL)extendingStart extendingEnd:(BOOL)extendingEnd
                      shading:(id<GTMShading>)shading;

///  Stroke the path radially with a color blend defined by |shading|.
//
///  The fill will extend from the circle with center |fromPoint| 
///  and radius |fromRadius| to the circle with center |toPoint|
///  with radius |toRadius|.
///  You can extend beyond the |fromPoint|/|toPoint| by setting 
///  |extendingStart|/|extendingEnd| respectively.
//  
//  Args: 
//    fromPoint: center of the circle to start the shading at
//    fromRadius: radius of the circle to start the shading at
//    toPoint: center of the circle to to end the shading at
//    toRadius: raidus of the circle to end the shading at
//    extendingStart: should we extend the shading before |fromPoint| using 
//                    the first color in our shading?
//    extendingEnd: should we extend the shading after |toPoint| using the
//                  last color in our shading?
//    shading: the shading to use to take our colors from.
//
- (void)gtm_strokeRadiallyFrom:(NSPoint)fromPoint fromRadius:(CGFloat)fromRadius 
                            to:(NSPoint)toPoint toRadius:(CGFloat)toRadius
                extendingStart:(BOOL)extendingStart extendingEnd:(BOOL)extendingEnd
                       shading:(id<GTMShading>)shading;

///  Fill the path radially with a color blend defined by |shading|.
//
///  The fill will extend from the circle with center |fromPoint| 
///  and radius |fromRadius| to the circle with center |toPoint|
///  with radius |toRadius|.
///  You can extend beyond the |fromPoint|/|toPoint by setting 
///  |extendingStart|/|extendingEnd| respectively.
//  
//  Args: 
//    fromPoint: center of the circle to start the shading at
//    fromRadius: radius of the circle to start the shading at
//    toPoint: center of the circle to to end the shading at
//    toRadius: radius of the circle to end the shading at
//    extendingStart: should we extend the shading before |fromPoint| using 
//                    the first color in our shading?
//    extendingEnd: should we extend the shading after |toPoint| using the
//                  last color in our shading?
//    shading: the shading to use to take our colors from.
//
- (void)gtm_fillAxiallyFrom:(NSPoint)fromPoint to:(NSPoint)toPoint 
             extendingStart:(BOOL)extendingStart extendingEnd:(BOOL)extendingEnd
                    shading:(id<GTMShading>)shading;

///  Fill the path radially with a color blend defined by |shading|.
//
///  The fill will extend from the circle with center |fromPoint| 
///  and radius |fromRadius| to the circle with center |toPoint|
///  with radius |toRadius|.
///  You can extend beyond the |fromPoint|/|toPoint by setting 
///  |extendingStart|/|extendingEnd| respectively.
//  
//  Args: 
//    fromPoint: center of the circle to start the shading at
//    fromRadius: radius of the circle to start the shading at
//    toPoint: center of the circle to to end the shading at
//    toRadius: radius of the circle to end the shading at
//    extendingStart: should we extend the shading before |fromPoint| using 
//                    the first color in our shading?
//    extendingEnd: should we extend the shading after |toPoint| using the
//                  last color in our shading?
//    shading: the shading to use to take our colors from.
//
- (void)gtm_fillRadiallyFrom:(NSPoint)fromPoint fromRadius:(CGFloat)fromRadius 
                          to:(NSPoint)toPoint toRadius:(CGFloat)toRadius
              extendingStart:(BOOL)extendingStart extendingEnd:(BOOL)extendingEnd
                     shading:(id<GTMShading>)shading;
@end