public View3dControl(string name, bool gdi_compatible_backbuffer) { try { BackColor = Color.Gray; if (this.IsInDesignMode()) { return; } SetStyle(ControlStyles.Selectable, false); View3d = View3d.Create(); Window = new View3d.Window(View3d, Handle, gdi_compatible_backbuffer, dbg_name: name); Window.Error += (s, a) => ReportError?.Invoke(this, new ReportErrorEventArgs(a.Message)); InitializeComponent(); Name = name; ClickTimeMS = 180; MouseNavigation = true; DefaultKeyboardShortcuts = true; } catch { Dispose(); throw; } }
public Model(string[] args) { Sync = SynchronizationContext.Current ?? throw new Exception("No synchronisation context available"); View3d = View3d.Create(); StartupOptions = new StartupOptions(args); Settings = new SettingsData(StartupOptions.SettingsPath); FileWatchTimer = new DispatcherTimer(DispatcherPriority.ApplicationIdle); Scenes = new ObservableCollection <SceneUI>(); Scripts = new ObservableCollection <ScriptUI>(); Assets = new ObservableCollection <AssetUI>(); }
public View3dControl() { InitializeComponent(); Stretch = Stretch.Fill; StretchDirection = StretchDirection.Both; UseLayoutRounding = true; Focusable = true; if (DesignerProperties.GetIsInDesignMode(this)) { return; } try { // Initialise View3d in off-screen only mode (i.e. no window handle) View3d = View3d.Create(); Window = new View3d.Window(View3d, IntPtr.Zero); Window.Error += (s, a) => OnReportError(new ReportErrorEventArgs(a.Message)); Camera.Lookat(new v4(0, 0, 10, 1), v4.Origin, v4.YAxis); Camera.ClipPlanes(0.01f, 1000f, true); // Create a D3D11 off-screen render target image source Source = D3DImage = new D3D11Image(); // Set defaults BackgroundColour = Window.BackgroundColour; DesiredPixelAspect = 1; ClickTimeMS = 180; MouseNavigation = true; DefaultKeyboardShortcuts = true; ViewPreset = EViewPreset.Current; // Default context menu implementation if (ContextMenu != null && ContextMenu.DataContext == null) { ContextMenu.DataContext = this; } InitCommands(); DataContext = this; } catch { Dispose(); throw; } }
protected Element(Guid id, m4x4 position, string name) { View3d = View3d.Create(); m_vbuf = new List <View3d.Vertex>(); m_nbuf = new List <View3d.Nugget>(); m_ibuf = new List <ushort>(); Id = id; Name = name; m_chart = null; m_impl_position = position; m_impl_bounds = new BBox(position.pos, v4.Zero); m_impl_selected = false; m_impl_hovered = false; m_impl_visible = true; m_impl_visible_to_find_range = true; m_impl_screen_space = false; m_impl_enabled = true; IsInvalidated = true; UserData = new Dictionary <Guid, object>(); }
protected Element(Guid id, string?name = null, m4x4?position = null) { View3d = View3d.Create(); m_vbuf = new List <View3d.Vertex>(); m_nbuf = new List <View3d.Nugget>(); m_ibuf = new List <ushort>(); Id = id; m_name = name ?? string.Empty; m_colour = Colour32.Black; m_chart = null; m_o2w = position ?? m4x4.Identity; m_selected = false; m_hovered = false; m_visible = true; m_visible_to_find_range = true; m_screen_space = false; m_enabled = true; IsInvalidated = true; UserData = new Dictionary <Guid, object>(); }
public LdrEditorUI() { InitializeComponent(); m_view3d = View3d.Create(); m_sci.InitLdrStyle(); }
public MainWindow() { InitializeComponent(); View3d = View3d.Create(); View3d.Error += (object?sender, View3d.ErrorEventArgs e) => MsgBox.Show(this, e.Message, "View3d Error"); Things = new ListCollectionView(m_things); #if DEBUG PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.Critical; #endif m_recent_files.Add("One", false); m_recent_files.Add("Two", false); m_recent_files.Add("Three"); m_recent_files.RecentFileSelected += s => Debug.WriteLine(s); ShowColourPicker = Command.Create(this, () => { new ColourPickerUI().Show(); }); ShowChart = Command.Create(this, () => { new ChartUI().Show(); }); ShowDiagram = Command.Create(this, () => { new DiagramUI().Show(); }); ShowDiagram2 = Command.Create(this, () => { new Diagram2UI().Show(); }); ShowDirectionPicker = Command.Create(this, () => { var win = new Window { Owner = this, WindowStartupLocation = WindowStartupLocation.CenterOwner, }; win.Content = new DirectionPicker(); win.ShowDialog(); }); ShowDockContainer = Command.Create(this, () => { new DockContainerUI().Show(); }); ShowJoystick = Command.Create(this, () => { new JoystickUI().Show(); }); ShowMsgBox = Command.Create(this, () => { var msg = "Informative isn't it\nThis is a really really really long message to test the automatic resizing of the dialog window to a desirable aspect ratio. " + "It's intended to be used for displaying error messages that can sometimes be really long. Once I had a message that was so long, it made the message " + "box extend off the screen and you couldn't click the OK button. That was a real pain so that's why I've added this auto aspect ratio fixing thing. " + "Hopefully it'll do the job in all cases and I'll never have to worry about it again...\n Hopefully..."; var dlg = new MsgBox(this, msg, "Massage Box", MsgBox.EButtons.YesNoCancel, MsgBox.EIcon.Exclamation) { ShowAlwaysCheckbox = true }; dlg.ShowDialog(); }); ShowListUI = Command.Create(this, () => { var dlg = new ListUI(this) { Title = "Listing to the Left", Prompt = "Select anything you like", SelectionMode = SelectionMode.Multiple, AllowCancel = false, }; dlg.Items.AddRange(new[] { "One", "Two", "Three", "Phooore, was that you?" }); if (dlg.ShowDialog() == true) { MsgBox.Show(this, $"{string.Join(",", dlg.SelectedItems.Cast<string>())}! Good Choice!", "Result", MsgBox.EButtons.OK); } }); ShowLogUI = Command.Create(this, () => { var log_ui = new LogControl { LogEntryPattern = new Regex(@"^(?<Tag>.*?)\|(?<Level>.*?)\|(?<Timestamp>.*?)\|(?<Message>.*)", RegexOptions.Singleline | RegexOptions.Multiline | RegexOptions.CultureInvariant | RegexOptions.Compiled) }; var dlg = new Window { Title = "Log UI", Content = log_ui, ResizeMode = ResizeMode.CanResizeWithGrip }; dlg.Show(); }); ShowPatternEditor = Command.Create(this, () => { new PatternEditorUI().Show(); }); ShowProgressUI = Command.Create(this, () => { var dlg = new ProgressUI(this, "Test Progress", "Testicles", System.Drawing.SystemIcons.Exclamation.ToBitmapSource(), CancellationToken.None, (u, _, p) => { for (int i = 0, iend = 100; !u.CancelPending && i != iend; ++i) { p(new ProgressUI.UserState { Description = $"Testicle: {i / 10}", FractionComplete = 1.0 * i / iend, ProgressBarText = $"I'm up to {i}/{iend}", }); Thread.Sleep(100); } }) { AllowCancel = true }; // Modal using (dlg) { var res = dlg.ShowDialog(500); if (res == true) { MessageBox.Show("Completed"); } if (res == false) { MessageBox.Show("Cancelled"); } } // Non-modal //dlg.Show(); }); ShowPromptUI = Command.Create(this, () => { var dlg = new PromptUI(this) { Title = "Prompting isn't it...", Prompt = "I'll have what she's having. Really long message\r\nwith new lines in and \r\n other stuff\r\n\r\nEnter a positive number", Value = "Really long value as well, that hopefully wraps around", Units = "kgs", Validate = x => double.TryParse(x, out var v) && v >= 0 ? ValidationResult.ValidResult : new ValidationResult(false, "Enter a positive number"), Image = (BitmapImage)FindResource("pencil"), MultiLine = true, }; if (dlg.ShowDialog() == true) { double.Parse(dlg.Value); } });