#import #import "iCleanUp.h" #import "MainView.h" #import "About.h" static About *sharedInstance = nil; @implementation About + (About *) 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]; } -(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: @"About"]]; [topBar showButtonsWithLeftTitle: @"Back" rightTitle: nil leftBack: YES ]; [topBar enableAnimation]; [topBar setBarStyle:0]; [topBar setDelegate:self]; preferencesTable = [[UIPreferencesTable alloc] initWithFrame:CGRectMake(0.0f, 45.0f, 320.0f, 415.0f)]; [preferencesTable setDataSource: self]; [preferencesTable setDelegate: self]; optionsGroup = [[UIPreferencesTableCell alloc] init]; [optionsGroup setTitle:@""]; ACache = [[UIPreferencesTableCell alloc] init]; [ACache setTitle: @"Visit Our Site"]; MTrash = [[UIPreferencesTableCell alloc] init]; [MTrash setTitle: @"Donate"]; [self addSubview:topBar]; [self addSubview:preferencesTable]; [preferencesTable reloadData]; DonateGroup = [[UIPreferencesTableCell alloc] init]; DonateCell = [[UIPreferencesTableCell alloc] init]; [DonateCell setTitle: nil]; [DonateCell setEnabled: NO]; DonateView = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 0.0f, 100.0f)]; DonateText = [[UITextView alloc] initWithFrame: CGRectMake(75.0f, 3.0f, 230.0f, 60.0f)]; [DonateText setEditable: NO]; [DonateText setTextSize: 11]; [DonateText setText: @"iCleanUp v1.0 Beta\nCopyright 2007 iDevNetWork.Net\nCredits: Jonathan McAllister"]; [DonateView addSubview: DonateText]; [DonateCell addSubview: DonateView]; aboutGroup = [[UIPreferencesTableCell alloc] init]; aboutCell = [[UIPreferencesTableCell alloc] init]; [aboutCell setTitle: nil]; [aboutCell setEnabled: NO]; aboutView = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 5.0f, rect.size.width, 100.0f)]; aboutText = [[UITextView alloc] initWithFrame: CGRectMake(75.0f, 3.0f, 230.0f, 60.0f)]; [aboutText setEditable: NO]; [aboutText setTextSize: 11]; [aboutText setText: @"iCleanUp v1.0 Beta\nCopyright 2007 iDevNetWork.Net\nCredits: Jonathan McAllister"]; UIImageView *aboutImage = [[UIImageView alloc] initWithFrame: CGRectMake(15.0f, 0.0f, 32.0f, 32.0f)]; [aboutImage setImage: [UIImage applicationImageNamed: @"icon.png"]]; [aboutView addSubview: aboutText]; [aboutView addSubview: aboutImage]; [aboutCell addSubview: aboutView]; 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 // ----------------------------------------------------------------------------------- - (int) numberOfGroupsInPreferencesTable: (UIPreferencesTable *)table { return 6; } - (UIPreferencesTableCell *)preferencesTable: (UIPreferencesTable *)table cellForGroup: (int)group { switch(group) { case 0: return optionsGroup; case 2: return aboutGroup; case 4: return aboutGroup; default: return nil; } } - (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 0; case 5: return 1; default: return 0; } } - (UIPreferencesTableCell *)preferencesTable: (UIPreferencesTable *)table cellForRow: (int)row inGroup: (int)group { switch(group) { case 0: return aboutGroup; case 1: switch(row) { case 0: return ACache; case 1: return MTrash; } case 2: return optionsGroup; case 3: switch(row) { case 0: return DonateCell; } case 4: return optionsGroup; case 5: switch(row) { case 0: return aboutCell; } default: return nil; } } - (float)preferencesTable: (UIPreferencesTable *)table heightForRow: (int)row inGroup:(int)group withProposedHeight: (float)proposed { switch(group) { case 0: return 20; case 1: switch (row) { case 0 : return 46.0f; case 1 : return 46.0f; } case 2: return 0; case 3: return 69.0f; case 4: return 0; case 5: return 69.0f; default: return proposed; } } // ----------------------------------------------------------------------------------- // - This class catches the NavBar Control events // ----------------------------------------------------------------------------------- -(void)navigationBar:(UINavigationBar*)bar buttonClicked:(int)button{ if (button == 1) //left, go to the about screen { [[UITransitionApplication sharedInstance] showView:[MainView sharedInstance]]; } } @end