public TooltipButton GenerateTooltipButton(string label, string normalImageName = null, string hoverImageName = null, string pressedImageName = null, string disabledImageName = null)
        {
            //Create button based on view container widget
            ButtonViewStates buttonViewWidget = getButtonView(label, normalImageName, hoverImageName, pressedImageName, disabledImageName);

            TooltipButton textImageButton = new TooltipButton(0, 0, buttonViewWidget);

            textImageButton.Margin  = new BorderDouble(0);
            textImageButton.Padding = new BorderDouble(0);


            //Override the width if requested
            if (this.FixedWidth != 0)
            {
                buttonViewWidget.Width = this.FixedWidth;
                textImageButton.Width  = this.FixedWidth;
            }

            //Override the height if requested
            buttonViewWidget.Height = this.FixedHeight;
            textImageButton.Height  = this.FixedHeight;

            textImageButton.MouseEnterBounds += new EventHandler(onEnterTooltipButton);
            textImageButton.MouseLeaveBounds += new EventHandler(onExitTooltipButton);
            return(textImageButton);
        }
        public TooltipButton GenerateTooltipButton(string label, string normalImageName = null, string hoverImageName = null, string pressedImageName = null, string disabledImageName = null)
        {
            //Create button based on view container widget
            ButtonViewStates buttonViewWidget = getButtonView(label, normalImageName, hoverImageName, pressedImageName, disabledImageName);

            TooltipButton textImageButton = new TooltipButton(0, 0, buttonViewWidget);
            textImageButton.Margin = new BorderDouble(0);
            textImageButton.Padding = new BorderDouble(0);


            //Override the width if requested
            if (this.FixedWidth != 0)
            {
                buttonViewWidget.Width = this.FixedWidth;
                textImageButton.Width = this.FixedWidth;
            }

            //Override the height if requested
            buttonViewWidget.Height = this.FixedHeight;
            textImageButton.Height = this.FixedHeight;

            textImageButton.MouseEnterBounds += new EventHandler(onEnterTooltipButton);
            textImageButton.MouseLeaveBounds += new EventHandler(onExitTooltipButton);
            return textImageButton;
        }
        private void onEnterTooltipButton(object sender, EventArgs e)
        {
            TooltipButton button = (TooltipButton)sender;

            HelpTextWidget.Instance.ShowHoverText(button.tooltipText);
        }
        protected override void AddChildElements()
        {
            addButton = (TooltipButton)textImageButtonFactory.GenerateTooltipButton(new LocalizedString("Add").Translated, "icon_circle_plus.png");
			addButton.tooltipText = new LocalizedString("Add a file to be printed").Translated;
            addButton.Margin = new BorderDouble(0, 6, 6, 3);

			startButton = (TooltipButton)textImageButtonFactory.GenerateTooltipButton(new LocalizedString("Start").Translated, "icon_play_32x32.png");
			startButton.tooltipText = new LocalizedString("Begin printing the selected item.").Translated;
            startButton.Margin = new BorderDouble(0, 6, 6, 3);

			string skipButtonTxt = new LocalizedString("Skip").Translated;
			string skipButtonMessage = new LocalizedString("Skip the current item and move to the next in queue").Translated;
			skipButton = makeButton(skipButtonTxt, skipButtonMessage);

			string removeButtonTxt = new LocalizedString("Remove").Translated;
			string removeButtonMessage = new LocalizedString("Remove current item from queue").Translated;
			removeButton = makeButton(removeButtonTxt, removeButtonMessage);

			string pauseButtonTxt = new LocalizedString("Pause").Translated;
			string pauseButtonMessage = new LocalizedString("Pause the current print").Translated;
			pauseButton = makeButton(pauseButtonTxt, pauseButtonMessage);

            string cancelCancelButtonTxt = new LocalizedString("Cancel Connect").Translated;
            string cancelConnectButtonMessage = new LocalizedString("Stop trying to connect to the printer.").Translated;
            cancelConnectButton = makeButton(cancelCancelButtonTxt, cancelConnectButtonMessage);

			string cancelButtonTxt = new LocalizedString("Cancel").Translated;
			string cancelButtonMessage = new LocalizedString("Stop the current print").Translated;
			cancelButton = makeButton(cancelButtonTxt, cancelButtonMessage);

			string resumeButtonTxt = new LocalizedString("Resume").Translated;
			string resumeButtonMessage = new LocalizedString ("Resume the current print").Translated;
			resumeButton = makeButton(resumeButtonTxt, resumeButtonMessage);

			string reprintButtonTxt = new LocalizedString("Reprint").Translated;
			string reprintButtonMessage = new LocalizedString ("Print current item again").Translated;
			reprintButton = makeButton(reprintButtonTxt, reprintButtonMessage);

			string doneCurrentPartButtonTxt = new LocalizedString ("Done").Translated;
			string doenCurrentPartButtonMessage = new LocalizedString ("Move to next print in queue").Translated;
			doneWithCurrentPartButton = makeButton(doneCurrentPartButtonTxt, doenCurrentPartButtonMessage);

            this.AddChild(addButton);
            allPrintButtons.Add(addButton);

            this.AddChild(startButton);
            allPrintButtons.Add(startButton);

            this.AddChild(pauseButton);
            allPrintButtons.Add(pauseButton);

            this.AddChild(resumeButton);
            allPrintButtons.Add(resumeButton);

            this.AddChild(doneWithCurrentPartButton);
            allPrintButtons.Add(doneWithCurrentPartButton);

            this.AddChild(skipButton);
            allPrintButtons.Add(skipButton);

            this.AddChild(cancelButton);
            allPrintButtons.Add(cancelButton);

            this.AddChild(cancelConnectButton);
            allPrintButtons.Add(cancelConnectButton);

            this.AddChild(reprintButton);
            allPrintButtons.Add(reprintButton);

            this.AddChild(removeButton);
            allPrintButtons.Add(removeButton);

            SetButtonStates();
        }