Fixed an issue with crashing on VoiceMac, fixed MGMXML issue with VoiceMail, added a load more cell for VoiceMob inbox, added a SMS text view for VoiceMob.
@ -14,7 +14,7 @@
|
||||
|
||||
@class MGMInstance, MGMURLConnectionManager;
|
||||
|
||||
#define MGMInboxDebug 1
|
||||
#define MGMInboxDebug 0
|
||||
|
||||
extern NSString * const MGMIDelegate;
|
||||
extern NSString * const MGMIDidReceiveInfo;
|
||||
|
@ -280,7 +280,14 @@ const BOOL MGMInboxInvisible = YES;
|
||||
int type = [[thisInfo objectForKey:MGMIType] intValue];
|
||||
if (type==MGMIVoicemailType) {
|
||||
[thisInfo setObject:[NSNumber numberWithBool:[[message XMLString] containsString:@"gc-message-transcript-rate-up-active"]] forKey:MGMIUseful];
|
||||
NSString *transcript = [[[[[message childAtIndex:0] nodesForXPath:[NSString stringWithFormat:@"/html[1]/body[1]/div[%d]/div[1]/div[2]/table[1]/tr[1]/td[3]/div[1]/table[1]/tr[2]/td[2]/table[1]/tr[2]/td[1]/div[1]/div[1]/table[1]/tr[1]/td[2]/div[1]/div[1]/table[1]/tr[1]/td[1]/div[1]", i+1] error:nil] objectAtIndex:0] stringValue] flattenHTML];
|
||||
NSMutableString *transcript = [NSMutableString string];
|
||||
NSArray *words = [[[[message childAtIndex:0] nodesForXPath:[NSString stringWithFormat:@"/html[1]/body[1]/div[%d]/div[1]/div[2]/table[1]/tr[1]/td[3]/div[1]/table[1]/tr[2]/td[2]/table[1]/tr[2]/td[1]/div[1]/div[1]/table[1]/tr[1]/td[2]/div[1]/div[1]/table[1]/tr[1]/td[1]/div[1]", i+1] error:nil] objectAtIndex:0] elementsForName:@"span"];
|
||||
for (unsigned int w=0; w<[words count]; w++) {
|
||||
if (w==0)
|
||||
[transcript appendString:[[words objectAtIndex:w] stringValue]];
|
||||
else
|
||||
[transcript appendFormat:@" %@", [[words objectAtIndex:w] stringValue]];
|
||||
}
|
||||
[thisInfo setObject:transcript forKey:MGMIText];
|
||||
} else if (type==MGMISMSIn || type==MGMISMSOut) {
|
||||
NSArray *messagesXML = [[message childAtIndex:0] nodesForXPath:[NSString stringWithFormat:@"/html[1]/body[1]/div[%d]/div[1]/div[2]/table[1]/tr[1]/td[3]/div[1]/table[1]/tr[2]/td[2]/table[1]/tr[2]/td[1]/div[1]/div[1]/table[1]/tr[1]/td[2]/div[1]/div[1]/div[1]/div", i+1] error:nil];
|
||||
|
@ -7,24 +7,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
#import <MGMAddons.h>
|
||||
#import <MGMInstance.h>
|
||||
#import <MGMInbox.h>
|
||||
#import <MGMContactsProtocol.h>
|
||||
#import <MGMContacts.h>
|
||||
#import <MGMAddressBook.h>
|
||||
#import <MGMGoogleContacts.h>
|
||||
#import <MGMSound.h>
|
||||
#import <MGMThemeManager.h>
|
||||
#import <MGMXML.h>
|
||||
|
||||
//MGMSIP Stuff
|
||||
#import <MGMSIP.h>
|
||||
#import <MGMSIPAccount.h>
|
||||
#import <MGMSIPCall.h>
|
||||
#import <MGMSIPURL.h>
|
||||
#else
|
||||
#import <VoiceBase/MGMAddons.h>
|
||||
#import <VoiceBase/MGMInstance.h>
|
||||
#import <VoiceBase/MGMInbox.h>
|
||||
@ -40,5 +22,4 @@
|
||||
#import <VoiceBase/MGMSIP.h>
|
||||
#import <VoiceBase/MGMSIPAccount.h>
|
||||
#import <VoiceBase/MGMSIPCall.h>
|
||||
#import <VoiceBase/MGMSIPURL.h>
|
||||
#endif
|
||||
#import <VoiceBase/MGMSIPURL.h>
|
@ -7,18 +7,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
#import <MGMXMLNode.h>
|
||||
#import <MGMXMLElement.h>
|
||||
#import <MGMXMLDocument.h>
|
||||
#import <MGMXMLDTD.h>
|
||||
#import <MGMXMLDTDNode.h>
|
||||
#import <MGMXMLNodeOptions.h>
|
||||
#else
|
||||
#import <VoiceBase/MGMXMLNode.h>
|
||||
#import <VoiceBase/MGMXMLElement.h>
|
||||
#import <VoiceBase/MGMXMLDocument.h>
|
||||
#import <VoiceBase/MGMXMLDTD.h>
|
||||
#import <VoiceBase/MGMXMLDTDNode.h>
|
||||
#import <VoiceBase/MGMXMLNodeOptions.h>
|
||||
#endif
|
||||
#import <VoiceBase/MGMXMLNodeOptions.h>
|
@ -8,11 +8,10 @@
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <MGMXMLNode.h>
|
||||
#else
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <VoiceBase/MGMXMLNode.h>
|
||||
#endif
|
||||
#import <VoiceBase/MGMXMLNode.h>
|
||||
|
||||
@interface MGMXMLDTD : MGMXMLNode {
|
||||
|
||||
|
@ -8,11 +8,10 @@
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <MGMXMLNode.h>
|
||||
#else
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <VoiceBase/MGMXMLNode.h>
|
||||
#endif
|
||||
#import <VoiceBase/MGMXMLNode.h>
|
||||
|
||||
@interface MGMXMLDTDNode : MGMXMLNode {
|
||||
|
||||
|
@ -8,11 +8,10 @@
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <MGMXMLNode.h>
|
||||
#else
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <VoiceBase/MGMXMLNode.h>
|
||||
#endif
|
||||
#import <VoiceBase/MGMXMLNode.h>
|
||||
|
||||
#define MGMXMLDocPtr (xmlDocPtr)commonXML
|
||||
|
||||
|
@ -8,11 +8,10 @@
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <MGMXMLNode.h>
|
||||
#else
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <VoiceBase/MGMXMLNode.h>
|
||||
#endif
|
||||
#import <VoiceBase/MGMXMLNode.h>
|
||||
|
||||
@interface MGMXMLElement : MGMXMLNode {
|
||||
|
||||
|
@ -8,11 +8,10 @@
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <MGMXMLNodeOptions.h>
|
||||
#else
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <VoiceBase/MGMXMLNodeOptions.h>
|
||||
#endif
|
||||
#import <VoiceBase/MGMXMLNodeOptions.h>
|
||||
#import <libxml/parser.h>
|
||||
#import <libxml/tree.h>
|
||||
#import <libxml/xpath.h>
|
||||
|
@ -419,6 +419,7 @@ NSString * const MGMLoading = @"Loading...";
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:MGMContactsControllersChangedNotification object:self];
|
||||
}
|
||||
- (void)contactsControllerBecameCurrent:(MGMContactsController *)theContactsController {
|
||||
if (quitting) return;
|
||||
if ([contactsControllers containsObject:theContactsController])
|
||||
currentContactsController = [contactsControllers indexOfObject:theContactsController];
|
||||
else
|
||||
|
@ -36,20 +36,21 @@ const float MGMHLEBlue = 0.607843;
|
||||
float controlY = theRadiusY * ellipse;
|
||||
NSRect edges = NSInsetRect(theRect, theRadiusX, theRadiusY);
|
||||
|
||||
// bottom right corner
|
||||
[path moveToPoint:NSMakePoint(edges.origin.x, theRect.origin.y)];
|
||||
|
||||
// top right corner
|
||||
[path lineToPoint:NSMakePoint(NSMaxX(edges), theRect.origin.y)];
|
||||
[path curveToPoint:NSMakePoint(NSMaxX(theRect), edges.origin.y) controlPoint1:NSMakePoint(NSMaxX(edges) + controlX, theRect.origin.y) controlPoint2:NSMakePoint(NSMaxX(theRect), edges.origin.y - controlY)];
|
||||
|
||||
// top right corner
|
||||
// bottom right corner
|
||||
[path lineToPoint:NSMakePoint(NSMaxX(theRect), NSMaxY(edges))];
|
||||
[path curveToPoint:NSMakePoint(NSMaxX(edges), NSMaxY(theRect)) controlPoint1:NSMakePoint(NSMaxX(theRect), NSMaxY(edges) + controlY) controlPoint2:NSMakePoint(NSMaxX(edges) + controlX, NSMaxY(theRect))];
|
||||
|
||||
// top left corner
|
||||
// bottom left corner
|
||||
[path lineToPoint:NSMakePoint(edges.origin.x, NSMaxY(theRect))];
|
||||
[path curveToPoint:NSMakePoint(theRect.origin.x, NSMaxY(edges)) controlPoint1:NSMakePoint(edges.origin.x - controlX, NSMaxY(theRect)) controlPoint2:NSMakePoint(theRect.origin.x, NSMaxY(edges) + controlY)];
|
||||
|
||||
// bottom left corner
|
||||
// top left corner
|
||||
[path lineToPoint:NSMakePoint(theRect.origin.x, edges.origin.y)];
|
||||
[path curveToPoint:NSMakePoint(edges.origin.x, theRect.origin.y) controlPoint1:NSMakePoint(theRect.origin.x, edges.origin.y - controlY) controlPoint2:NSMakePoint(edges.origin.x - controlX, theRect.origin.y)];
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
#import "MGMVMAddons.h"
|
||||
#import "MGMAccountSetup.h"
|
||||
#import <MGMUsers/MGMUsers.h>
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
NSString * const MGMLastContactsController = @"MGMLastContactsController";
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
#import "MGMController.h"
|
||||
#import "MGMSIPUser.h"
|
||||
#import "MGMVMAddons.h"
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
#import <MGMUsers/MGMUsers.h>
|
||||
|
||||
NSString * const MGMRadioButton = @"Radio";
|
||||
|
@ -11,7 +11,7 @@
|
||||
#import "MGMAccountSetup.h"
|
||||
#import "MGMVMAddons.h"
|
||||
#import <MGMUsers/MGMUsers.h>
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
NSString * const MGMAccountCellIdentifier = @"MGMAccountCellIdentifier";
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
#import "MGMContactView.h"
|
||||
#import "MGMAccountController.h"
|
||||
#import "MGMController.h"
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
NSString * const MGMContactViewCellIdentifier = @"MGMContactViewCellIdentifier";
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
#import "MGMAccountSetup.h"
|
||||
#import "MGMVMAddons.h"
|
||||
#import <MGMUsers/MGMUsers.h>
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
@implementation MGMController
|
||||
- (void)awakeFromNib {
|
||||
|
72
Classes/VoiceMob/MGMPath.h
Normal file
@ -0,0 +1,72 @@
|
||||
//
|
||||
// MGMPath.h
|
||||
// VoiceMob
|
||||
//
|
||||
// Created by Mr. Gecko on 10/1/10.
|
||||
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface MGMPath : NSObject {
|
||||
CGMutablePathRef pathRef;
|
||||
CGFloat *lineDashPattern;
|
||||
NSUInteger lineDashPatternCount;
|
||||
CGFloat lineDashPhase;
|
||||
CGFloat lineWidth;
|
||||
CGFloat miterLimit;
|
||||
CGFloat flatness;
|
||||
CGLineCap lineCapStyle;
|
||||
CGLineJoin lineJoinStyle;
|
||||
}
|
||||
+ (MGMPath *)path;
|
||||
+ (MGMPath *)pathWithRect:(CGRect)theRect;
|
||||
//+ (MGMPath *)pathWithOvalInRect:(CGRect)theRect;
|
||||
+ (MGMPath *)pathWithRoundedRect:(CGRect)theRect cornerRadius:(CGFloat)theRadius;
|
||||
+ (MGMPath *)pathWithRoundedRect:(CGRect)theRect cornerRadiusX:(CGFloat)theRadiusX cornerRadiusY:(CGFloat)theRadiusY;
|
||||
//+ (MGMPath *)pathWithRoundedRect:(CGRect)theRect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii;
|
||||
//+ (MGMPath *)pathWithArcCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;
|
||||
//+ (MGMPath *)pathWithCGPath:(CGPathRef)CGPath;
|
||||
|
||||
- (CGMutablePathRef)CGPath;
|
||||
|
||||
- (void)moveToPoint:(CGPoint)thePoint;
|
||||
- (void)addLineToPoint:(CGPoint)thePoint;
|
||||
- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2;
|
||||
- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint;
|
||||
- (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;
|
||||
- (void)closePath;
|
||||
|
||||
//- (void)removeAllPoints;
|
||||
|
||||
- (void)appendPath:(MGMPath *)thePath;
|
||||
|
||||
//- (void)applyTransform:(CGAffineTransform)transform;
|
||||
|
||||
- (BOOL)isEmpty;
|
||||
- (CGRect)bounds;
|
||||
- (CGPoint)currentPoint;
|
||||
- (BOOL)containsPoint:(CGPoint)point;
|
||||
|
||||
- (void)setLineWidth:(CGFloat)theWidth;
|
||||
- (CGFloat)lineWidth;
|
||||
- (void)setLineJoinStyle:(CGLineJoin)theLineJoinStyle;
|
||||
- (CGLineJoin)lineJoinStyle;
|
||||
- (void)setLineCapStyle:(CGLineCap)theLineCapStyle;
|
||||
- (CGLineCap)lineCapStyle;
|
||||
- (void)setMiterLimit:(CGFloat)theMiterLimit;
|
||||
- (CGFloat)miterLimit;
|
||||
- (void)setFlatness:(CGFloat)theFlatness;
|
||||
- (CGFloat)flatness;
|
||||
- (void)setLineDash:(const CGFloat *)pattern count:(NSInteger)count phase:(CGFloat)phase;
|
||||
- (void)getLineDash:(CGFloat *)pattern count:(NSInteger *)count phase:(CGFloat *)phase;
|
||||
|
||||
- (void)fill;
|
||||
- (void)fillGradientFrom:(UIColor *)theStartColor to:(UIColor *)theEndColor;
|
||||
- (void)stroke;
|
||||
|
||||
//- (void)fillWithBlendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha;
|
||||
//- (void)strokeWithBlendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha;
|
||||
|
||||
- (void)addClip;
|
||||
@end
|
228
Classes/VoiceMob/MGMPath.m
Normal file
@ -0,0 +1,228 @@
|
||||
//
|
||||
// MGMPath.m
|
||||
// VoiceMob
|
||||
//
|
||||
// Created by Mr. Gecko on 10/1/10.
|
||||
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
|
||||
//
|
||||
|
||||
#import "MGMPath.h"
|
||||
|
||||
@implementation MGMPath
|
||||
+ (MGMPath *)path {
|
||||
return [[[self alloc] init] autorelease];
|
||||
}
|
||||
+ (MGMPath *)pathWithRect:(CGRect)theRect {
|
||||
MGMPath *path = [self path];
|
||||
CGPathAddRect([path CGPath], NULL, theRect);
|
||||
return path;
|
||||
}
|
||||
+ (MGMPath *)pathWithRoundedRect:(CGRect)theRect cornerRadius:(CGFloat)theRadius {
|
||||
return [self pathWithRoundedRect:theRect cornerRadiusX:theRadius cornerRadiusY:theRadius];
|
||||
}
|
||||
+ (MGMPath *)pathWithRoundedRect:(CGRect)theRect cornerRadiusX:(CGFloat)theRadiusX cornerRadiusY:(CGFloat)theRadiusY {
|
||||
MGMPath *path = [self path];
|
||||
|
||||
float maxRadiusX = theRect.size.width / 2.0;
|
||||
float maxRadiusY = theRect.size.height / 2.0;
|
||||
theRadiusX = (theRadiusX<maxRadiusX ? theRadiusX : maxRadiusX);
|
||||
theRadiusY = (theRadiusY<maxRadiusY ? theRadiusY : maxRadiusY);
|
||||
float ellipse = 0.55228474983079;
|
||||
float controlX = theRadiusX * ellipse;
|
||||
float controlY = theRadiusY * ellipse;
|
||||
CGRect edges = CGRectInset(theRect, theRadiusX, theRadiusY);
|
||||
|
||||
[path moveToPoint:CGPointMake(edges.origin.x, theRect.origin.y)];
|
||||
|
||||
// top right corner
|
||||
[path addLineToPoint:CGPointMake(CGRectGetMaxX(edges), theRect.origin.y)];
|
||||
[path addCurveToPoint:CGPointMake(CGRectGetMaxX(theRect), edges.origin.y) controlPoint1:CGPointMake(CGRectGetMaxX(edges) + controlX, theRect.origin.y) controlPoint2:CGPointMake(CGRectGetMaxX(theRect), edges.origin.y - controlY)];
|
||||
|
||||
// bottom right corner
|
||||
[path addLineToPoint:CGPointMake(CGRectGetMaxX(theRect), CGRectGetMaxY(edges))];
|
||||
[path addCurveToPoint:CGPointMake(CGRectGetMaxX(edges), CGRectGetMaxY(theRect)) controlPoint1:CGPointMake(CGRectGetMaxX(theRect), CGRectGetMaxY(edges) + controlY) controlPoint2:CGPointMake(CGRectGetMaxX(edges) + controlX, CGRectGetMaxY(theRect))];
|
||||
|
||||
// bottom left corner
|
||||
[path addLineToPoint:CGPointMake(edges.origin.x, CGRectGetMaxY(theRect))];
|
||||
[path addCurveToPoint:CGPointMake(theRect.origin.x, CGRectGetMaxY(edges)) controlPoint1:CGPointMake(edges.origin.x - controlX, CGRectGetMaxY(theRect)) controlPoint2:CGPointMake(theRect.origin.x, CGRectGetMaxY(edges) + controlY)];
|
||||
|
||||
// top left corner
|
||||
[path addLineToPoint:CGPointMake(theRect.origin.x, edges.origin.y)];
|
||||
[path addCurveToPoint:CGPointMake(edges.origin.x, theRect.origin.y) controlPoint1:CGPointMake(theRect.origin.x, edges.origin.y - controlY) controlPoint2:CGPointMake(edges.origin.x - controlX, theRect.origin.y)];
|
||||
|
||||
[path closePath];
|
||||
|
||||
return path;
|
||||
}
|
||||
- (id)init {
|
||||
if (self = [super init]) {
|
||||
pathRef = CGPathCreateMutable();
|
||||
lineWidth = 1.0;
|
||||
lineCapStyle = kCGLineCapButt;
|
||||
lineJoinStyle = kCGLineJoinMiter;
|
||||
miterLimit = 10.0;
|
||||
flatness = 0.6;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
- (void)dealloc {
|
||||
if (pathRef!=NULL)
|
||||
CGPathRelease(pathRef);
|
||||
if (lineDashPattern!=NULL)
|
||||
free(lineDashPattern);
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (CGMutablePathRef)CGPath {
|
||||
return pathRef;
|
||||
}
|
||||
|
||||
- (BOOL)isEqual:(id)object {
|
||||
if ([object isKindOfClass:[MGMPath class]]) {
|
||||
return CGPathEqualToPath(pathRef, [object CGPath]);
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (void)moveToPoint:(CGPoint)thePoint {
|
||||
CGPathMoveToPoint(pathRef, NULL, thePoint.x, thePoint.y);
|
||||
}
|
||||
- (void)addLineToPoint:(CGPoint)thePoint {
|
||||
CGPathAddLineToPoint(pathRef, NULL, thePoint.x, thePoint.y);
|
||||
}
|
||||
- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2 {
|
||||
CGPathAddCurveToPoint(pathRef, NULL, controlPoint1.x, controlPoint1.y, controlPoint2.x, controlPoint2.y, endPoint.x, endPoint.y);
|
||||
}
|
||||
- (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise {
|
||||
CGPathAddArc(pathRef, NULL, center.x, center.y, radius, startAngle, endAngle, clockwise);
|
||||
}
|
||||
- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint {
|
||||
CGPathAddQuadCurveToPoint(pathRef, NULL, controlPoint.x, controlPoint.y, endPoint.x, endPoint.y);
|
||||
}
|
||||
- (void)closePath {
|
||||
CGPathCloseSubpath(pathRef);
|
||||
}
|
||||
|
||||
- (void)appendPath:(MGMPath *)thePath {
|
||||
CGPathAddPath(pathRef, NULL, [thePath CGPath]);
|
||||
}
|
||||
|
||||
- (BOOL)isEmpty {
|
||||
return CGPathIsEmpty(pathRef);
|
||||
}
|
||||
- (CGRect)bounds {
|
||||
return CGPathGetBoundingBox(pathRef);
|
||||
}
|
||||
- (CGPoint)currentPoint {
|
||||
return CGPathGetCurrentPoint(pathRef);
|
||||
}
|
||||
- (BOOL)containsPoint:(CGPoint)point {
|
||||
return CGPathContainsPoint(pathRef, NULL, point, NO);
|
||||
}
|
||||
|
||||
- (void)setLineWidth:(CGFloat)theWidth {
|
||||
lineWidth = theWidth;
|
||||
}
|
||||
- (CGFloat)lineWidth {
|
||||
return lineWidth;
|
||||
}
|
||||
- (void)setLineJoinStyle:(CGLineJoin)theLineJoinStyle {
|
||||
lineJoinStyle = theLineJoinStyle;
|
||||
}
|
||||
- (CGLineJoin)lineJoinStyle {
|
||||
return lineJoinStyle;
|
||||
}
|
||||
- (void)setLineCapStyle:(CGLineCap)theLineCapStyle {
|
||||
lineCapStyle = theLineCapStyle;
|
||||
}
|
||||
- (CGLineCap)lineCapStyle {
|
||||
return lineCapStyle;
|
||||
}
|
||||
- (void)setMiterLimit:(CGFloat)theMiterLimit {
|
||||
miterLimit = theMiterLimit;
|
||||
}
|
||||
- (CGFloat)miterLimit {
|
||||
return miterLimit;
|
||||
}
|
||||
- (void)setFlatness:(CGFloat)theFlatness {
|
||||
flatness = theFlatness;
|
||||
}
|
||||
- (CGFloat)flatness {
|
||||
return flatness;
|
||||
}
|
||||
- (void)setLineDash:(const CGFloat *)pattern count:(NSInteger)count phase:(CGFloat)phase {
|
||||
if (lineDashPattern!=NULL) {
|
||||
free(lineDashPattern);
|
||||
lineDashPattern = NULL;
|
||||
}
|
||||
if (pattern!=NULL) {
|
||||
lineDashPattern = malloc(sizeof(CGFloat)*count);
|
||||
memcpy(lineDashPattern, pattern, sizeof(pattern));
|
||||
}
|
||||
lineDashPatternCount = count;
|
||||
lineDashPhase = phase;
|
||||
}
|
||||
- (void)getLineDash:(CGFloat *)pattern count:(NSInteger *)count phase:(CGFloat *)phase {
|
||||
if (pattern!=NULL) {
|
||||
memcpy(pattern, lineDashPattern, sizeof(CGFloat)*lineDashPatternCount);
|
||||
}
|
||||
*count = lineDashPatternCount;
|
||||
*phase = lineDashPhase;
|
||||
}
|
||||
|
||||
- (void)setContextOptions:(CGContextRef)theContext {
|
||||
CGContextSetLineWidth(theContext, lineWidth);
|
||||
CGContextSetLineCap(theContext, lineCapStyle);
|
||||
CGContextSetLineJoin(theContext, lineJoinStyle);
|
||||
CGContextSetMiterLimit(theContext, miterLimit);
|
||||
CGContextSetFlatness(theContext, flatness);
|
||||
if (lineDashPattern!=NULL)
|
||||
CGContextSetLineDash(theContext, lineDashPhase, lineDashPattern, lineDashPatternCount);
|
||||
}
|
||||
|
||||
- (void)fill {
|
||||
CGContextRef currentContext = UIGraphicsGetCurrentContext();
|
||||
CGContextSaveGState(currentContext);
|
||||
CGContextAddPath(currentContext, pathRef);
|
||||
[self setContextOptions:currentContext];
|
||||
CGContextFillPath(currentContext);
|
||||
CGContextRestoreGState(currentContext);
|
||||
}
|
||||
- (void)fillGradientFrom:(UIColor *)theStartColor to:(UIColor *)theEndColor {
|
||||
CGRect bounds = [self bounds];
|
||||
CGContextRef currentContext = UIGraphicsGetCurrentContext();
|
||||
CGContextSaveGState(currentContext);
|
||||
[self addClip];
|
||||
|
||||
CGColorRef colorsRef[2];
|
||||
colorsRef[0] = [theStartColor CGColor];
|
||||
colorsRef[1] = [theEndColor CGColor];
|
||||
CFArrayRef colors = CFArrayCreate(NULL, (const void **)colorsRef, sizeof(colorsRef) / sizeof(CGColorRef), &kCFTypeArrayCallBacks);
|
||||
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
|
||||
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, colors, NULL);
|
||||
CGPoint start = bounds.origin;
|
||||
bounds.origin.y += bounds.size.height;
|
||||
CGPoint end = bounds.origin;
|
||||
CGContextDrawLinearGradient(currentContext, gradient, start, end, 0);
|
||||
CGColorSpaceRelease(colorSpace);
|
||||
CFRelease(colors);
|
||||
CGGradientRelease(gradient);
|
||||
|
||||
CGContextRestoreGState(currentContext);
|
||||
}
|
||||
- (void)stroke {
|
||||
CGContextRef currentContext = UIGraphicsGetCurrentContext();
|
||||
CGContextSaveGState(currentContext);
|
||||
CGContextAddPath(currentContext, pathRef);
|
||||
[self setContextOptions:currentContext];
|
||||
CGContextStrokePath(currentContext);
|
||||
CGContextRestoreGState(currentContext);
|
||||
}
|
||||
|
||||
- (void)addClip {
|
||||
CGContextRef currentContext = UIGraphicsGetCurrentContext();
|
||||
CGContextAddPath(currentContext, pathRef);
|
||||
[self setContextOptions:currentContext];
|
||||
CGContextClip(currentContext);
|
||||
}
|
||||
@end
|
@ -11,4 +11,8 @@
|
||||
@interface UIDevice (MGMVMAddons)
|
||||
- (BOOL)isPad;
|
||||
- (NSString *)appendDeviceSuffixToString:(NSString *)theString;
|
||||
@end
|
||||
|
||||
@interface UIColor (MGMVMAddons)
|
||||
- (UIColor *)colorWithDifference:(CGFloat)theDifference;
|
||||
@end
|
@ -20,4 +20,27 @@
|
||||
else
|
||||
return [theString stringByAppendingString:@"_iPhone"];
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation UIColor (MGMVMAddons)
|
||||
- (UIColor *)colorWithDifference:(CGFloat)theDifference {
|
||||
CGColorRef colorRef = [self CGColor];
|
||||
CGColorSpaceRef colorspace = CGColorGetColorSpace(colorRef);
|
||||
size_t componentsCount = CGColorGetNumberOfComponents(colorRef);
|
||||
const CGFloat *componentsRef = CGColorGetComponents(colorRef);
|
||||
CGFloat *components = malloc(sizeof(CGFloat)*componentsCount);
|
||||
memcpy(components, componentsRef, sizeof(CGFloat)*componentsCount);
|
||||
CGFloat *colorComponents = components;
|
||||
for (size_t i=0; i<(componentsCount-1); i++) {
|
||||
CGFloat value = *components+theDifference;
|
||||
if (value>=0.0 && value<=1.0)
|
||||
*components = value;
|
||||
components++;
|
||||
}
|
||||
CGColorRef newColor = CGColorCreate(colorspace, colorComponents);
|
||||
UIColor *color = [UIColor colorWithCGColor:newColor];
|
||||
CGColorRelease(newColor);
|
||||
free(colorComponents);
|
||||
return color;
|
||||
}
|
||||
@end
|
@ -9,7 +9,7 @@
|
||||
#import "MGMSIPUser.h"
|
||||
#import "MGMVMAddons.h"
|
||||
#import <MGMUsers/MGMUsers.h>
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
NSString * const MGMSIPUserAreaCode = @"MGMVSIPUserAreaCode";
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
#import "MGMContactView.h"
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
@implementation MGMContactView
|
||||
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
|
18
Classes/VoiceMob/Views/MGMGradientButton.h
Normal file
@ -0,0 +1,18 @@
|
||||
//
|
||||
// MGMGradientButton.h
|
||||
// VoiceMob
|
||||
//
|
||||
// Created by Mr. Gecko on 10/1/10.
|
||||
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface MGMGradientButton : UIButton {
|
||||
UIColor *buttonColor;
|
||||
UIColor *buttonTouchColor;
|
||||
UIColor *buttonDisabledColor;
|
||||
BOOL touching;
|
||||
}
|
||||
|
||||
@end
|
113
Classes/VoiceMob/Views/MGMGradientButton.m
Normal file
@ -0,0 +1,113 @@
|
||||
//
|
||||
// MGMGradientButton.m
|
||||
// VoiceMob
|
||||
//
|
||||
// Created by Mr. Gecko on 10/1/10.
|
||||
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
|
||||
//
|
||||
|
||||
#import "MGMGradientButton.h"
|
||||
#import "MGMPath.h"
|
||||
#import "MGMVMAddons.h"
|
||||
|
||||
@implementation MGMGradientButton
|
||||
- (void)awakeFromNib {
|
||||
buttonColor = [[self backgroundColor] retain];
|
||||
buttonTouchColor = [[buttonColor colorWithDifference:-0.1] retain];
|
||||
buttonDisabledColor = [[buttonColor colorWithDifference:0.1] retain];
|
||||
[self setBackgroundColor:[UIColor clearColor]];
|
||||
}
|
||||
- (void)dealloc {
|
||||
if (buttonColor!=nil)
|
||||
[buttonColor release];
|
||||
if (buttonTouchColor!=nil)
|
||||
[buttonTouchColor release];
|
||||
if (buttonDisabledColor!=nil)
|
||||
[buttonDisabledColor release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)setTouching:(BOOL)isTouching {
|
||||
touching = isTouching;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
|
||||
[super touchesBegan:touches withEvent:event];
|
||||
[self setTouching:YES];
|
||||
}
|
||||
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
|
||||
[super touchesEnded:touches withEvent:event];
|
||||
[self setTouching:NO];
|
||||
}
|
||||
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
|
||||
[super touchesCancelled:touches withEvent:event];
|
||||
[self setTouching:NO];
|
||||
}
|
||||
|
||||
- (UIEdgeInsets)titleEdgeInsets {
|
||||
return UIEdgeInsetsMake(-2.0, 0.0, 0.0, 0.0);
|
||||
}
|
||||
- (void)drawRect:(CGRect)frameRect {
|
||||
UIColor *color = nil;
|
||||
if (![self isEnabled])
|
||||
color = buttonDisabledColor;
|
||||
else if (touching)
|
||||
color = buttonTouchColor;
|
||||
else
|
||||
color = buttonColor;
|
||||
CGRect whitePathBounds = [self bounds];
|
||||
CGRect pathBounds = whitePathBounds;
|
||||
whitePathBounds.size.width -= 2.0;
|
||||
whitePathBounds.origin.x += 1.0;
|
||||
whitePathBounds.size.height -= 2.0;
|
||||
whitePathBounds.origin.y += 0.7;
|
||||
MGMPath *whitePath = [MGMPath pathWithRoundedRect:whitePathBounds cornerRadius:12];
|
||||
[[UIColor colorWithWhite:1.0 alpha:1.0] setStroke];
|
||||
[whitePath setLineWidth:2.0];
|
||||
[whitePath stroke];
|
||||
pathBounds.size.width -= 1.0;
|
||||
pathBounds.origin.x += 0.5;
|
||||
pathBounds.size.height -= 2.0;
|
||||
pathBounds.origin.y += 0.5;
|
||||
MGMPath *path = [MGMPath pathWithRoundedRect:pathBounds cornerRadius:12];
|
||||
[path setLineWidth:1.0];
|
||||
[color setFill];
|
||||
[[color colorWithDifference:-0.1] setStroke];
|
||||
[path fill];
|
||||
[path stroke];
|
||||
|
||||
CGRect gradientRect = pathBounds;
|
||||
gradientRect.size.width -= 1.0;
|
||||
gradientRect.origin.x += 0.5;
|
||||
gradientRect.size.height -= 0.5;
|
||||
gradientRect.origin.y += 0.5;
|
||||
CGFloat gradientRadius = 12.0;
|
||||
MGMPath *gradientPath = [MGMPath path];
|
||||
float maxRadiusX = gradientRect.size.width / 2.0;
|
||||
float maxRadiusY = gradientRect.size.height / 2.0;
|
||||
gradientRadius = (gradientRadius<maxRadiusX ? gradientRadius : maxRadiusX);
|
||||
gradientRadius = (gradientRadius<maxRadiusY ? gradientRadius : maxRadiusY);
|
||||
float ellipse = 0.55228474983079;
|
||||
float controlX = gradientRadius * ellipse;
|
||||
float controlY = gradientRadius * ellipse;
|
||||
CGRect edges = CGRectInset(gradientRect, gradientRadius, gradientRadius);
|
||||
|
||||
[gradientPath moveToPoint:CGPointMake(edges.origin.x, gradientRect.origin.y)];
|
||||
|
||||
// top right corner
|
||||
[gradientPath addLineToPoint:CGPointMake(CGRectGetMaxX(edges), gradientRect.origin.y)];
|
||||
[gradientPath addCurveToPoint:CGPointMake(CGRectGetMaxX(gradientRect), edges.origin.y) controlPoint1:CGPointMake(CGRectGetMaxX(edges) + controlX, gradientRect.origin.y) controlPoint2:CGPointMake(CGRectGetMaxX(gradientRect), edges.origin.y - controlY)];
|
||||
|
||||
[gradientPath addLineToPoint:CGPointMake(CGRectGetMaxX(gradientRect), CGRectGetMidY(gradientRect))];
|
||||
[gradientPath addLineToPoint:CGPointMake(CGRectGetMidX(gradientRect), CGRectGetMidY(gradientRect))];
|
||||
|
||||
// top left corner
|
||||
[gradientPath addLineToPoint:CGPointMake(gradientRect.origin.x, edges.origin.y)];
|
||||
[gradientPath addCurveToPoint:CGPointMake(edges.origin.x, gradientRect.origin.y) controlPoint1:CGPointMake(gradientRect.origin.x, edges.origin.y - controlY) controlPoint2:CGPointMake(edges.origin.x - controlX, gradientRect.origin.y)];
|
||||
|
||||
[gradientPath closePath];
|
||||
[gradientPath fillGradientFrom:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.6] to:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.2]];
|
||||
|
||||
[super drawRect:frameRect];
|
||||
}
|
||||
@end
|
@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
#import "MGMInboxMessageView.h"
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
@implementation MGMInboxMessageView
|
||||
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
|
@ -7,6 +7,7 @@
|
||||
//
|
||||
|
||||
#import "MGMNumberView.h"
|
||||
#import "MGMPath.h"
|
||||
|
||||
NSString * const MGMFontName = @"Helvetica";
|
||||
|
||||
@ -105,51 +106,31 @@ NSString * const MGMFontName = @"Helvetica";
|
||||
[self setTouching:NO];
|
||||
}
|
||||
|
||||
- (void)drawRect:(CGRect)rect {
|
||||
CGContextRef currentContext = UIGraphicsGetCurrentContext();
|
||||
CGContextSaveGState(currentContext);
|
||||
CGMutablePathRef path = CGPathCreateMutable();
|
||||
CGRect bounds = [self bounds];
|
||||
CGPathAddRect(path, NULL, bounds);
|
||||
CGContextAddPath(currentContext, path);
|
||||
CGContextClip(currentContext);
|
||||
|
||||
CGColorRef colorsRef[2];
|
||||
- (void)drawRect:(CGRect)frameRect {
|
||||
UIColor *startColor = nil;
|
||||
UIColor *endColor = nil;
|
||||
if (touching) {
|
||||
colorsRef[0] = [[UIColor colorWithRed:0.5 green:0.5 blue:1.0 alpha:1.0] CGColor];
|
||||
colorsRef[1] = [[UIColor colorWithRed:0.1 green:0.1 blue:0.5 alpha:1.0] CGColor];
|
||||
startColor = [UIColor colorWithRed:0.5 green:0.5 blue:1.0 alpha:1.0];
|
||||
endColor = [UIColor colorWithRed:0.1 green:0.1 blue:0.5 alpha:1.0];
|
||||
} else {
|
||||
if ([self tag]==13) {
|
||||
colorsRef[0] = [[UIColor colorWithRed:0.5 green:1.0 blue:0.5 alpha:1.0] CGColor];
|
||||
colorsRef[1] = [[UIColor colorWithRed:0.1 green:0.5 blue:0.1 alpha:1.0] CGColor];
|
||||
startColor = [UIColor colorWithRed:0.5 green:1.0 blue:0.5 alpha:1.0];
|
||||
endColor = [UIColor colorWithRed:0.1 green:0.5 blue:0.1 alpha:1.0];
|
||||
} else if ([self tag]==14) {
|
||||
colorsRef[0] = [[UIColor colorWithRed:1.0 green:0.5 blue:0.5 alpha:1.0] CGColor];
|
||||
colorsRef[1] = [[UIColor colorWithRed:0.5 green:0.1 blue:0.1 alpha:1.0] CGColor];
|
||||
startColor = [UIColor colorWithRed:1.0 green:0.5 blue:0.5 alpha:1.0];
|
||||
endColor = [UIColor colorWithRed:0.5 green:0.1 blue:0.1 alpha:1.0];
|
||||
} else {
|
||||
colorsRef[0] = [[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0] CGColor];
|
||||
colorsRef[1] = [[UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:1.0] CGColor];
|
||||
startColor = [UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0];
|
||||
endColor = [UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:1.0];
|
||||
}
|
||||
}
|
||||
CFArrayRef colors = CFArrayCreate(NULL, (const void **)colorsRef, sizeof(colorsRef) / sizeof(CGColorRef), &kCFTypeArrayCallBacks);
|
||||
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
|
||||
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, colors, NULL);
|
||||
CFRelease(colorSpace);
|
||||
CFRelease(colors);
|
||||
|
||||
CGPoint start = bounds.origin;
|
||||
bounds.origin.y += bounds.size.height;
|
||||
CGPoint end = bounds.origin;
|
||||
CGContextDrawLinearGradient(currentContext, gradient, start, end, 0);
|
||||
|
||||
CFRelease(gradient);
|
||||
CFRelease(path);
|
||||
|
||||
CGRect strokeRect = bounds;
|
||||
strokeRect.origin.x = 0;
|
||||
strokeRect.origin.y = 0;
|
||||
CGContextSetStrokeColorWithColor(currentContext, [[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0] CGColor]);
|
||||
CGContextStrokeRectWithWidth(currentContext, strokeRect, 2.0);
|
||||
CGContextRestoreGState(currentContext);
|
||||
CGRect bounds = [self bounds];
|
||||
MGMPath *path = [MGMPath pathWithRect:bounds];
|
||||
[path setLineWidth:2.0];
|
||||
[[UIColor colorWithWhite:1.0 alpha:1.0] setStroke];
|
||||
[path fillGradientFrom:startColor to:endColor];
|
||||
[path stroke];
|
||||
|
||||
[[UIColor whiteColor] set];
|
||||
if ([self number]!=nil) {
|
||||
|
15
Classes/VoiceMob/Views/MGMSMSBottomView.h
Normal file
@ -0,0 +1,15 @@
|
||||
//
|
||||
// MGMSMSBottomView.h
|
||||
// VoiceMob
|
||||
//
|
||||
// Created by Mr. Gecko on 10/1/10.
|
||||
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface MGMSMSBottomView : UIView {
|
||||
|
||||
}
|
||||
|
||||
@end
|
29
Classes/VoiceMob/Views/MGMSMSBottomView.m
Normal file
@ -0,0 +1,29 @@
|
||||
//
|
||||
// MGMSMSBottomView.m
|
||||
// VoiceMob
|
||||
//
|
||||
// Created by Mr. Gecko on 10/1/10.
|
||||
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
|
||||
//
|
||||
|
||||
#import "MGMSMSBottomView.h"
|
||||
#import "MGMPath.h"
|
||||
|
||||
@implementation MGMSMSBottomView
|
||||
- (void)drawRect:(CGRect)frameRect {
|
||||
UIColor *startColor = [UIColor colorWithRed:0.968627 green:0.972549 blue:0.972549 alpha:1.0];
|
||||
UIColor *endColor = [UIColor colorWithRed:0.772549 green:0.780392 blue:0.796078 alpha:1.0];
|
||||
|
||||
MGMPath *path = [MGMPath pathWithRect:[self bounds]];
|
||||
[path fillGradientFrom:startColor to:endColor];
|
||||
CGRect lineRect = [self bounds];
|
||||
lineRect.size.height = 1;
|
||||
MGMPath *linePath = [MGMPath pathWithRect:lineRect];
|
||||
[[UIColor colorWithWhite:0.7 alpha:1.0] setFill];
|
||||
[linePath fill];
|
||||
lineRect.origin.y += 1;
|
||||
MGMPath *line2Path = [MGMPath pathWithRect:lineRect];
|
||||
[[UIColor colorWithWhite:1.0 alpha:1.0] setFill];
|
||||
[line2Path fill];
|
||||
}
|
||||
@end
|
15
Classes/VoiceMob/Views/MGMSMSTextView.h
Normal file
@ -0,0 +1,15 @@
|
||||
//
|
||||
// MGMSMSTextView.h
|
||||
// VoiceMob
|
||||
//
|
||||
// Created by Mr. Gecko on 10/1/10.
|
||||
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface MGMSMSTextView : UITextView {
|
||||
|
||||
}
|
||||
|
||||
@end
|
44
Classes/VoiceMob/Views/MGMSMSTextView.m
Normal file
@ -0,0 +1,44 @@
|
||||
//
|
||||
// MGMSMSTextView.m
|
||||
// VoiceMob
|
||||
//
|
||||
// Created by Mr. Gecko on 10/1/10.
|
||||
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
|
||||
//
|
||||
|
||||
#import "MGMSMSTextView.h"
|
||||
#import "MGMPath.h"
|
||||
|
||||
@implementation MGMSMSTextView
|
||||
- (void)awakeFromNib {
|
||||
[self setBackgroundColor:[UIColor clearColor]];
|
||||
[self setContentInset:UIEdgeInsetsMake(-6.0, 3.0, 0.0, -3.0)];
|
||||
}
|
||||
|
||||
- (void)drawRect:(CGRect)theRect {
|
||||
CGRect whitePathBounds = [self bounds];
|
||||
CGRect pathBounds = whitePathBounds;
|
||||
whitePathBounds.size.width -= 2.0;
|
||||
whitePathBounds.origin.x += 1.0;
|
||||
whitePathBounds.size.height -= 2.0;
|
||||
whitePathBounds.origin.y += 0.7;
|
||||
MGMPath *whitePath = [MGMPath pathWithRoundedRect:whitePathBounds cornerRadius:13];
|
||||
[[UIColor colorWithWhite:1.0 alpha:1.0] setStroke];
|
||||
[whitePath setLineWidth:2.0];
|
||||
[whitePath stroke];
|
||||
pathBounds.size.height -= 1.0;
|
||||
MGMPath *path = [MGMPath pathWithRoundedRect:pathBounds cornerRadius:13];
|
||||
[[UIColor colorWithWhite:0.95 alpha:1.0] setFill];
|
||||
[[UIColor colorWithWhite:0.4 alpha:1.0] setStroke];
|
||||
[path fill];
|
||||
CGContextRef currentContext = UIGraphicsGetCurrentContext();
|
||||
CGContextSaveGState(currentContext);
|
||||
[path addClip];
|
||||
CGContextAddPath(currentContext, [path CGPath]);
|
||||
CGContextSetShadowWithColor(currentContext, CGSizeMake(0, 1), 3.0, [[UIColor colorWithWhite:0.0 alpha:1.0] CGColor]);
|
||||
CGContextStrokePath(currentContext);
|
||||
CGContextRestoreGState(currentContext);
|
||||
|
||||
[super drawRect:theRect];
|
||||
}
|
||||
@end
|
@ -9,7 +9,7 @@
|
||||
#import "MGMVoiceContacts.h"
|
||||
#import "MGMVoiceUser.h"
|
||||
#import "MGMVMAddons.h"
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
@implementation MGMVoiceContacts
|
||||
+ (id)tabWithVoiceUser:(MGMVoiceUser *)theVoiceUser {
|
||||
|
@ -12,11 +12,11 @@
|
||||
|
||||
@interface MGMVoiceInbox : NSObject {
|
||||
MGMVoiceUser *voiceUser;
|
||||
MGMInstance *instance;
|
||||
|
||||
IBOutlet UITableView *inboxesTable;
|
||||
IBOutlet UITableView *messagesTable;
|
||||
MGMProgressView *progressView;
|
||||
int currentView;
|
||||
|
||||
NSArray *inboxItems;
|
||||
NSArray *messagesItems;
|
||||
@ -45,5 +45,6 @@
|
||||
- (void)stopProgress;
|
||||
|
||||
- (void)loadInbox;
|
||||
- (void)addData:(NSArray *)theData;
|
||||
- (int)currentInbox;
|
||||
@end
|
@ -12,7 +12,7 @@
|
||||
#import "MGMInboxMessageView.h"
|
||||
#import "MGMProgressView.h"
|
||||
#import "MGMVMAddons.h"
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
static NSMutableArray *MGMInboxItems;
|
||||
|
||||
@ -21,6 +21,7 @@ NSString * const MGMSID = @"id";
|
||||
|
||||
NSString * const MGMInboxesCellIdentifier = @"MGMInboxesCellIdentifier";
|
||||
NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier";
|
||||
NSString * const MGMInboxMessageLoadCellIdentifier = @"MGMInboxMessageLoadCellIdentifier";
|
||||
|
||||
@implementation MGMVoiceInbox
|
||||
+ (id)tabWithVoiceUser:(MGMVoiceUser *)theVoiceUser {
|
||||
@ -42,8 +43,11 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
|
||||
[MGMInboxItems addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"Missed", MGMSName, [NSNumber numberWithInt:9], MGMSID, nil]];
|
||||
}
|
||||
voiceUser = theVoiceUser;
|
||||
instance = [voiceUser instance];
|
||||
currentView = -1;
|
||||
currentInbox = 0;
|
||||
maxResults = 10;
|
||||
start = 0;
|
||||
resultsCount = 0;
|
||||
inboxItems = [[NSArray arrayWithObjects:[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:NULL] autorelease], [[[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:[voiceUser accountController] action:@selector(showSettings:)] autorelease], nil] retain];
|
||||
messagesItems = [[NSArray arrayWithObjects:[[[UIBarButtonItem alloc] initWithTitle:@"Inboxes" style:UIBarButtonItemStyleBordered target:self action:@selector(showInboxes:)] autorelease], [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:NULL] autorelease], [[[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:[voiceUser accountController] action:@selector(showSettings:)] autorelease], nil] retain];
|
||||
currentData = [NSMutableArray new];
|
||||
@ -60,19 +64,28 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
|
||||
}
|
||||
|
||||
- (UIView *)view {
|
||||
if (currentView==-1) {
|
||||
currentView = 1;
|
||||
[self loadInbox];
|
||||
}
|
||||
if (inboxesTable==nil) {
|
||||
if (![[NSBundle mainBundle] loadNibNamed:[[UIDevice currentDevice] appendDeviceSuffixToString:@"VoiceInbox"] owner:self options:nil]) {
|
||||
NSLog(@"Unable to load Voice Inbox");
|
||||
[self release];
|
||||
self = nil;
|
||||
} else {
|
||||
[[[voiceUser accountController] toolbar] setItems:inboxItems animated:YES];
|
||||
CGSize contentSize = [[voiceUser tabView] frame].size;
|
||||
progressView = [[MGMProgressView alloc] initWithFrame:CGRectMake(0, 0, contentSize.width, contentSize.height)];
|
||||
[progressView setProgressTitle:@"Loading..."];
|
||||
[progressView setHidden:(progressStartCount<=0)];
|
||||
if (currentView==1)
|
||||
[[[voiceUser accountController] toolbar] setItems:messagesItems animated:YES];
|
||||
else
|
||||
[[[voiceUser accountController] toolbar] setItems:inboxItems animated:YES];
|
||||
}
|
||||
}
|
||||
if (currentView==1)
|
||||
return messagesTable;
|
||||
return inboxesTable;
|
||||
}
|
||||
- (void)releaseView {
|
||||
@ -94,7 +107,6 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
|
||||
if (progressView!=nil) {
|
||||
if ([progressView superview]==nil)
|
||||
[[voiceUser tabView] addSubview:progressView];
|
||||
[progressView setHidden:NO];
|
||||
[progressView startProgess];
|
||||
[progressView becomeFirstResponder];
|
||||
}
|
||||
@ -103,39 +115,84 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
|
||||
- (void)stopProgress {
|
||||
if (progressView!=nil) {
|
||||
if (progressStartCount==1) {
|
||||
[progressView setHidden:YES];
|
||||
[progressView stopProgess];
|
||||
[progressView removeFromSuperview];
|
||||
}
|
||||
}
|
||||
progressStartCount--;
|
||||
}
|
||||
|
||||
- (IBAction)showInboxes:(id)sender {
|
||||
CGRect inViewFrame = [inboxesTable frame];
|
||||
inViewFrame.origin.x -= inViewFrame.size.width;
|
||||
[inboxesTable setFrame:inViewFrame];
|
||||
[[voiceUser tabView] addSubview:inboxesTable];
|
||||
[UIView beginAnimations:nil context:nil];
|
||||
[UIView setAnimationDuration:0.5];
|
||||
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
|
||||
[UIView setAnimationDelegate:self];
|
||||
[UIView setAnimationDidStopSelector:@selector(inboxesAnimationDidStop:finished:context:)];
|
||||
[inboxesTable setFrame:[messagesTable frame]];
|
||||
CGRect outViewFrame = [messagesTable frame];
|
||||
outViewFrame.origin.x += outViewFrame.size.width;
|
||||
[messagesTable setFrame:outViewFrame];
|
||||
[UIView commitAnimations];
|
||||
[[[voiceUser accountController] toolbar] setItems:inboxItems animated:YES];
|
||||
currentView = 0;
|
||||
}
|
||||
- (void)inboxesAnimationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
|
||||
[messagesTable removeFromSuperview];
|
||||
currentInbox = -1;
|
||||
start = 0;
|
||||
resultsCount = 0;
|
||||
[currentData removeAllObjects];
|
||||
[messagesTable reloadData];
|
||||
[[messagesItems objectAtIndex:1] setEnabled:YES];
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)theTableView numberOfRowsInSection:(NSInteger)section {
|
||||
if (theTableView==inboxesTable)
|
||||
return [MGMInboxItems count];
|
||||
else if (theTableView==messagesTable)
|
||||
return [currentData count];
|
||||
return (resultsCount==maxResults ? [currentData count]+1 : [currentData count]);
|
||||
return 0;
|
||||
}
|
||||
- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
UITableViewCell *cell = nil;
|
||||
if (theTableView==inboxesTable) {
|
||||
cell = [inboxesTable dequeueReusableCellWithIdentifier:MGMInboxesCellIdentifier];
|
||||
UITableViewCell *cell = [inboxesTable dequeueReusableCellWithIdentifier:MGMInboxesCellIdentifier];
|
||||
if (cell==nil) {
|
||||
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MGMInboxesCellIdentifier] autorelease];
|
||||
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
|
||||
}
|
||||
[cell setText:[[MGMInboxItems objectAtIndex:[indexPath indexAtPosition:1]] objectForKey:MGMSName]];
|
||||
return cell;
|
||||
} else if (theTableView==messagesTable) {
|
||||
cell = (MGMInboxMessageView *)[messagesTable dequeueReusableCellWithIdentifier:MGMInboxMessageCellIdentifier];
|
||||
if (cell==nil) {
|
||||
cell = [[[MGMInboxMessageView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MGMInboxMessageCellIdentifier] autorelease];
|
||||
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
|
||||
[cell setInstance:instance];
|
||||
if ([currentData count]<=[indexPath indexAtPosition:1]) {
|
||||
UITableViewCell *cell = [inboxesTable dequeueReusableCellWithIdentifier:MGMInboxMessageLoadCellIdentifier];
|
||||
if (cell==nil) {
|
||||
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MGMInboxMessageLoadCellIdentifier] autorelease];
|
||||
[cell setText:@"Load More..."];
|
||||
if ([cell respondsToSelector:@selector(textLabel)]) {
|
||||
[[cell textLabel] setTextColor:[UIColor blueColor]];
|
||||
[[cell textLabel] setTextAlignment:UITextAlignmentCenter];
|
||||
} else {
|
||||
[cell setTextColor:[UIColor blueColor]];
|
||||
[cell setTextAlignment:UITextAlignmentCenter];
|
||||
}
|
||||
}
|
||||
return cell;
|
||||
} else {
|
||||
MGMInboxMessageView *cell = (MGMInboxMessageView *)[messagesTable dequeueReusableCellWithIdentifier:MGMInboxMessageCellIdentifier];
|
||||
if (cell==nil) {
|
||||
cell = [[[MGMInboxMessageView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MGMInboxMessageCellIdentifier] autorelease];
|
||||
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
|
||||
[cell setInstance:[voiceUser instance]];
|
||||
}
|
||||
[cell setMessageData:[currentData objectAtIndex:[indexPath indexAtPosition:1]]];
|
||||
return cell;
|
||||
}
|
||||
[cell setMessageData:[currentData objectAtIndex:[indexPath indexAtPosition:1]]];
|
||||
}
|
||||
return cell;
|
||||
return nil;
|
||||
}
|
||||
- (BOOL)tableView:(UITableView *)theTableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if (theTableView==inboxesTable)
|
||||
@ -154,10 +211,6 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
|
||||
- (void)tableView:(UITableView *)theTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if (theTableView==inboxesTable) {
|
||||
currentInbox = [[[MGMInboxItems objectAtIndex:[indexPath indexAtPosition:1]] objectForKey:MGMSID] intValue];
|
||||
[currentData removeAllObjects];
|
||||
start = 0;
|
||||
resultsCount = 0;
|
||||
[self loadInbox];
|
||||
[[messagesItems objectAtIndex:1] setEnabled:NO];
|
||||
[[[voiceUser accountController] toolbar] setItems:messagesItems animated:YES];
|
||||
|
||||
@ -175,6 +228,15 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
|
||||
outViewFrame.origin.x -= outViewFrame.size.width;
|
||||
[inboxesTable setFrame:outViewFrame];
|
||||
[UIView commitAnimations];
|
||||
currentView = 1;
|
||||
[self loadInbox];
|
||||
} else if (theTableView==messagesTable) {
|
||||
if ([indexPath indexAtPosition:1]>=[currentData count]) {
|
||||
start += maxResults;
|
||||
[self loadInbox];
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
- (void)messagesAnimationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
|
||||
@ -188,34 +250,34 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
|
||||
[self startProgress];
|
||||
switch (currentInbox) {
|
||||
case 0:
|
||||
[[instance inbox] getInboxForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
[[[voiceUser instance] inbox] getInboxForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
break;
|
||||
case 1:
|
||||
[[instance inbox] getStarredForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
[[[voiceUser instance] inbox] getStarredForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
break;
|
||||
case 2:
|
||||
[[instance inbox] getSpamForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
[[[voiceUser instance] inbox] getSpamForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
break;
|
||||
case 3:
|
||||
[[instance inbox] getTrashForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
[[[voiceUser instance] inbox] getTrashForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
break;
|
||||
case 4:
|
||||
[[instance inbox] getVoicemailForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
[[[voiceUser instance] inbox] getVoicemailForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
break;
|
||||
case 5:
|
||||
[[instance inbox] getSMSForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
[[[voiceUser instance] inbox] getSMSForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
break;
|
||||
case 6:
|
||||
[[instance inbox] getRecordedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
[[[voiceUser instance] inbox] getRecordedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
break;
|
||||
case 7:
|
||||
[[instance inbox] getPlacedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
[[[voiceUser instance] inbox] getPlacedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
break;
|
||||
case 8:
|
||||
[[instance inbox] getReceivedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
[[[voiceUser instance] inbox] getReceivedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
break;
|
||||
case 9:
|
||||
[[instance inbox] getMissedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
[[[voiceUser instance] inbox] getMissedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -230,13 +292,17 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
|
||||
}
|
||||
- (void)inboxGotInfo:(NSArray *)theInfo instance:(MGMInstance *)theInstance {
|
||||
if (theInfo!=nil) {
|
||||
[currentData addObjectsFromArray:theInfo];
|
||||
[messagesTable reloadData];
|
||||
[self addData:theInfo];
|
||||
} else {
|
||||
NSLog(@"Error 234554: Hold on, this should never happen.");
|
||||
}
|
||||
[self stopProgress];
|
||||
}
|
||||
- (void)addData:(NSArray *)theData {
|
||||
resultsCount = [theData count];
|
||||
[currentData addObjectsFromArray:theData];
|
||||
[messagesTable reloadData];
|
||||
}
|
||||
- (int)currentInbox {
|
||||
return currentInbox;
|
||||
}
|
||||
|
@ -10,7 +10,7 @@
|
||||
#import "MGMVoiceUser.h"
|
||||
#import "MGMNumberView.h"
|
||||
#import "MGMVMAddons.h"
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
@implementation MGMVoicePad
|
||||
+ (id)tabWithVoiceUser:(MGMVoiceUser *)theVoiceUser {
|
||||
|
@ -13,7 +13,7 @@
|
||||
@interface MGMVoiceSMS : NSObject {
|
||||
MGMVoiceUser *voiceUser;
|
||||
|
||||
IBOutlet UIView *view;
|
||||
IBOutlet UIView *messageView;
|
||||
}
|
||||
+ (id)tabWithVoiceUser:(MGMVoiceUser *)theVoiceUser;
|
||||
- (id)initWithVoiceUser:(MGMVoiceUser *)theVoiceUser;
|
||||
|
@ -9,7 +9,7 @@
|
||||
#import "MGMVoiceSMS.h"
|
||||
#import "MGMVoiceUser.h"
|
||||
#import "MGMVMAddons.h"
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
@implementation MGMVoiceSMS
|
||||
+ (id)tabWithVoiceUser:(MGMVoiceUser *)theVoiceUser {
|
||||
@ -31,7 +31,7 @@
|
||||
}
|
||||
|
||||
- (UIView *)view {
|
||||
if (view==nil) {
|
||||
if (messageView==nil) {
|
||||
if (![[NSBundle mainBundle] loadNibNamed:[[UIDevice currentDevice] appendDeviceSuffixToString:@"VoiceSMS"] owner:self options:nil]) {
|
||||
NSLog(@"Unable to load Voice SMS");
|
||||
[self release];
|
||||
@ -40,12 +40,12 @@
|
||||
|
||||
}
|
||||
}
|
||||
return view;
|
||||
return messageView;
|
||||
}
|
||||
- (void)releaseView {
|
||||
if (view!=nil) {
|
||||
[view release];
|
||||
view = nil;
|
||||
if (messageView!=nil) {
|
||||
[messageView release];
|
||||
messageView = nil;
|
||||
}
|
||||
}
|
||||
@end
|
@ -15,7 +15,7 @@
|
||||
#import "MGMAccountController.h"
|
||||
#import "MGMVMAddons.h"
|
||||
#import <MGMUsers/MGMUsers.h>
|
||||
#import <VoiceBase.h>
|
||||
#import <VoiceBase/VoiceBase.h>
|
||||
|
||||
@implementation MGMVoiceUser
|
||||
+ (id)voiceUser:(MGMUser *)theUser accountController:(MGMAccountController *)theAccountController {
|
||||
@ -26,15 +26,15 @@
|
||||
accountController = theAccountController;
|
||||
user = [theUser retain];
|
||||
|
||||
if ([user isStarted])
|
||||
instance = [[MGMInstance instanceWithUser:user delegate:self] retain];
|
||||
|
||||
currentTab = 0;
|
||||
currentTab = 2;
|
||||
tabObjects = [NSMutableArray new];
|
||||
[tabObjects addObject:[MGMVoicePad tabWithVoiceUser:self]];
|
||||
[tabObjects addObject:[MGMVoiceContacts tabWithVoiceUser:self]];
|
||||
[tabObjects addObject:[MGMVoiceSMS tabWithVoiceUser:self]];
|
||||
[tabObjects addObject:[MGMVoiceInbox tabWithVoiceUser:self]];
|
||||
|
||||
//if ([user isStarted])
|
||||
//instance = [[MGMInstance instanceWithUser:user delegate:self] retain];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@ -74,7 +74,7 @@
|
||||
} else {
|
||||
[tabView addSubview:[[tabObjects objectAtIndex:currentTab] view]];
|
||||
[tabBar setSelectedItem:[[tabBar items] objectAtIndex:currentTab]];
|
||||
if (![instance isLoggedIn]) {
|
||||
/*if (![instance isLoggedIn]) {
|
||||
CGSize contentSize = [view frame].size;
|
||||
progressView = [[MGMProgressView alloc] initWithFrame:CGRectMake(0, 0, contentSize.width, contentSize.height)];
|
||||
[progressView setProgressTitle:@"Logging In"];
|
||||
@ -83,7 +83,7 @@
|
||||
[progressView becomeFirstResponder];
|
||||
} else {
|
||||
[self setInstanceInfo];
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
return view;
|
||||
|
@ -206,15 +206,16 @@
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="882170606">
|
||||
<nil key="NSNextResponder"/>
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUITextView" id="174950381">
|
||||
<reference key="NSNextResponder" ref="882170606"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 116}</string>
|
||||
<string key="NSFrameSize">{320, 136}</string>
|
||||
<reference key="NSSuperview" ref="882170606"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="IBUIBackgroundColor" ref="815808359"/>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
@ -222,7 +223,6 @@
|
||||
<bool key="IBUIScrollEnabled">NO</bool>
|
||||
<bool key="IBUIEditable">NO</bool>
|
||||
<string key="IBUIText">Choose an account type to set up and press continue. When you set up a Google Voice account, it will automatically add a second account for Google Contacts to receive contacts from that account.</string>
|
||||
<reference key="IBUITextColor" ref="815808359"/>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">16</double>
|
||||
@ -236,8 +236,9 @@
|
||||
<object class="IBUIButton" id="989292267">
|
||||
<reference key="NSNextResponder" ref="882170606"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 124}, {29, 29}}</string>
|
||||
<string key="NSFrame">{{20, 144}, {29, 29}}</string>
|
||||
<reference key="NSSuperview" ref="882170606"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="IBUIBackgroundColor" ref="815808359"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<int key="IBUITag">1</int>
|
||||
@ -266,8 +267,9 @@
|
||||
<object class="IBUIButton" id="365343775">
|
||||
<reference key="NSNextResponder" ref="882170606"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 161}, {29, 29}}</string>
|
||||
<string key="NSFrame">{{20, 181}, {29, 29}}</string>
|
||||
<reference key="NSSuperview" ref="882170606"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="IBUIBackgroundColor" ref="815808359"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<int key="IBUITag">2</int>
|
||||
@ -289,8 +291,9 @@
|
||||
<object class="IBUIButton" id="580254480">
|
||||
<reference key="NSNextResponder" ref="882170606"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 198}, {29, 29}}</string>
|
||||
<string key="NSFrame">{{20, 218}, {29, 29}}</string>
|
||||
<reference key="NSSuperview" ref="882170606"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="IBUIBackgroundColor" ref="815808359"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<int key="IBUITag">3</int>
|
||||
@ -309,8 +312,9 @@
|
||||
<object class="IBUIButton" id="330324968">
|
||||
<reference key="NSNextResponder" ref="882170606"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{57, 127}, {242, 21}}</string>
|
||||
<string key="NSFrame">{{57, 147}, {242, 21}}</string>
|
||||
<reference key="NSSuperview" ref="882170606"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<int key="IBUITag">1</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
@ -331,8 +335,9 @@
|
||||
<object class="IBUIButton" id="385142519">
|
||||
<reference key="NSNextResponder" ref="882170606"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{58, 165}, {242, 21}}</string>
|
||||
<string key="NSFrame">{{58, 185}, {242, 21}}</string>
|
||||
<reference key="NSSuperview" ref="882170606"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<int key="IBUITag">2</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
@ -346,8 +351,9 @@
|
||||
<object class="IBUIButton" id="206235771">
|
||||
<reference key="NSNextResponder" ref="882170606"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{58, 202}, {242, 21}}</string>
|
||||
<string key="NSFrame">{{58, 222}, {242, 21}}</string>
|
||||
<reference key="NSSuperview" ref="882170606"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<int key="IBUITag">3</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
@ -360,6 +366,8 @@
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 373}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="IBUIBackgroundColor" ref="815808359"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
@ -1581,9 +1589,9 @@
|
||||
<reference ref="989292267"/>
|
||||
<reference ref="365343775"/>
|
||||
<reference ref="580254480"/>
|
||||
<reference ref="330324968"/>
|
||||
<reference ref="385142519"/>
|
||||
<reference ref="206235771"/>
|
||||
<reference ref="330324968"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">Account Type</string>
|
||||
|
BIN
Resources/VoiceMob/Icon-Small.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
Resources/VoiceMob/Icon-Small@2x.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
@ -8,8 +8,6 @@
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>VoiceMob.png</string>
|
||||
<key>UIPrerenderedIcon</key>
|
||||
<true/>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 533 B After Width: | Height: | Size: 4.1 KiB |
@ -12,6 +12,7 @@
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="5"/>
|
||||
<integer value="3"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
@ -40,25 +41,138 @@
|
||||
<object class="IBUIView" id="355112807">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{322, 369}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIView" id="545711008">
|
||||
<reference key="NSNextResponder" ref="355112807"/>
|
||||
<int key="NSvFlags">266</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUITextView" id="826280752">
|
||||
<reference key="NSNextResponder" ref="545711008"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{7, 8}, {238, 26}}</string>
|
||||
<reference key="NSSuperview" ref="545711008"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="136061801">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MSAxIDEAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIScrollEnabled">NO</bool>
|
||||
<string key="IBUIText"/>
|
||||
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
|
||||
<int key="IBUIAutocapitalizationType">2</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="853973562">
|
||||
<reference key="NSNextResponder" ref="545711008"/>
|
||||
<int key="NSvFlags">265</int>
|
||||
<string key="NSFrame">{{252, 8}, {61, 26}}</string>
|
||||
<reference key="NSSuperview" ref="545711008"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xMTc2NDcwNTkzIDAuMzgwMzkyMTY0IDAuNzg0MzEzNzM4MwA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">16</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<string key="IBUINormalTitle">Send</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="338535607">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleColor" ref="338535607"/>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="1055111431">
|
||||
<reference key="NSNextResponder" ref="545711008"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{265, -21}, {29, 21}}</string>
|
||||
<reference key="NSSuperview" ref="545711008"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">160</string>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC4zMzMzMzMzNDMzAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrame">{{0, 329}, {320, 40}}</string>
|
||||
<reference key="NSSuperview" ref="355112807"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIWebView" id="394150452">
|
||||
<reference key="NSNextResponder" ref="355112807"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{320, 329}</string>
|
||||
<reference key="NSSuperview" ref="355112807"/>
|
||||
<reference key="IBUIBackgroundColor" ref="136061801"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIDataDetectorTypes">1</int>
|
||||
<bool key="IBUIDetectsPhoneNumbers">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 369}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="IBUIBackgroundColor" ref="338535607"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUITableView" id="908766037">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 369}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="IBUIBackgroundColor" ref="338535607"/>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIAlwaysBounceVertical">YES</bool>
|
||||
<int key="IBUISeparatorStyle">1</int>
|
||||
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
|
||||
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
|
||||
<float key="IBUIRowHeight">60</float>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<string key="label">messageView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="355112807"/>
|
||||
</object>
|
||||
<int key="connectionID">4</int>
|
||||
<int key="connectionID">14</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
@ -84,7 +198,50 @@
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">3</int>
|
||||
<reference key="object" ref="355112807"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="545711008"/>
|
||||
<reference ref="394150452"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">Message View</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="908766037"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">SMS Messages</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">15</int>
|
||||
<reference key="object" ref="545711008"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="826280752"/>
|
||||
<reference ref="853973562"/>
|
||||
<reference ref="1055111431"/>
|
||||
</object>
|
||||
<reference key="parent" ref="355112807"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="826280752"/>
|
||||
<reference key="parent" ref="545711008"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">16</int>
|
||||
<reference key="object" ref="853973562"/>
|
||||
<reference key="parent" ref="545711008"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">19</int>
|
||||
<reference key="object" ref="394150452"/>
|
||||
<reference key="parent" ref="355112807"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">20</int>
|
||||
<reference key="object" ref="1055111431"/>
|
||||
<reference key="parent" ref="545711008"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
@ -94,14 +251,34 @@
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>12.CustomClassName</string>
|
||||
<string>12.IBPluginDependency</string>
|
||||
<string>15.CustomClassName</string>
|
||||
<string>15.IBPluginDependency</string>
|
||||
<string>16.CustomClassName</string>
|
||||
<string>16.IBPluginDependency</string>
|
||||
<string>19.IBPluginDependency</string>
|
||||
<string>20.IBPluginDependency</string>
|
||||
<string>3.IBEditorWindowLastContentRect</string>
|
||||
<string>3.IBPluginDependency</string>
|
||||
<string>5.IBEditorWindowLastContentRect</string>
|
||||
<string>5.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>MGMVoiceSMS</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{525, 191}, {322, 369}}</string>
|
||||
<string>MGMSMSTextView</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>MGMSMSBottomView</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>MGMGradientButton</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>{{525, 192}, {320, 369}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>{{177, 335}, {320, 369}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
@ -121,22 +298,46 @@
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">4</int>
|
||||
<int key="maxID">20</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">MGMGradientButton</string>
|
||||
<string key="superclassName">UIButton</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/VoiceMob/Views/MGMGradientButton.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">MGMSMSBottomView</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/VoiceMob/Views/MGMSMSBottomView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">MGMSMSTextView</string>
|
||||
<string key="superclassName">UITextView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/VoiceMob/Views/MGMSMSTextView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">MGMVoiceSMS</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">view</string>
|
||||
<string key="NS.key.0">messageView</string>
|
||||
<string key="NS.object.0">UIView</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">view</string>
|
||||
<string key="NS.key.0">messageView</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">view</string>
|
||||
<string key="name">messageView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
</object>
|
||||
@ -239,11 +440,59 @@
|
||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIButton</string>
|
||||
<string key="superclassName">UIControl</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIControl</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UILabel</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIResponder</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<reference key="sourceIdentifier" ref="86538169"/>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIScrollView</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UITableView</string>
|
||||
<string key="superclassName">UIScrollView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UITextView</string>
|
||||
<string key="superclassName">UIScrollView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITextView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
@ -259,6 +508,14 @@
|
||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIWebView</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIWebView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
|
BIN
Resources/VoiceMob/icon.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
Resources/VoiceMob/icon@2x.png
Normal file
After Width: | Height: | Size: 18 KiB |
@ -63,30 +63,30 @@
|
||||
2A487CBC124BE1E600E8EE4E /* MGMXMLDTDNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A487C9A124BE0AB00E8EE4E /* MGMXMLDTDNode.m */; };
|
||||
2A487CBD124BE1E600E8EE4E /* MGMXMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A487C9C124BE0AB00E8EE4E /* MGMXMLElement.m */; };
|
||||
2A487CBE124BE1E600E8EE4E /* MGMXMLNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A487C9E124BE0AB00E8EE4E /* MGMXMLNode.m */; };
|
||||
2A487CC1124BE22E00E8EE4E /* MGMAddressBook.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A51245676A00D119B5 /* MGMAddressBook.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC2124BE22E00E8EE4E /* MGMContacts.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A71245676A00D119B5 /* MGMContacts.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC3124BE22E00E8EE4E /* MGMContactsProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A91245676A00D119B5 /* MGMContactsProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC4124BE22E00E8EE4E /* MGMGoogleContacts.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AB1245676A00D119B5 /* MGMGoogleContacts.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC5124BE22E00E8EE4E /* MGMAddons.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AD1245676A00D119B5 /* MGMAddons.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC6124BE22E00E8EE4E /* MGMInbox.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AF1245676A00D119B5 /* MGMInbox.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC7124BE22E00E8EE4E /* MGMInstance.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B11245676A00D119B5 /* MGMInstance.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC8124BE22E00E8EE4E /* MGMThemeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B31245676A00D119B5 /* MGMThemeManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC9124BE22E00E8EE4E /* MGMSIP.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B61245676A00D119B5 /* MGMSIP.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CCA124BE22E00E8EE4E /* MGMSIPAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B81245676A00D119B5 /* MGMSIPAccount.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CCB124BE22E00E8EE4E /* MGMSIPCall.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BA1245676A00D119B5 /* MGMSIPCall.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CCC124BE22E00E8EE4E /* MGMSIPURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BC1245676A00D119B5 /* MGMSIPURL.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CCD124BE22E00E8EE4E /* MGMXML.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487CAE124BE0C400E8EE4E /* MGMXML.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CCE124BE22E00E8EE4E /* MGMXMLAddons.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C93124BE0AB00E8EE4E /* MGMXMLAddons.h */; };
|
||||
2A487CCF124BE22E00E8EE4E /* MGMXMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C95124BE0AB00E8EE4E /* MGMXMLDocument.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD0124BE22E00E8EE4E /* MGMXMLDTD.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C97124BE0AB00E8EE4E /* MGMXMLDTD.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD1124BE22E00E8EE4E /* MGMXMLDTDNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C99124BE0AB00E8EE4E /* MGMXMLDTDNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD2124BE22E00E8EE4E /* MGMXMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9B124BE0AB00E8EE4E /* MGMXMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD3124BE22E00E8EE4E /* MGMXMLNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9D124BE0AB00E8EE4E /* MGMXMLNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD4124BE22E00E8EE4E /* MGMXMLNodeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9F124BE0AB00E8EE4E /* MGMXMLNodeOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD5124BE22E00E8EE4E /* VoiceBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BE1245676A00D119B5 /* VoiceBase.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC1124BE22E00E8EE4E /* MGMAddressBook.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A51245676A00D119B5 /* MGMAddressBook.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC2124BE22E00E8EE4E /* MGMContacts.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A71245676A00D119B5 /* MGMContacts.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC3124BE22E00E8EE4E /* MGMContactsProtocol.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A91245676A00D119B5 /* MGMContactsProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC4124BE22E00E8EE4E /* MGMGoogleContacts.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AB1245676A00D119B5 /* MGMGoogleContacts.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC5124BE22E00E8EE4E /* MGMAddons.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AD1245676A00D119B5 /* MGMAddons.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC6124BE22E00E8EE4E /* MGMInbox.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AF1245676A00D119B5 /* MGMInbox.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC7124BE22E00E8EE4E /* MGMInstance.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B11245676A00D119B5 /* MGMInstance.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC8124BE22E00E8EE4E /* MGMThemeManager.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B31245676A00D119B5 /* MGMThemeManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CC9124BE22E00E8EE4E /* MGMSIP.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B61245676A00D119B5 /* MGMSIP.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CCA124BE22E00E8EE4E /* MGMSIPAccount.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B81245676A00D119B5 /* MGMSIPAccount.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CCB124BE22E00E8EE4E /* MGMSIPCall.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BA1245676A00D119B5 /* MGMSIPCall.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CCC124BE22E00E8EE4E /* MGMSIPURL.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BC1245676A00D119B5 /* MGMSIPURL.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CCD124BE22E00E8EE4E /* MGMXML.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487CAE124BE0C400E8EE4E /* MGMXML.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CCE124BE22E00E8EE4E /* MGMXMLAddons.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C93124BE0AB00E8EE4E /* MGMXMLAddons.h */; };
|
||||
2A487CCF124BE22E00E8EE4E /* MGMXMLDocument.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C95124BE0AB00E8EE4E /* MGMXMLDocument.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD0124BE22E00E8EE4E /* MGMXMLDTD.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C97124BE0AB00E8EE4E /* MGMXMLDTD.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD1124BE22E00E8EE4E /* MGMXMLDTDNode.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C99124BE0AB00E8EE4E /* MGMXMLDTDNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD2124BE22E00E8EE4E /* MGMXMLElement.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9B124BE0AB00E8EE4E /* MGMXMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD3124BE22E00E8EE4E /* MGMXMLNode.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9D124BE0AB00E8EE4E /* MGMXMLNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD4124BE22E00E8EE4E /* MGMXMLNodeOptions.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9F124BE0AB00E8EE4E /* MGMXMLNodeOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487CD5124BE22E00E8EE4E /* VoiceBase.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BE1245676A00D119B5 /* VoiceBase.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A487D0D124BE40700E8EE4E /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A487CF0124BE3E600E8EE4E /* libxml2.dylib */; };
|
||||
2A487D0F124BE41B00E8EE4E /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A487D0E124BE41B00E8EE4E /* libxml2.dylib */; };
|
||||
2A77133C124C4CE200D68042 /* MGMSound.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A77133A124C4CE200D68042 /* MGMSound.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A77133C124C4CE200D68042 /* MGMSound.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A77133A124C4CE200D68042 /* MGMSound.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
2A77133D124C4CE200D68042 /* MGMSound.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A77133B124C4CE200D68042 /* MGMSound.m */; };
|
||||
2A771340124C4D2800D68042 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A77133F124C4D2800D68042 /* AudioToolbox.framework */; };
|
||||
2A771344124C4F9A00D68042 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A771343124C4F9A00D68042 /* AVFoundation.framework */; };
|
||||
@ -110,6 +110,41 @@
|
||||
8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
2AAFDB9C12569EE200475472 /* Copy Headers */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/usr/local/include/VoiceBase";
|
||||
dstSubfolderSpec = 0;
|
||||
files = (
|
||||
2A487CC1124BE22E00E8EE4E /* MGMAddressBook.h in Copy Headers */,
|
||||
2A487CC2124BE22E00E8EE4E /* MGMContacts.h in Copy Headers */,
|
||||
2A487CC3124BE22E00E8EE4E /* MGMContactsProtocol.h in Copy Headers */,
|
||||
2A487CC4124BE22E00E8EE4E /* MGMGoogleContacts.h in Copy Headers */,
|
||||
2A487CC5124BE22E00E8EE4E /* MGMAddons.h in Copy Headers */,
|
||||
2A487CC6124BE22E00E8EE4E /* MGMInbox.h in Copy Headers */,
|
||||
2A487CC7124BE22E00E8EE4E /* MGMInstance.h in Copy Headers */,
|
||||
2A487CC8124BE22E00E8EE4E /* MGMThemeManager.h in Copy Headers */,
|
||||
2A487CCD124BE22E00E8EE4E /* MGMXML.h in Copy Headers */,
|
||||
2A487CCE124BE22E00E8EE4E /* MGMXMLAddons.h in Copy Headers */,
|
||||
2A487CCF124BE22E00E8EE4E /* MGMXMLDocument.h in Copy Headers */,
|
||||
2A487CD0124BE22E00E8EE4E /* MGMXMLDTD.h in Copy Headers */,
|
||||
2A487CD1124BE22E00E8EE4E /* MGMXMLDTDNode.h in Copy Headers */,
|
||||
2A487CD2124BE22E00E8EE4E /* MGMXMLElement.h in Copy Headers */,
|
||||
2A487CD3124BE22E00E8EE4E /* MGMXMLNode.h in Copy Headers */,
|
||||
2A487CD4124BE22E00E8EE4E /* MGMXMLNodeOptions.h in Copy Headers */,
|
||||
2A487CC9124BE22E00E8EE4E /* MGMSIP.h in Copy Headers */,
|
||||
2A487CCA124BE22E00E8EE4E /* MGMSIPAccount.h in Copy Headers */,
|
||||
2A487CCB124BE22E00E8EE4E /* MGMSIPCall.h in Copy Headers */,
|
||||
2A487CCC124BE22E00E8EE4E /* MGMSIPURL.h in Copy Headers */,
|
||||
2A487CD5124BE22E00E8EE4E /* VoiceBase.h in Copy Headers */,
|
||||
2A77133C124C4CE200D68042 /* MGMSound.h in Copy Headers */,
|
||||
);
|
||||
name = "Copy Headers";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||
0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||
@ -413,35 +448,6 @@
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
2AE6EE4F1249DA0B0006B5AC /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
2A487CC1124BE22E00E8EE4E /* MGMAddressBook.h in Headers */,
|
||||
2A487CC2124BE22E00E8EE4E /* MGMContacts.h in Headers */,
|
||||
2A487CC3124BE22E00E8EE4E /* MGMContactsProtocol.h in Headers */,
|
||||
2A487CC4124BE22E00E8EE4E /* MGMGoogleContacts.h in Headers */,
|
||||
2A487CC5124BE22E00E8EE4E /* MGMAddons.h in Headers */,
|
||||
2A487CC6124BE22E00E8EE4E /* MGMInbox.h in Headers */,
|
||||
2A487CC7124BE22E00E8EE4E /* MGMInstance.h in Headers */,
|
||||
2A487CC8124BE22E00E8EE4E /* MGMThemeManager.h in Headers */,
|
||||
2A487CCD124BE22E00E8EE4E /* MGMXML.h in Headers */,
|
||||
2A487CCE124BE22E00E8EE4E /* MGMXMLAddons.h in Headers */,
|
||||
2A487CCF124BE22E00E8EE4E /* MGMXMLDocument.h in Headers */,
|
||||
2A487CD0124BE22E00E8EE4E /* MGMXMLDTD.h in Headers */,
|
||||
2A487CD1124BE22E00E8EE4E /* MGMXMLDTDNode.h in Headers */,
|
||||
2A487CD2124BE22E00E8EE4E /* MGMXMLElement.h in Headers */,
|
||||
2A487CD3124BE22E00E8EE4E /* MGMXMLNode.h in Headers */,
|
||||
2A487CD4124BE22E00E8EE4E /* MGMXMLNodeOptions.h in Headers */,
|
||||
2A487CC9124BE22E00E8EE4E /* MGMSIP.h in Headers */,
|
||||
2A487CCA124BE22E00E8EE4E /* MGMSIPAccount.h in Headers */,
|
||||
2A487CCB124BE22E00E8EE4E /* MGMSIPCall.h in Headers */,
|
||||
2A487CCC124BE22E00E8EE4E /* MGMSIPURL.h in Headers */,
|
||||
2A487CD5124BE22E00E8EE4E /* VoiceBase.h in Headers */,
|
||||
2A77133C124C4CE200D68042 /* MGMSound.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8DC2EF500486A6940098B216 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@ -478,7 +484,7 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 2AE6EE611249DA770006B5AC /* Build configuration list for PBXNativeTarget "VoiceBase Touch" */;
|
||||
buildPhases = (
|
||||
2AE6EE4F1249DA0B0006B5AC /* Headers */,
|
||||
2AAFDB9C12569EE200475472 /* Copy Headers */,
|
||||
2AE6EE501249DA0B0006B5AC /* Sources */,
|
||||
2AE6EE511249DA0B0006B5AC /* Frameworks */,
|
||||
);
|
||||
@ -1000,7 +1006,9 @@
|
||||
"-all_load",
|
||||
);
|
||||
PREBINDING = NO;
|
||||
PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/VoiceBase;
|
||||
PRODUCT_NAME = VoiceBase;
|
||||
PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/VoiceBase;
|
||||
SDKROOT = iphoneos4.0;
|
||||
};
|
||||
name = "Release SIP";
|
||||
|
10063
VoiceMob.ai
BIN
VoiceMob.png
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 103 KiB |
@ -28,7 +28,6 @@
|
||||
2A1E9B0F124DA4CB00D3BEAE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A1E9B0E124DA4CB00D3BEAE /* AudioToolbox.framework */; };
|
||||
2A1E9B13124DA4D700D3BEAE /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A1E9B12124DA4D700D3BEAE /* CoreAudio.framework */; };
|
||||
2A1E9B45124DA63C00D3BEAE /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A1E9B44124DA63C00D3BEAE /* CFNetwork.framework */; };
|
||||
2A1E9BA6124DB1AE00D3BEAE /* VoiceMob.png in Resources */ = {isa = PBXBuildFile; fileRef = 2A1E9BA5124DB1AE00D3BEAE /* VoiceMob.png */; };
|
||||
2A316C3412529555009998B6 /* MGMSIPUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A316C3212529555009998B6 /* MGMSIPUser.m */; };
|
||||
2A316C3712529567009998B6 /* MGMVoiceUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A316C3612529567009998B6 /* MGMVoiceUser.m */; };
|
||||
2A316C49125296A5009998B6 /* SIPUser_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2A316C46125296A5009998B6 /* SIPUser_iPhone.xib */; };
|
||||
@ -51,6 +50,14 @@
|
||||
2A906BFD1255231F0008461E /* VoiceSMS_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2A906BFC1255231F0008461E /* VoiceSMS_iPhone.xib */; };
|
||||
2A906BFF1255232E0008461E /* VoiceInbox_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2A906BFE1255232E0008461E /* VoiceInbox_iPhone.xib */; };
|
||||
2A906CBA12554DA40008461E /* MGMInboxMessageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A906CB912554DA40008461E /* MGMInboxMessageView.m */; };
|
||||
2A98E8111256324400D37C0B /* MGMSMSTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A98E8101256324400D37C0B /* MGMSMSTextView.m */; };
|
||||
2A98EAF412567FAF00D37C0B /* MGMPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A98EAF312567FAF00D37C0B /* MGMPath.m */; };
|
||||
2A98EBF81256903700D37C0B /* MGMSMSBottomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A98EBF71256903700D37C0B /* MGMSMSBottomView.m */; };
|
||||
2AAFDBFA1256A63300475472 /* Icon-Small.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AAFDBF61256A63300475472 /* Icon-Small.png */; };
|
||||
2AAFDBFB1256A63300475472 /* Icon-Small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AAFDBF71256A63300475472 /* Icon-Small@2x.png */; };
|
||||
2AAFDBFC1256A63300475472 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AAFDBF81256A63300475472 /* icon.png */; };
|
||||
2AAFDBFD1256A63300475472 /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AAFDBF91256A63300475472 /* icon@2x.png */; };
|
||||
2AAFDC051256ABF600475472 /* MGMGradientButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AAFDC041256ABF600475472 /* MGMGradientButton.m */; };
|
||||
2ABD37AE1250D448004AAE00 /* AccountController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2ABD37AD1250D448004AAE00 /* AccountController_iPhone.xib */; };
|
||||
2ABD380412513B26004AAE00 /* MGMAccountController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ABD380312513B26004AAE00 /* MGMAccountController.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
@ -107,7 +114,6 @@
|
||||
2A1E9B0E124DA4CB00D3BEAE /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
||||
2A1E9B12124DA4D700D3BEAE /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
|
||||
2A1E9B44124DA63C00D3BEAE /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
|
||||
2A1E9BA5124DB1AE00D3BEAE /* VoiceMob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = VoiceMob.png; sourceTree = SOURCE_ROOT; };
|
||||
2A316C3112529555009998B6 /* MGMSIPUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMSIPUser.h; sourceTree = "<group>"; };
|
||||
2A316C3212529555009998B6 /* MGMSIPUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMSIPUser.m; sourceTree = "<group>"; };
|
||||
2A316C3512529567009998B6 /* MGMVoiceUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMVoiceUser.h; sourceTree = "<group>"; };
|
||||
@ -142,6 +148,18 @@
|
||||
2A906BFE1255232E0008461E /* VoiceInbox_iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = VoiceInbox_iPhone.xib; sourceTree = "<group>"; };
|
||||
2A906CB812554DA40008461E /* MGMInboxMessageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMInboxMessageView.h; sourceTree = "<group>"; };
|
||||
2A906CB912554DA40008461E /* MGMInboxMessageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMInboxMessageView.m; sourceTree = "<group>"; };
|
||||
2A98E80F1256324400D37C0B /* MGMSMSTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMSMSTextView.h; sourceTree = "<group>"; };
|
||||
2A98E8101256324400D37C0B /* MGMSMSTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMSMSTextView.m; sourceTree = "<group>"; };
|
||||
2A98EAF212567FAF00D37C0B /* MGMPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMPath.h; sourceTree = "<group>"; };
|
||||
2A98EAF312567FAF00D37C0B /* MGMPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMPath.m; sourceTree = "<group>"; };
|
||||
2A98EBF61256903700D37C0B /* MGMSMSBottomView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMSMSBottomView.h; sourceTree = "<group>"; };
|
||||
2A98EBF71256903700D37C0B /* MGMSMSBottomView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMSMSBottomView.m; sourceTree = "<group>"; };
|
||||
2AAFDBF61256A63300475472 /* Icon-Small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small.png"; sourceTree = "<group>"; };
|
||||
2AAFDBF71256A63300475472 /* Icon-Small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small@2x.png"; sourceTree = "<group>"; };
|
||||
2AAFDBF81256A63300475472 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; };
|
||||
2AAFDBF91256A63300475472 /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon@2x.png"; sourceTree = "<group>"; };
|
||||
2AAFDC031256ABF600475472 /* MGMGradientButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMGradientButton.h; sourceTree = "<group>"; };
|
||||
2AAFDC041256ABF600475472 /* MGMGradientButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMGradientButton.m; sourceTree = "<group>"; };
|
||||
2ABD37AD1250D448004AAE00 /* AccountController_iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AccountController_iPhone.xib; sourceTree = "<group>"; };
|
||||
2ABD380212513B25004AAE00 /* MGMAccountController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMAccountController.h; sourceTree = "<group>"; };
|
||||
2ABD380312513B26004AAE00 /* MGMAccountController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMAccountController.m; sourceTree = "<group>"; };
|
||||
@ -231,6 +249,8 @@
|
||||
2ABD380312513B26004AAE00 /* MGMAccountController.m */,
|
||||
2A354CDA1251830F00454A75 /* MGMAccounts.h */,
|
||||
2A354CDB1251830F00454A75 /* MGMAccounts.m */,
|
||||
2A98EAF212567FAF00D37C0B /* MGMPath.h */,
|
||||
2A98EAF312567FAF00D37C0B /* MGMPath.m */,
|
||||
2A316C3012529555009998B6 /* SIP */,
|
||||
2A316C3312529555009998B6 /* Voice */,
|
||||
2A316DE41252C8BA009998B6 /* Views */,
|
||||
@ -242,7 +262,10 @@
|
||||
2A1E97C0124D22DA00D3BEAE /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2A1E9BA5124DB1AE00D3BEAE /* VoiceMob.png */,
|
||||
2AAFDBF61256A63300475472 /* Icon-Small.png */,
|
||||
2AAFDBF71256A63300475472 /* Icon-Small@2x.png */,
|
||||
2AAFDBF81256A63300475472 /* icon.png */,
|
||||
2AAFDBF91256A63300475472 /* icon@2x.png */,
|
||||
2A906A031254D4BB0008461E /* blankicon.png */,
|
||||
2A1E9A0E124D827B00D3BEAE /* VoiceMob Setup.png */,
|
||||
2A1E97C1124D22DA00D3BEAE /* Info.plist */,
|
||||
@ -328,6 +351,12 @@
|
||||
2A90683F125436120008461E /* MGMContactView.m */,
|
||||
2A906CB812554DA40008461E /* MGMInboxMessageView.h */,
|
||||
2A906CB912554DA40008461E /* MGMInboxMessageView.m */,
|
||||
2A98EBF61256903700D37C0B /* MGMSMSBottomView.h */,
|
||||
2A98EBF71256903700D37C0B /* MGMSMSBottomView.m */,
|
||||
2A98E80F1256324400D37C0B /* MGMSMSTextView.h */,
|
||||
2A98E8101256324400D37C0B /* MGMSMSTextView.m */,
|
||||
2AAFDC031256ABF600475472 /* MGMGradientButton.h */,
|
||||
2AAFDC041256ABF600475472 /* MGMGradientButton.m */,
|
||||
);
|
||||
path = Views;
|
||||
sourceTree = "<group>";
|
||||
@ -404,7 +433,6 @@
|
||||
2A1E99A2124D70A500D3BEAE /* Radio.png in Resources */,
|
||||
2A1E99A3124D70A500D3BEAE /* RadioSelected.png in Resources */,
|
||||
2A1E9A0F124D827B00D3BEAE /* VoiceMob Setup.png in Resources */,
|
||||
2A1E9BA6124DB1AE00D3BEAE /* VoiceMob.png in Resources */,
|
||||
2ABD37AE1250D448004AAE00 /* AccountController_iPhone.xib in Resources */,
|
||||
2A354CD81251820C00454A75 /* Accounts_iPhone.xib in Resources */,
|
||||
2A316C49125296A5009998B6 /* SIPUser_iPhone.xib in Resources */,
|
||||
@ -416,6 +444,10 @@
|
||||
2A906A041254D4BB0008461E /* blankicon.png in Resources */,
|
||||
2A906BFD1255231F0008461E /* VoiceSMS_iPhone.xib in Resources */,
|
||||
2A906BFF1255232E0008461E /* VoiceInbox_iPhone.xib in Resources */,
|
||||
2AAFDBFA1256A63300475472 /* Icon-Small.png in Resources */,
|
||||
2AAFDBFB1256A63300475472 /* Icon-Small@2x.png in Resources */,
|
||||
2AAFDBFC1256A63300475472 /* icon.png in Resources */,
|
||||
2AAFDBFD1256A63300475472 /* icon@2x.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -443,6 +475,10 @@
|
||||
2A906BEF125522800008461E /* MGMVoiceSMS.m in Sources */,
|
||||
2A906BF6125522D10008461E /* MGMVoiceInbox.m in Sources */,
|
||||
2A906CBA12554DA40008461E /* MGMInboxMessageView.m in Sources */,
|
||||
2A98E8111256324400D37C0B /* MGMSMSTextView.m in Sources */,
|
||||
2A98EAF412567FAF00D37C0B /* MGMPath.m in Sources */,
|
||||
2A98EBF81256903700D37C0B /* MGMSMSBottomView.m in Sources */,
|
||||
2AAFDC051256ABF600475472 /* MGMGradientButton.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|