/// <summary>
        /// Mains the functionality.
        /// </summary>
        private void MainFunctionality()
        {
            cc.MarkerSets.Clear();
            cc.Rings.Clear();

            for (int i = 0; i < ListedRings.Count; i++)
            {
                switch (ListedRings[i].Type)
                {
                case Compass.CompassRing.ListedRings.RingType.Default:
                    cc.Rings.Add(ListedRings[i].Distance, ListedRings[i].Color1, ListedRings[i].Color2, ListedRings[i].BorderSize);

                    break;

                case Compass.CompassRing.ListedRings.RingType.Gradient:
                    cc.Rings.Add(ListedRings[i].Distance, ListedRings[i].GradientMode, ListedRings[i].Color1,
                                 ListedRings[i].Color2, ListedRings[i].BorderColor, ListedRings[i].BorderSize);
                    break;

                case Compass.CompassRing.ListedRings.RingType.HatchStyle:
                    cc.Rings.Add(ListedRings[i].Distance, ListedRings[i].HatchStyle, ListedRings[i].Color1,
                                 ListedRings[i].Color2, ListedRings[i].BorderColor, ListedRings[i].BorderSize);
                    break;
                }
            }

            #region Line Tick
            marker = new ZeroitAsanaCompass.Marker(
                ZeroitAsanaCompass.MakeArgb(0.8f, LineMarker.InsideColor),
                LineMarker.BorderColor,     // border color
                LineMarker.BorderThickness, // border thickness
                LineMarker.LinePoly.ToArray(),
                LineMarker.OffsetAngle,     // angle offset
                LineMarker.DragButton,
                LineMarker.Visible);
            markset = new ZeroitAsanaCompass.MarkerSet(90f);

            markset.Add(marker);
            cc.MarkerSets.Add(markset);

            //markset.Add(marker);

            #endregion


            cc.FixedBackground = false;
        }
        /// <summary>
        /// Clocks the parameters.
        /// </summary>
        private void ClockParameters()
        {
            cc.MarkerSets.Clear();

            // Hour ticks
            cc.MajorTicks         = 12;
            cc.MajorTickStart     = 0.30f;
            cc.MajorTickSize      = 0.50f;
            cc.MajorTickThickness = 2.0f;
            cc.MajorTickColor     = hourTicksColor;


            // Minute ticks
            cc.MinorTicksPerMajorTick = 4;
            cc.MinorTickStart         = 0.30f;
            cc.MinorTickSize          = 0.40f;
            cc.MinorTickThickness     = 1.0f;
            cc.MinorTickColor         = minuteTicksColor;


            // Hour hand
            ArrayList hourPoly = new ArrayList();

            hourPoly.Add(new PointF(-0.0250f, 0.0000f));
            hourPoly.Add(new PointF(-0.0250f, 0.0125f));
            hourPoly.Add(new PointF(-0.0125f, 0.0250f));
            hourPoly.Add(new PointF(0.0125f, 0.0250f));
            hourPoly.Add(new PointF(0.0250f, 0.0125f));
            hourPoly.Add(new PointF(0.0500f, 0.0125f));
            hourPoly.Add(new PointF(0.0500f, 0.0250f));
            hourPoly.Add(new PointF(0.0750f, 0.0500f));
            hourPoly.Add(new PointF(0.1500f, 0.0500f));
            hourPoly.Add(new PointF(0.5000f, 0.0000f));
            hourPoly.Add(new PointF(0.1500f, -0.0500f));
            hourPoly.Add(new PointF(0.0750f, -0.0500f));
            hourPoly.Add(new PointF(0.0500f, -0.0250f));
            hourPoly.Add(new PointF(0.0500f, -0.0125f));
            hourPoly.Add(new PointF(0.0250f, -0.0125f));
            hourPoly.Add(new PointF(0.0125f, -0.0250f));
            hourPoly.Add(new PointF(-0.0125f, -0.0250f));
            hourPoly.Add(new PointF(-0.0250f, -0.0125f));
            hourPoly.Add(new PointF(-0.0250f, 0.0000f));
            hour = new ZeroitAsanaCompass.MarkerSet();
            hour.Add(ZeroitAsanaCompass.MakeArgb(0.8f, hourHandColor), Color.Black, 1.0f,
                     (PointF[])hourPoly.ToArray(typeof(PointF)));
            cc.MarkerSets.Add(hour);

            // Minute hand
            ArrayList minutePoly = new ArrayList();

            minutePoly.Add(new PointF(-0.0250f, 0.0000f));
            minutePoly.Add(new PointF(-0.0250f, 0.0125f));
            minutePoly.Add(new PointF(-0.0125f, 0.0250f));
            minutePoly.Add(new PointF(0.0125f, 0.0250f));
            minutePoly.Add(new PointF(0.0250f, 0.0125f));
            minutePoly.Add(new PointF(0.0500f, 0.0125f));
            minutePoly.Add(new PointF(0.0500f, 0.0250f));
            minutePoly.Add(new PointF(0.0750f, 0.0500f));
            minutePoly.Add(new PointF(0.1500f, 0.0500f));
            minutePoly.Add(new PointF(0.7000f, 0.0000f));
            minutePoly.Add(new PointF(0.1500f, -0.0500f));
            minutePoly.Add(new PointF(0.0750f, -0.0500f));
            minutePoly.Add(new PointF(0.0500f, -0.0250f));
            minutePoly.Add(new PointF(0.0500f, -0.0125f));
            minutePoly.Add(new PointF(0.0250f, -0.0125f));
            minutePoly.Add(new PointF(0.0125f, -0.0250f));
            minutePoly.Add(new PointF(-0.0125f, -0.0250f));
            minutePoly.Add(new PointF(-0.0250f, -0.0125f));
            minutePoly.Add(new PointF(-0.0250f, 0.0000f));
            minute = new ZeroitAsanaCompass.MarkerSet();
            minute.Add(ZeroitAsanaCompass.MakeArgb(0.8f, minuteHandColor), Color.Black, 1.0f,
                       (PointF[])minutePoly.ToArray(typeof(PointF)));
            cc.MarkerSets.Add(minute);

            // Second hand
            ArrayList secondPoly = new ArrayList();

            secondPoly.Add(new PointF(-0.0250f, 0.0000f));
            secondPoly.Add(new PointF(-0.0250f, 0.0125f));
            secondPoly.Add(new PointF(-0.0125f, 0.0250f));
            secondPoly.Add(new PointF(0.0125f, 0.0250f));
            secondPoly.Add(new PointF(0.0250f, 0.0125f));
            secondPoly.Add(new PointF(0.1500f, 0.0125f));
            secondPoly.Add(new PointF(0.6000f, 0.0000f));
            secondPoly.Add(new PointF(0.1500f, -0.0125f));
            secondPoly.Add(new PointF(0.0250f, -0.0125f));
            secondPoly.Add(new PointF(0.0125f, -0.0250f));
            secondPoly.Add(new PointF(-0.0125f, -0.0250f));
            secondPoly.Add(new PointF(-0.0250f, -0.0125f));
            secondPoly.Add(new PointF(-0.0250f, 0.0000f));
            second = new ZeroitAsanaCompass.MarkerSet();
            second.Add(ZeroitAsanaCompass.MakeArgb(0.8f, secondHandColor), Color.Black, 1.0f,
                       (PointF[])secondPoly.ToArray(typeof(PointF)), 0.0f, MouseButtons.None, true);
            cc.MarkerSets.Add(second);

            // Hour text - roman numerals
            Font  hourFont  = new Font("Times New Roman", 10.0f, FontStyle.Bold);
            Brush hourBrush = new SolidBrush(hourTextColor);
            float size      = 0.18f;
            float pos       = 0.90f;

            cc.TextItems.Add(hourFont, hourBrush, size, "12", pos, 90.0f, 0.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "1", pos, 60.0f, -30.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "2", pos, 30.0f, -60.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "3", pos, 0.0f, -90.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "4", pos, -30.0f, -120.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "5", pos, -60.0f, -150.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "6", pos, -90.0f, -180.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "7", pos, -120.0f, -210.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "8", pos, -150.0f, -240.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "9", pos, -180.0f, -270.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "10", pos, -210.0f, -300.0f);
            cc.TextItems.Add(hourFont, hourBrush, size, "11", pos, -240.0f, -330.0f);
        }
Beispiel #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AsanaColorDialog"/> class.
        /// </summary>
        public AsanaColorDialog()
        {
            InitializeComponent();

            // Major ticks are counts on the lock
            cc.MajorTicks         = 64;
            cc.MajorTickStart     = 0.08f;
            cc.MajorTickSize      = 0.80f;
            cc.MajorTickThickness = 0.6f;

            cc.MinorTicksPerMajorTick = 0; // no minor ticks

            // Text at end of ticks
            cc.TextItems.Clear();
            float pos = 0.92f;
            Font  f   = new Font("Arial", 7.0f);

            for (int i = 0; i < cc.MajorTicks; i++)
            {
                int val = i * (256 / cc.MajorTicks);
                cc.TextItems.Add(f, Color.Black, val.ToString(), pos, cc.GetMajorTickAngle(i));
            }

            // Rings line up with the locks
            cc.Rings.Clear();
            innerRing = new ZeroitAsanaCompass.Ring(0.08f, Color.White);
            cc.Rings.Add(innerRing);
            cc.Rings.Add(0.26f, Color.Gainsboro);
            cc.Rings.Add(0.26f, Color.LightGray);
            cc.Rings.Add(0.26f, Color.Gainsboro);
            cc.Rings.Add(0.12f, Color.LightGray);
            outerRing = new ZeroitAsanaCompass.Ring(9.99f, Color.White);
            cc.Rings.Add(outerRing);

            // Inner lock
            cc.MarkerSets.Clear();

            ArrayList redBigPoints = new ArrayList();

            redBigPoints.Add(new PointF(0.10f, 0.00f));
            redBigPoints.Add(new PointF(0.32f, 0.10f));
            redBigPoints.Add(new PointF(0.32f, -0.10f));
            redBigPoints.Add(new PointF(0.10f, 0.00f));
            PointF[] redBigPoly  = (PointF[])redBigPoints.ToArray(typeof(PointF));
            Color    redBigColor = ZeroitAsanaCompass.MakeArgb(0.8f, Color.Red);

            ArrayList redSmallPoints = new ArrayList();

            redSmallPoints.Add(new PointF(0.12f, 0.00f));
            redSmallPoints.Add(new PointF(0.30f, 0.05f));
            redSmallPoints.Add(new PointF(0.30f, -0.05f));
            redSmallPoints.Add(new PointF(0.12f, 0.00f));
            PointF[] redSmallPoly  = (PointF[])redSmallPoints.ToArray(typeof(PointF));
            Color    redSmallColor = ZeroitAsanaCompass.MakeArgb(0.6f, Color.Red);

            red = new ZeroitAsanaCompass.MarkerSet();
            red.Add(redBigColor, Color.Black, 3.0f, redBigPoly, 0.0f, MouseButtons.Left);
            red.Add(redSmallColor, Color.Black, 1.0f, redSmallPoly, 45.0f, MouseButtons.None);
            red.Add(redBigColor, Color.Black, 1.5f, redBigPoly, 90.0f, MouseButtons.Left);
            red.Add(redSmallColor, Color.Black, 1.0f, redSmallPoly, 135.0f, MouseButtons.None);
            red.Add(redBigColor, Color.Black, 1.5f, redBigPoly, 180.0f, MouseButtons.Left);
            red.Add(redSmallColor, Color.Black, 1.0f, redSmallPoly, 225.0f, MouseButtons.None);
            red.Add(redBigColor, Color.Black, 1.5f, redBigPoly, 270.0f, MouseButtons.Left);
            red.Add(redSmallColor, Color.Black, 1.0f, redSmallPoly, 315.0f, MouseButtons.None);

            cc.MarkerSets.Add(red);

            // Middle lock
            ArrayList greenBigPoints = new ArrayList();

            greenBigPoints.Add(new PointF(0.36f, 0.00f));
            greenBigPoints.Add(new PointF(0.58f, 0.10f));
            greenBigPoints.Add(new PointF(0.58f, -0.10f));
            greenBigPoints.Add(new PointF(0.36f, 0.00f));
            PointF[] greenBigPoly  = (PointF[])greenBigPoints.ToArray(typeof(PointF));
            Color    greenBigColor = ZeroitAsanaCompass.MakeArgb(0.8f, Color.Green);

            ArrayList greenSmallPoints = new ArrayList();

            greenSmallPoints.Add(new PointF(0.38f, 0.00f));
            greenSmallPoints.Add(new PointF(0.56f, 0.05f));
            greenSmallPoints.Add(new PointF(0.56f, -0.05f));
            greenSmallPoints.Add(new PointF(0.38f, 0.00f));
            PointF[] greenSmallPoly  = (PointF[])greenSmallPoints.ToArray(typeof(PointF));
            Color    greenSmallColor = ZeroitAsanaCompass.MakeArgb(0.6f, Color.Green);

            green = new ZeroitAsanaCompass.MarkerSet();
            green.Add(greenBigColor, Color.Black, 3.0f, greenBigPoly, 0.0f, MouseButtons.Left);
            green.Add(greenSmallColor, Color.Black, 1.0f, greenSmallPoly, 30.0f, MouseButtons.None);
            green.Add(greenBigColor, Color.Black, 1.5f, greenBigPoly, 60.0f, MouseButtons.Left);
            green.Add(greenSmallColor, Color.Black, 1.0f, greenSmallPoly, 90.0f, MouseButtons.None);
            green.Add(greenBigColor, Color.Black, 1.5f, greenBigPoly, 120.0f, MouseButtons.Left);
            green.Add(greenSmallColor, Color.Black, 1.0f, greenSmallPoly, 150.0f, MouseButtons.None);
            green.Add(greenBigColor, Color.Black, 1.5f, greenBigPoly, 180.0f, MouseButtons.Left);
            green.Add(greenSmallColor, Color.Black, 1.0f, greenSmallPoly, 210.0f, MouseButtons.None);
            green.Add(greenBigColor, Color.Black, 1.5f, greenBigPoly, 240.0f, MouseButtons.Left);
            green.Add(greenSmallColor, Color.Black, 1.0f, greenSmallPoly, 270.0f, MouseButtons.None);
            green.Add(greenBigColor, Color.Black, 1.5f, greenBigPoly, 300.0f, MouseButtons.Left);
            green.Add(greenSmallColor, Color.Black, 1.0f, greenSmallPoly, 330.0f, MouseButtons.None);

            cc.MarkerSets.Add(green);

            // Middle lock
            ArrayList blueBigPoints = new ArrayList();

            blueBigPoints.Add(new PointF(0.62f, 0.00f));
            blueBigPoints.Add(new PointF(0.84f, 0.10f));
            blueBigPoints.Add(new PointF(0.84f, -0.10f));
            blueBigPoints.Add(new PointF(0.62f, 0.00f));
            PointF[] blueBigPoly  = (PointF[])blueBigPoints.ToArray(typeof(PointF));
            Color    blueBigColor = ZeroitAsanaCompass.MakeArgb(0.8f, Color.Blue);

            ArrayList blueSmallPoints = new ArrayList();

            blueSmallPoints.Add(new PointF(0.64f, 0.00f));
            blueSmallPoints.Add(new PointF(0.82f, 0.05f));
            blueSmallPoints.Add(new PointF(0.82f, -0.05f));
            blueSmallPoints.Add(new PointF(0.64f, 0.00f));
            PointF[] blueSmallPoly  = (PointF[])blueSmallPoints.ToArray(typeof(PointF));
            Color    blueSmallColor = ZeroitAsanaCompass.MakeArgb(0.6f, Color.Blue);

            blue = new ZeroitAsanaCompass.MarkerSet();
            blue.Add(blueBigColor, Color.Black, 3.0f, blueBigPoly, 0.0f, MouseButtons.Left);
            blue.Add(blueSmallColor, Color.Black, 1.0f, blueSmallPoly, 22.5f, MouseButtons.None);
            blue.Add(blueBigColor, Color.Black, 1.5f, blueBigPoly, 45.0f, MouseButtons.Left);
            blue.Add(blueSmallColor, Color.Black, 1.0f, blueSmallPoly, 67.5f, MouseButtons.None);
            blue.Add(blueBigColor, Color.Black, 1.5f, blueBigPoly, 90.0f, MouseButtons.Left);
            blue.Add(blueSmallColor, Color.Black, 1.0f, blueSmallPoly, 112.5f, MouseButtons.None);
            blue.Add(blueBigColor, Color.Black, 1.5f, blueBigPoly, 135.0f, MouseButtons.Left);
            blue.Add(blueSmallColor, Color.Black, 1.0f, blueSmallPoly, 157.5f, MouseButtons.None);
            blue.Add(blueBigColor, Color.Black, 1.5f, blueBigPoly, 180.0f, MouseButtons.Left);
            blue.Add(blueSmallColor, Color.Black, 1.0f, blueSmallPoly, 202.5f, MouseButtons.None);
            blue.Add(blueBigColor, Color.Black, 1.5f, blueBigPoly, 225.0f, MouseButtons.Left);
            blue.Add(blueSmallColor, Color.Black, 1.0f, blueSmallPoly, 247.5f, MouseButtons.None);
            blue.Add(blueBigColor, Color.Black, 1.5f, blueBigPoly, 270.0f, MouseButtons.Left);
            blue.Add(blueSmallColor, Color.Black, 1.0f, blueSmallPoly, 292.5f, MouseButtons.None);
            blue.Add(blueBigColor, Color.Black, 1.5f, blueBigPoly, 315.0f, MouseButtons.Left);
            blue.Add(blueSmallColor, Color.Black, 1.0f, blueSmallPoly, 337.5f, MouseButtons.None);

            cc.MarkerSets.Add(blue);

            UpdateColor();
        }