Esempio n. 1
0
        /// <summary>
        /// This is the SufraceMessageEvent receiver
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="eventArgs"></param>
        private void SurfaceMessageReceived(object sender, SurfaceMessageEventArgs eventArgs)
        {
            if (string.IsNullOrEmpty(eventArgs?.Message))
            {
                return;
            }
            if (MainForm.Instance == null)
            {
                return;
            }
            switch (eventArgs.MessageType)
            {
            case SurfaceMessageTyp.Error:
                MainForm.Instance.NotifyIcon.ShowBalloonTip(10000, "Greenshot", eventArgs.Message, ToolTipIcon.Error);
                break;

            case SurfaceMessageTyp.Info:
                MainForm.Instance.NotifyIcon.ShowBalloonTip(10000, "Greenshot", eventArgs.Message, ToolTipIcon.Info);
                break;

            case SurfaceMessageTyp.FileSaved:
            case SurfaceMessageTyp.UploadedUri:
                // Show a balloon and register an event handler to open the "capture" for if someone clicks the balloon.
                MainForm.Instance.NotifyIcon.BalloonTipClicked += OpenCaptureOnClick;
                MainForm.Instance.NotifyIcon.BalloonTipClosed  += RemoveEventHandler;
                // Store for later usage
                MainForm.Instance.NotifyIcon.Tag = eventArgs;
                MainForm.Instance.NotifyIcon.ShowBalloonTip(10000, "Greenshot", eventArgs.Message, ToolTipIcon.Info);
                break;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// If a balloon tip is show for a taken capture, this handles the click on it
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OpenCaptureOnClick(object sender, EventArgs e)
        {
            SurfaceMessageEventArgs eventArgs = MainForm.Instance.NotifyIcon.Tag as SurfaceMessageEventArgs;

            if (eventArgs == null)
            {
                Log.Warn("OpenCaptureOnClick called without SurfaceMessageEventArgs");
                RemoveEventHandler(sender, e);
                return;
            }
            ISurface surface = eventArgs.Surface;

            if (surface != null)
            {
                switch (eventArgs.MessageType)
                {
                case SurfaceMessageTyp.FileSaved:
                    ExplorerHelper.OpenInExplorer(surface.LastSaveFullPath);
                    break;

                case SurfaceMessageTyp.UploadedUri:
                    Process.Start(surface.UploadUrl);
                    break;
                }
            }
            Log.DebugFormat("Deregistering the BalloonTipClicked");
            RemoveEventHandler(sender, e);
        }