diff --git a/aux-addon.lua b/aux-addon.lua index 05e7e61..3df115c 100644 --- a/aux-addon.lua +++ b/aux-addon.lua @@ -3,6 +3,8 @@ module 'aux' local T = require 'T' local post = require 'aux.tabs.post' +M.USE_BLIZZARD_THEME = true + M.print = T.vararg-function(arg) DEFAULT_CHAT_FRAME:AddMessage(LIGHTYELLOW_FONT_COLOR_CODE .. ' ' .. join(map(arg, tostring), ' ')) end diff --git a/frame.lua b/frame.lua index 819912f..cdf9ab3 100644 --- a/frame.lua +++ b/frame.lua @@ -11,9 +11,21 @@ end do local frame = CreateFrame('Frame', 'aux_frame', UIParent) tinsert(UISpecialFrames, 'aux_frame') - gui.set_window_style(frame) + if not gui.is_blizzard() then + gui.set_window_style(frame) + end gui.set_size(frame, 768, 447) - frame:SetPoint('LEFT', 100, 0) + if gui.is_blizzard() then + local frameBorder = CreateFrame('Frame', '$parentBorder', frame) + frameBorder:SetWidth(frame:GetWidth() + 24) + frameBorder:SetHeight(frame:GetHeight() + 24) + frameBorder:SetPoint('CENTER', frame, 'CENTER') + frameBorder:SetBackdrop({edgeFile = [[Interface\Tooltips\UI-Tooltip-Border]], edgeSize = 24, + tile = true, tileSize = 24, bgFile = [[Interface\DialogFrame\UI-DialogBox-Background]], + insets = { + left = 6, right = 6, top = 6, bottom = 6 }}) + end + frame:SetPoint('LEFT', 100, 0) frame:SetToplevel(true) frame:SetMovable(true) frame:EnableMouse(true) @@ -38,13 +50,15 @@ do gui.set_size(btn, 60, 24) btn:SetText('Close') btn:SetScript('OnClick', function() frame:Hide() end) + btn:SetFrameLevel(btn:GetFrameLevel() + 2) close_button = btn end do local btn = gui.button(frame, gui.font_size.small) btn:SetPoint('RIGHT', close_button, 'LEFT' , -5, 0) - gui.set_size(btn, 60, 24) + gui.set_size(btn, gui.is_blizzard() and 80 or 60, 24) btn:SetText(color.blizzard'Blizzard UI') + btn:SetFrameLevel(btn:GetFrameLevel() + 2) btn:SetScript('OnClick',function() if AuctionFrame:IsVisible() then HideUIPanel(AuctionFrame) else ShowUIPanel(AuctionFrame) end end) diff --git a/gui/auction_listing.lua b/gui/auction_listing.lua index 0ceff4c..3d6be9c 100644 --- a/gui/auction_listing.lua +++ b/gui/auction_listing.lua @@ -681,7 +681,7 @@ local methods = { UpdateRows = function(self) if self.rowInfo.numDisplayRows > getn(self.rows) then - self.contentFrame:SetPoint('BOTTOMRIGHT', -15, 0) + self.contentFrame:SetPoint('BOTTOMRIGHT', gui.is_blizzard() and -30 or -15, 0) else self.contentFrame:SetPoint('BOTTOMRIGHT', 0, 0) end @@ -696,17 +696,32 @@ local methods = { for _, cell in self.headCells do local tex = cell:GetNormalTexture() - tex:SetTexture[[Interface\AddOns\aux-AddOn\WorldStateFinalScore-Highlight]] - tex:SetTexCoord(.017, 1, .083, .909) - tex:SetAlpha(.5) + if not gui.is_blizzard() then + tex:SetTexture[[Interface\AddOns\aux-AddOn\WorldStateFinalScore-Highlight]] + tex:SetTexCoord(.017, 1, .083, .909) + tex:SetAlpha(.5) + else + tex:SetTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]]) + tex:SetTexCoord(0.1, 0.8, 0, 1) + tex:SetVertexColor(1, 1, 1) + end end if getn(self.sorts) > 0 then local last_sort = self.sorts[1] + local tex = self.headCells[last_sort.index]:GetNormalTexture() if last_sort.descending then - self.headCells[last_sort.index]:GetNormalTexture():SetTexture(.8, .6, 1, .8) + if not gui.is_blizzard() then + tex:SetTexture(.8, .6, 1, .8) + else + tex:SetVertexColor(0.75, .5, 1) + end else - self.headCells[last_sort.index]:GetNormalTexture():SetTexture(.6, .8, 1, .8) + if not gui.is_blizzard() then + tex:SetTexture(.6, .8, 1, .8) + else + tex:SetVertexColor(.5, .75, 1) + end end end @@ -920,19 +935,12 @@ function M.new(parent, rows, columns) scrollFrame:SetAllPoints(contentFrame) rt.scrollFrame = scrollFrame FauxScrollFrame_Update(rt.scrollFrame, 0, rows, rt.ROW_HEIGHT) - - local scrollBar = _G[scrollFrame:GetName() .. 'ScrollBar'] - scrollBar:ClearAllPoints() - scrollBar:SetPoint('TOPRIGHT', rt, -4, -HEAD_HEIGHT) - scrollBar:SetPoint('BOTTOMRIGHT', rt, -4, 4) - scrollBar:SetWidth(10) - local thumbTex = scrollBar:GetThumbTexture() - thumbTex:SetPoint('CENTER', 0, 0) - thumbTex:SetTexture(aux.color.content.background()) - thumbTex:SetHeight(150) - thumbTex:SetWidth(scrollBar:GetWidth()) - _G[scrollBar:GetName() .. 'ScrollUpButton']:Hide() - _G[scrollBar:GetName() .. 'ScrollDownButton']:Hide() + + gui.set_scrollbar_style(scrollFrame, not gui.is_blizzard() and { + {'TOPRIGHT', parent, -4, -HEAD_HEIGHT}, {'BOTTOMRIGHT', parent, -4, 4} -- Default + } or { + {'TOPRIGHT', parent, -7, -20}, {'BOTTOMRIGHT', parent, -7, 18} -- Blizzard + }) rt.headCells = {} for i, column in ipairs(rt.columns) do @@ -959,18 +967,26 @@ function M.new(parent, rows, columns) text:SetAllPoints() local tex = cell:CreateTexture() + local highlight = cell:CreateTexture() tex:SetAllPoints() - tex:SetTexture([[Interface\AddOns\aux-AddOn\WorldStateFinalScore-Highlight]]) - tex:SetTexCoord(.017, 1, .083, .909) - tex:SetAlpha(.5) - cell:SetNormalTexture(tex) + highlight:SetAllPoints() + if not gui.is_blizzard() then + tex:SetTexture([[Interface\AddOns\aux-AddOn\WorldStateFinalScore-Highlight]]) + tex:SetTexCoord(.017, 1, .083, .909) + tex:SetAlpha(.5) - local tex = cell:CreateTexture() - tex:SetAllPoints() - tex:SetTexture([[Interface\Buttons\UI-Listbox-Highlight]]) - tex:SetTexCoord(.025, .957, .087, .931) - tex:SetAlpha(.2) - cell:SetHighlightTexture(tex) + highlight:SetTexture([[Interface\Buttons\UI-Listbox-Highlight]]) + highlight:SetTexCoord(.025, .957, .087, .931) + else + tex:SetTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]]) + tex:SetTexCoord(0.1, 0.8, 0, 1) + + highlight:SetTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]]) + highlight:SetTexCoord(0.1, 0.8, 0, 1) + end + highlight:SetAlpha(.2) + cell:SetNormalTexture(tex) + cell:SetHighlightTexture(highlight) tinsert(rt.headCells, cell) end @@ -994,7 +1010,11 @@ function M.new(parent, rows, columns) end local highlight = row:CreateTexture() highlight:SetAllPoints() - highlight:SetTexture(1, .9, 0, .5) + if not gui.is_blizzard() then + highlight:SetTexture(1, .9, 0, .5) + else + highlight:SetTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight") + end highlight:Hide() row.highlight = highlight @@ -1018,10 +1038,16 @@ function M.new(parent, rows, columns) cell:SetPoint('TOPLEFT', row.cells[j - 1], 'TOPRIGHT') end - if mod(j, 2) == 1 then + if gui.is_blizzard() or mod(j, 2) == 1 then local tex = cell:CreateTexture() tex:SetAllPoints() - tex:SetTexture(.3, .3, .3, .2) + if not gui.is_blizzard() then + tex:SetTexture(.3, .3, .3, .2) + else + tex:SetTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight") + tex:SetTexCoord(0.1, 0.8, 0, 1) + tex:SetAlpha(0.3) + end end if column.init then diff --git a/gui/core.lua b/gui/core.lua index fdc0964..dd6d077 100644 --- a/gui/core.lua +++ b/gui/core.lua @@ -107,15 +107,39 @@ do end end +function M.is_blizzard() + return aux.USE_BLIZZARD_THEME +end + function M.set_size(frame, width, height) frame:SetWidth(width) frame:SetHeight(height or width) end function M.set_frame_style(frame, backdrop_color, border_color, left, right, top, bottom) - frame:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=1.5, tile=true, insets={left=left, right=right, top=top, bottom=bottom}} - frame:SetBackdropColor(backdrop_color()) - frame:SetBackdropBorderColor(border_color()) + if not is_blizzard() then + frame:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=1.5, tile=true, insets={left=left, right=right, top=top, bottom=bottom}} + frame:SetBackdropColor(backdrop_color()) + frame:SetBackdropBorderColor(border_color()) + else + frame:SetBackdrop({ + bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], + edgeSize = 11, + tile = true + }) + frame:SetBackdropColor(0.09, 0.09, 0.19) + + local border = CreateFrame('Frame', nil, frame) + border:SetPoint('TOPLEFT', frame, 'TOPLEFT', -3, 3) + border:SetPoint('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', 3, -3) + border:SetBackdrop({ + edgeFile = [[Interface\Tooltips\UI-Tooltip-Border]], + edgeSize = 11, + tileSize = 11, + tile = true + }) + border:SetBackdropBorderColor(0.6, 0.6, 0.6) + end end function M.set_window_style(frame, left, right, top, bottom) @@ -130,6 +154,66 @@ function M.set_content_style(frame, left, right, top, bottom) set_frame_style(frame, aux.color.content.background, aux.color.content.border, left, right, top, bottom) end +function M.set_scrollbar_style(scrollFrame, points) + local scrollBar = _G[scrollFrame:GetName() .. 'ScrollBar'] + + scrollBar:ClearAllPoints() + for _, pt in ipairs(points) do + scrollBar:SetPoint(unpack(pt)) + end + + if not is_blizzard() then + scrollBar:SetWidth(10) + local thumbTex = scrollBar:GetThumbTexture() + thumbTex:SetPoint('CENTER', 0, 0) + thumbTex:SetTexture(aux.color.content.background()) + thumbTex:SetHeight(150) + thumbTex:SetWidth(scrollBar:GetWidth()) + _G[scrollBar:GetName() .. 'ScrollUpButton']:Hide() + _G[scrollBar:GetName() .. 'ScrollDownButton']:Hide() + else + -- A hacky dynamicly sized scrollbar background + + local scrollUpButton = _G[scrollBar:GetName() .. 'ScrollUpButton'] + local scrollDownButton = _G[scrollBar:GetName() .. 'ScrollDownButton'] + + local backgroundTop = scrollFrame:CreateTexture(nil, 'BACKGROUND') + backgroundTop:SetTexture([[Interface\PaperDollInfoFrame\UI-Character-ScrollBar]]) + backgroundTop:SetWidth(31) + backgroundTop:SetHeight(128) + backgroundTop:SetPoint('BOTTOM', scrollUpButton, 'TOP', 0, -128 + 4) + backgroundTop:SetTexCoord(0, 0.484375, 0, 0.5) + + local backgroundBottom = scrollFrame:CreateTexture(nil, 'BACKGROUND') + backgroundBottom:SetTexture([[Interface\PaperDollInfoFrame\UI-Character-ScrollBar]]) + backgroundBottom:SetWidth(31) + backgroundBottom:SetHeight(106) + backgroundBottom:SetPoint('TOP', scrollDownButton, 'BOTTOM', 0, 106 - 2) + backgroundBottom:SetTexCoord(0.515625, 1.0, 0, 0.4140625) + + local backgroundMiddle = scrollFrame:CreateTexture(nil, 'BACKGROUND') + backgroundMiddle:SetTexture([[Interface\PaperDollInfoFrame\UI-Character-ScrollBar]]) + backgroundMiddle:SetWidth(31) + backgroundMiddle:SetPoint('TOP', backgroundTop, 'BOTTOM', 0, 0) + backgroundMiddle:SetTexCoord(0, 0.484375, 0.125, 0.875) + backgroundMiddle:Hide() + + scrollBar:SetScript('OnSizeChanged', function() + -- Scrollbar height value is scaled, but the button heights aren't.. + local missingSpace = (scrollBar:GetHeight() / scrollBar:GetEffectiveScale()) + + scrollUpButton:GetHeight() + scrollDownButton:GetHeight() + 10 - + (backgroundTop:GetHeight() + backgroundBottom:GetHeight()) + if missingSpace > 0 then + backgroundMiddle:SetHeight(missingSpace) + backgroundMiddle:SetTexCoord(0, 0.484375, 0.125, 0.125 + (missingSpace / 256)) + backgroundMiddle:Show() + else + backgroundMiddle:Hide() + end + end) + end +end + function M.panel(parent) local panel = CreateFrame('Frame', nil, parent) set_panel_style(panel) @@ -139,13 +223,19 @@ end function M.checkbutton(parent, text_height) local button = button(parent, text_height) button.state = false - button:SetBackdropColor(aux.color.state.disabled()) + if not is_blizzard() then + button:SetBackdropColor(aux.color.state.disabled()) + end function button:SetChecked(state) if state then - self:SetBackdropColor(aux.color.state.enabled()) + if not is_blizzard() then + self:SetBackdropColor(aux.color.state.enabled()) + end self.state = true else - self:SetBackdropColor(aux.color.state.disabled()) + if not is_blizzard() then + self:SetBackdropColor(aux.color.state.disabled()) + end self.state = false end end @@ -157,32 +247,56 @@ end function M.button(parent, text_height) text_height = text_height or font_size.large - local button = CreateFrame('Button', nil, parent) + local button = CreateFrame('Button', unique_name(), parent, is_blizzard() and "UIPanelButtonTemplate2" or nil) set_size(button, 80, 24) - set_content_style(button) - local highlight = button:CreateTexture(nil, 'HIGHLIGHT') - highlight:SetAllPoints() - highlight:SetTexture(1, 1, 1, .2) - button.highlight = highlight - do - local label = button:CreateFontString() - label:SetFont(font, text_height) - label:SetAllPoints(button) - label:SetJustifyH('CENTER') - label:SetJustifyV('CENTER') - label:SetTextColor(aux.color.text.enabled()) - button:SetFontString(label) + + if not is_blizzard() then + set_content_style(button) + local highlight = button:CreateTexture(nil, 'HIGHLIGHT') + highlight:SetAllPoints() + highlight:SetTexture(1, 1, 1, .2) + button.highlight = highlight + do + local label = button:CreateFontString() + label:SetFont(font, text_height) + label:SetAllPoints(button) + label:SetJustifyH('CENTER') + label:SetJustifyV('CENTER') + label:SetTextColor(aux.color.text.enabled()) + button:SetFontString(label) + end end + + local buttonParts = is_blizzard() and {_G[button:GetName() .. "Left"], + _G[button:GetName() .. "Middle"], _G[button:GetName() .. "Right"]} + -- Shenanigans to make UIPanelButtonTemplate2 use the disabled texture when disabled + local realSetTexture = is_blizzard() and buttonParts[1].SetTexture + local textureLock = function() end + button.default_Enable = button.Enable function button:Enable() if self:IsEnabled() == 1 then return end - self:GetFontString():SetTextColor(aux.color.text.enabled()) + if not is_blizzard() then + self:GetFontString():SetTextColor(aux.color.text.enabled()) + else + for _, part in ipairs(buttonParts) do + part.SetTexture = realSetTexture + part:SetTexture([[Interface\Buttons\UI-Panel-Button-Up]]) + end + end return self:default_Enable() end button.default_Disable = button.Disable function button:Disable() if self:IsEnabled() == 0 then return end - self:GetFontString():SetTextColor(aux.color.text.disabled()) + if not is_blizzard() then + self:GetFontString():SetTextColor(aux.color.text.disabled()) + else + for _, part in ipairs(buttonParts) do + part:SetTexture([[Interface\Buttons\UI-Panel-Button-Disabled]]) + part.SetTexture = textureLock + end + end return self:default_Disable() end @@ -194,33 +308,38 @@ do function mt.__index:create_tab(text) local id = getn(self._tabs) + 1 - local tab = CreateFrame('Button', unique_name(), self._frame) + local tab = CreateFrame('Button', "$parentTab"..id, self._frame, is_blizzard() and "CharacterFrameTabButtonTemplate" or nil) tab.id = id tab.group = self - tab:SetHeight(24) - set_panel_style(tab) - local dock = tab:CreateTexture(nil, 'OVERLAY') - dock:SetHeight(3) - if self._orientation == 'UP' then - dock:SetPoint('BOTTOMLEFT', 1, -1) - dock:SetPoint('BOTTOMRIGHT', -1, -1) - elseif self._orientation == 'DOWN' then - dock:SetPoint('TOPLEFT', 1, 1) - dock:SetPoint('TOPRIGHT', -1, 1) - end - dock:SetTexture(aux.color.panel.background()) - tab.dock = dock - local highlight = tab:CreateTexture(nil, 'HIGHLIGHT') - highlight:SetAllPoints() - highlight:SetTexture(1, 1, 1, .2) - tab.highlight = highlight - tab.text = tab:CreateFontString() - tab.text:SetAllPoints() - tab.text:SetJustifyH('CENTER') - tab.text:SetJustifyV('CENTER') - tab.text:SetFont(font, font_size.large) - tab:SetFontString(tab.text) + if not is_blizzard() then + tab:SetHeight(24) + set_panel_style(tab) + local dock = tab:CreateTexture(nil, 'OVERLAY') + dock:SetHeight(3) + if self._orientation == 'UP' then + dock:SetPoint('BOTTOMLEFT', 1, -1) + dock:SetPoint('BOTTOMRIGHT', -1, -1) + elseif self._orientation == 'DOWN' then + dock:SetPoint('TOPLEFT', 1, 1) + dock:SetPoint('TOPRIGHT', -1, 1) + end + dock:SetTexture(aux.color.panel.background()) + tab.dock = dock + local highlight = tab:CreateTexture(nil, 'HIGHLIGHT') + highlight:SetAllPoints() + highlight:SetTexture(1, 1, 1, .2) + tab.highlight = highlight + + tab.text = tab:CreateFontString() + tab.text:SetAllPoints() + tab.text:SetJustifyH('CENTER') + tab.text:SetJustifyV('CENTER') + tab.text:SetFont(font, font_size.large) + tab:SetFontString(tab.text) + else + tab:RegisterForClicks("LeftButtonUp") + end tab:SetText(text) @@ -228,48 +347,63 @@ do if this.id ~= this.group.selected then PlaySound('igCharacterInfoTab') this.group:select(this.id) + if is_blizzard() then + PanelTemplates_SetTab(self._frame, this.id) + end end end) if getn(self._tabs) == 0 then if self._orientation == 'UP' then - tab:SetPoint('BOTTOMLEFT', self._frame, 'TOPLEFT', 4, -1) + tab:SetPoint('BOTTOMLEFT', self._frame, 'TOPLEFT', 4, is_blizzard() and -8 or -1) elseif self._orientation == 'DOWN' then - tab:SetPoint('TOPLEFT', self._frame, 'BOTTOMLEFT', 4, 1) - end + tab:SetPoint('TOPLEFT', self._frame, 'BOTTOMLEFT', 4, is_blizzard() and -8 or 1) + end else if self._orientation == 'UP' then - tab:SetPoint('BOTTOMLEFT', self._tabs[getn(self._tabs)], 'BOTTOMRIGHT', 4, 0) + tab:SetPoint('BOTTOMLEFT', self._tabs[getn(self._tabs)], 'BOTTOMRIGHT', is_blizzard() and 0 or 4, 0) elseif self._orientation == 'DOWN' then - tab:SetPoint('TOPLEFT', self._tabs[getn(self._tabs)], 'TOPRIGHT', 4, 0) + tab:SetPoint('TOPLEFT', self._tabs[getn(self._tabs)], 'TOPRIGHT', is_blizzard() and 0 or 4, 0) end end - tab:SetWidth(tab:GetFontString():GetStringWidth() + 14) + if not is_blizzard() then + tab:SetWidth(tab:GetFontString():GetStringWidth() + 14) + end tinsert(self._tabs, tab) + + if is_blizzard() then + PanelTemplates_SetNumTabs(self._frame, getn(self._tabs)) + PanelTemplates_SetTab(self._frame, 1) + end end function mt.__index:select(id) self._selected = id self:update() + if is_blizzard() then + PanelTemplates_SetTab(self._frame, id) + end do (self._on_select or pass)(id) end end function mt.__index:update() - for _, tab in self._tabs do - if tab.group._selected == tab.id then - tab.text:SetTextColor(aux.color.label.enabled()) - tab:Disable() - tab:SetBackdropColor(aux.color.panel.background()) - tab.dock:Show() - tab:SetHeight(29) - else - tab.text:SetTextColor(aux.color.text.enabled()) - tab:Enable() - tab:SetBackdropColor(aux.color.content.background()) - tab.dock:Hide() - tab:SetHeight(24) - end - end + if not is_blizzard() then + for _, tab in self._tabs do + if tab.group._selected == tab.id then + tab.text:SetTextColor(aux.color.label.enabled()) + tab:Disable() + tab:SetBackdropColor(aux.color.panel.background()) + tab.dock:Show() + tab:SetHeight(29) + else + tab.text:SetTextColor(aux.color.text.enabled()) + tab:Enable() + tab:SetBackdropColor(aux.color.content.background()) + tab.dock:Hide() + tab:SetHeight(24) + end + end + end end function M.tabs(parent, orientation) local self = { @@ -282,13 +416,15 @@ do end function M.editbox(parent) - local editbox = CreateFrame('EditBox', nil, parent) + local editbox = CreateFrame('EditBox', unique_name(), parent, is_blizzard() and "InputBoxTemplate" or nil) editbox:SetAutoFocus(false) editbox:SetTextInsets(1.5, 1.5, 3, 3) editbox:SetMaxLetters(nil) editbox:SetHeight(24) editbox:SetTextColor(0, 0, 0, 0) - set_content_style(editbox) + if not is_blizzard() then + set_content_style(editbox) + end editbox:SetScript('OnEscapePressed', function() this:ClearFocus() do (this.escape or pass)() end @@ -375,8 +511,11 @@ do status_bar:SetOrientation('HORIZONTAL') status_bar:SetMinMaxValues(0, 1) status_bar:SetAllPoints() - status_bar:SetStatusBarTexture([[Interface\Buttons\WHITE8X8]]) - status_bar:SetStatusBarColor(.42, .42, .42, .7) + status_bar:SetStatusBarTexture(is_blizzard() and [[Interface\Glues\LoadingBar\Loading-BarFill]] or + [[Interface\Buttons\WHITE8X8]]) + if not is_blizzard() then + status_bar:SetStatusBarColor(.42, .42, .42, 1) + end status_bar:SetFrameLevel(level + 2) status_bar:SetScript('OnUpdate', update_bar) self.secondary_status_bar = status_bar @@ -386,8 +525,11 @@ do status_bar:SetOrientation('HORIZONTAL') status_bar:SetMinMaxValues(0, 1) status_bar:SetAllPoints() - status_bar:SetStatusBarTexture([[Interface\Buttons\WHITE8X8]]) - status_bar:SetStatusBarColor(.19, .22, .33, .9) + status_bar:SetStatusBarTexture(is_blizzard() and [[Interface\Glues\LoadingBar\Loading-BarFill]] or + [[Interface\Buttons\WHITE8X8]]) + if not is_blizzard() then + status_bar:SetStatusBarColor(.19, .22, .33, 1) + end status_bar:SetFrameLevel(level + 3) status_bar:SetScript('OnUpdate', update_bar) self.primary_status_bar = status_bar @@ -401,6 +543,17 @@ do text:SetPoint('CENTER', 0, 0) self.text = text end + + if is_blizzard() then + local statusBarBorder = CreateFrame("Frame", nil, self) + statusBarBorder:SetPoint("TOPLEFT", self, "TOPLEFT", -4, 4) + statusBarBorder:SetPoint("BOTTOMRIGHT", self, "BOTTOMRIGHT", 4, -4) + + statusBarBorder:SetFrameLevel(level + 5) + statusBarBorder:SetBackdrop({edgeFile="Interface\\DialogFrame\\UI-DialogBox-Border", edgeSize = 20, + tile = true, tileSize = 20}) + end + function self:update_status(primary_status, secondary_status) if primary_status then self.primary_status_bar:SetValue(primary_status) @@ -470,44 +623,72 @@ end function M.dropdown(parent) local dropdown = CreateFrame('Frame', unique_name(), parent, 'UIDropDownMenuTemplate') - set_content_style(dropdown, 0, 0, 4, 4) - _G[dropdown:GetName() .. 'Left']:Hide() - _G[dropdown:GetName() .. 'Middle']:Hide() - _G[dropdown:GetName() .. 'Right']:Hide() + if not is_blizzard() then + set_content_style(dropdown, 0, 0, 4, 4) + + _G[dropdown:GetName() .. 'Left']:Hide() + _G[dropdown:GetName() .. 'Middle']:Hide() + _G[dropdown:GetName() .. 'Right']:Hide() + else + local left = _G[dropdown:GetName() .. 'Left'] + local a,b,c,d,e = left:GetPoint(1) + left:ClearAllPoints() + left:SetPoint(a,b,c, -20, e - 1) + end + + local dropdownSetWidth = dropdown.SetWidth + dropdown.SetWidth = function(self, width) + _G[dropdown:GetName() .. 'Middle']:SetWidth(width - 15) + dropdownSetWidth(self, width) + _G[dropdown:GetName() .. 'Text']:SetWidth(width - 25) + dropdown.noResize = 1 + end local button = _G[dropdown:GetName() .. 'Button'] - button:ClearAllPoints() - button:SetScale(.9) - button:SetPoint('RIGHT', dropdown, 0, 0) dropdown.button = button - local text = _G[dropdown:GetName() .. 'Text'] - text:ClearAllPoints() - text:SetPoint('RIGHT', button, 'LEFT', -2, 0) - text:SetPoint('LEFT', 8, 0) - text:SetFont(font, font_size.medium) - text:SetShadowColor(0, 0, 0, 0) + if not is_blizzard() then + button:ClearAllPoints() + button:SetScale(.9) + button:SetPoint('RIGHT', dropdown, 0, 0) + + local text = _G[dropdown:GetName() .. 'Text'] + text:ClearAllPoints() + text:SetPoint('RIGHT', button, 'LEFT', -2, 0) + text:SetPoint('LEFT', 8, 0) + text:SetFont(font, font_size.medium) + text:SetShadowColor(0, 0, 0, 0) + end return dropdown end function M.slider(parent) - local slider = CreateFrame('Slider', nil, parent) + local slider = CreateFrame('Slider', unique_name(), parent, is_blizzard() and "OptionsSliderTemplate" or nil) slider:SetOrientation('HORIZONTAL') - slider:SetHeight(6) + if not is_blizzard() then + slider:SetHeight(6) + end slider:SetHitRectInsets(0, 0, -12, -12) slider:SetValue(0) - set_panel_style(slider) - local thumb_texture = slider:CreateTexture(nil, 'ARTWORK') - thumb_texture:SetPoint('CENTER', 0, 0) - thumb_texture:SetTexture(aux.color.content.background()) - thumb_texture:SetHeight(18) - thumb_texture:SetWidth(8) - set_size(thumb_texture, 8, 18) - slider:SetThumbTexture(thumb_texture) + if not is_blizzard() then + set_panel_style(slider) + local thumb_texture = slider:CreateTexture(nil, 'ARTWORK') + thumb_texture:SetPoint('CENTER', 0, 0) + thumb_texture:SetTexture(aux.color.content.background()) + thumb_texture:SetHeight(18) + thumb_texture:SetWidth(8) + set_size(thumb_texture, 8, 18) + slider:SetThumbTexture(thumb_texture) + else + slider.low = _G[slider:GetName() .. 'Low'] + slider.low:SetText("") + slider.high = _G[slider:GetName() .. 'High'] + slider.high:SetText("") + end local label = slider:CreateFontString(nil, 'OVERLAY') label:SetPoint('BOTTOMLEFT', slider, 'TOPLEFT', -3, 8) @@ -530,15 +711,18 @@ end function M.checkbox(parent) local checkbox = CreateFrame('CheckButton', nil, parent, 'UICheckButtonTemplate') - checkbox:SetWidth(16) - checkbox:SetHeight(16) - set_content_style(checkbox) - checkbox:SetNormalTexture(nil) - checkbox:SetPushedTexture(nil) - checkbox:GetHighlightTexture():SetAllPoints() - checkbox:GetHighlightTexture():SetTexture(1, 1, 1, .2) - checkbox:GetCheckedTexture():SetTexCoord(.12, .88, .12, .88) - checkbox:GetHighlightTexture('BLEND') + local size = is_blizzard() and 24 or 16 + checkbox:SetWidth(size) + checkbox:SetHeight(size) + if not is_blizzard() then + set_content_style(checkbox) + checkbox:SetNormalTexture(nil) + checkbox:SetPushedTexture(nil) + checkbox:GetHighlightTexture():SetAllPoints() + checkbox:GetHighlightTexture():SetTexture(1, 1, 1, .2) + checkbox:GetCheckedTexture():SetTexCoord(.12, .88, .12, .88) + checkbox:GetHighlightTexture('BLEND') + end return checkbox end diff --git a/gui/item_listing.lua b/gui/item_listing.lua index 4b22728..4a3214e 100644 --- a/gui/item_listing.lua +++ b/gui/item_listing.lua @@ -10,7 +10,7 @@ local ROW_HEIGHT = 39 function M:render() if getn(self.item_records or T.empty) > getn(self.rows) then - self.content_frame:SetPoint('BOTTOMRIGHT', -15, 0) + self.content_frame:SetPoint('BOTTOMRIGHT', gui.is_blizzard() and -30 or -15, 0) else self.content_frame:SetPoint('BOTTOMRIGHT', 0, 0) end @@ -57,18 +57,11 @@ function M.new(parent, on_click, selected) scroll_frame:SetPoint('TOPLEFT', content_frame, 'TOPLEFT', 0, 29) scroll_frame:SetPoint('BOTTOMRIGHT', content_frame, 'BOTTOMRIGHT', 0, 0) - local scroll_bar = _G[scroll_frame:GetName() .. 'ScrollBar'] - scroll_bar:ClearAllPoints() - scroll_bar:SetPoint('TOPRIGHT', parent, -4, 2) - scroll_bar:SetPoint('BOTTOMRIGHT', parent, -4, 4) - scroll_bar:SetWidth(10) - local thumbTex = scroll_bar:GetThumbTexture() - thumbTex:SetPoint('CENTER', 0, 0) - thumbTex:SetTexture(aux.color.content.background()) - thumbTex:SetHeight(150) - thumbTex:SetWidth(scroll_bar:GetWidth()) - _G[scroll_bar:GetName() .. 'ScrollUpButton']:Hide() - _G[scroll_bar:GetName() .. 'ScrollDownButton']:Hide() + gui.set_scrollbar_style(scroll_frame, not gui.is_blizzard() and { + {'TOPRIGHT', parent, -4, 2}, {'BOTTOMRIGHT', parent, -4, 4} -- Default + } or { + {'TOPRIGHT', parent, -7, -14}, {'BOTTOMRIGHT', parent, -7, 18} -- Blizzard + }) local rows = T.acquire() local row_index = 1 @@ -104,7 +97,12 @@ function M.new(parent, on_click, selected) local highlight = row:CreateTexture() highlight:SetAllPoints(row) highlight:Hide() - highlight:SetTexture(1, .9, 0, .4) + if not gui.is_blizzard() then + highlight:SetTexture(1, .9, 0, .4) + else + highlight:SetTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]]) + highlight:SetTexCoord(0.1, 0.8, 0, 1) + end row.highlight = highlight rows[row_index] = row diff --git a/gui/listing.lua b/gui/listing.lua index 544b234..8ff46b6 100644 --- a/gui/listing.lua +++ b/gui/listing.lua @@ -64,7 +64,7 @@ local methods = { end if getn(self.rowData or T.empty) > self.numRows then - self.contentFrame:SetPoint('BOTTOMRIGHT', -15, 0) + self.contentFrame:SetPoint('BOTTOMRIGHT', gui.is_blizzard() and -30 or -15, 0) else self.contentFrame:SetPoint('BOTTOMRIGHT', 0, 0) end @@ -178,9 +178,14 @@ local methods = { local tex = col:CreateTexture() tex:SetAllPoints() - tex:SetTexture([[Interface\AddOns\aux-AddOn\WorldStateFinalScore-Highlight]]) - tex:SetTexCoord(.017, 1, .083, .909) - tex:SetAlpha(.5) + if not gui.is_blizzard() then + tex:SetTexture([[Interface\AddOns\aux-AddOn\WorldStateFinalScore-Highlight]]) + tex:SetTexCoord(.017, 1, .083, .909) + tex:SetAlpha(.5) + else + tex:SetTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]]) + tex:SetTexCoord(0.1, 0.8, 0, 1) + end tinsert(self.headCols, col) @@ -229,7 +234,11 @@ local methods = { end local highlight = row:CreateTexture() highlight:SetAllPoints() - highlight:SetTexture(1, .9, 0, .4) + if not gui.is_blizzard() then + highlight:SetTexture(1, .9, 0, .4) + else + highlight:SetTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]]) + end highlight:Hide() row.highlight = highlight row.st = self @@ -274,18 +283,11 @@ function M.new(parent) scrollFrame:SetAllPoints(contentFrame) st.scrollFrame = scrollFrame - local scroll_bar = _G[scrollFrame:GetName() .. 'ScrollBar'] - scroll_bar:ClearAllPoints() - scroll_bar:SetPoint('TOPRIGHT', st, -4, -HEAD_HEIGHT) - scroll_bar:SetPoint('BOTTOMRIGHT', st, -4, 4) - scroll_bar:SetWidth(10) - local thumbTex = scroll_bar:GetThumbTexture() - thumbTex:SetPoint('CENTER', 0, 0) - thumbTex:SetTexture(aux.color.content.background()) - thumbTex:SetHeight(150) - thumbTex:SetWidth(scroll_bar:GetWidth()) - _G[scroll_bar:GetName() .. 'ScrollUpButton']:Hide() - _G[scroll_bar:GetName() .. 'ScrollDownButton']:Hide() + gui.set_scrollbar_style(scrollFrame, not gui.is_blizzard() and { + {'TOPRIGHT', parent, -4, -HEAD_HEIGHT}, {'BOTTOMRIGHT', parent, -4, 4} -- Default + } or { + {'TOPRIGHT', parent, -7, -20}, {'BOTTOMRIGHT', parent, -7, 18} -- Blizzard + }) for name, func in methods do st[name] = func diff --git a/tabs/post/frame.lua b/tabs/post/frame.lua index 1e1b2ac..8d7257b 100644 --- a/tabs/post/frame.lua +++ b/tabs/post/frame.lua @@ -8,6 +8,8 @@ local listing = require 'aux.gui.listing' local item_listing = require 'aux.gui.item_listing' local search_tab = require 'aux.tabs.search' +local THEME_PADDING = gui.is_blizzard() and 6.5 or 2.5 + frame = CreateFrame('Frame', nil, aux.frame) frame:SetAllPoints() frame:SetScript('OnUpdate', on_update) @@ -25,17 +27,16 @@ frame.inventory:SetPoint('BOTTOMLEFT', 0, 0) frame.parameters = gui.panel(frame.content) frame.parameters:SetHeight(173) -frame.parameters:SetPoint('TOPLEFT', frame.inventory, 'TOPRIGHT', 2.5, 0) +frame.parameters:SetPoint('TOPLEFT', frame.inventory, 'TOPRIGHT', THEME_PADDING, 0) frame.parameters:SetPoint('TOPRIGHT', 0, 0) frame.bid_listing = gui.panel(frame.content) frame.bid_listing:SetHeight(228) frame.bid_listing:SetWidth(271.5) -frame.bid_listing:SetPoint('BOTTOMLEFT', frame.inventory, 'BOTTOMRIGHT', 2.5, 0) +frame.bid_listing:SetPoint('BOTTOMLEFT', frame.inventory, 'BOTTOMRIGHT', THEME_PADDING, 0) frame.buyout_listing = gui.panel(frame.content) -frame.buyout_listing:SetHeight(228) -frame.buyout_listing:SetWidth(271.5) +frame.buyout_listing:SetPoint('TOPLEFT', frame.parameters, 'BOTTOMLEFT', 0, -THEME_PADDING) frame.buyout_listing:SetPoint('BOTTOMRIGHT', 0, 0) do @@ -188,7 +189,7 @@ end do local slider = gui.slider(frame.parameters) slider:SetValueStep(1) - slider:SetPoint('TOPLEFT', stack_size_slider, 'BOTTOMLEFT', 0, -32) + slider:SetPoint('TOPLEFT', stack_size_slider, 'BOTTOMLEFT', 0, gui.is_blizzard() and -25 or -32) slider:SetWidth(190) slider:SetScript('OnValueChanged', function() quantity_update() @@ -210,7 +211,7 @@ do end do local dropdown = gui.dropdown(frame.parameters) - dropdown:SetPoint('TOPLEFT', stack_count_slider, 'BOTTOMLEFT', 0, -22) + dropdown:SetPoint('TOPLEFT', stack_count_slider, 'BOTTOMLEFT', 0, gui.is_blizzard() and -10 or -22) dropdown:SetWidth(90) local label = gui.label(dropdown, gui.font_size.small) label:SetPoint('BOTTOMLEFT', dropdown, 'TOPLEFT', -2, -3) @@ -317,9 +318,16 @@ do end function aux.handle.LOAD() - if not aux.account_data.post_bid then + if aux.account_data.post_bid then + frame.bid_listing:SetPoint('TOPLEFT', frame.parameters, 'BOTTOMLEFT', 0, -THEME_PADDING) + frame.bid_listing:SetPoint('BOTTOMLEFT', frame.inventory, 'BOTTOMRIGHT', THEME_PADDING, 0) + frame.bid_listing:SetWidth(271.5 - (THEME_PADDING / 2)) + + frame.buyout_listing:ClearAllPoints() + frame.buyout_listing:SetPoint('TOPLEFT', frame.bid_listing, 'TOPRIGHT', THEME_PADDING, 0) + frame.buyout_listing:SetPoint('BOTTOMRIGHT', 0, 0) + else frame.bid_listing:Hide() - frame.buyout_listing:SetPoint('BOTTOMLEFT', frame.inventory, 'BOTTOMRIGHT', 2.5, 0) buyout_listing:SetColInfo{ {name='Auctions', width=.15, align='CENTER'}, {name='Time Left', width=.15, align='CENTER'}, diff --git a/tabs/search/frame.lua b/tabs/search/frame.lua index 24a5d3a..8bed88e 100644 --- a/tabs/search/frame.lua +++ b/tabs/search/frame.lua @@ -11,6 +11,7 @@ local listing = require 'aux.gui.listing' local auction_listing = require 'aux.gui.auction_listing' local FILTER_SPACING = 28.5 +local THEME_PADDING = gui.is_blizzard() and 4 or 0 frame = CreateFrame('Frame', nil, aux.frame) frame:SetAllPoints() @@ -27,7 +28,7 @@ frame.saved = CreateFrame('Frame', nil, frame) frame.saved:SetAllPoints(aux.frame.content) frame.saved.favorite = gui.panel(frame.saved) -frame.saved.favorite:SetWidth(393) +frame.saved.favorite:SetWidth(393 - THEME_PADDING) frame.saved.favorite:SetPoint('TOPLEFT', 0, 0) frame.saved.favorite:SetPoint('BOTTOMLEFT', 0, 0) @@ -66,7 +67,7 @@ end do local btn = gui.button(frame, gui.font_size.small) btn:SetHeight(25) - btn:SetWidth(60) + btn:SetWidth(gui.is_blizzard() and 70 or 60) btn:Hide() btn:SetText(aux.color.label.enabled'Real Time') btn:SetScript('OnClick', function() @@ -84,7 +85,7 @@ do end do local editbox = gui.editbox(range_button) - editbox:SetPoint('LEFT', range_button, 'RIGHT', 4, 0) + editbox:SetPoint('LEFT', range_button, 'RIGHT', gui.is_blizzard() and 8 or 4, 0) editbox:SetWidth(40) editbox:SetHeight(25) editbox:SetAlignment('CENTER') @@ -104,7 +105,7 @@ do end do local editbox = gui.editbox(range_button) - editbox:SetPoint('LEFT', first_page_input, 'RIGHT', 5.8, 0) + editbox:SetPoint('LEFT', first_page_input, 'RIGHT', gui.is_blizzard() and 11 or 5.8, 0) editbox:SetWidth(40) editbox:SetHeight(25) editbox:SetAlignment('CENTER') @@ -305,7 +306,7 @@ end do local editbox = gui.editbox(frame.filter) editbox:SetPoint('TOPLEFT', name_input, 'BOTTOMLEFT', 0, -FILTER_SPACING) - editbox:SetWidth(125) + editbox:SetWidth(gui.is_blizzard() and 123 or 125) editbox:SetAlignment('CENTER') editbox:SetNumeric(true) editbox:SetScript('OnTabPressed', function() @@ -330,8 +331,8 @@ do end do local editbox = gui.editbox(frame.filter) - editbox:SetPoint('TOPLEFT', min_level_input, 'TOPRIGHT', 10, 0) - editbox:SetWidth(125) + editbox:SetPoint('TOPLEFT', min_level_input, 'TOPRIGHT', gui.is_blizzard() and 14 or 10, 0) + editbox:SetWidth(gui.is_blizzard() and 123 or 125) editbox:SetAlignment('CENTER') editbox:SetNumeric(true) editbox:SetScript('OnTabPressed', function() @@ -350,7 +351,7 @@ do update_form() end local label = gui.label(editbox, gui.font_size.medium) - label:SetPoint('RIGHT', editbox, 'LEFT', -3, 0) + label:SetPoint('RIGHT', editbox, 'LEFT', gui.is_blizzard() and -7 or -3, 0) label:SetText('-') max_level_input = editbox end @@ -418,6 +419,12 @@ end gui.vertical_line(frame.filter, 332) do local dropdown = gui.dropdown(frame.filter) + if gui.is_blizzard() then + local button = _G[dropdown:GetName() .. 'Button'] + button:ClearAllPoints() + button:SetScale(.9) + button:SetPoint('RIGHT', dropdown, 0, 0) + end dropdown:SetPoint('TOPRIGHT', -174.5, -10) dropdown:SetWidth(150) UIDropDownMenu_Initialize(dropdown, initialize_filter_dropdown) @@ -425,6 +432,11 @@ do UIDropDownMenu_Initialize(this, initialize_filter_dropdown) end) _G[dropdown:GetName() .. 'Text']:Hide() + if gui.is_blizzard() then + _G[dropdown:GetName() .. 'Left']:Hide() + _G[dropdown:GetName() .. 'Middle']:Hide() + _G[dropdown:GetName() .. 'Right']:Hide() + end local label = gui.label(dropdown, gui.font_size.medium) label:SetPoint('RIGHT', dropdown, 'LEFT', -15, 0) label:SetText('Component') diff --git a/tabs/search/results.lua b/tabs/search/results.lua index 6f9e863..e4b9e68 100644 --- a/tabs/search/results.lua +++ b/tabs/search/results.lua @@ -6,6 +6,7 @@ local info = require 'aux.util.info' local filter_util = require 'aux.util.filter' local scan_util = require 'aux.util.scan' local scan = require 'aux.core.scan' +local gui = require 'aux.gui' search_scan_id = 0 @@ -17,11 +18,11 @@ function update_real_time(enable) if enable then range_button:Hide() real_time_button:Show() - search_box:SetPoint('LEFT', real_time_button, 'RIGHT', 4, 0) + search_box:SetPoint('LEFT', real_time_button, 'RIGHT', gui.is_blizzard() and 8 or 4, 0) else real_time_button:Hide() range_button:Show() - search_box:SetPoint('LEFT', last_page_input, 'RIGHT', 4, 0) + search_box:SetPoint('LEFT', last_page_input, 'RIGHT', gui.is_blizzard() and 8 or 4, 0) end end