Ignore:
Timestamp:
Jun 17, 2010, 12:40:12 AM (12 years ago)
Author:
Arno Wacker
Message:

VigenereAutokeyAnalyser:

  • Reactivated "QuickWatch"
  • Implemented scaling for Presentation/QuickWatch
Location:
trunk/CrypPlugins/VigenereAutokeyAnalyser
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/VigenereAutokeyAnalyser/AutokeyPresentation.xaml

    r1660 r1661  
    55             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    66             mc:Ignorable="d"
    7              d:DesignHeight="400" d:DesignWidth="400"
    8              Width="650"
     7             d:DesignHeight="200" d:DesignWidth="210"
    98             HorizontalAlignment="Stretch"
    109             VerticalAlignment="Stretch"
    11              Background="White" Visibility="Visible">
    12              
    13     <Grid Name="Grid">
    14             <ListView Name="ListView" ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" FontSize="10">
    15                 <ListView.View>
     10             Visibility="Visible">
     11
     12    <Grid Name="Grid" Width="205">
     13        <Grid.LayoutTransform>
     14            <ScaleTransform x:Name="scaler" ScaleX="1" ScaleY="1"/>
     15        </Grid.LayoutTransform>
     16
     17        <ListView Name="ListView" ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" FontSize="10">
     18            <ListView.View>
    1619                    <GridView>
    17                         <GridViewColumn Header="Analysed Key" Width="500" DisplayMemberBinding="{Binding Path=Key}">
     20                    <GridViewColumn x:Name="KeyCol" Header="Analysed Key" Width="90" DisplayMemberBinding="{Binding Path=Key}">
    1821                            <GridViewColumn.CellTemplate>
    1922                                <DataTemplate>
     
    2225                            </GridViewColumn.CellTemplate>
    2326                        </GridViewColumn>
    24                         <GridViewColumn Header="Found IC" Width="150" DisplayMemberBinding="{Binding Path=IC}">
     27                    <GridViewColumn x:Name="ICCol" Header="Found IC" Width="115" DisplayMemberBinding="{Binding Path=IC}">
    2528                            <GridViewColumn.CellTemplate>
    2629                                <DataTemplate>
  • trunk/CrypPlugins/VigenereAutokeyAnalyser/AutokeyPresentation.xaml.cs

    r1649 r1661  
    2828            SizeChanged += sizeChanged;
    2929            this.DataContext = entries;
     30            entries.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(entries_CollectionChanged);
    3031        }
    3132
    32         public void sizeChanged(Object sender, EventArgs eventArgs)
     33        private void entries_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
    3334        {
    3435
     36           
     37
     38            if (e.NewItems != null)
     39            {
     40                foreach (ResultEntry entry in e.NewItems)
     41                {
     42
     43                    // measure length of text in pixels
     44                    FormattedText text = new FormattedText(
     45                            entry.Key + "XXX",
     46                            System.Globalization.CultureInfo.GetCultureInfo("en-US"),
     47                            FlowDirection.LeftToRight,
     48                            new Typeface(ListView.FontFamily, ListView.FontStyle, ListView.FontWeight, ListView.FontStretch),
     49                            ListView.FontSize,
     50                            Brushes.Black);
     51
     52                    if (text.Width > this.KeyCol.Width)
     53                    {
     54                        this.KeyCol.Width = text.Width;
     55                        this.Grid.Width = this.KeyCol.Width + this.ICCol.Width;
     56                        updateScaling();           
     57                    }
     58                }
     59            }
     60            else
     61            {
     62
     63                // reset the view - if we get null the list was cleared; is this always the case?
     64                this.KeyCol.Width = 90; // fixed initial value
     65                this.Grid.Width = this.KeyCol.Width + this.ICCol.Width;
     66                updateScaling();
     67            }
     68           
     69        }
     70
     71        private void sizeChanged(Object sender, EventArgs eventArgs)
     72        {
     73
     74            updateScaling();
     75           
     76            //Console.WriteLine("Width: {0}, Heigth: {1}; GridWith: {2}, GridHeight: {3}", this.Width, this.Height, this.Grid.Width, this.Grid.Height);
     77            //Console.WriteLine("Actual- Width: {0}, Heigth: {1}; GridWith: {2}, GridHeight: {3}", this.ActualWidth, this.ActualHeight, this.Grid.ActualWidth, this.Grid.ActualHeight);
     78            //Console.WriteLine("ListViewWidth: {0}, ListViewHeigth: {1}; ActualListViewWith: {2}, ActualListViewHeight: {3}", this.ListView.Width, this.ListView.Height, this.ListView.ActualWidth, this.ListView.ActualHeight);
     79        }
     80
     81
     82        private void updateScaling()
     83        {
     84            this.scaler.ScaleX = this.ActualWidth / this.Grid.Width;
     85            this.scaler.ScaleY = this.scaler.ScaleX;
    3586        }
    3687    }
  • trunk/CrypPlugins/VigenereAutokeyAnalyser/VigenereAutokeyAnalyser.cs

    r1660 r1661  
    153153        public UserControl QuickWatchPresentation
    154154        {
    155             get { return null; }
     155            get { return quickWatchPresentation; }
    156156        }
    157157
Note: See TracChangeset for help on using the changeset viewer.