Skip to content

Commit

Permalink
initiate
Browse files Browse the repository at this point in the history
fix game menu
  • Loading branch information
Monteo committed Mar 1, 2017
0 parents commit 17305a1
Show file tree
Hide file tree
Showing 5 changed files with 1,214 additions and 0 deletions.
320 changes: 320 additions & 0 deletions AddOnOrganizer.lua
@@ -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
6 changes: 6 additions & 0 deletions AddOnOrganizer.toc
@@ -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

0 comments on commit 17305a1

Please sign in to comment.