Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/Managed.Windows.Forms/System.Windows.Forms/NotifyIcon.cs')
-rw-r--r--mcs/class/Managed.Windows.Forms/System.Windows.Forms/NotifyIcon.cs379
1 files changed, 0 insertions, 379 deletions
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/NotifyIcon.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/NotifyIcon.cs
deleted file mode 100644
index decd1fb1756..00000000000
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/NotifyIcon.cs
+++ /dev/null
@@ -1,379 +0,0 @@
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// 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.
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Authors:
-// Peter Bartok pbartok@novell.com
-//
-//
-
-// NOT COMPLETE
-
-using System;
-using System.ComponentModel;
-using System.ComponentModel.Design;
-using System.Drawing;
-
-namespace System.Windows.Forms {
- [DefaultProperty("Text")]
- [DefaultEvent("MouseDown")]
- [Designer ("System.Windows.Forms.Design.NotifyIconDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
- [ToolboxItemFilter("System.Windows.Forms", ToolboxItemFilterType.Allow)]
- public sealed class NotifyIcon : System.ComponentModel.Component {
- #region Local Variables
- private ContextMenu context_menu;
- private Icon icon;
- private Bitmap icon_bitmap;
- private string text;
- private bool visible;
- private NotifyIconWindow window;
- private bool systray_active;
- private ToolTip tooltip;
- #endregion // Local Variables
-
- #region NotifyIconWindow Class
- internal class NotifyIconWindow : Control {
- NotifyIcon owner;
- Rectangle rect;
-
- public NotifyIconWindow(NotifyIcon owner) {
- this.owner = owner;
- is_visible = false;
- rect = new Rectangle(0, 0, 1, 1);
-
- CreateControl();
-
- Paint += new PaintEventHandler(HandlePaint);
- SizeChanged += new EventHandler(HandleSizeChanged);
-
- // Events that need to be sent to our parent
- Click += new EventHandler(HandleClick);
- DoubleClick += new EventHandler(HandleDoubleClick);
- MouseDown +=new MouseEventHandler(HandleMouseDown);
- MouseUp +=new MouseEventHandler(HandleMouseUp);
- MouseMove +=new MouseEventHandler(HandleMouseMove);
- ContextMenu = owner.context_menu;
- }
-
- protected override CreateParams CreateParams {
- get {
- CreateParams cp;
-
- cp = base.CreateParams;
-
- cp.Parent = IntPtr.Zero;
- cp.Style = (int)WindowStyles.WS_POPUP;
- cp.Style |= (int)WindowStyles.WS_CLIPSIBLINGS;
-
- cp.ExStyle = (int)(WindowStyles.WS_EX_TOOLWINDOW);
-
- return cp;
- }
- }
-
- protected override void WndProc(ref Message m) {
- switch((Msg)m.Msg) {
- case Msg.WM_NCPAINT: {
- PaintEventArgs paint_event;
-
- paint_event = XplatUI.PaintEventStart(Handle, false);
- OnPaint(paint_event);
- XplatUI.PaintEventEnd(Handle, false);
- break;
- }
-
- case Msg.WM_USER: {
- switch ((Msg)m.LParam.ToInt32()) {
- case Msg.WM_LBUTTONDOWN: {
- HandleMouseDown(this, new MouseEventArgs(MouseButtons.Left, 1, Control.MousePosition.X, Control.MousePosition.Y, 0));
- return;
- }
-
- case Msg.WM_LBUTTONUP: {
- HandleMouseUp(this, new MouseEventArgs(MouseButtons.Left, 1, Control.MousePosition.X, Control.MousePosition.Y, 0));
- HandleClick(this, EventArgs.Empty);
- return;
- }
-
- case Msg.WM_LBUTTONDBLCLK: {
- HandleDoubleClick(this, EventArgs.Empty);
- return;
- }
-
- case Msg.WM_MOUSEMOVE: {
- HandleMouseMove(this, new MouseEventArgs(MouseButtons.None, 1, Control.MousePosition.X, Control.MousePosition.Y, 0));
- return;
- }
-
- case Msg.WM_RBUTTONDOWN: {
- HandleMouseDown(this, new MouseEventArgs(MouseButtons.Right, 1, Control.MousePosition.X, Control.MousePosition.Y, 0));
- return;
- }
-
- case Msg.WM_RBUTTONUP: {
- HandleMouseUp(this, new MouseEventArgs(MouseButtons.Right, 1, Control.MousePosition.X, Control.MousePosition.Y, 0));
- HandleClick(this, EventArgs.Empty);
- return;
- }
-
- case Msg.WM_RBUTTONDBLCLK: {
- HandleDoubleClick(this, EventArgs.Empty);
- return;
- }
- }
- return;
- }
- }
- base.WndProc (ref m);
- }
-
- internal void CalculateIconRect() {
- if (owner != null && owner.icon != null) {
- int x;
- int y;
- int size;
-
- // Icons are always square. Try to center them in the window
- if (ClientRectangle.Width < ClientRectangle.Height) {
- size = ClientRectangle.Width;
- } else {
- size = ClientRectangle.Height;
- }
- x = this.ClientRectangle.Width / 2 - size / 2;
- y = this.ClientRectangle.Height / 2 - size / 2;
- rect = new Rectangle(x, y, size, size);
-
- // Force our window to be square
- if (Width != size) {
- this.Width = size;
- }
-
- if (Height != size) {
- this.Height = size;
- }
- }
- }
-
- private void HandlePaint(object sender, PaintEventArgs e) {
- if (owner.icon != null) {
- e.Graphics.FillRectangle(ThemeEngine.Current.ResPool.GetSolidBrush(SystemColors.Window), rect);
- e.Graphics.DrawImage(owner.icon_bitmap, rect);
-
- }
- }
-
- private void HandleSizeChanged(object sender, EventArgs e) {
- CalculateIconRect();
- }
-
- private void HandleClick(object sender, EventArgs e) {
- if (owner.Click != null) {
- owner.Click(owner, e);
- }
- }
-
- private void HandleDoubleClick(object sender, EventArgs e) {
- if (owner.DoubleClick != null) {
- owner.DoubleClick(owner, e);
- }
- }
-
- private void HandleMouseDown(object sender, MouseEventArgs e) {
- if (owner.MouseDown != null) {
- owner.MouseDown(owner, e);
- }
- }
-
- private void HandleMouseUp(object sender, MouseEventArgs e) {
- if (owner.context_menu != null) {
- owner.context_menu.Show(this, new Point(e.X, e.Y));
- }
-
- if (owner.MouseUp != null) {
- owner.MouseUp(owner, e);
- }
- }
-
- private void HandleMouseMove(object sender, MouseEventArgs e) {
- if (owner.MouseMove != null) {
- owner.MouseMove(owner, e);
- }
- }
- }
- #endregion // NotifyIconWindow Class
-
- #region Public Constructors
- public NotifyIcon() {
- window = new NotifyIconWindow(this);
- systray_active = false;
- }
-
- public NotifyIcon(System.ComponentModel.IContainer container) : this() {
- }
- #endregion // Public Constructors
-
- #region Private Methods
- private void ShowSystray(bool property_changed) {
- if (property_changed) {
- window.CalculateIconRect();
- }
-
- if (systray_active) {
- if (property_changed) {
- UpdateSystray();
- }
- return;
- }
-
- if (icon == null) {
- return;
- }
-
- icon_bitmap = icon.ToBitmap();
-
- systray_active = true;
- XplatUI.SystrayAdd(window.Handle, text, icon, out tooltip);
- }
-
- private void HideSystray() {
- if (!systray_active) {
- return;
- }
-
- systray_active = false;
- XplatUI.SystrayRemove(window.Handle, ref tooltip);
- }
-
- private void UpdateSystray() {
- if (icon_bitmap != null) {
- icon_bitmap.Dispose();
- }
-
- if (icon != null) {
- icon_bitmap = icon.ToBitmap();
- }
-
- XplatUI.SystrayChange(window.Handle, text, icon, ref tooltip);
- window.Invalidate();
- }
- #endregion // Private Methods
-
- #region Public Instance Properties
- [DefaultValue(null)]
- public ContextMenu ContextMenu {
- get {
- return context_menu;
- }
-
- set {
- if (context_menu != value) {
- context_menu = value;
- window.ContextMenu = value;
- }
- }
- }
-
- [Localizable(true)]
- [DefaultValue(null)]
- public Icon Icon {
- get {
- return icon;
- }
-
- set {
- if (icon != value) {
- icon = value;
- ShowSystray(true);
- }
- }
- }
-
- [Localizable(true)]
- public string Text {
- get {
- return text;
- }
-
- set {
- if (text != value) {
- if (value.Length >= 64) {
- throw new ArgumentException("ToolTip length must be less than 64 characters long", "Text");
- }
- text = value;
- if (text == string.Empty && icon == null) {
- HideSystray();
- } else {
- ShowSystray(true);
- }
- }
- }
- }
-
- [Localizable(true)]
- [DefaultValue(false)]
- public bool Visible {
- get {
- return visible;
- }
-
- set {
- if (visible != value) {
- visible = value;
-
- // Let our control know, too
- window.is_visible = value;
-
- if (visible) {
- ShowSystray(false);
- } else {
- HideSystray();
- }
- }
- }
- }
- #endregion // Public Instance Properties
-
- #region Protected Instance Methods
- protected override void Dispose(bool disposing) {
- if (icon_bitmap != null) {
- icon_bitmap.Dispose();
- }
-
- if (disposing)
- icon = null;
-
- base.Dispose (disposing);
- }
-
- #endregion // Protected Instance Methods
-
- #region Events
- [Category("Action")]
- public event EventHandler Click;
-
- [Category("Action")]
- public event EventHandler DoubleClick;
-
- public event MouseEventHandler MouseDown;
- public event MouseEventHandler MouseMove;
- public event MouseEventHandler MouseUp;
- #endregion // Events
- }
-}