WoWInterface SVN MultiScreenSupport

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /trunk
    from Rev 2 to Rev 3
    Reverse comparison

Rev 2 → Rev 3

MultiScreenSupport.lua
34,7 → 34,86
frame:SetPoint(point, MultiScreenSupportParent, relativePoint, xOfs, yOfs)
end
 
function MultiScreenSupport:tableMerge(first_table, second_table)
for k,v in pairs(second_table) do first_table[k] = v end
return first_table
end
 
function MultiScreenSupport:initSettings()
--[[MacroFrame_LoadUI()
TalentFrame_LoadUI()
GuildFrame_LoadUI()
Garrison_LoadUI()
GuildBankFrame_LoadUI()
AuctionFrame_LoadUI()
CollectionsJournal_LoadUI()
BlackMarket_LoadUI()
Calendar_LoadUI()
EncounterJournal_LoadUI()
LookingForGuildFrame_LoadUI()
ItemAlteration_LoadUI()
ItemUpgrade_LoadUI()
ArchaeologyFrame_LoadUI()
VoidStorage_LoadUI()
BarberShopFrame_LoadUI()
ItemSocketingFrame_LoadUI()
TradeSkillFrame_LoadUI()
InspectFrame_LoadUI()
ClassTrainerFrame_LoadUI()]]
--BattlefieldMinimap_LoadUI() --CAN'T be move correctly anyway
 
local MSSVersion = GetAddOnMetadata("MultiScreenSupport", "Version");
 
if type(_G['multiscreensupportsave']) ~= "table" or _G['multiscreensupportsave']['MSSVersion'] < '2.0' then
_G['multiscreensupportsave'] = {
standart = {
["PVEFrame"] = true,
["CharacterFrame"] = true,
["PlayerTalentFrame"] = true,
["SpellBookFrame"] = true,
["AchievementFrame"] = true,
["FriendsFrame"] = true,
["TradeSkillFrame"] = true,
["GuildFrame"] = true,
["CollectionsJournal"] = true,
["MerchantFrame"] = true,
["GossipFrame"] = true,
["MailFrame"] = true,
--["EventTraceFrame"] = true, MOVABLE
["GarrisonCapacitiveDisplayFrame"] = true,
["GarrisonRecruiterFrame"] = true,
["AuctionFrame"] = true,
["BlackMarketFrame"] = true,
["QuestFrame"] = true,
["MacroFrame"] = true,
["TimeManagerFrame"] = true,
["CalendarFrame"] = true,
["GarrisonLandingPage"] = true,
["EncounterJournal"] = true,
["LookingForGuildFrame"] = true,
["TransmogrifyFrame"] = true,
["ItemUpgradeFrame"] = true,
["ArchaeologyFrame"] = true,
["VoidStorageFrame"] = true,
["BarberShopFrame"] = true,
["ItemSocketingFrame"] = true,
["InspectFrame"] = true,
["GuildBankFrame"] = true,
["QuestLogPopupDetailFrame"] = true,
["ClassTrainerFrame"] = true,
},
specific = {
["WorldMapScreenAnchor"] = true,
["MinimapCluster"] = true,
}
}
end
 
_G['multiscreensupportsave']["MSSVersion"] = MSSVersion
end
 
function MultiScreenSupport:PLAYER_LOGIN(event)
local allActiveFramesOrder = {}
local allFramesOrder = {}
local j
local Resolution = GetCVar("gxResolution")
77,13 → 156,7
--width = 1280
--height = 720
 
TalentFrame_LoadUI()
GuildFrame_LoadUI()
Garrison_LoadUI()
GuildBankFrame_LoadUI()
AuctionFrame_LoadUI()
CollectionsJournal_LoadUI()
BlackMarket_LoadUI()
MultiScreenSupport:initSettings()
 
MultiScreenSupportParent = CreateFrame('Frame', 'MultiScreenSupportParent', UIParent)
MultiScreenSupportParent:SetFrameLevel(UIParent:GetFrameLevel())
97,35 → 170,7
local setting = {}
local specificSetting = {}
 
 
if type(_G['multiscreensupportsave']) ~= "table" then
_G['multiscreensupportsave'] = {
standart = {
["PVEFrame"] = true,
["CharacterFrame"] = true,
["PlayerTalentFrame"] = true,
["SpellBookFrame"] = true,
["AchievementFrame"] = true,
["FriendsFrame"] = true,
["TradeSkillFrame"] = true,
["GuildFrame"] = true,
["CollectionsJournal"] = true,
["MerchantFrame"] = true,
["GossipFrame"] = true,
["MailFrame"] = true,
--["EventTraceFrame"] = true, MOVABLE
["GarrisonCapacitiveDisplayFrame"] = true,
["GarrisonRecruiterFrame"] = true,
["AuctionFrame"] = true,
["BlackMarketFrame"] = true,
["QuestFrame"] = true,
},
specific = {
["WorldMapScreenAnchor"] = true,
["MinimapCluster"] = true,
}
}
end
_G['MultiScreenSupportChildren'] = {}
 
local childs = { UIParent:GetChildren() }
i = 2
156,7 → 201,12
return _G['multiscreensupportsave']['standart'][childname]
end
}
table.insert(allFramesOrder, childname)
_G['MultiScreenSupportChildren'][childname] = true
if _G['multiscreensupportsave']['standart'][childname] then
table.insert(allActiveFramesOrder, childname)
else
table.insert(allFramesOrder, childname)
end
i = i+1
end
end
164,14 → 214,33
end
end
 
table.sort(allActiveFramesOrder)
table.sort(allFramesOrder)
j=1
j=2
table.foreach(allActiveFramesOrder, function(k,v)
setting[v].order = j
j=j+1
end)
if j > 2 then
setting['enabled'] = {
order = 1,
name = "Enabled",
type = "header"
}
j=j+1
setting['available'] = {
order = j,
name = "Available",
type = "header"
}
j=j+1
end
table.foreach(allFramesOrder, function(k,v)
setting[v].order = j
j=j+1
end)
 
config = {
local config = {
name = "MultiScreenSupport",
handler = MultiScreenSupport,
type = "group",
208,7 → 277,7
end
end
 
specificconfig = {
local specificconfig = {
name = "MultiScreenSupport Specific options",
handler = MultiScreenSupport,
type = "group",
218,11 → 287,11
AceConfig:RegisterOptionsTable("MultiScreenSupport", config)
AceConfig:RegisterOptionsTable("MultiScreenSupport_specific", specificconfig)
 
local SetDefaultOpttion = AceConfigDialog:AddToBlizOptions("MultiScreenSupport","MultiScreenSupport "..GetAddOnMetadata("MultiScreenSupport", "Version"))
local SetDefaultOpttion = AceConfigDialog:AddToBlizOptions("MultiScreenSupport","MultiScreenSupport ".._G['multiscreensupportsave']["MSSVersion"])
SetDefaultOpttion.default = function() _G['multiscreensupportsave'] = { standart = {}, specific = {} } end
 
SetDefaultOpttion = AceConfigDialog:AddToBlizOptions("MultiScreenSupport_specific","MultiScreenSupport specific frame","MultiScreenSupport "..GetAddOnMetadata("MultiScreenSupport", "Version"))
SetDefaultOpttion.default = function() SliceCommander:ResetOptions() end
SetDefaultOpttion = AceConfigDialog:AddToBlizOptions("MultiScreenSupport_specific","MultiScreenSupport specific frame","MultiScreenSupport ".._G['multiscreensupportsave']["MSSVersion"])
SetDefaultOpttion.default = function() _G['multiscreensupportsave'] = { standart = {}, specific = {} } end
 
table.foreach(_G['multiscreensupportsave']['standart'], function(k,v)
if v and _G[k] then
235,11 → 304,112
MultiScreenSupport:setSpecificParentAnchor(_G[k])
end
end)
 
--to add specific addon frame like blizzard one.
MultiScreenSupport:RegisterEvent("ADDON_LOADED")
end
 
function MultiScreenSupport:ADDON_LOADED(event, addon)
--[[local addons = {
['Blizzard_MacroUI'] = true,
}
if addons[addon] then
print(addon)
end]]
local allActiveFramesOrder = {}
local allFramesOrder = {}
local setting = {}
local childs = { UIParent:GetChildren() }
i = 2
for _, child in ipairs(childs) do
if not child:IsForbidden() then
local childname = child:GetName()
if childname ~= 'MultiScreenSupportParent' and childname ~= nil and _G['MultiScreenSupportChildren'][childname] == nil then
local point, relativeTo, relativePoint, xOfs, yOfs = child:GetPoint()
if relativeTo == nil or relativeTo:GetName() == UIParent:GetName() then
setting[childname] = {
order = i,
name = childname,
desc = childname,
type = "toggle",
set = function(info,val)
if val then
MultiScreenSupport:setParentAnchor(child)
else
print('Reload UI is needed to reset a frame ankor')
end
_G['multiscreensupportsave']['standart'][childname] = val
end,
get = function(info)
if _G['multiscreensupportsave']['standart'][childname] == nil then
_G['multiscreensupportsave']['standart'][childname] = false
end
return _G['multiscreensupportsave']['standart'][childname]
end
}
_G['MultiScreenSupportChildren'][childname] = true
if _G['multiscreensupportsave']['standart'][childname] then
table.insert(allActiveFramesOrder, childname)
else
table.insert(allFramesOrder, childname)
end
i = i+1
end
end
end
end
 
table.sort(allActiveFramesOrder)
table.sort(allFramesOrder)
j=2
table.foreach(allActiveFramesOrder, function(k,v)
setting[v].order = j
j=j+1
end)
if j > 2 then
setting['enabled'] = {
order = 1,
name = "Enabled",
type = "header"
}
j=j+1
setting['available'] = {
order = j,
name = "Available",
type = "header"
}
j=j+1
end
table.foreach(allFramesOrder, function(k,v)
setting[v].order = j
j=j+1
end)
 
local addonconfig = {
name = "MultiScreenSupport Specific options",
handler = MultiScreenSupport,
type = "group",
args = setting
}
 
if j > 2 then
AceConfig:RegisterOptionsTable("MultiScreenSupport_"..addon, addonconfig)
 
SetDefaultOpttion = AceConfigDialog:AddToBlizOptions("MultiScreenSupport_"..addon, addon, "MultiScreenSupport ".._G['multiscreensupportsave']["MSSVersion"])
SetDefaultOpttion.default = function() _G['multiscreensupportsave'] = { standart = {}, specific = {} } end
 
table.foreach(_G['multiscreensupportsave']['standart'], function(k,v)
if v and _G[k] then
MultiScreenSupport:setParentAnchor(_G[k])
end
end)
end
--print(addon..' LOADED')
end
 
 
 
 
SLASH_MULTISCREENSUPPORT1 = "/MultiScreenSupport"
SLASH_MULTISCREENSUPPORT2 = "/MSS"
SlashCmdList["MULTISCREENSUPPORT"] = function(msg)
MultiScreenSupport.toc
1,8 → 1,8
## Interface: 60200
## Author: Tomate
## Version: 1.0
## Version: 2.0
## Title: MultiScreenSupport
## Notes: Eyefinity and Surround gaming assist to ank frame to the center monitor.
## Notes: Eyefinity and Surround gaming assist to anchor default UI panels to the center monitor.
## X-Embeds: Ace3
## X-Category: Interface Enhancements
## SavedVariables: multiscreensupportsave