]> git.saurik.com Git - cydia.git/commitdiff
Provide -[CyteWebViewController leftButton] API.
authorJay Freeman (saurik) <saurik@saurik.com>
Thu, 3 Mar 2011 21:09:55 +0000 (13:09 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Mon, 7 Mar 2011 10:41:35 +0000 (02:41 -0800)
CyteKit/WebViewController.h
CyteKit/WebViewController.mm
MobileCydia.mm

index db40a1c1352ae60838e45c24f2560448f127b972..c1ec1eebc96aeb647e2ea468882d4b73ad76417e 100644 (file)
 - (UIBarButtonItem *) customButton;
 - (UIBarButtonItem *) rightButton;
 
+- (void) applyLeftButton;
+- (UIBarButtonItem *) leftButton;
+
 - (void) _didStartLoading;
 - (void) _didFinishLoading;
 
index b59d83028643c61cd10ee15ac97007c15cadaef3..a75027837831f1faf3b97436322f32de7ecc2db8 100644 (file)
@@ -611,6 +611,27 @@ float CYScrollViewDecelerationRateNormal;
     ] autorelease];
 }
 
+- (UIBarButtonItem *) leftButton {
+    UINavigationItem *item([self navigationItem]);
+    if ([item backBarButtonItem] != nil && ![item hidesBackButton])
+        return nil;
+
+    if (UINavigationController *navigation = [self navigationController])
+        if ([[navigation parentViewController] modalViewController] == navigation)
+            return [[[UIBarButtonItem alloc]
+                initWithTitle:UCLocalize("CLOSE")
+                style:UIBarButtonItemStylePlain
+                target:self
+                action:@selector(close)
+            ] autorelease];
+
+    return nil;
+}
+
+- (void) applyLeftButton {
+    [[self navigationItem] setLeftBarButtonItem:[self leftButton]];
+}
+
 - (UIBarButtonItem *) rightButton {
     return reloaditem_;
 }
@@ -784,6 +805,8 @@ float CYScrollViewDecelerationRateNormal;
         UITableView *table([[[UITableView alloc] initWithFrame:bounds style:UITableViewStyleGrouped] autorelease]);
         [webview_ insertSubview:table atIndex:0];
 
+        [self applyLeftButton];
+
         [table setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
         [webview_ setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
         [indicator_ setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin];
@@ -881,6 +904,7 @@ float CYScrollViewDecelerationRateNormal;
 
 - (void) setHidesBackButton:(bool)value {
     [[self navigationItem] setHidesBackButton:value];
+    [self applyLeftButton];
 }
 
 - (void) setHidesBackButtonByNumber:(NSNumber *)value {
index 0faac89013df6ecf308df95dd9e6e196ef0686bc..9eb579119d8c7e6ace8817c670bf363f43ef4a25 100644 (file)
@@ -4857,16 +4857,18 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
         nil];
 
         [self setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/#!/confirm/", UI_]]];
-
-        [[self navigationItem] setLeftBarButtonItem:[[[UIBarButtonItem alloc]
-            initWithTitle:UCLocalize("CANCEL")
-            style:UIBarButtonItemStylePlain
-            target:self
-            action:@selector(cancelButtonClicked)
-        ] autorelease]];
     } return self;
 }
 
+- (UIBarButtonItem *) leftButton {
+    return [[[UIBarButtonItem alloc]
+        initWithTitle:UCLocalize("CANCEL")
+        style:UIBarButtonItemStylePlain
+        target:self
+        action:@selector(cancelButtonClicked)
+    ] autorelease];
+}
+
 #if !AlwaysReload
 - (void) applyRightButton {
     if ([issues_ count] == 0 && ![self isLoading])
@@ -6431,15 +6433,13 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
     [alert show];
 }
 
-- (void) viewDidLoad {
-    [super viewDidLoad];
-
-    [[self navigationItem] setLeftBarButtonItem:[[[UIBarButtonItem alloc]
+- (UIBarButtonItem *) leftButton {
+    return [[[UIBarButtonItem alloc]
         initWithTitle:UCLocalize("ABOUT")
         style:UIBarButtonItemStylePlain
         target:self
         action:@selector(aboutButtonClicked)
-    ] autorelease]];
+    ] autorelease];
 }
 
 - (void) unloadData {
@@ -6469,15 +6469,13 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
     return [NSURL URLWithString:@"cydia://manage"];
 }
 
-- (void) viewDidLoad {
-    [super viewDidLoad];
-
-    [[self navigationItem] setLeftBarButtonItem:[[[UIBarButtonItem alloc]
+- (UIBarButtonItem *) leftButton {
+    return [[[UIBarButtonItem alloc]
         initWithTitle:UCLocalize("SETTINGS")
         style:UIBarButtonItemStylePlain
         target:self
         action:@selector(settingsButtonClicked)
-    ] autorelease]];
+    ] autorelease];
 }
 
 - (void) settingsButtonClicked {