123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- 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;
- using Beefy.sys;
- 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 | .Menu;
- 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", 20, 20, 1600, 1200, windowFlags, mBoard);
- //mMainWindow.mWindowKeyDownDelegate.Add(new => SysKeyDown);
- mMainWindow.SetMinimumSize(480, 360);
- mMainWindow.mIsMainWindow = true;
- SysMenu root = mMainWindow.mSysMenu;
- var subMenu = root.AddMenuItem("&File");
- subMenu.AddMenuItem("&Open", "Ctrl+O", new (menu) =>
- {
- 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;
- }
- mBoard.Load(dialog.FileNames[0]);
- });
- subMenu.AddMenuItem("Read &MemLog", "Ctrl+M", new (menu) =>
- {
- var dialog = new MemLogDialog();
- dialog.PopupWindow(mMainWindow);
- });
- subMenu.AddMenuItem("&Reload", "Ctrl+R", new (menu) =>
- {
- mBoard.Reload();
- });
- }
- public void Fail(String str, params Object[] paramVals)
- {
- var errStr = scope String();
- errStr.AppendF(str, params 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
- {
- public static LVApp gApp;
- }
- }
|