Exemple #1
0
        void ICalendarOwner.CloseForm(CalendarForm form)
        {
            try
            {
                Controls.Remove(form);
            } finally {
                if (Controls.Count == 0)
                {
                    Close();
                }
            }

            int startPosition = CalendarStatics.Margin;

            foreach (Control control in Controls)
            {
                CalendarForm currentForm = control as CalendarForm;
                if (currentForm != null)
                {
                    currentForm.Location = new Point(startPosition, CalendarStatics.Margin);
                    startPosition       += CalendarStatics.ClientWidth + CalendarStatics.Gap;
                }
            }

            ClientSize = new Size(startPosition + CalendarStatics.Margin - CalendarStatics.Gap,
                                  CalendarStatics.ClientHeight + 2 * CalendarStatics.Margin);

            Invalidate();
        }
Exemple #2
0
        private bool IsCalendarExist(string calendarName)
        {
            foreach (Control control in Controls)
            {
                CalendarForm form = control as CalendarForm;
                if (form != null && form.IsSameCalendar(calendarName))
                {
                    return(true);
                }
            }

            return(false);
        }
Exemple #3
0
 void ICalendarOwner.Synchronize(DateTime startDate, DateTime endDate, int markedDay, CalendarForm sentBy)
 {
     foreach (Control control in Controls)
     {
         CalendarForm form = control as CalendarForm;
         if (form != null && form != sentBy)
         {
             if (!form.Synchronize(startDate, endDate, markedDay))
             {
                 return;
             }
         }
     }
 }
Exemple #4
0
 bool ICalendarOwner.GetSyncedDates(ref DateTime startDate, ref DateTime endDate, ref int markedDay, CalendarForm sentBy)
 {
     foreach (Control control in Controls)
     {
         CalendarForm form = control as CalendarForm;
         if (form != null && form != sentBy)
         {
             startDate = form.StartDate;
             endDate   = form.EndDate;
             markedDay = form.MarkedDay;
             return(true);
         }
     }
     return(false);
 }
Exemple #5
0
        public CalendarContainer(
            Calendar calendar,
            DateTimeFormatInfo dateFormatInfo,
            bool canBeOptionalCalendar) : base()
        {
            ShowInTaskbar   = false;
            FormBorderStyle = FormBorderStyle.None;
            ClientSize      = new Size(CalendarStatics.ClientWidth + 2 * CalendarStatics.Margin,
                                       CalendarStatics.ClientHeight + 2 * CalendarStatics.Margin);

            _contextMenu = new ContextMenu(CalendarStatics.GetCalendarMenu(new EventHandler(OnCalendarClick)));

            CalendarForm form = new CalendarForm(this as ICalendarOwner, calendar, dateFormatInfo, canBeOptionalCalendar);

            form.Location   = new Point(CalendarStatics.Margin, CalendarStatics.Margin);
            form.ClientSize = new Size(CalendarStatics.ClientWidth, CalendarStatics.ClientHeight);
            Controls.Add(form);
        }
Exemple #6
0
        private void ShowContextMenu(CalendarForm form, Point position)
        {
            bool moreToShow = false;

            foreach (MenuItem item in _contextMenu.MenuItems)
            {
                if (IsCalendarExist(item.Text))
                {
                    item.Enabled = false;
                }
                else
                {
                    item.Enabled = true;
                }

                moreToShow = moreToShow || item.Enabled;
            }

            if (moreToShow)
            {
                _contextMenu.Show(form, position);
            }
        }
Exemple #7
0
        private void OnCalendarClick(object sender, EventArgs e)
        {
            MenuItem item = sender as MenuItem;

            if (item == null)
            {
                return;
            }

            CalendarForm form = new CalendarForm(
                this as ICalendarOwner,
                CalendarStatics.CalendarsInfo[item.Index].Calendar,
                CalendarStatics.CalendarsInfo[item.Index].Format,
                CalendarStatics.CalendarsInfo[item.Index].IsCompatibleCalendar);

            form.ClientSize = new Size(CalendarStatics.ClientWidth, CalendarStatics.ClientHeight);

            int startPosition = CalendarStatics.Margin;

            foreach (Control control in Controls)
            {
                CalendarForm currentForm = control as CalendarForm;
                if (currentForm != null)
                {
                    startPosition += CalendarStatics.ClientWidth + CalendarStatics.Gap;
                }
            }

            ClientSize = new Size(startPosition + CalendarStatics.ClientWidth + CalendarStatics.Margin,
                                  CalendarStatics.ClientHeight + 2 * CalendarStatics.Margin);

            form.Location = new Point(startPosition, CalendarStatics.Margin);
            Controls.Add(form);

            Invalidate();
        }