diff --git a/PROMS/TablePicker/App.ico b/PROMS/TablePicker/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/PROMS/TablePicker/App.ico differ diff --git a/PROMS/TablePicker/AssemblyInfo.cs b/PROMS/TablePicker/AssemblyInfo.cs new file mode 100644 index 00000000..4acc31e6 --- /dev/null +++ b/PROMS/TablePicker/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("2.1.18.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/PROMS/TablePicker/TablePicker.cs b/PROMS/TablePicker/TablePicker.cs new file mode 100644 index 00000000..c29f2ac5 --- /dev/null +++ b/PROMS/TablePicker/TablePicker.cs @@ -0,0 +1,235 @@ +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; + +namespace Accentra.Controls +{ + /// + /// A FrontPage style table dimensions picker. + /// + public class TablePicker : System.Windows.Forms.Form + { + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + public TablePicker() + { + // Activates double buffering + SetStyle(ControlStyles.UserPaint, true); + SetStyle(ControlStyles.AllPaintingInWmPaint, true); + SetStyle(ControlStyles.DoubleBuffer, true); + + // + // Required for Windows Form Designer support + // + InitializeComponent(); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + // + // TablePicker + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.BackColor = System.Drawing.Color.WhiteSmoke; + this.ClientSize = new System.Drawing.Size(304, 256); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "TablePicker"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.Text = "TablePicker"; + this.Click += new System.EventHandler(this.TablePicker_Click); + this.Paint += new System.Windows.Forms.PaintEventHandler(this.TablePicker_Paint); + this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.TablePicker_MouseMove); + this.MouseEnter += new System.EventHandler(this.TablePicker_MouseEnter); + this.MouseLeave += new System.EventHandler(this.TablePicker_MouseLeave); + this.Deactivate += new System.EventHandler(this.TablePicker_Deactivate); + + } + #endregion + + private Pen BeigePen = new Pen(Color.Beige, 1); + private Brush BeigeBrush = System.Drawing.Brushes.Beige; + private Brush GrayBrush = System.Drawing.Brushes.Gray; + private Brush BlackBrush = System.Drawing.Brushes.Black; + private Brush WhiteBrush = System.Drawing.Brushes.White; + private Pen BorderPen = new Pen(SystemColors.ControlDark); + private Pen BluePen = new Pen(Color.SlateGray, 1); + + private string DispText = "Cancel"; // Display text + private int DispHeight = 20; // Display ("Table 1x1", "Cancel") + private Font DispFont = new Font("Tahoma", 8.25F); + private int SquareX = 20; // Width of squares + private int SquareY = 20; // Height of squares + private int SquareQX = 3; // Number of visible squares (X) + private int SquareQY = 3; // Number of visible squares (Y) + private int SelQX = 1; // Number of selected squares (x) + private int SelQY = 1; // Number of selected squares (y) + + private bool bHiding = false; + private bool bCancel = true; // Determines whether to Cancel + + /// + /// Similar to + /// == , + /// but is used as a state value before the form + /// is hidden and cancellation is finalized. + /// + public bool Cancel { + get { + return bCancel; + } + } + + /// + /// Returns the number of columns, or the horizontal / X count, + /// of the selection. + /// + public int SelectedColumns { + get { + return SelQX; + } + } + + /// + /// Returns the number of rows, or the vertical / Y count, + /// of the selection. + /// + public int SelectedRows { + get { + return SelQY; + } + } + + private void TablePicker_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { + Graphics g = e.Graphics; + + // First, increment the number of visible squares if the + // number of selected squares is equal to or greater than the + // number of visible squares. + if (SelQX > SquareQX - 1) SquareQX = SelQX + 1; + if (SelQY > SquareQY - 1) SquareQY = SelQY + 1; + + // Second, expand the dimensions of this form according to the + // number of visible squares. + this.Width = (SquareX * (SquareQX)) + 5; + this.Height = (SquareY * (SquareQY)) + 6 + DispHeight; + + // Draw an outer rectangle for the border. + g.DrawRectangle(BorderPen, 0, 0, this.Width - 1, this.Height - 1); + + // Draw the text to describe the selection. Note that since + // the text is left-justified, only the Y (vertical) position + // is calculated. + int dispY = ((SquareY - 1) * SquareQY) + SquareQY + 4; + if (this.Cancel) { + DispText = "Cancel"; + } else { + DispText = SelQX.ToString() + " by " + SelQY.ToString() + " Table"; + } + g.DrawString(DispText, DispFont, BlackBrush, 3, dispY + 2); + + // Draw each of the squares and fill with the default color. + for (int x=0; x + /// Detect termination. Hides form. + /// + private void TablePicker_Deactivate(object sender, System.EventArgs e) { + + // bCancel = true + // and DialogResult = DialogResult.Cancel + // were previously already set in MouseLeave. + + this.Hide(); + } + + /// + /// Detects mouse movement. Tracks table dimensions selection. + /// + private void TablePicker_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { + int sqx = (e.X / SquareX) + 1; + int sqy = (e.Y / SquareY) + 1; + bool changed = false; + if (sqx != SelQX) { + changed = true; + SelQX = sqx; + } + if (sqy != SelQY) { + changed = true; + SelQY = sqy; + } + + // Ask Windows to call the Paint event again. + if (changed) Invalidate(); + } + + /// + /// Detects mouse sudden exit from the form to indicate + /// escaped (canceling) state. + /// + private void TablePicker_MouseLeave(object sender, System.EventArgs e) { + if (!bHiding) bCancel = true; + this.DialogResult = DialogResult.Cancel; + this.Invalidate(); + } + + /// + /// Cancels the prior cancellation caused by MouseLeave. + /// + private void TablePicker_MouseEnter(object sender, System.EventArgs e) { + bHiding = false; + bCancel = false; + this.DialogResult = DialogResult.OK; + this.Invalidate(); + } + + /// + /// Detects that the user made a selection by clicking. + /// + private void TablePicker_Click(object sender, System.EventArgs e) { + bHiding = true; // Not the same as Visible == false + // because bHiding suggests that the control + // is still "active" (not canceled). + this.Hide(); + } + } +} diff --git a/PROMS/TablePicker/TablePicker.csproj b/PROMS/TablePicker/TablePicker.csproj new file mode 100644 index 00000000..c3832f23 --- /dev/null +++ b/PROMS/TablePicker/TablePicker.csproj @@ -0,0 +1,138 @@ + + + Local + 8.0.50727 + 2.0 + {23DECB23-7CEA-433E-88BD-67DA7689B89E} + Debug + AnyCPU + App.ico + + + TablePicker + ..\PowerBlog2\PB2.snk + JScript + Grid + IE50 + false + Library + Accentra.Controls.TablePicker + OnBuildSuccess + + + + + + + SAK + SAK + SAK + SAK + + + ..\VEPROMS User Interface\bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Form + + + TablePicker.cs + Designer + + + + + + + + + + \ No newline at end of file diff --git a/PROMS/TablePicker/TablePicker.csproj.vspscc b/PROMS/TablePicker/TablePicker.csproj.vspscc new file mode 100644 index 00000000..b6d32892 --- /dev/null +++ b/PROMS/TablePicker/TablePicker.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/PROMS/TablePicker/TablePicker.resx b/PROMS/TablePicker/TablePicker.resx new file mode 100644 index 00000000..7763e821 --- /dev/null +++ b/PROMS/TablePicker/TablePicker.resx @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + (Default) + + + False + + + False + + + 8, 8 + + + TablePicker + + + True + + + 80 + + + True + + + Private + + \ No newline at end of file