[Feature] Submenus should appear on top of the menu above (#294), version 1.2.2.3

This commit is contained in:
Markus Hofknecht 2022-01-15 14:44:56 +01:00
parent 4bd9abe3f7
commit 2ec51aa3e2
21 changed files with 444 additions and 5 deletions

View file

@ -39,5 +39,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.2.2.1")]
[assembly: AssemblyFileVersion("1.2.2.1")]
[assembly: AssemblyVersion("1.2.2.3")]
[assembly: AssemblyFileVersion("1.2.2.3")]

View file

@ -219,6 +219,38 @@ namespace SystemTrayMenu.Properties
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Configuration.SettingsProviderAttribute(typeof(CustomSettingsProvider))]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool AppearNextToPreviousMenu
{
get
{
return ((bool)(this["AppearNextToPreviousMenu"]));
}
set
{
this["AppearNextToPreviousMenu"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Configuration.SettingsProviderAttribute(typeof(CustomSettingsProvider))]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("150")]
public int OverlappingOffsetPixels
{
get
{
return ((int)(this["OverlappingOffsetPixels"]));
}
set
{
this["OverlappingOffsetPixels"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Configuration.SettingsProviderAttribute(typeof(CustomSettingsProvider))]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]

View file

@ -673,6 +673,24 @@ namespace SystemTrayMenu.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Next to the previous one.
/// </summary>
internal static string Next_to_the_previous_one {
get {
return ResourceManager.GetString("Next to the previous one", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Offset by pixels.
/// </summary>
internal static string Offset_by_pixels {
get {
return ResourceManager.GetString("Offset by pixels", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to OK.
/// </summary>
@ -718,6 +736,15 @@ namespace SystemTrayMenu.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Overlapping.
/// </summary>
internal static string Overlapping {
get {
return ResourceManager.GetString("Overlapping", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pixels maximum menu height.
/// </summary>
@ -961,6 +988,15 @@ namespace SystemTrayMenu.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Sub menu appears at.
/// </summary>
internal static string Sub_menu_appears_at {
get {
return ResourceManager.GetString("Sub menu appears at", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to System Info.
/// </summary>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Jediným kliknutím otevřete adresář namísto dvojitého kliknutí</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>Vedle předchozího</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Offset podle pixelů</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>Překrývající se</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>Podnabídka se zobrazí na</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Einfacher Klick zum Öffnen eines Verzeichnisses statt Doppelklick</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>Neben dem vorherigen</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Pixelweise versetzt</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>Überlappend</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>Untermenü erscheint bei</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Haga un solo clic para abrir un directorio en lugar de hacer doble clic</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>Al lado de la anterior</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Desplazado por píxeles</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>superposición</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>El submenú aparece en</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>یک کلیک برای باز کردن یک دایرکتوری به جای دوبار کلیک کردن</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>کنار قبلی</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>افست با پیکسل</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>با هم تداخل دارند</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>منوی فرعی در نشان داده می شود</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Un simple clic pour ouvrir un répertoire au lieu d'un double clic</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>A côté du précédent</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Décalage par pixels</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>Chevauchement</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>Le sous-menu apparaît à</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Fare clic una volta per aprire una directory invece di fare doppio clic</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>Accanto al precedente</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Offset di pixel</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>Sovrapposizione</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>Il sottomenu appare a</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>ダブルクリックする代わりに、シングルクリックしてディレクトリを開きます</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>前のものの隣</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>ピクセルによるオフセット</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>重複</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>サブメニューはに表示されます</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>더블 클릭이 아닌 한 번의 클릭으로 디렉토리 열기</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>전작에 이어</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>픽셀로 오프셋</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>겹침</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>하위 메뉴가 나타납니다.</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Enkele klik om een map te openen in plaats van dubbelklikken</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>Naast de vorige</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Verschuiving door pixels</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>Overlappend</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>Submenu verschijnt bij</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Clique uma vez para abrir um diretório em vez de clicar duas vezes</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>Ao lado do anterior</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Deslocamento por pixels</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>Sobreposição</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>O submenu aparece em</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Single click to open a directory instead of double click</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>Next to the previous one</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Offset by pixels</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>Overlapping</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>Sub menu appears at</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Один щелчок, чтобы открыть каталог вместо двойного щелчка</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>Рядом с предыдущим</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Смещение по пикселям</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>Перекрытие</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>Подменю появляется в</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Çift tıklama yerine bir dizini açmak için tek tıklama</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>Bir öncekinin yanında</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Piksel ile ofset</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>örtüşen</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>Alt menü şurada görünür</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>Nhấp một lần để mở thư mục thay vì nhấp đúp</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>Bên cạnh cái trước</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>Chênh lệch theo pixel</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>Qua nối chồng</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>Menu phụ xuất hiện tại</value>
</data>
</root>

View file

@ -444,4 +444,16 @@
<data name="Single click to open a directory instead of double click" xml:space="preserve">
<value>单击打开目录而不是双击</value>
</data>
<data name="Next to the previous one" xml:space="preserve">
<value>在上一个旁边</value>
</data>
<data name="Offset by pixels" xml:space="preserve">
<value>按像素偏移</value>
</data>
<data name="Overlapping" xml:space="preserve">
<value>重叠</value>
</data>
<data name="Sub menu appears at" xml:space="preserve">
<value>子菜单出现在</value>
</data>
</root>

View file

@ -480,6 +480,20 @@ namespace SystemTrayMenu.UserInterface
x -= Width;
}
if (Level != 0 &&
!Properties.Settings.Default.AppearNextToPreviousMenu &&
menuPredecessor.Width > Properties.Settings.Default.OverlappingOffsetPixels)
{
if (directionToRight)
{
x = x - menuPredecessor.Width + Properties.Settings.Default.OverlappingOffsetPixels;
}
else
{
x = x + menuPredecessor.Width - Properties.Settings.Default.OverlappingOffsetPixels;
}
}
// Calculate Y position
int y;
switch (startLocation)

View file

@ -62,6 +62,13 @@ namespace SystemTrayMenu.UserInterface
this.comboBoxLanguage = new System.Windows.Forms.ComboBox();
this.tabPageSizeAndLocation = new System.Windows.Forms.TabPage();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.groupBoxSubMenuAppearAt = new System.Windows.Forms.GroupBox();
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel();
this.numericUpDownOverlappingOffsetPixels = new System.Windows.Forms.NumericUpDown();
this.labelOverlappingByPixelsOffset = new System.Windows.Forms.Label();
this.radioButtonOverlapping = new System.Windows.Forms.RadioButton();
this.radioButtonNextToPreviousMenu = new System.Windows.Forms.RadioButton();
this.buttonSizeAndLocationDefault = new System.Windows.Forms.Button();
this.groupBoxMenuAppearAt = new System.Windows.Forms.GroupBox();
this.tableLayoutPanelMenuAppearAt = new System.Windows.Forms.TableLayoutPanel();
@ -318,6 +325,10 @@ namespace SystemTrayMenu.UserInterface
this.tableLayoutPanelLanguage.SuspendLayout();
this.tabPageSizeAndLocation.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout();
this.groupBoxSubMenuAppearAt.SuspendLayout();
this.tableLayoutPanel3.SuspendLayout();
this.tableLayoutPanel4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownOverlappingOffsetPixels)).BeginInit();
this.groupBoxMenuAppearAt.SuspendLayout();
this.tableLayoutPanelMenuAppearAt.SuspendLayout();
this.groupBoxSize.SuspendLayout();
@ -891,24 +902,131 @@ namespace SystemTrayMenu.UserInterface
this.tableLayoutPanel2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.tableLayoutPanel2.ColumnCount = 1;
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel2.Controls.Add(this.buttonSizeAndLocationDefault, 0, 2);
this.tableLayoutPanel2.Controls.Add(this.groupBoxSubMenuAppearAt, 0, 2);
this.tableLayoutPanel2.Controls.Add(this.buttonSizeAndLocationDefault, 0, 3);
this.tableLayoutPanel2.Controls.Add(this.groupBoxMenuAppearAt, 0, 1);
this.tableLayoutPanel2.Controls.Add(this.groupBoxSize, 0, 0);
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 3;
this.tableLayoutPanel2.RowCount = 4;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel2.Size = new System.Drawing.Size(408, 407);
this.tableLayoutPanel2.TabIndex = 1;
//
// groupBoxSubMenuAppearAt
//
this.groupBoxSubMenuAppearAt.AutoSize = true;
this.groupBoxSubMenuAppearAt.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.groupBoxSubMenuAppearAt.Controls.Add(this.tableLayoutPanel3);
this.groupBoxSubMenuAppearAt.Location = new System.Drawing.Point(3, 278);
this.groupBoxSubMenuAppearAt.MaximumSize = new System.Drawing.Size(400, 0);
this.groupBoxSubMenuAppearAt.MinimumSize = new System.Drawing.Size(400, 0);
this.groupBoxSubMenuAppearAt.Name = "groupBoxSubMenuAppearAt";
this.groupBoxSubMenuAppearAt.Size = new System.Drawing.Size(400, 76);
this.groupBoxSubMenuAppearAt.TabIndex = 2;
this.groupBoxSubMenuAppearAt.TabStop = false;
this.groupBoxSubMenuAppearAt.Text = "groupBoxSubMenuAppearAt";
//
// tableLayoutPanel3
//
this.tableLayoutPanel3.AutoSize = true;
this.tableLayoutPanel3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.tableLayoutPanel3.ColumnCount = 1;
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel4, 0, 1);
this.tableLayoutPanel3.Controls.Add(this.radioButtonNextToPreviousMenu, 0, 0);
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 19);
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
this.tableLayoutPanel3.RowCount = 2;
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel3.Size = new System.Drawing.Size(394, 54);
this.tableLayoutPanel3.TabIndex = 1;
//
// tableLayoutPanel4
//
this.tableLayoutPanel4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.tableLayoutPanel4.AutoSize = true;
this.tableLayoutPanel4.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.tableLayoutPanel4.ColumnCount = 3;
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel4.Controls.Add(this.numericUpDownOverlappingOffsetPixels, 1, 0);
this.tableLayoutPanel4.Controls.Add(this.labelOverlappingByPixelsOffset, 2, 0);
this.tableLayoutPanel4.Controls.Add(this.radioButtonOverlapping, 0, 0);
this.tableLayoutPanel4.Location = new System.Drawing.Point(0, 25);
this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(0);
this.tableLayoutPanel4.Name = "tableLayoutPanel4";
this.tableLayoutPanel4.RowCount = 1;
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel4.Size = new System.Drawing.Size(394, 29);
this.tableLayoutPanel4.TabIndex = 3;
//
// numericUpDownOverlappingOffsetPixels
//
this.numericUpDownOverlappingOffsetPixels.Increment = new decimal(new int[] {
10,
0,
0,
0});
this.numericUpDownOverlappingOffsetPixels.Location = new System.Drawing.Point(162, 3);
this.numericUpDownOverlappingOffsetPixels.Maximum = new decimal(new int[] {
500,
0,
0,
0});
this.numericUpDownOverlappingOffsetPixels.Name = "numericUpDownOverlappingOffsetPixels";
this.numericUpDownOverlappingOffsetPixels.Size = new System.Drawing.Size(55, 23);
this.numericUpDownOverlappingOffsetPixels.TabIndex = 2;
//
// labelOverlappingByPixelsOffset
//
this.labelOverlappingByPixelsOffset.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.labelOverlappingByPixelsOffset.AutoSize = true;
this.labelOverlappingByPixelsOffset.Location = new System.Drawing.Point(223, 7);
this.labelOverlappingByPixelsOffset.MaximumSize = new System.Drawing.Size(330, 0);
this.labelOverlappingByPixelsOffset.Name = "labelOverlappingByPixelsOffset";
this.labelOverlappingByPixelsOffset.Size = new System.Drawing.Size(64, 15);
this.labelOverlappingByPixelsOffset.TabIndex = 3;
this.labelOverlappingByPixelsOffset.Text = "labelOffset";
//
// radioButtonOverlapping
//
this.radioButtonOverlapping.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.radioButtonOverlapping.AutoSize = true;
this.radioButtonOverlapping.Location = new System.Drawing.Point(3, 5);
this.radioButtonOverlapping.Name = "radioButtonOverlapping";
this.radioButtonOverlapping.Size = new System.Drawing.Size(153, 19);
this.radioButtonOverlapping.TabIndex = 1;
this.radioButtonOverlapping.TabStop = true;
this.radioButtonOverlapping.Text = "radioButtonOverlapping";
this.radioButtonOverlapping.UseVisualStyleBackColor = true;
this.radioButtonOverlapping.CheckedChanged += new System.EventHandler(this.RadioButtonOverlapping_CheckedChanged);
//
// radioButtonNextToPreviousMenu
//
this.radioButtonNextToPreviousMenu.AutoSize = true;
this.radioButtonNextToPreviousMenu.Dock = System.Windows.Forms.DockStyle.Fill;
this.radioButtonNextToPreviousMenu.Location = new System.Drawing.Point(3, 3);
this.radioButtonNextToPreviousMenu.Name = "radioButtonNextToPreviousMenu";
this.radioButtonNextToPreviousMenu.Size = new System.Drawing.Size(388, 19);
this.radioButtonNextToPreviousMenu.TabIndex = 2;
this.radioButtonNextToPreviousMenu.TabStop = true;
this.radioButtonNextToPreviousMenu.Text = "radioButtonNextToPreviousMenu";
this.radioButtonNextToPreviousMenu.UseVisualStyleBackColor = true;
this.radioButtonNextToPreviousMenu.CheckedChanged += new System.EventHandler(this.RadioButtonNextToPreviousMenu_CheckedChanged);
//
// buttonSizeAndLocationDefault
//
this.buttonSizeAndLocationDefault.AutoSize = true;
this.buttonSizeAndLocationDefault.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.buttonSizeAndLocationDefault.Location = new System.Drawing.Point(9, 284);
this.buttonSizeAndLocationDefault.Location = new System.Drawing.Point(9, 366);
this.buttonSizeAndLocationDefault.Margin = new System.Windows.Forms.Padding(9, 9, 3, 9);
this.buttonSizeAndLocationDefault.MinimumSize = new System.Drawing.Size(75, 25);
this.buttonSizeAndLocationDefault.Name = "buttonSizeAndLocationDefault";
@ -4272,6 +4390,13 @@ namespace SystemTrayMenu.UserInterface
this.tabPageSizeAndLocation.PerformLayout();
this.tableLayoutPanel2.ResumeLayout(false);
this.tableLayoutPanel2.PerformLayout();
this.groupBoxSubMenuAppearAt.ResumeLayout(false);
this.groupBoxSubMenuAppearAt.PerformLayout();
this.tableLayoutPanel3.ResumeLayout(false);
this.tableLayoutPanel3.PerformLayout();
this.tableLayoutPanel4.ResumeLayout(false);
this.tableLayoutPanel4.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownOverlappingOffsetPixels)).EndInit();
this.groupBoxMenuAppearAt.ResumeLayout(false);
this.groupBoxMenuAppearAt.PerformLayout();
this.tableLayoutPanelMenuAppearAt.ResumeLayout(false);
@ -4748,5 +4873,12 @@ namespace SystemTrayMenu.UserInterface
private System.Windows.Forms.Button buttonSizeAndLocationDefault;
private System.Windows.Forms.CheckBox checkBoxShowOnlyAsSearchResult;
private System.Windows.Forms.CheckBox checkBoxOpenDirectoryWithOneClick;
private System.Windows.Forms.GroupBox groupBoxSubMenuAppearAt;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4;
private System.Windows.Forms.Label labelOverlappingByPixelsOffset;
private System.Windows.Forms.RadioButton radioButtonOverlapping;
private System.Windows.Forms.RadioButton radioButtonNextToPreviousMenu;
private System.Windows.Forms.NumericUpDown numericUpDownOverlappingOffsetPixels;
}
}

View file

@ -136,6 +136,10 @@ namespace SystemTrayMenu.UserInterface
radioButtonAppearAtTheBottomRight.Text = Translator.GetText("Bottom right");
radioButtonUseCustomLocation.Text = Translator.GetText("Custom (drag it to the appropriate place)");
radioButtonAppearAtMouseLocation.Text = Translator.GetText("Mouse location");
groupBoxSubMenuAppearAt.Text = Translator.GetText("Sub menu appears at");
radioButtonNextToPreviousMenu.Text = Translator.GetText("Next to the previous one");
radioButtonOverlapping.Text = Translator.GetText("Overlapping");
labelOverlappingByPixelsOffset.Text = Translator.GetText("Offset by pixels");
buttonSizeAndLocationDefault.Text = Translator.GetText("Default");
tabPageAdvanced.Text = Translator.GetText("Advanced");
@ -365,6 +369,18 @@ namespace SystemTrayMenu.UserInterface
radioButtonAppearAtTheBottomRight.Checked = true;
}
numericUpDownOverlappingOffsetPixels.Value = Settings.Default.OverlappingOffsetPixels;
if (Settings.Default.AppearNextToPreviousMenu)
{
radioButtonNextToPreviousMenu.Checked = true;
numericUpDownOverlappingOffsetPixels.Enabled = false;
}
else
{
radioButtonOverlapping.Checked = true;
numericUpDownOverlappingOffsetPixels.Enabled = true;
}
checkBoxShowInTaskbar.Checked = Settings.Default.ShowInTaskbar;
checkBoxOpenItemWithOneClick.Checked = Settings.Default.OpenItemWithOneClick;
checkBoxOpenDirectoryWithOneClick.Checked = Settings.Default.OpenDirectoryWithOneClick;
@ -787,6 +803,16 @@ namespace SystemTrayMenu.UserInterface
Settings.Default.AppearAtTheBottomLeft = false;
}
Settings.Default.OverlappingOffsetPixels = (int)numericUpDownOverlappingOffsetPixels.Value;
if (radioButtonNextToPreviousMenu.Checked)
{
Settings.Default.AppearNextToPreviousMenu = true;
}
else
{
Settings.Default.AppearNextToPreviousMenu = false;
}
Settings.Default.ShowInTaskbar = checkBoxShowInTaskbar.Checked;
Settings.Default.OpenItemWithOneClick = checkBoxOpenItemWithOneClick.Checked;
Settings.Default.OpenDirectoryWithOneClick = checkBoxOpenDirectoryWithOneClick.Checked;
@ -1062,6 +1088,9 @@ namespace SystemTrayMenu.UserInterface
radioButtonAppearAtTheBottomLeft.Checked = true;
radioButtonUseCustomLocation.Checked = false;
radioButtonAppearAtMouseLocation.Checked = false;
radioButtonNextToPreviousMenu.Checked = true;
numericUpDownOverlappingOffsetPixels.Value = 150;
}
private void ButtonAdvancedDefault_Click(object sender, EventArgs e)
@ -1254,5 +1283,21 @@ namespace SystemTrayMenu.UserInterface
settingsForm.Dispose();
settingsForm = null;
}
private void RadioButtonNextToPreviousMenu_CheckedChanged(object sender, EventArgs e)
{
radioButtonOverlapping.CheckedChanged -= RadioButtonOverlapping_CheckedChanged;
radioButtonOverlapping.Checked = false;
radioButtonOverlapping.CheckedChanged += RadioButtonOverlapping_CheckedChanged;
numericUpDownOverlappingOffsetPixels.Enabled = false;
}
private void RadioButtonOverlapping_CheckedChanged(object sender, EventArgs e)
{
radioButtonNextToPreviousMenu.CheckedChanged -= RadioButtonNextToPreviousMenu_CheckedChanged;
radioButtonNextToPreviousMenu.Checked = false;
radioButtonNextToPreviousMenu.CheckedChanged += RadioButtonNextToPreviousMenu_CheckedChanged;
numericUpDownOverlappingOffsetPixels.Enabled = true;
}
}
}