public override void ShowDay(CalendarModel.Day day) { numberLabel = new Label(); View.SetDoubleBuffered(numberLabel); numberLabel.Anchor = AnchorStyles.None; numberLabel.Text = day.Number.ToString(); }
public override void SelectDay(CalendarModel.Day day) { if (selectedDay != null) { selectedDay.LabelTitle.ForeColor = Color.Black; } base.SelectDay(day); selectedDay.LabelTitle.ForeColor = selectedDayColor; }
public override void ShowDays(CalendarModel.Day _selectedDay) { if (_selectedDay == null) { _selectedDay = selectedDay; } title.Text = $"{(model as WeekModel).Days[6].WeekOfYear.ToString()}. week of {(model as WeekModel).Days[6].Year}"; View.SetDoubleBuffered(panel); if (headerPanel.Controls.Count >= 7) { for (int i = 0; i < 7; i++) { headerPanel.Controls.RemoveAt(0); } } for (int i = 0; i < (model as WeekModel).Days.Length; i++) { Label label = new Label(); label.Dock = DockStyle.Fill; label.TextAlign = ContentAlignment.MiddleLeft; label.Text = $"{(model as WeekModel).Days[i].DayOfWeek}\n{(model as WeekModel).Days[i].Number}.{(model as WeekModel).Days[i].Month}"; label.Font = new Font("Arial", 10, FontStyle.Bold); label.Tag = (model as WeekModel).Days[i]; (model as WeekModel).Days[i].LabelTitle = label; label.MouseClick += new MouseEventHandler(day_MouseClick); headerPanel.Controls.Add(label, i + 1, 0); if ((model as WeekModel).Days[i].DateEquals(_selectedDay)) { this.SelectDay((model as WeekModel).Days[i]); } } while (panel.Controls.Count > 0) { panel.Controls.RemoveAt(0); } panel.Controls.Add(hoursPictureBox, 0, 0); for (int i = 0; i < (model as WeekModel).Days.Length; i++) { panel.Controls.Add((model as WeekModel).Days[i].PictureBox, i + 1, 0); this.ShowDay((model as WeekModel).Days[i]); } panel.AutoScrollPosition = new Point(0, 8 * cellHeight); }
public override void ShowDay(CalendarModel.Day day) { Bitmap bitmap = new Bitmap(day.PictureBox.Width, day.PictureBox.Height); using (Graphics g = Graphics.FromImage(bitmap)) { for (int i = 1; i < 24; i++) { g.DrawLine(Pens.DarkGray, new Point(0, i * cellHeight), new Point(bitmap.Width, i * cellHeight)); } } day.PictureBox.BackgroundImage = bitmap; day.PictureBox.BackColor = Color.Transparent; day.PictureBox.MouseClick += new MouseEventHandler(day_MouseClick); day.PictureBox.Image = new Bitmap(day.PictureBox.Width, day.PictureBox.Height); using (Graphics g = Graphics.FromImage(day.PictureBox.Image)) { int cornerX = 0; for (int i = 0; i < day.Events.Count; i++) { Event e = day.Events[i]; int j = i + 1; while (j < day.Events.Count && (day.Events[j].Start.Hour < e.End.Hour || (day.Events[j].Start.Hour == e.End.Hour && day.Events[j].Start.Minute < e.End.Minute))) { j++; } int width = (day.PictureBox.Width - cornerX - 1) / (j - i); Color eventColor = DataModel.IsEventAccepted(e.Id) ? e.Type.Color.Color : notAcceptedEventColor; Color lighterEventColor = ControlPaint.Light(ControlPaint.LightLight(eventColor)); Point corner = new Point(cornerX, cellHeight * e.Start.Hour + (e.Start.Minute / 60) * cellHeight); int height = (int)(((e.End.Hour - e.Start.Hour) * 60 + e.End.Minute - e.Start.Minute) * cellHeight / 60); g.FillRectangle(new SolidBrush(lighterEventColor), new Rectangle(new Point(corner.X, corner.Y), new Size(width, height))); TextRenderer.DrawText(g, e.Name, new Font("Arial", 10, FontStyle.Bold), new Rectangle(new Point(corner.X + 3, corner.Y + 3), new Size(width, height)), Color.Gray, lighterEventColor, TextFormatFlags.WordBreak | TextFormatFlags.WordEllipsis | TextFormatFlags.Top | TextFormatFlags.Left); g.DrawRectangle(new Pen(eventColor, 1), new Rectangle(corner, new Size(width, height))); if (j - i == 1) { cornerX = 0; } else { cornerX += width + 1; } } } }
public override void ShowDay(CalendarModel.Day day) { day.PictureBox.MouseClick += new MouseEventHandler(pictureBox_MouseClick); day.PictureBox.Paint += new PaintEventHandler(pictureBox_Paint); day.PictureBox.Image = new Bitmap(day.PictureBox.Width, day.PictureBox.Height); using (Graphics g = Graphics.FromImage(day.PictureBox.Image)) { TextRenderer.DrawText(g, day.Number.ToString(), new Font("Arial", 12, FontStyle.Bold), new Point(0, 0), daysAndHoursColor, day.PictureBox.BackColor); int diff = 15; foreach (Event e in day.Events) { TextRenderer.DrawText(g, e.ToString(), new Font("Arial", 8), new Rectangle(0, diff, day.PictureBox.Image.Width, diff), DataModel.IsEventAccepted(e.Id) ? e.Type.Color.Color : notAcceptedEventColor, day.PictureBox.BackColor, TextFormatFlags.WordEllipsis); diff += 12; } } }
public override void ShowDays(CalendarModel.Day _selectedDay) { title.Text = $"{_selectedDay.MonthName} {_selectedDay.Year}"; TableLayoutPanel panel = new TableLayoutPanel(); View.SetDoubleBuffered(panel); panel.Dock = DockStyle.Fill; panel.ColumnCount = 7; panel.RowCount = (model as MonthModel).Days.Count; for (int i = 0; i < panel.ColumnCount; i++) { panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100)); } for (int i = 0; i < panel.RowCount; i++) { panel.RowStyles.Add(new RowStyle(SizeType.Percent, 100)); } int j = 0; while ((model as MonthModel).Days[0][j].Number != 1) { j++; } for (int i = 0; i < (model as MonthModel).Days.Count; i++, j = 0) { for (; j < 7; j++) { if ((model as MonthModel).Days[i][j].Month != _selectedDay.Month) { break; } this.ShowDay((model as MonthModel).Days[i][j]); panel.Controls.Add(numberLabel, j, i); if ((model as MonthModel).Days[i][j].DateEquals(_selectedDay)) { base.SelectDay((model as MonthModel).Days[i][j]); } } } if (bigPanel.Controls.Count >= 2) { bigPanel.Controls.RemoveAt(1); } bigPanel.Controls.Add(panel, 0, 1); }
public void Show(CalendarModel.Day day) { shownDay = day; TableLayoutPanel panel = new TableLayoutPanel(); panel.Dock = DockStyle.Fill; panel.RowCount = day.Events.Count + 2; for (int i = 0; i < panel.RowCount; i++) { panel.RowStyles.Add(new RowStyle(SizeType.AutoSize)); } panel.RowStyles.Add(new RowStyle(SizeType.AutoSize)); Label label = new Label(); label.Dock = DockStyle.Fill; label.Height = controlHeight; label.Text = $"{day.Number} {day.MonthName} {day.Year}"; panel.Controls.Add(label, 0, 0); for (int i = 0; i < day.Events.Count; i++) { Button button = new Button(); button.Click += new EventHandler(button_Click); button.Dock = DockStyle.Fill; button.Height = controlHeight; button.Text = day.Events[i].ToString(); button.ForeColor = DataModel.IsEventAccepted(day.Events[i].Id) ? day.Events[i].Type.Color.Color : notAcceptedEventColor; button.FlatStyle = FlatStyle.Flat; button.FlatAppearance.MouseOverBackColor = Color.Lavender; button.FlatAppearance.BorderSize = 0; button.Tag = i; panel.Controls.Add(button, 0, i + 1); } if (calendar.DayEventsTableLayoutPanel.Controls.Count >= 2) { calendar.DayEventsTableLayoutPanel.Controls.RemoveAt(1); } calendar.DayEventsTableLayoutPanel.Controls.Add(panel, 0, 1); calendar.RightTabControl.SelectedIndex = 1; }
public override void SelectDay(CalendarModel.Day day) { if (selectedDay != null) { if (selectedDay.Month == (model as MonthModel).Days[1][0].Month) { selectedDay.PictureBox.BackColor = normalDaysBackgroundColor; } else { selectedDay.PictureBox.BackColor = daysFromDifferentMonthBackgroundColor; } selectedDay.PictureBox.Invalidate(); this.ShowDay(selectedDay); } base.SelectDay(day); selectedDay.PictureBox.BackColor = selectedDayBackgroundColor; selectedDay.PictureBox.Invalidate(); this.ShowDay(selectedDay); }
public override void ShowDays(CalendarModel.Day _selectedDay) { if (_selectedDay == null) { _selectedDay = selectedDay; } title.Text = $"{(model as DayModel).Day.Number} {(model as DayModel).Day.MonthName} {(model as DayModel).Day.Year}"; title.MouseClick += new MouseEventHandler(day_MouseClick); View.SetDoubleBuffered(panel); while (panel.Controls.Count > 0) { panel.Controls.RemoveAt(0); } panel.Controls.Add(hoursPictureBox, 0, 0); panel.Controls.Add((model as DayModel).Day.PictureBox, 1, 0); this.ShowDay((model as DayModel).Day); this.SelectDay(_selectedDay); }
public override void ShowDays(CalendarModel.Day _selectedDay) { if (_selectedDay == null) { _selectedDay = selectedDay; } title.Text = $"{_selectedDay.MonthName} {_selectedDay.Year}"; TableLayoutPanel panel = new TableLayoutPanel(); View.SetDoubleBuffered(panel); panel.Dock = DockStyle.Fill; panel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; panel.ColumnCount = 8; panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 40)); for (int i = 0; i < panel.ColumnCount - 1; i++) { panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100)); } panel.RowCount = (model as MonthModel).Days.Count + 1; panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 50)); for (int i = 0; i < panel.RowCount; i++) { panel.RowStyles.Add(new RowStyle(SizeType.Percent, 100)); } for (int i = 0; i < (model as MonthModel).Days.Count; i++) { Label label = new Label(); label.Dock = DockStyle.Fill; label.TextAlign = ContentAlignment.TopCenter; label.Text = (model as MonthModel).Days[i][6].WeekOfYear.ToString(); label.Font = new Font("Arial", 10, FontStyle.Bold); label.ForeColor = daysAndHoursColor; panel.Controls.Add(label, 0, i + 1); } for (int i = 0; i < 7; i++) { Label label = new Label(); label.Dock = DockStyle.Fill; label.TextAlign = ContentAlignment.MiddleCenter; label.Text = $"{(model as MonthModel).Days[0][i].DayOfWeek}"; label.Font = new Font("Arial", 10, FontStyle.Bold); panel.Controls.Add(label, i + 1, 0); } if (bigPanel.Controls.Count >= 2) { bigPanel.Controls.RemoveAt(1); } bigPanel.Controls.Add(panel, 0, 1); for (int i = 0; i < (model as MonthModel).Days.Count; i++) { for (int j = 0; j < (model as MonthModel).Days[i].Length; j++) { if ((model as MonthModel).Days[i][j].Month != (model as MonthModel).Days[1][0].Month) { (model as MonthModel).Days[i][j].PictureBox.BackColor = daysFromDifferentMonthBackgroundColor; } else { (model as MonthModel).Days[i][j].PictureBox.BackColor = normalDaysBackgroundColor; } panel.Controls.Add((model as MonthModel).Days[i][j].PictureBox, j + 1, i + 1); this.ShowDay((model as MonthModel).Days[i][j]); if ((model as MonthModel).Days[i][j].DateEquals(_selectedDay)) { this.SelectDay((model as MonthModel).Days[i][j]); } } } }
public virtual void SelectDay(CalendarModel.Day day) { selectedDay = day; }
public abstract void ShowDay(CalendarModel.Day day);
public abstract void ShowDays(CalendarModel.Day _selectedDay = null);
public virtual void Load(CalendarModel.Day _selectedDay = null) { model.GenerateDays(_selectedDay); model.GetEventsForDays(); this.ShowDays(_selectedDay); }