private async Task InvokeButtonStateEvent(MouseEventArgs mouseEventArgs, EventCallback callback, HeaderButtonState buttonState)
        {
            HeaderButtonState selected = null;

            foreach (var state in HeaderButtonConfigs)
            {
                state.ButtonColor = state == buttonState ? Color.Secondary : Color.Primary;
                state.Active      = state == buttonState;
                if (state == buttonState)
                {
                    selected      = state;
                    state.Loading = true;
                }
            }
            selected.Loading = true;
            await callback.InvokeAsync(mouseEventArgs);

            selected.Loading = false;
        }
Beispiel #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="NuGenHeader"/> class.
        /// </summary>
        /// <param name="calendar"></param>
        /// <param name="serviceProvider">
        /// <para>Requires:</para>
        /// <para><see cref="INuGenCalendarRenderer"/></para>
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// <para>
        ///		<paramref name="calendar"/> is <see langword="null"/>.
        /// </para>
        /// -or-
        /// <para>
        ///		<paramref name="serviceProvider"/> is <see langword="null"/>.
        /// </para>
        /// </exception>
        public NuGenHeader(NuGenCalendar calendar, INuGenServiceProvider serviceProvider)
        {
            if (calendar == null)
            {
                throw new ArgumentNullException("calendar");
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }

            _calendar         = calendar;
            _serviceProvider  = serviceProvider;
            _backColor1       = Color.FromArgb(0, 84, 227);
            _backColor2       = Color.White;
            _gradientMode     = NuGenGradientMode.None;
            _textColor        = Color.White;
            _font             = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold);
            _showMonth        = true;
            _monthSelector    = true;
            _text             = "";
            _contextMenu      = true;
            _align            = StringAlignment.Center;
            _prevBtnState     = HeaderButtonState.Normal;
            _nextBtnState     = HeaderButtonState.Normal;
            _prevYearBtnState = HeaderButtonState.Normal;
            _nextYearBtnState = HeaderButtonState.Normal;

            // create monthContext menu and setup event handlers
            for (int k = 0; k < 12; k++)
            {
                _monthMenu.MenuItems.Add(_monthMenu.MenuItems.Count,
                                         new MenuItem(""));
                _monthMenu.MenuItems[_monthMenu.MenuItems.Count - 1].Click += new EventHandler(MonthContextMenu_Click);
            }

            Setup();
        }
Beispiel #3
0
        internal void MouseUp()
        {
            // if mouse button is released no button should be pushed
            if (_prevBtnState != HeaderButtonState.Inactive)
            {
                _prevBtnState = HeaderButtonState.Normal;
            }
            if (_nextBtnState != HeaderButtonState.Inactive)
            {
                _nextBtnState = HeaderButtonState.Normal;
            }
            if (_prevYearBtnState != HeaderButtonState.Inactive)
            {
                _prevYearBtnState = HeaderButtonState.Normal;
            }
            if (_nextYearBtnState != HeaderButtonState.Inactive)
            {
                _nextYearBtnState = HeaderButtonState.Normal;
            }

            _calendar.Invalidate();
        }
Beispiel #4
0
        private void DrawButton(Graphics g, HeaderButtonState state, HeaderButtons button, Rectangle bounds)
        {
            NuGenControlState currentState = NuGenControlState.Normal;

            if (_calendar.Enabled)
            {
                if (state == HeaderButtonState.Hot)
                {
                    currentState = NuGenControlState.Hot;
                }
                else if (state == HeaderButtonState.Inactive)
                {
                    currentState = NuGenControlState.Disabled;
                }
                else if (state == HeaderButtonState.Pushed)
                {
                    currentState = NuGenControlState.Pressed;
                }
            }
            else
            {
                currentState = NuGenControlState.Disabled;
            }

            NuGenPaintParams paintParams = new NuGenPaintParams(g);

            paintParams.Bounds = bounds;
            paintParams.State  = currentState;

            this.Renderer.DrawBackground(paintParams);
            this.Renderer.DrawBorder(paintParams);

            Image buttonImage;

            switch (button)
            {
            case HeaderButtons.NextYear:
            {
                buttonImage = this.Renderer.GetNextYearImage();
                break;
            }

            case HeaderButtons.NextMonth:
            {
                buttonImage = this.Renderer.GetNextMonthImage();
                break;
            }

            case HeaderButtons.PreviousYear:
            {
                buttonImage = this.Renderer.GetPreviousYearImage();
                break;
            }

            default:
            {
                buttonImage = this.Renderer.GetPreviousMonthImage();
                break;
            }
            }

            Debug.Assert(buttonImage != null, "buttonImage != null");

            NuGenImagePaintParams imagePaintParams = new NuGenImagePaintParams(paintParams);

            imagePaintParams.Image = buttonImage;
            Size imageSize = buttonImage.Size;

            imagePaintParams.Bounds = new Rectangle(
                bounds.Left + (bounds.Width - imageSize.Width) / 2
                , bounds.Top + (bounds.Height - imageSize.Height) / 2
                , imageSize.Width
                , imageSize.Height
                );

            this.Renderer.DrawImage(imagePaintParams);
        }
Beispiel #5
0
        internal void Draw(Graphics e)
        {
            StringFormat textFormat = new StringFormat();
            Brush        textBrush  = new SolidBrush(TextColor);
            Brush        bgBrush    = new SolidBrush(BackColor1);

            string minMonth;
            string maxMonth;
            string currentMonth;


            string month;

            textFormat.LineAlignment = StringAlignment.Center;
            textFormat.Alignment     = _align;

            if (_gradientMode != NuGenGradientMode.None)
            {
                _calendar.DrawGradient(e, _rect, BackColor1, BackColor2, _gradientMode);
            }
            else
            {
                e.FillRectangle(bgBrush, _rect);
            }


            if (_monthSelector)
            {
                currentMonth = _calendar.Month.SelectedMonth.Year.ToString() + "-" + _calendar.Month.SelectedMonth.Month.ToString();

                minMonth = _calendar.MinDate.Year.ToString() + "-" + _calendar.MinDate.Month.ToString();
                maxMonth = _calendar.MaxDate.Year.ToString() + "-" + _calendar.MaxDate.Month.ToString();

                if ((minMonth == currentMonth) && (_prevBtnState != HeaderButtonState.Pushed))
                {
                    _prevBtnState = HeaderButtonState.Inactive;
                }
                else if (_prevBtnState != HeaderButtonState.Pushed)
                {
                    _prevBtnState = HeaderButtonState.Normal;
                }

                if ((maxMonth == currentMonth) && (_nextBtnState != HeaderButtonState.Pushed))
                {
                    _nextBtnState = HeaderButtonState.Inactive;
                }
                else if (_nextBtnState != HeaderButtonState.Pushed)
                {
                    _nextBtnState = HeaderButtonState.Normal;
                }
            }
            if (_yearSelector)
            {
                currentMonth = _calendar.Month.SelectedMonth.Year.ToString() + "-" + _calendar.Month.SelectedMonth.Month.ToString() + "-01";

                DateTime currentDate = DateTime.Parse(currentMonth);
                int      days        = DateTime.DaysInMonth(_calendar.MinDate.Year, _calendar.MinDate.Month);
                DateTime minDate     = DateTime.Parse(_calendar.MinDate.Year.ToString() + "-" + _calendar.MinDate.Month.ToString() + "-" + days.ToString());
                days = DateTime.DaysInMonth(_calendar.MaxDate.Year, _calendar.MaxDate.Month);
                DateTime maxDate = DateTime.Parse(_calendar.MaxDate.Year.ToString() + "-" + _calendar.MaxDate.Month.ToString() + "-" + days.ToString());

                if ((DateTime.Compare(currentDate.AddYears(-1), minDate) < 0) && (_prevYearBtnState != HeaderButtonState.Pushed))
                {
                    _prevYearBtnState = HeaderButtonState.Inactive;
                }
                else if (_prevYearBtnState != HeaderButtonState.Pushed)
                {
                    _prevYearBtnState = HeaderButtonState.Normal;
                }

                if ((DateTime.Compare(currentDate.AddYears(1), maxDate) > 0) && (_nextYearBtnState != HeaderButtonState.Pushed))
                {
                    _nextYearBtnState = HeaderButtonState.Inactive;
                }
                else if (_nextYearBtnState != HeaderButtonState.Pushed)
                {
                    _nextYearBtnState = HeaderButtonState.Normal;
                }
            }


            if (_monthSelector)
            {
                DrawButton(e, _prevBtnState, HeaderButtons.PreviousMonth, _prevBtnRect);
                DrawButton(e, _nextBtnState, HeaderButtons.NextMonth, _nextBtnRect);
            }
            if (_yearSelector)
            {
                DrawButton(e, _prevYearBtnState, HeaderButtons.PreviousYear, _prevYearBtnRect);
                DrawButton(e, _nextYearBtnState, HeaderButtons.NextYear, _nextYearBtnRect);
            }

            month = _calendar._dateTimeFormat.GetMonthName(_calendar.Month.SelectedMonth.Month) + " " + _calendar.Month.SelectedMonth.Year.ToString();
            if (ShowMonth)
            {
                e.DrawString(month, Font, textBrush, _textRect, textFormat);
            }
            else
            {
                e.DrawString(_text, Font, textBrush, _textRect, textFormat);
            }

            textBrush.Dispose();
            bgBrush.Dispose();
        }
Beispiel #6
0
        internal void MouseMove(Point mouseLocation)
        {
            Region            prevBtnRgn        = new Region(_prevBtnRect);
            Region            nextBtnRgn        = new Region(_nextBtnRect);
            Region            prevYearBtnRgn    = new Region(_prevYearBtnRect);
            Region            nextYearBtnRgn    = new Region(_nextYearBtnRect);
            HeaderButtonState oldPrevMonthState = _prevBtnState;
            HeaderButtonState oldNextMonthState = _nextBtnState;
            HeaderButtonState oldPrevYearState  = _prevYearBtnState;
            HeaderButtonState oldNextYearState  = _nextYearBtnState;


            if (_monthSelector)
            {
                // If not within left scroll button, make sure its not pushed
                if (!prevBtnRgn.IsVisible(mouseLocation))
                {
                    if (_prevBtnState != HeaderButtonState.Inactive)
                    {
                        _prevBtnState = HeaderButtonState.Normal;
                    }
                }
                else if (_prevBtnState != HeaderButtonState.Inactive)
                {
                    _prevBtnState = HeaderButtonState.Hot;
                }

                if (oldPrevMonthState != _prevBtnState)
                {
                    DrawButton(_calendar.CreateGraphics(), _prevBtnState, HeaderButtons.PreviousMonth, _prevBtnRect);
                }
                // If not within right scroll button, make sure its not pushed
                if (!nextBtnRgn.IsVisible(mouseLocation))
                {
                    if (_nextBtnState != HeaderButtonState.Inactive)
                    {
                        _nextBtnState = HeaderButtonState.Normal;
                    }
                }
                else if (_nextBtnState != HeaderButtonState.Inactive)
                {
                    _nextBtnState = HeaderButtonState.Hot;
                }

                if (oldNextMonthState != _nextBtnState)
                {
                    DrawButton(_calendar.CreateGraphics(), _nextBtnState, HeaderButtons.NextMonth, _nextBtnRect);
                }
            }
            if (_yearSelector)
            {
                // If not within left scroll button, make sure its not pushed
                if (!prevYearBtnRgn.IsVisible(mouseLocation))
                {
                    if (_prevYearBtnState != HeaderButtonState.Inactive)
                    {
                        _prevYearBtnState = HeaderButtonState.Normal;
                    }
                }
                else if (_prevYearBtnState != HeaderButtonState.Inactive)
                {
                    _prevYearBtnState = HeaderButtonState.Hot;
                }

                if (oldPrevYearState != _prevYearBtnState)
                {
                    DrawButton(_calendar.CreateGraphics(), _prevYearBtnState, HeaderButtons.PreviousYear, _prevYearBtnRect);
                }


                // If not within right scroll button, make sure its not pushed
                if (!nextYearBtnRgn.IsVisible(mouseLocation))
                {
                    if (_nextYearBtnState != HeaderButtonState.Inactive)
                    {
                        _nextYearBtnState = HeaderButtonState.Normal;
                    }
                }
                else if (_nextYearBtnState != HeaderButtonState.Inactive)
                {
                    _nextYearBtnState = HeaderButtonState.Hot;
                }

                if (oldNextYearState != _nextYearBtnState)
                {
                    DrawButton(_calendar.CreateGraphics(), _nextYearBtnState, HeaderButtons.NextYear, _nextYearBtnRect);
                }
            }

            if (_region.IsVisible(mouseLocation))
            {
                _calendar.ActiveRegion = NuGenCalendarRegion.Header;
            }


            prevBtnRgn.Dispose();
            nextBtnRgn.Dispose();
            prevYearBtnRgn.Dispose();
            nextYearBtnRgn.Dispose();
        }
Beispiel #7
0
        internal void MouseClick(Point mouseLocation, MouseButtons button, NuGenClickMode mode)
        {
            Region       leftBtnRgn      = new Region(_prevBtnRect);
            Region       rightBtnRgn     = new Region(_nextBtnRect);
            Region       leftYearBtnRgn  = new Region(_prevYearBtnRect);
            Region       rightYearBtnRgn = new Region(_nextYearBtnRect);
            MouseButtons selectButton;

            if (SystemInformation.MouseButtonsSwapped)
            {
                selectButton = MouseButtons.Right;
            }
            else
            {
                selectButton = MouseButtons.Left;
            }

            bool btnClick = false;

            if (_region.IsVisible(mouseLocation))
            {
                if (button == selectButton)
                {
                    if (_monthSelector)
                    {
                        if ((leftBtnRgn.IsVisible(mouseLocation)) && (_prevBtnState != HeaderButtonState.Inactive) &&
                            (_prevBtnState != HeaderButtonState.Pushed))
                        {
                            _prevBtnState = HeaderButtonState.Pushed;
                            if (this.PrevMonthButtonClick != null)
                            {
                                this.PrevMonthButtonClick(this, new EventArgs());
                            }
                            btnClick = true;
                        }
                        if ((rightBtnRgn.IsVisible(mouseLocation)) && (_nextBtnState != HeaderButtonState.Inactive) &&
                            (_nextBtnState != HeaderButtonState.Pushed))
                        {
                            _nextBtnState = HeaderButtonState.Pushed;
                            if (this.NextMonthButtonClick != null)
                            {
                                this.NextMonthButtonClick(this, new EventArgs());
                            }
                            btnClick = true;
                        }
                    }
                    if (_yearSelector)
                    {
                        if ((leftYearBtnRgn.IsVisible(mouseLocation)) && (_prevYearBtnState != HeaderButtonState.Inactive) &&
                            (_prevYearBtnState != HeaderButtonState.Pushed))
                        {
                            _prevYearBtnState = HeaderButtonState.Pushed;
                            if (this.PrevYearButtonClick != null)
                            {
                                this.PrevYearButtonClick(this, new EventArgs());
                            }
                            btnClick = true;
                        }
                        if ((rightYearBtnRgn.IsVisible(mouseLocation)) && (_nextYearBtnState != HeaderButtonState.Inactive) &&
                            (_nextYearBtnState != HeaderButtonState.Pushed))
                        {
                            _nextYearBtnState = HeaderButtonState.Pushed;
                            if (this.NextYearButtonClick != null)
                            {
                                this.NextYearButtonClick(this, new EventArgs());
                            }
                            btnClick = true;
                        }
                    }
                }
                else
                {
                    if (_contextMenu)
                    {
                        DisplayMonthContextMenu(mouseLocation);
                    }
                }

                if (mode == NuGenClickMode.Single)
                {
                    if ((this.Click != null) && (!btnClick))
                    {
                        this.Click(this, new NuGenClickEventArgs(button));
                    }
                }
                else
                {
                    if ((this.DoubleClick != null) && (!btnClick))
                    {
                        this.DoubleClick(this, new NuGenClickEventArgs(button));
                    }
                }
            }

            leftBtnRgn.Dispose();
            rightBtnRgn.Dispose();
            leftYearBtnRgn.Dispose();
            rightYearBtnRgn.Dispose();
        }
Beispiel #8
0
		/// <summary>
		/// Initializes a new instance of the <see cref="NuGenHeader"/> class.
		/// </summary>
		/// <param name="calendar"></param>
		/// <param name="serviceProvider">
		/// <para>Requires:</para>
		/// <para><see cref="INuGenCalendarRenderer"/></para>
		/// </param>
		/// <exception cref="ArgumentNullException">
		/// <para>
		///		<paramref name="calendar"/> is <see langword="null"/>.
		/// </para>
		/// -or-
		/// <para>
		///		<paramref name="serviceProvider"/> is <see langword="null"/>.
		/// </para>
		/// </exception>
		public NuGenHeader(NuGenCalendar calendar, INuGenServiceProvider serviceProvider)
		{
			if (calendar == null)
			{
				throw new ArgumentNullException("calendar");
			}

			if (serviceProvider == null)
			{
				throw new ArgumentNullException("serviceProvider");
			}

			_calendar = calendar;
			_serviceProvider = serviceProvider;
			_backColor1 = Color.FromArgb(0, 84, 227);
			_backColor2 = Color.White;
			_gradientMode = NuGenGradientMode.None;
			_textColor = Color.White;
			_font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold);
			_showMonth = true;
			_monthSelector = true;
			_text = "";
			_contextMenu = true;
			_align = StringAlignment.Center;
			_prevBtnState = HeaderButtonState.Normal;
			_nextBtnState = HeaderButtonState.Normal;
			_prevYearBtnState = HeaderButtonState.Normal;
			_nextYearBtnState = HeaderButtonState.Normal;

			// create monthContext menu and setup event handlers
			for (int k = 0; k < 12; k++)
			{
				_monthMenu.MenuItems.Add(_monthMenu.MenuItems.Count,
					new MenuItem(""));
				_monthMenu.MenuItems[_monthMenu.MenuItems.Count - 1].Click += new EventHandler(MonthContextMenu_Click);

			}

			Setup();
		}
Beispiel #9
0
		private void DrawButton(Graphics g, HeaderButtonState state, HeaderButtons button, Rectangle bounds)
		{
			NuGenControlState currentState = NuGenControlState.Normal;

			if (_calendar.Enabled)
			{
				if (state == HeaderButtonState.Hot)
					currentState = NuGenControlState.Hot;
				else if (state == HeaderButtonState.Inactive)
					currentState = NuGenControlState.Disabled;
				else if (state == HeaderButtonState.Pushed)
					currentState = NuGenControlState.Pressed;
			}
			else
				currentState = NuGenControlState.Disabled;

			NuGenPaintParams paintParams = new NuGenPaintParams(g);
			paintParams.Bounds = bounds;
			paintParams.State = currentState;

			this.Renderer.DrawBackground(paintParams);
			this.Renderer.DrawBorder(paintParams);

			Image buttonImage;

			switch (button)
			{
				case HeaderButtons.NextYear:
				{
					buttonImage = this.Renderer.GetNextYearImage();
					break;
				}
				case HeaderButtons.NextMonth:
				{
					buttonImage = this.Renderer.GetNextMonthImage();
					break;
				}
				case HeaderButtons.PreviousYear:
				{
					buttonImage = this.Renderer.GetPreviousYearImage();
					break;
				}
				default:
				{
					buttonImage = this.Renderer.GetPreviousMonthImage();
					break;
				}
			}

			Debug.Assert(buttonImage != null, "buttonImage != null");

			NuGenImagePaintParams imagePaintParams = new NuGenImagePaintParams(paintParams);
			imagePaintParams.Image = buttonImage;
			Size imageSize = buttonImage.Size;
			imagePaintParams.Bounds = new Rectangle(
				bounds.Left + (bounds.Width - imageSize.Width) / 2
				, bounds.Top + (bounds.Height - imageSize.Height) / 2
				, imageSize.Width
				, imageSize.Height
			);

			this.Renderer.DrawImage(imagePaintParams);	
		}
Beispiel #10
0
		internal void Draw(Graphics e)
		{
			StringFormat textFormat = new StringFormat();
			Brush textBrush = new SolidBrush(TextColor);
			Brush bgBrush = new SolidBrush(BackColor1);

			string minMonth;
			string maxMonth;
			string currentMonth;


			string month;
			textFormat.LineAlignment = StringAlignment.Center;
			textFormat.Alignment = _align;

			if (_gradientMode != NuGenGradientMode.None)
				_calendar.DrawGradient(e, _rect, BackColor1, BackColor2, _gradientMode);
			else
				e.FillRectangle(bgBrush, _rect);


			if (_monthSelector)
			{
				currentMonth = _calendar.Month.SelectedMonth.Year.ToString() + "-" + _calendar.Month.SelectedMonth.Month.ToString();

				minMonth = _calendar.MinDate.Year.ToString() + "-" + _calendar.MinDate.Month.ToString();
				maxMonth = _calendar.MaxDate.Year.ToString() + "-" + _calendar.MaxDate.Month.ToString();

				if ((minMonth == currentMonth) && (_prevBtnState != HeaderButtonState.Pushed))
					_prevBtnState = HeaderButtonState.Inactive;
				else if (_prevBtnState != HeaderButtonState.Pushed)
					_prevBtnState = HeaderButtonState.Normal;

				if ((maxMonth == currentMonth) && (_nextBtnState != HeaderButtonState.Pushed))
					_nextBtnState = HeaderButtonState.Inactive;
				else if (_nextBtnState != HeaderButtonState.Pushed)
					_nextBtnState = HeaderButtonState.Normal;

			}
			if (_yearSelector)
			{
				currentMonth = _calendar.Month.SelectedMonth.Year.ToString() + "-" + _calendar.Month.SelectedMonth.Month.ToString() + "-01";

				DateTime currentDate = DateTime.Parse(currentMonth);
				int days = DateTime.DaysInMonth(_calendar.MinDate.Year, _calendar.MinDate.Month);
				DateTime minDate = DateTime.Parse(_calendar.MinDate.Year.ToString() + "-" + _calendar.MinDate.Month.ToString() + "-" + days.ToString());
				days = DateTime.DaysInMonth(_calendar.MaxDate.Year, _calendar.MaxDate.Month);
				DateTime maxDate = DateTime.Parse(_calendar.MaxDate.Year.ToString() + "-" + _calendar.MaxDate.Month.ToString() + "-" + days.ToString());

				if ((DateTime.Compare(currentDate.AddYears(-1), minDate) < 0) && (_prevYearBtnState != HeaderButtonState.Pushed))
					_prevYearBtnState = HeaderButtonState.Inactive;
				else if (_prevYearBtnState != HeaderButtonState.Pushed)
					_prevYearBtnState = HeaderButtonState.Normal;

				if ((DateTime.Compare(currentDate.AddYears(1), maxDate) > 0) && (_nextYearBtnState != HeaderButtonState.Pushed))
					_nextYearBtnState = HeaderButtonState.Inactive;
				else if (_nextYearBtnState != HeaderButtonState.Pushed)
					_nextYearBtnState = HeaderButtonState.Normal;
			}


			if (_monthSelector)
			{

				DrawButton(e, _prevBtnState, HeaderButtons.PreviousMonth, _prevBtnRect);
				DrawButton(e, _nextBtnState, HeaderButtons.NextMonth, _nextBtnRect);
			}
			if (_yearSelector)
			{

				DrawButton(e, _prevYearBtnState, HeaderButtons.PreviousYear, _prevYearBtnRect);
				DrawButton(e, _nextYearBtnState, HeaderButtons.NextYear, _nextYearBtnRect);

			}

			month = _calendar._dateTimeFormat.GetMonthName(_calendar.Month.SelectedMonth.Month) + " " + _calendar.Month.SelectedMonth.Year.ToString();
			if (ShowMonth)
				e.DrawString(month, Font, textBrush, _textRect, textFormat);
			else
				e.DrawString(_text, Font, textBrush, _textRect, textFormat);

			textBrush.Dispose();
			bgBrush.Dispose();
		}
Beispiel #11
0
		internal void MouseMove(Point mouseLocation)
		{
			Region prevBtnRgn = new Region(_prevBtnRect);
			Region nextBtnRgn = new Region(_nextBtnRect);
			Region prevYearBtnRgn = new Region(_prevYearBtnRect);
			Region nextYearBtnRgn = new Region(_nextYearBtnRect);
			HeaderButtonState oldPrevMonthState = _prevBtnState;
			HeaderButtonState oldNextMonthState = _nextBtnState;
			HeaderButtonState oldPrevYearState = _prevYearBtnState;
			HeaderButtonState oldNextYearState = _nextYearBtnState;


			if (_monthSelector)
			{
				// If not within left scroll button, make sure its not pushed
				if (!prevBtnRgn.IsVisible(mouseLocation))
				{
					if (_prevBtnState != HeaderButtonState.Inactive)
						_prevBtnState = HeaderButtonState.Normal;
				}
				else if (_prevBtnState != HeaderButtonState.Inactive)
					_prevBtnState = HeaderButtonState.Hot;

				if (oldPrevMonthState != _prevBtnState)
					DrawButton(_calendar.CreateGraphics(), _prevBtnState, HeaderButtons.PreviousMonth, _prevBtnRect);
				// If not within right scroll button, make sure its not pushed
				if (!nextBtnRgn.IsVisible(mouseLocation))
				{
					if (_nextBtnState != HeaderButtonState.Inactive)
						_nextBtnState = HeaderButtonState.Normal;
				}
				else if (_nextBtnState != HeaderButtonState.Inactive)
					_nextBtnState = HeaderButtonState.Hot;

				if (oldNextMonthState != _nextBtnState)
					DrawButton(_calendar.CreateGraphics(), _nextBtnState, HeaderButtons.NextMonth, _nextBtnRect);
			}
			if (_yearSelector)
			{
				// If not within left scroll button, make sure its not pushed
				if (!prevYearBtnRgn.IsVisible(mouseLocation))
				{
					if (_prevYearBtnState != HeaderButtonState.Inactive)
						_prevYearBtnState = HeaderButtonState.Normal;
				}
				else if (_prevYearBtnState != HeaderButtonState.Inactive)
					_prevYearBtnState = HeaderButtonState.Hot;

				if (oldPrevYearState != _prevYearBtnState)
					DrawButton(_calendar.CreateGraphics(), _prevYearBtnState, HeaderButtons.PreviousYear, _prevYearBtnRect);


				// If not within right scroll button, make sure its not pushed
				if (!nextYearBtnRgn.IsVisible(mouseLocation))
				{
					if (_nextYearBtnState != HeaderButtonState.Inactive)
						_nextYearBtnState = HeaderButtonState.Normal;
				}
				else if (_nextYearBtnState != HeaderButtonState.Inactive)
					_nextYearBtnState = HeaderButtonState.Hot;

				if (oldNextYearState != _nextYearBtnState)
					DrawButton(_calendar.CreateGraphics(), _nextYearBtnState, HeaderButtons.NextYear, _nextYearBtnRect);

			}

			if (_region.IsVisible(mouseLocation))
				_calendar.ActiveRegion = NuGenCalendarRegion.Header;


			prevBtnRgn.Dispose();
			nextBtnRgn.Dispose();
			prevYearBtnRgn.Dispose();
			nextYearBtnRgn.Dispose();

		}
Beispiel #12
0
		internal void MouseUp()
		{
			// if mouse button is released no button should be pushed
			if (_prevBtnState != HeaderButtonState.Inactive)
				_prevBtnState = HeaderButtonState.Normal;
			if (_nextBtnState != HeaderButtonState.Inactive)
				_nextBtnState = HeaderButtonState.Normal;
			if (_prevYearBtnState != HeaderButtonState.Inactive)
				_prevYearBtnState = HeaderButtonState.Normal;
			if (_nextYearBtnState != HeaderButtonState.Inactive)
				_nextYearBtnState = HeaderButtonState.Normal;

			_calendar.Invalidate();
		}
Beispiel #13
0
		internal void MouseClick(Point mouseLocation, MouseButtons button, NuGenClickMode mode)
		{
			Region leftBtnRgn = new Region(_prevBtnRect);
			Region rightBtnRgn = new Region(_nextBtnRect);
			Region leftYearBtnRgn = new Region(_prevYearBtnRect);
			Region rightYearBtnRgn = new Region(_nextYearBtnRect);
			MouseButtons selectButton;

			if (SystemInformation.MouseButtonsSwapped)
				selectButton = MouseButtons.Right;
			else
				selectButton = MouseButtons.Left;

			bool btnClick = false;

			if (_region.IsVisible(mouseLocation))
			{
				if (button == selectButton)
				{
					if (_monthSelector)
					{
						if ((leftBtnRgn.IsVisible(mouseLocation)) && (_prevBtnState != HeaderButtonState.Inactive) &&
							(_prevBtnState != HeaderButtonState.Pushed))
						{
							_prevBtnState = HeaderButtonState.Pushed;
							if (this.PrevMonthButtonClick != null)
								this.PrevMonthButtonClick(this, new EventArgs());
							btnClick = true;
						}
						if ((rightBtnRgn.IsVisible(mouseLocation)) && (_nextBtnState != HeaderButtonState.Inactive) &&
							(_nextBtnState != HeaderButtonState.Pushed))
						{
							_nextBtnState = HeaderButtonState.Pushed;
							if (this.NextMonthButtonClick != null)
								this.NextMonthButtonClick(this, new EventArgs());
							btnClick = true;
						}
					}
					if (_yearSelector)
					{
						if ((leftYearBtnRgn.IsVisible(mouseLocation)) && (_prevYearBtnState != HeaderButtonState.Inactive) &&
							(_prevYearBtnState != HeaderButtonState.Pushed))
						{
							_prevYearBtnState = HeaderButtonState.Pushed;
							if (this.PrevYearButtonClick != null)
								this.PrevYearButtonClick(this, new EventArgs());
							btnClick = true;
						}
						if ((rightYearBtnRgn.IsVisible(mouseLocation)) && (_nextYearBtnState != HeaderButtonState.Inactive) &&
							(_nextYearBtnState != HeaderButtonState.Pushed))
						{
							_nextYearBtnState = HeaderButtonState.Pushed;
							if (this.NextYearButtonClick != null)
								this.NextYearButtonClick(this, new EventArgs());
							btnClick = true;
						}
					}
				}
				else
				{
					if (_contextMenu)
					{
						DisplayMonthContextMenu(mouseLocation);
					}
				}

				if (mode == NuGenClickMode.Single)
				{
					if ((this.Click != null) && (!btnClick))
						this.Click(this, new NuGenClickEventArgs(button));
				}
				else
				{
					if ((this.DoubleClick != null) && (!btnClick))
						this.DoubleClick(this, new NuGenClickEventArgs(button));
				}
			}

			leftBtnRgn.Dispose();
			rightBtnRgn.Dispose();
			leftYearBtnRgn.Dispose();
			rightYearBtnRgn.Dispose();
		}