context: /*
    KeePass Password Safe - The Open-Source Password Manager
    Copyright (C) 2003-2017 Dominik Reichl <dominik.reichl@t-online.de>
  
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
  
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
  
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
  
  using System;
  using System.Collections.Generic;
  using System.Text;
  using System.Drawing;
  using System.ComponentModel;
  using System.Diagnostics;
  
  using KeePass.UI;
  
  namespace KeePass.App.Configuration
  {
  	[Flags]
  	public enum AceKeyUIFlags : ulong
  	{
  		None = 0,
  		EnablePassword = 0x1,
  		EnableKeyFile = 0x2,
  		EnableUserAccount = 0x4,
  		EnableHidePassword = 0x8,
  		DisablePassword = 0x100,
  		DisableKeyFile = 0x200,
  		DisableUserAccount = 0x400,
  		DisableHidePassword = 0x800,
  		CheckPassword = 0x10000,
  		CheckKeyFile = 0x20000,
  		CheckUserAccount = 0x40000,
  		CheckHidePassword = 0x80000,
  		UncheckPassword = 0x1000000,
  		UncheckKeyFile = 0x2000000,
  		UncheckUserAccount = 0x4000000,
  		UncheckHidePassword = 0x8000000
  	}
  
  	[Flags]
  	public enum AceUIFlags : ulong
  	{
  		None = 0,
  
  		DisableOptions = 0x1,
  		DisablePlugins = 0x2,
  		DisableTriggers = 0x4,
  		DisableKeyChangeDays = 0x8,
  		HidePwQuality = 0x10,
  		DisableUpdateCheck = 0x20,
  
  		HideBuiltInPwGenPrfInEntryDlg = 0x10000,
  		ShowLastAccessTime = 0x20000
  	}
  
  	[Flags]
  	public enum AceAutoTypeCtxFlags : long
  	{
  		None = 0,
  
  		ColTitle = 0x1,
  		ColUserName = 0x2,
  		ColPassword = 0x4,
  		ColUrl = 0x8,
  		ColNotes = 0x10,
  		ColSequence = 0x20,
  		ColSequenceComments = 0x40,
  
  		Default = (ColTitle | ColUserName | ColUrl | ColSequence)
  	}
  
  	public sealed class AceUI
  	{
  		public AceUI()
  		{
  		}
  
  		private AceTrayIcon m_tray = new AceTrayIcon();
  		public AceTrayIcon TrayIcon
  		{
  			get { return m_tray; }
  			set
  			{
  				if(value == null) throw new ArgumentNullException("value");
  				m_tray = value;
  			}
  		}
  
  		private AceHiding m_uiHiding = new AceHiding();
  		public AceHiding Hiding
  		{
  			get { return m_uiHiding; }
  			set
  			{
  				if(value == null) throw new ArgumentNullException("value");
  				m_uiHiding = value;
  			}
  		}
  
  		private bool m_bRepeatPwOnlyWhenHidden = true;
  		[DefaultValue(true)]
  		public bool RepeatPasswordOnlyWhenHidden
  		{
  			get { return m_bRepeatPwOnlyWhenHidden; }
  			set { m_bRepeatPwOnlyWhenHidden = value; }
  		}
  
  		private AceFont m_font = new AceFont();
  		public AceFont StandardFont
  		{
  			get { return m_font; }
  			set
  			{
  				if(value == null) throw new ArgumentNullException("value");
  				m_font = value;
  			}
  		}
  
  		private AceFont m_fontPasswords = new AceFont(true);
  		public AceFont PasswordFont
  		{
  			get { return m_fontPasswords; }
  			set
  			{
  				if(value == null) throw new ArgumentNullException("value");
  				m_fontPasswords = value;
  			}
  		}
  
  		private bool m_bForceSysFont = true;
  		[DefaultValue(true)]
  		public bool ForceSystemFontUnix
  		{
  			get { return m_bForceSysFont; }
  			set { m_bForceSysFont = value; }
  		}
  
  		private BannerStyle m_bannerStyle = BannerStyle.WinVistaBlack;
  		public BannerStyle BannerStyle
  		{
  			get { return m_bannerStyle; }
  			set { m_bannerStyle = value; }
  		}
  
  		private bool m_bShowImportStatusDlg = true;
  		[DefaultValue(true)]
  		public bool ShowImportStatusDialog
  		{
  			get { return m_bShowImportStatusDlg; }
  			set { m_bShowImportStatusDlg = value; }
  		}
  
  		private bool m_bShowDbMntncResDlg = true;
  		[DefaultValue(true)]
  		public bool ShowDbMntncResultsDialog
  		{
  			get { return m_bShowDbMntncResDlg; }
  			set { m_bShowDbMntncResDlg = value; }
  		}
  
  		private bool m_bShowRecycleDlg = true;
  		[DefaultValue(true)]
  		public bool ShowRecycleConfirmDialog
  		{
  			get { return m_bShowRecycleDlg; }
  			set { m_bShowRecycleDlg = value; }
  		}
  
  		// private bool m_bUseCustomTsRenderer = true;
  		// [DefaultValue(true)]
  		// public bool UseCustomToolStripRenderer
  		// {
  		//	get { return m_bUseCustomTsRenderer; }
  		//	set { m_bUseCustomTsRenderer = value; }
  		// }
  
  		private string m_strToolStripRenderer = string.Empty;
  		[DefaultValue("")]
  		public string ToolStripRenderer
  		{
  			get { return m_strToolStripRenderer; }
  			set
  			{
  				if(value == null) throw new ArgumentNullException("value");
  				m_strToolStripRenderer = value;
  			}
  		}
  
  		private bool m_bOptScreenReader = false;
  		[DefaultValue(false)]
  		public bool OptimizeForScreenReader
  		{
  
gt: 			get { return m_bOptScreenReader; }