// Enumerations.cs
// Copyright (c) 2017 Bentley Systems, Incorporated. All Rights Reserved.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Haestad.Framework.UI.Integration
{
    #region Public Enumerations
    public enum ButtonSize
    {
        Small,      // 16x16 icon, no label
        Medium,     // 16x16 icon, label
        Large       // 32x32 icon, label
    }

    public enum ButtonStyle
    {
        Regular,            // Every day button (with image)
        RegularTextOnly,    // Every day button (ignores images)
        DropDown,           // Button with additional drop down menu
        DropDownOnly,       // Button that when clicked shows a drop down; the button has no command of its own.
        DropDownToggle,     // Button with additional drop down menu, whose default command (button command) changes with the last menu item selected
        Toggle,             // Regular toggle button
    }

    /// <summary>
    /// Defines possible levels of keyboard navigation support for the Telerik ribbon.
    /// If altering this enumeration, must correct code in KeyboardNavigationSupportLevelIncludes()
    /// </summary>
    public enum KeyNavSupportFlags
    {
        None = 0,

        //////// Telerik free support  //////////////////////////////////////////////////////////////////////////////////////////////////////////////
        HotKeys = 1,    // Custom implemented RibbonHotKey support (independent of Telerik).

        /////// Key Tip free support (initializes the KeyTipService, to get keyboard navigation, but does not use key tips) /////////////////////////
        RibbonNavigation = 2,       // Telerik supported ribbon navigation through ribbon controls; built in, but of dubious quality. 
                                    // Does not show key tips.

        /////// Key tips  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        TabsAndControls = 4,
        Menus = 8,
        QuickAccessToolbar = 16,
        DialogLaunchers = 32,
        Backstage = 64,

        // Note: <whar> Must be updated if any additional flags are added.
        All = 127,
    }

    public enum RibbonUICommandLinkedElementTypes
    {
        None = 0,
        RegularButtons = 1,
        ToggleButtons = 2,
        DropDownOnlyButtons = 4,
        DropDownButtons = 8,
        DropDownToggleButtons = 16,
        Menus = 32,
        CheckedMenus = 64,
        ToggleMenus = 128,
        RibbonGroups = 256,
        BackstageItems = 512,
        All = 1023,
    }

    public enum RibbonLocation
    {
        RibbonTab = 0,
        Backstage = 1,
        QuickAccessToolbar = 2,
        DialogLauncher = 3,
        TopTabStrip = 4,
    }
    #endregion

    #region Internal Enumerations
    internal enum TitleBarButtonType
    {
        Close,
        MaximizeRestore,
        Minimize,
        Help
    }

    internal enum MouseNonClientAreaPosition
    {
        TopLeft,
        Top,
        TopRight,
        Left,
        Right,
        BottomLeft,
        Bottom,
        BottomRight,
        SystemMenu,
        TitleBar,
        None // Client area.
    }

    internal enum SearchMatchRank
    {
        ExactMatch = 0,
        StartsWith = 100000000,
        Contains = 200000000,
    }

    internal enum KeyEventType
    {
        KeyDown,
        KeyUp,
        SysKeyDown,
        Other
    }
    #endregion
}
