Initial: Turtle WoW Glue XML baseline

Pristine baseline for the four Glue files we'll customize:
- AccountLogin.lua / .xml
- CharacterSelect.lua / .xml

Source: c:/WoW/Octo/BlizzardInterfaceCode/GlueXML (Turtle WoW).
Other files in BlizzardInterfaceCode/GlueXML are not tracked here since we don't override them on top of the MPQ-provided copies.
This commit is contained in:
2026-06-22 23:31:46 -05:00
commit 13d77d77c9
4 changed files with 2585 additions and 0 deletions
+226
View File
@@ -0,0 +1,226 @@
FADE_IN_TIME = 2;
DEFAULT_TOOLTIP_COLOR = {0.8, 0.8, 0.8, 0.09, 0.09, 0.09};
MAX_PIN_LENGTH = 10;
function AccountLogin_OnLoad()
this:SetSequence(0);
this:SetCamera(0);
this:RegisterEvent("SHOW_SERVER_ALERT");
this:RegisterEvent("SHOW_SURVEY_NOTIFICATION");
local versionType, buildType, version, internalVersion, date = GetBuildInfo();
AccountLoginVersion:SetText(format(VERSION_TEMPLATE, versionType, version, internalVersion, buildType, date));
-- Color edit box backdrops
local backdropColor = DEFAULT_TOOLTIP_COLOR;
AccountLoginAccountEdit:SetBackdropBorderColor(backdropColor[1], backdropColor[2], backdropColor[3]);
AccountLoginAccountEdit:SetBackdropColor(backdropColor[4], backdropColor[5], backdropColor[6]);
AccountLoginPasswordEdit:SetBackdropBorderColor(backdropColor[1], backdropColor[2], backdropColor[3]);
AccountLoginPasswordEdit:SetBackdropColor(backdropColor[4], backdropColor[5], backdropColor[6]);
VirtualKeypadText:SetBackdropBorderColor(backdropColor[1], backdropColor[2], backdropColor[3]);
VirtualKeypadText:SetBackdropColor(backdropColor[4], backdropColor[5], backdropColor[6]);
end
function AccountLogin_OnShow()
CurrentGlueMusic = "Sound\\Music\\GlueScreenMusic\\wow_main_theme.mp3";
AcceptTOS();
AcceptEULA();
local serverName = GetServerName();
if(serverName) then
AccountLoginRealmName:SetText(serverName);
else
AccountLoginRealmName:Hide()
end
local accountName = GetSavedAccountName();
AccountLoginAccountEdit:SetText(accountName);
AccountLoginPasswordEdit:SetText("");
if ( accountName == "" ) then
AccountLogin_FocusAccountName();
else
AccountLogin_FocusPassword();
end
end
function AccountLogin_FocusPassword()
AccountLoginPasswordEdit:SetFocus();
end
function AccountLogin_FocusAccountName()
AccountLoginAccountEdit:SetFocus();
end
function AccountLogin_OnChar()
end
function AccountLogin_OnKeyDown()
if ( arg1 == "ESCAPE" ) then
if ( ConnectionHelpFrame:IsVisible() ) then
ConnectionHelpFrame:Hide();
AccountLoginUI:Show();
elseif ( SurveyNotificationFrame:IsVisible() ) then
-- do nothing
else
AccountLogin_Exit();
end
elseif ( arg1 == "ENTER" ) then
if ( not TOSAccepted() ) then
return;
elseif ( TOSFrame:IsVisible() or ConnectionHelpFrame:IsVisible() ) then
return;
elseif ( SurveyNotificationFrame:IsVisible() ) then
AccountLogin_SurveyNotificationDone(1);
end
AccountLogin_Login();
elseif ( arg1 == "PRINTSCREEN" ) then
Screenshot();
end
end
function AccountLogin_OnEvent(event)
if ( event == "SHOW_SERVER_ALERT" ) then
ServerAlertText:SetText(arg1);
ServerAlertScrollFrame:UpdateScrollChildRect();
ServerAlertFrame:Show();
elseif ( event == "SHOW_SURVEY_NOTIFICATION" ) then
AccountLogin_ShowSurveyNotification();
end
end
function AccountLogin_Login()
PlaySound("gsLogin");
DefaultServerLogin(AccountLoginAccountEdit:GetText(), AccountLoginPasswordEdit:GetText());
AccountLoginPasswordEdit:SetText("");
if ( AccountLoginSaveAccountName:GetChecked() ) then
SetSavedAccountName(AccountLoginAccountEdit:GetText());
else
SetSavedAccountName("");
end
end
function AccountLogin_Turtle_Armory_Website()
PlaySound("gsLoginNewAccount");
LaunchURL(TURTLE_ARMORY_WEBSITE);
end
function AccountLogin_Turtle_Website()
PlaySound("gsLoginNewAccount");
LaunchURL(AUTH_TURTLE_WEBSITE);
end
function AccountLogin_Turtle_Knowledge_Database()
PlaySound("gsLoginNewAccount");
LaunchURL(TURTLE_KNOWLEDGE_DATABASE_WEBSITE);
end
function AccountLogin_Turtle_Community_Forum()
PlaySound("gsLoginNewAccount");
LaunchURL(TURTLE_COMMUNITY_FORUM_WEBSITE);
end
function AccountLogin_Turtle_Discord()
PlaySound("gsLoginNewAccount");
LaunchURL(TURTLE_DISCORD_WEBSITE);
end
function AccountLogin_Turtle_Reddit()
PlaySound("gsLoginNewAccount");
LaunchURL(TURTLE_REDDIT_WEBSITE);
end
function AccountLogin_Credits()
if ( not GlueDialog:IsVisible() ) then
PlaySound("gsTitleCredits");
SetGlueScreen("credits");
end
end
function AccountLogin_Cinematics()
if ( not GlueDialog:IsVisible() ) then
PlaySound("gsTitleIntroMovie");
SetGlueScreen("movie");
end
end
function AccountLogin_Options()
PlaySound("gsTitleOptions");
end
function AccountLogin_Exit()
PlaySound("gsTitleQuit");
QuitGame();
end
function AccountLogin_ShowSurveyNotification()
GlueDialog:Hide();
AccountLoginUI:Hide();
SurveyNotificationAccept:Enable();
SurveyNotificationDecline:Enable();
SurveyNotificationFrame:Show();
end
function AccountLogin_SurveyNotificationDone(accepted)
SurveyNotificationFrame:Hide();
SurveyNotificationAccept:Disable();
SurveyNotificationDecline:Disable();
SurveyNotificationDone(accepted);
AccountLoginUI:Show();
end
-- Virtual keypad functions
local buttonText = {}
function VirtualKeypadFrame_OnEvent(event)
if ( event == "PLAYER_ENTER_PIN" ) then
for i=1, 10 do
buttonText[i] = _G["arg"..i]
end
end
-- Randomize location to prevent hacking (yeah right)
local xPadding = 5;
local yPadding = 10;
local xPos = random(xPadding, GlueParent:GetWidth()-VirtualKeypadFrame:GetWidth()-xPadding);
local yPos = random(yPadding, GlueParent:GetHeight()-VirtualKeypadFrame:GetHeight()-yPadding);
--VirtualKeypadFrame:SetPoint("TOPLEFT", GlueParent, "TOPLEFT", xPos, -yPos);
VirtualKeypadFrame:Show();
VirtualKeypad_UpdateButtons();
end
function VirtualKeypadButton_OnClick()
local text = VirtualKeypadText:GetText();
if ( not text ) then
text = "";
end
VirtualKeypadFrame.PIN = VirtualKeypadFrame.PIN..this:GetID();
VirtualKeypadText:SetText(VirtualKeypadFrame.PIN);
VirtualKeypad_UpdateButtons();
end
function VirtualKeypadOkayButton_OnClick()
local PIN = VirtualKeypadText:GetText();
local numNumbers = strlen(PIN);
if numNumbers < 6 then return end
local pinNumber = {};
for i=1, MAX_PIN_LENGTH do
if ( i <= numNumbers ) then
pinNumber[i] = nil;
for j=1, 10 do
if tonumber(buttonText[j]) == tonumber(strsub(PIN,i,i)) then
pinNumber[i] = j-1;
end
end
else
pinNumber[i] = nil;
end
end
PINEntered(pinNumber[1], pinNumber[2], pinNumber[3], pinNumber[4], pinNumber[5], pinNumber[6], pinNumber[7], pinNumber[8], pinNumber[9], pinNumber[10]);
VirtualKeypadFrame:Hide();
end
function VirtualKeypad_UpdateButtons()
end
+1053
View File
File diff suppressed because it is too large Load Diff
+429
View File
@@ -0,0 +1,429 @@
CHARACTER_SELECT_ROTATION_START_X = nil;
CHARACTER_SELECT_INITIAL_FACING = nil;
CHARACTER_ROTATION_CONSTANT = 0.6;
MAX_CHARACTERS_DISPLAYED = 10;
MAX_CHARACTERS_PER_REALM = 10;
function CharacterSelect_OnLoad()
this:SetSequence(0);
this:SetCamera(0);
this.createIndex = 0;
this.selectedIndex = 0;
this.selectLast = 0;
this.currentModel = "";
this:RegisterEvent("ADDON_LIST_UPDATE");
this:RegisterEvent("CHARACTER_LIST_UPDATE");
this:RegisterEvent("UPDATE_SELECTED_CHARACTER");
this:RegisterEvent("SELECT_LAST_CHARACTER");
this:RegisterEvent("SELECT_FIRST_CHARACTER");
this:RegisterEvent("SUGGEST_REALM");
this:RegisterEvent("FORCE_RENAME_CHARACTER");
CharacterSelect:SetModel("Interface\\Glues\\Models\\UI_Orc\\UI_Orc.mdx");
local fogInfo = CharModelFogInfo["ORC"];
CharacterSelect:SetFogColor(fogInfo.r, fogInfo.g, fogInfo.b);
CharacterSelect:SetFogNear(0);
CharacterSelect:SetFogFar(fogInfo.far);
SetCharSelectModelFrame("CharacterSelect");
--CharSelectModel:SetLight(1, 0, 0, -0.707, -0.707, 0.7, 1.0, 1.0, 1.0, 0.8, 1.0, 1.0, 0.8);
-- Color edit box backdrops
local backdropColor = DEFAULT_TOOLTIP_COLOR;
CharacterSelectCharacterFrame:SetBackdropBorderColor(backdropColor[1], backdropColor[2], backdropColor[3]);
CharacterSelectCharacterFrame:SetBackdropColor(backdropColor[4], backdropColor[5], backdropColor[6], 0.85);
end
function CharacterSelect_OnShow()
CurrentGlueMusic = "Sound\\Music\\GlueScreenMusic\\wow_main_theme.mp3";
UpdateAddonButton();
local serverName, isPVP, isRP = GetServerName();
local connected = IsConnectedToServer();
local serverType = "";
if ( serverName ) then
if( not connected ) then
serverName = serverName.."\n("..SERVER_DOWN..")";
end
if ( isPVP ) then
if ( isRP ) then
serverType = RPPVP_PARENTHESES;
else
serverType = PVP_PARENTHESES;
end
elseif ( isRP ) then
serverType = RP_PARENTHESES;
end
CharSelectRealmName:SetText(serverName.." "..serverType);
CharSelectRealmName:Show();
else
CharSelectRealmName:Hide();
end
if ( connected ) then
GetCharacterListUpdate();
else
UpdateCharacterList();
end
-- Gameroom billing stuff (For Korea and China only)
if ( SHOW_GAMEROOM_BILLING_FRAME ) then
local paymentPlan, hasFallBackBillingMethod, isGameRoom = GetBillingPlan();
if ( paymentPlan == 0 ) then
-- No payment plan
GameRoomBillingFrame:Hide();
else
local billingTimeLeft = GetBillingTimeRemaining();
-- Set default text for the payment plan
local billingText = _G["BILLING_TEXT"..paymentPlan];
if ( paymentPlan == 1 ) then
-- Recurring account
billingTimeLeft = ceil(billingTimeLeft/(60 * 24));
if ( billingTimeLeft == 1 ) then
billingText = BILLING_TIME_LEFT_LAST_DAY;
end
elseif ( paymentPlan == 2 ) then
-- Free account
if ( billingTimeLeft < (24 * 60) ) then
billingText = format(BILLING_FREE_TIME_EXPIRE, billingTimeLeft.." "..GetText("MINUTES_ABBR", nil, billingTimeLeft));
end
elseif ( paymentPlan == 3 ) then
-- Fixed but not recurring
if ( isGameRoom == 1 ) then
if ( billingTimeLeft <= 30 ) then
billingText = BILLING_GAMEROOM_EXPIRE;
else
billingText = format(BILLING_FIXED_IGR, MinutesToTime(billingTimeLeft, 1));
end
else
-- personal fixed plan
if ( billingTimeLeft < (24 * 60) ) then
billingText = BILLING_FIXED_LASTDAY;
else
billingText = format(billingText, MinutesToTime(billingTimeLeft));
end
end
elseif ( paymentPlan == 4 ) then
-- Usage plan
if ( isGameRoom == 1 ) then
-- game room usage plan
if ( billingTimeLeft <= 600 ) then
billingText = BILLING_GAMEROOM_EXPIRE;
else
billingText = BILLING_IGR_USAGE;
end
else
-- personal usage plan
if ( billingTimeLeft <= 30 ) then
billingText = BILLING_TIME_LEFT_30_MINS;
else
billingText = format(billingText, billingTimeLeft);
end
end
end
-- If fallback payment method add a note that says so
if ( hasFallBackBillingMethod == 1 ) then
billingText = billingText.."\n\n"..BILLING_HAS_FALLBACK_PAYMENT;
end
GameRoomBillingFrameText:SetText(billingText);
GameRoomBillingFrame:SetHeight(GameRoomBillingFrameText:GetHeight() + 26);
GameRoomBillingFrame:Show();
end
end
-- fadein the character select ui
GlueFrameFadeIn(CharacterSelectUI, CHARACTER_SELECT_FADE_IN)
end
function CharacterSelect_OnHide()
CharacterDeleteDialog:Hide();
CharacterRenameDialog:Hide();
end
function CharacterSelect_OnKeyDown()
if ( arg1 == "ESCAPE" ) then
CharacterSelect_Exit();
elseif ( arg1 == "ENTER" ) then
CharacterSelect_EnterWorld();
elseif ( arg1 == "PRINTSCREEN" ) then
Screenshot();
elseif ( arg1 == "UP" or arg1 == "LEFT" ) then
local numChars = GetNumCharacters();
if ( numChars > 1 ) then
if ( this.selectedIndex > 1 ) then
CharacterSelect_SelectCharacter(this.selectedIndex - 1);
else
CharacterSelect_SelectCharacter(numChars);
end
end
elseif ( arg1 == "DOWN" or arg1 == "RIGHT" ) then
local numChars = GetNumCharacters();
if ( numChars > 1 ) then
if ( this.selectedIndex < GetNumCharacters() ) then
CharacterSelect_SelectCharacter(this.selectedIndex + 1);
else
CharacterSelect_SelectCharacter(1);
end
end
end
end
function CharacterSelect_OnEvent()
if ( event == "ADDON_LIST_UPDATE" ) then
UpdateAddonButton();
elseif ( event == "CHARACTER_LIST_UPDATE" ) then
UpdateCharacterList();
CharSelectCharacterName:SetText(GetCharacterInfo(this.selectedIndex));
elseif ( event == "UPDATE_SELECTED_CHARACTER" ) then
if ( arg1 == 0 ) then
CharSelectCharacterName:SetText("");
else
CharSelectCharacterName:SetText(GetCharacterInfo(arg1));
this.selectedIndex = arg1;
end
UpdateCharacterSelection();
elseif ( event == "SELECT_LAST_CHARACTER" ) then
this.selectLast = 1;
elseif ( event == "SELECT_FIRST_CHARACTER" ) then
CharacterSelect_SelectCharacter(1, 1);
elseif ( event == "SUGGEST_REALM" ) then
local name = GetRealmInfo(arg1, arg2);
RealmWizard.suggestedRealmName = name;
RealmWizard.suggestedCategory = arg1;
RealmWizard.suggestedID = arg2;
GlueDialog_Show("SUGGEST_REALM");
elseif ( event == "FORCE_RENAME_CHARACTER" ) then
CharacterRenameDialog:Show();
CharacterRenameBackground:SetHeight(16 + CharacterRenameText1:GetHeight() + CharacterRenameText2:GetHeight() + 23 + CharacterRenameEditBox:GetHeight() + 8 + CharacterRenameButton1:GetHeight() + 16);
CharacterRenameText1:SetText(_G[arg1]);
end
end
function CharacterSelect_UpdateModel()
UpdateSelectionCustomizationScene();
this:AdvanceTime();
end
function UpdateCharacterSelection()
for i=1, MAX_CHARACTERS_DISPLAYED, 1 do
_G["CharSelectCharacterButton"..i]:UnlockHighlight();
end
local index = this.selectedIndex;
if ( (index > 0) and (index <= MAX_CHARACTERS_DISPLAYED) )then
_G["CharSelectCharacterButton"..index]:LockHighlight();
end
end
function UpdateCharacterList()
local numChars = GetNumCharacters();
local index = 1;
for i=1, numChars, 1 do
local name, race, class, level, zone, fileString, gender, ghost = GetCharacterInfo(i);
local button = _G["CharSelectCharacterButton"..index];
if ( not name ) then
button:SetText("ERROR - Tell Jeremy");
else
if ( not zone ) then
zone = "";
end
local classColor
local classToken = TW_CLASS_TOKEN and TW_CLASS_TOKEN[class]
if classToken and CLASS_COLORS[classToken] then
classColor = CLASS_COLORS[classToken]
class = classColor .. class .. "|r"
end
_G["CharSelectCharacterButton"..index.."ButtonTextName"]:SetText(name);
if ( ghost ) then
_G["CharSelectCharacterButton"..index.."ButtonTextInfo"]:SetText(format(CHARACTER_SELECT_INFO_GHOST, level, class));
else
_G["CharSelectCharacterButton"..index.."ButtonTextInfo"]:SetText(format(CHARACTER_SELECT_INFO, level, class));
end
_G["CharSelectCharacterButton"..index.."ButtonTextLocation"]:SetText(zone);
end
button:Show();
index = index + 1;
if ( index > MAX_CHARACTERS_DISPLAYED ) then
break;
end
end
if ( numChars == 0 ) then
CharacterSelectDeleteButton:Disable();
CharSelectEnterWorldButton:Disable();
else
CharacterSelectDeleteButton:Enable();
CharSelectEnterWorldButton:Enable();
end
CharacterSelect.createIndex = 0;
CharSelectCreateCharacterButton:Hide();
local connected = IsConnectedToServer();
for i=index, MAX_CHARACTERS_DISPLAYED, 1 do
local button = _G["CharSelectCharacterButton"..index];
if ( (CharacterSelect.createIndex == 0) and (numChars < MAX_CHARACTERS_PER_REALM) ) then
CharacterSelect.createIndex = index;
if ( connected ) then
--If can create characters position and show the create button
CharSelectCreateCharacterButton:SetID(index);
--CharSelectCreateCharacterButton:SetPoint("TOP", button, "TOP", 0, -5);
CharSelectCreateCharacterButton:Show();
end
end
button:Hide();
index = index + 1;
end
if ( numChars == 0 ) then
CharacterSelect.selectedIndex = 0;
return;
end
if ( CharacterSelect.selectLast == 1 ) then
CharacterSelect.selectLast = 0;
CharacterSelect_SelectCharacter(numChars, 1);
return;
end
if ( (CharacterSelect.selectedIndex == 0) or (CharacterSelect.selectedIndex > numChars) ) then
CharacterSelect.selectedIndex = 1;
end
CharacterSelect_SelectCharacter(CharacterSelect.selectedIndex, 1);
end
function CharacterSelect_OnChar()
end
function CharacterSelectButton_OnClick()
local id = this:GetID();
if ( id ~= CharacterSelect.selectedIndex ) then
CharacterSelect_SelectCharacter(id);
end
end
function CharacterSelectButton_OnDoubleClick()
local id = this:GetID();
if ( id ~= CharacterSelect.selectedIndex ) then
CharacterSelect_SelectCharacter(id);
end
CharacterSelect_EnterWorld();
end
function CharacterSelect_TabResize()
local buttonMiddle = _G[this:GetName().."Middle"];
local buttonMiddleDisabled = _G[this:GetName().."MiddleDisabled"];
local width = this:GetTextWidth() - 8;
local leftWidth = _G[this:GetName().."Left"]:GetWidth();
buttonMiddle:SetWidth(width);
buttonMiddleDisabled:SetWidth(width);
this:SetWidth(width + (2 * leftWidth));
end
function CharacterSelect_SelectCharacter(id, noCreate)
if ( id == CharacterSelect.createIndex ) then
if ( not noCreate ) then
PlaySound("gsCharacterSelectionCreateNew");
--ResetRaceSelect();
--UpdateSelectedRace(nil);
SetGlueScreen("charcreate");
end
else
local name, race, class, level, zone, fileString = GetCharacterInfo(id);
if ( fileString ~= CharacterSelect.currentModel ) then
CharacterSelect.currentModel = fileString;
SetBackgroundModel(CharacterSelect, fileString);
end
SelectCharacter(id);
end
end
function CharacterDeleteDialog_OnShow()
local name, race, class, level = GetCharacterInfo(CharacterSelect.selectedIndex);
CharacterDeleteText1:SetText(format(CONFIRM_CHAR_DELETE, name, level, class));
CharacterDeleteBackground:SetHeight(16 + CharacterDeleteText1:GetHeight() + CharacterDeleteText2:GetHeight() + 23 + CharacterDeleteEditBox:GetHeight() + 8 + CharacterDeleteButton1:GetHeight() + 16);
CharacterDeleteButton1:Disable();
end
function CharacterSelect_EnterWorld()
PlaySound("gsCharacterSelectionEnterWorld");
EnterWorld();
end
function CharacterSelect_Exit()
PlaySound("gsCharacterSelectionExit");
DisconnectFromServer();
SetGlueScreen("login");
end
function CharacterSelect_AccountOptions()
PlaySound("gsCharacterSelectionAcctOptions");
end
function CharacterSelect_TechSupport()
PlaySound("gsCharacterSelectionAcctOptions");
LaunchURL(TECH_SUPPORT_URL);
end
function CharacterSelect_Delete()
PlaySound("gsCharacterSelectionDelCharacter");
if ( CharacterSelect.selectedIndex > 0 ) then
CharacterDeleteDialog:Show();
end
end
function CharacterSelect_ChangeRealm()
PlaySound("gsLoginChangeRealmSelect");
RequestRealmList(1);
end
function CharacterSelectFrame_OnMouseDown(button)
if ( button == "LeftButton" ) then
CHARACTER_SELECT_ROTATION_START_X = GetCursorPosition();
CHARACTER_SELECT_INITIAL_FACING = GetCharacterSelectFacing();
end
end
function CharacterSelectFrame_OnMouseUp(button)
if ( button == "LeftButton" ) then
CHARACTER_SELECT_ROTATION_START_X = nil
end
end
function CharacterSelectFrame_OnUpdate()
if ( CHARACTER_SELECT_ROTATION_START_X ) then
local x = GetCursorPosition();
local diff = (x - CHARACTER_SELECT_ROTATION_START_X) * CHARACTER_ROTATION_CONSTANT;
CHARACTER_SELECT_ROTATION_START_X = GetCursorPosition();
SetCharacterSelectFacing(GetCharacterSelectFacing() + diff);
end
end
function CharacterSelectRotateRight_OnUpdate()
if ( this:GetButtonState() == "PUSHED" ) then
SetCharacterSelectFacing(GetCharacterSelectFacing() + CHARACTER_FACING_INCREMENT);
end
end
function CharacterSelectRotateLeft_OnUpdate()
if ( this:GetButtonState() == "PUSHED" ) then
SetCharacterSelectFacing(GetCharacterSelectFacing() - CHARACTER_FACING_INCREMENT);
end
end
function CharacterSelect_ManageAccount()
PlaySound("gsCharacterSelectionAcctOptions");
LaunchURL(AUTH_NO_TIME_URL);
end
+877
View File
@@ -0,0 +1,877 @@
<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/
..\FrameXML\UI.xsd">
<Script file="CharacterSelect.lua"/>
<Button name="CharSelectCharacterButtonTemplate" virtual="true" hidden="true">
<Size>
<AbsDimension x="256" y="70"/>
</Size>
<HitRectInsets>
<AbsInset left="0" right="0" top="0" bottom="15"/>
</HitRectInsets>
<Frames>
<Frame name="$parentButtonText" setAllPoints="true">
<Layers>
<Layer level="BORDER">
<FontString name="$parentName" inherits="GlueFontNormal" justifyH="LEFT">
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="-5"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="$parentInfo" inherits="GlueFontHighlightSmall" justifyH="LEFT">
<Size>
<AbsDimension x="217" y="12"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="$parentName" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="-1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="$parentLocation" inherits="GlueFontDisableSmall" justifyH="LEFT">
<Size>
<AbsDimension x="217" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="$parentInfo" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="-1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
</Frame>
</Frames>
<Scripts>
<OnClick>
CharacterSelectButton_OnClick();
</OnClick>
<OnDoubleClick>
CharacterSelectButton_OnDoubleClick();
</OnDoubleClick>
</Scripts>
<HighlightTexture file="Interface\Glues\CharacterSelect\Glue-CharacterSelect-Highlight" alphaMode="ADD">
<Size>
<AbsDimension x="256" y="74"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="-20" y="8"/>
</Offset>
</Anchor>
</Anchors>
</HighlightTexture>
<NormalFont inherits="GlueFontNormal"/>
<HighlightFont inherits="GlueFontHighlight"/>
</Button>
<ModelFFX name="CharacterSelect" setAllPoints="true" hidden="true" parent="GlueParent" enableKeyboard="true">
<Frames>
<Frame name="CharacterSelectUI" setAllPoints="true" hidden="false" enableMouse="true">
<Layers>
<Layer level="ARTWORK">
<FontString name="CharSelectCharacterName" inherits="GlueFontNormalHuge">
<Anchors>
<Anchor point="BOTTOM">
<Offset>
<AbsDimension x="0" y="100"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
<Layer level="OVERLAY">
<Texture name="CharacterSelectLogo" file="Interface\Glues\Common\Glues-WoW-Logo">
<Size>
<AbsDimension x="256" y="128"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="3" y="-7"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Frames>
<Button name="CharSelectEnterWorldButton" inherits="GlueButtonTemplate" text="ENTER_WORLD">
<Size>
<AbsDimension x="200" y="60"/>
</Size>
<Anchors>
<Anchor point="BOTTOM">
<Offset>
<AbsDimension x="0" y="30"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
CharacterSelect_EnterWorld();
</OnClick>
</Scripts>
<NormalText>
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="-1" y="3"/>
</Offset>
</Anchor>
</Anchors>
</NormalText>
</Button>
<Button name="CharacterSelectRotateLeft">
<Size>
<AbsDimension x="50" y="50"/>
</Size>
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectEnterWorldButton" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="-15" y="19"/>
</Offset>
</Anchor>
</Anchors>
<HitRectInsets>
<AbsInset left="13" right="13" top="10" bottom="13"/>
</HitRectInsets>
<Scripts>
<OnUpdate>
CharacterSelectRotateLeft_OnUpdate();
</OnUpdate>
</Scripts>
<NormalTexture file="Interface\Glues\CharacterCreate\UI-RotationRight-Big-Up">
<TexCoords left="1.0" right="0" top="0" bottom="1.0"/>
</NormalTexture>
<PushedTexture file="Interface\Glues\CharacterCreate\UI-RotationRight-Big-Down">
<TexCoords left="1.0" right="0" top="0" bottom="1.0"/>
</PushedTexture>
<HighlightTexture file="Interface\Buttons\UI-Common-MouseHilight" alphaMode="ADD">
<Size>
<AbsDimension x="30" y="30"/>
</Size>
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</HighlightTexture>
</Button>
<Button name="CharacterSelectRotateRight">
<Size>
<AbsDimension x="50" y="50"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="CharacterSelectRotateLeft" relativePoint="RIGHT">
<Offset>
<AbsDimension x="-19" y="0"/>
</Offset>
</Anchor>
</Anchors>
<HitRectInsets>
<AbsInset left="13" right="13" top="10" bottom="13"/>
</HitRectInsets>
<Scripts>
<OnUpdate>
CharacterSelectRotateRight_OnUpdate();
</OnUpdate>
</Scripts>
<NormalTexture file="Interface\Glues\CharacterCreate\UI-RotationRight-Big-Up"/>
<PushedTexture file="Interface\Glues\CharacterCreate\UI-RotationRight-Big-Down"/>
<HighlightTexture file="Interface\Buttons\UI-Common-MouseHilight" alphaMode="ADD">
<Size>
<AbsDimension x="30" y="30"/>
</Size>
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</HighlightTexture>
</Button>
<Button name="CharacterSelectBackButton" inherits="GlueButtonSmallTemplate" text="BACK">
<Size>
<AbsDimension x="100" y="35"/>
</Size>
<Anchors>
<Anchor point="BOTTOMRIGHT">
<Offset>
<AbsDimension x="-30" y="25"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
CharacterSelect_Exit();
</OnClick>
</Scripts>
</Button>
<Button name="CharacterSelectAddonsButton" inherits="GlueButtonSmallTemplate" hidden="true" text="ADDONS">
<Size>
<AbsDimension x="100" y="35"/>
</Size>
<Anchors>
<Anchor point="BOTTOMLEFT">
<Offset>
<AbsDimension x="30" y="25"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<Texture name="$parentGlow" file="Interface\Glues\Common\Glue-Panel-Button-Glow" hidden="true" alphaMode="ADD">
<TexCoords left="0" right="0.578125" top="0" bottom="0.75"/>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnClick>
AddonList:Show();
</OnClick>
<OnUpdate>
GlueButtonMaster_OnUpdate(arg1);
</OnUpdate>
</Scripts>
</Button>
<Button name="CharacterSelectDeleteButton" inherits="GlueButtonSmallTemplate" text="DELETE_CHARACTER">
<Size>
<AbsDimension x="165" y="35"/>
</Size>
<Anchors>
<Anchor point="RIGHT" relativeTo="CharacterSelectBackButton" relativePoint="LEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
CharacterSelect_Delete();
</OnClick>
</Scripts>
</Button>
<Frame name="CharacterSelectCharacterFrame">
<Size>
<AbsDimension x="260" y="642"/>
</Size>
<Anchors>
<Anchor point="TOPRIGHT">
<Offset>
<AbsDimension x="-5" y="-15"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<FontString name="CharSelectRealmName" inherits="GlueFontDisableLarge">
<Size>
<AbsDimension x="256" y="13"/>
</Size>
<Anchors>
<Anchor point="TOP">
<Offset>
<AbsDimension x="0" y="-10"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Button name="CharSelectChangeRealmButton" inherits="GlueButtonSmallTemplate" text="CHANGE_REALM">
<Size>
<AbsDimension x="135" y="33"/>
</Size>
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectRealmName" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this:SetWidth(this:GetTextWidth() + 50);
</OnLoad>
<OnClick>
CharacterSelect_ChangeRealm();
</OnClick>
</Scripts>
</Button>
<Button name="CharSelectCharacterButton1" inherits="CharSelectCharacterButtonTemplate" id="1">
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="24" y="-65"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="CharSelectCharacterButton2" inherits="CharSelectCharacterButtonTemplate" id="2">
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectCharacterButton1" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="13"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="CharSelectCharacterButton3" inherits="CharSelectCharacterButtonTemplate" id="3">
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectCharacterButton2" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="13"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="CharSelectCharacterButton4" inherits="CharSelectCharacterButtonTemplate" id="4">
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectCharacterButton3" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="13"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="CharSelectCharacterButton5" inherits="CharSelectCharacterButtonTemplate" id="5">
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectCharacterButton4" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="13"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="CharSelectCharacterButton6" inherits="CharSelectCharacterButtonTemplate" id="6">
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectCharacterButton5" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="13"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="CharSelectCharacterButton7" inherits="CharSelectCharacterButtonTemplate" id="7">
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectCharacterButton6" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="13"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="CharSelectCharacterButton8" inherits="CharSelectCharacterButtonTemplate" id="8">
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectCharacterButton7" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="13"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="CharSelectCharacterButton9" inherits="CharSelectCharacterButtonTemplate" id="9">
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectCharacterButton8" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="13"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="CharSelectCharacterButton10" inherits="CharSelectCharacterButtonTemplate" id="10">
<Anchors>
<Anchor point="TOP" relativeTo="CharSelectCharacterButton9" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="13"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="CharSelectCreateCharacterButton" inherits="GlueButtonSmallTemplate" hidden="true" text="CREATE_NEW_CHARACTER">
<Size>
<AbsDimension x="200" y="45"/>
</Size>
<Anchors>
<Anchor point="BOTTOM">
<Offset>
<AbsDimension x="0" y="15"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
this:SetWidth(this:GetTextWidth() + 50);
</OnLoad>
<OnClick>
CharacterSelect_SelectCharacter(this:GetID());
</OnClick>
</Scripts>
</Button>
</Frames>
<Backdrop bgFile="Interface\Glues\Common\Glue-Tooltip-Background" edgeFile="Interface\Glues\Common\Glue-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="10" right="5" top="4" bottom="9"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="16"/>
</TileSize>
<EdgeSize>
<AbsValue val="16"/>
</EdgeSize>
</Backdrop>
</Frame>
</Frames>
<Scripts>
<OnMouseDown>
CharacterSelectFrame_OnMouseDown(arg1);
</OnMouseDown>
<OnMouseUp>
CharacterSelectFrame_OnMouseUp(arg1);
</OnMouseUp>
<OnUpdate>
CharacterSelectFrame_OnUpdate();
</OnUpdate>
</Scripts>
</Frame>
<Frame name="BillingWarningFrame" hidden="true">
<Layers>
<Layer level="ARTWORK">
<FontString name="BillingWarningText" inherits="GlueFontHighlight">
<Size>
<AbsDimension x="300" y="0"/>
</Size>
<Anchors>
<Anchor point="BOTTOM" relativeTo="CharacterSelect" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="200" y="120"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Button name="BillingWarningButton" inherits="GlueButtonTemplate" text="MANAGE_ACCOUNT">
<Anchors>
<Anchor point="BOTTOM" relativeTo="CharacterSelect" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="200" y="50"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
CharacterSelect_ManageAccount();
</OnClick>
</Scripts>
</Button>
</Frames>
</Frame>
<Frame name="GameRoomBillingFrame" hidden="true">
<Size>
<AbsDimension x="255" y="60"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="-120"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<FontString name="GameRoomBillingFrameText" inherits="GlueFontNormalSmall" justifyH="LEFT">
<Size>
<AbsDimension x="235" y="0"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="13" y="-10"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Backdrop bgFile="Interface\Glues\Common\Glue-Tooltip-Background" edgeFile="Interface\Glues\Common\Glue-Tooltip-Border" tile="true">
<BackgroundInsets>
<AbsInset left="10" right="5" top="4" bottom="9"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="16"/>
</TileSize>
<EdgeSize>
<AbsValue val="16"/>
</EdgeSize>
</Backdrop>
</Frame>
</Frames>
<Scripts>
<OnLoad>
CharacterSelect_OnLoad();
</OnLoad>
<OnShow>
CharacterSelect_OnShow();
</OnShow>
<OnHide>
CharacterSelect_OnHide();
</OnHide>
<OnChar>
CharacterSelect_OnChar();
</OnChar>
<OnKeyDown>
CharacterSelect_OnKeyDown();
</OnKeyDown>
<OnEvent>
CharacterSelect_OnEvent();
</OnEvent>
<OnUpdateModel>
CharacterSelect_UpdateModel();
</OnUpdateModel>
</Scripts>
</ModelFFX>
<Frame name="CharacterDeleteDialog" toplevel="true" parent="GlueParent" setAllPoints="true" enableMouse="true" enableKeyboard="true" frameStrata="DIALOG" hidden="true">
<Frames>
<Frame name="CharacterDeleteBackground">
<Size>
<AbsDimension x="512" y="256"/>
</Size>
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Backdrop bgFile="Interface\DialogFrame\UI-DialogBox-Background" edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true">
<BackgroundInsets>
<AbsInset left="11" right="12" top="12" bottom="11"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="32"/>
</TileSize>
<EdgeSize>
<AbsValue val="32"/>
</EdgeSize>
</Backdrop>
<Layers>
<Layer level="ARTWORK">
<FontString name="CharacterDeleteText1" inherits="GlueFontNormalLarge">
<Size>
<AbsDimension x="400" y="0"/>
</Size>
<Anchors>
<Anchor point="TOP">
<Offset>
<AbsDimension x="0" y="-16"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="CharacterDeleteText2" inherits="GlueFontNormalSmall" text="CONFIRM_CHAR_DELETE_INSTRUCTIONS">
<Size>
<AbsDimension x="400" y="0"/>
</Size>
<Anchors>
<Anchor point="TOP" relativeTo="CharacterDeleteText1" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="-20"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<Texture name="CharacterDeleteAlertIcon" file="Interface\DialogFrame\DialogAlertIcon">
<Size>
<AbsDimension x="64" y="64"/>
</Size>
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="12" y="4"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Frames>
<Button name="CharacterDeleteButton1" inherits="GlueDialogButtonTemplate" id="1" text="CONFIRM">
<Anchors>
<Anchor point="BOTTOMRIGHT" relativeTo="CharacterDeleteBackground" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="-6" y="16"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
DeleteCharacter(CharacterSelect.selectedIndex);
CharacterDeleteDialog:Hide();
PlaySound("gsTitleOptionOK");
</OnClick>
</Scripts>
</Button>
<Button name="CharacterDeleteButton2" inherits="GlueDialogButtonTemplate" id="2" text="CANCEL">
<Anchors>
<Anchor point="LEFT" relativeTo="CharacterDeleteButton1" relativePoint="RIGHT">
<Offset>
<AbsDimension x="13" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
CharacterDeleteDialog:Hide();
PlaySound("gsTitleOptionExit");
</OnClick>
</Scripts>
</Button>
</Frames>
</Frame>
<EditBox name="CharacterDeleteEditBox" letters="32" historyLines="1">
<Size>
<AbsDimension x="130" y="32"/>
</Size>
<Anchors>
<Anchor point="TOP" relativeTo="CharacterDeleteText2" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="-5"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture file="Interface\ChatFrame\UI-ChatInputBorder-Left">
<Size>
<AbsDimension x="75" y="32"/>
</Size>
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="-10" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0" right="0.29296875" top="0" bottom="1.0"/>
</Texture>
<Texture file="Interface\ChatFrame\UI-ChatInputBorder-Right">
<Size>
<AbsDimension x="75" y="32"/>
</Size>
<Anchors>
<Anchor point="RIGHT">
<Offset>
<AbsDimension x="10" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.70703125" right="1.0" top="0" bottom="1.0"/>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnTextChanged>
if ( strupper(this:GetText()) == strupper(DELETE_CONFIRM_STRING) ) then
CharacterDeleteButton1:Enable();
else
CharacterDeleteButton1:Disable();
end
</OnTextChanged>
<OnEnterPressed>
if ( CharacterDeleteButton1:IsEnabled() == 1 ) then
DeleteCharacter(CharacterSelect.selectedIndex);
CharacterDeleteDialog:Hide();
end
</OnEnterPressed>
<OnEscapePressed>
CharacterDeleteDialog:Hide();
</OnEscapePressed>
</Scripts>
<FontString inherits="GlueFontHighlight"/>
</EditBox>
</Frames>
<Scripts>
<OnShow>
this:Raise();
CharacterDeleteDialog_OnShow();
</OnShow>
<OnHide>
CharacterDeleteEditBox:SetText("");
</OnHide>
</Scripts>
</Frame>
<Frame name="CharacterRenameDialog" toplevel="true" parent="GlueParent" setAllPoints="true" enableMouse="true" enableKeyboard="true" frameStrata="DIALOG" hidden="true">
<Frames>
<Frame name="CharacterRenameBackground">
<Size>
<AbsDimension x="512" y="256"/>
</Size>
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Backdrop bgFile="Interface\DialogFrame\UI-DialogBox-Background" edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true">
<BackgroundInsets>
<AbsInset left="11" right="12" top="12" bottom="11"/>
</BackgroundInsets>
<TileSize>
<AbsValue val="32"/>
</TileSize>
<EdgeSize>
<AbsValue val="32"/>
</EdgeSize>
</Backdrop>
<Layers>
<Layer level="ARTWORK">
<FontString name="CharacterRenameText1" inherits="GlueFontNormalLarge" text="CHAR_RENAME_DESCRIPTION">
<Size>
<AbsDimension x="400" y="0"/>
</Size>
<Anchors>
<Anchor point="TOP">
<Offset>
<AbsDimension x="0" y="-16"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="CharacterRenameText2" inherits="GlueFontNormalSmall" text="CHAR_RENAME_INSTRUCTIONS">
<Size>
<AbsDimension x="400" y="0"/>
</Size>
<Anchors>
<Anchor point="TOP" relativeTo="CharacterRenameText1" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="-20"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<Texture name="CharacterRenameAlertIcon" file="Interface\DialogFrame\DialogAlertIcon">
<Size>
<AbsDimension x="64" y="64"/>
</Size>
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="12" y="4"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
<Frames>
<Button name="CharacterRenameButton1" inherits="GlueDialogButtonTemplate" id="1" text="CONFIRM">
<Anchors>
<Anchor point="BOTTOMRIGHT" relativeTo="CharacterRenameBackground" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="-6" y="16"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
if ( RenameCharacter(CharacterSelect.selectedIndex, CharacterRenameEditBox:GetText()) ) then
CharacterRenameDialog:Hide();
end
</OnClick>
</Scripts>
</Button>
<Button name="CharacterRenameButton2" inherits="GlueDialogButtonTemplate" id="2" text="CANCEL">
<Anchors>
<Anchor point="LEFT" relativeTo="CharacterRenameButton1" relativePoint="RIGHT">
<Offset>
<AbsDimension x="13" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
CharacterRenameDialog:Hide();
</OnClick>
</Scripts>
</Button>
</Frames>
</Frame>
<EditBox name="CharacterRenameEditBox" letters="12" historyLines="1">
<Size>
<AbsDimension x="130" y="32"/>
</Size>
<Anchors>
<Anchor point="TOP" relativeTo="CharacterRenameText2" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="-5"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture file="Interface\ChatFrame\UI-ChatInputBorder-Left">
<Size>
<AbsDimension x="75" y="32"/>
</Size>
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="-10" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0" right="0.29296875" top="0" bottom="1.0"/>
</Texture>
<Texture file="Interface\ChatFrame\UI-ChatInputBorder-Right">
<Size>
<AbsDimension x="75" y="32"/>
</Size>
<Anchors>
<Anchor point="RIGHT">
<Offset>
<AbsDimension x="10" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.70703125" right="1.0" top="0" bottom="1.0"/>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnEnterPressed>
if ( RenameCharacter(CharacterSelect.selectedIndex, CharacterRenameEditBox:GetText()) ) then
CharacterRenameDialog:Hide();
end
</OnEnterPressed>
<OnEscapePressed>
CharacterRenameDialog:Hide();
</OnEscapePressed>
</Scripts>
<FontString inherits="GlueFontHighlight"/>
</EditBox>
</Frames>
<Scripts>
<OnShow>
this:Raise();
</OnShow>
<OnHide>
CharacterRenameEditBox:SetText("");
</OnHide>
</Scripts>
</Frame>
</Ui>