Skip to content

Commit

Permalink
Big 2.1.0 update
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisshiplet committed Nov 9, 2013
1 parent c41fbb7 commit 5f2dd05
Show file tree
Hide file tree
Showing 21 changed files with 374 additions and 206 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Xcode
.DS_Store
Release
*/build/*
*.pbxuser
!default.pbxuser
Expand All @@ -14,4 +15,4 @@ profile
*.moved-aside
DerivedData
.idea/
*.hmap
*.hmap
13 changes: 10 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
btcbar
======

A tiny status bar widget for OS X that displays the latest USD/BTC spot price from MtGox, Bitstamp, and Coinbase.
A tiny status bar widget for OS X that displays the latest USD/BTC spot price from BitStamp, BTCe, Coinbase, and MtGox.

## Screenshot

Expand All @@ -19,14 +19,21 @@ Simply place btcbar.app in your `/Applications` folder, and optionally add it to

## Download

The current version of btcbar (2.0.0) can be downloaded here:
The current version of btcbar (2.1.0) can be downloaded here:

https://github.com/nearengine/btcbar/releases/download/v2.0.0/btcbar_2_0_0.zip
https://github.com/nearengine/btcbar/releases/download/v2.1.0/btcbar_2_1_0.zip

It requires OS X 10.7+ and a 64-bit processor.

## Changelog

### 2.1.0

* New BTCe/USD ticker
* Manually refreshes when a ticker is clicked
* Decreased disk io/cpu time/power usage
* Greatly increased modularity (tickers now have a protocol, menu is dynamically generated)

### 2.0.0

Adds Bitstamp and Coinbase, and a little better backend abstraction so it will be easier to add future tickers.
Expand Down
Binary file removed Release/btcbar_1_0_0.zip
Binary file not shown.
Binary file removed Release/btcbar_2_0_0.zip
Binary file not shown.
Binary file modified Resources/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Resources/screenshot2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
56 changes: 32 additions & 24 deletions btcbar.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@
830CE09B171B6C3E00DDD525 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 830CE099171B6C3E00DDD525 /* InfoPlist.strings */; };
830CE09D171B6C3E00DDD525 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 830CE09C171B6C3E00DDD525 /* main.m */; };
830CE0A4171B6C3E00DDD525 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 830CE0A3171B6C3E00DDD525 /* AppDelegate.m */; };
830CE0A7171B6C3E00DDD525 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 830CE0A5171B6C3E00DDD525 /* MainMenu.xib */; };
830CE0E6171B914300DDD525 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 830CE0E5171B914300DDD525 /* Icon.icns */; };
830CE101171B9A5A00DDD525 /* btclogoAlternate.png in Resources */ = {isa = PBXBuildFile; fileRef = 830CE0FD171B9A5A00DDD525 /* btclogoAlternate.png */; };
830CE102171B9A5A00DDD525 /* btclogo.png in Resources */ = {isa = PBXBuildFile; fileRef = 830CE0FE171B9A5A00DDD525 /* btclogo.png */; };
830CE103171B9A5A00DDD525 /* btclogoAlternate@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 830CE0FF171B9A5A00DDD525 /* btclogoAlternate@2x.png */; };
830CE104171B9A5A00DDD525 /* btclogo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 830CE100171B9A5A00DDD525 /* btclogo@2x.png */; };
831EB77C18133CF900AE6C10 /* MtGoxFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 831EB77B18133CF900AE6C10 /* MtGoxFetcher.m */; };
831EB77C18133CF900AE6C10 /* MtGoxUSDFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 831EB77B18133CF900AE6C10 /* MtGoxUSDFetcher.m */; };
838F429B182E639F00B4FC58 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 838F429A182E639F00B4FC58 /* MainMenu.xib */; };
83A7942D1813742500BB3953 /* BitStampUSDFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 83A7942C1813742500BB3953 /* BitStampUSDFetcher.m */; };
83A79430181385DC00BB3953 /* CoinbaseUSDFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 83A7942F181385DC00BB3953 /* CoinbaseUSDFetcher.m */; };
83CD78D6182E66E50071F27A /* BTCeUSDFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CD78D5182E66E50071F27A /* BTCeUSDFetcher.m */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
Expand All @@ -34,19 +35,22 @@
830CE09E171B6C3E00DDD525 /* btcbar-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "btcbar-Prefix.pch"; sourceTree = "<group>"; };
830CE0A2171B6C3E00DDD525 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
830CE0A3171B6C3E00DDD525 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
830CE0A6171B6C3E00DDD525 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
830CE0AE171B6C3F00DDD525 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
830CE0E5171B914300DDD525 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = "<group>"; };
830CE0FD171B9A5A00DDD525 /* btclogoAlternate.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = btclogoAlternate.png; sourceTree = "<group>"; };
830CE0FE171B9A5A00DDD525 /* btclogo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = btclogo.png; sourceTree = "<group>"; };
830CE0FF171B9A5A00DDD525 /* btclogoAlternate@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btclogoAlternate@2x.png"; sourceTree = "<group>"; };
830CE100171B9A5A00DDD525 /* btclogo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btclogo@2x.png"; sourceTree = "<group>"; };
831EB77A18133CF900AE6C10 /* MtGoxFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MtGoxFetcher.h; sourceTree = "<group>"; };
831EB77B18133CF900AE6C10 /* MtGoxFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MtGoxFetcher.m; sourceTree = "<group>"; };
831EB77A18133CF900AE6C10 /* MtGoxUSDFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MtGoxUSDFetcher.h; sourceTree = "<group>"; };
831EB77B18133CF900AE6C10 /* MtGoxUSDFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MtGoxUSDFetcher.m; sourceTree = "<group>"; };
838F4296182E2F6E00B4FC58 /* Fetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Fetcher.h; sourceTree = "<group>"; };
838F429A182E639F00B4FC58 /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = "<group>"; };
83A7942B1813742500BB3953 /* BitStampUSDFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitStampUSDFetcher.h; sourceTree = "<group>"; };
83A7942C1813742500BB3953 /* BitStampUSDFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BitStampUSDFetcher.m; sourceTree = "<group>"; };
83A7942E181385DC00BB3953 /* CoinbaseUSDFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoinbaseUSDFetcher.h; sourceTree = "<group>"; };
83A7942F181385DC00BB3953 /* CoinbaseUSDFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CoinbaseUSDFetcher.m; sourceTree = "<group>"; };
83CD78D4182E66E50071F27A /* BTCeUSDFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTCeUSDFetcher.h; sourceTree = "<group>"; };
83CD78D5182E66E50071F27A /* BTCeUSDFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTCeUSDFetcher.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -104,15 +108,10 @@
children = (
830CE0C4171B714E00DDD525 /* Icons */,
830CE097171B6C3E00DDD525 /* Supporting Files */,
830CE0A5171B6C3E00DDD525 /* MainMenu.xib */,
838F429A182E639F00B4FC58 /* MainMenu.xib */,
830CE0A2171B6C3E00DDD525 /* AppDelegate.h */,
830CE0A3171B6C3E00DDD525 /* AppDelegate.m */,
83A7942E181385DC00BB3953 /* CoinbaseUSDFetcher.h */,
83A7942F181385DC00BB3953 /* CoinbaseUSDFetcher.m */,
831EB77A18133CF900AE6C10 /* MtGoxFetcher.h */,
831EB77B18133CF900AE6C10 /* MtGoxFetcher.m */,
83A7942B1813742500BB3953 /* BitStampUSDFetcher.h */,
83A7942C1813742500BB3953 /* BitStampUSDFetcher.m */,
838F4297182E5A5000B4FC58 /* Fetchers */,
);
path = btcbar;
sourceTree = "<group>";
Expand All @@ -139,6 +138,22 @@
name = Icons;
sourceTree = "<group>";
};
838F4297182E5A5000B4FC58 /* Fetchers */ = {
isa = PBXGroup;
children = (
838F4296182E2F6E00B4FC58 /* Fetcher.h */,
83A7942B1813742500BB3953 /* BitStampUSDFetcher.h */,
83A7942C1813742500BB3953 /* BitStampUSDFetcher.m */,
83CD78D4182E66E50071F27A /* BTCeUSDFetcher.h */,
83CD78D5182E66E50071F27A /* BTCeUSDFetcher.m */,
83A7942E181385DC00BB3953 /* CoinbaseUSDFetcher.h */,
83A7942F181385DC00BB3953 /* CoinbaseUSDFetcher.m */,
831EB77A18133CF900AE6C10 /* MtGoxUSDFetcher.h */,
831EB77B18133CF900AE6C10 /* MtGoxUSDFetcher.m */,
);
name = Fetchers;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
Expand Down Expand Up @@ -191,11 +206,11 @@
buildActionMask = 2147483647;
files = (
830CE09B171B6C3E00DDD525 /* InfoPlist.strings in Resources */,
830CE0A7171B6C3E00DDD525 /* MainMenu.xib in Resources */,
830CE0E6171B914300DDD525 /* Icon.icns in Resources */,
830CE101171B9A5A00DDD525 /* btclogoAlternate.png in Resources */,
830CE102171B9A5A00DDD525 /* btclogo.png in Resources */,
830CE103171B9A5A00DDD525 /* btclogoAlternate@2x.png in Resources */,
838F429B182E639F00B4FC58 /* MainMenu.xib in Resources */,
830CE104171B9A5A00DDD525 /* btclogo@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -209,8 +224,9 @@
files = (
83A7942D1813742500BB3953 /* BitStampUSDFetcher.m in Sources */,
830CE09D171B6C3E00DDD525 /* main.m in Sources */,
83CD78D6182E66E50071F27A /* BTCeUSDFetcher.m in Sources */,
83A79430181385DC00BB3953 /* CoinbaseUSDFetcher.m in Sources */,
831EB77C18133CF900AE6C10 /* MtGoxFetcher.m in Sources */,
831EB77C18133CF900AE6C10 /* MtGoxUSDFetcher.m in Sources */,
830CE0A4171B6C3E00DDD525 /* AppDelegate.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -226,14 +242,6 @@
name = InfoPlist.strings;
sourceTree = "<group>";
};
830CE0A5171B6C3E00DDD525 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
830CE0A6171B6C3E00DDD525 /* en */,
);
name = MainMenu.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
Expand Down Expand Up @@ -301,7 +309,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "btcbar/btcbar-Prefix.pch";
INFOPLIST_FILE = "btcbar/btcbar-Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.6;
MACOSX_DEPLOYMENT_TARGET = 10.7;
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
Expand All @@ -314,7 +322,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "btcbar/btcbar-Prefix.pch";
INFOPLIST_FILE = "btcbar/btcbar-Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.6;
MACOSX_DEPLOYMENT_TARGET = 10.7;
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
Expand Down
26 changes: 12 additions & 14 deletions btcbar/AppDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,29 @@

#import <Cocoa/Cocoa.h>

#import "MtGoxFetcher.h"
#import "MtGoxUSDFetcher.h"
#import "BitStampUSDFetcher.h"
#import "CoinbaseUSDFetcher.h"
#import "BTCeUSDFetcher.h"

@interface AppDelegate : NSObject <NSApplicationDelegate> {
IBOutlet NSMenu *btcbarMenu;
NSMenu *btcbarMainMenu;
NSInteger currentFetcherTag;

NSStatusItem *btcbarStatusItem;
NSImage *btcbarStatusImage;
NSImage *btcbarHighlightStatusImage;

NSTimer *updateViewTimer;
NSTimer *updateDataTimer;

NSMutableArray *tickers;
NSUserDefaults *prefs;
NSString *webUrl;
MtGoxFetcher *mt_gox;
BitStampUSDFetcher *bitstamp_usd;
CoinbaseUSDFetcher *coinbase_usd;
}

@property (assign) IBOutlet NSMenu *menu;
- (void)menuActionSetTicker:(id)sender;
- (void)menuActionBrowser:(id)sender;
- (void)menuActionQuit:(id)sender;

- (IBAction)menuActionSetTicker:(id)sender;
- (IBAction)menuActionBrowser:(id)sender;
- (IBAction)menuActionQuit:(id)sender;

- (void)updateViewTimerAction:(NSTimer*)timer;
- (void)handleTickerNotification:(NSNotification *)pNotification;
- (void)updateDataTimerAction:(NSTimer*)timer;

@end
Loading

0 comments on commit 5f2dd05

Please sign in to comment.