Beispiel #1
0
        /// <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");
                }
            }
        }
Beispiel #2
0
 /// <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// ");
     }
 }
Beispiel #3
0
 public P3DElementView(P3DElement parent, string content, Bitmap icon)
 {
     InitializeComponent();
     ParentElement     = parent;
     this.content.Text = content;
     this.icon.Source  = ImageSourceForBitmap(icon);
 }
Beispiel #4
0
 public InputBool(P3DElement parent, string description, bool value, bool editable, string valToChange)
 {
     InitializeComponent();
     ParentElement   = parent;
     Value.Content   = description;
     Value.IsChecked = value;
     ValToChange     = valToChange;
 }
Beispiel #5
0
 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;
 }
Beispiel #6
0
        /// <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;
        }
Beispiel #7
0
 public P3DElementView(P3DElement parent, string content)
 {
     InitializeComponent();
     ParentElement     = parent;
     this.content.Text = content;
 }