/// <summary>
 /// Evolved constructor
 /// </summary>
 /// <param name="p_Id">Id code</param>
 /// <param name="p_bMasterLedOn">Led On definition</param>
 /// <param name="p_pInitalLocation">Initial location</param>
 /// <param name="p_dDirection">Direction</param>
 /// <param name="p_sSpeed">Speed</param>
 public LedMatrixItem(int p_Id,
                      bool[,] p_bMasterLedOn,
                      Point p_pInitalLocation,
                      LedMatrixItemDirection p_dDirection,
                      LedMatrixItemSpeed p_sSpeed,
                      LedMatrixContol BaseControl)
 {
     // Initialisations
     m_Id                = p_Id;
     m_bMasterLedOn      = p_bMasterLedOn;
     m_dDirection        = p_dDirection;
     m_sSpeed            = p_sSpeed;
     m_pCurrentLocation  = p_pInitalLocation;
     m_BaseMatrixControl = BaseControl;
 }
        /// <summary>
        /// Add an item to the item list
        /// </summary>
        /// <param name="p_bMasterLedOn">Led On definition of the new item</param>
        /// <param name="p_pLocation">Initial position of the new item</param>
        /// <param name="p_dDirection">Direction of the new item</param>
        /// <param name="p_sSpeed">Speed of the new item</param>
        /// <returns>Item Id</returns>
        private int AddItem(bool[,] p_bMasterLedOn,
                            Point p_pLocation,
                            LedMatrixItemDirection p_dDirection,
                            LedMatrixItemSpeed p_sSpeed)
        {
            // Updates Id counting
            m_iItemIdCount++;

            // New item
            LedMatrixItem lmiMyNewItem = new LedMatrixItem(m_iItemIdCount,
                                                           p_bMasterLedOn,
                                                           p_pLocation,
                                                           p_dDirection,
                                                           p_sSpeed, this);

            // Add the item to the list
            m_lItemList.Add(lmiMyNewItem);

            // Return item Id
            return(m_iItemIdCount);
        }
        /// <summary>
        /// Add an item built from text to the item list
        /// </summary>
        /// <param name="p_sText">New item text</param>
        /// <param name="p_pLocation">Initial position of the new item</param>
        /// <param name="p_dDirection">Direction of the new item</param>
        /// <param name="p_sSpeed">Speed of the new item</param>
        /// <returns>Item Id</returns>
        public int AddTextItem(string p_sText,
                               Point p_pLocation,
                               LedMatrixItemDirection p_dDirection,
                               LedMatrixItemSpeed p_sSpeed)
        {
            // Updates Id counting
            m_iItemIdCount++;

            // New item
            LedMatrixItem lmiMyNewItem = new LedMatrixItem(m_iItemIdCount,
                                                           GetLedOnFromString(p_sText),
                                                           p_pLocation,
                                                           p_dDirection,
                                                           p_sSpeed,
                                                           this);

            // Add the item to the list
            m_lItemList.Add(lmiMyNewItem);

            // Return item Id
            return(m_iItemIdCount);
        }