aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm
diff options
context:
space:
mode:
authorGravatar yangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-08-02 13:20:22 +0000
committerGravatar yangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-08-02 13:20:22 +0000
commit5987045388920e5830e7c141c8bfe4205ef6ebf3 (patch)
tree2b72e77f48fd3cf5142fbce2505c6a202c00a5b2 /experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm
parentb3d5bc1059d2b35d4d9148f50611a0455b403772 (diff)
iOS Sample App menu implementation
Diffstat (limited to 'experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm')
-rw-r--r--experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm115
1 files changed, 47 insertions, 68 deletions
diff --git a/experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm b/experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm
index c0f4990b5a..95aa88e6cd 100644
--- a/experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm
+++ b/experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm
@@ -4,26 +4,30 @@
#include "SkApplication.h"
#include "SkCGUtils.h"
#include "SkData.h"
+#include "SkOSMenu.h"
@implementation SkUIDetailViewController
-@synthesize fNavigationBar, fPrintButton, fCycleButton, fPopOverController;
+@synthesize fPrintButton, fOptionsButton, fPopOverController, fOptionsController;
//Overwritten from UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
fSkUIView = (SkUIView*)self.view;
+
fWind = (SampleWindow*)fSkUIView.fWind;
- fSkUIView.fTitleItem = fNavigationBar.topItem;
-
- [NSTimer scheduledTimerWithTimeInterval:0.001 target:self
- selector:@selector(redraw) userInfo:nil
- repeats:YES];
+ fSkUIView.fTitleItem = self.navigationItem;
+
[self createButtons];
+
+ fOptionsController = [[SkOptionsTableViewController alloc]
+ initWithStyle:UITableViewStyleGrouped];
+ fSkUIView.fOptionsDelegate = fOptionsController;
+ [fOptionsController registerMenus:fWind->getMenus()];
}
- (void)createButtons {
UIToolbar* toolbar = [[UIToolbar alloc]
- initWithFrame:CGRectMake(0, 0, 150, 45)];
+ initWithFrame:CGRectMake(0, 0, 125, 45)];
[toolbar setBarStyle: UIBarStyleBlackOpaque];
UIBarButtonItem* flexibleSpace = [[UIBarButtonItem alloc]
@@ -31,12 +35,11 @@
target:nil
action:nil];
- fCycleButton = [[UIBarButtonItem alloc]
- initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh
+ fOptionsButton = [[UIBarButtonItem alloc]
+ initWithTitle:@"Options"
+ style:UIBarButtonItemStylePlain
target:self
- action:@selector(cycleDeviceType)];
- fCycleButton.style = UIBarButtonItemStylePlain;
-
+ action:@selector(presentOptions)];
UIBarButtonItem* fixedSpace = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
target:nil
@@ -49,7 +52,7 @@
action:@selector(printContent)];
fPrintButton.style = UIBarButtonItemStylePlain;
- [toolbar setItems:[NSArray arrayWithObjects:flexibleSpace, fCycleButton, fixedSpace, fPrintButton, nil]
+ [toolbar setItems:[NSArray arrayWithObjects:flexibleSpace, fOptionsButton, fixedSpace, fPrintButton, nil]
animated:NO];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
@@ -64,19 +67,15 @@
}
- (void)dealloc {
- [fNavigationBar release];
[fPrintButton release];
- [fCycleButton release];
+ [fOptionsButton release];
[fPopOverController release];
+ [fOptionsController release];
application_term();
[super dealloc];
}
//Instance Methods
-- (void)redraw {
- [self.view setNeedsDisplay];
-}
-
- (void)populateRoot:(SkUIRootViewController*)rootVC {
for (int i = 0; i < fWind->sampleCount(); ++i) {
[rootVC addItem:[NSString stringWithUTF8String:fWind->getSampleTitle(i).c_str()]];
@@ -87,11 +86,6 @@
fWind->goToSample(index);
}
-//UI actions
-- (IBAction)usePipe:(id)sender {
- //fWind->togglePipe();
-}
-
- (void)printContent {
UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController];
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
@@ -123,57 +117,42 @@
}
}
-- (IBAction)enterServerIP:(id)sender {
- SkAlertPrompt *prompt = [[SkAlertPrompt alloc] initWithTitle:@"Enter Server IP:"
- message:@"\n"
- delegate:self
- cancelButtonTitle:@"Cancel"
- otherButtonTitles:@"Enter", nil];
- // show the dialog box
- [prompt show];
- [prompt release];
-}
-
-- (void)cycleDeviceType {
- fWind->toggleRendering();
-}
-
-/*
-- (void)presentActions {
- if (!fPopOverController) {
- SkOptionsTableViewController* controller = [[SkOptionsTableViewController alloc]
- initWithStyle:UITableViewStyleGrouped];
- fPopOverController = [[UIPopoverController alloc] initWithContentViewController:controller];
- fPopOverController.popoverContentSize = CGSizeMake(500, 400);
- [controller release];
- }
-
- if (fPopOverController.isPopoverVisible)
- [fPopOverController dismissPopoverAnimated:YES];
- else
- [fPopOverController presentPopoverFromBarButtonItem:fPrintButton
- permittedArrowDirections:UIPopoverArrowDirectionAny
- animated:YES];
-
-}
- */
-
-// manage popup
-- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
-{
- if (buttonIndex != [alertView cancelButtonIndex])
- {
- NSString *entered = [(SkAlertPrompt*)alertView enteredText];
- //fWind->setServerIP([entered UTF8String]);
+- (void)presentOptions {
+ if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
+ if (nil == fPopOverController) {
+ UINavigationController* navigation = [[UINavigationController alloc]
+ initWithRootViewController:fOptionsController];
+ navigation.navigationBar.topItem.title = @"Options";
+ fPopOverController = [[UIPopoverController alloc] initWithContentViewController:navigation];
+ [navigation release];
+ }
+
+ if (fPopOverController.isPopoverVisible)
+ [fPopOverController dismissPopoverAnimated:YES];
+ else
+ [fPopOverController presentPopoverFromBarButtonItem:fOptionsButton
+ permittedArrowDirections:UIPopoverArrowDirectionAny
+ animated:YES];
+
+ } else {
+ UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
+ style:UIBarButtonItemStyleBordered
+ target:nil
+ action:nil];
+ self.navigationItem.backBarButtonItem = backButton;
+ [backButton release];
+ [self.navigationController pushViewController:fOptionsController animated:YES];
+ self.navigationController.navigationBar.topItem.title = @"Options";
}
}
+
//Popover Management
- (void)showRootPopoverButtonItem:(UIBarButtonItem *)barButtonItem {
- [fNavigationBar.topItem setLeftBarButtonItem:barButtonItem animated:NO];
+ [self.navigationItem setLeftBarButtonItem:barButtonItem animated:NO];
}
- (void)invalidateRootPopoverButtonItem:(UIBarButtonItem *)barButtonItem {
- [fNavigationBar.topItem setLeftBarButtonItem:nil animated:NO];
+ [self.navigationItem setLeftBarButtonItem:nil animated:NO];
}
@end \ No newline at end of file