forked from iMediaSandboxing/iMedia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIMBAlertPopover.m
147 lines (94 loc) · 4.46 KB
/
IMBAlertPopover.m
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
//**********************************************************************************************************************
//
// IMBAlertPopover.m
//
// Author: Peter Baumgartner, [email protected]
// Copyright: ©2011 by IMAGINE GbR. All rights reserved.
// Abstract: Subclass for alert popovers
//
//**********************************************************************************************************************
#pragma HEADERS
#import "IMBAlertPopover.h"
#import "IMBAlertPopoverViewController.h"
//----------------------------------------------------------------------------------------------------------------------
@implementation IMBAlertPopover
//----------------------------------------------------------------------------------------------------------------------
+ (IMBAlertPopover*) stopPopoverWithHeader:(NSString*)inHeader body:(NSString*)inBody footer:(NSString*)inFooter
{
NSURL* url = [[NSBundle bundleForClass:[self class]] URLForResource:@"IMBStopIcon" withExtension:@"icns"];
NSImage* icon = [[[NSImage alloc] initWithContentsOfURL:url] autorelease];
return [self alertPopoverWithIcon:icon header:inHeader body:inBody footer:inFooter];
}
+ (IMBAlertPopover*) warningPopoverWithHeader:(NSString*)inHeader body:(NSString*)inBody footer:(NSString*)inFooter
{
NSImage* icon = [NSImage imageNamed:NSImageNameCaution];
return [self alertPopoverWithIcon:icon header:inHeader body:inBody footer:inFooter];
}
+ (IMBAlertPopover*) notePopoverWithHeader:(NSString*)inHeader body:(NSString*)inBody footer:(NSString*)inFooter
{
NSURL* url = [[NSBundle bundleForClass:[self class]] URLForResource:@"IMBNoteIcon" withExtension:@"icns"];
NSImage* icon = [[[NSImage alloc] initWithContentsOfURL:url] autorelease];
return [self alertPopoverWithIcon:icon header:inHeader body:inBody footer:inFooter];
}
//----------------------------------------------------------------------------------------------------------------------
+ (Class) viewControllerClass
{
return [IMBAlertPopoverViewController class];
}
+ (IMBAlertPopover*) alertPopoverWithIcon:(NSImage*)inIcon header:(NSString*)inHeader body:(NSString*)inBody footer:(NSString*)inFooter
{
return [[[[self class] alloc] initWithIcon:inIcon header:inHeader body:inBody footer:inFooter] autorelease];
}
- (id) initWithIcon:(NSImage*)inIcon header:(NSString*)inHeader body:(NSString*)inBody footer:(NSString*)inFooter
{
self = [self initWithNibName:@"IMBAlertPopoverViewController"];
if (self)
{
IMBAlertPopoverViewController* controller = (IMBAlertPopoverViewController*)self.contentViewController;
controller.icon = inIcon;
controller.headerString = inHeader;
controller.bodyString = inBody;
controller.footerString = inFooter;
}
return self;
}
//----------------------------------------------------------------------------------------------------------------------
- (void) setIcon:(NSImage*)inIcon
{
IMBAlertPopoverViewController* controller = (IMBAlertPopoverViewController*)self.contentViewController;
controller.icon = inIcon;
}
- (NSImage*) icon
{
IMBAlertPopoverViewController* controller = (IMBAlertPopoverViewController*)self.contentViewController;
return controller.icon;
}
//----------------------------------------------------------------------------------------------------------------------
- (void) setHeaderTextColor:(NSColor*)inColor
{
[(IMBAlertPopoverViewController*)self.contentViewController setHeaderTextColor:inColor];
}
- (void) setBodyTextColor:(NSColor*)inColor
{
[(IMBAlertPopoverViewController*)self.contentViewController setBodyTextColor:inColor];
}
- (void) setFooterTextColor:(NSColor*)inColor
{
[(IMBAlertPopoverViewController*)self.contentViewController setFooterTextColor:inColor];
}
//----------------------------------------------------------------------------------------------------------------------
- (void) addButtonWithTitle:(NSString*)inTitle block:(IMBButtonBlockType)inBlock
{
[(IMBAlertPopoverViewController*)self.contentViewController addButtonWithTitle:inTitle block:inBlock];
}
//----------------------------------------------------------------------------------------------------------------------
- (void) showProgressIndicator
{
[(IMBAlertPopoverViewController*)self.contentViewController showProgressIndicator];
}
- (void) hideProgressIndicator
{
[(IMBAlertPopoverViewController*)self.contentViewController hideProgressIndicator];
}
//----------------------------------------------------------------------------------------------------------------------
@end