Quantcast

- Update built-in to remove references the drop down lib in favor of using Titan Panel routines.

urnati [02-08-22 - 21:21]
- Update built-in to remove references the drop down lib in favor of using Titan Panel routines.
- Volume : Updated a lot of the menu, tooltip, and slider text to use Blizz constants (localized strings) rather than Titan localized strings
Filename
Titan/TitanPanelTemplate.lua
TitanBag/TitanBag.lua
TitanClock/TitanClock.lua
TitanGold/TitanGold.lua
TitanLocation/TitanLocation.lua
TitanLootType/TitanLootType.lua
TitanPerformance/TitanPerformance.lua
TitanRepair/TitanRepair.lua
TitanVolume/TitanVolume.lua
TitanXP/TitanXP.lua
diff --git a/Titan/TitanPanelTemplate.lua b/Titan/TitanPanelTemplate.lua
index b2275cf..d4ce8a1 100644
--- a/Titan/TitanPanelTemplate.lua
+++ b/Titan/TitanPanelTemplate.lua
@@ -35,7 +35,7 @@ Each template contains:
 			</OnEnter>
 			<OnLeave>
 				TitanPanelButton_OnLeave(self);
-			</OnLeave>
+			</OnLeave>
 If these events are overridden then the default routine needs to be included!
 :DESC
 --]]
@@ -70,11 +70,11 @@ NOTE:
 --]]
 local function TitanTooltip_AddTooltipText(text)
 	if ( text ) then
-		-- Append a "\n" to the end
+		-- Append a "\n" to the end
 		if ( string.sub(text, -1, -1) ~= "\n" ) then
 			text = text.."\n";
 		end
-
+
 		-- See if the string is intended for a double column
 		for text1, text2 in string.gmatch(text, "([^\t\n]*)\t?([^\t\n]*)\n") do
 			if ( text2 ~= "" ) then
@@ -86,7 +86,7 @@ local function TitanTooltip_AddTooltipText(text)
 			else
 				-- Assume a blank line
 				GameTooltip:AddLine("\n");
-			end
+			end
 		end
 	end
 end
@@ -124,7 +124,7 @@ local function TitanTooltip_SetOwnerPosition(parent, anchorPoint, relativeToFram
 	end
 	-- Changes for 9.1.5. The background template was removed from the GameTooltip
 	local tip_name = frame:GetName()
-
+
 	local tip_back_name = tip_name.."Backdrop"
 	local tip_back_frame = _G[tip_back_name] or CreateFrame("Frame", tip_back_name, frame, BackdropTemplateMixin and "BackdropTemplate" or nil)
 	tip_back_frame:SetFrameLevel(frame:GetFrameLevel() - 1) -- By creating this after the parent, need to set it behind the parent
@@ -136,9 +136,9 @@ local function TitanTooltip_SetOwnerPosition(parent, anchorPoint, relativeToFram
 	tip_back_frame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, tool_trans)
 	tip_back_frame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, tool_trans)
 	frame.MenuBackdrop = tip_back_frame
-
+
 	frame:SetOwner(parent, "ANCHOR_NONE");
-	frame:SetPoint(anchorPoint, relativeToFrame, relativePoint,
+	frame:SetPoint(anchorPoint, relativeToFrame, relativePoint,
 		xOffset, yOffset);
 --[[
 	-- set alpha (transparency) for the Game Tooltip
@@ -178,8 +178,8 @@ local function TitanTooltip_SetGameTooltip(self)
 --]]
 --		self.tooltipCustomFunction();
 	elseif ( self.tooltipTitle ) then
-		GameTooltip:SetText(self.tooltipTitle,
-			HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
+		GameTooltip:SetText(self.tooltipTitle,
+			HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
 		if ( self.tooltipText ) then
 			TitanTooltip_AddTooltipText(self.tooltipText);
 		end
@@ -198,14 +198,14 @@ OUT:  None
 --]]
 local function TitanTooltip_SetPanelTooltip(self, id, frame)
 	-- sanity checks
-	if not TitanPanelGetVar("ToolTipsShown")
+	if not TitanPanelGetVar("ToolTipsShown")
 	or (TitanPanelGetVar("HideTipsInCombat") and InCombatLockdown()) then return end

 	if not self.tooltipCustomFunction and not self.tooltipTitle then return end

 	-- Set GameTooltip
 	local button = TitanUtils_GetButton(id);
-	local scale = TitanPanelGetVar("Scale");
+	local scale = TitanPanelGetVar("Scale");
 	local offscreenX, offscreenY;
 	local i = TitanPanel_GetButtonNumber(id);
 	local bar = TITAN_PANEL_DISPLAY_PREFIX..TitanUtils_GetWhichBar(id)
@@ -220,20 +220,20 @@ local function TitanTooltip_SetPanelTooltip(self, id, frame)
 		rel_pt = "TOP"
 	end

-	TitanTooltip_SetOwnerPosition(button, pt.."LEFT",
+	TitanTooltip_SetOwnerPosition(button, pt.."LEFT",
 		button:GetName(), rel_pt.."LEFT", -10, 0, frame) --4 * scale);
 	TitanTooltip_SetGameTooltip(self);

 	-- Adjust GameTooltip position if it's off the screen
 	offscreenX, offscreenY = TitanUtils_GetOffscreen(GameTooltip);
 	if ( offscreenX == -1 ) then
-		TitanTooltip_SetOwnerPosition(button, pt.."LEFT", bar,
+		TitanTooltip_SetOwnerPosition(button, pt.."LEFT", bar,
 			rel_pt.."LEFT", 0, 0, frame)
-		TitanTooltip_SetGameTooltip(self);
+		TitanTooltip_SetGameTooltip(self);
 	elseif ( offscreenX == 1 ) then
-		TitanTooltip_SetOwnerPosition(button, pt.."RIGHT", bar,
+		TitanTooltip_SetOwnerPosition(button, pt.."RIGHT", bar,
 			rel_pt.."RIGHT", 0, 0, frame)
-		TitanTooltip_SetGameTooltip(self);
+		TitanTooltip_SetGameTooltip(self);
 	end
 end

@@ -249,12 +249,12 @@ local function TitanPanelButton_SetTooltip(self, id)

 	self.tooltipCustomFunction = nil;
 	if (id and TitanUtils_IsPluginRegistered(id)) then
-		local plugin = TitanUtils_GetPlugin(id);
+		local plugin = TitanUtils_GetPlugin(id);
 		if ( plugin.tooltipCustomFunction ) then
 			self.tooltipCustomFunction = plugin.tooltipCustomFunction;
 			TitanTooltip_SetPanelTooltip(self, id);
 		elseif ( plugin.tooltipTitle ) then
-			self.tooltipTitle = plugin.tooltipTitle;
+			self.tooltipTitle = plugin.tooltipTitle;
 			local tooltipTextFunc = _G[plugin.tooltipTextFunction];
 			if ( tooltipTextFunc ) then
 				local tmp_txt = ""
@@ -331,9 +331,9 @@ NOTE:
 --]]
 local function TitanPanelButton_OnDragStart(self, ChildButton)
 	if TitanPanelGetVar("LockButtons") or InCombatLockdown() then return end
-
+
 	local frname = self;
-	if ChildButton then
+	if ChildButton then
 		frname = self:GetParent();
 	end

@@ -341,22 +341,22 @@ local function TitanPanelButton_OnDragStart(self, ChildButton)
 	local i,j;
 	for i, j in pairs(TitanPanelSettings.Buttons) do
 		local pluginid = _G["TitanPanel"..TitanPanelSettings.Buttons[i].."Button"];
-		if pluginid then
-			pluginid:ClearAllPoints()
+		if pluginid then
+			pluginid:ClearAllPoints()
 		end
 	end

 	-- Start the drag; close any tooltips and open control frames
 	frname:StartMoving();
-	frname.isMoving = true;
+	frname.isMoving = true;
 	TitanUtils_CloseAllControlFrames();
 	TitanPanelRightClickMenu_Close();
 	if AceLibrary then
-		if AceLibrary:HasInstance("Dewdrop-2.0") then
-			AceLibrary("Dewdrop-2.0"):Close()
+		if AceLibrary:HasInstance("Dewdrop-2.0") then
+			AceLibrary("Dewdrop-2.0"):Close()
 		end
-		if AceLibrary:HasInstance("Tablet-2.0") then
-			AceLibrary("Tablet-2.0"):Close()
+		if AceLibrary:HasInstance("Tablet-2.0") then
+			AceLibrary("Tablet-2.0"):Close()
 		end
 	end
 	GameTooltip:Hide();
@@ -375,11 +375,11 @@ local function TitanPanelButton_OnDragStart(self, ChildButton)
 		end
 	end
 	-- /LibQTip-1.0 support code
-
+
 	-- Hold the plugin id so we can do checks on the drop
 	TITAN_PANEL_MOVE_ADDON = TitanUtils_GetButtonID(self:GetName());
 	if ChildButton then
-		TITAN_PANEL_MOVE_ADDON =
+		TITAN_PANEL_MOVE_ADDON =
 			TitanUtils_GetButtonID(self:GetParent():GetName());
 	end
 	-- Tell Titan that a drag & drop is in process
@@ -402,35 +402,35 @@ NOTE:
 :NOTE
 --]]
 local function TitanPanelButton_OnDragStop(self, ChildButton)
-	if TitanPanelGetVar("LockButtons") then
+	if TitanPanelGetVar("LockButtons") then
 		return
 	end
 	local ok_to_move = true
 	local nonmovableFrom = false;
 	local nonmovableTo = false;
 	local frname = self;
-	if ChildButton then
+	if ChildButton then
 		frname = self:GetParent();
 	end
 	if TITAN_PANEL_MOVING == 1 then
 		frname:StopMovingOrSizing();
 		frname.isMoving = false;
 		TITAN_PANEL_MOVING = 0;
-
+
 		-- See if the plugin is supposed to stay on the bar it is on
 		if TitanGetVar(TITAN_PANEL_MOVE_ADDON, "ForceBar") then
 			ok_to_move = false
 		end
-
+
 		-- eventually there could be several reasons to not allow
 		-- the plugin to move
 		if ok_to_move then
 			local i,j;
 			for i, j in pairs(TitanPanelSettings.Buttons) do
-				local pluginid =
+				local pluginid =
 					_G["TitanPanel"..TitanPanelSettings.Buttons[i].."Button"];
 				if (pluginid and MouseIsOver(pluginid)) and frname ~= pluginid then
-					TITAN_PANEL_DROPOFF_ADDON = TitanPanelSettings.Buttons[i];
+					TITAN_PANEL_DROPOFF_ADDON = TitanPanelSettings.Buttons[i];
 				end
 			end

@@ -440,7 +440,7 @@ local function TitanPanelButton_OnDragStop(self, ChildButton)
 			if nonmovableTo ~= nonmovableFrom then
 				TITAN_PANEL_DROPOFF_ADDON = nil;
 			end
-
+
 			if TITAN_PANEL_DROPOFF_ADDON == nil then
 				-- See if the plugin was dropped on a bar rather than
 				-- another plugin.
@@ -475,7 +475,7 @@ local function TitanPanelButton_OnDragStop(self, ChildButton)
 					TitanPanelSettings.Location[dropoff] = dropoffbar;
 					TitanPanelSettings.Buttons[pickup] = TITAN_PANEL_DROPOFF_ADDON;
 					TitanPanelSettings.Location[pickup] = pickupbar;
-				end
+				end
 			end
 		end

@@ -497,8 +497,8 @@ VAR: text - the label for value
 VAR: value - the value
 OUT: string - encoded color string of text and value
 --]]
-function TitanOptionSlider_TooltipText(text, value)
-	return text .. GREEN_FONT_COLOR_CODE .. value .. FONT_COLOR_CODE_CLOSE;
+function TitanOptionSlider_TooltipText(text, value)
+	return text .. " " .. GREEN_FONT_COLOR_CODE .. value .. FONT_COLOR_CODE_CLOSE;
 end

 --[[ API
@@ -547,18 +547,18 @@ function TitanPanelPluginHandle_OnUpdate(table, oldarg) -- Used by plugins

 	-- id is required
 	if id then
-		if updateType == TITAN_PANEL_UPDATE_BUTTON
+		if updateType == TITAN_PANEL_UPDATE_BUTTON
 		or updateType == TITAN_PANEL_UPDATE_ALL then
 			TitanPanelButton_UpdateButton(id)
 		end

-		if (updateType == TITAN_PANEL_UPDATE_TOOLTIP
-		or updateType == TITAN_PANEL_UPDATE_ALL)
-		and MouseIsOver(_G["TitanPanel"..id.."Button"]) then
+		if (updateType == TITAN_PANEL_UPDATE_TOOLTIP
+		or updateType == TITAN_PANEL_UPDATE_ALL)
+		and MouseIsOver(_G["TitanPanel"..id.."Button"]) then
 			if TitanPanelRightClickMenu_IsVisible() or TITAN_PANEL_MOVING == 1 then
-				return
+				return
 			end
-			TitanPanelButton_SetTooltip(_G["TitanPanel"..id.."Button"], id)
+			TitanPanelButton_SetTooltip(_G["TitanPanel"..id.."Button"], id)
 		end
 	end
 end
@@ -578,12 +578,12 @@ function TitanPanelDetectPluginMethod(id, isChildButton)
 	end
 	-- Ensure the frame is valid
 	if not TitanPluginframe and TitanPluginframe:GetName() then return end -- sanity check...
-
+
 	-- Set the OnDragStart script
 	TitanPluginframe:SetScript("OnDragStart", function(self)
-		if not IsShiftKeyDown()
-		and not IsControlKeyDown()
-		and not IsAltKeyDown() then
+		if not IsShiftKeyDown()
+		and not IsControlKeyDown()
+		and not IsAltKeyDown() then
 			if isChildButton then
 				TitanPanelButton_OnDragStart(self, true);
 			else
@@ -591,14 +591,14 @@ function TitanPanelDetectPluginMethod(id, isChildButton)
 			end
 		end
 	end)
-
+
 	-- Set the OnDragStop script
-	TitanPluginframe:SetScript("OnDragStop", function(self)
+	TitanPluginframe:SetScript("OnDragStop", function(self)
 		if isChildButton then
 			TitanPanelButton_OnDragStop(self, true)
-		else
+		else
 			TitanPanelButton_OnDragStop(self);
-		end
+		end
 	end)
 end

@@ -614,9 +614,9 @@ function TitanPanelButton_OnShow(self) -- Used by plugins
 		id = TitanUtils_GetButtonID(self:GetName());
 	end
 	-- ensure that id is a valid Titan plugin
-	if (id) then
+	if (id) then
 		TitanPanelButton_UpdateButton(id, 1);
-	end
+	end
 end

 --[[ API
@@ -633,15 +633,15 @@ function TitanPanelButton_OnClick(self, button, isChildButton) -- Used by plugin
 	local id
 	-- ensure that the 'self' passed is a valid frame reference
 	if self and self:GetName() then
-		id = TitanUtils_Ternary(isChildButton,
-			TitanUtils_GetParentButtonID(self:GetName()),
+		id = TitanUtils_Ternary(isChildButton,
+			TitanUtils_GetParentButtonID(self:GetName()),
 			TitanUtils_GetButtonID(self:GetName()));
 	end
-
+
 	if id then
 		local controlFrame = TitanUtils_GetControlFrame(id);
 		local rightClickMenu = _G["TitanPanelRightClickMenu"];
-
+
 		if (button == "LeftButton") then
 			local isControlFrameShown;
 			if (not controlFrame) then
@@ -651,48 +651,48 @@ function TitanPanelButton_OnClick(self, button, isChildButton) -- Used by plugin
 			else
 				isControlFrameShown = true;
 			end
-
-			TitanUtils_CloseAllControlFrames();
-			TitanPanelRightClickMenu_Close();
-
+
+			TitanUtils_CloseAllControlFrames();
+			TitanPanelRightClickMenu_Close();
+
 			local position = TitanUtils_GetWhichBar(id)
 			local scale = TitanPanelGetVar("Scale");
 			if (isControlFrameShown) then
 				local buttonCenter = (self:GetLeft() + self:GetRight()) / 2 * scale;
 				local controlFrameRight = buttonCenter + controlFrame:GetWidth() / 2;
 				local y_off = TITAN_PANEL_BAR_HEIGHT * scale
-				if ( position == TITAN_PANEL_PLACE_TOP ) then
+				if ( position == TITAN_PANEL_PLACE_TOP ) then
 					controlFrame:ClearAllPoints();
-					controlFrame:SetPoint("TOP", "UIParent", "TOPLEFT", buttonCenter, -y_off);
-
+					controlFrame:SetPoint("TOP", "UIParent", "TOPLEFT", buttonCenter, -y_off);
+
 					-- Adjust control frame position if it's off the screen
 					local offscreenX, offscreenY = TitanUtils_GetOffscreen(controlFrame);
 					if ( offscreenX == -1 ) then
 						controlFrame:ClearAllPoints();
-						controlFrame:SetPoint("TOPLEFT", "UIParent", "TOPLEFT", 0, -y_off);
+						controlFrame:SetPoint("TOPLEFT", "UIParent", "TOPLEFT", 0, -y_off);
 					elseif ( offscreenX == 1 ) then
 						controlFrame:ClearAllPoints();
-						controlFrame:SetPoint("TOPRIGHT", "UIParent", "TOPRIGHT", 0, -y_off);
-					end
+						controlFrame:SetPoint("TOPRIGHT", "UIParent", "TOPRIGHT", 0, -y_off);
+					end
 				else
 					controlFrame:ClearAllPoints();
-					controlFrame:SetPoint("BOTTOM", "UIParent", "BOTTOMLEFT", buttonCenter, y_off);
+					controlFrame:SetPoint("BOTTOM", "UIParent", "BOTTOMLEFT", buttonCenter, y_off);

 					-- Adjust control frame position if it's off the screen
 					local offscreenX, offscreenY = TitanUtils_GetOffscreen(controlFrame);
 					if ( offscreenX == -1 ) then
 						controlFrame:ClearAllPoints();
-						controlFrame:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, y_off);
+						controlFrame:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, y_off);
 					elseif ( offscreenX == 1 ) then
 						controlFrame:ClearAllPoints();
-						controlFrame:SetPoint("BOTTOMRIGHT", "UIParent", "BOTTOMRIGHT", 0, y_off);
-					end
+						controlFrame:SetPoint("BOTTOMRIGHT", "UIParent", "BOTTOMRIGHT", 0, y_off);
+					end
 				end
-
+
 				controlFrame:Show();
-			end
+			end
 		elseif (button == "RightButton") then
-			TitanUtils_CloseAllControlFrames();
+			TitanUtils_CloseAllControlFrames();
 			-- Show RightClickMenu anyway
 			TitanPanelRightClickMenu_Close();
 			TitanPanelRightClickMenu_Toggle(self, isChildButton);
@@ -717,25 +717,25 @@ function TitanPanelButton_OnEnter(self, isChildButton) -- Used by plugins
 	local id = nil;
 	-- ensure that the 'self' passed is a valid frame reference
 	if self and self:GetName() then
-		id = TitanUtils_Ternary(isChildButton,
-			TitanUtils_GetParentButtonID(self:GetName()),
+		id = TitanUtils_Ternary(isChildButton,
+			TitanUtils_GetParentButtonID(self:GetName()),
 			TitanUtils_GetButtonID(self:GetName()));
 	end
-
+
 	if (id) then
 		local controlFrame = TitanUtils_GetControlFrame(id);
 		if (controlFrame and controlFrame:IsVisible()) then
 			return;
 		elseif (TitanPanelRightClickMenu_IsVisible()) then
 			return;
-		else
+		else
 			if TITAN_PANEL_MOVING == 0 then
 				TitanPanelButton_SetTooltip(self, id);
 			end
 			if self.isMoving then
-				GameTooltip:Hide();
+				GameTooltip:Hide();
 			end
-		end
+		end
 	end
 end

@@ -752,20 +752,20 @@ function TitanPanelButton_OnLeave(self, isChildButton)
 	local id = nil;
 	-- ensure that the 'self' passed is a valid frame reference
 	if self and self:GetName() then
-		id = TitanUtils_Ternary(isChildButton,
-			TitanUtils_GetParentButtonID(self:GetName()),
+		id = TitanUtils_Ternary(isChildButton,
+			TitanUtils_GetParentButtonID(self:GetName()),
 			TitanUtils_GetButtonID(self:GetName()));
 	end
-
+
 	if (id) then
-		GameTooltip:Hide();
+		GameTooltip:Hide();
 	end

 	if not TitanPanelGetVar("DisableTooltipFont") then
 		-- reset original Tooltip Scale
 		GameTooltip:SetScale(TitanTooltipOrigScale);
 		TitanTooltipScaleSet = 0;
-	end
+	end
 end

 -- local routines for Update Button
@@ -841,16 +841,16 @@ DESC: Set the text width of the given Titan plugin that is text only.
 VAR: id - string name of the plugin
 VAR: setButtonWidth - new width
 NOTE:
-- Titan uses a tolerance setting to prevent endless updating of the text width.
+- Titan uses a tolerance setting to prevent endless updating of the text width.
 :NOTE
 --]]
-local function TitanPanelButton_SetTextButtonWidth(id, setButtonWidth)
+local function TitanPanelButton_SetTextButtonWidth(id, setButtonWidth)
 	if (id) then
 		local button = TitanUtils_GetButton(id);
 		local text = _G[button:GetName()..TITAN_PANEL_TEXT];
-		if ( setButtonWidth
-		or button:GetWidth() == 0
-		or button:GetWidth() - text:GetWidth() > TITAN_PANEL_BUTTON_WIDTH_CHANGE_TOLERANCE
+		if ( setButtonWidth
+		or button:GetWidth() == 0
+		or button:GetWidth() - text:GetWidth() > TITAN_PANEL_BUTTON_WIDTH_CHANGE_TOLERANCE
 		or button:GetWidth() - text:GetWidth() < -TITAN_PANEL_BUTTON_WIDTH_CHANGE_TOLERANCE ) then
 			button:SetWidth(text:GetWidth());
 			TitanPanelButton_Justify();
@@ -866,12 +866,12 @@ NOTE:
 - The plugin is expected to tell Titan what the icon width is in <self>.registry.iconButtonWidth.
 :NOTE
 --]]
-local function TitanPanelButton_SetIconButtonWidth(id)
+local function TitanPanelButton_SetIconButtonWidth(id)
 	if (id) then
 		local button = TitanUtils_GetButton(id);
 		if ( TitanUtils_GetPlugin(id).iconButtonWidth ) then
 			button:SetWidth(TitanUtils_GetPlugin(id).iconButtonWidth);
-		end
+		end
 	end
 end

@@ -884,7 +884,7 @@ NOTE:
 - The plugin is expected to tell Titan what the icon width is in <self>.registry.iconButtonWidth.
 :NOTE
 --]]
-local function TitanPanelButton_SetComboButtonWidth(id, setButtonWidth)
+local function TitanPanelButton_SetComboButtonWidth(id, setButtonWidth)
 	if (id) then
 		local button = TitanUtils_GetButton(id)
 		if not button then return end -- sanity check
@@ -892,7 +892,7 @@ local function TitanPanelButton_SetComboButtonWidth(id, setButtonWidth)
 		local text = _G[button:GetName()..TITAN_PANEL_TEXT];
 		local icon = _G[button:GetName().."Icon"];
 		local iconWidth, iconButtonWidth, newButtonWidth;
-
+
 		-- Get icon button width
 		iconButtonWidth = 0;
 		if ( TitanUtils_GetPlugin(id).iconButtonWidth ) then
@@ -905,24 +905,24 @@ local function TitanPanelButton_SetComboButtonWidth(id, setButtonWidth)
 			icon:Show();
 			text:ClearAllPoints();
 			text:SetPoint("LEFT", icon:GetName(), "RIGHT", 2, 1);
-
+
 			newButtonWidth = text:GetWidth() + iconButtonWidth;
 		else
 			icon:Hide();
 			text:ClearAllPoints();
 			text:SetPoint("LEFT", button:GetName(), "LEFT", 0, 1);
-
+
 			newButtonWidth = text:GetWidth();
 		end
-
-		if ( setButtonWidth
-		or button:GetWidth() == 0
-		or button:GetWidth() - newButtonWidth > TITAN_PANEL_BUTTON_WIDTH_CHANGE_TOLERANCE
-		or button:GetWidth() - newButtonWidth < -TITAN_PANEL_BUTTON_WIDTH_CHANGE_TOLERANCE )
+
+		if ( setButtonWidth
+		or button:GetWidth() == 0
+		or button:GetWidth() - newButtonWidth > TITAN_PANEL_BUTTON_WIDTH_CHANGE_TOLERANCE
+		or button:GetWidth() - newButtonWidth < -TITAN_PANEL_BUTTON_WIDTH_CHANGE_TOLERANCE )
 		then
 			button:SetWidth(newButtonWidth);
 			TitanPanelButton_Justify();
-		end
+		end
 	end
 end

@@ -937,19 +937,19 @@ function TitanPanelButton_UpdateButton(id, setButtonWidth)  -- Used by plugins
 	local plugin = TitanUtils_GetPlugin(id)
 	-- safeguard to avoid errors
 	if not TitanUtils_IsPluginRegistered(id) then return end
-
+
 	if ( TitanPanelButton_IsText(id) ) then
 		-- Update textButton
 		TitanPanelButton_SetButtonText(id);
-		TitanPanelButton_SetTextButtonWidth(id, setButtonWidth);
-
+		TitanPanelButton_SetTextButtonWidth(id, setButtonWidth);
+
 	elseif ( TitanPanelButton_IsIcon(id) ) then
 		-- Update iconButton
 		TitanPanelButton_SetButtonIcon(id, (plugin.iconCoords or nil),
 			(plugin.iconR or nil),(plugin.iconG or nil),(plugin.iconB or nil)
 			);
-		TitanPanelButton_SetIconButtonWidth(id);
-
+		TitanPanelButton_SetIconButtonWidth(id);
+
 	elseif ( TitanPanelButton_IsCombo(id) ) then
 		-- Update comboButton
 		TitanPanelButton_SetButtonText(id);
@@ -982,24 +982,24 @@ VAR: iconR - if given, this is the Red (RBG) setting of the icon
 VAR: iconG - if given, this is the Green (RBG) setting of the icon
 VAR: iconB - if given, this is the Blue (RBG) setting of the icon
 --]]
-function TitanPanelButton_SetButtonIcon(id, iconCoords, iconR, iconG, iconB)
+function TitanPanelButton_SetButtonIcon(id, iconCoords, iconR, iconG, iconB)
 	if (id and TitanUtils_IsPluginRegistered(id)) then
 		local button = TitanUtils_GetButton(id);
 		local icon = _G[button:GetName().."Icon"];
 		local iconTexture = TitanUtils_GetPlugin(id).icon;
 		local iconWidth = TitanUtils_GetPlugin(id).iconWidth;
-
+
 		if (iconTexture) and icon then
 			icon:SetTexture(iconTexture);
 		end
 		if (iconWidth) and icon then
 			icon:SetWidth(iconWidth);
 		end
-
+
 		-- support for iconCoords, iconR, iconG, iconB attributes
 		if iconCoords and icon then
 			icon:SetTexCoord(unpack(iconCoords))
-		end
+		end
 		if iconR and iconG and iconB and icon then
 			icon:SetVertexColor(iconR, iconG, iconB)
 		end
@@ -1020,7 +1020,7 @@ function TitanPanelButton_GetType(id)
 	if (not id) then
 		return;
 	end
-
+
 	local button = TitanUtils_GetButton(id);
 	local type;
 	if button then
@@ -1039,7 +1039,7 @@ function TitanPanelButton_GetType(id)
 	else
 		type = TITAN_PANEL_BUTTON_TYPE_COMBO;
 	end
-
+
 	return type;
 end

diff --git a/TitanBag/TitanBag.lua b/TitanBag/TitanBag.lua
index 086d94a..7259cf3 100644
--- a/TitanBag/TitanBag.lua
+++ b/TitanBag/TitanBag.lua
@@ -15,7 +15,6 @@ local updateTable = {TITAN_BAG_ID, TITAN_PANEL_UPDATE_BUTTON};
 -- ******************************** Variables *******************************
 local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true)
 local AceTimer = LibStub("AceTimer-3.0")
---local DDM = LibStub:GetLibrary("LibUIDropDownMenu-4.0")
 local BagTimer

 local bag_info = {
@@ -162,7 +161,7 @@ end

 -- **************************************************************************
 -- NAME : isBag(id)
--- DESC : Determine if this is a bag. Then check for a profession bag using its id
+-- DESC : Determine if this is a bag. Then check for a profession bag using its id
 -- against the table of known ids.
 -- If it is a profession bag then grab its 'color' in case the user requested it.
 -- VARS : name = text (localized) of the bag to check
@@ -181,11 +180,11 @@ print("isBag:"
 	local is_bag = false
 	local bag_type = "none"
 	local color = {r=0,g=0,b=0} -- black (should never be used...)
-
+
 	if bag_name == nil then
 		-- no bag found, return defaults
 	else
-		local itemID, itemType, itemSubType, itemEquipLoc, icon, itemClassID, itemSubClassID = GetItemInfoInstant(bag_name)
+		local itemID, itemType, itemSubType, itemEquipLoc, icon, itemClassID, itemSubClassID = GetItemInfoInstant(bag_name)
 --[[
 print("isBag:"
 .." ID:'"..tostring(itemID).."'"
@@ -201,7 +200,7 @@ print("isBag:"
 		-- so create a default so routine is successful
 		itemID = itemID or 0
 		is_bag = true -- assume non nil is a valid bag name
-
+
 		if bags[itemID] then
 			bag_type = bags[itemID].style
 			color = bag_info[bag_type].color
@@ -210,7 +209,7 @@ print("isBag:"
 			bag_type = "normal"
 		end
 	end
-
+
 --[[
 TitanDebug("isBag: "..tostring(itemID)
 .." '"..tostring(bag_name).."'"
@@ -337,7 +336,7 @@ function TitanPanelBagButton_GetTooltipText()
 			totalSlots = GetContainerNumSlots(bag) or 0;
 			availableSlots = GetContainerNumFreeSlots(bag) or 0;
 			usedSlots = totalSlots - availableSlots;
-			local itemlink  = bag > 0 and GetInventoryItemLink("player", ContainerIDToInventoryID(bag))
+			local itemlink  = bag > 0 and GetInventoryItemLink("player", ContainerIDToInventoryID(bag))
 				or TitanUtils_GetHighlightText(L["TITAN_BAG_BACKPACK"]).. FONT_COLOR_CODE_CLOSE;

 			if itemlink then
@@ -390,26 +389,23 @@ function TitanPanelRightClickMenu_PrepareBagMenu()
 			info.text = L["TITAN_BAG_MENU_SHOW_USED_SLOTS"];
 			info.func = TitanPanelBagButton_ShowUsedSlots;
 			info.checked = TitanGetVar(TITAN_BAG_ID, "ShowUsedSlots");
---			DDM:UIDropDownMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 			info = {};
 			info.text = L["TITAN_BAG_MENU_SHOW_AVAILABLE_SLOTS"];
 			info.func = TitanPanelBagButton_ShowAvailableSlots;
 			info.checked = TitanUtils_Toggle(TitanGetVar(TITAN_BAG_ID, "ShowUsedSlots"));
---			DDM:UIDropDownMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 			info = {};
 			info.text = L["TITAN_BAG_MENU_SHOW_DETAILED"];
 			info.func = TitanPanelBagButton_ShowDetailedInfo;
 			info.checked = TitanGetVar(TITAN_BAG_ID, "ShowDetailedInfo");
---			DDM:UIDropDownMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 		end
 		return
 	end
-
+
 	-- level 1
 	TitanPanelRightClickMenu_AddTitle(TitanPlugins[TITAN_BAG_ID].menuText);

@@ -418,7 +414,6 @@ function TitanPanelRightClickMenu_PrepareBagMenu()
 	info.text = L["TITAN_PANEL_OPTIONS"];
 	info.value = "Options"
 	info.hasArrow = 1;
---	DDM:UIDropDownMenu_AddButton(info);
 	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	TitanPanelRightClickMenu_AddSpacer();
@@ -426,7 +421,6 @@ function TitanPanelRightClickMenu_PrepareBagMenu()
 	info.text = L["TITAN_BAG_MENU_IGNORE_PROF_BAGS_SLOTS"];
 	info.func = TitanPanelBagButton_ToggleIgnoreProfBagSlots;
 	info.checked = TitanUtils_Toggle(TitanGetVar(TITAN_BAG_ID, "CountProfBagSlots"));
---	DDM:UIDropDownMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	TitanPanelRightClickMenu_AddSpacer();
diff --git a/TitanClock/TitanClock.lua b/TitanClock/TitanClock.lua
index 0ff112f..7bbd89f 100644
--- a/TitanClock/TitanClock.lua
+++ b/TitanClock/TitanClock.lua
@@ -13,7 +13,6 @@ local _G = getfenv(0);
 -- ******************************** Variables *******************************
 local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true)
 local AceTimer = LibStub("AceTimer-3.0")
-local DDM = LibStub:GetLibrary("LibUIDropDownMenu-4.0")
 local ClockTimer = nil;
 local updateTable = {TITAN_CLOCK_ID, TITAN_PANEL_UPDATE_ALL };
 local realmName = GetRealmName();
@@ -199,7 +198,7 @@ function TitanPanelClockButton_GetTime(displaytype, offset)
 		hour = 24 + hour;
 	end

-	-- Calculate the display text based on format 12H/24H
+	-- Calculate the display text based on format 12H/24H
 	if (TitanGetVar(TITAN_CLOCK_ID, "Format") == TITAN_CLOCK_FORMAT_12H) then
 		local isAM;
 		if (hour >= 12) then
@@ -233,7 +232,7 @@ end
 function TitanPanelClockButton_GetTooltipText()
 		local _, clockTimeLocal = TitanPanelClockButton_GetTime ("Local", 0)
 		local _, clockTimeServer = TitanPanelClockButton_GetTime ("Server", 0)
-		local _, clockTimeServerAdjusted = TitanPanelClockButton_GetTime ("Server", TitanGetVar(TITAN_CLOCK_ID, "OffsetHour"))
+		local _, clockTimeServerAdjusted = TitanPanelClockButton_GetTime ("Server", TitanGetVar(TITAN_CLOCK_ID, "OffsetHour"))
 		local clockTimeLocalLabel = L["TITAN_CLOCK_TOOLTIP_LOCAL_TIME"].."\t"..TitanUtils_GetHighlightText(clockTimeLocal)
 		local clockTimeServerLabel = L["TITAN_CLOCK_TOOLTIP_SERVER_TIME"].."\t"..TitanUtils_GetHighlightText(clockTimeServer)
 		local clockTimeServerAdjustedLabel = "";
@@ -290,7 +289,7 @@ function TitanPanelClockControlSlider_OnShow(self)
 	local scale = TitanPanelGetVar("Scale");

 	--TitanPanelClockControlFrame:SetPoint("BOTTOMRIGHT", "TitanPanel" .. TitanUtils_GetWhichBar(TITAN_CLOCK_ID) .."Button", "TOPRIGHT", 0, 0);
-	if (position == TITAN_PANEL_PLACE_TOP) then
+	if (position == TITAN_PANEL_PLACE_TOP) then
 		TitanPanelClockControlFrame:ClearAllPoints();
 		if TitanGetVar(TITAN_CLOCK_ID, "DisplayOnRightSide") == 1 then
 			TitanPanelClockControlFrame:SetPoint("TOPLEFT", TITAN_PANEL_DISPLAY_PREFIX..TitanUtils_GetWhichBar(TITAN_CLOCK_ID), "BOTTOMLEFT", UIParent:GetRight() - TitanPanelClockControlFrame:GetWidth(), -4);
@@ -370,7 +369,7 @@ function TitanPanelClockControlSlider_OnValueChanged(self, a1)
 end

 -- **************************************************************************
--- NAME : TitanPanelClockControlCheckButton_OnShow()
+-- NAME : TitanPanelClockControlCheckButton_OnShow()
 -- DESC : Define clock hour options
 -- **************************************************************************
 function TitanPanelClockControlCheckButton_OnShow(self)
@@ -443,7 +442,7 @@ end
 function TitanPanelClockControlFrame_OnLoad(self)
 	_G[self:GetName().."Title"]:SetText(L["TITAN_CLOCK_CONTROL_TITLE"]);
 --[[
-Blizzard decided to remove direct Backdrop API in 9.0 (Shadowlands)
+Blizzard decided to remove direct Backdrop API in 9.0 (Shadowlands)
 so inherit the template (XML)
 and set the values in the code (Lua)

@@ -472,31 +471,31 @@ function TitanPanelRightClickMenu_PrepareClockMenu()
 	info.text = L["TITAN_CLOCK_MENU_LOCAL_TIME"];
 	info.func = function() TitanSetVar(TITAN_CLOCK_ID, "TimeMode", "Local") TitanPanelButton_UpdateButton(TITAN_CLOCK_ID) end
 	info.checked = function() return TitanGetVar(TITAN_CLOCK_ID, "TimeMode") == "Local" end
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	info = {};
 	info.text = L["TITAN_CLOCK_MENU_SERVER_TIME"];
 	info.func = function() TitanSetVar(TITAN_CLOCK_ID, "TimeMode", "Server") TitanPanelButton_UpdateButton(TITAN_CLOCK_ID) end
 	info.checked = function() return TitanGetVar(TITAN_CLOCK_ID, "TimeMode") == "Server" end
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	info = {};
 	info.text = L["TITAN_CLOCK_MENU_SERVER_ADJUSTED_TIME"];
 	info.func = function() TitanSetVar(TITAN_CLOCK_ID, "TimeMode", "ServerAdjusted") TitanPanelButton_UpdateButton(TITAN_CLOCK_ID) end
 	info.checked = function() return TitanGetVar(TITAN_CLOCK_ID, "TimeMode") == "ServerAdjusted" end
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	info = {};
 	info.text = L["TITAN_CLOCK_MENU_SERVER_TIME"].." & "..L["TITAN_CLOCK_MENU_LOCAL_TIME"]
 	info.func = function() TitanSetVar(TITAN_CLOCK_ID, "TimeMode", "ServerLocal") TitanPanelButton_UpdateButton(TITAN_CLOCK_ID) end
 	info.checked = function() return TitanGetVar(TITAN_CLOCK_ID, "TimeMode") == "ServerLocal" end
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	info = {};
 	info.text = L["TITAN_CLOCK_MENU_SERVER_ADJUSTED_TIME"].." & "..L["TITAN_CLOCK_MENU_LOCAL_TIME"]
 	info.func = function() TitanSetVar(TITAN_CLOCK_ID, "TimeMode", "ServerAdjustedLocal") TitanPanelButton_UpdateButton(TITAN_CLOCK_ID) end
 	info.checked = function() return TitanGetVar(TITAN_CLOCK_ID, "TimeMode") == "ServerAdjustedLocal" end
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	TitanPanelRightClickMenu_AddSpacer();

@@ -505,20 +504,20 @@ function TitanPanelRightClickMenu_PrepareClockMenu()
 	info.func = TitanPanelClockButton_ToggleMapTime;
 	info.checked = TitanGetVar(TITAN_CLOCK_ID, "HideMapTime");
 	info.keepShownOnClick = 1;
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	info = {};
 	info.text = L["TITAN_CLOCK_MENU_HIDE_CALENDAR"];
 	info.func = TitanPanelClockButton_ToggleGameTimeFrameShown;
 	info.checked = TitanGetVar(TITAN_CLOCK_ID, "HideGameTimeMinimap");
 	info.keepShownOnClick = 1;
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	info = {};
 	info.text = L["TITAN_CLOCK_MENU_DISPLAY_ON_RIGHT_SIDE"];
 	info.func = TitanPanelClockButton_ToggleRightSideDisplay;
 	info.checked = TitanGetVar(TITAN_CLOCK_ID, "DisplayOnRightSide");
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	TitanPanelRightClickMenu_AddToggleLabelText(TITAN_CLOCK_ID);
 	TitanPanelRightClickMenu_AddToggleColoredText(TITAN_CLOCK_ID);
diff --git a/TitanGold/TitanGold.lua b/TitanGold/TitanGold.lua
index b02ae8c..b70d61f 100644
--- a/TitanGold/TitanGold.lua
+++ b/TitanGold/TitanGold.lua
@@ -22,7 +22,6 @@ local GOLD_PERHOUR_STATUS;
 local GOLD_STARTINGGOLD;
 local GOLD_SESSIONSTART;
 local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true)
-local DDM = LibStub:GetLibrary("LibUIDropDownMenu-4.0")
 local TitanGold = LibStub("AceAddon-3.0"):NewAddon("TitanGold", "AceTimer-3.0")
 local GoldTimer = nil;
 local _G = getfenv(0);
@@ -102,7 +101,7 @@ local function NiceCash(value, show_zero, show_neg)
 	if amount < 0 then
 		amount = amount * -1
 	end
-
+
 	if amount == 0 then
 		if show_zero then
 			copper_str = cc..(amount or "?")..c_lab..""..FONT_COLOR_CODE_CLOSE
@@ -125,7 +124,7 @@ local function NiceCash(value, show_zero, show_neg)
 			copper_str = cc..(copper or "?")..c_lab..""..FONT_COLOR_CODE_CLOSE
 		end
 	end
-
+
 	if TitanGetVar(TITAN_GOLD_ID, "ShowGoldOnly") then
 		silver_str = ""
 		copper_str = ""
@@ -188,11 +187,11 @@ function TitanPanelGoldButton_OnLoad(self)
 			ViewAll = true,
 			ShowIcon = true,
 			ShowLabelText = false,
-			ShowColoredText = true,
-			UseSeperatorComma = true,
-			UseSeperatorPeriod = false,
-			MergeServers = false,
-			SeparateServers = true,
+			ShowColoredText = true,
+			UseSeperatorComma = true,
+			UseSeperatorPeriod = false,
+			MergeServers = false,
+			SeparateServers = true,
 			gold = { total = "112233", neg = false },
 		}
 	};
@@ -265,7 +264,7 @@ function TitanPanelGoldButton_GetTooltipText()
 		local show_labels = (TitanGetVar(TITAN_GOLD_ID, "ShowCoinLabels")
 			or TitanGetVar(TITAN_GOLD_ID, "ShowCoinIcons"))

-		-- This next section will sort the array based on user preference
+		-- This next section will sort the array based on user preference
 		-- either by name, or by gold amount descending.

 		local GoldSaveSorted = {};
@@ -284,7 +283,7 @@ function TitanPanelGoldButton_GetTooltipText()
 			table.sort(GoldSaveSorted, function (key1, key2) return GoldSave[key1].gold > GoldSave[key2].gold end)
 		end

-		for i = 1, getn(GoldSaveSorted) do
+		for i = 1, getn(GoldSaveSorted) do
 			character, charserver = string.match(GoldSaveSorted[i], '(.*)_(.*)');
 			if (character) then
 				if (charserver == server) then
@@ -306,7 +305,7 @@ function TitanPanelGoldButton_GetTooltipText()
 		local show_labels = (TitanGetVar(TITAN_GOLD_ID, "ShowCoinLabels")
 			or TitanGetVar(TITAN_GOLD_ID, "ShowCoinIcons"))

-		-- This next section will sort the array based on user preference
+		-- This next section will sort the array based on user preference
 		-- either by name, or by gold amount descending.

 		local GoldSaveSorted = {};
@@ -329,7 +328,7 @@ function TitanPanelGoldButton_GetTooltipText()
 			table.sort(GoldSaveSorted, function (key1, key2) return GoldSave[key1].gold > GoldSave[key2].gold end)
 		end

-		for i = 1, getn(GoldSaveSorted) do
+		for i = 1, getn(GoldSaveSorted) do
 			character, charserver = string.match(GoldSaveSorted[i], '(.*)_(.*)');
 			local _, char_faction = string.match(charserver, '(.*)::(.*)')
 			if (charserver) then
@@ -438,7 +437,7 @@ function TitanPanelGoldButton_FindGold()
 	end

 	ret_str = NiceCash(ttlgold, true, false)
-
+
 	return L["TITAN_GOLD_MENU_TEXT"]..": "..FONT_COLOR_CODE_CLOSE, ret_str
 end

@@ -508,7 +507,7 @@ local function ShowMenuButtons(faction)
 				GoldSave[rementry].show = not GoldSave[rementry].show;
 				TitanPanelButton_UpdateButton(TITAN_GOLD_ID)
 			end
-			DDM:UIDropDownMenu_AddButton(info, L_UIDROPDOWNMENU_MENU_LEVEL);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 		end
 	end
 end
@@ -534,7 +533,7 @@ local function DeleteMenuButtons(faction)
 			else
 				info.disabled = nil;
 			end
-			DDM:UIDropDownMenu_AddButton(info, L_UIDROPDOWNMENU_MENU_LEVEL);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 		end
 	end
 end
@@ -627,21 +626,23 @@ function TitanPanelRightClickMenu_PrepareGoldMenu()
 		info.func = function()
 			ShowProperLabels("ShowCoinNone")
 		end
-		DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
+
 		local info = {};
 		info.text = L["TITAN_GOLD_COIN_LABELS"];
 		info.checked = TitanGetVar(TITAN_GOLD_ID, "ShowCoinLabels");
 		info.func = function()
 			ShowProperLabels("ShowCoinLabels")
 		end
-		DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
+
 		local info = {};
 		info.text = L["TITAN_GOLD_COIN_ICONS"];
 		info.checked = TitanGetVar(TITAN_GOLD_ID, "ShowCoinIcons");
 		info.func = function()
 			ShowProperLabels("ShowCoinIcons")
 		end
-		DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 		TitanPanelRightClickMenu_AddSpacer();

@@ -651,14 +652,15 @@ function TitanPanelRightClickMenu_PrepareGoldMenu()
 		info.func = function()
 			Seperator("UseSeperatorComma")
 		end
-		DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
+
 		local info = {};
 		info.text = L["TITAN_USE_PERIOD"];
 		info.checked = TitanGetVar(TITAN_GOLD_ID, "UseSeperatorPeriod");
 		info.func = function()
 			Seperator("UseSeperatorPeriod")
 		end
-		DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 		TitanPanelRightClickMenu_AddSpacer();

@@ -668,14 +670,15 @@ function TitanPanelRightClickMenu_PrepareGoldMenu()
 		info.func = function()
 			Merger("MergeServers")
 		end
-		DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
+
 		local info = {};
 		info.text = L["TITAN_GOLD_SEPARATE"];
 		info.checked = TitanGetVar(TITAN_GOLD_ID, "SeparateServers");
 		info.func = function()
 			Merger("SeparateServers")
 		end
-		DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 		TitanPanelRightClickMenu_AddSpacer();

@@ -686,7 +689,7 @@ function TitanPanelRightClickMenu_PrepareGoldMenu()
 			TitanToggleVar(TITAN_GOLD_ID, "ShowGoldOnly");
 			TitanPanelButton_UpdateButton(TITAN_GOLD_ID);
 		end
-		DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 		-- A blank line in the menu
 		TitanPanelRightClickMenu_AddSpacer();
@@ -697,7 +700,7 @@ function TitanPanelRightClickMenu_PrepareGoldMenu()
 		info.text = L["TITAN_GOLD_SHOW_PLAYER"];
 		info.value = "ToonShow";
 		info.hasArrow = 1;
-		DDM:UIDropDownMenu_AddButton(info);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 		-- Delete toon
 		info = {};
@@ -705,7 +708,7 @@ function TitanPanelRightClickMenu_PrepareGoldMenu()
 		info.text = L["TITAN_GOLD_DELETE_PLAYER"];
 		info.value = "ToonDelete";
 		info.hasArrow = 1;
-		DDM:UIDropDownMenu_AddButton(info);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 		-- A blank line in the menu
 		TitanPanelRightClickMenu_AddSpacer();
@@ -715,7 +718,7 @@ function TitanPanelRightClickMenu_PrepareGoldMenu()
 		info.notCheckable = true
 		info.text = L["TITAN_GOLD_CLEAR_DATA_TEXT"];
 		info.func = TitanGold_ClearDB;
-		DDM:UIDropDownMenu_AddButton(info);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 		TitanPanelRightClickMenu_AddCommand(L["TITAN_GOLD_RESET_SESS_TEXT"], TITAN_GOLD_ID, "TitanPanelGoldButton_ResetSession");

@@ -736,26 +739,26 @@ function TitanPanelRightClickMenu_PrepareGoldMenu()
 		info.text = L["TITAN_GOLD_FACTION_PLAYER_ALLY"];
 		info.value = "DeleteAlliance";
 		info.hasArrow = 1;
-		DDM:UIDropDownMenu_AddButton(info, L_UIDROPDOWNMENU_MENU_LEVEL);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 		info.text = L["TITAN_GOLD_FACTION_PLAYER_HORDE"];
 		info.value = "DeleteHorde";
 		info.hasArrow = 1;
-		DDM:UIDropDownMenu_AddButton(info, L_UIDROPDOWNMENU_MENU_LEVEL);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 	elseif L_UIDROPDOWNMENU_MENU_LEVEL == 2 and L_UIDROPDOWNMENU_MENU_VALUE == "ToonShow" then
 		local info = {};
 		info.notCheckable = true
 		info.text = L["TITAN_GOLD_FACTION_PLAYER_ALLY"];
 		info.value = "ShowAlliance";
 		info.hasArrow = 1;
-		DDM:UIDropDownMenu_AddButton(info, L_UIDROPDOWNMENU_MENU_LEVEL);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 		info.text = L["TITAN_GOLD_FACTION_PLAYER_HORDE"];
 		info.value = "ShowHorde";
 		info.hasArrow = 1;
-		DDM:UIDropDownMenu_AddButton(info, L_UIDROPDOWNMENU_MENU_LEVEL);
+		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 	end
-
+
 	if L_UIDROPDOWNMENU_MENU_LEVEL == 3 and L_UIDROPDOWNMENU_MENU_VALUE == "DeleteAlliance" then
 		DeleteMenuButtons("Alliance")
 	elseif L_UIDROPDOWNMENU_MENU_LEVEL == 3 and L_UIDROPDOWNMENU_MENU_VALUE == "DeleteHorde" then
@@ -860,7 +863,7 @@ function TitanGold_ClearDB()
 		OnAccept = function(self)
 			local frame = _G["TitanPanelGoldButton"]
 			TitanPanelGoldButton_ClearData(frame)
-		end,
+		end,
 		showAlert = 1,
 		timeout = 0,
 		whileDead = 1,
diff --git a/TitanLocation/TitanLocation.lua b/TitanLocation/TitanLocation.lua
index 2c41345..2e2f504 100755
--- a/TitanLocation/TitanLocation.lua
+++ b/TitanLocation/TitanLocation.lua
@@ -15,7 +15,6 @@ local updateTable = {TITAN_LOCATION_ID, TITAN_PANEL_UPDATE_BUTTON};
 -- ******************************** Variables *******************************
 local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true);
 local AceTimer = LibStub("AceTimer-3.0");
---local DDM = LibStub:GetLibrary("LibUIDropDownMenu-4.0")
 local LocationTimer = nil;
 -- ******************************** Functions *******************************

@@ -24,7 +23,7 @@ local LocationTimer = nil;
 -- DESC : Registers the plugin upon it loading
 -- **************************************************************************
 function TitanPanelLocationButton_OnLoad(self)
-	self.registry = {
+	self.registry = {
 		id = TITAN_LOCATION_ID,
 		category = "Built-ins",
 		version = TITAN_VERSION,
@@ -61,7 +60,7 @@ function TitanPanelLocationButton_OnLoad(self)
 	self:RegisterEvent("ZONE_CHANGED_INDOORS");
 	self:RegisterEvent("ZONE_CHANGED_NEW_AREA");
 	self:RegisterEvent("PLAYER_ENTERING_WORLD");
-
+
 	TitanPanelLocation_CreateMapFrames();
 end

@@ -223,9 +222,9 @@ end
 -- NAME : TitanPanelLocation_HandleUpdater()
 -- DESC : Check to see if you are inside an instance
 -- **************************************************************************
-function TitanPanelLocation_HandleUpdater()
+function TitanPanelLocation_HandleUpdater()
 	if TitanPanelLocationButton:IsVisible() and not LocationTimer then
-		LocationTimer = AceTimer.ScheduleRepeatingTimer("TitanPanelLocation", TitanPanelLocationButton_CheckForUpdate, 0.5)
+		LocationTimer = AceTimer.ScheduleRepeatingTimer("TitanPanelLocation", TitanPanelLocationButton_CheckForUpdate, 0.5)
 	end
 end

@@ -313,7 +312,7 @@ function TitanPanelRightClickMenu_PrepareLocationMenu()
 			info.checked = TitanGetVar(TITAN_LOCATION_ID, "ShowLocOnMiniMap");
 			info.disabled = InCombatLockdown()
 			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
-
+
 			info = {};
 			info.text = L["TITAN_LOCATION_MENU_UPDATE_WORLD_MAP"];
 			info.func = function()
@@ -360,7 +359,7 @@ function TitanPanelRightClickMenu_PrepareLocationMenu()
 		end
 		return
 	end
-
+
 	-- level 1
 	TitanPanelRightClickMenu_AddTitle(TitanPlugins[TITAN_LOCATION_ID].menuText);

@@ -478,7 +477,7 @@ function TitanMapFrame_OnUpdate(self, elapsed)
 		TitanMapPlayerLocation:SetText(format(L["TITAN_LOCATION_MAP_PLAYER_COORDS_TEXT"], TitanUtils_GetHighlightText(playerLocationText)));

 	-- Determine the text to show for cursor coords
-
+
 		-- use the global cursor position to confirm the cursor is over the map, but then use a normalized cursor position to account for map zooming
 		local cx, cy = GetCursorPosition();
 		local left, bottom, width, height = WorldMapFrame.ScrollContainer:GetScaledRect();
@@ -498,13 +497,13 @@ function TitanMapFrame_OnUpdate(self, elapsed)
 			cursorLocationText = format(L["TITAN_LOCATION_FORMAT3"], 100 * cx, 100 * cy);
 		end
 		if (TitanGetVar(TITAN_LOCATION_ID, "ShowCoordsOnMap")) then
-			TitanMapCursorLocation:SetText(format(L["TITAN_LOCATION_MAP_CURSOR_COORDS_TEXT"],
+			TitanMapCursorLocation:SetText(format(L["TITAN_LOCATION_MAP_CURSOR_COORDS_TEXT"],
 				TitanUtils_GetHighlightText(cursorLocationText)));
 		else
 			TitanMapPlayerLocation:SetText("");
 			TitanMapCursorLocation:SetText("");
 		end
-
+
 end

 -- **************************************************************************
@@ -536,12 +535,12 @@ local TPL_CMF_IsFirstTime = true;
 function TitanPanelLocation_CreateMapFrames()
 	if (TPL_CMF_IsFirstTime) then
 		TPL_CMF_IsFirstTime = false;
-
+
 		-- avoid an addon conflict
 		if (_G["CT_MapMod"]) then
 			return;
 		end
-
+
 		-- create the frame to hold the font strings, and simulate an "OnUpdate" script handler using C_Timer for efficiency
 		local frame = CreateFrame("FRAME", "TitanMapFrame", WorldMapFrame.BorderFrame)
 		local function updateFunc()
@@ -565,13 +564,13 @@ function TitanPanelLocation_CreateMapFrames()
 			cursortext:ClearAllPoints();
 			playertext:SetPoint("TOPRIGHT", WorldMapFrame, "TOPRIGHT", -10, -28)
 			cursortext:SetPoint("TOPRIGHT", WorldMapFrame, "TOPRIGHT", -10, -43)
-		end);
+		end);
 		hooksecurefunc(WorldMapFrame.BorderFrame.MaximizeMinimizeFrame, "Minimize", function()
 			playertext:ClearAllPoints();
 			cursortext:ClearAllPoints();
 			playertext:SetPoint("TOPRIGHT", WorldMapFrame, "TOPRIGHT", -50, -5)
 			cursortext:SetPoint("TOPLEFT", WorldMapFrame, "TOPLEFT", 95, -5)
 		end);
-
+
 	end
 end
diff --git a/TitanLootType/TitanLootType.lua b/TitanLootType/TitanLootType.lua
index 1ad1fb7..dc2dda4 100644
--- a/TitanLootType/TitanLootType.lua
+++ b/TitanLootType/TitanLootType.lua
@@ -8,7 +8,6 @@
 local TITAN_LOOTTYPE_ID = "LootType";
 local _G = getfenv(0);
 local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true)
-local DDM = LibStub:GetLibrary("LibUIDropDownMenu-4.0")
 local TitanLootMethod = {};
 local updateTable = {TITAN_LOOTTYPE_ID, TITAN_PANEL_UPDATE_ALL};
 TitanLootMethod["freeforall"] = {text = L["TITAN_LOOTTYPE_FREE_FOR_ALL"]};
@@ -232,7 +231,7 @@ end
 function TitanPanelRightClickMenu_PrepareLootTypeMenu()
 	local info = {};
 	if _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 and _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "RandomRoll" then
-		info = {};
+		info = {};
 		info.text = "100";
 		info.value = 100;
 		info.func = TitanPanelLootType_Random100;
diff --git a/TitanPerformance/TitanPerformance.lua b/TitanPerformance/TitanPerformance.lua
index 2db4a39..91e8daa 100644
--- a/TitanPerformance/TitanPerformance.lua
+++ b/TitanPerformance/TitanPerformance.lua
@@ -10,7 +10,7 @@ local TITAN_PERF_FRAME_SHOW_TIME = 0.5;
 local updateTable = {TITAN_PERFORMANCE_ID, TITAN_PANEL_UPDATE_ALL};

 -- The LibUIDropDownMenu lib is used over the Blizzard frame
-local drop_down = "L_DropDownList"
+local drop_down = "L_DropDownList"

 local APP_MIN = 1
 local APP_MAX = 40
@@ -35,13 +35,12 @@ local topAddOns;
 local memUsageSinceGC = {};
 local counter = 1; --counter for active addons
 local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true)
-local DDM = LibStub:GetLibrary("LibUIDropDownMenu-4.0")
 local AceTimer = LibStub("AceTimer-3.0")
 local PerfTimer = nil;
 -- ******************************** Functions *******************************
 local function CalcAppNum(val)
 	local new_val = 1 -- always monitor at least one
-
+
 	if val == nil or val < APP_MIN then
 		-- keep the default min
 	else
@@ -152,7 +151,7 @@ I also added NumOfAddons below the TitanDebug to avoid the problem later on.
 end

 -- **************************************************************************
--- NAME : TitanPanelPerformanceButton_GetButtonText(id)
+-- NAME : TitanPanelPerformanceButton_GetButtonText(id)
 -- DESC : Calculate performance based logic for button text
 -- VARS : id = button ID
 -- **************************************************************************
@@ -302,7 +301,7 @@ local function Stats_UpdateAddonsList(self, watchingCPU)
 				local diff = addon.value/total * 100;
 				local incrate = "";
 				incrate = format("(%.2f%%)", diff);
-				if (showAddonRate == 1) then
+				if (showAddonRate == 1) then
 					GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format("%.3f",addon.value)..L["TITAN_MILLISECOND"].." "..GREEN_FONT_COLOR_CODE..incrate);
 				else
 					GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format("%.3f",addon.value)..L["TITAN_MILLISECOND"]);
@@ -315,7 +314,7 @@ local function Stats_UpdateAddonsList(self, watchingCPU)
 				local incrate = "";
 				if diff > 0 then
 					incrate = format("(+%.2f) "..L["TITAN_KILOBYTES_PER_SECOND"], diff);
-				end
+				end
 				if (showAddonRate == 1) then
 					if TitanGetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType") == 1 then
 					GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format(L["TITAN_MEMORY_FORMAT"], addon.value/1000).." "..GREEN_FONT_COLOR_CODE..incrate)
@@ -465,7 +464,7 @@ function TitanPanelRightClickMenu_PreparePerformanceMenu()
 			end
 			info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowFPS");
 			info.keepShownOnClick = 1;
-			DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 			local temptable = {TITAN_PERFORMANCE_ID, "ShowLatency"};
 			info = {};
@@ -476,7 +475,7 @@ function TitanPanelRightClickMenu_PreparePerformanceMenu()
 			end
 			info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowLatency");
 			info.keepShownOnClick = 1;
-			DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 			local temptable = {TITAN_PERFORMANCE_ID, "ShowWorldLatency"};
 			info = {};
@@ -487,7 +486,7 @@ function TitanPanelRightClickMenu_PreparePerformanceMenu()
 			end
 			info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowWorldLatency");
 			info.keepShownOnClick = 1;
-			DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 			local temptable = {TITAN_PERFORMANCE_ID, "ShowMemory"};
 			info = {};
@@ -498,7 +497,7 @@ function TitanPanelRightClickMenu_PreparePerformanceMenu()
 			end
 			info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowMemory");
 			info.keepShownOnClick = 1;
-			DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 		end

 		if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "AddonUsage" then
@@ -513,7 +512,7 @@ function TitanPanelRightClickMenu_PreparePerformanceMenu()
 			end
 			info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowAddonMemory");
 			info.keepShownOnClick = 1;
-			DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 			local temptable = {TITAN_PERFORMANCE_ID, "ShowAddonIncRate"};
 			info = {};
@@ -524,14 +523,14 @@ function TitanPanelRightClickMenu_PreparePerformanceMenu()
 			end
 			info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowAddonIncRate");
 			info.keepShownOnClick = 1;
-			DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 			info = {};
 			info.notCheckable = true
 			info.text = L["TITAN_PERFORMANCE_CONTROL_TOOLTIP"]..LIGHTYELLOW_FONT_COLOR_CODE..tostring(TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons"));
 			info.value = "AddonControlFrame"
 			info.hasArrow = 1;
-			DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 		end

 		if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "AddonMemoryFormat" then
@@ -541,13 +540,13 @@ function TitanPanelRightClickMenu_PreparePerformanceMenu()
 			info.checked = function() if TitanGetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType") == 1 then return true else return nil end
 			end
 			info.func = function() TitanSetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType", 1) end
-			DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 			info = {};
 			info.text = L["TITAN_MEMORY_KBMB_LABEL"];
 			info.checked = function() if TitanGetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType") == 2 then return true else return nil end
 			end
 			info.func = function() TitanSetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType", 2) end
-			DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+			TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 		end

 		if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "CPUProfiling" then
@@ -556,13 +555,13 @@ function TitanPanelRightClickMenu_PreparePerformanceMenu()
 				info = {};
 				info.text = L["TITAN_PERFORMANCE_MENU_CPUPROF_LABEL_OFF"]..GREEN_FONT_COLOR_CODE..L["TITAN_PANEL_MENU_RELOADUI"];
 				info.func = function() SetCVar("scriptProfile", "0", 1) ReloadUI() end
-				DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+				TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 			else
 				TitanPanelRightClickMenu_AddTitle(L["TITAN_PERFORMANCE_MENU_CPUPROF_LABEL"]..": "..RED_FONT_COLOR_CODE..L["TITAN_PANEL_MENU_DISABLED"], _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
 				info = {};
 				info.text = L["TITAN_PERFORMANCE_MENU_CPUPROF_LABEL_ON"]..GREEN_FONT_COLOR_CODE..L["TITAN_PANEL_MENU_RELOADUI"];
 				info.func = function() SetCVar("scriptProfile", "1", 1) ReloadUI() end
-				DDM:UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
+				TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
 			end
 		end
 		return
@@ -576,28 +575,28 @@ function TitanPanelRightClickMenu_PreparePerformanceMenu()
 	info.text = L["TITAN_PANEL_OPTIONS"];
 	info.value = "Options"
 	info.hasArrow = 1;
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	info = {};
 	info.notCheckable = true
 	info.text = L["TITAN_PERFORMANCE_ADDONS"];
 	info.value = "AddonUsage"
 	info.hasArrow = 1;
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	info = {};
 	info.notCheckable = true
 	info.text = L["TITAN_PERFORMANCE_ADDON_MEM_FORMAT_LABEL"];
 	info.value = "AddonMemoryFormat"
 	info.hasArrow = 1;
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	info = {};
 	info.notCheckable = true
 	info.text = L["TITAN_PERFORMANCE_MENU_CPUPROF_LABEL"];
 	info.value = "CPUProfiling"
 	info.hasArrow = 1;
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	TitanPanelRightClickMenu_AddSpacer();
 	TitanPanelRightClickMenu_AddToggleIcon(TITAN_PERFORMANCE_ID);
@@ -719,7 +718,7 @@ end
 -- NAME : TitanPanelPerfControlSlider_OnShow()
 -- DESC : Display slider tooltip
 -- **************************************************************************
-function TitanPanelPerfControlSlider_OnShow(self)
+function TitanPanelPerfControlSlider_OnShow(self)
 	_G[self:GetName().."Text"]:SetText(TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons"));
 	_G[self:GetName().."High"]:SetText(L["TITAN_PERFORMANCE_CONTROL_LOW"]);
 	_G[self:GetName().."Low"]:SetText(L["TITAN_PERFORMANCE_CONTROL_HIGH"]);
@@ -756,7 +755,7 @@ end
 -- **************************************************************************
 function TitanPanelPerfControlSlider_OnValueChanged(self, a1)
 	local val = CalcAppNum(self:GetValue()) -- grab new value
-
+
 --[[
 TitanDebug("Slider_OnValueChanged:"
 .." : "..(self:GetValue() or "?")
@@ -811,7 +810,7 @@ end
 function TitanPanelPerfControlFrame_OnLoad(self)
 	_G[self:GetName().."Title"]:SetText(L["TITAN_PERFORMANCE_CONTROL_TITLE"]);
 --[[
-Blizzard decided to remove direct Backdrop API in 9.0 (Shadowlands)
+Blizzard decided to remove direct Backdrop API in 9.0 (Shadowlands)
 so inherit the template (XML)
 and set the values in the code (Lua)

@@ -826,9 +825,9 @@ end
 -- VARS : elapsed = <research>
 -- **************************************************************************
 function TitanPanelPerfControlFrame_OnUpdate(self, elapsed)
-	if not MouseIsOver(_G["TitanPanelPerfControlFrame"])
-	and not MouseIsOver (_G[drop_down.."2Button4"])
+	if not MouseIsOver(_G["TitanPanelPerfControlFrame"])
+	and not MouseIsOver (_G[drop_down.."2Button4"])
 	and not MouseIsOver (_G[drop_down.."2Button4ExpandArrow"]) then
 		TitanUtils_CheckFrameCounting(self, elapsed);
 	end
-end
\ No newline at end of file
+end
diff --git a/TitanRepair/TitanRepair.lua b/TitanRepair/TitanRepair.lua
index 4557e11..fb612f0 100644
--- a/TitanRepair/TitanRepair.lua
+++ b/TitanRepair/TitanRepair.lua
@@ -7,7 +7,6 @@
 -- ******************************** Constants *******************************
 local TITAN_REPAIR_ID = "Repair";
 local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true)
---local DDM = LibStub:GetLibrary("LibUIDropDownMenu-4.0")
 local TitanRepairModule = LibStub("AceAddon-3.0"):NewAddon("TitanRepair", "AceHook-3.0", "AceTimer-3.0")
 local _G = getfenv(0);
 local TPR = TitanRepairModule
@@ -1540,4 +1539,4 @@ end

 -- Hooks
 --TitanRepairModule:SecureHook("DurabilityFrame_SetAlerts", TitanRepair_DurabilityFrame)
-TitanRepairModule:SecureHook(DurabilityFrame, "Show", function() TitanRepair_DurabilityFrame(true) end)
\ No newline at end of file
+TitanRepairModule:SecureHook(DurabilityFrame, "Show", function() TitanRepair_DurabilityFrame(true) end)
diff --git a/TitanVolume/TitanVolume.lua b/TitanVolume/TitanVolume.lua
index a0e221d..8434058 100644
--- a/TitanVolume/TitanVolume.lua
+++ b/TitanVolume/TitanVolume.lua
@@ -9,18 +9,17 @@ local TITAN_VOLUME_FRAME_SHOW_TIME = 0.5;
 local TITAN_VOLUME_ARTWORK_PATH = "Interface\\AddOns\\TitanVolume\\Artwork\\";
 local _G = getfenv(0);
 local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true)
-local DDM = LibStub:GetLibrary("LibUIDropDownMenu-4.0")

 function TitanPanelVolumeButton_OnLoad(self)
-	self.registry = {
+	self.registry = {
 		id = TITAN_VOLUME_ID,
 		category = "Built-ins",
 		version = TITAN_VERSION,
 		menuText = L["TITAN_VOLUME_MENU_TEXT"],
-		tooltipTitle = L["TITAN_VOLUME_TOOLTIP"],
+		tooltipTitle = VOLUME, --L["TITAN_VOLUME_TOOLTIP"],
 		tooltipTextFunction = "TitanPanelVolumeButton_GetTooltipText",
 		iconWidth = 32,
-		iconButtonWidth = 18,
+		iconButtonWidth = 18,
 		savedVariables = {
 			OverrideBlizzSettings = false,
 			VolumeMaster = 1,
@@ -32,8 +31,8 @@ function TitanPanelVolumeButton_OnLoad(self)
 --			VolumeInboundChat = 1,
 			DisplayOnRightSide = 1,
 		}
-	};
-	self:RegisterEvent("PLAYER_ENTERING_WORLD");
+	};
+	self:RegisterEvent("PLAYER_ENTERING_WORLD");
 end

 function TitanPanelVolumeButton_OnEvent(self, event, a1, ...)
@@ -46,7 +45,7 @@ function TitanPanelVolumeButton_OnEvent(self, event, a1, ...)
 		if TitanGetVar(TITAN_VOLUME_ID, "VolumeMusic") then SetCVar("Sound_MusicVolume", TitanGetVar(TITAN_VOLUME_ID, "VolumeMusic")) end
 --		if TitanGetVar(TITAN_VOLUME_ID, "VolumeOutboundChat") then SetCVar("OutboundChatVolume", TitanGetVar(TITAN_VOLUME_ID, "VolumeOutboundChat")) end
 --		if TitanGetVar(TITAN_VOLUME_ID, "VolumeInboundChat") then SetCVar("InboundChatVolume", TitanGetVar(TITAN_VOLUME_ID, "VolumeInboundChat")) end
-	end
+	end
 end

 function TitanPanelVolumeButton_OnShow()
@@ -62,12 +61,12 @@ function TitanPanelVolumeButton_OnEnter()
 	TitanPanelMusicVolumeControlSlider:SetValue(1 - GetCVar("Sound_MusicVolume"));
 --	TitanPanelMicrophoneVolumeControlSlider:SetValue(1 - GetCVar("OutboundChatVolume"));
 --	TitanPanelSpeakerVolumeControlSlider:SetValue(1 - GetCVar("InboundChatVolume"));
-	TitanPanelVolume_SetVolumeIcon();
+	TitanPanelVolume_SetVolumeIcon();
 end

--- 'Master'
+-- 'Master'
 function TitanPanelMasterVolumeControlSlider_OnEnter(self)
-	self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(GetCVar("Sound_MasterVolume")));
+	self.tooltipText = TitanOptionSlider_TooltipText(OPTION_TOOLTIP_MASTER_VOLUME, TitanPanelVolume_GetVolumeText(GetCVar("Sound_MasterVolume")));
 	GameTooltip:SetOwner(self, "ANCHOR_BOTTOMLEFT");
 	GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
 	TitanUtils_StopFrameCounting(self:GetParent());
@@ -81,37 +80,37 @@ end

 function TitanPanelMasterVolumeControlSlider_OnShow(self)
 	_G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(GetCVar("Sound_MasterVolume")));
-	_G[self:GetName().."High"]:SetText(L["TITAN_VOLUME_CONTROL_LOW"]);
-	_G[self:GetName().."Low"]:SetText(L["TITAN_VOLUME_CONTROL_HIGH"]);
+	_G[self:GetName().."High"]:SetText(LOW);
+	_G[self:GetName().."Low"]:SetText(HIGH);
 	self:SetMinMaxValues(0, 1);
 	self:SetValueStep(0.01);
 	self:SetObeyStepOnDrag(true) -- since 5.4.2 (Mists of Pandaria)
 	self:SetValue(1 - GetCVar("Sound_MasterVolume"));
-
+
 	local position = TitanUtils_GetRealPosition(TITAN_VOLUME_ID);

 	TitanPanelVolumeControlFrame:SetPoint("BOTTOMRIGHT", TITAN_PANEL_DISPLAY_PREFIX..TitanUtils_GetWhichBar(TITAN_VOLUME_ID), "TOPRIGHT", 0, 0);
-	if (position == TITAN_PANEL_PLACE_TOP) then
+	if (position == TITAN_PANEL_PLACE_TOP) then
 		TitanPanelVolumeControlFrame:ClearAllPoints();
 		TitanPanelVolumeControlFrame:SetPoint("TOPLEFT", TITAN_PANEL_DISPLAY_PREFIX..TitanUtils_GetWhichBar(TITAN_VOLUME_ID), "BOTTOMLEFT", UIParent:GetRight() - TitanPanelVolumeControlFrame:GetWidth(), -4);
 	else
 		TitanPanelVolumeControlFrame:ClearAllPoints();
 		TitanPanelVolumeControlFrame:SetPoint("BOTTOMLEFT", TITAN_PANEL_DISPLAY_PREFIX..TitanUtils_GetWhichBar(TITAN_VOLUME_ID), "TOPLEFT", UIParent:GetRight() - TitanPanelVolumeControlFrame:GetWidth(), 0);
 	end
-
+
 end

 function TitanPanelMasterVolumeControlSlider_OnValueChanged(self, a1)
 _G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
-
+
 	SetCVar("Sound_MasterVolume", 1 - self:GetValue());
 	TitanSetVar(TITAN_VOLUME_ID, "VolumeMaster", 1 - self:GetValue())
-
+
 	TitanPanelVolume_SetVolumeIcon();

 	-- Update GameTooltip
 	if (self.tooltipText) then
-		self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
+		self.tooltipText = TitanOptionSlider_TooltipText(OPTION_TOOLTIP_MASTER_VOLUME, TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
 		GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
 	end
 end
@@ -121,7 +120,7 @@ local tempval = self:GetValue();
 if a1 == -1 then
 	  self:SetValue(tempval + 0.01);
 	end
-
+
 	if a1 == 1 then
 	  self:SetValue(tempval - 0.01);
 	end
@@ -130,7 +129,7 @@ end

 -- 'Music'
 function TitanPanelMusicVolumeControlSlider_OnEnter(self)
-	self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(GetCVar("Sound_MusicVolume")));
+	self.tooltipText = TitanOptionSlider_TooltipText(OPTION_TOOLTIP_MUSIC_VOLUME, TitanPanelVolume_GetVolumeText(GetCVar("Sound_MusicVolume")));
 	GameTooltip:SetOwner(self, "ANCHOR_BOTTOMLEFT");
 	GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
 	TitanUtils_StopFrameCounting(self:GetParent());
@@ -144,8 +143,8 @@ end

 function TitanPanelMusicVolumeControlSlider_OnShow(self)
 	_G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(GetCVar("Sound_MusicVolume")));
-	_G[self:GetName().."High"]:SetText(L["TITAN_VOLUME_CONTROL_LOW"]);
-	_G[self:GetName().."Low"]:SetText(L["TITAN_VOLUME_CONTROL_HIGH"]);
+	_G[self:GetName().."High"]:SetText(LOW);
+	_G[self:GetName().."Low"]:SetText(HIGH);
 	self:SetMinMaxValues(0, 1);
 	self:SetValueStep(0.01);
 	self:SetValue(1 - GetCVar("Sound_MusicVolume"));
@@ -156,17 +155,17 @@ _G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(1 - self:GetVa

 	SetCVar("Sound_MusicVolume", 1 - self:GetValue());
 	TitanSetVar(TITAN_VOLUME_ID, "VolumeMusic", 1 - self:GetValue())
-
+
 	-- Update GameTooltip
 	if (self.tooltipText) then
-		self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
+		self.tooltipText = TitanOptionSlider_TooltipText(OPTION_TOOLTIP_MUSIC_VOLUME, TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
 		GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
 	end
 end

 -- 'Sound'
 function TitanPanelSoundVolumeControlSlider_OnEnter(self)
-	self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(GetCVar("Sound_SFXVolume")));
+	self.tooltipText = TitanOptionSlider_TooltipText(OPTION_TOOLTIP_SOUND_VOLUME, TitanPanelVolume_GetVolumeText(GetCVar("Sound_SFXVolume")));
 	GameTooltip:SetOwner(self, "ANCHOR_BOTTOMLEFT");
 	GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
 	TitanUtils_StopFrameCounting(self:GetParent());
@@ -180,8 +179,8 @@ end

 function TitanPanelSoundVolumeControlSlider_OnShow(self)
 	_G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(GetCVar("Sound_SFXVolume")));
-	_G[self:GetName().."High"]:SetText(L["TITAN_VOLUME_CONTROL_LOW"]);
-	_G[self:GetName().."Low"]:SetText(L["TITAN_VOLUME_CONTROL_HIGH"]);
+	_G[self:GetName().."High"]:SetText(LOW);
+	_G[self:GetName().."Low"]:SetText(HIGH);
 	self:SetMinMaxValues(0, 1);
 	self:SetValueStep(0.01);
 	self:SetValue(1 - GetCVar("Sound_SFXVolume"));
@@ -189,20 +188,20 @@ end

 function TitanPanelSoundVolumeControlSlider_OnValueChanged(self, a1)
 _G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
-
+
 	SetCVar("Sound_SFXVolume", 1 - self:GetValue());
 	TitanSetVar(TITAN_VOLUME_ID, "VolumeSFX", 1 - self:GetValue())
-
+
 	-- Update GameTooltip
 	if (self.tooltipText) then
-		self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
+		self.tooltipText = TitanOptionSlider_TooltipText(OPTION_TOOLTIP_SOUND_VOLUME, TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
 		GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
 	end
 end

 -- 'Ambience'
 function TitanPanelAmbienceVolumeControlSlider_OnEnter(self)
-	self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(GetCVar("Sound_AmbienceVolume")));
+	self.tooltipText = TitanOptionSlider_TooltipText(OPTION_TOOLTIP_ENABLE_AMBIENCE, TitanPanelVolume_GetVolumeText(GetCVar("Sound_AmbienceVolume")));
 	GameTooltip:SetOwner(self, "ANCHOR_BOTTOMLEFT");
 	GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
 	TitanUtils_StopFrameCounting(self:GetParent());
@@ -216,8 +215,8 @@ end

 function TitanPanelAmbienceVolumeControlSlider_OnShow(self)
 	_G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(GetCVar("Sound_AmbienceVolume")));
-	_G[self:GetName().."High"]:SetText(L["TITAN_VOLUME_CONTROL_LOW"]);
-	_G[self:GetName().."Low"]:SetText(L["TITAN_VOLUME_CONTROL_HIGH"]);
+	_G[self:GetName().."High"]:SetText(LOW);
+	_G[self:GetName().."Low"]:SetText(HIGH);
 	self:SetMinMaxValues(0, 1);
 	self:SetValueStep(0.01);
 	self:SetValue(1 - GetCVar("Sound_AmbienceVolume"));
@@ -226,13 +225,14 @@ end
 function TitanPanelAmbienceVolumeControlSlider_OnValueChanged(self, a1)
 _G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
 local tempval = self:GetValue();
-
+
 	SetCVar("Sound_AmbienceVolume", 1 - self:GetValue());
 	TitanSetVar(TITAN_VOLUME_ID, "VolumeAmbience", 1 - self:GetValue())
-
+
 	-- Update GameTooltip
 	if (self.tooltipText) then
-		self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
+--		self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
+		self.tooltipText = TitanOptionSlider_TooltipText(OPTION_TOOLTIP_ENABLE_AMBIENCE, TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
 		GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
 	end
 end
@@ -243,7 +243,7 @@ end

 -- 'Dialog'
 function TitanPanelDialogVolumeControlSlider_OnEnter(self)
-	self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(GetCVar("Sound_DialogVolume")));
+	self.tooltipText = TitanOptionSlider_TooltipText(OPTION_TOOLTIP_DIALOG_VOLUME, TitanPanelVolume_GetVolumeText(GetCVar("Sound_DialogVolume")));
 	GameTooltip:SetOwner(self, "ANCHOR_BOTTOMLEFT");
 	GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
 	TitanUtils_StopFrameCounting(self:GetParent());
@@ -257,8 +257,8 @@ end

 function TitanPanelDialogVolumeControlSlider_OnShow(self)
 	_G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(GetCVar("Sound_DialogVolume")));
-	_G[self:GetName().."High"]:SetText(L["TITAN_VOLUME_CONTROL_LOW"]);
-	_G[self:GetName().."Low"]:SetText(L["TITAN_VOLUME_CONTROL_HIGH"]);
+	_G[self:GetName().."High"]:SetText(LOW);
+	_G[self:GetName().."Low"]:SetText(HIGH);
 	self:SetMinMaxValues(0, 1);
 	self:SetValueStep(0.01);
 	self:SetValue(1 - GetCVar("Sound_DialogVolume"));
@@ -267,13 +267,14 @@ end
 function TitanPanelDialogVolumeControlSlider_OnValueChanged(self, a1)
 _G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
 local tempval = self:GetValue();
-
+
 	SetCVar("Sound_DialogVolume", 1 - self:GetValue());
 	TitanSetVar(TITAN_VOLUME_ID, "VolumeDialog", 1 - self:GetValue())
-
+
 	-- Update GameTooltip
 	if (self.tooltipText) then
-		self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
+--		self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
+		self.tooltipText = TitanOptionSlider_TooltipText(OPTION_TOOLTIP_DIALOG_VOLUME, TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
 		GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
 	end
 end
@@ -299,8 +300,8 @@ end

 function TitanPanelMicrophoneVolumeControlSlider_OnShow(self)
 	_G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(GetCVar("OutboundChatVolume")));
-	_G[self:GetName().."High"]:SetText(L["TITAN_VOLUME_CONTROL_LOW"]);
-	_G[self:GetName().."Low"]:SetText(L["TITAN_VOLUME_CONTROL_HIGH"]);
+	_G[self:GetName().."High"]:SetText(LOW);
+	_G[self:GetName().."Low"]:SetText(HIGH);
 	self:SetMinMaxValues(-1.50, 0.75);
 	self:SetValueStep(0.01);
 	self:SetValue(1 - GetCVar("OutboundChatVolume"));
@@ -308,10 +309,10 @@ end

 function TitanPanelMicrophoneVolumeControlSlider_OnValueChanged(self, a1)
 _G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
-
+
 	SetCVar("OutboundChatVolume", 1 - self:GetValue());
 	TitanSetVar(TITAN_VOLUME_ID, "VolumeOutboundChat", 1 - self:GetValue())
-
+
 	-- Update GameTooltip
 	if (self.tooltipText) then
 		self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
@@ -335,8 +336,8 @@ end

 function TitanPanelSpeakerVolumeControlSlider_OnShow(self)
 	_G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(GetCVar("InboundChatVolume")));
-	_G[self:GetName().."High"]:SetText(L["TITAN_VOLUME_CONTROL_LOW"]);
-	_G[self:GetName().."Low"]:SetText(L["TITAN_VOLUME_CONTROL_HIGH"]);
+	_G[self:GetName().."High"]:SetText(LOW);
+	_G[self:GetName().."Low"]:SetText(HIGH);
 	self:SetMinMaxValues(0, 1);
 	self:SetValueStep(0.01);
 	self:SetValue(1 - GetCVar("InboundChatVolume"));
@@ -344,10 +345,10 @@ end

 function TitanPanelSpeakerVolumeControlSlider_OnValueChanged(self, a1)
 _G[self:GetName().."Text"]:SetText(TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
-
+
 	SetCVar("InboundChatVolume", 1 - self:GetValue());
 	TitanSetVar(TITAN_VOLUME_ID, "VolumeInboundChat", 1 - self:GetValue())
-
+
 	-- Update GameTooltip
 	if (self.tooltipText) then
 		self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_VOLUME_CONTROL_TOOLTIP"], TitanPanelVolume_GetVolumeText(1 - self:GetValue()));
@@ -357,16 +358,16 @@ end
 ]]--

 function TitanPanelVolumeControlFrame_OnLoad(self)
-	_G[self:GetName().."Title"]:SetText(L["TITAN_VOLUME_CONTROL_TITLE"]);
-	_G[self:GetName().."MasterTitle"]:SetText(L["TITAN_VOLUME_MASTER_CONTROL_TITLE"]);
-	_G[self:GetName().."MusicTitle"]:SetText(L["TITAN_VOLUME_MUSIC_CONTROL_TITLE"]);
-	_G[self:GetName().."SoundTitle"]:SetText(L["TITAN_VOLUME_SOUND_CONTROL_TITLE"]);
-	_G[self:GetName().."AmbienceTitle"]:SetText(L["TITAN_VOLUME_AMBIENCE_CONTROL_TITLE"]);
-	_G[self:GetName().."DialogTitle"]:SetText(L["TITAN_VOLUME_DIALOG_CONTROL_TITLE"]);
+	_G[self:GetName().."Title"]:SetText(VOLUME);
+	_G[self:GetName().."MasterTitle"]:SetText(MASTER_VOLUME);
+	_G[self:GetName().."MusicTitle"]:SetText(MUSIC_VOLUME);
+	_G[self:GetName().."SoundTitle"]:SetText(SOUND_VOLUME);
+	_G[self:GetName().."AmbienceTitle"]:SetText(AMBIENCE_VOLUME);
+	_G[self:GetName().."DialogTitle"]:SetText(DIALOG_VOLUME);
 --	_G[self:GetName().."MicrophoneTitle"]:SetText(L["TITAN_VOLUME_MICROPHONE_CONTROL_TITLE"]);
 --	_G[self:GetName().."SpeakerTitle"]:SetText(L["TITAN_VOLUME_SPEAKER_CONTROL_TITLE"]);
 --[[
-Blizzard decided to remove direct Backdrop API in 9.0 (Shadowlands)
+Blizzard decided to remove direct Backdrop API in 9.0 (Shadowlands)
 so inherit the template (XML)
 and set the values in the code (Lua)

@@ -390,7 +391,7 @@ function TitanPanelVolume_SetVolumeIcon()
 		icon:SetTexture(TITAN_VOLUME_ARTWORK_PATH.."TitanVolumeMedium");
 	else
 		icon:SetTexture(TITAN_VOLUME_ARTWORK_PATH.."TitanVolumeHigh");
-	end
+	end
 end

 function TitanPanelVolumeButton_GetTooltipText()
@@ -402,11 +403,11 @@ function TitanPanelVolumeButton_GetTooltipText()
 --	local volumeMicrophoneText = TitanPanelVolume_GetVolumeText(GetCVar("OutboundChatVolume"));
 --	local volumeSpeakerText = TitanPanelVolume_GetVolumeText(GetCVar("InboundChatVolume"));
 	return ""..
-		L["TITAN_VOLUME_MASTER_TOOLTIP_VALUE"].."\t"..TitanUtils_GetHighlightText(volumeMasterText).."\n"..
-		L["TITAN_VOLUME_SOUND_TOOLTIP_VALUE"].."\t"..TitanUtils_GetHighlightText(volumeSoundText).."\n"..
-		L["TITAN_VOLUME_MUSIC_TOOLTIP_VALUE"].."\t"..TitanUtils_GetHighlightText(volumeMusicText).."\n"..
-		L["TITAN_VOLUME_AMBIENCE_TOOLTIP_VALUE"].."\t"..TitanUtils_GetHighlightText(volumeAmbienceText).."\n"..
-		L["TITAN_VOLUME_DIALOG_TOOLTIP_VALUE"].."\t"..TitanUtils_GetHighlightText(volumeDialogText).."\n"..
+		MASTER_VOLUME.."\t"..TitanUtils_GetHighlightText(volumeMasterText).."\n"..
+		SOUND_VOLUME.."\t"..TitanUtils_GetHighlightText(volumeSoundText).."\n"..
+		MUSIC_VOLUME.."\t"..TitanUtils_GetHighlightText(volumeMusicText).."\n"..
+		AMBIENCE_VOLUME.."\t"..TitanUtils_GetHighlightText(volumeAmbienceText).."\n"..
+		DIALOG_VOLUME.."\t"..TitanUtils_GetHighlightText(volumeDialogText).."\n"..
 --		L["TITAN_VOLUME_MICROPHONE_TOOLTIP_VALUE"].."\t"..TitanUtils_GetHighlightText(volumeMicrophoneText).."\n"..
 --		L["TITAN_VOLUME_SPEAKER_TOOLTIP_VALUE"].."\t"..TitanUtils_GetHighlightText(volumeSpeakerText).."\n"..
 		TitanUtils_GetGreenText(L["TITAN_VOLUME_TOOLTIP_HINT1"]).."\n"..
@@ -419,19 +420,19 @@ function TitanPanelRightClickMenu_PrepareVolumeMenu()
 	local info = {};
 	info.notCheckable = true
 	info.text = L["TITAN_VOLUME_MENU_AUDIO_OPTIONS_LABEL"];
-	info.func = function()
+	info.func = function()
 		ShowUIPanel(VideoOptionsFrame);
-		end
-	DDM:UIDropDownMenu_AddButton(info);
+		end
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	info.text = L["TITAN_VOLUME_MENU_OVERRIDE_BLIZZ_SETTINGS"];
 	info.notCheckable = false
-	info.func = function()
+	info.func = function()
 		TitanToggleVar(TITAN_VOLUME_ID, "OverrideBlizzSettings");
-	end
+	end
 	info.checked = TitanGetVar(TITAN_VOLUME_ID, "OverrideBlizzSettings");
-	DDM:UIDropDownMenu_AddButton(info);
+	TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());

 	TitanPanelRightClickMenu_AddSpacer();
 	TitanPanelRightClickMenu_AddCommand(L["TITAN_PANEL_MENU_HIDE"], TITAN_VOLUME_ID, TITAN_PANEL_MENU_FUNC_HIDE);
-end
\ No newline at end of file
+end
diff --git a/TitanXP/TitanXP.lua b/TitanXP/TitanXP.lua
index 5e64232..3a83541 100644
--- a/TitanXP/TitanXP.lua
+++ b/TitanXP/TitanXP.lua
@@ -1,8 +1,10 @@
+--[[
 -- **************************************************************************
 -- * TitanXP.lua
 -- *
 -- * By: The Titan Panel Development Team
 -- **************************************************************************
+--]]

 -- ******************************** Constants *******************************
 local TITAN_XP_ID = "XP";
@@ -14,7 +16,6 @@ local TitanPanelXPButton_ButtonAdded = nil;
 local found = nil;
 local lastMobXP, lastXP, XPGain = 0, 0, 0
 local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true)
---local DDM = LibStub:GetLibrary("LibUIDropDownMenu-4.0")
 -- ******************************** Functions *******************************

 --[[
@@ -34,12 +35,14 @@ local function comma_value(amount)
 	return formatted
 end

+--[[
 -- **************************************************************************
 -- NAME : TitanPanelXP_OnLoad()
 -- DESC : Registers the plugin upon it loading
 -- **************************************************************************
+--]]
 function TitanPanelXPButton_OnLoad(self)
-	self.registry = {
+	self.registry = {
 		id = TITAN_XP_ID,
 		category = "Built-ins",
 		version = TITAN_VERSION,
@@ -63,8 +66,8 @@ function TitanPanelXPButton_OnLoad(self)
 			ShowSimpleToLevel = false,
 			ShowSimpleNumOfKills = false,
 			ShowSimpleNumOfGains = false,
-			UseSeperatorComma = true,
-			UseSeperatorPeriod = false,
+			UseSeperatorComma = true,
+			UseSeperatorPeriod = false,
 			DisplayOnRightSide = false,
 		}
 	};
@@ -95,10 +98,10 @@ end

 function TitanPanelXPButton_OnHide()
 	if (TitanPanelSettings) then
-		for i = 1, table.getn(TitanPanelSettings.Buttons) do
+		for i = 1, table.getn(TitanPanelSettings.Buttons) do
 			if(TitanPanelSettings.Buttons[i] == TITAN_XP_ID) then
-				found = true;
-			end
+				found = true;
+			end
 		end
 		if not found then
 			TitanPanelXPButton_ButtonAdded = nil
@@ -284,8 +287,8 @@ function TitanPanelXPButton_GetTooltipText()
 		L["TITAN_XP_TOOLTIP_LEVEL_TIME"].."\t"..TitanUtils_GetHighlightText(TitanUtils_GetAbbrTimeText(levelTime)).."\n"..
 		L["TITAN_XP_TOOLTIP_SESSION_TIME"].."\t"..TitanUtils_GetHighlightText(TitanUtils_GetAbbrTimeText(sessionTime)).."\n"..
 		"\n"..
-		L["TITAN_XP_TOOLTIP_TOTAL_XP"].."\t"..TitanUtils_GetHighlightText(comma_value(totalXP)).."\n"..
-		L["TITAN_XP_TOTAL_RESTED"].."\t"..TitanUtils_GetHighlightText(comma_value(GetXPExhaustion()==nil and "0" or GetXPExhaustion())).."\n"..
+		L["TITAN_XP_TOOLTIP_TOTAL_XP"].."\t"..TitanUtils_GetHighlightText(comma_value(totalXP)).."\n"..
+		L["TITAN_XP_TOTAL_RESTED"].."\t"..TitanUtils_GetHighlightText(comma_value(GetXPExhaustion()==nil and "0" or GetXPExhaustion())).."\n"..
 		L["TITAN_XP_TOOLTIP_LEVEL_XP"].."\t"..TitanUtils_GetHighlightText(comma_value(currentXP).." "..format(L["TITAN_XP_PERCENT_FORMAT"], currentXPPercent)).."\n"..
 		L["TITAN_XP_TOOLTIP_TOLEVEL_XP"].."\t"..TitanUtils_GetHighlightText(comma_value(toLevelXP).." "..format(L["TITAN_XP_PERCENT_FORMAT"], toLevelXPPercent)).."\n"..
 		L["TITAN_XP_TOOLTIP_SESSION_XP"].."\t"..TitanUtils_GetHighlightText(comma_value(TitanPanelXPButton.sessionXP)).."\n"..
@@ -370,8 +373,8 @@ function TitanPanelRightClickMenu_PrepareXPMenu()
 		info.func = function() TitanSetVar(TITAN_XP_ID, "ShowSimpleNumOfGains", true) TitanSetVar(TITAN_XP_ID, "ShowSimpleNumOfKills", false) end
 		info.checked = TitanUtils_Ternary(TitanGetVar(TITAN_XP_ID, "ShowSimpleNumOfGains"), 1, nil);
 		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
-	else
-	end
+		return
+	elseif L_UIDROPDOWNMENU_MENU_LEVEL == 1 then
 		TitanPanelRightClickMenu_AddTitle(TitanPlugins[TITAN_XP_ID].menuText);
 		info = {};
 		info.text = L["TITAN_XP_MENU_SHOW_XPHR_THIS_SESSION"];
@@ -390,7 +393,7 @@ function TitanPanelRightClickMenu_PrepareXPMenu()
 		info.func = TitanPanelXPButton_ShowSessionTime;
 		info.checked = TitanUtils_Ternary("ShowSessionTime" == TitanGetVar(TITAN_XP_ID, "DisplayType"), 1, nil);
 		TitanPanelRightClickMenu_AddButton(info, TitanPanelRightClickMenu_GetDropdownLevel());
-
+
 		info = {};
 		info.text = L["TITAN_XP_MENU_SHOW_RESTED_TOLEVELUP"];
 		info.func = TitanPanelXPButton_ShowXPSimple;
@@ -401,6 +404,7 @@ function TitanPanelRightClickMenu_PrepareXPMenu()
 		TitanPanelRightClickMenu_AddSpacer();
 		TitanPanelRightClickMenu_AddCommand(L["TITAN_XP_MENU_RESET_SESSION"], TITAN_XP_ID, "TitanPanelXPButton_ResetSession");
 		TitanPanelRightClickMenu_AddCommand(L["TITAN_XP_MENU_REFRESH_PLAYED"], TITAN_XP_ID, "TitanPanelXPButton_RefreshPlayed");
+	end

 	TitanPanelRightClickMenu_AddSpacer();