annotate Config.lua @ 48:2bf7eb1844cb v2.0-raw

commenting out prints
author Nenue
date Mon, 04 Jan 2016 07:56:08 -0500
parents 5341e4d84622
children c3166f700438
rev   line source
Nenue@45 1 ---
Nenue@45 2 -- @file-author@
Nenue@45 3 -- @project-revision@ @project-hash@
Nenue@45 4 -- @file-revision@ @file-hash@
Nenue@45 5 -- Created: 12/30/2015 1:35 AM
Nenue@45 6
Nenue@45 7 if not LibStub then
Nenue@45 8 print('Something has happened...')
Nenue@45 9 end
Nenue@45 10 local D = LibStub("AceAddon-3.0"):GetAddon("Devian")
Nenue@45 11 DevCon = D:NewModule("Config")
Nenue@45 12 local Cf, tinsert, ipairs, tostring = DevCon, table.insert, ipairs, tostring
Nenue@45 13 local PLAYER_REALM = UnitName("player") .. '-' .. GetRealmName()
Nenue@45 14 local db
Nenue@45 15
Nenue@45 16
Nenue@45 17 local SetOpt = function(info, value)
Nenue@45 18 db[info[#info]] = value
Nenue@45 19 end
Nenue@45 20 local GetOpt = function(info)
Nenue@45 21 return db[info[#info]]
Nenue@45 22 end
Nenue@45 23 local GetProfileList = function(info)
Nenue@45 24 local select = {}
Nenue@45 25 for i, profile in ipairs(db.profiles) do
Nenue@45 26 if i == db.workspace then
Nenue@45 27 profile[1] = '|cFFFFFF00'..profile[1]..'|r'
Nenue@45 28 elseif i == db.last_workspace then
Nenue@45 29 profile[1] = '|cFF00FF00'..profile[1]..'|r'
Nenue@45 30 end
Nenue@45 31 tinsert(select,tostring(i)..':'..profile[1])
Nenue@45 32 end
Nenue@45 33 return select
Nenue@45 34 end
Nenue@45 35 local GetAddOnList = function(id)
Nenue@45 36 local t = Cf.opts.args.addon.args
Nenue@45 37 for k, v in pairs(t) do
Nenue@45 38 k:match("addon_")
Nenue@45 39 t[k] = nil
Nenue@45 40 end
Nenue@45 41
Nenue@45 42
Nenue@45 43 end
Nenue@45 44 local SetSelectedToProfile = function(info, value)
Nenue@45 45 GetAddOnList(value)
Nenue@45 46 end
Nenue@45 47 local SetLoadedToProfile = function(info, value) end
Nenue@45 48 local SetProfile = function(info, value) end
Nenue@45 49 local LoadSelectedProfile = function() print('Load #', Cf.selected_profile) end
Nenue@45 50 function Cf:OnInitialize()
Nenue@45 51 db = DevianDB
Nenue@45 52 self.selected_profile = db.primary_channel
Nenue@45 53 end
Nenue@45 54
Nenue@45 55 function Cf:OnEnable()
Nenue@45 56
Nenue@45 57 D:Print('Options UI loaded')
Nenue@45 58 self.opts = {
Nenue@45 59 type = 'group',
Nenue@45 60 name = 'Devian',
Nenue@45 61 desc = 'Devkit in a nutshell',
Nenue@45 62 handler = Cf,
Nenue@45 63 set = SetOpt,
Nenue@45 64 get = GetOpt,
Nenue@45 65 args = {
Nenue@45 66 enabled = {
Nenue@45 67 type = 'toggle',
Nenue@45 68 name = 'Enable Print Handler',
Nenue@45 69 desc = 'Allows Devian to handle print() calls.',
Nenue@45 70 order = 10,
Nenue@45 71 },
Nenue@45 72 addon = {
Nenue@45 73 type = 'group',
Nenue@45 74 name = 'AddOns',
Nenue@45 75 order = 20,
Nenue@45 76 args= {
Nenue@45 77 selected_profile = {
Nenue@45 78 type = 'select',
Nenue@45 79 name = 'Profile',
Nenue@45 80 values = GetProfileList,
Nenue@45 81 set = function(info, value, ...) self.selected_profile = value print('select', value, ...) end,
Nenue@45 82 get = function(info) return self.selected_profile or 1 end,
Nenue@45 83 order = 10
Nenue@45 84 },
Nenue@45 85 load_selected = {
Nenue@45 86 func = LoadSelectedProfile,
Nenue@45 87 type = 'execute',
Nenue@45 88 name = 'Load Selected',
Nenue@45 89 desc = 'Save currently loaded AddOns as a profile.',
Nenue@45 90 order = 13,
Nenue@45 91 },
Nenue@45 92 t_header = {
Nenue@45 93 type = 'header',
Nenue@45 94 name = 'Addons',
Nenue@45 95 width = 'full',
Nenue@45 96 order = 15,
Nenue@45 97 },
Nenue@45 98 save_loaded = {
Nenue@45 99 func = SetLoadedToProfile,
Nenue@45 100 type = 'execute',
Nenue@45 101 name = 'Save Loaded',
Nenue@45 102 desc = 'Save currently loaded AddOns as a profile.',
Nenue@45 103 order = 400,
Nenue@45 104 },
Nenue@45 105 save_selected = {
Nenue@45 106 func = SetSelectedToProfile,
Nenue@45 107 type = 'execute',
Nenue@45 108 name = 'Save',
Nenue@45 109 desc = 'Save the selected AddOns as a profile.',
Nenue@45 110 order = 450,
Nenue@45 111 }
Nenue@45 112 }
Nenue@45 113 },
Nenue@45 114 channels = {
Nenue@45 115 type = 'group',
Nenue@45 116 name = 'Console',
Nenue@45 117 order = 30,
Nenue@45 118 args = {
Nenue@45 119 primary_channel = {
Nenue@45 120 type = 'select',
Nenue@45 121 name = 'Primary Channel',
Nenue@45 122 desc = 'Set the default output channel for untagged messages.',
Nenue@45 123 values = {},
Nenue@45 124 }
Nenue@45 125 }
Nenue@45 126 },
Nenue@45 127 tags = {
Nenue@45 128 type = 'group',
Nenue@45 129 name = 'Tags',
Nenue@45 130 order = 40,
Nenue@45 131 args = {
Nenue@45 132 enable_tag = {
Nenue@45 133 type = 'toggle',
Nenue@45 134 name ='Message prefix handling',
Nenue@45 135 desc = 'Enables direction of print() results to different channels based on the first whole word in the output.',
Nenue@45 136 }
Nenue@45 137 }
Nenue@45 138 },
Nenue@45 139 }
Nenue@45 140 }
Nenue@45 141
Nenue@45 142
Nenue@45 143 for i = 1, GetNumAddOns() do
Nenue@45 144 local name = GetAddOnInfo(i)
Nenue@45 145 local enableState, globalState = GetAddOnEnableState(playername, i), GetAddOnEnableState(nil, i)
Nenue@45 146 self.opts.args.addon.args['addon_'..i..'_desc'] = {
Nenue@45 147 type = 'description',
Nenue@45 148 name = name,
Nenue@45 149 width = 'single',
Nenue@45 150 order= (500+i*3)
Nenue@45 151 }
Nenue@45 152 self.opts.args.addon.args['addon_'..i..'_global'] = {
Nenue@45 153 type = 'toggle',
Nenue@45 154 name = '',
Nenue@45 155 get = function() return (GetAddOnEnableState(nil, i) == 2) and true or false end,
Nenue@45 156 set = function(info, value) EnableAddOn(i, value) end,
Nenue@45 157 width= 'half',
Nenue@45 158 order= (500+i*3+1)
Nenue@45 159 }
Nenue@45 160
Nenue@45 161 self.opts.args.addon.args['addon_'..i..'_char'] = {
Nenue@45 162 type = 'toggle',
Nenue@45 163 name = '',
Nenue@45 164 get = function() return (GetAddOnEnableState(GetUnitName('player'), i) == 1) and true or false end,
Nenue@45 165 set = function(info, value) EnableAddOn(PLAYER_REALM, value) end,
Nenue@45 166 width= 'half',
Nenue@45 167 order= (500+i*3+2)
Nenue@45 168 }
Nenue@45 169 end
Nenue@45 170
Nenue@45 171 LibStub("AceConfig-3.0"):RegisterOptionsTable("Devian", self.opts)
Nenue@45 172 self.diag = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("Devian", "Devian")
Nenue@45 173 end
Nenue@45 174
Nenue@45 175 function Cf:ChatCommand(input)
Nenue@45 176 InterfaceOptionsFrame_OpenToCategory(self.diag)
Nenue@45 177 InterfaceOptionsFrame_OpenToCategory(self.diag)
Nenue@45 178 end