////////////////////////////////////////////////////////// // Name: ListFunctions.h // // // // Description: Contains functions for managing // // information inside double-linked lists of type // // BookmarkDataStruct and FolderDataStruct. // // Double-linked lists are not encapsulated, but // // these functions automate list operations. // // // // AUTHOR(1.0): Lucas Scharf, Feb 17, 1998 // // // // REVISIONS: // // 1.10: 4/7/1998: // // Added Searching Functions: // // FindFolderWithNameString // // FindBookmarkWithNameString // // Simplified RemoveBookmark - No return value // // Simplified RemoveFolder - No return value // // Added Recursive Delete capability to // // RemoveFolder. // // // // VERSION: 1.10 // ////////////////////////////////////////////////////////// //////////////////////////////////////////////////////// // Multiple Inclusion Protection // //////////////////////////////////////////////////////// #ifndef LISTFUNCTIONS_H #define LISTFUNCTIONS_H ////////////////////////////////////////////////////////// // Public Type Declarations // ////////////////////////////////////////////////////////// typedef enum FolderDeleteEnumType {EDeleteSloppy, EDeleteShift, EDeleteAll}; ////////////////////////////////////////////////////////// // Public Function Prototypes // ////////////////////////////////////////////////////////// //-- List creation functions -- void CreateBookmarkList(BookmarkDataPtr &ListHeadPtr); void CreateFolderList(FolderDataPtr &ListHeadPtr); //-- Addition Functions -- void AddBookmark(BookmarkDataStruct NewBookmark, BookmarkDataPtr &ListHeadPtr); void AddFolder(FolderDataStruct NewFolder, FolderDataPtr& ListHead); //-- Selective Removal Functions -- void RemoveBookmark(BookmarkDataPtr& ListHeadPtr, BookmarkDataPtr& ThisPtr); void RemoveFolder(FolderDataPtr &FolderListHeadPtr, BookmarkDataPtr BookmarkListHeadPtr, FolderDataPtr &FolderToDeletePtr, FolderDeleteEnumType DeleteType); //-- Nuke Functions -- void DestroyBookmarkList(BookmarkDataPtr &ListHeadPtr); void DestroyFolderList(FolderDataPtr &ListHeadPtr); //-- Folder Searching functions -- FolderDataPtr FindFolderWithEntryIndex(FolderDataPtr Position, int EntryIndex); FolderDataPtr FindFolderWithParentEntryIndex(FolderDataPtr Position, int ParentEntryIndex); FolderDataPtr FindFolderWithName(FolderDataPtr Position, const char NameToFind[]); //-- Bookmark Searching functions -- BookmarkDataPtr FindBookmarkWithParentEntryIndex(BookmarkDataPtr Position, int ParentEntryIndex); BookmarkDataPtr FindBookmarkNumberInFolder(BookmarkDataPtr ListHead, int ParentEntryIndex, int BookmarkNumber); BookmarkDataPtr FindBookmarkWithName(BookmarkDataPtr ListHead, const char NameToFInd[]); #endif