Added GetTarget() to be used to resolve targetting.

This commit is contained in:
tbogard%aol.net 2000-01-30 07:34:10 +00:00
Родитель 7c45f8716d
Коммит fe363b71b9
2 изменённых файлов: 61 добавлений и 6 удалений

Просмотреть файл

@ -1164,8 +1164,7 @@ NS_IMETHODIMP nsDocShell::SetTitle(const PRUnichar* aTitle)
if(!parent)
{
nsCOMPtr<nsIBaseWindow> treeOwnerAsWin(do_QueryInterface(mTreeOwner));
if(!treeOwnerAsWin)
return NS_OK;
NS_ENSURE_TRUE(treeOwnerAsWin, NS_ERROR_FAILURE);
treeOwnerAsWin->SetTitle(aTitle);
}
@ -1584,7 +1583,7 @@ nsDocShellInitInfo* nsDocShell::InitInfo()
return mInitInfo = new nsDocShellInitInfo();
}
nsresult nsDocShell::GetChildOffset(nsIDOMNode *aChild, nsIDOMNode* aParent,
NS_IMETHODIMP nsDocShell::GetChildOffset(nsIDOMNode *aChild, nsIDOMNode* aParent,
PRInt32* aOffset)
{
NS_ENSURE_ARG_POINTER(aChild || aParent);
@ -1613,7 +1612,7 @@ nsresult nsDocShell::GetChildOffset(nsIDOMNode *aChild, nsIDOMNode* aParent,
return NS_ERROR_FAILURE;
}
nsresult nsDocShell::GetRootScrollableView(nsIScrollableView** aOutScrollView)
NS_IMETHODIMP nsDocShell::GetRootScrollableView(nsIScrollableView** aOutScrollView)
{
NS_ENSURE_ARG_POINTER(aOutScrollView);
@ -1630,7 +1629,7 @@ nsresult nsDocShell::GetRootScrollableView(nsIScrollableView** aOutScrollView)
return NS_OK;
}
nsresult nsDocShell::EnsureContentListener()
NS_IMETHODIMP nsDocShell::EnsureContentListener()
{
if(mContentListener)
return NS_OK;
@ -1644,7 +1643,7 @@ nsresult nsDocShell::EnsureContentListener()
return NS_OK;
}
nsresult nsDocShell::EnsureScriptEnvironment()
NS_IMETHODIMP nsDocShell::EnsureScriptEnvironment()
{
if(mScriptContext)
return NS_OK;
@ -1665,6 +1664,60 @@ nsresult nsDocShell::EnsureScriptEnvironment()
return NS_OK;
}
NS_IMETHODIMP nsDocShell::GetTarget(const PRUnichar* aName, nsIDocShellTreeItem** aShell)
{
nsAutoString name(aName);
if(!name.Length() || name.EqualsIgnoreCase("_self"))
{
*aShell = NS_STATIC_CAST(nsIDocShellTreeItem*, this);
}
else if(name.EqualsIgnoreCase("_blank"))
{
NS_ENSURE_SUCCESS(CreateTargetLocation(nsnull, aShell), NS_ERROR_FAILURE);
}
else if(name.EqualsIgnoreCase("_parent"))
{
GetSameTypeParent(aShell);
if(!*aShell)
*aShell = NS_STATIC_CAST(nsIDocShellTreeItem*, this);
}
else if(name.EqualsIgnoreCase("_top"))
{
NS_ENSURE_SUCCESS(GetSameTypeRootTreeItem(aShell), NS_ERROR_FAILURE);
}
else if(name.EqualsIgnoreCase("_content"))
{
if(mTreeOwner)
mTreeOwner->FindItemWithName(aName, nsnull, aShell);
else
{
NS_ERROR("Someone isn't setting up the tree owner. You might like to try that."
"Things will.....you know, work.");
}
}
else
{
NS_ENSURE_SUCCESS(FindItemWithName(aName, nsnull, aShell), NS_ERROR_FAILURE);
if(!*aShell)
{
NS_ENSURE_SUCCESS(CreateTargetLocation(aName, aShell), NS_ERROR_FAILURE);
}
}
NS_IF_ADDREF(*aShell);
return NS_OK;
}
NS_IMETHODIMP nsDocShell::CreateTargetLocation(const PRUnichar* aName,
nsIDocShellTreeItem** aShell)
{
// XXX Implement
NS_ERROR("Not Yet IMplemented");
return NS_ERROR_FAILURE;
}
void nsDocShell::SetCurrentURI(nsIURI* aUri)
{
mCurrentURI = aUri; //This assignment addrefs

Просмотреть файл

@ -108,6 +108,8 @@ protected:
NS_IMETHOD GetRootScrollableView(nsIScrollableView** aOutScrollView);
NS_IMETHOD EnsureContentListener();
NS_IMETHOD EnsureScriptEnvironment();
NS_IMETHOD GetTarget(const PRUnichar* aName, nsIDocShellTreeItem** aShell);
NS_IMETHOD CreateTargetLocation(const PRUnichar* aName, nsIDocShellTreeItem** aShell);
void SetCurrentURI(nsIURI* aUri);
NS_IMETHOD CreateContentViewer(const char* aContentType, nsURILoadCommand aCommand,