Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: a4dbf0967c
Fetching contributors…

Cannot retrieve contributors at this time

file 149 lines (102 sloc) 6.11 kb
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
//
// DSActivityView.h
// Dejal Open Source
//
// Created by David Sinclair on 2009-07-26.
// Copyright 2009-2010 Dejal Systems, LLC. All rights reserved.
//
// Redistribution and use in binary and source forms, with or without modification,
// are permitted for any project, commercial or otherwise, provided that the
// following conditions are met:
//
// Redistributions in binary form must display the copyright notice in the About
// view, website, and/or documentation.
//
// Redistributions of source code must retain the copyright notice, this list of
// conditions, and the following disclaimer.
//
// THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
// PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THIS SOFTWARE.
//

#import <UIKit/UIKit.h>


@interface DSActivityView : UIView
{
    UIView *_originalView;
    UIView *_borderView;
    UIActivityIndicatorView *_activityIndicator;
    UILabel *_activityLabel;
    NSUInteger _labelWidth;
    BOOL _showNetworkActivityIndicator;
}

// The view to contain the activity indicator and label. The bezel style has a semi-transparent rounded rectangle, others are fully transparent:
@property (nonatomic, readonly) UIView *borderView;

// The activity indicator view; automatically created on first access:
@property (nonatomic, readonly) UIActivityIndicatorView *activityIndicator;

// The activity label; automatically created on first access:
@property (nonatomic, readonly) UILabel *activityLabel;

// A fixed width for the label text, or zero to automatically calculate the text size (normally set on creation of the view object):
@property (nonatomic) NSUInteger labelWidth;

// Whether to show the network activity indicator in the status bar. Set to YES if the activity is network-related. This can be toggled on and off as desired while the activity view is visible (e.g. have it on while fetching data, then disable it while parsing it). By default it is not shown:
@property (nonatomic) BOOL showNetworkActivityIndicator;

// Returns the currently displayed activity view, or nil if there isn't one:
+ (DSActivityView *)currentActivityView;

// Creates and adds an activity view centered within the specified view, using the label "Loading...". Returns the activity view, already added as a subview of the specified view:
+ (DSActivityView *)newActivityViewForView:(UIView *)addToView;

// Creates and adds an activity view centered within the specified view, using the specified label. Returns the activity view, already added as a subview of the specified view:
+ (DSActivityView *)newActivityViewForView:(UIView *)addToView withLabel:(NSString *)labelText;

// Creates and adds an activity view centered within the specified view, using the specified label and a fixed label width. The fixed width is useful if you want to change the label text while the view is visible. Returns the activity view, already added as a subview of the specified view:
+ (DSActivityView *)newActivityViewForView:(UIView *)addToView withLabel:(NSString *)labelText width:(NSUInteger)labelWidth;

// Designated initializer. Configures the activity view using the specified label text and width, and adds as a subview of the specified view:
- (DSActivityView *)initForView:(UIView *)addToView withLabel:(NSString *)labelText width:(NSUInteger)labelWidth;

// Immediately removes and releases the view without any animation:
+ (void)removeView;

@end


// ----------------------------------------------------------------------------------------
#pragma mark -
// ----------------------------------------------------------------------------------------


// These methods are exposed for subclasses to override to customize the appearance and behavior; see the implementation for details:

@interface DSActivityView ()

@property (nonatomic, retain) UIView *originalView;

- (UIView *)viewForView:(UIView *)view;
- (CGRect)enclosingFrame;
- (void)setupBackground;
- (void)animateShow;
- (void)animateRemove;

@end


// ----------------------------------------------------------------------------------------
#pragma mark -
// ----------------------------------------------------------------------------------------


@interface DSWhiteActivityView : DSActivityView
{
}

@end


// ----------------------------------------------------------------------------------------
#pragma mark -
// ----------------------------------------------------------------------------------------


@interface DSBezelActivityView : DSActivityView
{
}

// Animates the view out from the superview and releases it, or simply removes and releases it immediately if not animating:
+ (void)removeViewAnimated:(BOOL)animated;

@end


// ----------------------------------------------------------------------------------------
#pragma mark -
// ----------------------------------------------------------------------------------------


@interface DSKeyboardActivityView : DSBezelActivityView
{
}

// Creates and adds a keyboard-style activity view, using the label "Loading...". Returns the activity view, already covering the keyboard, or nil if the keyboard isn't currently displayed:
+ (DSKeyboardActivityView *)newActivityView;

// Creates and adds a keyboard-style activity view, using the specified label. Returns the activity view, already covering the keyboard, or nil if the keyboard isn't currently displayed:
+ (DSKeyboardActivityView *)newActivityViewWithLabel:(NSString *)labelText;

@end


// ----------------------------------------------------------------------------------------
#pragma mark -
// ----------------------------------------------------------------------------------------


@interface UIApplication (KeyboardView)

- (UIView *)keyboardView;

@end;
Something went wrong with that request. Please try again.