-\section{Cells and Containers}\label{cells}
+\subsection{Cells and Containers}\label{cells}
This article describes mechanism used by
\helpref{wxHtmlWinParser}{wxhtmlwinparser} and
See \helpref{wxHtmlContainerCell}{wxhtmlcontainercell},
\helpref{wxHtmlCell::Layout}{wxhtmlcelllayout}.
-\begin{comment}
-% Bitmap is corrupt!
-This image shows you cells and containers:
+This image shows the cells and containers:
+\helponly{\image{}{contbox.bmp}}
-\image{}{contbox.bmp}
-\end{comment}
\wxheading{Using Containers in Tag Handler}
\helpref{wxHtmlWinParser}{wxhtmlwinparser} provides a user-friendly way
-of managing containers. It's based on the idea of opening and closing containers.
+of managing containers. It is based on the idea of opening and closing containers.
Use \helpref{OpenContainer}{wxhtmlwinparseropencontainer} to open new
a container {\it within an already opened container}. This new container is a
{\it sub-container} of the old one. (If you want to create a new container with
the same depth level you can call {\tt CloseContainer(); OpenContainer();}.)
-Use \helpref{CloseContaier}{wxhtmlwinparserclosecontainer} to close the
+Use \helpref{CloseContainer}{wxhtmlwinparserclosecontainer} to close the
container. This doesn't create a new container with same depth level but
it returns "control" to the parent container.
-\begin{comment}
-% Bitmap corrupt!
See explanation:
+\helponly{\image{}{cont.bmp}}
-\image{}{cont.bmp}
-\end{comment}
-It's clear there must be same number of calls to
-OpenContainer as to CloseContainer...
+There clearly must be same number of calls to OpenContainer as to
+CloseContainer.
\wxheading{Example}
m_WParser -> CloseContainer();
c = m_WParser -> OpenContainer();
-m_WParser -> AddWord("Hello, ");
-m_WParser -> AddWord("world!");
+m_WParser -> AddText("Hello, ");
+m_WParser -> AddText("world!");
m_WParser -> CloseContainer();
m_WParser -> OpenContainer();
\end{verbatim}
-\begin{comment}
-% Bitmap corrupt!
and here is image of the situation:
+\helponly{\image{}{hello.bmp}}
-\image{}{hello.bmp}
-\end{comment}
-
-You can see that there was opened container before running the code. We closed
-it, created our own container, then closed our container and opened
+You can see that there was an opened container before the code was executed.
+We closed it, created our own container, then closed our container and opened
new container. The result was that we had {\it same depth level} after
executing. This is general rule that should be followed by tag handlers:
leave depth level of containers unmodified (in other words, number of
OpenContainer and CloseContainer calls should be same within \helpref{HandleTag}{wxhtmltaghandlerhandletag}'s body).
+Notice that it would be usually better to use
+\helpref{wxHtmlContainerCell::InsertCell}{wxhtmlcontainercellinsertcell} instead
+of adding text to the parser directly.