Add account manager, character reordering, and glue Lua console
Three features layered onto the Turtle WoW baseline: - Account manager (AccountLogin.lua / .xml): saved-account list backed by Windows Credential Manager via ClassicAPI. Pass-through to LoginWithSavedAccount; per-account 'last used' timestamp; password field hides itself when the typed name matches a saved entry and a 'Change password' button reveals it on demand. - Character reordering (CharacterSelect.lua / .xml): drag-to-reorder the character list, persisted via ClassicAPI's GetSavedCharacterOrder / SetSavedCharacterOrder. - Glue Lua console (GlueConsole.lua / .xml, new files): in-glue RunScript console reachable from the title and char-select screens. Currently no key opens the console — the backtick binding was removed pending a ClassicAPI EditBox arrow/key script handler (see TODO.md section 96).
This commit is contained in:
+60
-24
@@ -56,6 +56,12 @@
|
||||
<OnDoubleClick>
|
||||
CharacterSelectButton_OnDoubleClick();
|
||||
</OnDoubleClick>
|
||||
<OnMouseDown>
|
||||
CharacterSelectButton_OnMouseDown();
|
||||
</OnMouseDown>
|
||||
<OnMouseUp>
|
||||
CharacterSelectButton_OnMouseUp();
|
||||
</OnMouseUp>
|
||||
</Scripts>
|
||||
<HighlightTexture file="Interface\Glues\CharacterSelect\Glue-CharacterSelect-Highlight" alphaMode="ADD">
|
||||
<Size>
|
||||
@@ -119,16 +125,52 @@
|
||||
CharacterSelect_EnterWorld();
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
<NormalText>
|
||||
<Anchors>
|
||||
<Anchor point="CENTER">
|
||||
<Offset>
|
||||
<AbsDimension x="-1" y="3"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</NormalText>
|
||||
</Button>
|
||||
<CheckButton name="AutologinSaveCharacterButton">
|
||||
<Size>
|
||||
<AbsDimension x="20" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="CharSelectEnterWorldButton" relativePoint="RIGHT"/>
|
||||
</Anchors>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<FontString inherits="GlueFontNormalSmall" text="Auto-login this character">
|
||||
<Anchors>
|
||||
<Anchor point="LEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="24" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<FontHeight>
|
||||
<AbsValue val="10"/>
|
||||
</FontHeight>
|
||||
<Shadow>
|
||||
<Offset>
|
||||
<AbsDimension x="1" y="-1"/>
|
||||
</Offset>
|
||||
<Color r="0" g="0" b="0"/>
|
||||
</Shadow>
|
||||
<Color r="1.0" g="0.78" b="0"/>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
if ( this:GetChecked() ) then
|
||||
PlaySound("igMainMenuOptionCheckBoxOff");
|
||||
else
|
||||
PlaySound("igMainMenuOptionCheckBoxOn");
|
||||
end
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
|
||||
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
|
||||
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
|
||||
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
|
||||
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
|
||||
</CheckButton>
|
||||
<Button name="CharacterSelectRotateLeft">
|
||||
<Size>
|
||||
<AbsDimension x="50" y="50"/>
|
||||
@@ -601,7 +643,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="LEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="12" y="4"/>
|
||||
<AbsDimension x="12" y="10"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -609,7 +651,7 @@
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Frames>
|
||||
<Button name="CharacterDeleteButton1" inherits="GlueDialogButtonTemplate" id="1" text="CONFIRM">
|
||||
<Button name="CharacterDeleteButton1" inherits="GlueDialogButtonTemplate" id="1" text="OKAY">
|
||||
<Anchors>
|
||||
<Anchor point="BOTTOMRIGHT" relativeTo="CharacterDeleteBackground" relativePoint="BOTTOM">
|
||||
<Offset>
|
||||
@@ -619,8 +661,7 @@
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
DeleteCharacter(CharacterSelect.selectedIndex);
|
||||
CharacterDeleteDialog:Hide();
|
||||
CharacterSelect_DeleteCharacter();
|
||||
PlaySound("gsTitleOptionOK");
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
@@ -690,11 +731,10 @@
|
||||
else
|
||||
CharacterDeleteButton1:Disable();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</OnTextChanged>
|
||||
<OnEnterPressed>
|
||||
if ( CharacterDeleteButton1:IsEnabled() == 1 ) then
|
||||
DeleteCharacter(CharacterSelect.selectedIndex);
|
||||
CharacterDeleteDialog:Hide();
|
||||
CharacterSelect_DeleteCharacter();
|
||||
end
|
||||
</OnEnterPressed>
|
||||
<OnEscapePressed>
|
||||
@@ -771,7 +811,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="LEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="12" y="4"/>
|
||||
<AbsDimension x="12" y="10"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -779,7 +819,7 @@
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Frames>
|
||||
<Button name="CharacterRenameButton1" inherits="GlueDialogButtonTemplate" id="1" text="CONFIRM">
|
||||
<Button name="CharacterRenameButton1" inherits="GlueDialogButtonTemplate" id="1" text="OKAY">
|
||||
<Anchors>
|
||||
<Anchor point="BOTTOMRIGHT" relativeTo="CharacterRenameBackground" relativePoint="BOTTOM">
|
||||
<Offset>
|
||||
@@ -789,9 +829,7 @@
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
if ( RenameCharacter(CharacterSelect.selectedIndex, CharacterRenameEditBox:GetText()) ) then
|
||||
CharacterRenameDialog:Hide();
|
||||
end
|
||||
CharacterSelect_RenameCharacter();
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
@@ -854,9 +892,7 @@
|
||||
</Layers>
|
||||
<Scripts>
|
||||
<OnEnterPressed>
|
||||
if ( RenameCharacter(CharacterSelect.selectedIndex, CharacterRenameEditBox:GetText()) ) then
|
||||
CharacterRenameDialog:Hide();
|
||||
end
|
||||
CharacterSelect_RenameCharacter();
|
||||
</OnEnterPressed>
|
||||
<OnEscapePressed>
|
||||
CharacterRenameDialog:Hide();
|
||||
|
||||
Reference in New Issue
Block a user