コード例 #1
0
ファイル: Program.cs プロジェクト: alex4401/Hydra
        static void Main(string[] args)
        {
            var assembly    = typeof(Program).Assembly;
            var fileVersion = assembly.GetCustomAttribute <AssemblyFileVersionAttribute>();

#if DEBUG
            var buildType = "Debug";
#else
            var buildType = "Release";
#endif
            Console.WriteLine($"OpenPackage (HydraEd {fileVersion.Version}/{buildType})");

            if (args.Length == 0)
            {
                Console.WriteLine("Error: Run this tool again with the file path specified.");
                return;
            }
            var filename = string.Join(' ', args);
            using var file = File.OpenRead(filename);
            var package = new Package(file);

            Application.Init();

            var app = new Application("com.alex.hydra.devtool", GLib.ApplicationFlags.None);
            app.Register(GLib.Cancellable.Current);

            var win         = new Window(WindowType.Toplevel);
            var drawingArea = new DrawingArea();
            win.SetSizeRequest(256, 256);
            drawingArea.SetSizeRequest(256, 256);

            var actorTree   = new ActorTree(package);
            var gtkRenderer = new GtkRenderer(drawingArea);
            var hydra       = new HydraEngine(actorTree, gtkRenderer);
            gtkRenderer.LinkTo(hydra);
            win.DeleteEvent += (object sender, DeleteEventArgs args) => { Application.Quit(); };

            win.Child = drawingArea;
            app.AddWindow(win);
            win.ShowAll();
            drawingArea.QueueDraw();

            Application.Run();
        }
コード例 #2
0
ファイル: GtkRenderer.cs プロジェクト: alex4401/Hydra
 public void LinkTo(HydraEngine hydra)
 {
     _hydra = hydra;
 }