diff gui.lua @ 109:ce45011fab4c

- Test for errors during startup before trying to manipulate data. - Thin encapsulation around dispositions. Abstract everything except the insertion into GUI dropdowns (that comes next).
author Farmbuyer of US-Kilrogg <farmbuyer@gmail.com>
date Wed, 08 Aug 2012 14:43:26 -0400
parents 04ccd12c2a41
children f93c1a93923b
line wrap: on
line diff
--- a/gui.lua	Mon Aug 06 14:57:14 2012 -0400
+++ b/gui.lua	Wed Aug 08 14:43:26 2012 -0400
@@ -23,25 +23,9 @@
 }
 eoi_st_otherrow_bgcolortable[""] = eoi_st_otherrow_bgcolortable["kill"]
 local eoi_st_otherrow_bgcolortable_default
-local eoi_st_lootrow_col3_colortable = {
-	normal	= { text = "",            r = "ff", g = "ff", b = "ff" },
-	shard	= { text = "shard",       r = "a3", g = "35", b = "ee" },
-	offspec	= { text = "offspec",     r = "c6", g = "9b", b = "6d" },
-	gvault	= { text = "guild vault", r = "33", g = "ff", b = "99" },
-}
-for k,v in pairs(eoi_st_lootrow_col3_colortable) do
-	-- for chat output by core code
-	v.hex = "|cff" .. v.r .. v.g .. v.b
-	-- for lib-st
-	v.r = tonumber(v.r,16)/255
-	v.g = tonumber(v.g,16)/255
-	v.b = tonumber(v.b,16)/255
-	v.a = 1
-end
-addon.disposition_colors = eoi_st_lootrow_col3_colortable
+local eoi_st_lootrow_col3_colortable = addon.disposition_colors
 local function eoi_st_lootrow_col3_colortable_func (data, _, realrow)
-	local disp = data[realrow].disposition
-	return eoi_st_lootrow_col3_colortable[disp or 'normal']
+	return eoi_st_lootrow_col3_colortable[data[realrow].disposition]
 end
 local time_column1_used_mt = { __index = {
 	[2] = {value=""},
@@ -122,7 +106,7 @@
 
 -- Working around this bug:
 -- http://forums.wowace.com/showpost.php?p=295202&postcount=31
-if false then  -- XXX no longer needed?
+if false then  -- XXX no longer needed?   test on mop beta
 	local function fix_frame_level (level, ...)
 		for i = 1, select("#", ...) do
 			local button = select(i, ...)
@@ -369,14 +353,15 @@
 					{}
 				}
 				-- This is horrible. Must do better.
-				if e.extratext then for k,v in pairs(eoi_st_lootrow_col3_colortable) do
-					if v.text == e.extratext then
-						e.disposition = k ~= 'normal' and k or nil
-						--e.extratext = nil, not feasible
-						break
+				if e.extratext then
+					for disp,text in self:_iter_dispositions('from_notes_text') do
+						if text == e.extratext then
+							e.disposition = disp
+							break
+						end
 					end
-				end end
-				local ex = eoi_st_lootrow_col3_colortable[e.disposition or 'normal'].text
+				end
+				local ex = eoi_st_lootrow_col3_colortable[e.disposition].text
 				if e.bcast_from and display_bcast_from and e.extratext then
 					ex = e.extratext .. " (from " .. e.bcast_from .. ")"
 				elseif e.bcast_from and display_bcast_from then
@@ -993,7 +978,7 @@
 eoi_dropdownfuncs["Insert new loot entry"] = eoi_dropdownfuncs.df_INSERT
 eoi_dropdownfuncs["Insert new boss kill event"] = eoi_dropdownfuncs.df_INSERT
 eoi_dropdownfuncs["Mark as disenchanted"] = eoi_dropdownfuncs["Mark as normal"]
-eoi_dropdownfuncs["Mark as guild vault"] = eoi_dropdownfuncs["Mark as normal"]
+eoi_dropdownfuncs["Mark as ".._G.GUILD_BANK:lower()] = eoi_dropdownfuncs["Mark as normal"]
 eoi_dropdownfuncs["Mark as offspec"] = eoi_dropdownfuncs["Mark as normal"]
 eoi_dropdownfuncs["Delete remaining entries for this boss"] =
 	eoi_dropdownfuncs["Delete remaining entries for this day"]
@@ -1021,7 +1006,7 @@
 	{
 		"Mark as disenchanted%shard",
 		"Mark as offspec%offspec",
-		"Mark as guild vault%gvault",
+		"Mark as ".._G.GUILD_BANK:lower().."%gvault",
 		"Mark as normal|This is the default.  Selecting any 'Mark as <x>' action blanks out extra notes about who broadcast this entry, etc.",
 		"--",
 		"Rebroadcast this loot entry|Sends this loot event, including special notes, as if it just happened.",
@@ -1193,7 +1178,8 @@
 		end
 		eoi_player_dropdown[2].menuList =
 			gen_easymenu_table (raiders, {"Enter name...",CLOSE}, eoi_dropdownfuncs)
-		if e.disposition == 'shard' or e.disposition == 'gvault' then
+
+		if not addon:_test_disposition (e.disposition, 'can_reassign') then
 			eoi_player_dropdown[2].disabled = true
 			eoi_player_dropdown[2].tooltipTitle = "Cannot Reassign"
 			eoi_player_dropdown[2].tooltipText = "You must first mark this item as 'normal' or 'offspec' before reassignment."
@@ -2701,4 +2687,5 @@
 	end
 end
 
+addon.FILES_LOADED = addon.FILES_LOADED + 1
 -- vim:noet