From de5c0ba7451381eb3a261e962c0b8d569e2e77d0 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Karsten=20Ball=C3=BCder?= <ballueder@usa.net>
Date: Tue, 10 Nov 1998 21:22:22 +0000
Subject: [PATCH] Added a sample to test wxExtHelpController. Should work with
 other wxHelpController implementations, too.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@982 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 samples/help/Makefile                     |   1 +
 samples/help/Makefile.in                  |  26 ++
 samples/help/demo.cpp                     | 259 ++++++++++++++++
 samples/help/demo.def                     |   8 +
 samples/help/demo.rc                      |   6 +
 samples/help/doc/ClassGraph.class         | Bin 0 -> 1146 bytes
 samples/help/doc/ClassGraphPanel.class    | Bin 0 -> 4084 bytes
 samples/help/doc/ClassLayout.class        | Bin 0 -> 2412 bytes
 samples/help/doc/HIER.html                |   9 +
 samples/help/doc/HIERjava.html            |  15 +
 samples/help/doc/NavigatorButton.class    | Bin 0 -> 1741 bytes
 samples/help/doc/USE_HELP.html            |  38 +++
 samples/help/doc/aindex.html              |  21 ++
 samples/help/doc/down.gif                 | Bin 0 -> 1939 bytes
 samples/help/doc/dxxgifs.tex              |   4 +
 samples/help/doc/gifs.db                  |   0
 samples/help/doc/icon1.gif                | Bin 0 -> 326 bytes
 samples/help/doc/icon2.gif                | Bin 0 -> 326 bytes
 samples/help/doc/index.html               |  21 ++
 samples/help/doc/logo.gif                 | Bin 0 -> 11338 bytes
 samples/help/doc/wx204.htm                |  33 ++
 samples/help/doc/wx34.htm                 | 349 ++++++++++++++++++++++
 samples/help/doc/wxExtHelpController.html | 180 +++++++++++
 samples/help/doc/wxhelp.map               |  15 +
 samples/help/mondrian.ico                 | Bin 0 -> 766 bytes
 samples/help/mondrian.xpm                 |  44 +++
 26 files changed, 1029 insertions(+)
 create mode 100644 samples/help/Makefile
 create mode 100644 samples/help/Makefile.in
 create mode 100644 samples/help/demo.cpp
 create mode 100644 samples/help/demo.def
 create mode 100644 samples/help/demo.rc
 create mode 100644 samples/help/doc/ClassGraph.class
 create mode 100644 samples/help/doc/ClassGraphPanel.class
 create mode 100644 samples/help/doc/ClassLayout.class
 create mode 100644 samples/help/doc/HIER.html
 create mode 100644 samples/help/doc/HIERjava.html
 create mode 100644 samples/help/doc/NavigatorButton.class
 create mode 100644 samples/help/doc/USE_HELP.html
 create mode 100644 samples/help/doc/aindex.html
 create mode 100644 samples/help/doc/down.gif
 create mode 100644 samples/help/doc/dxxgifs.tex
 create mode 100644 samples/help/doc/gifs.db
 create mode 100644 samples/help/doc/icon1.gif
 create mode 100644 samples/help/doc/icon2.gif
 create mode 100644 samples/help/doc/index.html
 create mode 100644 samples/help/doc/logo.gif
 create mode 100644 samples/help/doc/wx204.htm
 create mode 100644 samples/help/doc/wx34.htm
 create mode 100644 samples/help/doc/wxExtHelpController.html
 create mode 100644 samples/help/doc/wxhelp.map
 create mode 100644 samples/help/mondrian.ico
 create mode 100644 samples/help/mondrian.xpm

diff --git a/samples/help/Makefile b/samples/help/Makefile
new file mode 100644
index 0000000000..bccce53f76
--- /dev/null
+++ b/samples/help/Makefile
@@ -0,0 +1 @@
+include ../../setup/general/makeapp
diff --git a/samples/help/Makefile.in b/samples/help/Makefile.in
new file mode 100644
index 0000000000..76cebe4c89
--- /dev/null
+++ b/samples/help/Makefile.in
@@ -0,0 +1,26 @@
+# WXXT base directory
+WXBASEDIR=@WXBASEDIR@
+
+# set the OS type for compilation
+OS=@OS@
+# compile a library only
+RULE=bin
+
+# define library name
+BIN_TARGET=demo
+# define library sources
+BIN_SRC=\
+demo.cpp kbList.cpp wxexthlp.cpp
+
+#define library objects
+BIN_OBJ=\
+demo.o 
+
+# additional things needed to link
+BIN_LINK=
+
+# additional things needed to compile
+ADD_COMPILE=
+
+# include the definitions now
+include ../../../template.mak
diff --git a/samples/help/demo.cpp b/samples/help/demo.cpp
new file mode 100644
index 0000000000..f7118b22d2
--- /dev/null
+++ b/samples/help/demo.cpp
@@ -0,0 +1,259 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        minimal.cpp
+// Purpose:     Minimal wxWindows sample
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart and Markus Holzem
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+#ifdef __GNUG__
+    #pragma implementation "minimal.cpp"
+    #pragma interface "minimal.cpp"
+#endif
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+// for all others, include the necessary headers (this file is usually all you
+// need because it includes almost all "standard" wxWindows headers
+#ifndef WX_PRECOMP
+    #include "wx/wx.h"
+#endif
+
+#include   "wx/helpbase.h"
+#include   "wx/help.h"
+
+// ----------------------------------------------------------------------------
+// ressources
+// ----------------------------------------------------------------------------
+// the application icon
+#ifdef __WXGTK__
+    #include "mondrian.xpm"
+#endif
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+// Define a new application type, each program should derive a class from wxApp
+class MyApp : public wxApp
+{
+public:
+    // override base class virtuals
+    // ----------------------------
+
+    // this one is called on application startup and is a good place for the app
+    // initialization (doing it here and not in the ctor allows to have an error
+    // return: if OnInit() returns false, the application terminates)
+    virtual bool OnInit();
+};
+
+// Define a new frame type: this is going to be our main frame
+class MyFrame : public wxFrame
+{
+public:
+    // ctor(s)
+    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
+
+    // event handlers (these functions should _not_ be virtual)
+    void OnQuit(wxCommandEvent& event);
+    void OnHelp(wxCommandEvent& event);
+
+private:
+   wxHelpController  help;
+    // any class wishing to process wxWindows events must use this macro
+   DECLARE_EVENT_TABLE()
+};
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// IDs for the controls and the menu commands
+enum
+{
+    // menu items
+    Minimal_Quit = 1,
+    Minimal_Help_Index,
+    Minimal_Help_Classes,
+    Minimal_Help_Functions,
+    Minimal_Help_Help,
+    Minimal_Help_KDE,
+    Minimal_Help_GNOME,
+    Minimal_Help_Netscape,
+    Minimal_Help_Search,
+    // controls start here (the numbers are, of course, arbitrary)
+    Minimal_Text = 1000,
+};
+
+// ----------------------------------------------------------------------------
+// event tables and other macros for wxWindows
+// ----------------------------------------------------------------------------
+
+// the event tables connect the wxWindows events with the functions (event
+// handlers) which process them. It can be also done at run-time, but for the
+// simple menu events like this the static method is much simpler.
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+    EVT_MENU(Minimal_Quit,  MyFrame::OnQuit)
+    EVT_MENU(Minimal_Help_Index, MyFrame::OnHelp)
+    EVT_MENU(Minimal_Help_Classes, MyFrame::OnHelp)
+    EVT_MENU(Minimal_Help_Functions, MyFrame::OnHelp)
+    EVT_MENU(Minimal_Help_Help, MyFrame::OnHelp)
+    EVT_MENU(Minimal_Help_KDE, MyFrame::OnHelp)
+    EVT_MENU(Minimal_Help_GNOME, MyFrame::OnHelp)
+    EVT_MENU(Minimal_Help_Netscape, MyFrame::OnHelp)
+    EVT_MENU(Minimal_Help_Search, MyFrame::OnHelp)
+END_EVENT_TABLE()
+
+// Create a new application object: this macro will allow wxWindows to create
+// the application object during program execution (it's better than using a
+// static object for many reasons) and also declares the accessor function
+// wxGetApp() which will return the reference of the right type (i.e. MyApp and
+// not wxApp)
+IMPLEMENT_APP(MyApp)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// the application class
+// ----------------------------------------------------------------------------
+
+// `Main program' equivalent: the program execution "starts" here
+bool MyApp::OnInit()
+{
+    // Create the main application window
+    MyFrame *frame = new MyFrame("Minimal wxWindows App",
+                                 wxPoint(50, 50), wxSize(450, 340));
+
+    // Show it and tell the application that it's our main window
+    // @@@ what does it do exactly, in fact? is it necessary here?
+    frame->Show(TRUE);
+    SetTopWindow(frame);
+
+    // success: wxApp::OnRun() will be called which will enter the main message
+    // loop and the application will run. If we returned FALSE here, the
+    // application would exit immediately.
+    return TRUE;
+}
+
+// ----------------------------------------------------------------------------
+// main frame
+// ----------------------------------------------------------------------------
+
+// frame constructor
+MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
+       : wxFrame((wxFrame *)NULL, -1, title, pos, size)
+{
+    // set the frame icon
+    SetIcon(wxICON(mondrian));
+
+    // create a menu bar
+    wxMenu *menuFile = new wxMenu;
+
+    menuFile->Append(Minimal_Help_Index, "&Help Index...");
+    menuFile->Append(Minimal_Help_Classes, "&Help on Classes...");
+    menuFile->Append(Minimal_Help_Functions, "&Help on Functions...");
+    menuFile->Append(Minimal_Help_Help, "&About wxExtHelpController...");
+    menuFile->AppendSeparator();
+    menuFile->Append(Minimal_Help_Search, "&Search help...");
+    if(help.IsKindOf(CLASSINFO(wxExtHelpController)))
+       {
+          menuFile->AppendSeparator();
+          menuFile->Append(Minimal_Help_KDE, "Use &KDE");
+          menuFile->Append(Minimal_Help_GNOME, "Use &GNOME");
+          menuFile->Append(Minimal_Help_Netscape, "Use &Netscape");
+       }
+    menuFile->AppendSeparator();
+    menuFile->Append(Minimal_Quit, "E&xit");
+
+    // now append the freshly created menu to the menu bar...
+    wxMenuBar *menuBar = new wxMenuBar;
+    menuBar->Append(menuFile, "&File");
+
+    // ... and attach this menu bar to the frame
+    SetMenuBar(menuBar);
+
+    // create a status bar just for fun (by default with 1 pane only)
+    CreateStatusBar();
+    SetStatusText("Welcome to wxWindows!");
+
+    // now create some controls
+
+    // a panel first - if there were several controls, it would allow us to
+    // navigate between them from the keyboard
+    wxPanel *panel = new wxPanel(this, -1, wxPoint(0, 0), wxSize(400, 200));
+
+    // and a static control whose parent is the panel
+    (void)new wxStaticText(panel, -1, "Hello, world!", wxPoint(10, 10));
+
+    // initialise the help system
+    help.Initialize("doc");
+   
+}
+
+
+// event handlers
+
+void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
+{
+    // TRUE is to force the frame to close
+    Close(TRUE);
+}
+
+void MyFrame::OnHelp(wxCommandEvent& event)
+{
+   switch(event.GetId())
+   {
+   case Minimal_Help_Classes:
+      help.DisplaySection(1);
+      break;
+   case Minimal_Help_Functions:
+      help.DisplaySection(2);
+      break;
+   case Minimal_Help_Help:
+      help.DisplaySection(5);
+      break;
+   case Minimal_Help_KDE:
+      if(help.IsKindOf(CLASSINFO(wxExtHelpController)))
+         ((wxExtHelpController *)&help)->SetBrowser("kdehelp");
+      break;
+   case Minimal_Help_GNOME:
+      if(help.IsKindOf(CLASSINFO(wxExtHelpController)))
+         ((wxExtHelpController *)&help)->SetBrowser("gnome-help-browser");
+      break;
+   case Minimal_Help_Netscape:
+      if(help.IsKindOf(CLASSINFO(wxExtHelpController)))
+         ((wxExtHelpController *)&help)->SetBrowser("netscape",TRUE);
+      break;
+   case Minimal_Help_Search:
+   {
+      wxString key = wxGetTextFromUser("Search for?",
+                                       "Search help for keyword",
+                                       "",
+                                       this);
+      if(! key.IsEmpty())
+         help.KeywordSearch(key);
+   }
+   break;
+   case Minimal_Help_Index:
+   default:
+      help.DisplayContents();
+      break;
+   }
+}
diff --git a/samples/help/demo.def b/samples/help/demo.def
new file mode 100644
index 0000000000..060bfe3fce
--- /dev/null
+++ b/samples/help/demo.def
@@ -0,0 +1,8 @@
+NAME         Minimal
+DESCRIPTION  'Minimal wxWindows application'
+EXETYPE      WINDOWS
+STUB         'WINSTUB.EXE'
+CODE         PRELOAD MOVEABLE DISCARDABLE
+DATA         PRELOAD MOVEABLE MULTIPLE
+HEAPSIZE     4048
+STACKSIZE    16000
diff --git a/samples/help/demo.rc b/samples/help/demo.rc
new file mode 100644
index 0000000000..3bf71d6da0
--- /dev/null
+++ b/samples/help/demo.rc
@@ -0,0 +1,6 @@
+mondrian ICON "mondrian.ico"
+#include "wx/msw/wx.rc"
+
+#define MINIMAL_QUIT 	1
+#define MINIMAL_ABOUT 	102
+
diff --git a/samples/help/doc/ClassGraph.class b/samples/help/doc/ClassGraph.class
new file mode 100644
index 0000000000000000000000000000000000000000..3c6afea84468c9da332caf0b750afca416c20ed1
GIT binary patch
literal 1146
zcma)5SyR+N5dOj*$%Yg{P!JLCV+qH4;Kd>qEQjcVl$2OJS;OwIM#CgEnFaJ;S?W@y
zRsH~flx5Ez5K10=NOz~Fd;06Idw&1<@e3(TVBNxF3lA+kvXHlM-^5cBFHF2Lv0!4x
z#Iy;|#H5XG4BN1ANsAF1S=`jtbsH8gXzPmhUCqJ7<sA90>E9b#Ty(IC=MLtu;@|;p
zI~d29gD1G-U>0{BEMnQgOUyecV^jyPX))zs3HJ=xrBK9*3AM?BIyW$qA1!}id#u2s
zDB!9v*Hjdw_<<@K$ZqqUP*R}V3JaL16*iRgMU76+tg$`6##AWh>q>>ffR}Gyx33DN
za5oAC7pmB)al&aJ#i~_;w0KbAk@5+cf&La43S0`p{WAL$))j?pgmqcrOMXB|296+8
z)PlduMNGMbrmtKISR5})7QJ6*f(PWg)y9*=-A0pi889n4mlK3kest47Z;h)HWDpm=
zs8TluEGA{RU-hMd4BJthv>i#l!=>ca4ga&I>!^<-77V0);Zu6@Oep3HeL>rqoC4h*
z={6{_6jtfdo^n`W!6uVF+YU6;tmJXCTyKXHK{I^wx~yk&Ova=JW1zd~>2R8hx$4*s
zHM`Cv+vUw>h7&_<g{(5cYFrjIGwKvd|6Pv%_nf+Ut@KVey6j*A)bZ5yiGAEDwN0%o
zgq1q2g_>tEv6gBMDm$aepCvByD>^AbPjgp5D?rZ+q@f=Y$u6>sm?HU%{yrjy4C!~C
zn`zLld2X82s^=P{);zb1)O6Z&Q>4FQ(EAB{D|HCBfwN>=TVq4%@d>YiA^Of8qW?Pv
oJntI@8t8r7HqJEA^My)i5cFi*h5JZrP#NzK=R3y*a&)2e7rP%R2><{9

literal 0
HcmV?d00001

diff --git a/samples/help/doc/ClassGraphPanel.class b/samples/help/doc/ClassGraphPanel.class
new file mode 100644
index 0000000000000000000000000000000000000000..4e3b5162cb2ae3b64c20d7b16d5e2918121d36df
GIT binary patch
literal 4084
zcmbtWd2kz78UL-d(n_lx+fk}CqIL)=rjDH0Z3?E?O(1dF)Zip-+$6OFL2GGkE0HBv
zTKOmiN*frUoCR7MppbHiqXiOdIn+J4$`Kgud!T>v2gCo&Fbw7Qy_KwWZ8`z$(R<(f
z-gjSbFa7I@rxCzTJQv3A!?-()<uERU@trW93F8N0d^e0=gz@t*eiFvp4E)x>B?C_x
z_@jZZ8Ymn1wSjjSc#DB24gA@_hYftuz+DE;8u+Gx83Ug-u@Og1Y{qF>3K1S}6(}7+
z0w?A8CLtLy@e<r_!o*R5vL;$_n~7#wwqU|U3*IcmQ^Gqb(CdZmm_T{CePe{grvw@n
z+>k7zCa%JrLU&Luih?^V%Lx;kFfO;pBZ$G4V=97nWJFs@NXAUG;SS+_gIpXETuyGM
zO<W1b!Z+}F3lHF37QT(2TDT}sRiGc^X$z0x4;JR}sD*dS#XUG@;X&LdxG!7yn&3W(
zM=X2*k6ZXSK4{@X!toV+-@<3`Q47Dq*Dd@`<b4F6vv3{{S$GfrWMKghTR4MzEqqIE
z=kWy#_hZh&BHk|-vlc4&tc737?WctI34z`&;+F(^A3kQ`o%oW4pULe!zGvaR_@RbP
zokOSW8N0`xb$bpJ?di#Ey41h@n1<#R^gtn3C~AnUAdWa`*UnGm91Zc#!R?-a95Fq^
zZZVsm=+|I$4)Rargl^2{v+f>0|3D${+S$BAp)D&y_my3@kk`;up4MOv7s|!7b8}X7
z=$XPSFG6F^c%jI%Icb*;61u%`+R2xA9?03Hk}_WWq1yE<O8OifC`?Tk@=o6EuaS!P
z4Wx!hsXSIvzEJ&CVTM{a`}kJ^<+*6yG?#X!-E2XuiR7GdcW<#+nAH#*%h~DE6j93F
zMG@gl(ViWm<8;Qkvux)`zNyn^!b)Hn!N8O~r@?QvPwQF-CDeMkC?Z=`Onv!ah>F>X
z$+}h1bfKJg>(RTSZh()0>f<$c754DhDW<%C`zXz_GZ_sVeZf%Wp-Lt)&8)hfgXWOR
z%8)%@D7%!mp<&cu-gPD<`L16_t#sCUcKH~4dOGL0J$uzAMdr-8{T_Rs_@hULl$pki
zohv(s$C-tklb>)WHC(ffCH^X^nM^+#U9eIw%z2)gR6rS^P8Ft3Nyt^cFnN(UXy<ME
zuIwP?AnW}EmwoH#Uv0Q|TGzwTQLhXmCCBx&_|4p(onn`;Hd&6+8#L?cnznjS)<#&U
zg5%j@$>na3yOJ%%O<OlMGPzRs41qLht?XkbYSyx=ytZcG!nCe7Nwm8e`fNVK29zAA
z5+N|gvdpl4HP*ex?lH>KHG$qNQl)s%mVD{ywD4*)%PTDZ_|lM2CYIf7t~QZWZrFpQ
zkFE8Vf^zh4Hk%RIn*3Pf+R63nVlBT!tEDl7x<xzr*)7_U7j*baHW-nhY8MSrU#GBs
zGFe)w4ar>NK;fWuk4e1}$KZ$AVD;mEq6Qcy88~WK7-MRNGK4;BZng6cz0(H@8OpF!
zWNL|L%qJZg3>373iLIq=^&n`x12sv_Lxr@RJ7yQN_E^r5dDF<YHw&o$kUf)~u-!t@
z%Rj)Ew3Ta=KR!)dHF@pS&PPz~e67^ZXOw$H-c;_8M_2891l7)`SM7Y*)Xw*lyTRW)
zK0&#^q44KmQ6scV$t5I{ty>n+tJYmfeGxY<qh+KkrY)hb&k%U02ZsgT;lUAs6S{XW
zlZkK@JD);)5gm1S^CDjDgS&n3HV=N%T*S2%{4HTraeZGj5e?{7T-|3SqTGA>Oodlq
zb8-RQ{2dTI*9&Txr)>&j`Y_ijOoW(=*i*#~hqb<zL~|8eAHfyNFh>%hMDr3l`&uf{
zj|X~NNv_21B1!O3gmi^cas}nTP6czl8}!~-!irJ;%N|B3&>JH`hp1e}l_Lo=(UJ(p
zTjR0#2I7<{-Afo8PL7a5Pc71VI{K=!&&QI<Wi*d0p=)#z166Df^hPVVAt}=0Q7XRX
zcnxgbB9h`!F|u1-Z4Ks9lksTlmdPq^ITO|5QC=N5_x!Wxnc2VM@AwBcsI2oV%*!>d
zLl8P~9T(6aYf`rB=eydBOnWHP)?USK4^AogykdrYjlDQ~DAR7#*+Z#1TxaJ8-g@j-
zLwm}no$zYy{BV46cG2#!bhU~0)$IIs^w<LrvF;;4;C@D_m%okx!@F+*FVE<b&|si9
zR0(7fdOQ>l=_#o`Lk@Z>9tx^sIAO$CZ_M{xR~rTFV*K0V!ORLQf=RhM5mt0(16G4h
z?ntj_Q|+}AX_FpFO3yTqH`S0e`C`m#DoxK&eL$%nZHQf^oAfG$b=&?cot37OR1i`M
zj&`-xt+{LkVyq|>6KKD#P7<OjURr5tqU@-Wedsb}uTs3OQ0;LFWg9UecQhjMpPX(`
ztS4DQwmJtD?GVLtqENj3f7mRNeX+T2O>FQN>Io`6lb5N-@1sw4y_kHcb=1vL9Y-hK
znrg)4g=MVr#%bWUo;Y>>U&_~G+<hk06b~iXL|gUDxqm+BjR*}tf?MnH8HD%`oa(xO
z*H-bmK(AiGZM0%w0j~^Z0vEBL^KN%s=emcXl#=U?>+IxL5b99Sj=o?bxPY5w*_)D}
e2-P-^>Wr?%bsjk<A4>-Kz}0PdE44P^*?$A&Cj>|U

literal 0
HcmV?d00001

diff --git a/samples/help/doc/ClassLayout.class b/samples/help/doc/ClassLayout.class
new file mode 100644
index 0000000000000000000000000000000000000000..40eb67e0e98927ee4f295707fa8d0b1dc7888374
GIT binary patch
literal 2412
zcmaJ?X>;3T5Pnqauv|^fs;S$$9EH}g+lH$KoHjtxgFw;-0)YYrE4Jb&$dZxeq$xLq
z8-^REP(GB&Oa?vylei4bFnoqzz@MS)zH%IA(jl35-(&aPefHVa>%ac}?GMCo7~jS5
zg@%F#Ps5akM>Tw;;WG_SXn01$oQ5S0-)g97cud0^8k_{WaHkFf`2-ReV{x}m;(-J@
za2KyeSo<K`J*;CJMibbMJ9u?Mhl-PIcZ|2Ecy$l2hS^JwwWoPCp%b+Gcy+H19fQ0*
znjq~X2`C&*#Tnk7Ws@NeG@d{wj<e!^-acgDCA?$c1za{@qiWz)d~Dzoyl!9;&l{M=
z`@FRboX6V+Uc<Wvd{hiPiv?C(Fz^cBm}l*myqaP0CW~)a1T5+-K4me>;zJfsA~f(c
zKHxyKdXB{+D_%s&z&R8RT*Au|y5_8TYrwU<^1#{YIlCB2P>(sD6Anq}5jtxj92oJv
z&~iLGkdT=4>p{^z<+!$loh^$oYtgTV<CbTYh1G~_)oP~$t2!$|uK4q091s1;FmSvw
zIXQWuXjenW_iD7M2KI~{1a@iCxkz?xkR}&vp<SV?<-lJUvu6lhtYTdtjDcMf#+@w$
zqh8Gp$=#v!*hWrKz`_14N5l0QiaAK0oaVh9>8)0z?`yi-M8jbJlmw$}ha-Na>U*}w
zz(T(&q0<#av=OG%s#cNGYG<=`DI!qNA3=?9k+(F5*c`lhO9UtVsDzGI_7lFtAUcbF
z-P=G#bo8Z1n|VbUtUDo6UB75?4QLrS<=Id$y8-irQ?b38&@1WDQN|;?q6W&06Vxc0
zI3^gID399c|0s`_oLXpkf)uM%idv_QNxf*f#mSH=BtffE$Am6n%v`?^QDr%|7GA2F
zv`B;cBt}gsVNZ*LEliVbM554)TOswUvfz|>?iK7h{=fudp!(Pr^<w8nYad|)3iOl&
z^LkxJjF}O>%}yw2|8?v)QfZMPYTdiunVe<R=Hy{#`)PabiYTUp?E+}TE`4RxlFWKI
zWw~`~M~UjDTGguUm561ot0;e4b`zFoyHxWLzr^-=vY)lNPb73#=!vM*E0Oc)vo!;o
zzw<5C>=>gqbEmApv8G*{I<mL*y|-Uir~NSWncp+kyi>M9KNzml301zQJyX%>g8;p;
z3J4wjgI_k1;73r*^el>*-c6b{vZLpg<ma?IKo7k{^X|-5WHMd*){xC8YuL{sm66wQ
z+t1>zgo}8uc_%?9F&fgk>T9@ds%`BmdRCjNHA2WYf5<j)<2Z?ZL$REk%B&(gn^R&r
zbp=ydQ*B^pUQ22XB=d2ey7PKcUqw0@UqxTRl$X)fw$I7Dxs{b>!Bm>c=02w^sgkLt
zu3Y;uL-7t#sQoljg(#-{I}+y(t>Ok6yUBBb=9_5jB}av;=>3Vn@*n+1G*g%-dNn$k
zWAw*kLn}C+O%dQfVdUkc%$Sv=yoy~)QX#Y)rXZJia(~4@A*Zsk=Mqd)rNjNp*po3;
zB6|fr;v}^UU7VzrVp3}Fm21oE41d+4v4;xA46B?{e}qv&c^#vaBAT~TZMsFuO`t^d
z3JzvXf+)ZeJ_f5MRpO1Kip9{9ESWNe{U?@FR`7S$Br9Q0hHOuDp|li1-}mT9YSD5H
zeMwcQSeOkQVe{^MoRd^aIo;GRLyhHh-sch=i%8g)jGJP;OE5Gm9F*3OUV)j6v(YY7
zk4i;{6o6`+Hlv7)AXQS_LIbz|f`eShtJuMCZ|;#AIKc4_H*iY>dzKW*R4AvT>r_5Y
J<ZZ)S{{fDVMt1-J

literal 0
HcmV?d00001

diff --git a/samples/help/doc/HIER.html b/samples/help/doc/HIER.html
new file mode 100644
index 0000000000..8f43b7e822
--- /dev/null
+++ b/samples/help/doc/HIER.html
@@ -0,0 +1,9 @@
+<html><head><TITLE>Hierarchy ClassDoc</TITLE></head>
+<BODY>
+<H1>Hierarchy of classes</H1>
+<UL>
+<LI><A HREF="wxExtHelpController.html">wxExtHelpController</A></UL>
+<I><A HREF="aindex.html"> alphabetic index</A></I><P></BODY><hr>
+<A HREF="http://www.zib.de/Visual/software/doc++/index.html"><IMG BORDER=0 ALIGN=RIGHT SRC=logo.gif></A>
+<P Align=Center><I>this page has been generated automatically by doc++
+<P Align=Center>(c)opyright by <A HREF="http://www.zib.de/zoeckler/"> Malte  Z&oumlckler</A>, <A HREF="mailto:wunderling@zib.de"> Roland Wunderling </A><br>contact: <A HREF="mailto:doc++@zib.de"> doc++@zib.de </a>
\ No newline at end of file
diff --git a/samples/help/doc/HIERjava.html b/samples/help/doc/HIERjava.html
new file mode 100644
index 0000000000..ae1ed66918
--- /dev/null
+++ b/samples/help/doc/HIERjava.html
@@ -0,0 +1,15 @@
+<html><head><TITLE>Hierarchy ClassDoc</TITLE></head>
+<H1>Hierarchy of classes</H1>
+<UL>
+<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=35>
+<param name=classes value="CwxExtHelpController,MwxExtHelpController.html">
+<param name=before value="M">
+<param name=after value="M">
+<param name=indent value="0">
+<param name=arrowdir value="down">
+</APPLET>
+</UL>
+<I><A HREF="aindex.html"> alphabetic index</A></I><P><hr>
+<A HREF="http://www.zib.de/Visual/software/doc++/index.html"><IMG BORDER=0 ALIGN=RIGHT SRC=logo.gif></A>
+<P Align=Center><I>this page has been generated automatically by doc++
+<P Align=Center>(c)opyright by <A HREF="http://www.zib.de/zoeckler/"> Malte  Z&oumlckler</A>, <A HREF="mailto:wunderling@zib.de"> Roland Wunderling </A><br>contact: <A HREF="mailto:doc++@zib.de"> doc++@zib.de </a>
\ No newline at end of file
diff --git a/samples/help/doc/NavigatorButton.class b/samples/help/doc/NavigatorButton.class
new file mode 100644
index 0000000000000000000000000000000000000000..9f447021d04f4e91483db54bf2d21718de3f4f43
GIT binary patch
literal 1741
zcmZuyZC4vb6n>TjCT#W)2n4L9inb^$(A4*r*lI~>8;va%O9fvi%O+ji?5w+!0R9v8
z2l%C5>}kT$p5sS*jz7xdo!KOWLqBBh-1mE*dw25he}Dar6xQ%_247_GO$N6asthHD
zm_aZcF@y}CGi)$?#^5u2%TQ+c%ETyE#*xFDCMNKf35E~V@wSpJnXs^?*bfxDtW4g|
z!o=%}eQz9TyrFKdDTO_bEZ$Ydt0tLTR*HAjaYY?P3tQk8?%_uZALEXN`}o?zHV!O&
zj~f>5;(-N;hB}D-QfaSZ*TN253l6@s5a1JKw{PK4h1$a{3)fYs7TU^f(?ShD8JOPZ
zZC><5aWnD)xg{f)Hw~C&5yX-Qa+~`t*8p=wAl*Yrnm|NN?%yPy7*BHFa}p-MRMoNg
zfh;OXX?fc~rY8KoM4why1GziA?KQX*(Rxct5f~`+9DN=%id2CYG_>!;AY57aBBFE~
zhmIRck7_e8d6G@5OQc`$;)Mzo8r8W&RgZB;8Ixj5v?9m7>G>oz2Vs-CCN-ZVKZ>PG
z?Vn3b!q9hR@wz4iNCH6aB(LsLr3phfpw?1Ls^w87zG}dVABuw;!f7>Kh1HlB?CDF^
zi-&5=G$L_Ob?aoo8m>%AS{+8@Zf)On2+bt#5J>B-dfknv?_`ErGeC%{5iJUOzE|#Z
zdLd6^*TDE~*KfPhbGU*00GqOCh9b}fPb47%!s7nDDtWO`?TSyproF(UBu0fMEk!ar
z%G`>4($)0p6cX>#8%9CWWwA%om>X`jH~dOP;W$wh4)?ct<nfyC(!>{s7Hp$UrIm&t
z>7zsqokFj_PeZ1OXn@{SFKoX*l{+`Up}(ZLvd`oAR>Z@Hmz9!Gi2LK3)z)VwV<4-Y
zs{BZgVrJ>=3<-$!=OAzz@r0u-JF||Z-Q5H%^Q1glwU5+TuF<ON5+j#(tfdxodI-Vf
zqfyOH_3IjZxwOP_s6U~hwl{g;`T)I8CY|a>PY#_>500kv(r8MLm!|Y;X}aE{^iFA>
z-XTrtY18zYrYX8hL@-dN+wT}dhUjnh$}wKG3!@z@+G`zLvR6CE+l6!o=j_5*2N&%E
z>)<8(3Fe<++I|XaCqI&&w2m>?!90m)PsF1=@hpiKe<9b$Sm@%#$GGqmZ08s+taMSx
zr|9Tnri&>u%RfWbR#CbX{0T1pny~Z4{-KLE@B=n`MK9C;ib2u~ClT`oMYFqjxr<kl
ypnbOryq?<?jF2OAwfTRbs=K68|B3S>1Vs8l`cdi;*)q&v4wGbQ;8QwB(EJ}eNUnAO

literal 0
HcmV?d00001

diff --git a/samples/help/doc/USE_HELP.html b/samples/help/doc/USE_HELP.html
new file mode 100644
index 0000000000..ec4dc5bc07
--- /dev/null
+++ b/samples/help/doc/USE_HELP.html
@@ -0,0 +1,38 @@
+<html><head><TITLE>USE_HELP</TITLE></head>
+<body>
+<H2><A HREF ="#DOC.DOCU" > <IMG BORDER=0 SRC=down.gif></A>  class  wxExtHelpController ifdef USE_HELP : public wxHelpControllerBase </H2><BLOCKQUOTE>
+
+This class implements help via an external browser
+</BLOCKQUOTE>
+<hr>
+ <h2> Inheritance:</h2>
+<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=65>
+<param name=classes value="MwxHelpControllerBase,M,CUSE_HELP,MUSE_HELP.html">
+<param name=before value="M,M">
+<param name=after value="Md_,M">
+<param name=indent value="0,1">
+<param name=arrowdir value="down">
+</APPLET>
+<A NAME="DOC.DOCU">
+<hr>
+ <h2> Documentation </h2>
+<BLOCKQUOTE>
+
+This class implements help via an external browser.
+It requires the name of a directory containing the documentation
+and a file mapping numerical Section numbers to relative URLS.<P>The map file contains two or three fields per line:
+numeric_id  relative_URL  [; comment/documentation]<P>The numeric_id is the id used to look up the entry in
+DisplaySection()/DisplayBlock(). The relative_URL is a filename of
+an html file, relative to the help directory. The optional
+comment/documentation field (after a ';') is used for keyword
+searches, so some meaningful text here does not hurt.
+
+</BLOCKQUOTE>
+<DL>
+</DL>
+<hr>
+ <DL><DT><B>This class has no child classes.</B></DL>
+<DL></DL><P><I><A HREF="aindex.html"> alphabetic index</A></I>  <I><A HREF="HIER.html"> hierarchy of classes</A></I><P></BODY><hr>
+<A HREF="http://www.zib.de/Visual/software/doc++/index.html"><IMG BORDER=0 ALIGN=RIGHT SRC=logo.gif></A>
+<P Align=Center><I>this page has been generated automatically by doc++
+<P Align=Center>(c)opyright by <A HREF="http://www.zib.de/zoeckler/"> Malte  Z&oumlckler</A>, <A HREF="mailto:wunderling@zib.de"> Roland Wunderling </A><br>contact: <A HREF="mailto:doc++@zib.de"> doc++@zib.de </a>
\ No newline at end of file
diff --git a/samples/help/doc/aindex.html b/samples/help/doc/aindex.html
new file mode 100644
index 0000000000..7f7746ce2e
--- /dev/null
+++ b/samples/help/doc/aindex.html
@@ -0,0 +1,21 @@
+<html><head><TITLE>Table of Contents</TITLE></head><BODY>
+
+<H1>Table of contents</H1>
+<H2>Classes</H2>
+<UL>
+<LI><A HREF="wxExtHelpController.html">wxExtHelpController</A> <I>
+This class implements help via an external browser</I>
+</UL>
+<H2>Macros</H2>
+<UL>
+<LI><!2><A HREF="#DOC.6">WXEXTHELP_BUFLEN</A> <I>Maximum line length in map file</I>
+<LI><!2><A HREF="#DOC.7">WXEXTHELP_COMMENTCHAR</A> <I>Character introducing comments/documentation field in map file</I>
+<LI><!2><A HREF="#DOC.4">WXEXTHELP_DEFAULTBROWSER</A> <I>Default browser name</I>
+<LI><!2><A HREF="#DOC.5">WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE</A> <I>Is default browse a variant of netscape?</I>
+<LI><!2><A HREF="#DOC.2">WXEXTHELP_MAPFILE</A> <I>Name for map file</I>
+<LI><!2><A HREF="#DOC.3">WXEXTHELP_SEPARATOR</A> <I>Path separator</I>
+</UL>
+<I><A HREF="HIER.html"> hierarchy of classes</A></I><P></BODY><hr>
+<A HREF="http://www.zib.de/Visual/software/doc++/index.html"><IMG BORDER=0 ALIGN=RIGHT SRC=logo.gif></A>
+<P Align=Center><I>this page has been generated automatically by doc++
+<P Align=Center>(c)opyright by <A HREF="http://www.zib.de/zoeckler/"> Malte  Z&oumlckler</A>, <A HREF="mailto:wunderling@zib.de"> Roland Wunderling </A><br>contact: <A HREF="mailto:doc++@zib.de"> doc++@zib.de </a>
\ No newline at end of file
diff --git a/samples/help/doc/down.gif b/samples/help/doc/down.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fdf028aff360031c13d0aefc17067c8debd72185
GIT binary patch
literal 1939
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

literal 0
HcmV?d00001

diff --git a/samples/help/doc/dxxgifs.tex b/samples/help/doc/dxxgifs.tex
new file mode 100644
index 0000000000..eb32b296ef
--- /dev/null
+++ b/samples/help/doc/dxxgifs.tex
@@ -0,0 +1,4 @@
+\documentclass{article}
+\pagestyle{empty}
+\begin{document}
+\end{document}
diff --git a/samples/help/doc/gifs.db b/samples/help/doc/gifs.db
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/samples/help/doc/icon1.gif b/samples/help/doc/icon1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f78f30eb981225beb16035974453af044eaaed3d
GIT binary patch
literal 326
zcmZ?wbhEHb<YVAtSjxcg|NsAn>SJz>XZiWhW+$CxX1K<{@Q;PzA3MW)Hil!>)yLQv
z&I<GYGcftb!wwXD&dxBWd&R#c$Nq`)|6^d-%fc{4SfE8k;U6CdP-6=dLliT^J!Xcj
zYz)b440~A_)-o_gF)(=X^A|HS6tggRd3nuANjl5OkZokx!$1w7_>+YZWR4Dq0Qrf5
zE!m-=z(Yr>|42iEfdETiOVhyu2Ne$2qlXS;Sjcg9G-()EC{6Ng4B9Bb&hGxWX`zGB
ztnbe@Mi#u2t#oD*5s{NGS5Q=P;Sv=Pl~k5hQB-wRQ&*Q#oU7r^r6eV#G~HwQ3KvHP
FYXI`hOxged

literal 0
HcmV?d00001

diff --git a/samples/help/doc/icon2.gif b/samples/help/doc/icon2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6cbe01a831d9c27158ef1ade66cc25446fac9018
GIT binary patch
literal 326
zcmZ?wbhEHb<YVAtxXQrr?%lhI6K0o|bVNp$w6#tN4J}Sd=}1lKh>vUV_sg0vVRlep
zUT#ibUH$CLjP97|8hg8t^_%zaId~E%=;f7aZRKxk>swYjH7c^q#Kc`$*&sZ;+`~Ol
zL*3NdE7jE{7APVst6^&DtgCA)C##W~TG-k;MN7*vC@7wR8bI+U3nR!J9S{NX69Zea
zLqmawj#U4Vh6DovmcEvzg9Q#M9Ii(X9mued<LqeCFtAXX<k=XsQGlJ@{c+Pm2cucv
zpKXjRcqd!w%p@WrCtt3hsN}*WDj+JUEUTiZ>Z+!$E~PkE!<|b>N=j+E$MO{}jttfS
DX0}r~

literal 0
HcmV?d00001

diff --git a/samples/help/doc/index.html b/samples/help/doc/index.html
new file mode 100644
index 0000000000..7f7746ce2e
--- /dev/null
+++ b/samples/help/doc/index.html
@@ -0,0 +1,21 @@
+<html><head><TITLE>Table of Contents</TITLE></head><BODY>
+
+<H1>Table of contents</H1>
+<H2>Classes</H2>
+<UL>
+<LI><A HREF="wxExtHelpController.html">wxExtHelpController</A> <I>
+This class implements help via an external browser</I>
+</UL>
+<H2>Macros</H2>
+<UL>
+<LI><!2><A HREF="#DOC.6">WXEXTHELP_BUFLEN</A> <I>Maximum line length in map file</I>
+<LI><!2><A HREF="#DOC.7">WXEXTHELP_COMMENTCHAR</A> <I>Character introducing comments/documentation field in map file</I>
+<LI><!2><A HREF="#DOC.4">WXEXTHELP_DEFAULTBROWSER</A> <I>Default browser name</I>
+<LI><!2><A HREF="#DOC.5">WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE</A> <I>Is default browse a variant of netscape?</I>
+<LI><!2><A HREF="#DOC.2">WXEXTHELP_MAPFILE</A> <I>Name for map file</I>
+<LI><!2><A HREF="#DOC.3">WXEXTHELP_SEPARATOR</A> <I>Path separator</I>
+</UL>
+<I><A HREF="HIER.html"> hierarchy of classes</A></I><P></BODY><hr>
+<A HREF="http://www.zib.de/Visual/software/doc++/index.html"><IMG BORDER=0 ALIGN=RIGHT SRC=logo.gif></A>
+<P Align=Center><I>this page has been generated automatically by doc++
+<P Align=Center>(c)opyright by <A HREF="http://www.zib.de/zoeckler/"> Malte  Z&oumlckler</A>, <A HREF="mailto:wunderling@zib.de"> Roland Wunderling </A><br>contact: <A HREF="mailto:doc++@zib.de"> doc++@zib.de </a>
\ No newline at end of file
diff --git a/samples/help/doc/logo.gif b/samples/help/doc/logo.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d92bbc60a166c8658465cca1b21293d5a03b50b4
GIT binary patch
literal 11338
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

literal 0
HcmV?d00001

diff --git a/samples/help/doc/wx204.htm b/samples/help/doc/wx204.htm
new file mode 100644
index 0000000000..47887ec214
--- /dev/null
+++ b/samples/help/doc/wx204.htm
@@ -0,0 +1,33 @@
+<HTML>
+<head><title>Functions</title></head>
+
+<BODY BGCOLOR=#FFFFFF>
+<A NAME="functions"></A><CENTER>
+<A HREF="wx.htm"><img align=center src="contents.gif" BORDER=0 ALT="Contents"></A> <A HREF="wx.htm"><img align=center src="up.gif" BORDER=0 ALT="Up"></A> <A HREF="wx203.htm#wxwinhelpcontroller"><img align=center src="back.gif" BORDER=0 ALT="Previous"></A> <A HREF="wx205.htm#filefunctions"><img align=center src="forward.gif" BORDER=0 ALT="Next"></A> </CENTER><HR>
+
+<H2>Functions</H2>
+
+<P>
+The functions defined in wxWindows are described here.<P>
+
+<A HREF="wx205.htm#filefunctions"><B>File functions</B></A><BR>
+
+<A HREF="wx206.htm#topic859"><B>String functions</B></A><BR>
+
+<A HREF="wx207.htm#dialogfunctions"><B>Dialog functions</B></A><BR>
+
+<A HREF="wx208.htm#gdifunctions"><B>GDI functions</B></A><BR>
+
+<A HREF="wx209.htm#topic864"><B>System event functions</B></A><BR>
+
+<A HREF="wx210.htm#printersettings"><B>Printer settings</B></A><BR>
+
+<A HREF="wx211.htm#clipsboard"><B>Clipboard functions</B></A><BR>
+
+<A HREF="wx212.htm#miscellany"><B>Miscellaneous functions</B></A><BR>
+
+<A HREF="wx213.htm#macros"><B>Macros</B></A><BR>
+
+<A HREF="wx214.htm#resourcefuncs"><B>wxWindows resource functions</B></A><BR>
+
+</BODY></HTML>
diff --git a/samples/help/doc/wx34.htm b/samples/help/doc/wx34.htm
new file mode 100644
index 0000000000..9c1fa6acde
--- /dev/null
+++ b/samples/help/doc/wx34.htm
@@ -0,0 +1,349 @@
+<HTML>
+<head><title>Alphabetical class reference</title></head>
+
+<BODY BGCOLOR=#FFFFFF>
+<A NAME="classref"></A><CENTER>
+<A HREF="wx.htm"><img align=center src="contents.gif" BORDER=0 ALT="Contents"></A> <A HREF="wx.htm"><img align=center src="up.gif" BORDER=0 ALT="Up"></A> <A HREF="wx33.htm#topic32"><img align=center src="back.gif" BORDER=0 ALT="Previous"></A> <A HREF="wx35.htm#wxactivateevent"><img align=center src="forward.gif" BORDER=0 ALT="Next"></A> </CENTER><HR>
+
+<H2>Alphabetical class reference</H2>
+
+
+<A HREF="wx35.htm#wxactivateevent"><B>wxActivateEvent</B></A><BR>
+
+<A HREF="wx36.htm#wxapp"><B>wxApp</B></A><BR>
+
+<A HREF="wx37.htm#wxbutton"><B>wxButton</B></A><BR>
+
+<A HREF="wx38.htm#wxbitmap"><B>wxBitmap</B></A><BR>
+
+<A HREF="wx39.htm#wxbitmaphandler"><B>wxBitmapHandler</B></A><BR>
+
+<A HREF="wx40.htm#wxbitmapbutton"><B>wxBitmapButton</B></A><BR>
+
+<A HREF="wx41.htm#wxbrush"><B>wxBrush</B></A><BR>
+
+<A HREF="wx42.htm#wxbrushlist"><B>wxBrushList</B></A><BR>
+
+<A HREF="wx43.htm#wxcheckbox"><B>wxCheckBox</B></A><BR>
+
+<A HREF="wx44.htm#wxchoice"><B>wxChoice</B></A><BR>
+
+<A HREF="wx45.htm#wxclassinfo"><B>wxClassInfo</B></A><BR>
+
+<A HREF="wx46.htm#wxclientdc"><B>wxClientDC</B></A><BR>
+
+<A HREF="wx47.htm#wxclipboard"><B>wxClipboard</B></A><BR>
+
+<A HREF="wx48.htm#wxclipboardclient"><B>wxClipboardClient</B></A><BR>
+
+<A HREF="wx49.htm#wxcloseevent"><B>wxCloseEvent</B></A><BR>
+
+<A HREF="wx50.htm#wxcolour"><B>wxColour</B></A><BR>
+
+<A HREF="wx51.htm#wxcolourdata"><B>wxColourData</B></A><BR>
+
+<A HREF="wx52.htm#wxcolourdatabase"><B>wxColourDatabase</B></A><BR>
+
+<A HREF="wx53.htm#wxcolourdialog"><B>wxColourDialog</B></A><BR>
+
+<A HREF="wx54.htm#wxcombobox"><B>wxComboBox</B></A><BR>
+
+<A HREF="wx55.htm#wxcommand"><B>wxCommand</B></A><BR>
+
+<A HREF="wx56.htm#wxcommandevent"><B>wxCommandEvent</B></A><BR>
+
+<A HREF="wx57.htm#wxcommandprocessor"><B>wxCommandProcessor</B></A><BR>
+
+<A HREF="wx58.htm#wxcondition"><B>wxCondition</B></A><BR>
+
+<A HREF="wx59.htm#wxcontrol"><B>wxControl</B></A><BR>
+
+<A HREF="wx60.htm#wxcursor"><B>wxCursor</B></A><BR>
+
+<A HREF="wx61.htm#wxdatabase"><B>wxDatabase</B></A><BR>
+
+<A HREF="wx62.htm#wxdate"><B>wxDate</B></A><BR>
+
+<A HREF="wx63.htm#wxdc"><B>wxDC</B></A><BR>
+
+<A HREF="wx64.htm#wxddeclient"><B>wxDDEClient</B></A><BR>
+
+<A HREF="wx65.htm#wxddeconnection"><B>wxDDEConnection</B></A><BR>
+
+<A HREF="wx66.htm#wxddeserver"><B>wxDDEServer</B></A><BR>
+
+<A HREF="wx67.htm#wxdebugcontext"><B>wxDebugContext</B></A><BR>
+
+<A HREF="wx68.htm#wxdebugstreambuf"><B>wxDebugStreamBuf</B></A><BR>
+
+<A HREF="wx69.htm#wxdialog"><B>wxDialog</B></A><BR>
+
+<A HREF="wx70.htm#wxdirdialog"><B>wxDirDialog</B></A><BR>
+
+<A HREF="wx71.htm#wxdocument"><B>wxDocument</B></A><BR>
+
+<A HREF="wx72.htm#wxdocchildframe"><B>wxDocChildFrame</B></A><BR>
+
+<A HREF="wx73.htm#wxdocmanager"><B>wxDocManager</B></A><BR>
+
+<A HREF="wx74.htm#wxdocparentframe"><B>wxDocParentFrame</B></A><BR>
+
+<A HREF="wx75.htm#wxdoctemplate"><B>wxDocTemplate</B></A><BR>
+
+<A HREF="wx76.htm#wxdropfilesevent"><B>wxDropFilesEvent</B></A><BR>
+
+<A HREF="wx77.htm#wxeraseevent"><B>wxEraseEvent</B></A><BR>
+
+<A HREF="wx78.htm#wxevent"><B>wxEvent</B></A><BR>
+
+<A HREF="wx79.htm#wxevthandler"><B>wxEvtHandler</B></A><BR>
+
+<A HREF="wx80.htm#wxexpr"><B>wxExpr</B></A><BR>
+
+<A HREF="wx81.htm#wxexprdatabase"><B>wxExprDatabase</B></A><BR>
+
+<A HREF="wx82.htm#wxfile"><B>wxFile</B></A><BR>
+
+<A HREF="wx83.htm#wxfiledialog"><B>wxFileDialog</B></A><BR>
+
+<A HREF="wx84.htm#wxfilehistory"><B>wxFileHistory</B></A><BR>
+
+<A HREF="wx85.htm#wxfocusevent"><B>wxFocusEvent</B></A><BR>
+
+<A HREF="wx86.htm#wxfont"><B>wxFont</B></A><BR>
+
+<A HREF="wx87.htm#wxfontdata"><B>wxFontData</B></A><BR>
+
+<A HREF="wx88.htm#wxfontdialog"><B>wxFontDialog</B></A><BR>
+
+<A HREF="wx89.htm#wxfontlist"><B>wxFontList</B></A><BR>
+
+<A HREF="wx90.htm#wxframe"><B>wxFrame</B></A><BR>
+
+<A HREF="wx91.htm#wxgauge"><B>wxGauge</B></A><BR>
+
+<A HREF="wx92.htm#wxgdiobject"><B>wxGDIObject</B></A><BR>
+
+<A HREF="wx93.htm#wxgrid"><B>wxGrid</B></A><BR>
+
+<A HREF="wx94.htm#wxhashtable"><B>wxHashTable</B></A><BR>
+
+<A HREF="wx95.htm#wxhelpcontrollerbase"><B>wxHelpControllerBase</B></A><BR>
+
+<A HREF="wx96.htm#wxidleevent"><B>wxIdleEvent</B></A><BR>
+
+<A HREF="wx97.htm#wxicon"><B>wxIcon</B></A><BR>
+
+<A HREF="wx98.htm#wximagelist"><B>wxImageList</B></A><BR>
+
+<A HREF="wx99.htm#wxindividuallayoutconstraint"><B>wxIndividualLayoutConstraint</B></A><BR>
+
+<A HREF="wx100.htm#wxinitdialogevent"><B>wxInitDialogEvent</B></A><BR>
+
+<A HREF="wx101.htm#wxjoystick"><B>wxJoystick</B></A><BR>
+
+<A HREF="wx102.htm#wxjoystickevent"><B>wxJoystickEvent</B></A><BR>
+
+<A HREF="wx103.htm#wxkeyevent"><B>wxKeyEvent</B></A><BR>
+
+<A HREF="wx104.htm#wxlayoutconstraints"><B>wxLayoutConstraints</B></A><BR>
+
+<A HREF="wx105.htm#wxlist"><B>wxList</B></A><BR>
+
+<A HREF="wx106.htm#wxlistbox"><B>wxListBox</B></A><BR>
+
+<A HREF="wx107.htm#wxlistctrl"><B>wxListCtrl</B></A><BR>
+
+<A HREF="wx108.htm#wxlistevent"><B>wxListEvent</B></A><BR>
+
+<A HREF="wx109.htm#wxmask"><B>wxMask</B></A><BR>
+
+<A HREF="wx110.htm#wxmdichildframe"><B>wxMDIChildFrame</B></A><BR>
+
+<A HREF="wx111.htm#wxmdiclientwindow"><B>wxMDIClientWindow</B></A><BR>
+
+<A HREF="wx112.htm#wxmdiparentframe"><B>wxMDIParentFrame</B></A><BR>
+
+<A HREF="wx113.htm#wxmenu"><B>wxMenu</B></A><BR>
+
+<A HREF="wx114.htm#wxmenubar"><B>wxMenuBar</B></A><BR>
+
+<A HREF="wx115.htm#wxmenuitem"><B>wxMenuItem</B></A><BR>
+
+<A HREF="wx116.htm#wxmenuevent"><B>wxMenuEvent</B></A><BR>
+
+<A HREF="wx117.htm#wxmemorydc"><B>wxMemoryDC</B></A><BR>
+
+<A HREF="wx118.htm#wxmessagedialog"><B>wxMessageDialog</B></A><BR>
+
+<A HREF="wx119.htm#wxmetafile"><B>wxMetaFile</B></A><BR>
+
+<A HREF="wx120.htm#wxmetafiledc"><B>wxMetaFileDC</B></A><BR>
+
+<A HREF="wx121.htm#wxminiframe"><B>wxMiniFrame</B></A><BR>
+
+<A HREF="wx122.htm#wxmodule"><B>wxModule</B></A><BR>
+
+<A HREF="wx123.htm#wxmouseevent"><B>wxMouseEvent</B></A><BR>
+
+<A HREF="wx124.htm#wxmoveevent"><B>wxMoveEvent</B></A><BR>
+
+<A HREF="wx125.htm#wxmultiplechoicedialog"><B>wxMultipleChoiceDialog</B></A><BR>
+
+<A HREF="wx126.htm#wxmutex"><B>wxMutex</B></A><BR>
+
+<A HREF="wx127.htm#wxnode"><B>wxNode</B></A><BR>
+
+<A HREF="wx128.htm#wxobject"><B>wxObject</B></A><BR>
+
+<A HREF="wx129.htm#wxobjectrefdata"><B>wxObjectRefData</B></A><BR>
+
+<A HREF="wx130.htm#wxpagesetupdata"><B>wxPageSetupData</B></A><BR>
+
+<A HREF="wx131.htm#wxpagesetupdialog"><B>wxPageSetupDialog</B></A><BR>
+
+<A HREF="wx132.htm#wxpaintdc"><B>wxPaintDC</B></A><BR>
+
+<A HREF="wx133.htm#wxpaintevent"><B>wxPaintEvent</B></A><BR>
+
+<A HREF="wx134.htm#wxpalette"><B>wxPalette</B></A><BR>
+
+<A HREF="wx135.htm#wxpanel"><B>wxPanel</B></A><BR>
+
+<A HREF="wx136.htm#wxpaneltabview"><B>wxPanelTabView</B></A><BR>
+
+<A HREF="wx137.htm#wxpathlist"><B>wxPathList</B></A><BR>
+
+<A HREF="wx138.htm#wxpen"><B>wxPen</B></A><BR>
+
+<A HREF="wx139.htm#wxpenlist"><B>wxPenList</B></A><BR>
+
+<A HREF="wx140.htm#wxpoint"><B>wxPoint</B></A><BR>
+
+<A HREF="wx141.htm#wxpreviewcanvas"><B>wxPreviewCanvas</B></A><BR>
+
+<A HREF="wx142.htm#wxpreviewcontrolbar"><B>wxPreviewControlBar</B></A><BR>
+
+<A HREF="wx143.htm#wxpreviewframe"><B>wxPreviewFrame</B></A><BR>
+
+<A HREF="wx144.htm#wxprintdata"><B>wxPrintData</B></A><BR>
+
+<A HREF="wx145.htm#wxprintdialog"><B>wxPrintDialog</B></A><BR>
+
+<A HREF="wx146.htm#wxprinter"><B>wxPrinter</B></A><BR>
+
+<A HREF="wx147.htm#wxprinterdc"><B>wxPrinterDC</B></A><BR>
+
+<A HREF="wx148.htm#wxprintout"><B>wxPrintout</B></A><BR>
+
+<A HREF="wx149.htm#wxprintpreview"><B>wxPrintPreview</B></A><BR>
+
+<A HREF="wx150.htm#wxpostscriptdc"><B>wxPostScriptDC</B></A><BR>
+
+<A HREF="wx151.htm#wxquerycol"><B>wxQueryCol</B></A><BR>
+
+<A HREF="wx152.htm#wxqueryfield"><B>wxQueryField</B></A><BR>
+
+<A HREF="wx153.htm#wxradiobox"><B>wxRadioBox</B></A><BR>
+
+<A HREF="wx154.htm#wxradiobutton"><B>wxRadioButton</B></A><BR>
+
+<A HREF="wx155.htm#wxrealpoint"><B>wxRealPoint</B></A><BR>
+
+<A HREF="wx156.htm#wxrect"><B>wxRect</B></A><BR>
+
+<A HREF="wx157.htm#wxrecordset"><B>wxRecordSet</B></A><BR>
+
+<A HREF="wx158.htm#wxregion"><B>wxRegion</B></A><BR>
+
+<A HREF="wx159.htm#wxscreendc"><B>wxScreenDC</B></A><BR>
+
+<A HREF="wx160.htm#wxscrollbar"><B>wxScrollBar</B></A><BR>
+
+<A HREF="wx161.htm#wxscrollevent"><B>wxScrollEvent</B></A><BR>
+
+<A HREF="wx162.htm#wxscrolledwindow"><B>wxScrolledWindow</B></A><BR>
+
+<A HREF="wx163.htm#wxsinglechoicedialog"><B>wxSingleChoiceDialog</B></A><BR>
+
+<A HREF="wx164.htm#wxsize"><B>wxSize</B></A><BR>
+
+<A HREF="wx165.htm#wxsizeevent"><B>wxSizeEvent</B></A><BR>
+
+<A HREF="wx166.htm#wxslider"><B>wxSlider</B></A><BR>
+
+<A HREF="wx167.htm#wxspinbutton"><B>wxSpinButton</B></A><BR>
+
+<A HREF="wx168.htm#wxsplitterwindow"><B>wxSplitterWindow</B></A><BR>
+
+<A HREF="wx169.htm#wxstaticbitmap"><B>wxStaticBitmap</B></A><BR>
+
+<A HREF="wx170.htm#wxstaticbox"><B>wxStaticBox</B></A><BR>
+
+<A HREF="wx171.htm#wxstatictext"><B>wxStaticText</B></A><BR>
+
+<A HREF="wx172.htm#wxstatusbar"><B>wxStatusBar</B></A><BR>
+
+<A HREF="wx173.htm#wxstring"><B>wxString</B></A><BR>
+
+<A HREF="wx174.htm#wxstringlist"><B>wxStringList</B></A><BR>
+
+<A HREF="wx175.htm#wxsyscolourchangedevent"><B>wxSysColourChangedEvent</B></A><BR>
+
+<A HREF="wx176.htm#wxsystemsettings"><B>wxSystemSettings</B></A><BR>
+
+<A HREF="wx177.htm#wxtabbeddialog"><B>wxTabbedDialog</B></A><BR>
+
+<A HREF="wx178.htm#wxtabbedpanel"><B>wxTabbedPanel</B></A><BR>
+
+<A HREF="wx179.htm#wxtabcontrol"><B>wxTabControl</B></A><BR>
+
+<A HREF="wx180.htm#wxtabview"><B>wxTabView</B></A><BR>
+
+<A HREF="wx181.htm#wxtabctrl"><B>wxTabCtrl</B></A><BR>
+
+<A HREF="wx182.htm#wxtabevent"><B>wxTabEvent</B></A><BR>
+
+<A HREF="wx183.htm#wxtaskbaricon"><B>wxTaskBarIcon</B></A><BR>
+
+<A HREF="wx184.htm#wxtextctrl"><B>wxTextCtrl</B></A><BR>
+
+<A HREF="wx185.htm#wxtextentrydialog"><B>wxTextEntryDialog</B></A><BR>
+
+<A HREF="wx186.htm#wxtextvalidator"><B>wxTextValidator</B></A><BR>
+
+<A HREF="wx187.htm#wxthread"><B>wxThread</B></A><BR>
+
+<A HREF="wx188.htm#wxtime"><B>wxTime</B></A><BR>
+
+<A HREF="wx189.htm#wxtimer"><B>wxTimer</B></A><BR>
+
+<A HREF="wx190.htm#wxtoolbarbase"><B>wxToolBarBase</B></A><BR>
+
+<A HREF="wx191.htm#wxtoolbar95"><B>wxToolBar95</B></A><BR>
+
+<A HREF="wx192.htm#wxtoolbarmsw"><B>wxToolBarMSW</B></A><BR>
+
+<A HREF="wx193.htm#wxtoolbarsimple"><B>wxToolBarSimple</B></A><BR>
+
+<A HREF="wx194.htm#wxtreectrl"><B>wxTreeCtrl</B></A><BR>
+
+<A HREF="wx195.htm#wxtreeevent"><B>wxTreeEvent</B></A><BR>
+
+<A HREF="wx196.htm#wxupdateiterator"><B>wxUpdateIterator</B></A><BR>
+
+<A HREF="wx197.htm#wxupdateuievent"><B>wxUpdateUIEvent</B></A><BR>
+
+<A HREF="wx198.htm#wxvalidator"><B>wxValidator</B></A><BR>
+
+<A HREF="wx199.htm#wxview"><B>wxView</B></A><BR>
+
+<A HREF="wx200.htm#wxwave"><B>wxWave</B></A><BR>
+
+<A HREF="wx201.htm#wxwindow"><B>wxWindow</B></A><BR>
+
+<A HREF="wx202.htm#wxwindowdc"><B>wxWindowDC</B></A><BR>
+
+<A HREF="wx203.htm#wxwinhelpcontroller"><B>wxWinHelpController</B></A><BR>
+
+</BODY></HTML>
diff --git a/samples/help/doc/wxExtHelpController.html b/samples/help/doc/wxExtHelpController.html
new file mode 100644
index 0000000000..68d3ec7678
--- /dev/null
+++ b/samples/help/doc/wxExtHelpController.html
@@ -0,0 +1,180 @@
+<html><head><TITLE>wxExtHelpController</TITLE></head>
+<body>
+<H2><A HREF ="#DOC.DOCU" > <IMG BORDER=0 SRC=down.gif></A>  class  wxExtHelpController  </H2><BLOCKQUOTE>
+
+This class implements help via an external browser
+</BLOCKQUOTE>
+<hr>
+
+<DL>
+<DL>
+<DT><h3>Public Methods</h3><DD><DT><A HREF="#DOC.8.6"> <IMG BORDER=0 SRC=icon1.gif></A> virtual  bool  <B>DisplayBlock</B>(long blockNo) </B>
+ <DD><I>Display help for id sectionNo -- identical with DisplaySection()</I>
+<DT><A HREF="#DOC.8.4"> <IMG BORDER=0 SRC=icon1.gif></A> virtual  bool  <B>DisplayContents</B>(void) </B>
+ <DD><I>Display list of all help entries</I>
+<DT><A HREF="#DOC.8.5"> <IMG BORDER=0 SRC=icon1.gif></A> virtual  bool  <B>DisplaySection</B>(int sectionNo) </B>
+ <DD><I>Display help for id sectionNo</I>
+<DT><A HREF="#DOC.8.1"> <IMG BORDER=0 SRC=icon1.gif></A> virtual  bool  <B>Initialize</B>(const wxString&amp; file, int WXUNUSED(server)) </B>
+ <DD><I>This must be called to tell the controller where to find the
+documentation</I>
+<DT><A HREF="#DOC.8.2"> <IMG BORDER=0 SRC=icon1.gif></A> virtual  bool  <B>Initialize</B>(const wxString&amp; file) </B>
+ <DD><I>This must be called to tell the controller where to find the
+documentation</I>
+<DT><A HREF="#DOC.8.7"> <IMG BORDER=0 SRC=icon1.gif></A> virtual  bool  <B>KeywordSearch</B>(const wxString&amp; k) </B>
+ <DD><I>Search comment/documentation fields in map file and present a
+list to chose from</I>
+<DT><A HREF="#DOC.8.3"> <IMG BORDER=0 SRC=icon1.gif></A> virtual  bool  <B>LoadFile</B>(const wxString&amp; file = "") </B>
+ <DD><I>If file is "", reloads file given in Initialize</I>
+<DT><A HREF="#DOC.8.10"> <IMG BORDER=0 SRC=icon1.gif></A> virtual  void  <B>OnQuit</B>(void) </B>
+ <DD><I>does nothing</I>
+<DT><A HREF="#DOC.8.9"> <IMG BORDER=0 SRC=icon1.gif></A> virtual  bool  <B>Quit</B>(void) </B>
+ <DD><I>does nothing</I>
+<DT><A HREF="#DOC.8.8"> <IMG BORDER=0 SRC=icon1.gif></A> void  <B>SetBrowser</B>(wxString const &amp; browsername = <!2><A HREF="#DOC.4">WXEXTHELP_DEFAULTBROWSER</A>, bool isNetscape = <!2><A HREF="#DOC.5">WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE</A>) </B>
+ <DD><I>Tell it which browser to use</I>
+</DL><DL>
+<DT><h3>Private Fields</h3><DD><DT><A HREF="#DOC.8.15"> <IMG BORDER=0 SRC=icon1.gif></A> bool  <B>m_BrowserIsNetscape</B> </B>
+ <DD><I>Is the viewer a variant of netscape?</I>
+<DT><A HREF="#DOC.8.14"> <IMG BORDER=0 SRC=icon1.gif></A> wxString  <B>m_BrowserName</B> </B>
+ <DD><I>How to call the html viewer</I>
+<DT><A HREF="#DOC.8.11"> <IMG BORDER=0 SRC=icon1.gif></A> wxString  <B>m_MapFile</B> </B>
+ <DD><I>Filename of currently active map file</I>
+<DT><A HREF="#DOC.8.13"> <IMG BORDER=0 SRC=icon1.gif></A> wxExtHelpMapList*  <B>m_MapList</B> </B>
+ <DD><I>A list containing all id,url,documentation triples</I>
+<DT><A HREF="#DOC.8.12"> <IMG BORDER=0 SRC=icon1.gif></A> int  <B>m_NumOfEntries</B> </B>
+ <DD><I>How many entries do we have in the map file?</I>
+</DL><DL>
+<DT><h3>Private Methods</h3><DD><DT><A HREF="#DOC.8.16"> <IMG BORDER=0 SRC=icon1.gif></A> bool  <B>CallBrowser</B>(wxString const &amp;) </B>
+ <DD><I>Call the browser using a relative URL</I>
+</DL></DL>
+<A NAME="DOC.DOCU">
+<hr>
+ <h2> Documentation </h2>
+<BLOCKQUOTE>
+
+This class implements help via an external browser.
+It requires the name of a directory containing the documentation
+and a file mapping numerical Section numbers to relative URLS.<P>The map file contains two or three fields per line:
+numeric_id  relative_URL  [; comment/documentation]<P>The numeric_id is the id used to look up the entry in
+DisplaySection()/DisplayBlock(). The relative_URL is a filename of
+an html file, relative to the help directory. The optional
+comment/documentation field (after a ';') is used for keyword
+searches, so some meaningful text here does not hurt.
+If the documentation itself contains a ';', only the part before
+that will be displayed in the listbox, but all of it used for search.<P>Lines starting with ';' will be ignored.<P>This confuses DOC++, so I leave it out for now:
+<TT>ifdef USE_HELP</TT>: public wxHelpControllerBase
+{
+DECLARE_CLASS(wxExtHelpController)
+<TT>else</TT>{
+<TT>endif
+
+</BLOCKQUOTE>
+<DL>
+
+<A NAME="Initialize">
+<A NAME ="DOC.8.1">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual  bool  Initialize(const wxString&amp; file, int WXUNUSED(server))</B></TT>
+<DD>This must be called to tell the controller where to find the
+documentation
+<DL><DT><B>Returns:</B><DD>true on success
+<DT><B>Parameters:</B><DD><B>file</B> -  - NOT a filename, but a directory name.
+<br></DL><P>
+<A NAME="Initialize">
+<A NAME ="DOC.8.2">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual  bool  Initialize(const wxString&amp; file)</B></TT>
+<DD>This must be called to tell the controller where to find the
+documentation
+<DL><DT><B>Returns:</B><DD>true on success
+<DT><B>Parameters:</B><DD><B>file</B> -  - NOT a filename, but a directory name.
+<br></DL><P>
+<A NAME="LoadFile">
+<A NAME ="DOC.8.3">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual  bool  LoadFile(const wxString&amp; file = "")</B></TT>
+<DD>If file is "", reloads file given in Initialize.
+@file Name of help directory.
+
+<DL><DT><B>Returns:</B><DD>true on success
+</DL><P>
+<A NAME="DisplayContents">
+<A NAME ="DOC.8.4">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual  bool  DisplayContents(void)</B></TT>
+<DD>Display list of all help entries
+<DL><DT><B>Returns:</B><DD>true on success
+</DL><P>
+<A NAME="DisplaySection">
+<A NAME ="DOC.8.5">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual  bool  DisplaySection(int sectionNo)</B></TT>
+<DD>Display help for id sectionNo
+<DL><DT><B>Returns:</B><DD>true on success
+</DL><P>
+<A NAME="DisplayBlock">
+<A NAME ="DOC.8.6">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual  bool  DisplayBlock(long blockNo)</B></TT>
+<DD>Display help for id sectionNo -- identical with DisplaySection()
+<DL><DT><B>Returns:</B><DD>true on success
+</DL><P>
+<A NAME="KeywordSearch">
+<A NAME ="DOC.8.7">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual  bool  KeywordSearch(const wxString&amp; k)</B></TT>
+<DD>Search comment/documentation fields in map file and present a
+list to chose from.
+@key k string to search for, empty string will list all entries
+
+<DL><DT><B>Returns:</B><DD>true on success
+</DL><P>
+<A NAME="Quit">
+<A NAME ="DOC.8.9">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual  bool  Quit(void)</B></TT>
+<DD>does nothing
+<DL></DL><P>
+<A NAME="OnQuit">
+<A NAME ="DOC.8.10">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual  void  OnQuit(void)</B></TT>
+<DD>does nothing
+<DL></DL><P>
+<A NAME="SetBrowser">
+<A NAME ="DOC.8.8">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void  SetBrowser(wxString const &amp; browsername = <!2><A HREF="#DOC.4">WXEXTHELP_DEFAULTBROWSER</A>, bool isNetscape = <!2><A HREF="#DOC.5">WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE</A>)</B></TT>
+<DD>Tell it which browser to use.
+The Netscape support will check whether Netscape is already
+running (by looking at the .netscape/lock file in the user's
+home directory) and tell it to load the page into the existing
+window. 
+
+<DL><DT><B>Parameters:</B><DD><B>browsername</B> -  The command to call a browser/html viewer.
+<br><B>isNetscape</B> -  Set this to TRUE if the browser is some variant of Netscape.<br></DL><P>
+<A NAME="m_MapFile">
+<A NAME ="DOC.8.11">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> wxString  m_MapFile</B></TT>
+<DD>Filename of currently active map file
+<DL></DL><P>
+<A NAME="m_NumOfEntries">
+<A NAME ="DOC.8.12">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> int  m_NumOfEntries</B></TT>
+<DD>How many entries do we have in the map file?
+<DL></DL><P>
+<A NAME="m_MapList">
+<A NAME ="DOC.8.13">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> wxExtHelpMapList*  m_MapList</B></TT>
+<DD>A list containing all id,url,documentation triples
+<DL></DL><P>
+<A NAME="m_BrowserName">
+<A NAME ="DOC.8.14">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> wxString  m_BrowserName</B></TT>
+<DD>How to call the html viewer
+<DL></DL><P>
+<A NAME="m_BrowserIsNetscape">
+<A NAME ="DOC.8.15">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> bool  m_BrowserIsNetscape</B></TT>
+<DD>Is the viewer a variant of netscape?
+<DL></DL><P>
+<A NAME="CallBrowser">
+<A NAME ="DOC.8.16">
+<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> bool  CallBrowser(wxString const &amp;)</B></TT>
+<DD>Call the browser using a relative URL
+<DL></DL><P></DL>
+<hr>
+ <DL><DT><B>This class has no child classes.</B></DL>
+<DL></DL><P><I><A HREF="aindex.html"> alphabetic index</A></I>  <I><A HREF="HIER.html"> hierarchy of classes</A></I><P></BODY><hr>
+<A HREF="http://www.zib.de/Visual/software/doc++/index.html"><IMG BORDER=0 ALIGN=RIGHT SRC=logo.gif></A>
+<P Align=Center><I>this page has been generated automatically by doc++
+<P Align=Center>(c)opyright by <A HREF="http://www.zib.de/zoeckler/"> Malte  Z&oumlckler</A>, <A HREF="mailto:wunderling@zib.de"> Roland Wunderling </A><br>contact: <A HREF="mailto:doc++@zib.de"> doc++@zib.de </a>
\ No newline at end of file
diff --git a/samples/help/doc/wxhelp.map b/samples/help/doc/wxhelp.map
new file mode 100644
index 0000000000..3fdaa8f48d
--- /dev/null
+++ b/samples/help/doc/wxhelp.map
@@ -0,0 +1,15 @@
+;
+; This is a sample wxhelp.map file for a small help application.
+;
+;
+; First, some wxWindows documentation files:
+;
+0 wx.html                  ;wxWindows: Help index; additional keywords like overview
+1 wx34.htm#classref           ;  wxWindows Class References
+2 wx204.htm#functions         ;  wxWindows Function References; methods
+;
+; Some doc++ generated files:
+;
+4 aindex.html                 ;wxExtHelpController: Table of contents
+3 HIER.html                   ;  Class hierarchy (very small) 
+5 wxExtHelpController.html    ;  The class documentation of wxExtHelpController.;brower viewer
diff --git a/samples/help/mondrian.ico b/samples/help/mondrian.ico
new file mode 100644
index 0000000000000000000000000000000000000000..2310c5d275a87af295d5ea8dc79ea417a5e74c53
GIT binary patch
literal 766
zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z<M**w4TKL=5})Lnt5#WHKB$
zaDbtqp#doIAB-6O{|B*v7zjZ^AOa2W|NsACHyAJ}De?dRKnp(HN~rljcR;{k;{zQE
i@;}UZ|9Q?Fpp*~yJCwmWbLIrN`9Qm9%}2L?p!oo$cZ4ed

literal 0
HcmV?d00001

diff --git a/samples/help/mondrian.xpm b/samples/help/mondrian.xpm
new file mode 100644
index 0000000000..409f27a843
--- /dev/null
+++ b/samples/help/mondrian.xpm
@@ -0,0 +1,44 @@
+/* XPM */
+static char *mondrian_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 6 1",
+"  c Black",
+". c Blue",
+"X c #00bf00",
+"o c Red",
+"O c Yellow",
+"+ c Gray100",
+/* pixels */
+"                                ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+"                                ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++      ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++                    ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+"                                "
+};
-- 
2.50.0

