/// <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"); } }
/// <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"); } }