NOTE: Circular Slider has not been updated in several years, and does not work on recent versions of OS X.
Circular Slider is an open source project that includes some testbed code and a class called SSCircularSlider. SSCircularSlider is an NSView subclass that allows the user to choose an angle and distance (a vector, essentially) by moving a knob in two dimensions across a circular base.
Circular Slider won first place in Stepwise's Cocoa Reusable Component contest at WWDC in 2002. It has been used in several applications, notably Stick Software's Aquatint and Infinity-to-the-Power-of-Infinity's Can Combine Icons.
Full documentation for SSCircularSlider is on this site; however, pictures speak louder than words, so here's a screenshot of Circular Slider's testbed window (click here for a full-size version):
SSCircularSlider is open source. However, it is not public domain; Circular Slider and SSCircularSlider are copyright © 2004 Stick Software. It is governed by an open source license called the Artistic License, which is intended to allow others reasonable freedom in using and modifying the sources, while allowing Stick Software to retain creative control over the project. If you intend to use or modify the source code for Circular Slider, you must read and follow the license. To join in the development effort to improve Circular Slider, please surf to Circular Slider's project page on SourceForge.
The SSCircularSlider class is intended as a demonstration of the power of Aquatint. Aquatint is an app by Stick Software that generates Aqua-style images from simple black silhouettes. All of the appearances of SSCircularSlider were generated using Aquatint, and it only took a few minutes. If you want to support the development of open source projects like Circular Slider, or if you want to use SSCircularSlider's images in a different context, please consider registering Aquatint and other Stick Software products. Thanks!
This project is hosted by SourceForge, the world's largest Open Source software development web site.