aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Utils/DelayedEvents.cs
blob: 8afc9f2eeee603487264c26a643afcb5fd9d7a31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)

using System;
using System.Collections.Generic;

namespace Tango.Scripting.Editors.Utils
{
	/// <summary>
	/// Maintains a list of delayed events to raise.
	/// </summary>
	sealed class DelayedEvents
	{
		struct EventCall
		{
			EventHandler handler;
			object sender;
			EventArgs e;
			
			public EventCall(EventHandler handler, object sender, EventArgs e)
			{
				this.handler = handler;
				this.sender = sender;
				this.e = e;
			}
			
			public void Call()
			{
				handler(sender, e);
			}
		}
		
		Queue<EventCall> eventCalls = new Queue<EventCall>();
		
		public void DelayedRaise(EventHandler handler, object sender, EventArgs e)
		{
			if (handler != null) {
				eventCalls.Enqueue(new EventCall(handler, sender, e));
			}
		}
		
		public void RaiseEvents()
		{
			while (eventCalls.Count > 0)
				eventCalls.Dequeue().Call();
		}
	}
}
e TargetType="{x:Type ListBox}" x:Key="BlankListBox"> <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"></Setter> <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled"></Setter> <Setter Property="BorderThickness" Value="0"></Setter> <Setter Property="Background" Value="Transparent"></Setter> <Setter Property="ItemContainerStyle" Value="{StaticResource BlankListBoxItem}"></Setter> </Style> <Style TargetType="{x:Type ListBox}" x:Key="SegmentsListBox" BasedOn="{StaticResource BlankListBox}"> <Setter Property="BorderThickness" Value="0"></Setter> <Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel"></Setter> <Setter Property="ItemsPanel"> <Setter.Value> <ItemsPanelTemplate> <VirtualizingStackPanel IsVirtualizing="True" VirtualizationMode="Recycling" VirtualizingPanel.ScrollUnit="Pixel" /> </ItemsPanelTemplate> </Setter.Value> </Setter> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListBox}"> <Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}"> <touch:TouchScrollViewer CanContentScroll="True" Padding="{TemplateBinding Padding}" Focusable="False" HorizontalScrollBarVisibility="Hidden"> <ItemsPresenter /> </touch:TouchScrollViewer> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style TargetType="{x:Type ListBox}" x:Key="ListBoxVerticalScroll" BasedOn="{StaticResource BlankListBox}"> <Setter Property="BorderThickness" Value="0"></Setter> <Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel"></Setter> <Setter Property="ItemsPanel"> <Setter.Value> <ItemsPanelTemplate> <VirtualizingStackPanel IsVirtualizing="True" VirtualizationMode="Recycling" VirtualizingPanel.ScrollUnit="Pixel" /> </ItemsPanelTemplate> </Setter.Value> </Setter> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListBox}"> <Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}"> <touch:TouchScrollViewer CanContentScroll="True" Padding="{TemplateBinding Padding}" Focusable="False" Style="{StaticResource TouchVerticalScrollViewer}"> <ItemsPresenter /> </touch:TouchScrollViewer> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style TargetType="touch:TouchSimpleDataGrid" x:Key="TechGrid" BasedOn="{StaticResource {x:Type touch:TouchSimpleDataGrid}}"> <Style.Resources> <Style BasedOn="{StaticResource {x:Type DataGridColumnHeader}}" TargetType="{x:Type DataGridColumnHeader}"> <Setter Property="Background" Value="{StaticResource TangoDarkForegroundBrush}" /> <Setter Property="Foreground" Value="{StaticResource TangoLightForegroundBrush}" /> <Setter Property="Padding" Value="5"></Setter> </Style> </Style.Resources> <Setter Property="RowStyle"> <Setter.Value> <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}"> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" Value="Transparent"></Setter> <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}" /> </Trigger> <Trigger Property="IsFocused" Value="True"> <Setter Property="Background" Value="Transparent"></Setter> <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}" /> </Trigger> </Style.Triggers> </Style> </Setter.Value> </Setter> <Setter Property="CellStyle"> <Setter.Value> <Style TargetType="{x:Type DataGridCell}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridCell}"> <Grid Background="{TemplateBinding Background}"> <ContentPresenter VerticalAlignment="Center" /> </Grid> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" Value="Transparent"></Setter> <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}" /> </Trigger> </Style.Triggers> </Style> </Setter.Value> </Setter> <Setter Property="Background" Value="{StaticResource TangoPrimaryBackgroundBrush}"></Setter> <Setter Property="AutoGenerateColumns" Value="False"></Setter> <Setter Property="SelectionUnit" Value="FullRow"></Setter> <Setter Property="SelectionMode" Value="Single"></Setter> <Setter Property="BorderBrush" Value="{StaticResource TangoDarkForegroundBrush}"></Setter> <Setter Property="BorderThickness" Value="1"></Setter> <Setter Property="HeadersVisibility" Value="Column"></Setter> <Setter Property="CanUserAddRows" Value="True"></Setter> <Setter Property="CanUserDeleteRows" Value="False"></Setter> <Setter Property="CanUserReorderColumns" Value="False"></Setter> <Setter Property="CanUserResizeColumns" Value="False"></Setter> <Setter Property="CanUserSortColumns" Value="False"></Setter> <Setter Property="IsReadOnly" Value="True"></Setter> <Setter Property="VerticalGridLinesBrush" Value="{x:Null}"></Setter> <Setter Property="HorizontalGridLinesBrush" Value="{StaticResource TangoGrayBrush}"></Setter> <Setter Property="RowHeight" Value="50"></Setter> <Setter Property="VerticalScrollBarVisibility" Value="Visible"></Setter> <Setter Property="HorizontalScrollBarVisibility" Value="Disabled"></Setter> </Style> </ResourceDictionary>