home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
-
- #ifndef GLHIST_H
- #define GLHIST_H
-
- #include "ntypes.h"
-
- typedef enum gh_SortColumn
- {
- eGH_NoSort = -1,
- eGH_NameSort,
- eGH_LocationSort,
- eGH_FirstDateSort,
- eGH_LastDateSort,
- eGH_VisitCountSort
- }gh_SortColumn;
-
- typedef struct _gh_HistEntry
- {
- char * address;
- time_t last_accessed;
- time_t first_accessed;
- int32 iCount;
- int32 iFlags;
- char * pszName;
- }gh_HistEntry;
-
- typedef struct _gh_HistEntryData
- {
- time_t last_accessed;
- time_t first_accessed;
- int32 iCount;
- int32 iFlags;
- char * pszName;
- }gh_HistEntryData;
-
- typedef enum gh_FilterOp
- {
- eGH_FOEquals,
- eGH_FOEqualsNot,
-
- eGH_FOGreater,
- eGH_FOGreaterEqual,
- eGH_FOLess,
- eGH_FOLessEqual,
-
- eGH_FOHas,
- eGH_FOHasNot
- }gh_FilterOp;
-
- typedef enum gh_FilterLogOp
- {
- eGH_FLOAnd,
- eGH_FLOOr
- }gh_FilterLogOp;
-
- typedef struct _gh_FilterCondition
- {
- enum gh_SortColumn enCol;
- enum gh_FilterOp enOp;
-
- union
- {
- char * pszTest;
- int32 iTest;
- } tests;
- }gh_FilterCondition;
-
- typedef struct _gh_Filter
- {
- int32 iNumConditions;
- gh_FilterCondition * pConditions;
- gh_FilterLogOp * enOps;
- }gh_Filter;
-
- typedef struct _gh_NotifyMsg
- {
- int32 iNotifyMsg;
- char * pszKey;
- void * pUserData;
- } gh_NotifyMsg;
-
- typedef void * GHHANDLE;
- typedef void * GHURHANDLE;
-
- #define GH_NOTIFY_UPDATE 1
- #define GH_NOTIFY_DELETE 2
-
- #ifdef XP_WIN
- typedef int (__cdecl *GHISTORY_NOTIFYPROC)( gh_NotifyMsg *pMsg );
- #else
- typedef int (*GHISTORY_NOTIFYPROC)( gh_NotifyMsg *pMsg );
- #endif
-
- XP_BEGIN_PROTOS
-
- /* if the url was found in the global history then the then number of seconds since
- * the last access is returned. if the url is not found -1 is returned
- */
- extern int GH_CheckGlobalHistory(char * url);
-
- /* add or update the url in the global history
- */
- extern void GH_UpdateGlobalHistory(URL_Struct * URL_s);
-
- /* save the global history to a file and remove the list from memory
- */
- /*extern void GH_CleanupGlobalHistory(void);*/
-
- /* save the global history to a file and remove the list from memory
- */
- extern void GH_SaveGlobalHistory(void);
-
- /* free the global history list
- */
- extern void GH_FreeGlobalHistory(void);
-
- /* clear the entire global history list
- */
- extern void GH_ClearGlobalHistory(void);
-
- #if defined(XP_MAC) || defined(XP_UNIX)
- /* set the maximum time for an object in the Global history in
- * number of seconds
- */
- extern void GH_SetGlobalHistoryTimeout(int32 timeout_interval);
- #endif
-
- /* start global history tracking
- */
- extern void GH_InitGlobalHistory(void);
-
- /* create an HTML stream and push a bunch of HTML about
- * the global history
- *
- * returns -1
- */
- extern int NET_DisplayGlobalHistoryInfoAsHTML( MWContext *context, URL_Struct *URL_s, int format_out );
-
- /*
- // Context/Handle based functions to retrieve a pseudo cursor on the
- // Global History list (using a specified sort/index).
- */
- extern GHHANDLE GH_GetContext( enum gh_SortColumn enGHSort,
- gh_Filter * pFilter,
- GHISTORY_NOTIFYPROC pfNotifyProc,
- GHURHANDLE hUR,
- void * pUserData );
- extern void GH_ReleaseContext( GHHANDLE pContext, Bool bReleaseUR );
- extern gh_HistEntry * GH_GetRecord( GHHANDLE pContext, uint32 uRow );
- extern void GH_DeleteRecord( GHHANDLE pContext, uint32 uRow, Bool bGroup );
- extern uint32 GH_GetNumRecords( GHHANDLE pContext );
- extern gh_SortColumn GH_GetSortField( GHHANDLE pContext );
- extern int GH_UpdateURLTitle( URL_Struct *pUrl, char *pszTitle, Bool bFrameCell );
- extern int32 GH_GetRecordNum( GHHANDLE pContext, char *pszLocation );
- extern int GH_GetMRUPage( char *pszURL, int iMaxLen );
- extern void GH_FileSaveAsHTML( GHHANDLE pContext, MWContext *pMWContext );
- extern GHURHANDLE GH_GetURContext( GHHANDLE pContext );
- extern void GH_SupportUndoRedo( GHHANDLE pContext );
- extern void GH_Undo( GHHANDLE pContext );
- extern void GH_Redo( GHHANDLE pContext );
- extern Bool GH_CanUndo( GHHANDLE pContext );
- extern Bool GH_CanRedo( GHHANDLE pContext );
-
- /* AutoComplete stuff */
- enum autoCompStatus {foundDone, notFoundDone, stillSearching, dontCallOnIdle};
- extern enum autoCompStatus urlMatch(const char *criteria, char **result, Bool freshStart, Bool scroll);
- extern void NET_RegisterEnableUrlMatchCallback(void);
-
- XP_END_PROTOS
-
- #endif /* GLHIST_H */
-