r17828 - in branches: . AutoBar AutoBar/Art

0 views
Skip to first unread message

ace...@svn.wowace.com

unread,
Nov 23, 2006, 12:36:23 AM11/23/06
to clad...@gmail.com, wow...@googlegroups.com
Author: toadkiller
Date: 2006-11-23 00:36:05 -0500 (Thu, 23 Nov 2006)
New Revision: 17828

Added:
branches/AutoBar/
branches/AutoBar/Art/
branches/AutoBar/Art/draghandle-checked.tga
branches/AutoBar/Art/draghandle.tga
branches/AutoBar/AutoBar.toc
branches/AutoBar/AutoBar.xml
branches/AutoBar/AutoBarItemList.lua
branches/AutoBar/AutoBarProfile.lua
branches/AutoBar/Bindings.xml
branches/AutoBar/Core.lua
branches/AutoBar/Locale-deDE.lua
branches/AutoBar/Locale-enUS.lua
branches/AutoBar/Locale-frFR.lua
branches/AutoBar/Locale-koKR.lua
branches/AutoBar/Locale-zhCN.lua
branches/AutoBar/Locale-zhTW.lua
branches/AutoBar/Readme.txt
branches/AutoBar/libs/
Log:
.AutoBar
-TBC alpha

Added: branches/AutoBar/Art/draghandle-checked.tga
===================================================================
(Binary files differ)


Property changes on: branches/AutoBar/Art/draghandle-checked.tga
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream

Added: branches/AutoBar/Art/draghandle.tga
===================================================================
(Binary files differ)


Property changes on: branches/AutoBar/Art/draghandle.tga
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream

Added: branches/AutoBar/AutoBar.toc
===================================================================
--- branches/AutoBar/AutoBar.toc (rev 0)
+++ branches/AutoBar/AutoBar.toc 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,52 @@
+## Interface: 20000
+## Title: AutoBar |cff7fff7f -Ace2-|r
+## Title-deDE: Das AutoBar |cff7fff7f -Ace2-|r
+## Title-frFR: AutoBar |cff7fff7f -Ace2-|r
+## Title-koKR: 오토바(AutoBar) |cff7fff7f -Ace2-|r
+## Title-zhCN: 消耗品助手 |cff7fff7f -Ace2-|r
+## Title-zhTW: 消耗品助手(AutoBar) |cff7fff7f -Ace2-|r
+## Author: Toadkiller
+## Version: 2.00.00.01 alpha
+## Notes: Configurable set of buttons that automatically displays configured items in your pack for use. Intended primarily for consumables. Does not use up any action slots so you can save those for spells and abilities.
+## Notes-koKR: 가방안에 있는 소모성 아이템들을 조사하여 별도의 창에 표시합니다.
+## Notes-zhCN: 一组可配置的按钮,能自动从背包中寻找设定的物品供方便使用。
+## Notes-zhTW: 一組可配置的按鈕,能自動從背包中尋找設定的物品供方便使用。
+## DefaultState: enabled
+## UIType: 动作条
+## UIType-zhTW: 動作條
+## X-Category: Interface Enhancements
+## X-Website: http://www.curse-gaming.com/en/wow/addons-4430-1-autobar-toadkiller.html
+## X-RelSite-WoWI: 5502
+## X-RelSite-Curse: 4430
+## X-Credits: Saien the original author. Sayclub (Korean), PDI175 (Chinese traditional and simplified), Teodred (German)
+## OptionalDeps: Ace2, OmniCC, oSkin, CompostLib, DewdropLib, PeriodicTable
+## X-Embeds: Ace2, CompostLib, DewdropLib, PeriodicTable
+## SavedVariables: AutoBar_Config, AutoBarDB
+## SavedVariablesPerCharacter: AutoBarDBPC
+
+# Libraries
+libs\AceLibrary\AceLibrary.lua
+libs\AceOO\AceOO-2.0.lua
+libs\AceConsole\AceConsole-2.0.lua
+libs\AceEvent\AceEvent-2.0.lua
+libs\AceAddon\AceAddon-2.0.lua
+libs\AceDB\AceDB-2.0.lua
+libs\AceDebug\AceDebug-2.0.lua
+libs\AceLocale\AceLocale-2.2.lua
+libs\Dewdrop\Dewdrop-2.0.lua
+libs\PTEmbed\PTEmbed.lua
+libs\PTEmbedElemFood\PTEmbedElemFood.lua
+libs\PTEmbedElemEquipSets\PTEmbedElemEquipSets.lua
+libs\PTEmbedElemMisc\PTEmbedElemMisc.lua
+
+# Core
+Locale-enUS.lua
+Locale-koKR.lua
+Locale-zhCN.lua
+Locale-zhTW.lua
+Locale-deDE.lua
+Locale-frFR.lua
+AutoBarItemList.lua
+Core.lua
+AutoBar.xml
+AutoBarProfile.lua
\ No newline at end of file

Added: branches/AutoBar/AutoBar.xml
===================================================================
--- branches/AutoBar/AutoBar.xml (rev 0)
+++ branches/AutoBar/AutoBar.xml 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,78 @@
+<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
+C:\Projects\WoW\Bin\Interface\FrameXML\UI.xsd">
+ <Button name="AutoBarSAButtonTemplate" virtual="true" inherits="SecureActionButtonTemplate, ActionButtonTemplate">
+ <Size>
+ <AbsDimension x="36" y="36"/>
+ </Size>
+ <Scripts>
+ <OnEnter>
+ AutoBar.ButtonSetTooltip(this, nil);
+ </OnEnter>
+ <OnLeave>
+ this.updateTooltip = nil;
+ GameTooltip:Hide();
+ </OnLeave>
+ </Scripts>
+ </Button>
+
+ <Button name="AutoBarSAPopupButtonTemplate" virtual="true" inherits="AutoBarSAButtonTemplate">
+ <Scripts>
+ <PostClick>
+ AutoBar.PopupButtonPostClick(this, mousebutton);
+ </PostClick>
+ </Scripts>
+ </Button>
+
+ <Frame name="AutoBarFrame" movable="true" enableMouse="true" parent="UIParent" hidden="false" inherits="SecureStateHeaderTemplate">
+ <Anchors>
+ <Anchor point="CENTER">
+ <Offset x="0" y="0"/>
+ </Anchor>
+ </Anchors>
+ <Frames>
+ <CheckButton name="AutoBarAnchorFrameHandle" enableMouse="true" frameStrata="DIALOG" inherits="SecureActionButtonTemplate">
+ <Scripts>
+ <OnLoad>
+ this:RegisterForDrag("LeftButton");
+ this:RegisterForClicks("LeftButtonUp", "RightButtonUp");
+ </OnLoad>
+ <OnClick>
+ AutoBar:ClickHandle(arg1);
+ </OnClick>
+ <OnDragStart>
+ AutoBar:DragStart();
+ </OnDragStart>
+ <OnDragStop>
+ AutoBar:DragStop();
+ </OnDragStop>
+ <OnEnter>
+ if (not AutoBarProfile:GetProfile().hideConfigTooltips) then
+ GameTooltip:SetOwner(this, "ANCHOR_RIGHT");
+ GameTooltip:SetText(AUTOBAR_CONFIG_DRAGHANDLE);
+ GameTooltip:Show();
+ CursorUpdate();
+ end
+ </OnEnter>
+ <OnLeave>
+ GameTooltip:Hide();
+ </OnLeave>
+ </Scripts>
+ <Size>
+ <AbsDimension x="16" y="16" />
+ </Size>
+ <Anchors>
+ <Anchor point="CENTER" relativeTo="$parent" relativePoint="CENTER"/>
+ </Anchors>
+ <NormalTexture file="Interface\AddOns\AutoBar\Art\draghandle" />
+ <CheckedTexture file="Interface\AddOns\AutoBar\Art\draghandle-checked" />
+ </CheckButton>
+ <Frame name="AutoBarSSHeaderFrame" toplevel="true" movable="true" enableMouse="true" resizable="true" inherits="SecureStateHeaderTemplate">
+ <Size x="1" y="1"/>
+ <Anchors>
+ <Anchor point="CENTER" relativeTo="$parent" relativePoint="CENTER"/>
+ </Anchors>
+ </Frame>
+ </Frames>
+ </Frame>
+
+</Ui>

Added: branches/AutoBar/AutoBarItemList.lua
===================================================================
--- branches/AutoBar/AutoBarItemList.lua (rev 0)
+++ branches/AutoBar/AutoBarItemList.lua 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,810 @@
+--
+-- AutoBar
+-- Item List Database
+--
+-- Maintained by Azethoth / Toadkiller of Proudmoore. Original author Saien of Hyjal
+-- http://www.wowace.com/wiki/AutoBar
+-- http://www.curse-gaming.com/en/wow/addons-4430-1-autobar-toadkiller.html
+--
+
+AutoBarItemList = {};
+
+local L = AceLibrary("AceLocale-2.2"):new("AutoBar");
+local PT = PeriodicTableEmbed:GetInstance("1");
+
+
+local function sortList(a, b)
+ return a[2] < b[2];
+end
+
+
+-- Get set as a simple array of itemIds, ordered by their value in the set
+function AutoBarItemList:GetSetTable(set)
+ local setTable, cacheSet;
+ if type(set) == "string" then
+ local rset = PT:GetSet(set);
+ if rset and type(rset) == "string" then
+ setTable = PT:GetSetTable(set);
+ elseif type(rset) == "table" then
+ setTable = {};
+ for _, s in pairs(rset) do
+ cacheSet = self:GetSetTable(s);
+ for itemId, value in pairs(cacheSet) do
+ setTable[itemId] = value;
+ end
+ end
+ end
+ elseif type(set) == "table" then
+ setTable = {};
+ for _, s in pairs(set) do
+ cacheSet = self:GetSetTable(s);
+ for itemId, value in pairs(cacheSet) do
+ setTable[itemId] = value;
+ end
+ end
+ end
+
+ return setTable;
+end
+
+
+-- Get set as a simple array of itemIds, ordered by their value in the set
+function AutoBarItemList:GetSetItemsArray(set)
+ local itemArray = {};
+ local cacheSet = self:GetSetTable(set);
+ if (cacheSet) then
+ local sortedList = {};
+ local index = 1;
+ for itemId, value in pairs(cacheSet) do
+ sortedList[index] = { itemId, value };
+ index = index + 1;
+ end
+ table.sort(sortedList, sortList);
+ for i, j in ipairs(sortedList) do
+ itemArray[i] = j[1];
+ end
+ end
+ return itemArray;
+end
+
+
+function AutoBarItemList:OnInitialize()
+ -- Ok, step 1 is to start getting the raw data from PeriodicTable. Later we can use more of its functionality.
+ AutoBar_Category_Info["ANTI_VENOM"]["items"] = self:GetSetItemsArray("antivenom");
+ AutoBar_Category_Info["ARROWS"]["items"] = self:GetSetItemsArray("ammoarrows");
+ AutoBar_Category_Info["BULLETS"]["items"] = self:GetSetItemsArray("ammobullets");
+ AutoBar_Category_Info["THROWN"]["items"] = self:GetSetItemsArray("ammothrown");
+ AutoBar_Category_Info["BANDAGES"]["items"] = self:GetSetItemsArray("bandagesgeneral");
+ AutoBar_Category_Info["ALTERAC_BANDAGES"]["items"] = self:GetSetItemsArray("bandagesalterac");
+ AutoBar_Category_Info["ARATHI_BANDAGES"]["items"] = self:GetSetItemsArray("bandagesarathi");
+ AutoBar_Category_Info["WARSONG_BANDAGES"]["items"] = self:GetSetItemsArray("bandageswarsong");
+ AutoBar_Category_Info["EXPLOSIVES"]["items"] = self:GetSetItemsArray("explosives");
+ AutoBar_Category_Info["FISHING_LURES"]["items"] = self:GetSetItemsArray("fishinglures");
+ AutoBar_Category_Info["FISHING_GEAR"]["items"] = self:GetSetItemsArray("fishinggear");
+ AutoBar_Category_Info["FISHING_POLES"]["items"] = self:GetSetItemsArray("fishingpoles");
+ AutoBar_Category_Info["FOOD"]["items"] = self:GetSetItemsArray("foodregular");
+ AutoBar_Category_Info["FOOD_ARATHI"]["items"] = self:GetSetItemsArray("foodarathi");
+ AutoBar_Category_Info["FOOD_WARSONG"]["items"] = self:GetSetItemsArray("foodwarsong");
+ AutoBar_Category_Info["FOOD_COMBO"]["items"] = self:GetSetItemsArray("foodcombohealth");
+ AutoBar_Category_Info["FOOD_CONJURED"]["items"] = self:GetSetItemsArray("foodbreadconjured");
+ AutoBar_Category_Info["FOOD_PERCENT"]["items"] = self:GetSetItemsArray("foodperc");
+ AutoBar_Category_Info["FOOD_PERCENT_BONUS"]["items"] = self:GetSetItemsArray("foodpercbonus");
+ AutoBar_Category_Info["FOOD_PERCENT_COMBO"]["items"] = self:GetSetItemsArray("foodcomboperc");
+ AutoBar_Category_Info["FOOD_PET_BREAD"]["items"] = self:GetSetItemsArray("foodclassbread");
+ AutoBar_Category_Info["FOOD_PET_CHEESE"]["items"] = self:GetSetItemsArray("foodcheese");
+ AutoBar_Category_Info["FOOD_PET_FISH"]["items"] = self:GetSetItemsArray("foodclassfish");
+ AutoBar_Category_Info["FOOD_PET_FRUIT"]["items"] = self:GetSetItemsArray("foodfruit");
+ AutoBar_Category_Info["FOOD_PET_FUNGUS"]["items"] = self:GetSetItemsArray("foodfungus"); -- Now includes senjin combo ;-(
+ AutoBar_Category_Info["FOOD_PET_MEAT"]["items"] = self:GetSetItemsArray("foodclassmeat");
+ AutoBar_Category_Info["FOOD_WELL_FED"]["items"] = self:GetSetItemsArray("foodbonus");
+ AutoBar_Category_Info["FOOD_STRENGTH"]["items"] = self:GetSetItemsArray("foodstrength");
+ AutoBar_Category_Info["FOOD_AGILITY"]["items"] = self:GetSetItemsArray("foodagility");
+ AutoBar_Category_Info["FOOD_STAMINA"]["items"] = self:GetSetItemsArray("foodstamina");
+ AutoBar_Category_Info["FOOD_INTELLECT"]["items"] = self:GetSetItemsArray("foodintellect");
+ AutoBar_Category_Info["FOOD_SPIRIT"]["items"] = self:GetSetItemsArray("foodspirit");
+ AutoBar_Category_Info["FOOD_HPREGEN"]["items"] = self:GetSetItemsArray("foodregenhp");
+ AutoBar_Category_Info["FOOD_MANAREGEN"]["items"] = self:GetSetItemsArray("foodregenmana");
+ AutoBar_Category_Info["FOOD_OTHER"]["items"] = self:GetSetItemsArray("foodother");
+ AutoBar_Category_Info["HEALPOTIONS"]["items"] = self:GetSetItemsArray("potionheal");
+ AutoBar_Category_Info["ALTERAC_HEAL"]["items"] = self:GetSetItemsArray("potionhealalterac");
+ AutoBar_Category_Info["HEALTHSTONE"]["items"] = self:GetSetItemsArray("healthstone");
+ AutoBar_Category_Info["MINI_PET"]["items"] = self:GetSetItemsArray("minipet");
+ AutoBar_Category_Info["MINI_PET_HOLIDAY"]["items"] = self:GetSetItemsArray("minipetholiday");
+ AutoBar_Category_Info["MOUNTS"]["items"] = self:GetSetItemsArray("mounts");
+ AutoBar_Category_Info["MOUNTS_QIRAJI"]["items"] = self:GetSetItemsArray("mountsaq");
+ AutoBar_Category_Info["MANAPOTIONS"]["items"] = self:GetSetItemsArray("potionmana");
+ AutoBar_Category_Info["ALTERAC_MANA"]["items"] = self:GetSetItemsArray("potionmanaalterac");
+ AutoBar_Category_Info["REJUVENATION_POTIONS"]["items"] = self:GetSetItemsArray("potionrejuvenation");
+ AutoBar_Category_Info["DREAMLESS_SLEEP"]["items"] = self:GetSetItemsArray("potiondreamless");
+ AutoBar_Category_Info["MANASTONE"]["items"] = self:GetSetItemsArray("manastone");
+ AutoBar_Category_Info["OIL_MANA"]["items"] = self:GetSetItemsArray("oilmana");
+ AutoBar_Category_Info["OIL_WIZARD"]["items"] = self:GetSetItemsArray("oilwizard");
+ AutoBar_Category_Info["POISON-CRIPPLING"]["items"] = self:GetSetItemsArray("poisoncrippling");
+ AutoBar_Category_Info["POISON-DEADLY"]["items"] = self:GetSetItemsArray("poisondeadly");
+ AutoBar_Category_Info["POISON-INSTANT"]["items"] = self:GetSetItemsArray("poisoninstant");
+ AutoBar_Category_Info["POISON-MINDNUMBING"]["items"] = self:GetSetItemsArray("poisonmindnumbing");
+ AutoBar_Category_Info["POISON-WOUND"]["items"] = self:GetSetItemsArray("poisonwound");
+ AutoBar_Category_Info["RAGEPOTIONS"]["items"] = self:GetSetItemsArray("potionrage");
+ AutoBar_Category_Info["SHARPENINGSTONES"]["items"] = self:GetSetItemsArray("sharpeningstones");
+ AutoBar_Category_Info["WEIGHTSTONES"]["items"] = self:GetSetItemsArray("weightstones");
+ AutoBar_Category_Info["WATER"]["items"] = self:GetSetItemsArray("water");
+ AutoBar_Category_Info["WATER_CONJURED"]["items"] = self:GetSetItemsArray("waterconjured");
+ AutoBar_Category_Info["WATER_PERCENT"]["items"] = self:GetSetItemsArray("waterperc");
+ AutoBar_Category_Info["WATER_SPIRIT"]["items"] = self:GetSetItemsArray("waterspirit");
+end
+
+
+AutoBar_Category_Info = {
+ ["CUSTOM"] = {
+ ["description"] = AUTOBAR_CLASS_CUSTOM;
+ ["texture"] = "INV_Misc_Bandage_12",
+ ["custom"] = true;
+ ["items"] = { 19307 },
+ },
+ ["MINI_PET"] = {
+ ["description"] = AUTOBAR_CLASS_MINI_PET;
+ ["texture"] = "Ability_Creature_Poison_05";
+ ["arrangeOnUse"] = true,
+ },
+ ["MINI_PET_HOLIDAY"] = {
+ ["description"] = AUTOBAR_CLASS_MINI_PET_HOLIDAY;
+ ["texture"] = "INV_Misc_Bag_17";
+ ["arrangeOnUse"] = true,
+ },
+ ["AAACLEAR"] = {
+ ["description"] = AUTOBAR_CLASS_CLEAR;
+ ["texture"] = "INV_Misc_Fork&Knife";
+ ["items"] = {},
+ },
+ ["BANDAGES"] = {
+ ["description"] = AUTOBAR_CLASS_BANDAGES;
+ ["texture"] = "INV_Misc_Bandage_12";
+ ["targetted"] = true;
+ ["smarttarget"] = true;
+ },
+ ["ALTERAC_BANDAGES"] = {
+ ["description"] = AUTOBAR_CLASS_ALTERAC_BANDAGE;
+ ["texture"] = "INV_Misc_Bandage_12";
+ ["targetted"] = true;
+ ["location"] = AUTOBAR_ALTERACVALLEY;
+ ["smarttarget"] = true;
+ },
+ ["WARSONG_BANDAGES"] = {
+ ["description"] = AUTOBAR_CLASS_WARSONG_BANDAGE;
+ ["texture"] = "INV_Misc_Bandage_12";
+ ["targetted"] = true;
+ ["location"] = AUTOBAR_WARSONGGULCH;
+ ["smarttarget"] = true;
+ },
+ ["ARATHI_BANDAGES"] = {
+ ["description"] = AUTOBAR_CLASS_ARATHI_BANDAGE;
+ ["texture"] = "INV_Misc_Bandage_12";
+ ["targetted"] = true;
+ ["location"] = AUTOBAR_ARATHIBASIN;
+ ["smarttarget"] = true;
+ },
+ ["UNGORO_RESTORE"] = {
+ ["description"] = AUTOBAR_CLASS_UNGORORESTORE;
+ ["texture"] = "INV_Misc_Gem_Diamond_02";
+ ["targetted"] = true;
+ ["smarttarget"] = true;
+ ["limit"] = { ["downhp"] = { 670 } },
+ ["items"] = { 11562 },
+ },
+ ["ANTI_VENOM"] = {
+ ["description"] = AUTOBAR_CLASS_ANTIVENOM;
+ ["texture"] = "INV_Drink_14";
+ ["targetted"] = true;
+ ["smarttarget"] = true;
+ },
+ ----------------
+ ["POTION_AGILITY"] = {
+ ["texture"] = "INV_Potion_94",
+ ["description"] = AUTOBAR_CLASS_AGILITYPOTIONS,
+ ["items"] = {
+ 2457, -- Elixir of Minor Agility 4 60
+ 3390, -- Elixir of Lesser Agility 8 60
+ 8949, -- Elixir of Agility 15 60
+ 9187, -- Elixir of Greater Agility 25 60
+ 13452, -- Elixir of the Mongoose 25 60 2% crit
+ },
+ },
+ ["POTION_STRENGTH"] = {
+ ["texture"] = "INV_Potion_61",
+ ["description"] = AUTOBAR_CLASS_STRENGTHPOTIONS,
+ ["items"] = {
+ 2454, -- Elixir of Lion's Strength 4 60
+ 3391, -- Elixir of Ogre's Strength 8 60
+ 6662, -- Elixir of Giant Growth 8 60
+ 9206, -- Elixir of Giants 25 60
+ 13453, -- Elixir of Brute Force 18 60 18 sta
+ },
+ },
+ ["POTION_FORTITUDE"] = {
+ ["texture"] = "INV_Potion_43",
+ ["description"] = AUTOBAR_CLASS_FORTITUDEPOTIONS,
+ ["items"] = {
+ 2458, -- Elixir of Minor Fortitude 27 60
+ 3825, -- Elixir of Fortitude 120 60
+ },
+ },
+ ["POTION_INTELLECT"] = {
+ ["texture"] = "INV_Potion_10",
+ ["description"] = AUTOBAR_CLASS_INTELLECTPOTIONS,
+ ["items"] = {
+ 9179, -- Elixir of Greater Intellect 25 60
+ 13447, -- Elixir of the Sages 18 60 18 spi
+ },
+ },
+ ["POTION_WISDOM"] = {
+ ["texture"] = "INV_Potion_06",
+ ["description"] = AUTOBAR_CLASS_WISDOMPOTIONS,
+ ["items"] = {
+ 3383, -- Elixir of Wisdom 6 60
+ },
+ },
+ ["POTION_DEFENSE"] = {
+ ["texture"] = "INV_Potion_66",
+ ["description"] = AUTOBAR_CLASS_DEFENSEPOTIONS,
+ ["items"] = {
+ 5997, -- Elixir of Minor Defense 50 60
+ 3389, -- Elixir of Defense 150 60
+ 8951, -- Elixir of Greater Defense 250 60
+ 13445, -- Elixir of Superior Defense 450 60
+ },
+ },
+ ["POTION_TROLL"] = {
+ ["texture"] = "INV_Potion_80",
+ ["description"] = AUTOBAR_CLASS_TROLLBLOODPOTIONS,
+ ["items"] = {
+ 3382, -- Weak Troll's Blood Potion 2/5 60
+ 3388, -- Strong Troll's Blood Potion 6/5 60
+ 3826, -- Mighty Troll's Blood Potion 12/5 60
+ 20004, -- Major Troll's Blood Potion 20/5 60
+ },
+ },
+ ----------------
+ ["SCROLL_AGILITY"] = {
+ ["texture"] = "INV_Scroll_02",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_SCROLLOFAGILITY,
+ ["items"] = {
+ 3012, -- Scroll of Agility
+ 1477, -- Scroll of Agility II
+ 4425, -- Scroll of Agility III
+ 10309, -- Scroll of Agility IV
+ },
+ },
+ ["SCROLL_INTELLECT"] = {
+ ["texture"] = "INV_Scroll_01",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_SCROLLOFINTELLECT,
+ ["items"] = {
+ 955, -- Scroll of Intellect
+ 2290, -- Scroll of Intellect II
+ 4419, -- Scroll of Intellect III
+ 10308, -- Scroll of Intellect IV
+ 12458, -- Juju Guile 40
+ },
+ },
+ ["SCROLL_PROTECTION"] = {
+ ["texture"] = "INV_Scroll_07",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_SCROLLOFPROTECTION,
+ ["items"] = {
+ 3013, -- Scroll of Protection
+ 1478, -- Scroll of Protection II
+ 4421, -- Scroll of Protection III
+ 10305, -- Scroll of Protection IV
+ },
+ },
+ ["SCROLL_SPIRIT"] = {
+ ["texture"] = "INV_Scroll_01",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_SCROLLOFSPIRIT,
+ ["items"] = {
+ 1181, -- Scroll of Spirit
+ 1712, -- Scroll of Spirit II
+ 4424, -- Scroll of Spirit III
+ 10306, -- Scroll of Spirit IV
+ },
+ },
+ ["SCROLL_STAMINA"] = {
+ ["texture"] = "INV_Scroll_07",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_SCROLLOFSTAMINA,
+ ["items"] = {
+ 1180, -- Scroll of Stamina
+ 1711, -- Scroll of Stamina II
+ 4422, -- Scroll of Stamina III
+ 10307, -- Scroll of Stamina IV
+ },
+ },
+ ["SCROLL_STRENGTH"] = {
+ ["texture"] = "INV_Scroll_02",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_SCROLLOFSTRENGTH,
+ ["items"] = {
+ 954, -- Scroll of Strength 5
+ 2289, -- Scroll of Strength II 9
+ 4426, -- Scroll of Strength III 13
+ 10310, -- Scroll of Strength IV 17
+ 12451, -- Juju Power 30
+ },
+ },
+ ["BUFF_ATTACKPOWER"] = {
+ ["texture"] = "INV_Misc_MonsterScales_07",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_BUFF_ATTACKPOWER,
+ ["items"] = {
+ 12820, -- Winterfall Firewater 35 20m
+ 12460, -- Juju Might 40 30m
+ },
+ },
+ ["BUFF_ATTACKSPEED"] = {
+ ["texture"] = "INV_Misc_MonsterScales_17",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_BUFF_ATTACKSPEED,
+ ["items"] = {
+ 12450, -- Juju Flurry 3% 20s
+ },
+ },
+ ["BUFF_DODGE"] = {
+ ["texture"] = "INV_Misc_MonsterScales_17",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_BUFF_DODGE,
+ ["items"] = {
+ 12459, -- Juju Escape 5% 10s
+ },
+ },
+ ["BUFF_FROST"] = {
+ ["texture"] = "INV_Misc_MonsterScales_09",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_BUFF_FROST,
+ ["items"] = {
+ 12457, -- Juju Chill 15 10m
+ },
+ },
+ ["BUFF_FIRE"] = {
+ ["texture"] = "INV_Misc_MonsterScales_15",
+ ["targetted"] = true,
+ ["description"] = AUTOBAR_CLASS_BUFF_FIRE,
+ ["items"] = {
+ 12455, -- Juju Ember 15 10m
+ },
+ },
+ ----------------
+ ["FISHING_LURES"] = {
+ ["texture"] = "INV_Misc_Food_26",
+ ["targetted"] = "WEAPON",
+ ["description"] = L["FISHING_LURES"],
+ },
+ ["FISHING_GEAR"] = {
+ ["texture"] = "INV_Helmet_31",
+ ["description"] = L["FISHING_GEAR"],
+ },
+ ["FISHING_POLES"] = {
+ ["texture"] = "INV_Fishingpole_01",
+ ["description"] = L["FISHING_POLES"],
+ },
+ ----------------
+ ["HEALPOTIONS"] = {
+ ["description"] = AUTOBAR_CLASS_HEALPOTIONS;
+ ["texture"] = "INV_Potion_54";
+ ["limit"] = { ["downhp"] = { 70, 140, 140, 280, 455, 700, 800, 1050} },
+ },
+ ["HEALTHSTONE"] = {
+ ["description"] = AUTOBAR_CLASS_HEALTHSTONE;
+ ["texture"] = "INV_Stone_04";
+ },
+ ["WHIPPER_ROOT"] = {
+ ["description"] = AUTOBAR_CLASS_WHIPPER_ROOT;
+ ["texture"] = "INV_Misc_Food_55";
+ ["items"] = { 11951 },
+ ["limit"] = { ["downhp"] = { 700 } },
+ },
+ ["ALTERAC_HEAL"] = {
+ ["description"] = AUTOBAR_CLASS_BATTLEGROUNDHEALPOTIONS;
+ ["texture"] = "INV_Potion_39";
+ ["battleground"] = true;
+ },
+ ----------------
+ ["MANAPOTIONS"] = {
+ ["description"] = AUTOBAR_CLASS_MANAPOTIONS;
+ ["texture"] = "INV_Potion_76";
+ ["limit"] = { ["downmana"] = { 140, 280, 455, 700, 900, 900, 1350} },
+ },
+ ["MANASTONE"] = {
+ ["description"] = AUTOBAR_CLASS_MANASTONE;
+ ["texture"] = "INV_Misc_Gem_Emerald_01";
+ },
+ ["ALTERAC_MANA"] = {
+ ["description"] = AUTOBAR_CLASS_BATTLEGROUNDMANAPOTIONS;
+ ["texture"] = "INV_Potion_81";
+ ["battleground"] = true;
+ },
+ ["DREAMLESS_SLEEP"] = {
+ ["description"] = AUTOBAR_CLASS_DREAMLESS_SLEEP;
+ ["texture"] = "INV_Potion_83";
+ },
+ ----------------
+ ["NIGHT_DRAGONS_BREATH"] = {
+ ["description"] = AUTOBAR_CLASS_NIGHT_DRAGONS_BREATH;
+ ["texture"] = "INV_Misc_Food_45";
+ ["limit"] = { ["downhp"] = { 456 }, ["downmana"] = { 456 }, },
+ ["items"] = { 11952 },
+ },
+ ["REJUVENATION_POTIONS"] = {
+ ["description"] = AUTOBAR_CLASS_REJUVENATION_POTIONS;
+ ["texture"] = "INV_Potion_47";
+ ["limit"] = { ["downhp"] = { 150, 750, 1760 }, ["downmana"] = { 150, 750, 1760 }, },
+ },
+ ----------------
+ ["BATTLE_STANDARD"] = {
+ ["description"] = AUTOBAR_CLASS_BATTLESTANDARD;
+ ["texture"] = "INV_BannerPVP_01";
+ ["battleground"] = true;
+ ["items"] = {
+ 18606, -- Alliance Battle Standard
+ 18607, -- Horde Battle Standard
+ },
+ },
+ ["BATTLE_STANDARD_AV"] = {
+ ["description"] = AUTOBAR_CLASS_BATTLESTANDARDAV;
+ ["texture"] = "INV_BannerPVP_02";
+ ["location"] = AUTOBAR_ALTERACVALLEY;
+ ["items"] = {
+ 19045, -- Stormpike Battle Standard
+ 19046, -- Frostwolf Battle Standard
+ },
+ },
+ ["HOURGLASS_SAND"] = {
+ ["description"] = AUTOBAR_CLASS_BATTLESTANDARDAV;
+ ["texture"] = "INV_BannerPVP_02";
+ ["location"] = AUTOBAR_BWL;
+ ["items"] = {
+ 19183, -- Hourglass Sand
+ },
+ },
+ ["QUEST_ITEMS"] = {
+ ["description"] = AUTOBAR_CLASS_QUEST_ITEMS;
+ ["texture"] = "INV_BannerPVP_02";
+ ["arrangeOnUse"] = true;
+ ["items"] = {
+ 13892, -- Kodo Kombobulator
+ 9466, -- Orwin's Spade
+ 10699, -- Bramble
+ 9618, -- Muisek
+ 9619, -- Muisek
+ 9620, -- Muisek
+ 9621, -- Muisek
+ 9606, -- Muisek
+ 19036, -- Final Message
+ 8584, -- Dowsing
+ 9978,
+ 10687,
+ 10688,
+ 10689,
+ 10690,
+ 9437,
+ 9439,
+ 9442,
+ },
+ },
+ ----------------
+ ["RUNES"] = {
+ ["description"] = AUTOBAR_CLASS_DEMONIC_DARK_RUNES;
+ ["texture"] = "Spell_Shadow_SealOfKings";
+ ["limit"] = { ["downmana"] = { 900, 900 }, },
+ ["items"] = {
+ 20520, -- Dark Rune
+ 12662, -- Demonic Rune
+ },
+ },
+ ----------------
+ ["PROTECTION_ARCANE"] = {
+ ["description"] = AUTOBAR_CLASS_ARCANE_PROTECTION;
+ ["texture"] = "INV_Potion_83";
+ ["items"] = { 13461 },
+ },
+ ["PROTECTION_FIRE"] = {
+ ["description"] = AUTOBAR_CLASS_FIRE_PROTECTION;
+ ["texture"] = "INV_Potion_24";
+ ["items"] = { 6049, 13457 },
+ },
+ ["PROTECTION_FROST"] = {
+ ["description"] = AUTOBAR_CLASS_FROST_PROTECTION;
+ ["texture"] = "INV_Potion_20";
+ ["items"] = { 6050, 13456 },
+ },
+ ["PROTECTION_NATURE"] = {
+ ["description"] = AUTOBAR_CLASS_NATURE_PROTECTION;
+ ["texture"] = "INV_Potion_22";
+ ["items"] = { 6052, 13458 },
+ },
+ ["PROTECTION_SHADOW"] = {
+ ["description"] = AUTOBAR_CLASS_SHADOW_PROTECTION;
+ ["texture"] = "INV_Potion_23";
+ ["items"] = { 6048, 13459 },
+ },
+ ["PROTECTION_SPELLS"] = {
+ ["description"] = AUTOBAR_CLASS_SPELL_PROTECTION;
+ ["texture"] = "INV_Potion_29";
+ ["items"] = {
+ 20080 -- Sheen of Zanza
+ },
+ },
+ ["PROTECTION_HOLY"] = {
+ ["description"] = AUTOBAR_CLASS_HOLY_PROTECTION;
+ ["texture"] = "INV_Potion_09";
+ ["items"] = { 6051 },
+ ["noncombat"] = false,
+ },
+ ["PROTECTION_DAMAGE"] = {
+ ["description"] = AUTOBAR_CLASS_INVULNERABILITY_POTIONS;
+ ["texture"] = "INV_Potion_62";
+ ["items"] = { 3387 },
+ ["noncombat"] = false,
+ },
+ ["ACTION_POTIONS"] = {
+ ["description"] = AUTOBAR_CLASS_FREE_ACTION_POTION;
+ ["texture"] = "INV_Potion_04";
+ ["items"] = {
+ 20008, -- Living Action Potion
+ 5634, -- Free Action Potion
+ },
+ },
+ ----------------
+ ["HEARTHSTONE"] = {
+ ["description"] = AUTOBAR_CLASS_HEARTHSTONE;
+ ["texture"] = "INV_Misc_Rune_01";
+ ["items"] = {
+ 6948, -- HearthStone
+ },
+ },
+ ----------------
+ ["WATER"] = {
+ ["description"] = AUTOBAR_CLASS_WATER;
+ ["texture"] = "INV_Drink_10";
+ ["noncombat"] = true,
+ },
+ ["WATER_PERCENT"] = {
+ ["description"] = AUTOBAR_CLASS_WATER_PERCENT;
+ ["texture"] = "INV_Drink_04";
+ ["noncombat"] = true,
+ },
+ ["WATER_CONJURED"] = {
+ ["description"] = AUTOBAR_CLASS_WATER_CONJURED;
+ ["texture"] = "INV_Drink_18";
+ ["noncombat"] = true,
+ },
+ ["WATER_SPIRIT"] = {
+ ["description"] = AUTOBAR_CLASS_WATER_SPIRIT;
+ ["texture"] = "INV_Drink_16";
+ ["noncombat"] = true,
+ },
+ ["RAGEPOTIONS"] = {
+ ["description"] = AUTOBAR_CLASS_RAGEPOTIONS;
+ ["texture"] = "INV_Potion_24";
+ },
+ ["ENERGYPOTIONS"] = {
+ ["description"] = AUTOBAR_CLASS_ENERGYPOTIONS;
+ ["texture"] = "INV_Drink_Milk_05";
+ ["items"] = { 7676 },
+ },
+ ["SWIFTNESSPOTIONS"] = {
+ ["description"] = AUTOBAR_CLASS_SWIFTNESSPOTIONS;
+ ["texture"] = "INV_Potion_95";
+ ["items"] = { 20081, 2459, },
+ },
+ ["SOULSHARDS"] = {
+ ["description"] = AUTOBAR_CLASS_SOULSHARDS;
+ ["texture"] = "INV_Misc_Gem_Amethyst_02";
+ ["notusable"] = true;
+ ["items"] = { 6265 },
+ },
+ --------------
+ ["ARROWS"] = {
+ ["description"] = AUTOBAR_CLASS_ARROWS;
+ ["texture"] = "INV_Ammo_Arrow_02";
+ ["notusable"] = true;
+ },
+ ["BULLETS"] = {
+ ["description"] = AUTOBAR_CLASS_BULLETS;
+ ["texture"] = "INV_Ammo_Bullet_02";
+ ["notusable"] = true;
+ },
+ ["THROWN"] = {
+ ["description"] = AUTOBAR_CLASS_THROWNWEAPON;
+ ["texture"] = "INV_Axe_19";
+ ["notusable"] = true;
+ },
+ --------------
+ ["FOOD"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD;
+ ["texture"] = "INV_Misc_Food_23";
+ ["noncombat"] = true,
+ },
+ ["FOOD_PERCENT"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_PERCENT;
+ ["texture"] = "INV_Misc_Food_60",
+ ["custom"] = true;
+ },
+ ["FOOD_PERCENT_BONUS"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_PERCENT_BONUS;
+ ["texture"] = "INV_Misc_Food_62",
+ ["custom"] = true;
+ },
+ ["FOOD_PERCENT_COMBO"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_PERCENT_COMBO;
+ ["texture"] = "INV_Food_ChristmasFruitCake_01",
+ ["custom"] = true;
+ },
+ ["FOOD_PET_BREAD"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_PET_BREAD;
+ ["texture"] = "INV_Misc_Food_35";
+ ["noncombat"] = true,
+ },
+ ["FOOD_PET_CHEESE"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_PET_CHEESE;
+ ["texture"] = "INV_Misc_Food_37";
+ ["noncombat"] = true,
+ },
+ ["FOOD_PET_FISH"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_PET_FISH;
+ ["texture"] = "INV_Misc_Fish_22";
+ ["noncombat"] = true,
+ },
+ ["FOOD_PET_FRUIT"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_PET_FRUIT;
+ ["texture"] = "INV_Misc_Food_19";
+ ["noncombat"] = true,
+ },
+ ["FOOD_PET_FUNGUS"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_PET_FUNGUS;
+ ["texture"] = "INV_Mushroom_05";
+ ["noncombat"] = true,
+ },
+ ["FOOD_PET_MEAT"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_PET_MEAT;
+ ["texture"] = "INV_Misc_Food_14";
+ ["noncombat"] = true,
+ },
+ ["FOOD_COMBO"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_COMBO;
+ ["texture"] = "INV_Misc_Food_33";
+ ["noncombat"] = true,
+ },
+ ["FOOD_CONJURED"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_CONJURED;
+ ["texture"] = "INV_Misc_Food_73CinnamonRoll";
+ ["noncombat"] = true,
+ },
+ ["FOOD_WELL_FED"] = {
+ ["description"] = L["FOOD_WELL_FED"];
+ ["texture"] = "INV_Misc_Food_47";
+ ["noncombat"] = true,
+ },
+ ["FOOD_STRENGTH"] = {
+ ["description"] = L["FOOD_STRENGTH"];
+ ["texture"] = "INV_Misc_Food_41";
+ ["noncombat"] = true,
+ },
+ ["FOOD_AGILITY"] = {
+ ["description"] = L["FOOD_AGILITY"];
+ ["texture"] = "INV_Misc_Fish_13";
+ ["noncombat"] = true,
+ },
+ ["FOOD_STAMINA"] = {
+ ["description"] = L["FOOD_STAMINA"];
+ ["texture"] = "INV_Misc_Food_65";
+ ["noncombat"] = true,
+ },
+ ["FOOD_INTELLECT"] = {
+ ["description"] = L["FOOD_INTELLECT"];
+ ["texture"] = "INV_Misc_Food_63";
+ ["noncombat"] = true,
+ },
+ ["FOOD_SPIRIT"] = {
+ ["description"] = L["FOOD_SPIRIT"];
+ ["texture"] = "INV_Misc_Fish_03";
+ ["noncombat"] = true,
+ },
+ ["FOOD_HPREGEN"] = {
+ ["description"] = L["FOOD_HPREGEN"];
+ ["texture"] = "INV_Misc_Fish_19";
+ ["noncombat"] = true,
+ },
+ ["FOOD_MANAREGEN"] = {
+ ["description"] = L["FOOD_MANAREGEN"];
+ ["texture"] = "INV_Drink_17";
+ ["noncombat"] = true,
+ },
+ ["FOOD_OTHER"] = {
+ ["description"] = L["FOOD_OTHER"];
+ ["texture"] = "INV_Drink_17";
+ ["noncombat"] = true,
+ },
+ ["FOOD_ARATHI"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_ARATHI;
+ ["texture"] = "INV_Misc_Food_33";
+ ["noncombat"] = true,
+ ["location"] = AUTOBAR_ARATHIBASIN;
+ },
+ ["FOOD_WARSONG"] = {
+ ["description"] = AUTOBAR_CLASS_FOOD_WARSONG;
+ ["texture"] = "INV_Misc_Food_33";
+ ["noncombat"] = true,
+ ["location"] = AUTOBAR_WARSONGGULCH;
+ },
+ --------------
+ ["SHARPENINGSTONES"] = {
+ ["description"] = AUTOBAR_CLASS_SHARPENINGSTONES;
+ ["texture"] = "INV_Stone_SharpeningStone_01";
+ ["targetted"] = "WEAPON";
+ },
+ ["WEIGHTSTONES"] = {
+ ["description"] = AUTOBAR_CLASS_WEIGHTSTONE;
+ ["texture"] = "INV_Stone_WeightStone_02";
+ ["targetted"] = "WEAPON";
+ },
+ --------------
+ ["POISON-CRIPPLING"] = {
+ ["description"] = AUTOBAR_CLASS_POISON_CRIPPLING;
+ ["texture"] = "INV_Potion_19";
+ ["targetted"] = "WEAPON";
+ },
+ ["POISON-DEADLY"] = {
+ ["description"] = AUTOBAR_CLASS_POISON_DEADLY;
+ ["texture"] = "Ability_Rogue_DualWeild";
+ ["targetted"] = "WEAPON";
+ },
+ ["POISON-INSTANT"] = {
+ ["description"] = AUTOBAR_CLASS_POISON_INSTANT;
+ ["texture"] = "Ability_Poisons";
+ ["targetted"] = "WEAPON";
+ },
+ ["POISON-MINDNUMBING"] = {
+ ["description"] = AUTOBAR_CLASS_POISON_MINDNUMBING;
+ ["texture"] = "Spell_Nature_NullifyDisease";
+ ["targetted"] = "WEAPON";
+ },
+ ["POISON-WOUND"] = {
+ ["description"] = AUTOBAR_CLASS_POISON_WOUND;
+ ["texture"] = "Ability_PoisonSting";
+ ["targetted"] = "WEAPON";
+ },
+ --------------
+ ["EXPLOSIVES"] = {
+ ["description"] = AUTOBAR_CLASS_EXPLOSIVES;
+ ["texture"] = "INV_Misc_Bomb_08";
+ ["nosmartcast"] = true;
+ ["targetted"] = true;
+ },
+ --------------
+ ["MOUNTS"] = {
+ ["description"] = AUTOBAR_CLASS_MOUNTS;
+ ["texture"] = "Ability_Mount_JungleTiger";
+ ["noncombat"] = true,
+ ["arrangeOnUse"] = true,
+ },
+ ["MOUNTS_QIRAJI"] = {
+ ["description"] = AUTOBAR_CLASS_MOUNTS_QIRAJI;
+ ["texture"] = "INV_Misc_QirajiCrystal_05";
+ ["noncombat"] = true,
+ ["arrangeOnUse"] = true,
+ ["location"] = AUTOBAR_AHN_QIRAJ;
+ },
+ --------------
+ ["OIL_MANA"] = {
+ ["texture"] = "INV_Potion_100";
+ ["targetted"] = "WEAPON";
+ ["description"] = AUTOBAR_CLASS_MANA_OIL;
+ },
+ ["OIL_WIZARD"] = {
+ ["texture"] = "INV_Potion_105";
+ ["targetted"] = "WEAPON";
+ ["description"] = AUTOBAR_CLASS_WIZARD_OIL;
+ },
+};
+

Added: branches/AutoBar/AutoBarProfile.lua
===================================================================
--- branches/AutoBar/AutoBarProfile.lua (rev 0)
+++ branches/AutoBar/AutoBarProfile.lua 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,771 @@
+--
+-- AutoBarProfile
+-- Copyright 2006+ Toadkiller of Proudmoore.
+--
+-- Profile System for AutoBar
+-- http://www.wowace.com/wiki/AutoBar
+-- http://www.curse-gaming.com/en/wow/addons-4430-1-autobar-toadkiller.html
+--
+
+-- Data Structure Example for Toadkiller:
+-- AutoBar = {
+-- buttons = {AutoBarProfile.basic + AutoBarProfile.<CLASS> + AutoBar_Config["_SHARED1"].buttons + AutoBar_Config["Toadkiller - Proudmoore"].buttons},
+-- display = {AutoBar_Config["Toadkiller - Proudmoore"].display or AutoBar_Config["_SHARED1"].display},
+-- smartSelfcast = AutoBarProfile.smartSelfcast + AutoBar_Config["_SHARED1"].smartSelfcast + AutoBar_Config["Toadkiller - Proudmoore"].smartSelfcast
+-- };
+-- AutoBar_Config["Toadkiller - Proudmoore"] = {
+-- buttons = {AutoBarProfile.basic + AutoBarProfile.<CLASS> + AutoBar_Config["_SHARED1"].buttons},
+-- display = {},
+-- profile = {},
+-- };
+-- AutoBar_Config["_SHARED1"] = {
+-- buttons = {},
+-- smartSelfcast = {},
+-- display = {},
+-- };
+-- AutoBar_Config["_DRUID"] = {
+-- buttons = {AutoBarProfile.DRUID},
+-- smartSelfcast = {},
+-- display = {},
+-- };
+-- AutoBar_Config["_BASIC"] = {
+-- buttons = {AutoBarProfile.basic},
+-- smartSelfcast = {},
+-- display = {},
+-- };
+-- AutoBarProfile.<CLASS>
+-- AutoBarProfile.basic
+-- AutoBarProfile.smartSelfcast (covers both basic & <CLASS>)
+
+AutoBarProfile = {};
+AutoBarProfile.MAX_SHARED_PROFILES = 4;
+
+local POTIONSLOT = 5;
+local BUFFSLOT1 = 7;
+local BUFFSLOT2 = 8;
+local FOODSLOT = 9;
+local BUFFSLOT = 12;
+local PETFOOD = 24;
+
+local L = AceLibrary("AceLocale-2.2"):new("AutoBar");
+
+-- Set up Basic Defaults
+function AutoBarProfile.InitializeBasic()
+ local MOUNTSLOT = 2;
+
+ AutoBarProfile.basic = {};
+ AutoBarProfile.basic[1] = { "HEARTHSTONE" };
+ AutoBarProfile.basic[MOUNTSLOT] = { "MOUNTS", "MOUNTS_QIRAJI" };
+ AutoBarProfile.basic[3] = { "BANDAGES", "ALTERAC_BANDAGES", "WARSONG_BANDAGES", "ARATHI_BANDAGES", "UNGORO_RESTORE" };
+ AutoBarProfile.basic[4] = { "HEALPOTIONS", "REJUVENATION_POTIONS", "WHIPPER_ROOT", "NIGHT_DRAGONS_BREATH", "PVP_HEALPOTIONS", "ALTERAC_HEAL", "HEALTHSTONE" };
+ AutoBarProfile.basic[POTIONSLOT] = {};
+ AutoBarProfile.basic[6] = { "PROTECTION_ARCANE", "PROTECTION_FROST", "PROTECTION_NATURE", "PROTECTION_SHADOW", "PROTECTION_FIRE", "PROTECTION_SPELLS" };
+ AutoBarProfile.basic[6].arrangeOnUse = true;
+ AutoBarProfile.basic[7] = {};
+ AutoBarProfile.basic[8] = {};
+ AutoBarProfile.basic[9] = {};
+ AutoBarProfile.basic[10] = { "FOOD_PERCENT", "FOOD", "FOOD_CONJURED" };
+ AutoBarProfile.basic[11] = { "FOOD_PERCENT_COMBO", "FOOD_COMBO", "FOOD_ARATHI", "FOOD_WARSONG" };
+ AutoBarProfile.basic[12] = {};
+ AutoBarProfile.basic[13] = { "SHARPENINGSTONES" };
+ AutoBarProfile.basic[14] = { "WEIGHTSTONE" };
+ AutoBarProfile.basic[15] = { "SWIFTNESSPOTIONS" };
+ AutoBarProfile.basic[16] = { "ACTION_POTIONS" };
+ AutoBarProfile.basic[17] = { "EXPLOSIVES" };
+ AutoBarProfile.basic[18] = { "FISHING_LURES", "FISHING_GEAR", "FISHING_POLES" };
+ AutoBarProfile.basic[19] = { "HOURGLASS_SAND", "BATTLE_STANDARD", "BATTLE_STANDARD_AV" };
+ AutoBarProfile.basic[20] = { "MINI_PET", "MINI_PET_HOLIDAY" };
+ AutoBarProfile.basic[21] = {};
+ AutoBarProfile.basic[22] = {};
+ AutoBarProfile.basic[23] = {};
+ AutoBarProfile.basic[24] = {};
+
+ AutoBarProfile.basic[MOUNTSLOT].arrangeOnUse = true;
+end
+
+-- Set up Basic Defaults
+function AutoBarProfile.InitializeClass()
+ AutoBarProfile.ROGUE = {};
+ AutoBarProfile.ROGUE[POTIONSLOT] = { "ENERGYPOTIONS" };
+ AutoBarProfile.ROGUE[FOODSLOT] = { "FOOD_WELL_FED", "FOOD_STRENGTH", "FOOD_AGILITY", "FOOD_STAMINA", "FOOD_SPIRIT", "FOOD_HPREGEN", "FOOD_PERCENT_BONUS", "FOOD_OTHER" };
+ AutoBarProfile.ROGUE[20] = { "POISON-MINDNUMBING" };
+ AutoBarProfile.ROGUE[21] = { "POISON-WOUND" };
+ AutoBarProfile.ROGUE[22] = { "POISON-CRIPPLING" };
+ AutoBarProfile.ROGUE[23] = { "POISON-DEADLY" };
+ AutoBarProfile.ROGUE[24] = { "POISON-INSTANT" };
+ AutoBarProfile.ROGUE[BUFFSLOT] = { "SCROLL_AGILITY", "SCROLL_PROTECTION", "SCROLL_SPIRIT", "SCROLL_STAMINA", "SCROLL_STRENGTH", "BUFF_ATTACKPOWER", "BUFF_ATTACKSPEED", "BUFF_DODGE", "BUFF_FROST", "BUFF_FIRE", "SCROLL_INTELLECT" };
+
+ AutoBarProfile.WARRIOR = {};
+ AutoBarProfile.WARRIOR[POTIONSLOT] = { "RAGEPOTIONS" };
+ AutoBarProfile.WARRIOR[FOODSLOT] = AutoBarProfile.ROGUE[FOODSLOT];
+ AutoBarProfile.WARRIOR[BUFFSLOT] = AutoBarProfile.ROGUE[BUFFSLOT];
+
+ AutoBarProfile.DRUID = {};
+ AutoBarProfile.DRUID[POTIONSLOT] = { "RUNES", "MANAPOTIONS", "REJUVENATION_POTIONS", "NIGHT_DRAGONS_BREATH", "PVP_MANAPOTIONS", "ALTERAC_MANA" };
+ AutoBarProfile.DRUID[BUFFSLOT1] = { "WATER", "WATER_PERCENT", "WATER_CONJURED" };
+ AutoBarProfile.DRUID[BUFFSLOT2] = { "WATER_SPIRIT" };
+ AutoBarProfile.DRUID[FOODSLOT] = { "FOOD_WELL_FED", "FOOD_STRENGTH", "FOOD_AGILITY", "FOOD_STAMINA", "FOOD_INTELLECT", "FOOD_SPIRIT", "FOOD_HPREGEN", "FOOD_MANAREGEN", "FOOD_PERCENT_BONUS", "FOOD_OTHER" };
+ AutoBarProfile.DRUID[BUFFSLOT] = AutoBarProfile.ROGUE[BUFFSLOT];
+
+ AutoBarProfile.HUNTER = {};
+ AutoBarProfile.HUNTER[POTIONSLOT] = AutoBarProfile.DRUID[POTIONSLOT];
+ AutoBarProfile.HUNTER[BUFFSLOT1] = AutoBarProfile.DRUID[BUFFSLOT1];
+ AutoBarProfile.HUNTER[BUFFSLOT2] = AutoBarProfile.DRUID[BUFFSLOT2];
+ AutoBarProfile.HUNTER[FOODSLOT] = AutoBarProfile.DRUID[FOODSLOT];
+ AutoBarProfile.HUNTER[PETFOOD] = { "FOOD_PET_BREAD", "FOOD_PET_CHEESE", "FOOD_PET_FISH", "FOOD_PET_FRUIT", "FOOD_PET_FUNGUS", "FOOD_PET_MEAT" };
+ AutoBarProfile.HUNTER[PETFOOD].arrangeOnUse = true;
+ AutoBarProfile.HUNTER[PETFOOD].rightClickTargetsPet = true;
+ AutoBarProfile.HUNTER[BUFFSLOT] = AutoBarProfile.ROGUE[BUFFSLOT];
+
+ AutoBarProfile.MAGE = {};
+ AutoBarProfile.MAGE[POTIONSLOT] = { "RUNES", "MANAPOTIONS", "REJUVENATION_POTIONS", "NIGHT_DRAGONS_BREATH", "PVP_MANAPOTIONS", "ALTERAC_MANA", "MANASTONE" };
+ AutoBarProfile.MAGE[BUFFSLOT1] = AutoBarProfile.DRUID[BUFFSLOT1];
+ AutoBarProfile.MAGE[BUFFSLOT2] = AutoBarProfile.DRUID[BUFFSLOT2];
+ AutoBarProfile.MAGE[FOODSLOT] = { "FOOD_WELL_FED", "FOOD_STAMINA", "FOOD_INTELLECT", "FOOD_HPREGEN", "FOOD_MANAREGEN" };
+ AutoBarProfile.MAGE[BUFFSLOT] = { "SCROLL_AGILITY", "SCROLL_PROTECTION", "SCROLL_SPIRIT", "SCROLL_STAMINA", "SCROLL_STRENGTH", "BUFF_ATTACKPOWER", "BUFF_ATTACKSPEED", "SCROLL_INTELLECT" };
+
+ AutoBarProfile.PALADIN = {};
+ AutoBarProfile.PALADIN[POTIONSLOT] = AutoBarProfile.DRUID[POTIONSLOT];
+ AutoBarProfile.PALADIN[BUFFSLOT1] = AutoBarProfile.DRUID[BUFFSLOT1];
+ AutoBarProfile.PALADIN[BUFFSLOT2] = AutoBarProfile.DRUID[BUFFSLOT2];
+ AutoBarProfile.PALADIN[FOODSLOT] = AutoBarProfile.DRUID[FOODSLOT];
+ AutoBarProfile.PALADIN[BUFFSLOT] = AutoBarProfile.DRUID[BUFFSLOT];
+
+ AutoBarProfile.PRIEST = {};
+ AutoBarProfile.PRIEST[POTIONSLOT] = AutoBarProfile.DRUID[POTIONSLOT];
+ AutoBarProfile.PRIEST[BUFFSLOT1] = AutoBarProfile.DRUID[BUFFSLOT1];
+ AutoBarProfile.PRIEST[BUFFSLOT2] = AutoBarProfile.DRUID[BUFFSLOT2];
+ AutoBarProfile.PRIEST[FOODSLOT] = AutoBarProfile.MAGE[FOODSLOT];
+ AutoBarProfile.PRIEST[BUFFSLOT] = AutoBarProfile.MAGE[BUFFSLOT];
+
+ AutoBarProfile.SHAMAN = {};
+ AutoBarProfile.SHAMAN[POTIONSLOT] = AutoBarProfile.DRUID[POTIONSLOT];
+ AutoBarProfile.SHAMAN[BUFFSLOT1] = AutoBarProfile.DRUID[BUFFSLOT1];
+ AutoBarProfile.SHAMAN[BUFFSLOT2] = AutoBarProfile.DRUID[BUFFSLOT2];
+ AutoBarProfile.SHAMAN[FOODSLOT] = AutoBarProfile.DRUID[FOODSLOT];
+ AutoBarProfile.SHAMAN[BUFFSLOT] = AutoBarProfile.DRUID[BUFFSLOT];
+
+ AutoBarProfile.WARLOCK = {};
+ AutoBarProfile.WARLOCK[POTIONSLOT] = AutoBarProfile.DRUID[POTIONSLOT];
+ AutoBarProfile.WARLOCK[BUFFSLOT1] = AutoBarProfile.DRUID[BUFFSLOT1];
+ AutoBarProfile.WARLOCK[BUFFSLOT2] = AutoBarProfile.DRUID[BUFFSLOT2];
+ AutoBarProfile.WARLOCK[FOODSLOT] = AutoBarProfile.MAGE[FOODSLOT];
+ AutoBarProfile.WARLOCK[BUFFSLOT] = AutoBarProfile.MAGE[BUFFSLOT];
+
+ for buttonIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ if (not AutoBarProfile[AutoBarProfile.CLASS][buttonIndex]) then
+ AutoBarProfile[AutoBarProfile.CLASS][buttonIndex] = {};
+ end
+ end
+ AutoBarProfile[AutoBarProfile.CLASS][FOODSLOT].arrangeOnUse = true;
+end
+
+AutoBarProfile.smartSelfcast = {};
+AutoBarProfile.smartSelfcast["BANDAGES"] = true;
+AutoBarProfile.smartSelfcast["ALTERAC_BANDAGES"] = true;
+AutoBarProfile.smartSelfcast["WARSONG_BANDAGES"] = true;
+AutoBarProfile.smartSelfcast["ARATHI_BANDAGES"] = true;
+AutoBarProfile.smartSelfcast["UNGORO_RESTORE"] = true;
+
+
+local function clone(o)
+ local new_o = {}; -- creates a new object
+ for i, v in pairs(o) do
+ if (type(v) == "table") then
+ new_o[i] = clone(v); -- store them in new table
+ else
+ new_o[i] = v; -- store them in new table
+ end
+ end
+
+ -- TODO: This is goddamn stupid. Replace / revisit this in 2.0
+ if (table.maxn(new_o) ~= table.maxn(o)) then
+ DEFAULT_CHAT_FRAME:AddMessage("clone bad maxn behaviour ");
+ DEFAULT_CHAT_FRAME:AddMessage("clone bad maxn behaviour " .. nil);
+ end
+
+ return new_o;
+end
+
+
+-- Clone the given profile, returning the clone
+function AutoBarProfile.CloneUserProfile()
+ if (AutoBarProfile:GetProfile()) then
+ return clone(AutoBarProfile:GetProfile());
+ else
+ return nil;
+ end
+end
+
+
+-- Clone the given profile, returning the clone
+function AutoBarProfile.CloneProfile(profileName)
+ if (AutoBar_Config[profileName]) then
+ return clone(AutoBar_Config[profileName]);
+ else
+ return nil;
+ end
+end
+
+
+-- Clone all profiles, return them in a table
+function AutoBarProfile.CloneProfiles()
+ local profilesClone = {};
+ profilesClone[AutoBar.currentPlayer] = AutoBarProfile.CloneProfile(AutoBar.currentPlayer);
+ for index = 1, AutoBarProfile.MAX_SHARED_PROFILES, 1 do
+ local sharedName = "_SHARED"..index;
+ profilesClone[sharedName] = AutoBarProfile.CloneProfile(sharedName);
+ end
+ if (AutoBar_Config[AutoBarProfile.CLASSPROFILE]) then
+ profilesClone[AutoBarProfile.CLASSPROFILE] = AutoBarProfile.CloneProfile(AutoBarProfile.CLASSPROFILE);
+ end
+ if (AutoBar_Config["_BASIC"]) then
+ profilesClone["_BASIC"] = AutoBarProfile.CloneProfile("_BASIC");
+ end
+ return profilesClone;
+end
+
+
+-- Revert all profiles from the cloned table
+function AutoBarProfile.RevertProfiles(profilesClone)
+ AutoBar_Config[AutoBar.currentPlayer] = profilesClone[AutoBar.currentPlayer];
+ for index = 1, AutoBarProfile.MAX_SHARED_PROFILES, 1 do
+ local sharedName = "_SHARED"..index;
+ AutoBar_Config[sharedName] = profilesClone[sharedName];
+ end
+ if (profilesClone[AutoBarProfile.CLASSPROFILE]) then
+ AutoBar_Config[AutoBarProfile.CLASSPROFILE] = profilesClone[AutoBarProfile.CLASSPROFILE];
+ end
+ if (profilesClone["_BASIC"]) then
+ AutoBar_Config["_BASIC"] = profilesClone["_BASIC"];
+ end
+end
+
+
+-- Set up space by profileName
+function AutoBarProfile.InitializeProfile(profileName)
+ if (not AutoBar_Config[profileName]) then
+ AutoBar_Config[profileName] = {};
+ end
+ if (not AutoBar_Config[profileName].buttons) then
+ AutoBar_Config[profileName].buttons = {};
+ end
+ if (not AutoBar_Config[profileName].display) then
+ AutoBar_Config[profileName].display = {};
+ end
+
+ local display = AutoBar_Config[profileName].display;
+ if (not display.rows) then
+ display.rows = 1;
+ end
+ if (not display.columns) then
+ display.columns = AUTOBAR_MAXBUTTONS;
+ end
+ if (not display.gapping) then
+ display.gapping = 3;
+ end
+ if (not display.alpha) then
+ display.alpha = 10;
+ end
+ if (not display.buttonWidth) then
+ display.buttonWidth = 36;
+ end
+ if (not display.buttonHeight) then
+ display.buttonHeight = 36;
+ end
+ if (not display.dockShiftX) then
+ display.dockShiftX = 0;
+ end
+ if (not display.dockShiftY) then
+ display.dockShiftY = 0;
+ end
+ if (not (display.popupToTop or display.popupToLeft or display.popupToRight or display.popupToBottom)) then
+ display.popupToTop = true;
+ end
+end
+
+
+-- Convert all slots to use tables and not single items
+function AutoBarProfile.ConvertSlots(profileName)
+ if (not AutoBar_Config[profileName]) then
+ return;
+ end
+ if (not AutoBar_Config[profileName].buttons) then
+ return;
+ end
+ local temp;
+ local buttons = AutoBar_Config[profileName].buttons;
+ for buttonIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ if (buttons[buttonIndex] and type(buttons[buttonIndex]) ~= "table") then
+ temp = buttons[buttonIndex];
+ buttons[buttonIndex] = { temp };
+ elseif (not buttons[buttonIndex]) then
+ buttons[buttonIndex] = {};
+ end
+
+ local categoryMap = {
+ ["FISHINGITEMS"] = "FISHING_LURES",
+ ["FOOD_INTELLIGENCE"] = "FOOD_INTELLECT",
+ ["FOOD_WATER"] = "FOOD_COMBO",
+ ["MOUNTS_TROLL"] = "MOUNTS",
+ ["MOUNTS_ORC"] = "MOUNTS",
+ ["MOUNTS_UNDEAD"] = "MOUNTS",
+ ["MOUNTS_TAUREN"] = "MOUNTS",
+ ["MOUNTS_HUMAN"] = "MOUNTS",
+ ["MOUNTS_NIGHTELF"] = "MOUNTS",
+ ["MOUNTS_DWARF"] = "MOUNTS",
+ ["MOUNTS_GNOME"] = "MOUNTS",
+ ["PVP_HEALPOTIONS"] = "AAACLEAR",
+ ["PVP_MANAPOTIONS"] = "AAACLEAR",
+ ["WEIGHTSTONE"] = "WEIGHTSTONES",
+ ["MANA_OIL"] = "OIL_MANA",
+ ["WIZARD_OIL"] = "OIL_WIZARD",
+ };
+ local slotInfo = buttons[buttonIndex];
+ for i = 1, table.maxn(slotInfo), 1 do
+ if (categoryMap[slotInfo[i]]) then
+ slotInfo[i] = categoryMap[slotInfo[i]];
+ end
+ end
+
+ -- Delete all adjacent duplicates (mostly mounts + the occasional user error)
+ local i = 2;
+ while (slotInfo[i]) do
+ if (slotInfo[i] == slotInfo[i - 1]) then
+ table.remove(slotInfo, i);
+ else
+ i = i + 1;
+ end
+ end
+ end
+end
+
+
+-- Convert all profile's slots to use tables and not single items
+-- Map obsolete categories to new ones
+function AutoBarProfile:Upgrade()
+ AutoBarProfile.ConvertSlots(AutoBar.currentPlayer);
+ AutoBarProfile.ConvertSlots("_SHARED1");
+ AutoBarProfile.ConvertSlots("_SHARED2");
+ AutoBarProfile.ConvertSlots("_SHARED3");
+ AutoBarProfile.ConvertSlots("_SHARED4");
+ AutoBarProfile.ConvertSlots(AutoBarProfile.CLASSPROFILE);
+ AutoBarProfile.ConvertSlots("_BASIC");
+
+ upgraded = true;
+end
+
+
+local upgraded = false;
+-- Set up defaults for the player if required
+function AutoBarProfile.Initialize()
+ if (not AutoBar_Config) then AutoBar_Config = {}; end
+ if (not AutoBar.smartSelfcast) then AutoBar.smartSelfcast = {}; end
+
+ if (not AutoBarProfile.CLASS) then
+ _, AutoBarProfile.CLASS = UnitClass("player");
+ AutoBarProfile.CLASSPROFILE = "_" .. AutoBarProfile.CLASS;
+ end
+
+ if (not upgraded) then
+ AutoBarProfile.Upgrade();
+ end
+
+ if (not AutoBarProfile[AutoBarProfile.CLASS]) then
+ AutoBarProfile.InitializeClass();
+ end
+
+ if (not AutoBarProfile[AutoBarProfile.basic]) then
+ AutoBarProfile.InitializeBasic();
+ end
+
+ AutoBarProfile.InitializeProfile(AutoBar.currentPlayer);
+ for index = 1, AutoBarProfile.MAX_SHARED_PROFILES, 1 do
+ local sharedName = "_SHARED"..index;
+ AutoBarProfile.InitializeProfile(sharedName);
+ end
+ if (not AutoBar_Config[AutoBarProfile.CLASSPROFILE]) then
+ AutoBarProfile.InitializeProfile(AutoBarProfile.CLASSPROFILE);
+ AutoBar_Config[AutoBarProfile.CLASSPROFILE].buttons = clone(AutoBarProfile[AutoBarProfile.CLASS]);
+ end
+ if (not AutoBar_Config[AutoBarProfile.CLASSPROFILE].buttons) then
+ AutoBar_Config[AutoBarProfile.CLASSPROFILE].buttons = clone(AutoBarProfile[AutoBarProfile.CLASS]);
+ end
+ if (not AutoBar_Config["_BASIC"]) then
+ AutoBarProfile.InitializeProfile("_BASIC");
+ AutoBar_Config["_BASIC"].buttons = clone(AutoBarProfile.basic);
+ end
+ if (not AutoBar_Config["_BASIC"].buttons) then
+ AutoBar_Config["_BASIC"].buttons = clone(AutoBarProfile.basic);
+ end
+
+ -- TODO add versioning & deal with upgrading
+
+ if (not AutoBarProfile:GetProfile()) then
+ AutoBarProfile:SetDefaults();
+ end
+ local profile = AutoBarProfile:GetProfile();
+ if (not profile.shared) then
+ profile.shared = "_SHARED1";
+ end
+ if (profile.layout == 1) then
+ profile.layoutProfile = AutoBar.currentPlayer;
+ elseif (profile.layout == 2) then
+ profile.layoutProfile = profile.shared;
+ else
+ profile.layout = 2;
+ profile.layoutProfile = profile.shared;
+ end
+ if (not AutoBar.buttons) then
+ AutoBarProfile:ButtonsCopy();
+ end
+
+ AutoBarProfile:DisplayCopy();
+end
+
+
+function AutoBarProfile:SetDefaults()
+ if (not AutoBarProfile:GetProfile()) then
+ AutoBar_Config[AutoBar.currentPlayer].profile = {};
+ end
+ if (AutoBar_Config[AutoBar.currentPlayer].buttons and table.maxn(AutoBar_Config[AutoBar.currentPlayer].buttons) > 0) then
+ AutoBarProfile:SetDefaultsSingle();
+ else
+ AutoBarProfile:SetDefaultsStandard();
+ end
+end
+
+
+function AutoBarProfile:SetDefaultsSingle()
+ local profile = AutoBarProfile:GetProfile();
+ profile.useCharacter = true;
+ profile.useShared = false;
+ profile.useClass = false;
+ profile.useBasic = false;
+ profile.edit = 1;
+ profile.shared = "_SHARED1";
+ profile.layout = 1;
+ profile.layoutProfile = AutoBar.currentPlayer;
+end
+
+
+function AutoBarProfile:SetDefaultsShared()
+ local profile = AutoBarProfile:GetProfile();
+ profile.useCharacter = true;
+ profile.useShared = true;
+ profile.useClass = false;
+ profile.useBasic = false;
+ profile.edit = 2;
+ profile.shared = "_SHARED1";
+ profile.layout = 2;
+ profile.layoutProfile = "_SHARED1";
+end
+
+
+function AutoBarProfile:SetDefaultsStandard()
+ local profile = AutoBarProfile:GetProfile();
+ profile.useCharacter = true;
+ profile.useShared = true;
+ profile.useClass = true;
+ profile.useBasic = true;
+ profile.edit = 2;
+ profile.shared = "_SHARED1";
+ profile.layout = 2;
+ profile.layoutProfile = "_SHARED1";
+end
+
+
+function AutoBarProfile:SetDefaultsBlankSlate()
+ local profile = AutoBarProfile:GetProfile();
+ profile.useCharacter = true;
+ profile.useShared = true;
+ profile.useClass = false;
+ profile.useBasic = false;
+ profile.edit = 2;
+ profile.shared = "_SHARED1";
+ profile.layout = 2;
+ profile.layoutProfile = "_SHARED1";
+end
+
+
+function AutoBarProfile:GetEditPlayer()
+ local editPlayer;
+ local profile = AutoBarProfile:GetProfile();
+ if (profile.edit == 1) then
+ editPlayer = AutoBar.currentPlayer;
+ elseif (profile.edit == 2) then
+ editPlayer = profile.shared;
+ elseif (profile.edit == 3) then
+ editPlayer = AutoBarProfile.CLASSPROFILE;
+ elseif (profile.edit == 4) then
+ editPlayer = "_BASIC";
+ else
+ profile.edit = 1;
+ editPlayer = AutoBar.currentPlayer;
+ end
+ return editPlayer;
+end
+
+
+function AutoBarProfile:ProfileEditingChanged()
+ AutoBarConfig.editPlayer = AutoBarProfile:GetEditPlayer();
+ AutoBarProfile.Initialize();
+ AutoBarProfile:ButtonsCopy();
+ AutoBarConfig.OnShow();
+ AutoBar.ConfigChanged();
+end
+
+
+function AutoBarProfile:GetProfile()
+ return AutoBar_Config[AutoBar.currentPlayer].profile;
+end
+
+
+function AutoBarProfile:InitializeLayoutProfile()
+ local profile = AutoBarProfile:GetProfile();
+ if (profile.layout == 1) then
+ profile.layoutProfile = AutoBar.currentPlayer;
+ else
+ profile.layoutProfile = profile.shared;
+ end
+end
+
+
+function AutoBarProfile:LayoutChanged()
+ AutoBarProfile:InitializeLayoutProfile();
+ AutoBarProfile:ProfileChanged();
+end
+
+
+function AutoBarProfile:ProfileChanged()
+ AutoBarProfile:DisplayCopy();
+ AutoBarProfile:ButtonsCopy();
+ AutoBarConfig.OnShow();
+ AutoBar.ConfigChanged();
+end
+
+
+function AutoBarProfile:DisplayChanged()
+ AutoBarProfile:DisplayCopy();
+ AutoBar.ConfigChanged();
+end
+
+
+function AutoBarProfile:ButtonsChanged()
+--/script DEFAULT_CHAT_FRAME:AddMessage(AutoBarProfile:GetProfile().layout);
+--/script DEFAULT_CHAT_FRAME:AddMessage(AutoBarProfile:GetProfile().shared);
+ AutoBarProfile:ButtonsCopy();
+ AutoBar.ConfigChanged();
+ AutoBar:LayoutUpdate();
+ AutoBarConfig:SlotsViewInitialize();
+ AutoBarConfig:SlotsInitialize();
+end
+
+
+function AutoBarProfile:DisplayCopy()
+ local profile = AutoBarProfile:GetProfile();
+
+ AutoBar.display = nil;
+ if (profile.layout == 1) then
+ AutoBar.display = AutoBar_Config[AutoBar.currentPlayer].display;
+ else
+ AutoBar.display = AutoBar_Config[profile.shared].display;
+ end
+end
+
+
+-- Assign buttons from eligible layer with precedence characterButtons > sharedButtons > classButtons > basicButtons
+function AutoBarProfile:ButtonsCopy()
+ local profile = AutoBarProfile:GetProfile();
+ local characterButtons, sharedButtons, classButtons, basicButtons;
+
+ if (profile.useCharacter and AutoBar_Config[AutoBar.currentPlayer].buttons) then
+ characterButtons = AutoBar_Config[AutoBar.currentPlayer].buttons;
+ end
+ if (profile.useShared and profile.shared and AutoBar_Config[profile.shared] and AutoBar_Config[profile.shared].buttons) then
+ sharedButtons = AutoBar_Config[profile.shared].buttons;
+ end
+ if (profile.useClass and AutoBar_Config[AutoBarProfile.CLASSPROFILE] and AutoBar_Config[AutoBarProfile.CLASSPROFILE].buttons) then
+ classButtons = AutoBar_Config[AutoBarProfile.CLASSPROFILE].buttons;
+ end
+ if (profile.useBasic and AutoBar_Config["_BASIC"] and AutoBar_Config["_BASIC"].buttons) then
+ basicButtons = AutoBar_Config["_BASIC"].buttons;
+ end
+
+ -- Copy the buttons
+ if (not AutoBar.buttons) then
+ AutoBar.buttons = {};
+ end
+ for buttonIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ AutoBar.buttons[buttonIndex] = nil;
+ if (characterButtons and characterButtons[buttonIndex] and characterButtons[buttonIndex][1]) then
+ AutoBar.buttons[buttonIndex] = clone(characterButtons[buttonIndex]);
+ elseif (sharedButtons and sharedButtons[buttonIndex] and sharedButtons[buttonIndex][1]) then
+ AutoBar.buttons[buttonIndex] = clone(sharedButtons[buttonIndex]);
+ elseif (classButtons and classButtons[buttonIndex] and classButtons[buttonIndex][1]) then
+ AutoBar.buttons[buttonIndex] = clone(classButtons[buttonIndex]);
+ elseif (basicButtons and basicButtons[buttonIndex] and basicButtons[buttonIndex][1]) then
+ AutoBar.buttons[buttonIndex] = clone(basicButtons[buttonIndex]);
+ else
+ AutoBar.buttons[buttonIndex] = {};
+ end
+ end
+
+ -- Copy the SmartCast info.
+ -- This is imperfect as an absense in a table can not overide a presence.
+ -- TODO: fold smartSelfcast into buttons.
+ AutoBar.smartSelfcast = {};
+ -- Basic and <CLASS> are already combined
+ if ((profile.useBasic or profile.useClass) and AutoBarProfile.smartSelfcast) then
+ for category in pairs(AutoBarProfile.smartSelfcast) do
+ if (not AutoBar.smartSelfcast[category]) then
+ AutoBar.smartSelfcast[category] = true;
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar.smartSelfcast category " .. category);
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar.smartSelfcast[category] " .. tostring(AutoBar.smartSelfcast[category]));
+ end
+ end
+ end
+ if (profile.useShared and profile.shared and AutoBar_Config[profile.shared] and AutoBar_Config[profile.shared].smartSelfcast) then
+ for _, category in pairs(AutoBar_Config[profile.shared].smartSelfcast) do
+ if (not AutoBar.smartSelfcast[category]) then
+ AutoBar.smartSelfcast[category] = true;
+ end
+ end
+ end
+ if (profile.useCharacter and AutoBar_Config[AutoBar.currentPlayer].smartSelfcast) then
+ for _, category in pairs(AutoBar_Config[AutoBar.currentPlayer].smartSelfcast) do
+ if (not AutoBar.smartSelfcast[category]) then
+ AutoBar.smartSelfcast[category] = true;
+ end
+ end
+ end
+end
+
+
+-- Assign buttons from classButtons and basicButtons layer to characterButtons
+function AutoBarProfile:ButtonsCopySingle()
+ local profile = AutoBarProfile:GetProfile();
+ local characterButtons, classButtons, basicButtons;
+
+ characterButtons = AutoBar_Config[AutoBar.currentPlayer].buttons;
+ classButtons = AutoBarProfile[AutoBarProfile.CLASS];
+ basicButtons = AutoBarProfile.basic;
+
+ -- Copy the buttons
+ for buttonIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ characterButtons[buttonIndex] = nil;
+ if (classButtons and classButtons[buttonIndex] and classButtons[buttonIndex][1]) then
+ characterButtons[buttonIndex] = clone(classButtons[buttonIndex]);
+ elseif (basicButtons and basicButtons[buttonIndex] and basicButtons[buttonIndex][1]) then
+ characterButtons[buttonIndex] = clone(basicButtons[buttonIndex]);
+ else
+ characterButtons[buttonIndex] = {};
+ end
+ end
+
+ -- Copy the SmartCast info.
+ AutoBar_Config[AutoBar.currentPlayer].smartSelfcast = {};
+ -- Basic and <CLASS> are already combined
+ if (AutoBarProfile.smartSelfcast) then
+ if (not AutoBar_Config[AutoBar.currentPlayer].smartSelfcast) then
+ AutoBar_Config[AutoBar.currentPlayer].smartSelfcast = {};
+ end
+ for category in pairs(AutoBarProfile.smartSelfcast) do
+ if (not AutoBar_Config[AutoBar.currentPlayer].smartSelfcast[category]) then
+ AutoBar_Config[AutoBar.currentPlayer].smartSelfcast[category] = true;
+ end
+ end
+ end
+end
+
+
+-- Assign buttons from classButtons and basicButtons layers to characterButtons and sharedButtons respectively
+function AutoBarProfile:ButtonsCopyShared()
+ local profile = AutoBarProfile:GetProfile();
+ local characterButtons, sharedButtons, classButtons, basicButtons;
+
+ characterButtons = AutoBar_Config[AutoBar.currentPlayer].buttons;
+ sharedButtons = AutoBar_Config[profile.shared].buttons;
+ classButtons = AutoBarProfile[AutoBarProfile.CLASS];
+ basicButtons = AutoBarProfile.basic;
+
+ -- Copy the buttons
+ for buttonIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ characterButtons[buttonIndex] = nil;
+ if (classButtons and classButtons[buttonIndex] and classButtons[buttonIndex][1]) then
+ characterButtons[buttonIndex] = clone(classButtons[buttonIndex]);
+ else
+ characterButtons[buttonIndex] = {};
+ end
+ sharedButtons[buttonIndex] = nil;
+ if (basicButtons and basicButtons[buttonIndex] and basicButtons[buttonIndex][1]) then
+ sharedButtons[buttonIndex] = clone(basicButtons[buttonIndex]);
+ else
+ sharedButtons[buttonIndex] = {};
+ end
+ end
+
+ -- Copy the SmartCast info.
+ AutoBar_Config[profile.shared].smartSelfcast = {};
+ -- Basic and <CLASS> are already combined
+ if (AutoBarProfile.smartSelfcast) then
+ if (not AutoBar_Config[profile.shared].smartSelfcast) then
+ AutoBar_Config[profile.shared].smartSelfcast = {};
+ end
+ for category in pairs(AutoBarProfile.smartSelfcast) do
+ if (not AutoBar_Config[profile.shared].smartSelfcast[category]) then
+ AutoBar_Config[profile.shared].smartSelfcast[category] = true;
+ end
+ end
+ end
+end
+
+
+-- Reset the defaults and clear out characterButtons and sharedButtons respectively
+function AutoBarProfile:ButtonsCopyStandard()
+ local profile = AutoBarProfile:GetProfile();
+ local characterButtons, sharedButtons, classButtons, basicButtons;
+ local classLayerButtons, basicLayerButtons;
+
+ characterButtons = AutoBar_Config[AutoBar.currentPlayer].buttons;
+ sharedButtons = AutoBar_Config[profile.shared].buttons;
+ classButtons = AutoBarProfile[AutoBarProfile.CLASS];
+ basicButtons = AutoBarProfile.basic;
+ classLayerButtons = AutoBar_Config[AutoBarProfile.CLASSPROFILE].buttons;
+ basicLayerButtons = AutoBar_Config["_BASIC"].buttons;
+
+ -- Copy the buttons
+ for buttonIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ characterButtons[buttonIndex] = {};
+ sharedButtons[buttonIndex] = {};
+ classLayerButtons[buttonIndex] = nil;
+ if (classButtons and classButtons[buttonIndex] and classButtons[buttonIndex][1]) then
+ classLayerButtons[buttonIndex] = clone(classButtons[buttonIndex]);
+ else
+ classLayerButtons[buttonIndex] = {};
+ end
+ basicLayerButtons[buttonIndex] = nil;
+ if (basicButtons and basicButtons[buttonIndex] and basicButtons[buttonIndex][1]) then
+ basicLayerButtons[buttonIndex] = clone(basicButtons[buttonIndex]);
+ else
+ basicLayerButtons[buttonIndex] = {};
+ end
+ end
+
+ -- Copy the SmartCast info.
+ AutoBar_Config[profile.shared].smartSelfcast = {};
+ -- Basic and <CLASS> are already combined
+ if (AutoBarProfile.smartSelfcast) then
+ if (not AutoBar_Config[profile.shared].smartSelfcast) then
+ AutoBar_Config[profile.shared].smartSelfcast = {};
+ end
+ for category in pairs(AutoBarProfile.smartSelfcast) do
+ if (not AutoBar_Config[profile.shared].smartSelfcast[category]) then
+ AutoBar_Config[profile.shared].smartSelfcast[category] = true;
+ end
+ end
+ end
+end
+
+
+-- /script DEFAULT_CHAT_FRAME:AddMessage(tostring(AutoBarProfile[AutoBarProfile.CLASS]))

Added: branches/AutoBar/Bindings.xml
===================================================================
--- branches/AutoBar/Bindings.xml (rev 0)
+++ branches/AutoBar/Bindings.xml 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,29 @@
+<Bindings>
+ <Binding name="AUTOBAR_CONFIG" header="AUTOBAR_SEP">
+ AutoBarConfig_Toggle();
+ </Binding>
+ <Binding name="AUTOBAR_BUTTON1"> AutoBar:SlotUse(1); </Binding>
+ <Binding name="AUTOBAR_BUTTON2"> AutoBar:SlotUse(2); </Binding>
+ <Binding name="AUTOBAR_BUTTON3"> AutoBar:SlotUse(3); </Binding>
+ <Binding name="AUTOBAR_BUTTON4"> AutoBar:SlotUse(4); </Binding>
+ <Binding name="AUTOBAR_BUTTON5"> AutoBar:SlotUse(5); </Binding>
+ <Binding name="AUTOBAR_BUTTON6"> AutoBar:SlotUse(6); </Binding>
+ <Binding name="AUTOBAR_BUTTON7"> AutoBar:SlotUse(7); </Binding>
+ <Binding name="AUTOBAR_BUTTON8"> AutoBar:SlotUse(8); </Binding>
+ <Binding name="AUTOBAR_BUTTON9"> AutoBar:SlotUse(9); </Binding>
+ <Binding name="AUTOBAR_BUTTON10"> AutoBar:SlotUse(10); </Binding>
+ <Binding name="AUTOBAR_BUTTON11"> AutoBar:SlotUse(11); </Binding>
+ <Binding name="AUTOBAR_BUTTON12"> AutoBar:SlotUse(12); </Binding>
+ <Binding name="AUTOBAR_BUTTON13"> AutoBar:SlotUse(13); </Binding>
+ <Binding name="AUTOBAR_BUTTON14"> AutoBar:SlotUse(14); </Binding>
+ <Binding name="AUTOBAR_BUTTON15"> AutoBar:SlotUse(15); </Binding>
+ <Binding name="AUTOBAR_BUTTON16"> AutoBar:SlotUse(16); </Binding>
+ <Binding name="AUTOBAR_BUTTON17"> AutoBar:SlotUse(17); </Binding>
+ <Binding name="AUTOBAR_BUTTON18"> AutoBar:SlotUse(18); </Binding>
+ <Binding name="AUTOBAR_BUTTON19"> AutoBar:SlotUse(19); </Binding>
+ <Binding name="AUTOBAR_BUTTON20"> AutoBar:SlotUse(20); </Binding>
+ <Binding name="AUTOBAR_BUTTON21"> AutoBar:SlotUse(21); </Binding>
+ <Binding name="AUTOBAR_BUTTON22"> AutoBar:SlotUse(22); </Binding>
+ <Binding name="AUTOBAR_BUTTON23"> AutoBar:SlotUse(23); </Binding>
+ <Binding name="AUTOBAR_BUTTON24"> AutoBar:SlotUse(24); </Binding>
+</Bindings>

Added: branches/AutoBar/Core.lua
===================================================================
--- branches/AutoBar/Core.lua (rev 0)
+++ branches/AutoBar/Core.lua 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,1710 @@
+---
+-- AutoBar
+-- Copyright 2004, 2005, 2006 original author.
+-- New Stuff Copyright 2006 Toadkiller of Proudmoore.
+
+-- Configurable set of 24 buttons that seeks out configured items
+-- in your pack for use. Intended primarily for consumables. Not
+-- for use with spells, skills, trinkets, or powers.
+--
+-- Maintained by Azethoth / Toadkiller of Proudmoore. Original author Saien of Hyjal
+-- http://www.wowace.com/wiki/AutoBar
+-- http://www.curse-gaming.com/en/wow/addons-4430-1-autobar-toadkiller.html
+
+-- Coming Attractions:
+-- Don't show buff items if buffed already
+-- On click bring config to front.
+-- Set operations / calculated categories.
+-- Multible bars or individually draggable buttons?
+-- Exchange profiles
+-- Hide Microbuttons option
+-- Indication of when an object being edited is obscured by a higher layer.
+-- Named Custom Categories, Named button ranges.
+-- Inventory
+
+-- Next Up:
+-- ItemClasses-2.0, UseItem-2.0, CursorItem-2.0, Tablet-2.0, Ace Locale, AceDB
+-- Bartender support?
+-- Named Slots
+-- Make popup stay when bringing it up from inside grid.
+
+-- 2.00.00.01
+-- Make blizz clock cooldown show up again
+-- Some progress on drag handle
+-- Got rid of Compost
+
+-- 2.00.00.00
+-- First rough cut. Using Secure State Header & Buttons for the bar & popups.
+-- Hacking around the lack of an inventory item button with itemId other than direct bag slot & by name.
+-- Oops, didnt ship the config. Doh!
+
+-- 1.12.07.07
+-- Final Ace Locale conversions
+
+-- 1.12.07.06
+-- Pet Food fruits now have 4 kinds of kimchi. Seems like a vegetable to me. Do pets eat delicious kimchi?
+-- Almost done integrating with PeriodicTable.
+-- Some new bonus foods: Spirit, Well Fed (sta & spi), Other (Dragonbreath Chili for now), Stamina (just stamina)
+-- Will need to manually edit food slot or reset to pick up this change. Existing Stamina items changed to the jsut stamina ones.
+
+-- 1.12.07.05
+-- Actually sort the PeriodicTable sets
+-- ArrangeOnUse inside a category as well. Not persistent across reloads yet. Only Mounts & Pets so far.
+-- Added a Checkbox for ActionBar buttons locking when AutoBar is locked.
+-- Fix drag & drop error caused by table.getn not returning anything remotely close to number of elements in the array.
+
+-- 1.12.07.04
+-- Heavy Crocolisk Stew
+-- Switched all but food to use PeriodicTable
+-- Rearranged some more of the localization strings. Much less spam in global space now.
+-- Fishing slot modified a bit so it lists fishing pole and some gear. (Requires reset or manual slot edit)
+-- Clicking it equips the pole then lucky fishing hat then click to use lures.
+-- Naturally you want to add your enchanted fishing gloves to the slot as well.
+
+-- 1.12.07.03
+-- French! Thank you so much Cinedelle!
+-- Config is now load on demand.
+-- Added rest of the percent foods for Halloween. (Requires reset or manual slot edit)
+-- Pets added, (Rogues need to manually add Pets / Holiday Pets)
+
+-- 1.12.07.02
+-- Restored lost changes to character & shared display edit.
+-- Acelocale 2.2
+-- Some more Ace Locale conversion
+
+-- 1.12.07.01
+-- Fixed error with smartSelfCast on the profile tab.
+
+-- 1.12.07
+-- Official Ace2 release.
+-- Chinese: PDI175
+
+-- 1.12.06.10 beta
+-- Make Drag Handle hideable again
+-- Dock to bottom right action bar, left or right side of it.
+
+-- 1.12.06.09
+-- Switch to Ace Event for timers
+-- Upgrade align buttons option to have any combination of vertical and horizontal alignment (9 options).
+-- Fix toc for Ace svn
+
+-- 1.12.06.08
+-- Korean + some more incremental ACE Locale changes for all languages.
+
+-- 1.12.06.07
+-- Renamed files ACE Locale style + some incremental ACE Locale changes for all languages.
+-- Deleted obsolete dependencies and files.
+-- Toc changes to support ace & ace wiki.
+
+-- 1.12.06.06
+-- Actually separate display editing from slots editing for Character vs Shared.
+-- This clears up a crasher & some non-obvious behavior after a reset.
+
+-- 1.12.06.05
+-- Lock all bars option for drag handle + 30 second timeout on the unlock. No more accidentally dragging action bar items around!
+-- Cleared up a case of algorithm necrosis
+-- Looks like Character layout got broken. Will be fixed next version. Use Shared layout for now.
+
+-- 1.12.06.04
+-- Fixed some Compost library issues.
+-- Fixed a couple of spots where non tables were fed into the slots list again.
+
+-- 1.12.06.03
+-- Remove single item slot option. Its pretty pointless & prevents all kinds of options.
+-- Compost-2.0
+-- oSkin support checkbox on profile tab. Random results on choose category / view category dialog though.
+
+-- 1.12.06.02
+-- Fix embedded library issue
+
+-- 1.12.06.01
+-- Ace 2
+-- Dewdrop-2.0
+-- Boiled clams moved to bonus category
+-- Do not flash the popup when using keybinding
+-- Harvest festival foods
+-- Korean, tx Sayclub!
+
+-- 1.12.05
+-- Ok, here it is: the release version of the profiling system.
+-- Changed defaults so profile is Single for people with existing Character layer buttons, and Standard profile if not.
+-- Dense Dynamite
+-- Default noPopup for mount changed to arrangeOnUse. A better way to go now that mounts are cheap.
+
+-- 1.12.04.12
+-- Korean
+-- Label Combined Layer View & Layer Edit Sections.
+-- Hide edit layer buttons that are not enabled.
+-- Config Tooltips.
+
+-- 1.12.04.11
+-- View Slot now has a red background and appropriate title and the errant button is now properly hidden.
+-- Added some text directing you to the Slots tab for editing as well.
+-- Edit Slot dialog has a slightly green background to indicate editing is possible.
+
+-- 1.12.04.10
+-- Winterfall Firewater
+-- Removed some duplicates in the pet food meat section
+-- Revert Button for config so you can undo unintended changes & experiment more freely
+-- Basic and Class layers now editable as well
+-- Quick Setup & Reset buttons: Single, Shared, Custom as well as blank slate button.
+
+-- 1.12.04.09
+-- Chinese & Korean courtesy of the usual suspects
+-- Runes added to potion slot
+
+-- 1.12.04.08
+-- Fixed dragging slots around on the slots tab.
+-- Can now drag from the slot view at the top to the slots being edited at the bottom as well.
+-- Fixed slot view not updating when selecting profile layers in the profile
+
+-- 1.12.04.07
+-- Added a zeroing out category called "Clear Slot" as well as a button for it on the edit slot dialog.
+
+-- 1.12.04.06
+-- Simplified profile interface
+-- Now has 4 shared profiles, selectable under profile tab
+-- Fixed Smart Self Cast bug.
+-- Added Smart Self Cast to defaults
+-- Smart Self Cast remains partly broken in its current implementation until it gets a rewrite
+-- You can turn the individual ones on but not necessarily off if they are part of the defaults etc.
+
+-- 1.12.04.05
+-- Added Clear Slot category.
+
+-- 1.12.04.04
+-- Fixed warrior rage potion slot conflicting with heal potions
+
+-- 1.12.04.03
+-- Class default bug fix
+-- Arathi Basin Food upgrade, tx Ghoschdi
+-- Korean, tx Sayclub
+-- Expanded slot list to 16. Removed the clunky movement buttons. Use drag & drop to reorder instead.
+-- Split out more code for the various frames
+-- Fixed autoselfcast for now. Needs a better implementation.
+-- Slot View area has tooltips again & clicking them brings up a non-editable Slot View.
+
+-- 1.12.04.01
+-- Profile Tab: 4 layers, current edit layer picked at top of dialog. Class & Basic defaults (not editable)
+-- Display settings are either character specific or shared. No layering.
+-- Fixed frame strata for bar & popup
+-- Seperated code for ChooseCategory and ConfigSlot.
+-- Some lua changes for 2.0
+-- Hourglass Sand
+-- Casting Cursor used for button interaction
+-- Removed custom item insertion. Cumbersome and not needed if u can drag & drop.
+-- Align center button is not functional. Renamed from "reverse buttons"
+-- Slots tab for editing character or shared slots. Old slots section is now display only, still needs work.
+
+-- 1.12.03
+-- Korean thanks to Sayclub
+-- Disabled code that hid character buttons when docking to main menu. These have unintended side effects.
+
+-- 1.12.02.05
+-- Chinese Simplified & Traditional (Thanks PDI175)
+-- Fixed some typos in localization.
+
+-- 1.12.02.04
+-- Pet feed on right click should now work. Tx Kerrang. Still need to upgrade the pet food category handling itself.
+
+-- 1.12.02.03
+-- Fixed onload issue that broke slash commands
+-- AutoBar now dismisses with the escape key as it should
+-- Added click for config show / hide
+
+-- 1.12.02.02
+-- New 1.12 function ClearCursor() called after drag & drop.
+-- Juju
+-- First cut of tabbed interface for config
+-- 24 buttons
+-- Arathi Basin Field Ration
+-- Config dialog is now draggable
+-- Hunter Pet Food & Feeding
+-- First cut at blizzard style dialog. A frustrating thing as texcoords don't act as expected.
+
+-- 1.12.02
+-- Dock to is now list based with a drop down. I will make the drop down pretty some other time. Needs settings for various bars.
+-- Empty Slot button added.
+-- Popup Z order increased so its in front of other mods
+
+-- 1.12.01
+-- Chinese Simplified & Traditional (Thanks PDI175)
+-- TOC updated.
+-- Fixed plain buttons bug
+-- Improved config layout for Korean.
+
+-- 1.11.16.01
+-- Fixed popup click bug. Apparently mouseup events do not allow casting like click events. Strange.
+-- Disabled some config checkboxes for single category slots. Fixes crash.
+-- Fixed keybinding screwup.
+-- Some more hunter pet foods added. meats aren't done yet.
+-- Added a drag handle for the bar. Left click to lock right click to bring up options. Handle can be hidden.
+-- Slot specific option to disable popup.
+-- Slot specific option to rearrange category priority on use.
+-- Increased max popup buttons to 12.
+
+-- 1.11.15.04
+-- Done button on config panel to avoid confusion.
+-- Option to show Category Icon for slots with 0 item count. Displayed dark & with -- to distinguish them from regular slots.
+-- Scale item count, hotKey and Cooldown Clock text beyond size 36 and up to size 72
+-- First cut at a popup list for slots with 2 or more available items
+-- Added some unsorted items to pet foods. These will be broken till sorted.
+-- Config for popup direction
+-- Fixed popup button scaling
+-- Popup on modifier key
+-- Popup disable
+-- Tooltip for popup buttons
+-- Added Jungle Remedy
+-- Popup hit rect overlap fixed
+
+-- 1.11.14.03
+-- New User / deleted wtf config file bug fix. tx Xavior for finding it.
+-- Ahn Qirajh translation for Chinese. Thanks PDI175.
+-- Typo fixed
+-- Working Korean I think. Thanks to Sayclub
+
+-- 1.11.13
+-- Deutch! Ser gut Teodred!
+
+-- 1.11.12
+-- Korean thanks to Sayclub!
+
+-- 1.11.11
+-- Ooh, Traditional Chinese thanks to PDI175
+-- Roasted Quail added to pet meats
+-- Use the highest priority item for the icon. (ie. the bottom one in the category list).
+
+-- 1.11.10
+-- More Drag & Drop: rearrange button categories now as well
+-- Drag from inventory into a button's items (or click on an item then click on category button)
+-- Potions: Holy Protection, Agility, Strength, Fortitude, Intellect, Wisdom, Defense, Troll Blood
+
+-- 1.11.09
+-- Anti-Venom
+-- Global smart self cast checkbox
+-- Scrolls of Agility, Intellect, Protection, Stamina, Strength, Spirit
+-- Food categories for no bonus food so hunters can feed themselves
+
+-- 1.11.08
+-- Drag & Drop to rearrange slot category order in the config dialog.
+-- Close button added to config
+-- Updated some category icons.
+
+-- 1.11.07
+-- Row & column sliders in the config panel are now freely slideable.
+
+-- 1.11.06
+-- Fixed glitch at 6 columns
+
+-- 1.11.05
+-- Friendship Bread, Freshly Squeezed Lemonade, Wildvine Potion, Sagefish Delight, Smoked Sagefish
+-- Dirge's Kickin' Chimaerok Chops,
+-- Fixed: Essence Mango,
+
+-- 1.11.04
+-- Reset to default button for the buttons
+-- Hide tooltips option
+-- Demonic and Dark Runes, Battle Standards, Invulnerability Potions
+
+-- 1.11.03.01
+-- Deathcharger's Reins, Qiraji Mounts
+-- Reworked defaults a bit.
+
+-- 1.11.02
+-- Mojos of Zanza & essence mangos; arcane, fire, frost, nature, shadow, spell Protection Potions.
+-- Dreamless sleep
+-- First cut of cooldown.
+
+-- 1.11.01
+-- Added new AD oil & sharpening stone.
+-- Expand up to 18 buttons.
+-- Rolled in the nurfed version's changes for pvp potions
+-- Chocolate Square
+
+-- 2006.03.31
+-- Minor category changes
+-- Last version by Saien
+
+local _G = getfenv(0);
+local L = AceLibrary("AceLocale-2.2"):new("AutoBar");
+
+BINDING_HEADER_AUTOBAR_SEP = L["AUTOBAR"];
+BINDING_NAME_AUTOBAR_CONFIG = L["CONFIG_WINDOW"];
+BINDING_NAME_AUTOBAR_BUTTON1 = L["BUTTON"] .. " 1";
+BINDING_NAME_AUTOBAR_BUTTON2 = L["BUTTON"] .. " 2";
+BINDING_NAME_AUTOBAR_BUTTON3 = L["BUTTON"] .. " 3";
+BINDING_NAME_AUTOBAR_BUTTON4 = L["BUTTON"] .. " 4";
+BINDING_NAME_AUTOBAR_BUTTON5 = L["BUTTON"] .. " 5";
+BINDING_NAME_AUTOBAR_BUTTON6 = L["BUTTON"] .. " 6";
+BINDING_NAME_AUTOBAR_BUTTON7 = L["BUTTON"] .. " 7";
+BINDING_NAME_AUTOBAR_BUTTON8 = L["BUTTON"] .. " 8";
+BINDING_NAME_AUTOBAR_BUTTON9 = L["BUTTON"] .. " 9";
+BINDING_NAME_AUTOBAR_BUTTON10 = L["BUTTON"] .. " 10";
+BINDING_NAME_AUTOBAR_BUTTON11 = L["BUTTON"] .. " 11";
+BINDING_NAME_AUTOBAR_BUTTON12 = L["BUTTON"] .. " 12";
+BINDING_NAME_AUTOBAR_BUTTON13 = L["BUTTON"] .. " 13";
+BINDING_NAME_AUTOBAR_BUTTON14 = L["BUTTON"] .. " 14";
+BINDING_NAME_AUTOBAR_BUTTON15 = L["BUTTON"] .. " 15";
+BINDING_NAME_AUTOBAR_BUTTON16 = L["BUTTON"] .. " 16";
+BINDING_NAME_AUTOBAR_BUTTON17 = L["BUTTON"] .. " 17";
+BINDING_NAME_AUTOBAR_BUTTON18 = L["BUTTON"] .. " 18";
+BINDING_NAME_AUTOBAR_BUTTON19 = L["BUTTON"] .. " 19";
+BINDING_NAME_AUTOBAR_BUTTON20 = L["BUTTON"] .. " 20";
+BINDING_NAME_AUTOBAR_BUTTON21 = L["BUTTON"] .. " 21";
+BINDING_NAME_AUTOBAR_BUTTON22 = L["BUTTON"] .. " 22";
+BINDING_NAME_AUTOBAR_BUTTON23 = L["BUTTON"] .. " 23";
+BINDING_NAME_AUTOBAR_BUTTON24 = L["BUTTON"] .. " 24";
+
+function AutoBarConfig_Toggle(msg)
+ local loaded, message = LoadAddOn("AutoBarConfig");
+ if (loaded) then
+ PlaySound("igMainMenuOpen");
+ if (not AutoBarConfig.initialized) then
+ AutoBarConfig:TabButtonInitialize();
+ AutoBarConfig.initialized = true;
+ end
+
+ if (AutoBarConfigFrame:IsVisible()) then
+ AutoBarConfigFrame:Hide();
+ else
+ AutoBarConfigFrame:Show();
+ end
+ else
+ PlaySound("TellMessage");
+ DEFAULT_CHAT_FRAME:AddMessage(L["LOAD_ERROR"]..message);
+ end
+end
+
+
+local options = {
+ type = 'execute',
+ desc = "Toggle the config panel",
+ func = AutoBarConfig_Toggle,
+}
+
+
+-- If the Debug library is available then use it
+if AceLibrary:HasInstance("AceDebug-2.0") then
+ AutoBar = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0", "AceConsole-2.0", "AceDB-2.0", "AceDebug-2.0");
+else
+ AutoBar = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0", "AceConsole-2.0", "AceDB-2.0");
+end
+AutoBar:RegisterChatCommand({L["SLASHCMD_SHORT"], L["SLASHCMD_LONG"]}, options)
+AutoBar:RegisterDB("AutoBarDB", "AutoBarDBPC")
+AutoBar:RegisterDefaults("char", {
+-- profile = {};
+-- profile.useCharacter = true;
+-- profile.useShared = false;
+-- profile.useClass = false;
+-- profile.useBasic = false;
+-- profile.edit = 1;
+-- profile.shared = "_SHARED1";
+-- profile.layout = 1;
+-- profile.layoutProfile = AutoBar.currentPlayer;
+ }
+)
+
+AUTOBAR_MAXBUTTONS = 24;
+AUTOBAR_MAXPOPUPBUTTONS = 12;
+AUTOBAR_MAXSLOTCATEGORIES = 16;
+
+AutoBar_Debug = nil;
+
+AutoBar_SearchedForItems = {};
+local AutoBar_ButtonItemList = {};
+local AutoBar_ButtonItemList_Reversed = {};
+local AutoBar_Buttons_CurrentItems = {};
+
+
+function AutoBar:OnInitialize()
+ AutoBar.currentPlayer = UnitName("player") .. " - " .. GetCVar("realmName");
+
+ AutoBar.inWorld = false;
+ AutoBar.inCombat = false; -- For item use restrictions
+ AutoBar.inBG = false; -- For battleground only items
+
+ AutoBarItemList:OnInitialize();
+ AutoBarProfile.Initialize();
+ AutoBar:LayoutInitialize();
+end
+
+
+function AutoBar:OnEnable()
+ -- Called when the addon is enabled
+ self:RegisterEvent("PLAYER_ENTERING_WORLD")
+ self:RegisterEvent("PLAYER_LEAVING_WORLD")
+ self:RegisterEvent("BAG_UPDATE")
+ self:RegisterEvent("UPDATE_BINDINGS")
+
+ -- For item use restrictions
+ self:RegisterEvent("ZONE_CHANGED_NEW_AREA")
+ self:RegisterEvent("PLAYER_REGEN_ENABLED")
+ self:RegisterEvent("PLAYER_REGEN_DISABLED")
+ self:RegisterEvent("UNIT_MANA")
+ self:RegisterEvent("UNIT_HEALTH")
+ self:RegisterEvent("PLAYER_ALIVE")
+ self:RegisterEvent("BAG_UPDATE_COOLDOWN")
+ self:RegisterEvent("UPDATE_BATTLEFIELD_STATUS")
+end
+
+
+function AutoBar:OnDisable()
+ -- Called when the addon is disabled
+end
+
+
+function AutoBar:PLAYER_ENTERING_WORLD()
+ AutoBar.inCombat = false;
+ local scanned = false;
+ if (not AutoBar.initialized) then
+ AutoBar.ConfigChanged();
+ profileLoaded = true;
+ scanned = true;
+ AutoBar.initialized = true;
+ end
+
+ if (not AutoBar.inWorld) then
+ AutoBar.inWorld = true;
+ if (not scanned) then
+ AutoBar_ScanBags();
+ end
+ end
+ AutoBar:LayoutUpdate();
+ AutoBar.ssHeader:SetAttribute("state", 0);
+ AutoBar.ssHeader:SetAttribute("state", 1);
+ AutoBar.ssHeader:SetAttribute("state", 0);
+end
+
+
+function AutoBar:PLAYER_LEAVING_WORLD()
+ AutoBar.inWorld = false;
+end
+
+
+local pendingScan = false;
+function AutoBar:BAG_UPDATE()
+ if (AutoBar.inWorld and arg1 < 5) then
+ if (InCombatLockdown()) then
+ pendingScan = true;
+ else
+ AutoBar_ScanBags(arg1);
+ end
+ end
+end
+
+
+function AutoBar:UPDATE_BINDINGS()
+ if (not InCombatLockdown()) then
+ AutoBar:ButtonsUpdate();
+ end
+end
+
+
+function AutoBar:ZONE_CHANGED_NEW_AREA()
+ if (not InCombatLockdown()) then
+ AutoBar:ButtonsUpdate();
+ end
+end
+
+
+function AutoBar:PLAYER_REGEN_ENABLED()
+ AutoBar.inCombat = false;
+ if (pendingScan) then
+ AutoBar_ScanBags();
+ pendingScan = false;
+ else
+ AutoBar:ButtonsUpdate();
+ end
+end
+
+
+function AutoBar:PLAYER_REGEN_DISABLED()
+ AutoBar.inCombat = true;
+ AutoBar:ButtonsUpdate();
+end
+
+
+function AutoBar:UNIT_MANA()
+ if (arg1 == "player") then
+ if (not InCombatLockdown()) then
+ AutoBar:ButtonsUpdate();
+ end
+ end
+end
+
+
+function AutoBar:UNIT_HEALTH()
+ if (arg1 == "player") then
+ if (not InCombatLockdown()) then
+ AutoBar:ButtonsUpdate();
+ end
+ end
+end
+
+
+function AutoBar:PLAYER_ALIVE()
+ if (not InCombatLockdown()) then
+ AutoBar:ButtonsUpdate();
+ end
+end
+
+
+function AutoBar:BAG_UPDATE_COOLDOWN()
+ if (not InCombatLockdown()) then
+ AutoBar:ButtonsUpdate();
+ end
+end
+
+
+function AutoBar:UPDATE_BATTLEFIELD_STATUS()
+ if (AutoBar.inWorld) then
+ for i = 1, MAX_BATTLEFIELD_QUEUES do
+ local status, mapName, instanceID = GetBattlefieldStatus(i);
+ if (instanceID ~= 0) then
+ AutoBar.inBG = true;
+ return;
+ else
+ AutoBar.inBG = false;
+ end
+ end
+ end
+end
+
+
+-- When dragging, contains { frameName, index }, otherwise nil
+AutoBar.dragging = nil;
+local draggingData = {};
+
+function AutoBar.GetDraggingIndex(frameName)
+ if (AutoBar.dragging and AutoBar.dragging.frameName == frameName) then
+ return AutoBar.dragging.index;
+ end
+ return nil;
+end
+
+
+function AutoBar.SetDraggingIndex(frameName, index)
+ draggingData.frameName = frameName;
+ draggingData.index = index;
+ AutoBar.dragging = draggingData;
+end
+
+
+function AutoBar.LinkDecode(link)
+ if (link) then
+ local _, _, id, _, _, _, name = string.find(link, "item:(%d+):(%d+):(%d+):(%d+).+%[(.+)%]");
+ if (id and name) then
+ return name, tonumber(id);
+ end
+ end
+end
+
+
+local function AutoBar_BuildItemList()
+ local function AddItemInfo(identifier, buttonsIndex)
+ if (AutoBar_Category_Info[identifier] and AutoBar_Category_Info[identifier].items) then
+ local index, j;
+ for index, j in pairs(AutoBar_Category_Info[identifier].items) do
+ if (AutoBar_SearchedForItems[j]) then
+ table.insert(AutoBar_SearchedForItems[j], buttonsIndex);
+ else
+ AutoBar_SearchedForItems[j] = { buttonsIndex, identifier, index };
+ end
+ table.insert(AutoBar_ButtonItemList[buttonsIndex], j);
+ end
+ else
+ if (AutoBar_SearchedForItems[identifier]) then
+ table.insert(AutoBar_SearchedForItems[identifier], buttonsIndex);
+ else
+ AutoBar_SearchedForItems[identifier] = { buttonsIndex, identifier, 0 };
+ end
+ table.insert(AutoBar_ButtonItemList[buttonsIndex], identifier);
+ end
+ end
+ AutoBar_SearchedForItems = {};
+ AutoBar_ButtonItemList_Reversed = {};
+ local index;
+ for index = 1, AUTOBAR_MAXBUTTONS, 1 do
+ if (AutoBar.buttons[index]) then
+ local i, j;
+ AutoBar_ButtonItemList[index] = {};
+ AutoBar_ButtonItemList_Reversed[index] = {};
+ if (type(AutoBar.buttons[index]) == "table") then
+ for i, j in pairs(AutoBar.buttons[index]) do
+ AddItemInfo (j, index);
+ end
+ else
+ AddItemInfo (AutoBar.buttons[index], index);
+ end
+ for i, j in pairs(AutoBar_ButtonItemList[index]) do
+ AutoBar_ButtonItemList_Reversed[index][j] = i;
+ end
+ end
+ end
+end
+
+
+function AutoBar_Button_GetDisplayItem(buttonsIndex)
+ local index, bag, slot, rank, itemId, category, categoryIndex, acceptable, cooldowntime, itemMinLevel;
+ local cooldownIndex, start, duration, enable, fallback;
+ if (AutoBar_Buttons_CurrentItems[buttonsIndex]) then
+ index = table.maxn(AutoBar_Buttons_CurrentItems[buttonsIndex]);
+ else
+ index = 0;
+ end
+ while (index > 0 and not acceptable) do
+ bag = AutoBar_Buttons_CurrentItems[buttonsIndex][index].items[1][1];
+ slot = AutoBar_Buttons_CurrentItems[buttonsIndex][index].items[1][2];
+ rank = AutoBar_Buttons_CurrentItems[buttonsIndex][index].rank;
+ itemId = AutoBar_ButtonItemList[buttonsIndex][rank];
+ if (type(itemId) == "number") then
+ _,_,_,_,itemMinLevel = GetItemInfo(itemId);
+ else
+ itemMinLevel = 0;
+ end
+ if (AutoBar_SearchedForItems[itemId]) then
+ category = AutoBar_SearchedForItems[itemId][2];
+ categoryIndex = AutoBar_SearchedForItems[itemId][3];
+ else
+ category = nil;
+ categoryIndex = nil;
+ end
+ --
+-- start, duration, enable = GetContainerItemCooldown(bag, slot);
+ start, duration, enable = GetItemCooldown(itemId);
+ if (start > 0 and duration > 0) then
+ local tmp = start - GetTime() + duration;
+ if (not cooldowntime or tmp < cooldowntime) then
+ cooldowntime = tmp;
+ cooldownIndex = index;
+ end
+ index = index - 1;
+ elseif (itemMinLevel > UnitLevel("player")) then
+ index = index - 1;
+ elseif (AutoBar_Category_Info[category] and AutoBar_Category_Info[category].location and AutoBar_Category_Info[category].location ~= GetRealZoneText()) then
+ index = index - 1;
+ elseif (AutoBar_Category_Info[category] and AutoBar_Category_Info[category].battleground and not AutoBar.inBG) then
+ index = index - 1;
+ elseif (AutoBar_Category_Info[category]) then
+ if (not fallback) then
+ fallback = index;
+ end
+ if (AutoBar_Category_Info[category].noncombat and AutoBar.inCombat) then
+ index = index - 1;
+ elseif (AutoBar_Category_Info[category].limit) then
+ local losthp = UnitHealthMax("player") - UnitHealth("player");
+ local lostmana = UnitManaMax("player") - UnitMana("player");
+ if (UnitPowerType("player") ~= 0 ) then
+ --if (UnitClass("player") == "Druid") then
+ -- Can't check mana in druid forms
+ -- lostmana = 0;
+ --else
+ -- Class doesn't have mana, don't limit
+ lostmana = 10000;
+ --end
+ end
+ if (AutoBar_Category_Info[category].limit.downhp and AutoBar_Category_Info[category].limit.downhp[categoryIndex] > losthp) then
+ index = index - 1
+ elseif (AutoBar_Category_Info[category].limit.downmana and AutoBar_Category_Info[category].limit.downmana[categoryIndex] > lostmana) then
+ index = index - 1
+ else
+ acceptable = true;
+ end
+ else
+ acceptable = true;
+ end
+ else
+ acceptable = true;
+ end
+ end
+ if (not acceptable) then
+ if (fallback) then
+ index = fallback;
+ elseif (cooldownIndex) then
+ index = cooldownIndex;
+ elseif (AutoBar_Buttons_CurrentItems[buttonsIndex]) then
+ index = table.maxn(AutoBar_Buttons_CurrentItems[buttonsIndex]);
+ else
+ index = nil;
+ end
+ end
+ --
+ if (index) then
+ bag = AutoBar_Buttons_CurrentItems[buttonsIndex][index].items[1][1];
+ slot = AutoBar_Buttons_CurrentItems[buttonsIndex][index].items[1][2];
+ rank = AutoBar_Buttons_CurrentItems[buttonsIndex][index].rank;
+ else
+ bag = nil; slot = nil; rank = nil;
+ end
+ if (AutoBar_ButtonItemList[buttonsIndex]) then
+ itemId = AutoBar_ButtonItemList[buttonsIndex][rank];
+ if (AutoBar_SearchedForItems[itemId]) then
+ category = AutoBar_SearchedForItems[itemId][2];
+ categoryIndex = AutoBar_SearchedForItems[itemId][3];
+ else
+ category = nil;
+ categoryIndex = nil;
+ end
+ else
+ itemId = nil; category = nil; categoryIndex = nil;
+ end
+ return bag, slot, rank, itemId, category, categoryIndex, index, acceptable, cooldowntime;
+end
+
+
+function AutoBar:SetButton(button, baseName, bag, slot, count, category)
+ button:SetAttribute("type", "item");
+-- button:SetAttribute("item", "Hearthstone");
+ button:SetAttribute("bag", bag);
+ button:SetAttribute("slot", slot);
+ button:SetAttribute("category", category);
+
+ local normalTexture = _G[baseName.."NormalTexture"];
+ local countText = _G[baseName.."Count"];
+ local cooldown = _G[baseName.."Cooldown"];
+ local icon = _G[baseName.."Icon"];
+
+ if (bag and slot) then
+
+--local t = GetContainerItemInfo(bag, slot);
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar:SetButton baseName, t category count " .. baseName .. " " .. t .. " " .. tostring(category) .. " " .. tostring(count));
+
+ icon:SetTexture(GetContainerItemInfo(bag, slot));
+ if (AutoBar.display.plainButtons) then
+ icon:SetTexCoord(0.07, 0.93, 0.07, 0.93)
+ else
+ icon:SetTexCoord(0, 1, 0, 1)
+ end
+
+-- local start, duration, enable = GetContainerItemCooldown(bag, slot);
+ local start, duration, enable = GetItemCooldown(GetContainerItemLink(bag, slot));
+
+--local name, id = AutoBar.LinkDecode(GetContainerItemLink(bag,slot));
+----DEFAULT_CHAT_FRAME:AddMessage("name, id " .. tostring(name) .. " " .. tostring(id));
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar:SetButton start, duration, enable " .. name .. tostring(start) .. " " .. tostring(duration) .. " " .. tostring(enable));
+
+ cooldown:SetAllPoints(cooldown:GetParent())
+ cooldown:Show();
+ CooldownFrame_SetTimer(cooldown, start, duration, enable);
+
+-- if (enabled) then
+ if (enable) then
+ icon:SetVertexColor(1, 1, 1);
+ normalTexture:SetVertexColor(0, 0, 0);
+ elseif (start > 0 and duration > 0) then
+ icon:SetVertexColor(1, 1, 1);
+ normalTexture:SetVertexColor(0, 0, 0);
+-- normalTexture:SetVertexColor(1, 1, 1);
+ else
+ icon:SetVertexColor(0.4, 0.4, 0.4);
+ normalTexture:SetVertexColor(1, 1, 1);
+ end
+
+ if (count and count > 1) then
+ countText:SetText(count);
+ else
+ countText:SetText("");
+ end
+ else
+ local hotKey = _G[baseName.."HotKey"];
+
+ CooldownFrame_SetTimer(cooldown, 0, 0, 0);
+ if (AutoBar.display.showCategoryIcon and category) then
+ -- Button is empty so show Category Icon
+ icon:SetTexture(AutoBar_Category_Info[category].texture);
+ countText:SetText("--");
+ hotKey:SetText("");
+ icon:SetVertexColor(0.2, 0.2, 0.2);
+ normalTexture:SetVertexColor(1, 1, 1);
+ else
+ -- Button is empty
+ icon:SetTexture("");
+ countText:SetText("");
+ hotKey:SetText("");
+ end
+ end
+
+end
+
+
+-- Assign content to the buttons, set count & keybinding texts, visibility, etc.
+function AutoBar:ButtonsUpdate()
+ if (not AutoBar.inWorld) then
+ return
+ end
+ local buttonsIndex, i, button, icon, countText, bag, slot, index, enabled, items;
+ local hotKey, count, itemCount, keyText, actioncommand;
+ for buttonsIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ local button = AutoBar.ssButtons[buttonsIndex];
+ local effectiveButton = button:GetAttribute("buttonsIndex");
+
+ local popupButtons = AutoBar.ssPopupButtons[buttonsIndex];
+ local popupButton;
+ for popupButtonIndex = 1, AUTOBAR_MAXPOPUPBUTTONS, 1 do
+ popupButton = popupButtons[popupButtonIndex];--AutoBar.ssPopupButtons
+ popupButton:SetAttribute("showstates", "!*");
+ end
+
+ hotKey = _G["AutoBarSAB"..buttonsIndex.."HotKey"];
+
+ if (not button:GetAttribute("forceHidden") and effectiveButton) then
+ bag, slot,_,_,_,_,index,enabled = AutoBar_Button_GetDisplayItem(effectiveButton)
+ if (bag and slot) then
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar:ButtonsUpdate effectiveButton bag, slot " .. effectiveButton .. " " .. tostring(AutoBar_Buttons_CurrentItems[effectiveButton]) .. " " .. tostring(table.maxn(AutoBar_Buttons_CurrentItems[effectiveButton])));
+ button:SetAttribute("showstates", "*");
+ items = AutoBar_Buttons_CurrentItems[effectiveButton][index].items
+ count = 0;
+ for i, bagSlot in pairs(items) do
+ _, itemCount = GetContainerItemInfo(bagSlot[1], bagSlot[2]);
+ if (itemCount) then
+ count = count + itemCount;
+ end
+ end
+
+ self:SetButton(button, "AutoBarSAB"..buttonsIndex, bag, slot, count)
+
+ actioncommand = "AUTOBAR_BUTTON"..effectiveButton;
+ if (actioncommand) then
+ keyText = GetBindingKey(actioncommand);
+ if (keyText) then
+ keyText = string.gsub(keyText, "CTRL", "C");
+ keyText = string.gsub(keyText, "ALT", "A");
+ keyText = string.gsub(keyText, "SHIFT", "S");
+ keyText = string.gsub(keyText, "NUMPAD", "N");
+ hotKey:SetText(keyText);
+ else
+ hotKey:SetText("");
+ end
+ end
+
+ -- The popup displays the 2nd thru least best choice
+ local popupButtonIndex;
+ local currentItems, index, bagSlot, count, itemCount, name, itemId;
+ local _, _, _, baseItemId, _, _ = AutoBar_Button_GetDisplayItem(effectiveButton);
+ local maxPopups = table.maxn(AutoBar_Buttons_CurrentItems[effectiveButton]);
+ local effectivePopup;
+
+ for popupButtonIndex = 1, table.maxn(AutoBar_Buttons_CurrentItems[effectiveButton]) - 1 do
+ if (popupButtonIndex > AUTOBAR_MAXPOPUPBUTTONS) then
+ break;
+ end
+ currentItems = AutoBar_Buttons_CurrentItems[effectiveButton][popupButtonIndex];
+ effectivePopup = maxPopups - popupButtonIndex;
+ name, itemId = AutoBar.LinkDecode(GetContainerItemLink(currentItems.items[1][1], currentItems.items[1][2]));
+ category = AutoBar_SearchedForItems[itemId][2];
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar:ButtonsUpdate category " .. category .. " " .. tostring(AutoBar_SearchedForItems[itemId][2]));
+ popupButton = popupButtons[effectivePopup];
+ hotKey = _G["AutoBarSAB"..buttonsIndex.."P"..effectivePopup.."HotKey"];
+ hotKey:SetText("");
+
+ count = 0;
+ for index, bagSlot in ipairs(currentItems.items) do
+ _, itemCount = GetContainerItemInfo(bagSlot[1], bagSlot[2]);
+ count = count + itemCount;
+ end
+ self:SetButton(popupButton, "AutoBarSAB"..buttonsIndex.."P"..effectivePopup, currentItems.items[1][1], currentItems.items[1][2], count, category)
+
+ popupButton:SetAttribute("buttonsIndex", effectiveButton);
+ popupButton:SetAttribute("popupButtonIndex", popupButtonIndex);
+ popupButton:SetAttribute("showstates", tostring(buttonsIndex));
+ self:ButtonSetup("AutoBarSAB"..buttonsIndex.."P"..effectivePopup);
+ end
+ else
+ button:SetAttribute("showstates", "!*");
+ end
+ else
+ button:SetAttribute("showstates", "!*");
+ end
+ end
+end
+
+
+-- Assign display buttons to active slots and return the number of displayed buttons
+function AutoBar:AssignButtons()
+ local displayedButtons = 1;
+
+ if (AutoBar.ssButtons) then
+ local buttonsIndex, buttonInfo, rankIndex, items;
+ for buttonsIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ local button = AutoBar.ssButtons[displayedButtons];
+ if (AutoBar.display.showEmptyButtons or AutoBar_Buttons_CurrentItems[buttonsIndex]) then
+ displayedButtons = displayedButtons + 1;
+ button:SetAttribute("buttonsIndex", buttonsIndex);
+ elseif (AutoBar.display.showCategoryIcon and AutoBar.buttons[buttonsIndex]) then
+ displayedButtons = displayedButtons + 1;
+ button:SetAttribute("buttonsIndex", buttonsIndex);
+ end
+ end
+ for buttonsIndex = displayedButtons + 1, AUTOBAR_MAXBUTTONS, 1 do
+ local button = _G["AutoBarSAB"..buttonsIndex];
+ button:SetAttribute("buttonsIndex", nil);
+ end
+ end
+
+ return displayedButtons - 1;
+end
+
+
+local function AutoBar_UpdateCategoryNameToID(name,id)
+ local buttonsIndex, index;
+ for buttonsIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ if (AutoBar.buttons[buttonsIndex]) then
+ if (type(AutoBar.buttons[buttonsIndex]) == "table") then
+ for index in pairs(AutoBar.buttons[buttonsIndex]) do
+ if (AutoBar.buttons[buttonsIndex][index] == name) then
+ AutoBar.buttons[buttonsIndex][index] = id;
+ AutoBar_Msg(string.format(AUTOBAR_CHAT_MESSAGE2, buttonsIndex, idx));
+ end
+ end
+ elseif (AutoBar.buttons[buttonsIndex] == name) then
+ AutoBar.buttons[buttonsIndex] = id;
+ AutoBar_Msg(string.format(AUTOBAR_CHAT_MESSAGE3, buttonsIndex));
+ end
+ end
+ end
+end
+
+
+function AutoBar_ScanBags(specificbag)
+ local function ClearOutBag(bag)
+ local buttonsIndex, index, i, bagSlot, newitemlist, newranks;
+ for buttonsIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ if (AutoBar_Buttons_CurrentItems[buttonsIndex]) then
+ newranks = {};
+ for index in pairs(AutoBar_Buttons_CurrentItems[buttonsIndex]) do
+ newitemlist = {};
+ for i, bagSlot in pairs(AutoBar_Buttons_CurrentItems[buttonsIndex][index].items) do
+ if (bag ~= bagSlot[1]) then
+ table.insert(newitemlist,bagSlot);
+ end
+ end
+ if (table.maxn(newitemlist) > 0) then
+ AutoBar_Buttons_CurrentItems[buttonsIndex][index].items = newitemlist;
+ table.insert(newranks,AutoBar_Buttons_CurrentItems[buttonsIndex][index]);
+ end
+ end
+ if (table.maxn(newranks) == 0) then
+ AutoBar_Buttons_CurrentItems[buttonsIndex] = nil;
+ else
+ AutoBar_Buttons_CurrentItems[buttonsIndex] = newranks;
+ end
+ end
+ end
+ end
+ local function AddItem(buttonsIndex, rank, bag, slot)
+ if (AutoBar_Buttons_CurrentItems[buttonsIndex]) then
+ local index, rec, findRank;
+ for index, rec in pairs(AutoBar_Buttons_CurrentItems[buttonsIndex]) do
+ if (rec.rank == rank) then
+ findRank = index;
+ end
+ end
+ if (findRank) then
+ table.insert(AutoBar_Buttons_CurrentItems[buttonsIndex][findRank].items, { bag, slot } );
+ else
+ table.insert(AutoBar_Buttons_CurrentItems[buttonsIndex],
+ {
+ ["rank"] = rank,
+ ["items"] = { { bag, slot } }
+ }
+ );
+ end
+ else
+ AutoBar_Buttons_CurrentItems[buttonsIndex] = {
+ [1] = {
+ ["rank"] = rank,
+ ["items"] = { { bag, slot } }
+ },
+ };
+ end
+ end
+ local function SortByRank(a,b)
+ if (a and b and a.rank and b.rank) then
+ return a.rank < b.rank;
+ else
+ return true;
+ end
+ end
+
+ local bag, slot, name, id, i;
+ local minbag,maxbag = 0, 4;
+ if (specificbag) then
+ minbag = specificbag;
+ maxbag = specificbag;
+ ClearOutBag(specificbag);
+ else
+ AutoBar_Buttons_CurrentItems = {};
+ end
+ -- AutoBar_Buttons_CurrentItems = {
+ -- buttonsIndex = {
+ -- index = {
+ -- "rank" = ranknum,
+ -- "items" = { {bag,slot}, {bag,slot}, {bag, slot} }
+ -- },
+ -- },
+ --};
+ for bag = minbag, maxbag, 1 do
+ for slot = 1, GetContainerNumSlots(bag), 1 do
+ name, id = AutoBar.LinkDecode(GetContainerItemLink(bag,slot));
+--DEFAULT_CHAT_FRAME:AddMessage("name, id " .. tostring(name) .. " " .. tostring(id));
+-- TODO: is this the last vestige of by name items?
+-- if (name and AutoBar_SearchedForItems[name] and id) then
+--DEFAULT_CHAT_FRAME:AddMessage("name: " .. tostring(name) .. " " .. tostring(id));
+-- if (not AutoBar_SearchedForItems[id]) then
+-- AutoBar_SearchedForItems[id] = { AutoBar_SearchedForItems[name][1], AutoBar_SearchedForItems[name][2], AutoBar_SearchedForItems[name][3] };
+-- end
+-- AutoBar_UpdateCategoryNameToID(name,id);
+-- AutoBar_SearchedForItems[name] = nil;
+-- end
+ if (id and AutoBar_SearchedForItems[id]) then
+ local button = AutoBar_SearchedForItems[id][1];
+ local rank = AutoBar_ButtonItemList_Reversed[button][id];
+--DEFAULT_CHAT_FRAME:AddMessage("id: " .. tostring(name) .. " " .. tostring(id) .. " -> button " .. tostring(button));
+ AddItem(button, rank, bag, slot)
+ if (AutoBar_SearchedForItems[id][4]) then
+ for i = 4, table.maxn(AutoBar_SearchedForItems[id]), 1 do
+ button = AutoBar_SearchedForItems[id][i];
+ rank = AutoBar_ButtonItemList_Reversed[button][id];
+ AddItem(button, rank, bag, slot)
+ end
+ end
+ end
+ end
+ end
+ local buttonsIndex;
+ for buttonsIndex = 1, AUTOBAR_MAXBUTTONS, 1 do
+ if (AutoBar_Buttons_CurrentItems[buttonsIndex]) then
+ table.sort(AutoBar_Buttons_CurrentItems[buttonsIndex], SortByRank);
+ end
+ end
+ AutoBar:AssignButtons();
+ AutoBar:ButtonsUpdate();
+end
+
+
+function AutoBar:SlotUse(slotIndex)
+ AutoBar_Button_OnClick("LeftButton", "CLICK", slotIndex);
+end
+
+
+function AutoBar_Button_OnClick(mousebutton, updown, override)
+-- local button, effectiveButton;
+-- if (override) then
+-- button = _G["AutoBarSAB"..override];
+-- effectiveButton = override;
+-- else
+-- button = this;
+-- effectiveButton = button.effectiveButton;
+-- end
+-- button:SetChecked(0);
+-- if (AutoBarFrame.moving) then
+-- if (updown == "CLICK") then
+-- AutoBarFrame.moving = nil;
+-- AutoBarFrame:StopMovingOrSizing();
+-- AutoBar.display.position = {};
+-- AutoBar.display.position.x,
+-- AutoBar.display.position.y = AutoBarFrame:GetCenter();
+-- end
+-- elseif (updown == "CLICK") then
+-- local bag, slot, rank, itemId, category, categoryIndex, index, acceptable = AutoBar_Button_GetDisplayItem(effectiveButton);
+-- if (bag and slot) then
+-- local buttonInfo = AutoBar.buttons[effectiveButton];
+--
+-- if (mousebutton == "RightButton" and type(buttonInfo) == "table" and buttonInfo.rightClickTargetsPet and UnitExists("pet")) then
+-- PickupContainerItem(bag, slot);
+-- DropItemOnUnit("pet");
+-- else
+-- UseContainerItem(bag, slot);
+-- end
+--
+-- if (AutoBar_Category_Info[category] and AutoBar_Category_Info[category].targetted == "WEAPON" and SpellIsTargeting()) then
+-- if (mousebutton == "LeftButton") then
+-- PickupInventoryItem(GetInventorySlotInfo("MainHandSlot"));
+-- elseif (mousebutton == "RightButton") then
+-- PickupInventoryItem(GetInventorySlotInfo("SecondaryHandSlot"));
+-- end
+-- elseif (AutoBar_Category_Info[category] and AutoBar_Category_Info[category].targetted and (AutoBar.display.autoSmartSelfCast or AutoBar.smartSelfcast and AutoBar.smartSelfcast[category]) and SpellIsTargeting()) then
+-- SpellTargetUnit("player");
+-- elseif (type(AutoBar.buttons[effectiveButton]) == "table" and AutoBar.buttons[effectiveButton].rightClickTargetsPet and SpellIsTargeting()) then
+-- SpellTargetUnit("pet");
+-- end
+-- end
+-- end
+end
+
+
+-- Add tooltip info about the other categories in a slot to the current GameTooltip
+function AutoBar_ButtonSetTooltipCategories(currentItems, categoryIndex)
+ local count = 0;
+ local itemCount;
+ for index, bagSlot in pairs(currentItems.items) do
+ _, itemCount = GetContainerItemInfo(bagSlot[1], bagSlot[2]);
+ if (not itemCount) then
+ itemCount = 0;
+ end
+ count = count + itemCount;
+ end
+ local name, itemId = AutoBar.LinkDecode(GetContainerItemLink(currentItems.items[1][1], currentItems.items[1][2]));
+ if (not itemId) then
+ return;
+ end
+ local category = AutoBar_SearchedForItems[itemId][2];
+ local start, duration, enable = GetContainerItemCooldown(currentItems.items[1][1], currentItems.items[1][2]);
+ local msg = name..AUTOBAR_TOOLTIP1..count..")";
+ if (AutoBar_Debug) then
+ msg = msg.." ["..currentItems.items[1][1]..","..currentItems.items[1][2].."]";
+ if (rank) then
+ msg = msg.." rank="..currentItems.rank;
+ end
+ if (cat) then
+ msg = msg.." cat="..category;
+ end
+ end
+ if (category == itemId and categoryIndex == 0) then
+ msg = msg..AUTOBAR_TOOLTIP2
+ end
+ if (AutoBar_Category_Info[category]) then
+ if (AutoBar_Category_Info[category].battleground) then
+ msg=msg..AUTOBAR_TOOLTIP4;
+ end
+ if (AutoBar_Category_Info[category].noncombat) then
+ msg=msg..AUTOBAR_TOOLTIP5;
+ end
+ if (AutoBar_Category_Info[category].limit) then
+ msg=msg..AUTOBAR_TOOLTIP6;
+ end
+ end
+ if (start > 0 and duration > 0) then
+ msg = msg..AUTOBAR_TOOLTIP7;
+ end
+ GameTooltip:AddLine(msg);
+ if (category and AutoBar_Category_Info[category] and AutoBar_Category_Info[category].targetted == "WEAPON") then
+ GameTooltip:AddLine(AUTOBAR_TOOLTIP8);
+ end
+end
+
+
+-- Set the tooltip for a Button or PopupButton
+function AutoBar:ButtonSetTooltip(button, elapsed)
+ if (AutoBar.display.hideTooltips) then
+ return;
+ end
+ if (not button) then
+ button = this;
+ end
+ if (button:GetParent().updateTooltip and elapsed) then
+ button.updateTooltip = button.updateTooltip - elapsed;
+ if (button.updateTooltip > 0) then return; end
+ end
+
+ local bag = button:GetAttribute("bag");
+ local slot = button:GetAttribute("slot");
+
+ local effectiveButton;
+ if (bag and slot) then
+ if (GetCVar("UberTooltips") == "1") then
+ GameTooltip_SetDefaultAnchor(GameTooltip, button);
+ else
+ GameTooltip:SetOwner(button, "ANCHOR_RIGHT");
+ end
+ GameTooltip:SetBagItem(bag, slot);
+-- button.updateTooltip = nil;
+--
+-- local bag, slot, rank, itemId, category, categoryIndex;
+-- if (button.bagSlot) then
+-- bag = button.bagSlot[1];
+-- slot = button.bagSlot[2];
+-- category = button.category;
+-- effectiveButton = button:GetParent().popupButton;
+-- elseif (button.effectiveButton) then
+-- effectiveButton = button.effectiveButton;
+-- bag, slot, rank, itemId, category, categoryIndex = AutoBar_Button_GetDisplayItem(button.effectiveButton)
+-- else
+-- return;
+-- end
+-- if (bag and slot) then
+-- GameTooltip:SetBagItem(bag, slot);
+-- if (AutoBar_Debug) then
+-- if (rank) then
+-- GameTooltip:AddLine("DISPLAYED RANK: "..rank);
+-- end
+-- if (itemId) then
+-- GameTooltip:AddLine("DISPLAYED ITEMID: "..itemId);
+-- end
+-- if (category) then
+-- GameTooltip:AddLine("DISPLAYED CATEGORY: "..category);
+-- end
+-- if (categoryIndex) then
+-- GameTooltip:AddLine("DISPLAYED CATEGORY INDEX: "..categoryIndex);
+-- end
+-- end
+--
+-- local start, duration, enable = GetContainerItemCooldown(bag, slot);
+-- if (start > 0 and duration > 0) then
+-- button.updateTooltip = TOOLTIP_UPDATE_TIME;
+-- end
+--
+-- GameTooltip:AddLine("");
+-- local rankIndex, index, currentItems, bagSlot, count, itemCount, name, itemId, msg;
+-- for rankIndex, currentItems in pairs(AutoBar_Buttons_CurrentItems[effectiveButton]) do
+-- -- Display all possible items for base button or just the specific item for popup
+-- if (button.effectiveButton or button.popupButtonIndex == rankIndex) then
+-- AutoBar_ButtonSetTooltipCategories(currentItems, categoryIndex);
+-- end
+-- end
+ GameTooltip:Show();
+-- end
+ else
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar:ButtonSetTooltip unhandled button");
+ end
+end
+
+
+-- Return the display texture of the object
+function AutoBar_GetTexture(id)
+ if (not id) then
+ return "";
+ end
+
+ -- Last item has priority so use its icon
+ if (type(id) == "table" and id[1]) then
+ id = id[table.maxn(id)];
+ end
+
+ if (id and AutoBar_Category_Info[id]) then
+ if (AutoBar_Category_Info[id].texture) then
+ return "Interface\\Icons\\"..AutoBar_Category_Info[id].texture;
+ else
+ id = AutoBar_Category_Info[id].items[table.maxn(AutoBar_Category_Info[id].items)];
+ end
+ end
+ if (type(id)=="number" and id > 0) then
+ local _,_,_,_,_,_,_,_,_,texture = GetItemInfo(tonumber(id));
+
+ if (texture) then return texture; end
+ end
+ return "Interface\\Icons\\INV_Misc_Gift_01";
+end
+
+
+function AutoBar_Msg(...)
+ local message = "";
+ for i = 1, arg.n, 1 do
+ if (type(arg[i]) == "string" or type(arg[i]) == "number") then
+ message = message..arg[i];
+ else
+ message = message..string.upper(type(arg[i]));
+ end
+ end
+ ChatFrame1:AddMessage(L["AUTOBAR"] .. ": " .. message);
+end
+
+
+function AutoBar.ConfigChanged()
+ AutoBar_BuildItemList();
+ AutoBar_ScanBags();
+ AutoBar:LayoutUpdate();
+end
+
+
+AutoBar.dockingFrames = {
+ ["NONE"] = {
+ text = L["AUTOBAR_CONFIG_DOCKTONONE"],
+ offset = { x = 0, y = 0, point = "CENTER", relative = "TOPLEFT" },
+ },
+ ["GSecondBar"] = {
+ text = L["AUTOBAR_CONFIG_DOCKTOGBARS"],
+ offset = { x = 0, y = 0, point = "CENTER", relative = "TOPLEFT" },
+ },
+ ["MainMenuBarArtFrame"] = {
+ text = L["AUTOBAR_CONFIG_DOCKTOMAIN"],
+ offset = { x = 0, y = 0, point = "CENTER", relative = "TOPRIGHT" },
+ },
+ ["ChatFrame1"] = {
+ text = L["AUTOBAR_CONFIG_DOCKTOCHATFRAME"],
+ offset = { x = 0, y = 25, point = "CENTER", relative = "TOPLEFT" },
+ },
+ ["ChatFrameMenuButton"] = {
+ text = L["AUTOBAR_CONFIG_DOCKTOCHATFRAMEMENU"],
+ offset = { x = 0, y = 25, point = "CENTER", relative = "TOPLEFT" },
+ },
+ ["MainMenuBar"] = {
+ text = L["AUTOBAR_CONFIG_DOCKTOACTIONBAR"],
+ offset = { x = 7, y = 40, point = "CENTER", relative = "TOPLEFT" },
+ },
+ ["CharacterMicroButton"] = {
+ text = L["AUTOBAR_CONFIG_DOCKTOMENUBUTTONS"],
+ offset = { x = 0, y = 0, point = "CENTER", relative = "BOTTOMLEFT" },
+ },
+};
+
+
+-- Create the buttons and popups
+function AutoBar:LayoutInitialize()
+ local gapping = AutoBar.display.gapping;
+ local buttonWidth = AutoBar.display.buttonWidth;
+ local buttonHeight = AutoBar.display.buttonHeight;
+
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar:LayoutInitialize gapping " .. tostring(gapping) .. " / " .. tostring(buttonWidth) .. " / " .. tostring(buttonHeight), 1, 0.5, 0);
+ local p = _G["AutoBarSSHeaderFrame"];
+ -- State 0 shows the slot buttons but no popups
+-- p:SetAttribute("statebindings", "0:top;1-"..AUTOBAR_MAXBUTTONS..":sub");
+ p:SetAttribute("statemap-anchor", "0-"..AUTOBAR_MAXBUTTONS..":$input");
+ p:SetAttribute("delaystatemap-anchor", "0-"..AUTOBAR_MAXBUTTONS..":0");
+ p:SetAttribute("delaytimemap-anchor", "0-"..AUTOBAR_MAXBUTTONS..":0.5");
+ p:SetAttribute("delayhovermap-anchor", "0-"..AUTOBAR_MAXBUTTONS..":true");
+
+ AutoBar.ssHeader = p;
+
+ -- Create the slot buttons
+ AutoBar.ssButtons = {};
+ AutoBar.ssPopupButtons = {};
+ for i = 1, AUTOBAR_MAXBUTTONS do
+ local button = CreateFrame("Button", "AutoBarSAB" .. i, AutoBar.ssHeader, "AutoBarSAButtonTemplate, SecureAnchorEnterTemplate");
+ AutoBar.ssButtons[i] = button;
+
+ button:SetAttribute("newstate", tostring(i));
+-- button:SetAttribute("bindings-top", tostring(i));
+ button:SetAttribute("anchorchild", AutoBar.ssHeader);
+ button:SetAttribute("childstate", "^" .. tostring(i));
+ AutoBar.ssHeader:SetAttribute("addchild", button);
+
+ -- Create its popup buttons
+ AutoBar.ssPopupButtons[i] = {};
+ local popupButtons = AutoBar.ssPopupButtons[i];
+ for popupButtonIndex = 1, AUTOBAR_MAXPOPUPBUTTONS do
+ local popupButton = CreateFrame("Button", "AutoBarSAB" .. i .. "P" .. popupButtonIndex, AutoBar.ssHeader, "AutoBarSAPopupButtonTemplate");
+ popupButtons[popupButtonIndex] = popupButton;
+
+-- popupButton:SetAttribute("bindings-sub", tostring(i));
+ popupButton:SetAttribute("newstate", 0);
+
+ AutoBar.ssHeader:SetAttribute("AddChild", popupButton);
+ end
+ end
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar:LayoutInitialize ssButtons " .. tostring(AutoBar.ssButtons) .. " / " .. tostring(AutoBar.ssButtons[1]));
+end
+
+
+-- Arrange the buttons using the various settings and alignment options
+function AutoBar:LayoutUpdate()
+ local rows = AutoBar.display.rows;
+ local columns = AutoBar.display.columns;
+ local gapping = AutoBar.display.gapping;
+ local centerShiftX = 0;
+ local centerShiftY = 0;
+ local buttonWidth = AutoBar.display.buttonWidth;
+ local buttonHeight = AutoBar.display.buttonHeight;
+ local point = "BOTTOMLEFT";
+ local x = buttonWidth + gapping;
+ local y = buttonHeight + gapping;
+
+ local displayedButtons = math.min(AutoBar:AssignButtons(), rows * columns);
+ local displayedColumns = math.min(displayedButtons, columns);
+ local displayedRows = math.floor((displayedButtons - 1) / columns) + 1;
+
+-- AutoBar.ssHeader:SetAttribute("headofsx", "0:"..AutoBar.display.position.x);
+-- AutoBar.ssHeader:SetAttribute("headofsy", "0:"..AutoBar.display.position.y);
+
+ if (AutoBar.display.alignButtons == 1) then
+ point = "BOTTOMLEFT";
+ elseif (AutoBar.display.alignButtons == 2) then
+ centerShiftX = -0.5 * displayedColumns * (buttonWidth + gapping) + gapping / 2;
+ point = "BOTTOMLEFT";
+ elseif (AutoBar.display.alignButtons == 3) then
+ x = x * -1;
+ point = "BOTTOMRIGHT";
+ elseif (AutoBar.display.alignButtons == 4) then
+ x = x * -1;
+ point = "BOTTOMRIGHT";
+ centerShiftY = -0.5 * displayedRows * (buttonHeight + gapping) + gapping / 2;
+ elseif (AutoBar.display.alignButtons == 5) then
+ point = "BOTTOMLEFT";
+ centerShiftX = -0.5 * displayedColumns * (buttonWidth + gapping) + gapping / 2;
+ centerShiftY = -0.5 * displayedRows * (buttonHeight + gapping) + gapping / 2;
+ elseif (AutoBar.display.alignButtons == 6) then
+ point = "BOTTOMLEFT";
+ centerShiftY = -0.5 * displayedRows * (buttonHeight + gapping) + gapping / 2;
+ elseif (AutoBar.display.alignButtons == 7) then
+ x = x * -1;
+ y = y * -1;
+ point = "TOPRIGHT";
+ elseif (AutoBar.display.alignButtons == 8) then
+ y = y * -1;
+ point = "TOPLEFT";
+ centerShiftX = -0.5 * displayedColumns * (buttonWidth + gapping) + gapping / 2;
+ elseif (AutoBar.display.alignButtons == 9) then
+ y = y * -1;
+ point = "TOPLEFT";
+ end
+
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar:LayoutUpdate ");
+ local i, button;
+ for i = 1, AUTOBAR_MAXBUTTONS, 1 do
+ button = AutoBar.ssButtons[i];
+
+ if (i > (rows * columns)) then
+ button:SetAttribute("showstates", "!*");
+ button:SetAttribute("forceHidden", true);
+ else
+ AutoBar:ButtonSetup("AutoBarSAB"..i);
+
+ -- Set the relative positions of the buttons
+ button.x = (math.fmod(i - 1, columns) * x + centerShiftX);
+ button.y = math.floor((i - 1) / columns) * y + centerShiftY;
+ button:SetAttribute("ofsx", button.x);
+ button:SetAttribute("ofsy", button.y);
+ button:SetAttribute("ofspoint", "*:"..point);
+ button:SetAttribute("ofsrelpoint", "*:".."CENTER");
+
+ local hitRectOutside = -1 * math.ceil(math.max(buttonWidth, buttonHeight, 40, gapping) / 2);
+ local hitRectInside = -1 * math.ceil(gapping / 2);
+ local popupButtons = AutoBar.ssPopupButtons[i];
+ for popupButtonIndex = 1, AUTOBAR_MAXPOPUPBUTTONS do
+ local popupButton = popupButtons[popupButtonIndex];
+ local buttonDistance = popupButtonIndex - 1; -- Zero based so first button is on top of its parent
+
+ popupButton:SetWidth(buttonWidth);
+ popupButton:SetHeight(buttonHeight);
+ popupButton:SetAttribute("showstates", tostring(i));
+
+ -- For the popup also expand the mouse hit area of the buttons so selection is easier
+ popupButton:SetAttribute("ofspoint", "*:"..point);
+ popupButton:SetAttribute("ofsrelpoint", "*:".."CENTER");
+ if (AutoBar.display.popupToBottom) then
+ popupButton:SetHitRectInsets(hitRectOutside, hitRectOutside, hitRectInside, hitRectInside);
+ popupButton:SetAttribute("ofsx", "*:"..button.x);
+ popupButton:SetAttribute("ofsy", "*:"..(button.y - buttonDistance * (buttonHeight + gapping)));
+ elseif (AutoBar.display.popupToLeft) then
+ popupButton:SetHitRectInsets(hitRectInside, hitRectInside, hitRectOutside, hitRectOutside);
+ popupButton:SetAttribute("ofsx", "*:"..button.x - buttonDistance * (buttonWidth + gapping));
+ popupButton:SetAttribute("ofsy", "*:"..(button.y));
+ elseif (AutoBar.display.popupToRight) then
+ popupButton:SetHitRectInsets(hitRectInside, hitRectInside, hitRectOutside, hitRectOutside);
+ popupButton:SetAttribute("ofsx", "*:"..button.x + buttonDistance * (buttonWidth + gapping));
+ popupButton:SetAttribute("ofsy", "*:"..(button.y));
+ else
+ popupButton:SetHitRectInsets(hitRectOutside, hitRectOutside, hitRectInside, hitRectInside);
+ popupButton:SetAttribute("ofsx", "*:"..button.x);
+ popupButton:SetAttribute("ofsy", "*:"..(button.y + buttonDistance * (buttonHeight + gapping)));
+ end
+ if (popupButtonIndex == 1) then
+ if (AutoBar.display.popupToBottom) then
+ popupButton:SetHitRectInsets(hitRectOutside, hitRectOutside, -1 * gapping, hitRectInside);
+ elseif (AutoBar.display.popupToLeft) then
+ popupButton:SetHitRectInsets(hitRectInside, -1 * gapping, hitRectOutside, hitRectOutside);
+ elseif (AutoBar.display.popupToRight) then
+ popupButton:SetHitRectInsets(-1 * gapping, hitRectInside, hitRectOutside, hitRectOutside);
+ else
+ popupButton:SetHitRectInsets(hitRectOutside, hitRectOutside, hitRectInside, -1 * gapping);
+ end
+ end
+ end
+ end
+ end
+
+
+ AutoBar:ButtonsUpdate();
+ AutoBar:UpdateAnchor(displayedButtons);
+ AutoBar.ssHeader:SetAttribute("state", 0);
+end
+
+
+-- Handle anchor docking / positioning
+function AutoBar:UpdateAnchor(displayedButtons)
+ local rows = AutoBar.display.rows;
+ local columns = AutoBar.display.columns;
+ local gapping = AutoBar.display.gapping;
+ local buttonWidth = AutoBar.display.buttonWidth;
+ local buttonHeight = AutoBar.display.buttonHeight;
+ local displayedColumns = math.min(displayedButtons, columns);
+ local displayedRows = math.floor((displayedButtons - 1) / columns) + 1;
+ local autoBarAnchorFrameHandle = _G["AutoBarAnchorFrameHandle"];
+
+ autoBarAnchorFrameHandle:SetChecked(AutoBar.display.frameLocked);
+
+ local dockShiftX = AutoBar.display.dockShiftX;
+ local dockShiftY = AutoBar.display.dockShiftY;
+
+-- if (AutoBar.display.docking == "CharacterMicroButton") then
+-- AutoBarFrame:SetFrameStrata("HIGH");
+-- autoBarAnchorFrameHandle:SetFrameStrata("DIALOG");
+-- else
+-- AutoBarFrame:SetFrameStrata("LOW");
+-- autoBarAnchorFrameHandle:SetFrameStrata("MEDIUM");
+-- end
+
+-- autoBarAnchorFrameHandle:ClearAllPoints();
+-- if (AutoBar.display.docking and _G[AutoBar.display.docking]) then
+-- local offset = AutoBar.dockingFrames[AutoBar.display.docking].offset;
+-- autoBarAnchorFrameHandle:SetPoint(offset.point, AutoBar.display.docking, offset.relative, dockShiftX + offset.x, dockShiftY + offset.y);
+-- elseif (AutoBar.display.position) then
+-- autoBarAnchorFrameHandle:SetPoint("CENTER", "UIParent", "BOTTOMLEFT",
+-- AutoBar.display.position.x,
+-- AutoBar.display.position.y);
+-- else
+-- autoBarAnchorFrameHandle:SetPoint("CENTER", "UIParent", "CENTER", 0, 0);
+-- end
+ if (AutoBar.display.hideDragHandle) then
+ autoBarAnchorFrameHandle:SetAttribute("showstates", "!*");
+ else
+ autoBarAnchorFrameHandle:SetAttribute("showstates", "*");
+ end
+end
+
+
+-- Set the visual look and feel for the button
+function AutoBar:ButtonSetup(baseName)
+ local button = _G[baseName];
+ local buttonWidth = AutoBar.display.buttonWidth;
+ local buttonHeight = AutoBar.display.buttonHeight;
+ local fontScale = buttonWidth / 36;
+ local alpha = AutoBar.display.alpha / 10;
+
+ local normalTexture = _G[baseName.."NormalTexture"];
+ local countText = _G[baseName.."Count"];
+ local hotKey = _G[baseName.."HotKey"];
+ local cooldown = _G[baseName.."Cooldown"];
+ local icon = _G[baseName.."Icon"];
+
+ button:SetAttribute("forceHidden", false);
+ button:SetAlpha(alpha);
+ normalTexture:SetAlpha(alpha);
+ button:SetWidth(buttonWidth);
+ button:SetHeight(buttonHeight);
+
+ if (AutoBar.display.plainButtons) then
+ button:SetNormalTexture("");
+ icon:SetTexCoord(0.07, 0.93, 0.07, 0.93)
+ else
+ button:SetNormalTexture("Interface\\Buttons\\UI-Quickslot2");
+ icon:SetTexCoord(0,1,0,1)
+ normalTexture:SetWidth(buttonWidth * 1.833); -- Mmm what is this magical scaling factor?
+ normalTexture:SetHeight(buttonHeight * 1.833);
+ end
+
+ local fonttext, fontsize, fontoptions;
+ if (AutoBar.display.hideKeyText) then
+ hotKey:Hide();
+ else
+ fonttext, fontsize, fontoptions = hotKey:GetFont();
+ hotKey:SetFont(fonttext, 12 * fontScale, fontoptions);
+ hotKey:SetJustifyH("LEFT");
+ hotKey:SetJustifyV("TOP");
+ hotKey:SetPoint("TOPLEFT", baseName, "TOPLEFT", 2, -2);
+ hotKey:Show();
+ end
+ if (AutoBar.display.hideCount) then
+ countText:Hide();
+ else
+ countText:Show();
+ fonttext, fontsize, fontoptions = countText:GetFont();
+ countText:SetFont(fonttext, 14 * fontScale, fontoptions);
+ end
+
+ cooldown:SetScale(math.max(buttonWidth-1, buttonHeight-1) / 36);
+end
+
+
+--
+-- Popup Buttons
+--
+
+
+-- Handle a click on a popped up button
+function AutoBar:PopupButtonPostClick(mousebutton)
+ local popupButton = this;
+ local buttonsIndex = popupButton:GetAttribute("buttonsIndex");
+ local buttonInfo = AutoBar.buttons[buttonsIndex];
+
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar:PopupButtonPostClick buttonsIndex " .. buttonsIndex);
+ if (buttonInfo.arrangeOnUse and not InCombatLockdown()) then
+ local popupButtonIndex = popupButton:GetAttribute("popupButtonIndex");
+ local currentItems = AutoBar_Buttons_CurrentItems[buttonsIndex][popupButtonIndex];
+ local index;
+ local _, itemId = AutoBar.LinkDecode(GetContainerItemLink(currentItems.items[1][1], currentItems.items[1][2]));
+ local category = popupButton:GetAttribute("category");
+ for index = 1, AUTOBAR_MAXSLOTCATEGORIES, 1 do
+ if (buttonInfo[index] == category) then
+ -- First arrange the slot categories
+ local targetIndex = table.maxn(buttonInfo);
+ local temp = buttonInfo[index];
+ buttonInfo[index] = buttonInfo[targetIndex];
+ buttonInfo[targetIndex] = temp;
+
+--DEFAULT_CHAT_FRAME:AddMessage("arrangeOnUse start " .. category .. " / " .. itemId);
+ -- Arrange the category if allowed
+ if (AutoBar_Category_Info[category] and AutoBar_Category_Info[category].arrangeOnUse) then
+ local categoryList = AutoBar_Category_Info[category].items;
+ for i, categoryItemId in ipairs(categoryList) do
+--DEFAULT_CHAT_FRAME:AddMessage("arrangeOnUse ".. i .. " / " .. categoryItemId);
+ if (categoryItemId == itemId) then
+ local temp = categoryList[i];
+--DEFAULT_CHAT_FRAME:AddMessage("arrangeOnUse ".. temp .. " -> " .. categoryList[1]);
+ table.remove(categoryList, i);
+ table.insert(categoryList, temp);
+ end
+ end
+ end
+ AutoBar.ConfigChanged();
+ break;
+ end
+ end
+ end
+end
+
+
+--
+-- Drag Handle
+--
+
+-- Lock & Unlock the frame on left click, and toggle config dialog with right click
+function AutoBar:ClickHandle(button)
+ local function RelockActionBars()
+ self.display.frameLocked = true;
+ if (AutoBar.display.lockActionBars) then
+ LOCK_ACTIONBAR = "1";
+ end
+ _G["AutoBarAnchorFrameHandle"]:SetChecked(true);
+ end
+
+ if (button == "RightButton") then
+ AutoBarConfig_Toggle();
+ this:SetChecked(AutoBar.display.frameLocked);
+ elseif (button == "LeftButton") then
+ AutoBar.display.frameLocked = not AutoBar.display.frameLocked;
+ if (AutoBar.display.frameLocked) then
+ if (AutoBar.display.lockActionBars) then
+ LOCK_ACTIONBAR = "1";
+ end
+ else
+ if (AutoBar.display.lockActionBars) then
+ LOCK_ACTIONBAR = "0";
+ end
+ self:ScheduleEvent("AutoBarTemporaryUnlock", RelockActionBars, 30);
+ end
+ this:SetChecked(AutoBar.display.frameLocked);
+ end
+end
+
+
+-- Start dragging if not locked
+function AutoBar:DragStart()
+ if (not AutoBar.display.frameLocked) then
+ _G["AutoBarFrame"]:StartMoving();
+ end
+end
+
+
+-- End dragging
+function AutoBar:DragStop()
+ _G["AutoBarFrame"]:StopMovingOrSizing();
+ AutoBar.display.position = {};
+ AutoBar.display.position.x,
+ AutoBar.display.position.y = _G["AutoBarAnchorFrameHandle"]:GetCenter();
+ AutoBar.display.docking = nil;
+
+-- AutoBar:LayoutUpdate();
+end
+
+--DEFAULT_CHAT_FRAME:AddMessage("AutoBar:DragStop" .. frame:GetName() .. "x/y " .. tostring(AutoBar.display.position.x).. "/" ..tostring(AutoBar.display.position.y), 1, 0.5, 0);

Added: branches/AutoBar/Locale-deDE.lua
===================================================================
--- branches/AutoBar/Locale-deDE.lua (rev 0)
+++ branches/AutoBar/Locale-deDE.lua 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,200 @@
+--
+-- AutoBar
+-- http://www.wowace.com/wiki/AutoBar
+-- Courtesy of Teodred
+--
+
+local L = AceLibrary("AceLocale-2.2"):new("AutoBar")
+
+L:RegisterTranslations("deDE", function() return {
+ ["AUTOBAR"] = "AutoBar",
+ ["CONFIG_WINDOW"] = "Einstellungen",
+ ["SLASHCMD_LONG"] = "/autobar",
+ ["SLASHCMD_SHORT"] = "/atb",
+ ["BUTTON"] = "Feld",
+ ["EDITSLOT"] = "Bearbeiten",
+ ["VIEWSLOT"] = "Blick",
+ ["LOAD_ERROR"] = "|cff00ff00Error Loading AutoBarConfig. Make sure you have it and it is enabled.|r Error: ",
+
+ -- AutoBar_Config.lua
+ ["EMPTY"] = "Leer";
+ ["AUTOBAR_CONFIG_SMARTSELFCAST"] = "Intelligente Selbstanwendung";
+ ["AUTOBAR_CONFIG_REMOVECAT"] = "Aktuelle Kategorie l\195\182schen";
+ ["AUTOBAR_CONFIG_ROW"] = "Zeilen";
+ ["AUTOBAR_CONFIG_COLUMN"] = "Spalten";
+ ["AUTOBAR_CONFIG_GAPPING"] = "Symbolabstand";
+ ["AUTOBAR_CONFIG_ALPHA"] = "Symboltranparenz";
+ ["AUTOBAR_CONFIG_BUTTONWIDTH"] = "Feldbreite";
+ ["AUTOBAR_CONFIG_BUTTONHEIGHT"] = "Feldh\195\182he";
+ ["AUTOBAR_CONFIG_DOCKSHIFTX"] = "Verankern: rechts/links";
+ ["AUTOBAR_CONFIG_DOCKSHIFTY"] = "Verankern: oben/unten";
+ ["AUTOBAR_CONFIG_WIDTHHEIGHTUNLOCKED"] = "Feldbreite/Feldh\195\182he gleichsetzen";
+ ["AUTOBAR_CONFIG_HIDEKEYBINDING"] = "Tastenbelegung verbergen";
+ ["AUTOBAR_CONFIG_HIDECOUNT"] = "Anzahl verbergen";
+ ["AUTOBAR_CONFIG_SHOWEMPTY"] = "Leere Felder anzeigen";
+ ["AUTOBAR_CONFIG_SHOWCATEGORYICON"] = "Show Category Icons";
+ ["AUTOBAR_CONFIG_HIDETOOLTIP"] = "InfoFenster verbergen";
+ ["AUTOBAR_CONFIG_POPUPDIRECTION"] = "Popup\nButtons\nDirection";
+ ["AUTOBAR_CONFIG_POPUPDISABLE"] = "Disable Popup";
+ ["AUTOBAR_CONFIG_POPUPONSHIFT"] = "Popup on Shift Key";
+ ["AUTOBAR_CONFIG_HIDEDRAGHANDLE"] = "Hide Drag Handle";
+ ["AUTOBAR_CONFIG_CTRLSHOWSDRAGHANDLE"] = "Ctrl Key Shows Drag Handle";
+ ["AUTOBAR_CONFIG_LOCKACTIONBARS"] = "Lock Action Bars\nwhen locking AutoBar";
+
+ ["AUTOBAR_CONFIG_DOCKTOMAIN"] = "Verankern am Men\195\188";
+
+ ["AUTOBAR_CONFIG_NOTFOUND"] = "(Nicht gefunden: Gegenstand ";
+
+ -- AutoBarItemList
+ ["FISHING_LURES"] = "Fishing Lures",
+ ["FISHING_GEAR"] = "Fishing Gear",
+ ["FISHING_POLES"] = "Fishing Poles",
+
+ ["FOOD_WELL_FED"] = "Nahrung: Stuffen Facen Bonus";
+ ["FOOD_STRENGTH"] = "Nahrung: St\195\164rke Bonus";
+ ["FOOD_AGILITY"] = "Nahrung: Beweglichkeit Bonus";
+ ["FOOD_STAMINA"] = "Nahrung: Ausdauer Bonus";
+ ["FOOD_INTELLECT"] = "Nahrung: Intelligenz Bonus";
+ ["FOOD_SPIRIT"] = "Nahrung: Spirit Bonus";
+ ["FOOD_MANAREGEN"] = "Nahrung: Mana Wiederherstellungsbonus";
+ ["FOOD_HPREGEN"] = "Nahrung: Gesundheits-Wiederherstellungsbonus";
+ ["FOOD_OTHER"] = "Nahrung: Other";
+ }
+end);
+
+
+if (GetLocale() == "deDE") then
+
+AUTOBAR_CHAT_MESSAGE1 = "Veraltete Einstellungen wurden gefunden und gel\195\182scht. Standardeinstellungen werden wieder hergestellt.";
+AUTOBAR_CHAT_MESSAGE2 = "Benutze im Mehrfachfeld #%d f\195\188r den Gegenstand #%d die zugeh\195\182rige ItemID anstelle den Namen.";
+AUTOBAR_CHAT_MESSAGE3 = "Benutze f\195\188r den Gegenstand #%d die zugeh\195\182rige ItemID anstelle den Namen.";
+
+-- AutoBar_Config.xml
+AUTOBAR_CONFIG_RESET = "Zur\195\188cksetzen";
+AUTOBAR_CONFIG_CONVERT = "Umwandeln";
+AUTOBAR_CONFIG_DONE = "Fertig";
+AUTOBAR_CONFIG_DETAIL_CATEGORIES = "(Gro\195\159schreiben+Links-Klick um Kategorien zu durchsuchen)";
+AUTOBAR_CONFIG_SINGLEITEMCUSTOM = "Benutzerdefiniertes Objekt einf\195\188gen";
+
+AUTOBAR_CONFIG_TAB_SLOTS = "Schlitze";
+AUTOBAR_CONFIG_TAB_BAR = "Balken";
+AUTOBAR_CONFIG_TAB_BUTTONS = "Felder";
+AUTOBAR_CONFIG_TAB_POPUP = "Popup";
+AUTOBAR_CONFIG_TAB_PROFILE = "Profil";
+
+AUTOBAR_TOOLTIP1 = " (Anzahl: ";
+AUTOBAR_TOOLTIP2 = " [Benutzerdefiniertes Objekt]";
+AUTOBAR_TOOLTIP4 = " [Nur in Schlachtfeldern]";
+AUTOBAR_TOOLTIP5 = " [Nur au\195\159erhalb Kampf]";
+AUTOBAR_TOOLTIP6 = " [Begrenzte Verwendung]";
+AUTOBAR_TOOLTIP7 = " [Abklingzeit]";
+AUTOBAR_TOOLTIP8 = "\n(Links-Klick f\195\188r Waffenhand.\nRechts-Klick f\195\188r Schildhand)";
+
+-- AutoBar_Config.lua
+
+AUTOBAR_TOOLTIP9 = "Mehrfachfeld\n";
+AUTOBAR_TOOLTIP10 = " (Benutzerdefinifierter Gegenstand aus ItemID)";
+AUTOBAR_TOOLTIP11 = "\n(ItemID nicht erkannt)";
+AUTOBAR_TOOLTIP12 = " (Benutzerdefinifierter Gegenstand aus Name)";
+AUTOBAR_TOOLTIP13 = "Einzelfeld\n\n";
+AUTOBAR_TOOLTIP14 = "\nNicht direkt verwendbar.";
+AUTOBAR_TOOLTIP15 = "\nWaffenziel\n(Links-Klick f\195\188r Waffenhand.\nRechts-Klick f\195\188r Schildhand)";
+AUTOBAR_TOOLTIP16 = "\nZiel ausgew\195\164hlt.";
+AUTOBAR_TOOLTIP17 = "\nNur au\195\159erhalb Kampf.";
+AUTOBAR_TOOLTIP18 = "\nNur in Kampf.";
+AUTOBAR_TOOLTIP19 = "\nPosition: ";
+AUTOBAR_TOOLTIP20 = "\nBegrenzte Verwendung: "
+AUTOBAR_TOOLTIP21 = "Einsatz bei fehlender Gesundheit";
+AUTOBAR_TOOLTIP22 = "Einsatz bei fehlendem Mana";
+AUTOBAR_TOOLTIP23 = "Einzelfeld\n\n";
+
+-- AutoBar_ItemList.lua
+AUTOBAR_ALTERACVALLEY = "Alteractal";
+AUTOBAR_WARSONGGULCH = "Warsongschlucht";
+AUTOBAR_ARATHIBASIN = "Arathibecken";
+AUTOBAR_AHN_QIRAJ = "Ahn'Qiraj";
+
+AUTOBAR_CLASS_CUSTOM = "Benutzerdefiniert";
+AUTOBAR_CLASS_BANDAGES = "Verb\195\164nde";
+AUTOBAR_CLASS_ALTERAC_BANDAGE = "Alterac Verb\195\164nde";
+AUTOBAR_CLASS_WARSONG_BANDAGE = "Warsong Verb\195\164nde";
+AUTOBAR_CLASS_ARATHI_BANDAGE = "Arathi Verb\195\164nde";
+AUTOBAR_CLASS_UNGORORESTORE = "Un'Goro: Kristallflicker";
+
+AUTOBAR_CLASS_ANTIVENOM = "Gegengift";
+AUTOBAR_CLASS_AGILITYPOTIONS = "Beweglichkeitsbonus";
+AUTOBAR_CLASS_STRENGTHPOTIONS = "St\195\164rkebonus";
+AUTOBAR_CLASS_FORTITUDEPOTIONS = "Ausdauerbonus";
+AUTOBAR_CLASS_INTELLECTPOTIONS = "Intelligenzbonus";
+AUTOBAR_CLASS_WISDOMPOTIONS = "willenskraftbonus";
+AUTOBAR_CLASS_DEFENSEPOTIONS = "Verteidigungsbonus";
+AUTOBAR_CLASS_TROLLBLOODPOTIONS = "Trollbluttr\195\164nke";
+AUTOBAR_CLASS_SCROLLOFAGILITY = "Rolle der Beweglichkeit";
+AUTOBAR_CLASS_SCROLLOFINTELLECT = "Rolle der Intelligenz";
+AUTOBAR_CLASS_SCROLLOFPROTECTION = "Rolle des Schutzes";
+AUTOBAR_CLASS_SCROLLOFSPIRIT = "Rolle der Willenskraft";
+AUTOBAR_CLASS_SCROLLOFSTAMINA = "Rolle der Ausdauer";
+AUTOBAR_CLASS_SCROLLOFSTRENGTH = "Rolle der St\195\164rke";
+
+AUTOBAR_CLASS_HEALPOTIONS = "Heiltr\195\164nke";
+AUTOBAR_CLASS_PVP6HEALPOTIONS = "PVP Rang 6 - Heiltr\195\164nke";
+AUTOBAR_CLASS_HEALTHSTONE = "Gesundheitssteine";
+AUTOBAR_CLASS_WHIPPER_ROOT = "Peitscherwurzelknollen";
+AUTOBAR_CLASS_BATTLEGROUNDHEALPOTIONS = "Schlachtfeld-Heiltr\195\164nke";
+AUTOBAR_CLASS_MANAPOTIONS = "Mana Tr\195\164nke";
+AUTOBAR_CLASS_PVP6MANAPOTIONS = "PVP Rang 6 - Mana Tr\195\164nke";
+AUTOBAR_CLASS_MANASTONE = "Mana Edelsteine";
+AUTOBAR_CLASS_BATTLEGROUNDMANAPOTIONS = "Schlachtfeld Mana Tr\195\164nke";
+AUTOBAR_CLASS_DREAMLESS_SLEEP = "Traumloser Schlaf";
+AUTOBAR_CLASS_NIGHT_DRAGONS_BREATH = "Nachtdrachenodem";
+AUTOBAR_CLASS_REJUVENATION_POTIONS = "Verj\195\188ngungstr\195\164nke";
+
+AUTOBAR_CLASS_BATTLESTANDARD = "Schlachtstandarte";
+AUTOBAR_CLASS_BATTLESTANDARDAV = "Schlachtstandarte Alteractal";
+AUTOBAR_CLASS_DEMONIC_DARK_RUNES = "D\195\164monische und Dunkle Runen";
+AUTOBAR_CLASS_ARCANE_PROTECTION = "Arkanschutz";
+AUTOBAR_CLASS_FIRE_PROTECTION = "Feuerschutz";
+AUTOBAR_CLASS_FROST_PROTECTION = "Frostschutz";
+AUTOBAR_CLASS_NATURE_PROTECTION = "Naturschutz";
+AUTOBAR_CLASS_SHADOW_PROTECTION = "Schattenschutz";
+AUTOBAR_CLASS_SPELL_PROTECTION = "Zauberschutz";
+AUTOBAR_CLASS_HOLY_PROTECTION = "Heiligschutz";
+AUTOBAR_CLASS_INVULNERABILITY_POTIONS = "Unverwundbarkeitstr\195\164nke";
+AUTOBAR_CLASS_FREE_ACTION_POTION = "Bewegungsbefreiende Tr\195\164nke";
+
+AUTOBAR_CLASS_HEARTHSTONE = "Ruhestein";
+AUTOBAR_CLASS_WATER = "Wasser";
+AUTOBAR_CLASS_WATER_CONJURED = "Wasser: herbeigezaubert";
+AUTOBAR_CLASS_WATER_SPIRIT = "Wasser: Willenskraftbonus";
+AUTOBAR_CLASS_RAGEPOTIONS = "Wut Tr\195\164nke";
+AUTOBAR_CLASS_ENERGYPOTIONS = "Energie Tr\195\164nke";
+AUTOBAR_CLASS_SWIFTNESSPOTIONS = "Beweglichkeits Tr\195\164nke";
+AUTOBAR_CLASS_SOULSHARDS = "seelensteine";
+AUTOBAR_CLASS_ARROWS = "Pfeile";
+AUTOBAR_CLASS_BULLETS = "Patronen";
+AUTOBAR_CLASS_THROWNWEAPON = "Wurfwaffen";
+AUTOBAR_CLASS_FOOD = "Nahrung: kein Bonus";
+AUTOBAR_CLASS_FOOD_PET_BREAD = "Nahrung: Begleiter Brot";
+AUTOBAR_CLASS_FOOD_PET_CHEESE = "Nahrung: Begleiter K\195\164se";
+AUTOBAR_CLASS_FOOD_PET_FISH = "Nahrung: Begleiter Fisch";
+AUTOBAR_CLASS_FOOD_PET_FRUIT = "Nahrung: Begleiter Fr\195\188chte";
+AUTOBAR_CLASS_FOOD_PET_FUNGUS = "Nahrung: Begleiter Pilze";
+AUTOBAR_CLASS_FOOD_PET_MEAT = "Nahrung: Begleiter Fleisch";
+AUTOBAR_CLASS_FOOD_COMBO= "Wasser & Nahrungskombination";
+AUTOBAR_CLASS_FOOD_CONJURED = "Nahrung: herbeigezaubert";
+AUTOBAR_CLASS_FOOD_ARATHI = "Nahrung: Arathibecken";
+AUTOBAR_CLASS_FOOD_WARSONG = "Nahrung: Warsongschlucht";
+AUTOBAR_CLASS_SHARPENINGSTONES = "hergestellte Wetzsteine";
+AUTOBAR_CLASS_WEIGHTSTONE = "hergestellte Gewichtssteine";
+AUTOBAR_CLASS_POISON_CRIPPLING = "Verkr\195\188ppelndes Gift";
+AUTOBAR_CLASS_POISON_DEADLY = "T\195\182dliches Gift";
+AUTOBAR_CLASS_POISON_INSTANT = "Sofortwirkendes Gift";
+AUTOBAR_CLASS_POISON_MINDNUMBING = "Gedankenbenebelndes Gift";
+AUTOBAR_CLASS_POISON_WOUND = "Verwundendes Gift";
+AUTOBAR_CLASS_EXPLOSIVES = "Ingenieurssprengstoffe";
+AUTOBAR_CLASS_MOUNTS = "Reittier";
+AUTOBAR_CLASS_MOUNTS_QIRAJI = "Reittier: Qiraji";
+AUTOBAR_CLASS_MANA_OIL = "Zauber\195\182le: Mana Regeneration";
+AUTOBAR_CLASS_WIZARD_OIL = "Zauber\195\182le: Schaden/Heilung";
+
+end
\ No newline at end of file

Added: branches/AutoBar/Locale-enUS.lua
===================================================================
--- branches/AutoBar/Locale-enUS.lua (rev 0)
+++ branches/AutoBar/Locale-enUS.lua 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,272 @@
+--
+-- AutoBar
+-- http://www.wowace.com/wiki/AutoBar
+--
+
+local L = AceLibrary("AceLocale-2.2"):new("AutoBar")
+
+L:RegisterTranslations("enUS", function() return {
+ ["AUTOBAR"] = "AutoBar",
+ ["CONFIG_WINDOW"] = "Configuration Window",
+ ["SLASHCMD_LONG"] = "/autobar",
+ ["SLASHCMD_SHORT"] = "/atb",
+ ["BUTTON"] = "Button",
+ ["EDITSLOT"] = "Edit Slot",
+ ["VIEWSLOT"] = "View Slot",
+ ["LOAD_ERROR"] = "|cff00ff00Error Loading AutoBarConfig. Make sure you have it and it is enabled.|r Error: ",
+
+ -- AutoBarConfig.lua
+ ["EMPTY"] = "Empty"; --AUTOBAR_CONFIG_EMPTY
+ ["AUTOBAR_CONFIG_SMARTSELFCAST"] = "Smart Self Cast";
+ ["AUTOBAR_CONFIG_REMOVECAT"] = "Delete Current Category";
+ ["AUTOBAR_CONFIG_ROW"] = "Rows";
+ ["AUTOBAR_CONFIG_COLUMN"] = "Columns";
+ ["AUTOBAR_CONFIG_GAPPING"] = "Icon Gapping";
+ ["AUTOBAR_CONFIG_ALPHA"] = "Icon Alpha";
+ ["AUTOBAR_CONFIG_BUTTONWIDTH"] = "Button Width";
+ ["AUTOBAR_CONFIG_BUTTONHEIGHT"] = "Button Height";
+ ["AUTOBAR_CONFIG_DOCKSHIFTX"] = "Shift Dock Left/Right";
+ ["AUTOBAR_CONFIG_DOCKSHIFTY"] = "Shift Dock Up/Down";
+ ["AUTOBAR_CONFIG_WIDTHHEIGHTUNLOCKED"] = "Button Height\nand Width Unlocked";
+ ["AUTOBAR_CONFIG_HIDEKEYBINDING"] = "Hide Keybinding Text";
+ ["AUTOBAR_CONFIG_HIDECOUNT"] = "Hide Count Text";
+ ["AUTOBAR_CONFIG_SHOWEMPTY"] = "Show Empty Buttons";
+ ["AUTOBAR_CONFIG_SHOWCATEGORYICON"] = "Show Category Icons";
+ ["AUTOBAR_CONFIG_HIDETOOLTIP"] = "Hide Tooltips";
+ ["AUTOBAR_CONFIG_POPUPDIRECTION"] = "Popup\nButtons\nDirection";
+ ["AUTOBAR_CONFIG_POPUPDISABLE"] = "Disable Popup";
+ ["AUTOBAR_CONFIG_POPUPONSHIFT"] = "Popup on Shift Key";
+ ["AUTOBAR_CONFIG_HIDEDRAGHANDLE"] = "Hide Drag Handle";
+ ["AUTOBAR_CONFIG_CTRLSHOWSDRAGHANDLE"] = "Ctrl Key Shows Drag Handle";
+ ["AUTOBAR_CONFIG_LOCKACTIONBARS"] = "Lock Action Bars\nwhen locking AutoBar";
+ ["AUTOBAR_CONFIG_PLAINBUTTONS"] = "Plain Buttons";
+ ["AUTOBAR_CONFIG_NOPOPUP"] = "No Popup";
+ ["AUTOBAR_CONFIG_ARRANGEONUSE"] = "Rearrange Order on Use";
+ ["AUTOBAR_CONFIG_RIGHTCLICKTARGETSPET"] = "Right Click Targets Pet";
+ ["AUTOBAR_CONFIG_DOCKTONONE"] = "None";
+ ["AUTOBAR_CONFIG_DOCKTOGBARS"] = "Gbars Second Bar";
+ ["AUTOBAR_CONFIG_DOCKTOMAIN"] = "Main Menu";
+ ["AUTOBAR_CONFIG_DOCKTOCHATFRAME"] = "Chat Frame";
+ ["AUTOBAR_CONFIG_DOCKTOCHATFRAMEMENU"] = "Chat Frame Menu";
+ ["AUTOBAR_CONFIG_DOCKTOACTIONBAR"] = "Action Bar";
+ ["AUTOBAR_CONFIG_DOCKTOMENUBUTTONS"] = "Menu Buttons";
+ ["AUTOBAR_CONFIG_ALIGN"] = "Align Buttons";
+ ["AUTOBAR_CONFIG_NOTFOUND"] = "(Not Found: Item ";
+ ["AUTOBAR_CONFIG_SLOTEDITTEXT"] = " Layer (click to edit)";
+ ["AUTOBAR_CONFIG_CHARACTER"] = "Character";
+ ["AUTOBAR_CONFIG_SHARED"] = "Shared";
+ ["AUTOBAR_CONFIG_CLASS"] = "Class";
+ ["AUTOBAR_CONFIG_BASIC"] = "Basic";
+ ["AUTOBAR_CONFIG_USECHARACTER"] = "Use Character Layer";
+ ["AUTOBAR_CONFIG_USESHARED"] = "Use Shared Layer";
+ ["AUTOBAR_CONFIG_USECLASS"] = "Use Class Layer";
+ ["AUTOBAR_CONFIG_USEBASIC"] = "Use Basic Layer";
+ ["AUTOBAR_CONFIG_HIDECONFIGTOOLTIPS"] = "Hide Config Tooltips";
+ ["AUTOBAR_CONFIG_OSKIN"] = "Use oSkin";
+ ["AUTOBAR_CONFIG_CHARACTERLAYOUT"] = "Character Layout";
+ ["AUTOBAR_CONFIG_SHAREDLAYOUT"] = "Shared Layout";
+ ["AUTOBAR_CONFIG_SHARED1"] = "Shared 1";
+ ["AUTOBAR_CONFIG_SHARED2"] = "Shared 2";
+ ["AUTOBAR_CONFIG_SHARED3"] = "Shared 3";
+ ["AUTOBAR_CONFIG_SHARED4"] = "Shared 4";
+ ["AUTOBAR_CONFIG_EDITCHARACTER"] = "Edit Character Layer";
+ ["AUTOBAR_CONFIG_EDITSHARED"] = "Edit Shared Layer";
+ ["AUTOBAR_CONFIG_EDITCLASS"] = "Edit Class Layer";
+ ["AUTOBAR_CONFIG_EDITBASIC"] = "Edit Basic Layer";
+
+ -- AutoBarItemList
+ ["FISHING_LURES"] = "Fishing Lures",
+ ["FISHING_GEAR"] = "Fishing Gear",
+ ["FISHING_POLES"] = "Fishing Poles",
+
+ ["FOOD_WELL_FED"] = "Food: Well Fed Bonus";
+ ["FOOD_STRENGTH"] = "Food: Strength Bonus";
+ ["FOOD_AGILITY"] = "Food: Agility Bonus";
+ ["FOOD_STAMINA"] = "Food: Stamina Bonus";
+ ["FOOD_INTELLECT"] = "Food: Intelligence Bonus";
+ ["FOOD_SPIRIT"] = "Food: Spirit Bonus";
+ ["FOOD_MANAREGEN"] = "Food: Mana Regen Bonus";
+ ["FOOD_HPREGEN"] = "Food: HP Regen Bonus";
+ ["FOOD_OTHER"] = "Food: Other";
+ }
+end);
+
+
+if (true) then
+
+AUTOBAR_CHAT_MESSAGE1 = "Config for this character is old version. Clearing. No attempt to upgrade config is being done.";
+AUTOBAR_CHAT_MESSAGE2 = "Updating multi item button #%d item #%d to use itemid instead of item name.";
+AUTOBAR_CHAT_MESSAGE3 = "Updating single item button #%d to use itemid instead of item name.";
+
+-- AutoBar_Config.xml
+AUTOBAR_CONFIG_VIEWTEXT = "To edit a slot select it from the Slot edit section\nat the bottom of the Slots tab.";
+AUTOBAR_CONFIG_SLOTVIEWTEXT = "Combined Layer View (not editable)";
+AUTOBAR_CONFIG_RESET = "Reset";
+AUTOBAR_CONFIG_REVERT = "Revert";
+AUTOBAR_CONFIG_DONE = "Done";
+AUTOBAR_CONFIG_DETAIL_CATEGORIES = "(Shift Click to explore Category)";
+AUTOBAR_CONFIG_DRAGHANDLE = "Left Mouse Drag to move AutoBar\nLeft Click to Lock / Unlock\nRight Click for options";
+AUTOBAR_CONFIG_EMPTYSLOT = "Empty Slot";
+AUTOBAR_CONFIG_CLEARSLOT = "Clear Slot";
+AUTOBAR_CONFIG_SETSHARED = "Shared Profile:";
+AUTOBAR_CONFIG_SETSHAREDTIP = "Select the shared profile for this Character to use.\nChanges to a shared profile affect all Characters using it";
+
+AUTOBAR_CONFIG_TAB_SLOTS = "Slots";
+AUTOBAR_CONFIG_TAB_BAR = "Bar";
+AUTOBAR_CONFIG_TAB_BUTTONS = "Buttons";
+AUTOBAR_CONFIG_TAB_POPUP = "Popup";
+AUTOBAR_CONFIG_TAB_PROFILE = "Profile";
+
+AUTOBAR_TOOLTIP1 = " (Count: ";
+AUTOBAR_TOOLTIP2 = " [Custom Item]";
+AUTOBAR_TOOLTIP4 = " [Battlegrounds only]";
+AUTOBAR_TOOLTIP5 = " [Non Combat Only]";
+AUTOBAR_TOOLTIP6 = " [Limited Usage]";
+AUTOBAR_TOOLTIP7 = " [Cooldown]";
+AUTOBAR_TOOLTIP8 = "\n(Left Click to apply to Main Hand weapon\nRight Click to apply to OffHand weapon)";
+
+AUTOBAR_CONFIG_DOCKTO = "Docked to:";
+AUTOBAR_CONFIG_USECHARACTERTIP = "Character Layer items are specific to this Character.";
+AUTOBAR_CONFIG_USESHAREDTIP = "Shared Layer items are shared by other Characters that use the same Shared Layer.\nThe specific layer can be chosen on the Profile Tab.";
+AUTOBAR_CONFIG_USECLASSTIP = "Class Layer items are shared by all Characters of the same class that use the Class Layer.";
+AUTOBAR_CONFIG_USEBASICTIP = "Basic Layer items are shared by all Characters using the Basic Layer.";
+AUTOBAR_CONFIG_CHARACTERLAYOUTTIP = "Changes to visual layout only affect this Character.";
+AUTOBAR_CONFIG_SHAREDLAYOUTTIP = "Changes to visual layout affect all Characters using the same shared profile.";
+AUTOBAR_CONFIG_TIPOVERRIDE = "Items in a slot on this layer override items in that slot on lower layers.\n";
+AUTOBAR_CONFIG_TIPOVERRIDDEN = "Items in a slot on this layer are overidden by items on higher layers.\n";
+AUTOBAR_CONFIG_TIPAFFECTSCHARACTER = "Changes affect only this Character.";
+AUTOBAR_CONFIG_TIPAFFECTSALL = "Changes affect all Characters.";
+AUTOBAR_CONFIG_SETUPSINGLE = "Single Setup";
+AUTOBAR_CONFIG_SETUPSHARED = "Shared Setup";
+AUTOBAR_CONFIG_SETUPSTANDARD = "Standard Setup";
+AUTOBAR_CONFIG_SETUPBLANKSLATE = "Blank Slate";
+AUTOBAR_CONFIG_SETUPSINGLETIP = "Click for Single Character settings similar to the classic AutoBar.";
+AUTOBAR_CONFIG_SETUPSHAREDTIP = "Click for shared settings.\nEnables the character specific as well as shared layers.";
+AUTOBAR_CONFIG_SETUPSTANDARDTIP = "Enable editing and use of all layers.";
+AUTOBAR_CONFIG_SETUPBLANKSLATETIP = "Clear out all character and shared slots.";
+AUTOBAR_CONFIG_RESETSINGLETIP = "Click to reset to the Single Character defaults.";
+AUTOBAR_CONFIG_RESETSHAREDTIP = "Click to reset to the Shared Character defaults.\nClass specific slots are copied to the Character layer.\nDefault slots are copied to the Shared layer.";
+AUTOBAR_CONFIG_RESETSTANDARDTIP = "Click to reset to the standard defaults.\nClass specific slots are in the Class layer.\nDefault slots are in the Basic layer.\nShared and Character layers are cleared.";
+
+-- AutoBarConfig.lua
+AUTOBAR_TOOLTIP9 = "Multi Category Button\n";
+AUTOBAR_TOOLTIP10 = " (Custom Item by ID)";
+AUTOBAR_TOOLTIP11 = "\n(Item ID not recognized)";
+AUTOBAR_TOOLTIP12 = " (Custom Item by Name)";
+AUTOBAR_TOOLTIP13 = "Single Category Button\n\n";
+AUTOBAR_TOOLTIP14 = "\nNot directly usable.";
+AUTOBAR_TOOLTIP15 = "\nWeapon Target\n(Left click main weapon\nRight click offhand weapon.)";
+AUTOBAR_TOOLTIP16 = "\nTargetted.";
+AUTOBAR_TOOLTIP17 = "\nNon combat only.";
+AUTOBAR_TOOLTIP18 = "\nCombat only.";
+AUTOBAR_TOOLTIP19 = "\nLocation: ";
+AUTOBAR_TOOLTIP20 = "\nLimited Usage: "
+AUTOBAR_TOOLTIP21 = "Require HP restore";
+AUTOBAR_TOOLTIP22 = "Require Mana restore";
+AUTOBAR_TOOLTIP23 = "Single Item Button\n\n";
+
+-- AutoBarItemList.lua
+AUTOBAR_ALTERACVALLEY = "Alterac Valley";
+AUTOBAR_WARSONGGULCH = "Warsong Gulch";
+AUTOBAR_ARATHIBASIN = "Arathi Basin";
+AUTOBAR_AHN_QIRAJ = "Ahn'Qiraj";
+AUTOBAR_BWL = "Blackwing Lair";
+
+AUTOBAR_CLASS_CUSTOM = "Custom";
+AUTOBAR_CLASS_MINI_PET = "Pet";
+AUTOBAR_CLASS_MINI_PET_HOLIDAY = "Holiday Pet";
+AUTOBAR_CLASS_QUEST_ITEMS = "Quest Items";
+AUTOBAR_CLASS_CLEAR = "Clear this Slot";
+AUTOBAR_CLASS_BANDAGES = "Bandages";
+AUTOBAR_CLASS_ALTERAC_BANDAGE = "Alterac Bandages";
+AUTOBAR_CLASS_WARSONG_BANDAGE = "Warsong Bandages";
+AUTOBAR_CLASS_ARATHI_BANDAGE = "Arathi Bandages";
+AUTOBAR_CLASS_UNGORORESTORE = "Un'Goro: Crystal Restore";
+
+AUTOBAR_CLASS_ANTIVENOM = "Anti-Venom";
+AUTOBAR_CLASS_AGILITYPOTIONS = "Agility Potions";
+AUTOBAR_CLASS_STRENGTHPOTIONS = "Strength Potions";
+AUTOBAR_CLASS_FORTITUDEPOTIONS = "Fortitude Potions";
+AUTOBAR_CLASS_INTELLECTPOTIONS = "Intellect Potions";
+AUTOBAR_CLASS_WISDOMPOTIONS = "Wisdom Potions";
+AUTOBAR_CLASS_DEFENSEPOTIONS = "Defense Potions";
+AUTOBAR_CLASS_TROLLBLOODPOTIONS = "Troll Blood Potions";
+AUTOBAR_CLASS_SCROLLOFAGILITY = "Scroll of Agility";
+AUTOBAR_CLASS_SCROLLOFINTELLECT = "Scroll of Intellect";
+AUTOBAR_CLASS_SCROLLOFPROTECTION = "Scroll of Protection";
+AUTOBAR_CLASS_SCROLLOFSPIRIT = "Scroll of Spirit";
+AUTOBAR_CLASS_SCROLLOFSTAMINA = "Scroll of Stamina";
+AUTOBAR_CLASS_SCROLLOFSTRENGTH = "Scroll of Strength";
+AUTOBAR_CLASS_BUFF_ATTACKPOWER = "Buff Attack Power";
+AUTOBAR_CLASS_BUFF_ATTACKSPEED = "Buff Attack Speed";
+AUTOBAR_CLASS_BUFF_DODGE = "Buff Dodge";
+AUTOBAR_CLASS_BUFF_FROST = "Buff Frost Resistance";
+AUTOBAR_CLASS_BUFF_FIRE = "Buff Fire Resistance";
+
+AUTOBAR_CLASS_HEALPOTIONS = "Heal Potions";
+AUTOBAR_CLASS_PVP6HEALPOTIONS = "PVP Rank 6 - Heal Potions";
+AUTOBAR_CLASS_HEALTHSTONE = "Healthstones";
+AUTOBAR_CLASS_WHIPPER_ROOT = "Whipper Root";
+AUTOBAR_CLASS_BATTLEGROUNDHEALPOTIONS = "Battleground Heal Potions";
+AUTOBAR_CLASS_MANAPOTIONS = "Mana Potions";
+AUTOBAR_CLASS_PVP6MANAPOTIONS = "PVP Rank 6 - Mana Potions";
+AUTOBAR_CLASS_MANASTONE = "Manastones";
+AUTOBAR_CLASS_BATTLEGROUNDMANAPOTIONS = "Battleground Mana Potions";
+AUTOBAR_CLASS_DREAMLESS_SLEEP = "Dreamless Sleep";
+AUTOBAR_CLASS_NIGHT_DRAGONS_BREATH = "Night Dragon's Breath";
+AUTOBAR_CLASS_REJUVENATION_POTIONS = "Rejuvenation Potions";
+
+AUTOBAR_CLASS_BATTLESTANDARD = "Battle Standard";
+AUTOBAR_CLASS_BATTLESTANDARDAV = "Battle Standard AV";
+AUTOBAR_CLASS_DEMONIC_DARK_RUNES = "Demonic and Dark Runes";
+AUTOBAR_CLASS_ARCANE_PROTECTION = "Arcane Protection";
+AUTOBAR_CLASS_FIRE_PROTECTION = "Fire Protection";
+AUTOBAR_CLASS_FROST_PROTECTION = "Frost Protection";
+AUTOBAR_CLASS_NATURE_PROTECTION = "Nature Protection";
+AUTOBAR_CLASS_SHADOW_PROTECTION = "Shadow Protection";
+AUTOBAR_CLASS_SPELL_PROTECTION = "Spell Protection";
+AUTOBAR_CLASS_HOLY_PROTECTION = "Holy Protection";
+AUTOBAR_CLASS_INVULNERABILITY_POTIONS = "Invulnerability Potions";
+AUTOBAR_CLASS_FREE_ACTION_POTION = "Free Action Potion";
+
+AUTOBAR_CLASS_HEARTHSTONE = "Hearthstone";
+AUTOBAR_CLASS_WATER = "Water";
+AUTOBAR_CLASS_WATER_PERCENT = "Water: % mana gain";
+AUTOBAR_CLASS_WATER_CONJURED = "Water: Mage Conjured";
+AUTOBAR_CLASS_WATER_SPIRIT = "Water: Spirit Bonus";
+AUTOBAR_CLASS_RAGEPOTIONS = "Rage Potions";
+AUTOBAR_CLASS_ENERGYPOTIONS = "Energy Potions";
+AUTOBAR_CLASS_SWIFTNESSPOTIONS = "Swiftness Potions";
+AUTOBAR_CLASS_SOULSHARDS = "Soul Shards";
+AUTOBAR_CLASS_ARROWS = "Arrows";
+AUTOBAR_CLASS_BULLETS = "Bullets";
+AUTOBAR_CLASS_THROWNWEAPON = "Thrown Weapons";
+AUTOBAR_CLASS_FOOD = "Food: No Bonus";
+AUTOBAR_CLASS_FOOD_PERCENT = "Food: % health gain";
+AUTOBAR_CLASS_FOOD_PERCENT_BONUS = "Food: % HP Regen (well fed buff)";
+AUTOBAR_CLASS_FOOD_PERCENT_COMBO = "Food: % health & mana gain";
+
+AUTOBAR_CLASS_FOOD_PET_BREAD = "Food: Pet Bread";
+AUTOBAR_CLASS_FOOD_PET_CHEESE = "Food: Pet Cheese";
+AUTOBAR_CLASS_FOOD_PET_FISH = "Food: Pet Fish";
+AUTOBAR_CLASS_FOOD_PET_FRUIT = "Food: Pet Fruit";
+AUTOBAR_CLASS_FOOD_PET_FUNGUS = "Food: Pet Fungus";
+AUTOBAR_CLASS_FOOD_PET_MEAT = "Food: Pet Meat";
+AUTOBAR_CLASS_FOOD_COMBO= "Food & Water Combo";
+AUTOBAR_CLASS_FOOD_CONJURED = "Food: Mage Conjured";
+AUTOBAR_CLASS_FOOD_ARATHI = "Food: Arathi Basin";
+AUTOBAR_CLASS_FOOD_WARSONG = "Food: Warsong Gulch";
+AUTOBAR_CLASS_SHARPENINGSTONES = "Blacksmith created Sharpening stones";
+AUTOBAR_CLASS_WEIGHTSTONE = "Blacksmith created Weight stones";
+AUTOBAR_CLASS_POISON_CRIPPLING = "Crippling Poison";
+AUTOBAR_CLASS_POISON_DEADLY = "Deadly Poison";
+AUTOBAR_CLASS_POISON_INSTANT = "Instant Poison";
+AUTOBAR_CLASS_POISON_MINDNUMBING = "Mind-Numbing Poison";
+AUTOBAR_CLASS_POISON_WOUND = "Wounding Poison";
+AUTOBAR_CLASS_EXPLOSIVES = "Engineering Explosives";
+AUTOBAR_CLASS_MOUNTS = "Mounts";
+AUTOBAR_CLASS_MOUNTS_QIRAJI = "Mounts: Qiraji";
+AUTOBAR_CLASS_MANA_OIL = "Enchantment Oil: Mana Regen";
+AUTOBAR_CLASS_WIZARD_OIL = "Enchantment Oil: Damage/Healing Bonus";
+
+end
\ No newline at end of file

Added: branches/AutoBar/Locale-frFR.lua
===================================================================
--- branches/AutoBar/Locale-frFR.lua (rev 0)
+++ branches/AutoBar/Locale-frFR.lua 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,265 @@
+--
+-- AutoBar
+-- http://www.wowace.com/wiki/AutoBar
+-- Courtesy of Cinedelle
+--
+
+local L = AceLibrary("AceLocale-2.2"):new("AutoBar")
+
+L:RegisterTranslations("frFR", function() return {
+ ["AUTOBAR"] = "AutoBar",
+ ["CONFIG_WINDOW"] = "Fen\195\170tre de configuration",
+ ["SLASHCMD_LONG"] = "/autobar",
+ ["SLASHCMD_SHORT"] = "/atb",
+ ["BUTTON"] = "Bouton",
+ ["EDITSLOT"] = "Editer l'emplacement",
+ ["VIEWSLOT"] = "Voir l'emplacement",
+ ["LOAD_ERROR"] = "|cff00ff00Erreur de chargement d'AutoBarConfig. Assurez-vous qu'il soit pr\195\169sent et activ\195\169.|r Error: ",
+
+ -- AutoBarConfig.lua
+ ["EMPTY"] = "Vide"; --AUTOBAR_CONFIG_EMPTY
+ ["AUTOBAR_CONFIG_SMARTSELFCAST"] = "Smart Self Cast";
+ ["AUTOBAR_CONFIG_REMOVECAT"] = "Effacer la cat\195\169gorie actuelle";
+ ["AUTOBAR_CONFIG_ROW"] = "Lignes";
+ ["AUTOBAR_CONFIG_COLUMN"] = "Colonnes";
+ ["AUTOBAR_CONFIG_GAPPING"] = "Espacement des icones";
+ ["AUTOBAR_CONFIG_ALPHA"] = "Transparence dee icones";
+ ["AUTOBAR_CONFIG_BUTTONWIDTH"] = "Largeur du bouton";
+ ["AUTOBAR_CONFIG_BUTTONHEIGHT"] = "Hauteur du bouton";
+ ["AUTOBAR_CONFIG_DOCKSHIFTX"] = "D\195\169calage gauche/droite";
+ ["AUTOBAR_CONFIG_DOCKSHIFTY"] = "D\195\169calage haut/bas";
+ ["AUTOBAR_CONFIG_WIDTHHEIGHTUNLOCKED"] = "Hauteur et Largeur \ndes boutons non proportionn\195\169";
+ ["AUTOBAR_CONFIG_HIDEKEYBINDING"] = "Cacher les raccourcis";
+ ["AUTOBAR_CONFIG_HIDECOUNT"] = "Cacher la quantit\195\169";
+ ["AUTOBAR_CONFIG_SHOWEMPTY"] = "Afficher les boutons vide";
+ ["AUTOBAR_CONFIG_SHOWCATEGORYICON"] = "Afficher les icones de cat\195\169gorie";
+ ["AUTOBAR_CONFIG_HIDETOOLTIP"] = "Cacher les bulles d'aides";
+ ["AUTOBAR_CONFIG_POPUPDIRECTION"] = "Orientation du \nd\195\169ploiement \ndes boutons";
+ ["AUTOBAR_CONFIG_POPUPDISABLE"] = "D\195\169sactive le d\195\169ploiement";
+ ["AUTOBAR_CONFIG_POPUPONSHIFT"] = "D\195\169ploiement uniquement \navec la touche Shift(MAJ)";
+ ["AUTOBAR_CONFIG_HIDEDRAGHANDLE"] = "cacher la poign\195\169 de d\195\169placement";
+ ["AUTOBAR_CONFIG_PLAINBUTTONS"] = "Sans bordure";
+ ["AUTOBAR_CONFIG_NOPOPUP"] = "Pas de d\195\169ploiement";
+ ["AUTOBAR_CONFIG_ARRANGEONUSE"] = "R\195\169organise l'ordre \nlors d'une utilisation";
+ ["AUTOBAR_CONFIG_RIGHTCLICKTARGETSPET"] = "Clique droit cible le familier";
+ ["AUTOBAR_CONFIG_DOCKTONONE"] = "Aucun";
+ ["AUTOBAR_CONFIG_DOCKTOGBARS"] = "Seconde barre de Gbars";
+ ["AUTOBAR_CONFIG_DOCKTOMAIN"] = "Menu principale";
+ ["AUTOBAR_CONFIG_DOCKTOCHATFRAME"] = "Fen\195\170tre de chat";
+ ["AUTOBAR_CONFIG_DOCKTOCHATFRAMEMENU"] = "Menu des fen\195\170tre de chat";
+ ["AUTOBAR_CONFIG_DOCKTOACTIONBAR"] = "Barre d'action";
+ ["AUTOBAR_CONFIG_DOCKTOMENUBUTTONS"] = "Menu des boutons";
+ ["AUTOBAR_CONFIG_ALIGN"] = "Alignement des \nboutons";
+ ["AUTOBAR_CONFIG_NOTFOUND"] = "(Objet : non trouv\195\169 ";
+ ["AUTOBAR_CONFIG_SLOTEDITTEXT"] = " Set (cliquer pour \195\169diter)";
+ ["AUTOBAR_CONFIG_CHARACTER"] = "Personnage :";
+ ["AUTOBAR_CONFIG_SHARED"] = "Partag\195\169";
+ ["AUTOBAR_CONFIG_CLASS"] = "Classe";
+ ["AUTOBAR_CONFIG_BASIC"] = "Base";
+ ["AUTOBAR_CONFIG_USECHARACTER"] = "Utiliser le set personnage";
+ ["AUTOBAR_CONFIG_USESHARED"] = "Utiliser le set partag\195\169e";
+ ["AUTOBAR_CONFIG_USECLASS"] = "Utiliser le set de classe";
+ ["AUTOBAR_CONFIG_USEBASIC"] = "Utiliser le set de base";
+ ["AUTOBAR_CONFIG_HIDECONFIGTOOLTIPS"] = "Cacher les bulles d'aide \nde configuration";
+ ["AUTOBAR_CONFIG_OSKIN"] = "Utiliser oSkin";
+ ["AUTOBAR_CONFIG_CHARACTERLAYOUT"] = "Organisation pour le personnage";
+ ["AUTOBAR_CONFIG_SHAREDLAYOUT"] = "Organisation partag\195\169e";
+ ["AUTOBAR_CONFIG_SHARED1"] = "Partage 1";
+ ["AUTOBAR_CONFIG_SHARED2"] = "Partage 2";
+ ["AUTOBAR_CONFIG_SHARED3"] = "Partage 3";
+ ["AUTOBAR_CONFIG_SHARED4"] = "Partage 4";
+ ["AUTOBAR_CONFIG_EDITCHARACTER"] = "Editer le set personnage";
+ ["AUTOBAR_CONFIG_EDITSHARED"] = "Editer le set partag\195\169e";
+ ["AUTOBAR_CONFIG_EDITCLASS"] = "Editer le set de classe";
+ ["AUTOBAR_CONFIG_EDITBASIC"] = "Editer le set de base";
+
+ -- AutoBarItemList
+ ["FISHING_LURES"] = "Leurres de p\195\170che",
+ ["FISHING_GEAR"] = "Equipement de p\195\170che",
+ ["FISHING_POLES"] = "Cannes \195\160 p\195\170che",
+
+ ["FOOD_WELL_FED"] = "Food: Well Fed Bonus";
+ ["FOOD_STRENGTH"] = "Nourriture : Bonus de force";
+ ["FOOD_AGILITY"] = "Nourriture : Bonus d'agilit\195\169";
+ ["FOOD_STAMINA"] = "Nourriture : Bonus d'endurance";
+ ["FOOD_INTELLECT"] = "Nourriture : Bonus d'intelligence";
+ ["FOOD_SPIRIT"] = "Food: Spirit Bonus";
+ ["FOOD_MANAREGEN"] = "Nourriture : Bonus de r\195\169g\195\169n\195\169ration de mana";
+ ["FOOD_HPREGEN"] = "Nourriture : Bonus de r\195\169g\195\169n\195\169ration de PV";
+ ["FOOD_OTHER"] = "Food: Other";
+ }
+end);
+
+
+if (GetLocale() == "frFR") then
+
+AUTOBAR_CHAT_MESSAGE1 = "La configuration pour ce personnage vient d'une ancienne version. Effacer. Aucune tentative de mise \195\160 jour n'a \195\169t\195\169 tent\195\169.";
+AUTOBAR_CHAT_MESSAGE2 = "Mise \195\160 jour du bouton multi-objet #%d objet #%d afin d'utiliser l'ID \195\160 la place du nom de l'objet.";
+AUTOBAR_CHAT_MESSAGE3 = "Mise à jour du bouton mono-objet #%d objet #%d afin d'utiliser l'ID \195\160 la place du nom de l'objet.";
+
+-- AutoBar_Config.xml
+AUTOBAR_CONFIG_VIEWTEXT = "Pour éditer un bouton, sélectionner le dans la section \nd'édition, en bas de la feuille Emplacements.";
+AUTOBAR_CONFIG_SLOTVIEWTEXT = "Vue des sets combin\195\169s (non \195\169ditable)";
+AUTOBAR_CONFIG_RESET = "R\195\169initialiser";
+AUTOBAR_CONFIG_REVERT = "Inverser";
+AUTOBAR_CONFIG_DONE = "OK";
+AUTOBAR_CONFIG_DETAIL_CATEGORIES = "(Shift+Clique explore la cat\195\169gorie)";
+AUTOBAR_CONFIG_DRAGHANDLE = "Bouton gauche maintenu pour d\195\169placer AutoBar\nClique gauche pour v\195\169rouiller/d\195\169v\195\169rouiller\nClique droit pour les options";
+AUTOBAR_CONFIG_EMPTYSLOT = "RAZ";
+AUTOBAR_CONFIG_CLEARSLOT = "Bouton vide";
+AUTOBAR_CONFIG_SETSHARED = "Partager le profile:";
+AUTOBAR_CONFIG_SETSHAREDTIP = "S\195\169lectionner le profile partag\195\169 \195\160 utiliser pour ce personnage.\nLes modifications apport\195\169es \195\160 un profile partag\195\169 touchent tous les personnage l'utilisant";
+
+AUTOBAR_CONFIG_TAB_SLOTS = "Emplacements";
+AUTOBAR_CONFIG_TAB_BAR = "Barre";
+AUTOBAR_CONFIG_TAB_BUTTONS = "Boutons";
+AUTOBAR_CONFIG_TAB_POPUP = "D\195\169ploiement";
+AUTOBAR_CONFIG_TAB_PROFILE = "Profile";
+
+AUTOBAR_TOOLTIP1 = " (Qauntit\195\169 : ";
+AUTOBAR_TOOLTIP2 = " [Objet personnalis\195\169]";
+AUTOBAR_TOOLTIP4 = " [En champs de bataille seulement]";
+AUTOBAR_TOOLTIP5 = " [Hors-combat seulement]";
+AUTOBAR_TOOLTIP6 = " [Utilisation limit\195\169]";
+AUTOBAR_TOOLTIP7 = " [Cooldown]";
+AUTOBAR_TOOLTIP8 = "\n(Clique gauche pour application sur l'arme main droite\nClique droit pour application sur l'arme main gauche)";
+
+AUTOBAR_CONFIG_DOCKTO = "Attacher \195\160 :";
+AUTOBAR_CONFIG_USECHARACTERTIP = "Les objets de ce set de personnage sont spécifique à ce personnage.";
+AUTOBAR_CONFIG_USESHAREDTIP = "Les objets d'un set partag\195\169 sont partag\195\169s par les personnages utilisant le m\195\170me set partag\195\169.\nLe set sp\195\169cifique peut \195\170tre d\195\169sign\195\169 dans l'onglet Profile.";
+AUTOBAR_CONFIG_USECLASSTIP = "Les objets d'un set de classe sont partag\195\169s par les personnages de même classe utilisant le set de classe.";
+AUTOBAR_CONFIG_USEBASICTIP = "Les objets du set de base sont partag\195\169s par les personnages utilisant le set de base.";
+AUTOBAR_CONFIG_CHARACTERLAYOUTTIP = "Les modifications de l'organisation visuelle ne touchent que ce personnage.";
+AUTOBAR_CONFIG_SHAREDLAYOUTTIP = "Les modifications de l'organisation visuelle touchent tous les personnage utilisant le même profile partag\195\169.";
+AUTOBAR_CONFIG_TIPOVERRIDE = "Les boutons de ce set sont prioritaires sur les boutons des sets inf\195\169rieurs.\n";
+AUTOBAR_CONFIG_TIPOVERRIDDEN = "Les boutons de ce set seront cacher par les sets supérieurs.\n";
+AUTOBAR_CONFIG_TIPAFFECTSCHARACTER = "Les modifications ne touchent que ce personnage.";
+AUTOBAR_CONFIG_TIPAFFECTSALL = "Les modifications touchent tous les personnages.";
+AUTOBAR_CONFIG_SETUPSINGLE = "Configuration unique";
+AUTOBAR_CONFIG_SETUPSHARED = "Configuration partag\195\169e";
+AUTOBAR_CONFIG_SETUPSTANDARD = "Configuration standard";
+AUTOBAR_CONFIG_SETUPBLANKSLATE = "Remise \195\160 blanc";
+AUTOBAR_CONFIG_SETUPSINGLETIP = "Cliquer pour obtenir une configuration de personnage unique, similaire \195\160 AutoBar classique.";
+AUTOBAR_CONFIG_SETUPSHAREDTIP = "Cliquer pour obtenir une configuration partag\195\169.\nActive les sets partag\195\169s et sp\195\169cifiques \195\160 un personnage.";
+AUTOBAR_CONFIG_SETUPSTANDARDTIP = "Active l'\195\169diton et l'utilisation de tous les sets.";
+AUTOBAR_CONFIG_SETUPBLANKSLATETIP = "Efface l'ensemble des boutons des sets partag\195\169s et de personnages.";
+AUTOBAR_CONFIG_RESETSINGLETIP = "Cliquer pour r\195\169initialiser la configuration de personnage unique.";
+AUTOBAR_CONFIG_RESETSHAREDTIP = "Cliquer pour r\195\169initialiser la configuration partag\195\169.\nLe set de classe est copi\195\169 vers le set de personnage.\nLe set par d\195\169faut est copi\195\169 vers le set partag\195\169.";
+AUTOBAR_CONFIG_RESETSTANDARDTIP = "Cliquer pour r\195\169initialiser la configuration standard.\nLes boutons de classe sont dans le set de classe.\nLes boutons par d\195\169faut sont dans le set de base.\nLes sets partag\195\169s et de personnages sont r\195\169initialis\195\169s.";
+
+-- AutoBarConfig.lua
+AUTOBAR_TOOLTIP9 = "Bouton multi cat\195\169gorie\n";
+AUTOBAR_TOOLTIP10 = " (Objet personnalis\195\169 par ID)";
+AUTOBAR_TOOLTIP11 = "\n(ID de l'objet inconnu)";
+AUTOBAR_TOOLTIP12 = " (Objet personnalis\195\169 par nom)";
+AUTOBAR_TOOLTIP13 = "Bouton de cat\195\169gorie unique\n\n";
+AUTOBAR_TOOLTIP14 = "\nPas utilisable directement.";
+AUTOBAR_TOOLTIP15 = "\nCible une arme\n(Clique gauche pour l'arme main droite\nClique droit pour l'arme main gauche)";
+AUTOBAR_TOOLTIP16 = "\nCibl\195\169.";
+AUTOBAR_TOOLTIP17 = "\nHors-combat seulement.";
+AUTOBAR_TOOLTIP18 = "\nCombat seulement.";
+AUTOBAR_TOOLTIP19 = "\nLocalisation: ";
+AUTOBAR_TOOLTIP20 = "\nUtilisation limit\195\169 : "
+AUTOBAR_TOOLTIP21 = "Requi\195\168re une restauration de PV";
+AUTOBAR_TOOLTIP22 = "Requi\195\168re une restauration de mana";
+AUTOBAR_TOOLTIP23 = "Bouton pour objet unique\n\n";
+
+-- AutoBarItemList.lua
+AUTOBAR_ALTERACVALLEY = "Vall\195\169e d'Alterac";
+AUTOBAR_WARSONGGULCH = "Goulet des Warsong";
+AUTOBAR_ARATHIBASIN = "Bassin d'Arathi";
+AUTOBAR_AHN_QIRAJ = "Ahn'Qiraj";
+AUTOBAR_BWL = "Rep\195\168re de l'aile noire";
+
+AUTOBAR_CLASS_CUSTOM = "Personnaliser";
+AUTOBAR_CLASS_CLEAR = "Clear this Slot";
+AUTOBAR_CLASS_BANDAGES = "Bandages";
+AUTOBAR_CLASS_ALTERAC_BANDAGE = "Bandages d'Alterac";
+AUTOBAR_CLASS_WARSONG_BANDAGE = "Bandages de Warsong";
+AUTOBAR_CLASS_ARATHI_BANDAGE = "Bandages d'Arathi";
+AUTOBAR_CLASS_UNGORORESTORE = "Cristal de restauration - Un'Goro";
+
+AUTOBAR_CLASS_ANTIVENOM = "Anti-Venin";
+AUTOBAR_CLASS_AGILITYPOTIONS = "Potions agilit\195\169";
+AUTOBAR_CLASS_STRENGTHPOTIONS = "Potions de force";
+AUTOBAR_CLASS_FORTITUDEPOTIONS = "Potions de robustesse";
+AUTOBAR_CLASS_INTELLECTPOTIONS = "Potions d'intelligence";
+AUTOBAR_CLASS_WISDOMPOTIONS = "Potions de sagesse";
+AUTOBAR_CLASS_DEFENSEPOTIONS = "Potions de d\195\169fense";
+AUTOBAR_CLASS_TROLLBLOODPOTIONS = "Potions de sang de troll";
+AUTOBAR_CLASS_SCROLLOFAGILITY = "Parchemin d'agilit\195\169";
+AUTOBAR_CLASS_SCROLLOFINTELLECT = "Parchemin d'intelligence";
+AUTOBAR_CLASS_SCROLLOFPROTECTION = "Parchemin de protection";
+AUTOBAR_CLASS_SCROLLOFSPIRIT = "Parchemin d'esprit";
+AUTOBAR_CLASS_SCROLLOFSTAMINA = "Parchemin d'endurance";
+AUTOBAR_CLASS_SCROLLOFSTRENGTH = "Parchemin de force";
+AUTOBAR_CLASS_BUFF_ATTACKPOWER = "Buff de puissance d'attaque";
+AUTOBAR_CLASS_BUFF_ATTACKSPEED = "Buff de vitesse d'attaque";
+AUTOBAR_CLASS_BUFF_DODGE = "Buff d'esquive";
+AUTOBAR_CLASS_BUFF_FROST = "Buff de r\195\169sistance au froid";
+AUTOBAR_CLASS_BUFF_FIRE = "Buff de r\195\169sistance au feu";
+
+AUTOBAR_CLASS_HEALPOTIONS = "Potions de soin";
+AUTOBAR_CLASS_PVP6HEALPOTIONS = "Potions de soin - JcJ grade 6";
+AUTOBAR_CLASS_HEALTHSTONE = "Pierre de soin";
+AUTOBAR_CLASS_WHIPPER_ROOT = "Tubercule de navetille";
+AUTOBAR_CLASS_BATTLEGROUNDHEALPOTIONS = "Potions de soin des champs de bataille";
+AUTOBAR_CLASS_MANAPOTIONS = "Potions de mana";
+AUTOBAR_CLASS_PVP6MANAPOTIONS = "Potions de mana - JcJ grade 6";
+AUTOBAR_CLASS_MANASTONE = "Pierres de mana";
+AUTOBAR_CLASS_BATTLEGROUNDMANAPOTIONS = "Potions de mana des champs de bataille";
+AUTOBAR_CLASS_DREAMLESS_SLEEP = "Sommeil sans r\195\170ve";
+AUTOBAR_CLASS_NIGHT_DRAGONS_BREATH = "Souffle de dragon nocturne";
+AUTOBAR_CLASS_REJUVENATION_POTIONS = "Potions de r\195\169g\195\169n\195\169ration";
+
+AUTOBAR_CLASS_BATTLESTANDARD = "Etendard de bataille";
+AUTOBAR_CLASS_BATTLESTANDARDAV = "Etendard de bataille (VA)";
+AUTOBAR_CLASS_DEMONIC_DARK_RUNES = "Runes d\195\169moniaques et t\195\169n\195\169breuses";
+AUTOBAR_CLASS_ARCANE_PROTECTION = "Protection contre l'arcane";
+AUTOBAR_CLASS_FIRE_PROTECTION = "Protection contre le feu";
+AUTOBAR_CLASS_FROST_PROTECTION = "Protection contre le givre";
+AUTOBAR_CLASS_NATURE_PROTECTION = "Protection contre la nature";
+AUTOBAR_CLASS_SHADOW_PROTECTION = "Protection contre l'ombre";
+AUTOBAR_CLASS_SPELL_PROTECTION = "Protection contre les sorts";
+AUTOBAR_CLASS_HOLY_PROTECTION = "Protection contre le sacr\195\169";
+AUTOBAR_CLASS_INVULNERABILITY_POTIONS = "Potions d'invuln\195\169rabilit\195\169";
+AUTOBAR_CLASS_FREE_ACTION_POTION = "Potions de libre action";
+
+AUTOBAR_CLASS_HEARTHSTONE = "Pierre de foyer";
+AUTOBAR_CLASS_WATER = "Eau";
+AUTOBAR_CLASS_WATER_PERCENT = "Eau : gain de mana en %";
+AUTOBAR_CLASS_WATER_CONJURED = "Eau : Conjur\195\169 par les Mages";
+AUTOBAR_CLASS_WATER_SPIRIT = "Eau : Bonus d'esprit";
+AUTOBAR_CLASS_RAGEPOTIONS = "Potions de Rage";
+AUTOBAR_CLASS_ENERGYPOTIONS = "Potions d'\195\169nergie";
+AUTOBAR_CLASS_SWIFTNESSPOTIONS = "Potions de rapidit\195\169";
+AUTOBAR_CLASS_SOULSHARDS = "Fragment d'\195\162mes";
+AUTOBAR_CLASS_ARROWS = "Fl\195\168ches";
+AUTOBAR_CLASS_BULLETS = "Balles";
+AUTOBAR_CLASS_THROWNWEAPON = "Armes de jet";
+AUTOBAR_CLASS_FOOD = "Nourriture : Aucun Bonus";
+AUTOBAR_CLASS_FOOD_PERCENT = "Nourriture : gain de vie en %";
+AUTOBAR_CLASS_FOOD_PET_BREAD = "Nourriture : Pain pour familier";
+AUTOBAR_CLASS_FOOD_PET_CHEESE = "Nourriture : Fromage pour familier";
+AUTOBAR_CLASS_FOOD_PET_FISH = "Nourriture : Poisson pour familier";
+AUTOBAR_CLASS_FOOD_PET_FRUIT = "Nourriture : Fruit pour familier";
+AUTOBAR_CLASS_FOOD_PET_FUNGUS = "Nourriture : Champignon pour familier";
+AUTOBAR_CLASS_FOOD_PET_MEAT = "Nourriture : Viande pour familier";
+AUTOBAR_CLASS_FOOD_COMBO= "Combo Nouriture et eau";
+AUTOBAR_CLASS_FOOD_CONJURED = "Nourriture : Conjur\195\169 par les Mages";
+AUTOBAR_CLASS_FOOD_ARATHI = "Nourriture : Bassin d'Arathi";
+AUTOBAR_CLASS_FOOD_WARSONG = "Nourriture : Goulet des Warsong";
+AUTOBAR_CLASS_SHARPENINGSTONES = "Pierres \195\160 aiguiser";
+AUTOBAR_CLASS_WEIGHTSTONE = "Contre-poids";
+AUTOBAR_CLASS_POISON_CRIPPLING = "Poison affaiblissant";
+AUTOBAR_CLASS_POISON_DEADLY = "Poison mortel";
+AUTOBAR_CLASS_POISON_INSTANT = "Poison instantan\195\169";
+AUTOBAR_CLASS_POISON_MINDNUMBING = "Poison de distraction mentale";
+AUTOBAR_CLASS_POISON_WOUND = "Poison douloureux";
+AUTOBAR_CLASS_EXPLOSIVES = "Explosifs d'ing\195\169ni\195\169rie";
+AUTOBAR_CLASS_MOUNTS = "Monture";
+AUTOBAR_CLASS_MOUNTS_QIRAJI = "Monture : Qiraji";
+AUTOBAR_CLASS_MANA_OIL = "Huile d'enchantement : R\195\169g\195\169n\195\169ration de mana";
+AUTOBAR_CLASS_WIZARD_OIL = "Huile d'enchantement : Bonus de Dommage/Soin";
+
+end
\ No newline at end of file

Added: branches/AutoBar/Locale-koKR.lua
===================================================================
--- branches/AutoBar/Locale-koKR.lua (rev 0)
+++ branches/AutoBar/Locale-koKR.lua 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,273 @@
+
+-- AutoBar
+-- http://www.wowace.com/wiki/AutoBar
+-- Courtesy of Sayclub
+--
+
+local L = AceLibrary("AceLocale-2.2"):new("AutoBar")
+
+L:RegisterTranslations("koKR", function() return {
+ ["AUTOBAR"] = "오토바",
+ ["CONFIG_WINDOW"] = "설정 창 열기",
+ ["SLASHCMD_LONG"] = "/autobar",
+ ["SLASHCMD_SHORT"] = "/atb",
+ ["BUTTON"] = "버튼",
+ ["EDITSLOT"] = "버튼 편집",
+ ["VIEWSLOT"] = "슬롯 보기",
+ ["LOAD_ERROR"] = "|cff00ff00AutoBarConfig를 불려올수 없습니다. 그것을 사용 가능하게 활성화 시키세요.|r 오류: ",
+
+ -- AutoBar_Config.lua
+ ["EMPTY"] = "빈창";
+ ["AUTOBAR_CONFIG_SMARTSELFCAST"] = "셀프 캐스팅";
+ ["AUTOBAR_CONFIG_REMOVECAT"] = "현재 카테고리 삭제";
+ ["AUTOBAR_CONFIG_ROW"] = "가로";
+ ["AUTOBAR_CONFIG_COLUMN"] = "세로";
+ ["AUTOBAR_CONFIG_GAPPING"] = "아이콘 간격";
+ ["AUTOBAR_CONFIG_ALPHA"] = "아이콘 투명도";
+ ["AUTOBAR_CONFIG_BUTTONWIDTH"] = "버튼 넓이";
+ ["AUTOBAR_CONFIG_BUTTONHEIGHT"] = "버튼 높이";
+ ["AUTOBAR_CONFIG_DOCKSHIFTX"] = "위치 변경(좌측 및 우측)";
+ ["AUTOBAR_CONFIG_DOCKSHIFTY"] = "위치 변경(상단 및 하단)";
+ ["AUTOBAR_CONFIG_WIDTHHEIGHTUNLOCKED"] = "버튼 높이 및 넓이\n동시 변경 해제";
+ ["AUTOBAR_CONFIG_HIDEKEYBINDING"] = "단축키 숨김";
+ ["AUTOBAR_CONFIG_HIDECOUNT"] = "갯수 숨김";
+ ["AUTOBAR_CONFIG_SHOWEMPTY"] = "빈 버튼 표시";
+ ["AUTOBAR_CONFIG_SHOWCATEGORYICON"] = "카테고리 아이콘 표시";
+ ["AUTOBAR_CONFIG_HIDETOOLTIP"] = "툴팁 숨김";
+ ["AUTOBAR_CONFIG_POPUPDIRECTION"] = "팝업 버튼 방향";
+ ["AUTOBAR_CONFIG_POPUPDISABLE"] = "팝업 비활성화";
+ ["AUTOBAR_CONFIG_POPUPONSHIFT"] = "Shift 키 클릭시 팝업";
+ ["AUTOBAR_CONFIG_HIDEDRAGHANDLE"] = "이동 단추 숨김";
+ ["AUTOBAR_CONFIG_CTRLSHOWSDRAGHANDLE"] = "Ctrl 키로 이동 버튼 표시";
+ ["AUTOBAR_CONFIG_LOCKACTIONBARS"] = "바를 잠글때\n액션바 고정";
+ ["AUTOBAR_CONFIG_PLAINBUTTONS"] = "버튼 평범하게 표시";
+ ["AUTOBAR_CONFIG_NOPOPUP"] = "팝업 없음";
+ ["AUTOBAR_CONFIG_ARRANGEONUSE"] = "사용 순서 재배열";
+ ["AUTOBAR_CONFIG_RIGHTCLICKTARGETSPET"] = "오른쪽 클릭 대상의 소환수";
+ ["AUTOBAR_CONFIG_DOCKTONONE"] = "없음";
+ ["AUTOBAR_CONFIG_DOCKTOGBARS"] = "Gbars 두번째 바";
+ ["AUTOBAR_CONFIG_DOCKTOMAIN"] = "메인 메뉴";
+ ["AUTOBAR_CONFIG_DOCKTOCHATFRAME"] = "대화창 프레임";
+ ["AUTOBAR_CONFIG_DOCKTOCHATFRAMEMENU"] = "대화창 프레임 메뉴";
+ ["AUTOBAR_CONFIG_DOCKTOACTIONBAR"] = "액션바";
+ ["AUTOBAR_CONFIG_DOCKTOMENUBUTTONS"] = "메뉴 버튼";
+ ["AUTOBAR_CONFIG_ALIGN"] = "일렬 버튼";
+ ["AUTOBAR_CONFIG_NOTFOUND"] = "(찾을수 없음 : 아이템 ";
+ ["AUTOBAR_CONFIG_SLOTEDITTEXT"] = " 계층 (편집 클릭)";
+ ["AUTOBAR_CONFIG_CHARACTER"] = "캐릭터";
+ ["AUTOBAR_CONFIG_SHARED"] = "공유";
+ ["AUTOBAR_CONFIG_CLASS"] = "직업";
+ ["AUTOBAR_CONFIG_BASIC"] = "기본";
+ ["AUTOBAR_CONFIG_USECHARACTER"] = "캐릭터 계층 사용";
+ ["AUTOBAR_CONFIG_USESHARED"] = "공유 계층 사용";
+ ["AUTOBAR_CONFIG_USECLASS"] = "직업 계층 사용";
+ ["AUTOBAR_CONFIG_USEBASIC"] = "기본 계층 사용";
+ ["AUTOBAR_CONFIG_HIDECONFIGTOOLTIPS"] = "구성 툴팁 숨김";
+ ["AUTOBAR_CONFIG_OSKIN"] = "oSkin 사용";
+ ["AUTOBAR_CONFIG_CHARACTERLAYOUT"] = "캐릭터 배치";
+ ["AUTOBAR_CONFIG_SHAREDLAYOUT"] = "공유 배치";
+ ["AUTOBAR_CONFIG_SHARED1"] = "공유 1";
+ ["AUTOBAR_CONFIG_SHARED2"] = "공유 2";
+ ["AUTOBAR_CONFIG_SHARED3"] = "공유 3";
+ ["AUTOBAR_CONFIG_SHARED4"] = "공유 4";
+ ["AUTOBAR_CONFIG_EDITCHARACTER"] = "캐릭터 계층 편집";
+ ["AUTOBAR_CONFIG_EDITSHARED"] = "공유 계층 편집";
+ ["AUTOBAR_CONFIG_EDITCLASS"] = "직업 계층 편집";
+ ["AUTOBAR_CONFIG_EDITBASIC"] = "기본 계층 편집";
+
+ -- AutoBarItemList
+ ["FISHING_LURES"] = "낚시 미끼",
+ ["FISHING_GEAR"] = "낚시 기어",
+ ["FISHING_POLES"] = "낚싯대",
+
+ ["FOOD_WELL_FED"] = "Food: Well Fed Bonus";
+ ["FOOD_STRENGTH"] = "음식: 힘 향상";
+ ["FOOD_AGILITY"] = "음식: 민첩 향상";
+ ["FOOD_STAMINA"] = "음식: 체력 향상";
+ ["FOOD_INTELLECT"] = "음식: 지능 향상";
+ ["FOOD_SPIRIT"] = "Food: Spirit Bonus";
+ ["FOOD_MANAREGEN"] = "음식: 마나 회복 향상";
+ ["FOOD_HPREGEN"] = "음식: 체력 회복 향상";
+ ["FOOD_OTHER"] = "Food: Other";
+ }
+end);
+
+
+if (GetLocale()=="koKR") then
+
+AUTOBAR_CHAT_MESSAGE1 = "이 캐릭터에 대한 전 버전의 설정값이 있습니다. 삭제하십시오. 설정 업데이트를 시도하지 않고 있습니다.";
+AUTOBAR_CHAT_MESSAGE2 = "아이템 이름 대신 아이템의 ID를 이용하기 위해, 복수 아이템 버튼 #%d를 #%d로 변경합니다.";
+AUTOBAR_CHAT_MESSAGE3 = "아이템 이름 대신 아이템의 ID를 이용하기 위해, 단일 아이템 버튼 #%d로 변경합니다.";
+
+-- AutoBar_Config.xml
+AUTOBAR_CONFIG_VIEWTEXT = "슬롯을 편집하려면 슬롯 탭의 아래에 슬롯 편집 섹션에서 선택합니다.";
+AUTOBAR_CONFIG_SLOTVIEWTEXT = "결합된 계층 보기 (편집 불가)";
+AUTOBAR_CONFIG_RESET = "초기화";
+AUTOBAR_CONFIG_REVERT = "되돌리기";
+AUTOBAR_CONFIG_DONE = "완료";
+AUTOBAR_CONFIG_DETAIL_CATEGORIES = "(Shift 클릭 : 카테고리 조사)";
+AUTOBAR_CONFIG_DRAGHANDLE = "위치 변경 : 왼쪽 버튼을 누루며 이동\n위치 잠금 및 고정 : 왼쪽 버튼 클릭\n옵션 열기 : 오른쪽 버튼 클릭";
+AUTOBAR_CONFIG_EMPTYSLOT = "빈 슬롯";
+AUTOBAR_CONFIG_CLEARSLOT = "슬롯 비움";
+AUTOBAR_CONFIG_SETSHARED = "공유 프로파일:";
+AUTOBAR_CONFIG_SETSHAREDTIP = "사용할 공유 프로파일을 선택하세요.\n공유된 프로파일에 대한 변화는 그것을 사용하고 있는 모든 캐릭터에게 영향을 줍니다.";
+
+AUTOBAR_CONFIG_TAB_SLOTS = "슬롯";
+AUTOBAR_CONFIG_TAB_BAR = "바";
+AUTOBAR_CONFIG_TAB_BUTTONS = "버튼들";
+AUTOBAR_CONFIG_TAB_POPUP = "팝업";
+AUTOBAR_CONFIG_TAB_PROFILE = "프로파일";
+
+AUTOBAR_TOOLTIP1 = " (갯수: ";
+AUTOBAR_TOOLTIP2 = " [사용자 아이템]";
+AUTOBAR_TOOLTIP4 = " [전장에서만 가능]";
+AUTOBAR_TOOLTIP5 = " [비전투시만 가능]";
+AUTOBAR_TOOLTIP6 = " [제한된 사용]";
+AUTOBAR_TOOLTIP7 = " [재사용]";
+AUTOBAR_TOOLTIP8 = "\n(왼쪽 클릭 주무기 적용\n오른쪽 클릭 보조무기 적용)";
+
+AUTOBAR_CONFIG_DOCKTO = "위치 변경:";
+AUTOBAR_CONFIG_USECHARACTERTIP = "캐릭터 계층 아이템은 이 캐릭터에만 특별히 적용합니다.";
+AUTOBAR_CONFIG_USESHAREDTIP = "공유되는 계층 아이템이 똑같은 공유 계층을 사용하는 다른 캐릭터에 의하여 함께 공유됩니다.\n특정한 계층은 프로파일 탭 위에 선택될 수 있습니다.";
+AUTOBAR_CONFIG_USECLASSTIP = "직업 계층 아이템이 직업 계층을 사용하는 똑같은 직업의 모든 캐릭터에 의하여 함께 공유됩니다.";
+AUTOBAR_CONFIG_USEBASICTIP = "기본 계층 아이템이 모든 캐릭터에 의하여 기본 계층을 사용하면서 함께 공유됩니다.";
+AUTOBAR_CONFIG_CHARACTERLAYOUTTIP = "시각적인 배치에 대한 변경은 이 캐릭터에 영향을 줍니다.";
+AUTOBAR_CONFIG_SHAREDLAYOUTTIP = "시각적인 배치에 대한 변경은 같이 공유되는 프로파일을 사용하고 있는 모든 캐릭터들에 영향을 줍니다.";
+AUTOBAR_CONFIG_TIPOVERRIDE = "이 계층 위의 슬롯 아이템은 더 낮은 계층 위의 그 슬롯의 아이템 위로 올라갑니다.\n";
+AUTOBAR_CONFIG_TIPOVERRIDDEN = "이 계층 위의 슬롯 아이템은 더 높은 계층 위의 아이템에 의하여 아래로 내려갑니다.\n";
+AUTOBAR_CONFIG_TIPAFFECTSCHARACTER = "변경은 현재 캐릭터만 영향을 줍니다.";
+AUTOBAR_CONFIG_TIPAFFECTSALL = "변경은 모든 캐릭터에 영향을 줍니다.";
+AUTOBAR_CONFIG_SETUPSINGLE = "싱글 구성";
+AUTOBAR_CONFIG_SETUPSHARED = "공유 구성";
+AUTOBAR_CONFIG_SETUPSTANDARD = "표준 구성";
+AUTOBAR_CONFIG_SETUPBLANKSLATE = "빈 슬레이트";
+AUTOBAR_CONFIG_SETUPSINGLETIP = "표준 오토바와 비슷한 하나의 캐릭터 설정들을 위해 클릭하세요.";
+AUTOBAR_CONFIG_SETUPSHAREDTIP = "공유되는 설정들을 위해 클릭하세요.\n공유되는 계층들 뿐만 아니라 특정 캐릭터를 가능하게 합니다.";
+AUTOBAR_CONFIG_SETUPSTANDARDTIP = "모든 계층들의 편집과 사용을 가능하게 합니다.";
+AUTOBAR_CONFIG_SETUPBLANKSLATETIP = "모든 캐릭터를 없애고 슬롯들을 공유합니다.";
+AUTOBAR_CONFIG_RESETSINGLETIP = "싱글 캐릭터를 기본값으로 초기화 하려면 클릭하세요.";
+AUTOBAR_CONFIG_RESETSHAREDTIP = "공유되는 캐릭터를 기본값으로 초기화 하려면 클릭하세요.\n직업 특정의 슬롯이 캐릭터 계층으로 복사해 집니다.\n기본 슬롯이 공유되는 계층으로 복사해 집니다.";
+AUTOBAR_CONFIG_RESETSTANDARDTIP = "표준을 기본값으로 초기화 하려면 클릭하세요.\n직업 특정의 슬롯들은 직업 계층 안에 있습니다.\n기본 슬롯들은 기초적인 계층 안에 있습니다.\n공유 그리고 캐릭터 계층들을 비우게 됩니다.";
+
+-- AutoBar_Config.lua
+AUTOBAR_TOOLTIP9 = "복수 카테고리 버튼\n";
+AUTOBAR_TOOLTIP10 = " (사용자 아이템 ID)";
+AUTOBAR_TOOLTIP11 = "\n(인정되지 않는 아이템 ID)";
+AUTOBAR_TOOLTIP12 = " (사용자 아이템 이름)";
+AUTOBAR_TOOLTIP13 = "단일 카테고리 버튼\n\n";
+AUTOBAR_TOOLTIP14 = "\n직접 사용 불가";
+AUTOBAR_TOOLTIP15 = "\n무기 대상\n(왼쪽 클릭 주무기\n오른쪽 클릭 보조무기)";
+AUTOBAR_TOOLTIP16 = "\n대상";
+AUTOBAR_TOOLTIP17 = "\n비전투시만";
+AUTOBAR_TOOLTIP18 = "\n전투시만";
+AUTOBAR_TOOLTIP19 = "\n위치: ";
+AUTOBAR_TOOLTIP20 = "\n제한된 사용: "
+AUTOBAR_TOOLTIP21 = "체력 회복 요구";
+AUTOBAR_TOOLTIP22 = "마나 회복 요구";
+AUTOBAR_TOOLTIP23 = "단일 아이템 버튼\n\n";
+
+-- AutoBarItemList.lua
+AUTOBAR_ALTERACVALLEY = "알터랙 계곡";
+AUTOBAR_WARSONGGULCH = "전쟁노래 협곡";
+AUTOBAR_ARATHIBASIN = "아라시 분지";
+AUTOBAR_AHN_QIRAJ = "안퀴라즈";
+AUTOBAR_BWL = "검은날개 둥지";
+
+AUTOBAR_CLASS_CUSTOM = "일반";
+AUTOBAR_CLASS_MINI_PET = "소환수";
+AUTOBAR_CLASS_MINI_PET_HOLIDAY = "축제 소환수";
+AUTOBAR_CLASS_QUEST_ITEMS = "퀘스트 아이템";
+AUTOBAR_CLASS_CLEAR = "이 슬롯 비움";
+AUTOBAR_CLASS_BANDAGES = "붕대";
+AUTOBAR_CLASS_ALTERAC_BANDAGE = "알터랙 계곡 붕대";
+AUTOBAR_CLASS_WARSONG_BANDAGE = "전쟁노래 협곡 붕대";
+AUTOBAR_CLASS_ARATHI_BANDAGE = "아라시 분지 붕대";
+AUTOBAR_CLASS_UNGORORESTORE = "운고르 : 회복의 수정";
+
+AUTOBAR_CLASS_ANTIVENOM = "해독제";
+AUTOBAR_CLASS_AGILITYPOTIONS = "민첩의 비약";
+AUTOBAR_CLASS_STRENGTHPOTIONS = "힘의 비약";
+AUTOBAR_CLASS_FORTITUDEPOTIONS = "인내의 비약";
+AUTOBAR_CLASS_INTELLECTPOTIONS = "지능의 비약";
+AUTOBAR_CLASS_WISDOMPOTIONS = "지혜의 비약";
+AUTOBAR_CLASS_DEFENSEPOTIONS = "방어의 비약";
+AUTOBAR_CLASS_TROLLBLOODPOTIONS = "재생의 물약";
+AUTOBAR_CLASS_SCROLLOFAGILITY = "민첩의 두루마리";
+AUTOBAR_CLASS_SCROLLOFINTELLECT = "지능의 두루마리";
+AUTOBAR_CLASS_SCROLLOFPROTECTION = "보호의 두루마리";
+AUTOBAR_CLASS_SCROLLOFSPIRIT = "정신력의 두루마리";
+AUTOBAR_CLASS_SCROLLOFSTAMINA = "체력의 두루마리";
+AUTOBAR_CLASS_SCROLLOFSTRENGTH = "힘의 두루마리";
+AUTOBAR_CLASS_BUFF_ATTACKPOWER = "전투력 버프";
+AUTOBAR_CLASS_BUFF_ATTACKSPEED = "공격 속도 버프";
+AUTOBAR_CLASS_BUFF_DODGE = "회피 버프";
+AUTOBAR_CLASS_BUFF_FROST = "냉기 저항 버프";
+AUTOBAR_CLASS_BUFF_FIRE = "화염 저항 버프";
+
+AUTOBAR_CLASS_HEALPOTIONS = "치유 물약";
+AUTOBAR_CLASS_PVP6HEALPOTIONS = "전투 치유 물약";
+AUTOBAR_CLASS_HEALTHSTONE = "생명석";
+AUTOBAR_CLASS_WHIPPER_ROOT = "채찍뿌리 줄기";
+AUTOBAR_CLASS_BATTLEGROUNDHEALPOTIONS = "전장 치유 물약";
+AUTOBAR_CLASS_MANAPOTIONS = "마나 물약";
+AUTOBAR_CLASS_PVP6MANAPOTIONS = "전투 마나 물약";
+AUTOBAR_CLASS_MANASTONE = "마나석";
+AUTOBAR_CLASS_BATTLEGROUNDMANAPOTIONS = "전장 마나 물약";
+AUTOBAR_CLASS_DREAMLESS_SLEEP = "숙면의 물약";
+AUTOBAR_CLASS_NIGHT_DRAGONS_BREATH = "어둠용의 숨결";
+AUTOBAR_CLASS_REJUVENATION_POTIONS = "회복 물약";
+
+AUTOBAR_CLASS_BATTLESTANDARD = "전투 깃발";
+AUTOBAR_CLASS_BATTLESTANDARDAV = "알터랙 계곡 전투 깃발";
+AUTOBAR_CLASS_DEMONIC_DARK_RUNES = "어둠 또는 악마의 룬";
+AUTOBAR_CLASS_ARCANE_PROTECTION = "비전 보호 물약";
+AUTOBAR_CLASS_FIRE_PROTECTION = "화염 보호 물약";
+AUTOBAR_CLASS_FROST_PROTECTION = "냉기 보호 물약";
+AUTOBAR_CLASS_NATURE_PROTECTION = "자연 보호 물약";
+AUTOBAR_CLASS_SHADOW_PROTECTION = "암흑 보호 물약";
+AUTOBAR_CLASS_SPELL_PROTECTION = "주문 보호 물약 [줄구룹]";
+AUTOBAR_CLASS_HOLY_PROTECTION = "신성 보호 물약";
+AUTOBAR_CLASS_INVULNERABILITY_POTIONS = "제한된 무적 물약";
+AUTOBAR_CLASS_FREE_ACTION_POTION = "자유 행동의 물약";
+
+AUTOBAR_CLASS_HEARTHSTONE = "귀환석";
+AUTOBAR_CLASS_WATER = "음료";
+AUTOBAR_CLASS_WATER_PERCENT = "음료: % 마나 회복";
+AUTOBAR_CLASS_WATER_CONJURED = "음료: 마법사 창조";
+AUTOBAR_CLASS_WATER_SPIRIT = "음료: 정신력 향상";
+AUTOBAR_CLASS_RAGEPOTIONS = "분노의 물약";
+AUTOBAR_CLASS_ENERGYPOTIONS = "기력의 물약";
+AUTOBAR_CLASS_SWIFTNESSPOTIONS = "신속의 물약";
+AUTOBAR_CLASS_SOULSHARDS = "영혼석";
+AUTOBAR_CLASS_ARROWS = "화살";
+AUTOBAR_CLASS_BULLETS = "탄환";
+AUTOBAR_CLASS_THROWNWEAPON = "투척 무기류";
+AUTOBAR_CLASS_FOOD = "음식: 일반";
+AUTOBAR_CLASS_FOOD_PERCENT = "음식: % 체력 회복";
+AUTOBAR_CLASS_FOOD_PERCENT_BONUS = "음식: % 체력 회복 (버프)";
+AUTOBAR_CLASS_FOOD_PERCENT_COMBO = "음식: % 체력 & 마나 회복";
+
+AUTOBAR_CLASS_FOOD_PET_BREAD = "음식: 소환수 빵";
+AUTOBAR_CLASS_FOOD_PET_CHEESE = "음식: 소환수 치즈";
+AUTOBAR_CLASS_FOOD_PET_FISH = "음식: 소환수 물고기";
+AUTOBAR_CLASS_FOOD_PET_FRUIT = "음식: 소환수 과일";
+AUTOBAR_CLASS_FOOD_PET_FUNGUS = "음식: 소환수 버섯";
+AUTOBAR_CLASS_FOOD_PET_MEAT = "음식: 소환수 고기";
+AUTOBAR_CLASS_FOOD_COMBO= "음식 및 음료 동시";
+AUTOBAR_CLASS_FOOD_CONJURED = "음식: 마법사 창조";
+AUTOBAR_CLASS_FOOD_ARATHI = "음식: 아라시 분지";
+AUTOBAR_CLASS_FOOD_WARSONG = "음식: 전쟁노래 협곡";
+AUTOBAR_CLASS_SHARPENINGSTONES = "숫돌";
+AUTOBAR_CLASS_WEIGHTSTONE = "무게추";
+AUTOBAR_CLASS_POISON_CRIPPLING = "신경 마비 독";
+AUTOBAR_CLASS_POISON_DEADLY = "맹독";
+AUTOBAR_CLASS_POISON_INSTANT = "순간 효과 독";
+AUTOBAR_CLASS_POISON_MINDNUMBING = "정신 마비 독";
+AUTOBAR_CLASS_POISON_WOUND = "상처 감염 독";
+AUTOBAR_CLASS_EXPLOSIVES = "폭탄";
+AUTOBAR_CLASS_MOUNTS = "탈것";
+AUTOBAR_CLASS_MOUNTS_QIRAJI = "탈것: 안퀴라즈";
+AUTOBAR_CLASS_MANA_OIL = "마나 오일: 마나 회복";
+AUTOBAR_CLASS_WIZARD_OIL = "마술사 오일: 피해 및 치유 향상";
+
+end
\ No newline at end of file

Added: branches/AutoBar/Locale-zhCN.lua
===================================================================
--- branches/AutoBar/Locale-zhCN.lua (rev 0)
+++ branches/AutoBar/Locale-zhCN.lua 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,273 @@
+--
+-- AutoBar
+-- http://www.wowace.com/wiki/AutoBar
+-- Courtesy of PDI175
+--
+
+local L = AceLibrary("AceLocale-2.2"):new("AutoBar")
+
+L:RegisterTranslations("zhCN", function() return {
+ ["AUTOBAR"] = "消耗品助手",
+ ["CONFIG_WINDOW"] = "设置窗口",
+ ["SLASHCMD_LONG"] = "/autobar",
+ ["SLASHCMD_SHORT"] = "/atb",
+ ["BUTTON"] = "按钮",
+ ["EDITSLOT"] = "编辑按钮",
+ ["VIEWSLOT"] = "View Slot",
+ ["LOAD_ERROR"] = "|cff00ff00载入 AutoBarConfig 发生错误。 请确定是否有这个插件,并启用插件。|r 错误: ",
+
+ -- AutoBar_Config.lua
+ ["EMPTY"] = "空";
+ ["AUTOBAR_CONFIG_SMARTSELFCAST"] = "智能自我施法";
+ ["AUTOBAR_CONFIG_REMOVECAT"] = "移除当前种类";
+ ["AUTOBAR_CONFIG_ROW"] = "行";
+ ["AUTOBAR_CONFIG_COLUMN"] = "列";
+ ["AUTOBAR_CONFIG_GAPPING"] = "图标间隔";
+ ["AUTOBAR_CONFIG_ALPHA"] = "图标透明度";
+ ["AUTOBAR_CONFIG_BUTTONWIDTH"] = "按钮宽度";
+ ["AUTOBAR_CONFIG_BUTTONHEIGHT"] = "按钮高度";
+ ["AUTOBAR_CONFIG_DOCKSHIFTX"] = "调整左右依附距离";
+ ["AUTOBAR_CONFIG_DOCKSHIFTY"] = "调整上下依附距离";
+ ["AUTOBAR_CONFIG_WIDTHHEIGHTUNLOCKED"] = "不锁定按钮长宽比";
+ ["AUTOBAR_CONFIG_HIDEKEYBINDING"] = "隐藏快捷键显示";
+ ["AUTOBAR_CONFIG_HIDECOUNT"] = "隐藏数量显示";
+ ["AUTOBAR_CONFIG_SHOWEMPTY"] = "显示空按钮";
+ ["AUTOBAR_CONFIG_SHOWCATEGORYICON"] = "显示物品种类图示";
+ ["AUTOBAR_CONFIG_HIDETOOLTIP"] = "隐藏提示讯息";
+ ["AUTOBAR_CONFIG_POPUPDIRECTION"] = "按钮\n弹出\n方向";
+ ["AUTOBAR_CONFIG_POPUPDISABLE"] = "关闭弹出按钮";
+ ["AUTOBAR_CONFIG_POPUPONSHIFT"] = "按 Shift 弹出按钮";
+ ["AUTOBAR_CONFIG_HIDEDRAGHANDLE"] = "隐藏拖曳点";
+ ["AUTOBAR_CONFIG_CTRLSHOWSDRAGHANDLE"] = "按 Ctrl 显示拖曳点";
+ ["AUTOBAR_CONFIG_LOCKACTIONBARS"] = "当锁定 AutoBar 时,\n锁定动作条";
+ ["AUTOBAR_CONFIG_PLAINBUTTONS"] = "隐藏按钮边框";
+ ["AUTOBAR_CONFIG_NOPOPUP"] = "不弹出";
+ ["AUTOBAR_CONFIG_ARRANGEONUSE"] = "使用后重新排列顺序";
+ ["AUTOBAR_CONFIG_RIGHTCLICKTARGETSPET"] = "右键目标宠物";
+ ["AUTOBAR_CONFIG_DOCKTONONE"] = "无";
+ ["AUTOBAR_CONFIG_DOCKTOGBARS"] = "Gbars 第二工作条";
+ ["AUTOBAR_CONFIG_DOCKTOMAIN"] = "主菜单条";
+ ["AUTOBAR_CONFIG_DOCKTOCHATFRAME"] = "对话框架";
+ ["AUTOBAR_CONFIG_DOCKTOCHATFRAMEMENU"] = "对话框架菜单";
+ ["AUTOBAR_CONFIG_DOCKTOACTIONBAR"] = "动作条";
+ ["AUTOBAR_CONFIG_DOCKTOMENUBUTTONS"] = "菜单按钮";
+ ["AUTOBAR_CONFIG_ALIGN"] = "按钮排列方向";
+ ["AUTOBAR_CONFIG_NOTFOUND"] = "(未发现: 物品 ";
+ ["AUTOBAR_CONFIG_SLOTEDITTEXT"] = " 栏位 (左键编辑)";
+ ["AUTOBAR_CONFIG_CHARACTER"] = "角色";
+ ["AUTOBAR_CONFIG_SHARED"] = "共用";
+ ["AUTOBAR_CONFIG_CLASS"] = "职业";
+ ["AUTOBAR_CONFIG_BASIC"] = "基本";
+ ["AUTOBAR_CONFIG_USECHARACTER"] = "使用角色";
+ ["AUTOBAR_CONFIG_USESHARED"] = "使用共用";
+ ["AUTOBAR_CONFIG_USECLASS"] = "使用职业";
+ ["AUTOBAR_CONFIG_USEBASIC"] = "使用基本";
+ ["AUTOBAR_CONFIG_HIDECONFIGTOOLTIPS"] = "隐藏设定提示讯息";
+ ["AUTOBAR_CONFIG_OSKIN"] = "使用 oSkin";
+ ["AUTOBAR_CONFIG_CHARACTERLAYOUT"] = "设定为角色专用";
+ ["AUTOBAR_CONFIG_SHAREDLAYOUT"] = "设定为共享";
+ ["AUTOBAR_CONFIG_SHARED1"] = "共享 1";
+ ["AUTOBAR_CONFIG_SHARED2"] = "共享 2";
+ ["AUTOBAR_CONFIG_SHARED3"] = "共享 3";
+ ["AUTOBAR_CONFIG_SHARED4"] = "共享 4";
+ ["AUTOBAR_CONFIG_EDITCHARACTER"] = "编辑角色的栏位";
+ ["AUTOBAR_CONFIG_EDITSHARED"] = "编辑共享的栏位";
+ ["AUTOBAR_CONFIG_EDITCLASS"] = "编辑职业的栏位";
+ ["AUTOBAR_CONFIG_EDITBASIC"] = "编辑基本的栏位";
+
+ -- AutoBarItemList
+ ["FISHING_LURES"] = "鱼饵",
+ ["FISHING_GEAR"] = "钓鱼装备",
+ ["FISHING_POLES"] = "鱼竿",
+
+ ["FOOD_WELL_FED"] = "食物: 提升喂食效果";
+ ["FOOD_STRENGTH"] = "食物: 提升力量";
+ ["FOOD_AGILITY"] = "食物: 提升敏捷";
+ ["FOOD_STAMINA"] = "食物: 提升耐力";
+ ["FOOD_INTELLECT"] = "食物: 提升智力";
+ ["FOOD_SPIRIT"] = "食物: 提升精神";
+ ["FOOD_MANAREGEN"] = "食物: 提升法力恢复";
+ ["FOOD_HPREGEN"] = "食物: 提升生命恢复";
+ ["FOOD_OTHER"] = "食物: 其他";
+ }
+end);
+
+
+if (GetLocale()=="zhCN") then
+
+AUTOBAR_CHAT_MESSAGE1 = "保存的配置是老版本的, 已被清除. 不支持配置的升级.";
+AUTOBAR_CHAT_MESSAGE2 = "更新合类物品按钮 #%d 物品 #%d, 使用物品ID替换物品名称.";
+AUTOBAR_CHAT_MESSAGE3 = "更新单类物品按钮 #%d, 使用物品ID替换物品名称.";
+
+-- AutoBar_Config.xml
+AUTOBAR_CONFIG_VIEWTEXT = "要编辑按钮请选择栏位分页下方的栏位进行编辑。";
+AUTOBAR_CONFIG_SLOTVIEWTEXT = "检视综合栏位 (无法编辑)";
+AUTOBAR_CONFIG_RESET = "重置为默认";
+AUTOBAR_CONFIG_REVERT = "复原";
+AUTOBAR_CONFIG_DONE = "完成";
+AUTOBAR_CONFIG_DETAIL_CATEGORIES = "(Shift+点击进入详细分类)";
+AUTOBAR_CONFIG_DRAGHANDLE = "鼠标左键拖曳移动 AutoBar\n左键锁定 / 解锁\n右键显示功能选项";
+AUTOBAR_CONFIG_EMPTYSLOT = "空栏位";
+AUTOBAR_CONFIG_CLEARSLOT = "清除栏位";
+AUTOBAR_CONFIG_SETSHARED = "共享设定: ";
+AUTOBAR_CONFIG_SETSHAREDTIP = "选择使用共享文件,将会把共享的设定值套用到所有的角色。";
+
+AUTOBAR_CONFIG_TAB_SLOTS = "栏位";
+AUTOBAR_CONFIG_TAB_BAR = "动作条";
+AUTOBAR_CONFIG_TAB_BUTTONS = "按钮";
+AUTOBAR_CONFIG_TAB_POPUP = "弹出";
+AUTOBAR_CONFIG_TAB_PROFILE = "设定";
+
+AUTOBAR_TOOLTIP1 = " (数量: ";
+AUTOBAR_TOOLTIP2 = " [自定义物品]";
+AUTOBAR_TOOLTIP4 = " [仅用于非战斗状态]";
+AUTOBAR_TOOLTIP5 = " [使用条件限制]";
+AUTOBAR_TOOLTIP6 = " [使用后需冷却]";
+AUTOBAR_TOOLTIP7 = "\n(左键用于主手武器\n右键用于副手武器)";
+AUTOBAR_TOOLTIP8 = "合类物品按钮\n";
+
+AUTOBAR_CONFIG_DOCKTO = "依附于:";
+AUTOBAR_CONFIG_USECHARACTERTIP = "角色栏位的物品只适用于这个角色。";
+AUTOBAR_CONFIG_USESHAREDTIP = "共用栏位的物品适用于其他角色使用相同的物品。\n共用项目可由专案分页中选择。";
+AUTOBAR_CONFIG_USECLASSTIP = "职业栏位的物品适用于所有相同职业的角色。";
+AUTOBAR_CONFIG_USEBASICTIP = "基本栏位的物品适用于所有角色可用的基本物品。";
+AUTOBAR_CONFIG_CHARACTERLAYOUTTIP = "改变可见的栏位只作用于这个角色。";
+AUTOBAR_CONFIG_SHAREDLAYOUTTIP = "改变可见的栏位可作用于所有角色使用相同的共用设定。";
+AUTOBAR_CONFIG_TIPOVERRIDE = "这一层的物品优先顺序优于下一层的栏位。\n";
+AUTOBAR_CONFIG_TIPOVERRIDDEN = "上一层的物品优先顺序优于这一层的栏位。\n";
+AUTOBAR_CONFIG_TIPAFFECTSCHARACTER = "变动只作用于这个角色。";
+AUTOBAR_CONFIG_TIPAFFECTSALL = "变动作用于所有角色。";
+AUTOBAR_CONFIG_SETUPSINGLE = "单一设定";
+AUTOBAR_CONFIG_SETUPSHARED = "共用设定";
+AUTOBAR_CONFIG_SETUPSTANDARD = "标准设定";
+AUTOBAR_CONFIG_SETUPBLANKSLATE = "清空栏位";
+AUTOBAR_CONFIG_SETUPSINGLETIP = "左键将设定单一角色为职业的 AutoBar。";
+AUTOBAR_CONFIG_SETUPSHAREDTIP = "左键为共用设定\n开启角色专用以及共用栏位。";
+AUTOBAR_CONFIG_SETUPSTANDARDTIP = "开启编辑并使用所有栏位。";
+AUTOBAR_CONFIG_SETUPBLANKSLATETIP = "清除所有角色和共用的按钮。";
+AUTOBAR_CONFIG_RESETSINGLETIP = "左键将重置为单一角色设定的预设值。";
+AUTOBAR_CONFIG_RESETSHAREDTIP = "左键将重置为角色共用设定的预设值。\n职业专用按钮会复制到角色栏位。\n预设按钮将复制到共用的栏位。";
+AUTOBAR_CONFIG_RESETSTANDARDTIP = "左键将重置为标准预设值。\n职业专用按钮会在职业栏位中。\n预设按钮在基本栏位中。\n共用和角色栏位将会清除。";
+
+-- AutoBar_Config.lua
+AUTOBAR_TOOLTIP9 = "合类物品按钮";
+AUTOBAR_TOOLTIP10 = " (按物品ID定制)";
+AUTOBAR_TOOLTIP11 = "\n(物品ID未经过验证)";
+AUTOBAR_TOOLTIP12 = " (按物品名称定制)";
+AUTOBAR_TOOLTIP13 = "单类物品按钮\n\n";
+AUTOBAR_TOOLTIP14 = "\n不能直接使用.";
+AUTOBAR_TOOLTIP15 = "\n武器目标\n(左键用于主手武器\n右键用于副手武器.)";
+AUTOBAR_TOOLTIP16 = "\n需目标.";
+AUTOBAR_TOOLTIP17 = "\n仅用于非战斗状态.";
+AUTOBAR_TOOLTIP18 = "\n仅用于战斗状态.";
+AUTOBAR_TOOLTIP19 = "\n使用地点: ";
+AUTOBAR_TOOLTIP20 = "\n使用条件限制: ";
+AUTOBAR_TOOLTIP21 = "所需恢复生命";
+AUTOBAR_TOOLTIP22 = "所需恢复法力";
+AUTOBAR_TOOLTIP23 = "单类物品按钮\n\n";
+
+-- AutoBar_ItemList.lua
+AUTOBAR_ALTERACVALLEY = "奥特兰克山谷";
+AUTOBAR_WARSONGGULCH = "战歌峡谷";
+AUTOBAR_ARATHIBASIN = "阿拉希盆地";
+AUTOBAR_AHN_QIRAJ = "安其拉";
+AUTOBAR_BWL = "黑翼之巢";
+
+AUTOBAR_CLASS_CUSTOM = "自订";
+AUTOBAR_CLASS_MINI_PET = "宠物";
+AUTOBAR_CLASS_MINI_PET_HOLIDAY = "假日宠物";
+AUTOBAR_CLASS_QUEST_ITEMS = "任务物品";
+AUTOBAR_CLASS_CLEAR = "清除栏位";
+AUTOBAR_CLASS_BANDAGES = "绷带";
+AUTOBAR_CLASS_ALTERAC_BANDAGE = "奥特兰克绷带";
+AUTOBAR_CLASS_WARSONG_BANDAGE = "战歌绷带";
+AUTOBAR_CLASS_ARATHI_BANDAGE = "阿拉希绷带";
+AUTOBAR_CLASS_UNGORORESTORE = "安戈洛: 恢复水晶";
+
+AUTOBAR_CLASS_ANTIVENOM = "抗毒药剂";
+AUTOBAR_CLASS_AGILITYPOTIONS = "敏捷药剂";
+AUTOBAR_CLASS_STRENGTHPOTIONS = "力量药剂";
+AUTOBAR_CLASS_FORTITUDEPOTIONS = "坚韧药剂";
+AUTOBAR_CLASS_INTELLECTPOTIONS = "聪颖药剂";
+AUTOBAR_CLASS_WISDOMPOTIONS = "智慧药剂";
+AUTOBAR_CLASS_DEFENSEPOTIONS = "防御药剂";
+AUTOBAR_CLASS_TROLLBLOODPOTIONS = "食人妖之血药水";
+AUTOBAR_CLASS_SCROLLOFAGILITY = "敏捷卷轴";
+AUTOBAR_CLASS_SCROLLOFINTELLECT = "智力卷轴";
+AUTOBAR_CLASS_SCROLLOFPROTECTION = "保护卷轴";
+AUTOBAR_CLASS_SCROLLOFSPIRIT = "精神卷轴";
+AUTOBAR_CLASS_SCROLLOFSTAMINA = "耐力卷轴";
+AUTOBAR_CLASS_SCROLLOFSTRENGTH = "力量卷轴";
+AUTOBAR_CLASS_BUFF_ATTACKPOWER = "提高攻击强度";
+AUTOBAR_CLASS_BUFF_ATTACKSPEED = "提高攻击速度";
+AUTOBAR_CLASS_BUFF_DODGE = "提高闪躲机率";
+AUTOBAR_CLASS_BUFF_FROST = "提高冰霜抗性";
+AUTOBAR_CLASS_BUFF_FIRE = "提高火焰抗性";
+
+AUTOBAR_CLASS_HEALPOTIONS = "治疗药水";
+AUTOBAR_CLASS_PVP6HEALPOTIONS = "PVP 等级 6 - 治疗药水";
+AUTOBAR_CLASS_HEALTHSTONE = "治疗石";
+AUTOBAR_CLASS_WHIPPER_ROOT = "鞭根块茎";
+AUTOBAR_CLASS_BATTLEGROUNDHEALPOTIONS = "奥特兰克治疗药水";
+AUTOBAR_CLASS_MANAPOTIONS = "法力药水";
+AUTOBAR_CLASS_PVP6MANAPOTIONS = "PVP 等级 6 - 法力药水";
+AUTOBAR_CLASS_MANASTONE = "法术石";
+AUTOBAR_CLASS_BATTLEGROUNDMANAPOTIONS = "奥特兰克法力药水";
+AUTOBAR_CLASS_DREAMLESS_SLEEP = "昏睡药水";
+AUTOBAR_CLASS_NIGHT_DRAGONS_BREATH = "夜龙之息";
+AUTOBAR_CLASS_REJUVENATION_POTIONS = "恢复药水";
+
+AUTOBAR_CLASS_BATTLESTANDARD = "战场军旗";
+AUTOBAR_CLASS_BATTLESTANDARDAV = "奥特兰克山谷军旗";
+AUTOBAR_CLASS_DEMONIC_DARK_RUNES = "恶魔和黑暗符文";
+AUTOBAR_CLASS_ARCANE_PROTECTION = "祕法防护药水";
+AUTOBAR_CLASS_FIRE_PROTECTION = "火焰防护药水";
+AUTOBAR_CLASS_FROST_PROTECTION = "冰霜防护药水";
+AUTOBAR_CLASS_NATURE_PROTECTION = "自然防护药水";
+AUTOBAR_CLASS_SHADOW_PROTECTION = "暗影防护药水";
+AUTOBAR_CLASS_SPELL_PROTECTION = "法术反弹";
+AUTOBAR_CLASS_HOLY_PROTECTION = "神圣防护药水";
+AUTOBAR_CLASS_INVULNERABILITY_POTIONS = "有限无敌药水";
+AUTOBAR_CLASS_FREE_ACTION_POTION = "自由行动药水";
+
+AUTOBAR_CLASS_HEARTHSTONE = "炉石";
+AUTOBAR_CLASS_WATER = "水";
+AUTOBAR_CLASS_WATER_PERCENT = "水: % 恢复法力";
+AUTOBAR_CLASS_WATER_CONJURED = "水: 法师制造物";
+AUTOBAR_CLASS_WATER_SPIRIT = "水: 提升精神";
+AUTOBAR_CLASS_RAGEPOTIONS = "怒气药水";
+AUTOBAR_CLASS_ENERGYPOTIONS = "能量药水";
+AUTOBAR_CLASS_SWIFTNESSPOTIONS = "迅捷药剂";
+AUTOBAR_CLASS_SOULSHARDS = "灵魂碎片";
+AUTOBAR_CLASS_ARROWS = "箭";
+AUTOBAR_CLASS_BULLETS = "子弹";
+AUTOBAR_CLASS_THROWNWEAPON = "投掷武器";
+AUTOBAR_CLASS_FOOD = "食物: 无附加效果";
+AUTOBAR_CLASS_FOOD_PERCENT = "食物: % 恢复生命力";
+AUTOBAR_CLASS_FOOD_PERCENT_BONUS = "食物: % 恢复生命力 (喂食增益效果)";
+AUTOBAR_CLASS_FOOD_PERCENT_COMBO = "食物: % 恢复生命力及法力";
+
+AUTOBAR_CLASS_FOOD_PET_BREAD = "食物: 宠物面包";
+AUTOBAR_CLASS_FOOD_PET_CHEESE = "食物: 宠物乳酪";
+AUTOBAR_CLASS_FOOD_PET_FISH = "食物: 宠物鱼类";
+AUTOBAR_CLASS_FOOD_PET_FRUIT = "食物: 宠物水果";
+AUTOBAR_CLASS_FOOD_PET_FUNGUS = "食物: 宠物菌类";
+AUTOBAR_CLASS_FOOD_PET_MEAT = "食物: 宠物肉类";
+AUTOBAR_CLASS_FOOD_COMBO= "食物: 有喝水效果";
+AUTOBAR_CLASS_FOOD_CONJURED = "食物: 法师制造物";
+AUTOBAR_CLASS_FOOD_ARATHI= "食物: 阿拉希盆地";
+AUTOBAR_CLASS_FOOD_WARSONG= "食物: 战歌峡谷";
+AUTOBAR_CLASS_SHARPENINGSTONES = "磨刀石";
+AUTOBAR_CLASS_WEIGHTSTONE = "平衡石";
+AUTOBAR_CLASS_POISON_CRIPPLING = "致残毒药";
+AUTOBAR_CLASS_POISON_DEADLY = "致命毒药";
+AUTOBAR_CLASS_POISON_INSTANT = "速效毒药";
+AUTOBAR_CLASS_POISON_MINDNUMBING = "麻痹毒药";
+AUTOBAR_CLASS_POISON_WOUND = "致伤毒药";
+AUTOBAR_CLASS_EXPLOSIVES = "工程学爆炸物";
+AUTOBAR_CLASS_MOUNTS = "骑乘";
+AUTOBAR_CLASS_MOUNTS_QIRAJI = "骑乘: 其拉甲虫";
+AUTOBAR_CLASS_MANA_OIL = "魔油: 提高法力恢复";
+AUTOBAR_CLASS_WIZARD_OIL = "魔油: 增加 伤害/治疗";
+
+end
\ No newline at end of file

Added: branches/AutoBar/Locale-zhTW.lua
===================================================================
--- branches/AutoBar/Locale-zhTW.lua (rev 0)
+++ branches/AutoBar/Locale-zhTW.lua 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,273 @@
+--
+-- AutoBar
+-- http://www.wowace.com/wiki/AutoBar
+-- Courtesy of PDI175
+--
+
+local L = AceLibrary("AceLocale-2.2"):new("AutoBar")
+
+L:RegisterTranslations("zhTW", function() return {
+ ["AUTOBAR"] = "消耗品助手",
+ ["CONFIG_WINDOW"] = "設置視窗",
+ ["SLASHCMD_LONG"] = "/autobar",
+ ["SLASHCMD_SHORT"] = "/atb",
+ ["BUTTON"] = "按鈕",
+ ["EDITSLOT"] = "編輯按鈕",
+ ["VIEWSLOT"] = "檢視按鈕",
+ ["LOAD_ERROR"] = "|cff00ff00載入 AutoBarConfig 發生錯誤。 請確定是否有這個插件,並啟用插件。|r 錯誤: ",
+
+ -- AutoBar_Config.lua
+ ["EMPTY"] = "空";
+ ["AUTOBAR_CONFIG_SMARTSELFCAST"] = "智能自我施法";
+ ["AUTOBAR_CONFIG_REMOVECAT"] = "移除目前類型";
+ ["AUTOBAR_CONFIG_ROW"] = "行";
+ ["AUTOBAR_CONFIG_COLUMN"] = "列";
+ ["AUTOBAR_CONFIG_GAPPING"] = "圖示間隔";
+ ["AUTOBAR_CONFIG_ALPHA"] = "圖示透明度";
+ ["AUTOBAR_CONFIG_BUTTONWIDTH"] = "按鈕寬度";
+ ["AUTOBAR_CONFIG_BUTTONHEIGHT"] = "按鈕高度";
+ ["AUTOBAR_CONFIG_DOCKSHIFTX"] = "調整左右依附距離";
+ ["AUTOBAR_CONFIG_DOCKSHIFTY"] = "調整上下依附距離";
+ ["AUTOBAR_CONFIG_WIDTHHEIGHTUNLOCKED"] = "不鎖定按鈕長寬比";
+ ["AUTOBAR_CONFIG_HIDEKEYBINDING"] = "隱藏快捷鍵顯示";
+ ["AUTOBAR_CONFIG_HIDECOUNT"] = "隱藏數量顯示";
+ ["AUTOBAR_CONFIG_SHOWEMPTY"] = "顯示空按鈕";
+ ["AUTOBAR_CONFIG_SHOWCATEGORYICON"] = "顯示物品類型圖示";
+ ["AUTOBAR_CONFIG_HIDETOOLTIP"] = "隱藏提示訊息";
+ ["AUTOBAR_CONFIG_POPUPDIRECTION"] = "按鈕\n彈出\n方向";
+ ["AUTOBAR_CONFIG_POPUPDISABLE"] = "關閉彈出按鈕";
+ ["AUTOBAR_CONFIG_POPUPONSHIFT"] = "按 Shift 彈出按鈕";
+ ["AUTOBAR_CONFIG_HIDEDRAGHANDLE"] = "隱藏拖曳點";
+ ["AUTOBAR_CONFIG_CTRLSHOWSDRAGHANDLE"] = "按 Ctrl 顯示拖曳點";
+ ["AUTOBAR_CONFIG_LOCKACTIONBARS"] = "當鎖定 AutoBar 時,\n鎖定動作條";
+ ["AUTOBAR_CONFIG_PLAINBUTTONS"] = "隱藏按鈕邊框";
+ ["AUTOBAR_CONFIG_NOPOPUP"] = "不彈出";
+ ["AUTOBAR_CONFIG_ARRANGEONUSE"] = "使用後重新排列順序";
+ ["AUTOBAR_CONFIG_RIGHTCLICKTARGETSPET"] = "右鍵目標寵物";
+ ["AUTOBAR_CONFIG_DOCKTONONE"] = "無";
+ ["AUTOBAR_CONFIG_DOCKTOGBARS"] = "Gbars 第二工作列";
+ ["AUTOBAR_CONFIG_DOCKTOMAIN"] = "主目錄";
+ ["AUTOBAR_CONFIG_DOCKTOCHATFRAME"] = "對話框架";
+ ["AUTOBAR_CONFIG_DOCKTOCHATFRAMEMENU"] = "對話框架選單";
+ ["AUTOBAR_CONFIG_DOCKTOACTIONBAR"] = "動作條";
+ ["AUTOBAR_CONFIG_DOCKTOMENUBUTTONS"] = "選單按鈕";
+ ["AUTOBAR_CONFIG_ALIGN"] = "按鈕排列方向";
+ ["AUTOBAR_CONFIG_NOTFOUND"] = "(未發現: 物品 ";
+ ["AUTOBAR_CONFIG_SLOTEDITTEXT"] = " 欄位 (左鍵編輯)";
+ ["AUTOBAR_CONFIG_CHARACTER"] = "角色";
+ ["AUTOBAR_CONFIG_SHARED"] = "共用";
+ ["AUTOBAR_CONFIG_CLASS"] = "職業";
+ ["AUTOBAR_CONFIG_BASIC"] = "基本";
+ ["AUTOBAR_CONFIG_USECHARACTER"] = "使用角色";
+ ["AUTOBAR_CONFIG_USESHARED"] = "使用共用";
+ ["AUTOBAR_CONFIG_USECLASS"] = "使用職業";
+ ["AUTOBAR_CONFIG_USEBASIC"] = "使用基本";
+ ["AUTOBAR_CONFIG_HIDECONFIGTOOLTIPS"] = "隱藏設定提示訊息";
+ ["AUTOBAR_CONFIG_OSKIN"] = "使用 oSkin";
+ ["AUTOBAR_CONFIG_CHARACTERLAYOUT"] = "設定為角色專用";
+ ["AUTOBAR_CONFIG_SHAREDLAYOUT"] = "設定為共用";
+ ["AUTOBAR_CONFIG_SHARED1"] = "共用 1";
+ ["AUTOBAR_CONFIG_SHARED2"] = "共用 2";
+ ["AUTOBAR_CONFIG_SHARED3"] = "共用 3";
+ ["AUTOBAR_CONFIG_SHARED4"] = "共用 4";
+ ["AUTOBAR_CONFIG_EDITCHARACTER"] = "編輯角色的欄位";
+ ["AUTOBAR_CONFIG_EDITSHARED"] = "編輯共用的欄位";
+ ["AUTOBAR_CONFIG_EDITCLASS"] = "編輯職業的欄位";
+ ["AUTOBAR_CONFIG_EDITBASIC"] = "編輯基本的欄位";
+
+ -- AutoBarItemList
+ ["FISHING_LURES"] = "魚餌",
+ ["FISHING_GEAR"] = "釣魚裝備",
+ ["FISHING_POLES"] = "魚竿",
+
+ ["FOOD_WELL_FED"] = "食物:提升餵食效果";
+ ["FOOD_STRENGTH"] = "食物:提升力量";
+ ["FOOD_AGILITY"] = "食物:提升敏捷";
+ ["FOOD_STAMINA"] = "食物:提升耐力";
+ ["FOOD_INTELLECT"] = "食物:提升智力";
+ ["FOOD_SPIRIT"] = "食物:提升精神";
+ ["FOOD_MANAREGEN"] = "食物:提升法力恢復";
+ ["FOOD_HPREGEN"] = "食物:提升生命恢復";
+ ["FOOD_OTHER"] = "食物:其他";
+ }
+end);
+
+
+if (GetLocale()=="zhTW") then
+
+AUTOBAR_CHAT_MESSAGE1 = "保存的配置是舊的版本, 已被清除. 不支援配置的升級.";
+AUTOBAR_CHAT_MESSAGE2 = "更新同一類型物品按鈕 #%d 物品 #%d, 使用物品ID替換物品名稱.";
+AUTOBAR_CHAT_MESSAGE3 = "更新單一類型物品按鈕 #%d, 使用物品ID替換物品名稱.";
+
+-- AutoBar_Config.xml
+AUTOBAR_CONFIG_VIEWTEXT = "要編輯按鈕請選擇欄位分頁下方的欄位進行編輯。";
+AUTOBAR_CONFIG_SLOTVIEWTEXT = "檢視綜合欄位 (無法編輯)";
+AUTOBAR_CONFIG_RESET = "重置";
+AUTOBAR_CONFIG_REVERT = "復原";
+AUTOBAR_CONFIG_DONE = "完成";
+AUTOBAR_CONFIG_DETAIL_CATEGORIES = "(Shift+點擊進入詳細分類)";
+AUTOBAR_CONFIG_DRAGHANDLE = "滑鼠左鍵拖曳移動 AutoBar\n左鍵鎖定 / 解鎖\n右鍵顯示功能選項";
+AUTOBAR_CONFIG_EMPTYSLOT = "空欄位";
+AUTOBAR_CONFIG_CLEARSLOT = "清除欄位";
+AUTOBAR_CONFIG_SETSHARED = "共用設定:";
+AUTOBAR_CONFIG_SETSHAREDTIP = "選擇使用共用,將會把共用的設定值套用到所有的角色。";
+
+AUTOBAR_CONFIG_TAB_SLOTS = "欄位";
+AUTOBAR_CONFIG_TAB_BAR = "動作條";
+AUTOBAR_CONFIG_TAB_BUTTONS = "按鈕";
+AUTOBAR_CONFIG_TAB_POPUP = "彈出";
+AUTOBAR_CONFIG_TAB_PROFILE = "專案設定";
+
+AUTOBAR_TOOLTIP1 = " (數量: ";
+AUTOBAR_TOOLTIP2 = " [自定義物品]";
+AUTOBAR_TOOLTIP4 = " [僅用於戰場]";
+AUTOBAR_TOOLTIP5 = " [僅用於非戰鬥狀態]";
+AUTOBAR_TOOLTIP6 = " [使用條件限制]";
+AUTOBAR_TOOLTIP7 = " [使用後需冷卻]";
+AUTOBAR_TOOLTIP8 = "\n(左鍵用於主手武器\n右鍵用於副手武器)";
+
+AUTOBAR_CONFIG_DOCKTO = "依附於:";
+AUTOBAR_CONFIG_USECHARACTERTIP = "角色欄位的物品只適用於這個角色。";
+AUTOBAR_CONFIG_USESHAREDTIP = "共用欄位的物品適用於其他角色使用相同的物品。\n共用項目可由專案分頁中選擇。";
+AUTOBAR_CONFIG_USECLASSTIP = "職業欄位的物品適用於所有相同職業的角色。";
+AUTOBAR_CONFIG_USEBASICTIP = "基本欄位的物品適用於所有角色可用的基本物品。";
+AUTOBAR_CONFIG_CHARACTERLAYOUTTIP = "改變可見的欄位只作用於這個角色。";
+AUTOBAR_CONFIG_SHAREDLAYOUTTIP = "改變可見的欄位可作用於所有角色使用相同的共用設定。";
+AUTOBAR_CONFIG_TIPOVERRIDE = "這一層的物品優先順序優於下一層的欄位。\n";
+AUTOBAR_CONFIG_TIPOVERRIDDEN = "上一層的物品優先順序優於這一層的欄位。\n";
+AUTOBAR_CONFIG_TIPAFFECTSCHARACTER = "變動只作用於這個角色。";
+AUTOBAR_CONFIG_TIPAFFECTSALL = "變動作用於所有角色。";
+AUTOBAR_CONFIG_SETUPSINGLE = "單一設定";
+AUTOBAR_CONFIG_SETUPSHARED = "共用設定";
+AUTOBAR_CONFIG_SETUPSTANDARD = "標準設定";
+AUTOBAR_CONFIG_SETUPBLANKSLATE = "清空欄位";
+AUTOBAR_CONFIG_SETUPSINGLETIP = "左鍵將設定單一角色為職業的 AutoBar。";
+AUTOBAR_CONFIG_SETUPSHAREDTIP = "左鍵為共用設定\n開啟角色專用以及共用欄位。";
+AUTOBAR_CONFIG_SETUPSTANDARDTIP = "開啟編輯並使用所有欄位。";
+AUTOBAR_CONFIG_SETUPBLANKSLATETIP = "清除所有角色和共用的按鈕。";
+AUTOBAR_CONFIG_RESETSINGLETIP = "左鍵將重置為單一角色設定的預設值。";
+AUTOBAR_CONFIG_RESETSHAREDTIP = "左鍵將重置為角色共用設定的預設值。\n職業專用按鈕會複製到角色欄位。\n預設按鈕將複製到共用的欄位。";
+AUTOBAR_CONFIG_RESETSTANDARDTIP = "左鍵將重置為標準預設值。\n職業專用按鈕會在職業欄位中。\n預設按鈕在基本欄位中。\n共用和角色欄位將會清除。";
+
+-- AutoBar_Config.lua
+AUTOBAR_TOOLTIP9 = "同類物品按鈕\n";
+AUTOBAR_TOOLTIP10 = " (按物品ID定制)";
+AUTOBAR_TOOLTIP11 = "\n(物品ID未經過驗證)";
+AUTOBAR_TOOLTIP12 = " (按物品名稱定制)";
+AUTOBAR_TOOLTIP13 = "單一物品按鈕\n\n";
+AUTOBAR_TOOLTIP14 = "\n不能直接使用.";
+AUTOBAR_TOOLTIP15 = "\n武器目標\n(左鍵用於主手武器\n右鍵用於副手武器.)";
+AUTOBAR_TOOLTIP16 = "\n需目標.";
+AUTOBAR_TOOLTIP17 = "\n僅用於非戰鬥狀態.";
+AUTOBAR_TOOLTIP18 = "\n僅用於戰鬥狀態.";
+AUTOBAR_TOOLTIP19 = "\n使用地點: ";
+AUTOBAR_TOOLTIP20 = "\n使用條件限制: ";
+AUTOBAR_TOOLTIP21 = "所需恢復生命";
+AUTOBAR_TOOLTIP22 = "所需恢復法力";
+AUTOBAR_TOOLTIP23 = "單一物品按鈕\n\n";
+
+-- AutoBar_ItemList.lua
+AUTOBAR_ALTERACVALLEY = "奧特蘭克山谷";
+AUTOBAR_WARSONGGULCH = "戰歌峽谷";
+AUTOBAR_ARATHIBASIN = "阿拉希盆地";
+AUTOBAR_AHN_QIRAJ = "安其拉";
+AUTOBAR_BWL = "黑翼之巢";
+
+AUTOBAR_CLASS_CUSTOM = "自訂";
+AUTOBAR_CLASS_MINI_PET = "寵物";
+AUTOBAR_CLASS_MINI_PET_HOLIDAY = "假日寵物";
+AUTOBAR_CLASS_QUEST_ITEMS = "任務物品";
+AUTOBAR_CLASS_CLEAR = "清除欄位";
+AUTOBAR_CLASS_BANDAGES = "繃帶";
+AUTOBAR_CLASS_ALTERAC_BANDAGE = "奧特蘭克繃帶";
+AUTOBAR_CLASS_WARSONG_BANDAGE = "戰歌繃帶";
+AUTOBAR_CLASS_ARATHI_BANDAGE = "阿拉希繃帶";
+AUTOBAR_CLASS_UNGORORESTORE = "安戈洛: 恢復水晶";
+
+AUTOBAR_CLASS_ANTIVENOM = "抗毒藥劑";
+AUTOBAR_CLASS_AGILITYPOTIONS = "敏捷藥劑";
+AUTOBAR_CLASS_STRENGTHPOTIONS = "力量藥劑";
+AUTOBAR_CLASS_FORTITUDEPOTIONS = "堅韌藥劑";
+AUTOBAR_CLASS_INTELLECTPOTIONS = "聰穎藥劑";
+AUTOBAR_CLASS_WISDOMPOTIONS = "智慧藥劑";
+AUTOBAR_CLASS_DEFENSEPOTIONS = "防禦藥劑";
+AUTOBAR_CLASS_TROLLBLOODPOTIONS = "食人妖之血藥水";
+AUTOBAR_CLASS_SCROLLOFAGILITY = "敏捷卷軸";
+AUTOBAR_CLASS_SCROLLOFINTELLECT = "智力卷軸";
+AUTOBAR_CLASS_SCROLLOFPROTECTION = "保護卷軸";
+AUTOBAR_CLASS_SCROLLOFSPIRIT = "精神卷軸";
+AUTOBAR_CLASS_SCROLLOFSTAMINA = "耐力卷軸";
+AUTOBAR_CLASS_SCROLLOFSTRENGTH = "力量卷軸";
+AUTOBAR_CLASS_BUFF_ATTACKPOWER = "提高攻擊強度";
+AUTOBAR_CLASS_BUFF_ATTACKSPEED = "提高攻擊速度";
+AUTOBAR_CLASS_BUFF_DODGE = "提高閃躲機率";
+AUTOBAR_CLASS_BUFF_FROST = "提高冰霜抗性";
+AUTOBAR_CLASS_BUFF_FIRE = "提高火焰抗性";
+
+AUTOBAR_CLASS_HEALPOTIONS = "治療藥水";
+AUTOBAR_CLASS_PVP6HEALPOTIONS = "PVP 等級 6 - 治療藥水";
+AUTOBAR_CLASS_HEALTHSTONE = "治療石";
+AUTOBAR_CLASS_WHIPPER_ROOT = "鞭根塊莖";
+AUTOBAR_CLASS_BATTLEGROUNDHEALPOTIONS = "戰場治療藥水";
+AUTOBAR_CLASS_MANAPOTIONS = "法力藥水";
+AUTOBAR_CLASS_PVP6MANAPOTIONS = "PVP 等級 6 - 法力藥水";
+AUTOBAR_CLASS_MANASTONE = "法力寶石";
+AUTOBAR_CLASS_BATTLEGROUNDMANAPOTIONS = "戰場法力藥水";
+AUTOBAR_CLASS_DREAMLESS_SLEEP = "昏睡藥水";
+AUTOBAR_CLASS_NIGHT_DRAGONS_BREATH = "夜龍之息";
+AUTOBAR_CLASS_REJUVENATION_POTIONS = "恢復藥水";
+
+AUTOBAR_CLASS_BATTLESTANDARD = "戰場軍旗";
+AUTOBAR_CLASS_BATTLESTANDARDAV = "奧特蘭克山谷軍旗";
+AUTOBAR_CLASS_DEMONIC_DARK_RUNES = "惡魔和黑暗符文";
+AUTOBAR_CLASS_ARCANE_PROTECTION = "祕法防護藥水";
+AUTOBAR_CLASS_FIRE_PROTECTION = "火焰防護藥水";
+AUTOBAR_CLASS_FROST_PROTECTION = "冰霜防護藥水";
+AUTOBAR_CLASS_NATURE_PROTECTION = "自然防護藥水";
+AUTOBAR_CLASS_SHADOW_PROTECTION = "暗影防護藥水";
+AUTOBAR_CLASS_SPELL_PROTECTION = "法術反彈";
+AUTOBAR_CLASS_HOLY_PROTECTION = "神聖防護藥水";
+AUTOBAR_CLASS_INVULNERABILITY_POTIONS = "有限無敵藥水";
+AUTOBAR_CLASS_FREE_ACTION_POTION = "自由行動藥水";
+
+AUTOBAR_CLASS_HEARTHSTONE = "爐石";
+AUTOBAR_CLASS_WATER = "水";
+AUTOBAR_CLASS_WATER_PERCENT = "水: % 恢復法力";
+AUTOBAR_CLASS_WATER_CONJURED = "水:法師製造物";
+AUTOBAR_CLASS_WATER_SPIRIT = "水:提昇精神";
+AUTOBAR_CLASS_RAGEPOTIONS = "怒氣藥水";
+AUTOBAR_CLASS_ENERGYPOTIONS = "能量藥水";
+AUTOBAR_CLASS_SWIFTNESSPOTIONS = "迅捷藥劑";
+AUTOBAR_CLASS_SOULSHARDS = "靈魂碎片";
+AUTOBAR_CLASS_ARROWS = "箭";
+AUTOBAR_CLASS_BULLETS = "子彈";
+AUTOBAR_CLASS_THROWNWEAPON = "投擲武器";
+AUTOBAR_CLASS_FOOD = "食物: 無附加效果";
+AUTOBAR_CLASS_FOOD_PERCENT = "食物: % 恢復生命力";
+AUTOBAR_CLASS_FOOD_PERCENT_BONUS = "食物: % 恢復生命力 (餵食增益效果)";
+AUTOBAR_CLASS_FOOD_PERCENT_COMBO = "食物: % 恢復生命力及法力";
+
+AUTOBAR_CLASS_FOOD_PET_BREAD = "食物:寵物麵包";
+AUTOBAR_CLASS_FOOD_PET_CHEESE = "食物:寵物乳酪";
+AUTOBAR_CLASS_FOOD_PET_FISH = "食物:寵物魚類";
+AUTOBAR_CLASS_FOOD_PET_FRUIT = "食物:寵物水果";
+AUTOBAR_CLASS_FOOD_PET_FUNGUS = "食物:寵物菌類";
+AUTOBAR_CLASS_FOOD_PET_MEAT = "食物:寵物肉類";
+AUTOBAR_CLASS_FOOD_COMBO= "食物:有喝水效果";
+AUTOBAR_CLASS_FOOD_CONJURED = "食物:法師製造物";
+AUTOBAR_CLASS_FOOD_ARATHI= "食物:阿拉希盆地";
+AUTOBAR_CLASS_FOOD_WARSONG= "食物:戰歌峽谷";
+AUTOBAR_CLASS_SHARPENINGSTONES = "磨刀石";
+AUTOBAR_CLASS_WEIGHTSTONE = "平衡石";
+AUTOBAR_CLASS_POISON_CRIPPLING = "致殘毒藥";
+AUTOBAR_CLASS_POISON_DEADLY = "致命毒藥";
+AUTOBAR_CLASS_POISON_INSTANT = "速效毒藥";
+AUTOBAR_CLASS_POISON_MINDNUMBING = "麻痹毒藥";
+AUTOBAR_CLASS_POISON_WOUND = "致傷毒藥";
+AUTOBAR_CLASS_EXPLOSIVES = "工程學爆炸物";
+AUTOBAR_CLASS_MOUNTS = "騎乘";
+AUTOBAR_CLASS_MOUNTS_QIRAJI = "騎乘:其拉甲蟲";
+AUTOBAR_CLASS_MANA_OIL = "魔油:提高法力恢復";
+AUTOBAR_CLASS_WIZARD_OIL = "魔油:增加 傷害/治療";
+
+end
\ No newline at end of file

Added: branches/AutoBar/Readme.txt
===================================================================
--- branches/AutoBar/Readme.txt (rev 0)
+++ branches/AutoBar/Readme.txt 2006-11-23 05:36:05 UTC (rev 17828)
@@ -0,0 +1,7 @@
+*For smart selfcast of bandages and other targetable items either:
+ select the smart self cast checkbox
+ or click on the item slot and select the appropriate checkbox(es) next to each item.
+*Paladin and warlock summoned mounts are not inventory items & so are not supported.
+*For Cooldown counts please use Omni Cooldown Count
+*You can drag & drop items from your bag to the category window
+*You can drag items around to rearrange them

Reply all
Reply to author
Forward
0 new messages