public DummyHandler()
			{
				_hotKeys = new NuGenHotKeys();

				NuGenHotKeyOperation cutOp = new NuGenHotKeyOperation("Cut", this.Cut, Keys.Control | Keys.X);
				NuGenHotKeyOperation eraseOp = new NuGenHotKeyOperation("Erase", this.Erase, Keys.E);

				_hotKeys.Operations.Add(cutOp);
				_hotKeys.Operations.Add(eraseOp);
			}
		/// <summary>
		/// Initializes a new instance of the <see cref="NuGenCalculatorPopup"/> class.
		/// </summary>
		/// <param name="serviceProvider"><para>Requires:</para>
		/// 	<para><see cref="INuGenButtonStateService"/></para>
		/// 	<para><see cref="INuGenControlStateService"/></para>
		/// 	<para><see cref="INuGenButtonRenderer"/></para>
		/// 	<para><see cref="INuGenButtonLayoutManager"/></para>
		/// 	<para><see cref="INuGenPanelRenderer"/></para>
		/// 	<para><see cref="INuGenTextBoxRenderer"/></para></param>
		/// <exception cref="ArgumentNullException"><paramref name="serviceProvider"/> is <see langword="null"/>.</exception>
		public NuGenCalculatorPopup(INuGenServiceProvider serviceProvider)
			: base(serviceProvider)
		{
			this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
			this.SetStyle(ControlStyles.Opaque, true);
			this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
			this.SetStyle(ControlStyles.ResizeRedraw, true);
			this.SetStyle(ControlStyles.Selectable, true);
			this.SetStyle(ControlStyles.UserPaint, true);

			this.Padding = new Padding(3);

			_backspaceButton = new ActionButton(serviceProvider, ActionManager.Backspace, res.Text_Calc_Backspace);
			_backspaceButton.TabIndex = 20;

			_cButton = new ActionButton(serviceProvider, ActionManager.C, res.Text_Calc_C);
			_cButton.TabIndex = 40;

			_ceButton = new ActionButton(serviceProvider, ActionManager.CE, res.Text_Calc_CE);
			_ceButton.TabIndex = 30;
			
			_d0Button = new ActionButton(serviceProvider, ActionManager.D0, res.Text_Calc_D0);
			_d1Button = new ActionButton(serviceProvider, ActionManager.D1, res.Text_Calc_D1);
			_d2Button = new ActionButton(serviceProvider, ActionManager.D2, res.Text_Calc_D2);
			_d3Button = new ActionButton(serviceProvider, ActionManager.D3, res.Text_Calc_D3);
			_d4Button = new ActionButton(serviceProvider, ActionManager.D4, res.Text_Calc_D4);
			_d5Button = new ActionButton(serviceProvider, ActionManager.D5, res.Text_Calc_D5);
			_d6Button = new ActionButton(serviceProvider, ActionManager.D6, res.Text_Calc_D6);
			_d7Button = new ActionButton(serviceProvider, ActionManager.D7, res.Text_Calc_D7);
			_d8Button = new ActionButton(serviceProvider, ActionManager.D8, res.Text_Calc_D8);
			_d9Button = new ActionButton(serviceProvider, ActionManager.D9, res.Text_Calc_D9);
			_dotButton = new ActionButton(serviceProvider, ActionManager.Dot, res.Text_Calc_Dot);
			_signButton = new ActionButton(serviceProvider, ActionManager.Sign, res.Text_Calc_Sign);
			_divideButton = new ActionButton(serviceProvider, ActionManager.Divide, res.Text_Calc_Divide);
			_minusButton = new ActionButton(serviceProvider, ActionManager.Minus, res.Text_Calc_Minus);
			_multiplyButton = new ActionButton(serviceProvider, ActionManager.Multiply, res.Text_Calc_Multiply);
			_plusButton = new ActionButton(serviceProvider, ActionManager.Plus, res.Text_Calc_Plus);
			_evaluateButton = new ActionButton(serviceProvider, ActionManager.Evaluate, res.Text_Calc_Evaluate);
			_divXButton = new ActionButton(serviceProvider, ActionManager.DivX, res.Text_Calc_DivX);
			_percentButton = new ActionButton(serviceProvider, ActionManager.Percent, res.Text_Calc_Percent);
			_sqrtButton = new ActionButton(serviceProvider, ActionManager.Sqrt, res.Text_Calc_Sqrt);

			_engine = new Engine();
			_engine.ValueChanged += _engine_ValueChanged;

			_actionButtonLayoutPanel = new TableLayoutPanel();
			_actionButtonLayoutPanel.BackColor = Color.Transparent;

			for (int row = 0; row < 5; row++)
			{
				_actionButtonLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20));
			}

			for (int column = 0; column < 4; column++)
			{
				_actionButtonLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 25));
			}

			this.AddToRow0(_d7Button, 0);
			this.AddToRow0(_d8Button, 1);
			this.AddToRow0(_d9Button, 2);
			this.AddToRow0(_divideButton, 3);
			this.AddToRow0(_sqrtButton, 4);

			this.AddToRow1(_d4Button, 0);
			this.AddToRow1(_d5Button, 1);
			this.AddToRow1(_d6Button, 2);
			this.AddToRow1(_multiplyButton, 3);
			this.AddToRow1(_percentButton, 4);

			this.AddToRow2(_d1Button, 0);
			this.AddToRow2(_d2Button, 1);
			this.AddToRow2(_d3Button, 2);
			this.AddToRow2(_minusButton, 3);
			this.AddToRow2(_divXButton, 4);

			this.AddToRow3(_d0Button, 0);
			this.AddToRow3(_signButton, 1);
			this.AddToRow3(_dotButton, 2);
			this.AddToRow3(_plusButton, 3);
			this.AddToRow3(_evaluateButton, 4);

			foreach (ActionButton button in _actionButtonLayoutPanel.Controls)
			{
				button.Dock = DockStyle.Fill;
				button.Click += _actionButton_Click;
			}

			_actionButtonLayoutPanel.Dock = DockStyle.Fill;
			_actionButtonLayoutPanel.Parent = this;
			_actionButtonLayoutPanel.TabIndex = 10;

			_editLayoutPanel = new TableLayoutPanel();
			_editLayoutPanel.BackColor = Color.Transparent;

			_editLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40));
			_editLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30));
			_editLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30));
			_editLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 40));
			_editLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 60));

			_editLayoutPanel.Controls.Add(_backspaceButton, 0, 1);
			_editLayoutPanel.Controls.Add(_ceButton, 1, 1);
			_editLayoutPanel.Controls.Add(_cButton, 2, 1);

			foreach (ActionButton button in _editLayoutPanel.Controls)
			{
				button.Dock = DockStyle.Fill;
				button.Click += _actionButton_Click;
			}

			_valueDisplayTextBox = new NuGenTextBox(serviceProvider);
			_valueDisplayTextBox.Dock = DockStyle.Fill;
			_valueDisplayTextBox.ReadOnly = true;
			_valueDisplayTextBox.RightToLeft = RightToLeft.Yes;
			_valueDisplayTextBox.TabIndex = 10;
			_valueDisplayTextBox.Text = this.GetEngineValue();

			_editLayoutPanel.Controls.Add(_valueDisplayTextBox, 0, 0);
			_editLayoutPanel.SetColumnSpan(_valueDisplayTextBox, 3);

			_editLayoutPanel.Dock = DockStyle.Top;
			_editLayoutPanel.Height = 66;
			_editLayoutPanel.Parent = this;
			_editLayoutPanel.TabIndex = 10;

			_hotKeys = new NuGenHotKeys();

			this.AddOperation(this.D0, Keys.D0);
			this.AddOperation(this.D1, Keys.D1);
			this.AddOperation(this.D2, Keys.D2);
			this.AddOperation(this.D3, Keys.D3);
			this.AddOperation(this.D4, Keys.D4);
			this.AddOperation(this.D5, Keys.D5);
			this.AddOperation(this.D6, Keys.D6);
			this.AddOperation(this.D7, Keys.D7);
			this.AddOperation(this.D8, Keys.D8);
			this.AddOperation(this.D9, Keys.D9);
			
			this.AddOperation(this.Accept, Keys.Enter);
			this.AddOperation(this.Cancel, Keys.Escape);
		}
Ejemplo n.º 3
0
		/// <summary>
		/// Initializes a new instance of the <see cref="NuGenPresenterForm"/> class.
		/// </summary>
		/// <param name="serviceProvider"><para>Requires:</para>
		/// <para><see cref="INuGenButtonStateService"/></para>
		/// <para><see cref="INuGenControlStateService"/></para>
		///	<para><see cref="INuGenButtonLayoutManager"/></para>
		///	<para><see cref="INuGenButtonRenderer"/></para>
		/// <para><see cref="INuGenComboBoxRenderer"/></para>
		/// <para><see cref="INuGenDirectorySelectorRenderer"/></para>
		/// <para><see cref="INuGenImageListService"/></para>
		/// <para><see cref="INuGenPanelRenderer"/></para>
		/// <para><see cref="INuGenProgressBarLayoutManager"/></para>
		/// <para><see cref="INuGenProgressBarRenderer"/></para>
		/// <para><see cref="INuGenScrollBarRenderer"/></para>
		/// <para><see cref="INuGenSwitchButtonLayoutManager"/></para>
		/// <para><see cref="INuGenSwitchButtonRenderer"/></para>
		/// <para><see cref="INuGenTempImageService"/></para>
		/// <para><see cref="INuGenTextBoxRenderer"/></para>
		/// <para><see cref="INuGenTrackBarRenderer"/></para>
		/// <para><see cref="INuGenThumbnailLayoutManager"/></para>
		/// <para><see cref="INuGenThumbnailRenderer"/></para>
		/// <para><see cref="INuGenToolStripRenderer"/></para>
		/// <para><see cref="INuGenValueTrackerService"/></para>
		/// </param>
		/// <exception cref="ArgumentNullException">
		/// <para><paramref name="serviceProvider"/> is <see langword="null"/>.</para>
		/// </exception>
		public NuGenPresenterForm(INuGenServiceProvider serviceProvider)
		{
			if (serviceProvider == null)
			{
				throw new ArgumentNullException("serviceProvider");
			}

			_serviceProvider = serviceProvider;
			_hotKeys = new NuGenHotKeys();

			_hotKeys.Operations.Add(this.ClearOperation);
			_hotKeys.Operations.Add(this.EscapeOperation);
			_hotKeys.Operations.Add(this.SaveOperation);
			_hotKeys.Operations.Add(this.LockTransformOperation);
			_hotKeys.Operations.Add(this.ShowPointerOperation);
			_hotKeys.Operations.Add(this.ZoomInOperation);
			_hotKeys.Operations.Add(this.ZoomOutOperation);

			Point centerScreen = new Point(this.PrimaryScreenWidth / 2, this.PrimaryScreenHeight / 2);
			_spotGrab = new NuGenSpotGrab(centerScreen, this.PrimaryScreenWidth, this.PrimaryScreenHeight);

			_timer = new Timer();
			_timer.Interval = 50;
			_timer.Tick += _timer_Tick;

			this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
			this.SetStyle(ControlStyles.Opaque, true);
			this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
			this.SetStyle(ControlStyles.UserPaint, true);

			this.FormBorderStyle = FormBorderStyle.None;
			this.ShowIcon = false;
			this.ShowInTaskbar = false;
			this.WindowState = FormWindowState.Maximized;

			_sketchCanvas = new NuGenSketchCanvas(this.Handle, serviceProvider);
		}