Compare with Previous | Blame | View Log
------------------ -- CONFIG FRAME -- ------------------ function CFM_GUI() if CFM_Config then CFM_Config:Show() else local f, fs f = CreateFrame("Frame", "CFM_Config", UIParent) f:SetWidth(385) f:SetHeight(154) f:SetPoint("CENTER") f:SetFrameStrata("DIALOG") f:SetBackdrop({ bgFile = "Interface\\CHATFRAME\\CHATFRAMEBACKGROUND", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = "true", tileSize = 32, edgeSize = 10, insets = {left = 3, right = 3, top = 3, bottom = 3} }) f:SetBackdropColor(.25,.1,.25) f:SetBackdropBorderColor(0,.5,0) f:EnableMouse(true) f:SetMovable(true) f:SetClampedToScreen(true) f:RegisterForDrag("LeftButton") f:SetScript("OnDragStart", f.StartMoving) f:SetScript("OnDragStop", f.StopMovingOrSizing) f:SetScript("OnUpdate", function() if GetMouseFocus() == nil then return end local name = GetMouseFocus():GetName() if name == nil then CFM_MouseOverActive:SetText("Not Defined") CFM_MouseOverActiveParent:SetText("Unavailable") return else CFM_MouseOverActive:SetText(name) end local _, parent = _G[name]:GetPoint() if parent == nil or parent == " " then CFM_MouseOverActiveParent:SetText("Not Defined") else CFM_MouseOverActiveParent:SetText(parent:GetName()) end end) f:Show() tinsert(UISpecialFrames,f:GetName()) --[[ MOUSEOVER INFO ]] f = CreateFrame("FRAME", "CFM_MouseInfoFrame", CFM_Config) f:SetHeight(32) f:SetWidth(300) f:SetPoint("TOPLEFT", CFM_Config, "BOTTOMLEFT") f:SetPoint("TOPRIGHT", CFM_Config, "BOTTOMRIGHT") f:SetBackdrop({ bgFile = "Interface\\CHATFRAME\\CHATFRAMEBACKGROUND", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = "true", tileSize = 32, edgeSize = 10, insets = {left = 3, right = 3, top = 3, bottom = 3} }) f:SetBackdropColor(.25,.1,.25) f:SetBackdropBorderColor(0,.5,0) fs = f:CreateFontString("CFM_MouseOverText") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("LEFT") fs:SetWidth(66) fs:SetText("Mouseover:") fs:SetPoint("TOPLEFT", CFM_MouseInfoFrame, "TOPLEFT", 5,-5) fs = f:CreateFontString("CFM_MouseOverParent") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("LEFT") fs:SetWidth(66) fs:SetText("Parent:") fs:SetPoint("TOPLEFT", CFM_MouseOverText, "BOTTOMLEFT", 0,-2) fs = f:CreateFontString("CFM_MouseOverActive") fs:SetFontObject("GameFontNormalSmall") fs:SetJustifyH("LEFT") fs:SetWidth(200) fs:SetText("") fs:SetPoint("LEFT", CFM_MouseOverText, "RIGHT") fs = f:CreateFontString("CFM_MouseOverActiveParent") fs:SetFontObject("GameFontNormalSmall") fs:SetJustifyH("LEFT") fs:SetWidth(200) fs:SetText("") fs:SetPoint("LEFT", CFM_MouseOverParent, "RIGHT") local b = CreateFrame("Button", "CFM_SelectPanel1", CFM_Config, "OptionsButtonTemplate") b:SetNormalFontObject("GameFontNormalSmall") b:SetHighlightFontObject("GameFontWhiteSmall") b:SetText("Properties") b:SetPoint("TOPLEFT", CFM_Config, "TOP", -52,-4) b:SetHeight(18) b:SetWidth(70) b:SetScript("OnClick", function() CFM_Panel1:Show() CFM_Panel2:Hide() CFM_Panel3:Hide() end) local b = CreateFrame("Button", "CFM_SelectPanel2", CFM_Config, "OptionsButtonTemplate") b:SetNormalFontObject("GameFontNormalSmall") b:SetHighlightFontObject("GameFontWhiteSmall") b:SetText("Anchor") b:SetPoint("LEFT", CFM_SelectPanel1, "RIGHT", 0,0) b:SetHeight(18) b:SetWidth(50) b:SetScript("OnClick", function() CFM_Panel1:Hide() CFM_Panel2:Show() CFM_Panel3:Hide() end) local b = CreateFrame("Button", "CFM_SelectPanel3", CFM_Config, "OptionsButtonTemplate") b:SetNormalFontObject("GameFontNormalSmall") b:SetHighlightFontObject("GameFontWhiteSmall") b:SetText("Add Frame") b:SetPoint("LEFT", CFM_SelectPanel2, "RIGHT", 0,0) b:SetHeight(18) b:SetWidth(70) b:SetScript("OnClick", function() CFM_Panel1:Hide() CFM_Panel2:Hide() CFM_Panel3:Show() end) -- SHOW/HIDE/UNLOCK BUTTONS b = CreateFrame("Button", "CFM_UnlockButton", CFM_Config, "OptionsButtonTemplate") b:SetWidth(48) b:SetPoint("BOTTOMRIGHT", CFM_Config, "BOTTOMRIGHT", -4,4) b:RegisterForClicks("LeftButtonUp") b:SetNormalFontObject("GameFontNormalSmall") b:SetHighlightFontObject("GameFontWhiteSmall") b:SetText("Unlock") b:SetScript("OnClick", function(self) if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end frame = _G[selFrame] if activeProfile[selFrame].lock then activeProfile[selFrame].lock = false frame:SetClampedToScreen(activeProfile[selFrame].clamp) print(selFrame.. " is unlocked.") self:SetText("Lock") -- color overlay frame.t = frame:CreateTexture() frame.t:SetAllPoints(frame) frame.t:SetTexture(0,1,0,.2) frame:SetMovable(true) frame:RegisterForDrag("LeftButton") frame:SetScript("OnDragStart", function() if frame:IsMovable() then frame.isMoving = true frame:StartMoving() else return end end) frame:SetScript("OnDragStop", function() CFM_StopMoving(frame,selFrame) end) else self:SetText("Unlock") frame:SetMovable(false) if frame.t ~= nil then frame.t:Hide() frame.t = nil end activeProfile[selFrame].lock = true print(selFrame.. " is locked.") end end) b = CreateFrame("Button", "CFM_HideButton", CFM_Config, "OptionsButtonTemplate") b:SetWidth(48) b:SetPoint("RIGHT", CFM_UnlockButton, "LEFT", 0,0) b:RegisterForClicks("LeftButtonUp") b:SetNormalFontObject("GameFontNormalSmall") b:SetHighlightFontObject("GameFontWhiteSmall") b:SetText("Hide") b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end _G[selFrame]:Hide() end) b = CreateFrame("Button", "CFM_ShowButton", CFM_Config, "OptionsButtonTemplate") b:SetWidth(48) b:SetPoint("Right", CFM_HideButton, "LEFT", 0,0) b:RegisterForClicks("LeftButtonUp") b:SetNormalFontObject("GameFontNormalSmall") b:SetHighlightFontObject("GameFontWhiteSmall") b:SetText("Show") b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end _G[selFrame]:Show() end) --[[ FORCE HIDE ]] fs = f:CreateFontString("CFM_HideText", CFM_Config) fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("RIGHT") fs:SetWidth(70) fs:SetText("Force Hide") fs:SetPoint("BOTTOMLEFT", CFM_Config, "BOTTOM", -54,10) cb = CreateFrame("CHECKBUTTON", "CFM_ForceButton", CFM_Config, "OptionsCheckButtonTemplate") cb:SetPoint("LEFT", CFM_HideText, "RIGHT", 6, -2) cb:SetScale(.75) cb:SetScript("OnClick", function(self) if selFrame == nil or selFrame == "" then print("Please select a frame first.") return elseif self:GetChecked() == 1 then activeProfile[selFrame].forceHide = true activeProfile[selFrame].hidden = {} local point, parent, relativePoint, offsetX, offsetY = _G[selFrame]:GetPoint() activeProfile[selFrame].hidden.point = point activeProfile[selFrame].hidden.parent = parent activeProfile[selFrame].hidden.relativePoint = relativePoint activeProfile[selFrame].hidden.offsetX = offsetX activeProfile[selFrame].hidden.offsetY = offsetY else activeProfile[selFrame].forceHide = false _G[selFrame]:ClearAllPoints() _G[selFrame]:SetPoint(activeProfile[selFrame].hidden.point,activeProfile[selFrame].hidden.parent, activeProfile[selFrame].hidden.relativePoint, activeProfile[selFrame].hidden.offsetX, activeProfile[selFrame].hidden.offsetY) _G[selFrame]:Show() activeProfile[selFrame].hidden = nil end CFM_ApplySettings(selFrame) end) CFM_CreateScroll() CFM_CreatePanel1() CFM_CreatePanel2() CFM_CreatePanel3() end end ------------------ -- SCROLL FRAME -- ------------------ function CFM_CreateScroll() local sf, b sf = CreateFrame("ScrollFrame", "CFM_ScrollFrame", CFM_Config, "FauxScrollFrameTemplate") sf:SetWidth(118) sf:SetHeight(144) sf:SetPoint("TOPLEFT", CFM_Config, 5, -5) sf:SetBackdrop({ bgFile="", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile="true", tileSize= 32, edgeSize=10, insets = {left=0, right=0, top=0, bottom=0} }) sf:SetBackdropBorderColor(0,.5,0,1) _G[sf:GetName().."ScrollBar"]:SetWidth(5) sf:SetScript("OnVerticalScroll", function(self, offset) FauxScrollFrame_OnVerticalScroll(sf, offset, 7, CFM_ScrollUpdate) end) sf:SetScript("OnShow", CFM_ScrollUpdate) sf:SetScript("OnHide", function() for k,_ in pairs(activeProfile) do CFM_SaveFrame(k) end end) CFM_CreateButtons() end function CFM_CreateButtons() -- Create scroll buttons for i = 1,8 do local b if i == 1 then b = CreateFrame("Button", "CFM_ScrollButton"..i, CFM_ScrollFrame) b:SetPoint("TOPLEFT",2,-4) b:SetText("Button 1") else b = CreateFrame("Button", "CFM_ScrollButton"..i, _G["CFM_ScrollButton"..(i-1)]) b:SetPoint("TOPLEFT", _G["CFM_ScrollButton"..(i-1)], "BOTTOMLEFT", 0, 4) b:SetText("Button "..i) end b:SetNormalFontObject("GameFontNormalSmall") b:RegisterForClicks("LeftButtonUp", "RightButtonUp") b:SetWidth(114) b:SetHeight(20) b:SetBackdrop({ bgFile = "Interface\\CHATFRAME\\CHATFRAMEBACKGROUND", edgeFile = "", tile = "true", tileSize = 32, edgeSize = 10, insets = {left = 3, right = 3, top = 3, bottom = 3} }) b:SetBackdropColor(0,0,0,0) b:SetScript("OnClick", function(self, click) if self:GetText() == nil then return end -- button has no data if click == "LeftButton" then -- reset previously highlighted buttons if curButton then _G[curButton]:SetBackdropColor(0,0,0,0) end curButton = self:GetName() self:SetBackdropColor(0,.5,0,1) CFM_SelectFrame(self:GetText()) elseif click == "RightButton" then self:SetBackdropColor(0,0,0,0) remFrame = self:GetText() StaticPopup_Show("CFM_PROMPTREMOVE", self:GetText()) end end) end CFM_ScrollUpdate() end function CFM_ScrollUpdate() CFM_CreateList() local line, lineplusoffset FauxScrollFrame_Update(CFM_ScrollFrame,#CFM_FrameList,8,20, nil,nil,nil,nil,nil,nil,true) -- 50 is max entries, 10 is number of lines, 20 is pixel height of each line for line = 1, 8 do lineplusoffset = line + FauxScrollFrame_GetOffset(CFM_ScrollFrame) if lineplusoffset < 50 then _G["CFM_ScrollButton"..line]:SetText(CFM_FrameList[lineplusoffset]) _G["CFM_ScrollButton"..line]:Show() else _G["CFM_ScrollButton"..line]:Hide() end end end function CFM_CreateList() CFM_FrameList = {} local i = 1 for k,v in pairs(activeProfile) do CFM_FrameList[i] = k i = i+1 end table.sort(CFM_FrameList) -- sort alphabetically end function CFM_CreatePanel1() local f = CreateFrame("Frame", "CFM_Panel1", CFM_Config) f:SetWidth(240) f:SetHeight(108) f:SetPoint("TOPRIGHT", -4, -22) f:SetFrameStrata("DIALOG") f:SetBackdrop({ bgFile = "Interface\\CHATFRAME\\CHATFRAMEBACKGROUND", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = "true", tileSize = 32, edgeSize = 10, insets = {left = 3, right = 3, top = 3, bottom = 3} }) f:SetBackdropColor(.25,.1,.25) f:SetBackdropBorderColor(0,.5,0) --[[ WIDTH DATA ]] fs = f:CreateFontString("CFM_WidthText", CFM_Panel1) fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("RIGHT") fs:SetWidth(40) fs:SetText("Width") fs:SetPoint("TOPLEFT", CFM_Panel1, "TOPLEFT", 18,-6) e = CreateFrame("EditBox", "CFM_WidthBox", CFM_Panel1) e:SetWidth(40) e:SetHeight(18) e:SetPoint("TOP", CFM_WidthText, "Bottom", 5,-2) e:SetBackdrop({ bgFile="", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile="true", tileSize= 32, edgeSize=10, insets = {left=5, right=5, top=5, bottom=5} }) e:SetAutoFocus(false) e:SetTextInsets(5,0,0,0) e:SetFontObject("GameFontNormalSmall") e:SetMaxLetters(4) e:SetText("") e:SetScript("OnEnterPressed", function(self) if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].width = tonumber(self:GetText()) if activeProfile[selFrame].sameXY then activeProfile[selFrame].height = tonumber(self:GetText()) CFM_HeightBox:SetText(activeProfile[selFrame].height) end CFM_ApplySettings(selFrame) self:ClearFocus() end) e:SetScript("OnEscapePressed", e.ClearFocus) local b = CreateFrame("Button", "CFM_Width_Plus", CFM_Panel1) b:SetNormalTexture("Interface\\BUTTONS\\UI-PlusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-PlusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].width = activeProfile[selFrame].width + 1 if activeProfile[selFrame].sameXY then activeProfile[selFrame].height = activeProfile[selFrame].height +1 CFM_HeightBox:SetText(activeProfile[selFrame].height) end CFM_WidthBox:SetText(activeProfile[selFrame].width) CFM_ApplySettings(selFrame) end) b:SetPoint("TOPLEFT", CFM_WidthBox, "TOPRIGHT", 0,-2) local b = CreateFrame("Button", "CFM_Width_Minus", CFM_Panel1) b:SetNormalTexture("Interface\\BUTTONS\\UI-MinusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-MinusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].width = activeProfile[selFrame].width - 1 if activeProfile[selFrame].sameXY then activeProfile[selFrame].height = activeProfile[selFrame].height -1 CFM_HeightBox:SetText(activeProfile[selFrame].height) end CFM_WidthBox:SetText(activeProfile[selFrame].width) CFM_ApplySettings(selFrame) end) b:SetPoint("TOPRIGHT", CFM_WidthBox, "TOPLEFT", 0,-2) --[[ HEIGHT DATA ]] fs = f:CreateFontString("CFM_HeightText", CFM_Panel1) fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("CENTER") fs:SetWidth(40) fs:SetText("Height") fs:SetPoint("LEFT", CFM_WidthText, "RIGHT", 40,0) e = CreateFrame("EditBox", "CFM_HeightBox", CFM_Panel1) e:SetWidth(40) e:SetHeight(18) e:SetPoint("TOP", CFM_HeightText, "BOTTOM", 2,-2) e:SetBackdrop({ bgFile="", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile="true", tileSize= 32, edgeSize=10, insets = {left=5, right=5, top=5, bottom=5} }) e:SetAutoFocus(false) e:SetTextInsets(5,0,0,0) e:SetFontObject("GameFontNormalSmall") e:SetMaxLetters(4) e:SetText("") e:SetScript("OnEnterPressed",function(self) activeProfile[selFrame].height = tonumber(self:GetText()) if activeProfile[selFrame].sameXY then activeProfile[selFrame].width = tonumber(self:GetText()) CFM_HeightBox:SetText(activeProfile[selFrame].width) end CFM_ApplySettings(selFrame) self:ClearFocus() end) e:SetScript("OnEscapePressed", e.ClearFocus) local b = CreateFrame("Button", "CFM_Height_Plus", CFM_Panel1) b:SetNormalTexture("Interface\\BUTTONS\\UI-PlusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-PlusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].height = activeProfile[selFrame].height + 1 if activeProfile[selFrame].sameXY then activeProfile[selFrame].width = activeProfile[selFrame].width +1 CFM_HeightBox:SetText(activeProfile[selFrame].width) end CFM_HeightBox:SetText(activeProfile[selFrame].height) CFM_ApplySettings(selFrame) end) b:SetPoint("TOPLEFT", CFM_HeightBox, "TOPRIGHT", 0,-2) local b = CreateFrame("Button", "CFM_Height_Minus", CFM_Panel1) b:SetNormalTexture("Interface\\BUTTONS\\UI-MinusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-MinusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].height = activeProfile[selFrame].height - 1 if activeProfile[selFrame].sameXY then activeProfile[selFrame].width = activeProfile[selFrame].width -1 CFM_HeightBox:SetText(activeProfile[selFrame].width) end CFM_HeightBox:SetText(activeProfile[selFrame].height) CFM_ApplySettings(selFrame) end) b:SetPoint("TOPRIGHT", CFM_HeightBox, "TOPLEFT", 0,-2) --[[ SCALE DATA ]] fs = f:CreateFontString("CFM_ScaleText") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("CENTER") fs:SetWidth(40) fs:SetText("Scale") fs:SetPoint("TOP", CFM_WidthBox, "BOTTOM", 0,-6) e = CreateFrame("EditBox", "CFM_ScaleBox", CFM_Panel1) e:SetWidth(40) e:SetHeight(18) e:SetPoint("TOP", CFM_ScaleText, "BOTTOM", 0,-2) e:SetBackdrop({ bgFile="", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile="true", tileSize= 32, edgeSize=10, insets = {left=5, right=5, top=5, bottom=5} }) e:SetAutoFocus(false) e:SetTextInsets(5,0,0,0) e:SetFontObject("GameFontNormalSmall") e:SetMaxLetters(3) e:SetText("") e:SetScript("OnEnterPressed",function(self) if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].scale = tonumber(self:GetText()) CFM_ApplySettings(selFrame) self:ClearFocus() end) e:SetScript("OnEscapePressed", e.ClearFocus) local b = CreateFrame("Button", "CFM_Scale_Plus", CFM_Panel1) b:SetNormalTexture("Interface\\BUTTONS\\UI-PlusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-PlusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].scale = activeProfile[selFrame].scale + .1 CFM_ScaleBox:SetText(activeProfile[selFrame].scale) CFM_ApplySettings(selFrame) end) b:SetPoint("TOPLEFT", CFM_ScaleBox, "TOPRIGHT", 0,-2) local b = CreateFrame("Button", "CFM_Scale_Minus", CFM_Panel1) b:SetNormalTexture("Interface\\BUTTONS\\UI-MinusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-MinusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].scale = activeProfile[selFrame].scale - .1 CFM_ScaleBox:SetText(activeProfile[selFrame].scale) CFM_ApplySettings(selFrame) end) b:SetPoint("TOPRIGHT", CFM_ScaleBox, "TOPLEFT", 0,-2) --[[ LEVEL DATA ]] fs = f:CreateFontString("CFM_LevelText") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("RIGHT") fs:SetWidth(40) fs:SetJustifyH("CENTER") fs:SetText("Level") fs:SetPoint("TOP", CFM_HeightBox, "BOTTOM", 0,-6) e = CreateFrame("EditBox", "CFM_LevelBox", CFM_Panel1) e:SetWidth(40) e:SetHeight(18) e:SetPoint("TOP", CFM_LevelText, "BOTTOM", 0,-2) e:SetBackdrop({ bgFile="", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile="true", tileSize= 32, edgeSize=10, insets = {left=5, right=5, top=5, bottom=5} }) e:SetAutoFocus(false) e:SetTextInsets(5,0,0,0) e:SetFontObject("GameFontNormalSmall") e:SetMaxLetters(2) e:SetText("") e:SetScript("OnEnterPressed",function(self) if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end local num = tonumber(self:GetText()) if num <0 then num = 0 self:SetText("0") end activeProfile[selFrame].level = num CFM_ApplySettings(selFrame) self:ClearFocus() end) e:SetScript("OnEscapePressed", e.ClearFocus) local b = CreateFrame("Button", "CFM_Level_Plus", CFM_Panel1) b:SetNormalTexture("Interface\\BUTTONS\\UI-PlusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-PlusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].level = activeProfile[selFrame].level + 1 CFM_LevelBox:SetText(activeProfile[selFrame].level) CFM_ApplySettings(selFrame) end) b:SetPoint("TOPLEFT", CFM_LevelBox, "TOPRIGHT", 0,-2) local b = CreateFrame("Button", "CFM_Level_Minus", CFM_Panel1) b:SetNormalTexture("Interface\\BUTTONS\\UI-MinusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-MinusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end if activeProfile[selFrame].level == 0 then return end activeProfile[selFrame].level = activeProfile[selFrame].level - 1 CFM_LevelBox:SetText(activeProfile[selFrame].level) CFM_ApplySettings(selFrame) end) b:SetPoint("TOPRIGHT", CFM_LevelBox, "TOPLEFT", 0,-2) --[[ ALPHA DATA ]] fs = f:CreateFontString("CFM_AlphaText") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("CENTER") fs:SetWidth(40) fs:SetText("Alpha") fs:SetPoint("LEFT", CFM_LevelText, "RIGHT", 40,0) e = CreateFrame("EditBox", "CFM_AlphaBox", CFM_Panel1) e:SetWidth(40) e:SetHeight(18) e:SetPoint("TOP", CFM_AlphaText, "BOTTOM", 0,-2) e:SetBackdrop({ bgFile="", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile="true", tileSize= 32, edgeSize=10, insets = {left=5, right=5, top=5, bottom=5} }) e:SetAutoFocus(false) e:SetTextInsets(5,0,0,0) e:SetFontObject("GameFontNormalSmall") e:SetMaxLetters(3) e:SetText("") e:SetScript("OnEnterPressed",function(self) if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].alpha = tonumber(self:GetText()) CFM_ApplySettings(selFrame) self:ClearFocus() end) e:SetScript("OnEscapePressed", e.ClearFocus) local b = CreateFrame("Button", "CFM_Alpha_Plus", CFM_Panel1) b:SetNormalTexture("Interface\\BUTTONS\\UI-PlusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-PlusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end if activeProfile[selFrame].alpha >= 1 then activeProfile[selFrame].alpha = 1 return end if activeProfile[selFrame].alpha < 1 then activeProfile[selFrame].alpha = activeProfile[selFrame].alpha + .1 CFM_AlphaBox:SetText(activeProfile[selFrame].alpha) CFM_ApplySettings(selFrame) end end) b:SetPoint("TOPLEFT", CFM_AlphaBox, "TOPRIGHT", 0,-2) local b = CreateFrame("Button", "CFM_Alpha_Minus", CFM_Panel1) b:SetNormalTexture("Interface\\BUTTONS\\UI-MinusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-MinusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end if activeProfile[selFrame].alpha <= 0 then activeProfile[selFrame].alpha = 0 return end if activeProfile[selFrame].alpha > 0 then activeProfile[selFrame].alpha = activeProfile[selFrame].alpha - .1 if activeProfile[selFrame].alpha < .1 then activeProfile[selFrame].alpha = 0 end CFM_AlphaBox:SetText(activeProfile[selFrame].alpha) CFM_ApplySettings(selFrame) end end) b:SetPoint("TOPRIGHT", CFM_AlphaBox, "TOPLEFT", 0,-2) --[[ CONSTRAIN X/Y ]] fs = f:CreateFontString("CFM_ConstrainText") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("RIGHT") fs:SetWidth(54) fs:SetText("Constrain") fs:SetPoint("LEFT", CFM_HeightText, "RIGHT", 24, 0) local cb = CreateFrame("CHECKBUTTON", "CFM_ConstrainButton", CFM_Panel1, "OptionsCheckButtonTemplate") cb:SetPoint("LEFT", CFM_ConstrainText, "RIGHT", 0, -2) cb:SetScale(.75) cb:SetScript("OnClick", function(self) if selFrame == nil or selFrame == "" then print("Please select a frame first.") return elseif self:GetChecked() == 1 then activeProfile[selFrame].sameXY = true else activeProfile[selFrame].sameXY = false end end) --[[ SCREEN CLAMP ]] fs = f:CreateFontString("CFM_ClampText") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("RIGHT") fs:SetWidth(54) fs:SetText("S. Clamp") fs:SetPoint("TOPRIGHT", CFM_ConstrainText, "BOTTOMRIGHT", 0, -6) cb = CreateFrame("CHECKBUTTON", "CFM_ClampButton", CFM_Panel1, "OptionsCheckButtonTemplate") cb:SetPoint("LEFT", CFM_ClampText, "RIGHT", 0, 0) cb:SetScale(.75) cb:SetScript("OnClick", function(self) if selFrame == nil or selFrame == "" then print("Please select a frame first.") return elseif self:GetChecked() == 1 then activeProfile[selFrame].clamp = true _G[selFrame]:SetClampedToScreen(true) else activeProfile[selFrame].clamp = false _G[selFrame]:SetClampedToScreen(false) end end) end function CFM_CreatePanel2() local f, fs, e f = CreateFrame("Frame", "CFM_Panel2", CFM_Config) f:SetWidth(240) f:SetHeight(108) f:SetPoint("TOPRIGHT", -4, -22) f:SetFrameStrata("DIALOG") f:SetBackdrop({ bgFile = "Interface\\CHATFRAME\\CHATFRAMEBACKGROUND", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = "true", tileSize = 32, edgeSize = 10, insets = {left = 3, right = 3, top = 3, bottom = 3} }) f:SetBackdropColor(.25,.1,.25) f:SetBackdropBorderColor(0,.5,0) f:Hide() --[[ PARENT DATA ]]-- fs = f:CreateFontString("CFM_ChangeParentText") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("RIGHT") fs:SetText("Parent:") fs:SetPoint("TOPLEFT", f, "TOPLEFT", 6,-10) e = CreateFrame("EditBox", "CFM_ChangeParentBox", CFM_Panel2) e:SetWidth(96) e:SetHeight(18) e:SetPoint("LEFT", CFM_ChangeParentText, "RIGHT", 2,0) e:SetBackdrop({ bgFile="", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile="true", tileSize= 32, edgeSize=10, insets = {left=5, right=5, top=5, bottom=5} }) e:SetAutoFocus(false) e:SetTextInsets(5,0,0,0) e:SetFontObject("GameFontNormalSmall") e:SetMaxLetters(255) e:SetText("") e:SetScript("OnEnterPressed", function(self) if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end CFM_ChangeParent(self:GetText()) CFM_ApplySettings(selFrame) self:ClearFocus() end) e:SetScript("OnEscapePressed", e.ClearFocus) --[[ POINT DATA ]] fs = f:CreateFontString("CFM_FromText") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("RIGHT") fs:SetText("From:") fs:SetPoint("TOPRIGHT", CFM_ChangeParentText, "BOTTOMRIGHT", 0,-14) dm = CreateFrame("Frame", "CFM_FromBox", f, "UIDropDownMenuTemplate") dm:SetPoint("LEFT", CFM_FromText, "RIGHT", -10, -2) dm:SetScale(.75) UIDropDownMenu_SetWidth(dm,105) UIDropDownMenu_Initialize(dm, CFM_FromDropInit) --[[ RELATIVEPOINT DATA ]] fs = f:CreateFontString("CFM_ToText") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("RIGHT") fs:SetText("To:") fs:SetPoint("TOPRIGHT", CFM_FromText, "BOTTOMRIGHT", 0,-10) dm = CreateFrame("Frame", "CFM_ToBox", f, "UIDropDownMenuTemplate") dm:SetPoint("LEFT", CFM_ToText, "RIGHT", -10, -2) dm:SetScale(.75) UIDropDownMenu_SetWidth(dm,105) UIDropDownMenu_Initialize(dm, CFM_ToDropInit) --[[ STRATA DATA ]] fs = f:CreateFontString("CFM_StrataText") fs:SetFontObject("GameFontGreenSmall") fs:SetJustifyH("RIGHT") fs:SetText("Strata:") fs:SetPoint("TOPRIGHT", CFM_ToText, "BOTTOMRIGHT", 0,-10) dm = CreateFrame("Frame", "CFM_StrataBox", f, "UIDropDownMenuTemplate") dm:SetPoint("LEFT", CFM_StrataText, "RIGHT", -10, -2) dm:SetScale(.75) UIDropDownMenu_SetWidth(dm,105) UIDropDownMenu_Initialize(dm, CFM_StrataDropInit) -- X/Y MOVER local e = CreateFrame("EditBox", "CFM_XBox", CFM_Panel2) e:SetWidth(45) e:SetHeight(18) e:SetPoint("RIGHT", CFM_Panel2, "RIGHT", -20,0) e:SetBackdrop({ bgFile="", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile="true", tileSize= 32, edgeSize=10, insets = {left=5, right=5, top=5, bottom=5} }) e:SetAutoFocus(false) e:SetTextInsets(5,0,0,0) e:SetFontObject("GameFontNormalSmall") e:SetMaxLetters(4) e:SetText("") e:SetScript("OnEnterPressed", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].offsetX = tonumber(e:GetText()) CFM_ApplySettings(selFrame) e:ClearFocus() end) e:SetScript("OnEscapePressed", e.ClearFocus) local e = CreateFrame("EditBox", "CFM_YBox", CFM_Panel2) e:SetWidth(45) e:SetHeight(18) e:SetPoint("TOPRIGHT", CFM_XBox, "BOTTOMRIGHT", 0,0) e:SetBackdrop({ bgFile="", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile="true", tileSize= 32, edgeSize=10, insets = {left=5, right=5, top=5, bottom=5} }) e:SetAutoFocus(false) e:SetTextInsets(5,0,0,0) e:SetFontObject("GameFontNormalSmall") e:SetMaxLetters(4) e:SetText("") e:SetScript("OnEnterPressed", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].offsetY = tonumber(e:GetText()) CFM_ApplySettings(selFrame) e:ClearFocus() end) e:SetScript("OnEscapePressed", e.ClearFocus) local fs = f:CreateFontString("CFM_X") fs:SetFontObject("GameFontGreenSmall") fs:SetText("X:") fs:SetPoint("RIGHT", CFM_XBox, "LEFT", -16,0) local fs = f:CreateFontString("CFM_Y") fs:SetFontObject("GameFontGreenSmall") fs:SetText("Y:") fs:SetPoint("RIGHT", CFM_YBox, "LEFT", -16,0) local b = CreateFrame("Button", "CFM_XPlus", CFM_Panel2) b:SetNormalTexture("Interface\\BUTTONS\\UI-PlusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-PlusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end CFM_MoveFrame(selFrame, "right") end) b:SetPoint("TOPLEFT", CFM_XBox, "TOPRIGHT", 0,-2) local b = CreateFrame("Button", "CFM_XMinus", CFM_Panel2) b:SetNormalTexture("Interface\\BUTTONS\\UI-MinusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-MinusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return else CFM_MoveFrame(selFrame, "left") end end) b:SetPoint("TOPRIGHT", CFM_XBox, "TOPLEFT", 0, -2) local b = CreateFrame("Button", "CFM_YPlus", CFM_Panel2) b:SetNormalTexture("Interface\\BUTTONS\\UI-PlusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-PlusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return else CFM_MoveFrame(selFrame, "up") end end) b:SetPoint("TOPLEFT", CFM_YBox, "TOPRIGHT", 0,-2) local b = CreateFrame("Button", "CFM_YMinus", CFM_Panel2) b:SetNormalTexture("Interface\\BUTTONS\\UI-MinusButton-Up") b:SetHighlightTexture("Interface\\BUTTONS\\UI-PlusButton-Hilight") b:SetPushedTexture("Interface\\BUTTONS\\UI-MinusButton-Down") b:SetHeight(14) b:SetWidth(14) b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return else CFM_MoveFrame(selFrame, "down") end end) b:SetPoint("TOPRIGHT", CFM_YBox, "TOPLEFT", 0, -2) local b = CreateFrame("Button", "CFM_Reset", CFM_Panel2, "OptionsButtonTemplate") b:SetWidth(45) b:SetPoint("TOP", CFM_YBox, "BOTTOM", 0,0) b:RegisterForClicks("LeftButtonUp") b:SetNormalFontObject("GameFontNormalSmall") b:SetHighlightFontObject("GameFontWhiteSmall") b:SetText("0,0") b:SetScript("OnClick", function() if selFrame == nil or selFrame == "" then print("Please select a frame first.") return end activeProfile[selFrame].offsetX = 0 CFM_XBox:SetText("0") activeProfile[selFrame].offsetY = 0 CFM_YBox:SetText("0") CFM_ApplySettings(selFrame) end) end function CFM_CreatePanel3() local f, fs, e f = CreateFrame("Frame", "CFM_Panel3", CFM_Config) f:SetWidth(240) f:SetHeight(108) f:SetPoint("TOPRIGHT", -4, -22) f:SetFrameStrata("DIALOG") f:SetBackdrop({ bgFile = "Interface\\CHATFRAME\\CHATFRAMEBACKGROUND", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = "true", tileSize = 32, edgeSize = 10, insets = {left = 3, right = 3, top = 3, bottom = 3} }) f:SetBackdropColor(.25,.1,.25) f:SetBackdropBorderColor(0,.5,0) f:Hide() local fs = f:CreateFontString("CFM_FrameText", CFM_Panel3) fs:SetFontObject("GameFontGreenSmall") fs:SetWidth(42) fs:SetJustifyH("RIGHT") fs:SetText("Frame:") fs:SetPoint("TOPLEFT", CFM_Panel3, "TOPLEFT", 0,-8) e = CreateFrame("EditBox", "CFM_FrameBox", CFM_Panel3) e:SetWidth(140) e:SetHeight(18) e:SetPoint("LEFT", CFM_FrameText, "RIGHT", 2,0) e:SetBackdrop({ bgFile="", edgeFile="Interface\\Tooltips\\UI-Tooltip-Border", tile="true", tileSize= 32, edgeSize=10, insets = {left=5, right=5, top=5, bottom=5} }) e:SetAutoFocus(false) e:SetTextInsets(5,0,0,0) e:SetFontObject("GameFontNormalSmall") e:SetMaxLetters(255) e:SetText("") e:SetScript("OnEnterPressed", e.ClearFocus) e:SetScript("OnEscapePressed", e.ClearFocus) e:SetScript("OnTabPressed", function() CFM_ParentBox:SetFocus() end) local b = CreateFrame("Button", "CFM_AddFrameButton", CFM_Panel3, "OptionsButtonTemplate") b:SetWidth(90) b:SetPoint("BOTTOMRIGHT", CFM_Panel3, "BOTTOMRIGHT", -5,4) b:RegisterForClicks("LeftButtonUp") b:SetText("Add Frame") b:SetNormalFontObject("GameFontNormalSmall") b:SetHighlightFontObject("GameFontWhiteSmall") b:SetScript("OnClick", function() CFM_AddFrame(CFM_FrameBox:GetText(), _G[CFM_FrameBox:GetText()]:GetParent():GetName()) CFM_FrameBox:SetText("") end) end function CFM_SelectFrame(frame) selFrame = frame gframe = _G[frame] if frame == "WorldFrame" then CFM_StrataBoxButton:Disable() print("|c00FF00FFCFM:|r Strata changes to WorldFrame are disabled for user safety.") else CFM_StrataBoxButton:Enable() end -- add frame.lock to frame's settings if activeProfile[frame].lock == nil then activeProfile[frame].lock = true end -- add frame.clamp to frame's settings if activeProfile[frame].clamp == nil then activeProfile[frame].clamp = gframe:IsClampedToScreen() end -- set check boxes if activeProfile[frame].forceHide then CFM_ForceButton:SetChecked() else CFM_ForceButton:SetChecked(false) end if activeProfile[frame].sameXY then CFM_ConstrainButton:SetChecked() else CFM_ConstrainButton:SetChecked(false) end if activeProfile[frame].clamp then CFM_ClampButton:SetChecked() else CFM_ClampButton:SetChecked(false) end -- fill in rest of frame's info CFM_WidthBox:SetText(activeProfile[frame].width) CFM_HeightBox:SetText(activeProfile[frame].height) CFM_ScaleBox:SetText(activeProfile[frame].scale) CFM_LevelBox:SetText(activeProfile[frame].level) CFM_AlphaBox:SetText(activeProfile[frame].alpha) CFM_ChangeParentBox:SetText(activeProfile[frame].parent) CFM_XBox:SetText(activeProfile[frame].offsetX) CFM_YBox:SetText(activeProfile[frame].offsetY) if activeProfile[selFrame].lock then CFM_UnlockButton:SetText("Unlock") gframe:SetMovable(false) else CFM_UnlockButton:SetText("Lock") gframe:SetMovable(true) gframe:RegisterForDrag("LeftButton") gframe:SetScript("OnDragStart", function() if gframe:IsMovable() then gframe.isMoving = true gframe:StartMoving() else return end end) gframe:SetScript("OnDragStop", function() CFM_StopMoving(gframe,selFrame) end) end local point = activeProfile[frame].point if point == "CENTER" then UIDropDownMenu_SetSelectedValue(CFM_FromBox, 0) elseif point == "TOP" then UIDropDownMenu_SetSelectedValue(CFM_FromBox, 1) elseif point == "TOPRIGHT" then UIDropDownMenu_SetSelectedValue(CFM_FromBox, 2) elseif point == "RIGHT" then UIDropDownMenu_SetSelectedValue(CFM_FromBox, 3) elseif point == "BOTTOMRIGHT" then UIDropDownMenu_SetSelectedValue(CFM_FromBox, 4) elseif point == "BOTTOM" then UIDropDownMenu_SetSelectedValue(CFM_FromBox, 5) elseif point == "BOTTOMLEFT" then UIDropDownMenu_SetSelectedValue(CFM_FromBox, 6) elseif point == "LEFT" then UIDropDownMenu_SetSelectedValue(CFM_FromBox, 7) elseif point == "TOPLEFT" then UIDropDownMenu_SetSelectedValue(CFM_FromBox, 8) end UIDropDownMenu_SetText(CFM_FromBox, point) local point = activeProfile[frame].relativePoint if point == "CENTER" then UIDropDownMenu_SetSelectedValue(CFM_ToBox, 0) elseif point == "TOP" then UIDropDownMenu_SetSelectedValue(CFM_ToBox, 1) elseif point == "TOPRIGHT" then UIDropDownMenu_SetSelectedValue(CFM_ToBox, 2) elseif point == "RIGHT" then UIDropDownMenu_SetSelectedValue(CFM_ToBox, 3) elseif point == "BOTTOMRIGHT" then UIDropDownMenu_SetSelectedValue(CFM_ToBox, 4) elseif point == "BOTTOM" then UIDropDownMenu_SetSelectedValue(CFM_ToBox, 5) elseif point == "BOTTOMLEFT" then UIDropDownMenu_SetSelectedValue(CFM_ToBox, 6) elseif point == "LEFT" then UIDropDownMenu_SetSelectedValue(CFM_ToBox, 7) elseif point == "TOPLEFT" then UIDropDownMenu_SetSelectedValue(CFM_ToBox, 8) end UIDropDownMenu_SetText(CFM_ToBox, point) local strata = activeProfile[frame].strata if strata == "BACKGROUND" then UIDropDownMenu_SetSelectedValue(CFM_StrataBox, 0) elseif strata == "LOW" then UIDropDownMenu_SetSelectedValue(CFM_StrataBox, 1) elseif strata == "MEDIUM" then UIDropDownMenu_SetSelectedValue(CFM_StrataBox, 2) elseif strata == "HIGH" then UIDropDownMenu_SetSelectedValue(CFM_StrataBox, 3) elseif strata == "DIALOG" then UIDropDownMenu_SetSelectedValue(CFM_StrataBox, 4) elseif strata == "TOOLTIP" then UIDropDownMenu_SetSelectedValue(CFM_StrataBox, 5) end UIDropDownMenu_SetText(CFM_StrataBox, strata) end function CFM_FromDropInit(self) local level = level or 1 local info = UIDropDownMenu_CreateInfo() info.text = "CENTER" info.value = 0 info.func = CFM_FromBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "TOP" info.value = 1 info.func = CFM_FromBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "TOPRIGHT" info.value = 2 info.func = CFM_FromBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "RIGHT" info.value = 3 info.func = CFM_FromBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "BOTTOMRIGHT" info.value = 4 info.func = CFM_FromBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "BOTTOM" info.value = 5 info.func = CFM_FromBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "BOTTOMLEFT" info.value = 6 info.func = CFM_FromBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "LEFT" info.value = 7 info.func = CFM_FromBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "TOPLEFT" info.value = 8 info.func = CFM_FromBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) end function CFM_ToDropInit(self) local level = level or 1 local info = UIDropDownMenu_CreateInfo() info.text = "CENTER" info.value = 0 info.func = CFM_ToBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "TOP" info.value = 1 info.func = CFM_ToBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "TOPRIGHT" info.value = 2 info.func = CFM_ToBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "RIGHT" info.value = 3 info.func = CFM_ToBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "BOTTOMRIGHT" info.value = 4 info.func = CFM_ToBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "BOTTOM" info.value = 5 info.func = CFM_ToBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "BOTTOMLEFT" info.value = 6 info.func = CFM_ToBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "LEFT" info.value = 7 info.func = CFM_ToBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "TOPLEFT" info.value = 8 info.func = CFM_ToBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) end function CFM_StrataDropInit(self) local level = level or 1 local info = UIDropDownMenu_CreateInfo() info.text = "BACKGROUND" info.value = 0 info.func = CFM_StrataBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "LOW" info.value = 1 info.func = CFM_StrataBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "MEDIUM" info.value = 2 info.func = CFM_StrataBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "HIGH" info.value = 3 info.func = CFM_StrataBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "DIALOG" info.value = 4 info.func = CFM_StrataBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) info.text = "TOOLTIP" info.value = 5 info.func = CFM_StrataBoxClick info.owner = self info.checked = nil info.icon = nil UIDropDownMenu_AddButton(info, level) end function CFM_FromBoxClick(self) UIDropDownMenu_SetSelectedValue(self.owner, self.value) if (self.value == 0) then activeProfile[selFrame].point = "CENTER" elseif (self.value == 1) then activeProfile[selFrame].point = "TOP" elseif (self.value == 2) then activeProfile[selFrame].point = "TOPRIGHT" elseif (self.value == 3) then activeProfile[selFrame].point = "RIGHT" elseif (self.value == 4) then activeProfile[selFrame].point = "BOTTOMRIGHT" elseif (self.value == 5) then activeProfile[selFrame].point = "BOTTOM" elseif (self.value == 6) then activeProfile[selFrame].point = "BOTTOMLEFT" elseif (self.value == 7) then activeProfile[selFrame].point = "LEFT" elseif (self.value == 8) then activeProfile[selFrame].point = "TOPLEFT" end CFM_ApplySettings(selFrame) end function CFM_ToBoxClick(self) UIDropDownMenu_SetSelectedValue(self.owner, self.value) if (self.value == 0) then activeProfile[selFrame].relativePoint = "CENTER" elseif (self.value == 1) then activeProfile[selFrame].relativePoint = "TOP" elseif (self.value == 2) then activeProfile[selFrame].relativePoint = "TOPRIGHT" elseif (self.value == 3) then activeProfile[selFrame].relativePoint = "RIGHT" elseif (self.value == 4) then activeProfile[selFrame].relativePoint = "BOTTOMRIGHT" elseif (self.value == 5) then activeProfile[selFrame].relativePoint = "BOTTOM" elseif (self.value == 6) then activeProfile[selFrame].relativePoint = "BOTTOMLEFT" elseif (self.value == 7) then activeProfile[selFrame].relativePoint = "LEFT" elseif (self.value == 8) then activeProfile[selFrame].relativePoint = "TOPLEFT" end CFM_ApplySettings(selFrame) end function CFM_StrataBoxClick(self) if selFrame == nil then return end UIDropDownMenu_SetSelectedValue(self.owner, self.value) if (self.value == 0) then activeProfile[selFrame].strata = "BACKGROUND" elseif (self.value == 1) then activeProfile[selFrame].strata = "LOW" elseif (self.value == 2) then activeProfile[selFrame].strata = "MEDIUM" elseif (self.value == 3) then activeProfile[selFrame].strata = "HIGH" elseif (self.value == 4) then activeProfile[selFrame].strata = "DIALOG" elseif (self.value == 5) then activeProfile[selFrame].strata = "TOOLTIP" end CFM_ApplySettings(selFrame) end function CFM_ChangeParent(arg) if _G[arg] == nil then print("|c00FF00FFCFM:|r ".. arg.. " doesn't exist.") else activeProfile[selFrame].parent = arg end CFM_ChangeParentBox:SetText(activeProfile[selFrame].parent) end