Ignore:
Timestamp:
Feb 13, 2011, 5:42:31 PM (11 years ago)
Author:
sauer
Message:

Wizard: plugin presentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/Wizard/WizardControl.xaml.cs

    r2638 r2676  
    5454        private List<TextBox> currentOutputBoxes = new List<TextBox>();
    5555        private List<TextBox> currentInputBoxes = new List<TextBox>();
     56        private List<ContentControl> currentPresentations = new List<ContentControl>();
    5657
    5758        internal event OpenTabHandler OnOpenTab;
     
    7677
    7778            InitializeComponent();
     79            CompositionTarget.Rendering += CompositionTarget_Rendering;
    7880
    7981            currentHistory.CollectionChanged += delegate
     
    8587            SetupPage(wizardConfigXML);
    8688            AddToHistory(wizardConfigXML);
     89        }
     90
     91        ~WizardControl()
     92        {
     93            CompositionTarget.Rendering -= CompositionTarget_Rendering;
    8794        }
    8895
     
    218225
    219226                var inputs = from el in element.Elements()
    220                              where el.Name == "inputBox" || el.Name == "comboBox" || el.Name == "checkBox" || el.Name == "outputBox"
     227                             where el.Name == "inputBox" || el.Name == "comboBox" || el.Name == "checkBox" || el.Name == "outputBox" || el.Name == "presentation"
    221228                             select el;
    222229
     
    245252                {
    246253                    nextButton.IsEnabled = false;
    247                     LoadSample(element.Attribute("file").Value, element.Attribute("title").Value, false);
     254                    if (element.Element("presentation") != null)
     255                        LoadSample(element.Attribute("file").Value, element.Attribute("title").Value, false);
     256                    else
     257                        LoadSample(element.Attribute("file").Value, element.Attribute("title").Value, false);
    248258                }
    249259
     
    417427            Control element = null;
    418428
    419             string key = GetElementPluginPropertyKey(input);
     429            string key = null;
     430            if (input.Name != "presentation")
     431                key = GetElementPluginPropertyKey(input);
    420432
    421433            switch (input.Name.ToString())
     
    562574                    currentOutputBoxes.Add(outputBox);
    563575                    element = outputBox;
     576                    break;
     577                case "presentation":
     578                    if (isInput)
     579                        break;
     580
     581                    var cc = new ContentControl();
     582                    cc.Tag = input;
     583                    inputStack.Children.Add(cc);
     584
     585                    currentPresentations.Add(cc);
     586                    element = cc;
    564587                    break;
    565588            }
     
    749772                                                                                                    });
    750773                    }
     774                }
     775            }
     776
     777            //fill presentations
     778            foreach (var presentation in currentPresentations)
     779            {
     780                var ele = (XElement)presentation.Tag;
     781                var pluginName = ele.Attribute("plugin").Value;
     782                if (!string.IsNullOrEmpty(pluginName))
     783                {
     784                    var plugin = model.AllPluginModels.Where(x => x.Name == pluginName).First().Plugin;
     785                    presentation.Content = plugin.Presentation;
    751786                }
    752787            }
     
    11051140        }
    11061141
    1107         protected override void OnKeyDown(KeyEventArgs e)
    1108         {
    1109             switch (e.Key)
     1142        private bool keyPressed = false;
     1143
     1144        void CompositionTarget_Rendering(object sender, EventArgs e)
     1145        {
     1146            var interestingKeys = new List<Key>() {Key.Up, Key.Down, Key.Left, Key.Right};
     1147            if (this.IsMouseOver)
     1148            {
     1149                foreach (var k in interestingKeys)
     1150                {
     1151                    if ((Keyboard.GetKeyStates(k) & KeyStates.Down) > 0)
     1152                    {
     1153                        if (!keyPressed)
     1154                        {
     1155                            keyPressed = true;
     1156                            KeyPressedDown(k);
     1157                        }
     1158                        return;
     1159                    }
     1160                }
     1161            }
     1162           
     1163            keyPressed = false;
     1164        }
     1165
     1166        private void KeyPressedDown(Key key)
     1167        {
     1168            switch (key)
    11101169            {
    11111170                case Key.Up:
     
    11201179                            ((RadioButton)radioButtonStackPanel.Children[i]).IsChecked = false;
    11211180
    1122                             if (e.Key == Key.Down)
     1181                            if (key == Key.Down)
    11231182                            {
    11241183                                if (radioButtonStackPanel.Children.Count > i + 1)
Note: See TracChangeset for help on using the changeset viewer.