Mercurial > wow > ouroloot
comparison gui.lua @ 86:703bbe61d12d
Proper class coloring in one place.
author | Farmbuyer of US-Kilrogg <farmbuyer@gmail.com> |
---|---|
date | Thu, 21 Jun 2012 21:14:24 +0000 |
parents | c87bf3e756f3 |
children | 9fea75b0927b |
comparison
equal
deleted
inserted
replaced
85:4771ee8eaa81 | 86:703bbe61d12d |
---|---|
85 local tabs_OnGroupSelected = {} | 85 local tabs_OnGroupSelected = {} |
86 local mkbutton | 86 local mkbutton |
87 local tabs_OnGroupSelected_func, tabs_generated_text_OGS | 87 local tabs_OnGroupSelected_func, tabs_generated_text_OGS |
88 -- Similarly for the popup tips on the right side of the window. | 88 -- Similarly for the popup tips on the right side of the window. |
89 local noob_tips = {} | 89 local noob_tips = {} |
90 | |
91 -- Class color support | |
92 local class_colors-- = {} | |
93 do | |
94 local function fill_out_class_colors() | |
95 class_colors = CUSTOM_CLASS_COLORS or RAID_CLASS_COLORS | |
96 -- If we were dependant on lib-st calling this function (via a | |
97 -- 'color' field in eoi_st_cols[2]), then this would have to be deep | |
98 -- copied and an "a=1" field added to each. But as we have to use | |
99 -- this ourselves via DoCellUpdate, we can just share tables and | |
100 -- pass an alpha value manually during cell update. | |
101 --for class,color in pairs(CUSTOM_CLASS_COLORS or RAID_CLASS_COLORS) do | |
102 -- class_colors[class] = { r = color.r, g = color.g, b = color.b, a = 1 } | |
103 --end | |
104 end | |
105 fill_out_class_colors() | |
106 if CUSTOM_CLASS_COLORS and CUSTOM_CLASS_COLORS.RegisterCallback then | |
107 CUSTOM_CLASS_COLORS:RegisterCallback(fill_out_class_colors) | |
108 end | |
109 addon.class_colors = class_colors | |
110 end | |
111 | 90 |
112 do | 91 do |
113 local replacement_colors = { | 92 local replacement_colors = { |
114 ["+"]="|cffffffff", -- white | 93 ["+"]="|cffffffff", -- white |
115 ["<"]="|cff00ff00", -- light green | 94 ["<"]="|cff00ff00", -- light green |
446 -- table arguments to the lib-st routines (thus 'e' locals). | 425 -- table arguments to the lib-st routines (thus 'e' locals). |
447 local dotcols = new (col1, col2, col3) | 426 local dotcols = new (col1, col2, col3) |
448 local st_entry = new() | 427 local st_entry = new() |
449 st_entry.kind = 'hist' | 428 st_entry.kind = 'hist' |
450 st_entry.OLwho = player.name | 429 st_entry.OLwho = player.name |
430 st_entry.OLclass = player.person_class | |
451 st_entry.cols = dotcols | 431 st_entry.cols = dotcols |
452 st_entry.itemlink = ilink -- for onenter and onclick | 432 st_entry.itemlink = ilink -- for onenter and onclick |
453 tinsert (st, st_entry) | 433 tinsert (st, st_entry) |
454 end | 434 end |
455 end | 435 end |
854 addon:Print("Removed %s.", | 834 addon:Print("Removed %s.", |
855 gone.itemlink or gone.bossname or gone.startday.text) | 835 gone.itemlink or gone.bossname or gone.startday.text) |
856 if gone.kind == 'loot' and IsShiftKeyDown() then | 836 if gone.kind == 'loot' and IsShiftKeyDown() then |
857 local okay,err = addon:_delHistoryEntry (gone) | 837 local okay,err = addon:_delHistoryEntry (gone) |
858 if okay then | 838 if okay then |
859 addon:Print("Removed history entry %s from '%s'.", | 839 addon:Print("Removed history entry %s from %s.", |
860 gone.itemlink, gone.person) | 840 gone.itemlink, addon:colorize(gone.person,gone.person_class)) |
861 else | 841 else |
862 addon:Print(err) | 842 addon:Print(err) |
863 end | 843 end |
864 end | 844 end |
865 end, | 845 end, |
1235 cellFrame.icontexture = icon | 1215 cellFrame.icontexture = icon |
1236 end | 1216 end |
1237 icon:SetTexCoord(unpack(CLASS_ICON_TCOORDS[e.person_class])) | 1217 icon:SetTexCoord(unpack(CLASS_ICON_TCOORDS[e.person_class])) |
1238 icon:Show() | 1218 icon:Show() |
1239 cellFrame.text:SetPoint("LEFT", icon, "RIGHT", 1, 0) | 1219 cellFrame.text:SetPoint("LEFT", icon, "RIGHT", 1, 0) |
1240 local color = class_colors[e.person_class] | 1220 local color = addon.class_colors[e.person_class] |
1241 cellFrame.text:SetTextColor(color.r,color.g,color.b,1) | 1221 cellFrame.text:SetTextColor(color.r,color.g,color.b,1) |
1242 else | 1222 else |
1243 if cellFrame.icontexture then | 1223 if cellFrame.icontexture then |
1244 cellFrame.icontexture:Hide() | 1224 cellFrame.icontexture:Hide() |
1245 cellFrame.text:SetPoint("LEFT", cellFrame, "LEFT") | 1225 cellFrame.text:SetPoint("LEFT", cellFrame, "LEFT") |
1525 hist_dropdownfuncs = dropdownfuncs{ | 1505 hist_dropdownfuncs = dropdownfuncs{ |
1526 ["Delete this loot event from history"] = function(rowi) | 1506 ["Delete this loot event from history"] = function(rowi) |
1527 local h = _d:GetUserData("DD history entry") | 1507 local h = _d:GetUserData("DD history entry") |
1528 local okay,err = addon:_delHistoryEntry (h.cols[2].OLu, h.itemlink) | 1508 local okay,err = addon:_delHistoryEntry (h.cols[2].OLu, h.itemlink) |
1529 if okay then | 1509 if okay then |
1530 addon:Print("Removed history entry %s from '%s'.", | 1510 addon:Print("Removed history entry %s from %s.", |
1531 h.itemlink, h.OLwho) | 1511 h.itemlink, addon:colorize(h.OLwho,h.OLclass)) |
1532 else | 1512 else |
1533 addon:Print(err) | 1513 addon:Print(err) |
1534 end | 1514 end |
1535 end, | 1515 end, |
1536 | 1516 |
1539 local name = h.OLwho | 1519 local name = h.OLwho |
1540 local player_i = addon.history.byname[name] | 1520 local player_i = addon.history.byname[name] |
1541 local gone = tremove (addon.history, player_i) | 1521 local gone = tremove (addon.history, player_i) |
1542 assert(gone.name == name) | 1522 assert(gone.name == name) |
1543 addon:_build_history_names() | 1523 addon:_build_history_names() |
1544 addon:Print("Removed player '%s' from history (%d total entries).", | 1524 addon:Print("Removed player %s from history (%d total entries).", |
1545 name, #gone.unique) | 1525 addon:colorize(name,gone.person_class), #gone.unique) |
1546 end, | 1526 end, |
1547 } | 1527 } |
1548 local hist_general_dropdown = gen_easymenu_table( | 1528 local hist_general_dropdown = gen_easymenu_table( |
1549 {{ | 1529 {{ |
1550 -- this is the dropdown title, text filled in on the fly | 1530 -- this is the dropdown title, text filled in on the fly |