Quantcast

Added alternative form of microbar

Darthpred [07-07-12 - 12:43]
Added alternative form of microbar

Testing mode. You are warned.
Filename
ElvUI_SLE/config/profile.lua
ElvUI_SLE/modules/microbar/microbar.lua
ElvUI_SLE/modules/microbar/options.lua
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,