added the last missing ui elements to the tsm style: dropdown and checkbox. also many other style changes and lots of things made larger
This commit is contained in:
@@ -8,11 +8,10 @@ public.config = {
|
||||
window = {backdrop = {24, 24, 24, .93}, border = {30, 30, 30, 1}},
|
||||
panel = {backdrop = {24, 24, 24, 1}, border = {255, 255, 255, .03}},
|
||||
content = {backdrop = {42, 42, 42, 1}, border = {0, 0, 0, 0}},
|
||||
state = {enabled = {60, 180, 60}, disabled = {180, 60, 60}},
|
||||
state = {enabled = {70, 165, 70}, disabled = {190, 70, 70}},
|
||||
},
|
||||
edge_size = 1.5,
|
||||
font = [[Fonts\ARIALN.TTF]],
|
||||
tiny_font_size = 12,
|
||||
small_font_size = 13,
|
||||
medium_font_size = 15,
|
||||
large_font_size = 18,
|
||||
@@ -44,19 +43,19 @@ public.inline_color = aux.index_function(function(self, key)
|
||||
end)
|
||||
|
||||
function m.LOAD()
|
||||
|
||||
local backdrop = DropDownList1Backdrop:GetBackdrop()
|
||||
aux.hook('ToggleDropDownMenu', function(...)
|
||||
local ret = {aux.orig.ToggleDropDownMenu(unpack(arg))}
|
||||
local dropdown = getglobal(arg[4] or '') or this:GetParent()
|
||||
if strfind(dropdown:GetName() or '', 'aux_frame') then
|
||||
m.set_content_style(DropDownList1Backdrop)
|
||||
DropDownList1:SetWidth(dropdown:GetWidth() * 0.9)
|
||||
DropDownList1:SetHeight(DropDownList1:GetHeight() - 8)
|
||||
DropDownList1:SetPoint('TOPLEFT', dropdown, 'BOTTOMLEFT', -2, 0)
|
||||
DropDownList1:SetHeight(DropDownList1:GetHeight() - 10)
|
||||
DropDownList1:SetPoint('TOPLEFT', dropdown, 'BOTTOMLEFT', -2, -2)
|
||||
for i=1,UIDROPDOWNMENU_MAXBUTTONS do
|
||||
local button = getglobal('DropDownList1Button'..i)
|
||||
button:SetPoint('TOPLEFT', 0, -((button:GetID() - 1) * UIDROPDOWNMENU_BUTTON_HEIGHT) - 8)
|
||||
button:SetWidth(dropdown:GetWidth() - 30)
|
||||
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(m.config.font, m.config.medium_font_size)
|
||||
text:SetPoint('TOPLEFT', 18, 0)
|
||||
@@ -72,34 +71,45 @@ function m.LOAD()
|
||||
check:SetHeight(16)
|
||||
check:SetPoint('LEFT', 3, -1)
|
||||
end
|
||||
while getn(arg) < 4 do
|
||||
tinsert(arg, nil)
|
||||
else
|
||||
DropDownList1Backdrop:SetBackdrop(backdrop)
|
||||
for i=1,UIDROPDOWNMENU_MAXBUTTONS do
|
||||
local button = getglobal('DropDownList1Button'..i)
|
||||
local text = button:GetFontString()
|
||||
text:SetFont([[Fonts\FRIZQT__.ttf]], 10)
|
||||
text:SetShadowOffset(1, -1)
|
||||
-- text:SetPoint('TOPLEFT', 18, 0)
|
||||
-- text:SetPoint('BOTTOMRIGHT', -8, 0)
|
||||
local highlight = getglobal('DropDownList1Button'..i..'Highlight')
|
||||
highlight:SetAllPoints()
|
||||
highlight:SetDrawLayer('BACKGROUND')
|
||||
local check = getglobal('DropDownList1Button'..i..'Check')
|
||||
check:SetWidth(24)
|
||||
check:SetHeight(24)
|
||||
check:SetPoint('LEFT', 0, 0)
|
||||
end
|
||||
tinsert(arg, 0)
|
||||
tinsert(arg, 10)
|
||||
|
||||
end
|
||||
return unpack(ret)
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
function public.set_frame_style(frame, backdrop_color, border_color)
|
||||
frame:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=m.config.edge_size, tile=true}
|
||||
function public.set_frame_style(frame, backdrop_color, border_color, left, right, top, bottom)
|
||||
frame:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=m.config.edge_size, tile=true, insets={left=left, right=right, top=top, bottom=bottom}}
|
||||
frame:SetBackdropColor(unpack(backdrop_color))
|
||||
frame:SetBackdropBorderColor(unpack(border_color))
|
||||
end
|
||||
|
||||
function public.set_window_style(frame)
|
||||
m.set_frame_style(frame, m.color.window.backdrop, m.color.window.border)
|
||||
function public.set_window_style(frame, left, right, top, bottom)
|
||||
m.set_frame_style(frame, m.color.window.backdrop, m.color.window.border, left, right, top, bottom)
|
||||
end
|
||||
|
||||
function public.set_panel_style(frame)
|
||||
m.set_frame_style(frame, m.color.panel.backdrop, m.color.panel.border)
|
||||
function public.set_panel_style(frame, left, right, top, bottom)
|
||||
m.set_frame_style(frame, m.color.panel.backdrop, m.color.panel.border, left, right, top, bottom)
|
||||
end
|
||||
|
||||
function public.set_content_style(frame)
|
||||
m.set_frame_style(frame, m.color.content.backdrop, m.color.content.border)
|
||||
function public.set_content_style(frame, left, right, top, bottom)
|
||||
m.set_frame_style(frame, m.color.content.backdrop, m.color.content.border, left, right, top, bottom)
|
||||
end
|
||||
|
||||
function public.panel(parent)
|
||||
@@ -128,7 +138,7 @@ function public.checkbutton(parent, text_height)
|
||||
end
|
||||
|
||||
function public.button(parent, text_height)
|
||||
text_height = text_height or m.config.medium_font_size
|
||||
text_height = text_height or 16
|
||||
local button = CreateFrame('Button', nil, parent)
|
||||
m.set_content_style(button)
|
||||
local highlight = button:CreateTexture(nil, 'HIGHLIGHT')
|
||||
@@ -165,128 +175,121 @@ function public.resize_tab(tab, width, padding)
|
||||
tab:SetWidth(width + padding + 10)
|
||||
end
|
||||
|
||||
function public.update_tab(tab)
|
||||
|
||||
end
|
||||
function public.tab_group(parent, orientation)
|
||||
|
||||
do
|
||||
local id = 0
|
||||
function public.tab_group(parent, orientation)
|
||||
id = id + 1
|
||||
local frame = CreateFrame('Frame', nil, parent)
|
||||
frame:SetHeight(100)
|
||||
frame:SetWidth(100)
|
||||
|
||||
local frame = CreateFrame('Frame', nil, parent)
|
||||
frame:SetHeight(100)
|
||||
frame:SetWidth(100)
|
||||
local self = {
|
||||
id = aux.id(),
|
||||
frame = parent,
|
||||
tabs = {},
|
||||
}
|
||||
|
||||
local self = {
|
||||
id = id,
|
||||
frame = parent,
|
||||
tabs = {},
|
||||
}
|
||||
function self:create_tab(text)
|
||||
local id = getn(self.tabs) + 1
|
||||
|
||||
function self:create_tab(text)
|
||||
local id = getn(self.tabs) + 1
|
||||
local tab = CreateFrame('Button', 'aux_tab_group'..self.id..'_tab'..id, self.frame)
|
||||
tab.id = id
|
||||
tab.group = self
|
||||
tab:SetHeight(24)
|
||||
tab:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=m.config.edge_size}
|
||||
tab:SetBackdropBorderColor(unpack(m.color.panel.border))
|
||||
local dock = tab:CreateTexture(nil, 'OVERLAY')
|
||||
dock:SetHeight(3)
|
||||
if orientation == 'UP' then
|
||||
dock:SetPoint('BOTTOMLEFT', 1, -1)
|
||||
dock:SetPoint('BOTTOMRIGHT', -1, -1)
|
||||
elseif orientation == 'DOWN' then
|
||||
dock:SetPoint('TOPLEFT', 1, 1)
|
||||
dock:SetPoint('TOPRIGHT', -1, 1)
|
||||
end
|
||||
dock:SetTexture(unpack(m.color.panel.backdrop))
|
||||
tab.dock = dock
|
||||
local highlight = tab:CreateTexture(nil, 'HIGHLIGHT')
|
||||
highlight:SetAllPoints()
|
||||
highlight:SetTexture(1, 1, 1, .2)
|
||||
highlight:SetBlendMode('BLEND')
|
||||
tab.highlight = highlight
|
||||
|
||||
local tab = CreateFrame('Button', 'aux_tab_group'..self.id..'_tab'..id, self.frame)
|
||||
tab.id = id
|
||||
tab.group = self
|
||||
tab:SetHeight(24)
|
||||
tab:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=m.config.edge_size}
|
||||
tab:SetBackdropBorderColor(unpack(m.color.panel.border))
|
||||
local dock = tab:CreateTexture(nil, 'OVERLAY')
|
||||
dock:SetHeight(3)
|
||||
tab.text = tab:CreateFontString()
|
||||
tab.text:SetPoint('LEFT', 3, -1)
|
||||
tab.text:SetPoint('RIGHT', -3, -1)
|
||||
tab.text:SetJustifyH('CENTER')
|
||||
tab.text:SetJustifyV('CENTER')
|
||||
tab.text:SetFont(m.config.font, m.config.large_font_size)
|
||||
tab:SetFontString(tab.text)
|
||||
|
||||
tab:SetText(text)
|
||||
|
||||
tab:SetScript('OnClick', function()
|
||||
if this.id ~= this.group.selected then
|
||||
PlaySound('igCharacterInfoTab')
|
||||
this.group:set_tab(this.id)
|
||||
end
|
||||
end)
|
||||
|
||||
if getn(self.tabs) == 0 then
|
||||
if orientation == 'UP' then
|
||||
dock:SetPoint('BOTTOMLEFT', 1, -1)
|
||||
dock:SetPoint('BOTTOMRIGHT', -1, -1)
|
||||
tab:SetPoint('BOTTOMLEFT', self.frame, 'TOPLEFT', 4, -1)
|
||||
elseif orientation == 'DOWN' then
|
||||
dock:SetPoint('TOPLEFT', 1, 1)
|
||||
dock:SetPoint('TOPRIGHT', -1, 1)
|
||||
tab:SetPoint('TOPLEFT', self.frame, 'BOTTOMLEFT', 4, 1)
|
||||
end
|
||||
dock:SetTexture(unpack(m.color.panel.backdrop))
|
||||
tab.dock = dock
|
||||
local highlight = tab:CreateTexture(nil, 'HIGHLIGHT')
|
||||
highlight:SetAllPoints()
|
||||
highlight:SetTexture(1, 1, 1, .2)
|
||||
highlight:SetBlendMode('BLEND')
|
||||
tab.highlight = highlight
|
||||
|
||||
tab.text = tab:CreateFontString()
|
||||
tab.text:SetPoint('LEFT', 3, -1)
|
||||
tab.text:SetPoint('RIGHT', -3, -1)
|
||||
tab.text:SetJustifyH('CENTER')
|
||||
tab.text:SetJustifyV('CENTER')
|
||||
tab.text:SetFont(m.config.font, m.config.large_font_size)
|
||||
tab:SetFontString(tab.text)
|
||||
|
||||
tab:SetText(text)
|
||||
|
||||
tab:SetScript('OnClick', function()
|
||||
if this.id ~= this.group.selected then
|
||||
-- PlaySound('igCharacterInfoTab')
|
||||
this.group:set_tab(this.id)
|
||||
end
|
||||
end)
|
||||
|
||||
if getn(self.tabs) == 0 then
|
||||
if orientation == 'UP' then
|
||||
tab:SetPoint('BOTTOMLEFT', self.frame, 'TOPLEFT', 4, -1)
|
||||
elseif orientation == 'DOWN' then
|
||||
tab:SetPoint('TOPLEFT', self.frame, 'BOTTOMLEFT', 4, 1)
|
||||
end
|
||||
else
|
||||
if orientation == 'UP' then
|
||||
tab:SetPoint('BOTTOMLEFT', self.tabs[getn(self.tabs)], 'BOTTOMRIGHT', 4, 0)
|
||||
elseif orientation == 'DOWN' then
|
||||
tab:SetPoint('TOPLEFT', self.tabs[getn(self.tabs)], 'TOPRIGHT', 4, 0)
|
||||
end
|
||||
end
|
||||
|
||||
m.resize_tab(tab, tab:GetFontString():GetStringWidth(), 4)
|
||||
|
||||
tinsert(self.tabs, tab)
|
||||
end
|
||||
|
||||
function self:set_tab(id)
|
||||
self.selected = id
|
||||
self.update_tabs()
|
||||
aux.call(self.on_select, id)
|
||||
end
|
||||
|
||||
function self.update_tabs()
|
||||
for _, tab in self.tabs do
|
||||
if tab.group.selected == tab.id then
|
||||
tab.text:SetTextColor(unpack(m.color.label.enabled))
|
||||
tab:Disable()
|
||||
tab:SetBackdropColor(unpack(m.color.panel.backdrop))
|
||||
tab.dock:Show()
|
||||
tab:SetHeight(29)
|
||||
else
|
||||
tab.text:SetTextColor(unpack(m.color.text.enabled))
|
||||
tab:Enable()
|
||||
tab:SetBackdropColor(unpack(m.color.content.backdrop))
|
||||
tab.dock:Hide()
|
||||
tab:SetHeight(24)
|
||||
end
|
||||
else
|
||||
if orientation == 'UP' then
|
||||
tab:SetPoint('BOTTOMLEFT', self.tabs[getn(self.tabs)], 'BOTTOMRIGHT', 4, 0)
|
||||
elseif orientation == 'DOWN' then
|
||||
tab:SetPoint('TOPLEFT', self.tabs[getn(self.tabs)], 'TOPRIGHT', 4, 0)
|
||||
end
|
||||
end
|
||||
|
||||
return self
|
||||
m.resize_tab(tab, tab:GetFontString():GetStringWidth(), 4)
|
||||
|
||||
tinsert(self.tabs, tab)
|
||||
end
|
||||
|
||||
function self:set_tab(id)
|
||||
self.selected = id
|
||||
self.update_tabs()
|
||||
aux.call(self.on_select, id)
|
||||
end
|
||||
|
||||
function self.update_tabs()
|
||||
for _, tab in self.tabs do
|
||||
if tab.group.selected == tab.id then
|
||||
tab.text:SetTextColor(unpack(m.color.label.enabled))
|
||||
tab:Disable()
|
||||
tab:SetBackdropColor(unpack(m.color.panel.backdrop))
|
||||
tab.dock:Show()
|
||||
tab:SetHeight(29)
|
||||
else
|
||||
tab.text:SetTextColor(unpack(m.color.text.enabled))
|
||||
tab:Enable()
|
||||
tab:SetBackdropColor(unpack(m.color.content.backdrop))
|
||||
tab.dock:Hide()
|
||||
tab:SetHeight(24)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
function public.editbox(parent)
|
||||
|
||||
local editbox = CreateFrame('EditBox', nil, parent)
|
||||
editbox:SetAutoFocus(false)
|
||||
editbox:SetTextInsets(0, 0, 3, 3)
|
||||
editbox:SetTextInsets(1, 2, 3, 3)
|
||||
editbox:SetMaxLetters(256)
|
||||
editbox:SetHeight(19)
|
||||
editbox:SetHeight(22)
|
||||
editbox:SetFont(m.config.font, m.config.medium_font_size)
|
||||
editbox:SetShadowColor(0, 0, 0, 0)
|
||||
m.set_content_style(editbox)
|
||||
editbox:SetScript('OnEditFocusGained', aux._(editbox.HighlightText, editbox))
|
||||
editbox:SetScript('OnEditFocusLost', aux._(editbox.HighlightText, editbox, 0, 0))
|
||||
editbox:SetScript('OnEscapePressed', aux._(editbox.ClearFocus, editbox))
|
||||
editbox:SetScript('OnEditFocusGained', aux._(editbox.HighlightText, aux.this))
|
||||
editbox:SetScript('OnEditFocusLost', aux._(editbox.HighlightText, aux.this, 0, 0))
|
||||
editbox:SetScript('OnEscapePressed', aux._(editbox.ClearFocus, aux.this))
|
||||
do
|
||||
local last_time, last_x, last_y
|
||||
editbox:SetScript('OnMouseUp', function()
|
||||
@@ -377,7 +380,7 @@ end
|
||||
|
||||
function public.item(parent)
|
||||
local item = CreateFrame('Button', nil, parent)
|
||||
item:SetWidth(193)
|
||||
item:SetWidth(260)
|
||||
item:SetHeight(40)
|
||||
local icon = CreateFrame('CheckButton', 'aux_frame'..aux.id(), item, 'ActionButtonTemplate')
|
||||
icon:SetPoint('LEFT', 2, 0.5)
|
||||
@@ -393,12 +396,13 @@ function public.item(parent)
|
||||
item.name:SetPoint('TOP', item, 'TOP', -5, 0)
|
||||
item.name:SetPoint('BOTTOM', item, 'BOTTOM', 5, 0)
|
||||
item.count = getglobal(icon:GetName()..'Count')
|
||||
item.count:SetTextHeight(17)
|
||||
return item
|
||||
end
|
||||
|
||||
function public.label(parent, size)
|
||||
local label = parent:CreateFontString()
|
||||
label:SetFont(m.config.font, size or m.config.medium_font_size)
|
||||
label:SetFont(m.config.font, size or m.config.small_font_size)
|
||||
label:SetTextColor(unpack(m.color.label.enabled))
|
||||
return label
|
||||
end
|
||||
@@ -432,49 +436,24 @@ end
|
||||
|
||||
function public.dropdown(parent)
|
||||
local dropdown = CreateFrame('Frame', 'aux_frame'..aux.id(), parent, 'UIDropDownMenuTemplate')
|
||||
m.set_content_style(dropdown, 0, 0, 2, 2)
|
||||
|
||||
dropdown:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=m.config.edge_size, insets={top=5,bottom=5}}
|
||||
dropdown:SetBackdropColor(unpack(m.color.content.backdrop))
|
||||
dropdown:SetBackdropBorderColor(unpack(m.color.content.border))
|
||||
local left = getglobal(dropdown:GetName()..'Left'):Hide()
|
||||
local middle = getglobal(dropdown:GetName()..'Middle'):Hide()
|
||||
local right = getglobal(dropdown:GetName()..'Right'):Hide()
|
||||
getglobal(dropdown:GetName()..'Left'):Hide()
|
||||
getglobal(dropdown:GetName()..'Middle'):Hide()
|
||||
getglobal(dropdown:GetName()..'Right'):Hide()
|
||||
|
||||
local button = getglobal(dropdown:GetName()..'Button')
|
||||
button:ClearAllPoints()
|
||||
button:SetPoint('RIGHT', dropdown, 0, 0)
|
||||
button:SetPoint('RIGHT', dropdown, -1, 0)
|
||||
dropdown.button = button
|
||||
|
||||
local text = getglobal(dropdown:GetName()..'Text')
|
||||
text:ClearAllPoints()
|
||||
text:SetPoint('RIGHT', button, 'LEFT', -2, 0)
|
||||
text:SetPoint('LEFT', dropdown, 'LEFT', 8, 0)
|
||||
text:SetPoint('LEFT', 8, 0)
|
||||
text:SetFont(m.config.font, m.config.medium_font_size)
|
||||
text:SetShadowColor(0, 0, 0, 0)
|
||||
|
||||
--
|
||||
-- dropdown:ClearAllPoints()
|
||||
-- dropdown:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -7, 0)
|
||||
-- dropdown:SetScript("OnHide", nil)
|
||||
-- dropdown:SetScript("OnEnter", Control_OnEnter)
|
||||
-- dropdown:SetScript("OnLeave", Control_OnLeave)
|
||||
-- dropdown:SetScript("OnMouseUp", function(self, button) Dropdown_TogglePullout(self.obj.button, button) end)
|
||||
-- TSMAPI.Design:SetContentColor(dropdown)
|
||||
--
|
||||
-- middle:ClearAllPoints()
|
||||
-- right:ClearAllPoints()
|
||||
--
|
||||
-- middle:SetPoint("LEFT", left, "RIGHT", 0, 0)
|
||||
-- middle:SetPoint("RIGHT", right, "LEFT", 0, 0)
|
||||
-- right:SetPoint("TOPRIGHT", dropdown, "TOPRIGHT", 0, 17)
|
||||
--
|
||||
-- local button = _G[dropdown:GetName().."Button"]
|
||||
-- button:RegisterForClicks("AnyUp")
|
||||
-- button:SetScript("OnEnter", Control_OnEnter)
|
||||
-- button:SetScript("OnLeave", Control_OnLeave)
|
||||
-- button:SetScript("OnClick", Dropdown_TogglePullout)
|
||||
-- button:ClearAllPoints()
|
||||
-- button:SetPoint("RIGHT", dropdown, 0, 0)
|
||||
|
||||
return dropdown
|
||||
end
|
||||
|
||||
@@ -483,19 +462,20 @@ function public.slider(parent)
|
||||
local slider = CreateFrame('Slider', nil, parent)
|
||||
slider:SetOrientation('HORIZONTAL')
|
||||
slider:SetHeight(6)
|
||||
slider:SetHitRectInsets(0, 0, -8, -8)
|
||||
slider:SetHitRectInsets(0, 0, -12, -12)
|
||||
slider:SetValue(0)
|
||||
|
||||
m.set_panel_style(slider)
|
||||
local thumb_texture = slider:CreateTexture(nil, 'ARTWORK')
|
||||
thumb_texture:SetPoint('CENTER', 0, 0)
|
||||
thumb_texture:SetTexture(unpack(m.color.content.backdrop))
|
||||
thumb_texture:SetHeight(15)
|
||||
thumb_texture:SetHeight(18)
|
||||
thumb_texture:SetWidth(8)
|
||||
slider:SetThumbTexture(thumb_texture)
|
||||
|
||||
local label = slider:CreateFontString(nil, 'OVERLAY')
|
||||
label:SetPoint('BOTTOMLEFT', slider, 'TOPLEFT', -3, 6)
|
||||
label:SetPoint('BOTTOMRIGHT', slider, 'TOPRIGHT', 6, 6)
|
||||
label:SetPoint('BOTTOMLEFT', slider, 'TOPLEFT', -3, 8)
|
||||
label:SetPoint('BOTTOMRIGHT', slider, 'TOPRIGHT', 6, 8)
|
||||
label:SetJustifyH('LEFT')
|
||||
label:SetHeight(13)
|
||||
label:SetFont(m.config.font, m.config.small_font_size)
|
||||
@@ -505,6 +485,7 @@ function public.slider(parent)
|
||||
editbox:SetPoint('LEFT', slider, 'RIGHT', 5, 0)
|
||||
editbox:SetWidth(50)
|
||||
editbox:SetJustifyH('CENTER')
|
||||
editbox:SetFont(m.config.font, 17)
|
||||
|
||||
slider.label = label
|
||||
slider.editbox = editbox
|
||||
|
||||
Reference in New Issue
Block a user