summaryrefslogtreecommitdiffstats
path: root/macosx/HBEncodingProgressHUDController.m
blob: d2a7c25ca4b86c1213026e618fd5c59eb4f6acce (plain)
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
/*  HBEncodingProgressHUDController.m $

 This file is part of the HandBrake source code.
 Homepage: <http://handbrake.fr/>.
 It may be used under the terms of the GNU General Public License. */

#import "HBEncodingProgressHUDController.h"

@interface HBEncodingProgressHUDController ()

@property (nonatomic, weak) IBOutlet NSProgressIndicator *progressIndicator;
@property (nonatomic, weak) IBOutlet NSTextField *infoLabel;

@end

@implementation HBEncodingProgressHUDController

- (NSString *)nibName
{
    return @"HBEncodingProgressHUDController";
}

- (BOOL)canBeHidden
{
    return NO;
}

- (void)setInfo:(NSString *)info
{
    self.infoLabel.stringValue = info;
}

- (void)setProgress:(double)progress
{
    self.progressIndicator.doubleValue = progress;
}

- (IBAction)cancelEncoding:(id)sender
{
    [self.delegate cancelEncoding];
}

- (BOOL)HB_keyDown:(NSEvent *)event
{
    return NO;
}

- (BOOL)HB_scrollWheel:(NSEvent *)theEvent
{
    return NO;
}

@end

@interface HBEncodingProgressHUDController (TouchBar) <NSTouchBarProvider, NSTouchBarDelegate>
@end

@implementation HBEncodingProgressHUDController (TouchBar)

@dynamic touchBar;

static NSTouchBarItemIdentifier HBTouchBarCancelEncoding = @"fr.handbrake.cancelEncoding";

- (NSTouchBar *)makeTouchBar
{
    NSTouchBar *bar = [[NSTouchBar alloc] init];
    bar.delegate = self;

    bar.escapeKeyReplacementItemIdentifier = HBTouchBarCancelEncoding;

    return bar;
}

- (NSTouchBarItem *)touchBar:(NSTouchBar *)touchBar makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier
{
    if ([identifier isEqualTo:HBTouchBarCancelEncoding])
    {
        NSCustomTouchBarItem *item = [[NSCustomTouchBarItem alloc] initWithIdentifier:identifier];
        item.customizationLabel = NSLocalizedString(@"Cancel Encoding", @"Touch bar");

        NSButton *button = [NSButton buttonWithTitle:NSLocalizedString(@"Cancel", @"Touch bar") target:self action:@selector(cancelEncoding:)];
        button.bezelColor = NSColor.systemRedColor;

        item.view = button;
        return item;
    }

    return nil;
}

@end