private void SetLimits() { Days = new _Day[m_NumDays]; TimeSlots = new TimeSlot[m_NumTimeIntervals]; CellMatrix = new Cell[NumDays, NumTimeIntervals]; //Create Cells for (int i = 0; i < NumDays; ++i) { for (int j = 0; j < NumTimeIntervals; ++j) { CellMatrix[i, j] = new Cell(i, j); } } // Create TimeSlots for (int j = 0; j < NumTimeIntervals; ++j) { TimeSlots[j] = new TimeSlot(j); } // Create Days for (int i = 0; i < NumDays; ++i) { Days[i] = new _Day(i); } }
private void DrawDays(Graphics g) { Font font = new Font(Control.DefaultFont.FontFamily, FindEmSize(g, Days[0].Bounds)); for (int i = 0; i < NumDays; ++i) { _Day d = Days[i]; SizeF sf = g.MeasureString(d.DOW.ToString(), font); if (d.Highlighted) { g.FillRectangle(m_sbHotTrack, d.Bounds); } g.DrawString(d.DOW.ToString(), font, m_sbForeColor, CenterRectangle(d.Bounds, sf).Location); } }
protected override void OnMouseMove(MouseEventArgs e) { ClearToolTopState(); TimeFrameObject tfo = GetTimeFrameObject(e); if (e.Button == MouseButtons.Left) { if (tfo is Cell) { Cell cellNewSelected = (Cell)tfo; if (tfoLastSelected is Cell) { Cell cellLastSelected = (Cell)tfoLastSelected; if (cellLastSelected != cellNewSelected) { SelectCellBlock(cellLastSelected, cellNewSelected); } } } else if (tfo is TimeSlot) { TimeSlot tsNewSelected = (TimeSlot)tfo; if (tfoLastSelected is TimeSlot) { TimeSlot tsLastSelected = (TimeSlot)tfoLastSelected; if (tsLastSelected != tsNewSelected) { if (tsNewSelected.Column > tsLastSelected.Column) { for (int j = tsLastSelected.Column; j < tsNewSelected.Column; ++j) { TimeSlots[j].Selected = tsLastSelected.Selected; } } else if (tsNewSelected.Column < tsLastSelected.Column) { for (int j = tsNewSelected.Column; j < tsLastSelected.Column; ++j) { TimeSlots[j].Selected = tsLastSelected.Selected; } } } } } else if (tfo is _Day) { _Day dNewSelected = (_Day)tfo; if (tfoLastSelected is _Day) { _Day dLastSelected = (_Day)tfoLastSelected; if (dLastSelected != dNewSelected) { if (dNewSelected.Row > dLastSelected.Row) { for (int i = dLastSelected.Row; i < dNewSelected.Row; ++i) { Days[i].Selected = dLastSelected.Selected; } } else if (dNewSelected.Row < dLastSelected.Row) { for (int i = dNewSelected.Row; i < dLastSelected.Row; ++i) { Days[i].Selected = dLastSelected.Selected; } } } } } } if (tfoLastHighlighted != null) { tfoLastHighlighted.Highlighted = false; } if (tfo != null) { tfo.Highlighted = true; tfoLastHighlighted = tfo; } if (e.Button == MouseButtons.None) { if (Grid.Contains(e.X, e.Y)) { LastMouseHover = e; HoverTimerStart.Start(); } } this.Invalidate(true); }