WIP: Main message scroller rudimentally working
This commit is contained in:
51
Programs/GridProxyGUI/MessageScroller.cs
Executable file
51
Programs/GridProxyGUI/MessageScroller.cs
Executable file
@@ -0,0 +1,51 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Gtk;
|
||||
|
||||
namespace GridProxyGUI
|
||||
{
|
||||
internal class MessageScroller : TreeView
|
||||
{
|
||||
public static string[] ColumnLabels = { "Counter", "Timestamp", "Protocol", "Type", "Size", "URL", "Content Type" };
|
||||
Dictionary<string, int> ColumnMap = new Dictionary<string,int>();
|
||||
|
||||
public ListStore Messages;
|
||||
|
||||
public MessageScroller()
|
||||
{
|
||||
|
||||
for (int i = 0; i < ColumnLabels.Length; i++)
|
||||
{
|
||||
CellRendererText cell = new CellRendererText();
|
||||
AppendColumn(ColumnLabels[i], cell, "text", 0);
|
||||
GetColumn(i).SetCellDataFunc(cell, CellDataFunc);
|
||||
ColumnMap[ColumnLabels[i]] = i;
|
||||
}
|
||||
|
||||
Model = Messages = new ListStore(typeof(Session));
|
||||
HeadersVisible = true;
|
||||
ShowAll();
|
||||
}
|
||||
|
||||
void CellDataFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
|
||||
{
|
||||
var item = model.GetValue(iter, 0) as Session;
|
||||
if (item != null)
|
||||
{
|
||||
if (ColumnMap.ContainsKey(column.Title))
|
||||
{
|
||||
int pos =ColumnMap[column.Title];
|
||||
if (pos < item.Columns.Length)
|
||||
{
|
||||
((CellRendererText)cell).Text = item.Columns[pos];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void AddSession(Session s)
|
||||
{
|
||||
Messages.AppendValues(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user