summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamiano Galassi <[email protected]>2016-10-05 10:45:50 +0200
committerDamiano Galassi <[email protected]>2016-10-05 10:45:50 +0200
commiteaa2aed959c999467bc8c28cbe7be021785c5723 (patch)
treeddb20c09f6660fbe4864adb5d0f1d9b891b4c29b
parent136108a7f8eaba02dd0ede50142ee3b93e27efbd (diff)
MacGui: show the queue jobs count on the main window queue toolbar icon.
-rw-r--r--macosx/Assets.xcassets/showqueue.imageset/showqueue.pngbin1069 -> 1792 bytes
-rw-r--r--macosx/Assets.xcassets/showqueue.imageset/[email protected]bin3884 -> 4415 bytes
-rw-r--r--macosx/English.lproj/MainWindow.xib46
-rw-r--r--macosx/HBController.h2
-rw-r--r--macosx/HBController.m9
-rw-r--r--macosx/HBQueueController.m2
-rw-r--r--macosx/HBToolbarBadgedItem.h17
-rw-r--r--macosx/HBToolbarBadgedItem.m210
-rw-r--r--macosx/HandBrake.xcodeproj/project.pbxproj6
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
index ffcb4d70a..43c10b436 100644
--- a/macosx/Assets.xcassets/showqueue.imageset/showqueue.png
+++ b/macosx/Assets.xcassets/showqueue.imageset/showqueue.png
Binary files differ
diff --git a/macosx/Assets.xcassets/showqueue.imageset/[email protected] b/macosx/Assets.xcassets/showqueue.imageset/[email protected]
index 2cbe097e1..d1d155c0a 100644
--- a/macosx/Assets.xcassets/showqueue.imageset/[email protected]
+++ b/macosx/Assets.xcassets/showqueue.imageset/[email protected]
Binary files differ
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 */,