annotate ObjectiveTracker/Schema.lua @ 39:92534dc793f2

- restore the previous QuestLogSelection after pulling for selection-restricted quest data; fixes icon mixups while quest map is open - moved progressbar builders into the schema environment, with all the other Frame.lua functions; prep for configuration access - relegate the various removal events to a framescript in their corresponding blocks; this takes care of resolving dead frames
author Nenue
date Thu, 21 Apr 2016 16:43:37 -0400
parents 1f8f9cc3d956
children 756e8aeb040b
rev   line source
Nenue@34 1 --- ${PACKAGE_NAME}
Nenue@34 2 -- @file-author@
Nenue@34 3 -- @project-revision@ @project-hash@
Nenue@34 4 -- @file-revision@ @file-hash@
Nenue@34 5 -- Created: 4/15/2016 11:36 PM
Nenue@34 6
Nenue@34 7 local B = select(2,...).frame
Nenue@34 8 local T = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame')
Nenue@34 9 local setmetatable, type, rawset = setmetatable, type, rawset
Nenue@38 10 local print = B.print('Schema')
Nenue@37 11 local lprint = B.print('Layout')
Nenue@37 12 local oprint = B.print('Objectives')
Nenue@34 13 T.defaults.Schema = setmetatable({}, {
Nenue@34 14 __newindex = function(schemas,layerName, layerTable)
Nenue@34 15 -- tracker/block/line
Nenue@34 16 if type(layerTable) == 'table' then
Nenue@37 17
Nenue@37 18 print('adding layer', layerName)
Nenue@37 19 for k,v in pairs(layerTable) do
Nenue@37 20 print(' incorporated schema', k)
Nenue@37 21 if type(v) == 'table' and k ~= 'default' then
Nenue@37 22 setmetatable(v, {
Nenue@37 23 __index = function(schemaTable, key)
Nenue@37 24 print(' substituting default "'..tostring(schemas[layerName].default[key])..'" for |cFF00FFFF', layerName..'|r.|cFF0088FF'..k..'|r.'..key)
Nenue@37 25 return schemas[layerName].default[key]
Nenue@37 26 end
Nenue@37 27 })
Nenue@37 28 end
Nenue@37 29 end
Nenue@34 30 rawset(schemas, layerName, setmetatable(layerTable, {
Nenue@34 31 __newindex = function(layerTable, schemaName, schemaTable)
Nenue@34 32 -- schema table
Nenue@34 33 if type(schemaTable) == 'table' then
Nenue@37 34 print('adding schema', schemaName, 'to', layerName, 'layers')
Nenue@37 35
Nenue@37 36
Nenue@34 37 rawset(layerTable, schemaName, setmetatable(schemaTable, {
Nenue@34 38 __index = function(schemaTable, key)
Nenue@37 39 print(' substituting default "'..tostring(schemas[layerName].default[key])..'" for |cFF00FFFF', layerName..'|r.|cFF0088FF'..schemaName..'|r.'..key)
Nenue@37 40 rawset(schemaTable, key, schemas[layerName].default[key])
Nenue@37 41 return schemas[layerName].default[key]
Nenue@34 42 end
Nenue@34 43 }))
Nenue@34 44 end
Nenue@34 45 end,
Nenue@34 46 }))
Nenue@34 47 end
Nenue@34 48 end
Nenue@34 49 })
Nenue@34 50
Nenue@37 51 T.defaults.Schema.tracker = {
Nenue@37 52 default = {
Nenue@37 53 headerbg = {'VERTICAL', 1, 1, 0.5, 0.5, 1, 1, 0.5, 0},
Nenue@38 54 headerFont = {[[Interface\Addons\SharedMedia_MyMedia\font\XOIREQE.TTF]], 13, 'OUTLINE'},
Nenue@38 55 headerHeight = 16,
Nenue@38 56 headerSpacing = 0,
Nenue@38 57 headerColor = {1,1,1,1},
Nenue@37 58 blockSpacing = 1,
Nenue@37 59 }
Nenue@37 60 }
Nenue@37 61 T.defaults.Schema.block = {
Nenue@37 62 default = {
Nenue@38 63 titleColor = {1, 1, 1, 1},
Nenue@37 64 titlebg = {'HORIZONTAL', 1, 0, .7, 0, 1, 0, .7, .125},
Nenue@37 65 textbg = {'HORIZONTAL', 0, 0, 0, 0, 0, 0, 0, 0.4 },
Nenue@37 66 selectionbg = {'HORIZONTAL', 1, 1, 1, 0, 1, 1, 1, 0.225},
Nenue@37 67 titleFont = {[[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 16, 'OUTLINE'},
Nenue@37 68 textFont = {[[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Regular.ttf]], 16, 'OUTLINE'},
Nenue@37 69 titleIndent = 4,
Nenue@37 70 titleSpacing = 3,
Nenue@37 71 selectionIndent = 5,
Nenue@37 72 textIndent = 3,
Nenue@37 73 textSpacing = 3,
Nenue@37 74 rewardSize = 24,
Nenue@34 75 },
Nenue@37 76 achievement = {
Nenue@37 77 titleColor = {0, 0.7, 1, 1},
Nenue@34 78 },
Nenue@37 79 achievement_account = {
Nenue@37 80 titleColor = {.35, 0.7, 1, 1},
Nenue@34 81 },
Nenue@37 82 daily = {
Nenue@37 83 titleColor = {0, 0.7, 1, 1},
Nenue@38 84 titlebg = {'HORIZONTAL', 0, .7, 1, 0, 0, 1, .7, .125},
Nenue@38 85 textbg = {'HORIZONTAL', 0, .7, 1, 0, 0, 1, .7, .1},
Nenue@37 86 },
Nenue@37 87 weekly = {
Nenue@37 88 titleColor = {.25, 0.7, 1, 1},
Nenue@38 89 titlebg = {'HORIZONTAL', 0, .35, .7, 0, 0, .35, .7, .125},
Nenue@38 90 textbg = {'HORIZONTAL', 0, .35, .7, .0, 0, .35, .7, .075 },
Nenue@37 91 },
Nenue@37 92 account = {
Nenue@38 93 titlebg = {'HORIZONTAL', .1, .1, .1, 0, .1, .1, .1, .125},
Nenue@38 94 textbg = {'HORIZONTAL', .1, .1, .1, 0, .1, .1, .1, .085 },
Nenue@37 95 },
Nenue@37 96 -- alliance
Nenue@37 97 faction_1 = {
Nenue@37 98 titlebg = {'HORIZONTAL', .2, .4, 1, 0.4, .2, .4, 1, .085 },
Nenue@37 99 textbg = {'HORIZONTAL', .2, .4, 1, 0.4, .2, .4, 1, .085 },
Nenue@37 100 },
Nenue@37 101 -- horde
Nenue@37 102 faction_2 = {
Nenue@37 103 titlebg = {'HORIZONTAL', .6, 0, 0.4, 0.4, .6, 0, 0.4, .085 },
Nenue@37 104 textbg = {'HORIZONTAL', .6, 0, 0.4, 0.4, .6, 0, 0.4, .085 },
Nenue@37 105 }
Nenue@37 106 }
Nenue@37 107 T.defaults.Schema.line = {
Nenue@37 108 default = {
Nenue@38 109 textColor = {1, 1, 1},
Nenue@37 110 textSpacing = 3,
Nenue@37 111 textIndent = 3,
Nenue@37 112 },
Nenue@37 113 completed = {
Nenue@39 114 textColor = {.5, 1, .5}
Nenue@37 115 },
Nenue@37 116 failed = {
Nenue@39 117 textColor = {1,.25,.25 }
Nenue@37 118 },
Nenue@37 119 autocomplete = {
Nenue@39 120 textColor = {.5,1,1 }
Nenue@37 121 },
Nenue@39 122 object = {
Nenue@37 123 textColor = {0,1,1}
Nenue@37 124 },
Nenue@37 125 monster = {
Nenue@37 126 textColor = {1,1,0}
Nenue@37 127 },
Nenue@37 128 item = {
Nenue@39 129 textColor = {1,.75,.75}
Nenue@38 130 },
Nenue@38 131 achievement_complete = {
Nenue@38 132 textColor = {1, 1, 1, 1},
Nenue@38 133 },
Nenue@38 134 achievement = {
Nenue@39 135 textColor = {0.5, 0.85, 1, 1},
Nenue@38 136 },
Nenue@38 137 achievement_account = {
Nenue@39 138 textColor = {.4, 0.7, 1, 1},
Nenue@38 139 },
Nenue@37 140 }
Nenue@37 141 T.defaults.Schema.widget = {
Nenue@37 142 progressbar = {
Nenue@34 143
Nenue@37 144 },
Nenue@37 145 timer = {
Nenue@34 146
Nenue@37 147 }
Nenue@39 148 }
Nenue@39 149
Nenue@39 150 T.defaults.Schema.statusbar = {
Nenue@39 151 default = {
Nenue@39 152 textFont = {[[Interface\Addons\SharedMedia_MyMedia\font\XOIREQE.TTF]], 11, 'OUTLINE'},
Nenue@39 153 textColor = {1,1,1,1},
Nenue@39 154 }
Nenue@34 155 }