rendered paste body#import "iConverter.h"
#import "MainView.h"
#import "TwoView.h"
static MainView *sharedInstance = nil;
BOOL curveIsEnabled = YES;
BOOL forceGridView = NO;
@implementation UIView (Color)
+ (CGColorRef)colorWithRed:(float)red green:(float)green blue:(float)blue alpha:(float)alpha;
{
float rgba[4] = {red, green, blue, alpha};
CGColorSpaceRef rgbColorSpace = (CGColorSpaceRef)[(id)CGColorSpaceCreateDeviceRGB() autorelease];
CGColorRef color = (CGColorRef)[(id)CGColorCreate(rgbColorSpace, rgba) autorelease];
return color;
}
@end
@implementation MainView
+ (MainView *) sharedInstance {
return ( sharedInstance ? sharedInstance : ( sharedInstance = [[self alloc] init] ) );
}
-(id)init{
struct CGRect rect = [UIHardware fullScreenApplicationContentRect];
rect.origin.x = rect.origin.y = 0.0f;
return [self initWithFrame:rect];
}
// designated initializer
-(id)initWithFrame:(CGRect) rect {
self = [super initWithFrame: rect];
sharedInstance = self;
topBar = [[UINavigationBar alloc] init];
[topBar setFrame:CGRectMake(0.0f, 0.0f, 320.0f, 48.0f)];
[topBar pushNavigationItem: [[UINavigationItem alloc] initWithTitle: @"iConverter"]];
[topBar showButtonsWithLeftTitle: @"Quit" rightTitle: @"About" leftBack: YES ];
[topBar enableAnimation];
[topBar setBarStyle:0];
[topBar setDelegate:self];
// prefs table begin ------
UIPreferencesTable *preferencesTable = [[UIPreferencesTable alloc] initWithFrame:CGRectMake(0.0f, 45.0f, 320.0f, 415.0f)];
CGRect switchRect = CGRectMake(rect.size.width - 114.0f, 9.0f, 96.0f, 32.0f);
CGRect installButtonRect = CGRectMake(20.0f, 9.0f, 100.0f, 46.0f);
[preferencesTable setDataSource: self];
[preferencesTable setDelegate: self];
optionsGroup = [[UIPreferencesTableCell alloc] init];
[optionsGroup setTitle:@"Enter Units"];
geometryCell = [[UIPreferencesTextTableCell alloc] init];
[geometryCell setTitle: @"Number of Units:"];
[[geometryCell textField] setPreferredKeyboardType: 1];
[geometryCell setValue:@""];
forceGridViewCell = [[UIPreferencesTableCell alloc] init];
[forceGridViewCell setTitle: @"Conversion Type: "];
forceGridViewSwitch = [[UISwitchControl alloc] initWithFrame: switchRect];
[forceGridViewSwitch setValue: forceGridView];
[forceGridViewCell addSubview: forceGridViewSwitch];
entriesCell = [[UIPreferencesTableCell alloc] init];
[entriesCell setTitle: @"Edit Stack Contents"];
installGroup = [[UIPreferencesTableCell alloc] init];
[installGroup setTitle:@"Converted Total"];
installCell = [[UIPreferencesTableCell alloc] init];
// Conversion Types
terminateGroup = [[UIPreferencesTableCell alloc] init];
[terminateGroup setTitle:@"Select A Conversion"];
TypeCentimeterToInches = [[UIPreferencesTextTableCell alloc] init];
[TypeCentimeterToInches setTitle: @"Number of Units:"];
[[TypeCentimeterToInches textField] setPreferredKeyboardType: 1];
[TypeCentimeterToInches setValue:@""];
TypeMTCell = [[UIPreferencesTableCell alloc] init];
[TypeMTCell setTitle: @"Number of Units:"];
[TypeMTCell setChecked:TRUE];
// End Conversion Types
CGRect left = CGRectMake(0.0f, 0.0f, 14.0f, 46.0f);
CGRect middle = CGRectMake(14.0f, 0.0f, 1.0f, 46.0f);
CGRect right = CGRectMake(15.0f, 0.0f, 14.0f, 46.0f);
CDAnonymousStruct4 slices = { left, middle, right };
installButton = [[UIThreePartButton alloc] initWithTitle:@"Convert"];
[installButton setEnabled:YES];
[installButton setAutosizesToFit:NO];
[installButton setFrame:installButtonRect];
[installButton setBackgroundSlices:slices];
[installButton setBackgroundImage:[UIImage applicationImageNamed:@"UIButtonLarge.png"] ];
[installButton setTitleColor:[UIView colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0] forState:0];
[installButton addTarget:self action:@selector(installStack:) forEvents:1];
[installCell addSubview: installButton];
// prefs table end ------
bottomNavBar = [[UINavigationBar alloc] init];
[bottomNavBar setFrame:CGRectMake(rect.origin.x, 415.0f, rect.size.width, 45.0f)];
[bottomNavBar showLeftButton:nil withStyle:0 rightButton:@"Convert" withStyle:0];
[bottomNavBar setDelegate:self];
[bottomNavBar enableAnimation];
[self addSubview:topBar];
[self addSubview:preferencesTable];
[self addSubview:bottomNavBar];
[preferencesTable reloadData];
return self;
}
// -----------------------------------------------------------------------------------
// - These classes create and control the Alert Box
// -----------------------------------------------------------------------------------
- (void)showAlert:(NSString *)aMessage withTitle:(NSString *)aTitle
{
UIAlertSheet *alertSheet = [[UIAlertSheet alloc] initWithFrame:CGRectMake(0, 240, 320, 240)];
[alertSheet setTitle:aTitle];
[alertSheet setBodyText:aMessage];
[alertSheet addButtonWithTitle:@"OK"];
[alertSheet setDelegate:self];
[alertSheet popupAlertAnimated:YES];
}
- (void)alertSheet:(UIAlertSheet *)sheet buttonClicked:(int)button
{
[sheet dismissAnimated:YES];
}
// -----------------------------------------------------------------------------------
// - These classes create the Preference Table Groups, Cells And Rows
// -----------------------------------------------------------------------------------
- (UIPreferencesTableCell *)preferencesTable: (UIPreferencesTable *)table cellForRow: (int)row inGroup: (int)group {
switch(group) {
case 0: return optionsGroup;
case 1:
switch(row) {
case 0: return geometryCell;
case 1: return forceGridViewCell;
case 2: return entriesCell;
}
case 2: return installGroup;
case 3:
switch(row) {
case 0: return installCell;
}
case 4: return terminateGroup;
case 5:
switch(row) {
case 0: return TypeMTCell;
case 1: return TypeCentimeterToInches;
}
default: return nil;
}
}
- (int) numberOfGroupsInPreferencesTable: (UIPreferencesTable *)table {
return 7;
}
- (int) preferencesTable: (UIPreferencesTable *)table numberOfRowsInGroup: (int) group {
switch(group) {
case 0: return 0;
case 1: return 2;
case 2: return 0;
case 3: return 1;
case 4: return 1;
case 5: return 2;
default: return 0;
}
}
- (UIPreferencesTableCell *)preferencesTable: (UIPreferencesTable *)table cellForGroup: (int)group {
switch(group) {
case 0: return optionsGroup;
case 2: return installGroup;
case 4: return terminateGroup;
default: return nil;
}
}
- (float)preferencesTable: (UIPreferencesTable *)table heightForRow: (int)row inGroup:(int)group withProposedHeight: (float)proposed {
switch(group) {
case 0: return 26.0f;
case 2: return 26.0f;
case 3:
switch (row)
{
case 0 : return (46.0f+18.0f);
case 1 : return (46.0f+18.0f);
}
case 4: return 18.0f;
case 5:
switch (row)
{
case 0 : return (46.0f+26.0f);
case 1 : return (46.0f+26.0f);
}
default: return proposed;
}
}
// -----------------------------------------------------------------------------------
// - This class catches the NavBar Control events
// -----------------------------------------------------------------------------------
-(void)navigationBar:(UINavigationBar*)bar buttonClicked:(int)button{
if(bar == bottomNavBar) {
// buttom navBar
[[UITransitionApplication sharedInstance] showView:[TwoView sharedInstance]];
return;
}
if (button == 0)//right, go to the help screen
{
[self showAlert:@"This application was developed by Jonathan McAllister coutesy of the iPhoneDevNetwork \n Please visit http://www.iphonedevnetwork.com/ " withTitle:@"About"];
[[UITransitionApplication sharedInstance] showView:[MainView sharedInstance]];
return;
}
if (button == 1) //left, go to the about screen
{
exit(0);
}
}
- (void)(UIPreferencesTableCell *)preferencesTable: tableRowSelected
{
switch ([preferencesTable selectedRow)]
{
case 0: [self showAlert:@"This application was developed by Jonathan McAllister coutesy of the iPhoneDevNetwork \n Please visit http://www.iphonedevnetwork.com/ " withTitle:@"About"];
case 1: return TypeCentimeterToInches;
}
}
@end