Files
RecipeRadar/OptionsFrame.lua
T

208 lines
5.4 KiB
Lua

function RecipeRadar_OptionsFrame_OnLoad()
UIPanelWindows["RecipeRadarOptionsFrame"] = { area = "center" }
RecipeRadarOptionsFrameHeaderText:SetText(RRS("Recipe Radar"))
end
function RecipeRadar_OptionsFrame_Toggle()
if (RecipeRadarOptionsFrame:IsVisible()) then
RecipeRadarOptionsFrame:Hide()
else
RecipeRadarOptionsFrame:Show()
end
end
function RecipeRadar_OptionsFrame_Init()
RecipeRadarRealmAvailability:SetChecked(
RecipeRadar_Options.RealmAvailability)
RecipeRadarShowMinimapButton:SetChecked(
RecipeRadar_Options.ShowMinimapButton)
RecipeRadarMinimapButtonPositionSlider:SetValue(
RecipeRadar_Options.MinimapButtonPosition)
RecipeRadarAutoSelectRegionButton:SetChecked(
RecipeRadar_Options.AutoSelectRegion)
RecipeRadar_OptionsFrame_AutoSelectRegion_OnClick()
RecipeRadarAutoMapVendorsButton:SetChecked(
RecipeRadar_Options.AutoMapVendors)
end
function RecipeRadar_OptionsFrame_OnShow()
RecipeRadar_OptionsFrame_Init()
UIDropDownMenu_Initialize(RecipeRadar_ContinentDropDown,
RecipeRadar_ContinentDropDown_Init)
UIDropDownMenu_Initialize(RecipeRadar_RegionDropDown,
RecipeRadar_RegionDropDown_Init)
end
function RecipeRadar_OptionsFrame_AutoSelectRegion_OnClick()
if (RecipeRadarAutoSelectRegionButton:GetChecked()) then
PlaySound("igMainMenuOptionCheckBoxOn")
RecipeRadar_Options.AutoSelectRegion = true
RecipeRadar_OptionsFrame_DisableDropDown(RecipeRadar_ContinentDropDown)
RecipeRadar_OptionsFrame_DisableDropDown(RecipeRadar_RegionDropDown)
-- auto-select the current region
RecipeRadar_NewRegion(GetRealZoneText())
UIDropDownMenu_ClearAll(RecipeRadar_ContinentDropDown)
UIDropDownMenu_Initialize(RecipeRadar_ContinentDropDown,
RecipeRadar_ContinentDropDown_Init)
UIDropDownMenu_Initialize(RecipeRadar_RegionDropDown,
RecipeRadar_RegionDropDown_Init)
else
PlaySound("igMainMenuOptionCheckBoxOff")
RecipeRadar_Options.AutoSelectRegion = false
RecipeRadar_OptionsFrame_EnableDropDown(RecipeRadar_ContinentDropDown)
RecipeRadar_OptionsFrame_EnableDropDown(RecipeRadar_RegionDropDown)
end
end
-----------------------------------------------------------------------------
-- Continent/region drop down code
-----------------------------------------------------------------------------
function RecipeRadar_ContinentDropDown_OnLoad()
UIDropDownMenu_ClearAll(this)
UIDropDownMenu_SetWidth(140)
end
function RecipeRadar_ContinentDropDown_Init()
for index, name in RecipeRadar_Continents do
local item = { }
if ((not RecipeRadar_ContinentDropDown.selectedValue and
index == RecipeRadar_Options.CurrentContinent) or
index == RecipeRadar_ContinentDropDown.selectedValue) then
item.checked = 1
end
item.text = name
item.value = index
item.func = RecipeRadar_ContinentDropDown_OnClick
UIDropDownMenu_AddButton(item)
end
if (not RecipeRadar_ContinentDropDown.selectedValue) then
UIDropDownMenu_SetSelectedValue(RecipeRadar_ContinentDropDown,
RecipeRadar_Options.CurrentContinent)
end
end
function RecipeRadar_ContinentDropDown_OnClick()
UIDropDownMenu_SetSelectedValue(RecipeRadar_ContinentDropDown, this.value)
UIDropDownMenu_Initialize(RecipeRadar_RegionDropDown,
RecipeRadar_RegionDropDown_Init)
end
function RecipeRadar_GetContinentIndex(continent)
for index, name in RecipeRadar_Continents do
if (name == continent) then
return index
end
end
return nil
end
function RecipeRadar_RegionDropDown_OnLoad()
UIDropDownMenu_SetWidth(140)
end
function RecipeRadar_RegionDropDown_Init()
local cont = UIDropDownMenu_GetSelectedValue(RecipeRadar_ContinentDropDown)
local regions = { }
if (cont == 0) then
-- create sorted list of relevant instances
table.foreach(RecipeRadar_RegionData,
function (k, v)
if (v.Continent == 0) then
table.insert(regions, k)
end
end)
table.sort(regions)
else
-- otherwise just populate with all the continent's regions
regions = { GetMapZones(cont) }
end
for id, region in regions do
local item = { }
item.text = region
item.value = id
item.func = RecipeRadar_RegionDropDown_OnClick
UIDropDownMenu_AddButton(item)
end
if (cont == RecipeRadar_Options.CurrentContinent) then
UIDropDownMenu_SetSelectedName(RecipeRadar_RegionDropDown,
RecipeRadar_Options.CurrentRegion)
else
UIDropDownMenu_ClearAll(RecipeRadar_RegionDropDown)
end
end
function RecipeRadar_RegionDropDown_OnClick()
UIDropDownMenu_SetSelectedID(RecipeRadar_RegionDropDown, this:GetID())
RecipeRadar_NewRegion(this:GetText())
RecipeRadarListScrollFrameScrollBar:SetValue(0)
RecipeRadar_FrameUpdate()
end
function RecipeRadar_OptionsFrame_DisableDropDown(dropdown)
getglobal(dropdown:GetName().."Text"):SetVertexColor(
GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b)
getglobal(dropdown:GetName().."Button"):Disable()
end
function RecipeRadar_OptionsFrame_EnableDropDown(dropdown)
getglobal(dropdown:GetName().."Text"):SetVertexColor(
HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b)
getglobal(dropdown:GetName().."Button"):Enable()
end