Esempio n. 1
0
        /// <summary>
        /// Returns the sub item item text corresponding to the specified column type.
        /// </summary>
        /// <param name="type">The type of information to return.</param>
        /// <returns>Formatted text for the given column type.</returns>
        public string GetSubItemText(ColumnType type)
        {
            switch (type)
            {
            case ColumnType.DateAccessed:
                if (DateAccessed == DateTime.MinValue)
                {
                    return("");
                }
                else
                {
                    return(DateAccessed.ToString("g"));
                }

            case ColumnType.DateCreated:
                if (DateCreated == DateTime.MinValue)
                {
                    return("");
                }
                else
                {
                    return(DateCreated.ToString("g"));
                }

            case ColumnType.DateModified:
                if (DateModified == DateTime.MinValue)
                {
                    return("");
                }
                else
                {
                    return(DateModified.ToString("g"));
                }

            case ColumnType.FileName:
                return(FileName);

            case ColumnType.Name:
                return(Text);

            case ColumnType.FilePath:
                return(FilePath);

            case ColumnType.FileSize:
                if (FileSize == 0)
                {
                    return("");
                }
                else
                {
                    return(Utility.FormatSize(FileSize));
                }

            case ColumnType.FileType:
                return(FileType);

            case ColumnType.Dimensions:
                if (Dimensions == Size.Empty)
                {
                    return("");
                }
                else
                {
                    return(string.Format("{0} x {1}", Dimensions.Width, Dimensions.Height));
                }

            case ColumnType.Resolution:
                if (Resolution == SizeF.Empty)
                {
                    return("");
                }
                else
                {
                    return(string.Format("{0} x {1}", Resolution.Width, Resolution.Height));
                }

            case ColumnType.ImageDescription:
                return(ImageDescription);

            case ColumnType.EquipmentModel:
                return(EquipmentModel);

            case ColumnType.DateTaken:
                if (DateTaken == DateTime.MinValue)
                {
                    return("");
                }
                else
                {
                    return(DateTaken.ToString("g"));
                }

            case ColumnType.Artist:
                return(Artist);

            case ColumnType.Copyright:
                return(Copyright);

            case ColumnType.ExposureTime:
                return(ExposureTime);

            case ColumnType.FNumber:
                if (FNumber == 0.0f)
                {
                    return("");
                }
                else
                {
                    return(FNumber.ToString("f2"));
                }

            case ColumnType.ISOSpeed:
                if (ISOSpeed == 0)
                {
                    return("");
                }
                else
                {
                    return(ISOSpeed.ToString());
                }

            case ColumnType.ShutterSpeed:
                return(ShutterSpeed);

            case ColumnType.Aperture:
                return(Aperture);

            case ColumnType.UserComment:
                return(UserComment);

            default:
                throw new ArgumentException("Unknown column type", "type");
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Draws an overlay image over the client area.
        /// </summary>
        /// <param name="g">The System.Drawing.Graphics to draw on.</param>
        /// <param name="bounds">The bounding rectangle of the client area.</param>
        public override void DrawOverlay(Graphics g, Rectangle bounds)
        {
            // Refresh process info
            Process p = Process.GetCurrentProcess();

            p.Refresh();
            long mem = Math.Max(0, p.PrivateMemorySize64 - baseMem);

            // Display memory stats
            string    s  = string.Format("Total: {0}\r\nCache: {1}\r\nCache*: {2}", Utility.FormatSize(baseMem), Utility.FormatSize(mem), Utility.FormatSize(mImageListView.cacheManager.MemoryUsed));
            SizeF     sz = g.MeasureString(s, ImageListView.Font);
            Rectangle r  = new Rectangle(ItemAreaBounds.Right - 120, ItemAreaBounds.Top + 5, 115, (int)sz.Height);

            using (Brush b = new SolidBrush(Color.FromArgb(220, Color.LightGray)))
            {
                g.FillRectangle(b, r);
            }
            using (Pen pen = new Pen(Color.FromArgb(128, Color.Gray)))
            {
                g.DrawRectangle(pen, r);
            }
            g.DrawString(s, ImageListView.Font, Brushes.Black, r.Location);

            // Display navigation parameters
            r = new Rectangle(ItemAreaBounds.Right - 120, ItemAreaBounds.Top + 5 + (int)sz.Height + 10, 115, 125);
            using (Brush b = new SolidBrush(Color.FromArgb(220, Color.LightGray)))
            {
                g.FillRectangle(b, r);
            }
            using (Pen pen = new Pen(Color.FromArgb(128, Color.Gray)))
            {
                g.DrawRectangle(pen, r);
            }

            // Is left button down?
            r = new Rectangle(r.Left + 5, r.Top + 5, 15, 15);
            if (mImageListView.navigationManager.LeftButton)
            {
                g.FillRectangle(Brushes.DarkGray, r);
            }
            g.DrawRectangle(Pens.Black, r);
            r.Offset(15, 0);
            r.Offset(15, 0);

            // Is right button down?
            if (mImageListView.navigationManager.RightButton)
            {
                g.FillRectangle(Brushes.DarkGray, r);
            }
            g.DrawRectangle(Pens.Black, r);
            r.Offset(-30, 22);

            // Is shift key down?
            Color tColor = Color.Gray;

            if (mImageListView.navigationManager.ShiftKey)
            {
                tColor = Color.Black;
            }
            using (Brush b = new SolidBrush(tColor))
            {
                g.DrawString("Shift", mImageListView.Font, b, r.Location);
            }
            r.Offset(0, 12);

            // Is control key down?
            tColor = Color.Gray;
            if (mImageListView.navigationManager.ControlKey)
            {
                tColor = Color.Black;
            }
            using (Brush b = new SolidBrush(tColor))
            {
                g.DrawString("Control", mImageListView.Font, b, r.Location);
            }
            r.Offset(0, 20);

            // Display hit test details for item area
            ImageListView.HitInfo h = null;
            mImageListView.HitTest(mImageListView.PointToClient(Control.MousePosition), out h);

            tColor = Color.Gray;
            if (h.InItemArea)
            {
                tColor = Color.Black;
            }
            using (Brush b = new SolidBrush(tColor))
            {
                g.DrawString("InItemArea (" + h.ItemIndex.ToString() + ")", mImageListView.Font, b, r.Location);
            }
            r.Offset(0, 12);

            // Display hit test details for column header area
            tColor = Color.Gray;
            if (h.InHeaderArea)
            {
                tColor = Color.Black;
            }
            using (Brush b = new SolidBrush(tColor))
            {
                g.DrawString("InHeaderArea (" + h.ColumnIndex.ToString() + ")", mImageListView.Font, b, r.Location);
            }
            r.Offset(0, 12);

            // Display hit test details for pane area
            tColor = Color.Gray;
            if (h.InPaneArea)
            {
                tColor = Color.Black;
            }
            using (Brush b = new SolidBrush(tColor))
            {
                g.DrawString("InPaneArea " + (h.PaneBorder ? " (Border)" : ""), mImageListView.Font, b, r.Location);
            }
            r.Offset(0, 12);
        }
        /// <summary>
        /// Returns the sub item item text corresponding to the specified column type.
        /// </summary>
        /// <param name="type">The type of information to return.</param>
        /// <returns>Formatted text for the given column type.</returns>
        public string GetSubItemText(ColumnType type)
        {
            switch (type)
            {
            case ColumnType.UsageCount:
                return(mUsageCount.ToString());

            case ColumnType.Name:
                return(Name);

            case ColumnType.FilePath:
                return(FilePath);

            case ColumnType.MediaSize:
                if (MediaSize == 0)
                {
                    return("");
                }
                else
                {
                    return(Utility.FormatSize(MediaSize));
                }

            case ColumnType.MediaType:
                return(MediaType);

            case ColumnType.MediaInfo:
                if (MediaInfo == SizeF.Empty)
                {
                    return("");
                }
                else
                {
                    return(string.Format("{0} x {1}", MediaInfo.Width, MediaInfo.Height));
                }

            case ColumnType.FPS:
                if (FPS == 0.0f)
                {
                    return("");
                }
                else
                {
                    return(FPS.ToString("f2"));
                }

            case ColumnType.MediaStartTime:
                if (MediaStartTime == 0)
                {
                    return("");
                }
                else
                {
                    return(MediaStartTime.ToString());
                }

            case ColumnType.MediaDuration:
                if (MediaDuration == 0)
                {
                    return("");
                }
                else
                {
                    return(MediaDuration.ToString());
                }

            case ColumnType.MediaDurationStr:
                if (MediaDuration == 0)
                {
                    return("");
                }
                else
                {
                    return(MediaDurationStr);
                }

            default:
                throw new ArgumentException("Unknown column type", "type");
            }
        }