I found the option "DockSettings.General.useSameRotationValues" couldn't work very well in my environment.
So have another idea about this option, when the DockItems are rotated, why not have a counter rotation between circels?
When the mouse is whelling, the odd circels are rotated in the clockwise, while the even circles are rotated in the counterclockwise.
I have implemented this in the 0.9.2 alpha8, just a little change can get this cool effect, it was indeed like wheels if done this, maybe.
if there is any problem ,please let me know. thank you.
private System.Drawing.Point[] CalculateDockItemPositionsForCircle(System.Drawing.Size[] DockItemSizes)
{
//...
int num3 = 0;
int num4 = 0;
int numCircleIndex1 = 0;
for (int j = 0; j < DockItemSizes.Length; j++)
{
double tempRotationValue1 = (!DockSettings.General.useSameRotationValues && numCircleIndex1 % 2 == 0) ? RotationValue : -RotationValue;
pointArray[j] = new System.Drawing.Point(((this.CentreObject.Location.X + num2) + ((int)(((base.DockSettings.CircleParams.MinRadius + num3) - (DockItemSizes[j].Width / 2)) * Math.Cos((j * num) + tempRotationValue1)))) - (DockItemSizes[j].Width / 2), ((this.CentreObject.Location.Y + num2) + ((int)(((base.DockSettings.CircleParams.MinRadius + num3) - (DockItemSizes[j].Height / 2)) * Math.Sin((j * num) + tempRotationValue1)))) - (DockItemSizes[j].Height / 2));
num4++;
if (num4 >= base.DockSettings.CircleParams.ConstNumItemsPerCircle)
{
num4 = 0;
numCircleIndex1++;
num3 += base.DockSettings.CircleParams.CircleSeparation;
}
}