This repository has been archived on 2025-08-18. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
JPImagePickerController/Classes/JPImagePickerController.h
2012-02-06 20:40:13 +01:00

194 lines
6.7 KiB
Objective-C

//
// JPImagePickerController.h
// JPImagePickerController
//
// Created by Jeena on 11.11.09.
// Copyright 2009 Jeena Paradies.
// Licence: MIT-Licence
//
#import <UIKit/UIKit.h>
#import "JPImagePickerOverviewController.h"
@class JPImagePickerController, JPImagePickerOverviewController;
/*!
@enum JPImagePickerControllerThumbnailSize
@abstract Specifies the thumbnail width and height.
@constant kJPImagePickerControllerThumbnailSizeWidth Thumbnail width 75 px.
@constant kJPImagePickerControllerThumbnailSizeHeight Thumbnail height 75 px.
*/
enum JPImagePickerControllerThumbnailSize {
kJPImagePickerControllerThumbnailSizeWidth = 75,
kJPImagePickerControllerThumbnailSizeHeight = 75
};
/*!
@enum JPImagePickerControllerPreviewImageSize
@abstract Specifies the preview image width and height.
@constant kJPImagePickerControllerPreviewImageSizeWidth Preview image width 320 px.
@constant kJPImagePickerControllerPreviewImageSizeHeight Preview image height 420 px.
*/
enum JPImagePickerControllerPreviewImageSize {
kJPImagePickerControllerPreviewImageSizeWidth = 320,
kJPImagePickerControllerPreviewImageSizeHeight = 420
};
#pragma mark -
/*!
@protocol JPImagePickerControllerDelegate
@abstract Delegate protocol for the JPImagePickerController
@discussion You have to implement this delegate in order to
use the JPImagePickerController. This delegate is responsible
for dismissing the picker on cancel or finished picking.
*/
@protocol JPImagePickerControllerDelegate <NSObject>
@optional
/*!
@method imagePickerDidCancel:
@abstract Called when picker did cancel
@discussion This method is called when the user canceled picking.
The delegate is responsible to dismiss the picker here.
@param picker The picker which called this method.
*/
- (void)imagePickerDidCancel:(JPImagePickerController *)picker;
/*!
@method imagePicker:didFinishPickingWithImageNumber:
@abstract Called when the user picked a image.
@discussion This method is called when the user die finish picking.
The delegate is responsible to dismiss the picker here.
@param picker The picker which called this method.
@param imageNumber The number which image the user picked.
*/
- (void)imagePicker:(JPImagePickerController *)picker didFinishPickingWithImageNumber:(NSInteger)imageNumber;
@end
/*!
@protocol JPImagePickerControllerDataSource
@abstract The data source protocol for JPImagePickerController
@discussion The JPImagePickerController asks this data source for all
data which it wants to display.
*/
@protocol JPImagePickerControllerDataSource <NSObject>
@optional
/*!
@method numberOfImagesInImagePicker:
@abstract Should return the number of images.
@discussion This method should return the number of images which the
picker should display.
@param picker The picker which called this method.
*/
- (NSInteger)numberOfImagesInImagePicker:(JPImagePickerController *)picker;
/*!
@method imagePicker:thumbnailForImageNumber:
@abstract Asks the data source for a thumbnail to insert in a particular location
the image picker.
@discussion This method should return a UIImage thumbnail for a image at the
image number position. The image should have the width of kJPImagePickerControllerThumbnailWidth
and height of kJPImagePickerControllerThumbnailWidth. If it is not that size the
image picker will resize it so it fits.
@param picker A picker-object requesting the thumbnail.
@param imageNumber A image number locating the image in the picker.
*/
- (UIImage *)imagePicker:(JPImagePickerController *)picker thumbnailForImageNumber:(NSInteger)imageNumber;
/*!
@method imagePicker:imageForImageNumber:
@abstract Asks the data source for a image to show in a preview.
@discussion This method should return a UIImage image for the preview at
the image number position. The image should have the width of kJPImagePickerControllerPreviewImageWidth
and height of kJPImagePickerControllerPreviewImageWidth. If it is not that size the
image picker will resize it so it fits.
@param picker A picker-object requesting the image.
@param imageNumber A image number locating the image in the picker.
*/
- (UIImage *)imagePicker:(JPImagePickerController *)picker imageForImageNumber:(NSInteger)imageNumber;
@end
#pragma mark -
/*!
@class JPImagePickerController
@abstract A image picker view controller.
@discussion A class which represents a image picker controller like apples UIImagePickerController
but lets you use a external dataSource for the images.
@updated 2009-11-14
*/
@interface JPImagePickerController : UIViewController {
IBOutlet UINavigationController *modalNavigationController;
UIStatusBarStyle originalStatusBarStyle;
id<JPImagePickerControllerDelegate> delegate;
id<JPImagePickerControllerDataSource> dataSource;
NSString *imagePickerTitle;
}
/*!
@property modalNavigationController
@abstract The additional navigation controller.
@discussion We need it to be able to view a navigation when the user
picks a image.
*/
@property (nonatomic, retain) IBOutlet UINavigationController *modalNavigationController;
/*!
@property overviewController
@abstract Controller for the scrollView.
@discussion This controller holds the scrollView with all the buttons which
represent the images.
*/
@property (nonatomic, retain) JPImagePickerOverviewController *overviewController;
/*!
@property overviewController
@abstract Original StatusBarStyle at the beginning.
@discussion This property saves the UIStatusBarStyle at the beginning, so that
we'll be able to change it back when we dismiss the image picker.
*/
@property (nonatomic, readonly) UIStatusBarStyle originalStatusBarStyle;
/*!
@property delegate
@abstract The image picker's delegate object.
@discussion The delegate receives notifications when the user picks an image,
or exits the picker interface. The delegate also decides when to dismiss
the picker interface, so you must provide a delegate to use a picker.
If this property is nil, the picker is dismissed immediately if you try
to show it.
*/
@property (nonatomic, assign) id<JPImagePickerControllerDelegate> delegate;
/*!
@property dataSource
@abstract The data source for the picker view.
@discussion The data source must adopt the JPImagePickerControllerDataSource protocol
and implement the required methods to return the number of components and the
number of rows in each component.
*/
@property (nonatomic, assign) id<JPImagePickerControllerDataSource> dataSource;
/*!
@property imagePickerTitle
@abstract The image picker title.
@discussion You can set the title for the image overview here.
*/
@property (nonatomic, retain) NSString *imagePickerTitle;
/*!
@method cancelPicking:
@param sender The button which sends the action.
*/
- (void)cancelPicking:(id)sender;
@end