Compare commits
23 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0d49a3b275 | ||
![]() |
3cc362f1d5 | ||
![]() |
672a345396 | ||
![]() |
4e9db56eef | ||
![]() |
f0c58e0ab5 | ||
![]() |
8756ede927 | ||
![]() |
f7729aec1c | ||
![]() |
a6bbfef8dc | ||
![]() |
df47d460b2 | ||
![]() |
7969e8f2f3 | ||
![]() |
17afee2a35 | ||
![]() |
a94619cf7a | ||
![]() |
0d567d693e | ||
![]() |
82e9c1a369 | ||
![]() |
65ca64c505 | ||
![]() |
bf4e9fe83e | ||
![]() |
61b195eebb | ||
![]() |
4d49024d62 | ||
![]() |
0190f9a28a | ||
![]() |
a942a26a49 | ||
![]() |
ecbc62d802 | ||
![]() |
17af6398ca | ||
![]() |
89af06d7e0 |
50 changed files with 1222 additions and 2927 deletions
24
AccessToken.h
Normal file
24
AccessToken.h
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
//
|
||||||
|
// AccessToken.h
|
||||||
|
// Twittia 2
|
||||||
|
//
|
||||||
|
// Created by Jeena Paradies on 19/09/2011.
|
||||||
|
// Copyright 2011 __MyCompanyName__. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@interface AccessToken : NSObject {
|
||||||
|
NSUserDefaults *d;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setAccessToken:(NSString *)_accessToken;
|
||||||
|
- (NSString *)accessToken;
|
||||||
|
- (void)setSecret:(NSString *)_secret;
|
||||||
|
- (NSString *)secret;
|
||||||
|
- (void)setUserId:(NSString *)_userId;
|
||||||
|
- (NSString *)userId;
|
||||||
|
- (void)setScreenName:(NSString *)_screenName;
|
||||||
|
- (NSString *)screenName;
|
||||||
|
|
||||||
|
@end
|
77
AccessToken.m
Normal file
77
AccessToken.m
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
//
|
||||||
|
// AccessToken.m
|
||||||
|
// Twittia 2
|
||||||
|
//
|
||||||
|
// Created by Jeena Paradies on 19/09/2011.
|
||||||
|
// Copyright 2011 __MyCompanyName__. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "AccessToken.h"
|
||||||
|
|
||||||
|
@implementation AccessToken
|
||||||
|
|
||||||
|
- (id)init
|
||||||
|
{
|
||||||
|
self = [super init];
|
||||||
|
if (self) {
|
||||||
|
// Initialization code here.
|
||||||
|
d = [NSUserDefaults standardUserDefaults];
|
||||||
|
}
|
||||||
|
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setAccessToken:(NSString *)_accessToken
|
||||||
|
{
|
||||||
|
[d setObject:_accessToken forKey:@"accessToken"];
|
||||||
|
[d synchronize];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *)accessToken
|
||||||
|
{
|
||||||
|
return [d objectForKey:@"accessToken"];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setSecret:(NSString *)_secret
|
||||||
|
{
|
||||||
|
[d setObject:_secret forKey:@"secret"];
|
||||||
|
[d synchronize];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *)secret
|
||||||
|
{
|
||||||
|
return [d objectForKey:@"secret"];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setUserId:(NSString *)_userId
|
||||||
|
{
|
||||||
|
[d setObject:_userId forKey:@"userId"];
|
||||||
|
[d synchronize];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *)userId
|
||||||
|
{
|
||||||
|
return [d objectForKey:@"userId"];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setScreenName:(NSString *)_screenName
|
||||||
|
{
|
||||||
|
[d setObject:_screenName forKey:@"screenName"];
|
||||||
|
[d synchronize];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *)screenName
|
||||||
|
{
|
||||||
|
return [d objectForKey:@"screenName"];
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector {
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (BOOL)isKeyExcludedFromWebScript:(const char *)name {
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
12
Appcast.xml
12
Appcast.xml
|
@ -2,19 +2,19 @@
|
||||||
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
<channel>
|
<channel>
|
||||||
<title>Twittia's Changelog</title>
|
<title>Twittia's Changelog</title>
|
||||||
<link>http://wiki.github.com/jeena/twittia/</link>
|
<link>http://github.com/downloads/jeena/Twittia/Appcast.xml</link>
|
||||||
<description>Most recent changes with links to updates.</description>
|
<description>Most recent changes with links to updates.</description>
|
||||||
<language>en</language>
|
<language>en</language>
|
||||||
<item>
|
<item>
|
||||||
<title>Version 2.3.1</title>
|
<title>Version 2.4.0</title>
|
||||||
<sparkle:minimumSystemVersion>10.5.0</sparkle:minimumSystemVersion>
|
<sparkle:minimumSystemVersion>10.5.0</sparkle:minimumSystemVersion>
|
||||||
<sparkle:releaseNotesLink>http://jeenaparadies.net/twittia/ReleaseNotes.html</sparkle:releaseNotesLink>
|
<sparkle:releaseNotesLink>http://jeenaparadies.net/twittia/ReleaseNotes.html</sparkle:releaseNotesLink>
|
||||||
<pubDate>Sat, 10 Jan 2011 17:04:02 +0200</pubDate>
|
<pubDate>Sun, 02 Oct 2011 21:23:23 +0200</pubDate>
|
||||||
<enclosure url="http://jeenaparadies.net/twittia/Twittia.app.zip"
|
<enclosure url="http://jeenaparadies.net/twittia/Twittia.app.zip"
|
||||||
sparkle:version="2.3.1"
|
sparkle:version="2.4.0"
|
||||||
length="833974"
|
length="752378"
|
||||||
type="application/octet-stream"
|
type="application/octet-stream"
|
||||||
sparkle:dsaSignature="MC4CFQCNlrsp9t1ZAtqtlkxyOoq7MjU09QIVALyH/eo8fxnrnX3c7+Jfx1msI+aB" />
|
sparkle:dsaSignature="MCwCFASGUE8sw1YzVGwsT0CHkSV4AFsrAhR2TnPTUHUNLea762QZc4Q3jc+f9Q==" />
|
||||||
</item>
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
</rss>
|
</rss>
|
||||||
|
|
BIN
Bookatable.ipa
BIN
Bookatable.ipa
Binary file not shown.
17
Constants.h
17
Constants.h
|
@ -14,10 +14,6 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_TWITTER
|
|
||||||
|
|
||||||
#define API_URL @"http://api.twitter.com/1/"
|
|
||||||
#define OAUTH_CONSUMER_KEY @"JPmU8KJhiBKfpohCiWLg"
|
#define OAUTH_CONSUMER_KEY @"JPmU8KJhiBKfpohCiWLg"
|
||||||
#define OAUTH_CONSUMER_SECRET @"jtfSrnDrRcUnL1nqTMcAW0055m63EMClmkxhiBjQ"
|
#define OAUTH_CONSUMER_SECRET @"jtfSrnDrRcUnL1nqTMcAW0055m63EMClmkxhiBjQ"
|
||||||
#define OAUTH_SIGNATURE_METHOD @"HMAC-SHA1"
|
#define OAUTH_SIGNATURE_METHOD @"HMAC-SHA1"
|
||||||
|
@ -26,19 +22,6 @@
|
||||||
#define OAUTH_ACCESS_TOKEN_URL @"http://twitter.com/oauth/access_token"
|
#define OAUTH_ACCESS_TOKEN_URL @"http://twitter.com/oauth/access_token"
|
||||||
#define OAUTH_SERVICE_NAME @"twitter.com"
|
#define OAUTH_SERVICE_NAME @"twitter.com"
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#define API_URL @"http://identi.ca/api/"
|
|
||||||
#define OAUTH_CONSUMER_KEY @"76cb48ce4c65a9c760078b60aa9ce18f"
|
|
||||||
#define OAUTH_CONSUMER_SECRET @"519f5624b2024983369371b2ba389591"
|
|
||||||
#define OAUTH_SIGNATURE_METHOD @"HMAC-SHA1"
|
|
||||||
#define OAUTH_REQUEST_TOKEN_URL @"http://identi.ca/api/oauth/request_token"
|
|
||||||
#define OAUTH_USER_AUTHORIZATION_URL @"http://identi.ca/api/oauth/authorize"
|
|
||||||
#define OAUTH_ACCESS_TOKEN_URL @"http://identi.ca/api/oauth/access_token"
|
|
||||||
#define OAUTH_SERVICE_NAME @"identi.ca"
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define APP_NAME @"Twittia"
|
#define APP_NAME @"Twittia"
|
||||||
#define TWEET_MAX_LENGTH 140
|
#define TWEET_MAX_LENGTH 140
|
||||||
|
|
||||||
|
|
21
Constants.js
Normal file
21
Constants.js
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
//
|
||||||
|
// TwittiaOauth.js
|
||||||
|
// Twittia 2
|
||||||
|
//
|
||||||
|
// Created by Jeena on 19.09.11.
|
||||||
|
// Licence: BSD (see attached LICENCE.txt file).
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
OAUTH_CONSUMER_KEY = "JPmU8KJhiBKfpohCiWLg"
|
||||||
|
OAUTH_CONSUMER_SECRET = "jtfSrnDrRcUnL1nqTMcAW0055m63EMClmkxhiBjQ"
|
||||||
|
OAUTH_SIGNATURE_METHOD = "HMAC-SHA1"
|
||||||
|
OAUTH_REQUEST_TOKEN_URL = "http://twitter.com/oauth/request_token"
|
||||||
|
OAUTH_USER_AUTHORIZATION_URL = "http://twitter.com/oauth/authorize"
|
||||||
|
OAUTH_ACCESS_TOKEN_URL = "http://twitter.com/oauth/access_token"
|
||||||
|
OAUTH_SERVICE_NAME = "twitter.com"
|
||||||
|
|
||||||
|
APP_NAME = "Twittia";
|
||||||
|
|
||||||
|
API_PATH = "http://api.twitter.com/1/";
|
||||||
|
WEBSITE_PATH = "http://twitter.com/";
|
11
Controller.h
11
Controller.h
|
@ -11,7 +11,7 @@
|
||||||
#import "ViewDelegate.h"
|
#import "ViewDelegate.h"
|
||||||
#import <Carbon/Carbon.h>
|
#import <Carbon/Carbon.h>
|
||||||
#import "Constants.h"
|
#import "Constants.h"
|
||||||
#import "OAuth.h"
|
#import "AccessToken.h"
|
||||||
|
|
||||||
|
|
||||||
@interface Controller : NSObject {
|
@interface Controller : NSObject {
|
||||||
|
@ -22,7 +22,8 @@
|
||||||
IBOutlet NSMenuItem *globalHotkeyMenuItem;
|
IBOutlet NSMenuItem *globalHotkeyMenuItem;
|
||||||
IBOutlet NSImageView *logoLayer;
|
IBOutlet NSImageView *logoLayer;
|
||||||
ViewDelegate *viewDelegate;
|
ViewDelegate *viewDelegate;
|
||||||
OAuth *oauth;
|
WebView *twittiaOauthView;
|
||||||
|
AccessToken *accessToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property (retain, nonatomic) IBOutlet WebView *timelineView;
|
@property (retain, nonatomic) IBOutlet WebView *timelineView;
|
||||||
|
@ -32,8 +33,10 @@
|
||||||
@property (retain, nonatomic) IBOutlet NSMenuItem *globalHotkeyMenuItem;
|
@property (retain, nonatomic) IBOutlet NSMenuItem *globalHotkeyMenuItem;
|
||||||
@property (retain, nonatomic) IBOutlet NSImageView *logoLayer;
|
@property (retain, nonatomic) IBOutlet NSImageView *logoLayer;
|
||||||
@property (retain, nonatomic) IBOutlet ViewDelegate *viewDelegate;
|
@property (retain, nonatomic) IBOutlet ViewDelegate *viewDelegate;
|
||||||
@property (retain, nonatomic) IBOutlet OAuth *oauth;
|
@property (retain, nonatomic) WebView *twittiaOauthView;
|
||||||
|
@property (retain, nonatomic) AccessToken *accessToken;
|
||||||
|
|
||||||
|
- (void)initOauth;
|
||||||
- (void)authentificationSucceded:(id)sender;
|
- (void)authentificationSucceded:(id)sender;
|
||||||
- (void)initWebViews;
|
- (void)initWebViews;
|
||||||
- (void)initHotKeys;
|
- (void)initHotKeys;
|
||||||
|
@ -41,6 +44,8 @@
|
||||||
- (NSString *)pluginURL;
|
- (NSString *)pluginURL;
|
||||||
- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent;
|
- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent;
|
||||||
- (void)unreadMentions:(NSInteger)count;
|
- (void)unreadMentions:(NSInteger)count;
|
||||||
|
- (void)openURL:(NSString *)url;
|
||||||
|
- (void)storeAccessToken:(NSString *)accessToken secret:(NSString *)secret userId:(NSString *)userId andScreenName:(NSString *)screenName;
|
||||||
|
|
||||||
OSStatus handler(EventHandlerCallRef nextHandler, EventRef theEvent, void* userData);
|
OSStatus handler(EventHandlerCallRef nextHandler, EventRef theEvent, void* userData);
|
||||||
|
|
||||||
|
|
64
Controller.m
64
Controller.m
|
@ -7,13 +7,15 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#import "Controller.h"
|
#import "Controller.h"
|
||||||
#import "MyDocument.h"
|
#import "NewTweetWindow.h"
|
||||||
#import "TweetModel.h"
|
#import "TweetModel.h"
|
||||||
|
|
||||||
|
|
||||||
@implementation Controller
|
@implementation Controller
|
||||||
|
|
||||||
@synthesize timelineView, timelineViewWindow, mentionsView, mentionsViewWindow, globalHotkeyMenuItem, viewDelegate, oauth, logoLayer;
|
@synthesize timelineView, timelineViewWindow, mentionsView, mentionsViewWindow, globalHotkeyMenuItem, viewDelegate;
|
||||||
|
@synthesize logoLayer;
|
||||||
|
@synthesize twittiaOauthView, accessToken;
|
||||||
|
|
||||||
- (void)awakeFromNib {
|
- (void)awakeFromNib {
|
||||||
|
|
||||||
|
@ -43,9 +45,32 @@
|
||||||
forEventClass:kInternetEventClass
|
forEventClass:kInternetEventClass
|
||||||
andEventID:kAEGetURL];
|
andEventID:kAEGetURL];
|
||||||
|
|
||||||
if ([oauth accessToken]) {
|
viewDelegate = [[ViewDelegate alloc] init];
|
||||||
[self initWebViews];
|
|
||||||
}
|
|
||||||
|
accessToken = [[AccessToken alloc] init];
|
||||||
|
|
||||||
|
//accessToken.accessToken = nil;
|
||||||
|
if (!accessToken.accessToken) {
|
||||||
|
[self initOauth];
|
||||||
|
} else {
|
||||||
|
[self initWebViews];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)initOauth {
|
||||||
|
NSString *path = [[NSBundle mainBundle] resourcePath];
|
||||||
|
NSURL *url = [NSURL fileURLWithPath:path];
|
||||||
|
NSString *index_string = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%@/index_oauth.html", path] encoding:NSUTF8StringEncoding error:nil];
|
||||||
|
|
||||||
|
|
||||||
|
twittiaOauthView = [[WebView alloc] init];
|
||||||
|
viewDelegate.twittiaOauthView = twittiaOauthView;
|
||||||
|
[[twittiaOauthView mainFrame] loadHTMLString:index_string baseURL:url];
|
||||||
|
[twittiaOauthView setFrameLoadDelegate:viewDelegate];
|
||||||
|
[twittiaOauthView setPolicyDelegate:viewDelegate];
|
||||||
|
[twittiaOauthView setUIDelegate:viewDelegate];
|
||||||
|
[[twittiaOauthView windowScriptObject] setValue:self forKey:@"controller"];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)initHotKeys {
|
- (void)initHotKeys {
|
||||||
|
@ -107,8 +132,6 @@
|
||||||
NSString *path = [[NSBundle mainBundle] resourcePath];
|
NSString *path = [[NSBundle mainBundle] resourcePath];
|
||||||
NSURL *url = [NSURL fileURLWithPath:path];
|
NSURL *url = [NSURL fileURLWithPath:path];
|
||||||
NSString *index_string = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%@/index.html", path] encoding:NSUTF8StringEncoding error:nil];
|
NSString *index_string = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%@/index.html", path] encoding:NSUTF8StringEncoding error:nil];
|
||||||
|
|
||||||
viewDelegate = [[ViewDelegate alloc] init];
|
|
||||||
|
|
||||||
viewDelegate.timelineView = timelineView;
|
viewDelegate.timelineView = timelineView;
|
||||||
[[timelineView mainFrame] loadHTMLString:index_string baseURL:url];
|
[[timelineView mainFrame] loadHTMLString:index_string baseURL:url];
|
||||||
|
@ -145,7 +168,7 @@
|
||||||
|
|
||||||
- (void)openNewTweetWindowInReplyTo:(NSString *)userName statusId:(NSString *)statusId {
|
- (void)openNewTweetWindowInReplyTo:(NSString *)userName statusId:(NSString *)statusId {
|
||||||
[NSApp activateIgnoringOtherApps:YES];
|
[NSApp activateIgnoringOtherApps:YES];
|
||||||
MyDocument *newTweet = (MyDocument *)[[NSDocumentController sharedDocumentController] openUntitledDocumentAndDisplay:YES error:nil];
|
NewTweetWindow *newTweet = (NewTweetWindow *)[[NSDocumentController sharedDocumentController] openUntitledDocumentAndDisplay:YES error:nil];
|
||||||
[newTweet inReplyTo:userName statusId:statusId];
|
[newTweet inReplyTo:userName statusId:statusId];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,11 +178,9 @@
|
||||||
NSRange range = [aString rangeOfString:@"oauth_token"];
|
NSRange range = [aString rangeOfString:@"oauth_token"];
|
||||||
|
|
||||||
if (range.length > 0) {
|
if (range.length > 0) {
|
||||||
NSLog(@"test 3 %@", oauth);
|
[twittiaOauthView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"twittia_oauth.requestAccessToken('%@')", aString]];
|
||||||
|
|
||||||
[oauth requestAccessToken];
|
|
||||||
} else {
|
} else {
|
||||||
MyDocument *newTweet = (MyDocument *)[[NSDocumentController sharedDocumentController] openUntitledDocumentAndDisplay:YES error:nil];
|
NewTweetWindow *newTweet = (NewTweetWindow *)[[NSDocumentController sharedDocumentController] openUntitledDocumentAndDisplay:YES error:nil];
|
||||||
[newTweet withString:aString];
|
[newTweet withString:aString];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,7 +193,8 @@
|
||||||
|
|
||||||
- (IBAction)sendTweet:(id)sender {
|
- (IBAction)sendTweet:(id)sender {
|
||||||
TweetModel *tweet = (TweetModel *)[sender object];
|
TweetModel *tweet = (TweetModel *)[sender object];
|
||||||
[oauth updateTweet:tweet.text inReplaToStatus:tweet.inReplyTostatusId];
|
NSString *func = [NSString stringWithFormat:@"twittia_instance.sendNewTweet(\"%@\", \"%@\")", [tweet.text stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""], tweet.inReplyTostatusId];
|
||||||
|
[timelineView stringByEvaluatingJavaScriptFromString:func];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)pluginURL {
|
- (NSString *)pluginURL {
|
||||||
|
@ -195,6 +217,22 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)openURL:(NSString *)url {
|
||||||
|
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:url]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)storeAccessToken:(NSString *)_accessToken secret:(NSString *)secret userId:(NSString *)userId andScreenName:(NSString *)screenName
|
||||||
|
{
|
||||||
|
self.accessToken.accessToken = _accessToken;
|
||||||
|
self.accessToken.secret = secret;
|
||||||
|
self.accessToken.userId = userId;
|
||||||
|
self.accessToken.screenName = screenName;
|
||||||
|
|
||||||
|
[timelineViewWindow makeKeyAndOrderFront:self];
|
||||||
|
|
||||||
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"authentificationSucceded" object:nil];
|
||||||
|
}
|
||||||
|
|
||||||
// Mentions window has been visible
|
// Mentions window has been visible
|
||||||
- (void)windowDidBecomeKey:(NSNotification *)notification {
|
- (void)windowDidBecomeKey:(NSNotification *)notification {
|
||||||
if ([notification object] == mentionsViewWindow) {
|
if ([notification object] == mentionsViewWindow) {
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf250
|
{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf170
|
||||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||||
{\colortbl;\red255\green255\blue255;}
|
{\colortbl;\red255\green255\blue255;}
|
||||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
\viewkind0
|
||||||
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
||||||
|
|
||||||
\f0\b\fs24 \cf0 Engineering:
|
\f0\b\fs24 \cf0 Engineering:
|
||||||
\b0 \
|
\b0 \
|
||||||
|
@ -15,7 +16,7 @@
|
||||||
|
|
||||||
\b Documentation:
|
\b Documentation:
|
||||||
\b0 \
|
\b0 \
|
||||||
http://github.com/jeena/Twittia\
|
http://github.com/jeena/Twittia/wiki\
|
||||||
\
|
\
|
||||||
|
|
||||||
\b With special thanks to:
|
\b With special thanks to:
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,890 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
|
|
||||||
<data>
|
|
||||||
<int key="IBDocument.SystemTarget">1050</int>
|
|
||||||
<string key="IBDocument.SystemVersion">10D573</string>
|
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">762</string>
|
|
||||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
|
||||||
<string key="IBDocument.HIToolboxVersion">460.00</string>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="NS.object.0">762</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<integer value="6"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="580458321">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSCustomObject" id="512844837">
|
|
||||||
<string key="NSClassName">MyDocument</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSCustomObject" id="613418571">
|
|
||||||
<string key="NSClassName">FirstResponder</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSWindowTemplate" id="275939982">
|
|
||||||
<int key="NSWindowStyleMask">7</int>
|
|
||||||
<int key="NSWindowBacking">2</int>
|
|
||||||
<string key="NSWindowRect">{{133, 535}, {299, 113}}</string>
|
|
||||||
<int key="NSWTFlags">1886913536</int>
|
|
||||||
<string key="NSWindowTitle">New Tweet</string>
|
|
||||||
<string key="NSWindowClass">NSWindow</string>
|
|
||||||
<string key="NSViewClass">View</string>
|
|
||||||
<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
|
|
||||||
<string key="NSWindowContentMinSize">{94, 86}</string>
|
|
||||||
<object class="NSView" key="NSWindowView" id="568628114">
|
|
||||||
<reference key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">256</int>
|
|
||||||
<object class="NSMutableArray" key="NSSubviews">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSTextField" id="884814600">
|
|
||||||
<reference key="NSNextResponder" ref="568628114"/>
|
|
||||||
<int key="NSvFlags">274</int>
|
|
||||||
<string key="NSFrame">{{0, 22}, {299, 91}}</string>
|
|
||||||
<reference key="NSSuperview" ref="568628114"/>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSTextFieldCell" key="NSCell" id="834602598">
|
|
||||||
<int key="NSCellFlags">-1809711615</int>
|
|
||||||
<int key="NSCellFlags2">272629760</int>
|
|
||||||
<string key="NSContents"/>
|
|
||||||
<object class="NSFont" key="NSSupport" id="991349575">
|
|
||||||
<string key="NSName">LucidaGrande</string>
|
|
||||||
<double key="NSSize">13</double>
|
|
||||||
<int key="NSfFlags">1044</int>
|
|
||||||
</object>
|
|
||||||
<reference key="NSControlView" ref="884814600"/>
|
|
||||||
<bool key="NSDrawsBackground">YES</bool>
|
|
||||||
<object class="NSColor" key="NSBackgroundColor">
|
|
||||||
<int key="NSColorSpace">6</int>
|
|
||||||
<string key="NSCatalogName">System</string>
|
|
||||||
<string key="NSColorName">textBackgroundColor</string>
|
|
||||||
<object class="NSColor" key="NSColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MQA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSColor" key="NSTextColor">
|
|
||||||
<int key="NSColorSpace">6</int>
|
|
||||||
<string key="NSCatalogName">System</string>
|
|
||||||
<string key="NSColorName">textColor</string>
|
|
||||||
<object class="NSColor" key="NSColor" id="397794209">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MAA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSTextField" id="184011745">
|
|
||||||
<reference key="NSNextResponder" ref="568628114"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{257, 2}, {38, 17}}</string>
|
|
||||||
<reference key="NSSuperview" ref="568628114"/>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSTextFieldCell" key="NSCell" id="894039108">
|
|
||||||
<int key="NSCellFlags">68288064</int>
|
|
||||||
<int key="NSCellFlags2">71304192</int>
|
|
||||||
<string key="NSContents">140</string>
|
|
||||||
<reference key="NSSupport" ref="991349575"/>
|
|
||||||
<reference key="NSControlView" ref="184011745"/>
|
|
||||||
<object class="NSColor" key="NSBackgroundColor">
|
|
||||||
<int key="NSColorSpace">6</int>
|
|
||||||
<string key="NSCatalogName">System</string>
|
|
||||||
<string key="NSColorName">controlColor</string>
|
|
||||||
<object class="NSColor" key="NSColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSColor" key="NSTextColor">
|
|
||||||
<int key="NSColorSpace">6</int>
|
|
||||||
<string key="NSCatalogName">System</string>
|
|
||||||
<string key="NSColorName">controlTextColor</string>
|
|
||||||
<reference key="NSColor" ref="397794209"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<string key="NSFrameSize">{299, 113}</string>
|
|
||||||
<reference key="NSSuperview"/>
|
|
||||||
</object>
|
|
||||||
<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
|
|
||||||
<string key="NSMinSize">{94, 108}</string>
|
|
||||||
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
|
|
||||||
<string key="NSFrameAutosaveName">newTweet</string>
|
|
||||||
<bool key="NSAutorecalculatesContentBorderThicknessMinY">NO</bool>
|
|
||||||
<double key="NSContentBorderThicknessMinY">22</double>
|
|
||||||
</object>
|
|
||||||
<object class="NSCustomObject" id="796877042">
|
|
||||||
<string key="NSClassName">NSApplication</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
|
||||||
<object class="NSMutableArray" key="connectionRecords">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">window</string>
|
|
||||||
<reference key="source" ref="512844837"/>
|
|
||||||
<reference key="destination" ref="275939982"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">18</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">sendTweet:</string>
|
|
||||||
<reference key="source" ref="512844837"/>
|
|
||||||
<reference key="destination" ref="884814600"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">100031</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">textField</string>
|
|
||||||
<reference key="source" ref="512844837"/>
|
|
||||||
<reference key="destination" ref="884814600"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">100034</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">delegate</string>
|
|
||||||
<reference key="source" ref="884814600"/>
|
|
||||||
<reference key="destination" ref="512844837"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">100035</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">counter</string>
|
|
||||||
<reference key="source" ref="512844837"/>
|
|
||||||
<reference key="destination" ref="184011745"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">100038</int>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
|
||||||
<object class="NSArray" key="orderedObjects">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">0</int>
|
|
||||||
<reference key="object" ref="0"/>
|
|
||||||
<reference key="children" ref="580458321"/>
|
|
||||||
<nil key="parent"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-2</int>
|
|
||||||
<reference key="object" ref="512844837"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">File's Owner</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-1</int>
|
|
||||||
<reference key="object" ref="613418571"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">First Responder</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">5</int>
|
|
||||||
<reference key="object" ref="275939982"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="568628114"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">Window</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">6</int>
|
|
||||||
<reference key="object" ref="568628114"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="884814600"/>
|
|
||||||
<reference ref="184011745"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="275939982"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-3</int>
|
|
||||||
<reference key="object" ref="796877042"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">Application</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">100028</int>
|
|
||||||
<reference key="object" ref="884814600"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="834602598"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="568628114"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">100029</int>
|
|
||||||
<reference key="object" ref="834602598"/>
|
|
||||||
<reference key="parent" ref="884814600"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">100036</int>
|
|
||||||
<reference key="object" ref="184011745"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="894039108"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="568628114"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">100037</int>
|
|
||||||
<reference key="object" ref="894039108"/>
|
|
||||||
<reference key="parent" ref="184011745"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>-3.IBPluginDependency</string>
|
|
||||||
<string>100028.IBPluginDependency</string>
|
|
||||||
<string>100029.IBPluginDependency</string>
|
|
||||||
<string>100036.IBPluginDependency</string>
|
|
||||||
<string>100037.IBPluginDependency</string>
|
|
||||||
<string>5.IBEditorWindowLastContentRect</string>
|
|
||||||
<string>5.IBPluginDependency</string>
|
|
||||||
<string>5.IBWindowTemplateEditedContentRect</string>
|
|
||||||
<string>5.ImportedFromIB2</string>
|
|
||||||
<string>5.editorWindowContentRectSynchronizationRect</string>
|
|
||||||
<string>5.windowTemplate.hasMinSize</string>
|
|
||||||
<string>5.windowTemplate.minSize</string>
|
|
||||||
<string>6.IBPluginDependency</string>
|
|
||||||
<string>6.ImportedFromIB2</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string>{{127, 736}, {299, 113}}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string>{{127, 736}, {299, 113}}</string>
|
|
||||||
<integer value="1"/>
|
|
||||||
<string>{{201, 387}, {507, 413}}</string>
|
|
||||||
<integer value="1"/>
|
|
||||||
<string>{94, 86}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<integer value="1"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<nil key="activeLocalization"/>
|
|
||||||
<object class="NSMutableDictionary" key="localizations">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<nil key="sourceID"/>
|
|
||||||
<int key="maxID">100038</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">MyDocument</string>
|
|
||||||
<string key="superclassName">NSDocument</string>
|
|
||||||
<object class="NSMutableDictionary" key="actions">
|
|
||||||
<string key="NS.key.0">sendTweet:</string>
|
|
||||||
<string key="NS.object.0">NSControl</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="outlets">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>counter</string>
|
|
||||||
<string>textField</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>NSTextField</string>
|
|
||||||
<string>NSTextField</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">MyDocument.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSActionCell</string>
|
|
||||||
<string key="superclassName">NSCell</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSApplication</string>
|
|
||||||
<string key="superclassName">NSResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="668588062">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSApplication</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="413788214">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSApplication</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="254951721">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSApplication</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSApplication</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSApplication</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSCell</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSControl</string>
|
|
||||||
<string key="superclassName">NSView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="675645250">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSDocument</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="NSMutableDictionary" key="actions">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>printDocument:</string>
|
|
||||||
<string>revertDocumentToSaved:</string>
|
|
||||||
<string>runPageLayout:</string>
|
|
||||||
<string>saveDocument:</string>
|
|
||||||
<string>saveDocumentAs:</string>
|
|
||||||
<string>saveDocumentTo:</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSDocument.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSDocument</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSDocumentScripting.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSFormatter</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSMenu</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="456697231">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<reference key="sourceIdentifier" ref="668588062"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<reference key="sourceIdentifier" ref="413788214"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<reference key="sourceIdentifier" ref="254951721"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<reference key="sourceIdentifier" ref="675645250"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<reference key="sourceIdentifier" ref="456697231"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="31408882">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Print.framework/Headers/PDEPluginInterface.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Sparkle.framework/Headers/SUAppcast.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Sparkle.framework/Headers/SUUpdater.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">WebKit.framework/Headers/WebDownload.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">WebKit.framework/Headers/WebEditingDelegate.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">WebKit.framework/Headers/WebFrameLoadDelegate.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">WebKit.framework/Headers/WebJavaPlugIn.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">WebKit.framework/Headers/WebPlugin.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">WebKit.framework/Headers/WebPluginContainer.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">WebKit.framework/Headers/WebPolicyDelegate.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">WebKit.framework/Headers/WebResourceLoadDelegate.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">WebKit.framework/Headers/WebScriptObject.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">WebKit.framework/Headers/WebUIDelegate.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSResponder</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSTextField</string>
|
|
||||||
<string key="superclassName">NSControl</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSTextField.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSTextFieldCell</string>
|
|
||||||
<string key="superclassName">NSActionCell</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSView</string>
|
|
||||||
<string key="superclassName">NSResponder</string>
|
|
||||||
<reference key="sourceIdentifier" ref="31408882"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSWindow</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSWindow</string>
|
|
||||||
<string key="superclassName">NSResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSWindow</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
|
||||||
<integer value="1050" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
|
||||||
<integer value="3000" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
|
||||||
<string key="IBDocument.LastKnownRelativeProjectPath">../Twittia 2.xcodeproj</string>
|
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
|
||||||
</data>
|
|
||||||
</archive>
|
|
440
English.lproj/NewTweetWindow.xib
Normal file
440
English.lproj/NewTweetWindow.xib
Normal file
|
@ -0,0 +1,440 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
|
||||||
|
<data>
|
||||||
|
<int key="IBDocument.SystemTarget">1050</int>
|
||||||
|
<string key="IBDocument.SystemVersion">11C43</string>
|
||||||
|
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
|
||||||
|
<string key="IBDocument.AppKitVersion">1138.17</string>
|
||||||
|
<string key="IBDocument.HIToolboxVersion">567.00</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="NS.object.0">1617</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>NSTextField</string>
|
||||||
|
<string>NSTextFieldCell</string>
|
||||||
|
<string>NSWindowTemplate</string>
|
||||||
|
<string>NSView</string>
|
||||||
|
<string>NSCustomObject</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
<reference key="dict.values" ref="0"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="IBDocument.RootObjects" id="580458321">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSCustomObject" id="512844837">
|
||||||
|
<string key="NSClassName">NewTweetWindow</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSCustomObject" id="613418571">
|
||||||
|
<string key="NSClassName">FirstResponder</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSWindowTemplate" id="275939982">
|
||||||
|
<int key="NSWindowStyleMask">7</int>
|
||||||
|
<int key="NSWindowBacking">2</int>
|
||||||
|
<string key="NSWindowRect">{{133, 535}, {299, 113}}</string>
|
||||||
|
<int key="NSWTFlags">1886913536</int>
|
||||||
|
<string key="NSWindowTitle">New Tweet</string>
|
||||||
|
<string key="NSWindowClass">NSWindow</string>
|
||||||
|
<string key="NSViewClass">View</string>
|
||||||
|
<nil key="NSUserInterfaceItemIdentifier"/>
|
||||||
|
<string key="NSWindowContentMinSize">{94, 86}</string>
|
||||||
|
<object class="NSView" key="NSWindowView" id="568628114">
|
||||||
|
<reference key="NSNextResponder"/>
|
||||||
|
<int key="NSvFlags">256</int>
|
||||||
|
<object class="NSMutableArray" key="NSSubviews">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSTextField" id="884814600">
|
||||||
|
<reference key="NSNextResponder" ref="568628114"/>
|
||||||
|
<int key="NSvFlags">274</int>
|
||||||
|
<string key="NSFrame">{{0, 22}, {299, 91}}</string>
|
||||||
|
<reference key="NSSuperview" ref="568628114"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSTextFieldCell" key="NSCell" id="834602598">
|
||||||
|
<int key="NSCellFlags">-1809711615</int>
|
||||||
|
<int key="NSCellFlags2">272629760</int>
|
||||||
|
<string key="NSContents"/>
|
||||||
|
<object class="NSFont" key="NSSupport" id="991349575">
|
||||||
|
<string key="NSName">LucidaGrande</string>
|
||||||
|
<double key="NSSize">13</double>
|
||||||
|
<int key="NSfFlags">1044</int>
|
||||||
|
</object>
|
||||||
|
<reference key="NSControlView" ref="884814600"/>
|
||||||
|
<bool key="NSDrawsBackground">YES</bool>
|
||||||
|
<object class="NSColor" key="NSBackgroundColor">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">textBackgroundColor</string>
|
||||||
|
<object class="NSColor" key="NSColor">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MQA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSColor" key="NSTextColor">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">textColor</string>
|
||||||
|
<object class="NSColor" key="NSColor" id="397794209">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MAA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSTextField" id="184011745">
|
||||||
|
<reference key="NSNextResponder" ref="568628114"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<string key="NSFrame">{{257, 2}, {38, 17}}</string>
|
||||||
|
<reference key="NSSuperview" ref="568628114"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSTextFieldCell" key="NSCell" id="894039108">
|
||||||
|
<int key="NSCellFlags">68288064</int>
|
||||||
|
<int key="NSCellFlags2">71304192</int>
|
||||||
|
<string key="NSContents">140</string>
|
||||||
|
<reference key="NSSupport" ref="991349575"/>
|
||||||
|
<reference key="NSControlView" ref="184011745"/>
|
||||||
|
<object class="NSColor" key="NSBackgroundColor">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">controlColor</string>
|
||||||
|
<object class="NSColor" key="NSColor">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSColor" key="NSTextColor">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">controlTextColor</string>
|
||||||
|
<reference key="NSColor" ref="397794209"/>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<string key="NSFrameSize">{299, 113}</string>
|
||||||
|
<reference key="NSSuperview"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
</object>
|
||||||
|
<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
|
||||||
|
<string key="NSMinSize">{94, 108}</string>
|
||||||
|
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
|
||||||
|
<string key="NSFrameAutosaveName">newTweet</string>
|
||||||
|
<bool key="NSAutorecalculatesContentBorderThicknessMinY">NO</bool>
|
||||||
|
<double key="NSContentBorderThicknessMinY">22</double>
|
||||||
|
<bool key="NSWindowIsRestorable">YES</bool>
|
||||||
|
</object>
|
||||||
|
<object class="NSCustomObject" id="796877042">
|
||||||
|
<string key="NSClassName">NSApplication</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||||
|
<object class="NSMutableArray" key="connectionRecords">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">window</string>
|
||||||
|
<reference key="source" ref="512844837"/>
|
||||||
|
<reference key="destination" ref="275939982"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">18</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">sendTweet:</string>
|
||||||
|
<reference key="source" ref="512844837"/>
|
||||||
|
<reference key="destination" ref="884814600"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">100031</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">textField</string>
|
||||||
|
<reference key="source" ref="512844837"/>
|
||||||
|
<reference key="destination" ref="884814600"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">100034</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">delegate</string>
|
||||||
|
<reference key="source" ref="884814600"/>
|
||||||
|
<reference key="destination" ref="512844837"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">100035</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">counter</string>
|
||||||
|
<reference key="source" ref="512844837"/>
|
||||||
|
<reference key="destination" ref="184011745"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">100038</int>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||||
|
<object class="NSArray" key="orderedObjects">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">0</int>
|
||||||
|
<reference key="object" ref="0"/>
|
||||||
|
<reference key="children" ref="580458321"/>
|
||||||
|
<nil key="parent"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-2</int>
|
||||||
|
<reference key="object" ref="512844837"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">File's Owner</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-1</int>
|
||||||
|
<reference key="object" ref="613418571"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">First Responder</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">5</int>
|
||||||
|
<reference key="object" ref="275939982"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="568628114"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">Window</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">6</int>
|
||||||
|
<reference key="object" ref="568628114"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="884814600"/>
|
||||||
|
<reference ref="184011745"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="275939982"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-3</int>
|
||||||
|
<reference key="object" ref="796877042"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">Application</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">100028</int>
|
||||||
|
<reference key="object" ref="884814600"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="834602598"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="568628114"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">100029</int>
|
||||||
|
<reference key="object" ref="834602598"/>
|
||||||
|
<reference key="parent" ref="884814600"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">100036</int>
|
||||||
|
<reference key="object" ref="184011745"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="894039108"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="568628114"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">100037</int>
|
||||||
|
<reference key="object" ref="894039108"/>
|
||||||
|
<reference key="parent" ref="184011745"/>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>-1.IBPluginDependency</string>
|
||||||
|
<string>-2.IBPluginDependency</string>
|
||||||
|
<string>-3.IBPluginDependency</string>
|
||||||
|
<string>100028.IBPluginDependency</string>
|
||||||
|
<string>100029.IBPluginDependency</string>
|
||||||
|
<string>100036.IBPluginDependency</string>
|
||||||
|
<string>100037.IBPluginDependency</string>
|
||||||
|
<string>5.IBPluginDependency</string>
|
||||||
|
<string>5.IBWindowTemplateEditedContentRect</string>
|
||||||
|
<string>6.IBPluginDependency</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>{{127, 736}, {299, 113}}</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
|
<reference key="dict.values" ref="0"/>
|
||||||
|
</object>
|
||||||
|
<nil key="activeLocalization"/>
|
||||||
|
<object class="NSMutableDictionary" key="localizations">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
|
<reference key="dict.values" ref="0"/>
|
||||||
|
</object>
|
||||||
|
<nil key="sourceID"/>
|
||||||
|
<int key="maxID">100038</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
|
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSDocument</string>
|
||||||
|
<object class="NSMutableDictionary" key="actions">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>printDocument:</string>
|
||||||
|
<string>revertDocumentToSaved:</string>
|
||||||
|
<string>runPageLayout:</string>
|
||||||
|
<string>saveDocument:</string>
|
||||||
|
<string>saveDocumentAs:</string>
|
||||||
|
<string>saveDocumentTo:</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>id</string>
|
||||||
|
<string>id</string>
|
||||||
|
<string>id</string>
|
||||||
|
<string>id</string>
|
||||||
|
<string>id</string>
|
||||||
|
<string>id</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>printDocument:</string>
|
||||||
|
<string>revertDocumentToSaved:</string>
|
||||||
|
<string>runPageLayout:</string>
|
||||||
|
<string>saveDocument:</string>
|
||||||
|
<string>saveDocumentAs:</string>
|
||||||
|
<string>saveDocumentTo:</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBActionInfo">
|
||||||
|
<string key="name">printDocument:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo">
|
||||||
|
<string key="name">revertDocumentToSaved:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo">
|
||||||
|
<string key="name">runPageLayout:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo">
|
||||||
|
<string key="name">saveDocument:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo">
|
||||||
|
<string key="name">saveDocumentAs:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo">
|
||||||
|
<string key="name">saveDocumentTo:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/NSDocument.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NewTweetWindow</string>
|
||||||
|
<string key="superclassName">NSDocument</string>
|
||||||
|
<object class="NSMutableDictionary" key="actions">
|
||||||
|
<string key="NS.key.0">sendTweet:</string>
|
||||||
|
<string key="NS.object.0">NSControl</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||||
|
<string key="NS.key.0">sendTweet:</string>
|
||||||
|
<object class="IBActionInfo" key="NS.object.0">
|
||||||
|
<string key="name">sendTweet:</string>
|
||||||
|
<string key="candidateClassName">NSControl</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="outlets">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>counter</string>
|
||||||
|
<string>textField</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>NSTextField</string>
|
||||||
|
<string>NSTextField</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>counter</string>
|
||||||
|
<string>textField</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBToOneOutletInfo">
|
||||||
|
<string key="name">counter</string>
|
||||||
|
<string key="candidateClassName">NSTextField</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo">
|
||||||
|
<string key="name">textField</string>
|
||||||
|
<string key="candidateClassName">NSTextField</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/NewTweetWindow.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
||||||
|
<integer value="1050" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
||||||
|
<integer value="3000" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
|
</data>
|
||||||
|
</archive>
|
|
@ -1,5 +1,5 @@
|
||||||
//
|
//
|
||||||
// MyDocument.h
|
// NewTweetWindow.h
|
||||||
// Twittia 2
|
// Twittia 2
|
||||||
//
|
//
|
||||||
// Created by Jeena on 16.04.10.
|
// Created by Jeena on 16.04.10.
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
|
||||||
@interface MyDocument : NSDocument
|
@interface NewTweetWindow : NSDocument
|
||||||
{
|
{
|
||||||
IBOutlet NSTextField *textField;
|
IBOutlet NSTextField *textField;
|
||||||
IBOutlet NSTextField *counter;
|
IBOutlet NSTextField *counter;
|
|
@ -1,16 +1,16 @@
|
||||||
//
|
//
|
||||||
// MyDocument.m
|
// NewTweetWindow.m
|
||||||
// Twittia 2
|
// Twittia 2
|
||||||
//
|
//
|
||||||
// Created by Jeena on 16.04.10.
|
// Created by Jeena on 16.04.10.
|
||||||
// Licence: BSD (see attached LICENCE.txt file).
|
// Licence: BSD (see attached LICENCE.txt file).
|
||||||
//
|
//
|
||||||
|
|
||||||
#import "MyDocument.h"
|
#import "NewTweetWindow.h"
|
||||||
#import "Constants.h"
|
#import "Constants.h"
|
||||||
#import "TweetModel.h"
|
#import "TweetModel.h"
|
||||||
|
|
||||||
@implementation MyDocument
|
@implementation NewTweetWindow
|
||||||
|
|
||||||
@synthesize textField, counter;
|
@synthesize textField, counter;
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
{
|
{
|
||||||
// Override returning the nib file name of the document
|
// Override returning the nib file name of the document
|
||||||
// If you need to use a subclass of NSWindowController or if your document supports multiple NSWindowControllers, you should remove this method and override -makeWindowControllers instead.
|
// If you need to use a subclass of NSWindowController or if your document supports multiple NSWindowControllers, you should remove this method and override -makeWindowControllers instead.
|
||||||
return @"MyDocument";
|
return @"NewTweetWindow";
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)displayName {
|
- (NSString *)displayName {
|
|
@ -1,15 +0,0 @@
|
||||||
//
|
|
||||||
// OAToken+WebView.h
|
|
||||||
// Twittia 2
|
|
||||||
//
|
|
||||||
// Created by Jeena on 02.05.10.
|
|
||||||
// Licence: BSD (see attached LICENCE.txt file).
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <OAuthConsumer/OAToken.h>
|
|
||||||
|
|
||||||
|
|
||||||
@interface OAToken(WebView)
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,23 +0,0 @@
|
||||||
//
|
|
||||||
// OAToken+WebView.m
|
|
||||||
// Twittia 2
|
|
||||||
//
|
|
||||||
// Created by Jeena on 02.05.10.
|
|
||||||
// Licence: BSD (see attached LICENCE.txt file).
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "OAToken+WebView.h"
|
|
||||||
|
|
||||||
|
|
||||||
// this is just so the JavaScript can get the tokens.
|
|
||||||
@implementation OAToken(WebView)
|
|
||||||
|
|
||||||
+ (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (BOOL)isKeyExcludedFromWebScript:(const char *)name {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
31
OAuth.h
31
OAuth.h
|
@ -1,31 +0,0 @@
|
||||||
//
|
|
||||||
// OAuth.h
|
|
||||||
// Twittia 2
|
|
||||||
//
|
|
||||||
// Created by Jeena on 01.05.10.
|
|
||||||
// Licence: BSD (see attached LICENCE.txt file).
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <OAuthConsumer/OAToken.h>
|
|
||||||
#import <OAuthConsumer/OAConsumer.h>
|
|
||||||
#import "OAToken+WebView.h"
|
|
||||||
|
|
||||||
|
|
||||||
@interface OAuth : NSObject {
|
|
||||||
OAToken *requestToken;
|
|
||||||
OAToken *accessToken;
|
|
||||||
OAToken *consumerToken;
|
|
||||||
OAConsumer *consumer;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property (nonatomic, retain) OAToken *accessToken;
|
|
||||||
@property (nonatomic, retain) OAToken *consumerToken;
|
|
||||||
|
|
||||||
- (id)init;
|
|
||||||
- (void)requestAToken;
|
|
||||||
- (void)requestAccessToken;
|
|
||||||
- (void)updateTweet:(NSString *)tweet inReplaToStatus:(NSString *)statusId;
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
|
180
OAuth.m
180
OAuth.m
|
@ -1,180 +0,0 @@
|
||||||
//
|
|
||||||
// OAuth.m
|
|
||||||
// Twittia 2
|
|
||||||
//
|
|
||||||
// Created by Jeena on 01.05.10.
|
|
||||||
// Licence: BSD (see attached LICENCE.txt file).
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "OAuth.h"
|
|
||||||
#import "Constants.h"
|
|
||||||
#import <OAuthConsumer/OAConsumer.h>
|
|
||||||
#import <OAuthConsumer/OAMutableURLRequest.h>
|
|
||||||
#import <OAuthConsumer/OADataFetcher.h>
|
|
||||||
#import <OAuthConsumer/OAToken.h>
|
|
||||||
|
|
||||||
|
|
||||||
@implementation OAuth
|
|
||||||
|
|
||||||
@synthesize accessToken, consumerToken;
|
|
||||||
|
|
||||||
+ (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (BOOL)isKeyExcludedFromWebScript:(const char *)name {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
-(id)init {
|
|
||||||
if ((self = [super init])) {
|
|
||||||
self.consumerToken = [[OAToken alloc] initWithKey:OAUTH_CONSUMER_KEY secret:OAUTH_CONSUMER_SECRET];
|
|
||||||
self.accessToken = [[OAToken alloc] initWithUserDefaultsUsingServiceProviderName:OAUTH_SERVICE_NAME prefix:APP_NAME];
|
|
||||||
consumer = [[OAConsumer alloc] initWithKey:OAUTH_CONSUMER_KEY secret:OAUTH_CONSUMER_SECRET];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[consumerToken release];
|
|
||||||
[accessToken release];
|
|
||||||
[consumer release];
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)awakeFromNib {
|
|
||||||
if (!self.accessToken) {
|
|
||||||
[self requestAToken];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-(void)requestAToken {
|
|
||||||
|
|
||||||
NSURL *url = [NSURL URLWithString:OAUTH_REQUEST_TOKEN_URL];
|
|
||||||
|
|
||||||
OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
|
|
||||||
consumer:consumer
|
|
||||||
token:nil // we don't have a Token yet
|
|
||||||
realm:nil // our service provider doesn't specify a realm
|
|
||||||
signatureProvider:nil]; // use the default method, HMAC-SHA1
|
|
||||||
|
|
||||||
[request setHTTPMethod:@"POST"];
|
|
||||||
[request setOAuthParameterName:@"oauth_callback" withValue:@"oob"];
|
|
||||||
|
|
||||||
OADataFetcher *fetcher = [[OADataFetcher alloc] init];
|
|
||||||
NSLog(@"%@", request);
|
|
||||||
|
|
||||||
[fetcher fetchDataWithRequest:request
|
|
||||||
delegate:self
|
|
||||||
didFinishSelector:@selector(requestTokenTicket:didFinishWithData:)
|
|
||||||
didFailSelector:@selector(requestTokenTicket:didFailWithError:)];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)requestTokenTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data {
|
|
||||||
NSLog(@"succ: %i %@", ticket.didSucceed, ticket.response);
|
|
||||||
if (ticket.didSucceed) {
|
|
||||||
NSString *responseBody = [[NSString alloc] initWithData:data
|
|
||||||
encoding:NSUTF8StringEncoding];
|
|
||||||
requestToken = [[OAToken alloc] initWithHTTPResponseBody:responseBody];
|
|
||||||
|
|
||||||
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?oauth_token=%@", OAUTH_USER_AUTHORIZATION_URL, requestToken.key]];
|
|
||||||
[[NSWorkspace sharedWorkspace] openURL:url];
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)requestTokenTicket:(OAServiceTicket *)ticket didFailWithError:(NSError *)error {
|
|
||||||
NSLog(@"ERROR: %@", error);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)requestAccessToken {
|
|
||||||
|
|
||||||
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@", OAUTH_ACCESS_TOKEN_URL]];
|
|
||||||
|
|
||||||
OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
|
|
||||||
consumer:consumer
|
|
||||||
token:requestToken // we don't have a Token yet
|
|
||||||
realm:nil // our service provider doesn't specify a realm
|
|
||||||
signatureProvider:nil]; // use the default method, HMAC-SHA1
|
|
||||||
|
|
||||||
[request setHTTPMethod:@"POST"];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
OADataFetcher *fetcher = [[OADataFetcher alloc] init];
|
|
||||||
[fetcher fetchDataWithRequest:request
|
|
||||||
delegate:self
|
|
||||||
didFinishSelector:@selector(accessTokenTicket:didFinishWithData:)
|
|
||||||
didFailSelector:@selector(accessTokenTicket:didFailWithError:)];
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)accessTokenTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data {
|
|
||||||
NSLog(@"%@", ticket);
|
|
||||||
if (ticket.didSucceed) {
|
|
||||||
NSString *responseBody = [[NSString alloc] initWithData:data
|
|
||||||
encoding:NSUTF8StringEncoding];
|
|
||||||
|
|
||||||
self.accessToken = [[OAToken alloc] initWithHTTPResponseBody:responseBody];
|
|
||||||
[accessToken storeInUserDefaultsWithServiceProviderName:OAUTH_SERVICE_NAME prefix:APP_NAME];
|
|
||||||
|
|
||||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
|
||||||
[nc postNotificationName:@"authentificationSucceded" object:self];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- (void)accessTokenTicket:(OAServiceTicket *)ticket didFailWithError:(NSError *)error {
|
|
||||||
NSLog(@"ERROR a: %@", error);
|
|
||||||
// [self requestAccessToken];
|
|
||||||
|
|
||||||
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?oauth_token=%@", OAUTH_USER_AUTHORIZATION_URL, requestToken.key]];
|
|
||||||
[[NSWorkspace sharedWorkspace] openURL:url];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)updateTweet:(NSString *)tweet inReplaToStatus:(NSString *)statusId {
|
|
||||||
|
|
||||||
NSLog(@"%@ %@", tweet, statusId);
|
|
||||||
|
|
||||||
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@statuses/update.json", API_URL]];
|
|
||||||
OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
|
|
||||||
consumer:consumer
|
|
||||||
token:accessToken
|
|
||||||
realm:nil
|
|
||||||
signatureProvider:nil];
|
|
||||||
|
|
||||||
OARequestParameter *source = [[OARequestParameter alloc] initWithName:@"source" value:@"twittia"];
|
|
||||||
OARequestParameter *status = [[OARequestParameter alloc] initWithName:@"status" value:tweet];
|
|
||||||
|
|
||||||
NSMutableArray *params = [NSMutableArray arrayWithObjects:source, status, nil];
|
|
||||||
|
|
||||||
if (statusId) {
|
|
||||||
OARequestParameter *reply = [[OARequestParameter alloc] initWithName:@"in_reply_to_status_id" value:[NSString stringWithString:statusId]];
|
|
||||||
[params addObject:reply];
|
|
||||||
}
|
|
||||||
|
|
||||||
[request setHTTPMethod:@"POST"];
|
|
||||||
[request setParameters:params];
|
|
||||||
|
|
||||||
OADataFetcher *fetcher = [[OADataFetcher alloc] init];
|
|
||||||
[fetcher fetchDataWithRequest:request
|
|
||||||
delegate:self
|
|
||||||
didFinishSelector:@selector(updateTweetTicket:didFinishWithData:)
|
|
||||||
didFailSelector:@selector(updateTweetTokenTicket:didFailWithError:)];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)updateTweetTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data {
|
|
||||||
if (ticket.didSucceed) {
|
|
||||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
|
||||||
[nc postNotificationName:@"getTweetUpdates" object:self];
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)updateTweetTokenTicket:(OAServiceTicket *)ticket didFailWithError:(NSError *)error {
|
|
||||||
NSLog(@"ERROR update tweet: %@", error);
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1 +0,0 @@
|
||||||
Versions/Current/Headers
|
|
|
@ -1 +0,0 @@
|
||||||
Versions/Current/OAuthConsumer
|
|
|
@ -1 +0,0 @@
|
||||||
Versions/Current/Resources
|
|
|
@ -1,35 +0,0 @@
|
||||||
//
|
|
||||||
// NSMutableURLRequest+Parameters.h
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "OARequestParameter.h"
|
|
||||||
#import "NSURL+Base.h"
|
|
||||||
|
|
||||||
|
|
||||||
@interface NSMutableURLRequest (OAParameterAdditions)
|
|
||||||
|
|
||||||
- (NSArray *)parameters;
|
|
||||||
- (void)setParameters:(NSArray *)parameters;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,34 +0,0 @@
|
||||||
//
|
|
||||||
// NSString+URLEncoding.h
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
|
|
||||||
@interface NSString (OAURLEncodingAdditions)
|
|
||||||
|
|
||||||
- (NSString *)URLEncodedString;
|
|
||||||
- (NSString *)URLDecodedString;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,34 +0,0 @@
|
||||||
//
|
|
||||||
// NSURL+Base.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
|
|
||||||
@interface NSURL (OABaseAdditions)
|
|
||||||
|
|
||||||
- (NSString *)URLStringWithoutQuery;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,45 +0,0 @@
|
||||||
//
|
|
||||||
// OAAsynchronousDataFetcher.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Zsombor Szabó on 12/3/08.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
#import "OAMutableURLRequest.h"
|
|
||||||
|
|
||||||
@interface OAAsynchronousDataFetcher : NSObject {
|
|
||||||
OAMutableURLRequest *request;
|
|
||||||
NSURLResponse *response;
|
|
||||||
NSURLConnection *connection;
|
|
||||||
NSMutableData *responseData;
|
|
||||||
id delegate;
|
|
||||||
SEL didFinishSelector;
|
|
||||||
SEL didFailSelector;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (id)asynchronousFetcherWithRequest:(OAMutableURLRequest *)aRequest delegate:(id)aDelegate didFinishSelector:(SEL)finishSelector didFailSelector:(SEL)failSelector;
|
|
||||||
- (id)initWithRequest:(OAMutableURLRequest *)aRequest delegate:(id)aDelegate didFinishSelector:(SEL)finishSelector didFailSelector:(SEL)failSelector;
|
|
||||||
|
|
||||||
- (void)start;
|
|
||||||
- (void)cancel;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,40 +0,0 @@
|
||||||
//
|
|
||||||
// OAConsumer.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
|
|
||||||
@interface OAConsumer : NSObject {
|
|
||||||
@protected
|
|
||||||
NSString *key;
|
|
||||||
NSString *secret;
|
|
||||||
}
|
|
||||||
@property(retain) NSString *key;
|
|
||||||
@property(retain) NSString *secret;
|
|
||||||
|
|
||||||
- (id)initWithKey:(NSString *)aKey secret:(NSString *)aSecret;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,45 +0,0 @@
|
||||||
//
|
|
||||||
// OADataFetcher.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 11/5/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "OAMutableURLRequest.h"
|
|
||||||
#import "OAServiceTicket.h"
|
|
||||||
|
|
||||||
|
|
||||||
@interface OADataFetcher : NSObject {
|
|
||||||
@private
|
|
||||||
OAMutableURLRequest *request;
|
|
||||||
NSURLResponse *response;
|
|
||||||
NSURLConnection *connection;
|
|
||||||
NSError *error;
|
|
||||||
NSData *responseData;
|
|
||||||
id delegate;
|
|
||||||
SEL didFinishSelector;
|
|
||||||
SEL didFailSelector;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)fetchDataWithRequest:(OAMutableURLRequest *)aRequest delegate:(id)aDelegate didFinishSelector:(SEL)finishSelector didFailSelector:(SEL)failSelector;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,32 +0,0 @@
|
||||||
//
|
|
||||||
// OAHMAC_SHA1SignatureProvider.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "OASignatureProviding.h"
|
|
||||||
|
|
||||||
|
|
||||||
@interface OAHMAC_SHA1SignatureProvider : NSObject <OASignatureProviding>
|
|
||||||
@end
|
|
|
@ -1,68 +0,0 @@
|
||||||
//
|
|
||||||
// OAMutableURLRequest.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "OAConsumer.h"
|
|
||||||
#import "OAToken.h"
|
|
||||||
#import "OAHMAC_SHA1SignatureProvider.h"
|
|
||||||
#import "OASignatureProviding.h"
|
|
||||||
#import "NSMutableURLRequest+Parameters.h"
|
|
||||||
#import "NSURL+Base.h"
|
|
||||||
|
|
||||||
|
|
||||||
@interface OAMutableURLRequest : NSMutableURLRequest {
|
|
||||||
@protected
|
|
||||||
OAConsumer *consumer;
|
|
||||||
OAToken *token;
|
|
||||||
NSString *realm;
|
|
||||||
NSString *signature;
|
|
||||||
id<OASignatureProviding> signatureProvider;
|
|
||||||
NSString *nonce;
|
|
||||||
NSString *timestamp;
|
|
||||||
NSMutableDictionary *extraOAuthParameters;
|
|
||||||
}
|
|
||||||
@property(readonly) NSString *signature;
|
|
||||||
@property(readonly) NSString *nonce;
|
|
||||||
|
|
||||||
- (id)initWithURL:(NSURL *)aUrl
|
|
||||||
consumer:(OAConsumer *)aConsumer
|
|
||||||
token:(OAToken *)aToken
|
|
||||||
realm:(NSString *)aRealm
|
|
||||||
signatureProvider:(id<OASignatureProviding, NSObject>)aProvider;
|
|
||||||
|
|
||||||
- (id)initWithURL:(NSURL *)aUrl
|
|
||||||
consumer:(OAConsumer *)aConsumer
|
|
||||||
token:(OAToken *)aToken
|
|
||||||
realm:(NSString *)aRealm
|
|
||||||
signatureProvider:(id<OASignatureProviding, NSObject>)aProvider
|
|
||||||
nonce:(NSString *)aNonce
|
|
||||||
timestamp:(NSString *)aTimestamp;
|
|
||||||
|
|
||||||
- (void)prepare;
|
|
||||||
|
|
||||||
- (void)setOAuthParameterName:(NSString*)parameterName withValue:(NSString*)parameterValue;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,31 +0,0 @@
|
||||||
//
|
|
||||||
// OAPlaintextSignatureProvider.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "OASignatureProviding.h"
|
|
||||||
|
|
||||||
@interface OAPlaintextSignatureProvider : NSObject <OASignatureProviding>
|
|
||||||
@end
|
|
|
@ -1,45 +0,0 @@
|
||||||
//
|
|
||||||
// OARequestParameter.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "NSString+URLEncoding.h"
|
|
||||||
|
|
||||||
|
|
||||||
@interface OARequestParameter : NSObject {
|
|
||||||
@protected
|
|
||||||
NSString *name;
|
|
||||||
NSString *value;
|
|
||||||
}
|
|
||||||
@property(retain) NSString *name;
|
|
||||||
@property(retain) NSString *value;
|
|
||||||
|
|
||||||
+ (id)requestParameterWithName:(NSString *)aName value:(NSString *)aValue;
|
|
||||||
- (id)initWithName:(NSString *)aName value:(NSString *)aValue;
|
|
||||||
- (NSString *)URLEncodedName;
|
|
||||||
- (NSString *)URLEncodedValue;
|
|
||||||
- (NSString *)URLEncodedNameValuePair;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,43 +0,0 @@
|
||||||
//
|
|
||||||
// OAServiceTicket.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 11/5/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "OAMutableURLRequest.h"
|
|
||||||
|
|
||||||
|
|
||||||
@interface OAServiceTicket : NSObject {
|
|
||||||
@private
|
|
||||||
OAMutableURLRequest *request;
|
|
||||||
NSURLResponse *response;
|
|
||||||
BOOL didSucceed;
|
|
||||||
}
|
|
||||||
@property(retain) OAMutableURLRequest *request;
|
|
||||||
@property(retain) NSURLResponse *response;
|
|
||||||
@property(assign) BOOL didSucceed;
|
|
||||||
|
|
||||||
- (id)initWithRequest:(OAMutableURLRequest *)aRequest response:(NSURLResponse *)aResponse didSucceed:(BOOL)success;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,34 +0,0 @@
|
||||||
//
|
|
||||||
// OASignatureProviding.h
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
|
|
||||||
@protocol OASignatureProviding <NSObject>
|
|
||||||
|
|
||||||
- (NSString *)name;
|
|
||||||
- (NSString *)signClearText:(NSString *)text withSecret:(NSString *)secret;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,41 +0,0 @@
|
||||||
//
|
|
||||||
// OAToken.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@interface OAToken : NSObject {
|
|
||||||
@protected
|
|
||||||
NSString *key;
|
|
||||||
NSString *secret;
|
|
||||||
}
|
|
||||||
@property(retain) NSString *key;
|
|
||||||
@property(retain) NSString *secret;
|
|
||||||
|
|
||||||
- (id)initWithKey:(NSString *)aKey secret:(NSString *)aSecret;
|
|
||||||
- (id)initWithUserDefaultsUsingServiceProviderName:(NSString *)provider prefix:(NSString *)prefix;
|
|
||||||
- (id)initWithHTTPResponseBody:(NSString *)body;
|
|
||||||
- (int)storeInUserDefaultsWithServiceProviderName:(NSString *)provider prefix:(NSString *)prefix;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,19 +0,0 @@
|
||||||
//
|
|
||||||
// OAToken_KeychainExtensions.h
|
|
||||||
// TouchTheFireEagle
|
|
||||||
//
|
|
||||||
// Created by Jonathan Wight on 04/04/08.
|
|
||||||
// Copyright 2008 __MyCompanyName__. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "OAToken.h"
|
|
||||||
|
|
||||||
#import <Security/Security.h>
|
|
||||||
|
|
||||||
@interface OAToken (OAToken_KeychainExtensions)
|
|
||||||
|
|
||||||
- (id)initWithKeychainUsingAppName:(NSString *)name serviceProviderName:(NSString *)provider;
|
|
||||||
- (int)storeInDefaultKeychainWithAppName:(NSString *)name serviceProviderName:(NSString *)provider;
|
|
||||||
- (int)storeInKeychain:(SecKeychainRef)keychain appName:(NSString *)name serviceProviderName:(NSString *)provider;
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,39 +0,0 @@
|
||||||
//
|
|
||||||
// OAuthConsumer.h
|
|
||||||
// OAuthConsumer
|
|
||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <OAuthConsumer/OAToken.h>
|
|
||||||
#import <OAuthConsumer/OAConsumer.h>
|
|
||||||
#import <OAuthConsumer/OAMutableURLRequest.h>
|
|
||||||
#import <OAuthConsumer/NSString+URLEncoding.h>
|
|
||||||
#import <OAuthConsumer/NSMutableURLRequest+Parameters.h>
|
|
||||||
#import <OAuthConsumer/NSURL+Base.h>
|
|
||||||
#import <OAuthConsumer/OASignatureProviding.h>
|
|
||||||
#import <OAuthConsumer/OAHMAC_SHA1SignatureProvider.h>
|
|
||||||
#import <OAuthConsumer/OAPlaintextSignatureProvider.h>
|
|
||||||
#import <OAuthConsumer/OARequestParameter.h>
|
|
||||||
#import <OAuthConsumer/OAServiceTicket.h>
|
|
||||||
#import <OAuthConsumer/OADataFetcher.h>
|
|
||||||
#import <OAuthConsumer/OAAsynchronousDataFetcher.h>
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,22 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>English</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>OAuthConsumer</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>net.oauth.OAuthConsumer</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>OAuthConsumer</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>FMWK</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>0.1.1</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1 +0,0 @@
|
||||||
A
|
|
|
@ -11,6 +11,16 @@
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<h1>Twittia 2.4.0</h1>
|
||||||
|
|
||||||
|
<p>Rewritten the OAuth parts in pure JavaScript.</p>
|
||||||
|
<p>Small bugfixes.</p>
|
||||||
|
<p>Added thumbnails for Twitter, Twitpic, Yfrog and YouTube links.</p>
|
||||||
|
<p>Raplacing to.co, bit.ly and j.mp links with full URLs.</p>
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
|
||||||
<h1>Twittia 2.3.1</h1>
|
<h1>Twittia 2.3.1</h1>
|
||||||
<p>Fixed problem with replay to id where you weren't able to replay to anyone.</p>
|
<p>Fixed problem with replay to id where you weren't able to replay to anyone.</p>
|
||||||
|
|
|
@ -3,20 +3,17 @@
|
||||||
archiveVersion = 1;
|
archiveVersion = 1;
|
||||||
classes = {
|
classes = {
|
||||||
};
|
};
|
||||||
objectVersion = 45;
|
objectVersion = 46;
|
||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
1DDD582C0DA1D0D100B32029 /* MyDocument.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58280DA1D0D100B32029 /* MyDocument.xib */; };
|
1DDD582C0DA1D0D100B32029 /* NewTweetWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58280DA1D0D100B32029 /* NewTweetWindow.xib */; };
|
||||||
1DDD582D0DA1D0D100B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD582A0DA1D0D100B32029 /* MainMenu.xib */; };
|
1DDD582D0DA1D0D100B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD582A0DA1D0D100B32029 /* MainMenu.xib */; };
|
||||||
1F122D49118E1DE100E83B77 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 1F122D48118E1DE100E83B77 /* Icon.icns */; };
|
1F122D49118E1DE100E83B77 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 1F122D48118E1DE100E83B77 /* Icon.icns */; };
|
||||||
1F1990C6117BCA960049BEA7 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F1990C5117BCA960049BEA7 /* ApplicationServices.framework */; };
|
1F1990C6117BCA960049BEA7 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F1990C5117BCA960049BEA7 /* ApplicationServices.framework */; };
|
||||||
1F2746FC12D9057600339B4F /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 1FE2FCA6117A8952000504B0 /* dsa_pub.pem */; };
|
1F2746FC12D9057600339B4F /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 1FE2FCA6117A8952000504B0 /* dsa_pub.pem */; };
|
||||||
1F3642EF118C8C35008198EF /* oauth.js in Resources */ = {isa = PBXBuildFile; fileRef = 1F3642ED118C8C35008198EF /* oauth.js */; };
|
1F3642EF118C8C35008198EF /* oauth.js in Resources */ = {isa = PBXBuildFile; fileRef = 1F3642ED118C8C35008198EF /* oauth.js */; };
|
||||||
1F3642F0118C8C35008198EF /* sha1.js in Resources */ = {isa = PBXBuildFile; fileRef = 1F3642EE118C8C35008198EF /* sha1.js */; };
|
1F3642F0118C8C35008198EF /* sha1.js in Resources */ = {isa = PBXBuildFile; fileRef = 1F3642EE118C8C35008198EF /* sha1.js */; };
|
||||||
1F364398118CBC77008198EF /* OAuth.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F364397118CBC77008198EF /* OAuth.m */; };
|
|
||||||
1F36440F118CC173008198EF /* OAuthConsumer.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1F36440E118CC173008198EF /* OAuthConsumer.framework */; };
|
|
||||||
1F36465E118DA5A7008198EF /* OAToken+WebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F36465D118DA5A7008198EF /* OAToken+WebView.m */; };
|
|
||||||
1F4673FE1180F7EA006CC37C /* TwittiaCore.js in Resources */ = {isa = PBXBuildFile; fileRef = 1F4673E61180F654006CC37C /* TwittiaCore.js */; };
|
1F4673FE1180F7EA006CC37C /* TwittiaCore.js in Resources */ = {isa = PBXBuildFile; fileRef = 1F4673E61180F654006CC37C /* TwittiaCore.js */; };
|
||||||
1F4674081180F7EE006CC37C /* jQuery.js in Resources */ = {isa = PBXBuildFile; fileRef = 1F4673E21180F519006CC37C /* jQuery.js */; };
|
1F4674081180F7EE006CC37C /* jQuery.js in Resources */ = {isa = PBXBuildFile; fileRef = 1F4673E21180F519006CC37C /* jQuery.js */; };
|
||||||
1F4674091180F7F3006CC37C /* jQuery-Plugins.js in Resources */ = {isa = PBXBuildFile; fileRef = 1F4673E41180F590006CC37C /* jQuery-Plugins.js */; };
|
1F4674091180F7F3006CC37C /* jQuery-Plugins.js in Resources */ = {isa = PBXBuildFile; fileRef = 1F4673E41180F590006CC37C /* jQuery-Plugins.js */; };
|
||||||
|
@ -25,7 +22,11 @@
|
||||||
1F70619F1178FBB300C85707 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F70619E1178FBB300C85707 /* Carbon.framework */; };
|
1F70619F1178FBB300C85707 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F70619E1178FBB300C85707 /* Carbon.framework */; };
|
||||||
1F77DB47118C5F1C007C7F1E /* Constants.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F77DB46118C5F1C007C7F1E /* Constants.m */; };
|
1F77DB47118C5F1C007C7F1E /* Constants.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F77DB46118C5F1C007C7F1E /* Constants.m */; };
|
||||||
1F98DC9E124BFFD7004289ED /* pin.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F98DC9D124BFFD7004289ED /* pin.png */; };
|
1F98DC9E124BFFD7004289ED /* pin.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F98DC9D124BFFD7004289ED /* pin.png */; };
|
||||||
1FB074DD118DDAB60013A93C /* OAuthConsumer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F36440E118CC173008198EF /* OAuthConsumer.framework */; };
|
1FA09847144602530079E258 /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FA09846144602530079E258 /* libicucore.dylib */; };
|
||||||
|
1FC254941427BC050035D84B /* index_oauth.html in Resources */ = {isa = PBXBuildFile; fileRef = 1FC254931427BC050035D84B /* index_oauth.html */; };
|
||||||
|
1FC254951427BF150035D84B /* TwittiaOauth.js in Resources */ = {isa = PBXBuildFile; fileRef = 1FC254911427ADF90035D84B /* TwittiaOauth.js */; };
|
||||||
|
1FC2549F1427DC7F0035D84B /* Constants.js in Resources */ = {isa = PBXBuildFile; fileRef = 1FC2549D1427DC2B0035D84B /* Constants.js */; };
|
||||||
|
1FC254A01427DFAD0035D84B /* AccessToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FC2549B1427D9930035D84B /* AccessToken.m */; };
|
||||||
1FE2FC93117A818D000504B0 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE2FC92117A818D000504B0 /* Sparkle.framework */; };
|
1FE2FC93117A818D000504B0 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE2FC92117A818D000504B0 /* Sparkle.framework */; };
|
||||||
1FE2FCA4117A83B1000504B0 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1FE2FC92117A818D000504B0 /* Sparkle.framework */; };
|
1FE2FCA4117A83B1000504B0 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1FE2FC92117A818D000504B0 /* Sparkle.framework */; };
|
||||||
1FFA36CD1177D861006C8562 /* even-bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 1FFA36C81177D861006C8562 /* even-bg.png */; };
|
1FFA36CD1177D861006C8562 /* even-bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 1FFA36C81177D861006C8562 /* even-bg.png */; };
|
||||||
|
@ -37,7 +38,7 @@
|
||||||
1FFA37071177DAF4006C8562 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FFA37061177DAF4006C8562 /* WebKit.framework */; };
|
1FFA37071177DAF4006C8562 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FFA37061177DAF4006C8562 /* WebKit.framework */; };
|
||||||
8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; };
|
8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; };
|
||||||
8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165FFE840EACC02AAC07 /* InfoPlist.strings */; };
|
8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165FFE840EACC02AAC07 /* InfoPlist.strings */; };
|
||||||
8D15AC310486D014006FF6A4 /* MyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */; settings = {ATTRIBUTES = (); }; };
|
8D15AC310486D014006FF6A4 /* NewTweetWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* NewTweetWindow.m */; settings = {ATTRIBUTES = (); }; };
|
||||||
8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
|
8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
|
||||||
8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; };
|
8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
@ -49,7 +50,6 @@
|
||||||
dstPath = "";
|
dstPath = "";
|
||||||
dstSubfolderSpec = 10;
|
dstSubfolderSpec = 10;
|
||||||
files = (
|
files = (
|
||||||
1F36440F118CC173008198EF /* OAuthConsumer.framework in CopyFiles */,
|
|
||||||
1FE2FCA4117A83B1000504B0 /* Sparkle.framework in CopyFiles */,
|
1FE2FCA4117A83B1000504B0 /* Sparkle.framework in CopyFiles */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
089C1660FE840EACC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
089C1660FE840EACC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
13E42FBA07B3F13500E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
13E42FBA07B3F13500E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||||
1DDD58290DA1D0D100B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MyDocument.xib; sourceTree = "<group>"; };
|
1DDD58290DA1D0D100B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/NewTweetWindow.xib; sourceTree = "<group>"; };
|
||||||
1DDD582B0DA1D0D100B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
1DDD582B0DA1D0D100B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
1F122D48118E1DE100E83B77 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = "<group>"; };
|
1F122D48118E1DE100E83B77 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = "<group>"; };
|
||||||
1F198FC7117BC4AB0049BEA7 /* README.markdown */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.markdown; sourceTree = "<group>"; };
|
1F198FC7117BC4AB0049BEA7 /* README.markdown */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.markdown; sourceTree = "<group>"; };
|
||||||
|
@ -69,11 +69,7 @@
|
||||||
1F1990E1117BD2650049BEA7 /* ReleaseNotes.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ReleaseNotes.html; sourceTree = "<group>"; };
|
1F1990E1117BD2650049BEA7 /* ReleaseNotes.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ReleaseNotes.html; sourceTree = "<group>"; };
|
||||||
1F3642ED118C8C35008198EF /* oauth.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = oauth.js; sourceTree = "<group>"; };
|
1F3642ED118C8C35008198EF /* oauth.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = oauth.js; sourceTree = "<group>"; };
|
||||||
1F3642EE118C8C35008198EF /* sha1.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = sha1.js; sourceTree = "<group>"; };
|
1F3642EE118C8C35008198EF /* sha1.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = sha1.js; sourceTree = "<group>"; };
|
||||||
1F364396118CBC77008198EF /* OAuth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAuth.h; sourceTree = "<group>"; };
|
|
||||||
1F364397118CBC77008198EF /* OAuth.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OAuth.m; sourceTree = "<group>"; };
|
|
||||||
1F36440E118CC173008198EF /* OAuthConsumer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OAuthConsumer.framework; sourceTree = "<group>"; };
|
1F36440E118CC173008198EF /* OAuthConsumer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OAuthConsumer.framework; sourceTree = "<group>"; };
|
||||||
1F36465C118DA5A7008198EF /* OAToken+WebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OAToken+WebView.h"; sourceTree = "<group>"; };
|
|
||||||
1F36465D118DA5A7008198EF /* OAToken+WebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OAToken+WebView.m"; sourceTree = "<group>"; };
|
|
||||||
1F4673E21180F519006CC37C /* jQuery.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = jQuery.js; sourceTree = "<group>"; };
|
1F4673E21180F519006CC37C /* jQuery.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = jQuery.js; sourceTree = "<group>"; };
|
||||||
1F4673E41180F590006CC37C /* jQuery-Plugins.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = "jQuery-Plugins.js"; sourceTree = "<group>"; };
|
1F4673E41180F590006CC37C /* jQuery-Plugins.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = "jQuery-Plugins.js"; sourceTree = "<group>"; };
|
||||||
1F4673E61180F654006CC37C /* TwittiaCore.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = TwittiaCore.js; sourceTree = "<group>"; };
|
1F4673E61180F654006CC37C /* TwittiaCore.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = TwittiaCore.js; sourceTree = "<group>"; };
|
||||||
|
@ -84,6 +80,12 @@
|
||||||
1F77DB45118C5F1C007C7F1E /* Constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Constants.h; sourceTree = "<group>"; };
|
1F77DB45118C5F1C007C7F1E /* Constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Constants.h; sourceTree = "<group>"; };
|
||||||
1F77DB46118C5F1C007C7F1E /* Constants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Constants.m; sourceTree = "<group>"; };
|
1F77DB46118C5F1C007C7F1E /* Constants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Constants.m; sourceTree = "<group>"; };
|
||||||
1F98DC9D124BFFD7004289ED /* pin.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pin.png; sourceTree = "<group>"; };
|
1F98DC9D124BFFD7004289ED /* pin.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pin.png; sourceTree = "<group>"; };
|
||||||
|
1FA09846144602530079E258 /* libicucore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = usr/lib/libicucore.dylib; sourceTree = SDKROOT; };
|
||||||
|
1FC254911427ADF90035D84B /* TwittiaOauth.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = TwittiaOauth.js; sourceTree = "<group>"; };
|
||||||
|
1FC254931427BC050035D84B /* index_oauth.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index_oauth.html; sourceTree = "<group>"; };
|
||||||
|
1FC2549A1427D9930035D84B /* AccessToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessToken.h; sourceTree = "<group>"; };
|
||||||
|
1FC2549B1427D9930035D84B /* AccessToken.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AccessToken.m; sourceTree = "<group>"; };
|
||||||
|
1FC2549D1427DC2B0035D84B /* Constants.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = Constants.js; sourceTree = "<group>"; };
|
||||||
1FE2FC92117A818D000504B0 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = "<group>"; };
|
1FE2FC92117A818D000504B0 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = "<group>"; };
|
||||||
1FE2FCA6117A8952000504B0 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_pub.pem; sourceTree = "<group>"; };
|
1FE2FCA6117A8952000504B0 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_pub.pem; sourceTree = "<group>"; };
|
||||||
1FFA36C81177D861006C8562 /* even-bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "even-bg.png"; sourceTree = "<group>"; };
|
1FFA36C81177D861006C8562 /* even-bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "even-bg.png"; sourceTree = "<group>"; };
|
||||||
|
@ -96,8 +98,8 @@
|
||||||
1FFA36D51177D879006C8562 /* ViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewDelegate.m; sourceTree = "<group>"; };
|
1FFA36D51177D879006C8562 /* ViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewDelegate.m; sourceTree = "<group>"; };
|
||||||
1FFA37061177DAF4006C8562 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
|
1FFA37061177DAF4006C8562 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
|
||||||
2564AD2C0F5327BB00F57823 /* Twittia_2_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Twittia_2_Prefix.pch; sourceTree = "<group>"; };
|
2564AD2C0F5327BB00F57823 /* Twittia_2_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Twittia_2_Prefix.pch; sourceTree = "<group>"; };
|
||||||
2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyDocument.m; sourceTree = "<group>"; };
|
2A37F4ACFDCFA73011CA2CEA /* NewTweetWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NewTweetWindow.m; sourceTree = "<group>"; };
|
||||||
2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyDocument.h; sourceTree = "<group>"; };
|
2A37F4AEFDCFA73011CA2CEA /* NewTweetWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewTweetWindow.h; sourceTree = "<group>"; };
|
||||||
2A37F4B0FDCFA73011CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
2A37F4B0FDCFA73011CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||||
2A37F4BAFDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; };
|
2A37F4BAFDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; };
|
||||||
2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||||
|
@ -111,7 +113,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
1FB074DD118DDAB60013A93C /* OAuthConsumer.framework in Frameworks */,
|
1FA09847144602530079E258 /* libicucore.dylib in Frameworks */,
|
||||||
8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */,
|
8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */,
|
||||||
1FFA37071177DAF4006C8562 /* WebKit.framework in Frameworks */,
|
1FFA37071177DAF4006C8562 /* WebKit.framework in Frameworks */,
|
||||||
1F70619F1178FBB300C85707 /* Carbon.framework in Frameworks */,
|
1F70619F1178FBB300C85707 /* Carbon.framework in Frameworks */,
|
||||||
|
@ -160,10 +162,13 @@
|
||||||
1F3642ED118C8C35008198EF /* oauth.js */,
|
1F3642ED118C8C35008198EF /* oauth.js */,
|
||||||
1F3642EE118C8C35008198EF /* sha1.js */,
|
1F3642EE118C8C35008198EF /* sha1.js */,
|
||||||
1F4673E61180F654006CC37C /* TwittiaCore.js */,
|
1F4673E61180F654006CC37C /* TwittiaCore.js */,
|
||||||
|
1FC254911427ADF90035D84B /* TwittiaOauth.js */,
|
||||||
|
1FC2549D1427DC2B0035D84B /* Constants.js */,
|
||||||
1FFA36C81177D861006C8562 /* even-bg.png */,
|
1FFA36C81177D861006C8562 /* even-bg.png */,
|
||||||
1F98DC9D124BFFD7004289ED /* pin.png */,
|
1F98DC9D124BFFD7004289ED /* pin.png */,
|
||||||
1F705EA5117889FA00C85707 /* sprite-icons.png */,
|
1F705EA5117889FA00C85707 /* sprite-icons.png */,
|
||||||
1FFA36C91177D861006C8562 /* index.html */,
|
1FFA36C91177D861006C8562 /* index.html */,
|
||||||
|
1FC254931427BC050035D84B /* index_oauth.html */,
|
||||||
1FFA36CA1177D861006C8562 /* odd-bg.png */,
|
1FFA36CA1177D861006C8562 /* odd-bg.png */,
|
||||||
1FFA36CB1177D861006C8562 /* default.css */,
|
1FFA36CB1177D861006C8562 /* default.css */,
|
||||||
1F4673E21180F519006CC37C /* jQuery.js */,
|
1F4673E21180F519006CC37C /* jQuery.js */,
|
||||||
|
@ -175,6 +180,7 @@
|
||||||
2A37F4AAFDCFA73011CA2CEA /* Twittia 2 */ = {
|
2A37F4AAFDCFA73011CA2CEA /* Twittia 2 */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
1FA09846144602530079E258 /* libicucore.dylib */,
|
||||||
2A37F4ABFDCFA73011CA2CEA /* Classes */,
|
2A37F4ABFDCFA73011CA2CEA /* Classes */,
|
||||||
2A37F4AFFDCFA73011CA2CEA /* Other Sources */,
|
2A37F4AFFDCFA73011CA2CEA /* Other Sources */,
|
||||||
2A37F4B8FDCFA73011CA2CEA /* Resources */,
|
2A37F4B8FDCFA73011CA2CEA /* Resources */,
|
||||||
|
@ -191,16 +197,14 @@
|
||||||
1FFA36D31177D879006C8562 /* Controller.m */,
|
1FFA36D31177D879006C8562 /* Controller.m */,
|
||||||
1FFA36D41177D879006C8562 /* ViewDelegate.h */,
|
1FFA36D41177D879006C8562 /* ViewDelegate.h */,
|
||||||
1FFA36D51177D879006C8562 /* ViewDelegate.m */,
|
1FFA36D51177D879006C8562 /* ViewDelegate.m */,
|
||||||
2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */,
|
2A37F4AEFDCFA73011CA2CEA /* NewTweetWindow.h */,
|
||||||
2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */,
|
2A37F4ACFDCFA73011CA2CEA /* NewTweetWindow.m */,
|
||||||
1F364396118CBC77008198EF /* OAuth.h */,
|
|
||||||
1F364397118CBC77008198EF /* OAuth.m */,
|
|
||||||
1F77DB45118C5F1C007C7F1E /* Constants.h */,
|
1F77DB45118C5F1C007C7F1E /* Constants.h */,
|
||||||
1F77DB46118C5F1C007C7F1E /* Constants.m */,
|
1F77DB46118C5F1C007C7F1E /* Constants.m */,
|
||||||
1F36465C118DA5A7008198EF /* OAToken+WebView.h */,
|
|
||||||
1F36465D118DA5A7008198EF /* OAToken+WebView.m */,
|
|
||||||
1F618EC812DB5E6100E500D9 /* TweetModel.h */,
|
1F618EC812DB5E6100E500D9 /* TweetModel.h */,
|
||||||
1F618EC912DB5E6100E500D9 /* TweetModel.m */,
|
1F618EC912DB5E6100E500D9 /* TweetModel.m */,
|
||||||
|
1FC2549A1427D9930035D84B /* AccessToken.h */,
|
||||||
|
1FC2549B1427D9930035D84B /* AccessToken.m */,
|
||||||
);
|
);
|
||||||
name = Classes;
|
name = Classes;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -224,7 +228,7 @@
|
||||||
2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */,
|
2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */,
|
||||||
8D15AC360486D014006FF6A4 /* Twittia_2-Info.plist */,
|
8D15AC360486D014006FF6A4 /* Twittia_2-Info.plist */,
|
||||||
089C165FFE840EACC02AAC07 /* InfoPlist.strings */,
|
089C165FFE840EACC02AAC07 /* InfoPlist.strings */,
|
||||||
1DDD58280DA1D0D100B32029 /* MyDocument.xib */,
|
1DDD58280DA1D0D100B32029 /* NewTweetWindow.xib */,
|
||||||
1DDD582A0DA1D0D100B32029 /* MainMenu.xib */,
|
1DDD582A0DA1D0D100B32029 /* MainMenu.xib */,
|
||||||
1F1990E1117BD2650049BEA7 /* ReleaseNotes.html */,
|
1F1990E1117BD2650049BEA7 /* ReleaseNotes.html */,
|
||||||
1F1990DF117BD2250049BEA7 /* Appcast.xml */,
|
1F1990DF117BD2250049BEA7 /* Appcast.xml */,
|
||||||
|
@ -268,8 +272,11 @@
|
||||||
/* Begin PBXProject section */
|
/* Begin PBXProject section */
|
||||||
2A37F4A9FDCFA73011CA2CEA /* Project object */ = {
|
2A37F4A9FDCFA73011CA2CEA /* Project object */ = {
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
LastUpgradeCheck = 0450;
|
||||||
|
};
|
||||||
buildConfigurationList = C05733CB08A9546B00998B17 /* Build configuration list for PBXProject "Twittia 2" */;
|
buildConfigurationList = C05733CB08A9546B00998B17 /* Build configuration list for PBXProject "Twittia 2" */;
|
||||||
compatibilityVersion = "Xcode 3.1";
|
compatibilityVersion = "Xcode 3.2";
|
||||||
developmentRegion = English;
|
developmentRegion = English;
|
||||||
hasScannedForEncodings = 1;
|
hasScannedForEncodings = 1;
|
||||||
knownRegions = (
|
knownRegions = (
|
||||||
|
@ -292,13 +299,15 @@
|
||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
1FC2549F1427DC7F0035D84B /* Constants.js in Resources */,
|
||||||
|
1FC254951427BF150035D84B /* TwittiaOauth.js in Resources */,
|
||||||
1F2746FC12D9057600339B4F /* dsa_pub.pem in Resources */,
|
1F2746FC12D9057600339B4F /* dsa_pub.pem in Resources */,
|
||||||
1F3642EF118C8C35008198EF /* oauth.js in Resources */,
|
1F3642EF118C8C35008198EF /* oauth.js in Resources */,
|
||||||
1F3642F0118C8C35008198EF /* sha1.js in Resources */,
|
1F3642F0118C8C35008198EF /* sha1.js in Resources */,
|
||||||
1F4673FE1180F7EA006CC37C /* TwittiaCore.js in Resources */,
|
1F4673FE1180F7EA006CC37C /* TwittiaCore.js in Resources */,
|
||||||
8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */,
|
8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */,
|
||||||
8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */,
|
8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */,
|
||||||
1DDD582C0DA1D0D100B32029 /* MyDocument.xib in Resources */,
|
1DDD582C0DA1D0D100B32029 /* NewTweetWindow.xib in Resources */,
|
||||||
1DDD582D0DA1D0D100B32029 /* MainMenu.xib in Resources */,
|
1DDD582D0DA1D0D100B32029 /* MainMenu.xib in Resources */,
|
||||||
1FFA36CD1177D861006C8562 /* even-bg.png in Resources */,
|
1FFA36CD1177D861006C8562 /* even-bg.png in Resources */,
|
||||||
1F4674091180F7F3006CC37C /* jQuery-Plugins.js in Resources */,
|
1F4674091180F7F3006CC37C /* jQuery-Plugins.js in Resources */,
|
||||||
|
@ -309,6 +318,7 @@
|
||||||
1F705EA6117889FA00C85707 /* sprite-icons.png in Resources */,
|
1F705EA6117889FA00C85707 /* sprite-icons.png in Resources */,
|
||||||
1F122D49118E1DE100E83B77 /* Icon.icns in Resources */,
|
1F122D49118E1DE100E83B77 /* Icon.icns in Resources */,
|
||||||
1F98DC9E124BFFD7004289ED /* pin.png in Resources */,
|
1F98DC9E124BFFD7004289ED /* pin.png in Resources */,
|
||||||
|
1FC254941427BC050035D84B /* index_oauth.html in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -319,13 +329,12 @@
|
||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
8D15AC310486D014006FF6A4 /* MyDocument.m in Sources */,
|
1FC254A01427DFAD0035D84B /* AccessToken.m in Sources */,
|
||||||
|
8D15AC310486D014006FF6A4 /* NewTweetWindow.m in Sources */,
|
||||||
8D15AC320486D014006FF6A4 /* main.m in Sources */,
|
8D15AC320486D014006FF6A4 /* main.m in Sources */,
|
||||||
1FFA36D71177D879006C8562 /* Controller.m in Sources */,
|
1FFA36D71177D879006C8562 /* Controller.m in Sources */,
|
||||||
1FFA36D81177D879006C8562 /* ViewDelegate.m in Sources */,
|
1FFA36D81177D879006C8562 /* ViewDelegate.m in Sources */,
|
||||||
1F77DB47118C5F1C007C7F1E /* Constants.m in Sources */,
|
1F77DB47118C5F1C007C7F1E /* Constants.m in Sources */,
|
||||||
1F364398118CBC77008198EF /* OAuth.m in Sources */,
|
|
||||||
1F36465E118DA5A7008198EF /* OAToken+WebView.m in Sources */,
|
|
||||||
1F618ECA12DB5E6100E500D9 /* TweetModel.m in Sources */,
|
1F618ECA12DB5E6100E500D9 /* TweetModel.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
@ -341,12 +350,12 @@
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
1DDD58280DA1D0D100B32029 /* MyDocument.xib */ = {
|
1DDD58280DA1D0D100B32029 /* NewTweetWindow.xib */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
1DDD58290DA1D0D100B32029 /* English */,
|
1DDD58290DA1D0D100B32029 /* English */,
|
||||||
);
|
);
|
||||||
name = MyDocument.xib;
|
name = NewTweetWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
1DDD582A0DA1D0D100B32029 /* MainMenu.xib */ = {
|
1DDD582A0DA1D0D100B32029 /* MainMenu.xib */ = {
|
||||||
|
@ -372,15 +381,13 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)\"",
|
"\"$(SRCROOT)\"",
|
||||||
"\"$(SRCROOT)/../../Desktop/mpoauthconnection-read-only/build/Release\"",
|
|
||||||
"\"$(SRCROOT)/../oauth-obj-c/OAuthConsumer/build/Release\"",
|
|
||||||
);
|
);
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
|
||||||
GCC_MODEL_TUNING = G5;
|
GCC_MODEL_TUNING = G5;
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
|
@ -396,13 +403,12 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)\"",
|
"\"$(SRCROOT)\"",
|
||||||
"\"$(SRCROOT)/../../Desktop/mpoauthconnection-read-only/build/Release\"",
|
|
||||||
"\"$(SRCROOT)/../oauth-obj-c/OAuthConsumer/build/Release\"",
|
|
||||||
);
|
);
|
||||||
GCC_MODEL_TUNING = G5;
|
GCC_MODEL_TUNING = G5;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
|
@ -424,7 +430,6 @@
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.5;
|
MACOSX_DEPLOYMENT_TARGET = 10.5;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
PREBINDING = NO;
|
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
|
@ -437,7 +442,7 @@
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.5;
|
MACOSX_DEPLOYMENT_TARGET = 10.5;
|
||||||
PREBINDING = NO;
|
ONLY_ACTIVE_ARCH = NO;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
|
348
TwittiaCore.js
348
TwittiaCore.js
|
@ -6,19 +6,24 @@
|
||||||
// Licence: BSD (see attached LICENCE.txt file).
|
// Licence: BSD (see attached LICENCE.txt file).
|
||||||
//
|
//
|
||||||
|
|
||||||
//API_PATH = "http://api.twitter.com/1/";
|
|
||||||
API_PATH = "http://identi.ca/api/";
|
|
||||||
|
|
||||||
function Twittia(action) {
|
function Twittia(action) {
|
||||||
this.max_length = 100;
|
this.max_length = 100;
|
||||||
this.since_id;
|
this.since_id;
|
||||||
this.timeout = 2 * 60 * 1000;
|
this.timeout = 2 * 60 * 1000;
|
||||||
this.action = action;
|
this.action = action;
|
||||||
this.getNewData();
|
this.getNewData();
|
||||||
this.unread_mentions = 0;
|
this.unread_mentions = 0;
|
||||||
|
|
||||||
this.body = document.createElement("ol");
|
this.body = document.createElement("ol");
|
||||||
this.body.className = this.action;
|
this.body.className = this.action;
|
||||||
|
|
||||||
|
/*
|
||||||
|
if (action == "home_timeline") {
|
||||||
|
this.usernames = [];
|
||||||
|
this.getUsernames("friends");
|
||||||
|
this.getUsernames("followers");
|
||||||
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
Twittia.prototype.newStatus = function(status, supress_new_with_timeout) {
|
Twittia.prototype.newStatus = function(status, supress_new_with_timeout) {
|
||||||
|
@ -57,22 +62,13 @@ Twittia.prototype.getItem = function(status) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var template = this.getTemplate();
|
var template = this.getTemplate();
|
||||||
/*
|
|
||||||
template.item.id = "id-" + status.id_str;
|
|
||||||
template.item.onmousedown = function(e) { if(e.button == 2) {
|
|
||||||
var target = e.target;
|
|
||||||
while(target.nodeName != "LI" && target != null) {
|
|
||||||
target = target.parentNode;
|
|
||||||
}
|
|
||||||
|
|
||||||
alert(target.id);
|
|
||||||
}}*/
|
|
||||||
template.reply_to.onclick = function() { replyTo(status.user.screen_name, status.id_str); return false; }
|
template.reply_to.onclick = function() { replyTo(status.user.screen_name, status.id_str); return false; }
|
||||||
template.retweet.onclick = function() { template.retweet.className = "hidden"; _this.retweet(status.id_str, template.item); return false; }
|
template.retweet.onclick = function() { template.retweet.className = "hidden"; _this.retweet(status.id_str, template.item); return false; }
|
||||||
|
|
||||||
template.image.src = status.user.profile_image_url;
|
template.image.src = status.user.profile_image_url;
|
||||||
template.username.innerText = status.user.screen_name;
|
template.username.innerText = status.user.screen_name;
|
||||||
template.username.href = API_PATH + status.user.screen_name
|
template.username.href = WEBSITE_PATH + status.user.screen_name
|
||||||
|
|
||||||
if(original_status != null) {
|
if(original_status != null) {
|
||||||
var retweeted = document.createElement("span")
|
var retweeted = document.createElement("span")
|
||||||
|
@ -82,17 +78,17 @@ Twittia.prototype.getItem = function(status) {
|
||||||
retweeted.appendChild(retweeted_icon);
|
retweeted.appendChild(retweeted_icon);
|
||||||
var retweeted_by = document.createElement("a");
|
var retweeted_by = document.createElement("a");
|
||||||
retweeted_by.innerText = original_status.user.screen_name + " ";
|
retweeted_by.innerText = original_status.user.screen_name + " ";
|
||||||
retweeted_by.href = API_PATH + original_status.user.screen_name;
|
retweeted_by.href = WEBSITE_PATH + original_status.user.screen_name;
|
||||||
retweeted.appendChild(document.createTextNode("@"));
|
retweeted.appendChild(document.createTextNode("@"));
|
||||||
retweeted.appendChild(retweeted_by);
|
retweeted.appendChild(retweeted_by);
|
||||||
template.in_reply.parentNode.parentNode.insertBefore(retweeted, template.in_reply.parent);
|
template.in_reply.parentNode.parentNode.insertBefore(retweeted, template.in_reply.parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(status.in_reply_to_status_id != null) template.in_reply.innerText = status.in_reply_to_screen_name;
|
if(status.in_reply_to_status_id_str != null) template.in_reply.innerText = status.in_reply_to_screen_name;
|
||||||
else template.in_reply.parentNode.className = "hidden";
|
else template.in_reply.parentNode.className = "hidden";
|
||||||
template.in_reply.href = API_PATH + status.in_reply_to_screen_name + "/status/" + status.in_reply_to_status_id;
|
template.in_reply.href = WEBSITE_PATH + status.in_reply_to_screen_name + "/status/" + status.in_reply_to_status_id_str;
|
||||||
|
|
||||||
template.message.innerHTML = replaceTwitterLinks(replaceURLWithHTMLLinks(status.text));
|
template.message.innerHTML = replaceTwitterLinks(replaceURLWithHTMLLinks(status.text, status.entities, template.message));
|
||||||
|
|
||||||
var time = document.createElement("abbr");
|
var time = document.createElement("abbr");
|
||||||
time.innerText = status.created_at;
|
time.innerText = status.created_at;
|
||||||
|
@ -100,7 +96,7 @@ Twittia.prototype.getItem = function(status) {
|
||||||
time.className = "timeago";
|
time.className = "timeago";
|
||||||
$(time).timeago();
|
$(time).timeago();
|
||||||
template.ago.appendChild(time);
|
template.ago.appendChild(time);
|
||||||
template.ago.href = API_PATH + status.user.screen_name + "/status/" + status.id_str;
|
template.ago.href = WEBSITE_PATH + status.user.screen_name + "/status/" + status.id_str;
|
||||||
|
|
||||||
// {"type":"Point","coordinates":[57.10803113,12.25854746]}
|
// {"type":"Point","coordinates":[57.10803113,12.25854746]}
|
||||||
if (status.geo && status.geo.type == "Point") {
|
if (status.geo && status.geo.type == "Point") {
|
||||||
|
@ -109,6 +105,48 @@ Twittia.prototype.getItem = function(status) {
|
||||||
}
|
}
|
||||||
|
|
||||||
template.source.innerHTML = status.source;
|
template.source.innerHTML = status.source;
|
||||||
|
|
||||||
|
if(status.entities.media) {
|
||||||
|
|
||||||
|
for(var i=0; i<status.entities.media.length; i++) {
|
||||||
|
var media = status.entities.media[i];
|
||||||
|
|
||||||
|
if(media.type == "photo") {
|
||||||
|
var a = document.createElement("a");
|
||||||
|
a.href = media.media_url;
|
||||||
|
template.message.innerHTML = template.message.innerHTML.replace(media.url, "");
|
||||||
|
alert(media.url)
|
||||||
|
|
||||||
|
var img = document.createElement("img");
|
||||||
|
img.className = "photo";
|
||||||
|
img.src = media.media_url + ":small";
|
||||||
|
|
||||||
|
a.appendChild(img);
|
||||||
|
template.images.appendChild(a);
|
||||||
|
|
||||||
|
} else if(media.type == "twittia_youtube") {
|
||||||
|
var a = document.createElement("a");
|
||||||
|
a.href = media.url;
|
||||||
|
|
||||||
|
var img = document.createElement("img");
|
||||||
|
img.className = "video";
|
||||||
|
img.src = media.media_url;
|
||||||
|
|
||||||
|
a.appendChild(img);
|
||||||
|
template.images.appendChild(a);
|
||||||
|
} else if(media.type == "twittia_photo") {
|
||||||
|
var a = document.createElement("a");
|
||||||
|
a.href = media.url;
|
||||||
|
|
||||||
|
var img = document.createElement("img");
|
||||||
|
img.className = "photo";
|
||||||
|
img.src = media.media_url;
|
||||||
|
|
||||||
|
a.appendChild(img);
|
||||||
|
template.images.appendChild(a);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return template.item;
|
return template.item;
|
||||||
}
|
}
|
||||||
|
@ -179,6 +217,10 @@ Twittia.prototype.getTemplate = function() {
|
||||||
var message = document.createElement("p");
|
var message = document.createElement("p");
|
||||||
message.className = "message";
|
message.className = "message";
|
||||||
data.appendChild(message);
|
data.appendChild(message);
|
||||||
|
|
||||||
|
var images = document.createElement("p")
|
||||||
|
images.className = "images";
|
||||||
|
data.appendChild(images);
|
||||||
|
|
||||||
var date = message.cloneNode();
|
var date = message.cloneNode();
|
||||||
date.className = "date";
|
date.className = "date";
|
||||||
|
@ -204,33 +246,33 @@ Twittia.prototype.getTemplate = function() {
|
||||||
message: message,
|
message: message,
|
||||||
ago: ago,
|
ago: ago,
|
||||||
source: source,
|
source: source,
|
||||||
geo: geo
|
geo: geo,
|
||||||
|
images: images
|
||||||
}
|
}
|
||||||
|
|
||||||
return jQuery.extend(true, {}, this.template);
|
return jQuery.extend(true, {}, this.template);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Twittia.prototype.getNewData = function(supress_new_with_timeout) {
|
Twittia.prototype.getNewData = function(supress_new_with_timeout) {
|
||||||
|
|
||||||
var url = API_PATH + "statuses/" + this.action + ".json"
|
var url = API_PATH + "statuses/" + this.action + ".json"
|
||||||
var parameters = {count: this.max_length}
|
var parameters = {count: this.max_length, include_entities: "true"}
|
||||||
if(this.since_id) parameters.since_id = this.since_id
|
if(this.since_id) parameters.since_id = this.since_id
|
||||||
|
|
||||||
|
|
||||||
var url2 = "?count=" + this.max_length;
|
var url2 = "?count=" + this.max_length + "&include_entities=true";
|
||||||
if(this.since_id) url2 += "&since_id=" + this.since_id;
|
if(this.since_id) url2 += "&since_id=" + this.since_id;
|
||||||
var _this = this;
|
var _this = this;
|
||||||
|
|
||||||
var message = { method:"GET" , action:url, parameters: parameters };
|
var message = { method:"GET" , action:url, parameters: parameters };
|
||||||
|
|
||||||
OAuth.completeRequest(message,
|
|
||||||
{ consumerKey : controller.oauth.consumerToken.key
|
|
||||||
, consumerSecret: controller.oauth.consumerToken.secret
|
|
||||||
, token : controller.oauth.accessToken.key
|
|
||||||
, tokenSecret : controller.oauth.accessToken.secret
|
|
||||||
});
|
|
||||||
|
|
||||||
|
OAuth.completeRequest(message,
|
||||||
|
{ consumerKey : OAUTH_CONSUMER_KEY
|
||||||
|
, consumerSecret: OAUTH_CONSUMER_SECRET
|
||||||
|
, token : controller.accessToken.accessToken()
|
||||||
|
, tokenSecret : controller.accessToken.secret()
|
||||||
|
});
|
||||||
|
|
||||||
$.ajax(
|
$.ajax(
|
||||||
{ beforeSend: function(xhr) {
|
{ beforeSend: function(xhr) {
|
||||||
xhr.setRequestHeader("Authorization", OAuth.getAuthorizationHeader("", message.parameters));
|
xhr.setRequestHeader("Authorization", OAuth.getAuthorizationHeader("", message.parameters));
|
||||||
|
@ -249,7 +291,7 @@ Twittia.prototype.getNewData = function(supress_new_with_timeout) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
Twittia.prototype.sendNewTweet = function(tweet, in_reply_to_status_id) {
|
Twittia.prototype.sendNewTweet = function(tweet, in_reply_to_status_id) {
|
||||||
|
|
||||||
var url = API_PATH + "statuses/update.json";
|
var url = API_PATH + "statuses/update.json";
|
||||||
|
@ -264,10 +306,10 @@ Twittia.prototype.sendNewTweet = function(tweet, in_reply_to_status_id) {
|
||||||
var message = { method:"POST" , action:url, parameters:parameters };
|
var message = { method:"POST" , action:url, parameters:parameters };
|
||||||
|
|
||||||
OAuth.completeRequest(message,
|
OAuth.completeRequest(message,
|
||||||
{ consumerKey : controller.oauth.consumerToken.key
|
{ consumerKey : OAUTH_CONSUMER_KEY
|
||||||
, consumerSecret: controller.oauth.consumerToken.secret
|
, consumerSecret: OAUTH_CONSUMER_SECRET
|
||||||
, token : controller.oauth.accessToken.key
|
, token : controller.accessToken.accessToken()
|
||||||
, tokenSecret : controller.oauth.accessToken.secret
|
, tokenSecret : controller.accessToken.secret()
|
||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
@ -287,7 +329,7 @@ Twittia.prototype.sendNewTweet = function(tweet, in_reply_to_status_id) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
Twittia.prototype.retweet = function(status_id, item) {
|
Twittia.prototype.retweet = function(status_id, item) {
|
||||||
var url = API_PATH + "statuses/retweet/" + status_id + ".json";
|
var url = API_PATH + "statuses/retweet/" + status_id + ".json";
|
||||||
|
@ -296,10 +338,10 @@ Twittia.prototype.retweet = function(status_id, item) {
|
||||||
var message = { method:"POST" , action:url };
|
var message = { method:"POST" , action:url };
|
||||||
|
|
||||||
OAuth.completeRequest(message,
|
OAuth.completeRequest(message,
|
||||||
{ consumerKey : controller.oauth.consumerToken.key
|
{ consumerKey : OAUTH_CONSUMER_KEY
|
||||||
, consumerSecret: controller.oauth.consumerToken.secret
|
, consumerSecret: OAUTH_CONSUMER_SECRET
|
||||||
, token : controller.oauth.accessToken.key
|
, token : controller.accessToken.accessToken()
|
||||||
, tokenSecret : controller.oauth.accessToken.secret
|
, tokenSecret : controller.accessToken.secret()
|
||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
@ -319,32 +361,149 @@ Twittia.prototype.retweet = function(status_id, item) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Twittia.prototype.authorizationHeader = function(method, url, params) {
|
Twittia.prototype.getUsernames = function(type, cursor) {
|
||||||
if(params == undefined)
|
cursor = typeof cursor == "undefined" ? -1 : cursor;
|
||||||
params = '';
|
|
||||||
if(method == undefined)
|
var url = API_PATH + type + "/ids.json";
|
||||||
method = 'GET';
|
var _this = this;
|
||||||
var timestamp = OAuth.timestamp();
|
var parameters = { stringify_ids: "true", cursor:cursor };
|
||||||
var nonce = OAuth.nonce(11);
|
|
||||||
var accessor = { consumerSecret: controller.oauth.consumerToken.secret, tokenSecret: controller.oauth.accessToken.secret };
|
|
||||||
|
|
||||||
var message = {method: method, action: url, parameters: OAuth.decodeForm(params)};
|
var message = { method:"GET" , action:url, parameters:parameters };
|
||||||
message.parameters.push(['oauth_consumer_key',controller.oauth.consumerToken.key]);
|
|
||||||
message.parameters.push(['oauth_nonce',nonce]);
|
OAuth.completeRequest(message,
|
||||||
message.parameters.push(['oauth_signature_method','HMAC-SHA1']);
|
{ consumerKey : OAUTH_CONSUMER_KEY
|
||||||
message.parameters.push(['oauth_timestamp',timestamp]);
|
, consumerSecret: OAUTH_CONSUMER_SECRET
|
||||||
message.parameters.push(['oauth_token', controller.oauth.accessToken.key]);
|
, token : controller.accessToken.accessToken()
|
||||||
message.parameters.push(['oauth_version','1.0']);
|
, tokenSecret : controller.accessToken.secret()
|
||||||
message.parameters.sort()
|
});
|
||||||
|
|
||||||
OAuth.SignatureMethod.sign(message, accessor);
|
$.ajax({
|
||||||
|
beforeSend: function(xhr) {
|
||||||
return OAuth.getAuthorizationHeader("", message.parameters);
|
xhr.setRequestHeader("Authorization", OAuth.getAuthorizationHeader("", message.parameters));
|
||||||
|
},
|
||||||
|
url: url + "?stringify_ids=true&cursor=" + cursor ,
|
||||||
|
type: 'GET',
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(data) {
|
||||||
|
for (var i=0; i < data.ids.length; i = i + 100) {
|
||||||
|
_this.getUsernamesFromIds(data.ids.slice(i, i + 100));
|
||||||
|
}
|
||||||
|
if (data.next_cursor > 0) {
|
||||||
|
_this.getUsernames(type, data.next_cursor);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error:function (xhr, ajaxOptions, thrownError) {
|
||||||
|
alert(xhr.status);
|
||||||
|
alert(thrownError);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function replaceURLWithHTMLLinks(text) {
|
Twittia.prototype.getUsernamesFromIds = function(ids) {
|
||||||
var exp = /(\b(https?|ftp|file):\/\/\S+)/ig;
|
|
||||||
return text.replace(exp,"<a href='$1'>$1</a>");
|
var url = API_PATH + "users/lookup.json";
|
||||||
|
var _this = this;
|
||||||
|
var parameters = { user_id:ids.join(",") };
|
||||||
|
var message = { method:"GET" , action:url, parameters:parameters };
|
||||||
|
|
||||||
|
OAuth.completeRequest(message,
|
||||||
|
{ consumerKey : OAUTH_CONSUMER_KEY
|
||||||
|
, consumerSecret: OAUTH_CONSUMER_SECRET
|
||||||
|
, token : controller.accessToken.accessToken()
|
||||||
|
, tokenSecret : controller.accessToken.secret()
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
beforeSend: function(xhr) {
|
||||||
|
xhr.setRequestHeader("Authorization", OAuth.getAuthorizationHeader("", message.parameters));
|
||||||
|
},
|
||||||
|
url: url + "?user_id=" + ids.join(","),
|
||||||
|
type: 'GET',
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(data) {
|
||||||
|
for (var i=0; i < data.length; i++) {
|
||||||
|
_this.usernames.push(data[i].screen_name);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error:function (xhr, ajaxOptions, thrownError) {
|
||||||
|
alert(xhr.status);
|
||||||
|
alert(thrownError);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Twittia.prototype.findUsernamesFor = function(query) {
|
||||||
|
var ret = [];
|
||||||
|
for (var i=0; i < this.usernames.length; i++) {
|
||||||
|
if(this.usernames[i].startsWith(query)) {
|
||||||
|
ret.push(this.usernames[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Helper functions */
|
||||||
|
|
||||||
|
function replaceURLWithHTMLLinks(text, entities, message_node) {
|
||||||
|
var urls = entities.urls;
|
||||||
|
|
||||||
|
for(var i = 0; i<urls.length; i++) {
|
||||||
|
|
||||||
|
var original = urls[i].url;
|
||||||
|
var replace = urls[i].expanded_url == null ? original : urls[i].expanded_url;
|
||||||
|
|
||||||
|
if(replace.startsWith("http://bit.ly/") || replace.startsWith("http://j.mp/")) {
|
||||||
|
replaceShortened(replace, message_node);
|
||||||
|
}
|
||||||
|
|
||||||
|
text = text.replace(original, "<a href='" + original + "'>" + replace + "</a>");
|
||||||
|
|
||||||
|
var media = null;
|
||||||
|
|
||||||
|
// add thumbnail
|
||||||
|
if(replace.startsWith("http://youtube.com/") || replace.startsWith("http://www.youtube.com/")) {
|
||||||
|
var v = getUrlVars(replace)["v"];
|
||||||
|
if (v) {
|
||||||
|
media = {
|
||||||
|
type: "twittia_youtube",
|
||||||
|
url: original,
|
||||||
|
media_url: "http://img.youtube.com/vi/" + v + "/1.jpg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (replace.startsWith("http://twitpic.com/")) {
|
||||||
|
media = {
|
||||||
|
type: "twittia_photo",
|
||||||
|
url: original,
|
||||||
|
media_url: "http://twitpic.com/show/mini/" + replace.substring("http://twitpic.com/".length)
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (replace.startsWith("http://yfrog")) {
|
||||||
|
media = {
|
||||||
|
type: "twittia_photo",
|
||||||
|
url: original,
|
||||||
|
media_url: replace + ":small"
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (replace.startsWith("http://instagr.am/p/") || replace.startsWith("http://instagram.com/p/")) {
|
||||||
|
media = {
|
||||||
|
type: "twittia_photo",
|
||||||
|
url: original,
|
||||||
|
media_url: replace + "media?size=t"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(media) {
|
||||||
|
if(entities.media) {
|
||||||
|
entities.media.push(media);
|
||||||
|
} else {
|
||||||
|
entities.media = [media];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
function replaceTwitterLinks(text) {
|
function replaceTwitterLinks(text) {
|
||||||
|
@ -365,5 +524,50 @@ function loadPlugin(url) {
|
||||||
document.getElementsByTagName("head")[0].appendChild(plugin);
|
document.getElementsByTagName("head")[0].appendChild(plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String.prototype.startsWith = function(prefix) {
|
||||||
|
return this.indexOf(prefix) === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
String.prototype.endsWith = function(suffix) {
|
||||||
|
return this.match(suffix+"$") == suffix;
|
||||||
|
};
|
||||||
|
|
||||||
|
function getUrlVars(url)
|
||||||
|
{
|
||||||
|
var vars = [], hash;
|
||||||
|
if(url.indexOf("#") > -1) url = url.slice(0, url.indexOf("#"));
|
||||||
|
var hashes = url.slice(url.indexOf('?') + 1).split('&');
|
||||||
|
for(var i = 0; i < hashes.length; i++)
|
||||||
|
{
|
||||||
|
hash = hashes[i].split('=');
|
||||||
|
vars.push(hash[0]);
|
||||||
|
vars[hash[0]] = hash[1];
|
||||||
|
}
|
||||||
|
return vars;
|
||||||
|
}
|
||||||
|
|
||||||
|
function replaceShortened(url, message_node) {
|
||||||
|
var api = "http://api.bitly.com";
|
||||||
|
if(url.startsWith("http://j.mp/")) {
|
||||||
|
api = "http://api.j.mp";
|
||||||
|
}
|
||||||
|
|
||||||
|
var api_url = api + "/v3/expand?format=json&apiKey=R_4fc2a1aa461d076556016390fa6400f6&login=twittia&shortUrl=" + url;
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: api_url,
|
||||||
|
success: function(data) {
|
||||||
|
var new_url = data.data.expand[0].long_url;
|
||||||
|
if (new_url) {
|
||||||
|
var regex = new RegExp(url, "g");
|
||||||
|
message_node.innerHTML = message_node.innerHTML.replace(regex, new_url);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error:function (xhr, ajaxOptions, thrownError) {
|
||||||
|
alert(xhr.status);
|
||||||
|
alert(thrownError);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
var twittia_instance;
|
var twittia_instance;
|
||||||
|
|
109
TwittiaOauth.js
Normal file
109
TwittiaOauth.js
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
//
|
||||||
|
// TwittiaOauth.js
|
||||||
|
// Twittia 2
|
||||||
|
//
|
||||||
|
// Created by Jeena on 19.09.11.
|
||||||
|
// Licence: BSD (see attached LICENCE.txt file).
|
||||||
|
//
|
||||||
|
|
||||||
|
function TwittiaOauth() {
|
||||||
|
this.requestAToken();
|
||||||
|
}
|
||||||
|
|
||||||
|
TwittiaOauth.prototype.requestAToken = function() {
|
||||||
|
var url = OAUTH_REQUEST_TOKEN_URL;
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
var message = { method:"POST" , action:url };
|
||||||
|
|
||||||
|
OAuth.completeRequest(message,
|
||||||
|
{ consumerKey : OAUTH_CONSUMER_KEY
|
||||||
|
, consumerSecret: OAUTH_CONSUMER_SECRET
|
||||||
|
//, token : controller.oauth.accessToken.key
|
||||||
|
//, tokenSecret : controller.oauth.accessToken.secret
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
beforeSend: function(xhr) {
|
||||||
|
xhr.setRequestHeader("Authorization", OAuth.getAuthorizationHeader("", message.parameters));
|
||||||
|
},
|
||||||
|
url: url,
|
||||||
|
type: 'POST',
|
||||||
|
dataType: 'text',
|
||||||
|
success: function(data) {
|
||||||
|
_this.requestTokenTicketFinished(data);
|
||||||
|
},
|
||||||
|
error:function (xhr, ajaxOptions, thrownError) {
|
||||||
|
alert(xhr.statusText);
|
||||||
|
alert(ajaxOptions);
|
||||||
|
alert(thrownError);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
TwittiaOauth.prototype.requestTokenTicketFinished = function(data) {
|
||||||
|
controller.openURL_(OAUTH_USER_AUTHORIZATION_URL + "?" + data);
|
||||||
|
}
|
||||||
|
|
||||||
|
TwittiaOauth.prototype.requestAccessToken = function(responseBody) {
|
||||||
|
// "twittia://oauth_token?oauth_token=jCcf7ClzJMbE4coZdONi467OAQxRGOBZJsuopG8C8&oauth_verifier=BK2ZkAIz51lqI4qta8MnKc280GyDLy0OQBpdsEmjT40"
|
||||||
|
|
||||||
|
var urlVars = getUrlVars(responseBody);
|
||||||
|
|
||||||
|
var url = OAUTH_ACCESS_TOKEN_URL;
|
||||||
|
var _this = this;
|
||||||
|
var accessTokenKey = getUrlVars(responseBody)
|
||||||
|
|
||||||
|
var message = { method:"POST" , action:url };
|
||||||
|
|
||||||
|
OAuth.completeRequest(message,
|
||||||
|
{ consumerKey : OAUTH_CONSUMER_KEY
|
||||||
|
, consumerSecret: OAUTH_CONSUMER_SECRET
|
||||||
|
, token : urlVars["oauth_token"]
|
||||||
|
, tokenSecret : urlVars["oauth_verifier"]
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
beforeSend: function(xhr) {
|
||||||
|
xhr.setRequestHeader("Authorization", OAuth.getAuthorizationHeader("", message.parameters));
|
||||||
|
},
|
||||||
|
url: url,
|
||||||
|
type: 'POST',
|
||||||
|
dataType: 'text',
|
||||||
|
success: function(data) {
|
||||||
|
_this.requestAccessTokenTicketFinished(data);
|
||||||
|
},
|
||||||
|
error:function (xhr, ajaxOptions, thrownError) {
|
||||||
|
alert(xhr.statusText);
|
||||||
|
alert(ajaxOptions);
|
||||||
|
alert(thrownError);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
TwittiaOauth.prototype.requestAccessTokenTicketFinished = function(responseBody) {
|
||||||
|
var urlVars = getUrlVars(responseBody);
|
||||||
|
controller.storeAccessToken_secret_userId_andScreenName_(
|
||||||
|
urlVars["oauth_token"],
|
||||||
|
urlVars["oauth_token_secret"],
|
||||||
|
urlVars["user_id"],
|
||||||
|
urlVars["screen_name"]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getUrlVars(url)
|
||||||
|
{
|
||||||
|
var vars = [], hash;
|
||||||
|
if(url.indexOf("#") > -1) url = url.slice(0, url.indexOf("#"));
|
||||||
|
var hashes = url.slice(url.indexOf('?') + 1).split('&');
|
||||||
|
for(var i = 0; i < hashes.length; i++)
|
||||||
|
{
|
||||||
|
hash = hashes[i].split('=');
|
||||||
|
vars.push(hash[0]);
|
||||||
|
vars[hash[0]] = hash[1];
|
||||||
|
}
|
||||||
|
return vars;
|
||||||
|
}
|
||||||
|
|
||||||
|
var twittia_oauth;
|
|
@ -22,7 +22,7 @@
|
||||||
<key>CFBundleTypeRole</key>
|
<key>CFBundleTypeRole</key>
|
||||||
<string>Editor</string>
|
<string>Editor</string>
|
||||||
<key>NSDocumentClass</key>
|
<key>NSDocumentClass</key>
|
||||||
<string>MyDocument</string>
|
<string>NewTweetWindow</string>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>2.3.1</string>
|
<string>2.4.0</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>2.3.2</string>
|
<string>2.4.0</string>
|
||||||
<key>LSApplicationCategoryType</key>
|
<key>LSApplicationCategoryType</key>
|
||||||
<string>public.app-category.lifestyle</string>
|
<string>public.app-category.lifestyle</string>
|
||||||
<key>LSMinimumSystemVersion</key>
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
|
|
@ -13,9 +13,11 @@
|
||||||
@interface ViewDelegate : NSObject {
|
@interface ViewDelegate : NSObject {
|
||||||
WebView *timelineView;
|
WebView *timelineView;
|
||||||
WebView *mentionsView;
|
WebView *mentionsView;
|
||||||
|
WebView *twittiaOauthView;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property (nonatomic, assign) WebView *timelineView;
|
@property (nonatomic, assign) WebView *timelineView;
|
||||||
@property (nonatomic, assign) WebView *mentionsView;
|
@property (nonatomic, assign) WebView *mentionsView;
|
||||||
|
@property (nonatomic, assign) WebView *twittiaOauthView;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -11,13 +11,18 @@
|
||||||
|
|
||||||
@implementation ViewDelegate
|
@implementation ViewDelegate
|
||||||
|
|
||||||
@synthesize timelineView, mentionsView;
|
@synthesize timelineView, mentionsView, twittiaOauthView;
|
||||||
|
|
||||||
- (void)webView:(WebView *)sender addMessageToConsole:(NSDictionary *)message;{
|
- (void)webView:(WebView *)sender addMessageToConsole:(NSDictionary *)message;{
|
||||||
|
|
||||||
if (![message isKindOfClass:[NSDictionary class]]) return;
|
if (![message isKindOfClass:[NSDictionary class]]) return;
|
||||||
|
|
||||||
NSLog(@"js: %@:%@: %@",
|
NSString *viewName = @"TimelineView";
|
||||||
|
if (sender == mentionsView) viewName = @"MentionsView";
|
||||||
|
if (sender == twittiaOauthView) viewName = @"TwittiaOauthView";
|
||||||
|
|
||||||
|
NSLog(@"js<%@>: %@:%@: %@",
|
||||||
|
viewName,
|
||||||
[[message objectForKey:@"sourceURL"] lastPathComponent],
|
[[message objectForKey:@"sourceURL"] lastPathComponent],
|
||||||
[message objectForKey:@"lineNumber"],
|
[message objectForKey:@"lineNumber"],
|
||||||
[message objectForKey:@"message"]
|
[message objectForKey:@"message"]
|
||||||
|
@ -25,7 +30,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
|
- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
|
||||||
NSLog(@"jsa: %@", message);
|
NSString *viewName = @"TimelineView";
|
||||||
|
if (sender == mentionsView) viewName = @"MentionsView";
|
||||||
|
if (sender == twittiaOauthView) viewName = @"TwittiaOauthView";
|
||||||
|
|
||||||
|
NSLog(@"jsa<%@>: %@", viewName, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)webView:(WebView *)sender decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id <WebPolicyDecisionListener>)listener {
|
- (void)webView:(WebView *)sender decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id <WebPolicyDecisionListener>)listener {
|
||||||
|
@ -34,18 +43,26 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame {
|
- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame {
|
||||||
NSString *action = @"home_timeline";
|
|
||||||
NSString *delay = @"1";
|
|
||||||
|
|
||||||
if (sender == mentionsView) {
|
if (sender == twittiaOauthView) {
|
||||||
action = @"mentions";
|
|
||||||
delay = @"1000";
|
[twittiaOauthView stringByEvaluatingJavaScriptFromString:@"setTimeout( function() { twittia_oauth = new TwittiaOauth(); }, 2);"];
|
||||||
}
|
|
||||||
|
} else {
|
||||||
[sender stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:
|
|
||||||
@"setTimeout(function(){ twittia_instance = new Twittia('%@'); \
|
NSString *action = @"home_timeline";
|
||||||
document.getElementsByTagName('body')[0].appendChild(twittia_instance.body); \
|
NSString *delay = @"1";
|
||||||
setTimeout(function() { loadPlugin(controller.pluginURL()) }, 1); }, %@);", action, delay]];
|
|
||||||
|
if (sender == mentionsView) {
|
||||||
|
action = @"mentions";
|
||||||
|
delay = @"1000";
|
||||||
|
}
|
||||||
|
|
||||||
|
[sender stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:
|
||||||
|
@"setTimeout(function(){ twittia_instance = new Twittia('%@'); \
|
||||||
|
document.getElementsByTagName('body')[0].appendChild(twittia_instance.body); \
|
||||||
|
setTimeout(function() { loadPlugin(controller.pluginURL()) }, 1); }, %@);", action, delay]];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
14
default.css
14
default.css
|
@ -112,6 +112,20 @@ p {
|
||||||
height: 75px;
|
height: 75px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.images:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.images {
|
||||||
|
padding-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.images img {
|
||||||
|
border-radius: 5px;
|
||||||
|
max-height: 75px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
.delete {
|
.delete {
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
color: #555;
|
color: #555;
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
<script type="text/javascript" src="jQuery-Plugins.js"></script>
|
<script type="text/javascript" src="jQuery-Plugins.js"></script>
|
||||||
<script type="text/javascript" src="sha1.js"></script>
|
<script type="text/javascript" src="sha1.js"></script>
|
||||||
<script type="text/javascript" src="oauth.js"></script>
|
<script type="text/javascript" src="oauth.js"></script>
|
||||||
|
<script type="text/javascript" src="Constants.js"></script>
|
||||||
<script type="text/javascript" src="TwittiaCore.js"></script>
|
<script type="text/javascript" src="TwittiaCore.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
15
index_oauth.html
Normal file
15
index_oauth.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Twittia</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
<script type="text/javascript" src="jQuery.js"></script>
|
||||||
|
<script type="text/javascript" src="jQuery-Plugins.js"></script>
|
||||||
|
<script type="text/javascript" src="sha1.js"></script>
|
||||||
|
<script type="text/javascript" src="oauth.js"></script>
|
||||||
|
<script type="text/javascript" src="Constants.js"></script>
|
||||||
|
<script type="text/javascript" src="TwittiaOauth.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
Reference in a new issue