#
# 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.