Free the lizard
git-svn-id: svn://10.0.0.236/trunk@10 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
456
mozilla/cmd/winfe/fehist.cpp
Normal file
456
mozilla/cmd/winfe/fehist.cpp
Normal file
@@ -0,0 +1,456 @@
|
||||
/* -*- 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.
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "fehist.h"
|
||||
#include "mhst_ent.h"
|
||||
CHistory::CHistory(HISTORY *pUseThis, BOOL bClone)
|
||||
{
|
||||
m_pHistory = NULL;
|
||||
|
||||
if(pUseThis) {
|
||||
if(!bClone) {
|
||||
m_pHistory = pUseThis;
|
||||
}
|
||||
else {
|
||||
m_pHistory = Clone(pUseThis);
|
||||
}
|
||||
}
|
||||
else {
|
||||
JMCException *pEX = NULL;
|
||||
m_pHistory = HISTORYFactory_Create(&pEX);
|
||||
if(pEX) {
|
||||
CJMCException e(pEX);
|
||||
e.ReportError();
|
||||
|
||||
m_pHistory = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CHistory::~CHistory()
|
||||
{
|
||||
JMCException *pEX = NULL;
|
||||
if(m_pHistory) {
|
||||
HISTORY_release(m_pHistory, &pEX);
|
||||
if(pEX) {
|
||||
CJMCException e(pEX);
|
||||
e.ReportError();
|
||||
}
|
||||
m_pHistory = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void CHistory::SetHISTORY(HISTORY *pUsurp, BOOL bClone)
|
||||
{
|
||||
JMCException *pEX = NULL;
|
||||
if(m_pHistory) {
|
||||
HISTORY_release(m_pHistory, &pEX);
|
||||
if(pEX) {
|
||||
CJMCException e(pEX);
|
||||
e.ReportError();
|
||||
}
|
||||
m_pHistory = NULL;
|
||||
}
|
||||
|
||||
if(!bClone) {
|
||||
m_pHistory = pUsurp;
|
||||
}
|
||||
else {
|
||||
m_pHistory = Clone(pUsurp);
|
||||
}
|
||||
}
|
||||
|
||||
HISTORY *CHistory::GetHISTORY()
|
||||
{
|
||||
return(m_pHistory);
|
||||
}
|
||||
|
||||
HISTORY *CHistory::Clone(HISTORY *pTwin)
|
||||
{
|
||||
JMCException *j = NULL;
|
||||
HISTORY *pRetval = NULL;
|
||||
|
||||
if(pTwin) {
|
||||
pRetval = (HISTORY *)HISTORY_clone(pTwin, &j);
|
||||
if(j) {
|
||||
CJMCException e(j);
|
||||
e.ReportError();
|
||||
pRetval = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
HST_ENT *CHistory::Clone(HST_ENT *pTwin)
|
||||
{
|
||||
JMCException *j = NULL;
|
||||
HST_ENT *pRetval = NULL;
|
||||
|
||||
if(pTwin) {
|
||||
pRetval = (HST_ENT *)HST_ENT_clone(pTwin, &j);
|
||||
if(j) {
|
||||
CJMCException e(j);
|
||||
e.ReportError();
|
||||
pRetval = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
BOOL CHistory::Compare(HISTORY *p1, HISTORY *p2)
|
||||
{
|
||||
BOOL bRetval = FALSE;
|
||||
JMCException *j = NULL;
|
||||
|
||||
if(p1 && p2) {
|
||||
bRetval = HISTORY_equals(p1, (void *)p2, &j);
|
||||
if(j) {
|
||||
CJMCException e(j);
|
||||
e.ReportError();
|
||||
|
||||
bRetval = FALSE;
|
||||
}
|
||||
}
|
||||
else if(!p1 && !p2) {
|
||||
// NULLs are true.
|
||||
bRetval = TRUE;
|
||||
}
|
||||
|
||||
return(bRetval);
|
||||
}
|
||||
|
||||
BOOL CHistory::Compare(HST_ENT *p1, HST_ENT *p2)
|
||||
{
|
||||
BOOL bRetval = FALSE;
|
||||
JMCException *j = NULL;
|
||||
|
||||
if(p1 && p2) {
|
||||
bRetval = HST_ENT_equals(p1, (void *)p2, &j);
|
||||
if(j) {
|
||||
CJMCException e(j);
|
||||
e.ReportError();
|
||||
|
||||
bRetval = FALSE;
|
||||
}
|
||||
}
|
||||
else if(!p1 && !p2) {
|
||||
// NULLs are true.
|
||||
bRetval = TRUE;
|
||||
}
|
||||
|
||||
return(bRetval);
|
||||
}
|
||||
|
||||
|
||||
void CHistory::Add(HST_ENT *pAdd)
|
||||
{
|
||||
if(m_pHistory && pAdd) {
|
||||
HISTORY_addHistoryEntry(m_pHistory, pAdd, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
HST_ENT *CHistory::Add(URL *pUrl)
|
||||
{
|
||||
HST_ENT *pRetval = NULL;
|
||||
JMCException *j;
|
||||
|
||||
if(pUrl) {
|
||||
pRetval = HST_ENTFactory_Create(&j, pUrl, NULL);
|
||||
if(j) {
|
||||
CJMCException e(j);
|
||||
e.ReportError();
|
||||
|
||||
pRetval = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
void CHistory::SetCurrent(HST_ENT *pCurrent)
|
||||
{
|
||||
if(m_pHistory && pCurrent) {
|
||||
HISTORY_setCurrentHistoryEntry(m_pHistory, pCurrent);
|
||||
}
|
||||
}
|
||||
|
||||
void CHistory::SetCurrentIndex(int iIndex)
|
||||
{
|
||||
SetCurrent(GetIndex(iIndex));
|
||||
}
|
||||
|
||||
HST_ENT *CHistory::GetCurrent()
|
||||
{
|
||||
HST_ENT *pRetval = NULL;
|
||||
|
||||
if(m_pHistory) {
|
||||
pRetval = HISTORY_getCurrentHistoryEntry(m_pHistory);
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
BOOL CHistory::Remove(HST_ENT *pRemove)
|
||||
{
|
||||
BOOL bRetval = FALSE;
|
||||
|
||||
if(m_pHistory) {
|
||||
bRetval = HISTORY_removeHistoryEntry(m_pHistory, pRemove);
|
||||
}
|
||||
|
||||
return(bRetval);
|
||||
}
|
||||
|
||||
HST_ENT *CHistory::GetNext()
|
||||
{
|
||||
HST_ENT *pRetval = NULL;
|
||||
|
||||
if(m_pHistory) {
|
||||
pRetval = HISTORY_getNextHistoryEntry(m_pHistory, GetCurrent());
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
HST_ENT *CHistory::GetPrev()
|
||||
{
|
||||
HST_ENT *pRetval = NULL;
|
||||
|
||||
if(m_pHistory) {
|
||||
pRetval = HISTORY_getPreviousHistoryEntry(m_pHistory, GetCurrent());
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
HST_ENT *CHistory::GetIndex(int iIndex)
|
||||
{
|
||||
HST_ENT *pRetval = NULL;
|
||||
|
||||
if(m_pHistory) {
|
||||
pRetval = HISTORY_getIndexedHistoryEntry(m_pHistory, iIndex);
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
int CHistory::GetIndex(HST_ENT *pEntry)
|
||||
{
|
||||
int iRetval = 0;
|
||||
|
||||
if(m_pHistory && pEntry) {
|
||||
iRetval = HISTORY_getHistoryEntryIndex(m_pHistory, pEntry);
|
||||
}
|
||||
|
||||
return(iRetval);
|
||||
}
|
||||
|
||||
void CHistory::SetUrl(HST_ENT *pHist, URL *pUrl)
|
||||
{
|
||||
if(pHist && pUrl) {
|
||||
HST_ENT_setURL(pHist, pUrl);
|
||||
}
|
||||
}
|
||||
|
||||
URL *CHistory::GetUrl(HST_ENT *pHist)
|
||||
{
|
||||
URL *pRetval = NULL;
|
||||
|
||||
if(pHist) {
|
||||
pRetval = HST_ENT_getURL(pHist);
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
int CHistory::SetTitle(HST_ENT *pHist, const char *pTitle)
|
||||
{
|
||||
int iRetval = 0; // What's the default?
|
||||
|
||||
// Allow NULL title....
|
||||
if(pHist) {
|
||||
iRetval = HST_ENT_setTitle(pHist, pTitle);
|
||||
}
|
||||
|
||||
return(iRetval);
|
||||
}
|
||||
|
||||
const char *CHistory::GetTitle(HST_ENT *pHist)
|
||||
{
|
||||
const char *pRetval = NULL;
|
||||
|
||||
if(pHist) {
|
||||
pRetval = HST_ENT_getTitle(pHist);
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
int CHistory::SetFormData(HST_ENT *pHist, void *pData)
|
||||
{
|
||||
int iRetval = 0; // What's the default?
|
||||
|
||||
// Allow NULL data....
|
||||
if(pHist) {
|
||||
iRetval = HST_ENT_setFormData(pHist, pData);
|
||||
}
|
||||
|
||||
return(iRetval);
|
||||
}
|
||||
|
||||
void *CHistory::GetFormData(HST_ENT *pHist)
|
||||
{
|
||||
void *pRetval = NULL;
|
||||
|
||||
if(pHist) {
|
||||
pRetval = HST_ENT_getFormData(pHist);
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
int CHistory::SetEmbedData(HST_ENT *pHist, void *pData)
|
||||
{
|
||||
int iRetval = 0; // What's the default?
|
||||
|
||||
// Allow NULL data....
|
||||
if(pHist) {
|
||||
iRetval = HST_ENT_setEmbedData(pHist, pData);
|
||||
}
|
||||
|
||||
return(iRetval);
|
||||
}
|
||||
|
||||
void *CHistory::GetEmbedData(HST_ENT *pHist)
|
||||
{
|
||||
void *pRetval = NULL;
|
||||
|
||||
if(pHist) {
|
||||
pRetval = HST_ENT_getEmbedData(pHist);
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
int CHistory::SetGridData(HST_ENT *pHist, void *pData)
|
||||
{
|
||||
int iRetval = 0; // What's the default?
|
||||
|
||||
// Allow NULL data....
|
||||
if(pHist) {
|
||||
iRetval = HST_ENT_setGridData(pHist, pData);
|
||||
}
|
||||
|
||||
return(iRetval);
|
||||
}
|
||||
|
||||
void *CHistory::GetGridData(HST_ENT *pHist)
|
||||
{
|
||||
void *pRetval = NULL;
|
||||
|
||||
if(pHist) {
|
||||
pRetval = HST_ENT_getGridData(pHist);
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
int CHistory::SetWindowData(HST_ENT *pHist, void *pData)
|
||||
{
|
||||
int iRetval = 0; // What's the default?
|
||||
|
||||
// Allow NULL data....
|
||||
if(pHist) {
|
||||
iRetval = HST_ENT_setWindowData(pHist, pData);
|
||||
}
|
||||
|
||||
return(iRetval);
|
||||
}
|
||||
|
||||
void *CHistory::GetWindowData(HST_ENT *pHist)
|
||||
{
|
||||
void *pRetval = NULL;
|
||||
|
||||
if(pHist) {
|
||||
pRetval = HST_ENT_getWindowData(pHist);
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
int CHistory::SetAppletData(HST_ENT *pHist, void *pData)
|
||||
{
|
||||
int iRetval = 0; // What's the default?
|
||||
|
||||
// Allow NULL data....
|
||||
if(pHist) {
|
||||
iRetval = HST_ENT_setAppletData(pHist, pData);
|
||||
}
|
||||
|
||||
return(iRetval);
|
||||
}
|
||||
|
||||
void *CHistory::GetAppletData(HST_ENT *pHist)
|
||||
{
|
||||
void *pRetval = NULL;
|
||||
|
||||
if(pHist) {
|
||||
pRetval = HST_ENT_getAppletData(pHist);
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
void CHistory::SetPosition(HST_ENT *pHist, long lEleID)
|
||||
{
|
||||
if(pHist) {
|
||||
HST_ENT_setDocumentPosition(pHist, lEleID);
|
||||
}
|
||||
}
|
||||
|
||||
long CHistory::GetPosition(HST_ENT *pHist)
|
||||
{
|
||||
long lRetval = 0; // What's a good default?
|
||||
|
||||
if(pHist) {
|
||||
lRetval = HST_ENT_getDocumentPosition(pHist);
|
||||
}
|
||||
|
||||
return(lRetval);
|
||||
}
|
||||
|
||||
HST_ENT *CHistory::GetNext(HST_ENT *pEntry)
|
||||
{
|
||||
HST_ENT *pRetval = NULL;
|
||||
if(pEntry) {
|
||||
pRetval = HST_ENT_getNext(pEntry);
|
||||
}
|
||||
|
||||
return(pRetval);
|
||||
}
|
||||
|
||||
void CHistory::SetNext(HST_ENT *pThis, HST_ENT *pNext)
|
||||
{
|
||||
// Allow NULL next....
|
||||
if(pThis) {
|
||||
HST_ENT_setNext(pThis, pNext);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user