git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15779 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| \subsection{Cells and Containers}\label{cells}
 | |
| 
 | |
| This article describes mechanism used by 
 | |
| \helpref{wxHtmlWinParser}{wxhtmlwinparser} and 
 | |
| \helpref{wxHtmlWindow}{wxhtmlwindow} to parse and display HTML documents.
 | |
| 
 | |
| \wxheading{Cells}
 | |
| 
 | |
| You can divide any text (or HTML) into small fragments. Let's call these
 | |
| fragments {\bf cells}. Cell is for example one word, horizontal line, image
 | |
| or any other part of document. Each cell has width and height (except special
 | |
| "magic" cells with zero dimensions - e.g. colour changers or font changers).
 | |
| 
 | |
| See \helpref{wxHtmlCell}{wxhtmlcell}.
 | |
| 
 | |
| \wxheading{Containers}
 | |
| 
 | |
| Container is kind of cell that may contain sub-cells. Its size depends
 | |
| on number and sizes of its sub-cells (and also depends on width of window). 
 | |
| 
 | |
| See \helpref{wxHtmlContainerCell}{wxhtmlcontainercell}, 
 | |
| \helpref{wxHtmlCell::Layout}{wxhtmlcelllayout}.
 | |
| 
 | |
| \begin{comment}
 | |
| % Bitmap is corrupt!
 | |
| This image shows you cells and containers:
 | |
| 
 | |
| \helponly{\image{}{contbox.bmp}}
 | |
| \end{comment}
 | |
| \wxheading{Using Containers in Tag Handler}
 | |
| 
 | |
| \helpref{wxHtmlWinParser}{wxhtmlwinparser} provides a user-friendly way
 | |
| 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{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}}
 | |
| \end{comment}
 | |
| It is clear there must be same number of calls to 
 | |
| OpenContainer as to CloseContainer...
 | |
| 
 | |
| \wxheading{Example}
 | |
| 
 | |
| This code creates a new paragraph (container at same depth level)
 | |
| with "Hello, world!":
 | |
| 
 | |
| \begin{verbatim}
 | |
| m_WParser -> CloseContainer();
 | |
| c = m_WParser -> OpenContainer();
 | |
| 
 | |
| m_WParser -> AddWord("Hello, ");
 | |
| m_WParser -> AddWord("world!");
 | |
| 
 | |
| m_WParser -> CloseContainer();
 | |
| m_WParser -> OpenContainer();
 | |
| \end{verbatim}
 | |
| 
 | |
| \begin{comment}
 | |
| % Bitmap corrupt!
 | |
| and here is image of the situation:
 | |
| 
 | |
| \helponly{\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
 | |
| 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).
 | |
| 
 |