Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TIMOB-6356] iOS: DashboardView change of page event #3370

Merged
merged 3 commits into from
Nov 16, 2012
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 9 additions & 0 deletions apidoc/Titanium/UI/DashboardView.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,15 @@ events:
summary: List of items to be committed, possibly in new order, when edit mode ends.
type: Array<Titanium.UI.DashboardItem>

- name: pagechanged
summary: Fired when the current page of the dashboard view changes.
properties:
- name: pageNo
summary: The current page number.
type: Number
since: '3.1.0'


methods:
- name: startEditing
summary: Enable edit mode.
Expand Down
2 changes: 2 additions & 0 deletions iphone/Classes/LauncherView.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@

- (BOOL)launcherViewShouldWobble:(LauncherView*)launcher;

- (void)launcherView:(LauncherView*)launcher didChangePage:(NSNumber*)pageNo;

@end

#endif
32 changes: 26 additions & 6 deletions iphone/Classes/LauncherView.m
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,6 @@ - (void)updateContentSize:(NSInteger)numberOfPages
if (numberOfPages != pager.numberOfPages)
{
pager.numberOfPages = numberOfPages;
[pager setCurrentPage:numberOfPages-1];
}
}
- (void)layoutButtons
Expand Down Expand Up @@ -273,7 +272,13 @@ - (void)recreateButtons

[self layoutButtons];

[pager setCurrentPage:curIndex];
NSInteger oldPageNo = pager.currentPage;
[pager setCurrentPage:curIndex];
if (oldPageNo != curIndex) {
if ([delegate respondsToSelector:@selector(launcherView:didChangePage:)]) {
[delegate launcherView:self didChangePage:[NSNumber numberWithInteger:pager.currentPage]];
}
}
}

- (void)scrollToItem:(LauncherItem*)item animated:(BOOL)animated
Expand Down Expand Up @@ -663,8 +668,13 @@ - (void)endEditing
}

[self layoutButtons];

NSInteger oldPageNo = pager.currentPage;
[pager setCurrentPage:curIndex];
if (oldPageNo != curIndex) {
if ([delegate respondsToSelector:@selector(launcherView:didChangePage:)]) {
[delegate launcherView:self didChangePage:[NSNumber numberWithInteger:pager.currentPage]];
}
}

if ([delegate respondsToSelector:@selector(launcherViewDidEndEditing:)])
{
Expand Down Expand Up @@ -755,8 +765,15 @@ - (void)checkButtonOverflow:(NSInteger)pageIndex

- (void)updatePagerWithContentOffset:(CGPoint)contentOffset
{
CGFloat pageWidth = scrollView.frame.size.width;
pager.currentPage = floor((contentOffset.x - pageWidth / 2) / pageWidth) + 1;
CGFloat pageWidth = scrollView.frame.size.width;
NSInteger oldPageNo = pager.currentPage;
pager.currentPage = floor((contentOffset.x - pageWidth / 2) / pageWidth) + 1;
if (oldPageNo != pager.currentPage) {
if ([delegate respondsToSelector:@selector(launcherView:didChangePage:)]) {
[delegate launcherView:self didChangePage:[NSNumber numberWithInteger:pager.currentPage]];
}

}
}

- (void)springLoadTimer:(NSTimer*)timer
Expand Down Expand Up @@ -917,7 +934,10 @@ - (BOOL)editing

- (void)pageChanged
{
scrollView.contentOffset = CGPointMake(pager.currentPage * scrollView.frame.size.width, 0);
if ([delegate respondsToSelector:@selector(launcherView:didChangePage:)]) {
[delegate launcherView:self didChangePage:[NSNumber numberWithInteger:pager.currentPage]];
}
scrollView.contentOffset = CGPointMake(pager.currentPage * scrollView.frame.size.width, 0);
}

- (void)scrollViewWillBeginDragging:(UIScrollView*)scrollView
Expand Down
9 changes: 9 additions & 0 deletions iphone/Classes/TiUIDashboardView.m
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,15 @@ -(void)stopEditing

#pragma mark Delegates

- (void)launcherView:(LauncherView*)launcher didChangePage:(NSNumber*)pageNo;
{
if ([self.proxy _hasListeners:@"pagechanged"]) {
NSMutableDictionary *event = [NSMutableDictionary dictionary];
[event setObject:pageNo forKey:@"pageNo"];
[self.proxy fireEvent:@"pagechanged" withObject:event propagate:NO];
}
}

- (void)launcherView:(LauncherView*)launcher didAddItem:(LauncherItem*)item
{
}
Expand Down