Iam getting a nsIFrame from PageContentFrame(print preview code).I try
to insert a div node before a frame as follows.But I my node insertion
fails when we have very long paragraph and we have to insert node
inside the same <p> node with different offsets.
/////////////////////////////////////////////////////////////////////
nsIFrame lf = // filled from our code
nsIContent *cont = lf->GetContent();
nsCOMPtr<nsIDOMRange> r;
if (cont)
{
nsCOMPtr<nsIDOMDocument> doc;
n->GetOwnerDocument(getter_AddRefs(doc));
nsCOMPtr<nsIDOMDocumentRange>
docRange(do_QueryInterface(doc));
if (docRange) docRange->CreateRange(getter_AddRefs(r));
}
..... // some code exists
PRInt32 start, end;
nsCOMPtr<nsIDOMNode> n = do_QueryInterface(cont);
lf->GetOffsets(start,end);
r->SetStart(n,start);
r->SetEnd(n,start);
if (NS_FAILED(r->InsertNode(CreatePageBreakNode(lf,pno))))
{
printf("NODE INSERTION FAILED FOR %d\n",pno);
}
////////////////////////
static nsCOMPtr<nsIDOMElement>
CreatePageBreakNode(nsIFrame *f,
int pno)
{
//creating a div element with some attributes using
doc.createElement("div")
return divElement;
}
_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout