namespace BulkArchiveMailer.AddIn.UI { partial class SettingsForm { private System.ComponentModel.IContainer components = null; protected override void Dispose(bool disposing) { if (disposing && components != null) { components.Dispose(); } base.Dispose(disposing); } private System.Windows.Forms.TabControl tabControl; private System.Windows.Forms.TabPage tabGeneral; private System.Windows.Forms.TabPage tabTemplates; private System.Windows.Forms.Label lblArchiveFolder; private System.Windows.Forms.TextBox txtArchiveFolder; private System.Windows.Forms.Button btnBrowseFolder; private System.Windows.Forms.Label lblDomain; private System.Windows.Forms.TextBox txtDomain; private System.Windows.Forms.Label lblSignaturePath; private System.Windows.Forms.TextBox txtSignaturePath; private System.Windows.Forms.Button btnBrowseSignature; private System.Windows.Forms.Button btnAutoDetectSignature; private System.Windows.Forms.CheckBox chkTestModeDefault; private System.Windows.Forms.Label lblFromAccount; private System.Windows.Forms.ComboBox cboFromAccount; private System.Windows.Forms.Panel pnlTemplateList; private System.Windows.Forms.Panel pnlTemplateButtons; private System.Windows.Forms.ListBox lstTemplates; private System.Windows.Forms.Button btnAddTemplate; private System.Windows.Forms.Button btnRemoveTemplate; private System.Windows.Forms.Label lblTplDisplayName; private System.Windows.Forms.TextBox txtTplDisplayName; private System.Windows.Forms.Label lblTplFileSuffix; private System.Windows.Forms.TextBox txtTplFileSuffix; private System.Windows.Forms.Label lblTplFileSuffixHint; private System.Windows.Forms.Label lblTplLoginPattern; private System.Windows.Forms.TextBox txtTplLoginPattern; private System.Windows.Forms.Label lblTplLoginPatternHint; private System.Windows.Forms.Label lblTplSubject; private System.Windows.Forms.TextBox txtTplSubject; private System.Windows.Forms.Label lblTplBody; private System.Windows.Forms.TextBox txtTplBody; private System.Windows.Forms.Label lblTplHint; private System.Windows.Forms.Button btnSave; private System.Windows.Forms.Button btnCancel; private System.Windows.Forms.Button btnResetDefaults; private void InitializeComponent() { this.tabControl = new System.Windows.Forms.TabControl(); this.tabGeneral = new System.Windows.Forms.TabPage(); this.tabTemplates = new System.Windows.Forms.TabPage(); this.lblArchiveFolder = new System.Windows.Forms.Label(); this.txtArchiveFolder = new System.Windows.Forms.TextBox(); this.btnBrowseFolder = new System.Windows.Forms.Button(); this.lblDomain = new System.Windows.Forms.Label(); this.txtDomain = new System.Windows.Forms.TextBox(); this.lblSignaturePath = new System.Windows.Forms.Label(); this.txtSignaturePath = new System.Windows.Forms.TextBox(); this.btnBrowseSignature = new System.Windows.Forms.Button(); this.btnAutoDetectSignature = new System.Windows.Forms.Button(); this.chkTestModeDefault = new System.Windows.Forms.CheckBox(); this.lblFromAccount = new System.Windows.Forms.Label(); this.cboFromAccount = new System.Windows.Forms.ComboBox(); this.pnlTemplateList = new System.Windows.Forms.Panel(); this.pnlTemplateButtons = new System.Windows.Forms.Panel(); this.lstTemplates = new System.Windows.Forms.ListBox(); this.btnAddTemplate = new System.Windows.Forms.Button(); this.btnRemoveTemplate = new System.Windows.Forms.Button(); this.lblTplDisplayName = new System.Windows.Forms.Label(); this.txtTplDisplayName = new System.Windows.Forms.TextBox(); this.lblTplFileSuffix = new System.Windows.Forms.Label(); this.txtTplFileSuffix = new System.Windows.Forms.TextBox(); this.lblTplFileSuffixHint = new System.Windows.Forms.Label(); this.lblTplLoginPattern = new System.Windows.Forms.Label(); this.txtTplLoginPattern = new System.Windows.Forms.TextBox(); this.lblTplLoginPatternHint = new System.Windows.Forms.Label(); this.lblTplSubject = new System.Windows.Forms.Label(); this.txtTplSubject = new System.Windows.Forms.TextBox(); this.lblTplBody = new System.Windows.Forms.Label(); this.txtTplBody = new System.Windows.Forms.TextBox(); this.lblTplHint = new System.Windows.Forms.Label(); this.btnSave = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button(); this.btnResetDefaults = new System.Windows.Forms.Button(); this.tabControl.SuspendLayout(); this.tabGeneral.SuspendLayout(); this.tabTemplates.SuspendLayout(); this.pnlTemplateList.SuspendLayout(); this.pnlTemplateButtons.SuspendLayout(); this.SuspendLayout(); // // tabControl // this.tabControl.Location = new System.Drawing.Point(12, 12); // Height deliberately generous (+80px versus the original 470) // rather than packed to the computed minimum - see the long // remark on lstTemplates/btnAddTemplate below for why "just // enough" turned out not to be enough in practice on a real // machine (DPI/font-scaling dependent tab-strip height). this.tabControl.Size = new System.Drawing.Size(660, 550); this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.tabControl.TabPages.AddRange(new System.Windows.Forms.TabPage[] { this.tabGeneral, this.tabTemplates}); // // tabGeneral // this.tabGeneral.Text = "Общие"; this.tabGeneral.Padding = new System.Windows.Forms.Padding(12); this.tabGeneral.UseVisualStyleBackColor = true; this.tabGeneral.Controls.Add(this.lblArchiveFolder); this.tabGeneral.Controls.Add(this.txtArchiveFolder); this.tabGeneral.Controls.Add(this.btnBrowseFolder); this.tabGeneral.Controls.Add(this.lblDomain); this.tabGeneral.Controls.Add(this.txtDomain); this.tabGeneral.Controls.Add(this.lblSignaturePath); this.tabGeneral.Controls.Add(this.txtSignaturePath); this.tabGeneral.Controls.Add(this.btnBrowseSignature); this.tabGeneral.Controls.Add(this.btnAutoDetectSignature); this.tabGeneral.Controls.Add(this.chkTestModeDefault); this.tabGeneral.Controls.Add(this.lblFromAccount); this.tabGeneral.Controls.Add(this.cboFromAccount); // lblArchiveFolder this.lblArchiveFolder.Location = new System.Drawing.Point(15, 20); this.lblArchiveFolder.Size = new System.Drawing.Size(400, 20); this.lblArchiveFolder.Text = "Папка с архивами ssh-access-tui (общий выходной каталог):"; // txtArchiveFolder this.txtArchiveFolder.Location = new System.Drawing.Point(15, 43); this.txtArchiveFolder.Size = new System.Drawing.Size(500, 23); // btnBrowseFolder this.btnBrowseFolder.Location = new System.Drawing.Point(525, 41); this.btnBrowseFolder.Size = new System.Drawing.Size(100, 25); this.btnBrowseFolder.Text = "Обзор..."; this.btnBrowseFolder.UseVisualStyleBackColor = true; this.btnBrowseFolder.Click += new System.EventHandler(this.btnBrowseFolder_Click); // lblDomain this.lblDomain.Location = new System.Drawing.Point(15, 99); this.lblDomain.Size = new System.Drawing.Size(400, 20); this.lblDomain.Text = "Домен электронной почты (login → login@домен):"; // txtDomain this.txtDomain.Location = new System.Drawing.Point(15, 122); this.txtDomain.Size = new System.Drawing.Size(300, 23); // lblSignaturePath this.lblSignaturePath.Location = new System.Drawing.Point(15, 178); this.lblSignaturePath.Size = new System.Drawing.Size(610, 20); this.lblSignaturePath.Text = "Файл подписи (.htm). Пусто = определять автоматически по умолчанию Outlook при каждой отправке:"; // txtSignaturePath this.txtSignaturePath.Location = new System.Drawing.Point(15, 201); this.txtSignaturePath.Size = new System.Drawing.Size(500, 23); // btnBrowseSignature this.btnBrowseSignature.Location = new System.Drawing.Point(525, 199); this.btnBrowseSignature.Size = new System.Drawing.Size(100, 25); this.btnBrowseSignature.Text = "Обзор..."; this.btnBrowseSignature.UseVisualStyleBackColor = true; this.btnBrowseSignature.Click += new System.EventHandler(this.btnBrowseSignature_Click); // btnAutoDetectSignature this.btnAutoDetectSignature.Location = new System.Drawing.Point(15, 247); this.btnAutoDetectSignature.Size = new System.Drawing.Size(280, 25); this.btnAutoDetectSignature.Text = "Определить автоматически сейчас"; this.btnAutoDetectSignature.UseVisualStyleBackColor = true; this.btnAutoDetectSignature.Click += new System.EventHandler(this.btnAutoDetectSignature_Click); // chkTestModeDefault this.chkTestModeDefault.Location = new System.Drawing.Point(15, 306); this.chkTestModeDefault.Size = new System.Drawing.Size(610, 24); this.chkTestModeDefault.Text = "По умолчанию открывать предпросмотр в тестовом режиме (сохранять в Черновики)"; this.chkTestModeDefault.UseVisualStyleBackColor = true; // lblFromAccount this.lblFromAccount.Location = new System.Drawing.Point(15, 378); this.lblFromAccount.Size = new System.Drawing.Size(400, 20); this.lblFromAccount.Text = "Отправлять от (аккаунт Outlook текущей сессии):"; // cboFromAccount this.cboFromAccount.Location = new System.Drawing.Point(15, 401); this.cboFromAccount.Size = new System.Drawing.Size(500, 23); this.cboFromAccount.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; // // tabTemplates // this.tabTemplates.Text = "Шаблоны"; this.tabTemplates.Padding = new System.Windows.Forms.Padding(12); this.tabTemplates.UseVisualStyleBackColor = true; this.tabTemplates.Controls.Add(this.pnlTemplateList); this.tabTemplates.Controls.Add(this.lblTplDisplayName); this.tabTemplates.Controls.Add(this.txtTplDisplayName); this.tabTemplates.Controls.Add(this.lblTplFileSuffix); this.tabTemplates.Controls.Add(this.txtTplFileSuffix); this.tabTemplates.Controls.Add(this.lblTplFileSuffixHint); this.tabTemplates.Controls.Add(this.lblTplLoginPattern); this.tabTemplates.Controls.Add(this.txtTplLoginPattern); this.tabTemplates.Controls.Add(this.lblTplLoginPatternHint); this.tabTemplates.Controls.Add(this.lblTplSubject); this.tabTemplates.Controls.Add(this.txtTplSubject); this.tabTemplates.Controls.Add(this.lblTplBody); this.tabTemplates.Controls.Add(this.txtTplBody); this.tabTemplates.Controls.Add(this.lblTplHint); // pnlTemplateList // // Left-column container for the template picker (buttons + // list). Its own outer Location/Size/Anchor still use fixed // pixel coordinates relative to the tab page, exactly like // before - that outer placement was never the problem. What // is Dock-based from here down is everything INSIDE this // panel, which is the part that actually broke on a real // machine: lstTemplates used to be a direct child of // tabTemplates with an explicit Size, so its bottom edge (and // therefore its scrollability/clickability once many // templates were added) depended on a hand-computed pixel // height that was only ever verified on the dev machine's own // DPI/font scale. Docking removes that computation entirely - // see pnlTemplateButtons/lstTemplates below. this.pnlTemplateList.Location = new System.Drawing.Point(15, 20); this.pnlTemplateList.Size = new System.Drawing.Size(190, 467); this.pnlTemplateList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); // Dock order matters here, and it is the OPPOSITE of what looks // intuitive: WinForms lays out docked children in the REVERSE // of their Controls.Add() order - the LAST control added is // docked FIRST (closest to the parent's edge), and each // earlier-added control is then laid out against whatever // client area is left over. So lstTemplates (Dock=Fill) must be // added FIRST, and pnlTemplateButtons (Dock=Top) must be added // SECOND/last, so that the Top strip is actually the one that // gets docked last (i.e. first in effect) and carves its 35px // band out of the top; Fill then only gets whatever remains // below it. Adding them in the other order (as this used to be) // makes Fill get laid out first, against the FULL panel client // area (nothing has carved out the top strip yet), so it // expands to cover the entire panel and visually overlaps // pnlTemplateButtons - exactly the "buttons overlap the list" // bug reported on the real machine. this.pnlTemplateList.Controls.Add(this.lstTemplates); this.pnlTemplateList.Controls.Add(this.pnlTemplateButtons); // pnlTemplateButtons // // Fixed-height strip pinned to the top of pnlTemplateList. // btnAddTemplate/btnRemoveTemplate live inside it at a fixed // offset from ITS top-left corner (0,0)/(95,0) - a small, // never-resized container, so plain Location placement here // carries none of the earlier risk (that risk only existed // when the same fixed coordinates were relative to the whole, // variable-height tab page). this.pnlTemplateButtons.Dock = System.Windows.Forms.DockStyle.Top; this.pnlTemplateButtons.Size = new System.Drawing.Size(190, 35); this.pnlTemplateButtons.Controls.Add(this.btnAddTemplate); this.pnlTemplateButtons.Controls.Add(this.btnRemoveTemplate); // btnAddTemplate this.btnAddTemplate.Location = new System.Drawing.Point(0, 0); this.btnAddTemplate.Size = new System.Drawing.Size(90, 27); this.btnAddTemplate.Text = "+ Добавить"; this.btnAddTemplate.UseVisualStyleBackColor = true; this.btnAddTemplate.Click += new System.EventHandler(this.btnAddTemplate_Click); // btnRemoveTemplate this.btnRemoveTemplate.Location = new System.Drawing.Point(95, 0); this.btnRemoveTemplate.Size = new System.Drawing.Size(90, 27); this.btnRemoveTemplate.Text = "Удалить"; this.btnRemoveTemplate.UseVisualStyleBackColor = true; this.btnRemoveTemplate.Click += new System.EventHandler(this.btnRemoveTemplate_Click); // lstTemplates // // Dock=Fill: always occupies exactly whatever area of // pnlTemplateList is left below pnlTemplateButtons, computed // by the layout engine at every resize/DPI - not a hand-picked // pixel height that can end up too short (and therefore // effectively unscrollable/unclickable for items past the cut // -off) on a machine with different DPI/font scaling than the // one this was last tested on. IntegralHeight = false just // means the list doesn't force its height to a whole multiple // of the item height - irrelevant to whether Fill can "escape" // the panel, which it structurally cannot. this.lstTemplates.Dock = System.Windows.Forms.DockStyle.Fill; this.lstTemplates.IntegralHeight = false; this.lstTemplates.SelectedIndexChanged += new System.EventHandler(this.lstTemplates_SelectedIndexChanged); // lblTplDisplayName this.lblTplDisplayName.Location = new System.Drawing.Point(220, 20); this.lblTplDisplayName.Size = new System.Drawing.Size(200, 20); this.lblTplDisplayName.Text = "Название:"; // txtTplDisplayName this.txtTplDisplayName.Location = new System.Drawing.Point(220, 43); this.txtTplDisplayName.Size = new System.Drawing.Size(410, 23); this.txtTplDisplayName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)); this.txtTplDisplayName.Leave += new System.EventHandler(this.txtTplDisplayName_Leave); // lblTplFileSuffix this.lblTplFileSuffix.Location = new System.Drawing.Point(220, 78); this.lblTplFileSuffix.Size = new System.Drawing.Size(200, 20); this.lblTplFileSuffix.Text = "Суффикс файла:"; // txtTplFileSuffix this.txtTplFileSuffix.Location = new System.Drawing.Point(220, 101); this.txtTplFileSuffix.Size = new System.Drawing.Size(200, 23); // lblTplFileSuffixHint this.lblTplFileSuffixHint.Location = new System.Drawing.Point(220, 127); this.lblTplFileSuffixHint.Size = new System.Drawing.Size(410, 20); this.lblTplFileSuffixHint.Text = "Файл: {login}_<суффикс>.7z"; this.lblTplFileSuffixHint.ForeColor = System.Drawing.SystemColors.GrayText; // lblTplLoginPattern this.lblTplLoginPattern.Location = new System.Drawing.Point(220, 160); this.lblTplLoginPattern.Size = new System.Drawing.Size(410, 20); this.lblTplLoginPattern.Text = "Фильтр логина (regex, необязательно):"; // txtTplLoginPattern this.txtTplLoginPattern.Location = new System.Drawing.Point(220, 183); this.txtTplLoginPattern.Size = new System.Drawing.Size(410, 23); this.txtTplLoginPattern.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)); // lblTplLoginPatternHint this.lblTplLoginPatternHint.Location = new System.Drawing.Point(220, 209); this.lblTplLoginPatternHint.Size = new System.Drawing.Size(410, 32); this.lblTplLoginPatternHint.Text = "Пусто = любой логин. Пример: ^a-.* — только логины, начинающиеся с \"a-\"."; this.lblTplLoginPatternHint.ForeColor = System.Drawing.SystemColors.GrayText; // lblTplSubject this.lblTplSubject.Location = new System.Drawing.Point(220, 254); this.lblTplSubject.Size = new System.Drawing.Size(200, 20); this.lblTplSubject.Text = "Тема письма:"; // txtTplSubject this.txtTplSubject.Location = new System.Drawing.Point(220, 277); this.txtTplSubject.Size = new System.Drawing.Size(410, 23); this.txtTplSubject.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)); // lblTplBody this.lblTplBody.Location = new System.Drawing.Point(220, 312); this.lblTplBody.Size = new System.Drawing.Size(200, 20); this.lblTplBody.Text = "Тело письма (HTML):"; // txtTplBody this.txtTplBody.Location = new System.Drawing.Point(220, 335); this.txtTplBody.Size = new System.Drawing.Size(410, 125); this.txtTplBody.Multiline = true; this.txtTplBody.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.txtTplBody.AcceptsReturn = true; this.txtTplBody.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); // lblTplHint this.lblTplHint.Location = new System.Drawing.Point(220, 467); this.lblTplHint.Size = new System.Drawing.Size(410, 20); this.lblTplHint.Text = "Доступные плейсхолдеры: {Login}, {Email}, {Date}"; this.lblTplHint.ForeColor = System.Drawing.SystemColors.GrayText; this.lblTplHint.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); // // btnSave / btnCancel / btnResetDefaults // this.btnResetDefaults.Location = new System.Drawing.Point(12, 574); this.btnResetDefaults.Size = new System.Drawing.Size(220, 30); this.btnResetDefaults.Text = "Сбросить шаблоны по умолчанию"; this.btnResetDefaults.UseVisualStyleBackColor = true; this.btnResetDefaults.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.btnResetDefaults.Click += new System.EventHandler(this.btnResetDefaults_Click); this.btnCancel.Location = new System.Drawing.Point(479, 574); this.btnCancel.Size = new System.Drawing.Size(90, 30); this.btnCancel.Text = "Отмена"; this.btnCancel.UseVisualStyleBackColor = true; this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); this.btnSave.Location = new System.Drawing.Point(575, 574); this.btnSave.Size = new System.Drawing.Size(97, 30); this.btnSave.Text = "Сохранить"; this.btnSave.UseVisualStyleBackColor = true; this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnSave.Click += new System.EventHandler(this.btnSave_Click); // // SettingsForm // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(684, 616); this.MinimumSize = new System.Drawing.Size(560, 500); this.Controls.Add(this.tabControl); this.Controls.Add(this.btnResetDefaults); this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnSave); this.Text = "BulkArchiveMailer — настройки"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable; this.MaximizeBox = true; this.AcceptButton = null; this.CancelButton = this.btnCancel; this.tabControl.ResumeLayout(false); this.tabGeneral.ResumeLayout(false); this.tabGeneral.PerformLayout(); this.pnlTemplateButtons.ResumeLayout(false); this.pnlTemplateList.ResumeLayout(false); this.tabTemplates.ResumeLayout(false); this.tabTemplates.PerformLayout(); this.ResumeLayout(false); } } }