18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1.  Redistributions of source code must retain the above copyright
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     notice, this list of conditions and the following disclaimer.
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2.  Redistributions in binary form must reproduce the above copyright
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     notice, this list of conditions and the following disclaimer in the
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     documentation and/or other materials provided with the distribution.
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     its contributors may be used to endorse or promote products derived
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     from this software without specific prior written permission.
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <Cocoa/Cocoa.h>
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class WebHistoryItemPrivate;
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSURL;
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion Notification sent when history item is modified.
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebHistoryItemChanged Posted from whenever the value of
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    either the item's title, alternate title, url strings, or last visited interval
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    changes.  The userInfo will be nil.
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern NSString *WebHistoryItemChangedNotification;
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @class WebHistoryItem
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion  WebHistoryItems are created by WebKit to represent pages visited.
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    The WebBackForwardList and WebHistory classes both use WebHistoryItems to represent
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    pages visited.  With the exception of the displayTitle, the properties of
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebHistoryItems are set by WebKit.  WebHistoryItems are normally never created directly.
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@interface WebHistoryItem : NSObject <NSCopying>
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@private
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebHistoryItemPrivate *_private;
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method initWithURLString:title:lastVisitedTimeInterval:
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param URLString The URL string for the item.
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param title The title to use for the item.  This is normally the <title> of a page.
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param time The time used to indicate when the item was used.
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract Initialize a new WebHistoryItem
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion WebHistoryItems are normally created for you by the WebKit.
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    You may use this method to prepopulate a WebBackForwardList, or create
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    'artificial' items to add to a WebBackForwardList.  When first initialized
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    the URLString and originalURLString will be the same.
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (id)initWithURLString:(NSString *)URLString title:(NSString *)title lastVisitedTimeInterval:(NSTimeInterval)time;
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method originalURLString
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract The string representation of the originial URL of this item.
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    This value is normally set by the WebKit.
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @result The string corresponding to the initial URL of this item.
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (NSString *)originalURLString;
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method URLString
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract The string representation of the URL represented by this item.
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion The URLString may be different than the originalURLString if the page
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    redirected to a new location.  This value is normally set by the WebKit.
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @result The string corresponding to the final URL of this item.
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (NSString *)URLString;
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method title
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract The title of the page represented by this item.
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion This title cannot be changed by the client.  This value
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    is normally set by the WebKit when a page title for the item is received.
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @result The title of this item.
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (NSString *)title;
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method lastVisitedTimeInterval
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract The last time the page represented by this item was visited. The interval
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    is since the reference date as determined by NSDate.  This value is normally set by
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    the WebKit.
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @result The last time this item was visited.
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (NSTimeInterval)lastVisitedTimeInterval;
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method setAlternateTitle:
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param alternateTitle The new display title for this item.
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract A title that may be used by the client to display this item.
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (void)setAlternateTitle:(NSString *)alternateTitle;
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method title
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract A title that may be used by the client to display this item.
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @result The alternate title for this item.
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (NSString *)alternateTitle;
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method icon
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract The favorite icon of the page represented by this item.
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion This icon returned will be determined by the WebKit.
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @result The icon associated with this item's URL.
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (NSImage *)icon;
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@end
127