Fixed topmost new email alert (hopefully)
This commit is contained in:
parent
3d3e97dc4b
commit
2cf3f6fd93
@ -100,7 +100,7 @@
|
|||||||
this.lnkSender.AutoSize = true;
|
this.lnkSender.AutoSize = true;
|
||||||
this.lnkSender.Location = new System.Drawing.Point(85, 5);
|
this.lnkSender.Location = new System.Drawing.Point(85, 5);
|
||||||
this.lnkSender.Name = "lnkSender";
|
this.lnkSender.Name = "lnkSender";
|
||||||
this.lnkSender.Size = new System.Drawing.Size(82, 17);
|
this.lnkSender.Size = new System.Drawing.Size(72, 17);
|
||||||
this.lnkSender.TabIndex = 10;
|
this.lnkSender.TabIndex = 10;
|
||||||
this.lnkSender.TabStop = true;
|
this.lnkSender.TabStop = true;
|
||||||
this.lnkSender.Text = "linkLabel1";
|
this.lnkSender.Text = "linkLabel1";
|
||||||
@ -137,7 +137,6 @@
|
|||||||
this.ShowInTaskbar = false;
|
this.ShowInTaskbar = false;
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||||
this.Text = "NewMailAlert";
|
this.Text = "NewMailAlert";
|
||||||
this.TopMost = true;
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ using System.Windows.Forms;
|
|||||||
namespace Outlook2013TodoAddIn.Forms
|
namespace Outlook2013TodoAddIn.Forms
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// New form to display new emai lnotifications
|
/// New form to display new email notifications
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class NewMailAlert : Form
|
public partial class NewMailAlert : Form
|
||||||
{
|
{
|
||||||
@ -29,14 +29,9 @@ namespace Outlook2013TodoAddIn.Forms
|
|||||||
private bool mouseIsOver = false;
|
private bool mouseIsOver = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Show form
|
/// Topmost value
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const int SW_SHOW = 5;
|
private const int WS_EX_TOPMOST = 0x00000008;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Fading effect
|
|
||||||
/// </summary>
|
|
||||||
private const uint AW_BLEND = 0x00080000;
|
|
||||||
|
|
||||||
#endregion "Variables"
|
#endregion "Variables"
|
||||||
|
|
||||||
@ -55,6 +50,21 @@ namespace Outlook2013TodoAddIn.Forms
|
|||||||
get { return true; }
|
get { return true; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This is used so we can show without activation and be the TopMost form
|
||||||
|
/// The TopMost property of the form MUST be set to false for this to work
|
||||||
|
/// https://connect.microsoft.com/VisualStudio/feedback/details/401311/showwithoutactivation-is-not-supported-with-topmost
|
||||||
|
/// </summary>
|
||||||
|
protected override CreateParams CreateParams
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
CreateParams value = base.CreateParams;
|
||||||
|
value.ExStyle |= WS_EX_TOPMOST;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion "Properties"
|
#endregion "Properties"
|
||||||
|
|
||||||
#region "Methods"
|
#region "Methods"
|
||||||
@ -79,37 +89,6 @@ namespace Outlook2013TodoAddIn.Forms
|
|||||||
timer.Start();
|
timer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Load and bring to fron
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="e">EventArgs</param>
|
|
||||||
protected override void OnLoad(EventArgs e)
|
|
||||||
{
|
|
||||||
base.OnLoad(e);
|
|
||||||
if (this.WindowState == FormWindowState.Minimized)
|
|
||||||
{
|
|
||||||
this.WindowState = FormWindowState.Normal;
|
|
||||||
}
|
|
||||||
this.BringToFront();
|
|
||||||
}
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
private static extern bool AnimateWindow(IntPtr hWnd, uint dwTime, uint dwFlags);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Method to display the form and make it topmost
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>True or false</returns>
|
|
||||||
public bool ShowPopup()
|
|
||||||
{
|
|
||||||
bool result = ShowWindow(this.Handle, SW_SHOW);
|
|
||||||
//bool result = AnimateWindow(this.Handle, 200, AW_BLEND);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Button delete clicked
|
/// Button delete clicked
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -83,7 +83,7 @@ namespace Outlook2013TodoAddIn
|
|||||||
NewMailAlert nm = new NewMailAlert(newMail, Properties.Settings.Default.DisplayTimeOut);
|
NewMailAlert nm = new NewMailAlert(newMail, Properties.Settings.Default.DisplayTimeOut);
|
||||||
// Show the popup without stealing focus
|
// Show the popup without stealing focus
|
||||||
SoundHelper.sndPlaySoundW(SoundHelper.MailBeep, SoundHelper.SND_NODEFAULT);
|
SoundHelper.sndPlaySoundW(SoundHelper.MailBeep, SoundHelper.SND_NODEFAULT);
|
||||||
nm.ShowPopup();
|
nm.Show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user