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

added support for custom "See all" close buttons #109

Merged
merged 3 commits into from
Feb 4, 2017
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions ImageViewer/Source/GalleryConfiguration.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ public enum GalleryConfigurationItem {

///Option to set the Close button type.
case closeButtonMode(ButtonMode)

///Option to set the Close button type within the Thumbnails screen.
case seeAllCloseButtonMode(ButtonMode)

///Option to set the Thumbnails button type.
case thumbnailsButtonMode(ButtonMode)
Expand All @@ -30,6 +33,9 @@ public enum GalleryConfigurationItem {
/// Layout behaviour for the Close button.
case closeLayout(ButtonLayout)

/// Layout behaviour for the Close button within the Thumbnails screen.
case seeAllCloseLayout(ButtonLayout)

/// Layout behaviour for the Thumbnails button.
case thumbnailsLayout(ButtonLayout)

Expand Down
17 changes: 16 additions & 1 deletion ImageViewer/Source/GalleryViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ open class GalleryViewController: UIPageViewController, ItemControllerDelegate {
/// A custom view at the bottom of the gallery with layout using default (or custom) pinning settings for footer.
open var footerView: UIView?
fileprivate var closeButton: UIButton? = UIButton.closeButton()
fileprivate var seeAllCloseButton: UIButton? = nil
fileprivate var thumbnailsButton: UIButton? = UIButton.thumbnailsButton()
fileprivate var deleteButton: UIButton? = UIButton.deleteButton()
fileprivate let scrubber = VideoScrubber()
Expand All @@ -42,6 +43,7 @@ open class GalleryViewController: UIPageViewController, ItemControllerDelegate {
fileprivate var headerLayout = HeaderLayout.center(25)
fileprivate var footerLayout = FooterLayout.center(25)
fileprivate var closeLayout = ButtonLayout.pinRight(8, 16)
fileprivate var seeAllCloseLayout = ButtonLayout.pinRight(8, 16)
fileprivate var thumbnailsLayout = ButtonLayout.pinLeft(8, 16)
fileprivate var deleteLayout = ButtonLayout.pinRight(8, 66)
fileprivate var statusBarHidden = true
Expand Down Expand Up @@ -109,6 +111,15 @@ open class GalleryViewController: UIPageViewController, ItemControllerDelegate {
case .custom(let button): closeButton = button
case .builtIn: break
}

case .seeAllCloseButtonMode(let buttonMode):

switch buttonMode {

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extra space

case .none: seeAllCloseButton = nil
case .custom(let button): seeAllCloseButton = button
case .builtIn: break
}

case .thumbnailsButtonMode(let buttonMode):

Expand Down Expand Up @@ -396,13 +407,17 @@ open class GalleryViewController: UIPageViewController, ItemControllerDelegate {

let thumbnailsController = ThumbnailsViewController(itemsDataSource: self.itemsDataSource)

if let closeButton = closeButton {
if let closeButton = seeAllCloseButton {
thumbnailsController.closeButton = closeButton
thumbnailsController.closeLayout = seeAllCloseLayout
} else if let closeButton = closeButton {
let seeAllCloseButton = UIButton(frame: CGRect(origin: CGPoint.zero, size: closeButton.bounds.size))
seeAllCloseButton.setImage(closeButton.image(for: UIControlState()), for: UIControlState())
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not related to this PR but this should be .normal instead of UIControlState()... will fix it at some point

seeAllCloseButton.setImage(closeButton.image(for: .highlighted), for: .highlighted)
thumbnailsController.closeButton = seeAllCloseButton
thumbnailsController.closeLayout = closeLayout
}

thumbnailsController.onItemSelected = { [weak self] index in

self?.page(toIndex: index)
Expand Down