comparison Main.lua @ 10:f93b554bb7cf

class implementation, Icon class for Raid Target Icons
author Jay Bird <a4blank@yahoo.com>
date Sun, 28 Nov 2010 18:59:31 +0300
parents 6e160ec1ef0f
children d2cbfe498c4d
comparison
equal deleted inserted replaced
9:7201711b23e9 10:f93b554bb7cf
4 local L = LibStub("AceLocale-3.0"):GetLocale("RaidTargetTactics") 4 local L = LibStub("AceLocale-3.0"):GetLocale("RaidTargetTactics")
5 5
6 6
7 local LDB = LibStub("LibDataBroker-1.1", true) 7 local LDB = LibStub("LibDataBroker-1.1", true)
8 local LDBIcon = LibStub("LibDBIcon-1.0", true) 8 local LDBIcon = LibStub("LibDBIcon-1.0", true)
9 local AceGUI = LibStub("AceGUI-3.0")
9 10
10 local RTTIcon = LibStub("LibDataBroker-1.1"):NewDataObject("RTTIcon", { 11 local RTTIcon = LibStub("LibDataBroker-1.1"):NewDataObject("RTTIcon", {
11 type = "data source", 12 type = "data source",
12 text = "Raid Target Tactics", 13 text = "Raid Target Tactics",
13 icon = "Interface\\TARGETINGFRAME\\UI-RaidTargetingIcon_8", 14 icon = "Interface\\TARGETINGFRAME\\UI-RaidTargetingIcon_8",
30 function RTT:OnInitialize() 31 function RTT:OnInitialize()
31 self.db = LibStub("AceDB-3.0"):New("TacticsSettings", defaults, true) 32 self.db = LibStub("AceDB-3.0"):New("TacticsSettings", defaults, true)
32 33
33 LDBIcon:Register("RTTIcon", RTTIcon, self.db.profile.minimap) 34 LDBIcon:Register("RTTIcon", RTTIcon, self.db.profile.minimap)
34 self:InitFrame() 35 self:InitFrame()
35 if self.f:IsShown() != self.db.profile.visible then 36 if self.f:IsShown() ~= self.db.profile.visible then
36 if self.db.profile.visible then 37 if self.db.profile.visible then
37 self:ShowFrame() 38 self:ShowFrame()
38 else 39 else
39 self:HideFrame() 40 self:HideFrame()
40 end 41 end
41 end 42 end
42 end 43 end
43 44
44 function RTT:InitFrame() 45 function RTT:InitFrame()
45 self.f = CreateFrame("Frame", nil, UIParent) 46 self.f = CreateFrame("Frame", nil, UIParent)
46 self.f:SetWidth(100) 47 self.f:SetWidth(300)
47 self.f:SetHeight(200) 48 self.f:SetHeight(200)
49 self.f:SetAlpha(0.8)
48 self.f:SetPoint("LEFT", UIParent, "LEFT", 10, 0) 50 self.f:SetPoint("LEFT", UIParent, "LEFT", 10, 0)
51 --[[self.f:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
52 edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
53 tile = true, tileSize = 16, edgeSize = 16,
54 insets = { left = 4, right = 4, top = 4, bottom = 4 }})
55 ]]
56 local backdrop = {
57 -- path to the background texture
58 bgFile = "Interface\\FrameGeneral\\UI-Background-Marble",
59 -- path to the border texture
60 edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",
61 -- true to repeat the background texture to fill the frame, false to scale it
62 tile = true,
63 -- size (width or height) of the square repeating background tiles (in pixels)
64 tileSize = 256,
65 -- thickness of edge segments and square size of edge corners (in pixels)
66 edgeSize = 32,
67 -- distance from the edges of the frame to those of the background texture (in pixels)
68 insets = {
69 left = 11,
70 right = 12,
71 top = 12,
72 bottom = 11
73 }
74 }
75 self.f:SetBackdrop(backdrop)
76 self.f:SetFrameStrata("HIGH")
77 --self.f:SetBackdropColor(0, 0, 0, 0.5)
78
79 self.fields = {}
80 self.selects = {}
81 for num, icon in ipairs(RaidIcons) do
82 icon:draw(self.f, 20, num * -20)
83
84 local field = CreateFrame("EditBox", "__RTT_EditBox_" .. tostring(num), self.f, "InputBoxTemplate")
85 field:SetAutoFocus(false)
86 field:SetFontObject(ChatFontNormal)
87 field:SetWidth(100)
88 field:SetHeight(16)
89 field:SetTextInsets(0, 0, 3, 3)
90 field:SetPoint("TOPLEFT", 40, num * -20)
91 table.insert(self.fields, field)
92 field:Show()
93
94 local userSelect = AceGUI:Create("Dropdown")
95 userSelect.frame:SetParent(self.f)
96 local raid = {}
97 for i=1, GetNumRaidMembers() do
98 raid[i] = UnitName("raid" .. i)
99 end
100 userSelect:SetList(raid)
101 userSelect:SetWidth(100)
102 userSelect:SetHeight(16)
103 userSelect:SetPoint("TOPLEFT", 160, num * -20)
104 table.insert(self.selects, userSelect)
105 userSelect.frame:Show()
106 end
49 end 107 end
50 108
51 function RTT:OnIconClick() 109 function RTT:OnIconClick()
52 if self.db.profile.visible then 110 if self.db.profile.visible then
53 self:HideFrame() 111 self:HideFrame()
54 else 112 else
55 self:ShowFrame() 113 self:ShowFrame()
56 end 114 end
57 self.db.profile.visible = !self.db.profile.visible 115 self.db.profile.visible = not self.db.profile.visible
58 end 116 end
59 117
60 function RTT:HideFrame() 118 function RTT:HideFrame()
61 self.f:Hide() 119 self.f:Hide()
62 end 120 end