--[[ Author: Jarth Filename: LibJarthSharedBase_Buttons.lua ]] -- ------------------------------------------------------------------------------------------------- -- VARIABLES -- ------------------------------------------------------------------------------------------------- local sharedBaseModule = JarthSharedBase ------------------------------------------------------------------------------------------------- -- FUNCTIONS -- ------------------------------------------------------------------------------------------------- function sharedBaseModule:SetFrameSettings(frame, isHidden, height, width) if frame ~= nil then frame:SetHidden(isHidden) frame:SetHeight(height) frame:SetWidth(width) end end function sharedBaseModule.ButtonHighlightEnter(frame) local highlightColor = frame.Saved.HighlightColor local buttonBackdrop = GetControl(frame, "Backdrop") if buttonBackdrop ~= nil then if frame.Saved.IsAudioEnabled then PlaySound(SOUNDS.QUICKSLOT_MOUSEOVER) end buttonBackdrop:SetEdgeColor(highlightColor.r, highlightColor.g, highlightColor.b, highlightColor.a) end end function sharedBaseModule.ButtonHighlightExit(frame) local edgeColor = frame.Saved.EdgeColor local buttonBackdrop = GetControl(frame, "Backdrop") if buttonBackdrop ~= nil then buttonBackdrop:SetEdgeColor(edgeColor.r, edgeColor.g, edgeColor.b, edgeColor.a) end end function sharedBaseModule:GetButtonPosition(baseModule, index) local left = baseModule.Saved.Width * ((index - 1) % baseModule.Saved.BarDepth) local top = baseModule.Saved.Height * (math.floor((index - 1) / baseModule.Saved.BarDepth)) if not baseModule.Saved.Horizontal then left = baseModule.Saved.Width * (math.floor((index - 1) / baseModule.Saved.BarDepth)) top = baseModule.Saved.Height * ((index - 1) % baseModule.Saved.BarDepth) end return left, top end function sharedBaseModule:SetupButton(baseModule, key, left, top, position) local button = baseModule.Buttons[key] button:ClearAnchors() button:SetAnchor(position, baseModule.Frame, position, left, top) button:SetHeight(baseModule.Saved.Height) button:SetWidth(baseModule.Saved.Width) button:SetHidden(false) end function sharedBaseModule:SetupButtonBinding(baseModule, key) local button = baseModule.Buttons[key] local buttonBinding = GetControl(button, "Binding") if buttonBinding ~= nil and baseModule.Saved.ShowKeyBinding then sharedBaseModule:HotkeyUpdateColor(baseModule, buttonBinding) buttonBinding:SetText(sharedBaseModule:HotkeyGetKey(baseModule, key)) buttonBinding:SetDrawLevel(3) buttonBinding:ClearAnchors() buttonBinding:SetAnchor(baseModule.Saved.KeyBindingLocation, button, baseModule.Saved.KeyBindingLocation, 0, 0) end if buttonBinding ~= nil then buttonBinding:SetHidden(not baseModule.Saved.ShowKeyBinding) end end function sharedBaseModule:SetupButtonTexture(baseModule, key, left, top, collection, position) local button = baseModule.Buttons[key] local buttonTexture = GetControl(button, "Texture") if buttonTexture ~= nil then button:SetHandler("OnClicked", baseModule.ButtonOnClicked) buttonTexture:SetDrawLevel(3) buttonTexture:SetTexture(collection[key].EnabledTexture) buttonTexture:ClearAnchors() buttonTexture:SetAnchor(position, baseModule.Frame, position, left + baseModule.Saved.Margin, top + baseModule.Saved.Margin) buttonTexture:SetHeight(button:GetHeight() - (2 * baseModule.Saved.Margin)) buttonTexture:SetWidth(button:GetWidth() - (2 * baseModule.Saved.Margin)) end end function sharedBaseModule:SetupButtonBackdrop(baseModule, key, left, top, position) local button = baseModule.Buttons[key] local buttonBackdrop = GetControl(button, "Backdrop") if buttonBackdrop ~= nil then buttonBackdrop:SetDrawLevel(2) buttonBackdrop:SetEdgeTexture(nil, 1, 1, baseModule.Saved.Margin) buttonBackdrop:ClearAnchors() buttonBackdrop:SetAnchor(position, baseModule.Frame, position, left, top) buttonBackdrop:SetHeight(button:GetHeight()) buttonBackdrop:SetWidth(button:GetWidth()) end end