コード例 #1
0
        public override void Send(SendOrPostCallback d, object state)
        {
            var       evt       = new ManualResetEvent(false);
            Exception exception = null;

            Idle.Add(() =>
            {
                try
                {
                    d(state);
                }
                catch (Exception ex)
                {
                    exception = ex;
                }
                finally
                {
                    evt.Set();
                }
                return(false);
            });

            evt.WaitOne();

            if (exception != null)
            {
                throw exception;
            }
        }
コード例 #2
0
ファイル: MainWindow.cs プロジェクト: LimitlessRegret/EvoS
        public void AddPackets(PacketDumpProcessor pdp)
        {
            var sw = Stopwatch.StartNew();

            const int batchSize      = 100;
            var       processedCount = 0;

            var x = AddPacketsInternal(pdp, batchSize).GetEnumerator();

            Idle.Add(() =>
            {
                if (!x.MoveNext() || !x.Current)
                {
                    x.Dispose();

                    sw.Stop();
                    Console.WriteLine($"AddPackets: {sw.ElapsedMilliseconds}ms");

                    _buttonOpenFolder.Sensitive = true;
                    _buttonOpenReplay.Sensitive = true;
                }
                else
                {
                    processedCount += batchSize;
                    SetStatus($"Added {processedCount}/{pdp.Packets.Count} packets", processedCount, pdp.Packets.Count);
                }

                return(x.Current);
            });
        }
コード例 #3
0
        void initializeHandlerIfNecessary()
        {
            if (handler != null)
            {
                return;
            }

            handler = () => {
                if (dispatcherQueue.Count == 0)
                {
                    return(true);
                }

                var item = dispatcherQueue [0];
                dispatcherQueue.RemoveAt(0);
                item();

                if (dispatcherQueue.Count == 0)
                {
                    handler = null;
                    return(false);
                }

                return(true);
            };

            Idle.Add(handler);
        }
コード例 #4
0
        public void TestAdd()
        {
            // null function is not allowed
            Assert.That(() => Idle.Add(null),
                        Throws.InstanceOf <ArgumentNullException> ());

            // Idle.Add() can only attach sources to the global main context,
            // so we need to use a lock to ensure exclusive use of the main
            // context.
            lock (MainContextTests.MainContextLock) {
                var idleInvoked = false;

                using (var mainLoop = new MainLoop()) {
                    var id = Idle.Add(() => {
                        mainLoop.Quit();
                        idleInvoked = true;
                        return(Source.Remove_);
                    });

                    Assert.That(id, Is.Not.EqualTo(0));

                    var source = MainContext.Default.FindSourceById(id);
                    Task.Run(() => {
                        mainLoop.Run();
                    }).Wait(100);
                    source.Destroy();
                }

                Assert.That(idleInvoked, Is.True);
            }

            Utility.AssertNoGLibLog();
        }
コード例 #5
0
 private void OnJoinedLobby(object sender, LobbyEventArgs e)
 {
     Idle.Add(delegate
     {
         _gameCodeEntryField.Text = e.LobbyCode;
         return(false);
     });
 }
コード例 #6
0
 public override void Post(SendOrPostCallback d, object state)
 {
     Idle.Add(() =>
     {
         d(state);
         return(false);
     });
 }
コード例 #7
0
    protected void InitializeUserInterface()
    {
        Title = "Neural Network Classifier";

        Confirm = new Dialog(
            "Are you sure?",
            this,
            DialogFlags.Modal,
            "Yes", ResponseType.Accept,
            "No", ResponseType.Cancel
            )
        {
            Resizable    = false,
            KeepAbove    = true,
            TypeHint     = WindowTypeHint.Dialog,
            WidthRequest = 250
        };

        Confirm.ActionArea.LayoutStyle = ButtonBoxStyle.Center;
        Confirm.WindowStateEvent      += OnWindowStateEvent;

        TextSaver = new FileChooserDialog(
            "Save Text File",
            this,
            FileChooserAction.Save,
            "Cancel", ResponseType.Cancel,
            "Save", ResponseType.Accept
            );

        TextLoader = new FileChooserDialog(
            "Load Text File",
            this,
            FileChooserAction.Save,
            "Cancel", ResponseType.Cancel,
            "Load", ResponseType.Accept
            );

        TextLoader.AddFilter(AddFilter("Text files (csv/txt)", "*.txt", "*.csv"));

        TextSaver.AddFilter(AddFilter("txt", "*.txt"));
        TextSaver.AddFilter(AddFilter("csv", "*.csv"));

        Delimiters.Add(new Delimiter("Tab \\t", '\t'));
        Delimiters.Add(new Delimiter("Comma ,", ','));
        Delimiters.Add(new Delimiter("Space \\s", ' '));
        Delimiters.Add(new Delimiter("Vertical Pipe |", '|'));
        Delimiters.Add(new Delimiter("Colon :", ':'));
        Delimiters.Add(new Delimiter("Semi-Colon ;", ';'));
        Delimiters.Add(new Delimiter("Forward Slash /", '/'));
        Delimiters.Add(new Delimiter("Backward Slash \\", '\\'));

        UpdateDelimiterBox(DelimiterBox, Delimiters);

        ToggleControls(Paused);

        Idle.Add(new IdleHandler(OnIdle));
    }
コード例 #8
0
        private void LazyLoadItems(List items)
        {
            _data = new IdleData();

            _data.Items     = items;
            _data.NumItems  = 0;
            _data.NumLoaded = 0;
            _data.ListStore = _store;
            _data.LoadState = Controls.State.Started;
            _data.LoadId    = Idle.Add(new IdleHandler(LoadItems));
        }
コード例 #9
0
        public void TestRemove()
        {
            lock (MainContextTests.MainContextLock) {
                var id = Idle.Add(() => Source.Remove_);
                Assume.That(MainContext.Default.FindSourceById(id), Is.Not.Null);
                Source.Remove(id);
                Assert.That(MainContext.Default.FindSourceById(id), Is.Null);
            }

            Utility.AssertNoGLibLog();
        }
        /// <summary>
        /// Starts up the background thread, if needed, and triggers a reload
        /// on the lines.
        /// </summary>
        public void Restart()
        {
            // Set the flag so we loop through at least one more time.
            needRestart = true;

            // If we aren't running, then start it up again.
            if (!isRunning)
            {
                isRunning = true;
                Idle.Add(OnIdleUpdate);
            }
        }
コード例 #11
0
    public static void Main(string [] args)
    {
        Program program = new Program("ImportCommandTest", "0.0", Modules.UI, args);

        try {
            File.Delete(db_path);
        } catch {}

        directory_path = args [0];

        Idle.Add(new IdleHandler(OnIdleStartImport));
        program.Run();
    }
コード例 #12
0
    public MainWindow() : base(Gtk.WindowType.Toplevel)
    {
        Build();

        InitControls();

        InitToolbar();

        Tic();

        GtkSelection.Selection.EllipseMode = false;

        Idle.Add(new IdleHandler(OnIdle));
    }
コード例 #13
0
 /// <summary>
 /// Starts the background update of the elements if it isn't already
 /// running.
 /// </summary>
 private void StartBackgroundUpdate()
 {
     using (new WriteLock(sync))
     {
         // If the idle is already running, then we don't need to worry
         // about the idle. If it isn't, then set the flag and attach
         // the idle function to the Gtk# loop.
         if (!idleRunning)
         {
             idleRunning = true;
             Idle.Add(OnIdle);
         }
     }
 }
コード例 #14
0
 public void AppendColoredTextToConsole(string line, Color color, bool addNewLine = false)
 {
     if (!(_consoleTextView is null))
     {
         Idle.Add(delegate
         {
             var iter = _consoleTextView.Buffer.EndIter;
             _consoleTextView.Buffer.InsertMarkup(ref iter, addNewLine
                 ? $"<span foreground=\"#{color.R.ToString("X2")}{color.G.ToString("X2")}{color.B.ToString("X2")}\">{line}</span>{Environment.NewLine}"
                 : $"<span foreground=\"#{color.R.ToString("X2")}{color.G.ToString("X2")}{color.B.ToString("X2")}\">{line}</span>");
             _consoleTextView.Buffer.PlaceCursor(iter);
             return(false);
         });
     }
 }
コード例 #15
0
 public override void Post(SendOrPostCallback callback, object state)
 {
     lock (lockObject)
     {
         if (!addedHandler)
         {
             Idle.Add(ProcessQueue);
             addedHandler = true;
         }
         queue.Enqueue(new QueueItem()
         {
             Callback = callback, State = state
         });
     }
 }
コード例 #16
0
        private void GameStateChangedHandler(object sender, GameStateChangedEventArgs e)
        {
            while (deadMessageQueue.Count > 0) //Lets print out the state changes now that gamestate has changed.
            {
                var text = deadMessageQueue.Dequeue();
                Settings.conInterface.WriteModuleTextColored("PlayerChange", Color.DarkKhaki, text);
            }

            Idle.Add(delegate
            {
                _currentStateLabel.Text = e.NewState.ToString();
                return(false);
            });
            Settings.conInterface.WriteModuleTextColored("GameMemReader", Color.Lime, $"State changed to {Color.Cyan.ToTextColorPango(e.NewState.ToString())}");
            //Program.conInterface.WriteModuleTextColored("GameMemReader", Color.Green, "State changed to " + e.NewState);
        }
コード例 #17
0
        public void WriteLineToConsole(string line)
        {
            if (!(_consoleTextView is null))
            {
                lock (locker)
                {
                    Idle.Add(delegate
                    {
                        var iter = _consoleTextView.Buffer.EndIter;
                        _consoleTextView.Buffer.Insert(ref iter, line + "\n");
                        _consoleTextView.Buffer.PlaceCursor(iter);
                        return(false);
                    });
                }

                //autoscroll();
            }
        }
コード例 #18
0
    public MainWindow() : base(Gtk.WindowType.Toplevel)
    {
        Build();

        InitializeComponents();

        InitializeDefaults();

        DisableControls();

        InitializeSelectionMode();

        InitializeSelected();

        EnableControls();

        Idle.Add(new IdleHandler(OnIdleUpdate));
    }
コード例 #19
0
ファイル: test-threads.cs プロジェクト: Dynalon/clutter-sharp
        void DoSomethingVerySlow()
        {
            if (data.Cancelled)
            {
                return;
            }

            for (int i = 0; i < 100; i++)
            {
                System.Threading.Thread.Sleep(100);

                if (i % 10 != 0)
                {
                    continue;
                }

                Idle.Add(new TestUpdate(i, data).HandleIdle);
            }
        }
コード例 #20
0
ファイル: WebView.cs プロジェクト: rucker/banshee
        private void LoadHome()
        {
            // We defer this to another main loop iteration, otherwise
            // our load placeholder document will never be rendered.
            Idle.Add(delegate {
                GoHome();

                // Emit the Ready event once we are first allowed
                // to load the home page (ensures we've downloaded
                // the fixup javascript, etc.).
                if (!IsReady)
                {
                    IsReady     = true;
                    var handler = Ready;
                    handler?.Invoke(this, EventArgs.Empty);
                }
                return(false);
            });
        }
コード例 #21
0
ファイル: MainWindow.cs プロジェクト: daelsepara/CameraApp
    public MainWindow() : base(Gtk.WindowType.Toplevel)
    {
        Build();

        DisableControls();

        LoadSettings();

        InitializeCamera();
        InitializePattern();
        InitializeDetector();
        InitializeSelectionMode();
        InitializeSelection();
        InitializeChooser();

        EnableControls();

        Idle.Add(new IdleHandler(OnIdleUpdate));

        prevParent = cameraLayout;
    }
コード例 #22
0
        public override void Send(SendOrPostCallback d, object state)
        {
            if (System.Threading.Thread.CurrentThread.ManagedThreadId == FormsWindow.MainThreadID)
            {
                d(state);
            }
            else
            {
                var       evt       = new ManualResetEvent(false);
                Exception exception = null;

                Idle.Add(() =>
                {
                    try
                    {
                        d(state);
                    }
                    catch (Exception ex)
                    {
                        exception = ex;
                    }
                    finally
                    {
                        evt.Set();
                    }
                    return(false);
                });

                evt.WaitOne();

                if (exception != null)
                {
                    throw exception;
                }
            }
        }
コード例 #23
0
    protected void InitializeUserInterface()
    {
        Title = "Phase Explorer";

        InputPixbuf = Common.InitializePixbuf(Parameters.SLModX, Parameters.SLModY);
        PhasePixbuf = Common.InitializePixbuf(Parameters.SLModX, Parameters.SLModY);
        ReconPixbuf = Common.InitializePixbuf(Parameters.SLModX, Parameters.SLModY);

        InputImage.Pixbuf = Common.InitializePixbuf(Parameters.WindowX, Parameters.WindowY);
        PhaseImage.Pixbuf = Common.InitializePixbuf(Parameters.WindowX, Parameters.WindowY);
        ReconImage.Pixbuf = Common.InitializePixbuf(Parameters.WindowX, Parameters.WindowY);

        ResetScrollBars();

        RenderImage(InputImage, InputPixbuf, Parameters.InputX, Parameters.InputY);
        RenderImage(PhaseImage, PhasePixbuf, Parameters.PhaseX, Parameters.PhaseY);
        RenderImage(ReconImage, ReconPixbuf, Parameters.ReconX, Parameters.ReconY);

        Confirm = new Dialog(
            "Are you sure?",
            this,
            DialogFlags.Modal,
            "Yes", ResponseType.Accept,
            "No", ResponseType.Cancel
            )
        {
            Resizable    = false,
            KeepAbove    = true,
            TypeHint     = WindowTypeHint.Dialog,
            WidthRequest = 250
        };

        Confirm.ActionArea.LayoutStyle = ButtonBoxStyle.Center;
        Confirm.WindowStateEvent      += OnWindowStateEvent;

        ImageSaver = new FileChooserDialog(
            "Save Filtered Image",
            this,
            FileChooserAction.Save,
            "Cancel", ResponseType.Cancel,
            "Save", ResponseType.Accept
            );

        ImageLoader = new FileChooserDialog(
            "Load Image",
            this,
            FileChooserAction.Save,
            "Cancel", ResponseType.Cancel,
            "Load", ResponseType.Accept
            );

        ImageSaver.AddFilter(AddFilter("png", "*.png"));
        ImageSaver.AddFilter(AddFilter("jpg", "*.jpg", "*.jpeg"));
        ImageSaver.AddFilter(AddFilter("tif", "*.tif", "*.tiff"));
        ImageSaver.AddFilter(AddFilter("bmp", "*.bmp"));
        ImageSaver.AddFilter(AddFilter("ico", "*.ico"));
        ImageSaver.Filter = ImageSaver.Filters[0];

        ImageLoader.AddFilter(AddFilter("Image files (png/jpg/jpeg/tif/tiff/bmp/gif/ico/xpm/icns/pgm)", "*.png", "*.jpg", "*.jpeg", "*.tif", "*.tiff", "*.bmp", "*.gif", "*.ico", "*.xpm", "*.icns", "*.pgm"));
        ImageLoader.Filter = ImageLoader.Filters[0];

        DisableControls();

        SetParameters();

        EnableControls();

        ToggleGerchbergSaxtonPhase();
        ToggleLensPhase();
        ToggleBlazedPhase();

        InputWidth.Value  = Parameters.SLModX;
        InputHeight.Value = Parameters.SLModY;

        Idle.Add(new IdleHandler(OnIdle));
    }
コード例 #24
0
    protected void InitializeUserInterface()
    {
        InitializeWorldPixbuf();

        WorldImage.Pixbuf = InitializePixbuf(WorldParameters.WindowX, WorldParameters.WindowY);

        WorldPixbuf.Fill(0);

        RenderWorldPixbuf();

        ResetWorldScrollBars();

        Confirm = new Dialog(
            "Are you sure?",
            this,
            DialogFlags.Modal,
            "Yes", ResponseType.Accept,
            "No", ResponseType.Cancel
            )
        {
            Resizable    = false,
            KeepAbove    = true,
            TypeHint     = WindowTypeHint.Dialog,
            WidthRequest = 250
        };

        Confirm.ActionArea.LayoutStyle = ButtonBoxStyle.Center;
        Confirm.WindowStateEvent      += OnWindowStateEvent;

        var bg = MainNoteBook.Style.Background(MainNoteBook.State);

        MainToolbar.ModifyBg(StateType.Normal, bg);
        MainToolbar.BorderWidth = 0;

        Idle.Add(new IdleHandler(OnIdle));

        var Defaults = ParameterSets.Default();

        var source = Utility.GetString(Defaults, "Source");
        var states = Utility.GetNumeric(Defaults, "States");

        if (!String.IsNullOrEmpty(source))
        {
            TurmiteProgram.Buffer.Text = Utility.SetText(source);
        }

        TurmiteStates.Value = Convert.ToInt32(states);

        CopyNeighborhood(World.VonNeumannNeighborhood());

        WorldHeight.Value = Convert.ToInt32(WorldParameters.Height);
        WorldWidth.Value  = Convert.ToInt32(WorldParameters.Width);

        TurmiteColor.Color = new Color(255, 0, 0);

        ParameterSets.InitializeTurmiteLibrary();

        UpdateTurmiteLibrary(TurmiteLibrary, ParameterSets.TurmiteLibrary);

        TurmiteHeadX.Value = 0;
        TurmiteHeadY.Value = 0;

        ImageChooser = new FileChooserDialog(
            "Save colony snapshot",
            this,
            FileChooserAction.Save,
            "Cancel", ResponseType.Cancel,
            "Save", ResponseType.Accept
            );

        Cyclic.Active = false;

        if (Paused)
        {
            Pause();
        }
    }
コード例 #25
0
ファイル: MainWindow.cs プロジェクト: bmjoy/Everlook
        /// <summary>
        /// Initializes a new instance of the <see cref="MainWindow"/> class.
        /// </summary>
        /// <param name="builder">Builder.</param>
        /// <param name="handle">Handle.</param>
        private MainWindow(Builder builder, IntPtr handle)
            : base(handle)
        {
            builder.Autoconnect(this);
            this.DeleteEvent      += OnDeleteEvent;
            this.Shown            += OnMainWindowShown;
            this.WindowStateEvent += OnWindowStateChanged;

            this.UiThreadScheduler             = TaskScheduler.FromCurrentSynchronizationContext();
            this.FileLoadingCancellationSource = new CancellationTokenSource();

            this.ViewportWidget = new GLWidget
            {
                CanFocus             = true,
                SingleBuffer         = false,
                ColorBPP             = 24,
                DepthBPP             = 24,
                AccumulatorBPP       = 24,
                Samples              = 4,
                GlVersionMajor       = 3,
                GlVersionMinor       = 3,
                GraphicsContextFlags = GraphicsContextFlags.Default,
            };

            this.ViewportWidget.Events |=
                EventMask.ButtonPressMask |
                EventMask.ButtonReleaseMask |
                EventMask.EnterNotifyMask |
                EventMask.LeaveNotifyMask |
                EventMask.KeyPressMask |
                EventMask.KeyReleaseMask;

            this.ViewportWidget.Initialized += (sender, args) =>
            {
                // Initialize all OpenGL rendering parameters
                this.RenderingEngine.Initialize();
                Idle.Add(OnIdleRenderFrame);
            };

            this.ViewportWidget.ButtonPressEvent   += OnViewportButtonPressed;
            this.ViewportWidget.ButtonReleaseEvent += OnViewportButtonReleased;
            this.ViewportWidget.EnterNotifyEvent   += OnViewportMouseEnter;
            this.ViewportWidget.LeaveNotifyEvent   += OnViewportMouseLeave;
            this.ViewportWidget.ConfigureEvent     += OnViewportConfigured;

            this.RenderingEngine = new ViewportRenderer(this.ViewportWidget);
            this.ViewportAlignment.Add(this.ViewportWidget);
            this.ViewportAlignment.ShowAll();

            this.AboutButton.Clicked       += OnAboutButtonClicked;
            this.PreferencesButton.Clicked += OnPreferencesButtonClicked;

            this.GameTabNotebook.ClearPages();

            this.ExportQueueTreeView.ButtonPressEvent += OnExportQueueButtonPressed;
            this.ExportQueueTreeView.GetColumn(0).SetCellDataFunc
            (
                this.ExportQueueTreeView.GetColumn(0).Cells[0],
                RenderExportQueueReferenceIcon
            );

            this.ExportQueueTreeView.GetColumn(0).Expand = true;
            this.ExportQueueTreeView.GetColumn(0).SetCellDataFunc
            (
                this.ExportQueueTreeView.GetColumn(0).Cells[1],
                RenderExportQueueReferenceName
            );

            this.RemoveQueueItem.Activated += OnQueueRemoveContextItemActivated;

            this.FileFilterComboBox.Changed += OnFilterChanged;

            /*
             *      Set up item control sections to default states
             */

            EnableControlPage(ControlPage.None);

            /*
             *      Bind item control events
             */

            this.RenderAlphaCheckButton.Toggled += (sender, args) =>
            {
                RenderableImage image = this.RenderingEngine.RenderTarget as RenderableImage;
                if (image == null)
                {
                    return;
                }

                image.RenderAlphaChannel = this.RenderAlphaCheckButton.Active;
            };

            this.RenderRedCheckButton.Toggled += (sender, args) =>
            {
                RenderableImage image = this.RenderingEngine.RenderTarget as RenderableImage;
                if (image == null)
                {
                    return;
                }

                image.RenderRedChannel = this.RenderRedCheckButton.Active;
            };

            this.RenderGreenCheckButton.Toggled += (sender, args) =>
            {
                RenderableImage image = this.RenderingEngine.RenderTarget as RenderableImage;
                if (image == null)
                {
                    return;
                }

                image.RenderGreenChannel = this.RenderGreenCheckButton.Active;
            };

            this.RenderBlueCheckButton.Toggled += (sender, args) =>
            {
                RenderableImage image = this.RenderingEngine.RenderTarget as RenderableImage;
                if (image == null)
                {
                    return;
                }

                image.RenderBlueChannel = this.RenderBlueCheckButton.Active;
            };

            this.RenderBoundsCheckButton.Toggled += (sender, args) =>
            {
                RenderableWorldModel wmo = this.RenderingEngine.RenderTarget as RenderableWorldModel;
                if (wmo != null)
                {
                    wmo.ShouldRenderBounds = this.RenderBoundsCheckButton.Active;
                }

                RenderableGameModel mdx = this.RenderingEngine.RenderTarget as RenderableGameModel;
                if (mdx != null)
                {
                    mdx.ShouldRenderBounds = this.RenderBoundsCheckButton.Active;
                }
            };

            this.RenderWireframeCheckButton.Toggled += (sender, args) =>
            {
                RenderableWorldModel wmo = this.RenderingEngine.RenderTarget as RenderableWorldModel;
                if (wmo != null)
                {
                    wmo.ShouldRenderWireframe = this.RenderWireframeCheckButton.Active;
                }
            };
        }
コード例 #26
0
ファイル: test-threads.cs プロジェクト: Dynalon/clutter-sharp
        public void ThreadMethod()
        {
            DoSomethingVerySlow();

            Idle.Add(data.HandleIdle);
        }
コード例 #27
0
        private static void Main(string[] args)
        {
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && Settings.PersistentSettings.debugConsole)
            {
                AllocConsole(); // needs to be the first call in the program to prevent weird bugs
            }
            if (!Directory.Exists(Settings.StorageLocation))
            {
                // Create Settings directory if it doesn't exist, as we need to stick our pidfile there.
                Directory.CreateDirectory(Settings.StorageLocation);
            }

            URIStartResult uriRes = URIStartResult.CLOSE;

            uriRes = IPCadapter.getInstance().HandleURIStart(args);
            switch (uriRes)
            {
            case URIStartResult.CLOSE:
                Environment.Exit(0);
                break;

            case URIStartResult.PARSE:
                Console.WriteLine($"Starting with args : {args[0]}");
                break;

            case URIStartResult.CONTINUE:
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            socket = new ClientSocket();

            //Create the Form Console interface.
            var thread = new Thread(OpenGUI);

            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                thread.SetApartmentState(ApartmentState.STA);
            }
            thread.Start();
            while (Settings.conInterface is null)
            {
                Thread.Sleep(250);
            }
            Task.Factory.StartNew(() => socket.Init())
            .Wait();     // run socket in background. Important to wait for init to have actually finished before continuing
            Task.Factory.StartNew(() => IPCadapter.getInstance().RegisterMinion()).Wait();

            // Add a GLib Idle handler to fix the issue here.
            Idle.Add(delegate
            {
                Task.Factory.StartNew(() => GameMemReader.getInstance().RunLoop()); // run loop in background
                if (uriRes == URIStartResult.PARSE)
                {
                    IPCadapter.getInstance().SendToken(args[0]);
                }
                return(false);
            });

            thread.Join();
        }
コード例 #28
0
    protected void InitializeUserInterface()
    {
        Title = "Neural Network Classifier";

        Confirm = new Dialog(
            "Are you sure?",
            this,
            DialogFlags.Modal,
            "Yes", ResponseType.Accept,
            "No", ResponseType.Cancel
            )
        {
            Resizable    = false,
            KeepAbove    = true,
            TypeHint     = WindowTypeHint.Dialog,
            WidthRequest = 250
        };

        Confirm.ActionArea.LayoutStyle = ButtonBoxStyle.Center;
        Confirm.WindowStateEvent      += OnWindowStateEvent;

        TextSaver = new FileChooserDialog(
            "Save Text File",
            this,
            FileChooserAction.Save,
            "Cancel", ResponseType.Cancel,
            "Save", ResponseType.Accept
            );

        TextLoader = new FileChooserDialog(
            "Load Text File",
            this,
            FileChooserAction.Open,
            "Cancel", ResponseType.Cancel,
            "Load", ResponseType.Accept
            );

        JsonLoader = new FileChooserDialog(
            "Load trained models",
            this,
            FileChooserAction.Open,
            "Cancel", ResponseType.Cancel,
            "Load", ResponseType.Accept
            );

        JsonSaver = new FileChooserDialog(
            "Save trained models",
            this,
            FileChooserAction.Save,
            "Cancel", ResponseType.Cancel,
            "Save", ResponseType.Accept
            );

        ImageSaver = new FileChooserDialog(
            "Save Filtered Image",
            this,
            FileChooserAction.Save,
            "Cancel", ResponseType.Cancel,
            "Save", ResponseType.Accept
            );

        TextLoader.AddFilter(AddFilter("Text files (csv/txt)", "*.txt", "*.csv"));
        TextLoader.Filter = TextLoader.Filters[0];

        TextSaver.AddFilter(AddFilter("txt", "*.txt"));
        TextSaver.AddFilter(AddFilter("csv", "*.csv"));
        TextSaver.Filter = TextSaver.Filters[0];

        JsonLoader.AddFilter(AddFilter("json", "*.json"));
        JsonSaver.AddFilter(AddFilter("json", "*.json"));

        Delimiters.Add(new Delimiter("Tab \\t", '\t'));
        Delimiters.Add(new Delimiter("Comma ,", ','));
        Delimiters.Add(new Delimiter("Space \\s", ' '));
        Delimiters.Add(new Delimiter("Vertical Pipe |", '|'));
        Delimiters.Add(new Delimiter("Colon :", ':'));
        Delimiters.Add(new Delimiter("Semi-Colon ;", ';'));
        Delimiters.Add(new Delimiter("Forward Slash /", '/'));
        Delimiters.Add(new Delimiter("Backward Slash \\", '\\'));

        ImageSaver.AddFilter(AddFilter("png", "*.png"));
        ImageSaver.AddFilter(AddFilter("jpg", "*.jpg", "*.jpeg"));
        ImageSaver.AddFilter(AddFilter("tif", "*.tif", "*.tiff"));
        ImageSaver.AddFilter(AddFilter("bmp", "*.bmp"));
        ImageSaver.AddFilter(AddFilter("ico", "*.ico"));
        ImageSaver.Filter = ImageSaver.Filters[0];

        UpdateDelimiterBox(DelimiterBox, Delimiters);

        UpdatePlotTypes();

        PlotImage.Pixbuf = Common.Pixbuf(PlotImage.WidthRequest, PlotImage.HeightRequest);

        ToggleControls(Paused);

        Idle.Add(new IdleHandler(OnIdle));
    }
コード例 #29
0
        public void WriteLineFormatted(string str, bool acceptnewlines = true)
        {
            if (!(_consoleTextView is null))
            {
                Idle.Add(delegate
                {
                    lock (locker)
                    {
                        if (!string.IsNullOrEmpty(str))
                        {
                            if (!acceptnewlines)
                            {
                                str = str.Replace('\n', ' ');
                            }
                            var parts = str.Split(new[] { '§' });
                            if (parts[0].Length > 0)
                            {
                                AppendColoredTextToConsole(parts[0], Color.White);
                            }
                            for (var i = 1; i < parts.Length; i++)
                            {
                                var charColor = Color.White;
                                if (parts[i].Length > 0)
                                {
                                    switch (parts[i][0])
                                    {
                                    case '0':
                                        charColor = Color.Gray;
                                        break;     //Should be Black but Black is non-readable on a black background

                                    case '1':
                                        charColor = Color.RoyalBlue;
                                        break;

                                    case '2':
                                        charColor = Color.Green;
                                        break;

                                    case '3':
                                        charColor = Color.DarkCyan;
                                        break;

                                    case '4':
                                        charColor = Color.DarkRed;
                                        break;

                                    case '5':
                                        charColor = Color.MediumPurple;
                                        break;

                                    case '6':
                                        charColor = Color.DarkKhaki;
                                        break;

                                    case '7':
                                        charColor = Color.Gray;
                                        break;

                                    case '8':
                                        charColor = Color.DarkGray;
                                        break;

                                    case '9':
                                        charColor = Color.LightBlue;
                                        break;

                                    case 'a':
                                        charColor = Color.Lime;
                                        break;

                                    case 'b':
                                        charColor = Color.Cyan;
                                        break;

                                    case 'c':
                                        charColor = Color.Red;
                                        break;

                                    case 'd':
                                        charColor = Color.Magenta;
                                        break;

                                    case 'e':
                                        charColor = Color.Yellow;
                                        break;

                                    case 'f':
                                        charColor = Color.White;
                                        break;

                                    case 'o':
                                        charColor = Color.Orange;
                                        break;

                                    case 'n':
                                        charColor = Color.SaddleBrown;
                                        break;

                                    case 'r':
                                        charColor = Color.Gray;
                                        break;
                                    }

                                    if (parts[i].Length > 1)
                                    {
                                        AppendColoredTextToConsole(parts[i].Substring(1, parts[i].Length - 1),
                                                                   charColor);
                                    }
                                }
                            }
                        }

                        AppendColoredTextToConsole("", Color.White, true);
                        return(false);
                    }

                    //autoscroll();
                });
            }
        }
コード例 #30
0
ファイル: MainWindow.cs プロジェクト: Fiver/Everlook
        /// <summary>
        /// Initializes a new instance of the <see cref="MainWindow"/> class.
        /// </summary>
        /// <param name="builder">Builder.</param>
        /// <param name="handle">Handle.</param>
        private MainWindow(Builder builder, IntPtr handle)
            : base(handle)
        {
            builder.Autoconnect(this);
            this.DeleteEvent += OnDeleteEvent;

            this.UIThreadScheduler = TaskScheduler.FromCurrentSynchronizationContext();

            this.ViewportWidget = new GLWidget
            {
                CanFocus             = true,
                SingleBuffer         = false,
                ColorBPP             = 24,
                DepthBPP             = 24,
                AccumulatorBPP       = 24,
                Samples              = 4,
                GLVersionMajor       = 3,
                GLVersionMinor       = 3,
                GraphicsContextFlags = GraphicsContextFlags.Default
            };

            this.ViewportWidget.Events |=
                EventMask.ButtonPressMask |
                EventMask.ButtonReleaseMask |
                EventMask.KeyPressMask |
                EventMask.KeyReleaseMask;

            this.ViewportWidget.Initialized += delegate
            {
                // Initialize all OpenGL rendering parameters
                this.RenderingEngine.Initialize();
                Idle.Add(OnIdleRenderFrame);
            };

            this.ViewportWidget.ButtonPressEvent   += OnViewportButtonPressed;
            this.ViewportWidget.ButtonReleaseEvent += OnViewportButtonReleased;
            this.ViewportWidget.ConfigureEvent     += OnViewportConfigured;

            this.RenderingEngine = new ViewportRenderer(this.ViewportWidget);
            this.ViewportAlignment.Add(this.ViewportWidget);
            this.ViewportAlignment.ShowAll();

            // Add a staggered idle handler for adding enumerated items to the interface
            //Timeout.Add(1, OnIdle, Priority.DefaultIdle);
            Idle.Add(OnIdle, Priority.DefaultIdle);

            this.AboutButton.Clicked       += OnAboutButtonClicked;
            this.PreferencesButton.Clicked += OnPreferencesButtonClicked;

            this.GameExplorerTreeView.RowExpanded       += OnGameExplorerRowExpanded;
            this.GameExplorerTreeView.RowActivated      += OnGameExplorerRowActivated;
            this.GameExplorerTreeView.Selection.Changed += OnGameExplorerSelectionChanged;
            this.GameExplorerTreeView.ButtonPressEvent  += OnGameExplorerButtonPressed;

            this.GameExplorerTreeSorter.SetSortFunc(1, SortGameExplorerRow);
            this.GameExplorerTreeSorter.SetSortColumnId(1, SortType.Descending);

            this.ExportQueueTreeView.ButtonPressEvent += OnExportQueueButtonPressed;

            this.ExtractItem.Activated += OnExtractContextItemActivated;
            this.ExportItem.Activated  += OnExportItemContextItemActivated;
            this.OpenItem.Activated    += OnOpenContextItemActivated;
            this.CopyItem.Activated    += OnCopyContextItemActivated;
            this.QueueItem.Activated   += OnQueueContextItemActivated;

            this.RemoveQueueItem.Activated += OnQueueRemoveContextItemActivated;

            this.FiletreeBuilder = new ExplorerBuilder
                                   (
                new ExplorerStore
                (
                    this.GameExplorerTreeStore,
                    this.GameExplorerTreeFilter,
                    this.GameExplorerTreeSorter
                )
                                   );
            this.FiletreeBuilder.PackageGroupAdded += OnPackageGroupAdded;
            this.FiletreeBuilder.PackageEnumerated += OnPackageEnumerated;
            this.FiletreeBuilder.Start();

            /*
             *      Set up item control sections to default states
             */

            EnableControlPage(ControlPage.None);
        }