//public selectRangeArea getRowArea(Int32 y)
        //{
        //    cursorVariatorState currentState = state(area.x, y);
        //    appendRole role = getAppendRole(currentState);

        //    return output;
        //}

#pragma warning disable CS1574 // XML comment has cref attribute 'appendType' that could not be resolved
        /// <summary>
        /// Provides complete <see cref="styleShotSet"/> according to x,y coordinates and desired <see cref="aceCommonTypes.enums.appendType"/>.
        /// </summary>
        /// <param name="x">X (horizontal) position relative to <c>selectRangeArea</c> 0,0 point.</param>
        /// <param name="y">Y (vertical) position relative to <c>selectRangeArea</c> 0,0 point.</param>
        /// <param name="type">If <c>appendType.none</c> it will automatically find the best match</param>
        /// <returns></returns>
        public styleShotSet getStyleShot(Int32 x, Int32 y, appendType type = appendType.none)
#pragma warning restore CS1574 // XML comment has cref attribute 'appendType' that could not be resolved
        {
            cursorVariatorState currentState = state(x, y);

            appendRole role = getAppendRole(currentState);

            if (type == appendType.none)
            {
                throw new NotSupportedException("appendType is set to none!");
                //type = role.convertRoleToType();
            }

            acePaletteRole colorToUse = mainPaletteRole;

            if (currentState.useLayoutPalette)
            {
                colorToUse = layoutPaletteRole;
            }

            styleShotSet output = new styleShotSet(role, type, (acePaletteVariationRole)currentState.useColorIndex, colorToUse, currentState.useInvertedForeground, theme);

            return(output);
        }
        /// <summary>
        /// Gets the append role recommandation according to x and y position
        /// </summary>
        /// <returns></returns>
        public virtual appendRole getAppendRole(cursorVariatorState state)
        {
            if (state.isHeadZone)
            {
                if (tableOptionFlags.HasFlag(appendTableOptionFlags.topHeadMerged))
                {
                    return(appendRole.mergedHead);
                }
                else
                {
                    return(appendRole.sectionHead);
                }
            }

            if (state.isHeadZoneExtended)
            {
                return(appendRole.tableColumnHead);
            }

            if (state.isFootZone)
            {
                if (tableOptionFlags.HasFlag(appendTableOptionFlags.footMearged))
                {
                    return(appendRole.mergedFoot);
                }
                else
                {
                    return(appendRole.sectionHead);
                }
            }

            if (state.isLeftZone)
            {
                if (state.isHeadZone)
                {
                    return(appendRole.tableCellNovalue);
                }

                if (state.isHeadZoneExtended)
                {
                    return(appendRole.tableColumnHead);
                }
                return(appendRole.tableColumnHead);
            }
            else if (state.isRightZone)
            {
                if (state.isHeadZone)
                {
                    return(appendRole.tableCellNovalue);
                }

                if (state.isHeadZoneExtended)
                {
                    return(appendRole.tableColumnHead);
                }

                if (state.isMajor)
                {
                    return(appendRole.tableBetween);
                }

                if (state.isMinor)
                {
                    return(appendRole.tableBetween);
                }

                return(appendRole.none);
            }

            return(appendRole.tableCellValue);
        }