--[[
Non-BEB templates and their file
GameFontNormal Fonts.xml
GameFontNormalSmall Fonts.xml
InputBoxTemplate UIPanelTemplates.xml
UIPanelButtonTemplate UIPanelTemplates.xml
UICheckButtonTemplate UIPanelTemplates.xml
Elements for each selector
BEBMain ( Dragable, Position, Attachment, Size, Level, Strata)
BEBBackground ( Flash, Shown, Colors, Texture, Level, Strata)
BEBXpBar ( Flash, Colors, Texture, Level, Strata)
BEBRestedXpBar ( Flash, Shown, Colors (rested,maxrested), Texture, Level, Strata)
BEBMarkers ( Flash, Shown, Colors, Texture, Level, Strata)
BEBXpTick ( Flash, Shown, Colors, Texture, position, Size, Level, Strata)
BEBRestedXpTick ( Flash, Shown, Colors (rested, maxrested), Position, Size, Level, Strata)
BEBRestedXpTickGlow ( Flash, Colors (rested, maxrested), Texture, Level, Strata)
BEBBarText ( Flash, Shown, Colors, Text, Mouseover, Size (y), clicktext, Position, Attachment (point, relpoint), Level, Strata)
if ( this.tooltipText ) then
GameTooltip:SetOwner(this, "ANCHOR_RIGHT")
GameTooltip:SetText(this.tooltipText, nil, nil, nil, nil, 1)
end
if ( this.tooltipRequirement ) then
GameTooltip:AddLine(this.tooltipRequirement, "", 1.0, 1.0, 1.0)
GameTooltip:Show()
end
GameTooltip:Hide()
]]
BEBOPTIONS.ARROWLEFT = "<"
BEBOPTIONS.ARROWRIGHT = ">"
BEBOPTIONS.SIZELIMITS = {
BEBMain={x={min=50,max=2000,step=1},y={min=2,max=32,step=1}},
BEBXpTick={x={min=2,max=128,step=1},y={min=2,max=128,step=1}},
BEBRestedXpTick={x={min=2,max=128,step=1},y={min=2,max=128,step=1}},
BEBBarText={y={min=6,max=27,step=0.25}},
level={min=1,max=25,step=1}
}
BEBOPTIONS.CURRENTFRAME = "BEBMain"
BEBOPTIONS.ELEMENTS = {"BEBColorsHeader","BEBAttachHeader",
"BEBDragableCheckButton","BEBFlashingCheckButton","BEBShownCheckButton","BEBShowOnMouseoverCheckButton","BEBUnrestedTextureColorButton","BEBRestedTextureColorButton","BEBMaxrestedTextureColorButton",
"BEBUnrestedTextColorButton","BEBRestedTextColorButton","BEBMaxrestedTextColorButton","BEB_MainAttachToFrame","BEB_BarTextFrame","BEB_TextureFrame","BEB_MainAttachPointButton","BEB_MainAttachToPointButton","BEBOptionsPositionControls",
"BEBOptionsHeightSlider","BEBOptionsWidthSlider","BEBClickTextCheckButton","BEBProfileFrame","BEBOptionsLevelSlider","BEB_StrataDDMButton"}
BEBOPTIONS.FRAMEELEMENTS = {
BEBMain = {BEBDragableCheckButton=1,BEBOptionsPositionControls=1,BEB_MainAttachToFrame=1,BEB_MainAttachPointButton=1,BEB_MainAttachToPointButton=1,BEBAttachHeader=1,BEBOptionsHeightSlider=1,BEBOptionsWidthSlider=1,BEBOptionsLevelSlider=1,BEB_StrataDDMButton=1},
BEBBackground = {BEBFlashingCheckButton=1,BEBShownCheckButton=1,BEBColorsHeader=1,BEBUnrestedTextureColorButton=1,BEBRestedTextureColorButton=1,BEBMaxrestedTextureColorButton=1,BEB_TextureFrame=1,BEBOptionsLevelSlider=1,BEB_StrataDDMButton=1},
BEBXpBar = {BEBFlashingCheckButton=1,BEBColorsHeader=1,BEBUnrestedTextureColorButton=1,BEBRestedTextureColorButton=1,BEBMaxrestedTextureColorButton=1,BEB_TextureFrame=1,BEBOptionsLevelSlider=1,BEB_StrataDDMButton=1},
BEBRestedXpBar = {BEBFlashingCheckButton=1,BEBShownCheckButton=1,BEBColorsHeader=1,BEBRestedTextureColorButton=1,BEBMaxrestedTextureColorButton=1,BEB_TextureFrame=1,BEBOptionsLevelSlider=1,BEB_StrataDDMButton=1},
BEBMarkers = {BEBFlashingCheckButton=1,BEBShownCheckButton=1,BEBColorsHeader=1,BEBUnrestedTextureColorButton=1,BEBRestedTextureColorButton=1,BEBMaxrestedTextureColorButton=1,BEB_TextureFrame=1,BEBOptionsLevelSlider=1,BEB_StrataDDMButton=1},
BEBXpTick = {BEBFlashingCheckButton=1,BEBShownCheckButton=1,BEBColorsHeader=1,BEBUnrestedTextureColorButton=1,BEBRestedTextureColorButton=1,BEBMaxrestedTextureColorButton=1,BEB_TextureFrame=1,BEBOptionsPositionControls=1,BEBOptionsHeightSlider=1,BEBOptionsWidthSlider=1,BEBOptionsLevelSlider=1,BEB_StrataDDMButton=1},
BEBRestedXpTick = {BEBFlashingCheckButton=1,BEBShownCheckButton=1,BEBColorsHeader=1,BEBRestedTextureColorButton=1,BEBMaxrestedTextureColorButton=1,BEB_TextureFrame=1,BEBOptionsPositionControls=1,BEBOptionsHeightSlider=1,BEBOptionsWidthSlider=1,BEBOptionsLevelSlider=1,BEB_StrataDDMButton=1},
BEBRestedXpTickGlow = {BEBFlashingCheckButton=1,BEBColorsHeader=1,BEBRestedTextureColorButton=1,BEBMaxrestedTextureColorButton=1,BEB_TextureFrame=1,BEBOptionsLevelSlider=1,BEB_StrataDDMButton=1},
BEBBarText = {BEBFlashingCheckButton=1,BEBShownCheckButton=1,BEBColorsHeader=1,BEBUnrestedTextColorButton=1,BEBRestedTextColorButton=1,BEBMaxrestedTextColorButton=1,BEB_BarTextFrame=1,BEBShowOnMouseoverCheckButton=1,BEBOptionsHeightSlider=1,BEBClickTextCheckButton=1,BEBOptionsPositionControls=1,BEB_MainAttachPointButton=1,BEB_MainAttachToPointButton=1,BEBAttachHeader=1,BEBOptionsLevelSlider=1,BEB_StrataDDMButton=1},
BEBProfile = {BEBProfileFrame=1}
}
function BEBOPTIONS.OnLoad()
tinsert(UISpecialFrames,"BEBConfigFrame")
this:RegisterEvent("ADDON_LOADED")
end
function BEBOPTIONS.OnEvent(event)
if (event == "ADDON_LOADED" and arg1 == "BEBOptions") then
BEBOPTIONS.Initialize()
this:UnregisterEvent("ADDON_LOADED")
end
end
function BEBOPTIONS.Initialize()
BEBOPTIONS.SetTexts()
end
function BEBOPTIONS.SetTexts()
for element,text in BEBOPTIONS.TEXTELEMENTS do
local Element = getglobal(element)
Element:SetText(text)
end
end
function BEBOPTIONS.OnShow(frame)
if ( not BEBINITIALIZED ) then
BEBConfigFrame:Hide()
return
end
if (frame) then
this = getglobal(frame.."Selector")
else
this = getglobal(BEBOPTIONS.CURRENTFRAME.."Selector")
end
BEBOPTIONS.SelectFrame()
end
function BEBOPTIONS.SelectFrame()
ColorPickerFrame:Hide()
BEBOPTIONS.CURRENTFRAME = this.index
BEBOptionsHeightSlider.enabled = nil
BEBOptionsWidthSlider.enabled = nil
BEBOptionsLevelSlider.enabled = nil
for _,v in BEBOPTIONS.ELEMENTS do
if ( BEBOPTIONS.FRAMEELEMENTS[BEBOPTIONS.CURRENTFRAME][v] ) then
BEBOPTIONS.SetElementValue(v)
getglobal(v):Show()
else
getglobal(v):Hide()
end
end
BEBOptionsHeightSlider.enabled = true
BEBOptionsWidthSlider.enabled = true
BEBOptionsLevelSlider.enabled = true
for k,_ in BEBOPTIONS.FRAMEELEMENTS do
getglobal(k.."Selector"):UnlockHighlight()
end
getglobal(BEBOPTIONS.CURRENTFRAME.."Selector"):LockHighlight()
BEBCurrentSelector:SetText(BEBOPTIONS.TEXTELEMENTS[BEBOPTIONS.CURRENTFRAME.."Selector"])
end
function BEBOPTIONS.SetElementValue(element)
if ((element == "BEBColorsHeader")or(element == "BEBAttachHeader")) then
elseif ((element == "BEBUnrestedTextureColorButton")or(element == "BEBRestedTextureColorButton")or(element == "BEBMaxrestedTextureColorButton")) then
getglobal(element.."Texture"):SetTexture(BEB.TexturePath(BEBCharSettings[BEBOPTIONS.CURRENTFRAME].texture))
local button = getglobal(element)
getglobal(element.."Texture"):SetVertexColor(unpack(BEBCharSettings[BEBOPTIONS.CURRENTFRAME][button.whenindex]))
if ((BEBOPTIONS.CURRENTFRAME == "BEBBackground")or(BEBOPTIONS.CURRENTFRAME == "BEBXpBar")or(BEBOPTIONS.CURRENTFRAME == "BEBRestedXpBar")or(BEBOPTIONS.CURRENTFRAME == "BEBMarkers")) then
getglobal(element.."Texture"):SetTexCoord(0.046875,0.0625,0,1)
else
getglobal(element.."Texture"):SetTexCoord(0.5,1,0,0.5)
end
elseif ((element == "BEBUnrestedTextColorButton")or(element == "BEBRestedTextColorButton")or(element == "BEBMaxrestedTextColorButton")) then
local button = getglobal(element)
getglobal(element.."Texture"):SetVertexColor(unpack(BEBCharSettings[BEBOPTIONS.CURRENTFRAME][button.whenindex]))
elseif ((element == "BEBDragableCheckButton")or(element == "BEBFlashingCheckButton")or(element == "BEBShownCheckButton") or(element == "BEBClickTextCheckButton") or(element == "BEBShowOnMouseoverCheckButton")) then
local button = getglobal(element)
button:SetChecked(BEBCharSettings[BEBOPTIONS.CURRENTFRAME][button.index])
elseif ((element == "BEB_MainAttachToFrame")or(element == "BEB_BarTextFrame")or(element == "BEB_TextureFrame")) then
local button = getglobal(element.."Button")
if (button.subindex) then
getglobal(element.."EditBox"):SetText(BEBCharSettings[BEBOPTIONS.CURRENTFRAME][button.typeindex][button.subindex])
else
getglobal(element.."EditBox"):SetText(BEBCharSettings[BEBOPTIONS.CURRENTFRAME][button.typeindex])
end
elseif ((element == "BEB_MainAttachPointButton")or(element == "BEB_MainAttachToPointButton")) then
local button = getglobal(element)
local attachpoint = BEBCharSettings[BEBOPTIONS.CURRENTFRAME][button.typeindex][button.subindex]
button:SetText(BEBOPTIONS.ATTACHPOINTS[attachpoint])
elseif ((element == "BEBOptionsPositionControls")) then
getglobal(element.."xEditBox"):SetText(BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.x)
getglobal(element.."yEditBox"):SetText(BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.y)
elseif ((element == "BEBOptionsHeightSlider")or(element == "BEBOptionsWidthSlider")) then
local slider = getglobal(element)
slider:SetMinMaxValues(BEBOPTIONS.SIZELIMITS[BEBOPTIONS.CURRENTFRAME][slider.axisindex].min,BEBOPTIONS.SIZELIMITS[BEBOPTIONS.CURRENTFRAME][slider.axisindex].max)
getglobal(element.."Low"):SetText(BEBOPTIONS.SIZELIMITS[BEBOPTIONS.CURRENTFRAME][slider.axisindex].min)
getglobal(element.."High"):SetText(BEBOPTIONS.SIZELIMITS[BEBOPTIONS.CURRENTFRAME][slider.axisindex].max)
slider:SetValueStep(BEBOPTIONS.SIZELIMITS[BEBOPTIONS.CURRENTFRAME][slider.axisindex].step)
slider:SetValue(BEBCharSettings[BEBOPTIONS.CURRENTFRAME][slider.whatindex][slider.axisindex])
elseif (element == "BEBProfileFrame") then
BEBOPTIONS.PROFILETABLE = {[BEBOPTIONS.TEXT.none] = BEBOPTIONS.TEXT.none}
if (BEBGlobal.profiles and (table.getn(BEBGlobal.profiles)>0)) then
for k,_ in BEBGlobal.profiles do
BEBOPTIONS.PROFILETABLE[k] = k
end
if (BEBCharSettings.BEBProfile) then
BEBProfileFrameUseButton:LockHighlight()
BEBProfileFrameUseButtonCheckButton:SetChecked(1)
BEBProfileFrameUseButtonDDMButton:SetText(BEBCharSettings.BEBProfile)
else
BEBProfileFrameUseButton:UnlockHighlight()
BEBProfileFrameUseButtonCheckButton:SetChecked(0)
BEBProfileFrameUseButtonDDMButton:SetText(BEBOPTIONS.TEXT.none)
end
else
BEBProfileFrameUseButton:UnlockHighlight()
BEBProfileFrameUseButtonCheckButton:SetChecked(0)
BEBProfileFrameUseButtonDDMButton:SetText(BEBOPTIONS.TEXT.none)
end
BEBProfileFrameLoadButtonDDMButton:SetText(BEBOPTIONS.TEXT.none)
BEBProfileFrameSaveButtonDDMButton:SetText(BEBOPTIONS.TEXT.none)
BEBProfileFrameDeleteButtonDDMButton:SetText(BEBOPTIONS.TEXT.none)
elseif (element == "BEBOptionsLevelSlider") then
local slider = getglobal(element)
slider:SetMinMaxValues(BEBOPTIONS.SIZELIMITS[slider.whatindex].min,BEBOPTIONS.SIZELIMITS[slider.whatindex].max)
getglobal(element.."Low"):SetText(BEBOPTIONS.SIZELIMITS[slider.whatindex].min)
getglobal(element.."High"):SetText(BEBOPTIONS.SIZELIMITS[slider.whatindex].max)
slider:SetValueStep(BEBOPTIONS.SIZELIMITS[slider.whatindex].step)
slider:SetValue(BEBCharSettings[BEBOPTIONS.CURRENTFRAME][slider.whatindex])
elseif (element == "BEB_StrataDDMButton") then
local button = getglobal(element)
button:SetText(BEBCharSettings[BEBOPTIONS.CURRENTFRAME][button.typeindex])
end
end
function BEBOPTIONS.OnMouseDown()
BEBConfigFrame:StartMoving()
end
function BEBOPTIONS.OnMouseUp()
BEBConfigFrame:StopMovingOrSizing()
end
function BEBOPTIONS.CheckButton_OnClick()
BEBCharSettings[BEBOPTIONS.CURRENTFRAME][this.index] = not(not this:GetChecked())
if (this.index == "flashing") then
if (getglobal(BEBOPTIONS.CURRENTFRAME).textframe) then
getglobal(BEBOPTIONS.CURRENTFRAME).textframe:SetAlpha(1)
else
getglobal(BEBOPTIONS.CURRENTFRAME).texture:SetAlpha(1)
end
elseif ((this.index == "shown") and (BEBOPTIONS.CURRENTFRAME == "BEBBarText")) then
if (BEBCharSettings.BEBBarText.mouseover) then
BEB.Feedback(BEBOPTIONS.TEXT.optionstextwasmouseover)
BEBCharSettings.BEBBarText.mouseover = false
BEBShowOnMouseoverCheckButton:SetChecked(false)
end
elseif ((this.index == "mouseover") and (BEBOPTIONS.CURRENTFRAME == "BEBBarText")) then
if (not this:GetChecked()) then
BEB.TextTimeToHide = nil
end
if (not BEBCharSettings.BEBBarText.shown) then
BEB.Feedback(BEBOPTIONS.TEXT.optionstextwashidden)
BEBCharSettings.BEBBarText.shown = true
BEBShownCheckButton:SetChecked(true)
end
end
BEB.SetupElement(BEBOPTIONS.CURRENTFRAME)
end
function BEBOPTIONS.ColorPicker_OnClick()
if (ColorPickerFrame:IsShown()) then
BEBOPTIONS.ColorPicker_Cancelled(ColorPickerFrame.previousValues)
ColorPickerFrame:Hide()
else
local Red,Green,Blue,Alpha = unpack(BEBCharSettings[BEBOPTIONS.CURRENTFRAME][this.whenindex])
ColorPickerFrame.previousValues = {Red, Green, Blue, Alpha}
ColorPickerFrame.cancelFunc = BEBOPTIONS.ColorPicker_Cancelled
ColorPickerFrame.opacityFunc = BEBOPTIONS.ColorPicker_OpacityChanged
ColorPickerFrame.func = BEBOPTIONS.ColorPicker_ColorChanged
ColorPickerFrame.index = this:GetName().."Texture"
ColorPickerFrame.objindex = BEBOPTIONS.CURRENTFRAME
ColorPickerFrame.whenindex = this.whenindex
ColorPickerFrame.opacity = Alpha
OpacitySliderFrame:SetValue(Alpha)
ColorPickerFrame:SetColorRGB(Red, Green, Blue)
ColorPickerFrame.hasOpacity = true
ColorPickerFrame:ClearAllPoints()
local x = (BEBConfigFrame:GetCenter() - (BEBDefaultsButton:GetWidth()/2))
if (x < UIParent:GetWidth() / 2) then
ColorPickerFrame:SetPoint("LEFT", "BEBConfigFrame", "RIGHT", 0, 0)
else
ColorPickerFrame:SetPoint("RIGHT", "BEBConfigFrame", "LEFT",- BEBDefaultsButton:GetWidth(), 0)
end
ColorPickerFrame:Show()
end
end
function BEBOPTIONS.ColorPicker_Cancelled(color)
BEBCharSettings[ColorPickerFrame.objindex][ColorPickerFrame.whenindex] = color
BEBOPTIONS.OnShow(BEBOPTIONS.CURRENTFRAME)
ColorPickerFrame.hasOpacity = false
end
function BEBOPTIONS.ColorPicker_ColorChanged()
local r, g, b = ColorPickerFrame:GetColorRGB()
local a = OpacitySliderFrame:GetValue()
getglobal(ColorPickerFrame.index):SetVertexColor(r,g,b,a)
if (not ColorPickerFrame:IsShown()) then
BEBCharSettings[ColorPickerFrame.objindex][ColorPickerFrame.whenindex] = {r,g,b,a}
BEB.SetColors("force")
ColorPickerFrame.hasOpacity = false
end
end
function BEBOPTIONS.ColorPicker_OpacityChanged()
if (ColorPickerFrame:IsShown()) then
local r, g, b = ColorPickerFrame:GetColorRGB()
local a = OpacitySliderFrame:GetValue()
getglobal(ColorPickerFrame.index):SetVertexColor(r, g, b, a)
end
end
function BEBOPTIONS.Nudge(arg1,button)
if (button) then
this = getglobal(button)
end
local change
if (arg1 == "RightButton") then
change = 5
else
change = 1
end
if (this.index == "0") then
BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.x = 0
BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.y = 0
elseif (this.index == "up") then
BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.y = BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.y + change
elseif (this.index == "down") then
BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.y = BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.y - change
elseif (this.index == "left") then
BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.x = BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.x - change
elseif (this.index == "right") then
BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.x = BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.x + change
end
getglobal(this:GetParent():GetName().."xEditBox"):SetText(BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.x)
getglobal(this:GetParent():GetName().."yEditBox"):SetText(BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location.y)
end
function BEBOPTIONS.Placement_OnUpdate(elapsed)
if (BEBNudging) then
if (BEBNudgeTime <= 0) then
BEBOPTIONS.Nudge("MiddleButton",BEBNudging)
BEBNudgeTime = 0.015
else
BEBNudgeTime = BEBNudgeTime - elapsed
end
end
end
function BEBOPTIONS.PositionEditBox_OnValueChange()
local axis = this.index
BEBCharSettings[BEBOPTIONS.CURRENTFRAME].location[axis] = this:GetNumber()
BEB.SetupElement(BEBOPTIONS.CURRENTFRAME)
end
function BEBOPTIONS.SliderOnChange()
getglobal(this:GetName().."_EditBox"):SetText(this:GetValue())
if (this.enabled) then
BEBCharSettings[BEBOPTIONS.CURRENTFRAME][this.whatindex][this.axisindex] = this:GetValue()
end
BEB.SetupElement(BEBOPTIONS.CURRENTFRAME)
if (BEBOPTIONS.CURRENTFRAME == "BEBMain") then
BEB.SetupElement("BEBXpBar")
BEB.SetupElement("BEBRestedXpBar")
BEB.SetupElement("BEBRestedXpTick")
end
if ((this.label == "height") and (BEBOPTIONS.CURRENTFRAME == "BEBBarText") and(BEBCharSettings.BEBBarText.mouseover)) then
BEBBarText:Show()
BEB.TextTimeToHide = 2
end
end
function BEBOPTIONS.SliderEditBox_OnValueChange()
local value = this:GetNumber()
local slidervalue = this:GetParent():GetValue(value)
if (value ~= slidervalue) then
this:GetParent():SetValue(value)
end
end
function BEBOPTIONS.ShowMenu()
if (BEB_DropDownMenu:IsVisible()) then
BEB_DropDownMenu:Hide()
return
end
BEB_DropDownMenu.whatindex = BEBOPTIONS.CURRENTFRAME
if (this.typeindex) then
BEB_DropDownMenu.typeindex = this.typeindex
else
BEB_DropDownMenu.typeindex = nil
end
if (this.subindex) then
BEB_DropDownMenu.subindex = this.subindex
else
BEB_DropDownMenu.subindex = nil
end
if (not this.controlbox) then
this.controlbox = this:GetName()
end
BEB_DropDownMenu.controlbox = this.controlbox
if (this.func) then
BEB_DropDownMenu.func = this.func
else
BEB_DropDownMenu.func = nil
end
BEB_DropDownMenu.controlboxtype = this.controlboxtype
BEB_DropDownMenu.table = this.table
local count = 0
local widest = 0
for value, text in BEBOPTIONS[this.table] do
count = count + 1
getglobal("BEB_DropDownMenu_Button"..count):SetText(text)
getglobal("BEB_DropDownMenu_Button"..count).value = value
getglobal("BEB_DropDownMenu_Button"..count):Show()
local width = getglobal("BEB_DropDownMenu_Button"..count):GetTextWidth()
widest = math.max(widest, width)
end
for i=1, BEB_DropDownMenu.count do
if (i <= count) then
getglobal("BEB_DropDownMenu_Button"..i):SetWidth(widest)
else
getglobal("BEB_DropDownMenu_Button"..i):Hide()
end
end
BEB_DropDownMenu:SetWidth(widest + 20)
BEB_DropDownMenu:SetHeight(count * 15 + 20)
BEB_DropDownMenu:ClearAllPoints()
BEB_DropDownMenu:SetPoint("TOPLEFT", getglobal(this.controlbox), "BOTTOMLEFT", 0, 0)
if (BEB_DropDownMenu:GetBottom() < UIParent:GetBottom()) then
local yoffset = UIParent:GetBottom() - BEB_DropDownMenu:GetBottom()
BEB_DropDownMenu:ClearAllPoints()
BEB_DropDownMenu:SetPoint("TOPLEFT", getglobal(this.controlbox), "BOTTOMLEFT", 0, yoffset)
end
BEB_DropDownMenu:Show()
BEB_DropDownMenu.timer = 2
end
function BEBOPTIONS.MenuOptionOnClick()
BEBOPTIONS[this:GetParent().func]()
BEB.SetupElement(BEBOPTIONS.CURRENTFRAME)
BEB_DropDownMenu:Hide()
end
function BEBOPTIONS.DDM_OnUpdate(elapsed)
if (this.timer) then
if (this.timer <= 0) then
this:Hide()
else
this.timer = this.timer - elapsed
end
end
end
function BEBOPTIONS.DDM_ReplaceText()
local table = BEBOPTIONS[this:GetParent().table]
getglobal(this:GetParent().controlbox):SetText(table[this.value])
if (this:GetParent().subindex) then
BEBCharSettings[this:GetParent().whatindex][this:GetParent().typeindex][this:GetParent().subindex] = this.value
else
BEBCharSettings[this:GetParent().whatindex][this:GetParent().typeindex] = this.value
end
BEBOPTIONS.OnShow(BEBOPTIONS.CURRENTFRAME)
end
function BEBOPTIONS.DDM_InsertText()
getglobal(this:GetParent().controlbox):Insert(this.value)
if (this:GetParent().subindex) then
BEBCharSettings[this:GetParent().whatindex][this:GetParent().typeindex][this:GetParent().subindex] = getglobal(this:GetParent().controlbox):GetText()
else
BEBCharSettings[this:GetParent().whatindex][this:GetParent().typeindex] = getglobal(this:GetParent().controlbox):GetText()
end
if (this:GetParent().subindex and this:GetParent().subindex == "string") then
BEBOPTIONS.ChangeText(this:GetParent().whatindex)
end
end
function BEBOPTIONS.DDM_SetText()
getglobal(this:GetParent().controlbox):SetText(this.value)
end
function BEBOPTIONS.MenuEditBoxChangeText()
if (getglobal(this:GetParent():GetName().."Button").subindex and getglobal(this:GetParent():GetName().."Button").subindex == "relto") then
BEBOPTIONS.ChangeAttachTo(BEBOPTIONS.CURRENTFRAME)
elseif (getglobal(this:GetParent():GetName().."Button").subindex and getglobal(this:GetParent():GetName().."Button").subindex == "string") then
BEBOPTIONS.ChangeText(BEBOPTIONS.CURRENTFRAME)
elseif (getglobal(this:GetParent():GetName().."Button").typeindex == "texture") then
BEBOPTIONS.ChangeTexture(BEBOPTIONS.CURRENTFRAME)
end
end
function BEBOPTIONS.ChangeText(frame)
if (frame == "BEBBarText") then
BEB.CompileString(BEB_BarTextFrameEditBox:GetText(), getglobal(frame))
BEB.StringEvent("WRITE_ALL", frame)
BEBCharSettings.BEBBarText.text.string = BEB_BarTextFrameEditBox:GetText()
end
end
function BEBOPTIONS.ChangeAttachTo(frame)
if (BEB.IsFrame(this:GetText())) then
BEBCharSettings[frame].location.relto = this:GetText()
BEB.SetupElement(BEBOPTIONS.CURRENTFRAME)
else
BEB.Feedback(BEBOPTIONS.TEXT.frameisinvalid)
this:SetText(this.prevvals)
end
end
function BEBOPTIONS.ChangeTexture(frame)
BEBCharSettings[frame].texture = this:GetText()
BEB.SetupElement(BEBOPTIONS.CURRENTFRAME)
end
function BEBOPTIONS.CreateProfile()
local bebprofile = getglobal(this:GetName().."EditBox"):GetText()
if (bebprofile == BEBOPTIONS.TEXT.none) then
return
end
if (BEBGlobal.profiles[bebprofile]) then
BEB.Feedback(BEBOPTIONS.TEXT.profilealreadyexists)
else
BEBGlobal.profiles[bebprofile] = {}
BEB.SaveProfile(bebprofile)
table.setn(BEBGlobal.profiles,(table.getn(BEBGlobal.profiles)+1))
end
BEBOPTIONS.SetElementValue("BEBProfileFrame")
end
function BEBOPTIONS.UseProfile()
if (BEBCharSettings.BEBProfile) then
BEBCharSettings.BEBProfile = false
else
local bebprofile = getglobal(this:GetName().."DDMButton"):GetText()
if (bebprofile == BEBOPTIONS.TEXT.none) then
return
end
BEB.LoadProfile(bebprofile)
BEBCharSettings.BEBProfile = bebprofile
BEB.SetupBars()
end
BEBOPTIONS.SetElementValue("BEBProfileFrame")
end
function BEBOPTIONS.LoadProfile()
local bebprofile = getglobal(this:GetName().."DDMButton"):GetText()
if (bebprofile == BEBOPTIONS.TEXT.none) then
return
end
BEB.LoadProfile(bebprofile)
BEBCharSettings.BEBProfile = false
BEB.SetupBars()
BEBOPTIONS.SetElementValue("BEBProfileFrame")
end
function BEBOPTIONS.SaveProfile()
local bebprofile = getglobal(this:GetName().."DDMButton"):GetText()
if (bebprofile == BEBOPTIONS.TEXT.none) then
return
end
BEB.SaveProfile(bebprofile)
BEBOPTIONS.SetElementValue("BEBProfileFrame")
end
function BEBOPTIONS.DeleteProfile()
local bebprofile = getglobal(this:GetName().."DDMButton"):GetText()
if (bebprofile == BEBOPTIONS.TEXT.none) then
return
end
if (bebprofile == BEBCharSettings.BEBProfile) then
BEBCharSettings.BEBProfile = false
BEBGlobal.profiles[bebprofile] = nil
table.setn(BEBGlobal.profiles,(table.getn(BEBGlobal.profiles)-1))
else
BEBGlobal.profiles[bebprofile] = nil
table.setn(BEBGlobal.profiles,(table.getn(BEBGlobal.profiles)-1))
end
BEBOPTIONS.SetElementValue("BEBProfileFrame")
end
function BEBOPTIONS.LevelSliderOnChange()
getglobal(this:GetName().."_EditBox"):SetText(this:GetValue())
if (this.enabled) then
BEBCharSettings[BEBOPTIONS.CURRENTFRAME][this.whatindex] = this:GetValue()
end
BEB.SetupElement(BEBOPTIONS.CURRENTFRAME)
if ((BEBOPTIONS.CURRENTFRAME == "BEBBarText") and(BEBCharSettings.BEBBarText.mouseover)) then
BEBBarText:Show()
BEB.TextTimeToHide = 2
end
end
function BEBOPTIONS.LevelSliderEditBox_OnValueChange()
local value = this:GetNumber()
local slidervalue = this:GetParent():GetValue(value)
if (value ~= slidervalue) then
this:GetParent():SetValue(value)
end
end