Esempio n. 1
0
        // This handles our dragging and dropping to drag png files into the MainView as a spritebox.
        private void ProjectView_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                ListView     listView     = sender as ListView;
                ListViewItem listViewItem = FindAncestor <ListViewItem>((DependencyObject)e.OriginalSource);

                // If there was no listviewitem selected, break.
                if (listViewItem == null)
                {
                    return;
                }

                ProjectListViewElement element = (ProjectListViewElement)ProjectView.ItemContainerGenerator.ItemFromContainer(listViewItem);

                if (element == null)
                {
                    return;
                }

                DataObject dragData = new DataObject("ProjectListViewElement", element);

                DragDrop.DoDragDrop(listViewItem, dragData, DragDropEffects.Copy | DragDropEffects.Move);
            }
        }
Esempio n. 2
0
        private void ProjectView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            ProjectListViewElement element = ProjectView.SelectedItem as ProjectListViewElement;

            if (element != null && element.FolderVisibility == Visibility.Visible)
            {
                if (Directory.Exists($"{_CurrentDirectory}/{element.FileName}"))
                {
                    string dir = $"{_CurrentDirectory}/{element.FileName}";
                    _CurrentDirectory = dir;
                    UpdateExplorer();
                }
            }
        }
Esempio n. 3
0
        public void UpdateExplorer()
        {
            if (ProjectView.ItemsSource as ObservableCollection <ProjectListViewElement> == null)
            {
                ProjectView.ItemsSource = ListViewElements;
            }

            ObservableCollection <ProjectListViewElement> elements = ProjectView.ItemsSource as ObservableCollection <ProjectListViewElement>;

            elements.Clear();

            if (_CurrentDirectory.Length == 0)
            {
                return;
            }

            foreach (string folder in Directory.GetDirectories(_CurrentDirectory))
            {
                FileInfo info     = new FileInfo(folder);
                string   fileName = info.Name;

                ProjectListViewElement element = new ProjectListViewElement()
                {
                    FileName         = fileName,
                    FolderVisibility = Visibility.Visible,
                    FileVisibility   = Visibility.Hidden
                };

                elements.Add(element);
            }

            foreach (string file in Directory.GetFiles(_CurrentDirectory))
            {
                FileInfo info     = new FileInfo(file);
                string   fileName = info.Name;

                ProjectListViewElement element = new ProjectListViewElement()
                {
                    FileName         = fileName,
                    FolderVisibility = Visibility.Hidden,
                    FileVisibility   = Visibility.Visible
                };

                elements.Add(element);
            }
        }
Esempio n. 4
0
        // For dragging sprites into main sprite view
        private void MainView_DragEnter(object sender, DragEventArgs e)
        {
            if (!e.Data.GetDataPresent("ProjectListViewElement"))
            {
                e.Effects = DragDropEffects.None;
            }
            else
            {
                ProjectListViewElement ViewElement = (ProjectListViewElement)e.Data.GetData("ProjectListViewElement");
                FileInfo info = new FileInfo($"{project.GetProjectInfo().ContentPath}/{ViewElement.FileName}");

                if (info.Extension != ".png")
                {
                    e.Effects = DragDropEffects.None;
                }
            }
        }
Esempio n. 5
0
        // For dropping sprites into main sprite view
        private void MainView_Drop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent("ProjectListViewElement"))
            {
                ProjectListViewElement ViewElement = (ProjectListViewElement)e.Data.GetData("ProjectListViewElement");
                FileInfo info         = new FileInfo($"{_CurrentDirectory}/{ViewElement.FileName}");
                string   safeFileName = Util.GetRelativePath(project.GetContentPath(), _CurrentDirectory) + info.Name.Substring(0, info.Name.Length - info.Extension.Length);

                Console.WriteLine(safeFileName);

                Texture2D tex = ContentManager.GetTexture(safeFileName);

                if (info.Extension == ".png" && tex != null)
                {
                    MainWindowViewModel.MonogameWindow.AddPreviewSpriteBox(new Spritebox(new Vector2(0, 0), tex.Width, tex.Height, 0, safeFileName, 0, new Rectangle(0, 0, tex.Width, tex.Height), MainWindowViewModel.MonogameWindow.GetPreviewObject()));
                }
            }
        }