-
-
Notifications
You must be signed in to change notification settings - Fork 70
/
ImageListViewItemAdaptor.cs
70 lines (68 loc) · 3.41 KB
/
ImageListViewItemAdaptor.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// ImageListView - A listview control for image files
// Copyright (C) 2009 Ozgur Ozcitak
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Ozgur Ozcitak (ozcitak@yahoo.com)
using System;
using System.Drawing;
namespace Manina.Windows.Forms
{
public partial class ImageListView
{
/// <summary>
/// Represents the abstract case class for adaptors.
/// </summary>
public abstract class ImageListViewItemAdaptor : IDisposable
{
#region Abstract Methods
/// <summary>
/// Returns the thumbnail image for the given item.
/// </summary>
/// <param name="key">Item key.</param>
/// <param name="size">Requested image size.</param>
/// <param name="useEmbeddedThumbnails">Embedded thumbnail usage.</param>
/// <param name="useExifOrientation">true to automatically rotate images based on Exif orientation; otherwise false.</param>
/// <returns>The thumbnail image from the given item or null if an error occurs.</returns>
public abstract Image GetThumbnail(object key, Size size, UseEmbeddedThumbnails useEmbeddedThumbnails, bool useExifOrientation);
/// <summary>
/// Returns a unique identifier for this thumbnail to be used in persistent
/// caching.
/// </summary>
/// <param name="key">Item key.</param>
/// <param name="size">Requested image size.</param>
/// <param name="useEmbeddedThumbnails">Embedded thumbnail usage.</param>
/// <param name="useExifOrientation">true to automatically rotate images based on Exif orientation; otherwise false.</param>
/// <returns>A unique identifier string for the thumnail.</returns>
public abstract string GetUniqueIdentifier(object key, Size size, UseEmbeddedThumbnails useEmbeddedThumbnails, bool useExifOrientation);
/// <summary>
/// Returns the path to the source image for use in drag operations.
/// </summary>
/// <param name="key">Item key.</param>
/// <returns>The path to the source image.</returns>
public abstract string GetSourceImage(object key);
/// <summary>
/// Returns the details for the given item.
/// </summary>
/// <param name="key">Item key.</param>
/// <returns>An array of tuples containing item details or null if an error occurs.</returns>
public abstract Utility.Tuple<ColumnType, string, object>[] GetDetails(object key);
/// <summary>
/// Performs application-defined tasks associated with freeing,
/// releasing, or resetting unmanaged resources.
/// </summary>
public abstract void Dispose();
#endregion
}
}
}