public static uint Inc(this uint i) { return(i.Add(1)); }
private void UI_MouseClick(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Right) { return; } ContextMenu cm = new ContextMenu { MenuItems = { new Item("Renderer", self => { foreach (var renderer in availableRenderers) { self.Add(new RadioItem(renderer.RendererName, y => { y.Checked = renderer == _renderer; y.Click += delegate { SetRenderer(renderer); }; })); } }), new Item("Filter", x => { var filters = new Dictionary <string, FilterMode>() { { "None", FilterMode.NearestNeighbor }, { "Linear", FilterMode.Linear }, }; foreach (var filter in filters) { x.Add(new RadioItem(filter.Key, y => { y.Checked = filter.Value == _filterMode; y.Click += delegate { _filterMode = filter.Value; }; })); } }), new SeparatorItem(), new Item("Screenshot (F12)", x => { x.Click += delegate { Screenshot(); }; }), new Item(suspended ? "&Play (F2)" : "&Pause (F3)", x => { x.Click += delegate { suspended ^= true; }; }), new Item("&Speed", x => { foreach (var speed in speeds) { x.Add(new RadioItem($"{speed}x", y => { y.Checked = speed == activeSpeed; y.Click += delegate { activeSpeed = speed; }; })); } }), new Item("&Reset..."), } }; cm.Show(this, new Point(e.X, e.Y)); }