// Set column sizes using a short-hand notation
        //
        //  "1,2w,1" = ColumnSize.Size1 + ColumnSize.Size2 (no gutter) + ColumnSize.Size1
        //
        // Data should be a list of column sizes as integers
        // separated by commas
        // An optional 'w' character at the end signifies no gutter mode = true
        // default is to set no gutter to false
        //
        public bool SetColumnSizes(string sizeData)
        {
            char[]   splitter  = { ',' };
            string[] splitData = sizeData.Split(splitter);

            if (splitData.Length != _Columns.Count)
            {
                return(false);
            }

            // Parsing
            List <ResizeColumnData> data = new List <ResizeColumnData>();

            for (int i = 0; i < _Columns.Count; i++)
            {
                ResizeColumnData d = new ResizeColumnData();
                if (splitData[i].Contains('w'))
                {
                    d.NoGutter = true;
                }
                char[] remover      = { 'w' };
                string readyToParse = splitData[i].TrimEnd(remover);
                int    s            = 1;
                if (int.TryParse(readyToParse, out s))
                {
                    d.Size = s;
                }
                data.Add(d);
            }

            int sumOfRequestedSizes = 0;

            foreach (ResizeColumnData d in data)
            {
                sumOfRequestedSizes += d.Size;
            }

            if (sumOfRequestedSizes > (int)_ParentSize)
            {
                return(false);
            }


            for (int i = 0; i < _Columns.Count; i++)
            {
                _Columns[i].Size     = (ColumnSize)data[i].Size;
                _Columns[i].NoGutter = data[i].NoGutter;
            }

            return(true);
        }
示例#2
0
        // Set column sizes using a short-hand notation
        //
        //  "1,2w,1" = ColumnSize.Size1 + ColumnSize.Size2 (no gutter) + ColumnSize.Size1
        //
        // Data should be a list of column sizes as integers
        // separated by commas
        // An optional 'w' character at the end signifies no gutter mode = true
        // default is to set no gutter to false        
        // 
        public bool SetColumnSizes(string sizeData)
        {
            char[] splitter = {','};
            string[] splitData = sizeData.Split(splitter);
            
            if (splitData.Length != _Columns.Count) return false;

            // Parsing
            List<ResizeColumnData> data = new List<ResizeColumnData>();
            for (int i = 0; i < _Columns.Count; i++)
            {
                ResizeColumnData d = new ResizeColumnData();
                if (splitData[i].Contains('w'))
                {
                    d.NoGutter = true;
                }
                char[] remover = {'w'};
                string readyToParse = splitData[i].TrimEnd(remover);
                int s = 1;
                if (int.TryParse(readyToParse,out s))
                {
                    d.Size = s;
                }
                data.Add(d);
            }

            int sumOfRequestedSizes = 0;
            foreach (ResizeColumnData d in data)
            {
                sumOfRequestedSizes += d.Size;
            }

            if (sumOfRequestedSizes > (int)_ParentSize) return false;


            for (int i = 0; i < _Columns.Count; i++)
            {
                _Columns[i].Size = (ColumnSize)data[i].Size;
                _Columns[i].NoGutter = data[i].NoGutter;
            }

            return true;

        }