GtkSharp/Source/Samples/ApplicationOutput.cs
2018-01-26 00:13:36 +01:00

57 lines
1.6 KiB
C#

// This is free and unencumbered software released into the public domain.
// Happy coding!!! - GtkSharp Team
using System;
using Gtk;
namespace Samples
{
static class ApplicationOutput
{
private static readonly ScrolledWindow _scrolledWindow;
private static readonly TextView _textView;
static ApplicationOutput()
{
var vbox = new VBox();
var labelTitle = new Label
{
Text = "Application Output:",
Margin = 4,
Xalign = 0f
};
vbox.PackStart(labelTitle, false, true, 0);
_scrolledWindow = new ScrolledWindow();
_textView = new TextView();
_scrolledWindow.Child = _textView;
vbox.PackStart(_scrolledWindow, true, true, 0);
Widget = vbox;
_textView.SizeAllocated += TextView_SizeAllocated;
}
public static Widget Widget { get; set; }
private static void TextView_SizeAllocated(object o, SizeAllocatedArgs args)
{
_textView.ScrollToIter(_textView.Buffer.EndIter, 0, false, 0, 0);
}
public static void WriteLine(object o, string e)
{
WriteLine("[" + Environment.TickCount + "] " + o.GetType() + ": " + e);
}
public static void WriteLine(string line)
{
var enditer = _textView.Buffer.EndIter;
if (_textView.Buffer.Text.Length > 0)
line = Environment.NewLine + line;
_textView.Buffer.Insert(ref enditer, line);
}
}
}