# HG changeset patch # User antonc27 # Date 1456089719 -3600 # Node ID 2b9e189df3d6b07a26467711cc8f8d6f3c5afe5f # Parent 38996f467b23045abc6c077805ef37adae172d45 - Campaign for iOS: Stub for list of campaigns diff -r 38996f467b23 -r 2b9e189df3d6 project_files/HedgewarsMobile/Classes/CampaignsViewController-iPad.xib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Classes/CampaignsViewController-iPad.xib Sun Feb 21 22:21:59 2016 +0100 @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 38996f467b23 -r 2b9e189df3d6 project_files/HedgewarsMobile/Classes/CampaignsViewController-iPhone.xib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Classes/CampaignsViewController-iPhone.xib Sun Feb 21 22:21:59 2016 +0100 @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 38996f467b23 -r 2b9e189df3d6 project_files/HedgewarsMobile/Classes/CampaignsViewController.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Classes/CampaignsViewController.h Sun Feb 21 22:21:59 2016 +0100 @@ -0,0 +1,23 @@ +/* + * Hedgewars-iOS, a Hedgewars port for iOS devices + * Copyright (c) 2015-2016 Anton Malmygin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#import + +@interface CampaignsViewController : UITableViewController + +@end diff -r 38996f467b23 -r 2b9e189df3d6 project_files/HedgewarsMobile/Classes/CampaignsViewController.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Classes/CampaignsViewController.m Sun Feb 21 22:21:59 2016 +0100 @@ -0,0 +1,126 @@ +/* + * Hedgewars-iOS, a Hedgewars port for iOS devices + * Copyright (c) 2015-2016 Anton Malmygin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#import "CampaignsViewController.h" + +@interface CampaignsViewController () + +@end + +@implementation CampaignsViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismiss)]; + self.navigationItem.leftBarButtonItem = doneButton; + [doneButton release]; +} + +- (void)dismiss { + [self.navigationController.presentingViewController dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { +#warning Incomplete implementation, return the number of sections + return 0; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { +#warning Incomplete implementation, return the number of rows + return 0; +} + +/* +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:<#@"reuseIdentifier"#> forIndexPath:indexPath]; + + // Configure the cell... + + return cell; +} +*/ + +/* +// Override to support conditional editing of the table view. +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { + // Return NO if you do not want the specified item to be editable. + return YES; +} +*/ + +/* +// Override to support editing the table view. +- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { + if (editingStyle == UITableViewCellEditingStyleDelete) { + // Delete the row from the data source + [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; + } else if (editingStyle == UITableViewCellEditingStyleInsert) { + // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view + } +} +*/ + +/* +// Override to support rearranging the table view. +- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { +} +*/ + +/* +// Override to support conditional rearranging of the table view. +- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { + // Return NO if you do not want the item to be re-orderable. + return YES; +} +*/ + +/* +#pragma mark - Table view delegate + +// In a xib-based application, navigation from a table can be handled in -tableView:didSelectRowAtIndexPath: +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + // Navigation logic may go here, for example: + // Create the next view controller. + <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:<#@"Nib name"#> bundle:nil]; + + // Pass the selected object to the new view controller. + + // Push the view controller. + [self.navigationController pushViewController:detailViewController animated:YES]; +} +*/ + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff -r 38996f467b23 -r 2b9e189df3d6 project_files/HedgewarsMobile/Classes/MainMenuViewController.m --- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Sun Feb 21 20:20:40 2016 +0100 +++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Sun Feb 21 22:21:59 2016 +0100 @@ -26,6 +26,7 @@ #import "SavedGamesViewController.h" #import "RestoreViewController.h" #import "MissionTrainingViewController.h" +#import "CampaignsViewController.h" #import "Appirater.h" #import "ServerProtocolNetwork.h" #import "GameInterfaceBridge.h" @@ -89,8 +90,7 @@ { NSString *xibName = [@"RestoreViewController-" stringByAppendingString:(IS_IPAD() ? @"iPad" : @"iPhone")]; RestoreViewController *restored = [[RestoreViewController alloc] initWithNibName:xibName bundle:nil]; - if ([restored respondsToSelector:@selector(setModalPresentationStyle:)]) - restored.modalPresentationStyle = UIModalPresentationFormSheet; + restored.modalPresentationStyle = UIModalPresentationFormSheet; [self performSelector:@selector(presentViewController:) withObject:restored afterDelay:0.25]; } @@ -219,8 +219,7 @@ { AboutViewController *about = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil]; about.modalTransitionStyle = UIModalTransitionStyleCoverVertical; - if ([about respondsToSelector:@selector(setModalPresentationStyle:)]) - about.modalPresentationStyle = UIModalPresentationFormSheet; + about.modalPresentationStyle = UIModalPresentationFormSheet; [self presentViewController:about animated:YES completion:nil]; [about release]; @@ -231,8 +230,7 @@ { SavedGamesViewController *savedgames = [[SavedGamesViewController alloc] initWithNibName:@"SavedGamesViewController" bundle:nil]; savedgames.modalTransitionStyle = UIModalTransitionStyleCoverVertical; - if ([savedgames respondsToSelector:@selector(setModalPresentationStyle:)]) - savedgames.modalPresentationStyle = UIModalPresentationPageSheet; + savedgames.modalPresentationStyle = UIModalPresentationPageSheet; [self presentViewController:savedgames animated:YES completion:nil]; [savedgames release]; @@ -243,8 +241,7 @@ xib = IS_IPAD() ? @"MissionTrainingViewController-iPad" : @"MissionTrainingViewController-iPhone"; MissionTrainingViewController *missions = [[MissionTrainingViewController alloc] initWithNibName:xib bundle:nil]; missions.modalTransitionStyle = IS_IPAD() ? UIModalTransitionStyleCoverVertical : UIModalTransitionStyleCrossDissolve; - if ([missions respondsToSelector:@selector(setModalPresentationStyle:)]) - missions.modalPresentationStyle = UIModalPresentationPageSheet; + missions.modalPresentationStyle = UIModalPresentationPageSheet; [self presentViewController:missions animated:YES completion:nil]; [missions release]; @@ -254,6 +251,20 @@ [GameInterfaceBridge registerCallingController:self]; [GameInterfaceBridge startSimpleGame]; break; + case 7: + { + xib = IS_IPAD() ? @"CampaignsViewController-iPad" : @"CampaignsViewController-iPhone"; + CampaignsViewController *campaigns = [[CampaignsViewController alloc] initWithNibName:xib bundle:nil]; + UINavigationController *campaignNavigationController = [[UINavigationController alloc] initWithRootViewController:campaigns]; + [campaigns release]; + + campaignNavigationController.modalTransitionStyle = IS_IPAD() ? UIModalTransitionStyleCoverVertical : UIModalTransitionStyleCrossDissolve; + campaignNavigationController.modalPresentationStyle = UIModalPresentationPageSheet; + + [self presentViewController:campaignNavigationController animated:YES completion:nil]; + [campaignNavigationController release]; + } + break; default: alert = [[UIAlertView alloc] initWithTitle:@"Not Yet Implemented" message:@"Sorry, this feature is not yet implemented" diff -r 38996f467b23 -r 2b9e189df3d6 project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj --- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Sun Feb 21 20:20:40 2016 +0100 +++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Sun Feb 21 22:21:59 2016 +0100 @@ -262,6 +262,9 @@ F60D04881BD137B5003ACB00 /* teams_filled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04741BD137B5003ACB00 /* teams_filled@2x.png */; }; F60D04891BD137B5003ACB00 /* teams.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04751BD137B5003ACB00 /* teams.png */; }; F60D048A1BD137B5003ACB00 /* teams@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04761BD137B5003ACB00 /* teams@2x.png */; }; + F6338CC81C7A53C100353945 /* CampaignsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F6338CC61C7A53C100353945 /* CampaignsViewController.m */; }; + F6338CC91C7A53C100353945 /* CampaignsViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6338CC71C7A53C100353945 /* CampaignsViewController-iPhone.xib */; }; + F6338CCC1C7A542C00353945 /* CampaignsViewController-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6338CCB1C7A542C00353945 /* CampaignsViewController-iPad.xib */; }; F6448CE31BD2E00500C31C8C /* TableViewControllerWithDoneButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F6448CE21BD2E00500C31C8C /* TableViewControllerWithDoneButton.m */; }; F65724FD1B7E784700A86262 /* helpabove.png in Resources */ = {isa = PBXBuildFile; fileRef = F65724F81B7E784700A86262 /* helpabove.png */; }; F65724FE1B7E784700A86262 /* helpbottom.png in Resources */ = {isa = PBXBuildFile; fileRef = F65724F91B7E784700A86262 /* helpbottom.png */; }; @@ -751,6 +754,10 @@ F60D04741BD137B5003ACB00 /* teams_filled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "teams_filled@2x.png"; path = "Resources/Icons/teams_filled@2x.png"; sourceTree = ""; }; F60D04751BD137B5003ACB00 /* teams.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = teams.png; path = Resources/Icons/teams.png; sourceTree = ""; }; F60D04761BD137B5003ACB00 /* teams@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "teams@2x.png"; path = "Resources/Icons/teams@2x.png"; sourceTree = ""; }; + F6338CC51C7A53C100353945 /* CampaignsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CampaignsViewController.h; sourceTree = ""; }; + F6338CC61C7A53C100353945 /* CampaignsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CampaignsViewController.m; sourceTree = ""; }; + F6338CC71C7A53C100353945 /* CampaignsViewController-iPhone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "CampaignsViewController-iPhone.xib"; sourceTree = ""; }; + F6338CCB1C7A542C00353945 /* CampaignsViewController-iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "CampaignsViewController-iPad.xib"; sourceTree = ""; }; F6448CE11BD2E00500C31C8C /* TableViewControllerWithDoneButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewControllerWithDoneButton.h; sourceTree = ""; }; F6448CE21BD2E00500C31C8C /* TableViewControllerWithDoneButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableViewControllerWithDoneButton.m; sourceTree = ""; }; F65724F81B7E784700A86262 /* helpabove.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = helpabove.png; sourceTree = ""; }; @@ -970,6 +977,10 @@ 61915D59143A4E2C00299991 /* MissionTrainingViewController.m */, 61915D5A143A4E2C00299991 /* MissionTrainingViewController-iPhone.xib */, 61077E86143FB09800645B29 /* MissionTrainingViewController-iPad.xib */, + F6338CC51C7A53C100353945 /* CampaignsViewController.h */, + F6338CC61C7A53C100353945 /* CampaignsViewController.m */, + F6338CC71C7A53C100353945 /* CampaignsViewController-iPhone.xib */, + F6338CCB1C7A542C00353945 /* CampaignsViewController-iPad.xib */, ); name = "Satellite Controllers"; sourceTree = ""; @@ -1608,6 +1619,7 @@ 61370653117B1D50004EE44A /* Entitlements-Distribution.plist in Resources */, 611E12FF117BBBDA0044B62F /* Entitlements-Development.plist in Resources */, 6165925311CA9CB400D6E256 /* MainMenuViewController-iPad.xib in Resources */, + F6338CCC1C7A542C00353945 /* CampaignsViewController-iPad.xib in Resources */, 6165925511CA9CB400D6E256 /* MapConfigViewController-iPad.xib in Resources */, F60D04791BD137B5003ACB00 /* bullet.png in Resources */, 61F9040911DF58B00068B24D /* settingsButton.png in Resources */, @@ -1652,6 +1664,7 @@ 61E2F7451283752C00E12521 /* tw.png in Resources */, 61808A5D128C930A005D0E2F /* backSound.caf in Resources */, 61D3D2A51290E03A003CE7C3 /* irc.png in Resources */, + F6338CC91C7A53C100353945 /* CampaignsViewController-iPhone.xib in Resources */, 6172FED91298CF9800D73365 /* background~iphone.png in Resources */, 6172FEEF1298D25D00D73365 /* mediumBackground~ipad.png in Resources */, F65E1DBF1B9B95A400A78ADF /* Icon-60@2x.png in Resources */, @@ -1883,6 +1896,7 @@ 619C5AF4124F7E3100D041AE /* LuaPas.pas in Sources */, 619C5BA2124FA59000D041AE /* MapPreviewButtonView.m in Sources */, 61D205A1127CDD1100ABD83E /* ObjcExports.m in Sources */, + F6338CC81C7A53C100353945 /* CampaignsViewController.m in Sources */, 61006F95128DE31F00EBA7F7 /* CreationChamber.m in Sources */, 61A4A39412A5CCC2004D81E6 /* uCommandHandlers.pas in Sources */, 61A4A39512A5CCC2004D81E6 /* uCommands.pas in Sources */,