--[[ Bhaldie Recommended Level UI Panel: Helps you configure your Mod. Website: http://wow.kingofnothin.net/ Author: Bhaldie (bhaldiemoveIT@kingofnothin.net) Contributors: Pkp - Some initial xml work. Trentin and Grayhoof - I "borrowed" a lot of the techniques and some code used in the options frame of MonkeyBuddy and ScrollingCombatText. It was such an excellent implementation that I just had to use it. --]] -- define the dialog box for reseting config StaticPopupDialogs["BRL_RESET_ALL"] = { text = TEXT(BRL_RESET_ALL_TEXT), button1 = TEXT(OKAY), button2 = TEXT(CANCEL), OnAccept = function() BRL_Reset_Everything(); BRL_UI_Panel_Refresh(); end, timeout = 0, exclusive = 1 }; -- this array is used to init the check buttons local BRL_CheckButtons = { }; BRL_CheckButtons[BRL_ZONE_INFO_ENABLE] = { id = 1, strVar = "zone_info_enable", pSlashCommand = BRL_Zone_Info_Enable }; BRL_CheckButtons[BRL_TOOLTIP_ENABLE] = { id = 2, strVar = "tooltip_enable", pSlashCommand = BRL_Tooltip_Enable }; BRL_CheckButtons[BRL_MAP_TEXT_ENABLE] = { id = 3, strVar = "map_text_enable", pSlashCommand = BRL_Map_Text_Enable }; BRL_CheckButtons[BRL_TOOLTIP_OFFSET_LEFT] = { id = 4, strVar = "tooltip_offset_left", pSlashCommand = BRL_Tooltip_Offset_Left }; BRL_CheckButtons[BRL_TOOLTIP_OFFSET_BOTTOM] = { id = 5, strVar = "tooltip_offset_bottom", pSlashCommand = BRL_Tooltip_Offset_Bottom }; BRL_CheckButtons[BRL_SHOW_TOOLTIP_FACTION] = { id = 6, strVar = "show_tooltip_faction", pSlashCommand = BRL_Show_Tooltip_Faction }; BRL_CheckButtons[BRL_SHOW_TOOLTIP_INSTANCE] = { id = 7, strVar = "show_tooltip_instance", pSlashCommand = BRL_Show_Tooltip_Instance }; BRL_CheckButtons[BRL_SHOW_TOOLTIP_CONTINENT] = { id = 8, strVar = "show_tooltip_continent", pSlashCommand = BRL_Show_Tooltip_Continent }; local BRL_Sliders = { }; BRL_Sliders[BRL_BORDER_ALPHASLIDER] = { id = 1, strVar = "border_alpha", pSlashCommand = BRL_Border_Alpha, minValue = 0.0, maxValue = 1.0, valueStep = .01, minText="0%", maxText="100%", }; function BRL_UI_Panel_OnLoad() this:RegisterEvent("VARIABLES_LOADED"); -- Add BRL_Frame to the UIPanelWindows list UIPanelWindows["BRL_Frame"] = {area = "center", pushable = 0}; BRL_Frame_TitleText:SetTextColor(1.0, 0.8, 0.0); -- Slash commands for UI Window open. SlashCmdList["BRL_UI_PANEL"] = BRL_UI_Panel_SlashHandler; SLASH_BRL_UI_PANEL1 = "/brlconfig"; end function BRL_UI_Panel_SlashHandler() ShowUIPanel(BRL_Frame); BRL_Main_Frame:Show(); BRL_UI_Panel_Refresh(); end function BRL_OnEvent() if (event == "VARIABLES_LOADED") then -- Add Recommended Level to myAddOns if (myAddOnsFrame_Register) then myAddOnsFrame_Register ( {name = 'BMRecLevel', version = BMRECLEVEL_VERSION, optionsframe = 'BRL_Frame', category = MYADDONS_CATEGORY_OTHERS } ); end end end function BRL_Frame_OnClick() ShowUIPanel(BRL_Frame); BRL_Main_Frame:Show(); BRL_UI_Panel_Refresh(); end function BRL_OnShow() ShowUIPanel(BRL_Frame); BRL_Main_Frame:Show(); BRL_UI_Panel_Refresh(); end --Called when option page loads function BRL_UI_Panel_Refresh() -- Initial Values local button, string, checked; BRL_STARTUP.m_strPlayer = GetCVar("realmName") .. "|" .. UnitName("player"); -- Setup check buttons for key, value in BRL_CheckButtons do button = getglobal("BRL_Check" .. value.id); string = getglobal("BRL_Check" .. value.id .. "Text"); checked = nil; button.disabled = nil; --Check Box if (BRL_CONFIG[BRL_STARTUP.m_strPlayer][value.strVar] == true) then checked = 1; else checked = 0; end --DEFAULT_CHAT_FRAME:AddMessage("Item Checked: " .. button); button:SetChecked(checked); string:SetText(key); button.pSlashCommand = value.pSlashCommand; end local slider, string, low, high; -- Setup Sliders for key, value in BRL_Sliders do slider = getglobal("BRL_Slider"..value.id); string = getglobal("BRL_Slider"..value.id.."Text"); low = getglobal("BRL_Slider"..value.id.."Low"); high = getglobal("BRL_Slider"..value.id.."High"); slider.id = value.id; slider.strVar = value.strVar; slider.pSlashCommand = value.pSlashCommand; --OptionsFrame_EnableSlider(slider); slider:SetMinMaxValues(value.minValue, value.maxValue); slider:SetValueStep(value.valueStep); slider:SetValue(BRL_CONFIG[BRL_STARTUP.m_strPlayer][value.strVar]); string:SetText(key); low:SetText(value.minText); high:SetText(value.maxText); end end function BRL_CheckButton_OnClick() local bChecked; if (this:GetChecked()) then bChecked = true; else bChecked = false; end this.pSlashCommand(bChecked,this:GetID()); end function BRL_Slider_OnValueChanged() BRL_CONFIG[BRL_STARTUP.m_strPlayer][this.strVar] = this:GetValue(); this.pSlashCommand(this:GetValue()); -- set the tool tip text if (this:GetValue() == floor(this:GetValue())) then GameTooltip:SetText(format("%d", this:GetValue())); else GameTooltip:SetText(format("%.2f", this:GetValue())); end end function BRL_Slider_OnEnter() -- put the tool tip in the default position GameTooltip:SetOwner(this, "ANCHOR_CURSOR"); -- set the tool tip text if (this:GetValue() == floor(this:GetValue())) then GameTooltip:SetText(format("%d", this:GetValue())); else GameTooltip:SetText(format("%.2f", this:GetValue())); end GameTooltip:Show(); end function BRL_Slider_OnLeave() GameTooltip:Hide(); end