if not SimpleCombatLog then return end local dewdrop = AceLibrary("Dewdrop-2.0") local L = SimpleCombatLog.loc.color SimpleCombatLog.colorList = { "player", "pet", "raid", "party", "target", "targettarget", "other", "", "physical", "holy", "fire", "nature", "frost", "shadow", "arcane", "", "heal", "miss", "buff", "debuff", "skill", } function SimpleCombatLog:GetColorRGB(id, colorType) local hexColor, isDefault = self:GetColorHex(id, colorType) local r, g, b = string.sub(hexColor,1,2), string.sub(hexColor,3,4), string.sub(hexColor,5,6) r = tonumber(r, 16)/255 g = tonumber(g, 16)/255 b = tonumber(b, 16)/255 return r, g, b, isDefault end function SimpleCombatLog:SetColorRGB(id, colorType, r, g, b) local hexColor = string.format('%02x%02x%02x', (r*255), (g*255), (b*255)) self:SetColorHex(id, colorType, hexColor) end function SimpleCombatLog:SetColorHex(id, colorType, hexColor) if not self.settings[id] then self.settings[id] = {} self.settingDB[id] = self.settings[id] else if self.settings[id].theme then self.settings[id] = SimpleCombatLog.CopyTable({}, self.settings[id]) self.settings[id].theme = nil self.settingDB[id] = self.settings[id] end end if not self.settings[id].colors then self.settings[id].colors = {} end self.settings[id].colors[colorType] = hexColor end function SimpleCombatLog:RestoreDefaultColors(id) if self.settings[id] and self.settings[id].colors then self.settings[id].colors = nil end end local function UpdateColorOptionsTable(self, id, level, value) if level == 1 then dewdrop:AddLine( 'text', L["Colors"], 'notCheckable', true, 'hasArrow', true, 'value', 'color' ) elseif level == 2 and value == 'color' then local c, d, title for i, v in pairs(self.colorList) do if v ~= "" then local r, g, b, isDefault = self:GetColorRGB(id, v) if not isDefault then title = self:Colorize(L[v], self.defaultColors.dirty) else title = L[v] end dewdrop:AddLine( 'text', title, 'hasColorSwatch', true, 'r', r, 'g', g, 'b', b, 'notCheckable', true, 'colorFunc', function(id, colorType, r, g, b) self:SetColorRGB(id, colorType, r, g, b) end, 'colorArg1', id, 'colorArg2', v ) else dewdrop:AddLine() end end dewdrop:AddLine() dewdrop:AddLine( 'text', L["Restore default colors"], 'notCheckable', true, 'func', function() self:RestoreDefaultColors(id) end ) end end if SimpleCombatLog.menuFunc then SimpleCombatLog.menuFunc[3] = UpdateColorOptionsTable end