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,