local isRetail = WOW_PROJECT_ID == (WOW_PROJECT_MAINLINE or 1) local L = DBM_GUI_L local CL = DBM_CORE_L local RaidWarningPanel = DBM_GUI.Cat_Alerts:CreateNewPanel(L.Tab_RaidWarning, "option") local raidwarnoptions = RaidWarningPanel:CreateArea(L.RaidWarning_Header) local check1 = raidwarnoptions:CreateCheckButton(L.ShowWarningsInChat, true, nil, "ShowWarningsInChat") local check2 = raidwarnoptions:CreateCheckButton(L.WarningIconLeft, true, nil, "WarningIconLeft") local check3 = raidwarnoptions:CreateCheckButton(L.WarningIconRight, true, nil, "WarningIconRight") local check4 = raidwarnoptions:CreateCheckButton(L.WarningIconChat, true, nil, "WarningIconChat") local check5 = raidwarnoptions:CreateCheckButton(L.WarningAlphabetical, true, nil, "WarningAlphabetical") local check6 = raidwarnoptions:CreateCheckButton(L.ShortTextSpellname, true, nil, "WarningShortText") -- RaidWarn Font local Fonts = DBM_GUI:MixinSharedMedia3("font", { { text = DEFAULT, value = "standardFont" }, { text = "Arial", value = "Fonts\\ARIALN.TTF" }, { text = "Skurri", value = "Fonts\\skurri.ttf" }, { text = "Morpheus", value = "Fonts\\MORPHEUS.ttf" } }) local FontDropDown = raidwarnoptions:CreateDropdown(L.FontType, Fonts, "DBM", "WarningFont", function(value) DBM.Options.WarningFont = value DBM:UpdateWarningOptions() DBM:AddWarning(CL.MOVE_WARNING_MESSAGE) end) FontDropDown:SetPoint("TOPLEFT", check6, "BOTTOMLEFT", 0, -10) -- RaidWarn Font Style local FontStyles = { { text = L.None, value = "None" }, { text = L.Outline, value = "OUTLINE", flag = true }, { text = L.ThickOutline, value = "THICKOUTLINE", flag = true }, { text = L.MonochromeOutline, value = "MONOCHROME,OUTLINE", flag = true }, { text = L.MonochromeThickOutline, value = "MONOCHROME,THICKOUTLINE", flag = true } } local FontStyleDropDown = raidwarnoptions:CreateDropdown(L.FontStyle, FontStyles, "DBM", "WarningFontStyle", function(value) DBM.Options.WarningFontStyle = value DBM:UpdateWarningOptions() DBM:AddWarning(CL.MOVE_WARNING_MESSAGE) end) FontStyleDropDown:SetPoint("TOPLEFT", FontDropDown, "BOTTOMLEFT", 0, -10) -- RaidWarn Font Shadow local FontShadow = raidwarnoptions:CreateCheckButton(L.FontShadow, nil, nil, "WarningFontShadow") FontShadow:SetScript("OnClick", function() DBM.Options.WarningFontShadow = not DBM.Options.WarningFontShadow DBM:UpdateWarningOptions() DBM:AddWarning(CL.MOVE_WARNING_MESSAGE) end) FontShadow:SetPoint("LEFT", FontStyleDropDown, "RIGHT", 35, 0) -- RaidWarn Sound local Sounds = DBM_GUI:MixinSharedMedia3("sound", { { text = L.NoSound, value = "" }, { text = "RaidWarning", value = 8959 -- "Sound\\interface\\RaidWarning.ogg" }, { text = "Classic", value = isRetail and 11742 or 6674 -- "Sound\\Doodad\\BellTollNightElf.ogg" }, { text = "Ding", value = 12889 -- "Sound\\interface\\AlarmClockWarning3.ogg" } }) local RaidWarnSoundDropDown = raidwarnoptions:CreateDropdown(L.RaidWarnSound, Sounds, "DBM", "RaidWarningSound", function(value) DBM.Options.RaidWarningSound = value end) RaidWarnSoundDropDown:SetPoint("TOPLEFT", FontStyleDropDown, "BOTTOMLEFT", 0, -10) -- RaidWarn Font Size local fontSizeSlider = raidwarnoptions:CreateSlider(L.FontSize, 8, 60, 1, 200) fontSizeSlider:SetPoint("TOPLEFT", FontDropDown, "TOPLEFT", 20, -130) fontSizeSlider:SetValue(DBM.Options.WarningFontSize) fontSizeSlider:HookScript("OnValueChanged", function(self) DBM.Options.WarningFontSize = self:GetValue() DBM:UpdateWarningOptions() DBM:AddWarning(CL.MOVE_WARNING_MESSAGE) end) -- RaidWarn Duration local durationSlider = raidwarnoptions:CreateSlider(L.Warn_Duration, 1, 10, 0.5, 200) durationSlider:SetPoint("TOPLEFT", FontDropDown, "TOPLEFT", 20, -170) durationSlider:SetValue(DBM.Options.WarningDuration2) durationSlider:HookScript("OnValueChanged", function(self) DBM.Options.WarningDuration2 = self:GetValue() DBM:UpdateWarningOptions() DBM:AddWarning(CL.MOVE_WARNING_MESSAGE) end) local movemebutton = raidwarnoptions:CreateButton(L.MoveMe, 100, 16) movemebutton:SetPoint("TOPRIGHT", raidwarnoptions.frame, "TOPRIGHT", -2, -4) movemebutton:SetNormalFontObject(GameFontNormalSmall) movemebutton:SetHighlightFontObject(GameFontNormalSmall) movemebutton:SetScript("OnClick", function() DBM:MoveWarning() end) local resetbutton = raidwarnoptions:CreateButton(L.SpecWarn_ResetMe, 120, 16) resetbutton:SetPoint("BOTTOMRIGHT", raidwarnoptions.frame, "BOTTOMRIGHT", -2, 4) resetbutton:SetNormalFontObject(GameFontNormalSmall) resetbutton:SetHighlightFontObject(GameFontNormalSmall) resetbutton:SetScript("OnClick", function() -- Set Options DBM.Options.ShowWarningsInChat = DBM.DefaultOptions.ShowWarningsInChat DBM.Options.WarningIconLeft = DBM.DefaultOptions.WarningIconLeft DBM.Options.WarningIconRight = DBM.DefaultOptions.WarningIconRight DBM.Options.WarningIconChat = DBM.DefaultOptions.WarningIconChat DBM.Options.WarningAlphabetical = DBM.DefaultOptions.WarningAlphabetical DBM.Options.WarningShortText = DBM.DefaultOptions.WarningShortText DBM.Options.WarningFont = DBM.DefaultOptions.WarningFont DBM.Options.FontStyles = DBM.DefaultOptions.FontStyles DBM.Options.WarningFontSize = DBM.DefaultOptions.WarningFontSize DBM.Options.WarningDuration2 = DBM.DefaultOptions.WarningDuration2 DBM.Options.WarningFontShadow = DBM.DefaultOptions.WarningFontShadow DBM.Options.RaidWarningSound = DBM.DefaultOptions.RaidWarningSound DBM.Options.WarningPoint = DBM.DefaultOptions.WarningPoint DBM.Options.WarningX = DBM.DefaultOptions.WarningX DBM.Options.WarningY = DBM.DefaultOptions.WarningY -- Set UI visuals check1:SetChecked(DBM.Options.ShowWarningsInChat) check2:SetChecked(DBM.Options.WarningIconLeft) check3:SetChecked(DBM.Options.WarningIconRight) check4:SetChecked(DBM.Options.WarningIconChat) check5:SetChecked(DBM.Options.WarningAlphabetical) check6:SetChecked(DBM.Options.WarningShortText) FontDropDown:SetSelectedValue(DBM.Options.WarningFont) FontStyleDropDown:SetSelectedValue(DBM.Options.FontStyles) fontSizeSlider:SetValue(DBM.DefaultOptions.WarningFontSize) durationSlider:SetValue(DBM.DefaultOptions.WarningDuration2) FontShadow:SetChecked(DBM.Options.WarningFontShadow) RaidWarnSoundDropDown:SetSelectedValue(DBM.Options.RaidWarningSound) DBM:UpdateWarningOptions() end) --Raid Warning Colors local raidwarncolors = RaidWarningPanel:CreateArea(L.RaidWarnColors) local color1 = raidwarncolors:CreateColorSelect(64) local color2 = raidwarncolors:CreateColorSelect(64) local color3 = raidwarncolors:CreateColorSelect(64) local color4 = raidwarncolors:CreateColorSelect(64) local color1text = raidwarncolors:CreateText(L.RaidWarnColor_1, 64, nil, nil, "CENTER", 0) local color2text = raidwarncolors:CreateText(L.RaidWarnColor_2, 64, nil, nil, "CENTER", 0) local color3text = raidwarncolors:CreateText(L.RaidWarnColor_3, 64, nil, nil, "CENTER", 0) local color4text = raidwarncolors:CreateText(L.RaidWarnColor_4, 64, nil, nil, "CENTER", 0) local color1reset = raidwarncolors:CreateButton(L.Reset, 60, 10, nil, GameFontNormalSmall) local color2reset = raidwarncolors:CreateButton(L.Reset, 60, 10, nil, GameFontNormalSmall) local color3reset = raidwarncolors:CreateButton(L.Reset, 60, 10, nil, GameFontNormalSmall) local color4reset = raidwarncolors:CreateButton(L.Reset, 60, 10, nil, GameFontNormalSmall) color1.myheight = 100 color2.myheight = 0 color3.myheight = 0 color4.myheight = 0 color1:SetPoint("TOPLEFT", 30, -10) color2:SetPoint("TOPLEFT", color1, "TOPRIGHT", 30, 0) color3:SetPoint("TOPLEFT", color2, "TOPRIGHT", 30, 0) color4:SetPoint("TOPLEFT", color3, "TOPRIGHT", 30, 0) local function UpdateColor(self) local r, g, b = self:GetColorRGB() self.textid:SetTextColor(r, g, b) DBM.Options.WarningColors[self.myid].r = r DBM.Options.WarningColors[self.myid].g = g DBM.Options.WarningColors[self.myid].b = b end local function ResetColor(id, frame) return function() DBM.Options.WarningColors[id].r = DBM.DefaultOptions.WarningColors[id].r DBM.Options.WarningColors[id].g = DBM.DefaultOptions.WarningColors[id].g DBM.Options.WarningColors[id].b = DBM.DefaultOptions.WarningColors[id].b frame:SetColorRGB(DBM.Options.WarningColors[id].r, DBM.Options.WarningColors[id].g, DBM.Options.WarningColors[id].b) end end local function UpdateColorFrames(color, text, rset, id) color.textid = text color.myid = id color:SetScript("OnColorSelect", UpdateColor) color:SetColorRGB(DBM.Options.WarningColors[id].r, DBM.Options.WarningColors[id].g, DBM.Options.WarningColors[id].b) text:SetPoint("TOPLEFT", color, "BOTTOMLEFT", 3, -10) text.myheight = 0 rset:SetPoint("TOP", text, "BOTTOM", 0, -5) rset:SetScript("OnClick", ResetColor(id, color)) end UpdateColorFrames(color1, color1text, color1reset, 1) UpdateColorFrames(color2, color2text, color2reset, 2) UpdateColorFrames(color3, color3text, color3reset, 3) UpdateColorFrames(color4, color4text, color4reset, 4) local infotext = raidwarncolors:CreateText(L.InfoRaidWarning, 380, false, GameFontNormalSmall, "LEFT", 0) infotext:SetPoint("BOTTOMLEFT", raidwarncolors.frame, "BOTTOMLEFT", 10, 10)