// hardcodet.net NotifyIcon for WPF
// Copyright (c) 2009 - 2013 Philipp Sumi
// Contact and Information: http://www.hardcodet.net
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the Code Project Open License (CPOL);
// either version 1.0 of the License, or (at your option) any later
// version.
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
//
// THIS COPYRIGHT NOTICE MAY NOT BE REMOVED FROM THIS FILE
// ReSharper disable InconsistentNaming
using System.Diagnostics.CodeAnalysis;
namespace MangaReader.Avalonia.Platform.Win.Interop
{
///
/// This enum defines the windows messages we respond to.
/// See more on Windows messages here
///
[SuppressMessage("ReSharper", "IdentifierTypo")]
public enum WindowsMessages : uint
{
///
/// Notifies a window that the user clicked the right mouse button (right-clicked) in the window.
/// See WM_CONTEXTMENU message
///
/// In case of a notify icon:
/// If a user selects a notify icon's shortcut menu with the keyboard, the Shell now sends the associated application a WM_CONTEXTMENU message. Earlier versions send WM_RBUTTONDOWN and WM_RBUTTONUP messages.
/// See Shell_NotifyIcon function
///
WM_CONTEXTMENU = 0x007b,
///
/// Posted to a window when the cursor moves.
/// If the mouse is not captured, the message is posted to the window that contains the cursor.
/// Otherwise, the message is posted to the window that has captured the mouse.
///
/// See WM_MOUSEMOVE message
///
WM_MOUSEMOVE = 0x0200,
///
/// Posted when the user presses the left mouse button while the cursor is in the client area of a window.
/// If the mouse is not captured, the message is posted to the window beneath the cursor.
/// Otherwise, the message is posted to the window that has captured the mouse.
///
/// See WM_LBUTTONDOWN message
///
WM_LBUTTONDOWN = 0x0201,
///
/// Posted when the user releases the left mouse button while the cursor is in the client area of a window.
/// If the mouse is not captured, the message is posted to the window beneath the cursor.
/// Otherwise, the message is posted to the window that has captured the mouse.
///
/// See WM_LBUTTONUP message
///
WM_LBUTTONUP = 0x0202,
///
/// Posted when the user double-clicks the left mouse button while the cursor is in the client area of a window.
/// If the mouse is not captured, the message is posted to the window beneath the cursor.
/// Otherwise, the message is posted to the window that has captured the mouse.
///
/// See WM_LBUTTONDBLCLK message
///
WM_LBUTTONDBLCLK = 0x0203,
///
/// Posted when the user presses the right mouse button while the cursor is in the client area of a window.
/// If the mouse is not captured, the message is posted to the window beneath the cursor.
/// Otherwise, the message is posted to the window that has captured the mouse.
///
/// See WM_RBUTTONDOWN message
///
WM_RBUTTONDOWN = 0x0204,
///
/// Posted when the user releases the right mouse button while the cursor is in the client area of a window.
/// If the mouse is not captured, the message is posted to the window beneath the cursor.
/// Otherwise, the message is posted to the window that has captured the mouse.
///
/// See WM_RBUTTONUP message
///
WM_RBUTTONUP = 0x0205,
///
/// Posted when the user double-clicks the right mouse button while the cursor is in the client area of a window.
/// If the mouse is not captured, the message is posted to the window beneath the cursor.
/// Otherwise, the message is posted to the window that has captured the mouse.
///
/// See WM_RBUTTONDBLCLK message
///
WM_RBUTTONDBLCLK = 0x0206,
///
/// Posted when the user presses the middle mouse button while the cursor is in the client area of a window.
/// If the mouse is not captured, the message is posted to the window beneath the cursor.
/// Otherwise, the message is posted to the window that has captured the mouse.
///
/// See WM_MBUTTONDOWN message
///
WM_MBUTTONDOWN = 0x0207,
///
/// Posted when the user releases the middle mouse button while the cursor is in the client area of a window.
/// If the mouse is not captured, the message is posted to the window beneath the cursor.
/// Otherwise, the message is posted to the window that has captured the mouse.
///
/// See WM_MBUTTONUP message
///
WM_MBUTTONUP = 0x0208,
///
/// Posted when the user double-clicks the middle mouse button while the cursor is in the client area of a window.
/// If the mouse is not captured, the message is posted to the window beneath the cursor.
/// Otherwise, the message is posted to the window that has captured the mouse.
///
/// See WM_MBUTTONDBLCLK message
///
WM_MBUTTONDBLCLK = 0x0209,
///
/// Used to define private messages for use by private window classes, usually of the form WM_USER+x, where x is an integer value.
///
WM_USER = 0x0400,
///
/// This message is only send when using NOTIFYICON_VERSION_4, the Shell now sends the associated application an NIN_SELECT notification.
/// Send when a notify icon is activated with mouse or ENTER key.
/// Earlier versions send WM_RBUTTONDOWN and WM_RBUTTONUP messages.
///
NIN_SELECT = WM_USER,
///
/// This message is only send when using NOTIFYICON_VERSION_4, the Shell now sends the associated application an NIN_SELECT notification.
/// Send when a notify icon is activated with SPACEBAR or ENTER key.
/// Earlier versions send WM_RBUTTONDOWN and WM_RBUTTONUP messages.
///
NIN_KEYSELECT = WM_USER + 1,
///
/// Sent when the balloon is shown (balloons are queued).
///
NIN_BALLOONSHOW = WM_USER + 2,
///
/// Sent when the balloon disappears. For example, when the icon is deleted.
/// This message is not sent if the balloon is dismissed because of a timeout or if the user clicks the mouse.
///
/// As of Windows 7, NIN_BALLOONHIDE is also sent when a notification with the NIIF_RESPECT_QUIET_TIME flag set attempts to display during quiet time (a user's first hour on a new computer).
/// In that case, the balloon is never displayed at all.
///
NIN_BALLOONHIDE = WM_USER + 3,
///
/// Sent when the balloon is dismissed because of a timeout.
///
NIN_BALLOONTIMEOUT = WM_USER + 4,
///
/// Sent when the balloon is dismissed because the user clicked the mouse.
///
NIN_BALLOONUSERCLICK = WM_USER + 5,
///
/// Sent when the user hovers the cursor over an icon to indicate that the richer pop-up UI should be used in place of a standard textual tooltip.
///
NIN_POPUPOPEN = WM_USER + 6,
///
/// Sent when a cursor no longer hovers over an icon to indicate that the rich pop-up UI should be closed.
///
NIN_POPUPCLOSE = WM_USER + 7
}
}