コード例 #1
0
ファイル: AutotypeForm.cs プロジェクト: mattlorimor/Bimil
        public AutotypeForm(Entry entry)
        {
            InitializeComponent();

            this.Font = SystemFonts.MessageBoxFont;
            Medo.Windows.Forms.State.SetupOnLoadAndClose(this);
            this.Opacity = Settings.AutoTypeWindowOpacity / 100;

            var y = 0;

            foreach (var record in entry.Records)
            {
                if (record.RecordType == RecordType.Autotype)
                {
                    y = AddTokenButton(y, "Auto-type", AutotypeToken.GetUnexpandedAutotypeTokens(record.Text), isDefinedAutoType: true).Bottom;
                }
            }

            if (y == 0)   //no auto-type; use default
            {
                y = AddTokenButton(y, "Auto-type", AutotypeToken.GetUnexpandedAutotypeTokens(null), isDefinedAutoType: true).Bottom;
            }

            y += SystemInformation.DragSize.Height;

            //all textual fields
            foreach (var record in entry.Records)
            {
                var recordBytes = record.GetBytesSilently();
                try {
                    if (recordBytes.Length == 0)
                    {
                        continue;
                    }                                          //omit empty entries
                } finally {
                    Array.Clear(recordBytes, 0, recordBytes.Length);
                }

                switch (record.RecordType)
                {
                case RecordType.UserName:
                case RecordType.EmailAddress:
                case RecordType.CreditCardExpiration: {
                    var tokens = AutotypeToken.GetAutotypeTokensFromText(record.Text);
                    var btn    = AddTokenButton(y, Helpers.GetRecordCaption(record),
                                                tokens, record);
                    y = btn.Bottom;
                    AddSuffixButtons(btn, tokens, record);
                }
                break;

                case RecordType.Password:
                case RecordType.CreditCardPin:
                case RecordType.CreditCardVerificationValue: {
                    var tokens = AutotypeToken.GetAutotypeTokensFromText(record.Text);
                    var btn    = AddTokenButton(y, Helpers.GetRecordCaption(record),
                                                tokens, record, isTextHidden: true);
                    y = btn.Bottom;
                    AddSuffixButtons(btn, tokens, record);
                }
                break;

                case RecordType.TwoFactorKey: {
                    var tokens = AutotypeToken.GetUnexpandedAutotypeTokens(@"\2");
                    var btn    = AddTokenButton(y, Helpers.GetRecordCaption(record),
                                                tokens, record, isTextHidden: true);
                    y = btn.Bottom;
                    AddSuffixButtons(btn, tokens, record);
                }
                break;

                case RecordType.CreditCardNumber: {
                    var tokens = AutotypeToken.GetAutotypeTokensFromText(Helpers.FilterText(record.Text, Helpers.NumberCharacters));
                    var btn    = AddTokenButton(y, Helpers.GetRecordCaption(record),
                                                tokens, record);
                    y = btn.Bottom;
                    AddSuffixButtons(btn, tokens, record);
                }
                break;
                }
            }

            y += SystemInformation.DragSize.Height;

            var btnClose = AddGenericButton(y, "Close");

            btnClose.Click += delegate { this.Close(); };

            this.ClientSize  = new Size(SystemInformation.VerticalScrollBarWidth * 12, btnClose.Bottom);
            this.MinimumSize = new Size(SystemInformation.VerticalScrollBarWidth * 10, this.Height);
            this.MaximumSize = new Size(SystemInformation.VerticalScrollBarWidth * 30, this.Height);

            this.Entry = entry;
        }
コード例 #2
0
 public static string GetAutotypeDescription(string text)
 {
     return(GetAutotypeDescription(AutotypeToken.GetUnexpandedAutotypeTokens(text)));
 }