diff --git a/OpenRA.Game/GameRules/Settings.cs b/OpenRA.Game/GameRules/Settings.cs
index a5f6f8fb29..2539baddd5 100644
--- a/OpenRA.Game/GameRules/Settings.cs
+++ b/OpenRA.Game/GameRules/Settings.cs
@@ -129,7 +129,6 @@ namespace OpenRA.GameRules
{
public string[] Mods = { "ra" };
- public bool TeamChatToggle = false;
public bool ShowShellmap = true;
public bool ViewportEdgeScroll = true;
diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj
index a60f54b7d9..108f137b14 100644
--- a/OpenRA.Game/OpenRA.Game.csproj
+++ b/OpenRA.Game/OpenRA.Game.csproj
@@ -185,7 +185,6 @@
-
diff --git a/OpenRA.Game/Widgets/ChatDisplayWidget.cs b/OpenRA.Game/Widgets/ChatDisplayWidget.cs
index 9daf5e2139..163b6dc6a2 100644
--- a/OpenRA.Game/Widgets/ChatDisplayWidget.cs
+++ b/OpenRA.Game/Widgets/ChatDisplayWidget.cs
@@ -8,6 +8,7 @@
*/
#endregion
+using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
@@ -18,10 +19,9 @@ namespace OpenRA.Widgets
{
public readonly int RemoveTime = 0;
public readonly bool UseContrast = false;
+ public string Notification = "";
const int logLength = 9;
- public string Notification = "";
- public bool DrawBackground = true;
int ticksUntilRemove = 0;
internal List recentLines = new List();
@@ -35,13 +35,9 @@ namespace OpenRA.Widgets
{
var pos = RenderOrigin;
var chatLogArea = new Rectangle(pos.X, pos.Y, Bounds.Width, Bounds.Height);
- var chatpos = new int2(chatLogArea.X + 10, chatLogArea.Bottom - 6);
-
- if (DrawBackground)
- WidgetUtils.DrawPanel("dialog3", chatLogArea);
+ var chatpos = new int2(chatLogArea.X + 5, chatLogArea.Bottom - 5);
var font = Game.Renderer.Fonts["Regular"];
-
Game.Renderer.EnableScissor(chatLogArea.Left, chatLogArea.Top, chatLogArea.Width, chatLogArea.Height);
foreach (var line in recentLines.AsEnumerable().Reverse())
@@ -52,12 +48,14 @@ namespace OpenRA.Widgets
if (!string.IsNullOrEmpty(line.Owner))
{
owner = line.Owner + ":";
- inset = font.Measure(owner).X + 10;
+ inset = font.Measure(owner).X + 5;
}
- var text = WidgetUtils.WrapText(line.Text, chatLogArea.Width - inset, font);
- var textLines = text.Split(new[] { '\n' }).Count();
- chatpos.Y -= 20 * textLines;
+ var text = WidgetUtils.WrapText(line.Text, chatLogArea.Width - inset - 6, font);
+ chatpos.Y -= Math.Max(15, font.Measure(text).Y) + 5;
+
+ if (chatpos.Y < pos.Y)
+ break;
if (owner != null)
{
@@ -80,12 +78,14 @@ namespace OpenRA.Widgets
if (Notification != null)
Sound.Play(Notification);
- while (recentLines.Count > logLength) recentLines.RemoveAt(0);
+ while (recentLines.Count > logLength)
+ recentLines.RemoveAt(0);
}
public void RemoveLine()
{
- if (recentLines.Count > 0) recentLines.RemoveAt(0);
+ if (recentLines.Count > 0)
+ recentLines.RemoveAt(0);
}
public void ClearChat()
@@ -95,8 +95,12 @@ namespace OpenRA.Widgets
public override void Tick()
{
- if (RemoveTime == 0) return;
- if (--ticksUntilRemove > 0) return;
+ if (RemoveTime == 0)
+ return;
+
+ if (--ticksUntilRemove > 0)
+ return;
+
ticksUntilRemove = RemoveTime;
RemoveLine();
}
diff --git a/OpenRA.Game/Widgets/ChatEntryWidget.cs b/OpenRA.Game/Widgets/ChatEntryWidget.cs
deleted file mode 100755
index 19c1f0e196..0000000000
--- a/OpenRA.Game/Widgets/ChatEntryWidget.cs
+++ /dev/null
@@ -1,107 +0,0 @@
-#region Copyright & License Information
-/*
- * Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
- * This file is part of OpenRA, which is free software. It is made
- * available to you under the terms of the GNU General Public License
- * as published by the Free Software Foundation. For more information,
- * see COPYING.
- */
-#endregion
-
-using System.Drawing;
-using OpenRA.Network;
-
-namespace OpenRA.Widgets
-{
- // a dirty hack of a widget, which likes to steal the focus when \r is pressed, and then
- // refuse to give it up until \r is pressed again.
-
- public class ChatEntryWidget : Widget
- {
- string content = "";
- bool composing = false;
- bool teamChat = false;
- public readonly bool UseContrast = false;
-
- readonly OrderManager orderManager;
-
- [ObjectCreator.UseCtor]
- internal ChatEntryWidget( OrderManager orderManager )
- {
- this.orderManager = orderManager;
- }
-
- public override void Draw()
- {
- if (composing)
- {
- var text = teamChat ? "Chat (Team): " : "Chat (All): ";
- var w = Game.Renderer.Fonts["Bold"].Measure(text).X;
-
- Game.Renderer.Fonts["Bold"].DrawTextWithContrast(text, RenderOrigin + new float2(3, 7), Color.White, Color.Black, UseContrast ? 1 : 0);
- Game.Renderer.Fonts["Regular"].DrawTextWithContrast(content, RenderOrigin + new float2(3 + w, 7), Color.White, Color.Black, UseContrast ? 1 : 0);
- }
- }
-
- public override Rectangle EventBounds { get { return Rectangle.Empty; } }
-
- public override bool HandleKeyPress(KeyInput e)
- {
- if (e.Event == KeyInputEvent.Up) return false;
-
- if (e.Key == Keycode.RETURN || e.Key == Keycode.KP_ENTER)
- {
- if (composing)
- {
- if (e.Modifiers.HasModifier(Modifiers.Shift))
- {
- teamChat ^= true;
- return true;
- }
-
- composing = false;
- if (content != "")
- orderManager.IssueOrder(Order.Chat(teamChat, content));
- content = "";
-
- YieldKeyboardFocus();
- return true;
- }
- else
- {
- TakeKeyboardFocus();
- composing = true;
- teamChat = (Game.Settings.Game.TeamChatToggle && teamChat)
- ^ e.Modifiers.HasModifier(Modifiers.Shift);
- return true;
- }
- }
-
- if (composing)
- {
- if (e.Key == Keycode.ESCAPE)
- {
- composing = false;
- content = "";
- YieldKeyboardFocus();
- return true;
- }
- else if (e.Key == Keycode.BACKSPACE)
- {
- if (content.Length > 0)
- content = content.Remove(content.Length - 1);
- return true;
- }
- else if (e.IsValidInput())
- {
- content += e.UnicodeChar.ToString();
- return true;
- }
-
- return false;
- }
-
- return false;
- }
- }
-}
diff --git a/OpenRA.Game/Widgets/ScrollPanelWidget.cs b/OpenRA.Game/Widgets/ScrollPanelWidget.cs
index e4308bf4e5..909ba00690 100644
--- a/OpenRA.Game/Widgets/ScrollPanelWidget.cs
+++ b/OpenRA.Game/Widgets/ScrollPanelWidget.cs
@@ -18,6 +18,8 @@ namespace OpenRA.Widgets
{
public interface ILayout { void AdjustChild(Widget w); void AdjustChildren(); }
+ public enum ScrollPanelAlign { Bottom, Top }
+
public class ScrollPanelWidget : Widget
{
public int ScrollbarWidth = 24;
@@ -28,6 +30,7 @@ namespace OpenRA.Widgets
public int ContentHeight = 0;
public ILayout Layout;
public int MinimumThumbSize = 10;
+ public ScrollPanelAlign Align = ScrollPanelAlign.Top;
protected float ListOffset = 0;
protected bool UpPressed = false;
protected bool DownPressed = false;
@@ -135,12 +138,15 @@ namespace OpenRA.Widgets
public void ScrollToBottom()
{
- ListOffset = Math.Min(0,Bounds.Height - ContentHeight);
+ ListOffset = Align == ScrollPanelAlign.Top ?
+ Math.Min(0, Bounds.Height - ContentHeight) :
+ Bounds.Height - ContentHeight;
}
public void ScrollToTop()
{
- ListOffset = 0;
+ ListOffset = Align == ScrollPanelAlign.Top ? 0 :
+ Math.Max(0, Bounds.Height - ContentHeight);
}
public bool ScrolledToBottom
diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs
index 75f77f6f2c..181e1e7cb9 100644
--- a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs
+++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs
@@ -35,17 +35,6 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
() => world.OrderGenerator is T ? icon + "-active" : icon;
}
- void AddChatLine(Color c, string from, string text)
- {
- ingameRoot.Get("CHAT_DISPLAY").AddLine(c, from, text);
- }
-
- void UnregisterEvents()
- {
- Game.AddChatLine -= AddChatLine;
- Game.BeforeGameStart -= UnregisterEvents;
- }
-
[ObjectCreator.UseCtor]
public CncIngameChromeLogic(Widget widget, World world)
{
@@ -53,9 +42,6 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
world.WorldActor.Trait()
.Fade(CncMenuPaletteEffect.EffectType.None);
- Game.AddChatLine += AddChatLine;
- Game.BeforeGameStart += UnregisterEvents;
-
ingameRoot = widget.Get("INGAME_ROOT");
var playerRoot = ingameRoot.Get("PLAYER_ROOT");
@@ -64,6 +50,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
InitObserverWidgets(world, playerRoot);
else
InitPlayerWidgets(world, playerRoot);
+
+ Game.LoadWidget(world, "CHAT_PANEL", playerRoot, new WidgetArgs());
}
public void OptionsClicked()
diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs
index abda62714f..66dbf85ffe 100644
--- a/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs
+++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs
@@ -153,10 +153,6 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
mouseScrollDropdown.OnMouseDown = _ => ShowMouseScrollDropdown(mouseScrollDropdown, gameSettings);
mouseScrollDropdown.GetText = () => gameSettings.MouseScroll.ToString();
- var teamchatCheckbox = inputPane.Get("TEAMCHAT_CHECKBOX");
- teamchatCheckbox.IsChecked = () => gameSettings.TeamChatToggle;
- teamchatCheckbox.OnClick = () => gameSettings.TeamChatToggle ^= true;
-
panel.Get("BACK_BUTTON").OnClick = () =>
{
playerSettings.Name = nameTextfield.Text;
diff --git a/OpenRA.Mods.RA/Widgets/Logic/IngameChatLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/IngameChatLogic.cs
index 7c40bc2382..d61d5768ef 100644
--- a/OpenRA.Mods.RA/Widgets/Logic/IngameChatLogic.cs
+++ b/OpenRA.Mods.RA/Widgets/Logic/IngameChatLogic.cs
@@ -10,71 +10,65 @@
using System;
using System.Drawing;
-using OpenRA.Widgets;
using OpenRA.Network;
+using OpenRA.Widgets;
namespace OpenRA.Mods.RA.Widgets.Logic
{
public class IngameChatLogic
{
- internal World World;
- internal readonly ContainerWidget ChatOverlay;
- internal readonly ChatDisplayWidget ChatOverlayDisplay;
+ readonly ContainerWidget chatOverlay;
+ readonly ChatDisplayWidget chatOverlayDisplay;
+ readonly ContainerWidget chatChrome;
+ readonly ScrollPanelWidget chatScrollPanel;
+ readonly ContainerWidget chatTemplate;
+ readonly TextFieldWidget chatText;
- internal readonly ContainerWidget ChatChrome;
- internal readonly ScrollPanelWidget ChatScrollPanel;
- internal readonly ContainerWidget ChatTemplate;
- internal readonly TextFieldWidget ChatText;
-
- private bool teamChat = false;
- internal bool TeamChat
- {
- get { return World.LocalPlayer == null ? false : teamChat; }
- set { teamChat = value; }
- }
+ bool teamChat;
[ObjectCreator.UseCtor]
public IngameChatLogic(Widget widget, OrderManager orderManager, World world)
{
- World = world;
- var chatPanel = (ContainerWidget) widget;
+ teamChat = world.LocalPlayer != null;
+ var chatPanel = (ContainerWidget)widget;
+ chatOverlay = chatPanel.Get("CHAT_OVERLAY");
+ chatOverlayDisplay = chatOverlay.Get("CHAT_DISPLAY");
+ chatOverlay.Visible = false;
- ChatOverlay = chatPanel.Get("CHAT_OVERLAY");
- ChatOverlayDisplay = ChatOverlay.Get("CHAT_DISPLAY");
- ChatOverlay.Visible = false;
+ chatChrome = chatPanel.Get("CHAT_CHROME");
+ chatChrome.Visible = true;
- ChatChrome = chatPanel.Get("CHAT_CHROME");
- ChatChrome.Visible = true;
+ var chatMode = chatChrome.Get("CHAT_MODE");
+ chatMode.GetText = () => teamChat ? "Team" : "All";
+ chatMode.OnClick = () => teamChat ^= true;
+ chatMode.IsDisabled = () => world.LocalPlayer == null;
- var chatMode = ChatChrome.Get("CHAT_MODE");
- chatMode.GetText = () => TeamChat ? "Team" : "All";
- chatMode.OnClick = () => TeamChat = !TeamChat;
-
- ChatText = ChatChrome.Get("CHAT_TEXTFIELD");
- ChatText.OnTabKey = () => { TeamChat = !TeamChat; return true; };
- ChatText.OnEnterKey = () =>
+ chatText = chatChrome.Get("CHAT_TEXTFIELD");
+ chatText.OnTabKey = () => { teamChat ^= true; return true; };
+ chatText.OnEnterKey = () =>
{
- ChatText.Text = ChatText.Text.Trim();
- if (ChatText.Text != "")
- orderManager.IssueOrder(Order.Chat(TeamChat, ChatText.Text));
+ var team = teamChat && world.LocalPlayer != null;
+ if (chatText.Text != "")
+ orderManager.IssueOrder(Order.Chat(team, chatText.Text.Trim()));
+
CloseChat();
return true;
};
- ChatText.OnEscKey = () => {CloseChat(); return true; };
- var chatClose = ChatChrome.Get("CHAT_CLOSE");
+ chatText.OnEscKey = () => { CloseChat(); return true; };
+
+ var chatClose = chatChrome.Get("CHAT_CLOSE");
chatClose.OnClick += () => CloseChat();
chatPanel.OnKeyPress = (e) =>
{
- if (e.Event == KeyInputEvent.Up) return false;
- if (!IsOpen && (e.Key == Keycode.RETURN || e.Key == Keycode.KP_ENTER))
+ if (e.Event == KeyInputEvent.Up)
+ return false;
+
+ if (!chatChrome.IsVisible() && (e.Key == Keycode.RETURN || e.Key == Keycode.KP_ENTER))
{
- var shift = e.Modifiers.HasModifier(Modifiers.Shift);
- var toggle = Game.Settings.Game.TeamChatToggle ;
- TeamChat = (!toggle && shift) || ( toggle && (TeamChat ^ shift) );
OpenChat();
return true;
}
@@ -82,14 +76,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
return false;
};
- ChatScrollPanel = ChatChrome.Get("CHAT_SCROLLPANEL");
- ChatTemplate = ChatScrollPanel.Get("CHAT_TEMPLATE");
+ chatScrollPanel = chatChrome.Get("CHAT_SCROLLPANEL");
+ chatTemplate = chatScrollPanel.Get("CHAT_TEMPLATE");
+ chatScrollPanel.RemoveChildren();
Game.AddChatLine += AddChatLine;
Game.BeforeGameStart += UnregisterEvents;
CloseChat();
- ChatOverlayDisplay.AddLine(Color.White, null, "Use RETURN key to open chat window...");
}
void UnregisterEvents()
@@ -100,33 +94,32 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public void OpenChat()
{
- ChatText.Text = "";
- ChatOverlay.Visible = false;
- ChatChrome.Visible = true;
- ChatText.TakeKeyboardFocus();
+ chatText.Text = "";
+ chatOverlay.Visible = false;
+ chatChrome.Visible = true;
+ chatScrollPanel.ScrollToBottom();
+ chatText.TakeKeyboardFocus();
}
public void CloseChat()
{
- ChatOverlay.Visible = true;
- ChatChrome.Visible = false;
- ChatText.YieldKeyboardFocus();
+ chatOverlay.Visible = true;
+ chatChrome.Visible = false;
+ chatText.YieldKeyboardFocus();
}
- public bool IsOpen { get { return ChatChrome.IsVisible(); } }
-
public void AddChatLine(Color c, string from, string text)
{
+ chatOverlayDisplay.AddLine(c, from, text);
- ChatOverlayDisplay.AddLine(c, from, text);
-
- var template = ChatTemplate.Clone();
+ var template = chatTemplate.Clone();
var nameLabel = template.Get("NAME");
var textLabel = template.Get("TEXT");
var name = "";
if (!string.IsNullOrEmpty(from))
name = from + ":";
+
var font = Game.Renderer.Fonts[nameLabel.Font];
var nameSize = font.Measure(from);
@@ -146,10 +139,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
template.Bounds.Height += dh;
}
- ChatScrollPanel.AddChild(template);
- ChatScrollPanel.ScrollToBottom();
+ chatScrollPanel.AddChild(template);
+ chatScrollPanel.ScrollToBottom();
Sound.PlayNotification(null, "Sounds", "ChatLine", null);
}
}
-}
-
+}
\ No newline at end of file
diff --git a/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs
index 4c22d7bebb..e24d0cc975 100644
--- a/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs
+++ b/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs
@@ -65,10 +65,6 @@ namespace OpenRA.Mods.RA.Widgets.Logic
inversescroll.IsChecked = () => Game.Settings.Game.MouseScroll == MouseScrollType.Inverted;
inversescroll.OnClick = () => Game.Settings.Game.MouseScroll = (Game.Settings.Game.MouseScroll == MouseScrollType.Inverted) ? MouseScrollType.Standard : MouseScrollType.Inverted;
- var teamchatCheckbox = general.Get("TEAMCHAT_TOGGLE");
- teamchatCheckbox.IsChecked = () => Game.Settings.Game.TeamChatToggle;
- teamchatCheckbox.OnClick = () => Game.Settings.Game.TeamChatToggle ^= true;
-
var showShellmapCheckbox = general.Get("SHOW_SHELLMAP");
showShellmapCheckbox.IsChecked = () => Game.Settings.Game.ShowShellmap;
showShellmapCheckbox.OnClick = () => Game.Settings.Game.ShowShellmap ^= true;
diff --git a/mods/cnc/chrome/ingame-chat.yaml b/mods/cnc/chrome/ingame-chat.yaml
new file mode 100644
index 0000000000..ce6b1e1c1f
--- /dev/null
+++ b/mods/cnc/chrome/ingame-chat.yaml
@@ -0,0 +1,66 @@
+Container@CHAT_PANEL:
+ X:(WINDOW_RIGHT - WIDTH) / 2
+ Y:WINDOW_BOTTOM - HEIGHT - 15
+ Width:550
+ Height:194
+ Logic:IngameChatLogic
+ Children:
+ Container@CHAT_OVERLAY:
+ Width:PARENT_RIGHT-24
+ Height:PARENT_BOTTOM-25
+ Visible:false
+ Children:
+ ChatDisplay@CHAT_DISPLAY:
+ Width:PARENT_RIGHT
+ Height:PARENT_BOTTOM
+ RemoveTime:250
+ UseContrast: yes
+ Container@CHAT_CHROME:
+ Width:PARENT_RIGHT
+ Height:PARENT_BOTTOM
+ Children:
+ Button@CHAT_MODE:
+ Y:PARENT_BOTTOM - HEIGHT
+ Width:50
+ Height:25
+ Text:Team
+ Font:Bold
+ TextField@CHAT_TEXTFIELD:
+ X:55
+ Y:PARENT_BOTTOM - HEIGHT
+ Width:466
+ Height:25
+ Button@CHAT_CLOSE:
+ X:526
+ Y:PARENT_BOTTOM - HEIGHT
+ Width:24
+ Height:25
+ Children:
+ Image:
+ ImageCollection:lobby-bits
+ ImageName:kick
+ X:6
+ Y:8
+ ScrollPanel@CHAT_SCROLLPANEL:
+ Y:PARENT_BOTTOM - HEIGHT - 30
+ Width:550
+ Height:164
+ ItemSpacing:4
+ Align:Bottom
+ Children:
+ Container@CHAT_TEMPLATE:
+ X:2
+ Width:PARENT_RIGHT-27
+ Height:16
+ Children:
+ Label@NAME:
+ X:3
+ Width:50
+ Height:15
+ VAlign:Top
+ Label@TEXT:
+ X:12
+ Width:PARENT_RIGHT - 17
+ Height:15
+ WordWrap:true
+ VAlign:Top
diff --git a/mods/cnc/chrome/ingame.yaml b/mods/cnc/chrome/ingame.yaml
index 23645383f4..3533a7f621 100644
--- a/mods/cnc/chrome/ingame.yaml
+++ b/mods/cnc/chrome/ingame.yaml
@@ -7,21 +7,6 @@ Container@INGAME_ROOT:
StrategicProgress@STRATEGIC_PROGRESS:
X: WINDOW_RIGHT/2
Y: 40
- ChatDisplay@CHAT_DISPLAY:
- X:250
- Y:WINDOW_BOTTOM - HEIGHT - 30
- Width: 760
- Height: 200
- DrawBackground: False
- RemoveTime:250
- UseContrast: yes
- Notification: scold1.aud
- ChatEntry@CHAT_ENTRY:
- X:250
- Y:WINDOW_BOTTOM - HEIGHT
- Width: 760
- Height: 30
- UseContrast: yes
Container@PERFORMANCE_INFO:
Logic:PerfDebugLogic
Children:
diff --git a/mods/cnc/chrome/settings.yaml b/mods/cnc/chrome/settings.yaml
index 58226a5550..7b3b7097d6 100644
--- a/mods/cnc/chrome/settings.yaml
+++ b/mods/cnc/chrome/settings.yaml
@@ -293,20 +293,6 @@ Container@SETTINGS_PANEL:
Height:25
Font:Regular
Text:Enabled
- Label@KEYBOARD_TITLE:
- X:375
- Y:20
- Width:340
- Font:Bold
- Text:Keyboard Input
- Align:Center
- Checkbox@TEAMCHAT_CHECKBOX:
- X:375
- Y:35
- Width:240
- Height:20
- Font:Regular
- Text:Shift-Enter Toggles Team Chat
Button@GENERAL_BUTTON:
Y:319
Width:140
diff --git a/mods/cnc/mod.yaml b/mods/cnc/mod.yaml
index 5779f2d1ac..acc99f5a70 100644
--- a/mods/cnc/mod.yaml
+++ b/mods/cnc/mod.yaml
@@ -76,6 +76,7 @@ ChromeLayout:
mods/cnc/chrome/mapchooser.yaml
mods/cnc/chrome/replaybrowser.yaml
mods/cnc/chrome/ingame.yaml
+ mods/cnc/chrome/ingame-chat.yaml
mods/cnc/chrome/ingamemenu.yaml
mods/cnc/chrome/music.yaml
mods/cnc/chrome/modchooser.yaml
diff --git a/mods/ra/chrome/ingame-chat.yaml b/mods/ra/chrome/ingame-chat.yaml
index f2f987bad9..72e197c01b 100644
--- a/mods/ra/chrome/ingame-chat.yaml
+++ b/mods/ra/chrome/ingame-chat.yaml
@@ -2,59 +2,50 @@ Container@CHAT_PANEL:
X:(WINDOW_RIGHT - WIDTH) / 2
Y:WINDOW_BOTTOM - HEIGHT - 15
Width:550
- Height:180
+ Height:194
Logic:IngameChatLogic
Children:
Container@CHAT_OVERLAY:
- X:0
- Y:0
- Width:PARENT_RIGHT
- Height:PARENT_BOTTOM-30
- Visible: false
+ Width:PARENT_RIGHT-24
+ Height:PARENT_BOTTOM-25
+ Visible:false
Children:
ChatDisplay@CHAT_DISPLAY:
- X:0
- Y:0
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM
- DrawBackground: False
+ Width:PARENT_RIGHT
+ Height:PARENT_BOTTOM
RemoveTime:250
UseContrast: yes
Container@CHAT_CHROME:
- X:0
- Y:0
Width:PARENT_RIGHT
Height:PARENT_BOTTOM
Children:
Button@CHAT_MODE:
- X:0
Y:PARENT_BOTTOM - HEIGHT
- Width: 50
- Height: 25
- Text: Team
- Font: Bold
+ Width:50
+ Height:25
+ Text:Team
+ Font:Bold
TextField@CHAT_TEXTFIELD:
X:55
Y:PARENT_BOTTOM - HEIGHT
- Width:465
+ Width:466
Height:25
Button@CHAT_CLOSE:
- X:525
+ X:526
Y:PARENT_BOTTOM - HEIGHT
- Width: 25
- Height: 25
- Text: X
- Font: Bold
+ Width:24
+ Height:25
+ Text:X
+ Font:Bold
ScrollPanel@CHAT_SCROLLPANEL:
- X:0
Y:PARENT_BOTTOM - HEIGHT - 30
Width:550
- Height:150
- ItemSpacing:1
+ Height:164
+ ItemSpacing:4
+ Align:Bottom
Children:
Container@CHAT_TEMPLATE:
X:2
- Y:0
Width:PARENT_RIGHT-27
Height:16
Children:
@@ -64,8 +55,8 @@ Container@CHAT_PANEL:
Height:15
VAlign:Top
Label@TEXT:
- X:10
- Width:PARENT_RIGHT - 60
+ X:12
+ Width:PARENT_RIGHT - 17
Height:15
WordWrap:true
VAlign:Top
diff --git a/mods/ra/chrome/settings.yaml b/mods/ra/chrome/settings.yaml
index 1b3650f255..90e404c518 100644
--- a/mods/ra/chrome/settings.yaml
+++ b/mods/ra/chrome/settings.yaml
@@ -104,12 +104,6 @@ Background@SETTINGS_MENU:
Width:200
Height:20
Text: Invert Mouse Drag Scrolling
- Checkbox@TEAMCHAT_TOGGLE:
- X:0
- Y:120
- Width:200
- Height:20
- Text: Shift-Enter Toggles Team Chat
Checkbox@SHOW_SHELLMAP:
X:0
Y:150