seb-win-refactoring/SebWindowsConfig/SebWindowsConfigGUIManagement.cs
2022-07-21 15:29:56 +02:00

579 lines
26 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using SebWindowsConfig.Utilities;
namespace SebWindowsConfig
{
public partial class SebWindowsConfigForm : Form
{
// *************************
// Constants for GUI widgets
// *************************
// Boolean values
const int IntFalse = 0;
const int IntTrue = 1;
// Operating systems
const int IntOSX = 0;
const int IntWin = 1;
const String StringOSX = "OS X";
const String StringWin = "Win";
// URL filter actions
const int IntBlock = 0;
const int IntAllow = 1;
const int IntSkip = 2;
const int IntAnd = 3;
const int IntOr = 4;
const String StringBlock = "block";
const String StringAllow = "allow";
const String StringSkip = "skip";
const String StringAnd = "and";
const String StringOr = "or";
// URL filter table operations
const String StringCollapse = "Collapse";
const String StringExpand = "Expand";
const int IntOperationInsert = 0;
const int IntOperationPaste = 1;
const int IntOperationDelete = 2;
const int IntOperationCut = 3;
const int IntOperationCopy = 4;
const int IntLocationBefore = 0;
const int IntLocationAfter = 1;
const int IntLocationAt = 2;
// Embedded Certificate types
const int IntSSLClientCertificate = 0;
const int IntIdentity = 1;
const int IntCACertificate = 2;
const int IntSSLDebugCertificate = 3;
const String StringSSLServerCertificate = "SSL Certificate";
const String StringIdentity = "Identity";
const String StringCACertificate = "CA Certificate";
const String StringSSLDebugCertificate = "Debug Certificate";
// Proxy Protocol types
const int IntProxyAutoDiscovery = 0;
const int IntProxyAutoConfiguration = 1;
const int IntProxyHTTP = 2;
const int IntProxyHTTPS = 3;
const int IntProxyFTP = 4;
const int IntProxySOCKS = 5;
const int IntProxyRTSP = 6;
const int NumProxyProtocols = 7;
// Captions for table dataGridViewProxyProtocols
const String StringTableCaptionProxyAutoDiscovery = "Auto Proxy Discovery";
const String StringTableCaptionProxyAutoConfiguration = "Automatic Proxy Configuration";
const String StringTableCaptionProxyHTTP = "Web Proxy (HTTP)";
const String StringTableCaptionProxyHTTPS = "Secure Web Proxy (HTTPS)";
const String StringTableCaptionProxyFTP = "FTP Proxy";
const String StringTableCaptionProxySOCKS = "SOCKS Proxy";
const String StringTableCaptionProxyRTSP = "Streaming Proxy (RTSP)";
// Texts for labelProxyServerHost
const String StringServerLabelProxyAutoDiscovery = "";
const String StringServerLabelProxyAutoConfiguration = "";
const String StringServerLabelProxyHTTP = "Web";
const String StringServerLabelProxyHTTPS = "Secure Web";
const String StringServerLabelProxyFTP = "FTP";
const String StringServerLabelProxySOCKS = "SOCKS";
const String StringServerLabelProxyRTSP = "Streaming";
// Permitted and Prohibited Processes table columns (0,1,2,3).
// Permitted Processes: Active, OS, Executable, Title
// Prohibited Processes: Active, OS, Executable, Description
// Process Arguments: ArgumentActive, ArgumentParameter
const int IntColumnProcessActive = 0;
const int IntColumnProcessOS = 1;
const int IntColumnProcessExecutable = 2;
const int IntColumnProcessTitle = 3;
const int IntColumnProcessDescription = 3;
const int IntColumnProcessArgument = 1;
/*
const String StringColumnProcessActive = "Active";
const String StringColumnProcessOS = "OS";
const String StringColumnProcessExecutable = "Executable";
const String StringColumnProcessTitle = "Title";
const String StringColumnProcessDescription = "Description";
const String StringColumnProcessArgument = "Argument";
*/
// URL Filter Rules table columns (0,1,2,3,4).
// Show, Active, Regex, Expression, Action
const int IntColumnURLFilterRuleShow = 0;
const int IntColumnURLFilterRuleActive = 1;
const int IntColumnURLFilterRuleRegex = 2;
const int IntColumnURLFilterRuleExpression = 3;
const int IntColumnURLFilterRuleAction = 4;
/*
const String StringColumnURLFilterRuleShow = "Show";
const String StringColumnURLFilterRuleActive = "Active";
const String StringColumnURLFilterRuleRegex = "Regex";
const String StringColumnURLFilterRuleExpression = "Expression";
const String StringColumnURLFilterRuleAction = "Action";
*/
// Embedded Certificates table columns (0,1).
// Type, Name
const int IntColumnCertificateType = 0;
const int IntColumnCertificateName = 1;
//const String StringColumnCertificateType = "Type";
//const String StringColumnCertificateName = "Name";
// Proxy Protocols table columns (0,1).
// Enable, Type
const int IntColumnProxyProtocolEnable = 0;
const int IntColumnProxyProtocolType = 1;
//const String StringColumnProxyProtocolEnable = "Enable";
//const String StringColumnProxyProtocolType = "Type";
// Bypassed Proxies table column (0).
// DomainHostPort
const int IntColumnDomainHostPort = 0;
//const String StringColumnDomainHostPort = "Domain, Host, Port";
// ********************************
// Global Variables for GUI widgets
// ********************************
// Prevent double events from switching to false process index
static Boolean ignoreCellEventPermittedProcessesActive = false;
static Boolean ignoreCellEventPermittedProcessesOS = false;
static Boolean ignoreCellEventPermittedProcessesExecutable = false;
static Boolean ignoreCellEventPermittedProcessesTitle = false;
static Boolean ignoreCellEventProhibitedProcessesActive = false;
static Boolean ignoreCellEventProhibitedProcessesOS = false;
static Boolean ignoreCellEventProhibitedProcessesExecutable = false;
static Boolean ignoreCellEventProhibitedProcessesDescription = false;
static Boolean ignoreWidgetEventPermittedProcessesActive = false;
static Boolean ignoreWidgetEventPermittedProcessesOS = false;
static Boolean ignoreWidgetEventPermittedProcessesExecutable = false;
static Boolean ignoreWidgetEventPermittedProcessesTitle = false;
static Boolean ignoreWidgetEventProhibitedProcessesActive = false;
static Boolean ignoreWidgetEventProhibitedProcessesOS = false;
static Boolean ignoreWidgetEventProhibitedProcessesExecutable = false;
static Boolean ignoreWidgetEventProhibitedProcessesDescription = false;
// The current SEB configuration file
static String currentDireSebConfigFile;
static String currentFileSebConfigFile;
static String lastPathSebConfigFile;
static String currentPathSebConfigFile;
static bool currentSebConfigFileWasDuplicated = false;
static bool sebConfigPurposeChanged = false;
// Strings for encryption identities (KeyChain, Certificate Store)
//static ArrayList chooseIdentityStringArrayList = new ArrayList();
//static String[] chooseIdentityStringArray = new String[1];
static readonly List<String> StringCryptoIdentity = new List<String>();
static ArrayList certificateReferences = new ArrayList();
static ArrayList certificateSSLReferences = new ArrayList();
// Entries of ListBoxes
//static Byte[] ByteArrayExamKeySalt = new Byte[] {};
static String[] StringCryptoIdentityArray;
static readonly String[] StringSebPurpose = new String[2];
static readonly String[] StringSebMode = new String[2];
static readonly String[] StringBrowserViewMode = new String[2];
static readonly String[] StringWindowWidth = new String[5];
static readonly String[] StringWindowHeight = new String[5];
static readonly String[] StringWindowPositioning = new String[3];
static readonly String[] StringTaskBarHeight = new String[3];
static readonly String[] StringPolicyLinkOpening = new String[3];
static readonly String[] StringPolicyFileUpload = new String[3];
static readonly String[] StringPolicyProxySettings = new String[2];
static readonly String[] StringPolicySebService = new String[3];
static readonly String[] StringFunctionKey = new String[12];
static readonly String[] StringActive = new String[2];
static readonly String[] StringOS = new String[2];
static readonly String[] StringAction = new String[5];
static readonly String[] StringCertificateType = new String[4];
static readonly String[] StringProxyProtocolTableCaption = new String[7];
static readonly String[] StringProxyProtocolServerLabel = new String[7];
static readonly Boolean[] BooleanProxyProtocolEnabled = new Boolean[7];
static readonly String[] KeyProxyProtocolType = new String[7];
static readonly String[] KeyProxyProtocolAttribute = new String[7];
static readonly String[] KeyProxyProtocolEnable = new String[7];
static readonly String[] StringMinMacOSVersion = new String[11];
static readonly String[] StringAllowedDisplaysMaxNumber = new String[3];
// ***********************
// Methods for GUI widgets
// ***********************
// *****************************************************************
// Initialise the global variables for the lists and subdictionaries
// *****************************************************************
private void InitialiseGlobalVariablesForGUIWidgets()
{
SEBSettings.permittedProcessIndex = 0;
SEBSettings.prohibitedProcessIndex = 0;
SEBSettings.embeddedCertificateIndex = 0;
SEBSettings.bypassedProxyIndex = 0;
// Define the strings for the Encryption Identity
StringCryptoIdentity.Add("none");
StringCryptoIdentity.Add("alpha");
StringCryptoIdentity.Add("beta");
StringCryptoIdentity.Add("gamma");
StringCryptoIdentity.Add("delta");
StringCryptoIdentityArray = StringCryptoIdentity.ToArray();
// Define the strings for the SEB purpose
StringSebPurpose[0] = "starting an exam";
StringSebPurpose[1] = "configuring a client";
// Define the strings for the SEB mode
StringSebMode[0] = "use local settings and load the start URL";
StringSebMode[1] = "connect to the SEB server";
// Define the strings for the Browser View Mode
StringBrowserViewMode[0] = "use browser window";
StringBrowserViewMode[1] = "use full screen mode";
// Define the strings for the Window Width
StringWindowWidth[0] = "";
StringWindowWidth[1] = "50%";
StringWindowWidth[2] = "100%";
StringWindowWidth[3] = "800";
StringWindowWidth[4] = "1000";
// Define the strings for the Window Height
StringWindowHeight[0] = "";
StringWindowHeight[1] = "80%";
StringWindowHeight[2] = "100%";
StringWindowHeight[3] = "600";
StringWindowHeight[4] = "800";
// Define the strings for the Window Positioning
StringWindowPositioning[0] = "Left";
StringWindowPositioning[1] = "Center";
StringWindowPositioning[2] = "Right";
// Define the strings for the taskbar Height
StringTaskBarHeight[0] = "40";
StringTaskBarHeight[1] = "60";
StringTaskBarHeight[2] = "80";
// Define the strings for the Link Opening Policy
StringPolicyLinkOpening[0] = "get generally blocked";
StringPolicyLinkOpening[1] = "open in same window";
StringPolicyLinkOpening[2] = "open in new window";
// Define the strings for the File Upload Policy
StringPolicyFileUpload[0] = "manually with file requester";
StringPolicyFileUpload[1] = "by attempting to upload the same file downloaded before";
StringPolicyFileUpload[2] = "by only allowing to upload the same file downloaded before";
// Define the strings for the Proxy Settings Policy
StringPolicyProxySettings[0] = "Use system proxy settings";
StringPolicyProxySettings[1] = "Use SEB proxy settings";
// Define the strings for the SEB Service Policy
StringPolicySebService[0] = "allow to run SEB without service";
StringPolicySebService[1] = "display warning when service is not running";
StringPolicySebService[2] = "allow to use SEB only with service";
// Define the strings for the Function Keys F1, F2, ..., F12
for (int i = 1; i <= 12; i++)
{
StringFunctionKey[i - 1] = "F" + i.ToString();
}
// Define the strings for the Permitted and Prohibited Processes
StringActive[IntFalse] = "false";
StringActive[IntTrue] = "true";
StringOS[IntOSX] = StringOSX;
StringOS[IntWin] = StringWin;
// Define the strings for the URL Filter Rule Actions
StringAction[IntBlock] = StringBlock;
StringAction[IntAllow] = StringAllow;
StringAction[IntSkip] = StringSkip;
StringAction[IntAnd] = StringAnd;
StringAction[IntOr] = StringOr;
// Define the strings for the Embedded Certificates
StringCertificateType[IntSSLClientCertificate] = StringSSLServerCertificate;
StringCertificateType[IntIdentity] = StringIdentity;
StringCertificateType[IntCACertificate] = StringCACertificate;
StringCertificateType[IntSSLDebugCertificate] = StringSSLDebugCertificate;
// Define the strings for the Proxy Protocol Table Captions
StringProxyProtocolTableCaption[0] = StringTableCaptionProxyAutoDiscovery;
StringProxyProtocolTableCaption[1] = StringTableCaptionProxyAutoConfiguration;
StringProxyProtocolTableCaption[2] = StringTableCaptionProxyHTTP;
StringProxyProtocolTableCaption[3] = StringTableCaptionProxyHTTPS;
StringProxyProtocolTableCaption[4] = StringTableCaptionProxyFTP;
StringProxyProtocolTableCaption[5] = StringTableCaptionProxySOCKS;
StringProxyProtocolTableCaption[6] = StringTableCaptionProxyRTSP;
// Define the strings for the Proxy Protocol Server Labels
StringProxyProtocolServerLabel[0] = StringServerLabelProxyAutoDiscovery;
StringProxyProtocolServerLabel[1] = StringServerLabelProxyAutoConfiguration;
StringProxyProtocolServerLabel[2] = StringServerLabelProxyHTTP;
StringProxyProtocolServerLabel[3] = StringServerLabelProxyHTTPS;
StringProxyProtocolServerLabel[4] = StringServerLabelProxyFTP;
StringProxyProtocolServerLabel[5] = StringServerLabelProxySOCKS;
StringProxyProtocolServerLabel[6] = StringServerLabelProxyRTSP;
// Initialise the booleans for the Proxy Protocols
for (int i = 0; i < NumProxyProtocols; i++)
{
BooleanProxyProtocolEnabled[i] = false;
}
// Define the strings for the Proxy Protocol Types
KeyProxyProtocolType[0] = SEBSettings.KeyAutoDiscovery;
KeyProxyProtocolType[1] = SEBSettings.KeyAutoConfiguration;
KeyProxyProtocolType[2] = SEBSettings.KeyHTTP;
KeyProxyProtocolType[3] = SEBSettings.KeyHTTPS;
KeyProxyProtocolType[4] = SEBSettings.KeyFTP;
KeyProxyProtocolType[5] = SEBSettings.KeySOCKS;
KeyProxyProtocolType[6] = SEBSettings.KeyRTSP;
// Define the strings for the Proxy Protocol Attributes
KeyProxyProtocolAttribute[0] = SEBSettings.KeyEnable;
KeyProxyProtocolAttribute[1] = SEBSettings.KeyPort;
KeyProxyProtocolAttribute[2] = SEBSettings.KeyHost;
KeyProxyProtocolAttribute[3] = SEBSettings.KeyRequires;
KeyProxyProtocolAttribute[4] = SEBSettings.KeyUsername;
KeyProxyProtocolAttribute[5] = SEBSettings.KeyPassword;
// Define the strings for the Proxy Protocol Enables
KeyProxyProtocolEnable[0] = SEBSettings.KeyAutoDiscoveryEnabled;
KeyProxyProtocolEnable[1] = SEBSettings.KeyAutoConfigurationEnabled;
KeyProxyProtocolEnable[2] = SEBSettings.KeyHTTPEnable;
KeyProxyProtocolEnable[3] = SEBSettings.KeyHTTPSEnable;
KeyProxyProtocolEnable[4] = SEBSettings.KeyFTPEnable;
KeyProxyProtocolEnable[5] = SEBSettings.KeySOCKSEnable;
KeyProxyProtocolEnable[6] = SEBSettings.KeyRTSPEnable;
// Define the strings for the Min Mac OS Version
StringMinMacOSVersion[0] = "OS X 10.7 Lion";
StringMinMacOSVersion[1] = "OS X 10.8 Mountain Lion";
StringMinMacOSVersion[2] = "OS X 10.9 Mavericks";
StringMinMacOSVersion[3] = "OS X 10.10 Yosemite";
StringMinMacOSVersion[4] = "OS X 10.11 El Capitan";
StringMinMacOSVersion[5] = "macOS 10.12 Sierra";
StringMinMacOSVersion[6] = "macOS 10.13 High Sierra";
StringMinMacOSVersion[7] = "macOS 10.14 Mojave";
StringMinMacOSVersion[8] = "macOS 10.15 Catalina";
StringMinMacOSVersion[9] = "macOS 11 Big Sur";
StringMinMacOSVersion[10] = "macOS 12 Monterey";
// Define the strings for the Min Mac OS Version
StringAllowedDisplaysMaxNumber[0] = "1";
StringAllowedDisplaysMaxNumber[1] = "2";
StringAllowedDisplaysMaxNumber[2] = "3";
}
// *******************************************************
// Initialise the GUI widgets of this configuration editor
// *******************************************************
private void InitialiseGUIWidgets()
{
tabControlSebWindowsConfig.Dock = DockStyle.Fill;
// At program start, the local client settings configuration file is loaded
currentDireSebConfigFile = SEBClientInfo.SebClientSettingsAppDataDirectory;
currentFileSebConfigFile = SEBClientInfo.SEB_CLIENT_CONFIG;
StringBuilder sebClientSettingsAppDataBuilder = new StringBuilder(currentDireSebConfigFile).Append(currentFileSebConfigFile);
currentPathSebConfigFile = sebClientSettingsAppDataBuilder.ToString();
openFileDialogSebConfigFile.InitialDirectory = Environment.CurrentDirectory;
saveFileDialogSebConfigFile.InitialDirectory = Environment.CurrentDirectory;
//folderBrowserDialogDownloadDirectoryWin.RootFolder = Environment.SpecialFolder.DesktopDirectory;
//folderBrowserDialogLogDirectoryWin .RootFolder = Environment.SpecialFolder.MyDocuments;
// Assign the fixed entries to the ListBoxes and ComboBoxes
listBoxExitKey1.Items.AddRange(StringFunctionKey);
listBoxExitKey2.Items.AddRange(StringFunctionKey);
listBoxExitKey3.Items.AddRange(StringFunctionKey);
// Assing the list of cryptographic identities/certificates to the ComboBox
ArrayList certificateNames = new ArrayList();
certificateReferences = SEBProtectionController.GetCertificatesAndNames(ref certificateNames);
comboBoxCryptoIdentity.Items.Add("None");
comboBoxCryptoIdentity.Items.AddRange(certificateNames.ToArray());
comboBoxChooseIdentityToEmbed.Items.AddRange(certificateNames.ToArray());
comboBoxChooseIdentityToEmbed.Text = SEBUIStrings.ChooseEmbeddedCert;
ArrayList certificateSSLNames = new ArrayList();
certificateSSLReferences = SEBProtectionController.GetSSLCertificatesAndNames(ref certificateSSLNames);
comboBoxChooseSSLServerCertificate.Items.AddRange(certificateSSLNames.ToArray());
comboBoxChooseSSLServerCertificate.Text = SEBUIStrings.ChooseEmbeddedCert;
comboBoxChooseCACertificate.Items.AddRange(certificateSSLNames.ToArray());
comboBoxChooseCACertificate.Text = SEBUIStrings.ChooseEmbeddedCert;
// At program start, no file has yet been opened, so revert is not possible
buttonRevertToLastOpened.Enabled = false;
comboBoxMainBrowserWindowWidth.Items.AddRange(StringWindowWidth);
comboBoxMainBrowserWindowHeight.Items.AddRange(StringWindowHeight);
listBoxMainBrowserWindowPositioning.Items.AddRange(StringWindowPositioning);
comboBoxNewBrowserWindowWidth.Items.AddRange(StringWindowWidth);
comboBoxNewBrowserWindowHeight.Items.AddRange(StringWindowHeight);
listBoxNewBrowserWindowPositioning.Items.AddRange(StringWindowPositioning);
comboBoxUrlPolicyMainWindow.Items.Add("Never");
comboBoxUrlPolicyMainWindow.Items.Add("OnlyLoadError");
comboBoxUrlPolicyMainWindow.Items.Add("BeforeTitle");
comboBoxUrlPolicyMainWindow.Items.Add("Always");
comboBoxUrlPolicyNewWindow.Items.Add("Never");
comboBoxUrlPolicyNewWindow.Items.Add("OnlyLoadError");
comboBoxUrlPolicyNewWindow.Items.Add("BeforeTitle");
comboBoxUrlPolicyNewWindow.Items.Add("Always");
comboBoxTaskBarHeight.Items.AddRange(StringTaskBarHeight);
listBoxOpenLinksHTML.Items.AddRange(StringPolicyLinkOpening);
listBoxChooseFileToUploadPolicy.Items.AddRange(StringPolicyFileUpload);
listBoxSebServicePolicy.Items.AddRange(StringPolicySebService);
comboBoxMinMacOSVersion.Items.AddRange(StringMinMacOSVersion);
comboBoxAllowedDisplaysMaxNumber.Items.AddRange(StringAllowedDisplaysMaxNumber);
// Initialise the DataGridViews:
// Set "AllowUserToAddRows" to false, to avoid an initial empty first row
// Set "RowHeadersVisible" to false, to avoid an initial empty first column
// Set "FullRowSelect" to true , to select whole row when clicking on a cell
dataGridViewPermittedProcesses.Enabled = false;
dataGridViewPermittedProcesses.ReadOnly = false;
dataGridViewPermittedProcesses.AllowUserToAddRows = false;
dataGridViewPermittedProcesses.RowHeadersVisible = false;
dataGridViewPermittedProcesses.MultiSelect = false;
dataGridViewPermittedProcesses.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewPermittedProcessArguments.Enabled = false;
dataGridViewPermittedProcessArguments.ReadOnly = false;
dataGridViewPermittedProcessArguments.AllowUserToAddRows = false;
dataGridViewPermittedProcessArguments.RowHeadersVisible = false;
dataGridViewPermittedProcessArguments.MultiSelect = false;
dataGridViewPermittedProcessArguments.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewProhibitedProcesses.Enabled = false;
dataGridViewProhibitedProcesses.ReadOnly = false;
dataGridViewProhibitedProcesses.AllowUserToAddRows = false;
dataGridViewProhibitedProcesses.RowHeadersVisible = false;
dataGridViewProhibitedProcesses.MultiSelect = false;
dataGridViewProhibitedProcesses.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewEmbeddedCertificates.Enabled = false;
dataGridViewEmbeddedCertificates.ReadOnly = false;
dataGridViewEmbeddedCertificates.AllowUserToAddRows = false;
dataGridViewEmbeddedCertificates.RowHeadersVisible = false;
dataGridViewEmbeddedCertificates.MultiSelect = false;
dataGridViewEmbeddedCertificates.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewProxyProtocols.Enabled = false;
dataGridViewProxyProtocols.ReadOnly = false;
dataGridViewProxyProtocols.AllowUserToAddRows = false;
dataGridViewProxyProtocols.RowHeadersVisible = false;
dataGridViewProxyProtocols.MultiSelect = false;
dataGridViewProxyProtocols.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewPermittedProcesses.Columns[IntColumnProcessActive].ValueType = typeof(Boolean);
dataGridViewPermittedProcesses.Columns[IntColumnProcessOS].ValueType = typeof(String);
dataGridViewPermittedProcesses.Columns[IntColumnProcessExecutable].ValueType = typeof(String);
dataGridViewPermittedProcesses.Columns[IntColumnProcessTitle].ValueType = typeof(String);
dataGridViewPermittedProcessArguments.Columns[IntColumnProcessActive].ValueType = typeof(Boolean);
dataGridViewPermittedProcessArguments.Columns[IntColumnProcessArgument].ValueType = typeof(String);
dataGridViewProhibitedProcesses.Columns[IntColumnProcessActive].ValueType = typeof(Boolean);
dataGridViewProhibitedProcesses.Columns[IntColumnProcessOS].ValueType = typeof(String);
dataGridViewProhibitedProcesses.Columns[IntColumnProcessExecutable].ValueType = typeof(String);
dataGridViewProhibitedProcesses.Columns[IntColumnProcessDescription].ValueType = typeof(String);
dataGridViewEmbeddedCertificates.Columns[IntColumnCertificateType].ValueType = typeof(String);
dataGridViewEmbeddedCertificates.Columns[IntColumnCertificateName].ValueType = typeof(String);
dataGridViewProxyProtocols.Columns[IntColumnProxyProtocolEnable].ValueType = typeof(Boolean);
dataGridViewProxyProtocols.Columns[IntColumnProxyProtocolType].ValueType = typeof(String);
dataGridViewProxyProtocols.Columns[IntColumnProxyProtocolEnable].ReadOnly = false;
dataGridViewProxyProtocols.Columns[IntColumnProxyProtocolType].ReadOnly = true;
// Assign the column names to the DataGridViews
/*
dataGridViewPermittedProcesses.Columns.Add(StringColumnActive , StringColumnActive);
dataGridViewPermittedProcesses.Columns.Add(StringColumnOS , StringColumnOS);
dataGridViewPermittedProcesses.Columns.Add(StringColumnExecutable, StringColumnExecutable);
dataGridViewPermittedProcesses.Columns.Add(StringColumnTitle , StringColumnTitle);
dataGridViewPermittedProcessArguments.Columns.Add(StringColumnActive , StringColumnActive);
dataGridViewPermittedProcessArguments.Columns.Add(StringColumnArgument, StringColumnArgument);
dataGridViewProhibitedProcesses.Columns.Add(StringColumnActive , StringColumnActive);
dataGridViewProhibitedProcesses.Columns.Add(StringColumnOS , StringColumnOS);
dataGridViewProhibitedProcesses.Columns.Add(StringColumnExecutable , StringColumnExecutable);
dataGridViewProhibitedProcesses.Columns.Add(StringColumnDescription, StringColumnDescription);
dataGridViewURLFilterRules.Columns.Add(StringColumnURLFilterRuleShow , StringColumnURLFilterRuleShow);
dataGridViewURLFilterRules.Columns.Add(StringColumnURLFilterRuleActive , StringColumnURLFilterRuleActive);
dataGridViewURLFilterRules.Columns.Add(StringColumnURLFilterRuleRegex , StringColumnURLFilterRuleRegex);
dataGridViewURLFilterRules.Columns.Add(StringColumnURLFilterRuleExpression, StringColumnURLFilterRuleExpression);
dataGridViewURLFilterRules.Columns.Add(StringColumnURLFilterRuleAction , StringColumnURLFilterRuleAction);
dataGridViewEmbeddedCertificates.Columns.Add(StringColumnCertificateType, StringColumnCertificateType);
dataGridViewEmbeddedCertificates.Columns.Add(StringColumnCertificateName, StringColumnCertificateName);
dataGridViewProxyProtocols.Columns.Add(StringColumnProxyProtocolEnable, StringColumnProxyProtocolEnable);
dataGridViewProxyProtocols.Columns.Add(StringColumnProxyProtocolType , StringColumnProxyProtocolType);
dataGridViewBypassedProxies.Columns.Add(StringColumnDomainHostPort, StringColumnDomainHostPort);
*/
groupBoxPermittedProcess.Enabled = false;
groupBoxProhibitedProcess.Enabled = false;
listBoxPermittedProcessOS.Items.AddRange(StringOS);
listBoxProhibitedProcessOS.Items.AddRange(StringOS);
// Auto-resize the columns and cells
//dataGridViewPermittedProcesses .AutoResizeColumns();
//dataGridViewProhibitedProcesses .AutoResizeColumns();
//dataGridViewURLFilterRules .AutoResizeColumns();
//dataGridViewEmbeddedCertificates.AutoResizeColumns();
//dataGridViewProxyProtocols .AutoResizeColumns();
//dataGridViewBypassedProxies .AutoResizeColumns();
//dataGridViewPermittedProcesses .AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
//dataGridViewProhibitedProcesses .AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
//dataGridViewURLFilterRules .AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
//dataGridViewEmbeddedCertificates.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
//dataGridViewProxyProtocols .AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
//dataGridViewBypassedProxies .AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}
} // end of class SebWindowsConfigForm
} // end of namespace SebWindowsConfig