} // TextMain_KeyDown private void SendMessage(EventArgs x) { KeyEventArgs k = new KeyEventArgs(); if (x is KeyEventArgs) k = x as KeyEventArgs; ConsoleChannel ch = channels[cmbMain.Text]; if (ch != null) { textMain.TextColor = ch.Color; string message = textMain.Text; if ((k.Key == Microsoft.Xna.Framework.Input.Keys.Enter) && !string.IsNullOrEmpty(message)) { x.Handled = true; ConsoleMessageEventArgs me = new ConsoleMessageEventArgs(new ConsoleMessage(message, ch.Index)); OnMessageSent(me); buffer.Add(new ConsoleMessage(me.Message.Text, me.Message.Channel)); textMain.Text = ""; ClientArea.Invalidate(); CalcScrolling(); } } } // SendMessage
} // DisposeManagedResources #endregion #region Draw private void ClientArea_Draw(object sender, DrawEventArgs e) { SpriteFont font = SkinInformation.Layers[0].Text.Font.Font.Resource; Rectangle r = new Rectangle(e.Rectangle.Left, e.Rectangle.Top, e.Rectangle.Width, e.Rectangle.Height); int pos = 0; if (buffer.Count > 0) { EventedList<ConsoleMessage> b = GetFilteredBuffer(filter); int s = (sbVert.Value + sbVert.PageSize); int f = s - sbVert.PageSize; if (b.Count > 0) { for (int i = s - 1; i >= f; i--) { { int y = r.Bottom - (pos + 1) * (font.LineSpacing + 0); string msg = b[i].Text; string pre = ""; ConsoleChannel ch = channels[b[i].Channel]; if ((messageFormat & ConsoleMessageFormats.ChannelName) == ConsoleMessageFormats.ChannelName) { pre += string.Format("[{0}]", channels[b[i].Channel].Name); } if ((messageFormat & ConsoleMessageFormats.TimeStamp) == ConsoleMessageFormats.TimeStamp) { pre = string.Format("[{0}]", b[i].Time.ToLongTimeString()) + pre; } if (pre != "") msg = pre + ": " + msg; Renderer.DrawString(font, msg, 4, y, ch.Color); pos += 1; } } } } } // ClientArea_Draw
} // PositionControls #endregion #region Methods private void TextMain_FocusGained(object sender, EventArgs e) { ConsoleChannel ch = channels[cmbMain.Text]; if (ch != null) textMain.TextColor = ch.Color; } // TextMain_FocusGained