changeset 11:371e14cd2feb

- major fixes with icons not showing correctly.
author Tercio
date Thu, 08 Dec 2016 13:01:40 -0200
parents 6572ed4edaae
children 6c1cc07c389d
files HotCorners.lua HotCorners.xml Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua Libs/AceConsole-3.0/AceConsole-3.0.lua Libs/AceDB-3.0/AceDB-3.0.lua Libs/AceDBOptions-3.0/AceDBOptions-3.0.lua Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua Libs/AceGUI-3.0/widgets/AceGUIWidget-Icon.lua Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua Libs/AceGUI-3.0/widgets/AceGUIWidget-MultiLineEditBox.lua Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua Libs/LibDBIcon-1.0/LibDBIcon-1.0.lua Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua
diffstat 19 files changed, 198 insertions(+), 117 deletions(-) [+]
line wrap: on
line diff
--- a/HotCorners.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/HotCorners.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -558,10 +558,10 @@
 			--item frame
 			LibHotCorners:RefereshItems (self)
 			
-			self.AnimOnShow:Play()
+			--self.AnimOnShow:Play()
 			HotCornersInfosFrame:Show()
 			HotCornersInfosFrame:SetAlpha (0)
-			HotCornersInfosFrame.AnimOnShow:Play()
+			--HotCornersInfosFrame.AnimOnShow:Play()
 			
 			--update repair
 			local percent, items = 0, 0
@@ -647,7 +647,7 @@
 					item_button.itemtable = itemTable
 					
 					if (not item_button:IsShown() or item_button:GetAlpha() < 1) then
-						HotCornersStartAnimOnShow (item_button, "item_topleft")
+--						HotCornersStartAnimOnShow (item_button, "item_topleft")
 					end
 				end
 				index = index + 1
@@ -731,7 +731,7 @@
 					end
 					
 					if (not item_button:IsShown() or item_button:GetAlpha() < 1) then
-						HotCornersStartAnimOnShow (item_button, "item_topleft")
+--						HotCornersStartAnimOnShow (item_button, "item_topleft")
 					end
 				end
 				index = index + 1
@@ -763,7 +763,7 @@
 					end
 					
 					if (not item_button:IsShown() or item_button:GetAlpha() < 1) then
-						HotCornersStartAnimOnShow (item_button, "item_topleft")
+--						HotCornersStartAnimOnShow (item_button, "item_topleft")
 					end
 				end
 				index = index + 1
@@ -914,12 +914,14 @@
 			if (axis == "y") then
 				--button:SetPoint ("topleft", button:GetParent(), "topleft", -32, button.y)
 				button:SetPoint ("topleft", button:GetParent(), "topleft", 4, button.y)
-				button.AnimOnShow:Play()
+				--button.AnimOnShow:Play()
+				button:Show()
+				button:SetAlpha (1)
 				
 			elseif (axis == "item_topleft") then
+				--button.AnimOnShow:Play()
 				button:Show()
-				button.AnimOnShow:Play()
-				
+				button:SetAlpha (1)
 			end
 		end
 		
@@ -972,11 +974,22 @@
 		--> set the icon
 		button:SetNormalTexture (button_table.icon)
 		button:SetHighlightTexture (button_table.icon)
-		
-		if (string.lower (button_table.icon):find ([[\icons\]])) then
+	
+		if (string.lower (button_table.icon):find ([[\icons\]]) or string.lower (button_table.icon):find ([[\ICONS\]]) or string.lower (button_table.icon):find ([[\Icons\]])) then
 			button:GetNormalTexture():SetTexCoord (0.078125, 0.9375, 0.078125, 0.9375)
 			button:GetHighlightTexture():SetTexCoord (0.078125, 0.9375, 0.078125, 0.9375)
 		end
 		
+		button:SetNormalTexture (button_table.icon)
+		button:SetHighlightTexture (button_table.icon)
+		
+		button.Icon = button:CreateTexture (nil, "overlay")
+		button.Icon:SetTexture (button_table.icon)
+		button.Icon:SetSize (32, 32)
+		button.Icon:SetPoint ("center", button, "center", 0, 0)
+		
+		--print (button:GetName())
+		--print (1, button:GetAlpha())
+		
 		return button
 	end
\ No newline at end of file
--- a/HotCorners.xml	Tue Oct 25 15:59:51 2016 -0200
+++ b/HotCorners.xml	Thu Dec 08 13:01:40 2016 -0200
@@ -119,14 +119,13 @@
 			</Layer>
 		</Layers>
 		
+		
 		<Animations>
 			<AnimationGroup name="$parentOnShow" parentKey="AnimOnShow" looping="NONE">
 				<!-- hide -->
-				<Alpha change="-1" duration="0" order="1"/>
-				<!-- show with alpha 
-				<Translation offsetX="32" offsetY="0" duration="0.3" order="2"/>
-				-->
-				<Alpha change="1" duration="0.2" order="2"/>
+				<Alpha fromAlpha="0" toAlpha="0" duration="0" order="1"/>
+				<!-- show -->
+				<Alpha fromAlpha="0" toAlpha="1" duration="0.2" order="2"/>
 				<Scripts>
 					<OnPlay>
 						HotCornersAnimOnShowStarted (self:GetParent())
@@ -183,16 +182,18 @@
 		<Animations>
 			<AnimationGroup name="$parentOnShow" parentKey="AnimOnShow" looping="NONE">
 				<!-- hide -->
-				<Alpha change="-1" duration="0" order="1"/>
+				<Alpha fromAlpha="0" toAlpha="0" duration="0" order="1"/>
 				<!-- show with alpha 
 				<Translation offsetX="32" offsetY="0" duration="0.3" order="2"/>
 				-->
-				<Alpha change="1" duration="0.2" order="2"/>
+				<Alpha fromAlpha="0" toAlpha="1" duration="0.2" order="2"/>
 				<Scripts>
 					<OnPlay>
 						HotCornersAnimOnShowStarted (self:GetParent())
 					</OnPlay>
 					<OnFinished>
+						self:GetParent():Show()
+						self:GetParent():SetAlpha(1)
 						HotCornersAnimOnShowFinished (self:GetParent())
 					</OnFinished>
 				</Scripts>
@@ -261,16 +262,18 @@
 		<Animations>
 			<AnimationGroup name="$parentOnShow" parentKey="AnimOnShow" looping="NONE">
 				<!-- hide -->
-				<Alpha change="-1" duration="0" order="1"/>
+				<Alpha fromAlpha="0" toAlpha="0" duration="0" order="1"/>
 				<!-- show with alpha 
 				<Translation offsetX="32" offsetY="0" duration="0.3" order="2"/>
 				-->
-				<Alpha change="1" duration="0.2" order="2"/>
+				<Alpha fromAlpha="0" toAlpha="1" duration="0.2" order="2"/>
 				<Scripts>
 					<OnPlay>
 						HotCornersAnimOnShowStarted (self:GetParent())
 					</OnPlay>
 					<OnFinished>
+						self:GetParent():Show()
+						self:GetParent():SetAlpha(1)
 						HotCornersAnimOnShowFinished (self:GetParent())
 					</OnFinished>
 				</Scripts>
@@ -303,16 +306,18 @@
 		<Animations>
 			<AnimationGroup name="$parentOnShow" parentKey="AnimOnShow" looping="NONE">
 				<!-- hide -->
-				<Alpha change="-1" duration="0" order="1"/>
+				<Alpha fromAlpha="0" toAlpha="0" duration="0" order="1"/>
 				<!-- show with alpha 
 				<Translation offsetX="32" offsetY="0" duration="0.3" order="2"/>
 				-->
-				<Alpha change="1" duration="0.2" order="2"/>
+				<Alpha fromAlpha="0" toAlpha="1" duration="0.2" order="2"/>
 				<Scripts>
 					<OnPlay>
 						HotCornersAnimOnShowStarted (self:GetParent())
 					</OnPlay>
 					<OnFinished>
+						self:GetParent():Show()
+						self:GetParent():SetAlpha(1)					
 						HotCornersAnimOnShowFinished (self:GetParent())
 					</OnFinished>
 				</Scripts>
--- a/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -1,10 +1,10 @@
 --- AceConfigDialog-3.0 generates AceGUI-3.0 based windows based on option tables.
 -- @class file
 -- @name AceConfigDialog-3.0
--- @release $Id: AceConfigDialog-3.0.lua 1126 2014-11-10 06:38:01Z nevcairiel $
+-- @release $Id: AceConfigDialog-3.0.lua 1139 2016-07-03 07:43:51Z nevcairiel $
 
 local LibStub = LibStub
-local MAJOR, MINOR = "AceConfigDialog-3.0", 60
+local MAJOR, MINOR = "AceConfigDialog-3.0", 61
 local AceConfigDialog, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
 
 if not AceConfigDialog then return end
@@ -1092,7 +1092,7 @@
 					local imageCoords = GetOptionsMemberValue("imageCoords",v, options, path, appName)
 					local image, width, height = GetOptionsMemberValue("image",v, options, path, appName)
 					
-					if type(image) == "string" then
+					if type(image) == "string" or type(image) == "number" then
 						control = gui:Create("Icon")
 						if not width then
 							width = GetOptionsMemberValue("imageWidth",v, options, path, appName)
@@ -1154,7 +1154,7 @@
 					local image = GetOptionsMemberValue("image", v, options, path, appName)
 					local imageCoords = GetOptionsMemberValue("imageCoords", v, options, path, appName)
 					
-					if type(image) == "string" then
+					if type(image) == "string" or type(image) == "number" then
 						if type(imageCoords) == "table" then
 							control:SetImage(image, unpack(imageCoords))
 						else
@@ -1354,7 +1354,7 @@
 					local imageCoords = GetOptionsMemberValue("imageCoords",v, options, path, appName)
 					local image, width, height = GetOptionsMemberValue("image",v, options, path, appName)
 					
-					if type(image) == "string" then
+					if type(image) == "string" or type(image) == "number" then
 						if not width then
 							width = GetOptionsMemberValue("imageWidth",v, options, path, appName)
 						end
--- a/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -8,8 +8,8 @@
 -- :IterateOptionsTables() (and :GetOptionsTable() if only given one argument) return a function reference that the requesting config handling addon must call with valid "uiType", "uiName".
 -- @class file
 -- @name AceConfigRegistry-3.0
--- @release $Id: AceConfigRegistry-3.0.lua 1105 2013-12-08 22:11:58Z nevcairiel $
-local MAJOR, MINOR = "AceConfigRegistry-3.0", 15
+-- @release $Id: AceConfigRegistry-3.0.lua 1139 2016-07-03 07:43:51Z nevcairiel $
+local MAJOR, MINOR = "AceConfigRegistry-3.0", 16
 local AceConfigRegistry = LibStub:NewLibrary(MAJOR, MINOR)
 
 if not AceConfigRegistry then return end
@@ -57,6 +57,7 @@
 local ismethodtable={["table"]=true,["string"]=true,["function"]=true,   _="methodname, funcref or table"}
 local optstring={["nil"]=true,["string"]=true, _="string"}
 local optstringfunc={["nil"]=true,["string"]=true,["function"]=true, _="string or funcref"}
+local optstringnumberfunc={["nil"]=true,["string"]=true,["number"]=true,["function"]=true, _="string, number or funcref"}
 local optnumber={["nil"]=true,["number"]=true, _="number"}
 local optmethod={["nil"]=true,["string"]=true,["function"]=true, _="methodname or funcref"}
 local optmethodfalse={["nil"]=true,["string"]=true,["function"]=true,["boolean"]={[false]=true},  _="methodname, funcref or false"}
@@ -82,7 +83,7 @@
 		dialogHidden=optmethodbool,
 		dropdownHidden=optmethodbool,
 	cmdHidden=optmethodbool,
-	icon=optstringfunc,
+	icon=optstringnumberfunc,
 	iconCoords=optmethodtable,
 	handler=opttable,
 	get=optmethodfalse,
@@ -95,7 +96,7 @@
 local typedkeys={
 	header={},
 	description={
-		image=optstringfunc,
+		image=optstringnumberfunc,
 		imageCoords=optmethodtable,
 		imageHeight=optnumber,
 		imageWidth=optnumber,
@@ -112,7 +113,7 @@
 		childGroups=optstring,
 	},
 	execute={
-		image=optstringfunc,
+		image=optstringnumberfunc,
 		imageCoords=optmethodtable,
 		imageHeight=optnumber,
 		imageWidth=optnumber,
@@ -127,7 +128,7 @@
 	},
 	toggle={
 		tristate=optbool,
-		image=optstringfunc,
+		image=optstringnumberfunc,
 		imageCoords=optmethodtable,
 	},
 	tristate={
--- a/Libs/AceConsole-3.0/AceConsole-3.0.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceConsole-3.0/AceConsole-3.0.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -9,7 +9,7 @@
 -- make into AceConsole.
 -- @class file
 -- @name AceConsole-3.0
--- @release $Id: AceConsole-3.0.lua 878 2009-11-02 18:51:58Z nevcairiel $
+-- @release $Id: AceConsole-3.0.lua 1143 2016-07-11 08:52:03Z nevcairiel $
 local MAJOR,MINOR = "AceConsole-3.0", 7
 
 local AceConsole, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
@@ -136,7 +136,7 @@
 
 --- Retreive one or more space-separated arguments from a string. 
 -- Treats quoted strings and itemlinks as non-spaced.
--- @param string The raw argument string
+-- @param str The raw argument string
 -- @param numargs How many arguments to get (default 1)
 -- @param startpos Where in the string to start scanning (default  1)
 -- @return Returns arg1, arg2, ..., nextposition\\
--- a/Libs/AceDB-3.0/AceDB-3.0.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceDB-3.0/AceDB-3.0.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -10,6 +10,7 @@
 -- * **race** Race-specific data. All of the players characters of the same race share this database.
 -- * **faction** Faction-specific data. All of the players characters of the same faction share this database.
 -- * **factionrealm** Faction and realm specific data. All of the players characters on the same realm and of the same faction share this database.
+-- * **locale** Locale specific data, based on the locale of the players game client.
 -- * **global** Global Data. All characters on the same account share this database.
 -- * **profile** Profile-specific data. All characters using the same profile share this database. The user can control which profile should be used.
 --
@@ -39,7 +40,7 @@
 -- end
 -- @class file
 -- @name AceDB-3.0.lua
--- @release $Id: AceDB-3.0.lua 1124 2014-10-27 21:00:07Z funkydude $
+-- @release $Id: AceDB-3.0.lua 1142 2016-07-11 08:36:19Z nevcairiel $
 local ACEDB_MAJOR, ACEDB_MINOR = "AceDB-3.0", 26
 local AceDB, oldminor = LibStub:NewLibrary(ACEDB_MAJOR, ACEDB_MINOR)
 
--- a/Libs/AceDBOptions-3.0/AceDBOptions-3.0.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceDBOptions-3.0/AceDBOptions-3.0.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -1,8 +1,8 @@
 --- AceDBOptions-3.0 provides a universal AceConfig options screen for managing AceDB-3.0 profiles.
 -- @class file
 -- @name AceDBOptions-3.0
--- @release $Id: AceDBOptions-3.0.lua 1066 2012-09-18 14:36:49Z nevcairiel $
-local ACEDBO_MAJOR, ACEDBO_MINOR = "AceDBOptions-3.0", 14
+-- @release $Id: AceDBOptions-3.0.lua 1140 2016-07-03 07:53:29Z nevcairiel $
+local ACEDBO_MAJOR, ACEDBO_MINOR = "AceDBOptions-3.0", 15
 local AceDBOptions, oldminor = LibStub:NewLibrary(ACEDBO_MAJOR, ACEDBO_MINOR)
 
 if not AceDBOptions then return end -- No upgrade needed
@@ -53,19 +53,19 @@
 	L["choose_sub"] = "Wählt ein bereits vorhandenes Profil aus."
 	L["copy"] = "Kopieren von..."
 	L["copy_desc"] = "Kopiere die Einstellungen von einem vorhandenen Profil in das aktive Profil."
-	-- L["current"] = "Current Profile:"
+	L["current"] = "Aktuelles Profil:"
 	L["default"] = "Standard"
 	L["delete"] = "Profil löschen"
 	L["delete_confirm"] = "Willst du das ausgewählte Profil wirklich löschen?"
-	L["delete_desc"] = "Lösche vorhandene oder unbenutzte Profile aus der Datenbank um Platz zu sparen und um die SavedVariables Datei 'sauber' zu halten."
+	L["delete_desc"] = "Lösche vorhandene oder unbenutzte Profile aus der Datenbank, um Platz zu sparen und die SavedVariables-Datei 'sauber' zu halten."
 	L["delete_sub"] = "Löscht ein Profil aus der Datenbank."
-	L["intro"] = "Hier kannst du das aktive Datenbankprofile ändern, damit du verschiedene Einstellungen für jeden Charakter erstellen kannst, wodurch eine sehr flexible Konfiguration möglich wird."
+	L["intro"] = "Hier kannst du das aktive Datenbankprofil ändern, damit du verschiedene Einstellungen für jeden Charakter erstellen kannst, wodurch eine sehr flexible Konfiguration möglich wird."
 	L["new"] = "Neu"
 	L["new_sub"] = "Ein neues Profil erstellen."
 	L["profiles"] = "Profile"
 	L["profiles_sub"] = "Profile verwalten"
 	L["reset"] = "Profil zurücksetzen"
-	L["reset_desc"] = "Setzt das momentane Profil auf Standardwerte zurück, für den Fall das mit der Konfiguration etwas schief lief oder weil du einfach neu starten willst."
+	L["reset_desc"] = "Setzt das momentane Profil auf Standardwerte zurück, für den Fall, dass mit der Konfiguration etwas schief lief oder weil du einfach neu starten willst."
 	L["reset_sub"] = "Das aktuelle Profil auf Standard zurücksetzen."
 elseif LOCALE == "frFR" then
 	L["choose"] = "Profils existants"
@@ -73,7 +73,7 @@
 	L["choose_sub"] = "Permet de choisir un des profils déjà disponibles."
 	L["copy"] = "Copier à partir de"
 	L["copy_desc"] = "Copie les paramètres d'un profil déjà existant dans le profil actuellement actif."
-	-- L["current"] = "Current Profile:"
+	L["current"] = "Profil actuel :"
 	L["default"] = "Défaut"
 	L["delete"] = "Supprimer un profil"
 	L["delete_confirm"] = "Etes-vous sûr de vouloir supprimer le profil sélectionné ?"
@@ -88,32 +88,32 @@
 	L["reset_desc"] = "Réinitialise le profil actuel au cas où votre configuration est corrompue ou si vous voulez tout simplement faire table rase."
 	L["reset_sub"] = "Réinitialise le profil actuel avec les paramètres par défaut."
 elseif LOCALE == "koKR" then
-	L["choose"] = "프로필 선택"
-	L["choose_desc"] = "새로운 이름을 입력하거나, 이미 있는 프로필중 하나를 선택하여 새로운 프로필을 만들 수 있습니다."
-	L["choose_sub"] = "당신이 현재 이용할수 있는 프로필을 선택합니다."
-	L["copy"] = "복사"
-	L["copy_desc"] = "현재 사용중인 프로필에, 선택한 프로필의 설정을 복사합니다."
-	-- L["current"] = "Current Profile:"
+	L["choose"] = "저장 중인 프로필"
+	L["choose_desc"] = "입력창에 새로운 이름을 입력하거나 저장 중인 프로필 중 하나를 선택하여 새로운 프로필을 만들 수 있습니다."
+	L["choose_sub"] = "현재 이용할 수 있는 프로필 중 하나를 선택합니다."
+	L["copy"] = "복사해오기"
+	L["copy_desc"] = "현재 사용 중인 프로필에 선택한 프로필의 설정을 복사합니다."
+	L["current"] = "현재 프로필:"
 	L["default"] = "기본값"
 	L["delete"] = "프로필 삭제"
-	L["delete_confirm"] = "정말로 선택한 프로필의 삭제를 원하십니까?"
-	L["delete_desc"] = "데이터베이스에 사용중이거나 저장된 프로파일 삭제로 SavedVariables 파일의 정리와 공간 절약이 됩니다."
+	L["delete_confirm"] = "정말로 선택한 프로필을 삭제할까요?"
+	L["delete_desc"] = "저장 공간 절약과 SavedVariables 파일의 정리를 위해 데이터베이스에서 사용하지 않는 프로필을 삭제하세요."
 	L["delete_sub"] = "데이터베이스의 프로필을 삭제합니다."
-	L["intro"] = "모든 캐릭터의 다양한 설정과 사용중인 데이터베이스 프로필, 어느것이던지 매우 다루기 쉽게 바꿀수 있습니다."
+	L["intro"] = "활성 데이터베이스 프로필을 변경할 수 있고, 각 캐릭터 별로 다른 설정을 할 수 있습니다."
 	L["new"] = "새로운 프로필"
 	L["new_sub"] = "새로운 프로필을 만듭니다."
 	L["profiles"] = "프로필"
-	L["profiles_sub"] = "프로필 설정"
+	L["profiles_sub"] = "프로필 관리"
 	L["reset"] = "프로필 초기화"
-	L["reset_desc"] = "단순히 다시 새롭게 구성을 원하는 경우, 현재 프로필을 기본값으로 초기화 합니다."
-	L["reset_sub"] = "현재의 프로필을 기본값으로 초기화 합니다"
+	L["reset_desc"] = "설정이 깨졌거나 처음부터 다시 설정을 원하는 경우, 현재 프로필을 기본값으로 초기화하세요."
+	L["reset_sub"] = "현재 프로필을 기본값으로 초기화합니다"
 elseif LOCALE == "esES" or LOCALE == "esMX" then
 	L["choose"] = "Perfiles existentes"
 	L["choose_desc"] = "Puedes crear un nuevo perfil introduciendo un nombre en el recuadro o puedes seleccionar un perfil de los ya existentes."
 	L["choose_sub"] = "Selecciona uno de los perfiles disponibles."
 	L["copy"] = "Copiar de"
 	L["copy_desc"] = "Copia los ajustes de un perfil existente al perfil actual."
-	-- L["current"] = "Current Profile:"
+	L["current"] = "Perfil actual:"
 	L["default"] = "Por defecto"
 	L["delete"] = "Borrar un Perfil"
 	L["delete_confirm"] = "¿Estas seguro que quieres borrar el perfil seleccionado?"
@@ -129,31 +129,31 @@
 	L["reset_sub"] = "Reinicar el perfil actual al de por defecto"
 elseif LOCALE == "zhTW" then
 	L["choose"] = "現有的設定檔"
-	L["choose_desc"] = "你可以通過在文本框內輸入一個名字創立一個新的設定檔,也可以選擇一個已經存在的設定檔。"
-	L["choose_sub"] = "從當前可用的設定檔裏面選擇一個。"
+	L["choose_desc"] = "您可以在文字方塊內輸入名字以建立新的設定檔,或是選擇一個現有的設定檔使用。"
+	L["choose_sub"] = "從當前可用的設定檔裡面選擇一個。"
 	L["copy"] = "複製自"
-	L["copy_desc"] = "從當前某個已保存的設定檔複製到當前正使用的設定檔。"
-	-- L["current"] = "Current Profile:"
+	L["copy_desc"] = "從一個現有的設定檔,將設定複製到現在使用中的設定檔。"
+	L["current"] = "目前設定檔:"
 	L["default"] = "預設"
 	L["delete"] = "刪除一個設定檔"
-	L["delete_confirm"] = "你確定要刪除所選擇的設定檔嗎?"
-	L["delete_desc"] = "從資料庫裏刪除不再使用的設定檔,以節省空間,並且清理SavedVariables檔。"
-	L["delete_sub"] = "從資料庫裏刪除一個設定檔。"
-	L["intro"] = "你可以選擇一個活動的資料設定檔,這樣你的每個角色就可以擁有不同的設定值,可以給你的插件設定帶來極大的靈活性。"
+	L["delete_confirm"] = "確定要刪除所選擇的設定檔嗎?"
+	L["delete_desc"] = "從資料庫裡刪除不再使用的設定檔,以節省空間,並且清理 SavedVariables 檔案。"
+	L["delete_sub"] = "從資料庫裡刪除一個設定檔。"
+	L["intro"] = "您可以從資料庫中選擇一個設定檔來使用,如此就可以讓每個角色使用不同的設定。"
 	L["new"] = "新建"
 	L["new_sub"] = "新建一個空的設定檔。"
 	L["profiles"] = "設定檔"
 	L["profiles_sub"] = "管理設定檔"
 	L["reset"] = "重置設定檔"
-	L["reset_desc"] = "將當前的設定檔恢復到它的預設值,用於你的設定檔損壞,或者你只是想重來的情況。"
-	L["reset_sub"] = "將當前的設定檔恢復為預設值"
+	L["reset_desc"] = "將現用的設定檔重置為預設值;用於設定檔損壞,或者單純想要重來的情況。"
+	L["reset_sub"] = "將目前的設定檔重置為預設值"
 elseif LOCALE == "zhCN" then
 	L["choose"] = "现有的配置文件"
 	L["choose_desc"] = "你可以通过在文本框内输入一个名字创立一个新的配置文件,也可以选择一个已经存在的配置文件。"
 	L["choose_sub"] = "从当前可用的配置文件里面选择一个。"
 	L["copy"] = "复制自"
 	L["copy_desc"] = "从当前某个已保存的配置文件复制到当前正使用的配置文件。"
-	-- L["current"] = "Current Profile:"
+	L["current"] = "当前配置文件:"
 	L["default"] = "默认"
 	L["delete"] = "删除一个配置文件"
 	L["delete_confirm"] = "你确定要删除所选择的配置文件么?"
@@ -173,7 +173,7 @@
 	L["choose_sub"] = "Выбор одиного из уже доступных профилей"
 	L["copy"] = "Скопировать из"
 	L["copy_desc"] = "Скопировать настройки из выбранного профиля в активный."
-	-- L["current"] = "Current Profile:"
+	L["current"] = "Текущий профиль:"
 	L["default"] = "По умолчанию"
 	L["delete"] = "Удалить профиль"
 	L["delete_confirm"] = "Вы уверены, что вы хотите удалить выбранный профиль?"
@@ -185,17 +185,17 @@
 	L["profiles"] = "Профили"
 	L["profiles_sub"] = "Управление профилями"
 	L["reset"] = "Сброс профиля"
-	L["reset_desc"] = "Если ваша конфигурации испорчена или если вы хотите настроить всё заново - сбросьте текущий профиль на стандартные значения."
+	L["reset_desc"] = "Сбросить текущий профиль к стандартным настройкам, если ваша конфигурация испорчена или вы хотите настроить всё заново."
 	L["reset_sub"] = "Сброс текущего профиля на стандартный"
 elseif LOCALE == "itIT" then
-	L["choose"] = "Profili esistenti"
-	L["choose_desc"] = "Puoi creare un nuovo profilo digitando il nome della casella di testo, oppure scegliendone uno tra i profili gia' esistenti."
-	L["choose_sub"] = "Seleziona uno dei profili disponibili."
+	L["choose"] = "Profili Esistenti"
+	L["choose_desc"] = "Puoi creare un nuovo profilo digitando il nome della casella di testo, oppure scegliendone uno tra i profili già esistenti."
+	L["choose_sub"] = "Seleziona uno dei profili attualmente disponibili."
 	L["copy"] = "Copia Da"
 	L["copy_desc"] = "Copia le impostazioni da un profilo esistente, nel profilo attivo in questo momento."
 	L["current"] = "Profilo Attivo:"
 	L["default"] = "Standard"
-	L["delete"] = "Cancella un profilo"
+	L["delete"] = "Cancella un Profilo"
 	L["delete_confirm"] = "Sei sicuro di voler cancellare il profilo selezionato?"
 	L["delete_desc"] = "Cancella i profili non utilizzati dal database per risparmiare spazio e mantenere puliti i file di configurazione SavedVariables."
 	L["delete_sub"] = "Cancella un profilo dal Database."
@@ -205,8 +205,28 @@
 	L["profiles"] = "Profili"
 	L["profiles_sub"] = "Gestisci Profili"
 	L["reset"] = "Reimposta Profilo"
-	L["reset_desc"] = "Riporta il tuo profilo attivo alle sue impostazioni di default, nel caso in cui la tua configurazione si sia corrotta, o semplicemente tu voglia re-inizializzarla."
-	L["reset_sub"] = "Reimposta il profilo ai suoi valori di default."
+	L["reset_desc"] = "Riporta il tuo profilo attivo alle sue impostazioni predefinite, nel caso in cui la tua configurazione si sia corrotta, o semplicemente tu voglia re-inizializzarla."
+	L["reset_sub"] = "Reimposta il profilo ai suoi valori predefiniti."
+elseif LOCALE == "ptBR" then
+	L["choose"] = "Perfis Existentes"
+	L["choose_desc"] = "Você pode tanto criar um perfil novo tanto digitando um nome na caixa de texto, quanto escolher um dos perfis já existentes."
+	L["choose_sub"] = "Selecione um de seus perfis atualmente disponíveis."
+	L["copy"] = "Copiar De"
+	L["copy_desc"] = "Copia as definições de um perfil existente no perfil atualmente ativo."
+	L["current"] = "Perfil Autal:"
+	L["default"] = "Padrão"
+	L["delete"] = "Remover um Perfil"
+	L["delete_confirm"] = "Tem certeza que deseja remover o perfil selecionado?"
+	L["delete_desc"] = "Remove perfis existentes e inutilizados do banco de dados para economizar espaço, e limpar o arquivo SavedVariables."
+	L["delete_sub"] = "Remove um perfil do banco de dados."
+	L["intro"] = "Você pode alterar o perfil do banco de dados ativo, para que possa ter definições diferentes para cada personagem."
+	L["new"] = "Novo"
+	L["new_sub"] = "Cria um novo perfil vazio."
+	L["profiles"] = "Perfis"
+	L["profiles_sub"] = "Gerenciar Perfis"
+	L["reset"] = "Resetar Perfil"
+	L["reset_desc"] = "Reseta o perfil atual para os valores padrões, no caso de sua configuração estar quebrada, ou simplesmente se deseja começar novamente."
+	L["reset_sub"] = "Resetar o perfil atual ao padrão"
 end
 
 local defaultProfiles
--- a/Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -2,10 +2,12 @@
 ScrollFrame Container
 Plain container that scrolls its content and doesn't grow in height.
 -------------------------------------------------------------------------------]]
-local Type, Version = "ScrollFrame", 23
+local Type, Version = "ScrollFrame", 24
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
 
+local IsLegion = select(4, GetBuildInfo()) >= 70000
+
 -- Lua APIs
 local pairs, assert, type = pairs, assert, type
 local min, max, floor, abs = math.min, math.max, math.floor, math.abs
@@ -176,7 +178,11 @@
 
 	local scrollbg = scrollbar:CreateTexture(nil, "BACKGROUND")
 	scrollbg:SetAllPoints(scrollbar)
-	scrollbg:SetTexture(0, 0, 0, 0.4)
+	if IsLegion then
+		scrollbg:SetColorTexture(0, 0, 0, 0.4)
+	else
+		scrollbg:SetTexture(0, 0, 0, 0.4)
+	end
 
 	--Container Support
 	local content = CreateFrame("Frame", nil, scrollframe)
--- a/Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -2,10 +2,12 @@
 TreeGroup Container
 Container that uses a tree control to switch between groups.
 -------------------------------------------------------------------------------]]
-local Type, Version = "TreeGroup", 37
+local Type, Version = "TreeGroup", 40
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
 
+local IsLegion = select(4, GetBuildInfo()) >= 70000
+
 -- Lua APIs
 local next, pairs, ipairs, assert, type = next, pairs, ipairs, assert, type
 local math_min, math_max, floor = math.min, math.max, floor
@@ -295,6 +297,7 @@
 	["OnAcquire"] = function(self)
 		self:SetTreeWidth(DEFAULT_TREE_WIDTH, DEFAULT_TREE_SIZABLE)
 		self:EnableButtonTooltips(true)
+		self.frame:SetScript("OnUpdate", FirstFrameUpdate)
 	end,
 
 	["OnRelease"] = function(self)
@@ -335,6 +338,8 @@
 		button.toggle.button = button
 		button.toggle:SetScript("OnClick",Expand_OnClick)
 
+		button.text:SetHeight(14) -- Prevents text wrapping
+
 		return button
 	end,
 
@@ -667,7 +672,12 @@
 
 	local scrollbg = scrollbar:CreateTexture(nil, "BACKGROUND")
 	scrollbg:SetAllPoints(scrollbar)
-	scrollbg:SetTexture(0,0,0,0.4)
+
+	if IsLegion then
+		scrollbg:SetColorTexture(0,0,0,0.4)
+	else
+		scrollbg:SetTexture(0,0,0,0.4)
+	end
 
 	local border = CreateFrame("Frame",nil,frame)
 	border:SetPoint("TOPLEFT", treeframe, "TOPRIGHT")
--- a/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -13,12 +13,6 @@
 local _G = _G
 local PlaySound, CreateFrame, UIParent = PlaySound, CreateFrame, UIParent
 
-local wowMoP
-do
-	local _, _, _, interface = GetBuildInfo()
-	wowMoP = (interface >= 50000)
-end
-
 --[[-----------------------------------------------------------------------------
 Scripts
 -------------------------------------------------------------------------------]]
@@ -80,7 +74,7 @@
 -------------------------------------------------------------------------------]]
 local function Constructor()
 	local name = "AceGUI30Button" .. AceGUI:GetNextWidgetNum(Type)
-	local frame = CreateFrame("Button", name, UIParent, wowMoP and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
+	local frame = CreateFrame("Button", name, UIParent, "UIPanelButtonTemplate")
 	frame:Hide()
 
 	frame:EnableMouse(true)
--- a/Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -1,10 +1,12 @@
 --[[-----------------------------------------------------------------------------
 ColorPicker Widget
 -------------------------------------------------------------------------------]]
-local Type, Version = "ColorPicker", 22
+local Type, Version = "ColorPicker", 23
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
 
+local IsLegion = select(4, GetBuildInfo()) >= 70000
+
 -- Lua APIs
 local pairs = pairs
 
@@ -146,7 +148,11 @@
 	local texture = frame:CreateTexture(nil, "BACKGROUND")
 	texture:SetWidth(16)
 	texture:SetHeight(16)
-	texture:SetTexture(1, 1, 1)
+	if IsLegion then
+		texture:SetColorTexture(1, 1, 1)
+	else
+		texture:SetTexture(1, 1, 1)
+	end
 	texture:SetPoint("CENTER", colorSwatch)
 	texture:Show()
 
--- a/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -1,7 +1,9 @@
---[[ $Id: AceGUIWidget-DropDown-Items.lua 996 2010-12-01 18:34:17Z nevcairiel $ ]]--
+--[[ $Id: AceGUIWidget-DropDown-Items.lua 1137 2016-05-15 10:57:36Z nevcairiel $ ]]--
 
 local AceGUI = LibStub("AceGUI-3.0")
 
+local IsLegion = select(4, GetBuildInfo()) >= 70000
+
 -- Lua APIs
 local select, assert = select, assert
 
@@ -440,7 +442,7 @@
 -- A single line to separate items
 do
 	local widgetType = "Dropdown-Item-Separator"
-	local widgetVersion = 1
+	local widgetVersion = 2
 	
 	-- exported, override
 	local function SetDisabled(self, disabled)
@@ -455,7 +457,11 @@
 		
 		local line = self.frame:CreateTexture(nil, "OVERLAY")
 		line:SetHeight(1)
-		line:SetTexture(.5, .5, .5)
+		if IsLegion then
+			line:SetColorTexture(.5, .5, .5)
+		else
+			line:SetTexture(.5, .5, .5)
+		end
 		line:SetPoint("LEFT", self.frame, "LEFT", 10, 0)
 		line:SetPoint("RIGHT", self.frame, "RIGHT", -10, 0)
 		
--- a/Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -1,7 +1,7 @@
 --[[-----------------------------------------------------------------------------
 EditBox Widget
 -------------------------------------------------------------------------------]]
-local Type, Version = "EditBox", 25
+local Type, Version = "EditBox", 26
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
 
@@ -200,6 +200,10 @@
 		if not self.frame:IsShown() then
 			self.frame:SetScript("OnShow", Frame_OnShowFocus)
 		end
+	end,
+
+	["HighlightText"] = function(self, from, to)
+		self.editbox:HighlightText(from, to)
 	end
 }
 
--- a/Libs/AceGUI-3.0/widgets/AceGUIWidget-Icon.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Icon.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -9,7 +9,7 @@
 local select, pairs, print = select, pairs, print
 
 -- WoW APIs
-local CreateFrame, UIParent, GetBuildInfo = CreateFrame, UIParent, GetBuildInfo
+local CreateFrame, UIParent = CreateFrame, UIParent
 
 --[[-----------------------------------------------------------------------------
 Scripts
@@ -131,12 +131,8 @@
 	for method, func in pairs(methods) do
 		widget[method] = func
 	end
-	-- SetText is deprecated, but keep it around for a while. (say, to WoW 4.0)
-	if (select(4, GetBuildInfo()) < 40000) then
-		widget.SetText = widget.SetLabel
-	else
-		widget.SetText = function(self, ...) print("AceGUI-3.0-Icon: SetText is deprecated! Use SetLabel instead!"); self:SetLabel(...) end
-	end
+
+	widget.SetText = function(self, ...) print("AceGUI-3.0-Icon: SetText is deprecated! Use SetLabel instead!"); self:SetLabel(...) end
 
 	return AceGUI:RegisterAsWidget(widget)
 end
--- a/Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -2,7 +2,7 @@
 Keybinding Widget
 Set Keybindings in the Config UI.
 -------------------------------------------------------------------------------]]
-local Type, Version = "Keybinding", 24
+local Type, Version = "Keybinding", 25
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
 
@@ -17,12 +17,6 @@
 -- List them here for Mikk's FindGlobals script
 -- GLOBALS: NOT_BOUND
 
-local wowMoP
-do
-	local _, _, _, interface = GetBuildInfo()
-	wowMoP = (interface >= 50000)
-end
-
 --[[-----------------------------------------------------------------------------
 Scripts
 -------------------------------------------------------------------------------]]
@@ -40,11 +34,13 @@
 		local self = frame.obj
 		if self.waitingForKey then
 			frame:EnableKeyboard(false)
+			frame:EnableMouseWheel(false)
 			self.msgframe:Hide()
 			frame:UnlockHighlight()
 			self.waitingForKey = nil
 		else
 			frame:EnableKeyboard(true)
+			frame:EnableMouseWheel(true)
 			self.msgframe:Show()
 			frame:LockHighlight()
 			self.waitingForKey = true
@@ -79,6 +75,7 @@
 		end
 
 		frame:EnableKeyboard(false)
+		frame:EnableMouseWheel(false)
 		self.msgframe:Hide()
 		frame:UnlockHighlight()
 		self.waitingForKey = nil
@@ -103,6 +100,16 @@
 	Keybinding_OnKeyDown(frame, button)
 end
 
+local function Keybinding_OnMouseWheel(frame, direction)
+	local button
+	if direction >= 0 then
+		button = "MOUSEWHEELUP"
+	else
+		button = "MOUSEWHEELDOWN"
+	end
+	Keybinding_OnKeyDown(frame, button)
+end
+
 --[[-----------------------------------------------------------------------------
 Methods
 -------------------------------------------------------------------------------]]
@@ -115,6 +122,7 @@
 		self.msgframe:Hide()
 		self:SetDisabled(false)
 		self.button:EnableKeyboard(false)
+		self.button:EnableMouseWheel(false)
 	end,
 
 	-- ["OnRelease"] = nil,
@@ -180,15 +188,17 @@
 	local name = "AceGUI30KeybindingButton" .. AceGUI:GetNextWidgetNum(Type)
 
 	local frame = CreateFrame("Frame", nil, UIParent)
-	local button = CreateFrame("Button", name, frame, wowMoP and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
+	local button = CreateFrame("Button", name, frame, "UIPanelButtonTemplate")
 
 	button:EnableMouse(true)
+	button:EnableMouseWheel(false)
 	button:RegisterForClicks("AnyDown")
 	button:SetScript("OnEnter", Control_OnEnter)
 	button:SetScript("OnLeave", Control_OnLeave)
 	button:SetScript("OnClick", Keybinding_OnClick)
 	button:SetScript("OnKeyDown", Keybinding_OnKeyDown)
 	button:SetScript("OnMouseDown", Keybinding_OnMouseDown)
+	button:SetScript("OnMouseWheel", Keybinding_OnMouseWheel)
 	button:SetPoint("BOTTOMLEFT")
 	button:SetPoint("BOTTOMRIGHT")
 	button:SetHeight(24)
--- a/Libs/AceGUI-3.0/widgets/AceGUIWidget-MultiLineEditBox.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-MultiLineEditBox.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -1,4 +1,4 @@
-local Type, Version = "MultiLineEditBox", 27
+local Type, Version = "MultiLineEditBox", 28
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
 
@@ -14,12 +14,6 @@
 -- List them here for Mikk's FindGlobals script
 -- GLOBALS: ACCEPT, ChatFontNormal
 
-local wowMoP
-do
-	local _, _, _, interface = GetBuildInfo()
-	wowMoP = (interface >= 50000)
-end
-
 --[[-----------------------------------------------------------------------------
 Support functions
 -------------------------------------------------------------------------------]]
@@ -251,7 +245,11 @@
 			self.frame:SetScript("OnShow", OnShowFocus)
 		end
 	end,
-	
+
+	["HighlightText"] = function(self, from, to)
+		self.editBox:HighlightText(from, to)
+	end,
+
 	["GetCursorPosition"] = function(self)
 		return self.editBox:GetCursorPosition()
 	end,
@@ -285,7 +283,7 @@
 	label:SetText(ACCEPT)
 	label:SetHeight(10)
 
-	local button = CreateFrame("Button", ("%s%dButton"):format(Type, widgetNum), frame, wowMoP and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
+	local button = CreateFrame("Button", ("%s%dButton"):format(Type, widgetNum), frame, "UIPanelButtonTemplate")
 	button:SetPoint("BOTTOMLEFT", 0, 4)
 	button:SetHeight(22)
 	button:SetWidth(label:GetStringWidth() + 24)
--- a/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -1,4 +1,4 @@
---[[ $Id: CallbackHandler-1.0.lua 965 2010-08-09 00:47:52Z mikk $ ]]
+--[[ $Id: CallbackHandler-1.0.lua 1131 2015-06-04 07:29:24Z nevcairiel $ ]]
 local MAJOR, MINOR = "CallbackHandler-1.0", 6
 local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR)
 
@@ -65,9 +65,7 @@
 --   UnregisterName    - name of the callback unregistration API, default "UnregisterCallback"
 --   UnregisterAllName - name of the API to unregister all callbacks, default "UnregisterAllCallbacks". false == don't publish this API.
 
-function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAllName, OnUsed, OnUnused)
-	-- TODO: Remove this after beta has gone out
-	assert(not OnUsed and not OnUnused, "ACE-80: OnUsed/OnUnused are deprecated. Callbacks are now done to registry.OnUsed and registry.OnUnused")
+function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAllName)
 
 	RegisterName = RegisterName or "RegisterCallback"
 	UnregisterName = UnregisterName or "UnregisterCallback"
--- a/Libs/LibDBIcon-1.0/LibDBIcon-1.0.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/LibDBIcon-1.0/LibDBIcon-1.0.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -1,6 +1,6 @@
 --[[
 Name: DBIcon-1.0
-Revision: $Rev: 34 $
+Revision: $Rev: 56 $
 Author(s): Rabbit (rabbit.magtheridon@gmail.com)
 Description: Allows addons to register to recieve a lightweight minimap icon as an alternative to more heavy LDB displays.
 Dependencies: LibStub
@@ -33,7 +33,7 @@
 --
 
 local DBICON10 = "LibDBIcon-1.0"
-local DBICON10_MINOR = tonumber(("$Rev: 34 $"):match("(%d+)"))
+local DBICON10_MINOR = tonumber(("$Rev: 56 $"):match("(%d+)"))
 if not LibStub then error(DBICON10 .. " requires LibStub.") end
 local ldb = LibStub("LibDataBroker-1.1", true)
 if not ldb then error(DBICON10 .. " requires LibDataBroker-1.1.") end
--- a/Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua	Tue Oct 25 15:59:51 2016 -0200
+++ b/Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua	Thu Dec 08 13:01:40 2016 -0200
@@ -1,6 +1,6 @@
 --[[
 Name: LibSharedMedia-3.0
-Revision: $Revision: 89 $
+Revision: $Revision: 91 $
 Author: Elkano (elkano@gmx.de)
 Inspired By: SurfaceLib by Haste/Otravi (troeks@gmail.com)
 Website: http://www.wowace.com/projects/libsharedmedia-3-0/
@@ -9,7 +9,7 @@
 License: LGPL v2.1
 ]]
 
-local MAJOR, MINOR = "LibSharedMedia-3.0", 6000201 -- 6.0.2 v1 / increase manually on changes
+local MAJOR, MINOR = "LibSharedMedia-3.0", 6010002 -- 6.1.0 v2 / increase manually on changes
 local lib = LibStub:NewLibrary(MAJOR, MINOR)
 
 if not lib then return end
@@ -223,6 +223,13 @@
 	end
 	mediatype = mediatype:lower()
 	if mediatype == lib.MediaType.FONT and ((langmask and band(langmask, LOCALE_MASK) == 0) or not (langmask or locale_is_western)) then return false end
+	if mediatype == lib.MediaType.SOUND and type(data) == "string" then
+		local path = data:lower()
+		-- Only ogg and mp3 are valid sounds.
+		if not path:find(".ogg", nil, true) and not path:find(".mp3", nil, true) then
+			return false
+		end
+	end
 	if not mediaTable[mediatype] then mediaTable[mediatype] = {} end
 	local mtable = mediaTable[mediatype]
 	if mtable[key] then return false end