Our members are dedicated to PASSION and PURPOSE without drama!

[ALPHA] New Lw tracker

Started by VLS, July 26, 2013, 12:37:06 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

VLS

Thread for the new Lw tracker.

Cycle is: new alpha version is release, sponsors test, feature confirmed so we label it OK... then Rinse & Repeat until a feature-complete version can be released.
Email/Paypal: betselectiongmail.com
-- Victor

VLS

Lw Tracker (Revision 2), First Alpha:

Sponsor download: [attachmini=1]






What I need is confirmation it adds Lw's correctly.

After that, UNDO for Alpha 2!
Email/Paypal: betselectiongmail.com
-- Victor

VLS


It recreates its own state on every spin in order to avoid depending on previous variables (which might be prone to leftover bugs).

Code (Csharp) Select
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace LwTrackerR2
{
    public partial class FormTracker : Form
    {
        // History list
        List<int> history = new List<int>();

        // List for holding last two dozens or columns
        List<int> lastTwo = new List<int>();

        // Lw Trackers
        List<string> ld = new List<string>(); // Hit on last two dozens
        List<string> jd = new List<string>(); // Jump from last dozen
        List<string> lc = new List<string>(); // Hit on last two columns
        List<string> jc = new List<string>(); // Jump from last column

        // Set a bigger font for DataGrid rows
        Font BigFont = new System.Drawing.Font(FontFamily.GenericMonospace, 15.75F, System.Drawing.FontStyle.Bold ^ FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

        // Tracker as BindingList of TrackerData (bound to DataGridView)
        BindingList<TrackerData> Tracker = new BindingList<TrackerData>();

        /// <summary>
        /// Constructor
        /// </summary>
        public FormTracker()
        {
            // Initialize
            InitializeComponent();

            // Set icon
            this.Icon = Properties.Resources.roulette_16_to_256;

            // Alternating background
            dgvTracker.RowsDefaultCellStyle.BackColor = Color.White;
            dgvTracker.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGray;

            // Prevent automatic generation of columns
            dgvTracker.AutoGenerateColumns = false;

            // Prevent resize
            dgvTracker.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
            dgvTracker.AllowUserToResizeRows = false;

            // Add Name column
            DataGridViewTextBoxColumn nameColumn = new DataGridViewTextBoxColumn();
            nameColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            nameColumn.DataPropertyName = "Name";
            nameColumn.HeaderText = "Name";
            nameColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            nameColumn.DefaultCellStyle.Font = BigFont;
            dgvTracker.Columns.Add(nameColumn);

            // Add Advisor column
            DataGridViewTextBoxColumn advisorColumn = new DataGridViewTextBoxColumn();
            advisorColumn.DataPropertyName = "Advisor";
            advisorColumn.HeaderText = "Advisor";
            advisorColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            advisorColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            advisorColumn.DefaultCellStyle.Font = BigFont;
            dgvTracker.Columns.Add(advisorColumn);

            // Add Registry column
            DataGridViewTextBoxColumn registryColumn = new DataGridViewTextBoxColumn();
            registryColumn.DataPropertyName = "Registry";
            registryColumn.HeaderText = "Registry";
            registryColumn.DefaultCellStyle.Font = BigFont;
            registryColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvTracker.Columns.Add(registryColumn);

            // Set dgvTracker DataSource
            dgvTracker.DataSource = Tracker;
        }


        /// <summary>
        /// Tracker form's entry point
        /// </summary>
        private void FormTracker_Load(object sender, EventArgs e)
        {
            // Populate tracker's base rows
            Tracker.Add(new TrackerData("LD"));
            Tracker.Add(new TrackerData("JD"));
            Tracker.Add(new TrackerData("LC"));
            Tracker.Add(new TrackerData("JC"));
        }

        /// <summary>
        /// Prevents form closing
        /// </summary>
        private void FormTracker_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Prevent actual closing
            e.Cancel = true;
        }

        /// <summary>
        /// Processes adding a new item to the tracker
        /// </summary>
        /// <param name="n">Number</param>
        public void addNumber(int n)
        {
            // Variable for holding last dozen or column
            int last = 0;

            // Variable for holding beforelast dozen or column
            int beforelast = 0;

            // Variable for holding last addition to registry
            string reg = string.Empty;

            // String for advisors
            string ldAdv = string.Empty;
            string lcAdv = string.Empty;

            // Character arrays for advisors
            char[] jdAdv = null;
            char[] jcAdv = null;

            // Check for zero
            if (n == 0)
            {
                // Add zero to all in the registry
                ld.Add("0");
                jd.Add("0");
                lc.Add("0");
                jc.Add("0");

                /* Let's update all with zero (keeping last advisor) */

                // LD
                Tracker[0].Registry = string.Join("", ld.ToArray());

                // JD
                Tracker[1].Registry = string.Join("", jd.ToArray());

                // LC
                Tracker[2].Registry = string.Join("", lc.ToArray());

                // JC
                Tracker[3].Registry = string.Join("", jc.ToArray());

                // Refresh
                dgvTracker.Refresh();

                // Exit
                return;
            }

            // Insert number into history
            history.Insert(0, n);

            // Check there are at least 2 elements in history
            if (history.Count < 2)
            {
                // Less than two: halt.
                return;
            }

            /* Process LD */

            // Get last dozen
            last = Program.GetDozen(n);

            // Clear list
            lastTwo.Clear();

            // Set LD
            for (int h = 1; h < history.Count; h++)
            {
                // Set dozen for current iteration
                int dozen = Program.GetDozen(history[h]);

                // If dozen is zero...
                if (dozen == 0)
                {
                    // ...jump to next iteration
                    continue;
                }

                // Set beforelast
                if (beforelast == 0 && dozen != last)
                {
                    // Set it!
                    beforelast = dozen;
                }

                // Check for a halt
                if (reg != string.Empty)
                {
                    // Skip iteration
                    continue;
                }

                // Add if it doesn't exist
                if (!lastTwo.Contains(dozen))
                {
                    // Add current one
                    lastTwo.Add(dozen);
                }

                // Check if last dozen is present
                if (lastTwo.Contains(last))
                {
                    // Win
                    reg = "w";

                    // Skip iteration
                    continue;
                }

                // Halt on two elements
                if (lastTwo.Count == 2)
                {
                    // Lose
                    reg = "L";

                    // Halt
                    break;
                }
            }

            // Add hyphen if there's nothing to add
            if (reg.Length == 0)
            {
                // Add hyphen
                reg = "-";
            }

            // Add reg to ld
            ld.Add(reg);

            // Compute advisor
            ldAdv = last.ToString() + (beforelast != 0 ? "," + beforelast.ToString() : "");

            /* Process JD */

            // Reset reg
            reg = string.Empty;

            // Set JD
            for (int h = 1; h < history.Count; h++)
            {
                // Set dozen for current iteration
                int dozen = Program.GetDozen(history[h]);

                // If dozen is zero...
                if (dozen == 0)
                {
                    // ...jump to next iteration
                    continue;
                }

                // Set reg
                if (dozen != last)
                {
                    // Win
                    reg = "w";
                }
                else
                {
                    // Lose
                    reg = "L";
                }

                // Break on addition
                if (reg.Length > 0) { break; }
            }

            // Add hyphen if there's nothing to add
            if (reg.Length == 0)
            {
                // Add hyphen
                reg = "-";
            }

            // Add reg to jd
            jd.Add(reg);

            // Set advisor base
            jdAdv = "123".Replace(last.ToString(), "").ToCharArray();

            /* Process LC */

            // Reset last
            last = 0;

            // Reset beforelast
            beforelast = 0;

            // Reset reg
            reg = string.Empty;

            // Get last column
            last = Program.GetColumn(n);

            // Clear list
            lastTwo.Clear();

            // Set LC
            for (int h = 1; h < history.Count; h++)
            {
                // Set column for current iteration
                int column = Program.GetColumn(history[h]);

                // If column is zero...
                if (column == 0)
                {
                    // ...jump to next iteration
                    continue;
                }

                // Set beforelast
                if (beforelast == 0 && column != last)
                {
                    // Set it!
                    beforelast = column;
                }

                // Check for a halt
                if (reg != string.Empty)
                {
                    // Skip iteration
                    continue;
                }

                // Add if it doesn't exist
                if (!lastTwo.Contains(column))
                {
                    // Add current one
                    lastTwo.Add(column);
                }

                // Check if last column is present
                if (lastTwo.Contains(last))
                {
                    // Win
                    reg = "w";

                    // Skip iteration
                    continue;
                }

                // Halt on two elements
                if (lastTwo.Count == 2)
                {
                    // Lose
                    reg = "L";

                    // Halt
                    break;
                }
            }

            // Add hyphen if there's nothing to add
            if (reg.Length == 0)
            {
                // Add hyphen
                reg = "-";
            }

            // Add reg to lc
            lc.Add(reg);

            // Compute advisor
            lcAdv = last.ToString() + (beforelast != 0 ? "," + beforelast.ToString() : "");

            /* Process JC */

            // Reset reg
            reg = string.Empty;

            // Set JC
            for (int h = 1; h < history.Count; h++)
            {
                // Set column for current iteration
                int column = Program.GetColumn(history[h]);

                // If column is zero...
                if (column == 0)
                {
                    // ...jump to next iteration
                    continue;
                }

                // Set reg
                if (column != last)
                {
                    // Win
                    reg = "w";
                }
                else
                {
                    // Lose
                    reg = "L";
                }

                // Break on addition
                if (reg.Length > 0) { break; }
            }

            // Add hyphen if there's nothing to add
            if (reg.Length == 0)
            {
                // Add hyphen
                reg = "-";
            }

            // Add reg to jc
            jc.Add(reg);

            // Set advisor base
            jcAdv = "123".Replace(last.ToString(), "").ToCharArray();

            // LD
            Tracker[0].Advisor = ldAdv;
            Tracker[0].Registry = string.Join("", ld.ToArray());

            // JD
            Tracker[1].Advisor = jdAdv[0] + "," + jdAdv[1];
            Tracker[1].Registry = string.Join("", jd.ToArray());

            // LC
            Tracker[2].Advisor = lcAdv;
            Tracker[2].Registry = string.Join("", lc.ToArray());

            // JC
            Tracker[3].Advisor = jcAdv[0] + "," + jcAdv[1];
            Tracker[3].Registry = string.Join("", jc.ToArray());

            // Refresh
            dgvTracker.Refresh();
        }

        /// <summary>
        /// Remove number from tracker
        /// </summary>
        public void removeNumber()
        {
            // UNDO CODE HERE
        }
    }
}
Email/Paypal: betselectiongmail.com
-- Victor

TwoCatSam

First, a compliment.............

I'm in awe of anyone who can write that stuff. 

I have checked the tracker for all four functions and I can find no mistakes. 

Sam
If dogs don't go to heaven, when I die I want to go where dogs go.   ...Will Rogers

VLS

Thanks Sam,

I'm glad you found no mistakes.

Now we move to ALPHA 2: Undo.

Sponsor download: [attachmini=1]

Please test & report on undo functionality.
Email/Paypal: betselectiongmail.com
-- Victor

VLS

Source code.

Code (Csharp) Select
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace LwTrackerR2
{
    public partial class FormTracker : Form
    {
        // History list
        List<int> history = new List<int>();

        // List for holding last two dozens or columns
        List<int> lastTwo = new List<int>();

        // Lw Trackers
        List<string> ld = new List<string>(); // Hit on last two dozens
        List<string> jd = new List<string>(); // Jump from last dozen
        List<string> lc = new List<string>(); // Hit on last two columns
        List<string> jc = new List<string>(); // Jump from last column

        // Set a bigger font for DataGrid rows
        Font BigFont = new System.Drawing.Font(FontFamily.GenericMonospace, 15.75F, System.Drawing.FontStyle.Bold ^ FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

        // Tracker as BindingList of TrackerData (bound to DataGridView)
        BindingList<TrackerData> Tracker = new BindingList<TrackerData>();

        /// <summary>
        /// Constructor
        /// </summary>
        public FormTracker()
        {
            // Initialize
            InitializeComponent();

            // Set icon
            this.Icon = Properties.Resources.roulette_16_to_256;

            // Alternating background
            dgvTracker.RowsDefaultCellStyle.BackColor = Color.White;
            dgvTracker.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGray;

            // Prevent automatic generation of columns
            dgvTracker.AutoGenerateColumns = false;

            // Prevent resize
            dgvTracker.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
            dgvTracker.AllowUserToResizeRows = false;

            // Add Name column
            DataGridViewTextBoxColumn nameColumn = new DataGridViewTextBoxColumn();
            nameColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            nameColumn.DataPropertyName = "Name";
            nameColumn.HeaderText = "Name";
            nameColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            nameColumn.DefaultCellStyle.Font = BigFont;
            dgvTracker.Columns.Add(nameColumn);

            // Add Advisor column
            DataGridViewTextBoxColumn advisorColumn = new DataGridViewTextBoxColumn();
            advisorColumn.DataPropertyName = "Advisor";
            advisorColumn.HeaderText = "Advisor";
            advisorColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            advisorColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            advisorColumn.DefaultCellStyle.Font = BigFont;
            dgvTracker.Columns.Add(advisorColumn);

            // Add Registry column
            DataGridViewTextBoxColumn registryColumn = new DataGridViewTextBoxColumn();
            registryColumn.DataPropertyName = "Registry";
            registryColumn.HeaderText = "Registry";
            registryColumn.DefaultCellStyle.Font = BigFont;
            registryColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvTracker.Columns.Add(registryColumn);

            // Set dgvTracker DataSource
            dgvTracker.DataSource = Tracker;
        }


        /// <summary>
        /// Tracker form's entry point
        /// </summary>
        private void FormTracker_Load(object sender, EventArgs e)
        {
            // Populate tracker's base rows
            Tracker.Add(new TrackerData("LD"));
            Tracker.Add(new TrackerData("JD"));
            Tracker.Add(new TrackerData("LC"));
            Tracker.Add(new TrackerData("JC"));
        }

        /// <summary>
        /// Prevents form closing
        /// </summary>
        private void FormTracker_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Prevent actual closing
            e.Cancel = true;
        }

        /// <summary>
        /// Processes adding a new item to the tracker
        /// </summary>
        /// <param name="n">Number</param>
        public void addNumber(int n)
        {
            // Variable for holding last dozen or column
            int last = 0;

            // Variable for holding beforelast dozen or column
            int beforelast = 0;

            // Variable for holding last addition to registry
            string reg = string.Empty;

            // String for advisors
            string ldAdv = string.Empty;
            string lcAdv = string.Empty;

            // Character arrays for advisors
            char[] jdAdv = null;
            char[] jcAdv = null;

            // Check for zero
            if (n == 0)
            {
                // Add zero to all in the registry
                ld.Add("0");
                jd.Add("0");
                lc.Add("0");
                jc.Add("0");

                /* Let's update all with zero (keeping last advisor) */

                // LD
                Tracker[0].Registry = string.Join("", ld.ToArray());

                // JD
                Tracker[1].Registry = string.Join("", jd.ToArray());

                // LC
                Tracker[2].Registry = string.Join("", lc.ToArray());

                // JC
                Tracker[3].Registry = string.Join("", jc.ToArray());

                // Refresh
                dgvTracker.Refresh();

                // Exit
                return;
            }

            // Insert number into history
            history.Insert(0, n);

            // Check there are at least 2 elements in history
            if (history.Count < 2)
            {
                // Less than two: halt.
                return;
            }

            /* Process LD */

            // Get last dozen
            last = Program.GetDozen(n);

            // Clear list
            lastTwo.Clear();

            // Set LD
            for (int h = 1; h < history.Count; h++)
            {
                // Set dozen for current iteration
                int dozen = Program.GetDozen(history[h]);

                // If dozen is zero...
                if (dozen == 0)
                {
                    // ...jump to next iteration
                    continue;
                }

                // Set beforelast
                if (beforelast == 0 && dozen != last)
                {
                    // Set it!
                    beforelast = dozen;
                }

                // Check for a halt
                if (reg != string.Empty)
                {
                    // Skip iteration
                    continue;
                }

                // Add if it doesn't exist
                if (!lastTwo.Contains(dozen))
                {
                    // Add current one
                    lastTwo.Add(dozen);
                }

                // Check if last dozen is present
                if (lastTwo.Contains(last))
                {
                    // Win
                    reg = "w";

                    // Skip iteration
                    continue;
                }

                // Halt on two elements
                if (lastTwo.Count == 2)
                {
                    // Lose
                    reg = "L";

                    // Halt
                    break;
                }
            }

            // Add hyphen if there's nothing to add
            if (reg.Length == 0)
            {
                // Add hyphen
                reg = "-";
            }

            // Add reg to ld
            ld.Add(reg);

            // Compute advisor
            ldAdv = last.ToString() + (beforelast != 0 ? "," + beforelast.ToString() : "");

            /* Process JD */

            // Reset reg
            reg = string.Empty;

            // Set JD
            for (int h = 1; h < history.Count; h++)
            {
                // Set dozen for current iteration
                int dozen = Program.GetDozen(history[h]);

                // If dozen is zero...
                if (dozen == 0)
                {
                    // ...jump to next iteration
                    continue;
                }

                // Set reg
                if (dozen != last)
                {
                    // Win
                    reg = "w";
                }
                else
                {
                    // Lose
                    reg = "L";
                }

                // Break on addition
                if (reg.Length > 0) { break; }
            }

            // Add hyphen if there's nothing to add
            if (reg.Length == 0)
            {
                // Add hyphen
                reg = "-";
            }

            // Add reg to jd
            jd.Add(reg);

            // Set advisor base
            jdAdv = "123".Replace(last.ToString(), "").ToCharArray();

            /* Process LC */

            // Reset last
            last = 0;

            // Reset beforelast
            beforelast = 0;

            // Reset reg
            reg = string.Empty;

            // Get last column
            last = Program.GetColumn(n);

            // Clear list
            lastTwo.Clear();

            // Set LC
            for (int h = 1; h < history.Count; h++)
            {
                // Set column for current iteration
                int column = Program.GetColumn(history[h]);

                // If column is zero...
                if (column == 0)
                {
                    // ...jump to next iteration
                    continue;
                }

                // Set beforelast
                if (beforelast == 0 && column != last)
                {
                    // Set it!
                    beforelast = column;
                }

                // Check for a halt
                if (reg != string.Empty)
                {
                    // Skip iteration
                    continue;
                }

                // Add if it doesn't exist
                if (!lastTwo.Contains(column))
                {
                    // Add current one
                    lastTwo.Add(column);
                }

                // Check if last column is present
                if (lastTwo.Contains(last))
                {
                    // Win
                    reg = "w";

                    // Skip iteration
                    continue;
                }

                // Halt on two elements
                if (lastTwo.Count == 2)
                {
                    // Lose
                    reg = "L";

                    // Halt
                    break;
                }
            }

            // Add hyphen if there's nothing to add
            if (reg.Length == 0)
            {
                // Add hyphen
                reg = "-";
            }

            // Add reg to lc
            lc.Add(reg);

            // Compute advisor
            lcAdv = last.ToString() + (beforelast != 0 ? "," + beforelast.ToString() : "");

            /* Process JC */

            // Reset reg
            reg = string.Empty;

            // Set JC
            for (int h = 1; h < history.Count; h++)
            {
                // Set column for current iteration
                int column = Program.GetColumn(history[h]);

                // If column is zero...
                if (column == 0)
                {
                    // ...jump to next iteration
                    continue;
                }

                // Set reg
                if (column != last)
                {
                    // Win
                    reg = "w";
                }
                else
                {
                    // Lose
                    reg = "L";
                }

                // Break on addition
                if (reg.Length > 0) { break; }
            }

            // Add hyphen if there's nothing to add
            if (reg.Length == 0)
            {
                // Add hyphen
                reg = "-";
            }

            // Add reg to jc
            jc.Add(reg);

            // Set advisor base
            jcAdv = "123".Replace(last.ToString(), "").ToCharArray();

            // LD
            Tracker[0].Advisor = ldAdv;
            Tracker[0].Registry = string.Join("", ld.ToArray());

            // JD
            Tracker[1].Advisor = jdAdv[0] + "," + jdAdv[1];
            Tracker[1].Registry = string.Join("", jd.ToArray());

            // LC
            Tracker[2].Advisor = lcAdv;
            Tracker[2].Registry = string.Join("", lc.ToArray());

            // JC
            Tracker[3].Advisor = jcAdv[0] + "," + jcAdv[1];
            Tracker[3].Registry = string.Join("", jc.ToArray());

            // Refresh
            dgvTracker.Refresh();
        }

        /// <summary>
        /// Remove number from tracker
        /// </summary>
        public void removeNumber()
        {
            // Declare beforelast
            int beforelast;

            // Let's act according to current history's length
            switch (history.Count)
            {
                // Zero
                case 0:
                    // Exit flat
                    break;

                // One
                case 1:
                    // Clear history
                    history.Clear();

                    /* Clear trackers */

                    ld.Clear();
                    jd.Clear();
                    lc.Clear();
                    jc.Clear();

                    /* Clear datagridiew  */

                    clearDgv();

                    // End case 1
                    break;
                // Two
                case 2:
                    // Save beforelast number
                    beforelast = history[history.Count - 2];

                    // Remove two elements from history
                    history.RemoveRange(history.Count - 2, 2);

                    /* Clear trackers */

                    ld.Clear();
                    jd.Clear();
                    lc.Clear();
                    jc.Clear();

                    /* Clear datagridiew  */

                    clearDgv();

                    // Add saved number
                    addNumber(beforelast);

                    // End case 1
                    break;
                // More
                default:
                    // Save beforelast number
                    beforelast = history[history.Count - 2];

                    // Remove two elements from history
                    history.RemoveRange(history.Count - 2, 2);

                    // Remove two elements from trackers
                    ld.RemoveRange(ld.Count - 2, 2);
                    jd.RemoveRange(jd.Count - 2, 2);
                    lc.RemoveRange(lc.Count - 2, 2);
                    jc.RemoveRange(jc.Count - 2, 2);
                   
                    // Add saved number
                    addNumber(beforelast);

                    // End default
                    break;
            }

            /* Refresh DataGridView */

            // C# Quirk, "can't fall through case 0" can make a good case for an extra check
            dgvTracker.Refresh();
        }
       
        /// <summary>
        /// Clears advisors and registry on dgvTracker
        /// </summary>
        private void clearDgv()
        {
            // LD
            Tracker[0].Advisor = string.Empty;
            Tracker[0].Registry = string.Empty;

            // JD
            Tracker[1].Advisor = string.Empty;
            Tracker[1].Registry = string.Empty;

            // LC
            Tracker[2].Advisor = string.Empty;
            Tracker[2].Registry = string.Empty;

            // JC
            Tracker[3].Advisor = string.Empty;
            Tracker[3].Registry = string.Empty;
        }
    }
}
Email/Paypal: betselectiongmail.com
-- Victor

TwoCatSam

Vic

The "undo" seems to work perfectly.  I have one suggestion:  Change that blue to clear.  Then it would be uniform.

Sam
If dogs don't go to heaven, when I die I want to go where dogs go.   ...Will Rogers

VLS

Quote from: TwoCatSam on August 05, 2013, 11:45:01 PMThe "undo" seems to work perfectly.

Good to know.

Next we make the windows be "sticky" and let the generated Lw's accommodate current width. Then we move this to BETA to make it closer to a release for the whole community to enjoy.




Quote from: TwoCatSam on August 05, 2013, 11:45:01 PMI have one suggestion:  Change that blue to clear.  Then it would be uniform.
The "blue one" is for people to highlight one of the four by clicking on it.

Check it out. You might like it --or perhaps making a setting to toggle it on/off(?)
Email/Paypal: betselectiongmail.com
-- Victor

TwoCatSam

If dogs don't go to heaven, when I die I want to go where dogs go.   ...Will Rogers