Mostly commenting the code.
This commit is contained in:
parent
9821e5ef77
commit
5c54e67cb8
|
@ -26,7 +26,7 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
public int m_nColumnCount; //todo: this should point to the view's member for column count
|
public int m_nColumnCount; //todo: this should point to the view's member for column count
|
||||||
public int m_nTimeUnits;
|
public int m_nTimeUnits;
|
||||||
private string m_sDocName;
|
private string m_sDocName;
|
||||||
public ArrayList m_sResourcesArray;
|
public ArrayList m_sResourcesArray; //keeps the resources
|
||||||
public ScheduleType m_ScheduleType;
|
public ScheduleType m_ScheduleType;
|
||||||
private DateTime m_dSelectedDate; //Holds the user's selection from the dtpicker
|
private DateTime m_dSelectedDate; //Holds the user's selection from the dtpicker
|
||||||
private DateTime m_dStartDate; //Beginning date of document data
|
private DateTime m_dStartDate; //Beginning date of document data
|
||||||
|
@ -200,13 +200,19 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
CGDocumentManager pApp = CGDocumentManager.Current;
|
CGDocumentManager pApp = CGDocumentManager.Current;
|
||||||
DataTable rAppointmentSchedule;
|
DataTable rAppointmentSchedule;
|
||||||
|
|
||||||
|
//Nice to know that it gets set here!!!
|
||||||
m_dLastRefresh = DateTime.Now;
|
m_dLastRefresh = DateTime.Now;
|
||||||
|
|
||||||
this.m_appointments.ClearAllAppointments();
|
this.m_appointments.ClearAllAppointments();
|
||||||
|
|
||||||
|
// calls RPC to (presumably--not sure yet) get appointments
|
||||||
rAppointmentSchedule = CGSchedLib.CreateAppointmentSchedule(m_DocManager, m_sResourcesArray, this.m_dStartDate, this.m_dEndDate);
|
rAppointmentSchedule = CGSchedLib.CreateAppointmentSchedule(m_DocManager, m_sResourcesArray, this.m_dStartDate, this.m_dEndDate);
|
||||||
CGSchedLib.OutputArray(rAppointmentSchedule, "rAppointmentSchedule");
|
|
||||||
foreach (DataRow r in rAppointmentSchedule.Rows)
|
// Datatable dumper into Debug Log (nice to know that this exists)
|
||||||
|
CGSchedLib.OutputArray(rAppointmentSchedule, "rAppointmentSchedule");
|
||||||
|
|
||||||
|
|
||||||
|
foreach (DataRow r in rAppointmentSchedule.Rows)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (r["APPOINTMENTID"].ToString() == "0")
|
if (r["APPOINTMENTID"].ToString() == "0")
|
||||||
|
@ -278,6 +284,8 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
//Set initial From and To dates based on current day
|
//Set initial From and To dates based on current day
|
||||||
// DateTime dDate = new DateTime(2001,12,05); //Testing line
|
// DateTime dDate = new DateTime(2001,12,05); //Testing line
|
||||||
DateTime dDate = DateTime.Today;
|
DateTime dDate = DateTime.Today;
|
||||||
|
|
||||||
|
//smh: Question: Where does bRet get used? It's a useless varaible so far.
|
||||||
bool bRet = this.WeekNeedsRefresh(2,dDate, out this.m_dStartDate, out this.m_dEndDate);
|
bool bRet = this.WeekNeedsRefresh(2,dDate, out this.m_dStartDate, out this.m_dEndDate);
|
||||||
|
|
||||||
//Create new View
|
//Create new View
|
||||||
|
|
|
@ -235,7 +235,7 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
m_ds.SetStatus("Loading Configuration Settings...");
|
m_ds.SetStatus("Loading Configuration Settings...");
|
||||||
m_ds.Refresh();
|
m_ds.Refresh();
|
||||||
this.Activate();
|
this.Activate();
|
||||||
System.Configuration.ConfigurationManager.GetSection("appSettings");
|
// smh--not used System.Configuration.ConfigurationManager.GetSection("appSettings");
|
||||||
m_ds.SetStatus("Connecting to VistA Server...");
|
m_ds.SetStatus("Connecting to VistA Server...");
|
||||||
m_ds.Refresh();
|
m_ds.Refresh();
|
||||||
bool bRetry = true;
|
bool bRetry = true;
|
||||||
|
@ -261,13 +261,16 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
}
|
}
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
// login crap
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
// Not my code
|
||||||
if (bReLogin == true)
|
if (bReLogin == true)
|
||||||
{
|
{
|
||||||
//Prompt for Access and Verify codes
|
//Prompt for Access and Verify codes
|
||||||
_current.m_ConnectInfo.LoadConnectInfo("", "");
|
_current.m_ConnectInfo.LoadConnectInfo("", "");
|
||||||
}
|
}
|
||||||
|
// My code -- buts looks so ugly!
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (m_Server != String.Empty && m_Port != 0 && m_AccessCode != String.Empty
|
if (m_Server != String.Empty && m_Port != 0 && m_AccessCode != String.Empty
|
||||||
|
@ -336,6 +339,7 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//smh -- why get handles?
|
||||||
System.IntPtr pHandle = this.Handle;
|
System.IntPtr pHandle = this.Handle;
|
||||||
System.IntPtr pConnHandle = this.ConnectInfo.Handle;
|
System.IntPtr pConnHandle = this.ConnectInfo.Handle;
|
||||||
this.m_sHandle = pHandle.ToString();
|
this.m_sHandle = pHandle.ToString();
|
||||||
|
@ -375,6 +379,7 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
{
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
// Print console messages to console if launched from console
|
// Print console messages to console if launched from console
|
||||||
|
// Note: Imported From kernel32.dll
|
||||||
AttachConsole(ATTACH_PARENT_PROCESS);
|
AttachConsole(ATTACH_PARENT_PROCESS);
|
||||||
#endif
|
#endif
|
||||||
try
|
try
|
||||||
|
|
|
@ -139,7 +139,9 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
this.StartDate = dStartDate;
|
this.StartDate = dStartDate;
|
||||||
this.Document = doc;
|
this.Document = doc;
|
||||||
this.Appointments = cgAppts;
|
this.Appointments = cgAppts;
|
||||||
this.Text = this.DocManager.ConnectInfo.UserName;
|
|
||||||
|
// Set username and division up top
|
||||||
|
this.Text = this.DocManager.ConnectInfo.UserName;
|
||||||
if (sText != null)
|
if (sText != null)
|
||||||
this.Text += " - " + sText;
|
this.Text += " - " + sText;
|
||||||
if (DocManager.ConnectInfo.DivisionName != null)
|
if (DocManager.ConnectInfo.DivisionName != null)
|
||||||
|
@ -268,6 +270,7 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
|
this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
|
||||||
this.lblResource = new System.Windows.Forms.Label();
|
this.lblResource = new System.Windows.Forms.Label();
|
||||||
this.panelCenter = new System.Windows.Forms.Panel();
|
this.panelCenter = new System.Windows.Forms.Panel();
|
||||||
|
this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
|
||||||
this.ctxCalendarGrid = new System.Windows.Forms.ContextMenu();
|
this.ctxCalendarGrid = new System.Windows.Forms.ContextMenu();
|
||||||
this.ctxCalGridAdd = new System.Windows.Forms.MenuItem();
|
this.ctxCalGridAdd = new System.Windows.Forms.MenuItem();
|
||||||
this.ctxCalGridEdit = new System.Windows.Forms.MenuItem();
|
this.ctxCalGridEdit = new System.Windows.Forms.MenuItem();
|
||||||
|
@ -279,13 +282,12 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
this.menuItem9 = new System.Windows.Forms.MenuItem();
|
this.menuItem9 = new System.Windows.Forms.MenuItem();
|
||||||
this.ctxCalGridWalkin = new System.Windows.Forms.MenuItem();
|
this.ctxCalGridWalkin = new System.Windows.Forms.MenuItem();
|
||||||
this.menuItem10 = new System.Windows.Forms.MenuItem();
|
this.menuItem10 = new System.Windows.Forms.MenuItem();
|
||||||
|
this.ctxCalGridReprintRoutingSlip = new System.Windows.Forms.MenuItem();
|
||||||
this.panelBottom = new System.Windows.Forms.Panel();
|
this.panelBottom = new System.Windows.Forms.Panel();
|
||||||
this.statusBar1 = new System.Windows.Forms.StatusBar();
|
this.statusBar1 = new System.Windows.Forms.StatusBar();
|
||||||
this.splitter1 = new System.Windows.Forms.Splitter();
|
this.splitter1 = new System.Windows.Forms.Splitter();
|
||||||
this.splitter2 = new System.Windows.Forms.Splitter();
|
this.splitter2 = new System.Windows.Forms.Splitter();
|
||||||
this.printRoutingSlip = new System.Drawing.Printing.PrintDocument();
|
this.printRoutingSlip = new System.Drawing.Printing.PrintDocument();
|
||||||
this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
|
|
||||||
this.ctxCalGridReprintRoutingSlip = new System.Windows.Forms.MenuItem();
|
|
||||||
this.panelRight.SuspendLayout();
|
this.panelRight.SuspendLayout();
|
||||||
this.panelClip.SuspendLayout();
|
this.panelClip.SuspendLayout();
|
||||||
this.panelTop.SuspendLayout();
|
this.panelTop.SuspendLayout();
|
||||||
|
@ -795,6 +797,34 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
this.panelCenter.Size = new System.Drawing.Size(668, 321);
|
this.panelCenter.Size = new System.Drawing.Size(668, 321);
|
||||||
this.panelCenter.TabIndex = 7;
|
this.panelCenter.TabIndex = 7;
|
||||||
//
|
//
|
||||||
|
// calendarGrid1
|
||||||
|
//
|
||||||
|
this.calendarGrid1.AllowDrop = true;
|
||||||
|
this.calendarGrid1.Appointments = null;
|
||||||
|
this.calendarGrid1.ApptDragSource = null;
|
||||||
|
this.calendarGrid1.AutoScroll = true;
|
||||||
|
this.calendarGrid1.AutoScrollMinSize = new System.Drawing.Size(600, 1898);
|
||||||
|
this.calendarGrid1.AvailabilityArray = null;
|
||||||
|
this.calendarGrid1.BackColor = System.Drawing.SystemColors.Window;
|
||||||
|
this.calendarGrid1.Columns = 5;
|
||||||
|
this.calendarGrid1.ContextMenu = this.ctxCalendarGrid;
|
||||||
|
this.calendarGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.calendarGrid1.DrawWalkIns = true;
|
||||||
|
this.calendarGrid1.GridBackColor = null;
|
||||||
|
this.calendarGrid1.GridEnter = false;
|
||||||
|
this.calendarGrid1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.calendarGrid1.Name = "calendarGrid1";
|
||||||
|
this.calendarGrid1.Resources = ((System.Collections.ArrayList)(resources.GetObject("calendarGrid1.Resources")));
|
||||||
|
this.calendarGrid1.SelectedAppointment = 0;
|
||||||
|
this.calendarGrid1.Size = new System.Drawing.Size(668, 321);
|
||||||
|
this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
|
||||||
|
this.calendarGrid1.TabIndex = 0;
|
||||||
|
this.calendarGrid1.TimeScale = 20;
|
||||||
|
this.calendarGrid1.DoubleClick += new System.EventHandler(this.calendarGrid1_DoubleClick);
|
||||||
|
this.calendarGrid1.CGSelectionChanged += new IndianHealthService.ClinicalScheduling.CGSelectionChangedHandler(this.calendarGrid1_CGSelectionChanged);
|
||||||
|
this.calendarGrid1.CGAppointmentChanged += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentChanged);
|
||||||
|
this.calendarGrid1.CGAppointmentAdded += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentAdded);
|
||||||
|
//
|
||||||
// ctxCalendarGrid
|
// ctxCalendarGrid
|
||||||
//
|
//
|
||||||
this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
|
this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
|
||||||
|
@ -868,6 +898,12 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
this.menuItem10.Index = 9;
|
this.menuItem10.Index = 9;
|
||||||
this.menuItem10.Text = "-";
|
this.menuItem10.Text = "-";
|
||||||
//
|
//
|
||||||
|
// ctxCalGridReprintRoutingSlip
|
||||||
|
//
|
||||||
|
this.ctxCalGridReprintRoutingSlip.Index = 10;
|
||||||
|
this.ctxCalGridReprintRoutingSlip.Text = "&Reprint Routing Slip";
|
||||||
|
this.ctxCalGridReprintRoutingSlip.Click += new System.EventHandler(this.ctxCalGridReprintRoutingSlip_Click);
|
||||||
|
//
|
||||||
// panelBottom
|
// panelBottom
|
||||||
//
|
//
|
||||||
this.panelBottom.Controls.Add(this.statusBar1);
|
this.panelBottom.Controls.Add(this.statusBar1);
|
||||||
|
@ -908,40 +944,6 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
this.printRoutingSlip.DocumentName = "Routing Slip";
|
this.printRoutingSlip.DocumentName = "Routing Slip";
|
||||||
this.printRoutingSlip.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printRoutingSlip_PrintPage);
|
this.printRoutingSlip.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printRoutingSlip_PrintPage);
|
||||||
//
|
//
|
||||||
// calendarGrid1
|
|
||||||
//
|
|
||||||
this.calendarGrid1.AllowDrop = true;
|
|
||||||
this.calendarGrid1.Appointments = null;
|
|
||||||
this.calendarGrid1.ApptDragSource = null;
|
|
||||||
this.calendarGrid1.AutoScroll = true;
|
|
||||||
this.calendarGrid1.AutoScrollMinSize = new System.Drawing.Size(600, 1898);
|
|
||||||
this.calendarGrid1.AvailabilityArray = null;
|
|
||||||
this.calendarGrid1.BackColor = System.Drawing.SystemColors.Window;
|
|
||||||
this.calendarGrid1.Columns = 5;
|
|
||||||
this.calendarGrid1.ContextMenu = this.ctxCalendarGrid;
|
|
||||||
this.calendarGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
this.calendarGrid1.DrawWalkIns = true;
|
|
||||||
this.calendarGrid1.GridBackColor = null;
|
|
||||||
this.calendarGrid1.GridEnter = false;
|
|
||||||
this.calendarGrid1.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.calendarGrid1.Name = "calendarGrid1";
|
|
||||||
this.calendarGrid1.Resources = ((System.Collections.ArrayList)(resources.GetObject("calendarGrid1.Resources")));
|
|
||||||
this.calendarGrid1.SelectedAppointment = 0;
|
|
||||||
this.calendarGrid1.Size = new System.Drawing.Size(668, 321);
|
|
||||||
this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
|
|
||||||
this.calendarGrid1.TabIndex = 0;
|
|
||||||
this.calendarGrid1.TimeScale = 20;
|
|
||||||
this.calendarGrid1.DoubleClick += new System.EventHandler(this.calendarGrid1_DoubleClick);
|
|
||||||
this.calendarGrid1.CGSelectionChanged += new IndianHealthService.ClinicalScheduling.CGSelectionChangedHandler(this.calendarGrid1_CGSelectionChanged);
|
|
||||||
this.calendarGrid1.CGAppointmentChanged += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentChanged);
|
|
||||||
this.calendarGrid1.CGAppointmentAdded += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentAdded);
|
|
||||||
//
|
|
||||||
// ctxCalGridReprintRoutingSlip
|
|
||||||
//
|
|
||||||
this.ctxCalGridReprintRoutingSlip.Index = 10;
|
|
||||||
this.ctxCalGridReprintRoutingSlip.Text = "&Reprint Routing Slip";
|
|
||||||
this.ctxCalGridReprintRoutingSlip.Click += new System.EventHandler(this.ctxCalGridReprintRoutingSlip_Click);
|
|
||||||
//
|
|
||||||
// CGView
|
// CGView
|
||||||
//
|
//
|
||||||
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
|
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
|
||||||
|
@ -2290,11 +2292,14 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
public void UpdateArrays()
|
public void UpdateArrays()
|
||||||
{
|
{
|
||||||
Debug.Assert(this.InvokeRequired == false,"CGView.UpdateArrays InvokeRequired");
|
Debug.Assert(this.InvokeRequired == false,"CGView.UpdateArrays InvokeRequired");
|
||||||
|
// This is where you set how the grid will look
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
this.calendarGrid1.AvailabilityArray = this.m_Document.AvailabilityArray;
|
this.calendarGrid1.AvailabilityArray = this.m_Document.AvailabilityArray;
|
||||||
this.calendarGrid1.Resources = this.m_Document.Resources;
|
this.calendarGrid1.Resources = this.m_Document.Resources;
|
||||||
this.calendarGrid1.OnUpdateArrays();
|
// this.calendarGrid1.Columns = 7; //test
|
||||||
|
this.calendarGrid1.StartDate = DateTime.Parse("10-10-2007"); // another test
|
||||||
|
this.calendarGrid1.OnUpdateArrays(); // this draws the Calendar
|
||||||
this.lblResource.Text = this.m_Document.DocName;
|
this.lblResource.Text = this.m_Document.DocName;
|
||||||
this.calendarGrid1.Invalidate();
|
this.calendarGrid1.Invalidate();
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,12 +9,11 @@
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This class was regenerated from Calendargrid.dll using Reflector.exe
|
/// This class is reponsible for rendering the Calendar Grid.
|
||||||
/// by Sam Habiel for WorldVista. The original source code is lost.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class CalendarGrid : Panel
|
public class CalendarGrid : Panel
|
||||||
{
|
{
|
||||||
private Container components;
|
private IContainer components;
|
||||||
private Font fontArial10;
|
private Font fontArial10;
|
||||||
private Font fontArial8;
|
private Font fontArial8;
|
||||||
private CGAppointments m_Appointments;
|
private CGAppointments m_Appointments;
|
||||||
|
@ -48,10 +47,10 @@
|
||||||
private StringFormat m_sfHour;
|
private StringFormat m_sfHour;
|
||||||
private StringFormat m_sfRight;
|
private StringFormat m_sfRight;
|
||||||
private ArrayList m_sResourcesArray;
|
private ArrayList m_sResourcesArray;
|
||||||
private Timer m_Timer;
|
private Timer m_Timer; // Timeer used in Drag and Drop Operations
|
||||||
private ToolTip m_toolTip;
|
private ToolTip m_toolTip;
|
||||||
private const int WM_HSCROLL = 0x114;
|
private const int WM_HSCROLL = 0x114; // Horizontal Scrolling Windows Message
|
||||||
private const int WM_VSCROLL = 0x115;
|
private const int WM_VSCROLL = 0x115; // Vertical Scrolling Windows Message
|
||||||
|
|
||||||
public event CGAppointmentChangedHandler CGAppointmentAdded;
|
public event CGAppointmentChangedHandler CGAppointmentAdded;
|
||||||
|
|
||||||
|
@ -69,7 +68,7 @@
|
||||||
this.m_gridCells = new CGCells();
|
this.m_gridCells = new CGCells();
|
||||||
this.m_selectedRange = new CGRange();
|
this.m_selectedRange = new CGRange();
|
||||||
this.m_SelectedAppointments = new CGAppointments();
|
this.m_SelectedAppointments = new CGAppointments();
|
||||||
this.m_dtStart = new DateTime(0x7d3, 1, 0x1b);
|
this.m_dtStart = new DateTime(2003, 1, 27);
|
||||||
this.m_ApptOverlapTable = new Hashtable();
|
this.m_ApptOverlapTable = new Hashtable();
|
||||||
this.m_ColumnInfoTable = new Hashtable();
|
this.m_ColumnInfoTable = new Hashtable();
|
||||||
this.m_sResourcesArray = new ArrayList();
|
this.m_sResourcesArray = new ArrayList();
|
||||||
|
@ -122,7 +121,7 @@
|
||||||
this.m_cellHeight = ((int) ef.Height) + 4;
|
this.m_cellHeight = ((int) ef.Height) + 4;
|
||||||
int nColumns = this.m_nColumns;
|
int nColumns = this.m_nColumns;
|
||||||
int num2 = 60 / this.m_nTimeScale;
|
int num2 = 60 / this.m_nTimeScale;
|
||||||
int num3 = 0x18 * num2;
|
int num3 = 24 * num2;
|
||||||
nColumns++;
|
nColumns++;
|
||||||
num3++;
|
num3++;
|
||||||
this.m_cellWidth = 600 / nColumns;
|
this.m_cellWidth = 600 / nColumns;
|
||||||
|
@ -286,6 +285,29 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.m_toolTip.RemoveAll();
|
this.m_toolTip.RemoveAll();
|
||||||
|
|
||||||
|
////smh new code -- select cell
|
||||||
|
//int nRow = -1;
|
||||||
|
//int nCol = -1;
|
||||||
|
|
||||||
|
////Is the mouse over a known cell? If so, highlight cell
|
||||||
|
//if (this.HitTest(x, y, ref nRow, ref nCol))
|
||||||
|
//{
|
||||||
|
// CGCell cellFromRowCol = this.m_gridCells.GetCellFromRowCol(nRow, nCol);
|
||||||
|
// if (cellFromRowCol != null)
|
||||||
|
// {
|
||||||
|
// this.m_currentCell = cellFromRowCol;
|
||||||
|
// this.m_selectedRange.StartCell = null;
|
||||||
|
// this.m_selectedRange.EndCell = null;
|
||||||
|
// this.m_selectedRange.CreateRange(this.m_gridCells, cellFromRowCol, cellFromRowCol);
|
||||||
|
// this.m_bSelectingRange = true;
|
||||||
|
// cellFromRowCol.IsSelected = true;
|
||||||
|
// base.Invalidate(this.m_currentCell.CellRectangle);
|
||||||
|
// //base.Invalidate();
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -417,156 +439,207 @@
|
||||||
|
|
||||||
private void DrawGrid(Graphics g)
|
private void DrawGrid(Graphics g)
|
||||||
{
|
{
|
||||||
try
|
//Default color of grid lines is black
|
||||||
|
Pen pen = new Pen(Color.Black);
|
||||||
|
|
||||||
|
//each cell's height is Height of Arial Font 10pt + 10 pixels (by default 26 pixels)
|
||||||
|
SizeF ef = g.MeasureString("Test", this.m_fCell);
|
||||||
|
int num = 10;
|
||||||
|
this.m_cellHeight = ((int) ef.Height) + num;
|
||||||
|
|
||||||
|
// Number of columns is dynamic based on user of Grid. See Property Columns. Default 5 in init.
|
||||||
|
int nColumns = this.m_nColumns;
|
||||||
|
|
||||||
|
//Time scale is also dynamic. Property TimeScale. Default 20 (minutes)
|
||||||
|
//num3 stands for number of cells per hour
|
||||||
|
int num3 = 60 / this.m_nTimeScale;
|
||||||
|
//num4 stands for number of cells per day (aka rows in the grid)
|
||||||
|
int num4 = 24 * num3;
|
||||||
|
//Add extra column to hold time in the left hand corner
|
||||||
|
nColumns++;
|
||||||
|
//add extra row to represent dates or resources (depending on which view we are in)
|
||||||
|
//Not sure of which variable controls view yet.
|
||||||
|
num4++;
|
||||||
|
|
||||||
|
// 100 px is reserved no matter our column sizes for displaying the time scale
|
||||||
|
|
||||||
|
// Minimum cell width is 600/columns (100 px by default)
|
||||||
|
this.m_cellWidth = 600 / nColumns;
|
||||||
|
|
||||||
|
// if we happen to have more than 600 pixels in our Client Window then cell
|
||||||
|
// is (Width-100) / (number of date columns)
|
||||||
|
if (base.ClientRectangle.Width > 600)
|
||||||
{
|
{
|
||||||
Pen pen = new Pen(Color.Black);
|
this.m_cellWidth = (base.ClientRectangle.Width - this.m_col0Width) / (nColumns - 1);
|
||||||
SizeF ef = g.MeasureString("Test", this.m_fCell);
|
}
|
||||||
int num = 10;
|
|
||||||
this.m_cellHeight = ((int) ef.Height) + num;
|
// If we have one column, the cell width is the itself - 100
|
||||||
int nColumns = this.m_nColumns;
|
if (this.m_nColumns == 1)
|
||||||
int num3 = 60 / this.m_nTimeScale;
|
{
|
||||||
int num4 = 0x18 * num3;
|
this.m_cellWidth = base.ClientRectangle.Width - this.m_col0Width;
|
||||||
nColumns++;
|
}
|
||||||
num4++;
|
|
||||||
this.m_cellWidth = 600 / nColumns;
|
// Our rectangle will start scrolling if width is less than 600 and height less than height of all cells comb
|
||||||
if (base.ClientRectangle.Width > 600)
|
// Of course Height will scroll all the time unless you have a humungous screen
|
||||||
|
base.AutoScrollMinSize = new Size(600, this.m_cellHeight * num4);
|
||||||
|
|
||||||
|
// Default Rectangle is Gray
|
||||||
|
g.FillRectangle(Brushes.LightGray, base.ClientRectangle);
|
||||||
|
|
||||||
|
int num5 = 0; //Minutes (start at 0)
|
||||||
|
int num6 = 0; //Hour (starts at 0)
|
||||||
|
|
||||||
|
// flag is true only if there are no cells what so ever in the screen
|
||||||
|
// Only true when no resource is selected.
|
||||||
|
bool flag = this.m_gridCells.CellCount == 0;
|
||||||
|
|
||||||
|
// Move the base point from the client screen to the scrolling region top-left corner.
|
||||||
|
g.TranslateTransform((float) base.AutoScrollPosition.X, (float) base.AutoScrollPosition.Y);
|
||||||
|
|
||||||
|
// For each row except the first one (i starts from 1 rather than zero)
|
||||||
|
for (int i = 1; i < num4; i++)
|
||||||
|
{
|
||||||
|
int x = 0;
|
||||||
|
//point is (0, 1st Cell Start) then (0, 2nd Cell Start) until we run out
|
||||||
|
Point point = new Point(x, i * this.m_cellHeight);
|
||||||
|
//rectangle2 represents each cell rectangle
|
||||||
|
Rectangle rectangle2 = new Rectangle(point.X, point.Y, this.m_cellWidth, this.m_cellHeight);
|
||||||
|
//rect stands for the time scale rectangle; width is 100px; Height is length of the hour on grid
|
||||||
|
Rectangle rect = new Rectangle(0, rectangle2.Y, this.m_col0Width, rectangle2.Height * num3);
|
||||||
|
//height is length of hour
|
||||||
|
int height = rect.Height;
|
||||||
|
//Min font height is 25 pixels (100/4)--see below where it's used
|
||||||
|
height = (height > (this.m_col0Width / 4)) ? (this.m_col0Width / 4) : height;
|
||||||
|
|
||||||
|
//if we are the top of the time scale (at hour:00) -- num5 is min
|
||||||
|
if (num5 == 0)
|
||||||
{
|
{
|
||||||
this.m_cellWidth = (base.ClientRectangle.Width - this.m_col0Width) / (nColumns - 1);
|
// Fill time scale triangle with Gray (remember, this is the whole hour!)
|
||||||
|
g.FillRectangle(Brushes.LightGray, rect);
|
||||||
|
// Draw Rectangle
|
||||||
|
g.DrawRectangle(pen, rect.X, rect.Y, rect.Width, rect.Height);
|
||||||
|
//Pad time with at least one zero to make it 2 digits
|
||||||
|
string str = string.Format("{0}", num6).PadLeft(2, '0');
|
||||||
|
//Font height using pixels. Min is 25 pixels
|
||||||
|
Font font = new Font("Arial", (float) height, FontStyle.Bold, GraphicsUnit.Pixel);
|
||||||
|
// rectangle3 is the left half of the time rectangle
|
||||||
|
Rectangle rectangle3 = new Rectangle(rect.X, rect.Y, rect.Width / 2, rect.Height);
|
||||||
|
// In this left half, draw the hours (m_sfHour is the stringformat:
|
||||||
|
// Horizontal Center and Right Justified to rectangle3
|
||||||
|
g.DrawString(str, font, Brushes.Black, rectangle3, this.m_sfHour);
|
||||||
|
// Increment hour
|
||||||
|
num6++;
|
||||||
|
font.Dispose();
|
||||||
}
|
}
|
||||||
if (this.m_nColumns == 1)
|
|
||||||
|
// Pad minutes with zeros to be 2 digits long
|
||||||
|
string s = string.Format("{0}", num5);
|
||||||
|
s = ":" + s.PadLeft(2, '0');
|
||||||
|
// Rectangle starts at
|
||||||
|
// X: 2/3rds of width of Time Rectangle
|
||||||
|
// Y: Top of the current time slot cell
|
||||||
|
// Width: 1/3rd of the width of the Time Rectangle
|
||||||
|
// Height: Height of a time slot
|
||||||
|
Rectangle layoutRectangle = new Rectangle(rect.X + ((rect.Width * 2) / 3), rectangle2.Top, rect.Width / 3, rectangle2.Height);
|
||||||
|
// At in this rectangle, write the minutes. Horizontal Ctr and Right Justified to Rectangle
|
||||||
|
g.DrawString(s, this.m_fCell, Brushes.Black, layoutRectangle, this.m_sfRight);
|
||||||
|
Point point2 = new Point(rect.X + ((rect.Width * 2) / 3), rectangle2.Bottom);
|
||||||
|
Point point3 = new Point(rect.Right, rectangle2.Bottom);
|
||||||
|
g.DrawLine(pen, point2, point3);
|
||||||
|
num5 += this.m_nTimeScale;
|
||||||
|
num5 = (num5 >= 60) ? 0 : num5;
|
||||||
|
if ((i == (num4 - 1)) && !this.m_bScroll)
|
||||||
{
|
{
|
||||||
this.m_cellWidth = base.ClientRectangle.Width - this.m_col0Width;
|
g.TranslateTransform((float) -base.AutoScrollPosition.X, (float) -base.AutoScrollPosition.Y);
|
||||||
|
rect = new Rectangle(0, 0, this.m_col0Width, this.m_cellHeight);
|
||||||
|
g.FillRectangle(Brushes.LightGray, rect);
|
||||||
|
g.DrawRectangle(pen, rect);
|
||||||
|
g.TranslateTransform((float) base.AutoScrollPosition.X, (float) base.AutoScrollPosition.Y);
|
||||||
}
|
}
|
||||||
base.AutoScrollMinSize = new Size(600, this.m_cellHeight * num4);
|
}
|
||||||
g.FillRectangle(Brushes.LightGray, base.ClientRectangle);
|
for (int j = num4; j > -1; j--)
|
||||||
int num5 = 0;
|
{
|
||||||
int num6 = 0;
|
for (int k = 1; k < nColumns; k++)
|
||||||
bool flag = this.m_gridCells.CellCount == 0;
|
|
||||||
g.TranslateTransform((float) base.AutoScrollPosition.X, (float) base.AutoScrollPosition.Y);
|
|
||||||
for (int i = 1; i < num4; i++)
|
|
||||||
{
|
{
|
||||||
int x = 0;
|
int num12 = 0;
|
||||||
Point point = new Point(x, i * this.m_cellHeight);
|
if (k == 1)
|
||||||
Rectangle rectangle2 = new Rectangle(point.X, point.Y, this.m_cellWidth, this.m_cellHeight);
|
|
||||||
Rectangle rect = new Rectangle(0, rectangle2.Y, this.m_col0Width, rectangle2.Height * num3);
|
|
||||||
int height = rect.Height;
|
|
||||||
height = (height > (this.m_col0Width / 4)) ? (this.m_col0Width / 4) : height;
|
|
||||||
if (num5 == 0)
|
|
||||||
{
|
{
|
||||||
g.FillRectangle(Brushes.LightGray, rect);
|
num12 = this.m_col0Width;
|
||||||
g.DrawRectangle(pen, rect.X, rect.Y, rect.Width, rect.Height);
|
|
||||||
string str = string.Format("{0}", num6).PadLeft(2, '0');
|
|
||||||
Font font = new Font("Arial", (float) height, FontStyle.Bold, GraphicsUnit.Pixel);
|
|
||||||
Rectangle rectangle3 = new Rectangle(rect.X, rect.Y, rect.Width / 2, rect.Height);
|
|
||||||
g.DrawString(str, font, Brushes.Black, rectangle3, this.m_sfHour);
|
|
||||||
num6++;
|
|
||||||
font.Dispose();
|
|
||||||
}
|
}
|
||||||
string s = string.Format("{0}", num5);
|
if (k > 1)
|
||||||
s = ":" + s.PadLeft(2, '0');
|
|
||||||
Rectangle layoutRectangle = new Rectangle(rect.X + ((rect.Width * 2) / 3), rectangle2.Top, rect.Width / 3, rectangle2.Height);
|
|
||||||
g.DrawString(s, this.m_fCell, Brushes.Black, layoutRectangle, this.m_sfRight);
|
|
||||||
Point point2 = new Point(rect.X + ((rect.Width * 2) / 3), rectangle2.Bottom);
|
|
||||||
Point point3 = new Point(rect.Right, rectangle2.Bottom);
|
|
||||||
g.DrawLine(pen, point2, point3);
|
|
||||||
num5 += this.m_nTimeScale;
|
|
||||||
num5 = (num5 >= 60) ? 0 : num5;
|
|
||||||
if ((i == (num4 - 1)) && !this.m_bScroll)
|
|
||||||
{
|
{
|
||||||
g.TranslateTransform((float) -base.AutoScrollPosition.X, (float) -base.AutoScrollPosition.Y);
|
num12 = this.m_col0Width + (this.m_cellWidth * (k - 1));
|
||||||
rect = new Rectangle(0, 0, this.m_col0Width, this.m_cellHeight);
|
|
||||||
g.FillRectangle(Brushes.LightGray, rect);
|
|
||||||
g.DrawRectangle(pen, rect);
|
|
||||||
g.TranslateTransform((float) base.AutoScrollPosition.X, (float) base.AutoScrollPosition.Y);
|
|
||||||
}
|
}
|
||||||
}
|
Point point4 = new Point(num12, j * this.m_cellHeight);
|
||||||
for (int j = num4; j > -1; j--)
|
Rectangle r = new Rectangle(point4.X, point4.Y, this.m_cellWidth, this.m_cellHeight);
|
||||||
{
|
if (j != 0)
|
||||||
for (int k = 1; k < nColumns; k++)
|
|
||||||
{
|
{
|
||||||
int num12 = 0;
|
CGCell cellFromRowCol = null;
|
||||||
if (k == 1)
|
if (flag)
|
||||||
{
|
{
|
||||||
num12 = this.m_col0Width;
|
cellFromRowCol = new CGCell(r, j, k);
|
||||||
|
this.m_gridCells.AddCell(cellFromRowCol);
|
||||||
}
|
}
|
||||||
if (k > 1)
|
else
|
||||||
{
|
{
|
||||||
num12 = this.m_col0Width + (this.m_cellWidth * (k - 1));
|
cellFromRowCol = this.m_gridCells.GetCellFromRowCol(j, k);
|
||||||
|
cellFromRowCol.CellRectangle = r;
|
||||||
}
|
}
|
||||||
Point point4 = new Point(num12, j * this.m_cellHeight);
|
if (this.m_sResourcesArray.Count > 0)
|
||||||
Rectangle r = new Rectangle(point4.X, point4.Y, this.m_cellWidth, this.m_cellHeight);
|
|
||||||
if (j != 0)
|
|
||||||
{
|
{
|
||||||
CGCell cellFromRowCol = null;
|
if (this.m_selectedRange.CellIsInRange(cellFromRowCol))
|
||||||
if (flag)
|
|
||||||
{
|
{
|
||||||
cellFromRowCol = new CGCell(r, j, k);
|
g.FillRectangle(Brushes.Aquamarine, r);
|
||||||
this.m_gridCells.AddCell(cellFromRowCol);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cellFromRowCol = this.m_gridCells.GetCellFromRowCol(j, k);
|
g.FillRectangle(cellFromRowCol.AppointmentTypeColor, r);
|
||||||
cellFromRowCol.CellRectangle = r;
|
|
||||||
}
|
}
|
||||||
if (this.m_sResourcesArray.Count > 0)
|
g.DrawRectangle(pen, r.X, r.Y, r.Width, r.Height);
|
||||||
|
if (j == 1)
|
||||||
{
|
{
|
||||||
if (this.m_selectedRange.CellIsInRange(cellFromRowCol))
|
this.DrawAppointments(g, this.m_col0Width, this.m_cellWidth, this.m_cellHeight);
|
||||||
{
|
|
||||||
g.FillRectangle(Brushes.Aquamarine, r);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g.FillRectangle(cellFromRowCol.AppointmentTypeColor, r);
|
|
||||||
}
|
|
||||||
g.DrawRectangle(pen, r.X, r.Y, r.Width, r.Height);
|
|
||||||
if (j == 1)
|
|
||||||
{
|
|
||||||
this.DrawAppointments(g, this.m_col0Width, this.m_cellWidth, this.m_cellHeight);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
if (!this.m_bScroll)
|
continue;
|
||||||
|
}
|
||||||
|
if (!this.m_bScroll)
|
||||||
|
{
|
||||||
|
g.TranslateTransform(0f, (float) -base.AutoScrollPosition.Y);
|
||||||
|
Rectangle rectangle6 = r;
|
||||||
|
g.FillRectangle(Brushes.LightBlue, rectangle6);
|
||||||
|
g.DrawRectangle(pen, rectangle6.X, rectangle6.Y, rectangle6.Width, rectangle6.Height);
|
||||||
|
string str3 = "";
|
||||||
|
if (this.m_sResourcesArray.Count > 1)
|
||||||
{
|
{
|
||||||
g.TranslateTransform(0f, (float) -base.AutoScrollPosition.Y);
|
foreach (DictionaryEntry entry in this.m_ColumnInfoTable)
|
||||||
Rectangle rectangle6 = r;
|
|
||||||
g.FillRectangle(Brushes.LightBlue, rectangle6);
|
|
||||||
g.DrawRectangle(pen, rectangle6.X, rectangle6.Y, rectangle6.Width, rectangle6.Height);
|
|
||||||
string str3 = "";
|
|
||||||
if (this.m_sResourcesArray.Count > 1)
|
|
||||||
{
|
{
|
||||||
foreach (DictionaryEntry entry in this.m_ColumnInfoTable)
|
int num13 = (int) entry.Value;
|
||||||
|
num13++;
|
||||||
|
if (num13 == k)
|
||||||
{
|
{
|
||||||
int num13 = (int) entry.Value;
|
str3 = entry.Key.ToString();
|
||||||
num13++;
|
break;
|
||||||
if (num13 == k)
|
|
||||||
{
|
|
||||||
str3 = entry.Key.ToString();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
DateTime dtStart = this.m_dtStart;
|
|
||||||
if (k > 1)
|
|
||||||
{
|
|
||||||
dtStart = dtStart.AddDays((double) (k - 1));
|
|
||||||
}
|
|
||||||
string format = "ddd, MMM d";
|
|
||||||
str3 = dtStart.ToString(format, DateTimeFormatInfo.InvariantInfo);
|
|
||||||
}
|
|
||||||
g.DrawString(str3, this.m_fCell, Brushes.Black, rectangle6, this.m_sf);
|
|
||||||
g.TranslateTransform(0f, (float) base.AutoScrollPosition.Y);
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DateTime dtStart = this.m_dtStart;
|
||||||
|
if (k > 1)
|
||||||
|
{
|
||||||
|
dtStart = dtStart.AddDays((double) (k - 1));
|
||||||
|
}
|
||||||
|
string format = "ddd, MMM d";
|
||||||
|
str3 = dtStart.ToString(format, DateTimeFormatInfo.InvariantInfo);
|
||||||
|
}
|
||||||
|
g.DrawString(str3, this.m_fCell, Brushes.Black, rectangle6, this.m_sf);
|
||||||
|
g.TranslateTransform(0f, (float) base.AutoScrollPosition.Y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.m_bScroll = false;
|
|
||||||
pen.Dispose();
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
this.m_bScroll = false;
|
||||||
|
pen.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Rectangle GetAppointmentRect(CGAppointment a, int col0Width, int cellWidth, int cellHeight, out bool bRet)
|
public Rectangle GetAppointmentRect(CGAppointment a, int col0Width, int cellWidth, int cellHeight, out bool bRet)
|
||||||
|
@ -775,21 +848,28 @@
|
||||||
|
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.m_toolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// CalendarGrid
|
||||||
|
//
|
||||||
this.AutoScroll = true;
|
this.AutoScroll = true;
|
||||||
base.AutoScrollMinSize = new Size(600, 400);
|
this.AutoScrollMinSize = new System.Drawing.Size(600, 400);
|
||||||
this.BackColor = SystemColors.Window;
|
this.BackColor = System.Drawing.SystemColors.Window;
|
||||||
base.Paint += new PaintEventHandler(this.CalendarGrid_Paint);
|
this.Paint += new System.Windows.Forms.PaintEventHandler(this.CalendarGrid_Paint);
|
||||||
base.MouseDown += new MouseEventHandler(this.CalendarGrid_MouseDown);
|
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.CalendarGrid_MouseMove);
|
||||||
base.MouseUp += new MouseEventHandler(this.CalendarGrid_MouseUp);
|
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.CalendarGrid_DragDrop);
|
||||||
base.MouseMove += new MouseEventHandler(this.CalendarGrid_MouseMove);
|
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.CalendarGrid_MouseDown);
|
||||||
base.DragEnter += new DragEventHandler(this.CalendarGrid_DragEnter);
|
this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.CalendarGrid_MouseUp);
|
||||||
base.DragDrop += new DragEventHandler(this.CalendarGrid_DragDrop);
|
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.CalendarGrid_DragEnter);
|
||||||
this.m_toolTip = new ToolTip();
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private int MinSince80(DateTime d)
|
private int MinSince80(DateTime d)
|
||||||
{
|
{
|
||||||
DateTime time = new DateTime(0x7bc, 1, 1, 0, 0, 0);
|
DateTime time = new DateTime(1980, 1, 1, 0, 0, 0);
|
||||||
TimeSpan span = (TimeSpan) (d - time);
|
TimeSpan span = (TimeSpan) (d - time);
|
||||||
return (int) span.TotalMinutes;
|
return (int) span.TotalMinutes;
|
||||||
}
|
}
|
||||||
|
@ -994,6 +1074,7 @@
|
||||||
{
|
{
|
||||||
this.m_ApptOverlapTable.Add(num4, 0);
|
this.m_ApptOverlapTable.Add(num4, 0);
|
||||||
}
|
}
|
||||||
|
// Here it draws the Dates on Top
|
||||||
if (this.m_ApptOverlapTable.Count != 0)
|
if (this.m_ApptOverlapTable.Count != 0)
|
||||||
{
|
{
|
||||||
int num5 = (this.m_sResourcesArray.Count > 1) ? 1 : this.StartDate.DayOfYear;
|
int num5 = (this.m_sResourcesArray.Count > 1) ? 1 : this.StartDate.DayOfYear;
|
||||||
|
@ -1061,17 +1142,25 @@
|
||||||
return rectangle2.IntersectsWith(rect);
|
return rectangle2.IntersectsWith(rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The purpose of this is to properly draw the date boxes at the top of the calendar grid.
|
||||||
|
/// Otherwise, when scrolling, it gets garbled.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg">Handles two messages:
|
||||||
|
/// WM_VSCROLL (0x115 - Vertical Scrolling)
|
||||||
|
/// WM_HSCROLL (0x114 - Horizontal Scrolling)
|
||||||
|
/// </param>
|
||||||
protected override void WndProc(ref Message msg)
|
protected override void WndProc(ref Message msg)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (msg.Msg == 0x115)
|
if (msg.Msg == WM_VSCROLL)
|
||||||
{
|
{
|
||||||
this.m_bScroll = true;
|
this.m_bScroll = true;
|
||||||
base.Invalidate(false);
|
base.Invalidate(false);
|
||||||
this.m_bScroll = false;
|
this.m_bScroll = false;
|
||||||
}
|
}
|
||||||
if (msg.Msg == 0x114)
|
if (msg.Msg == WM_HSCROLL)
|
||||||
{
|
{
|
||||||
base.Invalidate(false);
|
base.Invalidate(false);
|
||||||
}
|
}
|
||||||
|
@ -1272,6 +1361,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -237,6 +237,13 @@ namespace IndianHealthService.ClinicalScheduling
|
||||||
DataRow[] nRow = m_dtProvider.Select("DEFAULT='YES'", "NAME ASC");
|
DataRow[] nRow = m_dtProvider.Select("DEFAULT='YES'", "NAME ASC");
|
||||||
if (nRow.Length > 0) nFind = m_dtProvider.Rows.IndexOf(nRow[0]);
|
if (nRow.Length > 0) nFind = m_dtProvider.Rows.IndexOf(nRow[0]);
|
||||||
cboProvider.SelectedIndex = nFind;
|
cboProvider.SelectedIndex = nFind;
|
||||||
|
|
||||||
|
//an experiment: LINQ
|
||||||
|
var defProv = from Provider in m_dtProvider.AsEnumerable()
|
||||||
|
where
|
||||||
|
Provider["DEFAULT"] == "YES"
|
||||||
|
select Provider;
|
||||||
|
|
||||||
}
|
}
|
||||||
//otherwise, just use the default provider table
|
//otherwise, just use the default provider table
|
||||||
else
|
else
|
||||||
|
|
|
@ -45,10 +45,19 @@
|
||||||
</member>
|
</member>
|
||||||
<member name="T:IndianHealthService.ClinicalScheduling.CalendarGrid">
|
<member name="T:IndianHealthService.ClinicalScheduling.CalendarGrid">
|
||||||
<summary>
|
<summary>
|
||||||
This class was regenerated from Calendargrid.dll using Reflector.exe
|
This class is reponsible for rendering the Calendar Grid.
|
||||||
by Sam Habiel for WorldVista. The original source code is lost.
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IndianHealthService.ClinicalScheduling.CalendarGrid.WndProc(System.Windows.Forms.Message@)">
|
||||||
|
<summary>
|
||||||
|
The purpose of this is to properly draw the date boxes at the top of the calendar grid.
|
||||||
|
Otherwise, when scrolling, it gets garbled.
|
||||||
|
</summary>
|
||||||
|
<param name="msg">Handles two messages:
|
||||||
|
WM_VSCROLL (0x115 - Vertical Scrolling)
|
||||||
|
WM_HSCROLL (0x114 - Horizontal Scrolling)
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
<member name="T:IndianHealthService.ClinicalScheduling.DPatientLookup">
|
<member name="T:IndianHealthService.ClinicalScheduling.DPatientLookup">
|
||||||
<summary>
|
<summary>
|
||||||
Summary description for DPatientLookup.
|
Summary description for DPatientLookup.
|
||||||
|
|
Loading…
Reference in New Issue