summaryrefslogtreecommitdiff
path: root/UICaboodle/RVBook.h
blob: d0037cf08fd745758ecea7abb6a65aa44b42fa9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#import "UICaboodle.h"

#import <UIKit/UIKit.h>

@class NSMutableArray;
@class RVBook;
@class RVPage;
@class UINavigationBar;
@class UITransitionView;

@interface UIView (PopUpView)
- (void) popFromSuperviewAnimated:(BOOL)animated;
- (void) popSubview:(UIView *)view;
@end

@protocol RVNavigationBarDelegate
@end

@protocol RVDelegate
- (void) setPageActive:(BOOL)active with:(id)object;
- (void) resetViewAnimated:(BOOL)animated with:(id)object;
- (void) reloadDataWith:(id)object;
- (void) popUpBook:(RVBook *)book;
- (CGRect) popUpBounds;
@end

@protocol RVBookHook
- (void) didCloseBook:(RVBook *)book;
@end

@interface RVBook : UIView <
    RVNavigationBarDelegate
> {
    NSMutableArray *pages_;
    UINavigationBar *navbar_;
    UITransitionView *transition_;
    BOOL resetting_;
    _transient id delegate_;
    _transient id hook_;
    UIToolbar *toolbar_;
}

- (UINavigationBar *) navigationBar;

- (id) initWithFrame:(CGRect)frame;
- (void) setDelegate:(id)delegate;
- (void) setHook:(id)hook;

- (void) setPage:(RVPage *)page;

- (void) swapPage:(RVPage *)page;
- (void) pushPage:(RVPage *)page animated:(BOOL)animated;
- (void) pushPage:(RVPage *)page;
- (void) popPages:(unsigned)pages;

- (void) pushBook:(RVBook *)book;

- (void) resetViewAnimated:(BOOL)animated;
- (void) resetViewAnimated:(BOOL)animated toPage:(RVPage *)page;

- (void) setBackButtonTitle:(NSString *)title forPage:(RVPage *)page;
- (void) reloadTitleForPage:(RVPage *)page;
- (void) reloadButtonsForPage:(RVPage *)page;
- (NSString *) getTitleForPage:(RVPage *)page;

- (void) reloadData;

- (CGRect) pageBounds;
- (void) close;

@end

@interface RVPopUpBook : RVBook {
    _transient RVBook *parent_;
    bool cancel_;
}

@end