2019-08-23 11:56:54 -07:00
|
|
|
using Beefy;
|
|
|
|
using Beefy.widgets;
|
|
|
|
using Beefy.theme.dark;
|
|
|
|
using Beefy.theme;
|
|
|
|
using Beefy.gfx;
|
|
|
|
using System;
|
|
|
|
using Beefy.utils;
|
|
|
|
using System.IO;
|
|
|
|
using System.Diagnostics;
|
|
|
|
using System.Threading;
|
|
|
|
|
|
|
|
namespace LogViewer
|
|
|
|
{
|
|
|
|
class LVApp : BFApp
|
|
|
|
{
|
|
|
|
public WidgetWindow mMainWindow;
|
|
|
|
public Board mBoard;
|
|
|
|
public Font mFont ~ delete _;
|
|
|
|
|
|
|
|
public this()
|
|
|
|
{
|
|
|
|
gApp = this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public override void Init()
|
|
|
|
{
|
|
|
|
base.Init();
|
|
|
|
|
|
|
|
var dialog = scope OpenFileDialog();
|
|
|
|
dialog.SetFilter("All files (*.*)|*.*");
|
|
|
|
dialog.InitialDirectory = mInstallDir;
|
|
|
|
dialog.Title = "Open Log";
|
|
|
|
let result = dialog.ShowDialog();
|
|
|
|
if ((result case .Err) || (dialog.FileNames.Count == 0))
|
|
|
|
{
|
|
|
|
Stop();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
BeefPerf.Init("127.0.0.1", "LogViewer");
|
|
|
|
|
|
|
|
DarkTheme darkTheme = new DarkTheme();
|
|
|
|
darkTheme.Init();
|
|
|
|
ThemeFactory.mDefault = darkTheme;
|
|
|
|
|
|
|
|
BFWindow.Flags windowFlags = BFWindow.Flags.Border | //BFWindow.Flags.SysMenu | //| BFWindow.Flags.CaptureMediaKeys |
|
|
|
|
BFWindow.Flags.Caption | BFWindow.Flags.Minimize | BFWindow.Flags.QuitOnClose | BFWindowBase.Flags.Resizable |
|
|
|
|
BFWindow.Flags.SysMenu;
|
|
|
|
|
|
|
|
mFont = new Font();
|
|
|
|
float fontSize = 12;
|
|
|
|
mFont.Load(scope String(BFApp.sApp.mInstallDir, "fonts/SourceCodePro-Regular.ttf"), fontSize);
|
|
|
|
mFont.AddAlternate("Segoe UI Symbol", fontSize);
|
|
|
|
mFont.AddAlternate("Segoe UI Historic", fontSize);
|
|
|
|
mFont.AddAlternate("Segoe UI Emoji", fontSize);
|
|
|
|
|
|
|
|
mBoard = new Board();
|
|
|
|
mBoard.Load(dialog.FileNames[0]);
|
|
|
|
mMainWindow = new WidgetWindow(null, "LogViewer", 0, 0, 1600, 1200, windowFlags, mBoard);
|
|
|
|
//mMainWindow.mWindowKeyDownDelegate.Add(new => SysKeyDown);
|
|
|
|
mMainWindow.SetMinimumSize(480, 360);
|
|
|
|
mMainWindow.mIsMainWindow = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void Fail(String str, params Object[] paramVals)
|
|
|
|
{
|
|
|
|
var errStr = scope String();
|
|
|
|
errStr.AppendF(str, paramVals);
|
|
|
|
Fail(errStr);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void Fail(String text)
|
|
|
|
{
|
|
|
|
#if CLI
|
|
|
|
Console.WriteLine("ERROR: {0}", text);
|
|
|
|
return;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#unwarn
|
|
|
|
//Debug.Assert(Thread.CurrentThread == mMainThread);
|
|
|
|
|
|
|
|
if (mMainWindow == null)
|
|
|
|
{
|
|
|
|
//Internal.FatalError(StackStringFormat!("FAILED: {0}", text));
|
|
|
|
Windows.MessageBoxA(0, text, "FATAL ERROR", 0);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
//Beep(MessageBeepType.Error);
|
|
|
|
|
|
|
|
Dialog dialog = ThemeFactory.mDefault.CreateDialog("ERROR", text, DarkTheme.sDarkTheme.mIconError);
|
|
|
|
dialog.mDefaultButton = dialog.AddButton("OK");
|
|
|
|
dialog.mEscButton = dialog.mDefaultButton;
|
|
|
|
dialog.PopupWindow(mMainWindow);
|
|
|
|
|
|
|
|
/*if (addWidget != null)
|
|
|
|
{
|
|
|
|
dialog.AddWidget(addWidget);
|
|
|
|
addWidget.mY = dialog.mHeight - 60;
|
|
|
|
addWidget.mX = 90;
|
|
|
|
}*/
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static
|
|
|
|
{
|
2020-12-01 14:23:54 -08:00
|
|
|
public static LVApp gApp;
|
2019-08-23 11:56:54 -07:00
|
|
|
}
|
|
|
|
}
|