On Apr 2, 1:54 pm, Eli Friedman <[EMAIL PROTECTED]> wrote:
> krithika wrote:
> > On Apr 2, 10:01 am, Eli Friedman <[EMAIL PROTECTED]> wrote:
> >> krithika wrote:
> >>> On Mar 31, 1:50 am, Eli Friedman <[EMAIL PROTECTED]> wrote:
> >>>> krithika wrote:
> >>>>> On Mar 30, 4:31 pm, Eli Friedman <[EMAIL PROTECTED]> wrote:
> >>>>>> krithika wrote:
> >>>>>>>    for (nsIFrame* page = mFrames.FirstChild(); page; page = page-
> >>>>>>>> GetNextSibling())
> >>>>>>>     {
> >>>>>>>      nsPageFrame * pf = NS_STATIC_CAST(nsPageFrame*, page);
> >>>>>>>      nsIFrame* contentFrame = pf->GetFirstChild(nsnull);
> >>>>>>>       nsPageContentFrame* contentPage =
> >>>>>>> NS_STATIC_CAST(nsPageContentFrame*, contentFrame);
> >>>>>>>       nsIFrame* firstPageElem=  contentPage-
> >>>>>>>> GetFirstChild(nsnull);
> >>>>>>>       nsIContent* cont = firstPageElem->GetContent();
> >>>>>>>       ...
> >>>>>>>       //process Content to get page start element and end element
> >>>>>>> details
> >>>>>>>     }
> >>>>>> Hmm, I'm assuming mFrames is the child frame list for 
> >>>>>> nsSimplePageSequence.
> >>>>>> In a normal situation (without any fixed-position elements), the only
> >>>>>> direct child of a page content frame is going to be a continuation of
> >>>>>> the frame associated with the root content node, since all the content
> >>>>>> in a document is a child of the root content node.  If you're 
> >>>>>> interested
> >>>>>> in where paragraphs and stuff split in an HTML document, you're going 
> >>>>>> to
> >>>>>> have to go down deeper into the frame tree.
> >>>>>> -Eli
> >>>>> I tried mFrames , but is protected. Can this be accessed from
> >>>>> somewhere.?
> >>>>> How do I iterate frame tree?
> >>>>> Will it give me the indication of where page breaks?
> >>>>> Iam lost again.
> >>>>> thanks & regards,
> >>>>> Krithika
> >>>> The normal way to navigate the frame tree is to use
> >>>> GetFirstChild(nsnull) to get the primary child, then GetNextSibling() to
> >>>> iterate over the list of children (sibling frames are in a singly-linked
> >>>> list), not attempting to directly access other frames' frame list.
> >>>> -Eli
> >>> Hi,
> >>> After I get AreaFrame from nsPageContentFrame Iam unable to iterate it
> >>> through.GetNextSibling always returns null.
> >>> How do I proceed in this case?
> >>> regards,
> >>> Krithika
> >> The pages aren't connected together through the sibling list.  You can
> >> use GetNextContinuation() to find continuations for blocks (i.e. frames
> >> with the same content).  Or you can just go back up the tree and use
> >> GetNextSibling to get the next page.
>
> >> -Eli
>
> > I have a for loop to navigate to next page.I only what to iterate
> > individual page content.
>
> >>From PageContentFrame I recursively do a GetFirstChild(nsnull) and I
> > am trying to print the frame type and content child count of those
> > frames.
>
> > For each page the first two frames are identical and subsequent frames
> > differ.
> > // all pages have this first and then frame type and content changes.
> > Page Element FrameType: AreaFrame
> > content child count 2
> > ==================================
> > Page Element FrameType: BlockFrame
> > content child count 55
> > ==================================
>
> > I am unable to understand this behaviour basically becos of my poor
> > understanding of how these frames are arranged is inside of each
> > PageContentFrame.
>
> > Can you throw some light on this?.
>
> > Thanks,
> > Krithika
>
> Tree for a simple HTML document like
> <html><body>
> <p>Para 1
> <p>Para 2
> ...
> <p>Para 20
> PageFrame
>      PageContentFrame
>          AreaFrame content: html
>              BlockFrame content: body
>                  BlockFrame content: p
>                      TextFrame content: #text "Para 1"
>                  BlockFrame content: p
>                      TextFrame content: #text "Para 2"
> ...
> PageFrame
>      PageContentFrame
>          AreaFrame content: html (continuation)
>              BlockFrame content: body (continuation)
>                  BlockFrame content: p
>                      TextFrame content: #text "Para 20"
>
> Continuations are special because they correspond to the same content as
> a previous frame.  They're linked together through GetNextContinuation
> and GetPrevContinuation.
>
> nsIFrameDebug contains some methods that let you dump frame trees; that
> could be helpful for understanding what's going on.


Thanks a lot.It cleared up all my doubts.Iam able to reach the last
frame of each page to do my manipulation.


regards,
Krithika

_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to