-
Notifications
You must be signed in to change notification settings - Fork 1
/
CustomIconGenerator.h
83 lines (62 loc) · 2.96 KB
/
CustomIconGenerator.h
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
71
72
73
74
75
76
77
78
79
80
81
82
83
//
// CustomIconGenerator.h
// Add Folder Icons
//
// Created by Andrew Hodgkinson on 3/03/16.
// Copyright © 2016 Hipposoft. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "IconStyle.h"
#import "CaseDefinition.h"
/* Border width around cropped images when at their intermediate stage of being
* at full canvas size (see "GlobalConstants.h"); blur radius and offset for
* shadows; padding to go around the border - must give room for the shadow and
* the worst-case extra extent of the outer edge of the shadow due to +/- 0.075
* radian (~4.5 degree) rotation. Values in pixels.
*
* If you change these, make sure you update "locations" below too.
*/
#define THUMB_BORDER 20
#define BLUR_RADIUS 16
#define BLUR_OFFSET 8
#define ROTATION_PAD 40
/* Image search loop exit conditions (values are inclusive); zero equals
* unlimited in either case (not recommended...).
*/
#define MAXIMUM_IMAGE_SIZE 67108864 /* 64MiB */
#define MAXIMUM_IMAGES_FOUND 5000
#define MAXIMUM_LOOP_TIME_TICKS CLOCKS_PER_SEC /* I.e. 1 second */
/* The class interface itself */
@interface CustomIconGenerator : NSObject
- ( instancetype ) init NS_UNAVAILABLE; /* Use -initWithIconStyle:... instead */
- ( instancetype ) initWithIconStyle: ( IconStyle * ) theIconStyle
forPOSIXPath: ( NSString * ) thePosixPath;
- ( CGImageRef ) generate: ( NSError ** ) error;
/* These properties record things that were given in the constructor */
@property ( nonatomic, retain, readonly ) IconStyle * iconStyle;
@property ( nonatomic, retain, readonly ) NSString * posixPath;
/* The CaseDefinition instance corresponding to the named Slip Cover case
* style in the IconStyle data given via the constructor and read via the
* 'iconStyle' property. If the style does not describe a Slip Cover case,
* this will be 'nil'.
*/
@property ( nonatomic, retain, readonly ) CaseDefinition * slipCoverCase;
/* These read-only properties are taken from the user defaults at the
* moment of instantiation and cached inside it. Subsequent changes to
* the preferences don't alter this instance's behaviour.
*/
@property ( nonatomic, retain, readonly ) NSArray * coverArtFilenames;
@property ( readonly ) BOOL useColourLabelsToIdentifyCoverArt;
/* These read/write properties can be changed once an instance has been
* created. They all default to NO.
*/
@property BOOL makeBackgroundOpaque;
@property BOOL nonRandomImageSelectionForAPreview;
/* If building a preview you may want to know for sure which cover art
* filenames are in use, since the user might change them to anything.
* You can override the cover art user preferences array here. Specify
* an array of one or more leafnames without extensions - e.g.
* @[ @"folder", @"cover" ].
*/
@property ( nonatomic, retain ) NSArray * overrideCoverArtFilenames;
@end