diff options
author | Damiano Galassi <[email protected]> | 2016-10-05 10:45:50 +0200 |
---|---|---|
committer | Damiano Galassi <[email protected]> | 2016-10-05 10:45:50 +0200 |
commit | eaa2aed959c999467bc8c28cbe7be021785c5723 (patch) | |
tree | ddb20c09f6660fbe4864adb5d0f1d9b891b4c29b | |
parent | 136108a7f8eaba02dd0ede50142ee3b93e27efbd (diff) |
MacGui: show the queue jobs count on the main window queue toolbar icon.
-rw-r--r-- | macosx/Assets.xcassets/showqueue.imageset/showqueue.png | bin | 1069 -> 1792 bytes | |||
-rw-r--r-- | macosx/Assets.xcassets/showqueue.imageset/[email protected] | bin | 3884 -> 4415 bytes | |||
-rw-r--r-- | macosx/English.lproj/MainWindow.xib | 46 | ||||
-rw-r--r-- | macosx/HBController.h | 2 | ||||
-rw-r--r-- | macosx/HBController.m | 9 | ||||
-rw-r--r-- | macosx/HBQueueController.m | 2 | ||||
-rw-r--r-- | macosx/HBToolbarBadgedItem.h | 17 | ||||
-rw-r--r-- | macosx/HBToolbarBadgedItem.m | 210 | ||||
-rw-r--r-- | macosx/HandBrake.xcodeproj/project.pbxproj | 6 |
9 files changed, 256 insertions, 36 deletions
diff --git a/macosx/Assets.xcassets/showqueue.imageset/showqueue.png b/macosx/Assets.xcassets/showqueue.imageset/showqueue.png Binary files differindex ffcb4d70a..43c10b436 100644 --- a/macosx/Assets.xcassets/showqueue.imageset/showqueue.png +++ b/macosx/Assets.xcassets/showqueue.imageset/showqueue.png diff --git a/macosx/Assets.xcassets/showqueue.imageset/[email protected] b/macosx/Assets.xcassets/showqueue.imageset/[email protected] Binary files differindex 2cbe097e1..d1d155c0a 100644 --- a/macosx/Assets.xcassets/showqueue.imageset/[email protected] +++ b/macosx/Assets.xcassets/showqueue.imageset/[email protected] diff --git a/macosx/English.lproj/MainWindow.xib b/macosx/English.lproj/MainWindow.xib index ba948c027..ab9afcd17 100644 --- a/macosx/English.lproj/MainWindow.xib +++ b/macosx/English.lproj/MainWindow.xib @@ -1,9 +1,9 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11521.1" systemVersion="16B2338c" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> <dependencies> <deployment identifier="macosx"/> <development version="7000" identifier="xcode"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10116"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11521.1"/> </dependencies> <objects> <customObject id="-2" userLabel="File's Owner" customClass="HBController"> @@ -14,7 +14,6 @@ <outlet property="fMainTabView" destination="1474" id="sl5-BZ-ymC"/> <outlet property="fPictureTab" destination="eij-Sn-QmJ" id="Ccp-rO-nqD"/> <outlet property="fPresetDrawer" destination="1841" id="LDc-Da-rl7"/> - <outlet property="fQueueStatus" destination="2006" id="o5x-Kd-lxv"/> <outlet property="fRipIndicator" destination="1373" id="an5-ng-etT"/> <outlet property="fScanHorizontalLine" destination="3205" id="W26-Wu-2YJ"/> <outlet property="fScanIndicator" destination="3203" id="cG1-SY-gbt"/> @@ -30,6 +29,7 @@ <outlet property="fSubtitlesTab" destination="5194" id="PF0-qx-Iu4"/> <outlet property="fVideoTab" destination="1477" id="hFY-kK-afW"/> <outlet property="openTitleView" destination="lZQ-gl-3wX" id="Wh6-fB-pWi"/> + <outlet property="showQueueToolbarItem" destination="HCx-ku-nF7" id="CC6-Yu-j7N"/> <outlet property="window" destination="21" id="qib-ZH-aNm"/> </connections> </customObject> @@ -66,7 +66,7 @@ <tabViewItems> <tabViewItem label="Video" identifier="1" id="1477"> <view key="view" id="1478"> - <rect key="frame" x="10" y="25" width="874" height="319"/> + <rect key="frame" x="10" y="29" width="874" height="315"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> </view> </tabViewItem> @@ -261,12 +261,9 @@ </binding> </connections> </button> - <box verticalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" id="1623"> + <box verticalHuggingPriority="750" boxType="separator" id="1623"> <rect key="frame" x="98" y="490" width="802" height="5"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> - <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/> - <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - <font key="titleFont" metaFont="system"/> </box> <textField verticalHuggingPriority="750" id="1539"> <rect key="frame" x="70" y="540" width="310" height="14"/> @@ -409,12 +406,9 @@ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <box verticalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" id="1628"> + <box verticalHuggingPriority="750" boxType="separator" id="1628"> <rect key="frame" x="292" y="434" width="608" height="5"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> - <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/> - <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - <font key="titleFont" metaFont="system"/> </box> <textField verticalHuggingPriority="750" id="1882"> <rect key="frame" x="121" y="430" width="165" height="14"/> @@ -428,15 +422,6 @@ <binding destination="-2" name="value" keyPath="self.job.presetName" id="W9D-4K-e1F"/> </connections> </textField> - <textField verticalHuggingPriority="750" id="2006"> - <rect key="frame" x="685" y="15" width="218" height="14"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> - <textFieldCell key="cell" controlSize="small" sendsActionOnEndEditing="YES" alignment="right" id="4925"> - <font key="font" metaFont="smallSystem"/> - <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> - <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> - </textFieldCell> - </textField> <textField verticalHuggingPriority="750" id="1556"> <rect key="frame" x="21" y="403" width="53" height="14"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> @@ -449,12 +434,9 @@ <binding destination="-2" name="textColor" keyPath="self.labelColor" id="j6q-iC-kqw"/> </connections> </textField> - <box verticalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" id="3205"> + <box verticalHuggingPriority="750" boxType="separator" id="3205"> <rect key="frame" x="391" y="543" width="509" height="5"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> - <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/> - <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - <font key="titleFont" metaFont="system"/> </box> <progressIndicator hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" maxValue="1" bezeled="NO" controlSize="small" style="bar" id="3203"> <rect key="frame" x="391" y="542" width="510" height="12"/> @@ -630,11 +612,15 @@ IA </connections> </toolbarItem> <toolbarItem implicitItemIdentifier="69E83092-D0D1-48A5-BF46-99EFB3EC630A" label="Add To Queue" paletteLabel="Add To Queue" tag="-1" image="addqueue" id="DZZ-Fe-wjw"> + <size key="minSize" width="32" height="32"/> + <size key="maxSize" width="32" height="32"/> <connections> <action selector="addToQueue:" target="-2" id="TRB-HE-1GW"/> </connections> </toolbarItem> - <toolbarItem implicitItemIdentifier="6EFCA879-A80D-45D7-A846-EAD85261F864" label="Queue" paletteLabel="Show Queue Window" tag="-1" image="showqueue" id="HCx-ku-nF7"> + <toolbarItem implicitItemIdentifier="6EFCA879-A80D-45D7-A846-EAD85261F864" label="Queue" paletteLabel="Show Queue Window" tag="-1" image="showqueue" id="HCx-ku-nF7" customClass="HBToolbarBadgedItem"> + <size key="minSize" width="40" height="32"/> + <size key="maxSize" width="40" height="32"/> <connections> <action selector="showQueueWindow:" target="-1" id="vZB-dY-DbD"/> </connections> @@ -672,7 +658,7 @@ IA <connections> <outlet property="delegate" destination="-2" id="M3v-Rc-7Ca"/> </connections> - <point key="canvasLocation" x="1113" y="13"/> + <point key="canvasLocation" x="1327" y="25"/> </window> <drawer trailingOffset="15" id="1841" userLabel="PresetsDrawer"> <size key="contentSize" width="240" height="550"/> @@ -727,12 +713,12 @@ IA </objects> <resources> <image name="activity" width="24" height="24"/> - <image name="addqueue" width="12" height="12"/> + <image name="addqueue" width="32" height="32"/> <image name="encode" width="24" height="24"/> <image name="pauseencode" width="24" height="24"/> <image name="presets" width="24" height="24"/> <image name="preview" width="24" height="24"/> - <image name="showqueue" width="24" height="24"/> + <image name="showqueue" width="32" height="32"/> <image name="source" width="24" height="24"/> </resources> </document> diff --git a/macosx/HBController.h b/macosx/HBController.h index 9d9c3f46c..5385c914b 100644 --- a/macosx/HBController.h +++ b/macosx/HBController.h @@ -28,7 +28,7 @@ - (IBAction)addToQueue:(id)sender; - (IBAction)addAllTitlesToQueue:(id)sender; -- (void)setQueueState:(NSString *)info; +- (void)setQueueState:(NSUInteger)count; - (void)setQueueInfo:(NSString *)info progress:(double)progress hidden:(BOOL)hidden; - (IBAction)rip:(id)sender; diff --git a/macosx/HBController.m b/macosx/HBController.m index 7dfa61709..b6c06f519 100644 --- a/macosx/HBController.m +++ b/macosx/HBController.m @@ -6,7 +6,7 @@ #import "HBController.h" #import "HBFocusRingView.h" - +#import "HBToolbarBadgedItem.h" #import "HBQueueController.h" #import "HBTitleSelectionController.h" @@ -82,7 +82,6 @@ // Bottom IBOutlet NSTextField * fStatusField; - IBOutlet NSTextField * fQueueStatus; IBOutlet NSProgressIndicator * fRipIndicator; BOOL fRipIndicatorShown; @@ -93,6 +92,8 @@ IBOutlet NSDrawer * fPresetDrawer; } +@property (nonatomic, weak) IBOutlet HBToolbarBadgedItem *showQueueToolbarItem; + @property (unsafe_unretained) IBOutlet NSView *openTitleView; @property (nonatomic, readwrite) BOOL scanSpecificTitle; @property (nonatomic, readwrite) NSInteger scanSpecificTitleIdx; @@ -901,9 +902,9 @@ #pragma mark - Queue progress -- (void)setQueueState:(NSString *)info +- (void)setQueueState:(NSUInteger)count { - fQueueStatus.stringValue = info; + self.showQueueToolbarItem.badgeValue = count ? @(count).stringValue : nil; } #define WINDOW_HEIGHT 591 diff --git a/macosx/HBQueueController.m b/macosx/HBQueueController.m index 0fa541a2d..53aef5e05 100644 --- a/macosx/HBQueueController.m +++ b/macosx/HBQueueController.m @@ -526,7 +526,7 @@ } self.countTextField.stringValue = string; - [self.controller setQueueState:string]; + [self.controller setQueueState:pendingCount]; self.pendingItemsCount = pendingCount; self.completedItemsCount = completedCount; diff --git a/macosx/HBToolbarBadgedItem.h b/macosx/HBToolbarBadgedItem.h new file mode 100644 index 000000000..401918d56 --- /dev/null +++ b/macosx/HBToolbarBadgedItem.h @@ -0,0 +1,17 @@ +/* HBToolbarBadgedItem.h + + 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 <Cocoa/Cocoa.h> + +@interface HBToolbarBadgedItem : NSToolbarItem + +@property (nonatomic, copy) NSString *badgeValue; + +@property (nonatomic, copy) NSColor *badgeTextColor; +@property (nonatomic, copy) NSColor *badgeFillColor; + +@end diff --git a/macosx/HBToolbarBadgedItem.m b/macosx/HBToolbarBadgedItem.m new file mode 100644 index 000000000..135174701 --- /dev/null +++ b/macosx/HBToolbarBadgedItem.m @@ -0,0 +1,210 @@ +/* HBToolbarBadgedItem.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 "HBToolbarBadgedItem.h" + +@interface HBToolbarBadgedItem () + +@property (nonatomic) NSImage *primary; +@property (nonatomic) NSImage *cache; + +@end + +@implementation HBToolbarBadgedItem + +- (instancetype)initWithItemIdentifier:(NSString *)itemIdentifier +{ + self = [super initWithItemIdentifier:itemIdentifier]; + if (self) + { + _badgeFillColor = [NSColor redColor]; + _badgeTextColor = [NSColor whiteColor]; + } + return self; +} + +- (void)awakeFromNib +{ + if ([self respondsToSelector:@selector(awakeFromNib)]) + { + [super awakeFromNib]; + } + + [self HB_refreshBadge]; +} + +#pragma mark - Public + +- (void)setImage:(NSImage *)image +{ + _primary = image; + if (_badgeValue.length) + { + _cache = nil; + [super setImage:[self HB_badgeImage:_badgeValue]]; + } + else + { + [super setImage:image]; + } +} + +- (void)setBadgeValue:(NSString *)badgeValue +{ + if (![_badgeValue isEqualToString:badgeValue]) + { + if (badgeValue.length) + { + [super setImage:[self HB_badgeImage:badgeValue]]; + } + else + { + [super setImage:_primary]; + } + _badgeValue = [badgeValue copy]; + } +} + +- (void)setBadgeTextColor:(NSColor *)badgeTextColor +{ + _badgeTextColor = [badgeTextColor copy]; + + [self HB_refreshBadge]; +} + +- (void)setBadgeFillColor:(NSColor *)badgeFillColor +{ + _badgeFillColor = [badgeFillColor copy]; + + [self HB_refreshBadge]; +} + +#pragma mark -- Private Methods + +- (CGColorRef)HB_NSColorToCGColor:(NSColor *)color +{ + // CGColor property of NSColor has been added only in 10.8, + // we need to support 10.7 too. + NSInteger numberOfComponents = [color numberOfComponents]; + CGFloat components[numberOfComponents]; + CGColorSpaceRef colorSpace = [[color colorSpace] CGColorSpace]; + [color getComponents:(CGFloat *)&components]; + CGColorRef cgColor = CGColorCreate(colorSpace, components); + + return cgColor; +} + +- (void)HB_refreshBadge +{ + if (_badgeValue.length) + { + _cache = [self HB_renderImage:_primary withBadge:_badgeValue]; + [super setImage:_cache]; + } +} + +- (NSImage *)HB_badgeImage:(NSString *)badgeValue +{ + if (![_badgeValue isEqualToString:badgeValue] || _cache == nil) + { + _cache = [self HB_renderImage:_primary withBadge:badgeValue]; + } + return _cache; +} + +- (NSImage *)HB_renderImage:(NSImage *)image withBadge:(NSString *)badge +{ + NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; + paragraphStyle.minimumLineHeight = 0.0f; + + NSImage *newImage = [[NSImage alloc] initWithSize:image.size]; + for (NSImageRep *rep in image.representations) + { + NSSize size = rep.size; + NSBitmapImageRep *newRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:(NSInteger)floor(size.width) + pixelsHigh:(NSInteger)floor(size.height) + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:(NSInteger)floor(size.width) * 4 + bitsPerPixel:32]; + + NSGraphicsContext *ctx = [NSGraphicsContext graphicsContextWithBitmapImageRep:newRep]; + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; + + CGContextRef context = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort]; + CGContextSaveGState(context); + + NSRect imageRect = NSMakeRect(0, 0, size.width, size.height); + CGImageRef ref = [image CGImageForProposedRect:&imageRect context:[NSGraphicsContext currentContext] hints:nil]; + CGContextDrawImage(context, imageRect, ref); + + // Work out the area + CGFloat iconsize = size.width * 0.5f; + CGFloat radius = iconsize * 0.5f; + NSPoint indent = NSMakePoint(10, 2); + + NSFont *font = [NSFont boldSystemFontOfSize:10]; + NSDictionary *attr = @{NSParagraphStyleAttributeName : paragraphStyle, + NSFontAttributeName : font, + NSForegroundColorAttributeName : _badgeTextColor }; + + NSRect textSize = [badge boundingRectWithSize:NSZeroSize options:NSStringDrawingOneShot attributes:attr]; + NSRect badgeRect = NSMakeRect(size.width - textSize.size.width - indent.x, size.height - textSize.size.height - indent.y, + textSize.size.width + indent.x, textSize.size.height + indent.y); + + // Draw the ellipse + CGFloat minx = CGRectGetMinX(badgeRect); + CGFloat midx = CGRectGetMidX(badgeRect); + CGFloat maxx = CGRectGetMaxX(badgeRect); + CGFloat miny = CGRectGetMinY(badgeRect); + CGFloat midy = CGRectGetMidY(badgeRect); + CGFloat maxy = CGRectGetMaxY(badgeRect); + + // Fill the ellipse + CGContextSaveGState(context); + CGContextBeginPath(context); + CGContextMoveToPoint(context, minx, midy); + CGContextAddArcToPoint(context, minx, miny, midx, miny, radius); + CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius); + CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius); + CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius); + CGContextClosePath(context); + CGContextSetFillColorWithColor(context, [self HB_NSColorToCGColor:_badgeFillColor]); + CGContextDrawPath(context, kCGPathFill); + + // Draw the text + NSRect textBounds = [badge boundingRectWithSize:NSZeroSize + options:NSStringDrawingUsesDeviceMetrics + attributes:attr]; + + badgeRect.origin.x = CGRectGetMidX(badgeRect) - (textSize.size.width * 0.5f); + badgeRect.origin.x -= (textBounds.size.width - textSize.size.width) * 0.5f; + badgeRect.origin.y = CGRectGetMidY(badgeRect); + badgeRect.origin.y -= textBounds.origin.y; + badgeRect.origin.y -= ((textBounds.size.height - textSize.origin.y) * 0.5f); + + badgeRect.size.height = textSize.size.height; + badgeRect.size.width = textSize.size.width; + [badge drawInRect:badgeRect withAttributes:attr]; + + CGContextRestoreGState(context); + + CGContextFlush(context); + CGContextRestoreGState(context); + + [newImage addRepresentation:newRep]; + } + + return newImage; +} + +@end diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj index 8fed74d93..92ddd87c3 100644 --- a/macosx/HandBrake.xcodeproj/project.pbxproj +++ b/macosx/HandBrake.xcodeproj/project.pbxproj @@ -178,6 +178,7 @@ A932E26C1988334B0047D13E /* AudioDefaults.xib in Resources */ = {isa = PBXBuildFile; fileRef = A932E26A1988334B0047D13E /* AudioDefaults.xib */; }; A9350F501CCA7F490089F970 /* HBQTKitPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = A9350F4E1CCA7C3B0089F970 /* HBQTKitPlayer.m */; }; A937EECB1C6C7C0300EEAE6D /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = A937EECA1C6C7C0300EEAE6D /* dsa_pub.pem */; }; + A93B49221DA3AA6900DD70A3 /* HBToolbarBadgedItem.m in Sources */ = {isa = PBXBuildFile; fileRef = A93B49211DA3AA6900DD70A3 /* HBToolbarBadgedItem.m */; }; A93E0ED31972957000FD67FB /* HBVideoController.m in Sources */ = {isa = PBXBuildFile; fileRef = A93E0ED11972957000FD67FB /* HBVideoController.m */; }; A93E0ED71972958C00FD67FB /* Video.xib in Resources */ = {isa = PBXBuildFile; fileRef = A93E0ED51972958C00FD67FB /* Video.xib */; }; A94A98F51C858EFB004BA9BA /* HBDictTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A94A98F41C858EFB004BA9BA /* HBDictTests.m */; }; @@ -429,6 +430,8 @@ A937EECA1C6C7C0300EEAE6D /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_pub.pem; sourceTree = "<group>"; }; A93B0DF61C804CF50051A3FA /* NSDictionary+HBAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+HBAdditions.h"; sourceTree = "<group>"; }; A93B0DF71C804CF50051A3FA /* NSDictionary+HBAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+HBAdditions.m"; sourceTree = "<group>"; }; + A93B49201DA3AA6900DD70A3 /* HBToolbarBadgedItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBToolbarBadgedItem.h; sourceTree = "<group>"; }; + A93B49211DA3AA6900DD70A3 /* HBToolbarBadgedItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBToolbarBadgedItem.m; sourceTree = "<group>"; }; A93E0ED01972957000FD67FB /* HBVideoController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBVideoController.h; sourceTree = "<group>"; }; A93E0ED11972957000FD67FB /* HBVideoController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBVideoController.m; sourceTree = "<group>"; }; A93E0ED61972958C00FD67FB /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Video.xib; sourceTree = "<group>"; }; @@ -1188,6 +1191,8 @@ A9D0FA761C1C284D0003F2A9 /* HBFocusRingView.m */, A9D0FA781C1C36820003F2A9 /* HBTabView.h */, A9D0FA791C1C36820003F2A9 /* HBTabView.m */, + A93B49201DA3AA6900DD70A3 /* HBToolbarBadgedItem.h */, + A93B49211DA3AA6900DD70A3 /* HBToolbarBadgedItem.m */, ); name = "UI Views"; sourceTree = "<group>"; @@ -1497,6 +1502,7 @@ A96664BA1CCE493D00DA4A57 /* HBEncodingProgressHUDController.m in Sources */, A9BB0F2719A0ECE40079F1C1 /* HBHUDButtonCell.m in Sources */, A9706CB71AC1437800BAEAA8 /* HBExceptionAlertController.m in Sources */, + A93B49221DA3AA6900DD70A3 /* HBToolbarBadgedItem.m in Sources */, A92268781A6E555500A8D5C5 /* HBAppDelegate.m in Sources */, A98036CD1CCA91DD007661AA /* HBAVPlayer.m in Sources */, A9BC24C91A69293E007DC41A /* HBAttributedStringAdditions.m in Sources */, |