Exemplo n.º 1
0
 private void FavouritesTreeDragDrop(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent(typeof(TextureItem)) || e.Data.GetDataPresent(typeof(List <TextureItem>)))
     {
         var pt   = FavouritesTree.PointToClient(new Point(e.X, e.Y));
         var dest = FavouritesTree.GetNodeAt(pt);
         if (dest != null && dest.Tag is FavouriteTextureFolder)
         {
             var data = e.Data.GetDataPresent(typeof(TextureItem))
                 ? new List <TextureItem> {
                 (TextureItem)e.Data.GetData(typeof(TextureItem))
             }
                 : (List <TextureItem>)e.Data.GetData(typeof(List <TextureItem>));
             var folder = (FavouriteTextureFolder)dest.Tag;
             foreach (var ti in data)
             {
                 if (!folder.Items.Contains(ti.Name, StringComparer.InvariantCultureIgnoreCase))
                 {
                     folder.Items.Add(ti.Name);
                 }
             }
             UpdateFavouritesList();
         }
     }
     if (_highlightedNode != null)
     {
         _highlightedNode.BackColor = Color.Transparent;
     }
     _highlightedNode = null;
 }
Exemplo n.º 2
0
        private void FavouritesTreeDragOver(object sender, DragEventArgs e)
        {
            if (!e.Data.GetDataPresent(typeof(TextureItem)) && !e.Data.GetDataPresent(typeof(List <TextureItem>)))
            {
                return;
            }

            var pt = FavouritesTree.PointToClient(new Point(e.X, e.Y));
            var highlightedNode = FavouritesTree.GetNodeAt(pt);

            if (highlightedNode == null || !(highlightedNode.Tag is FavouriteTextureFolder))
            {
                if (_highlightedNode != null)
                {
                    _highlightedNode.BackColor = Color.Transparent;
                }
                _highlightedNode = null;
                e.Effect         = DragDropEffects.None;
                return;
            }

            if (_highlightedNode != null)
            {
                _highlightedNode.BackColor = Color.Transparent;
            }
            _highlightedNode           = highlightedNode;
            _highlightedNode.BackColor = Color.LightSkyBlue;
            e.Effect = DragDropEffects.Copy;
        }
Exemplo n.º 3
0
        private void UpdateFavouritesList()
        {
            var selected    = FavouritesTree.SelectedNode;
            var selectedKey = selected == null?GetMemory <string>("SelectedFavourite") : selected.Name;

            var favourites = SettingsManager.FavouriteTextureFolders;

            FavouritesTree.Nodes.Clear();
            var      parent = FavouritesTree.Nodes.Add("", "All Favourites");
            TreeNode reselect;

            AddFavouriteTextureFolders(parent, favourites, selectedKey, out reselect);
            FavouritesTree.SelectedNode = reselect;
            FavouritesTree.ExpandAll();
        }