- [path moveToPoint:NSMakePoint( 0.0, (vh - 24.0) )]; // first point
- [path curveToPoint:NSMakePoint( 24.0, vh )
- controlPoint1:NSMakePoint( 0.0, (vh - 11.0) )
- controlPoint2:NSMakePoint( 11.0, vh )]; // top-left curve
- [path lineToPoint:NSMakePoint( (vw - 24.0), vh )]; // top line
- [path curveToPoint:NSMakePoint( vw, (vh - 24.0) )
- controlPoint1:NSMakePoint( (vw - 11.0), vh )
- controlPoint2:NSMakePoint( vw, (vh - 11.0) )]; // top-right curve
- [path lineToPoint:NSMakePoint( vw, 24.0 )]; // right line
- [path curveToPoint:NSMakePoint( (vw - 24.0), 0.0 )
- controlPoint1:NSMakePoint( vw, 11.0 )
- controlPoint2:NSMakePoint( (vw - 11.0), 0.0 )]; // bottom-right curve
- [path lineToPoint:NSMakePoint( 24.0, 0.0 )]; // bottom line
- [path curveToPoint:NSMakePoint( 0.0, 24.0 )
- controlPoint1:NSMakePoint( 11.0, 0.0 )
- controlPoint2:NSMakePoint( 0.0, 11.0 )]; // bottom-left curve
- [path closePath]; // left line
+
+ NSPoint pointA = NSMakePoint( 24.0 , 0.0 );
+// NSPoint pointB = NSMakePoint( 0.0 , 24.0 ); reference
+ NSPoint pointC = NSMakePoint( 0.0 , (vh - 24.0) );
+// NSPoint pointD = NSMakePoint( 24.0 , vh ); reference
+ NSPoint pointE = NSMakePoint( (vw - 24.0) , vh );
+// NSPoint pointF = NSMakePoint( vw , (vh - 24.0) ); reference
+ NSPoint pointG = NSMakePoint( vw , 24.0 );
+// NSPoint pointH = NSMakePoint( (vw - 24.0) , 0.0 ); reference
+
+ NSPoint ctrAB = NSMakePoint( 24.0 , 24.0 );
+ NSPoint ctrCD = NSMakePoint( 24.0 , (vh - 24.0) );
+ NSPoint ctrEF = NSMakePoint( (vw - 24.0) , (vh - 24.0) );
+ NSPoint ctrGH = NSMakePoint( (vw - 24.0) , 24.0 );
+
+ /*
+ * D E
+ * +------------------------+
+ * C | * ctrCD ctrEF * | F
+ * | |
+ * B | * ctrAB ctrGH * | G
+ * +------------------------+
+ * A H
+ */
+
+ [_path autorelease];
+ _path = [[NSBezierPath bezierPath] retain];
+
+ [path moveToPoint:pointA]; // first point
+ [path appendBezierPathWithArcWithCenter:ctrAB // bottom-left curve
+ radius:24.0
+ startAngle:90.0
+ endAngle:180.0];
+ [path lineToPoint:pointC]; // left line
+ [path appendBezierPathWithArcWithCenter:ctrCD // top-left curve
+ radius:24.0
+ startAngle:180.0
+ endAngle:270.0];
+ [path lineToPoint:pointE]; // top line
+ [path appendBezierPathWithArcWithCenter:ctrEF // top-right curve
+ radius:24.0
+ startAngle:270.0
+ endAngle:0.0];
+ [path lineToPoint:pointG]; // right line
+ [path appendBezierPathWithArcWithCenter:ctrGH // bottom-right curve
+ radius:24.0
+ startAngle:0.0
+ endAngle:90.0];
+ [path lineToPoint:pointA]; // right line