Ejemplo n.º 1
0
        /// <summary>
        /// Sets the color use.
        /// </summary>
        /// <param name="output">The output.</param>
        public void setColorUse(cursorVariatorState output)
        {
            if (output.isHeadZone || output.isFootZone)
            {
                output.useInvertedForeground = true;
                output.useLayoutPalette      = true;
                output.useColorIndex         = (Int32)colors.acePaletteVariationRole.header;
                return;
            }
            if (output.isHeadZoneExtended || output.isFootZoneExtended)
            {
                output.useInvertedForeground = true;
                output.useLayoutPalette      = true;
                if (output.isOdd)
                {
                    output.useColorIndex = (Int32)colors.acePaletteVariationRole.odd;
                }
                else
                {
                    output.useColorIndex = (Int32)colors.acePaletteVariationRole.even;
                }
                return;
            }
            if (output.isLeftZone || output.isRightZone)
            {
                output.useLayoutPalette      = true;
                output.useInvertedForeground = true;
                output.useColorIndex         = (Int32)colors.acePaletteVariationRole.heading;
                return;
            }

            output.useLayoutPalette      = false;
            output.useInvertedForeground = false;
            output.useColorIndex         = (Int32)colors.acePaletteVariationRole.normal;

            if (output.isOdd)
            {
                output.useColorIndex = (Int32)colors.acePaletteVariationRole.odd;
            }
            else if (output.isEven)
            {
                output.useColorIndex = (Int32)colors.acePaletteVariationRole.even;
            }

            if (output.isMinor)
            {
                output.useColorIndex++;
            }
            if (output.isMajor)
            {
                output.useColorIndex++;
                output.useColorIndex++;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Returns state of speficied position according to <c>area</c>, <c>headZone</c>, <c>footZone</c> and other parameters.
        /// </summary>
        /// <param name="x">The x.</param>
        /// <param name="y">The y.</param>
        /// <returns></returns>
        public cursorVariatorState state(Int32 x, Int32 y)
        {
            cursorVariatorState output = new zone.cursorVariatorState();

            output.x = x;
            output.y = y;

            if (area == null)
            {
                throw new NotSupportedException("area can't be null! cursorVariator");
            }

            output.isInside  = area.isInside(x, y);
            output.isOutside = !area.isInsideOrEdge(x, y);

            Int32 dX = x - area.x;

            Int32 dY = y - area.y;

            output.isFirst = (dY == area.TopLeft.y);

            output.isLast = (dY == area.BottomRight.y);

            if (output.isInside)
            {
                output.isHeadZone = area.isNearToCorner(x, y, textCursorZoneCorner.Top, headZone);

                if (!output.isHeadZone)
                {
                    output.isHeadZoneExtended = area.isNearToCorner(x, y, textCursorZoneCorner.Top, headZone + headZoneExtension);
                }

                output.isFootZone = area.isNearToCorner(x, y, textCursorZoneCorner.Bottom, footZone);

                if (!output.isFootZone)
                {
                    output.isFootZoneExtended = area.isNearToCorner(x, y, textCursorZoneCorner.Bottom, footZone + footZoneExtension);
                }

                output.isLeftZone  = area.isNearToCorner(x, y, textCursorZoneCorner.Left, leftZone);
                output.isRightZone = area.isNearToCorner(x, y, textCursorZoneCorner.Right, rightZone);

                if (doOdd)
                {
                    output.isOdd = (dY % 2 != 0);
                }
                if (doOdd)
                {
                    output.isEven = !output.isOdd;
                }

                if (minor > 0)
                {
                    output.isMinor = (dY % minor == 0);
                }
                if (major > 0)
                {
                    output.isMajor = (dY % major == 0);
                }
            }
            else
            {
            }

            lastState = output;
            setColorUse(output);

            return(output);
        }