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(); }
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); }
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; } } } }
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); }
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); }
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); } }
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(); }