From e87294e94cee87470ed31524040eceef82f39674 Mon Sep 17 00:00:00 2001 From: Darthpred Date: Sat, 7 Jul 2012 16:43:38 +0400 Subject: [PATCH] Added alternative form of microbar Testing mode. You are warned. --- ElvUI_SLE/config/profile.lua | 1 + ElvUI_SLE/modules/microbar/microbar.lua | 272 ++++++++++++++++++++++++++++++- ElvUI_SLE/modules/microbar/options.lua | 13 +- 3 files changed, 282 insertions(+), 4 deletions(-) diff --git a/ElvUI_SLE/config/profile.lua b/ElvUI_SLE/config/profile.lua index 3c9381f..7c077b8 100644 --- a/ElvUI_SLE/config/profile.lua +++ b/ElvUI_SLE/config/profile.lua @@ -166,6 +166,7 @@ P['microbar'] = { ['layout'] = "Micro_Hor", --Button layuot format ['xoffset'] = 0, ['yoffset'] = 0, + ['symbolic'] = false, } --For some reason datatext settings refuses to work if there is no general setting block here O_o diff --git a/ElvUI_SLE/modules/microbar/microbar.lua b/ElvUI_SLE/modules/microbar/microbar.lua index d3a2ca6..88f6977 100644 --- a/ElvUI_SLE/modules/microbar/microbar.lua +++ b/ElvUI_SLE/modules/microbar/microbar.lua @@ -38,6 +38,7 @@ local RaidB local EJB local MenuB local HelpB +local CharBS --A table of names. Used for buttons creating. local microbuttons = { @@ -59,6 +60,7 @@ local microbuttons = { function MB:SetNames() microbar = CreateFrame('Frame', "MicroParent", E.UIParent); --Setting a main frame for Menu microbarcontrol = CreateFrame('Frame', "MicroControl", E.UIParent); --Setting Control Frame to handle events + microbarS = CreateFrame('Frame', "MicroParentS", E.UIParent); --Setting a main frame for Menu with letters CharB = CharacterMicroButton SpellB = SpellbookMicroButton @@ -73,6 +75,19 @@ function MB:SetNames() MenuB = MainMenuMicroButton HelpB = HelpMicroButton + CharBS = CreateFrame("Button", "CharacterBS", microbarS) + SpellBS = CreateFrame("Button", "SpellbookBS", microbarS) + TalentBS = CreateFrame("Button", "TalentsBS", microbarS) + AchievBS = CreateFrame("Button", "AchievementBS", microbarS) + QuestBS = CreateFrame("Button", "QuestBS", microbarS) + GuildBS = CreateFrame("Button", "GuildBS", microbarS) + PVPBS = CreateFrame("Button", "PvpBS", microbarS) + LFDBS = CreateFrame("Button", "LFDBS", microbarS) + RaidBS = CreateFrame("Button", "RaidFinderBS", microbarS) + EJBS = CreateFrame("Button", "JournalBS", microbarS) + MenuBS = CreateFrame("Button", "MenuSysBS", microbarS) + HelpBS = CreateFrame("Button", "TicketBS", microbarS) + --On update functions microbarcontrol:SetScript("OnUpdate", function(self,event,...) MB:Mouseover() @@ -176,6 +191,7 @@ function AB:CreateMicroBar() CharacterMicroButton.SetPoint = E.noop CharacterMicroButton.ClearAllPoints = E.noop + MB:SymbolsCreateFrame() MB:UpdateMicroSettings() end @@ -183,8 +199,10 @@ end function MB:Backdrop() if E.db.microbar.backdrop then microbar.backdrop:Show(); + microbarS.backdrop:Show(); else microbar.backdrop:Hide(); + microbarS.backdrop:Hide(); end end @@ -193,11 +211,14 @@ function MB:Mouseover() if E.db.microbar.mouse then if (MouseIsOver(MicroParent)) then MicroParent:SetAlpha(E.db.microbar.alpha) + microbarS:SetAlpha(E.db.microbar.alpha) else MicroParent:SetAlpha(0) + microbarS:SetAlpha(0) end else MicroParent:SetAlpha(E.db.microbar.alpha) + microbarS:SetAlpha(E.db.microbar.alpha) end end @@ -243,6 +264,19 @@ function MB:MicroButtonsPositioning() EJB:SetPoint("TOPLEFT", RaidB, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) MenuB:SetPoint("TOPLEFT", EJB, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) HelpB:SetPoint("TOPLEFT", MenuB, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + --Symbolic + CharBS:SetPoint("BOTTOMLEFT", microbarS, "BOTTOMLEFT", 5, 3) + SpellBS:SetPoint("TOPLEFT", CharBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + TalentBS:SetPoint("TOPLEFT", SpellBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + AchievBS:SetPoint("TOPLEFT", TalentBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + QuestBS:SetPoint("TOPLEFT", AchievBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + GuildBS:SetPoint("TOPLEFT", QuestBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + PVPBS:SetPoint("TOPLEFT", GuildBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + LFDBS:SetPoint("TOPLEFT", PVPBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + RaidBS:SetPoint("TOPLEFT", LFDBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + EJBS:SetPoint("TOPLEFT", RaidBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + MenuBS:SetPoint("TOPLEFT", EJBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) + HelpBS:SetPoint("TOPLEFT", MenuBS, "TOPLEFT", 25 + E.db.microbar.xoffset, 0) elseif E.db.microbar.layout == "Micro_Ver" then --Vertical CharB:SetPoint("TOPLEFT", microbar, "TOPLEFT", 1, 21) SpellB:SetPoint("TOPLEFT", CharB, "TOPLEFT", 0, -33 - E.db.microbar.yoffset) @@ -316,18 +350,25 @@ end function MB:MicroFrameSize() if E.db.microbar.layout == "Micro_Hor" then microbar:Size(305 + (E.db.microbar.xoffset * 11), 35) + microbarS:Size(305 + (E.db.microbar.xoffset * 11), 35) elseif E.db.microbar.layout == "Micro_Ver" then microbar:Size(30, 398 + (E.db.microbar.yoffset * 11)) + microbarS:Size(30, 398 + (E.db.microbar.yoffset * 11)) elseif E.db.microbar.layout == "Micro_26" then microbar:Size(55 + E.db.microbar.xoffset, 200 + (E.db.microbar.yoffset * 5)) + microbarS:Size(55 + E.db.microbar.xoffset, 200 + (E.db.microbar.yoffset * 5)) elseif E.db.microbar.layout == "Micro_34" then microbar:Size(80 + (E.db.microbar.xoffset * 2), 134 + (E.db.microbar.yoffset * 3)) + microbarS:Size(80 + (E.db.microbar.xoffset * 2), 134 + (E.db.microbar.yoffset * 3)) elseif E.db.microbar.layout == "Micro_43" then microbar:Size(105 + (E.db.microbar.xoffset * 3), 101 + (E.db.microbar.yoffset * 2)) + microbarS:Size(105 + (E.db.microbar.xoffset * 3), 101 + (E.db.microbar.yoffset * 2)) elseif E.db.microbar.layout == "Micro_62" then microbar:Size(155 + (E.db.microbar.xoffset * 5), 68 + E.db.microbar.yoffset) + microbarS:Size(155 + (E.db.microbar.xoffset * 5), 68 + E.db.microbar.yoffset) else microbar:Size(305, 36) + microbarS:Size(305, 36) end end @@ -365,11 +406,17 @@ end --For recreate after portals and so on function MB:MenuShow() - if E.db.microbar.enable then +if E.db.microbar.symbolic then + microbarS:Show() + else + microbarS:Hide() + end + if E.db.microbar.enable and not E.db.microbar.symbolic then microbar:Show() else microbar:Hide() end + MB:ButtonsSetup(); MB:MicroButtonsPositioning(); MB:ShowMicroButtons(); @@ -391,6 +438,229 @@ function MB:UpdateMicroSettings() MB:MicroFrameSize(); end +function MB:SymbolsCreateFrame() + microbarS:Point("CENTER", microbar, "CENTER", 0, 0) + microbarS:CreateBackdrop('Default'); + microbarS.backdrop:SetFrameStrata("BACKGROUND") --Without this backdrop causes a significant visual taint + microbarS.backdrop:SetAllPoints(); + microbarS.backdrop:Point("BOTTOMLEFT", microbarS, "BOTTOMLEFT", 0, -1); + + MB:SymbolsCreateButtons() +end + +function MB:SymbolsCreateButtons() + --Character + CharBS:Size(20, 28) + CharBS:CreateBackdrop() + + local CharBS_text = CharBS:CreateFontString(nil, 'OVERLAY') + CharBS_text:SetFont(E["media"].normFont, 10) + CharBS_text:SetText("C") + CharBS_text:SetPoint("CENTER", CharBS, "CENTER") + + CharBS:SetScript("OnClick", function(self) + if CharacterFrame:IsShown() then + HideUIPanel(CharacterFrame) + else + ShowUIPanel(CharacterFrame) + end + end) + + --Spellbook + SpellBS:Size(20, 28) + SpellBS:CreateBackdrop() + + local SpellBS_text = SpellBS:CreateFontString(nil, 'OVERLAY') + SpellBS_text:SetFont(E["media"].normFont, 10) + SpellBS_text:SetText("S") + SpellBS_text:SetPoint("CENTER", SpellBS, "CENTER") + + SpellBS:SetScript("OnClick", function(self) + if SpellBookFrame:IsShown() then + HideUIPanel(SpellBookFrame) + else + ShowUIPanel(SpellBookFrame) + end + end) + + --Talents + TalentBS:Size(20, 28) + TalentBS:CreateBackdrop() + + local TalentBS_text = TalentBS:CreateFontString(nil, 'OVERLAY') + TalentBS_text:SetFont(E["media"].normFont, 10) + TalentBS_text:SetText("T") + TalentBS_text:SetPoint("CENTER", TalentBS, "CENTER") + + TalentBS:SetScript("OnClick", function(self) + if UnitLevel("player") >= 10 then + if PlayerTalentFrame then + if PlayerTalentFrame:IsShown() then + HideUIPanel(PlayerTalentFrame) + else + ShowUIPanel(PlayerTalentFrame) + end + else + LoadAddOn("Blizzard_TalentUI") + + ShowUIPanel(PlayerTalentFrame) + end + end + end) + + --Achievements + AchievBS:Size(20, 28) + AchievBS:CreateBackdrop() + + local AchievBS_text = AchievBS:CreateFontString(nil, 'OVERLAY') + AchievBS_text:SetFont(E["media"].normFont, 10) + AchievBS_text:SetText("A") + AchievBS_text:SetPoint("CENTER", AchievBS, "CENTER") + + AchievBS:SetScript("OnClick", function(self) + ToggleAchievementFrame() + end) + + --Quests + QuestBS:Size(20, 28) + QuestBS:CreateBackdrop() + + local QuestBS_text = QuestBS:CreateFontString(nil, 'OVERLAY') + QuestBS_text:SetFont(E["media"].normFont, 10) + QuestBS_text:SetText("Q") + QuestBS_text:SetPoint("CENTER", QuestBS, "CENTER") + + QuestBS:SetScript("OnClick", function(self) + if QuestLogFrame:IsShown() then + HideUIPanel(QuestLogFrame) + else + ShowUIPanel(QuestLogFrame) + end + end) + + --Guild + GuildBS:Size(20, 28) + GuildBS:CreateBackdrop() + + local GuildBS_text = GuildBS:CreateFontString(nil, 'OVERLAY') + GuildBS_text:SetFont(E["media"].normFont, 10) + GuildBS_text:SetText("G") + GuildBS_text:SetPoint("CENTER", GuildBS, "CENTER") + + GuildBS:SetScript("OnClick", function(self) + if GuildFrame then + if GuildFrame:IsShown() or (LookingForGuildFrame and LookingForGuildFrame:IsShown()) then + if IsInGuild() then HideUIPanel(GuildFrame) else HideUIPanel(LookingForGuildFrame) end + else + if IsInGuild() then ShowUIPanel(GuildFrame) else ShowUIPanel(LookingForGuildFrame) end + end + else + LoadAddOn("Blizzard_GuildUI") + + ShowUIPanel(EncounterJournal) + end + end) + + --PvP + PVPBS:Size(20, 28) + PVPBS:CreateBackdrop() + + local PVPBS_text = PVPBS:CreateFontString(nil, 'OVERLAY') + PVPBS_text:SetFont(E["media"].normFont, 10) + PVPBS_text:SetText("P") + PVPBS_text:SetPoint("CENTER", PVPBS, "CENTER") + + PVPBS:SetScript("OnClick", function(self) + if UnitLevel("player") >= 10 then + if PVPFrame:IsShown() then + HideUIPanel(PVPFrame) + else + ShowUIPanel(PVPFrame) + end + end + end) + + --LFD + LFDBS:Size(20, 28) + LFDBS:CreateBackdrop() + + local LFDBS_text = LFDBS:CreateFontString(nil, 'OVERLAY') + LFDBS_text:SetFont(E["media"].normFont, 10) + LFDBS_text:SetText("D") + LFDBS_text:SetPoint("CENTER", LFDBS, "CENTER") + + LFDBS:SetScript("OnClick", function(self) + ToggleFrame(LFDParentFrame) + end) + + --LFR + RaidBS:Size(20, 28) + RaidBS:CreateBackdrop() + + local RaidBS_text = RaidBS:CreateFontString(nil, 'OVERLAY') + RaidBS_text:SetFont(E["media"].normFont, 10) + RaidBS_text:SetText("R") + RaidBS_text:SetPoint("CENTER", RaidBS, "CENTER") + + RaidBS:SetScript("OnClick", function(self) + ToggleFrame(RaidParentFrame) + end) + + --Journal + EJBS:Size(20, 28) + EJBS:CreateBackdrop() + + local EJBS_text = EJBS:CreateFontString(nil, 'OVERLAY') + EJBS_text:SetFont(E["media"].normFont, 10) + EJBS_text:SetText("J") + EJBS_text:SetPoint("CENTER", EJBS, "CENTER") + + EJBS:SetScript("OnClick", function(self) + if EncounterJournal then + if EncounterJournal:IsShown() then + HideUIPanel(EncounterJournal) + else + ShowUIPanel(EncounterJournal) + end + else + LoadAddOn("Blizzard_EncounterJournal") + + ShowUIPanel(EncounterJournal) + end + end) + + --Menu + MenuBS:Size(20, 28) + MenuBS:CreateBackdrop() + + local MenuBS_text = MenuBS:CreateFontString(nil, 'OVERLAY') + MenuBS_text:SetFont(E["media"].normFont, 10) + MenuBS_text:SetText("M") + MenuBS_text:SetPoint("CENTER", MenuBS, "CENTER") + + MenuBS:SetScript("OnClick", function(self) + if GameMenuFrame:IsShown() then + HideUIPanel(GameMenuFrame) + else + ShowUIPanel(GameMenuFrame) + end + end) + + --Help + HelpBS:Size(20, 28) + HelpBS:CreateBackdrop() + + local HelpBS_text = HelpBS:CreateFontString(nil, 'OVERLAY') + HelpBS_text:SetFont(E["media"].normFont, 10) + HelpBS_text:SetText("?") + HelpBS_text:SetPoint("CENTER", HelpBS, "CENTER") + + HelpBS:SetScript("OnClick", function(self) + ToggleHelpFrame() + end) +end + + --Initialization function MB:Initialize() MB:SetNames() diff --git a/ElvUI_SLE/modules/microbar/options.lua b/ElvUI_SLE/modules/microbar/options.lua index 494469c..0f1302b 100644 --- a/ElvUI_SLE/modules/microbar/options.lua +++ b/ElvUI_SLE/modules/microbar/options.lua @@ -20,8 +20,15 @@ E.Options.args.sle.args.microbar = { name = L['Enable'], set = function(info, value) E.db.microbar.enable = value; MB:MenuShow(); end, }, + symbolic = { + order = 3, + type = 'toggle', + name = L['Symbolic style'], + desc = L['Replace icons with just letters'], + set = function(info, value) E.db.microbar.symbolic = value; MB:MenuShow(); end, + }, visibility = { - order = 3, + order = 4, type = "group", name = L["Visibility"], guiInline = true, @@ -53,7 +60,7 @@ E.Options.args.sle.args.microbar = { type = "range", name = L["Set Alpha"], desc = L["Sets alpha of the microbar"], - min = 0.2, max = 1, step = 0.01, + min = 0.3, max = 1, step = 0.01, set = function(info, value) E.db.microbar.alpha = value; end, }, scale = { @@ -68,7 +75,7 @@ E.Options.args.sle.args.microbar = { } }, positioning = { - order = 4, + order = 5, type = "group", name = L["Positioning"], guiInline = true, -- 1.7.9.5