New methods to set and get title for an index

This commit is contained in:
radha%netscape.com 1999-08-20 05:25:55 +00:00
parent 4d20c10700
commit 98a9fba54a

View File

@ -79,14 +79,14 @@ public:
nsresult DestroyChildren();
/**
* Get the name of the page
* Get the Title of the page
*/
nsresult GetName(const PRUnichar ** aName);
nsresult GetTitle(const PRUnichar ** aName);
/**
* Set the name of the page
* Set the title of the page
*/
nsresult SetName(const PRUnichar * aName);
nsresult SetTitle(const PRUnichar * aName);
/**
* Get the URL of the page
@ -151,12 +151,10 @@ public:
*/
nsHistoryEntry * GetRootDoc();
private:
nsIWebShell * mWS; //Webshell corresponding to this history entry
nsString * mURL; // URL for this history entry
nsString * mName; // Name of the document
nsString * mTitle; // Name of the document
nsVoidArray mChildren; // children list
PRInt32 mChildCount; // # of children
nsHistoryEntry * mParent;
@ -171,19 +169,46 @@ nsHistoryEntry::nsHistoryEntry()
mHistoryList = nsnull;
mParent = nsnull;
mURL = nsnull;
mName = nsnull;
mTitle = nsnull;
// NS_INIT_REFCNT();
}
nsHistoryEntry::~nsHistoryEntry()
{
if (mTitle)
delete mTitle;
if (mURL)
delete mURL;
NS_IF_RELEASE(mWS);
NS_IF_RELEASE(mHistoryList);
DestroyChildren();
}
//NS_IMPL_ADDREF(nsHistoryEntry)
//NS_IMPL_RELEASE(nsHistoryEntry)
nsresult
nsHistoryEntry::DestroyChildren() {
nsHistoryEntry * hEntry=nsnull;
nsHistoryEntry * parent=nsnull;
PRInt32 i, n;
n = mChildren.Count();
for (i = 0; i < n; i++) {
nsHistoryEntry* child = (nsHistoryEntry *) mChildren.ElementAt(i);
child->SetParent(nsnull);
delete child;
mChildCount--;
}
mChildren.Clear();
return NS_OK;
}
nsresult
nsHistoryEntry::GetURL(const PRUnichar** aURL)
@ -217,6 +242,24 @@ nsHistoryEntry::SetWebShell(nsIWebShell * aWebShell)
return NS_OK;
}
nsresult
nsHistoryEntry::GetTitle(const PRUnichar** aTitle)
{
if (mTitle)
*aTitle = mTitle->GetUnicode();
return NS_OK;
}
nsresult
nsHistoryEntry::SetTitle(const PRUnichar* aTitle)
{
if (mTitle)
delete mTitle;
if (aTitle)
mTitle = new nsString(aTitle);
return NS_OK;
}
PRInt32
nsHistoryEntry::GetChildCnt()
@ -241,9 +284,9 @@ nsHistoryEntry::GetChildAt(PRInt32 aIndex, nsHistoryEntry *& aResult)
nsresult
nsHistoryEntry::SetSessionHistoryID(nsISessionHistory * aHistoryListID)
{
// NS_IF_RELEASE(mHistoryList);
NS_IF_RELEASE(mHistoryList);
mHistoryList = aHistoryListID;
// NS_IF_ADDREF(aHistoryListID);
NS_ADDREF(aHistoryListID);
return NS_OK;
}
@ -284,25 +327,6 @@ nsHistoryEntry::AddChild(nsHistoryEntry* aChild)
}
nsresult
nsHistoryEntry::DestroyChildren() {
nsHistoryEntry * hEntry=nsnull;
nsHistoryEntry * parent=nsnull;
PRInt32 i, n;
n = mChildren.Count();
for (i = 0; i < n; i++) {
nsHistoryEntry* child = (nsHistoryEntry *) mChildren.ElementAt(i);
child->SetParent(nsnull);
delete child;
// NS_RELEASE(child);
mChildCount--;
}
mChildren.Clear();
return NS_OK;
}
/* Create a historyentry for the given webshell. If the
@ -639,6 +663,17 @@ public:
NS_IMETHOD SetURLForIndex(PRInt32 aIndex, const PRUnichar * aURL);
/**
* Get the title of the index
*/
NS_IMETHOD GetTitleForIndex(PRInt32 aIndex, const PRUnichar ** aTitle);
/**
* Set the Title of the index
*/
NS_IMETHOD SetTitleForIndex(PRInt32 aIndex, const PRUnichar * aTitle);
protected:
virtual ~nsSessionHistory();
@ -1099,6 +1134,45 @@ nsSessionHistory::SetURLForIndex(PRInt32 aIndex, const PRUnichar* aURL)
return NS_OK;
}
NS_IMETHODIMP
nsSessionHistory::GetTitleForIndex(PRInt32 aIndex, const PRUnichar** aTitle)
{
nsHistoryEntry * hist=nsnull;
if (aIndex < 0 || aIndex >= mHistoryLength)
{
if (APP_DEBUG) printf("nsSessionHistory::GetTitleForIndex Returning error in GetURL for Index\n");
return NS_ERROR_FAILURE;
}
hist = (nsHistoryEntry *) mHistoryEntries.ElementAt(aIndex);
if (hist)
hist->GetTitle(aTitle);
return NS_OK;
}
NS_IMETHODIMP
nsSessionHistory::SetTitleForIndex(PRInt32 aIndex, const PRUnichar* aTitle)
{
nsHistoryEntry * hist=nsnull;
if (aIndex < 0 || aIndex >= mHistoryLength)
return NS_ERROR_FAILURE;
hist = (nsHistoryEntry *) mHistoryEntries.ElementAt(aIndex);
hist->SetTitle(aTitle);
nsString title(aTitle);
if(APP_DEBUG) printf("Setting title %s for index %d\n", title.ToNewCString(), aIndex);
return NS_OK;
}
NS_EXPORT nsresult NS_NewSessionHistory(nsISessionHistory** aResult)
{