Exemple #1
0
        /// <summary>
        /// Calculate regions of skin parts
        /// </summary>
        /// <param name="dwWidth">Width of the skin</param>
        /// <param name="dwHeight">Height of the skin</param>
        public Region UpdateRegions(int dwWidth, int dwHeight)
        {
            if (dwWidth <= 0 || dwHeight <= 0)
            {
                return(null);
            }
            Rectangle pureRectangle = new Rectangle(0, 0, dwWidth, dwHeight);

            skinSize = pureRectangle.Size;
            if (levels != null)
            {
                foreach (SkinLevel level in levels)
                {
                    if (pureRectangle.Width == 0 || pureRectangle.Height == 0)
                    {
                        break;
                    }
                    Rectangle restRectangle = level.UpdateRegions(pureRectangle);
                    pureRectangle = restRectangle;
                }
            }
            Region region = SkinToRegion(Color.FromArgb(255, 167, 150));

            foreach (Object obj in SubSkins)
            {
                FormSkin formSkin  = (FormSkin)obj;
                Region   subregion = formSkin.UpdateRegions(dwWidth, dwHeight);
                if (subregion != null)
                {
                    if (region != null)
                    {
                        region.Dispose();
                    }
                    region = subregion;
                }
            }

            return(region);
        }