X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/559fe022dbd5d4d961402b5c973e5225fa91f17f..00b4a13e0c2f37dae491f3743319321b6ab059ea:/docs/latex/wx/htparser.tex diff --git a/docs/latex/wx/htparser.tex b/docs/latex/wx/htparser.tex index 9df02c7c11..b9d848e609 100644 --- a/docs/latex/wx/htparser.tex +++ b/docs/latex/wx/htparser.tex @@ -26,6 +26,10 @@ Typically the user calls only the \helpref{Parse}{wxhtmlparserparse} method. wxObject +\wxheading{Include files} + + + \wxheading{See also} \helpref{Cells Overview}{cells}, @@ -99,7 +103,7 @@ This must be called after DoParsing(). \constfunc{wxFileSystem*}{GetFS}{\void} Returns pointer to the file system. Because each tag handler has -reference to it's parent parser it can easily request the file by +reference to it is parent parser it can easily request the file by calling \begin{verbatim} @@ -122,37 +126,12 @@ See wxHtmlWinParser for details. Returns pointer to the source being parsed. -\membersection{wxHtmlParser::GetTempData}\label{wxhtmlparsergettempdata} - -\func{virtual wxList*}{GetTempData}{\void} - -This method returns list of wxObjects that represents -all data allocated by the parser. These can't be freed -by the destructor because they must be valid as long as -GetProduct's return value is valid - the caller must -explicitly call - -\begin{verbatim} -delete (MyParser -> GetTempData()); -\end{verbatim} - -to free the memory (this method always sets the list to delete its contents). - -\wxheading{Example} - -Why is this neccessary? Imagine wxHtmlWinParser: when handling -a FONT tag it creates some fonts. These fonts are then used by wxHtmlWindow -to display the text. But the wxHtmWinParser object is needed only when parsing -the document - it may be deleted then. But fonts CAN'T be deleted - they -must exist as long as the window is displaying text. - -GetTempData() solves the problem. \membersection{wxHtmlParser::InitParser}\label{wxhtmlparserinitparser} \func{virtual void}{InitParser}{\param{const wxString\& }{source}} -Setups the parser for parsing the {\it source} string. (Should be overriden +Setups the parser for parsing the {\it source} string. (Should be overridden in derived class) \membersection{wxHtmlParser::Parse}\label{wxhtmlparserparse} @@ -164,7 +143,7 @@ call it when you need to obtain parsed output (which is parser-specific) The method does these things: -\begin{enumerate} +\begin{enumerate}\itemsep=0pt \item calls \helpref{InitParser(source)}{wxhtmlparserinitparser} \item calls \helpref{DoParsing}{wxhtmlparserdoparsing} \item calls \helpref{GetProduct}{wxhtmlparsergetproduct} @@ -174,6 +153,67 @@ The method does these things: You shouldn't use InitParser, DoParsing, GetProduct or DoneParser directly. + + +\membersection{wxHtmlParser::PushTagHandler}\label{wxhtmlparserpushtaghandler} + +\func{void}{PushTagHandler}{\param{wxHtmlTagHandler* }{handler}, \param{wxString }{tags}} + +Forces the handler to handle additional tags +(not returned by \helpref{GetSupportedTags}{wxhtmltaghandlergetsupportedtags}). +The handler should already be added to this parser. + +\wxheading{Parameters} + +\docparam{handler}{the handler} +\docparam{tags}{List of tags (in same format as GetSupportedTags's return value). The parser +will redirect these tags to {\it handler} (until call to \helpref{PopTagHandler}{wxhtmlparserpoptaghandler}). } + +\wxheading{Example} + +Imagine you want to parse following pseudo-html structure: + +\begin{verbatim} + + + + + + + + +\end{verbatim} + +It is obvious that you cannot use only one tag handler for tag. +Instead you must use context-sensitive handlers for inside +and inside . + +This is the preferred solution: + +\begin{verbatim} +TAG_HANDLER_BEGIN(MYITEM, "MYITEMS") + TAG_HANDLER_PROC(tag) + { + // ...something... + + m_Parser -> PushTagHandler(this, "PARAM"); + ParseInner(tag); + m_Parser -> PopTagHandler(); + + // ...something... + } +TAG_HANDLER_END(MYITEM) +\end{verbatim} + + +\membersection{wxHtmlParser::PopTagHandler}\label{wxhtmlparserpoptaghandler} + +\func{void}{PopTagHandler}{\void} + +Restores parser's state before last call to +\helpref{PushTagHandler}{wxhtmlparserpushtaghandler}. + + \membersection{wxHtmlParser::SetFS}\label{wxhtmlparsersetfs} \func{void}{SetFS}{\param{wxFileSystem }{*fs}}