コード例 #1
0
 private void fl_CanSelectItemNeeded(object sender, FastTreeNS.BoolItemEventArgs e)
 {
     switch (e.ItemIndex % 20)
     {
         case 15: e.Result = false; break;
     }
 }
コード例 #2
0
 private void fl_ItemBackColorNeeded(object sender, FastTreeNS.ColorItemEventArgs e)
 {
     if (e.ItemIndex == 10)
         e.Result = Color.SteelBlue;
     if (e.ItemIndex == 8)
         e.Result = DateTime.Now.Millisecond > 500 ? Color.Transparent : Color.Tomato;
 }
コード例 #3
0
 private void fl_ItemForeColorNeeded(object sender, FastTreeNS.ColorItemEventArgs e)
 {
     if (e.ItemIndex == 1)
         e.Result = Color.Red;
     if (e.ItemIndex == 10)
         e.Result = Color.White;
 }
コード例 #4
0
 private void fl_ItemTextNeeded(object sender, FastTreeNS.StringItemEventArgs e)
 {
     if (e.ItemIndex == 0)
         e.Result = "Time " + DateTime.Now.TimeOfDay;
     else
         e.Result = "Item " + e.ItemIndex;
 }
コード例 #5
0
 private void fl_PaintItem(object sender, FastTreeNS.PaintItemContentEventArgs e)
 {
     if (e.Info.ItemIndex > 12 && e.Info.ItemIndex < 16)
     {
         //draw default background
         fl.DrawItemBackgound(e.Graphics, e.Info);
         //draw default selection
         if (fl.SelectedItemIndexes.Contains(e.Info.ItemIndex))
             fl.DrawSelection(e.Graphics, e.Info);
         //draw icon
         fl.DrawItemIcons(e.Graphics, e.Info);
         //draw custom bold text
         using (var font = new Font(Font, FontStyle.Bold))
             e.Graphics.DrawString(e.Info.Text, font, Brushes.Black, e.Info.TextRect);
     }
     else
     if (e.Info.ItemIndex == 18)
     {
         //draw whole item
         fl.DrawItemWhole(e.Graphics, e.Info);
         //draw border
         e.Graphics.DrawRectangle(Pens.Gray, e.Info.TextAndIconRect);
     }
     else
     if (e.Info.ItemIndex == 3)
     {
         //draw whole item
         fl.DrawItemWhole(e.Graphics, e.Info);
         //draw second icon
         e.Graphics.DrawImage(imageList1.Images[1], new Point(e.Info.X - 16, e.Info.Rect.Top));
     }
     else
         //default drawing
         fl.DrawItemWhole(e.Graphics, e.Info);
 }
コード例 #6
0
        private void ft_NodeChildrenNeeded(object sender, FastTreeNS.NodeChildrenNeededEventArgs e)
        {
            var path = e.Node as string;

            //root ?
            if (path == null)
            {
                //return driver's list
                e.Children = DriveInfo.GetDrives().Select(d => d.RootDirectory.FullName).ToList();
                return;
            }

            //path is not dir ?
            if (!Directory.Exists(path))
                return;

            //get subdirs and files
            string[] dirs, files;

            try
            {
                dirs = Directory.GetDirectories(path);
                files = Directory.GetFiles(path);
            }
            catch
            {
                return;//UnauthorizedAccessException
            }

            e.Children = dirs.Concat(files);
        }
コード例 #7
0
        private void ft_NodeTextNeeded(object sender, FastTreeNS.StringNodeEventArgs e)
        {
            var path = e.Node as string;

            e.Result = Path.GetFileName(path);
            if (string.IsNullOrEmpty(e.Result))
                e.Result = path;
        }
コード例 #8
0
 private void fl_ItemForeColorNeeded(object sender, FastTreeNS.ColorItemEventArgs e)
 {
     switch (e.ItemIndex % 20)
     {
         case 5: e.Result = Color.Red; break;
         case 15: e.Result = Color.Silver; break;
     }
 }
コード例 #9
0
 private void fl_ItemTextNeeded(object sender, FastTreeNS.StringItemEventArgs e)
 {
     switch(e.ItemIndex % 20)
     {
         case 5: e.Result = "Readonly item " + e.ItemIndex + ". You can not check/uncheck this item."; break;
         case 15: e.Result = "Disabled item " + e.ItemIndex + ". You can not select this item."; break;
         default: e.Result = "Regular item " + e.ItemIndex; break;
     }
 }
コード例 #10
0
        private void ft_DropOverNode(object sender, FastTreeNS.DragOverItemEventArgs e)
        {
            var draggedNodes = (e.Data.GetData(typeof(HashSet<object>)) as HashSet<object>).ToList().Cast<Node>();
            var targetNode = e.Tag as Node;
            //
            switch(e.InsertEffect)
            {
                case FastTreeNS.InsertEffect.AddAsChild: AddChild(draggedNodes, targetNode); break;
                case FastTreeNS.InsertEffect.InsertBefore: InsertBefore(draggedNodes, targetNode); break;
                case FastTreeNS.InsertEffect.InsertAfter: InsertAfter(draggedNodes, targetNode); break;
            }

            ft.Build(root);
        }
コード例 #11
0
        private void ft_DragOverNode(object sender, FastTreeNS.DragOverItemEventArgs e)
        {
            var draggedNodes = (e.Data.GetData(typeof(HashSet<object>)) as HashSet<object>).ToList().Cast<Node>();
            var targetNode = e.Tag as Node;

            //check if targetNode is child of draggedNodes
            foreach(var n in draggedNodes)
            if (targetNode.IsChildOf(n) || n == targetNode)
                return;
            //
            e.Effect = e.AllowedEffect;
            if(e.X > e.TextRect.Left +  50)
                e.InsertEffect = FastTreeNS.InsertEffect.AddAsChild;
            else
            if(e.Y < e.TextRect.Top + 10)
                e.InsertEffect = FastTreeNS.InsertEffect.InsertBefore;
            else
                e.InsertEffect = FastTreeNS.InsertEffect.InsertAfter;
        }
コード例 #12
0
 private void fl_ItemIndentNeeded(object sender, FastTreeNS.IntItemEventArgs e)
 {
     if (e.ItemIndex == 5)
         e.Result = 30;
 }
コード例 #13
0
 private void fl_ItemIconNeeded(object sender, FastTreeNS.ImageItemEventArgs e)
 {
     if (e.ItemIndex == 1)
         e.Result = DateTime.Now.Millisecond > 500 ? null : imageList1.Images[0];
 }
コード例 #14
0
 private void fl_ItemTextNeeded(object sender, FastTreeNS.StringItemEventArgs e)
 {
     e.Result = list[e.ItemIndex].Name;
 }
コード例 #15
0
 private void fl_ItemCheckedStateChanged(object sender, FastTreeNS.ItemCheckedStateChangedEventArgs e)
 {
     list[e.ItemIndex].Checked = e.Checked;
 }
コード例 #16
0
 private void fl_ItemDrag(object sender, FastTreeNS.ItemDragEventArgs e)
 {
     fl.DoDragDrop(e.ItemIndex, DragDropEffects.Copy);
 }
コード例 #17
0
        private void ft_NodeIconNeeded(object sender, FastTreeNS.ImageNodeEventArgs e)
        {
            var path = e.Node as string;

            e.Result = File.Exists(path) ? Resources.default_icon : Resources.folder;
        }
コード例 #18
0
 private void fl_ItemExpandedStateChanged(object sender, FastTreeNS.ItemExpandedStateChangedEventArgs e)
 {
     expandedItemIndex = e.Expanded ? e.ItemIndex : -1;
     fl.BuildNeeded();
 }
コード例 #19
0
 private void fl_ItemCheckStateNeeded(object sender, FastTreeNS.BoolItemEventArgs e)
 {
     e.Result = list[e.ItemIndex].Checked;
 }
コード例 #20
0
 private void fl_ItemHeightNeeded(object sender, FastTreeNS.IntItemEventArgs e)
 {
     if (e.ItemIndex == 10)
         e.Result = 40;
 }
コード例 #21
0
 private void fl_ItemTextNeeded(object sender, FastTreeNS.StringItemEventArgs e)
 {
     e.Result = "Item " + e.ItemIndex;
 }
コード例 #22
0
 private void ft_NodeChildrenNeeded(object sender, FastTreeNS.NodeChildrenNeededEventArgs e)
 {
     e.Children = GenerateNodes(e.Node as string, 100000);
 }