From aba0717cfa2016497fe44928851d66c39cb2a1d8 Mon Sep 17 00:00:00 2001 From: Manuel Simon Hirsig Date: Fri, 9 Dec 2016 19:08:46 +0100 Subject: [PATCH] refactoring, removed special dropdown look for now (for compatibility reasons with addons that change the default dropdown --- gui/core.lua | 150 +++++++++++++++++++++++++-------------------------- util.lua | 8 +++ 2 files changed, 83 insertions(+), 75 deletions(-) diff --git a/gui/core.lua b/gui/core.lua index 2f3246d..0f9a1ab 100644 --- a/gui/core.lua +++ b/gui/core.lua @@ -5,86 +5,86 @@ include 'aux' M.font = [[Fonts\ARIALN.TTF]] -M.font_size = { +M.font_size = immutable-{ small = 13, medium = 15, large = 18, } -function LOAD() - do - local blizzard_backdrop, aux_background, aux_border - - aux_border = DropDownList1:CreateTexture() - aux_border:SetTexture(1, 1, 1, .02) - aux_border:SetPoint('TOPLEFT', DropDownList1Backdrop, 'TOPLEFT', -2, 2) - aux_border:SetPoint('BOTTOMRIGHT', DropDownList1Backdrop, 'BOTTOMRIGHT', 1.5, -1.5) - aux_border:SetBlendMode('ADD') - aux_background = DropDownList1:CreateTexture(nil, 'OVERLAY') - aux_background:SetTexture(color.content.background()) - aux_background:SetAllPoints(DropDownList1Backdrop) - blizzard_backdrop = DropDownList1Backdrop:GetBackdrop() - hook('ToggleDropDownMenu', function(...) - temp(arg) - local ret = temp-A(orig.ToggleDropDownMenu(unpack(arg))) - local dropdown = _G[arg[4] or ''] or this:GetParent() - if strfind(dropdown:GetName() or '', '^AuxFrame%d+$') then - set_aux_dropdown_style(dropdown) - else - set_blizzard_dropdown_style() - end - return unpack(ret) - end) - - function set_aux_dropdown_style(dropdown) - DropDownList1Backdrop:SetBackdrop(empty) - aux_border:Show() - aux_background:Show() - DropDownList1:SetWidth(dropdown:GetWidth() * .9) - DropDownList1:SetHeight(DropDownList1:GetHeight() - 10) - DropDownList1:ClearAllPoints() - DropDownList1:SetPoint('TOPLEFT', dropdown, 'BOTTOMLEFT', -2, -2) - for i = 1, UIDROPDOWNMENU_MAXBUTTONS do - local button = _G['DropDownList1Button' .. i] - button:SetPoint('TOPLEFT', 0, -((button:GetID() - 1) * UIDROPDOWNMENU_BUTTON_HEIGHT) - 7) - button:SetPoint('TOPRIGHT', 0, -((button:GetID() - 1) * UIDROPDOWNMENU_BUTTON_HEIGHT) - 7) - local text = button:GetFontString() - text:SetFont(font, 14) - text:SetPoint('TOPLEFT', 18, 0) - text:SetPoint('BOTTOMRIGHT', -8, 0) - local highlight = _G['DropDownList1Button' .. i .. 'Highlight'] - highlight:ClearAllPoints() - highlight:SetDrawLayer('OVERLAY') - highlight:SetHeight(14) - highlight:SetPoint('LEFT', 5, 0) - highlight:SetPoint('RIGHT', -3, 0) - local check = _G['DropDownList1Button' .. i .. 'Check'] - check:SetWidth(16) - check:SetHeight(16) - check:SetPoint('LEFT', 3, -1) - end - end - - function set_blizzard_dropdown_style() - DropDownList1Backdrop:SetBackdrop(blizzard_backdrop) - aux_border:Hide() - aux_background:Hide() - for i = 1, UIDROPDOWNMENU_MAXBUTTONS do - local button = _G['DropDownList1Button' .. i] - local text = button:GetFontString() - text:SetFont([[Fonts\FRIZQT__.ttf]], 10) - text:SetShadowOffset(1, -1) - local highlight = _G['DropDownList1Button' .. i .. 'Highlight'] - highlight:SetAllPoints() - highlight:SetDrawLayer('BACKGROUND') - local check = _G['DropDownList1Button' .. i .. 'Check'] - check:SetWidth(24) - check:SetHeight(24) - check:SetPoint('LEFT', 0, 0) - end - end - end -end +--function LOAD() +-- do +-- local blizzard_backdrop, aux_background, aux_border +-- +-- aux_border = DropDownList1:CreateTexture() +-- aux_border:SetTexture(1, 1, 1, .02) +-- aux_border:SetPoint('TOPLEFT', DropDownList1Backdrop, 'TOPLEFT', -2, 2) +-- aux_border:SetPoint('BOTTOMRIGHT', DropDownList1Backdrop, 'BOTTOMRIGHT', 1.5, -1.5) +-- aux_border:SetBlendMode('ADD') +-- aux_background = DropDownList1:CreateTexture(nil, 'OVERLAY') +-- aux_background:SetTexture(color.content.background()) +-- aux_background:SetAllPoints(DropDownList1Backdrop) +-- blizzard_backdrop = DropDownList1Backdrop:GetBackdrop() +-- hook('ToggleDropDownMenu', function(...) +-- temp(arg) +-- local ret = temp-A(orig.ToggleDropDownMenu(unpack(arg))) +-- local dropdown = _G[arg[4] or ''] or this:GetParent() +-- if strfind(dropdown:GetName() or '', '^AuxFrame%d+$') then +-- set_aux_dropdown_style(dropdown) +-- else +-- set_blizzard_dropdown_style() +-- end +-- return unpack(ret) +-- end) +-- +-- function set_aux_dropdown_style(dropdown) +-- DropDownList1Backdrop:SetBackdrop(empty) +-- aux_border:Show() +-- aux_background:Show() +-- DropDownList1:SetWidth(dropdown:GetWidth() * .9) +-- DropDownList1:SetHeight(DropDownList1:GetHeight() - 10) +-- DropDownList1:ClearAllPoints() +-- DropDownList1:SetPoint('TOPLEFT', dropdown, 'BOTTOMLEFT', -2, -2) +-- for i = 1, UIDROPDOWNMENU_MAXBUTTONS do +-- local button = _G['DropDownList1Button' .. i] +-- button:SetPoint('TOPLEFT', 0, -((button:GetID() - 1) * UIDROPDOWNMENU_BUTTON_HEIGHT) - 7) +-- button:SetPoint('TOPRIGHT', 0, -((button:GetID() - 1) * UIDROPDOWNMENU_BUTTON_HEIGHT) - 7) +-- local text = button:GetFontString() +-- text:SetFont(font, 14) +-- text:SetPoint('TOPLEFT', 18, 0) +-- text:SetPoint('BOTTOMRIGHT', -8, 0) +-- local highlight = _G['DropDownList1Button' .. i .. 'Highlight'] +-- highlight:ClearAllPoints() +-- highlight:SetDrawLayer('OVERLAY') +-- highlight:SetHeight(14) +-- highlight:SetPoint('LEFT', 5, 0) +-- highlight:SetPoint('RIGHT', -3, 0) +-- local check = _G['DropDownList1Button' .. i .. 'Check'] +-- check:SetWidth(16) +-- check:SetHeight(16) +-- check:SetPoint('LEFT', 3, -1) +-- end +-- end +-- +-- function set_blizzard_dropdown_style() +-- DropDownList1Backdrop:SetBackdrop(blizzard_backdrop) +-- aux_border:Hide() +-- aux_background:Hide() +-- for i = 1, UIDROPDOWNMENU_MAXBUTTONS do +-- local button = _G['DropDownList1Button' .. i] +-- local text = button:GetFontString() +-- text:SetFont([[Fonts\FRIZQT__.ttf]], 10) +-- text:SetShadowOffset(1, -1) +-- local highlight = _G['DropDownList1Button' .. i .. 'Highlight'] +-- highlight:SetAllPoints() +-- highlight:SetDrawLayer('BACKGROUND') +-- local check = _G['DropDownList1Button' .. i .. 'Check'] +-- check:SetWidth(24) +-- check:SetHeight(24) +-- check:SetPoint('LEFT', 0, 0) +-- end +-- end +-- end +--end do local id = 1 diff --git a/util.lua b/util.lua index 83c7c70..e0da431 100644 --- a/util.lua +++ b/util.lua @@ -12,6 +12,14 @@ do end end +M.immutable = setmetatable(T, { + __metatable = false, + __newindex = nop, + __sub = function(_, t) + return setmetatable(T, O('__metatable', false, '__newindex', nop, '__index', t)) + end +}) + M.select = vararg-function(arg) for _ = 1, arg[1] do tremove(arg, 1)