source: trunk/CrypPlugins/BigNumber/BigNumberOperationSettings.cs @ 750

Last change on this file since 750 was 750, checked in by nolte, 12 years ago

Added the GCD function to the BigNumberOperations.
Sample submit included.

File size: 3.2 KB
Line 
1/*                             
2   Copyright 2009 Team CrypTool (Sven Rech,Dennis Nolte,Raoul Falk,Nils Kopal), Uni Duisburg-Essen
3
4   Licensed under the Apache License, Version 2.0 (the "License");
5   you may not use this file except in compliance with the License.
6   You may obtain a copy of the License at
7
8       http://www.apache.org/licenses/LICENSE-2.0
9
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15*/
16
17using System;
18using System.Collections.Generic;
19using System.Linq;
20using System.Text;
21using Cryptool.PluginBase;
22using System.ComponentModel;
23
24namespace Cryptool.Plugins.BigNumber
25{
26    class BigNumberOperationSettings : ISettings
27    {
28        #region private variables
29
30        private int operat;
31
32        #endregion
33        #region taskpane
34        [TaskPane("Operat", "Choose the operator.", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "x+y","x-y","x*y","x/y","x^y","GCD"})]
35        public int Operat
36        {
37            get { return this.operat; }
38            set
39            {
40                if ((int)value != this.operat)
41                {
42                    this.operat = (int)value;
43                    OnPropertyChanged("Operat");
44                    HasChanges = true;
45
46                    switch (operat)
47                    {
48                        case 0:
49                            ChangePluginIcon(0);
50                            break;
51                        case 1:
52                            ChangePluginIcon(1);
53                            break;
54                        case 2:
55                            ChangePluginIcon(2);
56                            break;
57                        case 3:
58                            ChangePluginIcon(3);
59                            break;
60                        case 4:
61                            ChangePluginIcon(4);
62                            break;
63                        case 5:
64                            ChangePluginIcon(5);
65                            break;
66                    }
67                }
68            }
69        }
70
71        private void ChangePluginIcon(int p)
72        {
73            OnPluginStatusChanged(null, new StatusEventArgs(StatusChangedMode.ImageUpdate, p));
74        }
75        #endregion
76        #region ISettings Members
77
78        private bool hasChanges;
79        public bool HasChanges
80        {
81            get { return hasChanges; }
82            set { hasChanges = value; }
83        }
84
85        #endregion
86
87        #region INotifyPropertyChanged Members
88
89        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
90
91        private void OnPropertyChanged(string p)
92        {
93            if (PropertyChanged != null)
94                PropertyChanged(this, new PropertyChangedEventArgs(p));
95        }
96        public event StatusChangedEventHandler OnPluginStatusChanged;
97
98        #endregion
99    }
100}
Note: See TracBrowser for help on using the repository browser.