public AwarenessNotifyIconController(AbstractPlatform platform, AwarenessController controller)
        {
            Platform = platform;
            Platform.ApplicationWillQuit += ApplicationWillQuit;

            Controller = controller;
            Controller.BreakTimer.BreakChecked   += BreakChecked;
            Controller.BreakTimer.BreakSuggested += BreakSuggested;

            Icon = new NotifyIcon {
                Visible     = true,
                ContextMenu = BuildContextMenu(),
                Icon        = new Icon(Platform.ResourceNamed("bowl.ico"))
            };

            Icon.DoubleClick       += (sender, args) => DoubleClick.Raise(this);
            Icon.BalloonTipClicked += BalloonTipClicked;
        }
        IEnumerable <MenuItem> BuildMenuItems()
        {
            var main = new MenuItem("Awareness")
            {
                DefaultItem = true
            };

            main.Click += delegate { DoubleClick.Raise(this); };
            yield return(main);

            yield return(new MenuItem("-"));

            yield return(TimeDisplay = new MenuItem()
            {
                Enabled = false
            });

            yield return(MenuItemWithClickAction("Break Ideas...", () => {
                Platform.OpenUrl(Constants.BreakIdeasUrl);
            }));

            yield return(new MenuItem("-"));

            yield return(MenuItemWithClickAction("Awareness Website", () => {
                Platform.OpenUrl(Constants.AwarenessWebsiteUrl);
            }));

            yield return(MenuItemWithClickAction("Facebook Page", () => {
                Platform.OpenUrl(Constants.AwarenessFacebookPageUrl);
            }));

            yield return(MenuItemWithClickAction("Support", () => {
                Platform.OpenUrl(Constants.AwarenessSupportUrl);
            }));

            yield return(new MenuItem("-"));

            yield return(MenuItemWithClickAction("Exit", () => {
                Application.Exit();
            }));
        }