mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 09:30:44 +00:00
141 lines
4.0 KiB
C#
141 lines
4.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using renderdocui.Code;
|
|
|
|
namespace renderdocui.Windows.Dialogs
|
|
{
|
|
public partial class SuggestRemoteDialog : Form
|
|
{
|
|
public enum SuggestRemoteResult
|
|
{
|
|
Cancel,
|
|
Local,
|
|
Remote,
|
|
}
|
|
|
|
string m_WarningStart;
|
|
|
|
public SuggestRemoteDialog(string driver, string machineIdent)
|
|
{
|
|
InitializeComponent();
|
|
|
|
icon.Image = SystemIcons.Exclamation.ToBitmap();
|
|
|
|
m_WarningStart =
|
|
"This " + driver + " capture was originally created on a\n" +
|
|
"'" + machineIdent.Trim() + "' machine.\n\n";
|
|
|
|
warning.Text =
|
|
m_WarningStart +
|
|
"Currently you have no remote context selected or configured\n" +
|
|
"to replay on. Would you like to load the capture locally or\n" +
|
|
"back out to configure one in Tools > Manage Remote Servers?";
|
|
|
|
remote.Enabled = false;
|
|
remote.Image = null;
|
|
remote.Text = "No Remote";
|
|
}
|
|
|
|
private void remoteDropDown_ItemAdded(object sender, ToolStripItemEventArgs e)
|
|
{
|
|
// update text and buttons to reflect that remote hosts are configured
|
|
warning.Text =
|
|
m_WarningStart +
|
|
"Currently you have no remote context selected, would you like\n" +
|
|
"to choose a remote context to replay on, or continue and load\n" +
|
|
"the capture locally?";
|
|
|
|
remote.Enabled = true;
|
|
remote.Image = global::renderdocui.Properties.Resources.down_arrow;
|
|
remote.Text = "Remote ";
|
|
}
|
|
|
|
private void alwaysLocal_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
remote.Enabled = RemoteItems.Count > 0 && !alwaysLocal.Checked;
|
|
}
|
|
|
|
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
|
{
|
|
if (keyData == Keys.Escape)
|
|
{
|
|
this.Close();
|
|
return true;
|
|
}
|
|
return base.ProcessCmdKey(ref msg, keyData);
|
|
}
|
|
|
|
private void cancel_Click(object sender, EventArgs e)
|
|
{
|
|
m_Result = SuggestRemoteResult.Cancel;
|
|
Close();
|
|
}
|
|
|
|
private void local_Click(object sender, EventArgs e)
|
|
{
|
|
m_Result = SuggestRemoteResult.Local;
|
|
Close();
|
|
}
|
|
|
|
private void remoteDropDown_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
|
|
{
|
|
m_Result = SuggestRemoteResult.Remote;
|
|
}
|
|
|
|
private void remote_Click(object sender, EventArgs e)
|
|
{
|
|
if(remote.Checked)
|
|
return;
|
|
|
|
Point showPos = remote.PointToScreen(remote.ClientRectangle.Location);
|
|
|
|
showPos.Y = showPos.Y + remote.ClientRectangle.Height;
|
|
|
|
// gives the appearance that the button stays pressed
|
|
remote.Checked = true;
|
|
|
|
remoteDropDown.Show(showPos);
|
|
}
|
|
|
|
private void remoteDropDown_Closed(object sender, ToolStripDropDownClosedEventArgs e)
|
|
{
|
|
remote.Checked = false;
|
|
|
|
// if the result is Remote now then one of the items was clicked on
|
|
if (m_Result == SuggestRemoteResult.Remote)
|
|
Close();
|
|
}
|
|
|
|
private SuggestRemoteResult m_Result = SuggestRemoteResult.Cancel;
|
|
public SuggestRemoteResult Result
|
|
{
|
|
get
|
|
{
|
|
return m_Result;
|
|
}
|
|
}
|
|
|
|
public ToolStripItemCollection RemoteItems
|
|
{
|
|
get
|
|
{
|
|
return remoteDropDown.Items;
|
|
}
|
|
}
|
|
|
|
public bool AlwaysReplayLocally
|
|
{
|
|
get
|
|
{
|
|
return alwaysLocal.Checked;
|
|
}
|
|
}
|
|
}
|
|
}
|