private void initRows() { int daysInMonth = DateTime.DaysInMonth(year, month); //Debug.WriteLine("ACTUAL DATE: " + periods[periods.Count - 1]); for (int n = 0; n < daysInMonth; ++n) { DateTime day = new DateTime(year, month, n + 1); //Check if work period exists already // Init row with period if it exists already, or create a new period int periodIndex = workPeriodData.BinarySearch(new work_period(day), work_period.CompareByDate()); if (periodIndex >= 0) { work_period p = workPeriodData[periodIndex]; //periods.Add(p); row_interface ri = new row_interface(p); ri.ApplySettings(ref settings); rowList.Add(ri); } else if (workPeriodData.Count > 0) { int indexComplement = ~periodIndex - 1; work_period p = new work_period(day); p.CumulativeMins = workPeriodData[indexComplement].CumulativeMins; workPeriodData.Add(p); row_interface ri = new row_interface(workPeriodData[workPeriodData.Count - 1]); ri.ApplySettings(ref settings); rowList.Add(ri); } else { work_period p = new work_period(day); workPeriodData.Add(p); row_interface ri = new row_interface(workPeriodData[workPeriodData.Count - 1]); ri.ApplySettings(ref settings); rowList.Add(ri); } workPeriodData.Sort(work_period.CompareByDate()); //Set row properties and events //rowList[n].KeyDownEvent += row_interface_group_KeyDown; rowList[n].Location = new Point(0, n * row_interface.rowHeight); rowList[n].VerticalArrowDown += ControlVerticalArrowPressed; rowList[n].InputRowSelected += inputRowSelected; rowList[n].LeaveTimeBoxEvent += onLeaveTimeBox; panel1.Controls.Add(rowList[n]); } }
private void autoCreateHeaders() { row_interface dummy = new row_interface(new work_period(DateTime.Now)); dummy.ApplySettings(ref settings); foreach (Control c in dummy.Controls) { Label l = new Label(); l.Location = new Point(c.Location.X, 0); l.Font = new Font("Arial", 12); l.Text = (string)c.Tag; int height = l.Height; l.AutoSize = false; l.Size = new Size(c.Size.Width, height); l.TextAlign = ContentAlignment.MiddleCenter; this.Controls.Add(l); checkHeaderHeight(l); } }
private void createHeaders() { row_interface dummy = new row_interface(new work_period(DateTime.Now)); dummy.ApplySettings(ref settings); maxHeaderHeight = 0; int maxHeaderWidth = 80; int fontSize = 10; string font = "Arial"; int yoffset = 0; int xoffset = 0; Label lh_dayOfMonth = new Label(); lh_dayOfMonth.AutoSize = true; lh_dayOfMonth.MaximumSize = new Size(maxHeaderWidth, 3000); lh_dayOfMonth.Text = "Day of Month"; lh_dayOfMonth.Font = new Font(font, fontSize, FontStyle.Regular); lh_dayOfMonth.Location = new Point(dummy.Location_DayOfMonth + xoffset, yoffset); Controls.Add(lh_dayOfMonth); checkHeaderHeight(lh_dayOfMonth); Label lh_WeekNumber = new Label(); lh_WeekNumber.AutoSize = true; lh_WeekNumber.MaximumSize = new Size(maxHeaderWidth, 3000); lh_WeekNumber.Text = "Week Number"; lh_WeekNumber.Font = new Font(font, fontSize, FontStyle.Regular); lh_WeekNumber.Location = new Point(dummy.Location_WeekNum + xoffset, yoffset); Controls.Add(lh_WeekNumber); checkHeaderHeight(lh_WeekNumber); Label lh_StartTime = new Label(); lh_StartTime.AutoSize = true; lh_StartTime.MaximumSize = new Size(maxHeaderWidth, 3000); lh_StartTime.Text = "Start Time"; lh_StartTime.Font = new Font(font, fontSize, FontStyle.Regular); lh_StartTime.Location = new Point(dummy.Location_StartTime + xoffset, yoffset); Controls.Add(lh_StartTime); checkHeaderHeight(lh_StartTime); Label lh_EndTime = new Label(); lh_EndTime.AutoSize = true; lh_EndTime.MaximumSize = new Size(maxHeaderWidth, 3000); lh_EndTime.Text = "End Time"; lh_EndTime.Font = new Font(font, fontSize, FontStyle.Regular); lh_EndTime.Location = new Point(dummy.Location_EndTime + xoffset, yoffset); Controls.Add(lh_EndTime); checkHeaderHeight(lh_EndTime); Label lh_Overtime = new Label(); lh_Overtime.AutoSize = true; lh_Overtime.MaximumSize = new Size(maxHeaderWidth, 3000); lh_Overtime.Text = "Overtime"; lh_Overtime.Font = new Font(font, fontSize, FontStyle.Regular); lh_Overtime.Location = new Point(dummy.Location_Overtime + xoffset, yoffset); Controls.Add(lh_Overtime); checkHeaderHeight(lh_Overtime); Label lh_ShiftPremium = new Label(); lh_ShiftPremium.AutoSize = true; lh_ShiftPremium.MaximumSize = new Size(maxHeaderWidth, 3000); lh_ShiftPremium.Text = "Shift Premiums"; lh_ShiftPremium.Font = new Font(font, fontSize, FontStyle.Regular); lh_ShiftPremium.Location = new Point(dummy.Location_ShiftPremium + xoffset, yoffset); Controls.Add(lh_ShiftPremium); checkHeaderHeight(lh_ShiftPremium); Label lh_Washup = new Label(); lh_Washup.AutoSize = true; lh_Washup.MaximumSize = new Size(maxHeaderWidth, 3000); lh_Washup.Text = "Washup Time"; lh_Washup.Font = new Font(font, fontSize, FontStyle.Regular); lh_Washup.Location = new Point(dummy.Location_WashupTime + xoffset - 10, yoffset); Controls.Add(lh_Washup); checkHeaderHeight(lh_Washup); }