External/Aga.Controls/Tree/Input/InputWithShift.cs
author StephaneLenclud
Thu, 18 Apr 2013 23:25:10 +0200
branchMiniDisplay
changeset 444 9b09e2ee0968
permissions -rw-r--r--
Front View plug-in does not init if no sensor added.
Fixing some format to make strings shorter.
Now trying to start SoundGraphAccess.exe process from same directory.
Packed mode now can display three sensors along with the current time.
moel@345
     1
using System;
moel@345
     2
using System.Collections.Generic;
moel@345
     3
using System.Text;
moel@345
     4
moel@345
     5
namespace Aga.Controls.Tree
moel@345
     6
{
moel@345
     7
	internal class InputWithShift: NormalInputState
moel@345
     8
	{
moel@345
     9
		public InputWithShift(TreeViewAdv tree): base(tree)
moel@345
    10
		{
moel@345
    11
		}
moel@345
    12
moel@345
    13
		protected override void FocusRow(TreeNodeAdv node)
moel@345
    14
		{
moel@345
    15
			Tree.SuspendSelectionEvent = true;
moel@345
    16
			try
moel@345
    17
			{
moel@345
    18
				if (Tree.SelectionMode == TreeSelectionMode.Single || Tree.SelectionStart == null)
moel@345
    19
					base.FocusRow(node);
moel@345
    20
				else if (CanSelect(node))
moel@345
    21
				{
moel@345
    22
					SelectAllFromStart(node);
moel@345
    23
					Tree.CurrentNode = node;
moel@345
    24
					Tree.ScrollTo(node);
moel@345
    25
				}
moel@345
    26
			}
moel@345
    27
			finally
moel@345
    28
			{
moel@345
    29
				Tree.SuspendSelectionEvent = false;
moel@345
    30
			}
moel@345
    31
		}
moel@345
    32
moel@345
    33
		protected override void DoMouseOperation(TreeNodeAdvMouseEventArgs args)
moel@345
    34
		{
moel@345
    35
			if (Tree.SelectionMode == TreeSelectionMode.Single || Tree.SelectionStart == null)
moel@345
    36
			{
moel@345
    37
				base.DoMouseOperation(args);
moel@345
    38
			}
moel@345
    39
			else if (CanSelect(args.Node))
moel@345
    40
			{
moel@345
    41
				Tree.SuspendSelectionEvent = true;
moel@345
    42
				try
moel@345
    43
				{
moel@345
    44
					SelectAllFromStart(args.Node);
moel@345
    45
				}
moel@345
    46
				finally
moel@345
    47
				{
moel@345
    48
					Tree.SuspendSelectionEvent = false;
moel@345
    49
				}
moel@345
    50
			}
moel@345
    51
		}
moel@345
    52
moel@345
    53
		protected override void MouseDownAtEmptySpace(TreeNodeAdvMouseEventArgs args)
moel@345
    54
		{
moel@345
    55
		}
moel@345
    56
moel@345
    57
		private void SelectAllFromStart(TreeNodeAdv node)
moel@345
    58
		{
moel@345
    59
			Tree.ClearSelectionInternal();
moel@345
    60
			int a = node.Row;
moel@345
    61
			int b = Tree.SelectionStart.Row;
moel@345
    62
			for (int i = Math.Min(a, b); i <= Math.Max(a, b); i++)
moel@345
    63
			{
moel@345
    64
				if (Tree.SelectionMode == TreeSelectionMode.Multi || Tree.RowMap[i].Parent == node.Parent)
moel@345
    65
					Tree.RowMap[i].IsSelected = true;
moel@345
    66
			}
moel@345
    67
		}
moel@345
    68
	}
moel@345
    69
}