Changeset 5352


Ignore:
Timestamp:
Mar 1, 2013, 4:22:15 AM (9 years ago)
Author:
matkovic
Message:

[CrypWin] Added Cryptool icon for the tabdropdown menu (fixes #748)
[WorkspaceManager] Certain setting options now hide (fixes #720)
[WorkspaceManager] Fixed the ordering of proposed components (fixes #746)

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPluginBase/Editor/ComponentConnectionStatistics.cs

    r4772 r5352  
    8585            public IEnumerable<ComponentConnector> GetSortedConnectorUsages()
    8686            {
    87                 return _connectorUsages.OrderBy(x => x.Value).Select(x => x.Key);
     87                return _connectorUsages.OrderByDescending(x => x.Value).Select(x => x.Key);
    8888            }
    8989        }
  • trunk/CrypPlugins/WorkspaceManager/View/Visuals/ComponentVisual.xaml.cs

    r4933 r5352  
    586586            EditorVisual = (EditorVisual)((WorkspaceManagerClass)Model.WorkspaceModel.MyEditor).Presentation;
    587587
    588 
    589588            InitializeComponent();
    590589        }
  • trunk/CrypPlugins/WorkspaceManager/View/Visuals/SettingsVisual.xaml.cs

    r4977 r5352  
    1010using System.Windows.Shapes;
    1111using Cryptool.PluginBase;
    12 using Cryptool.PluginBase.Validation;
     12
    1313using Microsoft.Win32;
    1414using System.Diagnostics;
     
    1616using System.Collections.ObjectModel;
    1717using System;
    18 using Cryptool.PluginBase.Miscellaneous;
     18using System.Linq;
    1919using System.Windows.Controls.Primitives;
    2020using Cryptool.PluginBase.Editor;
     
    2626using System.Globalization;
    2727using System.Collections.Specialized;
     28using System.Collections;
     29using Cryptool.PluginBase.Validation;
     30using Cryptool.PluginBase.Miscellaneous;
    2831
    2932
     
    4649        public SettingsVisual(IPlugin plugin, ComponentVisual bcv, Boolean isMaster, Boolean isSideBar)
    4750        {
     51            bcv.Model.ConnectorPlugstateChanged += new EventHandler<Model.ConnectorPlugstateChangedEventArgs>(Model_ConnectorPlugstateChanged);
    4852            this.Loaded += new RoutedEventHandler(BinSettingsVisual_Loaded);
    4953
    50             noSettings = false;   
     54            noSettings = false;
    5155            this.isSideBar = isSideBar;
    5256            this.Resources.Add("isSideBarResource", this.isSideBar);
     
    140144            }
    141145
    142             else 
     146            else
    143147            {
    144148                InitializeComponent();
     
    148152                noSettings = true;
    149153            }
    150            
     154
    151155        }
    152156
     
    159163        {
    160164            //Console.WriteLine(args.Action);
    161            
    162             for (int i = 0; i < args.NewItems.Count;i++ )
     165
     166            for (int i = 0; i < args.NewItems.Count; i++)
    163167            {
    164168                IControlMasterElement icm = args.NewItems[i] as IControlMasterElement;
    165169                icm.PluginModelChanged += new EventHandler(icm_PluginModelChanged);
    166                
    167             }   
     170
     171            }
    168172        }
    169173
     
    190194                    TabItem tbI = new TabItem();
    191195                    tbI.Uid = master.ConnectorModel.PropertyName;
    192                     tbI.Content = new SettingsVisual(master.PluginModel.Plugin, bcv, false,isSideBar);
     196                    tbI.Content = new SettingsVisual(master.PluginModel.Plugin, bcv, false, isSideBar);
    193197                    tbI.Header = master.PluginModel.GetName();
    194198                    tbC.Items.Add(tbI);
    195199                }
    196200            }
    197             else 
     201            else
    198202            {
    199203                TabItem tbI = null;
     
    205209                    }
    206210                }
    207                 if(tbI!=null)
    208                 tbC.Items.Remove(tbI);
    209             }
    210         }
    211 
    212         private void myTaskPaneAttributeChangedHandler(Object sender, TaskPaneAttributeChangedEventArgs args) 
    213         {
    214            
     211                if (tbI != null)
     212                    tbC.Items.Remove(tbI);
     213            }
     214        }
     215
     216        private void myTaskPaneAttributeChangedHandler(Object sender, TaskPaneAttributeChangedEventArgs args)
     217        {
     218
    215219            plugin.Settings.GetTaskPaneAttributeChanged();
    216220
    217          
     221
    218222
    219223            Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    220224            {
    221                foreach (List<ControlEntry> cel in entgrou.entryList)
     225                foreach (List<ControlEntry> cel in entgrou.entryList)
    222226                {
    223227                    entgrou.gorupPanel[entgrou.entryList.IndexOf(cel)].Visibility = System.Windows.Visibility.Visible;
    224228                    Boolean allinvisble = true;
    225                    
     229
    226230                    foreach (ControlEntry ce in cel)
    227231                    {
    228                        
     232
    229233                        foreach (TaskPaneAttribteContainer tpac in args.ListTaskPaneAttributeContainer)
    230234                        {
     
    239243                                        ce.caption.Visibility = System.Windows.Visibility.Hidden;
    240244                                    }
    241                                     else 
     245                                    else
    242246                                    {
    243247                                        ce.element.Visibility = tpac.Visibility;
    244248                                        ce.caption.Visibility = tpac.Visibility;
    245                                        
     249
    246250                                    }
    247251                                }
     
    251255                                    ce.caption.Visibility = tpac.Visibility;
    252256                                }
    253                                    
    254                                
     257
     258
    255259                            }
    256260                            if (ce.element.Visibility == System.Windows.Visibility.Visible)
     
    259263                            }
    260264                        }
    261                        
     265
    262266
    263267                    }
     
    274278        private void excuteEventHandler(Object sender, EventArgs args)
    275279        {
    276            
     280
    277281
    278282            Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    279283            {
    280                
    281                
     284
     285
    282286                foreach (List<ControlEntry> cel in entgrou.entryList)
    283287                {
     
    303307                            }
    304308                        }
    305                         else 
     309                        else
    306310                        {
    307311                            if (!ce.tpa.ChangeableWhileExecuting)
     
    324328                    }
    325329                }
    326                
     330
    327331            }, null);
    328            
     332
    329333        }
    330334
     
    332336        List<String> groups = new List<String>();
    333337
    334        
    335 
    336         private double getComboBoxMaxSize(ComboBox child) 
     338
     339
     340        private double getComboBoxMaxSize(ComboBox child)
    337341        {
    338342            double x = 0;
     
    352356        }
    353357
    354  
    355 
    356         private void drawList(EntryGroup entgrou)
    357         {
    358            
    359 
    360                 foreach (List<ControlEntry> cel in entgrou.entryList)
    361                 {
     358
     359
     360        private void drawList(EntryGroup entgrou)
     361        {
     362
     363
     364            foreach (List<ControlEntry> cel in entgrou.entryList)
     365            {
     366
     367                Expander testexoander = new Expander();
     368
     369                Expander noverticalgroupexpander = new Expander();
     370
     371                TestPanel noVerticalGroup = new TestPanel(isSideBar);
     372
     373                Border noVerticalGroupBodi = new Border();
     374
     375                noVerticalGroupBodi.Style = (Style)FindResource("border1");
     376
     377                noVerticalGroupBodi.Child = noVerticalGroup;
     378
     379                noverticalgroupexpander.Content = noVerticalGroupBodi;
     380
     381                Border bodi = new Border();
     382
     383                testexoander.IsExpanded = true;
     384
     385                TestPanel test = new TestPanel(isSideBar);
     386
     387                entgrou.gorupPanel.Add(testexoander);
     388
     389                test.Name = "border1";
     390
     391                //test.Background = Brushes.AliceBlue;
     392
     393                //test.IsExpanded = true;
     394
     395
     396                //                   test.Expanded += test_ContextMenuOpening;
     397
     398                test.Margin = new Thickness(2);
     399                //test.VerticalAlignment = VerticalAlignment.Stretch;
     400
     401                Binding dataBinding = new Binding("ActualWidth");
     402                dataBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
     403                dataBinding.Mode = BindingMode.OneWay;
     404                dataBinding.Source = test;
     405
     406                //                    bodi.SetBinding(Border.WidthProperty, dataBinding);
     407
     408
     409                if (!string.IsNullOrEmpty(cel[0].tpa.groupName))
     410                {
     411                    testexoander.Header = cel[0].tpa.GroupName;
     412                }
     413
     414
     415
     416
     417
     418                //testexoander.Style = (Style)FindResource("Expander");
     419
     420
     421
     422                StackPanel contentPanel = new StackPanel();
     423                List<String> grouplist = new List<String>();
     424                List<Grid> gridlist = new List<Grid>();
     425                List<TextBlock> tebo = new List<TextBlock>();
     426
     427
     428
     429                //test.Width = 400;     
     430
     431
     432
     433
     434                foreach (ControlEntry ce in cel)
     435                {
     436                    addToConnectorSettingsHide(ce);
     437                    TextBlock title = new TextBlock();
     438                    ce.caption = title;
    362439                   
    363                     Expander testexoander = new Expander();
    364 
    365                     Expander noverticalgroupexpander = new Expander();
    366                    
    367                     TestPanel noVerticalGroup = new TestPanel(isSideBar);
    368 
    369                     Border noVerticalGroupBodi = new Border();
    370 
    371                     noVerticalGroupBodi.Style = (Style)FindResource("border1");
    372 
    373                     noVerticalGroupBodi.Child = noVerticalGroup;
    374 
    375                     noverticalgroupexpander.Content = noVerticalGroupBodi;
    376 
    377                     Border bodi = new Border();
    378                    
    379                     testexoander.IsExpanded = true;
    380                    
    381                     TestPanel test = new TestPanel(isSideBar);
    382 
    383                     entgrou.gorupPanel.Add(testexoander);
    384 
    385                     test.Name = "border1";
    386 
    387                     //test.Background = Brushes.AliceBlue;
    388 
    389                     //test.IsExpanded = true;
    390 
    391 
    392  //                   test.Expanded += test_ContextMenuOpening;
    393 
    394                     test.Margin = new Thickness(2);
    395                     //test.VerticalAlignment = VerticalAlignment.Stretch;
    396                    
    397                     Binding dataBinding = new Binding("ActualWidth");
    398                     dataBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
    399                     dataBinding.Mode = BindingMode.OneWay;
    400                     dataBinding.Source = test;
    401 
    402 //                    bodi.SetBinding(Border.WidthProperty, dataBinding);
    403 
    404 
    405                     if ( !string.IsNullOrEmpty(cel[0].tpa.groupName) )
    406                     {
    407                           testexoander.Header = cel[0].tpa.GroupName;
    408                     }
    409                    
    410                          
    411 
    412                    
    413 
    414                     //testexoander.Style = (Style)FindResource("Expander");
    415                    
    416 
    417                    
    418                     StackPanel contentPanel = new StackPanel();
    419                     List<String> grouplist = new List<String>();
    420                     List<Grid> gridlist = new List<Grid>();
    421                     List<TextBlock> tebo = new List<TextBlock>();
    422 
    423                    
    424                    
    425                     //test.Width = 400;     
    426 
    427 
    428 
    429 
    430                     foreach (ControlEntry ce in cel)
    431                     {
    432                        
    433                         TextBlock title = new TextBlock();
    434                         ce.caption = title;
    435 
    436                         if (ce.sfa == null)
     440
     441                    if (ce.sfa == null)
     442                    {
     443
     444
     445                        title.Text = ce.tpa.Caption;
     446                        title.TextWrapping = TextWrapping.Wrap;
     447
     448                        if (ce.element is CheckBox || ce.element is Button)
    437449                        {
    438                            
    439                            
    440                             title.Text = ce.tpa.Caption;
    441                             title.TextWrapping = TextWrapping.Wrap;
    442                            
    443                             if (ce.element is CheckBox || ce.element is Button)
     450
     451
     452                            Label l = new Label();
     453                            l.Height = 0;
     454                            test.Children.Add(ce.element);
     455                            test.Children.Add(l);
     456                        }
     457
     458                        else
     459                        {
     460                            test.Children.Add(title);
     461                            if (ce.element is ComboBox)
    444462                            {
    445                                
    446                                
    447                                 Label l = new Label();
    448                                 l.Height = 0;
    449                                 test.Children.Add(ce.element);
    450                                 test.Children.Add(l);
     463                                ComboBox cb = ce.element as ComboBox;
     464                                cb.MaxWidth = getComboBoxMaxSize(cb);
     465                                test.Children.Add(cb);
     466
    451467                            }
    452 
    453468                            else
    454469                            {
    455                                 test.Children.Add(title);
     470                                test.Children.Add(ce.element);
     471                            }
     472                        }
     473                    }
     474                    else
     475                    {
     476                        if (ce.sfa.VerticalGroup != null)
     477                        {
     478                            if (grouplist.Contains(ce.sfa.VerticalGroup))
     479                            {
     480
     481                                Grid controlGrid = gridlist[grouplist.IndexOf(ce.sfa.VerticalGroup)];
     482                                //controlGrid.Margin = new Thickness(10);
     483
     484                                ColumnDefinition coldef1 = new ColumnDefinition();
     485                                coldef1.Width = ce.sfa.WidthCol1;
     486                                controlGrid.ColumnDefinitions.Add(coldef1);
     487
     488                                ColumnDefinition coldef2 = new ColumnDefinition();
     489                                coldef2.Width = ce.sfa.WidthCol2;
     490                                controlGrid.ColumnDefinitions.Add(coldef2);
     491                                //controlGrid.ColumnDefinitions.Add(new ColumnDefinition());
     492
     493                                //TextBlock title = new TextBlock();
     494                                title.Text = ce.tpa.Caption;
     495                                ce.caption = title;
     496                                title.HorizontalAlignment = HorizontalAlignment.Center;
     497
     498                                Label space = new Label();
     499                                space.Width = 0;
     500                                Grid.SetColumn(title, controlGrid.ColumnDefinitions.Count - 2);
     501
     502                                //controlGrid.Children.Add(space);
     503
     504                                //                                    Grid.SetColumn(space, controlGrid.ColumnDefinitions.Count - 3);
     505
     506                                controlGrid.Children.Add(title);
     507                                Grid.SetColumn(ce.element, controlGrid.ColumnDefinitions.Count - 1);
     508
    456509                                if (ce.element is ComboBox)
    457510                                {
    458511                                    ComboBox cb = ce.element as ComboBox;
    459                                     cb.MaxWidth = getComboBoxMaxSize(cb);
    460                                     test.Children.Add(cb);
    461 
     512                                    cb.Width = getComboBoxMaxSize(cb);
     513                                    controlGrid.Children.Add(cb);
     514                                    controlGrid.MaxWidth += cb.Width;
     515                                    controlGrid.MaxWidth += title.DesiredSize.Width; ;
    462516                                }
    463517                                else
    464518                                {
    465                                     test.Children.Add(ce.element);
     519                                    controlGrid.Children.Add(ce.element);
     520
    466521                                }
     522
     523
    467524                            }
    468                         }
    469                         else
    470                         {
    471                             if (ce.sfa.VerticalGroup != null)
     525                            else
    472526                            {
    473                                 if (grouplist.Contains(ce.sfa.VerticalGroup))
     527                                grouplist.Add(ce.sfa.VerticalGroup);
     528
     529                                Grid controlGrid = new Grid();
     530                                //controlGrid.Margin = new Thickness(10);
     531
     532                                ColumnDefinition coldef1 = new ColumnDefinition();
     533                                coldef1.Width = ce.sfa.WidthCol1;
     534                                controlGrid.ColumnDefinitions.Add(coldef1);
     535
     536                                ColumnDefinition coldef2 = new ColumnDefinition();
     537                                coldef2.Width = ce.sfa.WidthCol2;
     538                                controlGrid.ColumnDefinitions.Add(coldef2);
     539
     540                                //TextBlock title = new TextBlock();
     541                                title.Text = ce.tpa.Caption;
     542                                ce.caption = title;
     543                                title.HorizontalAlignment = HorizontalAlignment.Center;
     544
     545                                Grid.SetColumn(title, 0);
     546
     547                                controlGrid.Children.Add(title);
     548                                Grid.SetColumn(ce.element, 1);
     549                                if (ce.element is ComboBox)
    474550                                {
    475                                    
    476                                     Grid controlGrid = gridlist[grouplist.IndexOf(ce.sfa.VerticalGroup)];
    477                                     //controlGrid.Margin = new Thickness(10);
    478 
    479                                     ColumnDefinition coldef1 = new ColumnDefinition();
    480                                     coldef1.Width = ce.sfa.WidthCol1;
    481                                     controlGrid.ColumnDefinitions.Add(coldef1);
    482 
    483                                     ColumnDefinition coldef2 = new ColumnDefinition();
    484                                     coldef2.Width = ce.sfa.WidthCol2;
    485                                     controlGrid.ColumnDefinitions.Add(coldef2);
    486                                     //controlGrid.ColumnDefinitions.Add(new ColumnDefinition());
    487 
    488                                     //TextBlock title = new TextBlock();
    489                                     title.Text = ce.tpa.Caption;
    490                                     ce.caption = title;
    491                                     title.HorizontalAlignment = HorizontalAlignment.Center;
    492 
    493                                     Label space = new Label();
    494                                     space.Width = 0;
    495                                     Grid.SetColumn(title, controlGrid.ColumnDefinitions.Count - 2);
    496 
    497                                     //controlGrid.Children.Add(space);
    498 
    499 //                                    Grid.SetColumn(space, controlGrid.ColumnDefinitions.Count - 3);
    500                                    
    501                                     controlGrid.Children.Add(title);
    502                                     Grid.SetColumn(ce.element, controlGrid.ColumnDefinitions.Count - 1);
    503 
    504                                     if (ce.element is ComboBox)
    505                                     {
    506                                         ComboBox cb = ce.element as ComboBox;
    507                                         cb.Width = getComboBoxMaxSize(cb);
    508                                         controlGrid.Children.Add(cb);
    509                                         controlGrid.MaxWidth += cb.Width;
    510                                         controlGrid.MaxWidth += title.DesiredSize.Width; ;
    511                                     }
    512                                     else
    513                                     {
    514                                         controlGrid.Children.Add(ce.element);
    515                                        
    516                                     }
    517 
    518 
     551                                    ComboBox cb = ce.element as ComboBox;
     552                                    cb.Width = getComboBoxMaxSize(cb);
     553                                    controlGrid.Children.Add(cb);
     554                                    controlGrid.MaxWidth += cb.Width;
     555                                    controlGrid.MaxWidth += title.DesiredSize.Width;
    519556                                }
    520557                                else
    521558                                {
    522                                     grouplist.Add(ce.sfa.VerticalGroup);
    523 
    524                                     Grid controlGrid = new Grid();
    525                                     //controlGrid.Margin = new Thickness(10);
    526 
    527                                     ColumnDefinition coldef1 = new ColumnDefinition();
    528                                     coldef1.Width = ce.sfa.WidthCol1;
    529                                     controlGrid.ColumnDefinitions.Add(coldef1 );
    530 
    531                                     ColumnDefinition coldef2 = new ColumnDefinition();
    532                                     coldef2.Width = ce.sfa.WidthCol2;
    533                                     controlGrid.ColumnDefinitions.Add(coldef2);
    534 
    535                                     //TextBlock title = new TextBlock();
    536                                     title.Text = ce.tpa.Caption;
    537                                     ce.caption = title;
    538                                     title.HorizontalAlignment = HorizontalAlignment.Center;
    539 
    540                                     Grid.SetColumn(title, 0);
    541 
    542                                     controlGrid.Children.Add(title);
    543                                     Grid.SetColumn(ce.element, 1);
    544                                     if (ce.element is ComboBox)
    545                                     {
    546                                         ComboBox cb = ce.element as ComboBox;
    547                                         cb.Width = getComboBoxMaxSize(cb);
    548                                         controlGrid.Children.Add(cb);
    549                                         controlGrid.MaxWidth += cb.Width;
    550                                         controlGrid.MaxWidth += title.DesiredSize.Width;
    551                                     }
    552                                     else
    553                                     {
    554                                         controlGrid.Children.Add(ce.element);
    555                                     }
    556                                     controlGrid.HorizontalAlignment = HorizontalAlignment.Stretch;
    557 
    558                                     Label dummy = new Label();
    559                                     dummy.Height = 0;
    560 
    561                                     controlGrid.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
    562                                     controlGrid.Arrange(new Rect(controlGrid.DesiredSize));
    563                                     //controlGrid.MaxWidth = controlGrid.DesiredSize.Width;
    564                                     test.Children.Add(controlGrid);
    565                                     test.Children.Add(dummy);
    566 
    567                                     controlGrid.Width = test.Width;
    568 
    569                                     gridlist.Add(controlGrid);
     559                                    controlGrid.Children.Add(ce.element);
    570560                                }
     561                                controlGrid.HorizontalAlignment = HorizontalAlignment.Stretch;
     562
     563                                Label dummy = new Label();
     564                                dummy.Height = 0;
     565
     566                                controlGrid.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
     567                                controlGrid.Arrange(new Rect(controlGrid.DesiredSize));
     568                                //controlGrid.MaxWidth = controlGrid.DesiredSize.Width;
     569                                test.Children.Add(controlGrid);
     570                                test.Children.Add(dummy);
     571
     572                                controlGrid.Width = test.Width;
     573
     574                                gridlist.Add(controlGrid);
    571575                            }
    572                             else
     576                        }
     577                        else
     578                        {
     579                            if (!test.IsAncestorOf(noverticalgroupexpander))
    573580                            {
    574                                 if (!test.IsAncestorOf(noverticalgroupexpander))
    575                                 {
    576                                     Label l = new Label();
    577                                     l.Width = 1;
    578                                     l.Height = 0;
    579                                     test.Children.Add(noverticalgroupexpander);
    580                                     test.Children.Add(l);
    581                                 }
    582 
    583                                /* WrapPanel controlGrid = new WrapPanel();
    584                                 controlGrid.Orientation = Orientation.Horizontal;
    585                                 //controlGrid.Margin = new Thickness(0);
    586                                 TextBlock title = new TextBlock();
    587                                 title.Text = ce.tpa.Caption;
    588                                 title.TextWrapping = TextWrapping.Wrap;
    589 
    590 
    591                                 ColumnDefinition coldef = new ColumnDefinition();
    592                                 ColumnDefinition coldef2 = new ColumnDefinition();
    593 
    594 
    595 
    596                                 //controlGrid.ColumnDefinitions.Add(coldef);
    597                                 //controlGrid.ColumnDefinitions.Add(coldef2);
    598 
    599 
    600                                 Grid.SetColumn(title, 0);
    601 
    602                                 controlGrid.Children.Add(title);
    603                                 Grid.SetColumn(ce.element, 1);
    604 
    605                                 controlGrid.Children.Add(ce.element);
    606 
    607                                 contentPanel.Children.Add(controlGrid);
     581                                Label l = new Label();
     582                                l.Width = 1;
     583                                l.Height = 0;
     584                                test.Children.Add(noverticalgroupexpander);
     585                                test.Children.Add(l);
     586                            }
     587
     588                            /* WrapPanel controlGrid = new WrapPanel();
     589                             controlGrid.Orientation = Orientation.Horizontal;
     590                             //controlGrid.Margin = new Thickness(0);
     591                             TextBlock title = new TextBlock();
     592                             title.Text = ce.tpa.Caption;
     593                             title.TextWrapping = TextWrapping.Wrap;
     594
     595
     596                             ColumnDefinition coldef = new ColumnDefinition();
     597                             ColumnDefinition coldef2 = new ColumnDefinition();
     598
     599
     600
     601                             //controlGrid.ColumnDefinitions.Add(coldef);
     602                             //controlGrid.ColumnDefinitions.Add(coldef2);
     603
     604
     605                             Grid.SetColumn(title, 0);
     606
     607                             controlGrid.Children.Add(title);
     608                             Grid.SetColumn(ce.element, 1);
     609
     610                             controlGrid.Children.Add(ce.element);
     611
     612                             contentPanel.Children.Add(controlGrid);
    608613                               
    609                                 tebo.Add(title);
    610 
    611                                 if (maxlength < title.Text.Length)
    612                                 {
    613                                     maxlength = title.Text.Length;
    614                                 }
    615                                 */
    616 
    617                                 //TextBlock title = new TextBlock();
    618                                 title.Text = ce.tpa.Caption;
    619                                 ce.caption = title;
    620                                 title.TextWrapping = TextWrapping.Wrap;
    621 
    622                                 if (ce.element is CheckBox || ce.element is Button)
    623                                 {
    624                                     Label l = new Label();
    625                                     l.Width = 1;
    626                                     l.Height = 0;
    627                                     noVerticalGroup.Children.Add(ce.element);
    628                                     noVerticalGroup.Children.Add(l);
    629                                    
    630                                 }
    631                                 else if (ce.element is ComboBox )
    632                                 {
    633                                     ComboBox cb = ce.element as ComboBox;
    634                                     //cb.Width = getComboBoxMaxSize(cb);
    635                                     noVerticalGroup.Children.Add(cb);
    636                                 }
    637                                 else
    638                                 {
    639                                     noVerticalGroup.Children.Add(title);
    640                                     noVerticalGroup.Children.Add(ce.element);
    641                                 }
     614                             tebo.Add(title);
     615
     616                             if (maxlength < title.Text.Length)
     617                             {
     618                                 maxlength = title.Text.Length;
     619                             }
     620                             */
     621
     622                            //TextBlock title = new TextBlock();
     623                            title.Text = ce.tpa.Caption;
     624                            ce.caption = title;
     625                            title.TextWrapping = TextWrapping.Wrap;
     626
     627                            if (ce.element is CheckBox || ce.element is Button)
     628                            {
     629                                Label l = new Label();
     630                                l.Width = 1;
     631                                l.Height = 0;
     632                                noVerticalGroup.Children.Add(ce.element);
     633                                noVerticalGroup.Children.Add(l);
     634
     635                            }
     636                            else if (ce.element is ComboBox)
     637                            {
     638                                ComboBox cb = ce.element as ComboBox;
     639                                //cb.Width = getComboBoxMaxSize(cb);
     640                                noVerticalGroup.Children.Add(cb);
     641                            }
     642                            else
     643                            {
     644                                noVerticalGroup.Children.Add(title);
     645                                noVerticalGroup.Children.Add(ce.element);
    642646                            }
    643647                        }
    644648                       
    645649                    }
    646                     test.HorizontalAlignment = HorizontalAlignment.Left;
    647                    
    648                     bodi.Child = test;
    649                    
    650                     bodi.Style = (Style)FindResource("border1");
    651                    
    652                    
    653                     testexoander.Content = bodi;
    654                     if (isSideBar)
    655                         myStack.Children.Add(testexoander);
    656                     else
    657                         myWrap.Children.Add(testexoander);
    658                     test.setMaxSizes();
    659                     noVerticalGroup.setMaxSizes();
    660                 }
    661 
    662                 this.BeginInit();
    663 
    664         }
     650
     651                    //Binding bind = new Binding();
     652                    //bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
     653                    //bind.Path = new PropertyPath(UIElement.VisibilityProperty);
     654                    //bind.Mode = BindingMode.TwoWay;
     655                    //bind.Source = ce.element.Visibility;
     656                    //title.SetBinding(TextBlock.VisibilityProperty, bind);
     657
     658                }
     659                test.HorizontalAlignment = HorizontalAlignment.Left;
     660
     661                bodi.Child = test;
     662
     663                bodi.Style = (Style)FindResource("border1");
     664
     665
     666                testexoander.Content = bodi;
     667                if (isSideBar)
     668                    myStack.Children.Add(testexoander);
     669                else
     670                    myWrap.Children.Add(testexoander);
     671                test.setMaxSizes();
     672                noVerticalGroup.setMaxSizes();
     673            }
     674
     675            this.BeginInit();
     676
     677        }
     678
     679
    665680
    666681        private EntryGroup createContentSettings(IPlugin plugin)
     
    688703               // try
    689704                //{
     705                bool b = (bcv.Model.GetOutputConnectors().Union(bcv.Model.GetInputConnectors())).Any(x => tpa.PropertyName == x.GetName());
    690706                    switch (tpa.ControlType)
    691707                    {
     
    694710
    695711                            TextBox textbox = new TextBox();
    696                            
     712
    697713                            textbox.Tag = tpa.ToolTip;
    698714                            textbox.ToolTip = tpa.ToolTip;
     
    716732
    717733                            //controlList.Add(new ControlEntry(textbox,tpa,sfa));
    718                             entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(textbox, tpa, sfa));
     734                            entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(textbox, tpa, sfa, b));
    719735                            break;
    720736
     
    726742                            {
    727743                                IntegerUpDown intInput = new IntegerUpDown();
     744                     
    728745                                intInput.SelectAllOnGotFocus = true;
    729746                                intInput.Tag = tpa.ToolTip;
     
    738755                                intInput.Width = ft.WidthIncludingTrailingWhitespace + 30;
    739756                                intInput.SetBinding(IntegerUpDown.ValueProperty, dataBinding);
    740                                 entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(intInput, tpa, sfa));
     757                                entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(intInput, tpa, sfa, b));
    741758                                intInput.IsEnabled = true;
    742759                               
     
    776793                        case ControlType.ComboBox:
    777794                            ComboBox comboBox = new ComboBox();
    778 
     795   
    779796                            comboBox.Tag = tpa.ToolTip;
    780797                            comboBox.MouseEnter += Control_MouseEnter;
     
    797814                            comboBox.SetBinding(ComboBox.SelectedIndexProperty, dataBinding);
    798815                            //controlList.Add(new ControlEntry(comboBox, tpa, sfa));
    799                             entgrou.AddNewEntry(tpa.GroupName,new ControlEntry(comboBox, tpa, sfa));
     816                            entgrou.AddNewEntry(tpa.GroupName,new ControlEntry(comboBox, tpa, sfa, b));
    800817                            break;
    801818
     
    805822                       
    806823                        case ControlType.RadioButton:
    807                      
    808824                            if (!dicRadioButtons.ContainsKey(plugin.Settings))
    809825                            {
     
    812828                            List<RadioButton> list = new List<RadioButton>();
    813829                            StackPanel panelRadioButtons = new StackPanel();
     830
    814831                            panelRadioButtons.ToolTip = tpa.ToolTip;
    815832                            panelRadioButtons.MouseEnter += Control_MouseEnter;
     
    841858                                }
    842859                                dicRadioButtons[plugin.Settings].Add(tpa.PropertyName, list);
    843                                 entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(panelRadioButtons, tpa, sfa));
     860                                entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(panelRadioButtons, tpa, sfa, b));
    844861                           
    845862                            break;
     
    850867                        case ControlType.CheckBox:
    851868                            CheckBox checkBox = new CheckBox();
     869                           
    852870                            checkBox.Margin = CONTROL_DEFAULT_MARGIN;
    853871                            TextBlock wrapBlock = new TextBlock();
     
    859877                            checkBox.MouseEnter += Control_MouseEnter;
    860878                            checkBox.SetBinding(CheckBox.IsCheckedProperty, dataBinding);
    861                             entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(checkBox, tpa, sfa));
     879                            entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(checkBox, tpa, sfa, b));
    862880                           
    863881                            break;
     
    873891                            {
    874892                                ComboBox comboBoxDyn = new ComboBox();
     893                             
    875894                                comboBoxDyn.Tag = tpa.ToolTip;
    876895                                comboBoxDyn.ToolTip = tpa.ToolTip;
     
    882901
    883902                                //controlList.Add(new ControlEntry(comboBoxDyn, tpa, sfa));
    884                                 entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(comboBoxDyn, tpa, sfa));
     903                                entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(comboBoxDyn, tpa, sfa, b));
    885904                            }
    886905                            break;
     
    891910                        case ControlType.OpenFileDialog:
    892911                            StackPanel sp = new StackPanel();
     912                           
    893913                            sp.Uid = "FileDialog";
    894914                            sp.Orientation = Orientation.Vertical;
     
    920940                            btn.Click += FileDialogClick;
    921941                            sp.Children.Add(btn);
    922                             entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(sp, tpa, sfa));
     942                            entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(sp, tpa, sfa, b));
    923943                           
    924944                            break;
     
    928948                        case ControlType.Button:
    929949                            Button taskPaneButton = new Button();
     950                           
    930951                            taskPaneButton.Margin = new Thickness(0);
    931952                            taskPaneButton.Tag = tpa;
     
    939960                            taskPaneButton.Click += TaskPaneButton_Click;
    940961                           
    941                             entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(taskPaneButton, tpa, sfa));
     962                            entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(taskPaneButton, tpa, sfa, b));
    942963                            break;
    943964                        # endregion Button
     
    946967                        case ControlType.Slider:
    947968                            Slider slider = new Slider();
     969                         
    948970                            slider.Margin = CONTROL_DEFAULT_MARGIN;
    949971                            slider.Orientation = Orientation.Horizontal;
     
    959981                            slider.MinWidth = 0;
    960982
    961                             entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(slider, tpa, sfa));
     983                            entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(slider, tpa, sfa, b));
    962984                            break;
    963985                        # endregion Slider
     
    966988                        case ControlType.TextBoxReadOnly:
    967989                            TextBox textBoxReadOnly = new TextBox();
     990                           
    968991                            textBoxReadOnly.MinWidth = 0;
    969992                            textBoxReadOnly.TextWrapping = TextWrapping.Wrap;
     
    976999                            dataBinding.Mode = BindingMode.OneWay; // read-only strings do not need a setter
    9771000                            textBoxReadOnly.SetBinding(TextBox.TextProperty, dataBinding);
    978                             entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(textBoxReadOnly, tpa, sfa));
     1001                            entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(textBoxReadOnly, tpa, sfa, b));
    9791002                            break;
    9801003                        # endregion TextBoxReadOnly
     
    9831006                            case ControlType.TextBoxHidden:
    9841007                            PasswordBox passwordBox = new PasswordBox();
    985 
     1008                           
    9861009                            passwordBox.MinWidth = 0;
    9871010                           
     
    9921015                            //textBoxReadOnly.SetBinding(PasswordBox.property , dataBinding);
    9931016                            passwordBox.PasswordChanged += TextBoxHidden_Changed;
    994                             entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(passwordBox, tpa, sfa));
     1017                            entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(passwordBox, tpa, sfa,b));
    9951018                        break;
    9961019                        #endregion TextBoxHidden
     
    9991022                            case ControlType.KeyTextBox:
    10001023                            var keyTextBox = new KeyTextBox.KeyTextBox();
     1024                           
    10011025                            var keyManager = plugin.Settings.GetType().GetProperty(tpa.AdditionalPropertyName).GetValue(plugin.Settings, null) as KeyTextBox.IKeyManager;
    10021026                            keyTextBox.KeyManager = keyManager;
     
    10051029                            keyTextBox.MouseEnter += Control_MouseEnter;
    10061030                            keyTextBox.SetBinding(KeyTextBox.KeyTextBox.CurrentKeyProperty, dataBinding);
    1007                             entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(keyTextBox, tpa, sfa));
     1031                            entgrou.AddNewEntry(tpa.GroupName, new ControlEntry(keyTextBox, tpa, sfa,b));
    10081032                        break;
    10091033                        #endregion KeyTextBox
    10101034
    10111035                    }
    1012 
    1013                      
    1014              //   }
    1015 
    1016            //     catch (Exception) { }
    1017                
     1036   
    10181037            }
    10191038            entgrou.sort();
     
    10231042        }
    10241043
    1025          private void TextBoxHidden_Changed(object sender, RoutedEventArgs e)
     1044
     1045        void Model_ConnectorPlugstateChanged(object sender, Model.ConnectorPlugstateChangedEventArgs e)
     1046        {
     1047            ControlEntry ele = null;
     1048            connectorSettingElements.TryGetValue(e.ConnectorModel.GetName(), out ele);
     1049            if (e.PlugState == Model.PlugState.Plugged)
     1050            {
     1051                if (ele != null)
     1052                {
     1053                    ele.Visibility = System.Windows.Visibility.Visible;
     1054                }
     1055            }
     1056            if(e.PlugState == Model.PlugState.Unplugged && e.ConnectorModel.GetInputConnections().Count == 0)
     1057            {
     1058                if (ele != null)
     1059                {
     1060                    ele.Visibility = System.Windows.Visibility.Collapsed;
     1061                }
     1062            }
     1063
     1064        }
     1065
     1066        void addToConnectorSettingsHide(ControlEntry element)
     1067        {
     1068            if (element.hide)
     1069            {
     1070                element.Visibility = Visibility.Collapsed;
     1071                connectorSettingElements.Add(element.tpa.PropertyName, element);
     1072            }
     1073        }
     1074
     1075
     1076        Dictionary<string, ControlEntry> connectorSettingElements = new Dictionary<string, ControlEntry>();
     1077        private void TextBoxHidden_Changed(object sender, RoutedEventArgs e)
    10261078        {
    10271079            try
     
    11531205            }
    11541206        }
    1155        
     1207
    11561208    }
    11571209
    1158     public class EntryGroup 
     1210    public class EntryGroup
    11591211    {
    1160        
     1212
    11611213        public List<String> listAdmin = new List<String>();
    11621214        public List<List<ControlEntry>> entryList = new List<List<ControlEntry>>();
     
    11841236            }
    11851237        }
    1186        public void sort()
    1187         {
    1188             foreach(List<ControlEntry> dummyList in entryList)
    1189             dummyList.Sort(new BindingInfoComparer());
    1190         }
    1191 
    1192 
    1193        
    1194        
     1238        public void sort()
     1239        {
     1240            foreach (List<ControlEntry> dummyList in entryList)
     1241                dummyList.Sort(new BindingInfoComparer());
     1242        }
     1243
     1244
     1245
     1246
    11951247
    11961248
     
    12191271        public TaskPaneAttribute tpa;
    12201272        public SettingsFormatAttribute sfa;
    1221 
    1222         public UIElement caption
    1223         {
    1224             get;
    1225             set;
    1226         }
    1227 
    1228        
    1229 
    1230        public ControlEntry (UIElement element, TaskPaneAttribute tpa, SettingsFormatAttribute sfa)
     1273        public bool hide;
     1274
     1275        private FrameworkElement captionx;
     1276        public FrameworkElement caption
     1277        {
     1278            get
     1279            {
     1280                return captionx;
     1281            }
     1282            set
     1283            {
     1284                captionx = value;
     1285                captionx.Visibility = element.Visibility;
     1286            }
     1287        }
     1288
     1289        private Visibility visibility;
     1290        public Visibility Visibility
     1291        {
     1292            get
     1293            {
     1294                return visibility;
     1295            }
     1296            set
     1297            {
     1298                visibility = value;
     1299                if(caption != null)
     1300                    caption.Visibility = value;
     1301                element.Visibility = value;
     1302            }
     1303        }
     1304
     1305        public ControlEntry(UIElement element, TaskPaneAttribute tpa, SettingsFormatAttribute sfa)
    12311306        {
    12321307            this.element = element;
    12331308            this.sfa = sfa;
    12341309            this.tpa = tpa;
     1310        }
     1311
     1312        public ControlEntry(UIElement element, TaskPaneAttribute tpa, SettingsFormatAttribute sfa, bool hide)
     1313        {
     1314            this.element = element;
     1315            this.sfa = sfa;
     1316            this.tpa = tpa;
     1317            this.hide = hide;
    12351318        }
    12361319
     
    12541337        }
    12551338
    1256         public void setMaxSizes() 
     1339        public void setMaxSizes()
    12571340        {
    12581341            foreach (UIElement child in Children)
     
    12931376
    12941377                        }
    1295                        
    1296                     }
    1297                     else 
     1378
     1379                    }
     1380                    else
    12981381                    {
    12991382                        if (child.DesiredSize.Width > maxSizeContent)
     
    13121395
    13131396            maxSizeCaption += 5;
    1314            
    1315             maxSize = maxSizeCaption  + maxSizeContent ;
     1397
     1398            maxSize = maxSizeCaption + maxSizeContent;
    13161399
    13171400            if (maxSizeCB > maxSize)
     
    13211404            }
    13221405
    1323                 //if (maxSizeCaption > maxSizeContent)
    1324                 //  this.MinWidth = maxSizeCaption;
    1325                 //else
    1326                 // this.MinWidth = maxSizeContent;
     1406            //if (maxSizeCaption > maxSizeContent)
     1407            //  this.MinWidth = maxSizeCaption;
     1408            //else
     1409            // this.MinWidth = maxSizeContent;
    13271410
    13281411            if (maxSize < maxGrid.DesiredSize.Width)
    1329                 {
    1330                     maxSize = maxGrid.DesiredSize.Width;
    1331                     //  this.MinWidth = maxGrid.Width;
    1332                 }
     1412            {
     1413                maxSize = maxGrid.DesiredSize.Width;
     1414                //  this.MinWidth = maxGrid.Width;
     1415            }
    13331416            if (!isSideBar)
    1334             { 
    1335                 this.MaxWidth = maxSize + 10; 
    1336             }
    1337            
     1417            {
     1418                this.MaxWidth = maxSize + 10;
     1419            }
     1420
    13381421
    13391422            foreach (UIElement child in Children)
     
    13651448                    dummyTextBox.Arrange(new Rect(dummyTextBox.DesiredSize));
    13661449                    //dummyTextBox.MaxWidth = dummyTextBox.DesiredSize.Width;
    1367                    
     1450
    13681451                    dummyTextBox.MaxWidth = maxSizeContent;
    13691452
     
    14281511                    dummyTextBox.Arrange(new Rect(dummyTextBox.DesiredSize));
    14291512                    //dummyTextBox.MaxWidth = dummyTextBox.DesiredSize.Width;
    1430                     if(dummyTextBox.Uid == "FileDialog")
     1513                    if (dummyTextBox.Uid == "FileDialog")
    14311514                        dummyTextBox.MaxWidth = maxSize;
    14321515                    else
     
    14411524                    dummyTextBox.Arrange(new Rect(dummyTextBox.DesiredSize));
    14421525                    //dummyTextBox.MaxWidth = dummyTextBox.DesiredSize.Width;
    1443                     dummyTextBox.MaxWidth = maxSizeContent-10;
     1526                    dummyTextBox.MaxWidth = maxSizeContent - 10;
    14441527
    14451528                }
     
    14541537
    14551538
    1456                
    1457             }
    1458 
    1459 
    1460 
    1461         }
    1462 
    1463         private void TestPanel_SizeChanged(Object sender, SizeChangedEventArgs args) 
     1539
     1540            }
     1541
     1542
     1543
     1544        }
     1545
     1546        private void TestPanel_SizeChanged(Object sender, SizeChangedEventArgs args)
    14641547        {
    14651548            //Console.WriteLine(this.ActualWidth);
    14661549            foreach (UIElement child in Children)
    14671550            {
    1468                 child.Measure(new Size(this.ActualWidth,double.PositiveInfinity));
     1551                child.Measure(new Size(this.ActualWidth, double.PositiveInfinity));
    14691552
    14701553                if (child is CheckBox)
     
    14801563                {
    14811564                    Slider dummyTextBox = child as Slider;
    1482                    
     1565
    14831566                    if (this.ActualWidth < maxSizeCaption + maxSizeContent)
    14841567                    {
     
    14871570                    else
    14881571                    {
    1489                         dummyTextBox.MaxWidth = this.ActualWidth - maxSizeCaption ;
     1572                        dummyTextBox.MaxWidth = this.ActualWidth - maxSizeCaption;
    14901573                    }
    14911574                    dummyTextBox.Width = this.ActualWidth;
    14921575                }
    14931576
    1494                 if (child is StackPanel) 
     1577                if (child is StackPanel)
    14951578                {
    14961579                    StackPanel dummyTextBox = child as StackPanel;
     
    15011584                }
    15021585
    1503                 if (child is IntegerUpDown) 
     1586                if (child is IntegerUpDown)
    15041587                {
    15051588                    IntegerUpDown dummyTextBox = child as IntegerUpDown;
     
    15121595                    else
    15131596                    {
    1514                         dummyTextBox.MaxWidth = this.ActualWidth - maxSizeCaption ;
     1597                        dummyTextBox.MaxWidth = this.ActualWidth - maxSizeCaption;
    15151598                    }
    15161599                    dummyTextBox.Width = this.ActualWidth;
    15171600                }
    1518                
     1601
    15191602                if (child is Button)
    15201603                {
     
    15221605
    15231606                    dummyTextBox.MinWidth = 0;
    1524                    
     1607
    15251608                    dummyTextBox.Width = this.ActualWidth;
    15261609                }
     
    15281611                if (child is TextBlock)
    15291612                {
    1530                    
     1613
    15311614                    TextBlock dummyTextBox = child as TextBlock;
    1532                    
     1615
    15331616                    dummyTextBox.MinWidth = 0;
    1534                    
    1535                    
     1617
     1618
    15361619                    dummyTextBox.Width = this.ActualWidth;
    15371620                }
     
    15431626                    dummyTextBox.MinWidth = 0;
    15441627                    if (this.ActualWidth < maxSizeCaption + maxSizeContent)
    1545                     { 
    1546                         dummyTextBox.MaxWidth = Double.MaxValue; 
     1628                    {
     1629                        dummyTextBox.MaxWidth = Double.MaxValue;
    15471630                    }
    15481631                    else
    15491632                    {
    1550                         dummyTextBox.MaxWidth = this.ActualWidth - maxSizeCaption ;
     1633                        dummyTextBox.MaxWidth = this.ActualWidth - maxSizeCaption;
    15511634                    }
    15521635
     
    15681651                    Grid dummyTextBox = child as Grid;
    15691652                    dummyTextBox.MinWidth = 0;
    1570                    
     1653
    15711654                    dummyTextBox.Width = this.ActualWidth;
    15721655                }
     
    16041687                    dummyTextBox.MinWidth = 0;
    16051688                    if (this.ActualWidth < maxSizeCaption + maxSizeContent)
    1606                     { 
    1607                         dummyTextBox.MaxWidth = Double.MaxValue; 
     1689                    {
     1690                        dummyTextBox.MaxWidth = Double.MaxValue;
    16081691                    }
    16091692                    else
    1610                     {   
    1611                         dummyTextBox.MaxWidth =  this.ActualWidth-maxSizeCaption ;
     1693                    {
     1694                        dummyTextBox.MaxWidth = this.ActualWidth - maxSizeCaption;
    16121695                    }
    16131696                    dummyTextBox.Width = this.ActualWidth;
    16141697                }
    16151698
    1616                
     1699
    16171700
    16181701            }
     
    17181801                if (child is CheckBox)
    17191802                {
    1720                   //  b = true;
     1803                    //  b = true;
    17211804                }
    17221805
    17231806                if (Children.IndexOf(child) % 2 == 0 || curX + child.DesiredSize.Width > availableSize.Width /*|| curX + child.DesiredSize.Width > maxSize*/ || b)
    17241807                { //Wrap to next line
    1725                    
     1808
    17261809                    curY += curLineHeight + 2;
    17271810                    curX = 0;
     
    17441827            this.Height = resultSize.Height;
    17451828
    1746            
     1829
    17471830            return resultSize;
    17481831        }
     
    18391922                if (child is CheckBox)
    18401923                {
    1841                    // b = true;
    1842                 }
    1843 
    1844                 if (Children.IndexOf(child) % 2 == 0 || curX + child.DesiredSize.Width > finalSize.Width /*|| curX + child.DesiredSize.Width > maxSize*/ || b || Children.IndexOf(child) % 2 == 0 )
     1924                    // b = true;
     1925                }
     1926
     1927                if (Children.IndexOf(child) % 2 == 0 || curX + child.DesiredSize.Width > finalSize.Width /*|| curX + child.DesiredSize.Width > maxSize*/ || b || Children.IndexOf(child) % 2 == 0)
    18451928                { //Wrap to next line
    1846                    
     1929
    18471930                    curY += curLineHeight + 2;
    18481931                    curX = 0;
     
    18601943                curX += maxSizeCaption;
    18611944
    1862                 if (child.DesiredSize.Height > curLineHeight )
     1945                if (child.DesiredSize.Height > curLineHeight)
    18631946                    curLineHeight = child.DesiredSize.Height;
    1864                
     1947
    18651948            }
    18661949
     
    18701953            this.Height = curY;
    18711954
    1872            
     1955
    18731956            return finalSize;
    1874            
     1957
    18751958        }
    18761959    }
     
    18941977        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    18951978        {
    1896            
     1979
    18971980            int integer = (int)value;
    18981981            if (integer == int.Parse(parameter.ToString()))
    18991982                return true;
    1900            else
     1983            else
    19011984                return false;
    1902            
    1903            
     1985
     1986
    19041987        }
    19051988
     
    19091992            if (checkedBool)
    19101993            {
    1911                 if(targetType.Name != "Int32")
     1994                if (targetType.Name != "Int32")
    19121995                {
    19131996                    String[] targetlist = targetType.GetEnumNames();
     
    19182001                    return parameter;
    19192002                }
    1920                
    1921             }
    1922             else 
     2003
     2004            }
     2005            else
    19232006            {
    19242007                return null;
     
    19522035        {
    19532036            return Enum.ToObject(targetType, value);
    1954            
     2037
    19552038        }
    19562039    }
  • trunk/CrypWin/MainWindow.xaml

    r5314 r5352  
    5151                </Setter.Value>
    5252            </Setter>
     53        </Style>
     54
     55
     56        <LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1">
     57            <GradientBrush.GradientStops>
     58                <GradientStopCollection>
     59                    <GradientStop Color="#FFF" Offset="0.0"/>
     60                    <GradientStop Color="#CCC" Offset="1.0"/>
     61                </GradientStopCollection>
     62            </GradientBrush.GradientStops>
     63        </LinearGradientBrush>
     64
     65        <LinearGradientBrush x:Key="HorizontalNormalBrush" StartPoint="0,0" EndPoint="1,0">
     66            <GradientBrush.GradientStops>
     67                <GradientStopCollection>
     68                    <GradientStop Color="#FFF" Offset="0.0"/>
     69                    <GradientStop Color="#CCC" Offset="1.0"/>
     70                </GradientStopCollection>
     71            </GradientBrush.GradientStops>
     72        </LinearGradientBrush>
     73
     74        <LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
     75            <GradientBrush.GradientStops>
     76                <GradientStopCollection>
     77                    <GradientStop Color="#FFF" Offset="0.0"/>
     78                    <GradientStop Color="#EEE" Offset="1.0"/>
     79                </GradientStopCollection>
     80            </GradientBrush.GradientStops>
     81        </LinearGradientBrush>
     82
     83        <LinearGradientBrush x:Key="HorizontalLightBrush" StartPoint="0,0" EndPoint="1,0">
     84            <GradientBrush.GradientStops>
     85                <GradientStopCollection>
     86                    <GradientStop Color="#FFF" Offset="0.0"/>
     87                    <GradientStop Color="#EEE" Offset="1.0"/>
     88                </GradientStopCollection>
     89            </GradientBrush.GradientStops>
     90        </LinearGradientBrush>
     91
     92        <LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1">
     93            <GradientBrush.GradientStops>
     94                <GradientStopCollection>
     95                    <GradientStop Color="#FFF" Offset="0.0"/>
     96                    <GradientStop Color="#AAA" Offset="1.0"/>
     97                </GradientStopCollection>
     98            </GradientBrush.GradientStops>
     99        </LinearGradientBrush>
     100
     101        <LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
     102            <GradientBrush.GradientStops>
     103                <GradientStopCollection>
     104                    <GradientStop Color="#BBB" Offset="0.0"/>
     105                    <GradientStop Color="#EEE" Offset="0.1"/>
     106                    <GradientStop Color="#EEE" Offset="0.9"/>
     107                    <GradientStop Color="#FFF" Offset="1.0"/>
     108                </GradientStopCollection>
     109            </GradientBrush.GradientStops>
     110        </LinearGradientBrush>
     111
     112        <SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />
     113
     114        <SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />
     115
     116        <SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />
     117
     118        <SolidColorBrush x:Key="SelectedBackgroundBrush" Color="#DDD" />
     119
     120        <!-- Border Brushes -->
     121
     122        <LinearGradientBrush x:Key="NormalBorderBrush" StartPoint="0,0" EndPoint="0,1">
     123            <GradientBrush.GradientStops>
     124                <GradientStopCollection>
     125                    <GradientStop Color="#CCC" Offset="0.0"/>
     126                    <GradientStop Color="#444" Offset="1.0"/>
     127                </GradientStopCollection>
     128            </GradientBrush.GradientStops>
     129        </LinearGradientBrush>
     130
     131        <LinearGradientBrush x:Key="HorizontalNormalBorderBrush" StartPoint="0,0" EndPoint="1,0">
     132            <GradientBrush.GradientStops>
     133                <GradientStopCollection>
     134                    <GradientStop Color="#CCC" Offset="0.0"/>
     135                    <GradientStop Color="#444" Offset="1.0"/>
     136                </GradientStopCollection>
     137            </GradientBrush.GradientStops>
     138        </LinearGradientBrush>
     139
     140        <LinearGradientBrush x:Key="DefaultedBorderBrush" StartPoint="0,0" EndPoint="0,1">
     141            <GradientBrush.GradientStops>
     142                <GradientStopCollection>
     143                    <GradientStop Color="#777" Offset="0.0"/>
     144                    <GradientStop Color="#000" Offset="1.0"/>
     145                </GradientStopCollection>
     146            </GradientBrush.GradientStops>
     147        </LinearGradientBrush>
     148
     149        <LinearGradientBrush x:Key="PressedBorderBrush" StartPoint="0,0" EndPoint="0,1">
     150            <GradientBrush.GradientStops>
     151                <GradientStopCollection>
     152                    <GradientStop Color="#444" Offset="0.0"/>
     153                    <GradientStop Color="#888" Offset="1.0"/>
     154                </GradientStopCollection>
     155            </GradientBrush.GradientStops>
     156        </LinearGradientBrush>
     157
     158        <SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />
     159
     160        <SolidColorBrush x:Key="SolidBorderBrush" Color="#888" />
     161
     162        <SolidColorBrush x:Key="LightBorderBrush" Color="#AAA" />
     163
     164        <!-- Miscellaneous Brushes -->
     165        <SolidColorBrush x:Key="GlyphBrush" Color="#444" />
     166
     167        <SolidColorBrush x:Key="LightColorBrush" Color="#DDD" />
     168
     169
     170
     171
     172        <ControlTemplate x:Key="ComboBoxToggleButton" TargetType="ToggleButton">
     173            <Grid>
     174                <Grid.ColumnDefinitions>
     175                    <ColumnDefinition />
     176                    <ColumnDefinition Width="20" />
     177                </Grid.ColumnDefinitions>
     178                <Border
     179      x:Name="Border"
     180      Grid.ColumnSpan="2"
     181      CornerRadius="2"
     182      BorderThickness="1" />
     183                <Border
     184      Grid.Column="0"
     185      CornerRadius="2,0,0,2"
     186      Margin="1"
     187      BorderThickness="0,0,1,0" />
     188                <Image Width="18" Height="18" Source="images/ctLogo.png" HorizontalAlignment="Center" SnapsToDevicePixels="True"></Image>
     189            </Grid>
     190            <ControlTemplate.Triggers>
     191                <Trigger Property="ToggleButton.IsMouseOver" Value="true">
     192                    <Setter TargetName="Border" Property="Background" Value="#44ffffff" />
     193                </Trigger>
     194                <Trigger Property="ToggleButton.IsChecked" Value="true">
     195                    <Setter TargetName="Border" Property="Background" Value="#22ffffff" />
     196                </Trigger>
     197
     198            </ControlTemplate.Triggers>
     199        </ControlTemplate>
     200
     201        <ControlTemplate x:Key="ComboBoxTextBox" TargetType="TextBox">
     202            <Border x:Name="PART_ContentHost" Focusable="False" Background="{TemplateBinding Background}" />
     203        </ControlTemplate>
     204
     205        <Style x:Key="ComboStyle" TargetType="ComboBox">
     206            <Setter Property="SnapsToDevicePixels" Value="true"/>
     207            <Setter Property="OverridesDefaultStyle" Value="true"/>
     208            <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
     209            <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
     210            <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
     211            <Setter Property="MinWidth" Value="51"/>
     212            <Setter Property="MinHeight" Value="20"/>
     213            <Setter Property="Template">
     214                <Setter.Value>
     215                    <ControlTemplate TargetType="ComboBox">
     216                        <Grid>
     217                            <ToggleButton
     218            Name="ToggleButton"
     219            Template="{StaticResource ComboBoxToggleButton}"
     220            Grid.Column="2"
     221            Focusable="false"
     222            IsChecked="{Binding Path=IsDropDownOpen,Mode=TwoWay,RelativeSource={RelativeSource TemplatedParent}}"
     223            ClickMode="Press">
     224                            </ToggleButton>
     225                            <ContentPresenter
     226            Name="ContentSite"
     227            IsHitTestVisible="False"
     228            Content="{TemplateBinding SelectionBoxItem}"
     229            ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
     230            ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
     231            Margin="3,3,23,3"
     232            VerticalAlignment="Center"
     233            HorizontalAlignment="Left" />
     234                            <TextBox x:Name="PART_EditableTextBox"
     235            Style="{x:Null}"
     236            Template="{StaticResource ComboBoxTextBox}"
     237            HorizontalAlignment="Left"
     238            VerticalAlignment="Center"
     239            Margin="3,3,23,3"
     240            Focusable="True"
     241            Background="Transparent"
     242            Visibility="Hidden"
     243            IsReadOnly="{TemplateBinding IsReadOnly}"/>
     244                            <Popup
     245            Name="Popup"
     246            Placement="Bottom"
     247            IsOpen="{TemplateBinding IsDropDownOpen}"
     248            AllowsTransparency="True"
     249            Focusable="False"
     250            PopupAnimation="Slide">
     251                                <Grid
     252              Name="DropDown"
     253              SnapsToDevicePixels="True"               
     254              MinWidth="{TemplateBinding ActualWidth}"
     255              MaxHeight="{TemplateBinding MaxDropDownHeight}">
     256                                    <Border
     257                x:Name="DropDownBorder"
     258                Background="{StaticResource WindowBackgroundBrush}"
     259                BorderThickness="1"
     260                BorderBrush="{StaticResource SolidBorderBrush}"/>
     261                                    <ScrollViewer Margin="4,6,4,6" SnapsToDevicePixels="True">
     262                                        <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" />
     263                                    </ScrollViewer>
     264                                </Grid>
     265                            </Popup>
     266                        </Grid>
     267                        <ControlTemplate.Triggers>
     268                            <Trigger Property="HasItems" Value="false">
     269                                <Setter TargetName="DropDownBorder" Property="MinHeight" Value="95"/>
     270                            </Trigger>
     271                            <Trigger Property="IsEnabled" Value="false">
     272                                <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
     273                            </Trigger>
     274                            <Trigger Property="IsGrouping" Value="true">
     275                                <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
     276                            </Trigger>
     277                            <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="true">
     278                                <Setter TargetName="DropDownBorder" Property="CornerRadius" Value="4"/>
     279                                <Setter TargetName="DropDownBorder" Property="Margin" Value="0,2,0,0"/>
     280                            </Trigger>
     281                            <Trigger Property="IsEditable"
     282               Value="true">
     283                                <Setter Property="IsTabStop" Value="false"/>
     284                                <Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible"/>
     285                                <Setter TargetName="ContentSite" Property="Visibility" Value="Hidden"/>
     286                            </Trigger>
     287                        </ControlTemplate.Triggers>
     288                    </ControlTemplate>
     289                </Setter.Value>
     290            </Setter>
     291            <Style.Triggers>
     292            </Style.Triggers>
    53293        </Style>
    54294
     
    144384            <Grid SnapsToDevicePixels="True">
    145385                <Grid.ColumnDefinitions>
    146                     <ColumnDefinition x:Name="ColumnDefinition1" Width="50"/>
     386                    <ColumnDefinition x:Name="ColumnDefinition1" Width="30"/>
    147387                    <ColumnDefinition x:Name="ColumnDefinition0"/>
    148388                </Grid.ColumnDefinitions>
     
    156396                    <TabPanel x:Name="HeaderPanel" IsItemsHost="True" Margin="2,2,2,0" Panel.ZIndex="1"></TabPanel>
    157397                </ScrollViewer>
    158                 <ComboBox Grid.Column="0" Grid.Row="0" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabControl}}, Path=Items,Mode=OneWay}" Height="20" Width="45"
     398                <ComboBox Grid.Column="0" Grid.Row="0" Style="{StaticResource ResourceKey=ComboStyle}" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabControl}}, Path=Items,Mode=OneWay}" Height="20" Width="20"
    159399                    SelectionChanged="ComboBox_SelectionChanged">
    160400                    <ComboBox.ItemTemplate>
Note: See TracChangeset for help on using the changeset viewer.