Example #1
0
        private void DrawComputerTiledModeView(IListItemEx sho, Graphics g, RectangleF lblrectTiles, StringFormat fmt)
        {
            var driveInfo = new DriveInfo(sho.ParsingName);

            if (driveInfo.IsReady)
            {
                ProgressBarRenderer.DrawHorizontalBar(g, new Rectangle((Int32)lblrectTiles.Left, (Int32)lblrectTiles.Bottom + 4, (Int32)lblrectTiles.Width - 10, 10));
                var fullProcent  = (100 * (driveInfo.TotalSize - driveInfo.AvailableFreeSpace)) / driveInfo.TotalSize;
                var barWidth     = (lblrectTiles.Width - 12) * fullProcent / 100;
                var rec          = new Rectangle((Int32)lblrectTiles.Left + 1, (Int32)lblrectTiles.Bottom + 5, (Int32)barWidth, 8);
                var gradRec      = new Rectangle(rec.Left, rec.Top - 1, rec.Width, rec.Height + 2);
                var criticalUsed = fullProcent >= 90;
                var warningUsed  = fullProcent >= 75;
                var averageUsed  = fullProcent >= 50;
                var brush        = new LinearGradientBrush(gradRec, criticalUsed ? Color.FromArgb(255, 0, 0) : warningUsed ? Color.FromArgb(255, 224, 0) : averageUsed ? Color.FromArgb(0, 220, 255) : Color.FromArgb(199, 248, 165),
                                                           criticalUsed ? Color.FromArgb(150, 0, 0) : warningUsed ? Color.FromArgb(255, 188, 0) : averageUsed ? Color.FromArgb(43, 84, 235) : Color.FromArgb(101, 247, 0), LinearGradientMode.Vertical);
                g.FillRectangle(brush, rec);
                brush.Dispose();
                var  lblrectSubiTem3  = new RectangleF(lblrectTiles.Left, lblrectTiles.Bottom + 16, lblrectTiles.Width, 15);
                Font subItemFont      = SystemFonts.IconTitleFont;
                var  subItemTextBrush = new SolidBrush(SystemColors.ControlDarkDark);
                g.DrawString($"{ShlWapi.StrFormatByteSize(driveInfo.AvailableFreeSpace)} free of {ShlWapi.StrFormatByteSize(driveInfo.TotalSize)}", subItemFont, subItemTextBrush, lblrectSubiTem3, fmt);

                subItemFont.Dispose();
                subItemTextBrush.Dispose();
            }
        }
Example #2
0
        public IntPtr GetDisplayName(SIGDN sigdnName)
        {
            if (sigdnName == SIGDN.FILESYSPATH)
            {
                StringBuilder result = new StringBuilder(512);
                if (!Shell32.SHGetPathFromIDList(m_Pidl, result))
                {
                    throw new ArgumentException();
                }
                return(Marshal.StringToHGlobalUni(result.ToString()));
            }
            else
            {
                IShellFolder  parentFolder = GetParent().GetIShellFolder();
                IntPtr        childPidl    = Shell32.ILFindLastID(m_Pidl);
                StringBuilder builder      = new StringBuilder(512);
                STRRET        strret       = new STRRET();

                parentFolder.GetDisplayNameOf(childPidl,
                                              (SHGNO)((int)sigdnName & 0xffff), out strret);
                ShlWapi.StrRetToBuf(ref strret, childPidl, builder,
                                    (uint)builder.Capacity);
                return(Marshal.StringToHGlobalUni(builder.ToString()));
            }
        }