Message Config - ability to toggle the "stacking" effect on general OSD messages

This commit is contained in:
adelikat 2012-09-26 04:00:42 +00:00
parent 6a2e17f143
commit df767b9b6f
4 changed files with 55 additions and 12 deletions

View File

@ -156,6 +156,7 @@ namespace BizHawk.MultiClient
public string FFMpegPath = "%exe%/ffmpeg.exe";
// General Client Settings
public bool StackOSDMessages = true;
public int TargetZoomFactor = 2;
public int TargetDisplayFilter = 0;
public bool AutoLoadMostRecentRom = false;

View File

@ -388,22 +388,45 @@ namespace BizHawk.MultiClient
{
messages.RemoveAll(m => DateTime.Now > m.ExpireAt);
int line = 1;
for (int i = messages.Count - 1; i >= 0; i--, line++)
if (Global.Config.StackOSDMessages)
{
float x = GetX(g, Global.Config.DispMessagex, Global.Config.DispMessageanchor, MessageFont, messages[i].Message);
float y = GetY(g, Global.Config.DispMessagey, Global.Config.DispMessageanchor, MessageFont, messages[i].Message);
if (Global.Config.DispMessageanchor < 2)
for (int i = messages.Count - 1; i >= 0; i--, line++)
{
y += ((line - 1) * 18);
float x = GetX(g, Global.Config.DispMessagex, Global.Config.DispMessageanchor, MessageFont, messages[i].Message);
float y = GetY(g, Global.Config.DispMessagey, Global.Config.DispMessageanchor, MessageFont, messages[i].Message);
if (Global.Config.DispMessageanchor < 2)
{
y += ((line - 1) * 18);
}
else
{
y -= ((line - 1) * 18);
}
g.DrawString(messages[i].Message, MessageFont, Color.Black, x + 2, y + 2);
g.DrawString(messages[i].Message, MessageFont, FixedMessagesColor, x, y);
}
else
{
y -= ((line -1) * 18);
}
g.DrawString(messages[i].Message, MessageFont, Color.Black, x + 2, y + 2);
g.DrawString(messages[i].Message, MessageFont, FixedMessagesColor, x, y);
}
else
{
if (messages.Count > 0)
{
int i = messages.Count - 1;
float x = GetX(g, Global.Config.DispMessagex, Global.Config.DispMessageanchor, MessageFont, messages[i].Message);
float y = GetY(g, Global.Config.DispMessagey, Global.Config.DispMessageanchor, MessageFont, messages[i].Message);
if (Global.Config.DispMessageanchor < 2)
{
y += ((line - 1) * 18);
}
else
{
y -= ((line - 1) * 18);
}
g.DrawString(messages[i].Message, MessageFont, Color.Black, x + 2, y + 2);
g.DrawString(messages[i].Message, MessageFont, FixedMessagesColor, x, y);
}
}
for (int x = 0; x < GUITextList.Count; x++)
{
try

View File

@ -77,6 +77,7 @@
this.AlertColorDialog = new System.Windows.Forms.ColorDialog();
this.LInputColorDialog = new System.Windows.Forms.ColorDialog();
this.MovieInputColorDialog = new System.Windows.Forms.ColorDialog();
this.StackMessagesCheckbox = new System.Windows.Forms.CheckBox();
this.MessageTypeBox.SuspendLayout();
this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.XNumeric)).BeginInit();
@ -617,6 +618,16 @@
//
this.MovieInputColorDialog.FullOpen = true;
//
// StackMessagesCheckbox
//
this.StackMessagesCheckbox.AutoSize = true;
this.StackMessagesCheckbox.Location = new System.Drawing.Point(195, 411);
this.StackMessagesCheckbox.Name = "StackMessagesCheckbox";
this.StackMessagesCheckbox.Size = new System.Drawing.Size(105, 17);
this.StackMessagesCheckbox.TabIndex = 7;
this.StackMessagesCheckbox.Text = "Stack Messages";
this.StackMessagesCheckbox.UseVisualStyleBackColor = true;
//
// MessageConfig
//
this.AcceptButton = this.OK;
@ -624,6 +635,7 @@
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.Cancel;
this.ClientSize = new System.Drawing.Size(612, 469);
this.Controls.Add(this.StackMessagesCheckbox);
this.Controls.Add(this.ResetDefaultsButton);
this.Controls.Add(this.Cancel);
this.Controls.Add(this.groupBox2);
@ -645,6 +657,7 @@
this.PositionGroupBox.ResumeLayout(false);
this.PositionGroupBox.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
@ -699,5 +712,6 @@
private System.Windows.Forms.ColorDialog MovieInputColorDialog;
private System.Windows.Forms.Label MultitrackLabel;
private System.Windows.Forms.RadioButton MultitrackRadio;
private System.Windows.Forms.CheckBox StackMessagesCheckbox;
}
}

View File

@ -64,6 +64,7 @@ namespace BizHawk.MultiClient
MovieInputColorDialog.Color = Color.FromArgb(MovieInput);
SetColorBox();
SetPositionInfo();
StackMessagesCheckbox.Checked = Global.Config.StackOSDMessages;
}
private void SetMaxXY()
@ -209,6 +210,8 @@ namespace BizHawk.MultiClient
Global.Config.DispRecanchor = DispRecanchor;
Global.Config.DispMultianchor = DispMultiAnchor;
Global.Config.DispMessageanchor = DispMessageAnchor;
Global.Config.StackOSDMessages = StackMessagesCheckbox.Checked;
}
private void OK_Click(object sender, EventArgs e)
@ -443,6 +446,8 @@ namespace BizHawk.MultiClient
SetMaxXY();
SetColorBox();
SetPositionInfo();
StackMessagesCheckbox.Checked = Global.Config.StackOSDMessages = true;
}
private void SetAnchorValue(int value)