-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix game menu
- Loading branch information
0 parents
commit 17305a1
Showing
5 changed files
with
1,214 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,320 @@ | ||
--## BY: Arina, 60 Warrior on Deathwing EU English. | ||
--## Use With Caution! ;) | ||
|
||
CS_ADDONORGANIZER_ADDONS_DISPLAYED = 22; | ||
CS_ADDONORGANIZER_ADDONSLINE_HEIGHT = 16; | ||
CS_AddOnOrganizer_Profiles = {}; | ||
CS_ADDONORGANIZER_VERSIONNUMBER = "1.1011"; | ||
BINDING_HEADER_CS_ADDONORGANIZER_SEP = "AddOnOrganizer"; | ||
BINDING_NAME_CS_ADDONORGANIZER_CONFIG = "Show / Hide"; | ||
|
||
local id; | ||
local CS_AddOnOrganizer_AddOnList = {}; | ||
|
||
function CS_AddOnOrganizer_OnLoad() | ||
this:RegisterEvent("PLAYER_LOGIN"); | ||
this:RegisterEvent("PLAYER_LOGOUT"); | ||
|
||
tinsert(UISpecialFrames,"CS_AddOnOrganizer_List"); | ||
|
||
|
||
SLASH_CS_ADDONORGANIZER1 = "/aoo"; | ||
SlashCmdList["CS_ADDONORGANIZER"] = function(msg) | ||
CS_AddOnOrganizer_ListShowHide(); | ||
end | ||
|
||
end | ||
|
||
function CS_AddOnOrganizer_OnEvent(event) | ||
if(event == "PLAYER_LOGIN")then | ||
--DEFAULT_CHAT_FRAME:AddMessage("|CFFFFFFFFCS_AddOnOrganizer|r |CFF00FF00Loaded|r"); | ||
--CS_AddOnOrganizer_Profiles = {[1] = {"Default (Only CS_AddOnOrganizer)","CS_AddOnOrganizer",},}; | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_ListShowHide() | ||
|
||
if (CS_AddOnOrganizer_List:IsVisible()) then | ||
HideUIPanel(CS_AddOnOrganizer_List_Profiles); | ||
HideUIPanel(CS_AddOnOrganizer_List); | ||
else | ||
CS_AddOnOrganizer_List_Title:SetText ("AddOnOrganizer v."..CS_ADDONORGANIZER_VERSIONNUMBER); | ||
ShowUIPanel(CS_AddOnOrganizer_List); | ||
CS_AddOnOrganizer_GetList(); | ||
CS_AddOnOrganizer_List_Update(); | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_GetList() | ||
local i; | ||
for i=1, GetNumAddOns(), 1 do | ||
local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(i); | ||
CS_AddOnOrganizer_AddOnList[i] = enabled; | ||
end | ||
end | ||
|
||
|
||
function CS_AddOnOrganizer_List_Update() | ||
local numaddons = GetNumAddOns(); | ||
local i; | ||
CS_AddOnOrganizer_List_AddOnCount:SetText("AddOns: |CFFFFFFFF"..numaddons.."|r"); | ||
CS_AddOnOrganizer_List_CountMiddle:SetWidth(CS_AddOnOrganizer_List_AddOnCount:GetWidth()); | ||
|
||
FauxScrollFrame_Update(CS_AddOnOrganizer_List_Scroll, numaddons, CS_ADDONORGANIZER_ADDONS_DISPLAYED, CS_ADDONORGANIZER_ADDONSLINE_HEIGHT, nil, nil, nil, CS_AddOnOrganizer_List_HighlightFrame, 293, 316 ) | ||
|
||
for i=1, CS_ADDONORGANIZER_ADDONS_DISPLAYED, 1 do | ||
local addonIndex = i + FauxScrollFrame_GetOffset(CS_AddOnOrganizer_List_Scroll); | ||
|
||
if ( addonIndex <= numaddons ) then | ||
local addonLogTitle = getglobal("CS_AddOnOrganizer_List_Title"..i); | ||
local addonTitleTag = getglobal("CS_AddOnOrganizer_List_Title"..i.."Tag"); | ||
local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(addonIndex); | ||
|
||
addonLogTitle:SetText(title); | ||
addonLogTitle:SetNormalTexture(""); | ||
|
||
local color = {r=0.7,g=0.7,b=0.7}; | ||
if(enabled and loadable)then | ||
color = {r=1.0,g=1.0,b=0.5}; | ||
elseif(enabled and not loadable)then | ||
color = {r=1.0,g=0.0,b=0.0}; | ||
end | ||
|
||
if(CS_AddOnOrganizer_AddOnList[addonIndex] == 1) then | ||
addonTitleTag:SetText("Enabled"); | ||
if(enabled)then | ||
addonTitleTag:SetTextColor(1.0,0.7,0.0); | ||
else | ||
addonTitleTag:SetTextColor(0.0,1.0,0.0); | ||
end | ||
else | ||
addonTitleTag:SetText("Disabled"); | ||
if(not enabled)then | ||
addonTitleTag:SetTextColor(1.0,0.7,0.0); | ||
else | ||
addonTitleTag:SetTextColor(1.0,0.0,0.0); | ||
end | ||
end | ||
|
||
addonLogTitle:SetTextColor(color.r, color.g, color.b); | ||
addonLogTitle.r = color.r; | ||
addonLogTitle.g = color.g; | ||
addonLogTitle.b = color.b; | ||
addonLogTitle:Show(); | ||
end | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_TitleButton_OnClick() | ||
local AddOnID = this:GetID() + FauxScrollFrame_GetOffset(CS_AddOnOrganizer_List_Scroll); | ||
local buttonID = this:GetID(); | ||
local addonTitleTag = getglobal("CS_AddOnOrganizer_List_Title"..buttonID.."Tag"); | ||
local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(AddOnID); | ||
|
||
if(CS_AddOnOrganizer_AddOnList[AddOnID] == 1) then | ||
addonTitleTag:SetText("Disabled"); | ||
if(not enabled)then | ||
addonTitleTag:SetTextColor(1.0,0.7,0.0); | ||
else | ||
addonTitleTag:SetTextColor(1.0,0.0,0.0); | ||
end | ||
CS_AddOnOrganizer_AddOnList[AddOnID] = 0; | ||
else | ||
addonTitleTag:SetText("Enabled"); | ||
if(enabled)then | ||
addonTitleTag:SetTextColor(1.0,0.7,0.0); | ||
else | ||
addonTitleTag:SetTextColor(0.0,1.0,0.0); | ||
end | ||
CS_AddOnOrganizer_AddOnList[AddOnID] = 1; | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_TitleButton_OnEnter() | ||
local buttonID = this:GetID() + FauxScrollFrame_GetOffset(CS_AddOnOrganizer_List_Scroll); | ||
local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(buttonID); | ||
local dependencies = GetAddOnDependencies(buttonID); | ||
local loadondemand = IsAddOnLoadOnDemand(buttonID); | ||
|
||
--DEFAULT_CHAT_FRAME:AddMessage(buttonID); | ||
if (title == nil) then | ||
title = "No Title"; | ||
end | ||
if (dependencies == nil) then | ||
dependencies = "No Dependencies"; | ||
end | ||
if(notes == nil) then | ||
notes = "No Notes"; | ||
end | ||
if(loadondemand) then | ||
loadondemand = "|CFF00FF00True|r"; | ||
else | ||
loadondemand = "|CFFFF0000False|r"; | ||
end | ||
|
||
if(loadable ~= nil)then | ||
GameTooltip_AddNewbieTip(name, 1.0, 1.0, 1.0, title.."\n"..notes.."\n|CFFFFFFFFAddon is Loadable:|r|CFF00FF00True|r\n".."|CFFFFFFFFLoadOnDemand:|r "..loadondemand.."\n|CFFFFFFFFDependencies:|r "..dependencies, 1); | ||
elseif(reason == "DISABLED") then | ||
GameTooltip_AddNewbieTip(name, 1.0, 1.0, 1.0, title.."\n"..notes.."\n|CFFFFFFFFAddon is Loadable:|r |CFFFF0000False|r\n|CFFFFFFFFReason:|r |CFFFF0000"..reason.."|r\n|CFFFFFFFFYou might still enable this addon.|r\n".."|CFFFFFFFFLoadOnDemand:|r "..loadondemand.."\n|CFFFFFFFFDependencies:|r "..dependencies, 1); | ||
else | ||
GameTooltip_AddNewbieTip(name, 1.0, 1.0, 1.0, title.."\n"..notes.."\n|CFFFFFFFFAddon is Loadable:|r|CFFFF0000 False|r\n|CFFFFFFFFReason:|r |CFFFF0000"..reason.."|r\n".."|CFFFFFFFFLoadOnDemand:|r "..loadondemand.."\n|CFFFFFFFFDependencies:|r "..dependencies, 1); | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_AcceptButton_OnClick() | ||
local i; | ||
local numaddons = GetNumAddOns(); | ||
local IsChanges = 0; | ||
local SaveIndex = 1; | ||
for i=1, numaddons, 1 do | ||
local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(i); | ||
if(CS_AddOnOrganizer_AddOnList[i] ~= enabled) then | ||
if (CS_AddOnOrganizer_AddOnList[i] == 1) then | ||
EnableAddOn(i); | ||
else | ||
DisableAddOn(i); | ||
end | ||
IsChanges = 1; | ||
end | ||
end | ||
CS_AddOnOrganizer_ListShowHide(); | ||
if(IsChanges == 1)then | ||
ReloadUI(); | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_ReloadUIButton() | ||
ReloadUI(); | ||
end | ||
|
||
function CS_AddOnOrganizer_EnableAll() | ||
local i; | ||
local numaddons = GetNumAddOns(); | ||
for i=1, numaddons, 1 do | ||
CS_AddOnOrganizer_AddOnList[i] = 1; | ||
if( i <= CS_ADDONORGANIZER_ADDONS_DISPLAYED)then | ||
local addonTitleTag = getglobal("CS_AddOnOrganizer_List_Title"..i.."Tag"); | ||
local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(i); | ||
addonTitleTag:SetText("Enabled"); | ||
if(enabled)then | ||
addonTitleTag:SetTextColor(1.0,0.7,0.0); | ||
else | ||
addonTitleTag:SetTextColor(0.0,1.0,0.0); | ||
end | ||
end | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_DisableAll() | ||
local i; | ||
local numaddons = GetNumAddOns(); | ||
for i=1, numaddons, 1 do | ||
CS_AddOnOrganizer_AddOnList[i] = 0; | ||
if( i <= CS_ADDONORGANIZER_ADDONS_DISPLAYED)then | ||
local addonTitleTag = getglobal("CS_AddOnOrganizer_List_Title"..i.."Tag"); | ||
local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(i); | ||
|
||
addonTitleTag:SetText("Disabled"); | ||
if(not enabled)then | ||
addonTitleTag:SetTextColor(1.0,0.7,0.0); | ||
else | ||
addonTitleTag:SetTextColor(1.0,0.0,0.0); | ||
end | ||
end | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_ProfilesShowHide() | ||
if (CS_AddOnOrganizer_List_Profiles:IsVisible()) then | ||
HideUIPanel(CS_AddOnOrganizer_List_Profiles); | ||
else | ||
ShowUIPanel(CS_AddOnOrganizer_List_Profiles); | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_Profiles_ProfilesDropDown_OnLoad() | ||
UIDropDownMenu_SetWidth(220); | ||
UIDropDownMenu_Initialize(this,CS_AddOnOrganizer_InitializeDropDown); | ||
--DEFAULT_CHAT_FRAME:AddMessage(table.getn(CS_AddOnOrganizer_Profiles)); | ||
|
||
end | ||
|
||
function CS_AddOnOrganizer_InitializeDropDown() | ||
local info; | ||
for i=1,table.getn(CS_AddOnOrganizer_Profiles) do | ||
info = {}; | ||
info.text = CS_AddOnOrganizer_Profiles[i][1]; | ||
info.func = CS_AddOnOrganizer_LoadProfile; | ||
UIDropDownMenu_AddButton(info); | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_LoadProfile() | ||
UIDropDownMenu_SetSelectedID(ProfilesDropDown, this:GetID()); | ||
CS_AddOnOrganizer_DisableAll(); | ||
local i; | ||
local numaddons = GetNumAddOns(); | ||
id = this:GetID(); | ||
for j=2,table.getn(CS_AddOnOrganizer_Profiles[this:GetID()]) do | ||
local loadname = CS_AddOnOrganizer_Profiles[this:GetID()][j]; | ||
for i=1, numaddons, 1 do | ||
local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo(i); | ||
local addonTitleTag = getglobal("CS_AddOnOrganizer_List_Title"..i.."Tag"); | ||
if (name == loadname) then | ||
CS_AddOnOrganizer_AddOnList[i] = 1; | ||
end | ||
end | ||
end | ||
CS_AddOnOrganizer_List_Update(); | ||
SaveProfileEditBox:SetText(CS_AddOnOrganizer_Profiles[this:GetID()][1]); | ||
end | ||
|
||
function CS_AddOnOrganizer_SaveProfile() | ||
local i,j; | ||
local ProfileText = SaveProfileEditBox:GetText(); | ||
local newKey; | ||
local found = false; | ||
|
||
if(not(ProfileText == "")) then | ||
|
||
newKey = table.getn(CS_AddOnOrganizer_Profiles) + 1; | ||
|
||
for i=1, table.getn(CS_AddOnOrganizer_Profiles) do | ||
if (CS_AddOnOrganizer_Profiles[i][1] == ProfileText) then | ||
newKey = i; | ||
found = true; | ||
end | ||
end | ||
|
||
if(not(found))then | ||
CS_AddOnOrganizer_Profiles[newKey] = {[1] = SaveProfileEditBox:GetText()}; | ||
DEFAULT_CHAT_FRAME:AddMessage("|CFF00FF00CS_AddOnOrganizer|r - |CFFFFFFFF"..SaveProfileEditBox:GetText().."|r has been |CFF00FF00ADDED|r to profiles list!"); | ||
else | ||
DEFAULT_CHAT_FRAME:AddMessage("|CFF00FF00CS_AddOnOrganizer|r - |CFFFFFFFF"..SaveProfileEditBox:GetText().."|r has been |CFF00FF00MODIFIED|r in the profiles list!"); | ||
end | ||
|
||
local numaddons = GetNumAddOns(); | ||
j=2; | ||
for i=1, numaddons, 1 do | ||
if(CS_AddOnOrganizer_AddOnList[i] == 1) then | ||
CS_AddOnOrganizer_Profiles[newKey][j] = GetAddOnInfo(i); | ||
j = j+1; | ||
end | ||
end | ||
else | ||
DEFAULT_CHAT_FRAME:AddMessage("|CFF00FF00CS_AddOnOrganizer|r - |CFFFF0000You have to write a name for the profile!|r"); | ||
end | ||
end | ||
|
||
function CS_AddOnOrganizer_DeleteProfile() | ||
if (not(id == nil)) then | ||
|
||
DEFAULT_CHAT_FRAME:AddMessage("|CFF00FF00CS_AddOnOrganizer|r - |CFFFF0000DELETED ID#"..id.."!|r"); | ||
table.remove(CS_AddOnOrganizer_Profiles,id); | ||
|
||
if(table.getn(CS_AddOnOrganizer_Profiles) == 0) then | ||
CS_AddOnOrganizer_Profiles = {}; | ||
id=nil; | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
## Interface: 11200 | ||
## Title: Add On Organizer | ||
## Notes: Lists and organizes all of you'r addons, let's you create global profiles. | ||
## SavedVariables: AddOnOrganizer_Profiles | ||
## Author: Christian Schubert | ||
AddOnOrganizer.xml |
Oops, something went wrong.