示例#1
0
        protected void SetFocusOnPrevControl()
        {
            ResetFocusedRectangleState();

            if (m_iLastFocused < DEF_TODAY_TAB_INDEX && m_bDropDownTab == true)
            {
                m_iLastFocused = DEF_NONE_TAB_INDEX;
            }
            else if (m_iLastFocused == DEF_TODAY_TAB_INDEX && m_iDay != 0)
            {
                m_iLastFocused = m_iDay;

                ActRect rc = FindActiveRectByTag(m_iDay);
                if (rc != null)
                {
                    rc.State |= TRectangleStatus.Focused | TRectangleStatus.Selected;
                }
            }
            else if (m_iLastFocused == DEF_NONE_TAB_INDEX)
            {
                m_iLastFocused = DEF_TODAY_TAB_INDEX;
            }
            else
            {
                Control ctrl = this.FindForm().GetNextControl(this, false);
                if (ctrl != null)
                {
                    ctrl.Focus();
                }
            }

            Invalidate();
        }
示例#2
0
        protected override void OnClick(System.EventArgs e)
        {
            this.Focus();

            Point pnt = MousePosition;

            pnt = PointToClient(pnt);

            ActRect rect = FindActiveRectByPoint(pnt);

            if (rect != null && rect.Action != TRectangleAction.WeekDay)
            {
                ResetActiveRectanglesState();
                ResetFocusedRectangleState();

                // if selection begin
                if ((ModifierKeys & (Keys.Control | Keys.Shift)) == 0)
                {
                    ResetSelectedRectangleState();
                    OnRectangleClick(rect);
                }
                else
                {
                    OnSelectionClick(rect);
                }
            }

            base.OnClick(e);
        }
示例#3
0
        protected override void OnDoubleClick(System.EventArgs e)
        {
            this.Focus();

            Point pnt = MousePosition;

            pnt = PointToClient(pnt);

            ActRect rect = FindActiveRectByPoint(pnt);

            if (rect != null && rect.Action != TRectangleAction.WeekDay)
            {
                ResetActiveRectanglesState();
                ResetSelectedRectangleState();
                ResetFocusedRectangleState();

                OnRectangleClick(rect);
            }

            // send double click event to user only when on day double click catched
            if (rect != null && rect.Action == TRectangleAction.MonthDay)
            {
                base.OnDoubleClick(e);
            }
        }
示例#4
0
        protected void OnSelectedCollectionChanged()
        {
            foreach (DateTime date in m_collSelected)
            {
                if (date.Month == m_dtSelected.Month && date.Year == m_dtSelected.Year)
                {
                    ActRect rect = FindActiveRectByTag(date.Day);

                    if (rect != null)
                    {
                        rect.State |= TRectangleStatus.Selected;
                    }
                }
            }
        }
示例#5
0
        protected override void OnMouseMove(System.Windows.Forms.MouseEventArgs e)
        {
            Point pnt = MousePosition;

            pnt = PointToClient(pnt);

            ResetActiveRectanglesState();

            ActRect rect = FindActiveRectByPoint(pnt);

            if (rect != null && rect.Action != TRectangleAction.WeekDay)
            {
                rect.State |= TRectangleStatus.Active;
            }
        }
示例#6
0
        protected virtual void OnValueChanged(DateTime value)
        {
            ResetAllRectangleStates();

            if (value == DateTime.MinValue)
            {
                m_iDay       = 0;
                m_dtSelected = value;
                Invalidate();
                return;
            }

            bool bRecreate = (m_dtSelected.Month != value.Month || m_dtSelected.Year != value.Year);

            if (m_bRectsCreated == true && bRecreate == true)
            {
                m_bRectsCreated = false;
            }

            m_dtSelected = value;
            m_iYear      = m_dtSelected.Year;
            m_iMonth     = m_dtSelected.Month;
            m_iDay       = m_dtSelected.Day;

            if (bRecreate == true)
            {
                Invalidate();
                Update();
            }

            ActRect rect = FindActiveRectByTag(m_iDay);

            if (m_iLastFocused < DEF_TODAY_TAB_INDEX)
            {
                m_iLastFocused = m_iDay;
            }
            if (rect != null)
            {
                rect.State |= TRectangleStatus.FocusSelect;
            }

            Invalidate();
            Update();
        }
示例#7
0
        protected void OnSelectionClick(ActRect rc)
        {
            if (rc.Action == TRectangleAction.WeekDay)
            {
            }
            else if (rc.Action == TRectangleAction.MonthDay)
            {
                if (rc.IsSelected == false)
                {
                    rc.State |= TRectangleStatus.Selected;
                }
                else
                {
                    rc.State = (TRectangleStatus)((int)rc.State & ~(int)TRectangleStatus.Selected);
                }

                m_iLastFocused = (int)rc.Tag;
            }
        }
示例#8
0
        protected void OnEnterPressed()
        {
            ResetSelectedRectangleState();

            ActRect rect = FindActiveRectByTag(m_iLastFocused);

            if (rect != null)
            {
                switch (rect.Action)
                {
                case TRectangleAction.TodayBtn:
                    SetTodayDay();
                    break;

                case TRectangleAction.NoneBtn:
                    SetNoneDay();
                    break;
                }
            }
        }
示例#9
0
        protected override void OnDoubleClick(System.EventArgs e)
        {
            this.Focus();

            Point pnt = MousePosition;

            pnt = PointToClient(pnt);

            ActRect rect = FindActiveRectByPoint(pnt);

            if (rect != null && rect.Action != TRectangleAction.WeekDay)
            {
                ResetActiveRectanglesState();
                ResetSelectedRectangleState();
                ResetFocusedRectangleState();

                OnRectangleClick(rect);
            }

            base.OnDoubleClick(e);
        }
示例#10
0
        protected void OnRectangleClick(ActRect rc)
        {
            switch (rc.Action)
            {
            case TRectangleAction.MonthDown:  ToPrevMonth(); break;

            case TRectangleAction.MonthUp:    ToNextMonth(); break;

            case TRectangleAction.YearDown:   ToPrevYear();  break;

            case TRectangleAction.YearUp:     ToNextYear();  break;

            case TRectangleAction.TodayBtn:   SetTodayDay(); break;

            case TRectangleAction.NoneBtn:    SetNoneDay();  break;

            case TRectangleAction.MonthDay:
                if (m_iDay == 0)
                {
                    return;
                }
                int      index   = (int)rc.Tag;
                DateTime newDate = new DateTime(m_iYear, m_iMonth, m_iDay, 0, 0, 0);

                if (index < 0 && index > -10)
                {
                    newDate = m_dtSelected.AddMonths(1);
                    index   = -index;
                }
                else if (index < 0 && index < -20)
                {
                    newDate = m_dtSelected.AddMonths(-1);
                    index   = -index;
                }

                Value = new DateTime(newDate.Year, newDate.Month, index, 0, 0, 0);
                break;
            }
        }
        protected void OnSelectionClick( ActRect rc )
        {
            if( rc.Action == TRectangleAction.WeekDay )
              {

              }
              else if( rc.Action == TRectangleAction.MonthDay )
              {
            if( rc.IsSelected == false )
              rc.State |= TRectangleStatus.Selected;
            else
              rc.State = (TRectangleStatus)((int)rc.State & ~(int)TRectangleStatus.Selected);

            m_iLastFocused = (int)rc.Tag;
              }
        }
        protected void OnRectangleClick( ActRect rc )
        {
            switch( rc.Action )
              {
            case TRectangleAction.MonthDown:  ToPrevMonth(); break;
            case TRectangleAction.MonthUp:    ToNextMonth(); break;
            case TRectangleAction.YearDown:   ToPrevYear();  break;
            case TRectangleAction.YearUp:     ToNextYear();  break;
            case TRectangleAction.TodayBtn:   SetTodayDay(); break;
            case TRectangleAction.NoneBtn:    SetNoneDay();  break;

            case TRectangleAction.MonthDay:
              if( m_iDay == 0 ) return;
              int index = (int)rc.Tag;
              DateTime newDate = new DateTime( m_iYear, m_iMonth, m_iDay, 0, 0, 0 );

              if( index < 0 && index > -10 )
              {
            newDate = m_dtSelected.AddMonths(1);
            index = -index;
              }
              else if( index < 0 && index < -20 )
              {
            newDate = m_dtSelected.AddMonths(-1);
            index = -index;
              }

              Value = new DateTime( newDate.Year, newDate.Month, index, 0, 0, 0 );
              break;
              }
        }
示例#13
0
        private void OnSelectionClick(ActRect rc)
        {
            if (rc.Action == FocusedPart.MonthDay)
            {
                if (rc.IsSelected == false)
                {
                    rc.State |= TRectangleStatus.Selected;

                    SelectedDateTime = new DateTime(ViewYear, ViewMonth, (int)rc.Tag, 0, 0, 0, DefaultCalendar);
                    if (!IsNull && !SelectedDateRange.Contains(SelectedDateTime.Value))
                    {
                        SelectedDateRange.Add(SelectedDateTime.Value);

                        if (!selectedRects.Contains(rc.Tag))
                            selectedRects.Add(rc.Tag);
                    }
                }
                else
                {
                    rc.State = (TRectangleStatus)((int)rc.State & ~(int)TRectangleStatus.Selected);
                    selectedRects.Remove(rc.Tag);
                }

                iLastFocused = (int)rc.Tag;
            }

            Invalidate();
        }
示例#14
0
        private void OnRectangleClick(ActRect rc)
        {
            if (!Enabled)
                return;

            switch (rc.Action)
            {
                case FocusedPart.Hidden:
                    break;
                case FocusedPart.MonthPrev:
                    ToPrevMonth();
                    break;
                case FocusedPart.MonthNext:
                    ToNextMonth();
                    break;
                case FocusedPart.YearPrev:
                    ToPrevYear();
                    break;
                case FocusedPart.YearNext:
                    ToNextYear();
                    break;
                case FocusedPart.TodayButton:
                    iLastFocused = DEF_TODAY_TAB_INDEX;
                    SetTodayDay();
                    OnButtonClicked(new CalendarButtonClickedEventArgs(FAMonthViewButtons.Today) { Rect = rc });
                    break;
                case FocusedPart.NoneButton:
                    iLastFocused = DEF_NONE_TAB_INDEX;
                    SetNoneDay();
                    OnButtonClicked(new CalendarButtonClickedEventArgs(FAMonthViewButtons.None) { Rect = rc });
                    break;
                case FocusedPart.MonthDay:
                    if (SelectedDay == 0) return;

                    var index = (int)rc.Tag;
                    iLastFocused = index;

                    SelectedDateTime = new DateTime(ViewYear, ViewMonth, index, 0, 0, 0, DefaultCalendar);

                    if (IsMultiSelect)
                    {
                        if (!IsNull && !SelectedDateRange.Contains(SelectedDateTime.Value))
                        {
                            SelectedDateRange.Add(SelectedDateTime.Value);
                            if (!selectedRects.Contains(rc.Tag))
                                selectedRects.Add(rc.Tag);
                        }
                    }

                    OnButtonClicked(new CalendarButtonClickedEventArgs(FAMonthViewButtons.MonthDay) { Rect = rc });
                    break;
            }

            Invalidate();
        }