You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
716 lines
19 KiB
716 lines
19 KiB
|
|
local cstr = tostring
|
|
local _string_len = string.len
|
|
local ceil = math.ceil
|
|
local math_floor = math.floor
|
|
local CreateFrame = CreateFrame
|
|
local GetTime = GetTime
|
|
local GetCursorPosition = GetCursorPosition
|
|
local GameTooltip = GameTooltip
|
|
local select = select
|
|
|
|
local _detalhes = _G.Details
|
|
local gump = _detalhes.gump
|
|
|
|
|
|
function gump:NewLabel2 (parent, container, member, text, font, size, color)
|
|
|
|
font = font or "GameFontHighlightSmall"
|
|
|
|
local newFontString = parent:CreateFontString(nil, "OVERLAY", font)
|
|
if (member) then
|
|
container [member] = newFontString
|
|
end
|
|
newFontString:SetText(text)
|
|
|
|
if (size) then
|
|
_detalhes:SetFontSize(newFontString, size)
|
|
end
|
|
|
|
if (color) then
|
|
newFontString:SetTextColor(unpack(color))
|
|
end
|
|
|
|
newFontString:SetJustifyH("LEFT")
|
|
|
|
return newFontString
|
|
end
|
|
|
|
function gump:NewDetailsButton (parent, container, instancia, func, param1, param2, w, h, pic_up, pic_down, pic_disabled, pic_highlight, options, FrameName, inherits, ischeck)
|
|
|
|
if (not parent) then
|
|
return nil
|
|
end
|
|
|
|
w = w or 16
|
|
h = h or 16
|
|
options = options or {}
|
|
|
|
local new_button
|
|
if (ischeck) then
|
|
new_button = CreateFrame("CheckButton", FrameName, parent, inherits)
|
|
else
|
|
new_button = CreateFrame("Button", FrameName, parent)
|
|
end
|
|
|
|
new_button:SetWidth(w)
|
|
new_button:SetHeight(h)
|
|
|
|
if (not pic_down and pic_up) then
|
|
pic_down = pic_up
|
|
end
|
|
if (not pic_disabled and pic_up) then
|
|
pic_disabled = pic_up
|
|
end
|
|
if (not pic_highlight and pic_up) then
|
|
pic_highlight = pic_up
|
|
end
|
|
|
|
new_button:SetNormalTexture(pic_up)
|
|
new_button:SetPushedTexture(pic_down)
|
|
new_button:SetDisabledTexture(pic_disabled)
|
|
new_button:SetHighlightTexture(pic_highlight, "ADD")
|
|
|
|
local new_text = new_button:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
|
new_text:SetPoint("center", new_button, "center")
|
|
new_button.text = new_text
|
|
|
|
new_button.supportFrame = CreateFrame("frame", nil, new_button)
|
|
new_button.supportFrame:SetPoint("topleft", new_button, "topleft")
|
|
new_button.supportFrame:SetPoint("bottomright", new_button, "bottomright")
|
|
new_button.supportFrame:SetFrameLevel(new_button:GetFrameLevel()+1)
|
|
|
|
new_button.supportFrame.disable_overlay = new_button.supportFrame:CreateTexture(nil, "overlay")
|
|
new_button.supportFrame.disable_overlay:SetTexture("Interface\\AddOns\\Details\\images\\button_disable_overlay")
|
|
new_button.supportFrame.disable_overlay:SetPoint("topleft", new_button.supportFrame, "topleft")
|
|
new_button.supportFrame.disable_overlay:SetPoint("bottomright", new_button.supportFrame, "bottomright")
|
|
new_button.supportFrame.disable_overlay:Hide()
|
|
|
|
local rightFunction = options.rightFunc
|
|
|
|
new_button:SetScript("OnDisable", function()
|
|
new_button.supportFrame.disable_overlay:Show()
|
|
end)
|
|
new_button:SetScript("OnEnable", function()
|
|
new_button.supportFrame.disable_overlay:Hide()
|
|
end)
|
|
|
|
new_button.funcParam1 = param1
|
|
new_button.funcParam2 = param2
|
|
new_button.options = options
|
|
|
|
function new_button:ChangeOptions (_table)
|
|
options = _table
|
|
rightFunction = options.rightFunc
|
|
end
|
|
|
|
new_button.enter = false
|
|
|
|
new_button:SetScript("OnMouseDown", function(self, button)
|
|
if (not self:IsEnabled()) then
|
|
return
|
|
end
|
|
|
|
self.mouse_down = GetTime()
|
|
local x, y = GetCursorPosition()
|
|
self.x = math_floor (x)
|
|
self.y = math_floor (y)
|
|
|
|
if (container) then
|
|
if (container:IsMovable() and not container.isLocked) then
|
|
container:StartMoving()
|
|
container.isMoving = true
|
|
end
|
|
end
|
|
|
|
if (new_button.texture) then
|
|
new_button.texture:SetTexCoord(0, 1, 0.5, 0.74609375)
|
|
end
|
|
|
|
if (options.OnGrab and options.OnGrab == "PassClick") then
|
|
if (rightFunction) then
|
|
if (button == "LeftButton") then
|
|
func (new_button.funcParam1, new_button.funcParam2)
|
|
else
|
|
rightFunction.func (rightFunction.param1, rightFunction.param2)
|
|
end
|
|
else
|
|
func (new_button.funcParam1, new_button.funcParam2)
|
|
end
|
|
end
|
|
end)
|
|
|
|
new_button:SetScript("OnMouseUp", function(self, button)
|
|
if (not self:IsEnabled()) then
|
|
return
|
|
end
|
|
|
|
if (container) then
|
|
if (container.isMoving) then
|
|
container:StopMovingOrSizing()
|
|
container.isMoving = false
|
|
if (instancia) then
|
|
instancia:SaveMainWindowPosition()
|
|
end
|
|
end
|
|
end
|
|
|
|
if (new_button.texture) then
|
|
if (new_button.enter) then
|
|
new_button.texture:SetTexCoord(0, 1, 0.25, 0.49609375)
|
|
else
|
|
new_button.texture:SetTexCoord(0, 1, 0, 0.24609375)
|
|
end
|
|
end
|
|
|
|
local x, y = GetCursorPosition()
|
|
x = math_floor (x)
|
|
y = math_floor (y)
|
|
if ((self.mouse_down+0.4 > GetTime() and (x == self.x and y == self.y)) or (x == self.x and y == self.y)) then
|
|
if (rightFunction) then
|
|
if (button == "LeftButton") then
|
|
func (new_button.funcParam1, new_button.funcParam2)
|
|
else
|
|
rightFunction.func (rightFunction.param1, rightFunction.param2)
|
|
end
|
|
else
|
|
func (new_button.funcParam1, new_button.funcParam2)
|
|
end
|
|
end
|
|
end)
|
|
|
|
new_button.tooltip = nil
|
|
|
|
new_button:SetScript("OnEnter", function()
|
|
|
|
new_button.enter = true
|
|
|
|
if (new_button.tooltip) then
|
|
GameCooltip:Reset()
|
|
GameCooltip:SetType ("tooltip")
|
|
GameCooltip:SetColor ("main", "transparent")
|
|
GameCooltip:AddLine(new_button.tooltip)
|
|
GameCooltip:SetOwner(new_button)
|
|
GameCooltip:ShowCooltip()
|
|
end
|
|
|
|
if (new_button.texture) then
|
|
new_button.texture:SetTexCoord(0, 1, 0.25+(0.0078125/2), 0.5+(0.0078125/2))
|
|
end
|
|
|
|
if (new_button.MouseOnEnterHook) then
|
|
new_button.MouseOnEnterHook (new_button)
|
|
end
|
|
end)
|
|
|
|
new_button:SetScript("OnLeave", function()
|
|
|
|
new_button.enter = false
|
|
|
|
if (new_button.tooltip) then
|
|
_detalhes.popup:ShowMe(false)
|
|
end
|
|
|
|
if (new_button.texture) then
|
|
new_button.texture:SetTexCoord(0, 1, 0, 0.24609375)
|
|
end
|
|
|
|
if (new_button.MouseOnLeaveHook) then
|
|
new_button.MouseOnLeaveHook (new_button)
|
|
end
|
|
end)
|
|
|
|
function new_button:ChangeIcon (icon1, icon2, icon3, icon4)
|
|
new_button:SetNormalTexture(icon1)
|
|
new_button:SetPushedTexture(icon2)
|
|
new_button:SetDisabledTexture(icon3)
|
|
new_button:SetHighlightTexture(icon4, "ADD")
|
|
end
|
|
|
|
function new_button:InstallCustomTexture (texture, rect)
|
|
new_button:SetNormalTexture("")
|
|
new_button:SetPushedTexture("")
|
|
new_button:SetDisabledTexture("")
|
|
new_button:SetHighlightTexture("")
|
|
texture = texture or "Interface\\AddOns\\Details\\images\\default_button"
|
|
new_button.texture = new_button:CreateTexture(nil, "background")
|
|
|
|
if (not rect) then
|
|
new_button.texture:SetAllPoints(new_button)
|
|
else
|
|
new_button.texture:SetPoint("topleft", new_button, "topleft", rect.x1, rect.y1)
|
|
new_button.texture:SetPoint("bottomright", new_button, "bottomright", rect.x2, rect.y2)
|
|
end
|
|
|
|
new_button.texture:SetTexCoord(0, 1, 0, 0.24609375)
|
|
new_button.texture:SetTexture(texture)
|
|
end
|
|
|
|
new_button.textColor = {}
|
|
new_button.textColor.r, new_button.textColor.g, new_button.textColor.b = new_button.text:GetTextColor()
|
|
|
|
return new_button
|
|
end
|
|
|
|
local EditBoxBackdrop = {
|
|
bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
|
|
edgeFile = "Interface\\ChatFrame\\ChatFrameBackground",
|
|
tile = true, edgeSize = 1, tileSize = 5,
|
|
}
|
|
|
|
function gump:NewTextBox (parent, container, member, func, param1, param2, w, h, options)
|
|
|
|
local editbox = CreateFrame("EditBox", "DetailsEditBox1", parent)
|
|
container [member] = editbox
|
|
options = options or {}
|
|
|
|
editbox:SetAutoFocus(false)
|
|
editbox:SetFontObject(GameFontHighlightSmall)
|
|
|
|
editbox:SetWidth(w)
|
|
editbox:SetHeight(h)
|
|
editbox:SetJustifyH("CENTER")
|
|
editbox:EnableMouse(true)
|
|
editbox:SetBackdrop(EditBoxBackdrop)
|
|
editbox:SetBackdropColor(0, 0, 0, 0.5)
|
|
editbox:SetBackdropBorderColor(0.3, 0.3, 0.30, 0.80)
|
|
editbox:SetText("") --localize-me
|
|
|
|
editbox.perdeu_foco = nil
|
|
|
|
editbox.text = ""
|
|
editbox.next = options.next
|
|
editbox.tooltip = options.tooltip
|
|
editbox.tab_on_enter = options.TabOnEnterPress
|
|
editbox.space = options.MySpace
|
|
|
|
gump:NewLabel(editbox, editbox, nil, "label", "", "GameFontHighlightSmall")
|
|
editbox ["label"]: SetPoint ("right", editbox, "left", -2, 0)
|
|
editbox.label:SetTextColor(.8, .8, .8, 1)
|
|
|
|
function editbox:SetPointAndSpace (MyAnchor, SnapTo, HisAnchor, x, y, Width)
|
|
|
|
if (type(MyAnchor) == "boolean" and MyAnchor and editbox.space) then
|
|
local textWidth = editbox ["label"]:GetStringWidth()+2
|
|
editbox:SetWidth(editbox.space - textWidth - 15)
|
|
return
|
|
|
|
elseif (not editbox.space and not Width) then
|
|
return
|
|
elseif (Width) then
|
|
editbox.space = Width
|
|
end
|
|
|
|
if (editbox.space) then
|
|
editbox ["label"]:ClearAllPoints()
|
|
editbox:ClearAllPoints()
|
|
editbox ["label"]:SetPoint(MyAnchor, SnapTo, HisAnchor, x, y)
|
|
editbox:SetPoint("left", editbox["label"].widget, "right", 2, 0)
|
|
|
|
local textWidth = editbox ["label"]:GetStringWidth()+2
|
|
editbox:SetWidth(editbox.space - textWidth - 15)
|
|
end
|
|
end
|
|
|
|
function editbox:SetLabelText (text)
|
|
if (text) then
|
|
editbox ["label"]:SetText(text)
|
|
else
|
|
editbox ["label"]:SetText("")
|
|
end
|
|
|
|
if (editbox.space) then
|
|
editbox:SetPointAndSpace (true) --refresh
|
|
end
|
|
end
|
|
|
|
local EnterPress = function(byScript)
|
|
|
|
if (editbox.EnterHook) then
|
|
editbox.EnterHook()
|
|
end
|
|
|
|
local texto = _detalhes:trim (editbox:GetText())
|
|
if (_string_len (texto) > 0) then
|
|
editbox.text = texto
|
|
if (func) then
|
|
func (param1, param2, texto, editbox, byScript)
|
|
end
|
|
else
|
|
editbox:SetText("")
|
|
editbox.text = ""
|
|
end
|
|
editbox.perdeu_foco = true --isso aqui pra quando estiver editando e clicar em outra caixa
|
|
editbox:ClearFocus()
|
|
|
|
if (editbox.tab_on_enter and editbox.next) then
|
|
editbox.next:SetFocus()
|
|
end
|
|
end
|
|
|
|
function editbox:PressEnter(byScript)
|
|
EnterPress (byScript)
|
|
end
|
|
|
|
editbox:SetScript("OnEnterPressed", EnterPress)
|
|
|
|
editbox:SetScript("OnEscapePressed", function()
|
|
editbox:SetText("")
|
|
editbox.text = ""
|
|
editbox.perdeu_foco = true
|
|
editbox:ClearFocus()
|
|
|
|
if (editbox.OnEscapeHook) then
|
|
editbox.OnEscapeHook()
|
|
end
|
|
end)
|
|
|
|
editbox:SetScript("OnEnter", function()
|
|
editbox.mouse_over = true
|
|
if (editbox:IsEnabled()) then
|
|
editbox:SetBackdropBorderColor(0.5, 0.5, 0.5, 1)
|
|
end
|
|
if (editbox.tooltip) then
|
|
GameCooltip:Reset()
|
|
GameCooltip:SetType ("tooltip")
|
|
GameCooltip:SetColor ("main", "transparent")
|
|
GameCooltip:AddLine(editbox.tooltip)
|
|
GameCooltip:SetOwner(editbox)
|
|
GameCooltip:ShowCooltip()
|
|
end
|
|
|
|
if (editbox.OnEnterHook) then
|
|
editbox:OnEnterHook()
|
|
end
|
|
end)
|
|
|
|
editbox:SetScript("OnLeave", function()
|
|
editbox.mouse_over = false
|
|
if (editbox:IsEnabled()) then
|
|
editbox:SetBackdropBorderColor(0.3, 0.3, 0.3, 0.8)
|
|
end
|
|
|
|
if (not editbox:HasFocus()) then
|
|
--if (editbox:GetText() == "") then
|
|
-- editbox:SetText("insira o nome do buff")
|
|
--end
|
|
end
|
|
|
|
if (editbox.tooltip) then
|
|
if (not editbox.HaveMenu) then
|
|
_detalhes.popup:ShowMe(false)
|
|
end
|
|
end
|
|
|
|
if (editbox.OnLeaveHook) then
|
|
editbox:OnLeaveHook()
|
|
end
|
|
|
|
end)
|
|
|
|
editbox:SetScript("OnEditFocusGained", function()
|
|
if (editbox.label) then
|
|
editbox.label:SetTextColor(1, 1, 1, 1)
|
|
end
|
|
if (editbox.OnFocusGainedHook) then
|
|
editbox.OnFocusGainedHook()
|
|
end
|
|
end)
|
|
|
|
editbox:SetScript("OnEditFocusLost", function()
|
|
|
|
if (editbox:IsShown()) then
|
|
if (editbox.perdeu_foco == nil) then
|
|
local texto = _detalhes:trim (editbox:GetText())
|
|
if (_string_len (texto) > 0) then
|
|
editbox.text = texto
|
|
if (func) then
|
|
func (param1, param2, texto, editbox, nil)
|
|
end
|
|
else
|
|
editbox:SetText("")
|
|
end
|
|
else
|
|
editbox.perdeu_foco = nil
|
|
end
|
|
|
|
if (editbox.label) then
|
|
editbox.label:SetTextColor(.8, .8, .8, 1)
|
|
end
|
|
|
|
if (editbox.OnFocusLostHook) then
|
|
editbox.OnFocusLostHook()
|
|
end
|
|
end
|
|
end)
|
|
|
|
editbox:SetScript("OnChar", function(self, text)
|
|
if (editbox.InputHook) then
|
|
editbox:InputHook (text)
|
|
end
|
|
end)
|
|
|
|
editbox:SetScript("OnTextChanged", function(self, userChanged)
|
|
if (editbox.TextChangeedHook and userChanged) then
|
|
editbox:TextChangeedHook (userChanged)
|
|
end
|
|
end)
|
|
|
|
editbox:SetScript("OnTabPressed", function()
|
|
if (editbox.next) then
|
|
EnterPress()
|
|
editbox.next:SetFocus()
|
|
end
|
|
end)
|
|
|
|
editbox.SetNext = function(_, NextBox)
|
|
if (NextBox) then
|
|
editbox.next = NextBox
|
|
end
|
|
end
|
|
|
|
editbox.SetLabel = function(_, Label)
|
|
if (Label) then
|
|
editbox.label = Label
|
|
editbox.label:SetTextColor(.8, .8, .8, 1)
|
|
end
|
|
end
|
|
|
|
function editbox:Blink()
|
|
editbox.label:SetTextColor(1, .2, .2, 1)
|
|
end
|
|
|
|
if (options.Label) then
|
|
editbox:SetLabel (options.Label)
|
|
end
|
|
|
|
options = nil
|
|
|
|
return editbox
|
|
end
|
|
|
|
function gump:NewScrollBar2 (master, slave, x, y)
|
|
|
|
local slider_gump = CreateFrame("Slider", master:GetName() and master:GetName() .. "SliderGump" or "DetailsSliderGump" .. math.random(1, 10000000), master)
|
|
slider_gump.scrollMax = 560 --default - tamanho da janela de fundo
|
|
|
|
-- ///// SLIDER /////
|
|
slider_gump:SetPoint("TOPLEFT", master, "TOPRIGHT", x, y)
|
|
slider_gump.ativo = true
|
|
|
|
slider_gump.bg = slider_gump:CreateTexture(nil, "BACKGROUND")
|
|
slider_gump.bg:SetAllPoints(true)
|
|
slider_gump.bg:SetTexture(0, 0, 0, 0)
|
|
--coisinha do meio
|
|
slider_gump.thumb = slider_gump:CreateTexture(nil, "OVERLAY")
|
|
slider_gump.thumb:SetTexture("Interface\\Buttons\\UI-ScrollBar-Knob")
|
|
slider_gump.thumb:SetSize(29, 30)
|
|
slider_gump:SetThumbTexture (slider_gump.thumb)
|
|
|
|
slider_gump:SetOrientation("VERTICAL")
|
|
slider_gump:SetSize(16, 100)
|
|
slider_gump:SetMinMaxValues(0, slider_gump.scrollMax)
|
|
slider_gump:SetValue(0)
|
|
slider_gump.ultimo = 0
|
|
|
|
local botao_cima = CreateFrame("Button", slider_gump:GetName() .. "UpButton", master)
|
|
|
|
botao_cima:SetWidth(29)
|
|
botao_cima:SetHeight(32)
|
|
botao_cima:SetNormalTexture([[Interface\Buttons\Arrow-Up-Up]])
|
|
botao_cima:SetPushedTexture([[Interface\Buttons\Arrow-Up-Down]])
|
|
botao_cima:SetDisabledTexture([[Interface\Buttons\Arrow-Up-Disabled]])
|
|
botao_cima:Show()
|
|
botao_cima:Disable()
|
|
|
|
botao_cima:SetPoint("BOTTOM", slider_gump, "TOP", 0, -12)
|
|
botao_cima.x = 0
|
|
botao_cima.y = -12
|
|
|
|
local botao_baixo = CreateFrame("Button", slider_gump:GetName() .. "DownButton", master)
|
|
botao_baixo:SetPoint("TOP", slider_gump, "BOTTOM", 0, 12)
|
|
botao_baixo.x = 0
|
|
botao_baixo.y = 12
|
|
|
|
botao_baixo:SetWidth(29)
|
|
botao_baixo:SetHeight(32)
|
|
botao_baixo:SetNormalTexture([[Interface\Buttons\Arrow-Down-Up]])
|
|
botao_baixo:SetPushedTexture([[Interface\Buttons\Arrow-Down-Down]])
|
|
botao_baixo:SetDisabledTexture([[Interface\Buttons\Arrow-Down-Disabled]])
|
|
botao_baixo:Show()
|
|
botao_baixo:Disable()
|
|
|
|
master.baixo = botao_baixo
|
|
master.cima = botao_cima
|
|
master.slider = slider_gump
|
|
|
|
botao_baixo:SetScript("OnMouseDown", function(self)
|
|
if (not slider_gump:IsEnabled()) then
|
|
return
|
|
end
|
|
|
|
local current = slider_gump:GetValue()
|
|
local minValue, maxValue = slider_gump:GetMinMaxValues()
|
|
if (current+5 < maxValue) then
|
|
slider_gump:SetValue(current+5)
|
|
else
|
|
slider_gump:SetValue(maxValue)
|
|
end
|
|
self.precionado = true
|
|
self.last_up = -0.3
|
|
self:SetScript("OnUpdate", function(self, elapsed)
|
|
self.last_up = self.last_up + elapsed
|
|
if (self.last_up > 0.03) then
|
|
self.last_up = 0
|
|
local current = slider_gump:GetValue()
|
|
local minValue, maxValue = slider_gump:GetMinMaxValues()
|
|
if (current+2 < maxValue) then
|
|
slider_gump:SetValue(current+2)
|
|
else
|
|
slider_gump:SetValue(maxValue)
|
|
end
|
|
end
|
|
end)
|
|
end)
|
|
botao_baixo:SetScript("OnMouseUp", function(self)
|
|
self.precionado = false
|
|
self:SetScript("OnUpdate", nil)
|
|
end)
|
|
|
|
botao_cima:SetScript("OnMouseDown", function(self)
|
|
if (not slider_gump:IsEnabled()) then
|
|
return
|
|
end
|
|
|
|
local current = slider_gump:GetValue()
|
|
if (current-5 > 0) then
|
|
slider_gump:SetValue(current-5)
|
|
else
|
|
slider_gump:SetValue(0)
|
|
end
|
|
self.precionado = true
|
|
self.last_up = -0.3
|
|
self:SetScript("OnUpdate", function(self, elapsed)
|
|
self.last_up = self.last_up + elapsed
|
|
if (self.last_up > 0.03) then
|
|
self.last_up = 0
|
|
local current = slider_gump:GetValue()
|
|
if (current-2 > 0) then
|
|
slider_gump:SetValue(current-2)
|
|
else
|
|
slider_gump:SetValue(0)
|
|
end
|
|
end
|
|
end)
|
|
end)
|
|
botao_cima:SetScript("OnMouseUp", function(self)
|
|
self.precionado = false
|
|
self:SetScript("OnUpdate", nil)
|
|
end)
|
|
--isso aqui pra quando o slider ativar, o scroll fica na posi��o zero
|
|
botao_cima:SetScript("OnEnable", function(self)
|
|
local current = slider_gump:GetValue()
|
|
if (current == 0) then
|
|
botao_cima:Disable()
|
|
end
|
|
end)
|
|
|
|
slider_gump:SetScript("OnValueChanged", function(self)
|
|
local current = self:GetValue()
|
|
master:SetVerticalScroll (current)
|
|
|
|
local minValue, maxValue = slider_gump:GetMinMaxValues()
|
|
|
|
if (current == minValue) then
|
|
botao_cima:Disable()
|
|
elseif (not botao_cima:IsEnabled()) then
|
|
botao_cima:Enable()
|
|
end
|
|
|
|
if (current == maxValue) then
|
|
botao_baixo:Disable()
|
|
elseif (not botao_baixo:IsEnabled()) then
|
|
botao_baixo:Enable()
|
|
end
|
|
|
|
end)
|
|
|
|
slider_gump:SetScript("OnShow", function(self)
|
|
botao_cima:Show()
|
|
botao_baixo:Show()
|
|
end)
|
|
|
|
slider_gump:SetScript("OnDisable", function(self)
|
|
botao_cima:Disable()
|
|
botao_baixo:Disable()
|
|
end)
|
|
|
|
slider_gump:SetScript("OnEnable", function(self)
|
|
botao_cima:Enable()
|
|
botao_baixo:Enable()
|
|
end)
|
|
|
|
master:SetScript("OnMouseWheel", function(self, delta)
|
|
if (not slider_gump:IsEnabled()) then
|
|
return
|
|
end
|
|
|
|
local current = slider_gump:GetValue()
|
|
if (delta < 0) then
|
|
--baixo
|
|
local minValue, maxValue = slider_gump:GetMinMaxValues()
|
|
if (current + (master.wheel_jump or 20) < maxValue) then
|
|
slider_gump:SetValue(current + (master.wheel_jump or 20))
|
|
else
|
|
slider_gump:SetValue(maxValue)
|
|
end
|
|
elseif (delta > 0) then
|
|
--cima
|
|
if (current + (master.wheel_jump or 20) > 0) then
|
|
slider_gump:SetValue(current - (master.wheel_jump or 20))
|
|
else
|
|
slider_gump:SetValue(0)
|
|
end
|
|
end
|
|
end)
|
|
|
|
function slider_gump:Altura (h)
|
|
self:SetHeight(h)
|
|
end
|
|
|
|
function slider_gump:Update (desativar)
|
|
|
|
if (desativar) then
|
|
slider_gump:Disable()
|
|
slider_gump:SetValue(0)
|
|
slider_gump.ativo = false
|
|
master:EnableMouseWheel(false)
|
|
return
|
|
end
|
|
|
|
self.scrollMax = slave:GetHeight()-master:GetHeight()
|
|
if (self.scrollMax > 0) then
|
|
slider_gump:SetMinMaxValues(0, self.scrollMax)
|
|
if (not slider_gump.ativo) then
|
|
slider_gump:Enable()
|
|
slider_gump.ativo = true
|
|
master:EnableMouseWheel(true)
|
|
end
|
|
else
|
|
slider_gump:Disable()
|
|
slider_gump:SetValue(0)
|
|
slider_gump.ativo = false
|
|
master:EnableMouseWheel(false)
|
|
end
|
|
end
|
|
|
|
function slider_gump:cimaPoint (x, y)
|
|
botao_cima:SetPoint("BOTTOM", slider_gump, "TOP", x, (y)-12)
|
|
end
|
|
|
|
function slider_gump:baixoPoint (x, y)
|
|
botao_baixo:SetPoint("TOP", slider_gump, "BOTTOM", x, (y)+12)
|
|
end
|
|
|
|
return slider_gump
|
|
end
|
|
|