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
This commit is contained in:
Karsten Ballüder
1998-11-10 21:22:22 +00:00
parent e9aad10ab7
commit de5c0ba745
26 changed files with 1029 additions and 0 deletions

1
samples/help/Makefile Normal file
View File

@@ -0,0 +1 @@
include ../../setup/general/makeapp

26
samples/help/Makefile.in Normal file
View File

@@ -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

259
samples/help/demo.cpp Normal file
View File

@@ -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;
}
}

8
samples/help/demo.def Normal file
View File

@@ -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

6
samples/help/demo.rc Normal file
View File

@@ -0,0 +1,6 @@
mondrian ICON "mondrian.ico"
#include "wx/msw/wx.rc"
#define MINIMAL_QUIT 1
#define MINIMAL_ABOUT 102

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -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>

View File

@@ -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>

Binary file not shown.

View File

@@ -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>

View File

@@ -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>

BIN
samples/help/doc/down.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,4 @@
\documentclass{article}
\pagestyle{empty}
\begin{document}
\end{document}

0
samples/help/doc/gifs.db Normal file
View File

BIN
samples/help/doc/icon1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

BIN
samples/help/doc/icon2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

View File

@@ -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>

BIN
samples/help/doc/logo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -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>

349
samples/help/doc/wx34.htm Normal file
View File

@@ -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>

View File

@@ -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>

View File

@@ -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

BIN
samples/help/mondrian.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

44
samples/help/mondrian.xpm Normal file
View File

@@ -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 ++++ ",
" "
};