sourcemod/tools/profiler/csharp/Form1.cs

94 lines
2.7 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace profviewer
{
public partial class Main : Form
{
private ProfileReport m_Report;
public Main()
{
InitializeComponent();
}
private void menu_file_open_Click(object sender, EventArgs e)
{
DialogResult res;
res = dialog_open.ShowDialog(this);
if (res != DialogResult.OK)
{
return;
}
m_Report = null;
try
{
m_Report = new ProfileReport(dialog_open.FileName);
}
catch (System.Exception ex)
{
MessageBox.Show("Error opening or parsing file: " + ex.Message);
}
UpdateListView();
}
private void UpdateListView()
{
ProfileItem atom;
ListViewItem item;
report_list.Items.Clear();
report_info_duration.Text = "";
report_info_starttime.Text = "";
report_info_duration.Text = m_Report.Duration.ToString() + " seconds";
report_info_starttime.Text = m_Report.StartTime.ToString();
for (int i = 0; i < m_Report.Count; i++)
{
atom = m_Report.GetItem(i);
item = new ListViewItem(ProfileReport.TypeStrings[(int)atom.type]);
item.SubItems.Add(atom.name);
item.SubItems.Add(atom.num_calls.ToString());
item.SubItems.Add(atom.AverageTime.ToString("F6"));
item.SubItems.Add(atom.min_time.ToString("F6"));
item.SubItems.Add(atom.max_time.ToString("F6"));
item.SubItems.Add(atom.total_time.ToString("F6"));
report_list.Items.Add(item);
}
}
private void menu_file_exit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void report_list_ColumnClick(object sender, ColumnClickEventArgs e)
{
if (e.Column == 1)
{
report_list.ListViewItemSorter = new LIStringComparator(1);
}
else if (e.Column == 2)
{
report_list.ListViewItemSorter = new LIIntComparator(2);
}
else if (e.Column > 2)
{
report_list.ListViewItemSorter = new LIDoubleComparator(e.Column);
}
}
}
}