do
	local addonId, edTable = ...
	local Details = _G._detalhes
	local AceLocale = LibStub("AceLocale-3.0")
	local Loc = AceLocale:GetLocale("Details_EncounterDetails")
	local Graphics = LibStub:GetLibrary("LibGraph-2.0")
	local ipairs = ipairs
	local _GetSpellInfo = Details.getspellinfo
	local unpack = unpack
	local detailsFramework = DetailsFramework
	local CreateFrame = CreateFrame
	local GameCooltip = GameCooltip
	local _

	Details.EncounterDetailsTempWindow = function(encounterDetails)
		--options panel
		encounterDetails.SetBarBackdrop_OnEnter = function(self)
			self:SetBackdropColor(unpack(edTable.defaultBackgroundColor_OnEnter))
		end

		encounterDetails.SetBarBackdrop_OnLeave = function(self)
			self:SetBackdropColor(unpack(edTable.defaultBackgroundColor))
		end

		function encounterDetails:AutoShowIcon()
			local bFoundBoss = false
			for _, combatObject in ipairs(encounterDetails:GetCombatSegments()) do
				---@cast combatObject combat
				if (combatObject.is_boss) then
					encounterDetails:ShowIcon()
					bFoundBoss = true
				end
			end

			if (encounterDetails:GetCurrentCombat().is_boss) then
				encounterDetails:ShowIcon()
				bFoundBoss = true
			end

			if (not bFoundBoss) then
				encounterDetails:HideIcon()
			end
		end

		local buildOptionsPanel = function()
			local pluginIcon = "Interface\\AddOns\\Details_EncounterDetails\\images\\icon"
			local pluginIconCoords = {0.15, 0.85, 0.15, 0.85}
			local optionsFrame = encounterDetails:CreatePluginOptionsFrame("EncounterDetailsOptionsWindow", "Encounter Breakdown Options", 3, pluginIcon, pluginIconCoords)
			-- 1 = only when inside a raid map
			-- 2 = only when in raid group
			-- 3 = only after a boss encounter
			-- 4 = always show
			-- 5 = automatic show when have at least 1 encounter with boss

			local onShowIconCallback = function(_, _, value)
				encounterDetails.db.show_icon = value
				if (value == 1) then
					if (encounterDetails:GetZoneType() == "raid") then
						encounterDetails:ShowIcon()
					else
						encounterDetails:HideIcon()
					end

				elseif (value == 2) then
					if (encounterDetails:InGroup()) then
						encounterDetails:ShowIcon()
					else
						encounterDetails:HideIcon()
					end

				elseif (value == 3) then
					if (encounterDetails:GetCurrentCombat().is_boss) then
						encounterDetails:ShowIcon()
					else
						encounterDetails:HideIcon()
					end

				elseif (value == 4) then
					encounterDetails:ShowIcon()

				elseif (value == 5) then
					encounterDetails:AutoShowIcon()
				end
			end

			local on_show_menu = {
				{value = 1, label = "Inside Raid", onclick = onShowIconCallback, desc = "Only show the icon while inside a raid."},
				{value = 2, label = "In Group", onclick = onShowIconCallback, desc = "Only show the icon while in group."},
				{value = 3, label = "After Encounter", onclick = onShowIconCallback, desc = "Show the icon after a raid boss encounter."},
				{value = 4, label = "Always", onclick = onShowIconCallback, desc = "Always show the icon."},
				{value = 5, label = "Auto", onclick = onShowIconCallback, desc = "The plugin decides when the icon needs to be shown."},
			}

			--/dump DETAILS_PLUGIN_ENCOUNTER_DETAILS.db.show_icon

			local menu = {
				{
					type = "select",
					get = function() return encounterDetails.db.show_icon end,
					values = function() return on_show_menu end,
					desc = "When the icon is shown in the Details! tooltip.",
					name = "Show Icon"
				},
				{
					type = "toggle",
					get = function() return encounterDetails.db.hide_on_combat end,
					set = function(self, fixedparam, value) encounterDetails.db.hide_on_combat = value end,
					desc = "Encounter Breakdown window automatically close when you enter in combat.",
					name = "Hide on Combat"
				},
				{
					type = "range",
					get = function() return encounterDetails.db.max_emote_segments end,
					set = function(self, fixedparam, value) encounterDetails.db.max_emote_segments = value end,
					min = 1,
					max = 10,
					step = 1,
					desc = "Keep how many segments emotes.",
					name = "Emote Segments Amount",
					usedecimals = true,
				},
				{
					type = "range",
					get = function() return encounterDetails.db.window_scale end,
					set = function(self, fixedparam, value) encounterDetails.db.window_scale = value; encounterDetails:RefreshScale() end,
					min = 0.65,
					max = 1.50,
					step = 0.1,
					desc = "Set the window size",
					name = "Window Scale",
					usedecimals = true,
				},

			}

			local options_text_template = detailsFramework:GetTemplate("font", "OPTIONS_FONT_TEMPLATE")
			local options_dropdown_template = detailsFramework:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")
			local options_switch_template = detailsFramework:GetTemplate("switch", "OPTIONS_CHECKBOX_TEMPLATE")
			local options_slider_template = detailsFramework:GetTemplate("slider", "OPTIONS_SLIDER_TEMPLATE")
			local options_button_template = detailsFramework:GetTemplate("button", "OPTIONS_BUTTON_TEMPLATE")

			detailsFramework:BuildMenu(optionsFrame, menu, 15, -75, 260, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template)
		end

		encounterDetails.OpenOptionsPanel = function()
			if (not EncounterDetailsOptionsWindow) then
				buildOptionsPanel()
			end
			EncounterDetailsOptionsWindow:Show()
		end

		function encounterDetails:RefreshScale()
			local scale = encounterDetails.db.window_scale
			if (encounterDetails.Frame) then
				encounterDetails.Frame:SetScale(scale)
			end
		end

		-- ~start ~main ~frame ~baseframe ~bossframe
		local edFrame = encounterDetails.Frame
		detailsFramework:ApplyStandardBackdrop(edFrame)
		edFrame:SetFrameStrata("high")
		edFrame:SetToplevel(true)
		edFrame:SetWidth(898)
		edFrame:SetHeight(504)
		edFrame:EnableMouse(true)
		edFrame:SetResizable(false)
		edFrame:SetMovable(true)
		edFrame:SetPoint("center", UIParent, "center", 0, 0)

		--background
		edFrame.bosFrameBackgroundTexture = edFrame:CreateTexture(nil, "background")
		edFrame.bosFrameBackgroundTexture:SetTexture([[Interface\AddOns\Details\images\background]], true)
		edFrame.bosFrameBackgroundTexture:SetAlpha(0.7)
		edFrame.bosFrameBackgroundTexture:SetVertexColor(0.27, 0.27, 0.27)
		edFrame.bosFrameBackgroundTexture:SetVertTile(true)
		edFrame.bosFrameBackgroundTexture:SetHorizTile(true)
		edFrame.bosFrameBackgroundTexture:SetSize(790, 454)
		edFrame.bosFrameBackgroundTexture:SetAllPoints()

		--title bar
		local titleBar = detailsFramework:CreateTitleBar(edFrame, Loc ["STRING_WINDOW_TITLE"])
		titleBar.CloseButton:Hide()

		--close button
		titleBar.CloseButton = detailsFramework:CreateCloseButton(titleBar)
		titleBar.CloseButton:SetScript("OnClick", function(self)
			encounterDetails:CloseWindow()
		end)

		titleBar.CloseButton:SetPoint("right", titleBar, "right", -2, 0)

		--header background
		local headerFrame = CreateFrame("frame", "EncounterDetailsHeaderFrame", edFrame, "BackdropTemplate")
		headerFrame:EnableMouse(false)
		headerFrame:SetPoint("topleft", titleBar, "bottomleft", -1, -1)
		headerFrame:SetPoint("topright", titleBar, "bottomright", 1, -1)
		headerFrame:SetBackdrop({bgFile = [[Interface\AddOns\Details\images\background]], tileSize = 64, tile = true})
		headerFrame:SetBackdropColor(.7, .7, .7, .4)
		headerFrame:SetHeight(48)

		edFrame.raidBackgroundTexture = edFrame:CreateTexture(nil, "border")
		edFrame.raidBackgroundTexture:SetPoint("topleft", edFrame, "topleft", 0, -74)
		edFrame.raidBackgroundTexture:SetPoint("bottomright", edFrame, "bottomright", 0, 0)
		edFrame.raidBackgroundTexture:SetDrawLayer("border", 2)
		edFrame.raidBackgroundTexture:SetAlpha(0.1)

		local gradientBelow = detailsFramework:CreateTexture(headerFrame,
		{gradient = "vertical", fromColor = {0, 0, 0, 0.5}, toColor = "transparent"}, 1, 48, "artwork", {0, 1, 0, 1})
		gradientBelow:SetPoint("bottoms", 1, 1)

		--boss icon in the top left corner
		edFrame.bossIcon = headerFrame:CreateTexture(nil, "overlay")
		edFrame.bossIcon:SetPoint("topleft", edFrame, "topleft", 9, -24)
		edFrame.bossIcon:SetWidth(46)
		edFrame.bossIcon:SetHeight(46)

		--raid name
		detailsFramework:NewLabel(headerFrame, headerFrame, nil, "raidNameLabel", "Unknown Raid", "GameFontHighlightSmall")
		edFrame.raidNameLabel = headerFrame.raidNameLabel
		edFrame.raidNameLabel:SetPoint("topleft", edFrame, "topleft", 60, -34)

		--encounter name
		detailsFramework:NewLabel(headerFrame, headerFrame, nil, "bossNameLabel", "Unknown Encounter", "QuestFont_Large")
		edFrame.bossNameLabel = headerFrame.bossNameLabel
		edFrame.bossNameLabel:SetPoint("topleft", edFrame.raidNameLabel, "bottomleft", 0, -2)

		edFrame.bossIcon:Hide()
		edFrame.raidNameLabel.show = false
		edFrame.bossNameLabel.show = false

		edFrame:SetScript("OnMouseDown", function(self, button)
			if (button == "LeftButton") then
				self:StartMoving()
				self.isMoving = true

			elseif (button == "RightButton" and not self.isMoving) then
				encounterDetails:CloseWindow()
			end
		end)

		edFrame:SetScript("OnMouseUp", function(self)
			if (self.isMoving) then
				self:StopMovingOrSizing()
				self.isMoving = false
			end
		end)

		edFrame.ShowType = "main"

		--> revisar
		edFrame.Reset = function()
			edFrame.switch(nil, nil, "main")
			if (encounterDetails.chartPanel) then
				encounterDetails.chartPanel:ResetData()
			end
			edFrame.linhas = nil
		end

		local hide_Graph = function()
			if (encounterDetails.chartPanel) then
				encounterDetails.chartPanel:Hide()
			end
		end

		local hide_Emote = function()
			for _, widget in pairs(edFrame.EmoteWidgets) do
				widget:Hide()
			end
		end

		local hide_Summary = function()
			for _, frame in ipairs(edFrame.encounterSummaryWidgets) do
				frame:Hide()

				frame:SetScript("OnShow", function()
					--print(debugstack())
				end)
			end
		end

		local resetSelectedButtonTemplate = function()
			edFrame.buttonSwitchNormal:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
			edFrame.buttonSwitchPhases:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
			edFrame.buttonSwitchGraphic:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
			edFrame.buttonSwitchBossEmotes:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
		end

		edFrame.switch = function(buttonObject, _, tabName)
			local tabSelected
			if (type(buttonObject) == "string") then
				tabSelected = buttonObject

			elseif (type(tabName) == "string") then
				tabSelected = tabName
			end

			if (not edFrame:IsShown()) then
				Details:OpenPlugin("DETAILS_PLUGIN_ENCOUNTER_DETAILS")
			end

			EncounterDetailsPhaseFrame:Hide()
			resetSelectedButtonTemplate()

			if (tabSelected == "main") then
				edFrame.raidBackgroundTexture:Show()

				for _, frame in ipairs(edFrame.encounterSummaryWidgets) do
					frame:Show()
				end

				hide_Graph()
				hide_Emote()

				edFrame.ShowType = "main"
				edFrame.segmentsDropdown:Enable()
				edFrame.buttonSwitchNormal:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTONSELECTED_TEMPLATE"))
				encounterDetails.db.last_section_selected = edFrame.ShowType

				if (encounterDetails.LastSegmentShown) then
					encounterDetails.RefreshSummaryPage(encounterDetails.LastSegmentShown)
				else
					encounterDetails.RefreshSummaryPage(Details:GetCurrentCombat())
				end

			elseif (tabSelected == "emotes") then
				Details:SetTutorialCVar("ENCOUNTER_BREAKDOWN_EMOTES", true)
				if (encounterDetails.Frame.buttonSwitchBossEmotes.AntsFrame) then
					encounterDetails.Frame.buttonSwitchBossEmotes.AntsFrame:Hide()
				end

				--hide boss frames
				for _, frame in ipairs(edFrame.encounterSummaryWidgets) do
					frame:Hide()
				end

				edFrame.raidBackgroundTexture:Show()

				--hide graph
				if (encounterDetails.chartPanel) then
					encounterDetails.chartPanel:Hide()
				end

				--show emote frames
				for _, widget in pairs(edFrame.EmoteWidgets) do
					widget:Show()
				end

				edFrame.ShowType = "emotes"
				encounterDetails.EmoteScrollFrame:Update()
				edFrame.EmotesSegment:Refresh()
				edFrame.EmotesSegment:Select(encounterDetails.emoteSegmentIndex)
				edFrame.segmentsDropdown:Disable()
				edFrame.buttonSwitchBossEmotes:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTONSELECTED_TEMPLATE"))
				encounterDetails.db.last_section_selected = edFrame.ShowType

			elseif (tabSelected == "phases") then
				Details:SetTutorialCVar("ENCOUNTER_BREAKDOWN_PHASES", true)
				if (encounterDetails.Frame.buttonSwitchPhases.AntsFrame) then
					encounterDetails.Frame.buttonSwitchPhases.AntsFrame:Hide()
				end

				hide_Summary()
				hide_Graph()
				hide_Emote()

				edFrame.ShowType = "phases"

				EncounterDetailsPhaseFrame:Show()

				edFrame.buttonSwitchPhases:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTONSELECTED_TEMPLATE"))

				encounterDetails.db.last_section_selected = edFrame.ShowType

			elseif (tabSelected == "graph") then
				Details:SetTutorialCVar("ENCOUNTER_BREAKDOWN_CHART", true)
				if (encounterDetails.Frame.buttonSwitchGraphic.AntsFrame) then
					encounterDetails.Frame.buttonSwitchGraphic.AntsFrame:Hide()
				end

				encounterDetails:ShowChartFrame()

				if (not encounterDetails.chartPanel) then
					return
				end

				edFrame.raidBackgroundTexture:Hide()

				for _, frame in ipairs(edFrame.encounterSummaryWidgets) do
					frame:Hide()
				end

				encounterDetails.chartPanel:Show()
				edFrame.ShowType = "graph"

				--hide emote frames
				for _, widget in pairs(edFrame.EmoteWidgets) do
					widget:Hide()
				end

				edFrame.segmentsDropdown:Enable()
				edFrame.buttonSwitchGraphic:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTONSELECTED_TEMPLATE"))
				encounterDetails.db.last_section_selected = edFrame.ShowType
			end
		end

		-- ~button ~menu
		local BUTTON_WIDTH = 120
		local BUTTON_HEIGHT = 20
		local HEADER_MENUBUTTONS_SPACEMENT = 4
		local HEADER_MENUBUTTONS_X = 290
		local HEADER_MENUBUTTONS_Y = -38

		--create selection tab buttons
		do
			--summary
			edFrame.buttonSwitchNormal = detailsFramework:CreateButton(edFrame, edFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Summary", "main")
			edFrame.buttonSwitchNormal:SetIcon("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {0, 32/256, 0, 0.505625})
			edFrame.buttonSwitchNormal:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTONSELECTED_TEMPLATE"))
			edFrame.buttonSwitchNormal:SetWidth(BUTTON_WIDTH)
				--summary for the breakdown window
				edFrame.buttonSwitchNormalBreakdown = detailsFramework:CreateButton(edFrame, edFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Summary", "main")
				edFrame.buttonSwitchNormalBreakdown:SetIcon("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {0, 32/256, 0, 0.505625})
				edFrame.buttonSwitchNormalBreakdown:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTONSELECTED_TEMPLATE"))
				edFrame.buttonSwitchNormalBreakdown:SetWidth(BUTTON_WIDTH)
				_G.DetailsBreakdownWindow.RegisterPluginButton(edFrame.buttonSwitchNormalBreakdown, edTable.PluginObject, edTable.PluginAbsoluteName)

			--phases
			edFrame.buttonSwitchPhases = detailsFramework:CreateButton(edFrame, edFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Phases", "phases")
			edFrame.buttonSwitchPhases:SetIcon("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {65/256, 96/256, 0, 0.505625})
			edFrame.buttonSwitchPhases:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
			edFrame.buttonSwitchPhases:SetWidth(BUTTON_WIDTH)
				--phases for the breakdown window
				edFrame.buttonSwitchPhasesBreakdown = detailsFramework:CreateButton(edFrame, edFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Phases", "phases")
				edFrame.buttonSwitchPhasesBreakdown:SetIcon("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {65/256, 96/256, 0, 0.505625})
				edFrame.buttonSwitchPhasesBreakdown:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
				edFrame.buttonSwitchPhasesBreakdown:SetWidth(BUTTON_WIDTH)
				_G.DetailsBreakdownWindow.RegisterPluginButton(edFrame.buttonSwitchPhasesBreakdown, edTable.PluginObject, edTable.PluginAbsoluteName)

			--chart
			edFrame.buttonSwitchGraphic = detailsFramework:CreateButton(edFrame, edFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Damage Graphic", "graph")
			edFrame.buttonSwitchGraphic:SetIcon("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {97/256, 128/256, 0, 0.505625})
			edFrame.buttonSwitchGraphic:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
			edFrame.buttonSwitchGraphic:SetWidth(BUTTON_WIDTH)
				--charts for the breakdown window
				edFrame.buttonSwitchGraphicBreakdown = detailsFramework:CreateButton(edFrame, edFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Damage Graphic", "graph")
				edFrame.buttonSwitchGraphicBreakdown:SetIcon("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {97/256, 128/256, 0, 0.505625})
				edFrame.buttonSwitchGraphicBreakdown:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
				edFrame.buttonSwitchGraphicBreakdown:SetWidth(BUTTON_WIDTH)
				_G.DetailsBreakdownWindow.RegisterPluginButton(edFrame.buttonSwitchGraphicBreakdown, edTable.PluginObject, edTable.PluginAbsoluteName)

			--emotes
			edFrame.buttonSwitchBossEmotes = detailsFramework:CreateButton(edFrame, edFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Emotes", "emotes")
			edFrame.buttonSwitchBossEmotes:SetIcon("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {129/256, 160/256, 0, 0.505625})
			edFrame.buttonSwitchBossEmotes:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
			edFrame.buttonSwitchBossEmotes:SetWidth(BUTTON_WIDTH)
				--emotes for the breakdown window
				edFrame.buttonSwitchBossEmotesBreakdown = detailsFramework:CreateButton(edFrame, edFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Emotes", "emotes")
				edFrame.buttonSwitchBossEmotesBreakdown:SetIcon("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {129/256, 160/256, 0, 0.505625})
				edFrame.buttonSwitchBossEmotesBreakdown:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
				edFrame.buttonSwitchBossEmotesBreakdown:SetWidth(BUTTON_WIDTH)
				_G.DetailsBreakdownWindow.RegisterPluginButton(edFrame.buttonSwitchBossEmotesBreakdown, edTable.PluginObject, edTable.PluginAbsoluteName)

			--anchors
			edFrame.buttonSwitchNormal:SetPoint("topleft", edFrame, "topleft", 5, -26)
			edFrame.buttonSwitchPhases:SetPoint("left", edFrame.buttonSwitchNormal, "right", HEADER_MENUBUTTONS_SPACEMENT, 0)
			edFrame.buttonSwitchGraphic:SetPoint("topleft", edFrame.buttonSwitchNormal, "bottomleft", 0, -3)
			edFrame.buttonSwitchBossEmotes:SetPoint("left", edFrame.buttonSwitchGraphic, "right", HEADER_MENUBUTTONS_SPACEMENT, 0)

			edFrame.AllButtons = {edFrame.buttonSwitchNormal, edFrame.buttonSwitchGraphic, edFrame.buttonSwitchBossEmotes, edFrame.buttonSwitchPhases}
		end

		--segment selection
		C_Timer.After(5, function()
			local buildSegmentosMenu = function(self)
				local segmentList = Details:GetCombatSegments()
				local resultTable = {}

				for index, combate in ipairs(segmentList) do
					if (combate.is_boss and combate.is_boss.index) then
						local bossIcon = Details:GetBossEncounterTexture(combate.is_boss.id or combate.is_boss.encounter or combate.is_boss.name)
						resultTable[#resultTable+1] = {
							value = index,
							label = "#" .. index .. " " .. (combate.is_boss.encounter or combate.is_boss.name or _G["UNKNOWN"]),
							icon = bossIcon,
							iconsize = {32, 20},
							texcoord = {0, 1, 0, 0.9},
							onclick = encounterDetails.OpenAndRefresh
						}
					end
				end

				return resultTable
			end

			--space between the 4 tab buttons and the segments and macro frames
			local xSpacement = 20
			--~dropdown
			local segmentDropdown = detailsFramework:NewDropDown(edFrame, _, "$parentSegmentsDropdown", "segmentsDropdown", 218, 20, buildSegmentosMenu, nil)
			segmentDropdown:SetPoint("left", edFrame.buttonSwitchPhases, "right", xSpacement, 0)
			segmentDropdown:SetTemplate(detailsFramework:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE"))

			--options button
			local optionsButton = detailsFramework:NewButton(edFrame, nil, "$parentOptionsButton", "OptionsButton", 120, 20, encounterDetails.OpenOptionsPanel, nil, nil, nil, "Options")
			optionsButton:SetPoint("left", segmentDropdown, "right", 10, 0)
			optionsButton:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
			optionsButton:SetIcon([[Interface\Buttons\UI-OptionsButton]], 14, 14, nil, {0, 1, 0, 1}, nil, 3)
		end)

		--macro box
		edFrame.MacroEditBox = detailsFramework:CreateTextEntry(edFrame, function()end, 300, 20)
		edFrame.MacroEditBox:SetPoint("left", edFrame.buttonSwitchBossEmotes, "right", xSpacement, 0)
		edFrame.MacroEditBox:SetAlpha(0.7)
		edFrame.MacroEditBox:SetText("/run Details:OpenPlugin('Encounter Breakdown')")
		edFrame.MacroEditBox:SetTemplate(detailsFramework:GetTemplate("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
		edFrame.MacroEditBox:SetSize(348, 20)

		edFrame.MacroEditBox:HookScript("OnEditFocusGained", function()
			C_Timer.After(0, function() edFrame.MacroEditBox:HighlightText() end)
		end)

		edFrame.MacroEditBox.BackgroundLabel = detailsFramework:CreateLabel(edFrame.MacroEditBox, "macro")
		edFrame.MacroEditBox.BackgroundLabel:SetPoint("left", edFrame.MacroEditBox, "left", 6, 0)
		edFrame.MacroEditBox.BackgroundLabel:SetTextColor(.3, .3, .3, .98)
	end
end