Compare with Previous | Blame | View Log
-- Grab a copy of the local data local addonName, addonData = ... local Translate = addonData.Translate XMagePortsDB = { UpdateInterval = 30, FontSize = 12, CooldownSize = 20, NotAvailableAlpha = 0.1, NotIdealAlpha = 0.5, AvailableAlpha = 1.0, DisplayText = true, } local CreateMenuItems = function(frame,level,menuList) local info if ( menuList == nil ) then info = UIDropDownMenu_CreateInfo() info.text = Translate["OPTIONS"] info.isTitle = true info.notCheckable = true UIDropDownMenu_AddButton(info,level) info = UIDropDownMenu_CreateInfo() info.text = Translate["UPDATE_INTERVAL"] info.hasArrow = true info.menuList = "UpdateInterval" info.notCheckable = true UIDropDownMenu_AddButton(info,level) info = UIDropDownMenu_CreateInfo() info.text = Translate["FONT_SIZE"] info.hasArrow = true info.menuList = "FontSize" info.notCheckable = true UIDropDownMenu_AddButton(info,level) info = UIDropDownMenu_CreateInfo() info.text = Translate["COOLDOWN_SIZE"] info.hasArrow = true info.menuList = "CooldownSize" info.notCheckable = true UIDropDownMenu_AddButton(info,level) info = UIDropDownMenu_CreateInfo() info.text = Translate["NOT_AVAILABLE_ALPHA"] info.hasArrow = true info.menuList = "NotAvailableAlpha" info.notCheckable = true UIDropDownMenu_AddButton(info,level) info = UIDropDownMenu_CreateInfo() info.text = Translate["NOT_IDEAL_ALPHA"] info.hasArrow = true info.menuList = "NotIdealAlpha" info.notCheckable = true UIDropDownMenu_AddButton(info,level) info = UIDropDownMenu_CreateInfo() info.text = Translate["AVAILABLE_ALPHA"] info.hasArrow = true info.menuList = "AvailableAlpha" info.notCheckable = true UIDropDownMenu_AddButton(info,level) if ( not IsAddOnLoaded("nUI") ) then info = UIDropDownMenu_CreateInfo() if ( addonData.XMPFrame:IsShown() ) then info.text = Translate["COLLAPSE"] else info.text = Translate["EXPAND"] end info.hasArrow = false info.menuList = nil info.notCheckable = true info.func = function() if addonData.XMPFrame:IsShown() then addonData.XMPFrame:Hide() else addonData.XMPFrame:Show() end addonData.OptionsButton:Show() end UIDropDownMenu_AddButton(info,level) end elseif ( menuList == "UpdateInterval" ) then for i,v in pairs({ 10,20,30,40,50,60 }) do info = UIDropDownMenu_CreateInfo() info.value = v info.text = v info.checked = ( v == XMagePortsDB.UpdateInterval ) info.notCheckable = false info.func = function() XMagePortsDB.UpdateInterval = v addonData:UpdateText(addonData.XMPFrame) end UIDropDownMenu_AddButton(info,level) end elseif ( menuList == "FontSize" ) then for i,v in pairs({ 10,12,14,16,18,20 }) do info = UIDropDownMenu_CreateInfo() info.value = v info.text = v info.checked = ( v == XMagePortsDB.FontSize ) info.notCheckable = false info.func = function() XMagePortsDB.FontSize = v addonData:UpdateText(addonData.XMPFrame) end UIDropDownMenu_AddButton(info,level) end elseif ( menuList == "CooldownSize" ) then for i,v in pairs({ 15,20,25,30 }) do info = UIDropDownMenu_CreateInfo() info.value = v info.text = v info.checked = ( v == XMagePortsDB.CooldownSize ) info.notCheckable = false info.func = function() XMagePortsDB.CooldownSize = v addonData:UpdateText(addonData.XMPFrame) end UIDropDownMenu_AddButton(info,level) end elseif ( menuList == "NotAvailableAlpha" ) then for i,v in pairs({ 0.1,0.2,0.3,0.4,0.5 }) do info = UIDropDownMenu_CreateInfo() info.value = v info.text = v info.checked = ( v == XMagePortsDB.NotAvailableAlpha ) info.notCheckable = false info.func = function() XMagePortsDB.NotAvailableAlpha = v addonData:UpdateText(addonData.XMPFrame) end UIDropDownMenu_AddButton(info,level) end elseif ( menuList == "NotIdealAlpha" ) then for i,v in pairs({ 0.3,0.4,0.5,0.6,0.7 }) do info = UIDropDownMenu_CreateInfo() info.value = v info.text = v info.checked = ( v == XMagePortsDB.NotIdealAlpha ) info.notCheckable = false info.func = function() XMagePortsDB.NotIdealAlpha = v addonData:UpdateText(addonData.XMPFrame) end UIDropDownMenu_AddButton(info,level) end elseif ( menuList == "AvailableAlpha" ) then for i,v in pairs({ 0.5,0.6,0.7,0.8,0.9 }) do info = UIDropDownMenu_CreateInfo() info.value = v info.text = v info.checked = ( v == XMagePortsDB.AvailableAlpha ) info.notCheckable = false info.func = function() XMagePortsDB.AvailableAlpha = v addonData:UpdateText(addonData.XMPFrame) end UIDropDownMenu_AddButton(info,level) end end end addonData.CreateMenu = function(self) local menu = CreateFrame("Frame","XMPOptions",self.XMPFrame,"UIDropDownMenuTemplate") menu.displayMode = "MENU" menu.initialize = CreateMenuItems return menu end addonData.CreateOptionsButton = function(self) local frame = CreateFrame("Button","XMP_Options",UIParent,"OptionsButtonTemplate") frame:SetText(addonName) frame:SetWidth(100) frame:SetHeight(20) frame:SetPoint("CENTER",self.XMPFrame,"CENTER",0,0) frame:SetPoint("TOP",self.XMPFrame,"TOP",0,20) frame:Show() frame:SetScript("OnClick", function(self, button, down) ToggleDropDownMenu(1, nil, addonData.OptionsMenu, "cursor", 0, 0) end) frame:RegisterForClicks("LeftButtonUp","RightButtonUp") return frame end