From 704a4b7524e05d7bf4d208eb1b30be9989abef4c Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Sat, 10 Jul 1999 21:17:24 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2979 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/alignv.bmp | Bin 0 -> 8760 bytes docs/latex/wx/border.bmp | Bin 0 -> 17134 bytes docs/latex/wx/busyinfo.tex | 35 +++++ docs/latex/wx/cont.bmp | Bin 0 -> 61582 bytes docs/latex/wx/contbox.bmp | Bin 0 -> 47478 bytes docs/latex/wx/descent.bmp | Bin 0 -> 7272 bytes docs/latex/wx/filesys.tex | 101 ++++++++++++++ docs/latex/wx/filesysh.tex | 128 +++++++++++++++++ docs/latex/wx/fs.tex | 75 ++++++++++ docs/latex/wx/hello.bmp | Bin 0 -> 7800 bytes docs/latex/wx/htcell.tex | 240 ++++++++++++++++++++++++++++++++ docs/latex/wx/htcolor.tex | 38 +++++ docs/latex/wx/htcontnr.tex | 250 +++++++++++++++++++++++++++++++++ docs/latex/wx/htfilter.tex | 59 ++++++++ docs/latex/wx/hthelpct.tex | 158 +++++++++++++++++++++ docs/latex/wx/htmlcell.tex | 76 ++++++++++ docs/latex/wx/htmlfilt.tex | 11 ++ docs/latex/wx/htmlhand.tex | 146 ++++++++++++++++++++ docs/latex/wx/htmlhlpf.tex | 83 +++++++++++ docs/latex/wx/htmlprn.tex | 62 +++++++++ docs/latex/wx/htmlstrt.tex | 68 +++++++++ docs/latex/wx/htparser.tex | 191 +++++++++++++++++++++++++ docs/latex/wx/httag.tex | 176 +++++++++++++++++++++++ docs/latex/wx/httaghnd.tex | 91 ++++++++++++ docs/latex/wx/httagmod.tex | 42 ++++++ docs/latex/wx/htwidget.tex | 38 +++++ docs/latex/wx/htwindow.tex | 276 +++++++++++++++++++++++++++++++++++++ docs/latex/wx/htwinhnd.tex | 32 +++++ docs/latex/wx/htwinprs.tex | 261 +++++++++++++++++++++++++++++++++++ docs/latex/wx/indent.bmp | Bin 0 -> 31760 bytes docs/latex/wx/wxhtml.tex | 31 +++++ docs/latex/wx/zipstrm.tex | 33 +++++ 32 files changed, 2701 insertions(+) create mode 100644 docs/latex/wx/alignv.bmp create mode 100644 docs/latex/wx/border.bmp create mode 100644 docs/latex/wx/busyinfo.tex create mode 100644 docs/latex/wx/cont.bmp create mode 100644 docs/latex/wx/contbox.bmp create mode 100644 docs/latex/wx/descent.bmp create mode 100644 docs/latex/wx/filesys.tex create mode 100644 docs/latex/wx/filesysh.tex create mode 100644 docs/latex/wx/fs.tex create mode 100644 docs/latex/wx/hello.bmp create mode 100644 docs/latex/wx/htcell.tex create mode 100644 docs/latex/wx/htcolor.tex create mode 100644 docs/latex/wx/htcontnr.tex create mode 100644 docs/latex/wx/htfilter.tex create mode 100644 docs/latex/wx/hthelpct.tex create mode 100644 docs/latex/wx/htmlcell.tex create mode 100644 docs/latex/wx/htmlfilt.tex create mode 100644 docs/latex/wx/htmlhand.tex create mode 100644 docs/latex/wx/htmlhlpf.tex create mode 100644 docs/latex/wx/htmlprn.tex create mode 100644 docs/latex/wx/htmlstrt.tex create mode 100644 docs/latex/wx/htparser.tex create mode 100644 docs/latex/wx/httag.tex create mode 100644 docs/latex/wx/httaghnd.tex create mode 100644 docs/latex/wx/httagmod.tex create mode 100644 docs/latex/wx/htwidget.tex create mode 100644 docs/latex/wx/htwindow.tex create mode 100644 docs/latex/wx/htwinhnd.tex create mode 100644 docs/latex/wx/htwinprs.tex create mode 100644 docs/latex/wx/indent.bmp create mode 100644 docs/latex/wx/wxhtml.tex create mode 100644 docs/latex/wx/zipstrm.tex diff --git a/docs/latex/wx/alignv.bmp b/docs/latex/wx/alignv.bmp new file mode 100644 index 0000000000000000000000000000000000000000..20cff5ee6c2b23f45eeb871b2c459b7acb40e221 GIT binary patch literal 8760 zcmeI1ONbm*6o&7ueobep-|a%2C~gLcqqZ?VmYj7Y z{j2X^ryqM_`&RGtc_{DPU6en7Pw4V)1UMJn&R6iAdg^?iHX?(JLL~arS5wl$lgyt zpFhDIIF%{CpnfaJ0bM@@H1CJt74UP?E>XS;PJlC-9YjA9lQoK&kH~?eH$DCAAxVd_uw~hTn_bP zv-8zb{Z3b^`|4)KX;(@y?buh;?zpHHIUoC)uSe8#PBp%*$H#?Q(fKBQEv~9iHoPlv zMZV^l**9|3DeGRdRHIrs%u!*sns579b1JZd?Jx&^q_#ABE-uM~c2vhw4a=G@#zM<% zb2am}xI?3HVz(Xanul$>%SIT#u=Q#(r`BNWUE?$(bIbdR?#`!?aOOeFJnq`2)y&zN zu`LhND7AGjYiK@_u05mPZ{ed2hSbXSG!b^UFq4mNGV5U7K(ts&y?c;1eDZ4c|1+EXt!H zR(PQMGxp$*R!QWw!`cJbma(bGw6!nl;~HBrUN5p-)LQUYQS7Z!{PgCt_-zb^-(oNQ z$*d(;tVJ4Q2N-K6Ya%jS0S}8}pdj{(m)09Q^|6|mnJam|bGpN>2qp8{U0heqxjc0- zqyK3g)aJbRcSYVGgm|(dwo&FZ%ee= zPGgjbN70x3$apCl=}`L8t|HeI{hH@WevRsb*p}^^gn1i@|5oBpo!C!W>_a=sPZIZ= zt*)mH&fVe*teDl7S^r%3$%A_ZqF^H<7K<lJ{6a(XP2R=`hqR|oK^jyN} z7wIj-Yqhf+zS-(?oGPiFdlFvK?&>+U*Ky);;@CMm3_Zv5fY#!CZ0MZKOVcDu4=Xx_ zb{Kr82K+UtsF!B;^R0O&AM%7xv*NZ)ews&zI~=!s?*(dFu&EKiQw& zzA>V=1NBca_e%0*F+anbnfQ4zo?pxHtr@kt314Y<)vDSXhOAaOsg=8F*m>2>K_;q7 zXR_&HD}$!hxu(AEd41cGUfGqyQm(Su&>2ptjFzdVq-}~i@hQ>q=3_gG$GTuJ`YdDnkQHc`B!Oa>heBSK52AmYc*9$%Nv{Tu_-81av6VDNY@$%$UTSXD95S*Yi%6)v|K%ZVyT42Ae@qH+d%r z>J1t#Y7c0V^Th>)May?y(czNZTSI@O&YQys_i}hIVP(caPo9JMbsoiC3 zU#ybL1_0ZSF|IS`zxzF+!Q&BwMj0HHu((l8s)KGt}dJ^`7z2g zzsV`H+FlS3R8(OM_2x4%lDc2Z*_?@5q`&Z_n{-YOx8Bo^Vcu{ytA4qxSn7JQrDb{C z$nv>!u%;X`U$CVKYsiX?lIbna8hdPvbv9v(vg7zWNfC32*sdgO$!2hqXgvydA8Ez4ZHeO7$(pjBLO2 F{{uVO{b~RJ literal 0 HcmV?d00001 diff --git a/docs/latex/wx/border.bmp b/docs/latex/wx/border.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d57f535572e3ad0907fc1a60c0014d87d39bff2a GIT binary patch literal 17134 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 literal 0 HcmV?d00001 diff --git a/docs/latex/wx/busyinfo.tex b/docs/latex/wx/busyinfo.tex new file mode 100644 index 0000000000..b4202dad12 --- /dev/null +++ b/docs/latex/wx/busyinfo.tex @@ -0,0 +1,35 @@ +\section{\class{wxBusyInfo}}\label{wxbusyinfo} + +This class makes it easy to tell your user that the program is temporarily busy. +Just create a wxBusyInfo object on the stack, and within the current scope, +a message window will be shown. + +For example: + +\begin{verbatim} + wxBusyInfo wait("Please wait, working..."); + + for (int i = 0; i < 100000; i++) + DoACalculation(); +\end{verbatim} + +It works by creating a window in the constructor, +and deleting it in the destructor. + +\wxheading{Derived from} + +None + +\wxheading{Include files} + + + +\latexignore{\rtfignore{\wxheading{Members}}} + +\membersection{wxBusyInfo::wxBusyInfo} + +\func{}{wxBusyInfo}{\param{const wxString\&}{ msg}} + +Constructs a busy info object, displays {\it msg} . + + diff --git a/docs/latex/wx/cont.bmp b/docs/latex/wx/cont.bmp new file mode 100644 index 0000000000000000000000000000000000000000..15a651b173ccc8d01a3fb0fab64ec7b912f3b8de GIT binary patch literal 61582 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

V0iSC^L(vydItw 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 X=-*dfyRuYrr9E@}_tJGG{@ni$qFGFL literal 0 HcmV?d00001 diff --git a/docs/latex/wx/contbox.bmp b/docs/latex/wx/contbox.bmp new file mode 100644 index 0000000000000000000000000000000000000000..aea56d5add3dffc67caef664a3dc005df40438c0 GIT binary patch literal 47478 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 OpenFile("hello.htm"); // opens file 'hello.htm' +fs -> ChangePathTo("subdir/folder", TRUE); +f = fs -> OpenFile("hello.htm"); // opens file 'subdir/folder/hello.htm' !! +\end{verbatim} + + +\membersection{wxFileSystem::GetPath}\label{wxfilesystemgetpath} + +\func{wxString}{GetPath}{\void} + +Returns actual path (set by \helpref{ChangePathTo}{wxfilesystemchangepathto}). + + +\membersection{wxFileSystem::OpenFile}\label{wxfilesystemopenfile} + +\func{wxFSFile*}{OpenFile}{\param{const wxString\& }{location}} + +Opens file and returns pointer to \helpref{wxFSFile}{wxfsfile} object +or NULL if failed. It first tries to open the file in relative scope +(based on value passed to ChangePathTo() method) and then as an +absolute path. + + +\membersection{wxFileSystem::AddHandler}\label{wxfilesystemaddhandler} + +\func{static void}{AddHandler}{\param{wxFileSystemHandler }{*handler}} + +This static function adds new handler into the list of handlers. +The \helpref{handlers}{wxfilesystemhandler} provide access to virtual FS. + +\wxheading{Note} + +You can call + +\begin{verbatim} +wxFileSystem::AddHandler(new My_FS_Handler); +\end{verbatim} + +This is because a) AddHandler is static method and b) the handlers +are deleted in wxFileSystem's destructor so that you don't have to +care about it. diff --git a/docs/latex/wx/filesysh.tex b/docs/latex/wx/filesysh.tex new file mode 100644 index 0000000000..04159d5e94 --- /dev/null +++ b/docs/latex/wx/filesysh.tex @@ -0,0 +1,128 @@ +% +% automatically generated by HelpGen from +% filesystemhandler.tex at 21/Mar/99 23:00:52 +% + + +\section{\class{wxFileSystemHandler}}\label{wxfilesystemhandler} + +wxFileSystemHandler (or derived classes to be exact) is used +to access virtual file systems. It's public interface consists +from two methods: \helpref{CanOpen}{wxfilesystemhandlercanopen} +and \helpref{OpenFile}{wxfilesystemhandleropenfile}. +It provides additional protected methods to simplify process +of opening the file : GetProtocol, GetLeftLocation, GetRightLocation, +GetAnchor, GetMimeTypeFromExt. + +Please have a look at \helpref{overview}{fs} if you don't know how locations +are constructed. + + +\wxheading{Notes} + +\begin{itemize} +\item The handlers are shared by all instances of wxFileSystem. + +\item wxHTML library provides handlers for local files and HTTP or FTP protocol + +\item The {\it location} parameter passed to OpenFile or CanOpen methods +is always {\bf absolute} path. You don't need to check the FS's current path! +\end{itemize} + +\wxheading{Derived from} + +wxObject + +\wxheading{See also} + +\helpref{wxFileSystem}{wxfilesystem}, +\helpref{wxFSFile}{wxfsfile}, +\helpref{Overview}{fs} + + +\membersection{wxFileSystemHandler::wxFileSystemHandler}\label{wxfilesystemhandlerwxfilesystemhandler} + +\func{}{wxFileSystemHandler}{\void} + +Constructor. + +\membersection{wxFileSystemHandler::CanOpen}\label{wxfilesystemhandlercanopen} + +\func{virtual bool}{CanOpen}{\param{const wxString\& }{location}} + +Returns TRUE if the handler is able to open this file (this function doesn't +check whether the file exists or not, it only checks if it knows the protocol). +Example: + +\begin{verbatim} +bool MyHand::CanOpen(const wxString& location) +{ + return (GetProtocol(location) == "http"); +} +\end{verbatim} + +Must be overwriten in derived handlers. + +\membersection{wxFileSystemHandler::OpenFile}\label{wxfilesystemhandleropenfile} + +\func{virtual wxFSFile*}{OpenFile}{\param{wxFileSystem\& }{fs}, \param{const wxString\& }{location}} + +Opens the file and returns wxFSFile pointer or NULL if failed. + +Must be overwriten in derived handlers. + +\wxheading{Parameters} + +\docparam{fs}{Parent FS (the FS from that OpenFile was called). See ZIP handler +for details how to use it.} + +\docparam{location}{The {\bf absolute} location of file.} + + + +\membersection{wxFileSystemHandler::GetProtocol}\label{wxfilesystemhandlergetprotocol} + +\constfunc{wxString}{GetProtocol}{\param{const wxString\& }{location}} + +Returns protocol string extracted from {\it location}. + +Example : GetProtocol("file:myzipfile.zip\#zip:index.htm") == "zip" + +\membersection{wxFileSystemHandler::GetLeftLocation}\label{wxfilesystemhandlergetleftlocation} + +\constfunc{wxString}{GetLeftLocation}{\param{const wxString\& }{location}} + +Returns left location string extracted from {\it location}. + +Example : GetLeftLocation("file:myzipfile.zip\#zip:index.htm") == "file:myzipfile.zip" + + +\membersection{wxFileSystemHandler::GetAnchor}\label{wxfilesystemhandlergetanchor} + +\constfunc{wxString}{GetAnchor}{\param{const wxString\& }{location}} + +Returns anchor if present in the location. +See \helpref{wxFSFile}{wxfsfilegetanchor} for details. + +Example : GetAnchor("index.htm\#chapter2") == "chapter2" + +{\bf Note:} anchor is NOT part of left location. + +\membersection{wxFileSystemHandler::GetRightLocation}\label{wxfilesystemhandlergetrightlocation} + +\constfunc{wxString}{GetRightLocation}{\param{const wxString\& }{location}} + +Returns right location string extracted from {\it location}. + +Example : GetRightLocation("file:myzipfile.zip\#zip:index.htm") == "index.htm" + + +\membersection{wxFileSystemHandler::GetMimeTypeFromExt}\label{wxfilesystemhandlergetmimetypefromext} + +\func{wxString}{GetMimeTypeFromExt}{\param{const wxString\& }{location}} + +Returns MIME type based on {\bf extension} of {\it location}. (While wxFSFile::GetMimeType +returns real MIME type - either extension-based or queried from HTTP) + +Example : GetMimeTypeFromExt("index.htm") == "text/html" + diff --git a/docs/latex/wx/fs.tex b/docs/latex/wx/fs.tex new file mode 100644 index 0000000000..a183aa63a4 --- /dev/null +++ b/docs/latex/wx/fs.tex @@ -0,0 +1,75 @@ +\section{File Systems}\label{fs} + +The wxHTML library uses {\bf virtual file systems} mechanism +similar to the one used in Midnight Commander or Dos Navigator or +FAR or almost any modern file manager. (Do you remember? You can +press enter on ZIP file and it's content is displayed like it's +a directory...) + +\wxheading{Classes} + +Three classes are used in order to provide full VFS: + +\begin{itemize} +\item \helpref{wxFSFile}{wxfsfile} class provides information +on opened file (name, input stream, mime type and anchor). + +\item \helpref{wxFileSystem}{wxfilesystem} class is interface. +It's main methods are ChangePathTo() and OpenFile(). This class +is most often used by the end user. + +\item \helpref{wxFileSystemHandler}{wxfilesystemhandler} is the core +if VFS mechanism. You can derive your own handler and pass it to +wxFileSystem's AddHandler() method. In the new handler you only need to +overwrite OpenFile() and CanOpen() methods. +\end{itemize} + +\wxheading{Locations} + +Locations (aka filenames aka addresses) are constructed from 4 parts: + +\begin{itemize} +\item {\bf protocol} - handler can regonize if it is able to open some +file by checking it's protocol. Examples are "http", "file" or "ftp" + +\item {\bf right location} - is the name of file within the protocol. +In "http://www.wxwindows.org/index.html" the right location is "//www.wxwindows.org/index.html" + +\item {\bf anchor} - anchor is optional and is usually not present. +In "index.htm\#chapter2" the anchor is "chapter2" + +\item {\bf left location} - this is usually empty string. +It is used by 'local' protocols such as ZIP. +See Combined Protocols paragraph for details. +\end{itemize} + +\wxheading{Combined Protocols} + +Left location pretends protocol in URL string. +It's not used by global protocols like HTTP but it's used +by local ones - for example you can see this address: + +file:archives/cpp\_doc.zip\#zip:reference/fopen.htm\#syntax + +In this example, protocol is "zip", left location is +"reference/fopen.htm", anchor is "syntax" and right location +is "file:archives/cpp_doc.zip". It is used by zip handler +to determine in what file this particular zip VFS is stored. + +In fact there are two protocols used in this example : zip and file. +You can construct even more complicated addresses like this one: + +http://www.archives.org/myarchive.zip\#zip:local/docs/cpp/stdio.zip\#zip:index.htm + +In this example you access zip VFS stdio.zip stored in another zip (myarchive.zip) +which is at WWW. Enjoy it :-) + +\wxheading{File Systems Included in wxHTML} + +\begin{enumerate} +\item Local files +\item HTTP protocol +\item FTP protocol +\item .ZIP archives +\end{enumerate} + diff --git a/docs/latex/wx/hello.bmp b/docs/latex/wx/hello.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3a5e983dad792aa6c5cf2ed6fd9a9f2b05c86527 GIT binary patch literal 7800 zcmeI0zl&W(6vt=g-uFAZ@9pl}w~1gQ7K$k>G@3M#h?qhxVrl*ZHy}i!*auQ(E3vQ> zyL5tu&7vR{g3&@ju!@D+r12O2VEug0nYr)2?5+vA!36W*-kE#m{P>=8X70P^oO=FP z9fN+y>JT2%M2}oC^lf_TJ`wXTukGyYJhi>O-QU{U3LjqiJ$(7eAK~=i$MDvLU&EEH z-@+>=e-1xf`!ig8>6dW!!JoppbLYb4%a_9k-+dH5e*fL@>DzCH?a$r|UtGKtt`AOz zuQuNZ*G`-b-@N#8`2K+x!kIH?!sg~?v3hU37lC^bxPv0FV{e9ox?c=&lsd8d8Xhw5 z#fppP3p_s=VxM`PMDN&IhxHH#CL^k3`%s3l(+#nXeV#|~jAAF%$c$JkRNi&5tMydN zA~HQmGOxG-+(Ygaqio2su3-(0^==yJb!O$zo-i;4mE-y<3E1ZqgHw3A$gVm*<*io5KZf zWoY|Iu!fYZ>*TPv#Ao<~StnEod&EOA%+`9w#gl0^9*+&r&l+BPCpjub!E;wVn)hrP zt}N_=`|asDmvo&~8a@%ya9tLOGaS7*6vsimqpyb)$LJd{_PMV5m@+LvOVDh*i)c%C zALe){9=@8m-w^A#6c0gPipo!umv3+LoEjm1W)Jpz|uuWTH})TwYbhWPHSl$>18e`j1yLbXu>o4?7keQP=#U5 zEKK99mc#~}Q@guH;VSY|c;(Xu;|6-*Piy<2k_@ukXJA@KLfB+osDus>1^PQRhh6-C)$2AWA%0Mzm^Z)`dBF zJ|xrZ3=m=I=KBIZ;*Az^j)g@;E8v)=XCreonDtZbKkpu}Y|0 zsRB}Er&?H*nEE14Rh6%Pjp|aZ^sQ1-h1H=Sl51b|s|vCngep0&|BxzluZ0^_tk1R1 zk*ShY9oASsWnMw0w_QL9tX1 z!@c$UoQ`+IK|P)lL-E(1b!@n_VkzC_99zc{pB)MLlnyTSSDMZc>qWPA(Hv>+?2w6! zuJPATS)Uxx&ERg4QV>&S!Gq=TCeHdkHzUt9aAE!!aOy0GF zPrY07P_b0rCEb0z>>KH+C;7ynk5#%d7VXpi zcE$QYUJZ}Sf4J%1U>`2);fU+@{R_4GIk&q DrawText("hello", x + m\_PosX, y + m\_PosY)}} + +\docparam{view_y1}{y-coord of the first line visible in window. This is +used to optimize rendering speed} + +\docparam{view_y2}{y-coord of the last line visible in window. This is +used to optimize rendering speed} + +\membersection{wxHtmlCell::DrawInvisible}\label{wxhtmlcelldrawinvisible} + +\func{virtual void}{DrawInvisible}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}} + +This method is called instead of \helpref{Draw{wxhtmlcelldraw} when the +cell is certainly out of the screen (and thus invisible). This is not +nonsense - some tags (like \helpref{wxHtmlColourCell}{wxhtmlcolourcell} +or font setter) must be drawn even if they are invisible! + +\wxheading{Parameters} + +\docparam{dc}{Device context to which the cell is to be drawn} + +\docparam{x,y}{Coordinates of parent's upper left corner. You must +add this to m\_PosX,m\_PosY when passing coordinates to dc's methods +Example : {\tt dc -> DrawText("hello", x + m\_PosX, y + m\_PosY)} } + + +\membersection{wxHtmlCell::Find}\label{wxhtmlcellfind} + +\func{virtual const wxHtmlCell*}{Find}{\param{int }{condition}, \param{const void* }{param}} + +Returns pointer to itself if this cell matches condition (or if any of the cells +following in the list matches), NULL otherwise. +(In other words if you call top-level container's Find it will +return pointer to the first cell that matches the condition) + +It is recommended way how to obtain pointer to particular cell or +to cell of some type (e.g. wxHtmlAnchorCell reacts on +HTML_COND_ISANCHOR condition) + +\wxheading{Parameters} + +\docparam{condition}{Unique integer identifier of condition} + +\docparam{param}{Optional parameters} + +\wxheading{Defined conditions} + +\begin{twocollist} +\twocolitem{{\bf HTML_COND_ISANCHOR}}{Finds particular anchor. +{\it param} is pointer to wxString with name of the anchor.} +\twocolitem{{\bf HTML_COND_USER}}{User-defined conditions start +from this number} +\end{twocollist} + + + +\membersection{wxHtmlCell::OnMouseClick}\label{wxhtmlcellonmouseclick} + + +\func{virtual void}{OnMouseClick}{\param{wxWindow* }{parent}, \param{int }{x}, \param{int }{y}, \param{bool }{left}, \param{bool }{middle}, \param{bool }{right}} + +This function is simple event handler. Each time user clicks mouse button over a cell +within \helpref{wxHtmlWindow}{wxhtmlwindow} this method of that cell is called. Default behavior is +that it calls \helpref{wxHtmlWindow::LoadPage}{wxhtmlwindowloadpage}. + +\wxheading{Note} + +If you need more "advanced" behaviour (for example you'd like to catch mouse movement events or +key events or whatsooever) you should use \helpref{wxHtmlBinderCell}{wxhtmlbindercell} instead. + +\wxheading{Parameters} + +\docparam{parent}{parent window (always wxHtmlWindow!!)} + +\docparam{x, y}{coordinates of mouse click (this is relative to cell's origin} + +\docparam{left, middle, right}{boolean flags for mouse buttons. TRUE if the left/middle/right +button is pressed, FALSE otherwise} + + + + + + diff --git a/docs/latex/wx/htcolor.tex b/docs/latex/wx/htcolor.tex new file mode 100644 index 0000000000..2bf15d69e4 --- /dev/null +++ b/docs/latex/wx/htcolor.tex @@ -0,0 +1,38 @@ +% +% automatically generated by HelpGen from +% htmlcolourcell.tex at 14/Mar/99 20:13:37 +% + + +\section{\class{wxHtmlColourCell}}\label{wxhtmlcolourcell} + +This cell changes color of either background or foreground. + +\wxheading{Derived from} + +\helpref{wxHtmlCell}{wxhtmlcell} + + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxHtmlColourCell::wxHtmlColourCell}\label{wxhtmlcolourcellwxhtmlcolourcell} + +\func{}{wxHtmlColourCell}{\param{wxColour }{clr}, \param{int }{flags = HTML\_CLR\_FOREGROUND}} + +Constructor. + +\wxheading{Parameters} + +\docparam{clr}{The color} + +\docparam{flags}{Can be one of following: + +\begin{twocollist} +\twocolitem{{\bf HTML\_CLR\_FOREGROUND}}{change color of text} +\twocolitem{{\bf HTML\_CLR\_BACKGROUND}}{change background color} + +\end{twocollist} + +} + diff --git a/docs/latex/wx/htcontnr.tex b/docs/latex/wx/htcontnr.tex new file mode 100644 index 0000000000..907bd8c158 --- /dev/null +++ b/docs/latex/wx/htcontnr.tex @@ -0,0 +1,250 @@ +% +% automatically generated by HelpGen from +% htmlcontainercell.tex at 21/Mar/99 22:45:23 +% + + +\section{\class{wxHtmlContainerCell}}\label{wxhtmlcontainercell} + +wxHtmlContainerCell class an implementation of cell that may +contain more cells in it. It is heavily used in layouting algorithm. + + +\wxheading{Derived from} + +\helpref{wxHtmlCell}{wxhtmlcell} + +\wxheading{See Also} + +\helpref{Cells Overview}{cells} + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxHtmlContainerCell::wxHtmlContainerCell}\label{wxhtmlcontainercellwxhtmlcontainercell} + +\func{}{wxHtmlContainerCell}{\param{wxHtmlContainerCell }{*parent}} + +Constructor. {\it parent} is pointer to parent container or NULL. + + +\membersection{wxHtmlContainerCell::InsertCell}\label{wxhtmlcontainercellinsertcell} + +\func{void}{InsertCell}{\param{wxHtmlCell }{*cell}} + +Inserts new cell into the container. + +\membersection{wxHtmlContainerCell::SetAlignHor}\label{wxhtmlcontainercellsetalignhor} + +\func{void}{SetAlignHor}{\param{int }{al}} + +Sets container's {\it horizontal alignment}. During \helpref{Layout}{wxhtmlcelllayout} +each line is aligned according to {\it al} value. + +\wxheading{Parameters} + +\docparam{al}{new horizontal alignment. May be one of these values: + +\begin{twocollist} +\twocolitem{{\bf HTML\_ALIGN\_LEFT}}{lines are left-aligned (default)} +\twocolitem{{\bf HTML\_ALIGN\_CENTER\_H}}{lines are centered} +\twocolitem{{\bf HTML\_ALIGN\_RIGHT}}{lines are right-aligned} +\end{twocollist} +} + + +\membersection{wxHtmlContainerCell::GetAlignHor}\label{wxhtmlcontainercellgetalignhor} + +\constfunc{int}{GetAlignHor}{\void} + +Returns container's horizontal alignment. + +\membersection{wxHtmlContainerCell::SetAlignVer}\label{wxhtmlcontainercellsetalignver} + +\func{void}{SetAlignVer}{\param{int }{al}} + +Sets container's {\it vertical alignment}. This is per-line alignment! + +\wxheading{Parameters} + +\docparam{al}{new vertical alignment. May be one of these values: + +\begin{twocollist} +\twocolitem{{\bf HTML\_ALIGN\_BOTTOM}}{cells are over the line (default)} +\twocolitem{{\bf HTML\_ALIGN\_CENTER\_V}}{cells are centered on line} +\twocolitem{{\bf HTML\_ALIGN\_TOP}}{cells are under the line} +\end{twocollist} + +\image{}{alignv.bmp} +} + +\membersection{wxHtmlContainerCell::GetAlignVer}\label{wxhtmlcontainercellgetalignver} + +\constfunc{int}{GetAlignVer}{\void} + +Returns container's vertical alignment. + + +\membersection{wxHtmlContainerCell::SetIndent}\label{wxhtmlcontainercellsetindent} + +\func{void}{SetIndent}{\param{int }{i}, \param{int }{what}, \param{int }{units = HTML\_UNITS\_PIXELS}} + +Sets indentation (free space between borders of container and subcells). + +\wxheading{Parameters} + +\docparam{i}{Indentation value.} + +\docparam{what}{Determines which of the 4 borders we're setting. It is OR +combination of following constants: + +\begin{twocollist} +\twocolitem{{\bf HTML\_INDENT\_TOP}}{top border} +\twocolitem{{\bf HTML\_INDENT\_BOTTOM}}{bottom} +\twocolitem{{\bf HTML\_INDENT\_LEFT}}{left} +\twocolitem{{\bf HTML\_INDENT\_RIGHT}}{right} +\twocolitem{{\bf HTML\_INDENT\_HORIZONTAL}}{left and right} +\twocolitem{{\bf HTML\_INDENT\_VERTICAL}}{top and bottom} +\twocolitem{{\bf HTML\_INDENT\_ALL}}{all 4 borders} +\end{twocollist} + +\image{}{indent.bmp} +} + +\docparam{units}{Units of {\it i}. This parameter affects interpretation of {\it} value. + +\begin{twocollist} +\twocolitem{{\bf HTML\_UNITS\_PIXELS}}{{\it i} is number of pixels} +\twocolitem{{\bf HTML\_UNITS\_PERCENT}}{{\it i} is interpreted as percents of width +of parent container} +\end{twocollist} +} + +\membersection{wxHtmlContainerCell::GetIndent}\label{wxhtmlcontainercellgetindent} + +\constfunc{int}{GetIndent}{\param{int }{ind}} + +Returns the indentation. {\it ind} is one of the {\bf HTML\_INDENT\_*} constants. + +{\bf Note:} You must call \helpref{GetIndentUnits}{wxhtmlcontainercellgetindentunits} +with same {\it ind} parameter in order to correctly interpret the returned integer value. +It is NOT always in pixels! + +\membersection{wxHtmlContainerCell::GetIndentUnits}\label{wxhtmlcontainercellgetindentunits} + +\constfunc{int}{GetIndentUnits}{\param{int }{ind}} + +Returns units of intentation value for {\it ind} where {\it ind} is one +of the {\bf HTML\_INDENT\_*} constants. + + +\membersection{wxHtmlContainerCell::SetAlign}\label{wxhtmlcontainercellsetalign} + +\func{void}{SetAlign}{\param{const wxHtmlTag\& }{tag}} + +Sets container's alignment (both horizontal and vertical) according to +the values stored in {\it tag}. (Tags {\tt ALIGN} parameter is extracted.) In fact +it is only a front-end to \helpref{SetAlignHor}{wxhtmlcontainercellsetalignhor} +and \helpref{SetAlignVer}{wxhtmlcontainercellsetalignver}. + + +\membersection{wxHtmlContainerCell::SetWidthFloat}\label{wxhtmlcontainercellsetwidthfloat} + +\func{void}{SetWidthFloat}{\param{int }{w}, \param{int }{units}} + +\func{void}{SetWidthFloat}{\param{const wxHtmlTag\& }{tag}} + +Sets floating width adjustment. + +Normal behaviour of container is that it's width is same as width of +parent container (and thus you can have only one sub-container per line). +You can change this by setting FWA. + +\wxheading{Parameters} + +\docparam{w}{Width of the container. If the value is negative it means +complement to full width of parent container (e.g. +{\tt SetWidthFloat(-50, HTML\_UNITS\_PIXELS)} sets the width +of container to parent's width minus 50 pixels. This is useful when +creating tables - you can call SetWidthFloat(50) and SetWidthFloat(-50))} + +\docparam{units}{Units of {\it w} This parameter affects interpretation of {\it} value. + +\begin{twocollist} +\twocolitem{{\bf HTML\_UNITS\_PIXELS}}{{\it w} is number of pixels} +\twocolitem{{\bf HTML\_UNITS\_PERCENT}}{{\it w} is interpreted as percents of width +of parent container} +\end{twocollist} +} + +\docparam{tag}{In the second version of method, {\it w} and {\it units} +info is extracted from tag's {\tt WIDTH} parameter.} + + +\membersection{wxHtmlContainerCell::SetMinHeight}\label{wxhtmlcontainercellsetminheight} + +\func{void}{SetMinHeight}{\param{int }{h}, \param{int }{align = HTML_ALIGN_TOP}} + +Sets minimal height of the container. + +(When container's \helpref{Layout}{wxhtmlcelllayout} is called, m_Height +is set depending on layout of subcells to the height of area covered +by layouted subcells. Call to this method guarantees you that the height +of container is never smaller than {\it h} - even if the subcells cover +much smaller area.) + +\wxheading{Parameters} + +\docparam{h}{The minimal height.} + +\docparam{align}{If height of the container is lower than min. height, empty space must be inserted +somewhere in order to ensure minimal height. This parameter is one of {\bf HTML_ALIGN_TOP, +HTML_ALIGN_BOTTOM, HTML_ALIGN_CENTER} constants. It refers to the {\it contents}, not to the +empty place!} + +\membersection{wxHtmlContainerCell::GetMaxLineWidth}\label{wxhtmlcontainercellgetmaxlinewidth} + +\constfunc{int}{GetMaxLineWidth}{\void} + +Returns width of widest line (note : this may be more than GetWidth()!! +E.g. if you have 640x480 image and the wxHtmlWindow is only 100x100...) + +Call to this method is valid only after calling \helpref{Layout}{wxhtmlcelllayout} + + +\membersection{wxHtmlContainerCell::SetBackgroundColour}\label{wxhtmlcontainercellsetbackgroundcolour} + +\func{void}{SetBackgroundColour}{\param{const wxColour\& }{clr}} + +Sets background color for this container. + + + +\membersection{wxHtmlContainerCell::SetBorder}\label{wxhtmlcontainercellsetborder} + +\func{void}{SetBorder}{\param{const wxColour\& }{clr1}, \param{const wxColour\& }{clr2}} + +Sets border (frame) colours. Border is rectangle around the container. + +\wxheading{Parameters} + +\docparam{clr1}{Color of top and left lines} + +\docparam{clr2}{Color of bottom and right lines} + + + +\membersection{wxHtmlContainerCell::GetFirstCell}\label{wxhtmlcontainercellgetfirstcell} + +\func{wxHtmlCell*}{GetFirstCell}{\void} + +Returns pointer to the first cell in the list. +You can then use wxHtmlCell's GetNext method to obtain pointer to the next +cell in list. + +{\bf Note} : This shouldn't be used by end user. If you need some way of +finding particular cell in the list, try \helpref{Find}{wxhtmlcellfind} method +instead. + + + diff --git a/docs/latex/wx/htfilter.tex b/docs/latex/wx/htfilter.tex new file mode 100644 index 0000000000..a07f36b53c --- /dev/null +++ b/docs/latex/wx/htfilter.tex @@ -0,0 +1,59 @@ +% +% automatically generated by HelpGen from +% htmlfilter.tex at 29/Mar/99 18:35:09 +% + + +\section{\class{wxHtmlFilter}}\label{wxhtmlfilter} + +This class is input filter for \helpref{wxHtmlWindow}{wxhtmlwindow}. +It allows you to read and display files of different file formats. + +\wxheading{Derived from} + +wxObject + +\wxheading{See Also} + +\helpref{Overview}{filters} + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxHtmlFilter::wxHtmlFilter}\label{wxhtmlfilterwxhtmlfilter} + +\func{}{wxHtmlFilter}{\void} + +Constructor. + +\membersection{wxHtmlFilter::CanRead}\label{wxhtmlfiltercanread} + +\func{bool}{CanRead}{\param{const wxFSFile\& }{file}} + +Returns TRUE if this filter is capable of reading file {\it file}. + +Example: + +\begin{verbatim} +bool MyFilter::CanRead(const wxFSFile& file) +{ + return (file.GetMimeType() == "application/x-ugh"); +} +\end{verbatim} + +\membersection{wxHtmlFilter::ReadFile}\label{wxhtmlfilterreadfile} + +\func{wxString}{ReadFile}{\param{const wxFSFile\& }{file} + +Reads the file and returns string with HTML document. + +Example: + +\begin{verbatim} +wxString MyImgFilter::ReadFile(const wxFSFile& file) +{ + return ""; +} +\end{verbatim} diff --git a/docs/latex/wx/hthelpct.tex b/docs/latex/wx/hthelpct.tex new file mode 100644 index 0000000000..9f01de6a8e --- /dev/null +++ b/docs/latex/wx/hthelpct.tex @@ -0,0 +1,158 @@ +% +% automatically generated by HelpGen from +% htmlhelp.h at 02/May/99 19:58:53 +% + + +\section{\class{wxHtmlHelpController}}\label{wxhtmlhelpcontroller} + +{\bf WARNING! This help controller has API incompatible with wxWindows +wxHelpController!} + +This help controller provides easy way how to display HTML help in your +application (see {\it test} sample). Whole help system is based on {\bf books} +(see \helpref{AddBook}{wxhtmlhelpcontrolleraddbook}). A book is logical +part of documentation (for example "User's Guide" or "Programmer's Guide" or +"C++ Reference" or "wxWindows Reference"). Help controller can handle as +many books as you want. + +wxHTML uses Microsoft's HTML Help Workshop project files (.hhp, .hhk, .hhc) as its +native format. The file format is described \helpref{here}{helpformat}. +Have a look at docs/html/ directory where sample project files are stored. + +You can use tex2rtf to generate MHHW projects (see wxHTML homepage for details). + +In order to use the controller in your application under Windows you must +have following line in your .rc file: + +\begin{verbatim} +#include "wx/html/msw/wxhtml.rc" +\end{verbatim} + + +\wxheading{Derived from} + +wxEvtHandler + + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxHtmlHelpController::wxHtmlHelpController}\label{wxhtmlhelpcontrollerwxhtmlhelpcontroller} + +\func{}{wxHtmlHelpController}{\void} + + +Constructor. + + +\membersection{wxHtmlHelpController::SetTitleFormat}\label{wxhtmlhelpcontrollersettitleformat} + +\func{void}{SetTitleFormat}{\param{const wxString\& }{format}} + +Sets format of title of the frame. Must contain exactly one "\%s" +(for title of displayed HTML page). + + +\membersection{wxHtmlHelpController::SetTempDir}\label{wxhtmlhelpcontrollersettempdir} + +\func{void}{SetTempDir}{\param{const wxString\& }{path}} + +Sets path for storing temporary files (cached binary versions of index and contents files. These binary +forms are much faster to read.) Default value is empty string (empty string means +that no cached data are stored). Note that these files are NOT +deleted when program exits! + + +\membersection{wxHtmlHelpController::AddBook}\label{wxhtmlhelpcontrolleraddbook} + +\func{bool}{AddBook}{\param{const wxString\& }{book}, \param{bool }{show_wait_msg}} + +Adds book (\helpref{.hhp file}{helpformat} - HTML Help Workshop project file) into the list of loaded books. +This must be called at least once before displaying any help. + +If {\it show_wait_msg} is TRUE then a decorationless window with progress message is displayed. + + +\membersection{wxHtmlHelpController::Display}\label{wxhtmlhelpcontrollerdisplay} + +\func{void}{Display}{\param{const wxString\& }{x}} + +Displays page {\it x}. This is THE important function - it is used to display +the help in application. + +You can specify the page in many ways: + +\begin{itemize} +\item as direct filename of HTML document +\item as chapter name (from contents) or as a book name +\item as some word from index +\item even as any word (will be searched) +\end{itemize} + +Looking for the page runs in these steps: + +\begin{enumerate} +\item try to locate file named x (if x is for example "doc/howto.htm") +\item try to open starting page of book named x +\item try to find x in contents (if x is for example "How To ...") +\item try to find x in index (if x is for example "How To ...") +\item switch to Search panel and start searching +\end{enumerate} + +\func{void}{Display}{\param{const int }{id}} + +This alternative form is used to search help contents by numeric IDs. + + + + +\membersection{wxHtmlHelpController::DisplayContents}\label{wxhtmlhelpcontrollerdisplaycontents} + +\func{void}{DisplayContents}{\void} + +Displays help window and focuses contents panel. + +\membersection{wxHtmlHelpController::DisplayIndex}\label{wxhtmlhelpcontrollerdisplayindex} + +\func{void}{DisplayIndex}{\void} + +Displays help window and focuses index panel. + + +\membersection{wxHtmlHelpController::KeywordSearch}\label{wxhtmlhelpcontrollerkeywordsearch} + +\func{bool}{KeywordSearch}{\param{const wxString\& }{keyword}} + +Displays help window, focuses search panel and starts searching. +Returns TRUE if the keyword was found. + +IMPORTANT! KeywordSearch searches only pages listed in .htc file(s)! +(you should have all pages in contents file...) + + +\membersection{wxHtmlHelpController::UseConfig}\label{wxhtmlhelpcontrolleruseconfig} + +\func{void}{UseConfig}{\param{wxConfigBase* }{config}, \param{const wxString\& }{rootpath = wxEmptyString}} + +Associates {\it config} object with the controller. + +If there is associated config object, wxHtmlHelpController automatically +reads and writes settings (including wxHtmlWindow's settings) when needed. + +The only thing you must do is create wxConfig object and call UseConfig. + + +\membersection{wxHtmlHelpController::ReadCustomization}\label{wxhtmlhelpcontrollerreadcustomization} + +\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{wxString }{path = wxEmptyString}} + +Reads controllers setting (position of window etc.) + + +\membersection{wxHtmlHelpController::WriteCustomization}\label{wxhtmlhelpcontrollerwritecustomization} + +\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{wxString }{path = wxEmptyString}} + +Stores controllers setting (position of window etc.) + diff --git a/docs/latex/wx/htmlcell.tex b/docs/latex/wx/htmlcell.tex new file mode 100644 index 0000000000..76423eb7ad --- /dev/null +++ b/docs/latex/wx/htmlcell.tex @@ -0,0 +1,76 @@ +\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. color 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}. + +This image shows you cells\ &\ containers: + +\image{}{contbox.bmp} + +\wxheading{Using Containers in Tag Handler} + +\helpref{wxHtmlWinParser}{wxhtmlwinparser} provides user-friendly way +of managing containers. It's based on idea of opening and closing containers. + +Use \helpref{OpenContainer}{wxhtmlwinparseropencontainer} to open new +container {\it within actually opened container}. This new container is +{\it sub-container} of the old one. (If you want to create new container with +same depth level you can call {\tt CloseContainer(); OpenContainer();}.) + +Use \helpref{CloseContaier}{wxhtmlwinparserclosecontainer} to close the +container. This doesn't create new container with same depth level but +it returns "control" to the parent container. + +See explanation: + +\image{}{cont.bmp} + +It's clear there must be same number of calls to +OpenContainer as to CloseContainer... + +\wxheading{Example} + +This code creates 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} + +and here is image of the situation: + +\image{}{hello.bmp} + +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). + diff --git a/docs/latex/wx/htmlfilt.tex b/docs/latex/wx/htmlfilt.tex new file mode 100644 index 0000000000..7edb17c8a5 --- /dev/null +++ b/docs/latex/wx/htmlfilt.tex @@ -0,0 +1,11 @@ +\membersection{Input Filters}\label{filters} + +The wxHTML library provides mechanism for reading and displaying +files of many different file formats. + +\helpref{wxHtmlWindow::LoadPage}{wxhtmlwindowloadpage} can load not +only HTML files but any known file. To make a file type known to wxHtmlWindow +you must create a \helpref{wxHtmlFilter}{wxhtmlfilter} filter and +register it using \helpref{wxHtmlWindow::AddFilter}{wxhtmlwindowaddfilter} + + diff --git a/docs/latex/wx/htmlhand.tex b/docs/latex/wx/htmlhand.tex new file mode 100644 index 0000000000..d926e7ef7c --- /dev/null +++ b/docs/latex/wx/htmlhand.tex @@ -0,0 +1,146 @@ +\membersection{Tag Handlers}\label{handlers} + +wxHTML library provides architecture of pluginable {\it tag handlers}. +Tag handler is class that understands particular HTML tag (or tags) and is +able to interpret it. + +\helpref{wxHtmlWinParser}{wxhtmlwinparser} has static table of {\bf modules}. +Each module contains one or more tag handlers. Each time new wxHtmlWinParser +object is constructed all modules are scanned and handlers are added +to wxHtmlParser's list of available handlers (note : wxHtmlParser's list +is non-static). + +\wxheading{How it works} + +Common tag handler's \helpref{HandleTag}{wxhtmltaghandlerhandletag} method +works in four steps: + +\begin{enumerate} +\item Save state of parent parser into local variables +\item Change parser state according to tag's params +\item Parse text between the tag and paired ending tag (if present) +\item Restore original parser state +\end{enumerate} + +See \helpref{wxHtmlWinParser}{wxhtmlwinparser} for methods for modifying +parser's state. In general you can do things like opening/closing containers, +changing colors, fonts etc. + +\wxheading{Providing own tag handlers} + +You should create new .cpp file and place following lines into it: + +\begin{verbatim} +#include +#include +FORCE_LINK_ME(yourmodulefilenamewithoutcpp) +\end{verbatim} + +Then you must define handlers and one module. + +\wxheading{Tag handlers} + +The handler is derived from \helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler} +(or directly from \helpref{wxHtmlTagHandler}{wxhtmltaghandler}) + +You can use set of macros to define the handler (see src/mod_*.cpp files +for details). Handler definition must start with {\bf TAG_HANDLER_BEGIN} macro +and end with {\bf TAG_HANDLER_END} macro. I strongly recommend to have a look +at {\it include/wxhtml/mod_templ.h} file. Otherwise you won't understand +the structure of macros... See macros reference: + +{\bf TAG_HANDLER_BEGIN}({\it name}, {\it tags}) + +Starts handler definition. {\it name} is handler identifier (in fact +part of class name), {\it tags} is string containing list of tags +supported by this handler (in uppercase). This macro derives new class from +wxHtmlWinTagHandler and implements it's +\helpref{GetSupportedTags}{wxhtmltaghandlergetsupportedtags} method. + +Example: TAG_HANDLER_BEGIN(FONTS, "B,I,U,T") + +{\bf TAG_HANDLER_VARS} + +This macro starts block of variables definitions. (Variables are identical +to class attributes.) Example: + +\begin{verbatim} +TAG_HANDLER_BEGIN(VARS_ONLY, "CRAZYTAG") + TAG_HANDLER_VARS + int my_int_var; + wxString something_else; +TAG_HANDLER_END(VARS_ONLY) +\end{verbatim} + +This macro is used only in rare cases. + +{\bf TAG_HANDLER_CONSTR}({\it name}) + +This macro supplies object constructor. {\it name} is same name as the one +from TAG_HANDLER_BEGIN macro. Body of constructor follow after +this macro (you must use { and } ). Example: + +\begin{verbatim} +TAG_HANDLER_BEGIN(VARS2, "CRAZYTAG") + TAG_HANDLER_VARS + int my_int_var; + TAG_HANDLER_CONSTR(vars2) + { // !!!!!! + my_int_var = 666; + } // !!!!!! +TAG_HANDLER_END(VARS2) +\end{verbatim} + +Never used in wxHTML :-) + +{\bf TAG_HANDLER_PROC}({\it varib}) + +This is very important macro. It defines \helpref{HandleTag}{wxhtmlparserhandletag} +method. {\it varib} is name of parameter passed to the method, usually +{\it tag}. Body of method follows after this macro. +Note than you must use { and } ! Example: + +\begin{verbatim} +TAG_HANDLER_BEGIN(TITLE, "TITLE") + TAG_HANDLER_PROC(tag) + { + printf("TITLE found...\n"); + } +TAG_HANDLER_END(TITLE) +\end{verbatim} + +{\bf TAG_HANDLER_END}({\it name}) + +Ends definition of tag handler {\it name}. + + +\wxheading{Tags Modules} + +You can use set of 3 macros TAGS_MODULE_BEGIN, TAGS_MODULE_ADD and +TAGS_MODULE_END to inherit new module from +\helpref{wxHtmlTagsModule}{wxhtmltagsmodule} and to create instance of it. +See macros reference: + +{\bf TAGS_MODULE_BEGIN}({\it modname}) + +Begins module definition. {\it modname} is part of class name and must +be unique. + +{\bf TAGS_MODULE_ADD}({\it name}) + +Adds the handler to this module. {\it name} is the identifier from +TAG_HANDLER_BEGIN. + +{\bf TAGS_MODULE_END}({\it modname}) + +Ends the definition of module. + +{\bf Example:} + +\begin{verbatim} +TAGS_MODULE_BEGIN(Examples) + TAGS_MODULE_ADD(VARS_ONLY) + TAGS_MODULE_ADD(VARS2) + TAGS_MODULE_ADD(TITLE) +TAGS_MODULE_END(Examples) +\end{verbatim} diff --git a/docs/latex/wx/htmlhlpf.tex b/docs/latex/wx/htmlhlpf.tex new file mode 100644 index 0000000000..ecb6a3ea2f --- /dev/null +++ b/docs/latex/wx/htmlhlpf.tex @@ -0,0 +1,83 @@ +\membersection{Help Files Format}\label{helpformat} + +wxHTML library uses reduced version of MS HTML Workshop format. + +(See \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} for help controller description.) + +A {\bf book} consists of three files : header file, contents file and index file. + +\wxheading{Header file (.hhp)} + +Header file must contain these lines (and may contain additional lines which are ignored) : + +\begin{verbatim} +Contents file=@filename.hhc@ +Index file=@filename.hhk@ +Title=@title of your book@ +Default topic=@default page to be displayed.htm@ +\end{verbatim} + +All filenames (including Default topic) are relative to the location of .hhp file. + +For larger projects I recommend storing everything but .hhp file into one .zip archive. (E.g. contents file +would then be reffered as myhelp.zip\#zip:contents.hhc) + +\wxheading{Contents file (.hhc)} + +Contents file has HTML syntax and it can be parsed by regular HTML parser. It contains exactly one list +(

statement): + +\begin{verbatim} +
    + +
  • + + + + +
  • + + + + + ... + +
+\end{verbatim} + +You can modify value attributes of param tags. {\it topic name} is name of chapter/topic as is displayed in +contents, {\it filename.htm} is HTML page name (relative to .hhp file) and {\it numeric_id} is optional +- it is used only when you use \helpref{wxHtmlHelpController::Display(int)}{wxhtmlhelpcontrollerdisplay} + +Items in the list may be nested - one \ statement may contain \ sub-statement: + +\begin{verbatim} +
    + +
  • + + + +
      +
    • + + + + ... +
    + +
  • + + + + ... + +
+\end{verbatim} + + +\wxheading{Index file (.hhk)} + +Index files have same format as contents file except that ID params are ignored and sublists are {\bf not} +allowed. + diff --git a/docs/latex/wx/htmlprn.tex b/docs/latex/wx/htmlprn.tex new file mode 100644 index 0000000000..700a1e271d --- /dev/null +++ b/docs/latex/wx/htmlprn.tex @@ -0,0 +1,62 @@ +\membersection{Printing}\label{printing} + +The wxHTML library provides printing facilities. + +You can redirect output displayed by \helpref{wxHtmlWindow}{wxhtmlwindow} +to the printer DC using this (or similar) code (see {\bf printing} sample for +more details) : + +\begin{verbatim} +// +// This method prints page number one to dc: +// + +void MyPrintout::DrawPageOne(wxDC *dc) +{ + int leftMargin = 20; + int topMargin = 50; + // You must compute the margins there. + // Caution! These values are NOT in printer DC's units. + // These values are in screen pixels. + // (see bellow) + + // Here we obtain internal cell representation of HTML document: + // (html is our pointer to wxHtmlWindow object) + wxHtmlContainerCell *cell = html -> GetInternalRepresentation(); + + // Now we have to check in case our real page size is reduced + // (e.g. because we're drawing to a print preview memory DC) + int pageWidth, pageHeight; + int w, h; + dc->GetSize(&w, &h); // DC size + GetPageSizePixels(&pageWidth, &pageHeight); // real size + + // Now we must scale it. This equation will map wxHtmlWindow + // to page in this way: + // |--this is whole page as printed---------| + // | | | | + // | | | | + // |-margin-|-----wxHtmlWindow-----|-margin-| + // + // So page width is 2*leftMargin + [wxHtmlWindow size] + // (measured in screen pixels). + // We will scale the printer DC so that wxHtmlWindow's content + // spreads from left to right: + float scale = (float)( + (float)(pageWidth) / + (float)(2 * leftMargin + cell -> GetMaxLineWidth())); + + // If printer pageWidth == current DC width, then this doesn't + // change. But w might be the preview bitmap width, so scale down. + float overallScale = scale * (float)(w/(float)pageWidth); + + // Set the user scale so that our computations take effect: + dc->SetUserScale(overallScale, overallScale); + dc->SetBackgroundMode(wxTRANSPARENT); + + // And this is - finally - HTML stuff: + cell -> Draw(*dc, leftMargin, topMargin, 0, cell -> GetHeight()); +} +\end{verbatim} + +(Thanks to Julian Smart for sample) diff --git a/docs/latex/wx/htmlstrt.tex b/docs/latex/wx/htmlstrt.tex new file mode 100644 index 0000000000..15dc1b449c --- /dev/null +++ b/docs/latex/wx/htmlstrt.tex @@ -0,0 +1,68 @@ +\membersection{Quick Start}\label{quickstart} + +\wxheading{Displaying HMTL} + +First of all, you must include . + +Class \helpref{wxHtmlWindow}{wxhtmlwindow} (derived from wxScrolledWindow) +is used to display HTML documents. +It has 2 important methods : \helpref{LoadPage}{wxhtmlwindowloadpage} +and \helpref{SetPage}{wxhtmlwindowsetpage}. +LoadPage loads and displays HTML file while SetPage displays directly the +passed {\bf string}. See the example: + +\begin{verbatim} + mywin -> LoadPage("test.htm"); + mywin -> SetPage("" + "

Error

" + "Some error occured :-H)" + ""); +\end{verbatim} + +I think the difference is quite clear... + +\wxheading{Displaying Help} + +See \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}. + +\wxheading{Setting up wxHtmlWindow} + +Because wxHtmlWindow is derived from wxScrolledWindow and not from +wxFrame, it doesn't have visible frame. But the user usually want to see +the title of HTML page displayed somewhere and frame's titlebar is +ideal place for it... + +wxHtmlWindow provides 2 methods in order to handle this : +\helpref{SetRelatedFrame}{wxhtmlwindowsetrelatedframe} and +\helpref{SetRelatedStatusBar}{wxhtmlwindowsetrelatedstatusbar}. +See the example: + +\begin{verbatim} + html = new wxHtmlWindow(this); + html -> SetRelatedFrame(this, "HTML : %%s"); + html -> SetRelatedStatusBar(0); +\end{verbatim} + +The first command associates html object with it's parent frame +(this points to wxFrame object there) and sets format of title. +Page title "Hello, world!" will be displayed as "HTML : Hello, world!" +in this example. + +The second command sets which frame's status bar should be used to display +browser's messages (such as "Loading..." or "Done" or hypertext links). + +\wxheading{Customizing wxHtmlWindow} + +You can customize wxHtmlWindow by setting font size, font face and +borders (space between border of window and displayed HTML). Related functions: + +\begin{itemize} +\item \helpref{SetFonts}{wxhtmlwindowsetfonts} +\item \helpref{SetBorders}{wxhtmlwindowsetborders} +\item \helpref{ReadCustomization}{wxhtmlwindowreadcustomization} +\item \helpref{WriteCustomization}{wxhtmlwindowwritecustomization} +\end{itemize} + +The last two functions are used to store user customization info wxConfig stuff +(for example registry under Windows or dotfile under Unix) + diff --git a/docs/latex/wx/htparser.tex b/docs/latex/wx/htparser.tex new file mode 100644 index 0000000000..3724999272 --- /dev/null +++ b/docs/latex/wx/htparser.tex @@ -0,0 +1,191 @@ +% +% automatically generated by HelpGen from +% htmlparser.tex at 14/Mar/99 20:13:37 +% + + +\section{\class{wxHtmlParser}}\label{wxhtmlparser} + +This class handles {\bf generic} parsing of HTML document : it scans +the document and divide it into blocks of tags (where one block +consists of begining and ending tag and of text between these +2 tags). + +It is independent from wxHtmlWindow and can be used as stand-alone parser +(Julian Smart's idea of speech-only HTML viewer or wget-like utility - +see InetGet sample for example). + +It uses system of tag handlers to parse the HTML document. Tag handlers +are not staticaly shared by all instances but are created for each +wxHtmlParser instance. The reason is that the handler may contain +document-specific temporary data used during parsing (e.g. complicated +structures like tables) + +Typically the user calls only \helpref{Parse}{wxhtmlparserparse} method. + +\wxheading{Derived from} + +wxObject + +\wxheading{See also} + +\helpref{Cells Overview}{cells}, +\helpref{Tag Handlers Overview}{handlers}, +\helpref{wxHtmlTag}{wxhtmltag} + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxHtmlParser::wxHtmlParser}\label{wxhtmlparserwxhtmlparser} + +\func{}{wxHtmlParser}{\void} + +Constructor. + + +\membersection{wxHtmlParser::SetFS}\label{wxhtmlparsersetfs} + +\func{void}{SetFS}{\param{wxFileSystem }{*fs}} + +Sets the virtual file system that will be used to request additional +files. (For example {\tt } tag handler requests wxFSFile with the +image data.) + +\membersection{wxHtmlParser::GetFS}\label{wxhtmlparsergetfs} + +\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 +calling + +\begin{verbatim} +wxFSFile *f = m_Parser -> GetFS() -> OpenFile("image.jpg"); +\end{verbatim} + + +\membersection{wxHtmlParser::Parse}\label{wxhtmlparserparse} + +\func{wxObject*}{Parse}{\param{const wxString\& }{source}} + +Proceeds parsing of the document. This is end-user method. You can simply +call it when you need to obtain parsed output (which is parser-specific) + +The method does these things: + +\begin{enumerate} +\item calls \helpref{InitParser(source)}{wxhtmlparserinitparser} +\item calls \helpref{DoParsing}{wxhtmlparserdoparsing} +\item calls \helpref{GetProduct}{wxhtmlparsergetproduct} +\item calls \helpref{DoneParser}{wxhtmlparserdoneparser} +\item returns value returned by GetProduct +\end{enumerate} + +You shouldn't use InitParser, DoParsing, GetProduct or DoneParser directly. + +\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 +in derived class) + + +\membersection{wxHtmlParser::DoneParser}\label{wxhtmlparserdoneparser} + +\func{virtual void}{DoneParser}{\void} + +This must be called after DoParsing(). + + +\membersection{wxHtmlParser::DoParsing}\label{wxhtmlparserdoparsing} + +\func{void}{DoParsing}{\param{int }{begin\_pos}, \param{int }{end\_pos}} + +\func{void}{DoParsing}{\void} + +Parses the m\_Source from begin\_pos to end\_pos-1. +(in noparams version it parses whole m\_Source) + +\membersection{wxHtmlParser::GetProduct}\label{wxhtmlparsergetproduct} + +\func{virtual wxObject*}{GetProduct}{\void} + +Returns product of parsing. Returned value is result of parsing +of the document. The type of this result depends on internal +representation in derived parser (but it must be derived from wxObject!). + +See wxHtmlWinParser for details. + + +\membersection{wxHtmlParser::AddTagHandler}\label{wxhtmlparseraddtaghandler} + +\func{virtual void}{AddTagHandler}{\param{wxHtmlTagHandler }{*handler}} + +Adds handler to the internal list (\& hash table) of handlers. This +method should not be called directly by user but rather by derived class' +constructor. + +This adds the handler to this {\bf instance} of wxHtmlParser not to +all objects of this class!!! (Static front-end to AddTagHandler is provided +by wxHtmlWinParser) + +All handlers are deleted on object deletion. + +\membersection{wxHtmlParser::GetSource}\label{wxhtmlparsergetsource} + +\func{wxString*}{GetSource}{\void} + +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 freeded +by 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 +FONT tag it creates some fonts. These fonts are then used by wxHtmlWindow +to display the text. But 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::AddText}\label{wxhtmlparseraddword} + +\func{virtual void}{AddWord}{\param{const char* }{txt}} + +Must be overwriten in derived class. + +This method is called by \helpref{DoParsing}{wxhtmlparserdoparsing} +each time a part of text is parsed. {\it txt} is NOT only one word, it is +substring of input. It is not formatted or preprocessed (so white spaces are +unmodified) + +\membersection{wxHtmlParser::AddTag}\label{wxhtmlparseraddtag} + +\func{void}{AddTag}{\param{const wxHtmlTag\& }{tag} + +This may (and may not) be overwriten in derived class. + +This method is called each time new tag is about to be added. +{\it tag} contains information about the tag. (See \helpref{wxHtmlTag}{wxhtmltag} +for details.) + +Default (wxHtmlParser) behaviour is this : +First it finds a handler capable of handling this tag and then it calls +handler's HandleTag method. diff --git a/docs/latex/wx/httag.tex b/docs/latex/wx/httag.tex new file mode 100644 index 0000000000..40b1da9983 --- /dev/null +++ b/docs/latex/wx/httag.tex @@ -0,0 +1,176 @@ +% +% automatically generated by HelpGen from +% htmltag.tex at 14/Mar/99 20:13:37 +% + + +\section{\class{wxHtmlTag}}\label{wxhtmltag} + +This class represents single HTML tag. +It is used by \helpref{tag handlers}{handlers}. + + +\wxheading{Derived from} + +wxObject + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxHtmlTag::wxHtmlTag}\label{wxhtmltagwxhtmltag} + +\func{}{wxHtmlTag}{\param{const wxString\& }{source}, \param{int }{pos}, \param{int }{end\_pos}, \param{wxHtmlTagsCache* }{cache}} + +Constructor. You'll probably never have to construct wxHtmlTag object +yourself. Feel free to ignore the constructor parameters... +(have a look at lib/htmlparser.cpp if you're interested in creating it) + +\membersection{wxHtmlTag::GetName}\label{wxhtmltaggetname} + +\constfunc{wxString}{GetName}{\void} + +Returns tag's name. The name is always in uppercase and it doesn't contain +'<' or '/' characters. (So the name of {\tt } tag is "FONT" +and name of {\tt } is "TABLE") + + +\membersection{wxHtmlTag::HasParam}\label{wxhtmltaghasparam} + +\constfunc{bool}{HasParam}{\param{const wxString\& }{par}} + +Returns TRUE if the tag has parameter of the given name. +Example : {\tt } has two parameters named +"SIZE" and "COLOR". + +\wxheading{Parameters} + +\docparam{par}{the parameter you're looking for. It must {\it always} be in uppercase!} + +\membersection{wxHtmlTag::GetParam}\label{wxhtmltaggetparam} + +\constfunc{wxString}{GetParam}{\param{const wxString\& }{par}, \param{bool }{with\_commas = FALSE}} + +Retuns the value of the parameter. You should check whether the +param exists or not (use \helpref{HasParam}{wxhtmltaghasparam}) first. + +\wxheading{Parameters} + +\docparam{par}{The parameter's name in uppercase} + +\docparam{with\_commas}{TRUE if you want to get commas as well. See example.} + +\wxheading{Example} + +\begin{verbatim} +... +/* you have wxHtmlTag variable tag which is equal to + HTML tag */ +dummy = tag.GetParam("SIZE"); + // dummy == "+2" +dummy = tag.GetParam("COLOR"); + // dummy == "#0000FF" +dummy = tag.GetParam("COLOR", TRUE); + // dummy == "\"#0000FF\"" -- see the difference!! +\end{verbatim} + + + +\membersection{wxHtmlTag::ScanParam}\label{wxhtmltagscanparam} + +\constfunc{wxString}{ScanParam}{\param{const wxString\& }{par}, \param{const char *}{format}, fuck} + +This method scans given parameter. Usage is exatly the same as sscanf's +usage except that you don't pass string but param name as the first parameter. + +\wxheading{Parameters} + +\docparam{par}{The name of tag you wanna query (in uppercase)} + +\docparam{format}{scanf()-like format string.} + +\wxheading{Cygwin and Mingw32} + +If you're using Cygwin beta 20 or Mingw32 compiler please remember +that ScanParam() is only partially implemented!! The problem is +that under Cygnus' GCC vsscanf() function is not implemented. I workarounded +this in a way which causes that you can use only one parameter in ... +(and only one \% in {\it format}) + +\membersection{wxHtmlTag::GetAllParams}\label{wxhtmltaggetallparams} + +\constfunc{const wxString\&}{GetAllParams}{\void} + +Returns string with all params. + +Example : tag contains {\tt }. Call to +tag.GetAllParams() would return {\tt SIZE=+2 COLOR="\#000000"}. + +\membersection{wxHtmlTag::IsEnding}\label{wxhtmltagisending} + +\constfunc{bool}{IsEnding}{\void} + +Returns TRUE if this tag is ending one. +({\tt } is ending tag, {\tt } is not) + + +\membersection{wxHtmlTag::HasEnding}\label{wxhtmltaghasending} + +\constfunc{bool}{HasEnding}{\void} + +Returns TRUE if this tag is paired with ending tag, FALSE otherwise. + +See the example of HTML document: + +\begin{verbatim} + +Hello

+How are you? +

This is centered...

+Oops
Oooops! + +\end{verbatim} + +In this example tags HTML and BODY have ending tags, first P and BR +doesn't have ending tag while the second P has. The third P tag (which +is ending itself) of course doesn't have ending tag. + +\membersection{wxHtmlTag::GetBeginPos}\label{wxhtmltaggetbeginpos} + +\constfunc{int}{GetBeginPos}{\void} + +Returns beginning position of the text {\it between} this tag and paired +ending tag. +See explanation (returned position is marked with '^'): + +\begin{verbatim} +bla bla bla bla bla intenal text bla bla + ^ +\end{verbatim} + +\membersection{wxHtmlTag::GetEndPos1}\label{wxhtmltaggetendpos1} + +\constfunc{int}{GetEndPos1}{\void} + +Returns ending position of the text {\it between} this tag and paired +ending tag. +See explanation (returned position is marked with '^'): + +\begin{verbatim} +bla bla bla bla bla intenal text bla bla + ^ +\end{verbatim} + + +\membersection{wxHtmlTag::GetEndPos2}\label{wxhtmltaggetendpos2} + +\constfunc{int}{GetEndPos2}{\void} + +Returns ending position 2 of the text {\it between} this tag and paired +ending tag. +See explanation (returned position is marked with '^'): + +\begin{verbatim} +bla bla bla bla bla intenal text bla bla + ^ +\end{verbatim} + diff --git a/docs/latex/wx/httaghnd.tex b/docs/latex/wx/httaghnd.tex new file mode 100644 index 0000000000..95f221445d --- /dev/null +++ b/docs/latex/wx/httaghnd.tex @@ -0,0 +1,91 @@ +% +% automatically generated by HelpGen from +% htmltaghandler.tex at 18/Mar/99 19:20:29 +% + + +\section{\class{wxHtmlTagHandler}}\label{wxhtmltaghandler} + +\wxheading{Derived from} + +wxObject + +\wxheading{See Also} + +\helpref{Overview}{handlers}, +\helpref{wxHtmlTag}{wxhtmltag} + + + +\latexignore{\rtfignore{\wxheading{Members}}} + +\membersection{wxHtmlTagHandler::m\_Parser}\label{wxhtmltaghandlermparser} + +{\bf wxHtmlParser* m\_Parser} + +This attribute is used to access parent parser. It is protected so that +it can't be accessed by user but can be accessed from derived classes. + +\membersection{wxHtmlTagHandler::wxHtmlTagHandler}\label{wxhtmltaghandlerwxhtmltaghandler} + +\func{}{wxHtmlTagHandler}{\void} + +Constructor. + +\membersection{wxHtmlTagHandler::SetParser}\label{wxhtmltaghandlersetparser} + +\func{virtual void}{SetParser}{\param{wxHtmlParser }{*parser}} + +Assigns {\it parser} to this handler. Each {\bf instance} of handler +is guaranteed to be called only from the parser. + +\membersection{wxHtmlTagHandler::GetSupportedTags}\label{wxhtmltaghandlergetsupportedtags} + +\func{virtual wxString}{GetSupportedTags}{\void} + +Returns list of supported tags. The list is in uppercase and tags +are delimited by ','. Example : {\tt "I,B,FONT,P" } + + +\membersection{wxHtmlTagHandler::HandleTag}\label{wxhtmltaghandlerhandletag} + +\func{virtual bool}{HandleTag}{\param{const wxHtmlTag\& }{tag}} + +This is the core method of each handler. It is called each time +one of supported tags is detected. {\it tag} contains all neccessary +info (see \helpref{wxHtmlTag}{wxhtmltag} for details). + +\wxheading{Return value} + +TRUE if \helpref{ParseInner}{wxhtmltaghandlerparseinner} was called, +FALSE otherwise. + +\wxheading{Example} + +\begin{verbatim} +bool MyHandler::HandleTag(const wxHtmlTag& tag) +{ + ... + // change state of parser (e.g. set bold face) + ParseInner(tag); + ... + // restore original state of parser +} +\end{verbatim} + +You shouldn't call ParseInner if the tag is not paired with ending one. + + +\membersection{wxHtmlTagHandler::ParseInner}\label{wxhtmltaghandlerparseinner} + +\func{void}{ParseInner}{\param{const wxHtmlTag\& }{tag}} + +This method calls parser's \helpref{DoParsing}{wxhtmlparserdoparsing} method +for the string between this tag and paired ending tag: + +\begin{verbatim} +...
Hello, world!... +\end{verbatim} + +In this example, call to ParseInner (with {\it tag} pointing to A tag) +will parse 'Hello, world!' diff --git a/docs/latex/wx/httagmod.tex b/docs/latex/wx/httagmod.tex new file mode 100644 index 0000000000..97f591851d --- /dev/null +++ b/docs/latex/wx/httagmod.tex @@ -0,0 +1,42 @@ +% +% automatically generated by HelpGen from +% htmltagsmodule.tex at 14/Mar/99 20:13:37 +% + + +\section{\class{wxHtmlTagsModule}}\label{wxhtmltagsmodule} + +This class provides easy way of filling wxHtmlWinParser's table of +tag handlers. It is used almost exclusively together with set of +\helpref{TAGS\_MODULE\_* macros}{handlers} + +\wxheading{Derived from} + +wxModule + +\wxheading{See Also} + +\helpref{Tag Handlers}{handlers}, +\helpref{wxHtmlTagHandler}{wxhtmltaghandler}, +\helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}, + + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxHtmlTagsModule::FillHandlersTable}\label{wxhtmltagsmodulefillhandlerstable} + +\func{virtual void}{FillHandlersTable}{\param{wxHtmlWinParser }{*parser}} + +You must override this method. In most common case it's body consists +only of lines of following type: + +\begin{verbatim} +parser -> AddTagHandler(new MyHandler); +\end{verbatim} + +I recommend using {\bf TAGS\_MODULE\_*} macros. + +\wxheading{Paremeters} + +\docparam{parser}{Pointer to the parser that requested tables filling.} diff --git a/docs/latex/wx/htwidget.tex b/docs/latex/wx/htwidget.tex new file mode 100644 index 0000000000..550f781f99 --- /dev/null +++ b/docs/latex/wx/htwidget.tex @@ -0,0 +1,38 @@ +% +% automatically generated by HelpGen from +% htmlcell.h at 14/Apr/99 20:12:40 +% + + +\section{\class{wxHtmlWidgetCell}}\label{wxhtmlwidgetcell} + + + +wxHtmlWidgetCell is class that provides connection between HTML cell and widget (object derived +from wxWindow). You can use it to display things like forms, input boxes etc. in HTML window. + +wxHtmlWidgetCell takes care of resizing and moving window. + +\wxheading{Derived from} + +\helpref{wxHtmlCell}{wxhtmlcell} + + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxHtmlWidgetCell::wxHtmlWidgetCell}\label{wxhtmlwidgetcellwxhtmlwidgetcell} + +\func{}{wxHtmlWidgetCell}{\param{wxWindow* }{wnd}, \param{int }{w = 0}} + +Constructor + +\wxheading{Parameters} + +\docparam{wnd}{Connected window. It's parent window {\bf must} be the wxHtmlWindow object within +which it is displayed!} + +\docparam{w}{Floating width. If non-zero width of {\it wnd} window is adjusted so that it is +always {\it w} percents of parent container's width. (For example w = 100 means that the window +will always have same width as parent container) + diff --git a/docs/latex/wx/htwindow.tex b/docs/latex/wx/htwindow.tex new file mode 100644 index 0000000000..ae85e3ba6d --- /dev/null +++ b/docs/latex/wx/htwindow.tex @@ -0,0 +1,276 @@ +% +% automatically generated by HelpGen from +% htmlwindow.tex at 14/Mar/99 20:13:37 +% + + +\section{\class{wxHtmlWindow}}\label{wxhtmlwindow} + +wxHtmlWindow is probably the only class you will directly use +unless you want to do something special (like adding new tag +handlers or MIME filters) + +Purpose of this class is to display HTML page (either local +file or downloaded via HTTP protocol) in a window. Width +of window is constant - given in constructor - virtual height +is changed dynamicly depending on page size. +Once the window is created you can set it's content by calling +\helpref{SetPage(text)}{wxhtmlwindowsetpage} or +\helpref{LoadPage(filename)}{wxhtmlwindowloadpage}. + + +\wxheading{Derived from} + +wxScrolledWindow + +\wxheading{Include files} + + + +\membersection{wxHtmlWindow::wxHtmlWindow}\label{wxhtmlwindowwxhtmlwindow} + +\func{}{wxHtmlWindow}{\void} + +Default constructor. + +\func{}{wxHtmlWindow}{\param{wxWindow }{*parent}, \param{wxWindowID }{id = -1}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{const wxString\& }{name = "htmlWindow"}, \param{bool }{scrollable = TRUE}} + +Constructor. The parameters are same as in wxScrollWindow ctor. +(Too lazy to document it once again... :-) + +\wxheading{Parameters} + +\docparam{scrollable}{if false then no scrollbars are displayed, even if size of page is larger than window size} + + + +\membersection{wxHtmlWindow::SetPage}\label{wxhtmlwindowsetpage} + +\func{bool}{SetPage}{\param{const wxString\& }{source}} + +Sets HTML page and display it. This won't {\bf load} the page!! +It will display the {\it source}. See example: + +\begin{verbatim} +htmlwin -> SetPage("Hello, world!"); +\end{verbatim} + +If you want to load document from some location use +\helpref{LoadPage}{wxhtmlwindowloadpage} instead. + +\wxheading{Parameters} + +\docparam{source}{The HTML document source to be displayed.} + + +\wxheading{Return value} + +FALSE if an error occured, TRUE otherwise + +\membersection{wxHtmlWindow::LoadPage}\label{wxhtmlwindowloadpage} + +\func{bool}{LoadPage}{\param{const wxString\& }{location}} + +Unlike SetPage this function first loads HTML page from {\it location} +and then displays it. See example: + +\begin{verbatim} +htmlwin -> SetPage("help/myproject/index.htm"); +\end{verbatim} + +\wxheading{Parameters} + +\docparam{location}{The address of document. See \helpref{wxFileSystem}{wxfilesystem} for details on address format and behaviour of "opener".} + +\wxheading{Return value} + +FALSE if an error occured, TRUE otherwise + + + +\membersection{wxHtmlWindow::GetOpenedPage}\label{wxhtmlwindowgetopenedpage} + +\func{wxString}{GetOpenedPage}{\void} + +Returns full location of the opened page. If no page is opened or if the displayed page wasn't +produced by call to LoadPage, empty string is returned. + + + +\membersection{wxHtmlWindow::SetRelatedFrame}\label{wxhtmlwindowsetrelatedframe} + +\func{void}{SetRelatedFrame}{\param{wxFrame* }{frame}, \param{const wxString\& }{format}} + +Sets frame in which page title will be displayed. {\it format} is format of +frame title, e.g. "HtmlHelp : \%s". It must contain exactly one \%s. This +\%s is substituted with HTML page title. + + + + +\membersection{wxHtmlWindow::GetRelatedFrame}\label{wxhtmlwindowgetrelatedframe} + +\constfunc{wxFrame*}{GetRelatedFrame}{\void} + +Returns the related frame. + + +\membersection{wxHtmlWindow::SetRelatedStatusBar}\label{wxhtmlwindowsetrelatedstatusbar} + +\func{void}{SetRelatedStatusBar}{\param{int }{bar}} + +{\bf After} calling \helpref{SetRelatedFrame}{wxhtmlwindowsetrelatedframe}, +this sets statusbar slot where messages will be displayed. +(Default is -1 = no messages.) + +\wxheading{Parameters} + +\docparam{bar}{statusbar slot number (0..n)} + +\membersection{wxHtmlWindow::SetFonts}\label{wxhtmlwindowsetfonts} + +\func{void}{SetFonts}{\param{wxString }{normal\_face}, \param{int }{normal\_italic\_mode}, \param{wxString }{fixed\_face}, \param{int }{fixed\_italic\_mode}, \param{int }{*sizes}} + +This function sets font sizes and faces. + +\wxheading{Parameters} + +\docparam{normal_face}{This is face name for normal (i.e. non-fixed) font. +It can be either empty string (then the default face is choosen) or +platform-specific face name. Examples are "helvetica" under Unix or +"Times New Roman" under Windows.} + +\docparam{normal_italic_mode}{This is either wxSLANT or wxITALIC. +It determines how +italic (..) text is handled. See wxFont documentation for +details. For example you should use wxSLANT in conjuction with +"helvetica" face or wxITALIC with "times" face.} + +\docparam{fixed_face}{The same thing for fixed face ( .. )} + +\docparam{fixed_italic_mode}{The same thing for fixed face.} + +\docparam{sizes}{This is an array of 7 items of {\it int} type. +The values represent size of font with HTML size from -2 to +4 +( to )} + +\wxheading{Defaults} + +Under wxGTK: + +\begin{verbatim} + SetFonts("", wxSLANT, "", wxSLANT, {10, 12, 14, 16, 19, 24, 32}); +\end{verbatim} + +Under Windows: + +\begin{verbatim} + SetFonts("", wxSLANT, "", wxSLANT, {7, 8, 10, 12, 16, 22, 30}); +\end{verbatim} + +Athough it seems different the fact is that the fonts are of approximately +same size under both platforms (due to wxMSW / wxGTK inconsistency) + + +\membersection{wxHtmlWindow::SetBorders}\label{wxhtmlwindowsetborders} + +\func{void}{SetBorders}{\param{int }{b}} + +This function sets the space between border of window and HTML contents. See image: + +\image{}{border.bmp} + +\wxheading{Parameters} + +\docparam{b}{indentation from borders in pixels} + + +\membersection{wxHtmlWindow::ReadCustomization}\label{wxhtmlwindowreadcustomization} + +\func{virtual void}{ReadCustomization}{\param{wxConfigBase }{*cfg}, \param{wxString }{path = wxEmptyString}} + +This reads custom settings from wxConfig. It uses the path 'path' +if given, otherwise it saves info into currently selected path. +The values are stored in sub-path {\tt wxHtmlWindow} + +Read values : all things set by SetFonts, SetBorders. + +\wxheading{Parameters} + +\docparam{cfg}{wxConfig from which you wanna read configuration} + +\docparam{path}{Optional path in config tree. If not given current path is used.} + + +\membersection{wxHtmlWindow::WriteCustomization}\label{wxhtmlwindowwritecustomization} + +\func{virtual void}{WriteCustomization}{\param{wxConfigBase }{*cfg}, \param{wxString }{path = wxEmptyString}} + +Saves custom settings into wxConfig. It uses the path 'path' +if given, otherwise it saves info into currently selected path. +Regardless path is given or not the function creates sub-path +{\tt wxHtmlWindow} + +Saved values : all things set by SetFonts, SetBorders. + +\wxheading{Parameters} + +\docparam{cfg}{wxConfig to which you wanna save configuration} + +\docparam{path}{Optional path in config tree. If not given current path is used.} + + +\membersection{wxHtmlWindow::GetInternalRepresentation}\label{wxhtmlwindowgetinternalrepresentation} + +\constfunc{wxHtmlContainerCell*}{GetInternalRepresentation}{\void} + +Returns pointer to the top-level container. + +See also : +\helpref{Cells Overview}{cells}, +\helpref{Printing Overview}{printing} + + +\membersection{wxHtmlWindow::AddFilter}\label{wxhtmlwindowaddfilter} + +\func{static void}{AddFilter}{\param{wxHtmlFilter }{*filter}} + +Adds \helpref{input filter}{filters} to the static list of available +filters. These filters are present by default: + +\begin{itemize} +\item {\tt text/html} MIME type +\item {\tt image/*} MIME types +\item Plain Text filter (this filter is used if no other filter matches) +\end{itemize} + + +\membersection{wxHtmlWindow::HistoryBack}\label{wxhtmlwindowhistoryback} + +\func{bool}{HistoryBack}{\void} + +Moves back to the previous page. (each page displayed using +\helpref{LoadPage}{wxhtmlwindowloadpage} is stored in history list.) + + +\membersection{wxHtmlWindow::HistoryForward}\label{wxhtmlwindowhistoryforward} + +\func{bool}{HistoryForward}{\void} + +Moves to next page in history. + +\membersection{wxHtmlWindow::HistoryClear}\label{wxhtmlwindowhistoryclear} + +\func{void}{HistoryClear}{\void} + +Clears history. + + +\membersection{wxHtmlWindow::OnLinkClicked}\label{wxhtmlwindowonlinkclicked} + +\func{virtual void}{OnLinkClicked}{\param{const wxString\& }{link}} + +Called when user clicks on hypertext link. Default behaviour is to call +\helpref{LoadPage}{wxhtmlwindowloadpage} and do nothing else. + + diff --git a/docs/latex/wx/htwinhnd.tex b/docs/latex/wx/htwinhnd.tex new file mode 100644 index 0000000000..a0bd9fc557 --- /dev/null +++ b/docs/latex/wx/htwinhnd.tex @@ -0,0 +1,32 @@ +% +% automatically generated by HelpGen from +% htmlwintaghandler.tex at 14/Mar/99 20:13:37 +% + + +\section{\class{wxHtmlWinTagHandler}}\label{wxhtmlwintaghandler} + +This is basicly wxHtmlTagHandler except +it is extended with protected member m\_WParser pointing to +the wxHtmlWinParser object (value of this member is identical +to wxHtmlParser's m\_Parser). + + +\wxheading{Derived from} + +\helpref{wxHtmlTagHandler}{wxhtmltaghandler} + + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxHtmlWinTagHandler::m\_WParser}\label{wxhtmlwintaghandlerwxhtmlwintaghandlermwparser} + +{\bf wxHtmlWinParser* m\_WParser} + +Value of this attribute is identical to value of m\_Parser. The only different +is that m\_WParser points to wxHtmlWinParser object while m\_Parser +points to wxHtmlParser object. +(The same object, but overcasted) + + diff --git a/docs/latex/wx/htwinprs.tex b/docs/latex/wx/htwinprs.tex new file mode 100644 index 0000000000..7737ad0a82 --- /dev/null +++ b/docs/latex/wx/htwinprs.tex @@ -0,0 +1,261 @@ +% +% automatically generated by HelpGen from +% htmlwinparser.tex at 14/Mar/99 20:13:37 +% + + +\section{\class{wxHtmlWinParser}}\label{wxhtmlwinparser} + + +This class is derived from \helpref{wxHtmlParser}{wxhtmlparser} and +its mail goal is to parse HTML input so that it can be displayed in +\helpref{wxHtmlWindow}{wxhtmlwindow}. It uses special +\helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}. + +\wxheading{Notes} + +\begin{enumerate} +\item Product of parsing is wxHtmlCell (resp. wxHtmlContainer) object. +\item This parser produces temporary data! You should call +\helpref{delete GetTempData()}{wxhtmlparsergettempdata}! +\end{enumerate} + + +\wxheading{Derived from} + +\helpref{wxHtmlParser}{wxhtmlparser} + +\wxheading{See Also} + +\helpref{Handlers overview}{handlers} + +\latexignore{\rtfignore{\wxheading{Members}}} + +\membersection{wxHtmlWinParser::wxHtmlWinParser}\label{wxhtmlwinparserwxhtmlwinparser} + +\func{}{wxHtmlWinParser}{\void} + +\func{}{wxHtmlWinParser}{\param{wxWindow }{*wnd}} + +Constructor. Don't use the default one, use constructor with +{\it wnd} paremeter ({\it wnd} is pointer to associated \helpref{wxHtmlWindow}{wxhtmlwindow}) + + +\membersection{wxHtmlWinParser::SetDC}\label{wxhtmlwinparsersetdc} + +\func{virtual void}{SetDC}{\param{wxDC }{*dc}} + +Sets the DC. This must be called before \helpref{Parse}{wxhtmlparserparse}! + +\membersection{wxHtmlWinParser::GetDC}\label{wxhtmlwinparsergetdc} + +\func{wxDC*}{GetDC}{\void} + +Returns pointer to the DC used during parsing. + +\membersection{wxHtmlWinParser::GetCharHeight}\label{wxhtmlwinparsergetcharheight} + +\constfunc{int}{GetCharHeight}{\void} + +Returns (average) char height in standard font. It's used as DC-independent metrics. + +{\bf Note:} This function doesn't return {\it actual} height. If you wanna +know height of current font, call {\tt GetDC -> GetCharHeight()} + +\membersection{wxHtmlWinParser::GetCharWidth}\label{wxhtmlwinparsergetcharwidth} + +\constfunc{int}{GetCharWidth}{\void} + +Returns average char width in standard font. It's used as DC-independent metrics. + +{\bf Note:} This function doesn't return {\it actual} width. If you wanna +know height of current font, call {\tt GetDC -> GetCharWidth()} + +\membersection{wxHtmlWinParser::GetWindow}\label{wxhtmlwinparsergetwindow} + +\func{wxWindow*}{GetWindow}{\void} + +Returns associated window (wxHtmlWindow). This may be NULL! (You should always +test if it is non-NULL. For example {\tt TITLE} handler sets window +title only if some window is associated, otherwise it does nothing) + + +\membersection{wxHtmlWinParser::SetFonts}\label{wxhtmlwinparsersetfonts} + +\func{void}{SetFonts}{\param{wxString }{normal\_face}, \param{int }{normal\_italic\_mode}, \param{wxString }{fixed\_face}, \param{int }{fixed\_italic\_mode}, \param{int }{*sizes}} + +Sets fonts. This method is identical to \helpref{wxHtmlWindow::SetFonts}{wxhtmlwindowsetfonts} + + +\membersection{wxHtmlWinParser::AddModule}\label{wxhtmlwinparseraddmodule} + +\func{static void}{AddModule}{\param{wxHtmlTagsModule }{*module}} + +Adds \helpref{module}{handlers} to the list of wxHtmlWinParser tag handler. + + +\membersection{wxHtmlWinParser::GetContainer}\label{wxhtmlwinparsergetcontainer} + +\constfunc{wxHtmlContainerCell*}{GetContainer}{\void} + +Returns pointer to the currectly opened container (see \helpref{Overview}{cells}). +Common use: + +\begin{verbatim} +m_WParser -> GetContainer() -> InsertCell(new ...); +\end{verbatim} + +\membersection{wxHtmlWinParser::OpenContainer}\label{wxhtmlwinparseropencontainer} + +\func{wxHtmlContainerCell*}{OpenContainer}{\void} + +Opens new container and returns pointer to it (see \helpref{Overview}{cells}). + +% +%\membersection{wxHtmlWinParser::SetContainer}\label{wxhtmlwinparsersetcontainer} +% +%\func{wxHtmlContainerCell*}{SetContainer}{\param{wxHtmlContainerCell *}{c}} +% +%Allows you to directly set opened container. This is not recommended - you should use OpenContainer +%whereever possible. +% + +\membersection{wxHtmlWinParser::CloseContainer}\label{wxhtmlwinparserclosecontainer} + +\func{wxHtmlContainerCell*}{CloseContainer}{\void} + +Closes the container, sets actual container to the parent one +and returns pointer to it (see \helpref{Overview}{cells}). + + + +\membersection{wxHtmlWinParser::GetFontSize}\label{wxhtmlwinparsergetfontsize} + +\constfunc{int}{GetFontSize}{\void} + +Returns actual font size (HTML size varies from -2 to +4) + +\membersection{wxHtmlWinParser::SetFontSize}\label{wxhtmlwinparsersetfontsize} + +\func{void}{SetFontSize}{\param{int }{s}} + +Sets actual font size (HTML size varies from -2 to +4) + +\membersection{wxHtmlWinParser::GetFontBold}\label{wxhtmlwinparsergetfontbold} + +\constfunc{int}{GetFontBold}{\void} + +Returns TRUE if actual font is bold, FALSE otherwise. + +\membersection{wxHtmlWinParser::SetFontBold}\label{wxhtmlwinparsersetfontbold} + +\func{void}{SetFontBold}{\param{int }{x}} + +Sets bold flag of actualfont. {\it x} is either TRUE of FALSE. + +\membersection{wxHtmlWinParser::GetFontItalic}\label{wxhtmlwinparsergetfontitalic} + +\constfunc{int}{GetFontItalic}{\void} + +Returns TRUE if actual font is italic, FALSE otherwise. + + +\membersection{wxHtmlWinParser::SetFontItalic}\label{wxhtmlwinparsersetfontitalic} + +\func{void}{SetFontItalic}{\param{int }{x}} + +Sets italic flag of actualfont. {\it x} is either TRUE of FALSE. + +\membersection{wxHtmlWinParser::GetFontUnderlined}\label{wxhtmlwinparsergetfontunderlined} + +\constfunc{int}{GetFontUnderlined}{\void} + +Returns TRUE if actual font is underlined, FALSE otherwise. + +\membersection{wxHtmlWinParser::SetFontUnderlined}\label{wxhtmlwinparsersetfontunderlined} + +\func{void}{SetFontUnderlined}{\param{int }{x}} + +Sets underlined flag of actualfont. {\it x} is either TRUE of FALSE. + +\membersection{wxHtmlWinParser::GetFontFixed}\label{wxhtmlwinparsergetfontfixed} + +\constfunc{int}{GetFontFixed}{\void} + +Returns TRUE if actual font is fixed face, FALSE otherwise. + +\membersection{wxHtmlWinParser::SetFontFixed}\label{wxhtmlwinparsersetfontfixed} + +\func{void}{SetFontFixed}{\param{int }{x}} + +Sets fixed face flag of actualfont. {\it x} is either TRUE of FALSE. + +\membersection{wxHtmlWinParser::GetAlign}\label{wxhtmlwinparsergetalign} + +\constfunc{int}{GetAlign}{\void} + +Returns default horizontal alignment. + +\membersection{wxHtmlWinParser::SetAlign}\label{wxhtmlwinparsersetalign} + +\func{void}{SetAlign}{\param{int }{a}} + +Sets default horizontal alignment (see \helpref{wxHtmlContainerCell::SetAlignHor}{wxhtmlcontainercellsetalignhor}. +Alignment of newly opened container is set to this value. + +\membersection{wxHtmlWinParser::GetLinkColor}\label{wxhtmlwinparsergetlinkcolor} + +\constfunc{const wxColour\&}{GetLinkColor}{\void} + +Returns color of hypertext link text. + +\membersection{wxHtmlWinParser::SetLinkColor}\label{wxhtmlwinparsersetlinkcolor} + +\func{void}{SetLinkColor}{\param{const wxColour\& }{clr}} + +Sets color of hypertext link. + +\membersection{wxHtmlWinParser::GetActualColor}\label{wxhtmlwinparsergetactualcolor} + +\constfunc{const wxColour\&}{GetActualColor}{\void} + +Returns actual text color. + +\membersection{wxHtmlWinParser::SetActualColor}\label{wxhtmlwinparsersetactualcolor} + +\func{void}{SetActualColor}{\param{const wxColour\& }{clr}} + +Sets actual text color. Note: this DOESN'T change the color! +You must create \helpref{wxHtmlColourCell}{wxhtmlcolourcell} yourself. + +\membersection{wxHtmlWinParser::GetLink}\label{wxhtmlwinparsergetlink} + +\constfunc{const wxString\&}{GetLink}{\void} + +Returns actual hypertext link. (This value is non-empty string +if the parser is between {\tt } and {\tt } tags, +wxEmptyString otherwise. + + +\membersection{wxHtmlWinParser::SetLink}\label{wxhtmlwinparsersetlink} + +\func{void}{SetLink}{\param{const wxString\& }{link}} + +Sets actual hypertext link. wxEmptyString means no link. + +\membersection{wxHtmlWinParser::CreateCurrentFont}\label{wxhtmlwinparsercreatecurrentfont} + +\func{virtual wxFont*}{CreateCurrentFont}{\void} + +Creates font based on current setting (see +\helpref{SetFontSize}{wxhtmlwinparsersetfontsize}, +\helpref{SetFontBold}{wxhtmlwinparsersetfontbold}, +\helpref{SetFontItalic}{wxhtmlwinparsersetfontitalic}, +\helpref{SetFontFixed}{wxhtmlwinparsersetfontfixed}, +\helpref{SetFontUnderlined}{wxhtmlwinparsersetfontunderlined}) +and returns pointer to it. +(If the font was already created only a pointer is returned.) + +Fonts created during parsing are temporary data and are not freed on DoneParser. +You must call \helpref{delete myparser->GetTempData();}{wxhtmlparsergettempdata} +to free the memory! diff --git a/docs/latex/wx/indent.bmp b/docs/latex/wx/indent.bmp new file mode 100644 index 0000000000000000000000000000000000000000..540b23a872fb938e0ebb2c5e0c57256f7aaa5c58 GIT binary patch literal 31760 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 Fe*@1)u($vK literal 0 HcmV?d00001 diff --git a/docs/latex/wx/wxhtml.tex b/docs/latex/wx/wxhtml.tex new file mode 100644 index 0000000000..268fab1966 --- /dev/null +++ b/docs/latex/wx/wxhtml.tex @@ -0,0 +1,31 @@ +\section{wxHTML Sub-library Overview}\label{wxhtmloverview} + +This library provides classes for parsing and displaying HTML. + +It never intented to be hi-end HTML browser. If you're looking for +something like that try \urlref{http://www.mozilla.org}{http://www.mozilla.org} - there's a +chance you'll be able to make their widget wxWindows-compatible. I'm sure +everyone will enjoy your work in that case... + +But back to wxHTML. + +It can be used as generic rich text viewer - for example to display +nice About Box (like these of GNOME apps) or to display result of +database searching. There is \helpref{wxFileSystem}{wxfilesystem} +class which allows you to use your own virtual file systems... + +wxHtmlWindow supports tag handlers. This means that you can easily +extend wxHtml library with new, unsupported tags. Not only that, +you can even use your own application specific tags! +See lib/mod_*.cpp files for details. + +There is generic (non-wxHtmlWindow) wxHtmlParser class. + + + +\input htmlstrt.tex +\input htmlprn.tex +\input htmlhlpf.tex +\input htmlfilt.tex +\input htmlcell.tex +\input htmlhand.tex diff --git a/docs/latex/wx/zipstrm.tex b/docs/latex/wx/zipstrm.tex new file mode 100644 index 0000000000..569c28a618 --- /dev/null +++ b/docs/latex/wx/zipstrm.tex @@ -0,0 +1,33 @@ +% +% automatically generated by HelpGen from +% zipstream.h at 02/May/99 19:54:25 +% + + +\section{\class{wxZipInputStream}}\label{wxzipinputstream} + +This class is input stream from ZIP archive. The archive +must be local file (accessible via FILE*). +It has all features including StreamSize and seeking. + +\wxheading{Derived from} + +wxInputStream + + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxZipInputStream::wxZipInputStream}\label{wxzipinputstreamwxzipinputstream} + +\func{}{wxZipInputStream}{\param{const wxString\& }{archive}, \param{const wxString\& }{file}} + +Constructor. + +\wxheading{Parameters} + +\docparam{archive}{name of ZIP file} + +\docparam{file}{name of file stored in the archive} + + -- 2.47.2