09f61aa30ee79758fa0e96ba35aa19eef1c96380
[wowui.git] / Core.lua
1 RaidFrameCustomization = LibStub("AceAddon-3.0"):NewAddon("RaidFrameCustomization", "AceTimer-3.0");
2
3 RaidFrameCustomization.normalBarColor = CreateColor(0.3, 0.3, 0.3);
4 RaidFrameCustomization.dispelBarColor = CreateColor(1, 0.5, 0);
5 RaidFrameCustomization.normalBackColor = {0.7, 0.7, 0.7};
6 RaidFrameCustomization.dispelBackColor = {0.5, 0.2, 0};
7
8 RaidFrameCustomization.inits = {};
9 RaidFrameCustomization.enables = {};
10 RaidFrameCustomization.disables = {};
11
12 RaidFrameCustomization.frames = {};
13 RaidFrameCustomization.positions = {
14     "TOPLEFT", "TOPRIGHT", "CENTER", "BOTTOMLEFT", "BOTTOMRIGHT"
15 };
16
17 local defaults = {
18     profile = {
19         indicatorFont = "Arial Narrow",
20         showIcons = true,
21         enabled = true,
22         indicators = {
23             ['**'] = {
24                 textSize = 10,
25                 color = {1, 1, 1, 1},
26                 mine = false,
27                 stack = true,
28                 showText = true,
29                 showIcon = true,
30                 useDefaultIcon = true,
31                 iconSize = 10,
32             },
33         },
34     }
35 };
36
37 function RaidFrameCustomization:OnInitialize()
38     self.db = LibStub("AceDB-3.0"):New("RaidFrameCustomizationDB", defaults);
39     self:SetupOptions();
40     self.db.RegisterCallback(self, "OnProfileChanged", "RefreshConfig");
41     self.db.RegisterCallback(self, "OnProfileCopied", "RefreshConfig");
42     self.db.RegisterCallback(self, "OnProfileReset", "RefreshConfig");
43 end
44
45 function RaidFrameCustomization:OnEnable()
46     self:RefreshConfig();
47 end
48
49 function RaidFrameCustomization:OnDisable()
50     self:CancelAllTimers();
51     for _, frame in pairs(self.frames) do
52         for _, ind in pairs(frame) do
53             ind.text:SetText("");
54             ind.icon:SetTexture("");
55         end
56     end
57 end