vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
------------------------
------------------------
--                    --
--  TitanAtlas        --
--  11/21/2005        --
--  Dan Gilbert
--  loglow@gmail.com  --
--                    --
------------------------
------------------------



-----------------------
-- support for myAddOns
-----------------------
TitanAtlasDetails = {
        name = "TitanAtlas",
        version = "1.3",
        releaseDate = "November 21, 2005",
        author = "Dan Gilbert / Adsertor",
        email = "loglow@gmail.com",
        website = "http://www.ocdproductions.net/Atlas/",
        category = MYADDONS_CATEGORY_MAP
};



-- Constants
TITAN_PANEL_UPDATE_BUTTON = 1;
TITAN_PANEL_UDPATE_TOOLTIP = 2;
TITAN_PANEL_UPDATE_ALL = 3;
TITAN_PANEL_LABEL_SEPARATOR = "  "

TITAN_PANEL_BUTTON_TYPE_TEXT = 1;
TITAN_PANEL_BUTTON_TYPE_ICON = 2;
TITAN_PANEL_BUTTON_TYPE_COMBO = 3;
TITAN_PANEL_BUTTON_TYPE_CUSTOM = 4;

TITAN_ATLAS_ID = "Atlas";
TITAN_ATLAS_FREQUENCY = 1;


ATLAS_LOCALE = {
        menu = "Atlas",
        tooltip = "Atlas",
        button = "Atlas"
};

ATLAS_HINT = "Hint: Left-click to open Atlas.";
ATLAS_OPTIONS_SHOWMAPNAME = "Show Map Name";


function TitanOptionSlider_TooltipText(text, value) 
        return text .. GREEN_FONT_COLOR_CODE .. value .. FONT_COLOR_CODE_CLOSE;
end

function TitanPanelAtlasButton_OnLoad()
        -- register plugin
        this.registry = { 
                id = TITAN_ATLAS_ID,
                menuText = ATLAS_LOCALE["menu"],
                buttonTextFunction = "TitanPanelAtlasButton_GetButtonText",
                tooltipTitle = ATLAS_LOCALE["tooltip"],
                tooltipTextFunction = "TitanPanelAtlasButton_GetTooltipText",
                frequency = TITAN_ATLAS_FREQUENCY, 
                icon = "Interface\\AddOns\\TitanAtlas\\Images\\TitanAtlasIcon",
                iconWidth = 16,
                savedVariables = {
                        ShowIcon = 1,
                        ShowLabelText = 1,
                        ShowColoredText = TITAN_NIL
                }
        };
        this:RegisterEvent("ZONE_CHANGED");
        this:RegisterEvent("ZONE_CHANGED_INDOORS");
        this:RegisterEvent("ZONE_CHANGED_NEW_AREA");
        this:RegisterEvent("MINIMAP_ZONE_CHANGED");
        this:RegisterEvent("PLAYER_ENTERING_WORLD");
        this:RegisterEvent("VARIABLES_LOADED");
end

function TitanPanelAtlasButton_OnEvent()
        if(event == "VARIABLES_LOADED") then
                -----------------------
                -- support for myAddOns
                -----------------------
                if(myAddOnsFrame_Register) then
                        myAddOnsFrame_Register(TitanAtlasDetails);
                end
        end

        if(event == "ZONE_CHANGED_NEW_AREA") then
                        Atlas_OnShow();
        end
        this.zoneText = GetZoneText();
        this.subZoneText = GetSubZoneText();
end

function TitanPanelAtlasButton_GetButtonText(id)
        local retstr = "";

        -- supports turning off labels
        if (TitanGetVar(TITAN_ATLAS_ID, "ShowLabelText")) then  
                retstr = ATLAS_LOCALE["button"];
                if (AtlasOptions.AtlasMapName) then
                        retstr = retstr .. ": ";
                end
        end

        if (AtlasOptions.AtlasMapName) then
                local zoneName = AtlasText[ATLAS_DROPDOWN_LIST[AtlasOptions.AtlasZone]]["ZoneName"];
                if (TitanGetVar(TITAN_ATLAS_ID, "ShowColoredText")) then        
                        retstr = retstr .. TitanUtils_GetGreenText(zoneName);
                else
                        retstr = retstr .. TitanUtils_GetNormalText(zoneName);
                end
        end

        return retstr;
end

function TitanPanelAtlasButton_GetTooltipText()
        local retstr = "You are in " .. this.zoneText;
        if(this.subZoneText ~= "") then
                 retstr = retstr .. " (" .. this.subZoneText .. ")";
        end
        retstr = retstr .. ".\n" .. TitanUtils_GetGreenText(ATLAS_HINT);
        return retstr;
end

function TitanPanelRightClickMenu_PrepareAtlasMenu()
        TitanPanelRightClickMenu_AddTitle(TitanPlugins[TITAN_ATLAS_ID].menuText);
        
        info = {};
        info.text = ATLAS_OPTIONS_SHOWBUT;
        info.func = AtlasButton_Toggle;
        info.value = ATLAS_OPTIONS_SHOWBUT;
        info.checked = AtlasOptions.AtlasButtonShown;
        UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);

        info = {};
        info.text = ATLAS_OPTIONS_AUTOSEL;
        info.func = AtlasOptions_AutoSelectToggle;
        info.value = ATLAS_OPTIONS_AUTOSEL;
        info.checked = AtlasOptions.AtlasAutoSelect;
        UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);

        info = {};
        info.text = ATLAS_OPTIONS_SHOWMAPNAME;
        info.func = AtlasOptions_MapNameToggle;
        info.value = ATLAS_OPTIONS_SHOWMAPNAME;
        info.checked = AtlasOptions.AtlasMapName;
        UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);

        info = {};

        TitanPanelRightClickMenu_AddSpacer();   

        TitanPanelRightClickMenu_AddToggleIcon(TITAN_ATLAS_ID);
        TitanPanelRightClickMenu_AddToggleLabelText(TITAN_ATLAS_ID);
        TitanPanelRightClickMenu_AddToggleColoredText(TITAN_ATLAS_ID);
        
        TitanPanelRightClickMenu_AddSpacer();   
        TitanPanelRightClickMenu_AddCommand(TITAN_PANEL_MENU_HIDE, TITAN_ATLAS_ID, TITAN_PANEL_MENU_FUNC_HIDE);
end

function TitalPanelAtlasButton_OnClick(button)
        if ( button == "LeftButton" ) then
                Atlas_Toggle();
        end
end

function DebugReport(msg, color, bSecondChatWindow)
        local r = 0.50;
        local g = 0.50;
        local b = 1.00;

        if (color) then
                r = color.r;
                g = color.g;
                b = color.b;
        end

        local frame = DEFAULT_CHAT_FRAME;
        if (bSecondChatWindow) then
                frame = ChatFrame2;
        end

        if (frame) then
                frame:AddMessage(msg,r,g,b);
        end
end