local MAJOR, MINOR = "LibAddonMenu-1.0-to-2.0", 1 local lam, oldminor = LibStub:NewLibrary(MAJOR, MINOR) if not lam then return end --the same or newer version of this lib is already loaded into memory local lam2 = LibStub("LibAddonMenu-2.0") lam.optionControls = {} function lam:CreateControlPanel(controlPanelID, controlPanelName) local data = { type = "panel", --Remove coloring from the name for addon list name = controlPanelName:gsub("%|[Cc]......",""):gsub("%|[Rr]",""), displayName = text } lam2:RegisterAddonPanel(controlPanelName, data) lam.optionControls[controlPanelName] = {} return controlPanelName end function lam:AddHeader(panelID, controlName, text) local data = { type = "header", name = text } table.insert(lam.optionControls[panelID], data) lam2:RegisterOptionControls(panelID, lam.optionControls[panelID]) end function lam:AddSlider(panelID, controlName, text, tooltip, minValue, maxValue, step, getFunc, setFunc, warning, warningText) local data = { type = "slider", name = text, tooltip = tooltip, min = minValue, max = maxValue, step = step, getFunc = getFunc, setFunc = setFunc, warning = warningText } table.insert(lam.optionControls[panelID], data) end function lam:AddDropdown(panelID, controlName, text, tooltip, validChoices, getFunc, setFunc, warning, warningText) local data = { type = "dropdown", name = text, tooltip = tooltip, choices = validChoices, getFunc = getFunc, setFunc = setFunc, warning = warningText } table.insert(lam.optionControls[panelID], data) end function lam:AddCheckbox(panelID, controlName, text, tooltip, getFunc, setFunc, warning, warningText) local data = { type = "checkbox", name = text, tooltip = tooltip, getFunc = getFunc, setFunc = setFunc, warning = warningText } table.insert(lam.optionControls[panelID], data) end function lam:AddColorPicker(panelID, controlName, text, tooltip, getFunc, setFunc, warning, warningText) local data = { type = "colorpicker", name = text, tooltip = tooltip, getFunc = getFunc, setFunc = setFunc, warning = warningText } table.insert(lam.optionControls[panelID], data) end function lam:AddEditBox(panelID, controlName, text, tooltip, isMultiLine, getFunc, setFunc, warning, warningText) local data = { type = "editbox", name = text, tooltip = tooltip, getFunc = getFunc, setFunc = setFunc, isMultiLine = isMultiLine, warning = warningText } table.insert(lam.optionControls[panelID], data) end function lam:AddButton(panelID, controlName, text, tooltip, onClick, warning, warningText) local data = { type = "button", name = text, tooltip = tooltip, func = onClick, warning = warningText } table.insert(lam.optionControls[panelID], data) end function lam:AddDescription(panelID, controlName, text, titleText) local data = { type = "description", title = titleText, text = text } table.insert(lam.optionControls[panelID], data) end function lam:AddSubMenu(panelID, controlName, text, tooltip) local subName = panelID .. "-" .. controlName lam.optionControls[subName] = {} local data = { type = "submenu", name = text, tooltip = tooltip, controls = lam.optionControls[subName] } table.insert(lam.optionControls[panelID], data) return subName end