Changeset 1595


Ignore:
Timestamp:
Jun 7, 2010, 3:23:42 AM (12 years ago)
Author:
matkovic
Message:

-orthogonal line bridging now functional
-Various style changes

Location:
trunk/CrypPlugins/WorkspaceManager
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/WorkspaceManager/Model/ColorHelper.cs

    r1586 r1595  
    2323            if (type.FullName == "System.String")
    2424            {               
    25                 return Colors.LightGray;
     25                return Colors.WhiteSmoke;
    2626            }
    2727            else if (   type.FullName == "System.Int16" ||
     
    4040            else if (type.FullName == "System.Byte" || type.FullName == "System.Byte[]")
    4141            {
    42                 return Colors.DarkGreen;
     42                return Colors.LightGreen;
    4343            }
    4444            else if (type.FullName == "System.Boolean" || type.FullName == "System.Boolean[]")
    4545            {
    46                 return Colors.DarkRed;
     46                return Colors.Red;
    4747            }
    4848            else if (type.FullName == "System.Numerics.BigInteger")
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml

    r1583 r1595  
    55             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    66             xmlns:e="clr-namespace:WorkspaceManager.View.Container"
    7              MinHeight="120" MinWidth="180"
     7             MinHeight="120" MinWidth="160"
    88             mc:Ignorable="d">
     9    <UserControl.Background>
     10        <SolidColorBrush Opacity="0.01" Color="#444444"></SolidColorBrush>
     11    </UserControl.Background>
    912    <UserControl.Resources>
    1013        <ResourceDictionary>
     
    1518    </UserControl.Resources>
    1619    <DockPanel Name="Root" LastChildFill="True">
    17         <StackPanel DockPanel.Dock="Right" Name="InputConnectorPanel" Width="20"/>
    18         <Border DockPanel.Dock="Left" Width="10" Height="{Binding ElementName=PresentationPanel, Path=ActualHeight}" Background="#82bbef" BorderBrush="#4c71bf" BorderThickness="1" Opacity="0.5" Margin="0,10,0,0">
    19             <StackPanel Name="OutputConnectorPanel"/>
    20         </Border>
    21         <Border Background="{StaticResource ResourceKey=GlassBrush}" CornerRadius="7" BorderBrush="#82bbef" BorderThickness="1.3">
     20        <StackPanel DockPanel.Dock="Right" Name="OutputConnectorPanel" Width="20" Height="{Binding ElementName=Window, Path=ActualHeight}" VerticalAlignment="Bottom"/>
     21        <StackPanel DockPanel.Dock="Left" Name="InputConnectorPanel" Width="20" Height="{Binding ElementName=Window, Path=ActualHeight}" VerticalAlignment="Bottom"/>
     22        <StackPanel DockPanel.Dock="Top" Name="ControlPanel" Visibility="Hidden" Orientation="Horizontal" HorizontalAlignment="Right">
     23            <Button Height="20" Width="20" Style="{StaticResource ResourceKey=SettingsPluginContainerButtonStyle}" Margin="0,0,0,0">
     24                <Button.RenderTransform>
     25                    <ScaleTransform ScaleX="0.8" ScaleY="0.8"></ScaleTransform>
     26                </Button.RenderTransform>
     27                <Image Source="/WorkspaceManager;component/View/Image/setting.png" HorizontalAlignment="Center" SnapsToDevicePixels="True" Margin="1,1,1,1"/>
     28            </Button>
     29       
     30            <Button Height="20" Width="20" Style="{StaticResource ResourceKey=DeletePluginContainerButtonStyle}" Margin="0,0,0,5" Click="Button_Click">
     31                <Button.LayoutTransform>
     32                    <ScaleTransform ScaleX="0.8" ScaleY="0.8"></ScaleTransform>
     33                </Button.LayoutTransform>
     34                <Image Source="/WorkspaceManager;component/View/Image/delete.png" HorizontalAlignment="Center" SnapsToDevicePixels="True" Margin="1,1,1,1"/>
     35            </Button>
     36        </StackPanel>
     37       
     38        <!--<Border DockPanel.Dock="Bottom" Height="10" Width="{Binding ElementName=PresentationPanel, Path=ActualWidth}" Background="#82bbef" BorderBrush="#4c71bf" BorderThickness="1" Opacity="0.5" Margin="0,0,0,0">
     39            <StackPanel/>
     40        </Border>-->
     41       
     42        <Border Name="Window" Background="{StaticResource ResourceKey=GlassBrush}" CornerRadius="7" BorderBrush="#82bbef" BorderThickness="1.3">
    2243            <Grid Name="PresentationBase" Width="Auto" Height="Auto">
    2344                <Grid.RowDefinitions>
     
    2647                </Grid.RowDefinitions>
    2748                <Rectangle Margin="10,5,10,5" Height="10" Opacity="0.5" Fill="#82bbef"/>
     49               
     50                <Label Name="PluginName" FontSize="11" Margin="5,-2,0,0" FontFamily="Georgia" Foreground="WhiteSmoke" Content="test" HorizontalAlignment="left"></Label>
    2851
    29                 <Button Panel.ZIndex="100" Height="20" Width="20" HorizontalAlignment="left" Style="{StaticResource ResourceKey=SettingsPluginContainerButtonStyle}" Margin="0,1,0,0">
    30                     <Button.RenderTransform>
    31                         <TransformGroup>
    32                             <ScaleTransform ScaleX="1.4" ScaleY="1.4"></ScaleTransform>
    33                         </TransformGroup>
    34                     </Button.RenderTransform>
    35                     <Image Source="/WorkspaceManager;component/View/Image/setting.png" HorizontalAlignment="Center" SnapsToDevicePixels="True" Margin="1,1,1,1"/>
    36                 </Button>
    37                
    38                 <Label Name="PluginName" FontSize="12" Margin="26,-2,0,0" FontFamily="Georgia" Foreground="WhiteSmoke" Content="test" HorizontalAlignment="left"></Label>
    39                
    40                 <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
    41                     <Button Height="20" Width="20" Style="{StaticResource ResourceKey=DeletePluginContainerButtonStyle}" Margin="0,0,7,0" Click="Button_Click">
    42                         <Button.LayoutTransform>
    43                             <ScaleTransform ScaleX="0.8" ScaleY="0.8"></ScaleTransform>
    44                         </Button.LayoutTransform>
    45                         <Image Source="/WorkspaceManager;component/View/Image/delete.png" HorizontalAlignment="Center" SnapsToDevicePixels="True" Margin="1,1,1,1"/>
    46                     </Button>
    47                 </StackPanel>
    48 
    49                 <Grid Grid.Row="1" Name="PresentationPanel" Width="Auto" Height="Auto" MaxHeight="50" MaxWidth="50" Margin="10,0,10,10" Background="Transparent">
     52                <Grid Grid.Row="1" Name="PresentationPanel" Width="Auto" Height="Auto" MaxHeight="70" MaxWidth="70" Margin="10,0,10,10" Background="Transparent">
    5053                    <Grid.Effect>
    5154                        <DropShadowEffect BlurRadius="2" Color="Black" ShadowDepth="0.1" Direction="90" Opacity="0.4"></DropShadowEffect>
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml.cs

    r1583 r1595  
    4040        {
    4141            Loaded += new RoutedEventHandler(PluginContainerView_Loaded);
     42            this.MouseEnter += new MouseEventHandler(PluginContainerView_MouseEnter);
     43            this.MouseLeave += new MouseEventHandler(PluginContainerView_MouseLeave);
    4244            this.model = model;
    4345            this.RenderTransform = new TranslateTransform();
     
    4648            if(model.Plugin.QuickWatchPresentation != null)
    4749                this.PresentationPanel.Children.Add(model.Plugin.QuickWatchPresentation);
     50        }
     51
     52        void PluginContainerView_MouseLeave(object sender, MouseEventArgs e)
     53        {
     54            ControlPanel.Visibility = Visibility.Hidden;
     55        }
     56
     57        void PluginContainerView_MouseEnter(object sender, MouseEventArgs e)
     58        {
     59            ControlPanel.Visibility = Visibility.Visible;
    4860        }
    4961
     
    6274            foreach (ConnectorModel cModel in model.OutputConnectors)
    6375            {
    64                 AddInputConnectorView(new ConnectorView(cModel));
     76                AddOutputConnectorView(new ConnectorView(cModel));
    6577            }
    6678        }
  • trunk/CrypPlugins/WorkspaceManager/View/Container/WorkSpaceEditorView.xaml.cs

    r1583 r1595  
    9191        private void AddConnectionSource(IConnectable source, CryptoLineView conn)
    9292        {
     93            Color color = ColorHelper.getColor((source as ConnectorView).cModel.ConnectorType);
     94            conn.Stroke = new SolidColorBrush(color);
    9395            conn.SetBinding(CryptoLineView.StartPointProperty, CreateConnectorBinding(source));
    9496            conn.EndPoint = Mouse.GetPosition(this);
  • trunk/CrypPlugins/WorkspaceManager/View/Resource/Brushes.xaml

    r1583 r1595  
    55        <GradientBrush.GradientStops>
    66            <GradientStopCollection>
    7                 <GradientStop Color="#666666" Offset="1.0"/>
    8                 <GradientStop Color="#95c2fb" Offset="0.0"/>
     7                <GradientStop Color="#293955" Offset="1.0"/>
     8                <GradientStop Color="#3d5376" Offset="0.6"/>
     9                <GradientStop Color="#3d5376" Offset="0.4"/>
     10                <GradientStop Color="#293955" Offset="0.0"/>
    911            </GradientStopCollection>
    1012        </GradientBrush.GradientStops>
     
    3941    </DrawingBrush>
    4042
    41     <VisualBrush x:Key="GlassBrush">
    42         <VisualBrush.Visual>
    43             <Grid Background="#777777" Opacity="0.6" Width="20" Height="20">
    44             </Grid>
    45         </VisualBrush.Visual>
    46     </VisualBrush>
     43    <SolidColorBrush x:Key="GlassBrush" Opacity="0.6" Color="#444444"></SolidColorBrush>
    4744
    4845    <LinearGradientBrush x:Key="BottomBoxBackgroundBrush" StartPoint="0,0" EndPoint="0,1">
  • trunk/CrypPlugins/WorkspaceManager/View/Resource/Styles.xaml

    r1583 r1595  
    8484                        <Storyboard x:Key="Anim" RepeatBehavior="Forever">
    8585                            <DoubleAnimation From="0" To="360" Duration="00:00:2" Storyboard.TargetName="Rotate" Storyboard.TargetProperty="Angle" />
     86                            <DoubleAnimation To="2" Duration="00:00:00.15" Storyboard.TargetName="Scale" Storyboard.TargetProperty="ScaleY" />
     87                            <DoubleAnimation To="2" Duration="00:00:00.15" Storyboard.TargetName="Scale" Storyboard.TargetProperty="ScaleX" />
    8688                        </Storyboard>
    8789                        <Storyboard x:Key="Anim2">
    8890                            <DoubleAnimation To="360" Duration="00:00:1" DecelerationRatio="0.2" Storyboard.TargetName="Rotate" Storyboard.TargetProperty="Angle" />
     91                            <DoubleAnimation To="1" Duration="00:00:00.15" Storyboard.TargetName="Scale" Storyboard.TargetProperty="ScaleY" />
     92                            <DoubleAnimation To="1" Duration="00:00:00.15" Storyboard.TargetName="Scale" Storyboard.TargetProperty="ScaleX" />
    8993                        </Storyboard>
    9094
     
    9296                    <Border x:Name="Border">
    9397                        <Border.RenderTransform>
    94                             <RotateTransform CenterX="10" CenterY="10" x:Name="Rotate"></RotateTransform>
     98                            <TransformGroup>
     99                                <ScaleTransform CenterX="10" CenterY="10" x:Name="Scale"></ScaleTransform>
     100                                <RotateTransform CenterX="10" CenterY="10" x:Name="Rotate"></RotateTransform>
     101                            </TransformGroup>
    95102                        </Border.RenderTransform>
    96103                        <ContentPresenter Height="{TemplateBinding Height}" Width="{TemplateBinding Width}" Content="{TemplateBinding Content}"></ContentPresenter>
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/CryptoLineView.cs

    r1584 r1595  
    1919        private Point iPoint = new Point();
    2020
    21         private static double offset = 5;
     21        private static double offset = 10;
    2222
    2323        #endregion
     
    5656        {
    5757            this.connectionModel = connectionModel;
    58             Color color = Model.ColorHelper.getColor(connectionModel.ConnectionType);
    59             Stroke = new SolidColorBrush(Color.FromArgb(color.A, color.R, color.G, color.B));
     58            Color color = ColorHelper.getColor(connectionModel.ConnectionType);
     59            Stroke = new SolidColorBrush(color);
    6060            StrokeThickness = 2;
    6161        }
     
    6767                        get
    6868                        {
    69                                 // Create a StreamGeometry for describing the shape
    7069                                StreamGeometry geometry = new StreamGeometry();
    7170                                geometry.FillRule = FillRule.EvenOdd;
     
    7675                                }
    7776
    78                                 // Freeze the geometry for performance benefits
    7977                                geometry.Freeze();
    8078                                return geometry;
     
    9593                StartPoint.Y != EndPoint.Y)
    9694            {
    97                 throw new ArgumentException("only 90° lines allowed");
     95                return false;
    9896            }
    9997            if (StartPointSec.X != EndPointSec.X &&
    10098                StartPointSec.Y != EndPointSec.Y)
    10199            {
    102                 throw new ArgumentException("only 90° lines allowed");
     100                return false;
    103101            }
    104102
    105             // TODO: handle parallel here
    106             if (false)
     103            // parallel
     104            if (StartPoint.X == EndPoint.X && StartPointSec.X == EndPointSec.X ||
     105                StartPoint.Y == EndPoint.Y && StartPointSec.Y == EndPointSec.Y)
    107106            {
    108 
    109                
     107                return false;
    110108            }
    111109            else
    112110            {
     111                // orthonogal
    113112                Point up, down, left, right;
    114113                if (StartPoint.X == EndPoint.X)
     
    157156                        double cost = Math.Cos(theta);
    158157
    159                         Point start = new Point(StartPoint.X, StartPoint.Y);
    160             Point end = new Point(EndPoint.X, EndPoint.Y);
     158            context.BeginFigure(StartPoint, true, false);
    161159
    162             //foreach (var element in (Parent as Panel).Children)
    163             //{
    164             //    if (element is CLine && !element.Equals(this))
    165             //    {
    166             //        if (findIntersection(StartPoint, EndPoint, (element as CLine).StartPoint, (element as CLine).EndPoint))
    167             //        {
    168             //            Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)delegate()
    169             //            {
    170             //                Ellipse ell = new Ellipse();
    171             //                ell.Fill = Brushes.Red;
    172             //                ell.Width = 20;
    173             //                ell.Height = 20;
    174             //                ell.RenderTransform = new TranslateTransform(iPoint.X - ell.Width/2, iPoint.Y - ell.Height/2);
    175             //                (Parent as Panel).Children.Add(ell);
    176             //            });
    177 
    178             //            Console.WriteLine("INTERSECTION FOUND " + iPoint.ToString());
    179             //        }
    180             //    }
    181             //}
     160            foreach (var element in (Parent as Panel).Children)
     161            {
     162                if (element is CryptoLineView && !element.Equals(this))
     163                {
     164                    if (findIntersection(StartPoint, EndPoint, (element as CryptoLineView).StartPoint, (element as CryptoLineView).EndPoint))
     165                    {
     166                        if (StartPoint.X == EndPoint.X)
     167                        {
     168                            context.LineTo(new Point(iPoint.X, iPoint.Y - offset), true, true);
     169                            context.QuadraticBezierTo(new Point(iPoint.X + offset, iPoint.Y), new Point(iPoint.X, iPoint.Y + offset), true, true);
     170                            continue;
     171                        }
     172                        if (StartPoint.Y == EndPoint.Y)
     173                        {
     174                            context.LineTo(new Point(iPoint.X - offset, iPoint.Y), true, true);
     175                            context.QuadraticBezierTo(new Point(iPoint.X, iPoint.Y + offset), new Point(iPoint.X + offset, iPoint.Y), true, true);
     176                            continue;
     177                        }
     178                    }
     179                }
     180            }
    182181
    183182            //Point pt3 = new Point(
    184183            //    pt05.X + ( cost - offset * sint),
    185184            //    pt05.Y + ( sint + offset * cost));
    186 
    187             context.BeginFigure(start, true, false);
    188            
    189 
    190 
    191             context.LineTo(end, true, true);
     185            context.LineTo(EndPoint, true, true);
    192186                }
    193187               
Note: See TracChangeset for help on using the changeset viewer.