/// <summary> /// Handles loading of file, starts parser on separate thread /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LoadButton_Click(object sender, RoutedEventArgs e) { OpenFileDialog file = new OpenFileDialog(); bool? result = file.ShowDialog(); if (result == true) { string path = file.FileName; if (Path.GetExtension(path).ToLower() == ".p3d") { ChangeStatus(new StatusUpdatedEventArguments("Loading p3d file", 10)); SelectedElement = null; P3DViewItems.Clear(); itemInfo.Children.Clear(); P3DFile = new P3D(this); P3DFile.StatusUpdated += new StatusUpdatedEventHandler(ChangeStatus); Task.Run(() => P3DFile.LoadP3D(path)); } else { if (Path.GetExtension(path).ToLower() == ".3ds") { ChangeStatus(new StatusUpdatedEventArguments("Loading 3ds file", 10)); P3DViewItems.Clear(); itemInfo.Children.Clear(); File3DS = LIB3DS.lib3ds_file_open(path); P3DFile = new P3D(this); Task.Run(() => P3DFile.Load3DS(File3DS)); return; } MessageBox.Show("Format not supported"); } } }
/// <summary> /// Handles displaying selected P3DElement info in the left panel /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void P3DView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { //MessageBox.Show( ((P3DElementView)((TreeViewItem)e.NewValue).Header).content.Content.ToString()); itemInfo.Children.Clear(); try { if (e.NewValue as TreeViewItem != null) { P3DElement element = ((P3DElementView)((TreeViewItem)e.NewValue).Header).ParentElement; if (element == null) { return; } foreach (IToolPanel item in element.GetItemInfo()) { if (item is InputText) { itemInfo.Children.Add((InputText)item); } else { itemInfo.Children.Add((InputBool)item); } } } } catch (Exception exc) { MessageBox.Show(exc.Message + " - //SelectedItemChanged// "); } }
public P3DElementView(P3DElement parent, string content, Bitmap icon) { InitializeComponent(); ParentElement = parent; this.content.Text = content; this.icon.Source = ImageSourceForBitmap(icon); }
public InputBool(P3DElement parent, string description, bool value, bool editable, string valToChange) { InitializeComponent(); ParentElement = parent; Value.Content = description; Value.IsChecked = value; ValToChange = valToChange; }
public InputText(P3DElement parent, string description, string value, bool editable, string valToChange) { InitializeComponent(); ParentElement = parent; Description.Text = description; Description.IsEnabled = editable; Value.Text = value; Value.IsEnabled = editable; ValToChange = valToChange; }
/// <summary> /// Handles displaying of context menu options /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void P3DView_MouseRightButtonDown(object sender, MouseButtonEventArgs e) { P3DElement element = ((P3DElementView)e.Source).ParentElement; SelectedElement = element; ContextMenu menu = new ContextMenu(); MenuItem mi; if (element is LightsChunk) { mi = new MenuItem { Header = "Add Light" }; mi.Click += P3DView_OnContextMenuItemSelected; menu.Items.Add(mi); mi = new MenuItem { Header = "Export chunk" }; mi.Click += P3DView_OnContextMenuItemSelected; menu.Items.Add(mi); mi = new MenuItem { Header = "Import chunk" }; mi.Click += P3DView_OnContextMenuItemSelected; menu.Items.Add(mi); } if (element is Light) { mi = new MenuItem { Header = "Clone light" }; mi.Click += P3DView_OnContextMenuItemSelected; menu.Items.Add(mi); mi = new MenuItem { Header = "Delete light" }; mi.Click += P3DView_OnContextMenuItemSelected; menu.Items.Add(mi); } menu.PlacementTarget = e.Source as P3DElementView; menu.IsOpen = true; menu.MouseLeftButtonDown += P3DView_OnContextMenuItemSelected; }
public P3DElementView(P3DElement parent, string content) { InitializeComponent(); ParentElement = parent; this.content.Text = content; }