# # Filename: README # Created : Mon Sep 6 16:44:31 1993 # Author : Don Yacktman <Don_Yacktman@byu.edu> # Vince DeMarco <vince@whatnxt.cuc.ab.ca> # This is a rewrite of the circular slider classes: Vince's CircularSlider palette and Don's RotationSlider palette. It provides more options than either palette had by itself and fixes a few minor bugs which were mostly seen in the rendering. (And probably introduces some new bugs... :*) If you make any interesting subclasses please let us about them; we'd love to add any useful subclasses in the MiscKit! Note that Don is the official maintainer of this palette; he is the one who performed the merge of the two palettes and knows the new code best. (In many ways it is very different from either of the two original classes, as it turns out.) ----- -Don Yacktman Don_Yacktman@byu.edu vince demarco vince@whatnxt.cuc.ab.ca Carl Lindberg Wed Apr 19 22:09:01 EDT 1995 Added support for borders - the control for them in the inspector works now. I also added a couple of more border types in there... These are controlled by a new instance var, 'borderType'. The methods -setBezeled and -setBordered no longer have any affect; use -setBorderType instead. It might be nice to have -setBezeled call -setBorderType:MISC_CSBEZEL, etc., but I haven't done that. Added support for background color, settable in a color well. If you want a transparent background, set this color to be transparent. You can set semi-transparent background colors, as well. (This required drawing border and background color to an NXImage, then compositing that, instead of directly drawing to the view.) If 'hidden' is checked, the only thing drawn will be the background color. **NOTE** There doesn't appear to be a way in IB's preferences to make the opacity slider (for alpha) appear in the color panel. If it is not there, you can't set a non-opaque color--it strips alpha from any color it gives out, even if you click one of those saved colors at the bottom. Since this prevented setting a slider to have a transparent background, the inspector's -init method will now force the opacity slider to appear, allowing alpha to be put in a color. Just so it's known we are doing this. :-) Added 'Jumps to mouse click' option in inspector. You could already do this in code, just not in the inspector. You also can now set the slider-style one to NOT jump to mouse click, though this makes little sense. Fixed bug in boundary checking. It used to depend on the normal values going from 0-360. You can now set them to whatever you want. Fixed bug when view was taller than it was wide. If you clicked near the bottom (where the slider appeared to be), it thought you clicked near the top and wouldn't do anything. If you clicked in the blank area around the top, well, THEN you could control the slider. Only a problem when view was flipped. Changed a couple of the pswrap functions. The shuttlewheel-style now figures its knob placement based on the circle center, radius, and sliderPathWidth. It used to use some other method that assumed 0,0 as the origin, which is not always true with borders. The pswrap to draw the slider-style knob now draws it in the lower left corner, allowing the cached image to be exactly the size of the knob. This in turn allows for more precise placement. Before, there used to be some glitchiness on larger sliders of the knob going outside the slider path, leaving some stray pixels. You now need a ridiculously big slider to have this happen. Reorganized the code to something approaching sanity. This palette was originally a merging of two separate palettes, and the merging wasn't quite seamless yet. Now the drawing goes something like this: -drawSelf:inView: Draws the border and background color, sets a couple of instance vars, and calls -drawBarInside:: -drawBarInside: Draws the background of the slider itself, either the slider path or outline circles, and calls -drawKnob: -drawKnob: Draws the piepiece/line/knob. Well, it makes sense to me anyways :-) There isn't any duplicate drawing code anymore. Various other things were tweaked along the way, mostly places where 0,0 was assumed as the origin, which changed with borders. Carl Lindberg Mon Jun 12 00:36:31 EDT 1995 Added support for allowing specification of where the slider "starts" at, that is, the angle at which the minValue is shown. Previously, it was always on the right, except for the pie-style, which was at the top. The value specified is an angle from 0-360, with 0 being on the right hand side as before. A value of 90 will put the start at the top, 270 on the bottom. It would have actually been nice to have a circular slider set this value on the inspector panel, but I didn't think there was room. It's not completely obvious as it is, but I guess it'll do. Added support for specifying which direction values increase in, either clockwise or counterclockwise. Previously, it was always counterclockwise, except for the pie-style. Change this with the 'Goes clockwise' option; if not checked, the slider goes counterclockwise. Again, not the best way of specifying this, but it was the best way to fit it into the inspector. Modified the pie-style pswrap a bit to accomodate the above modifications. The pie-style slider used to give incorrect values, this seems to have been fixed by the above mods.
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.