-- Copyright © 2024 @Groick (Twitch). All rights reserved.
local function L(key, ...) return EasyOptions:Localize(key, ...) end
function EasyOptions:GetOptionItems_Tooltips(parentOptionItems)
  local optionItems = EasyOptions:GetOptionItems_Tooltips_GetItems()
  optionItems.Name = L("Tooltips")
  optionItems.Parent = parentOptionItems
  optionItems.Children = nil
  return optionItems
end
function EasyOptions:GetOptionItems_Tooltips_GetItems()
  return { -- [1] Name, [2] Text, [3] TooltipText, [4] PositionInfo, [5] Type, [6+] [Type Specific]
    {"TooltipsTabControl", nil, nil, 0, "StartTabControl", false}, 
      {nil, L("Standard Tooltips"), nil, 0, "StartTab"}, 
        {"EnableStandardTooltips", L("Enable Standard Tooltips"), L("Indicates whether to enable standard tooltips that are managed by EasyOptions."), 0, "CheckBox", true}, 
        {nil, L("Standard Tooltip Position"), L("Specifies settings for the position of standard tooltips that are managed by EasyOptions."), 1, "StartGroupBox"}, 
          {nil, nil, nil, 0, "StartRow", nil}, 
          {"TooltipAnchorPosition", L("Anchor Position"), L("Specifies the anchor position of standard tooltips that are managed by EasyOptions."), 0, "DropDown", "ANCHOR_TOPLEFT", {{"ANCHOR_LEFT", L("Left")}, {"ANCHOR_TOPLEFT", L("Top Left")}, {"ANCHOR_TOP", L("Top")}, {"ANCHOR_TOPRIGHT", L("Top Right")}, {"ANCHOR_RIGHT", L("Right")}, {"ANCHOR_BOTTOMRIGHT", L("Bottom Right")}, {"ANCHOR_BOTTOM", L("Bottom")}, {"ANCHOR_BOTTOMLEFT", L("Bottom Left")}, {"ANCHOR_CURSOR", L("Cursor")}}}, 
          {"TooltipPositionOffsetX", L("Offset X"), L("Specifies the x-offset of standard tooltips that are managed by EasyOptions.\n\nThe position of the tooltip frame will always be limited to the screen bounds.\n\nThis setting has no effect if the tooltip anchor position is set to Cursor."), 0, "Slider", 0, -1000, 1000, 1, "%i"}, 
          {"TooltipPositionOffsetY", L("Offset Y"), L("Specifies the y-offset of standard tooltips that are managed by EasyOptions.\n\nThe position of the tooltip frame will always be limited to the screen bounds.\n\nThis setting has no effect if the tooltip anchor position is set to Cursor."), 0, "Slider", 4, -1000, 1000, 1, "%i"}, 
          {nil, nil, nil, 0, "EndRow"}, 
        {nil, nil, nil, 0, "EndGroupBox"}, 
      {nil, nil, nil, 0, "EndTab"}, 
      {nil, L("Minimap Button Tooltips"), nil, 0, "StartTab"}, 
        {"EnableMinimapButtonTooltips", L("Enable Minimap Button Tooltips"), L("Indicates whether to enable minimap button tooltips that are managed by EasyOptions."), 0, "CheckBox", true}, 
        {nil, L("Minimap Button Tooltip Position"), L("Specifies settings for the position of minimap button tooltips that are managed by EasyOptions."), 1, "StartGroupBox"}, 
          {nil, nil, nil, 0, "StartRow", nil}, 
          {"MinimapButtonTooltipAnchorPosition", L("Anchor Position"), L("Specifies the anchor position of minimap button tooltips that are managed by EasyOptions."), 0, "DropDown", "ANCHOR_BOTTOMLEFT", {{"ANCHOR_LEFT", L("Left")}, {"ANCHOR_TOPLEFT", L("Top Left")}, {"ANCHOR_TOP", L("Top")}, {"ANCHOR_TOPRIGHT", L("Top Right")}, {"ANCHOR_RIGHT", L("Right")}, {"ANCHOR_BOTTOMRIGHT", L("Bottom Right")}, {"ANCHOR_BOTTOM", L("Bottom")}, {"ANCHOR_BOTTOMLEFT", L("Bottom Left")}, {"ANCHOR_CURSOR", L("Cursor")}}}, 
          {"MinimapButtonTooltipPositionOffsetX", L("Offset X"), L("Specifies the x-offset of minimap button tooltips that are managed by EasyOptions.\n\nThe position of the tooltip frame will always be limited to the screen bounds.\n\nThis setting has no effect if the tooltip anchor position is set to Cursor."), 0, "Slider", 0, -1000, 1000, 1, "%i"}, 
          {"MinimapButtonTooltipPositionOffsetY", L("Offset Y"), L("Specifies the y-offset of minimap button tooltips that are managed by EasyOptions.\n\nThe position of the tooltip frame will always be limited to the screen bounds.\n\nThis setting has no effect if the tooltip anchor position is set to Cursor."), 0, "Slider", 30, -1000, 1000, 1, "%i"}, 
          {nil, nil, nil, 0, "EndRow"}, 
        {nil, nil, nil, 0, "EndGroupBox"}, 
      {nil, nil, nil, 0, "EndTab"}, 
    {nil, nil, nil, 0, "EndTabControl"}, 
    {}, 
    {nil, L("Appearance"), L("Specifies settings that affect the appearance of tooltips that are managed by EasyOptions."), 0, "StartGroupBox"}, 
      {"ShowTooltipTitle", L("Show Tooltip Title"), L("Indicates whether to include a title in tooltips that are managed by EasyOptions."), 0, "CheckBox", true}, 
        {"TooltipTitleColor", L("Tooltip Title Color"), L("Specifies the color of titles in tooltips that are managed by EasyOptions."), 1, "ColorPicker", {(255 / 255), (255 / 255), (255 / 255)}}, -- WoW's tooltips use white for the title and EasyOptions.Fields.DefaultTitleColor for the text.
      {"TooltipTextColor", L("Tooltip Text Color"), L("Specifies the color of text in the body of tooltips that are managed by EasyOptions."), 0, "ColorPicker", EasyOptions.Fields.DefaultTitleColor}, -- WoW's tooltips use white for the title and EasyOptions.Fields.DefaultTitleColor for the text.
      {"TooltipAlternateTextColor", L("Tooltip Alternate Text Color (Requires Reload UI)"), L("Specifies the alternate color of text in the body of tooltips that are managed by EasyOptions."), 0, "ColorPicker", EasyOptions.Fields.DefaultAlternateTextColor}, 
      {"SwapTooltipTextColors", L("Swap Tooltip Text Colors"), L("Indicates whether to swap the tooltip title and text colors."), 0, "CheckBox", false}, 
      {nil, nil, nil, 0, "ReloadUIButton", nil, nil}, 
    {nil, nil, nil, 0, "EndGroupBox"}, 
    {}, 
    {nil, L("Behavior"), L("Specifies settings that determine the behavior of tooltips that are managed by EasyOptions."), 0, "StartGroupBox"}, 
      {"AutoIncludeRightClickToResetMessageInTooltips", L("Automatically include \"Right click to reset\" message"), L("Indicates whether the \"Right click to reset\" message is automatically included in a tooltip if the control that is displaying a tooltip can be right clicked to reset the control to its default value."), 0, "CheckBox", true}, 
      {"AutoHideTooltipWhenShowDialogWindow", L("Automatically hide tooltip when show dialog window"), L("Indicates whether a displayed tooltip should be hidden when a dialog window is shown by EasyOptions to help ensure that the tooltip does not hide the dialog window."), 0, "CheckBox", true}, 
      {}, 
      {nil, L("DropDown Controls"), L("Specifies settings for tooltips of DropDown controls that are managed by EasyOptions."), 0, "StartGroupBox"}, 
        {nil, nil, nil, 0, "StartRow", nil}, 
        {"EnableTooltips_DropDown_Label", L("Enable Label Tooltips"), L("Indicates whether to display tooltips that are managed by EasyOptions when the mouse cursor is over the label of a DropDown control."), 0, "CheckBox", true}, 
        {"EnableTooltips_DropDown_Control", L("Enable Control Tooltips"), L("Indicates whether to display tooltips that are managed by EasyOptions when the mouse cursor is over a DropDown control."), 0, "CheckBox", true}, 
        {nil, nil, nil, 0, "EndRow"}, 
      {nil, nil, nil, 0, "EndGroupBox"}, 
      {nil, L("TextBox Controls"), L("Specifies settings for tooltips of TextBox controls that are managed by EasyOptions."), 0, "StartGroupBox"}, 
        {nil, nil, nil, 0, "StartRow", nil}, 
        {"EnableTooltips_TextBox_Label", L("Enable Label Tooltips"), L("Indicates whether to display tooltips that are managed by EasyOptions when the mouse cursor is over the label of a TextBox control."), 0, "CheckBox", true}, 
        {"EnableTooltips_TextBox_Control", L("Enable Control Tooltips"), L("Indicates whether to display tooltips that are managed by EasyOptions when the mouse cursor is over a TextBox control."), 0, "CheckBox", true}, 
        {nil, nil, nil, 0, "EndRow"}, 
      {nil, nil, nil, 0, "EndGroupBox"}, 
      {nil, L("Slider Controls"), L("Specifies settings for tooltips of Slider controls that are managed by EasyOptions."), 0, "StartGroupBox"}, 
        {nil, nil, nil, 0, "StartRow", nil}, 
        {"EnableTooltips_Slider_Label", L("Enable Label Tooltips"), L("Indicates whether to display tooltips that are managed by EasyOptions when the mouse cursor is over the label of a Slider control."), 0, "CheckBox", false}, 
        {"EnableTooltips_Slider_Control", L("Enable Control Tooltips"), L("Indicates whether to display tooltips that are managed by EasyOptions when the mouse cursor is over a Slider control."), 0, "CheckBox", true}, 
        {nil, nil, nil, 0, "EndRow"}, 
      {nil, nil, nil, 0, "EndGroupBox"}, 
    {nil, nil, nil, 0, "EndGroupBox"}, 
  }
end
