Ejemplo n.º 1
0
        private void DrawButton(Graphics e, mcButtonState state,mcHeaderButtons button,Rectangle rect)
        {
            Bitmap image = null;
            int x = 0;
            int y = 0;
            int corr = 0;

            if (Application.RenderWithVisualStyles)
            {
                VisualStyleElement element = VisualStyleElement.Button.PushButton.Normal;

                if (m_calendar.Enabled)
                {
                    if (state == mcButtonState.Hot)
                        element = VisualStyleElement.Button.PushButton.Hot;
                    else if (state == mcButtonState.Inactive)
                        element = VisualStyleElement.Button.PushButton.Disabled;
                    else if (state == mcButtonState.Pushed)
                        element = VisualStyleElement.Button.PushButton.Pressed;
                }
                else element = VisualStyleElement.Button.PushButton.Disabled;

                VisualStyleRenderer renderer = new VisualStyleRenderer(element);
                renderer.DrawBackground(e, rect);
                switch (button)
                {
                    case mcHeaderButtons.PreviousMonth:
                    {
                        image = m_prevMonthVs;
                        x = rect.Left + 5;
                        y = rect.Top + 5;
                        break;
                    }
                    case mcHeaderButtons.PreviousYear:
                    {
                        image = m_prevYearVs;
                        x = rect.Left + 4;
                        y = rect.Top + 5;
                        break;
                    }
                    case mcHeaderButtons.NextMonth:
                    {
                        image = m_nextMonthVs;
                        x = rect.Right - 13;
                        y = rect.Top + 5;
                        break;
                    }
                    case mcHeaderButtons.NextYear:
                    {
                        image = m_nextYearVs;
                        x = rect.Right - 16; 
                        y = rect.Top + 5;
                        break;
                    }
                
                }
                
                if ((m_calendar.Enabled) && (state!=mcButtonState.Inactive))  
                    e.DrawImageUnscaled(image, new Point(x,y));
                else
                    ControlPaint.DrawImageDisabled(e, image, x, y, Color.Transparent);
                
            }
            else
            {
                ButtonState btnState = ButtonState.Normal;
                if (m_calendar.Enabled)
                {
                    if (state == mcButtonState.Hot)
                        btnState = ButtonState.Normal;
                    else if (state == mcButtonState.Inactive)
                        btnState = ButtonState.Inactive;
                    else if (state == mcButtonState.Pushed)
                        btnState = ButtonState.Pushed;
                }
                else btnState = ButtonState.Inactive;

                switch (button)
                {
                    case mcHeaderButtons.PreviousMonth:
                    {
                        ControlPaint.DrawScrollButton(e, rect, ScrollButton.Left, btnState);
                        break;
                    }
                    case mcHeaderButtons.NextMonth:
                    {
                        ControlPaint.DrawScrollButton(e, rect, ScrollButton.Right, btnState);
                        break;
                    }
                    case mcHeaderButtons.NextYear:
                    {

                        ControlPaint.DrawButton(e, rect, btnState);
                        if (state == mcButtonState.Pushed)
                            corr = 1;
                        if ((m_calendar.Enabled) && (m_nextYearBtnState != mcButtonState.Inactive))
                            e.DrawImage(m_nextYear, new Point(rect.Left + 3, rect.Top + 2 + corr));
                        else
                            e.DrawImage(m_nextYearDisabled, new Point(rect.Left + 3, rect.Top + 2 + corr));
                
                        break;
                    }
                    case mcHeaderButtons.PreviousYear:
                    {

                        ControlPaint.DrawButton(e, rect, btnState);
                        if (state == mcButtonState.Pushed)
                            corr = 1;
                        if ((m_calendar.Enabled) && (m_prevYearBtnState != mcButtonState.Inactive))
                            e.DrawImage(m_prevYear, new Point(rect.Left, rect.Top + 2 + corr));
                        else
                            e.DrawImage(m_prevYearDisabled, new Point(rect.Left, rect.Top + 2 + corr));  
                
                        break;
                    }
                }
                
            }
        }
Ejemplo n.º 2
0
		internal void MouseMove(Point mouseLocation)
		{
			Region prevBtnRgn = new Region(m_prevBtnRect);
			Region nextBtnRgn = new Region(m_nextBtnRect);
			Region prevYearBtnRgn = new Region(m_prevYearBtnRect);
			Region nextYearBtnRgn = new Region(m_nextYearBtnRect);
            mcButtonState oldPrevMonthState = m_prevBtnState;
            mcButtonState oldNextMonthState = m_nextBtnState;
            mcButtonState oldPrevYearState = m_prevYearBtnState;
            mcButtonState oldNextYearState = m_nextYearBtnState;


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

                if (oldPrevMonthState != m_prevBtnState)
                    DrawButton(m_calendar.CreateGraphics(),m_prevBtnState,mcHeaderButtons.PreviousMonth,m_prevBtnRect); 
                // If not within right scroll button, make sure its not pushed
                if (!nextBtnRgn.IsVisible(mouseLocation))
                {
                    if (m_nextBtnState != mcButtonState.Inactive) m_nextBtnState = mcButtonState.Normal;
                }
                else if (m_nextBtnState != mcButtonState.Inactive) 
                    m_nextBtnState = mcButtonState.Hot; 
			
                if (oldNextMonthState != m_nextBtnState)
                    DrawButton(m_calendar.CreateGraphics(), m_nextBtnState, mcHeaderButtons.NextMonth, m_nextBtnRect); 
            }
			if (m_yearSelector)
			{
				// If not within left scroll button, make sure its not pushed
                if (!prevYearBtnRgn.IsVisible(mouseLocation))
                {
                    if (m_prevYearBtnState != mcButtonState.Inactive) m_prevYearBtnState = mcButtonState.Normal;
                }
                else if (m_prevYearBtnState != mcButtonState.Inactive) 
                    m_prevYearBtnState = mcButtonState.Hot;

                if (oldPrevYearState != m_prevYearBtnState)
                    DrawButton(m_calendar.CreateGraphics(), m_prevYearBtnState, mcHeaderButtons.PreviousYear, m_prevYearBtnRect); 
          
						
				// If not within right scroll button, make sure its not pushed
                if (!nextYearBtnRgn.IsVisible(mouseLocation))
                {
                    if (m_nextYearBtnState != mcButtonState.Inactive) m_nextYearBtnState = mcButtonState.Normal;
                }
                else if (m_nextYearBtnState != mcButtonState.Inactive) 
                    m_nextYearBtnState = mcButtonState.Hot;

                if (oldNextYearState != m_nextYearBtnState)
                    DrawButton(m_calendar.CreateGraphics(), m_nextYearBtnState, mcHeaderButtons.NextYear, m_nextYearBtnRect); 
          
            }

			if (m_region.IsVisible(mouseLocation))
				m_calendar.ActiveRegion = mcCalendarRegion.Header;  
			
			
			prevBtnRgn.Dispose();
			nextBtnRgn.Dispose();
			prevYearBtnRgn.Dispose();
			nextYearBtnRgn.Dispose();

        }
Ejemplo n.º 3
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;
			switch (m_align)
			{
				case mcTextAlign.Center:
				{
					textFormat.Alignment = StringAlignment.Center;
					break;
				}
				case mcTextAlign.Left:
				{
					textFormat.Alignment = StringAlignment.Near;
					break;
				}
				case mcTextAlign.Right:
				{
					textFormat.Alignment = StringAlignment.Far;
					break;
				}
			}

            if (m_gradientMode != mcGradientMode.None)
                m_calendar.DrawGradient(e,m_rect, BackColor1,BackColor2, m_gradientMode);
            else
                e.FillRectangle(bgBrush,m_rect);			
            

			if (m_monthSelector)
			{
				currentMonth = m_calendar.Month.SelectedMonth.Year.ToString()+"-"+m_calendar.Month.SelectedMonth.Month.ToString();
								
				minMonth = m_calendar.MinDate.Year.ToString()+"-"+m_calendar.MinDate.Month.ToString();
				maxMonth = m_calendar.MaxDate.Year.ToString()+"-"+m_calendar.MaxDate.Month.ToString();
				
				if ((minMonth == currentMonth) && (m_prevBtnState != mcButtonState.Pushed))
					m_prevBtnState = mcButtonState.Inactive;
				else if (m_prevBtnState != mcButtonState.Pushed)
					m_prevBtnState = mcButtonState.Normal;

				if ((maxMonth == currentMonth) && (m_nextBtnState != mcButtonState.Pushed))
					m_nextBtnState = mcButtonState.Inactive;
				else if (m_nextBtnState != mcButtonState.Pushed)
					m_nextBtnState = mcButtonState.Normal;
							
			}
			if (m_yearSelector)
			{
				currentMonth = m_calendar.Month.SelectedMonth.Year.ToString()+"-"+m_calendar.Month.SelectedMonth.Month.ToString()+"-01";
				
				DateTime currentDate = DateTime.Parse(currentMonth);
				int days = DateTime.DaysInMonth(m_calendar.MinDate.Year,m_calendar.MinDate.Month); 
				DateTime minDate = DateTime.Parse(m_calendar.MinDate.Year.ToString()+"-"+m_calendar.MinDate.Month.ToString()+"-"+days.ToString());
				days = DateTime.DaysInMonth(m_calendar.MaxDate.Year,m_calendar.MaxDate.Month); 
				DateTime maxDate = DateTime.Parse(m_calendar.MaxDate.Year.ToString()+"-"+m_calendar.MaxDate.Month.ToString()+"-"+days.ToString());
				
				if ( (DateTime.Compare(currentDate.AddYears(-1),minDate)<0) && (m_prevYearBtnState != mcButtonState.Pushed))  
					m_prevYearBtnState = mcButtonState.Inactive;
				else if (m_prevYearBtnState != mcButtonState.Pushed)
					m_prevYearBtnState = mcButtonState.Normal;

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

			
			if (m_monthSelector)
			{

                DrawButton(e, m_prevBtnState, mcHeaderButtons.PreviousMonth, m_prevBtnRect);
                DrawButton(e, m_nextBtnState, mcHeaderButtons.NextMonth, m_nextBtnRect);   
            }
			if (m_yearSelector)
			{

                DrawButton(e, m_prevYearBtnState, mcHeaderButtons.PreviousYear, m_prevYearBtnRect);
                DrawButton(e, m_nextYearBtnState, mcHeaderButtons.NextYear, m_nextYearBtnRect);
     
            }
				
			month = m_calendar.m_dateTimeFormat.GetMonthName(m_calendar.Month.SelectedMonth.Month)+" "+m_calendar.Month.SelectedMonth.Year.ToString();  
			if (ShowMonth)
				e.DrawString(month,Font,textBrush,m_textRect,textFormat); 
			else
				e.DrawString(m_text,Font,textBrush,m_textRect,textFormat);
						
			textBrush.Dispose();
			bgBrush.Dispose();
		}
Ejemplo n.º 4
0
		internal void MouseClick(Point mouseLocation, MouseButtons button, mcClickMode mode)
		{
			Region leftBtnRgn = new Region(m_prevBtnRect);
			Region rightBtnRgn = new Region(m_nextBtnRect);
			Region leftYearBtnRgn = new Region(m_prevYearBtnRect);
			Region rightYearBtnRgn = new Region(m_nextYearBtnRect);
			MouseButtons selectButton;
			
			if (SystemInformation.MouseButtonsSwapped)
				selectButton = MouseButtons.Right;
			else
				selectButton = MouseButtons.Left;

			bool btnClick = false;
			
			if (m_region.IsVisible(mouseLocation))
			{
				if (button == selectButton)
				{
					if (m_monthSelector)
					{
						if ( (leftBtnRgn.IsVisible(mouseLocation)) &&  (m_prevBtnState!=mcButtonState.Inactive) &&
							(m_prevBtnState!=mcButtonState.Pushed) )
						{
							m_prevBtnState = mcButtonState.Pushed;
							if (this.PrevMonthButtonClick!=null)
								this.PrevMonthButtonClick(this,new EventArgs());			
							btnClick = true;
						}
						if ( (rightBtnRgn.IsVisible(mouseLocation)) && (m_nextBtnState!=mcButtonState.Inactive) &&
							(m_nextBtnState!=mcButtonState.Pushed) )
						{
							m_nextBtnState = mcButtonState.Pushed;
							if (this.NextMonthButtonClick!=null)
								this.NextMonthButtonClick(this,new EventArgs());
							btnClick = true;
						}
					}
					if (m_yearSelector)
					{
						if ( (leftYearBtnRgn.IsVisible(mouseLocation)) &&  (m_prevYearBtnState!=mcButtonState.Inactive) &&
							(m_prevYearBtnState!=mcButtonState.Pushed) )
						{
							m_prevYearBtnState = mcButtonState.Pushed;
							if (this.PrevYearButtonClick!=null)
								this.PrevYearButtonClick(this,new EventArgs());			
							btnClick = true;
						}
						if ( (rightYearBtnRgn.IsVisible(mouseLocation)) && (m_nextYearBtnState!=mcButtonState.Inactive) &&
							(m_nextYearBtnState!=mcButtonState.Pushed) )
						{
							m_nextYearBtnState = mcButtonState.Pushed;
							if (this.NextYearButtonClick!=null)
								this.NextYearButtonClick(this,new EventArgs());
							btnClick = true;
						}
					}
				}
				else
				{
					if (m_contextMenu)
					{
						DisplayMonthContextMenu(mouseLocation);
					}
				}
				
				if (mode == mcClickMode.Single)
				{
					if ((this.Click!=null) && (!btnClick))
						this.Click(this,new ClickEventArgs(button));
				}
				else
				{
					if ((this.DoubleClick!=null) && (!btnClick))
						this.DoubleClick(this,new ClickEventArgs(button));	
				}
			}
			
			leftBtnRgn.Dispose();
			rightBtnRgn.Dispose();
			leftYearBtnRgn.Dispose();
			rightYearBtnRgn.Dispose();
		}
Ejemplo n.º 5
0
		internal void MouseUp()
		{
			// if mouse button is released no button should be pushed
			if (m_prevBtnState!=mcButtonState.Inactive) m_prevBtnState = mcButtonState.Normal;
			if (m_nextBtnState!=mcButtonState.Inactive) m_nextBtnState = mcButtonState.Normal;
			if (m_prevYearBtnState!=mcButtonState.Inactive) m_prevYearBtnState = mcButtonState.Normal;
			if (m_nextYearBtnState!=mcButtonState.Inactive) m_nextYearBtnState = mcButtonState.Normal;
			
			m_calendar.Invalidate();	
		}
Ejemplo n.º 6
0
		public Header(MonthCalendar calendar)
		{
			m_calendar = calendar;
			m_backColor1 = Color.FromArgb(0,84,227);
            m_backColor2 = Color.White;
            m_gradientMode = mcGradientMode.None;  
            m_textColor = Color.White;
			m_font = new Font("Microsoft Sans Serif",(float)8.25,FontStyle.Bold);
			m_showMonth = true;
			m_monthSelector = true;
			m_text = "";
            m_contextMenu = true;
			m_align = mcTextAlign.Center; 
			m_prevBtnState = mcButtonState.Normal;
			m_nextBtnState = mcButtonState.Normal;
			m_prevYearBtnState = mcButtonState.Normal;
			m_nextYearBtnState = mcButtonState.Normal;
			
			// load images
			m_prevYear = GetEmbeddedImage("prev_year.bmp");
			m_prevYear.MakeTransparent(); 
			m_prevYearDisabled = GetEmbeddedImage("prev_year_disabled.bmp");
			m_prevYearDisabled.MakeTransparent(); 
			m_nextYear = GetEmbeddedImage("prev_year.bmp");
            m_nextYear.RotateFlip(RotateFlipType.RotateNoneFlipX);
            m_nextYear.MakeTransparent(); 
			m_nextYearDisabled = GetEmbeddedImage("prev_year_disabled.bmp");
            m_nextYearDisabled.RotateFlip(RotateFlipType.RotateNoneFlipX);
            m_nextYearDisabled.MakeTransparent();
            m_prevMonthVs = GetEmbeddedImage("prev_month_vs.bmp");
            m_prevMonthVs.MakeTransparent();
            m_prevYearVs = GetEmbeddedImage("prev_year_vs.bmp");
            m_prevYearVs.MakeTransparent();
            m_nextMonthVs = GetEmbeddedImage("prev_month_vs.bmp");
            m_nextMonthVs.MakeTransparent(); 
            m_nextMonthVs.RotateFlip(RotateFlipType.RotateNoneFlipX);
            m_nextYearVs = GetEmbeddedImage("prev_year_vs.bmp");
            m_nextYearVs.MakeTransparent(); 
            m_nextYearVs.RotateFlip(RotateFlipType.RotateNoneFlipX);
          
			// 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();
	
		}
Ejemplo n.º 7
0
        internal void MouseClick(Point mouseLocation, MouseButtons button, mcClickMode mode)
        {
            Region       leftBtnRgn      = new Region(m_prevBtnRect);
            Region       rightBtnRgn     = new Region(m_nextBtnRect);
            Region       leftYearBtnRgn  = new Region(m_prevYearBtnRect);
            Region       rightYearBtnRgn = new Region(m_nextYearBtnRect);
            MouseButtons selectButton;

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

            bool btnClick = false;

            if (m_region.IsVisible(mouseLocation))
            {
                if (button == selectButton)
                {
                    if (m_monthSelector)
                    {
                        if ((leftBtnRgn.IsVisible(mouseLocation)) && (m_prevBtnState != mcButtonState.Inactive) &&
                            (m_prevBtnState != mcButtonState.Pushed))
                        {
                            m_prevBtnState = mcButtonState.Pushed;
                            if (this.PrevMonthButtonClick != null)
                            {
                                this.PrevMonthButtonClick(this, new EventArgs());
                            }
                            btnClick = true;
                        }
                        if ((rightBtnRgn.IsVisible(mouseLocation)) && (m_nextBtnState != mcButtonState.Inactive) &&
                            (m_nextBtnState != mcButtonState.Pushed))
                        {
                            m_nextBtnState = mcButtonState.Pushed;
                            if (this.NextMonthButtonClick != null)
                            {
                                this.NextMonthButtonClick(this, new EventArgs());
                            }
                            btnClick = true;
                        }
                    }
                    if (m_yearSelector)
                    {
                        if ((leftYearBtnRgn.IsVisible(mouseLocation)) && (m_prevYearBtnState != mcButtonState.Inactive) &&
                            (m_prevYearBtnState != mcButtonState.Pushed))
                        {
                            m_prevYearBtnState = mcButtonState.Pushed;
                            if (this.PrevYearButtonClick != null)
                            {
                                this.PrevYearButtonClick(this, new EventArgs());
                            }
                            btnClick = true;
                        }
                        if ((rightYearBtnRgn.IsVisible(mouseLocation)) && (m_nextYearBtnState != mcButtonState.Inactive) &&
                            (m_nextYearBtnState != mcButtonState.Pushed))
                        {
                            m_nextYearBtnState = mcButtonState.Pushed;
                            if (this.NextYearButtonClick != null)
                            {
                                this.NextYearButtonClick(this, new EventArgs());
                            }
                            btnClick = true;
                        }
                    }
                }
                else
                {
                    if (m_contextMenu)
                    {
                        DisplayMonthContextMenu(mouseLocation);
                    }
                }

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

            leftBtnRgn.Dispose();
            rightBtnRgn.Dispose();
            leftYearBtnRgn.Dispose();
            rightYearBtnRgn.Dispose();
        }
Ejemplo n.º 8
0
        private void DrawButton(Graphics e, mcButtonState state, mcHeaderButtons button, Rectangle rect)
        {
            Bitmap image = null;
            int    x     = 0;
            int    y     = 0;
            int    corr  = 0;

            if (Application.RenderWithVisualStyles)
            {
                VisualStyleElement element = VisualStyleElement.Button.PushButton.Normal;

                if (m_calendar.Enabled)
                {
                    if (state == mcButtonState.Hot)
                    {
                        element = VisualStyleElement.Button.PushButton.Hot;
                    }
                    else if (state == mcButtonState.Inactive)
                    {
                        element = VisualStyleElement.Button.PushButton.Disabled;
                    }
                    else if (state == mcButtonState.Pushed)
                    {
                        element = VisualStyleElement.Button.PushButton.Pressed;
                    }
                }
                else
                {
                    element = VisualStyleElement.Button.PushButton.Disabled;
                }

                VisualStyleRenderer renderer = new VisualStyleRenderer(element);
                renderer.DrawBackground(e, rect);
                switch (button)
                {
                case mcHeaderButtons.PreviousMonth:
                {
                    image = m_prevMonthVs;
                    x     = rect.Left + 5;
                    y     = rect.Top + 5;
                    break;
                }

                case mcHeaderButtons.PreviousYear:
                {
                    image = m_prevYearVs;
                    x     = rect.Left + 4;
                    y     = rect.Top + 5;
                    break;
                }

                case mcHeaderButtons.NextMonth:
                {
                    image = m_nextMonthVs;
                    x     = rect.Right - 13;
                    y     = rect.Top + 5;
                    break;
                }

                case mcHeaderButtons.NextYear:
                {
                    image = m_nextYearVs;
                    x     = rect.Right - 16;
                    y     = rect.Top + 5;
                    break;
                }
                }

                if ((m_calendar.Enabled) && (state != mcButtonState.Inactive))
                {
                    e.DrawImageUnscaled(image, new Point(x, y));
                }
                else
                {
                    ControlPaint.DrawImageDisabled(e, image, x, y, Color.Transparent);
                }
            }
            else
            {
                ButtonState btnState = ButtonState.Normal;
                if (m_calendar.Enabled)
                {
                    if (state == mcButtonState.Hot)
                    {
                        btnState = ButtonState.Normal;
                    }
                    else if (state == mcButtonState.Inactive)
                    {
                        btnState = ButtonState.Inactive;
                    }
                    else if (state == mcButtonState.Pushed)
                    {
                        btnState = ButtonState.Pushed;
                    }
                }
                else
                {
                    btnState = ButtonState.Inactive;
                }

                switch (button)
                {
                case mcHeaderButtons.PreviousMonth:
                {
                    ControlPaint.DrawScrollButton(e, rect, ScrollButton.Left, btnState);
                    break;
                }

                case mcHeaderButtons.NextMonth:
                {
                    ControlPaint.DrawScrollButton(e, rect, ScrollButton.Right, btnState);
                    break;
                }

                case mcHeaderButtons.NextYear:
                {
                    ControlPaint.DrawButton(e, rect, btnState);
                    if (state == mcButtonState.Pushed)
                    {
                        corr = 1;
                    }
                    if ((m_calendar.Enabled) && (m_nextYearBtnState != mcButtonState.Inactive))
                    {
                        e.DrawImage(m_nextYear, new Point(rect.Left + 3, rect.Top + 2 + corr));
                    }
                    else
                    {
                        e.DrawImage(m_nextYearDisabled, new Point(rect.Left + 3, rect.Top + 2 + corr));
                    }

                    break;
                }

                case mcHeaderButtons.PreviousYear:
                {
                    ControlPaint.DrawButton(e, rect, btnState);
                    if (state == mcButtonState.Pushed)
                    {
                        corr = 1;
                    }
                    if ((m_calendar.Enabled) && (m_prevYearBtnState != mcButtonState.Inactive))
                    {
                        e.DrawImage(m_prevYear, new Point(rect.Left, rect.Top + 2 + corr));
                    }
                    else
                    {
                        e.DrawImage(m_prevYearDisabled, new Point(rect.Left, rect.Top + 2 + corr));
                    }

                    break;
                }
                }
            }
        }
Ejemplo n.º 9
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;
            switch (m_align)
            {
            case mcTextAlign.Center:
            {
                textFormat.Alignment = StringAlignment.Center;
                break;
            }

            case mcTextAlign.Left:
            {
                textFormat.Alignment = StringAlignment.Near;
                break;
            }

            case mcTextAlign.Right:
            {
                textFormat.Alignment = StringAlignment.Far;
                break;
            }
            }

            if (m_gradientMode != mcGradientMode.None)
            {
                m_calendar.DrawGradient(e, m_rect, BackColor1, BackColor2, m_gradientMode);
            }
            else
            {
                e.FillRectangle(bgBrush, m_rect);
            }


            if (m_monthSelector)
            {
                currentMonth = m_calendar.Month.SelectedMonth.Year.ToString() + "-" + m_calendar.Month.SelectedMonth.Month.ToString();

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

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

                if ((maxMonth == currentMonth) && (m_nextBtnState != mcButtonState.Pushed))
                {
                    m_nextBtnState = mcButtonState.Inactive;
                }
                else if (m_nextBtnState != mcButtonState.Pushed)
                {
                    m_nextBtnState = mcButtonState.Normal;
                }
            }
            if (m_yearSelector)
            {
                currentMonth = m_calendar.Month.SelectedMonth.Year.ToString() + "-" + m_calendar.Month.SelectedMonth.Month.ToString() + "-01";

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

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

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


            if (m_monthSelector)
            {
                DrawButton(e, m_prevBtnState, mcHeaderButtons.PreviousMonth, m_prevBtnRect);
                DrawButton(e, m_nextBtnState, mcHeaderButtons.NextMonth, m_nextBtnRect);
            }
            if (m_yearSelector)
            {
                DrawButton(e, m_prevYearBtnState, mcHeaderButtons.PreviousYear, m_prevYearBtnRect);
                DrawButton(e, m_nextYearBtnState, mcHeaderButtons.NextYear, m_nextYearBtnRect);
            }

            month = m_calendar.m_dateTimeFormat.GetMonthName(m_calendar.Month.SelectedMonth.Month) + " " + m_calendar.Month.SelectedMonth.Year.ToString();
            if (ShowMonth)
            {
                e.DrawString(month, Font, textBrush, m_textRect, textFormat);
            }
            else
            {
                e.DrawString(m_text, Font, textBrush, m_textRect, textFormat);
            }

            textBrush.Dispose();
            bgBrush.Dispose();
        }
Ejemplo n.º 10
0
        internal void MouseMove(Point mouseLocation)
        {
            Region        prevBtnRgn        = new Region(m_prevBtnRect);
            Region        nextBtnRgn        = new Region(m_nextBtnRect);
            Region        prevYearBtnRgn    = new Region(m_prevYearBtnRect);
            Region        nextYearBtnRgn    = new Region(m_nextYearBtnRect);
            mcButtonState oldPrevMonthState = m_prevBtnState;
            mcButtonState oldNextMonthState = m_nextBtnState;
            mcButtonState oldPrevYearState  = m_prevYearBtnState;
            mcButtonState oldNextYearState  = m_nextYearBtnState;


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

                if (oldPrevMonthState != m_prevBtnState)
                {
                    DrawButton(m_calendar.CreateGraphics(), m_prevBtnState, mcHeaderButtons.PreviousMonth, m_prevBtnRect);
                }
                // If not within right scroll button, make sure its not pushed
                if (!nextBtnRgn.IsVisible(mouseLocation))
                {
                    if (m_nextBtnState != mcButtonState.Inactive)
                    {
                        m_nextBtnState = mcButtonState.Normal;
                    }
                }
                else if (m_nextBtnState != mcButtonState.Inactive)
                {
                    m_nextBtnState = mcButtonState.Hot;
                }

                if (oldNextMonthState != m_nextBtnState)
                {
                    DrawButton(m_calendar.CreateGraphics(), m_nextBtnState, mcHeaderButtons.NextMonth, m_nextBtnRect);
                }
            }
            if (m_yearSelector)
            {
                // If not within left scroll button, make sure its not pushed
                if (!prevYearBtnRgn.IsVisible(mouseLocation))
                {
                    if (m_prevYearBtnState != mcButtonState.Inactive)
                    {
                        m_prevYearBtnState = mcButtonState.Normal;
                    }
                }
                else if (m_prevYearBtnState != mcButtonState.Inactive)
                {
                    m_prevYearBtnState = mcButtonState.Hot;
                }

                if (oldPrevYearState != m_prevYearBtnState)
                {
                    DrawButton(m_calendar.CreateGraphics(), m_prevYearBtnState, mcHeaderButtons.PreviousYear, m_prevYearBtnRect);
                }


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

                if (oldNextYearState != m_nextYearBtnState)
                {
                    DrawButton(m_calendar.CreateGraphics(), m_nextYearBtnState, mcHeaderButtons.NextYear, m_nextYearBtnRect);
                }
            }

            if (m_region.IsVisible(mouseLocation))
            {
                m_calendar.ActiveRegion = mcCalendarRegion.Header;
            }


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