/core/externals/google-toolbox-for-mac/AppKit/GTMNSBezierPath+ShadingTest.m

http://macfuse.googlecode.com/ · Objective C · 177 lines · 126 code · 22 blank · 29 comment · 0 complexity · 5fdccc2853e8adb2bc27b32f57c1a7ac MD5 · raw file

  1. //
  2. // GTMNSBezierPath+ShadingTest.m
  3. //
  4. // Copyright 2006-2008 Google Inc.
  5. //
  6. // Licensed under the Apache License, Version 2.0 (the "License"); you may not
  7. // use this file except in compliance with the License. You may obtain a copy
  8. // of the License at
  9. //
  10. // http://www.apache.org/licenses/LICENSE-2.0
  11. //
  12. // Unless required by applicable law or agreed to in writing, software
  13. // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  14. // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  15. // License for the specific language governing permissions and limitations under
  16. // the License.
  17. //
  18. #import <Cocoa/Cocoa.h>
  19. #import <SenTestingKit/SenTestingKit.h>
  20. #import "GTMLinearRGBShading.h"
  21. #import "GTMAppKit+UnitTesting.h"
  22. #import "GTMNSBezierPath+Shading.h"
  23. @interface GTMNSBezierPath_ShadingTest : GTMTestCase<GTMUnitTestViewDrawer>
  24. @end
  25. @implementation GTMNSBezierPath_ShadingTest
  26. - (void)testShadings {
  27. GTMAssertDrawingEqualToImageNamed(self,
  28. NSMakeSize(310, 410),
  29. @"GTMNSBezierPath+ShadingTest", nil, nil);
  30. }
  31. - (void)gtm_unitTestViewDrawRect:(NSRect)rect contextInfo:(void*)contextInfo {
  32. NSColor *theColorArray[] = { [NSColor blueColor],
  33. [NSColor redColor], [NSColor yellowColor],
  34. [NSColor blueColor], [NSColor greenColor],
  35. [NSColor redColor] };
  36. CGFloat theFloatArray[] = { 0.0, 0.2, 0.4, 0.6, 0.8, 1.0 };
  37. GTMLinearRGBShading *shading =
  38. [GTMLinearRGBShading shadingWithColors:theColorArray
  39. fromSpaceNamed:NSCalibratedRGBColorSpace
  40. atPositions:theFloatArray
  41. count:sizeof(theFloatArray)/sizeof(CGFloat)];
  42. NSBezierPath *shadedPath;
  43. // axial stroke rect - diagonal fill
  44. NSRect axialStrokeRect = NSMakeRect(10.0f, 10.0f, 90.0f, 90.0f);
  45. shadedPath = [NSBezierPath bezierPathWithRect:axialStrokeRect];
  46. [shadedPath setLineWidth: 10.0f];
  47. NSPoint startPoint = NSMakePoint(axialStrokeRect.origin.x + 20.0f,
  48. axialStrokeRect.origin.y + 20.0f);
  49. NSPoint endPoint = NSMakePoint(axialStrokeRect.origin.x + axialStrokeRect.size.width - 20.0f,
  50. axialStrokeRect.origin.y + axialStrokeRect.size.height - 20.0f);
  51. [shadedPath gtm_strokeAxiallyFrom:startPoint to:endPoint extendingStart:YES extendingEnd:YES shading:shading];
  52. // axial stroke rect - v line fill
  53. axialStrokeRect = NSMakeRect(110.0f, 10.0f, 90.0f, 90.0f);
  54. shadedPath = [NSBezierPath bezierPathWithRect:axialStrokeRect];
  55. [shadedPath setLineWidth: 10.0f];
  56. startPoint = NSMakePoint(axialStrokeRect.origin.x + axialStrokeRect.size.width / 2.0f,
  57. axialStrokeRect.origin.y + 20.0f);
  58. endPoint = NSMakePoint(axialStrokeRect.origin.x + axialStrokeRect.size.width / 2.0f,
  59. axialStrokeRect.origin.y + axialStrokeRect.size.height - 20.0f);
  60. [shadedPath gtm_strokeAxiallyFrom:startPoint to:endPoint extendingStart:YES extendingEnd:YES shading:shading];
  61. // axial stroke rect - h line fill
  62. axialStrokeRect = NSMakeRect(210.0f, 10.0f, 90.0f, 90.0f);
  63. shadedPath = [NSBezierPath bezierPathWithRect:axialStrokeRect];
  64. [shadedPath setLineWidth: 10.0f];
  65. startPoint = NSMakePoint(axialStrokeRect.origin.x + 20.0f,
  66. axialStrokeRect.origin.y + axialStrokeRect.size.height / 2.0f);
  67. endPoint = NSMakePoint(axialStrokeRect.origin.x + axialStrokeRect.size.width - 20.0f,
  68. axialStrokeRect.origin.y + axialStrokeRect.size.height / 2.0f);
  69. [shadedPath gtm_strokeAxiallyFrom:startPoint to:endPoint extendingStart:YES extendingEnd:YES shading:shading];
  70. // axial fill rect - diagonal fill
  71. NSRect axialFillRect = NSMakeRect(10.0f, 110.0f, 90.0f, 90.0f);
  72. shadedPath = [NSBezierPath bezierPathWithRect:axialFillRect];
  73. startPoint = NSMakePoint(axialFillRect.origin.x + 20.0f,
  74. axialFillRect.origin.y + 20.0f);
  75. endPoint = NSMakePoint(axialFillRect.origin.x + axialFillRect.size.width - 20.0f,
  76. axialFillRect.origin.y + axialFillRect.size.height - 20.0f);
  77. [shadedPath gtm_fillAxiallyFrom:startPoint to:endPoint extendingStart:YES extendingEnd:YES shading:shading];
  78. // axial fill rect - v line fill
  79. axialFillRect = NSMakeRect(110.0f, 110.0f, 90.0f, 90.0f);
  80. shadedPath = [NSBezierPath bezierPathWithRect:axialFillRect];
  81. startPoint = NSMakePoint(axialFillRect.origin.x + axialFillRect.size.width / 2.0f,
  82. axialFillRect.origin.y + 20.0f);
  83. endPoint = NSMakePoint(axialFillRect.origin.x + axialFillRect.size.width / 2.0f,
  84. axialFillRect.origin.y + axialFillRect.size.height - 20.0f);
  85. [shadedPath gtm_fillAxiallyFrom:startPoint to:endPoint extendingStart:YES extendingEnd:YES shading:shading];
  86. // axial fill rect - h line fill
  87. axialFillRect = NSMakeRect(210.0f, 110.0f, 90.0f, 90.0f);
  88. shadedPath = [NSBezierPath bezierPathWithRect:axialFillRect];
  89. startPoint = NSMakePoint(axialFillRect.origin.x + 20.0f,
  90. axialFillRect.origin.y + axialFillRect.size.height / 2.0f);
  91. endPoint = NSMakePoint(axialFillRect.origin.x + axialFillRect.size.width - 20.0f,
  92. axialFillRect.origin.y + axialFillRect.size.height / 2.0f);
  93. [shadedPath gtm_fillAxiallyFrom:startPoint to:endPoint extendingStart:YES extendingEnd:YES shading:shading];
  94. // radial stroke rect - diagonal fill
  95. NSRect radialStrokeRect = NSMakeRect(10.0f, 210.0f, 90.0f, 90.0f);
  96. shadedPath = [NSBezierPath bezierPathWithRect:radialStrokeRect];
  97. startPoint = NSMakePoint(radialStrokeRect.origin.x + 20.0f,
  98. radialStrokeRect.origin.y + 20.0f);
  99. endPoint = NSMakePoint(radialStrokeRect.origin.x + radialStrokeRect.size.width - 20.0f,
  100. radialStrokeRect.origin.y + radialStrokeRect.size.height - 20.0f);
  101. [shadedPath gtm_strokeRadiallyFrom:startPoint fromRadius:60.0f
  102. to:endPoint toRadius:20.0f
  103. extendingStart:YES extendingEnd:YES shading:shading];
  104. // radial stroke rect - v line fill
  105. radialStrokeRect = NSMakeRect(110.0f, 210.0f, 90.0f, 90.0f);
  106. shadedPath = [NSBezierPath bezierPathWithRect:radialStrokeRect];
  107. startPoint = NSMakePoint(radialStrokeRect.origin.x + radialStrokeRect.size.width / 2.0f,
  108. radialStrokeRect.origin.y + 20.0f);
  109. endPoint = NSMakePoint(radialStrokeRect.origin.x + radialStrokeRect.size.width / 2.0f,
  110. radialStrokeRect.origin.y + radialStrokeRect.size.height - 20.0f);
  111. [shadedPath gtm_strokeRadiallyFrom:startPoint fromRadius:60.0f
  112. to:endPoint toRadius:20.0f
  113. extendingStart:YES extendingEnd:YES shading:shading];
  114. // radial stroke rect - h line fill
  115. radialStrokeRect = NSMakeRect(210.0f, 210.0f, 90.0f, 90.0f);
  116. shadedPath = [NSBezierPath bezierPathWithRect:radialStrokeRect];
  117. startPoint = NSMakePoint(radialStrokeRect.origin.x + 20.0f,
  118. radialStrokeRect.origin.y + radialStrokeRect.size.height / 2.0f);
  119. endPoint = NSMakePoint(radialStrokeRect.origin.x + radialStrokeRect.size.width - 20.0f,
  120. radialStrokeRect.origin.y + radialStrokeRect.size.height / 2.0f);
  121. [shadedPath gtm_strokeRadiallyFrom:startPoint fromRadius:60.0f
  122. to:endPoint toRadius:20.0f
  123. extendingStart:YES extendingEnd:YES shading:shading];
  124. // radial fill rect - diagonal fill
  125. NSRect radialFillRect = NSMakeRect(10.0f, 310.0f, 90.0f, 90.0f);
  126. shadedPath = [NSBezierPath bezierPathWithRect:radialFillRect];
  127. startPoint = NSMakePoint(radialFillRect.origin.x + 20.0f,
  128. radialFillRect.origin.y + 20.0f);
  129. endPoint = NSMakePoint(radialFillRect.origin.x + radialFillRect.size.width - 20.0f,
  130. radialFillRect.origin.y + radialFillRect.size.height - 20.0f);
  131. [shadedPath gtm_fillRadiallyFrom:startPoint fromRadius:10.0f
  132. to:endPoint toRadius:20.0f
  133. extendingStart:YES extendingEnd:YES shading:shading];
  134. // radial fill rect - v line fill
  135. radialFillRect = NSMakeRect(110.0f, 310.0f, 90.0f, 90.0f);
  136. shadedPath = [NSBezierPath bezierPathWithRect:radialFillRect];
  137. startPoint = NSMakePoint(radialFillRect.origin.x + radialFillRect.size.width / 2.0f,
  138. radialFillRect.origin.y + 20.0f);
  139. endPoint = NSMakePoint(radialFillRect.origin.x + radialFillRect.size.width / 2.0f,
  140. radialFillRect.origin.y + radialFillRect.size.height - 20.0f);
  141. [shadedPath gtm_fillRadiallyFrom:startPoint fromRadius:10.0f
  142. to:endPoint toRadius:20.0f
  143. extendingStart:YES extendingEnd:YES shading:shading];
  144. // radial fill rect - h line fill
  145. radialFillRect = NSMakeRect(210.0f, 310.0f, 90.0f, 90.0f);
  146. shadedPath = [NSBezierPath bezierPathWithRect:radialFillRect];
  147. startPoint = NSMakePoint(radialFillRect.origin.x + 20.0f,
  148. radialFillRect.origin.y + radialFillRect.size.height / 2.0f);
  149. endPoint = NSMakePoint(radialFillRect.origin.x + radialFillRect.size.width - 20.0f,
  150. radialFillRect.origin.y + radialFillRect.size.height / 2.0f);
  151. [shadedPath gtm_fillRadiallyFrom:startPoint fromRadius:10.0f
  152. to:endPoint toRadius:20.0f
  153. extendingStart:YES extendingEnd:YES shading:shading];
  154. }
  155. @end