src/bc32.ide
+src/bc32d.ide
samples/bc32.ide
distrib/msw/*.rsp
distrib/msw/*.bat
+distrib/msw/tardist
+distrib/gtk/*
docs/readme.txt
docs/install.txt
include/wx/gtk/*.h
include/install-sh
+include/wx/install-sh
src/Makefile
src/Makefile.in
include/wx/motif/*.h
include/install-sh
+include/wx/install-sh
docs/motif/*.txt
docs/motif/makewxmotif
--- /dev/null
+#!/bin/sh
+# tardist: make up a tar.gz distribution of wxWindows 2
+# Supply a source (e.g. ~/wx2) and destination (e.g. ~/wx2/deliver)
+
+init=""
+if [ $1 = "" ]
+then
+ exit
+fi
+
+if [ $2 = "" ]
+then
+ exit
+fi
+
+echo About to archive wxWindows:
+echo From $1
+echo To $2
+echo CTRL-C if this is not correct.
+read dummy
+
+cd $1
+
+echo Removing backup files...
+rm *~ */*~ */*/*~ */*/*/*~ */*/*/*/*~
+
+rm -f $2/wxgtk.tar.gz
+rm -f $2/wxmotif.tar.gz
+rm -f $2/wxdocsrc.tar.gz
+rm -f $2/wxhtml.tar.gz
+rm -f $2/wxpdf.tar.gz
+rm -f $2/wxstubs.tar.gz
+rm -f $2/tex2rtf.tar.gz
+rm -f $2/ogl.tar.gz
+rm -f $2/wxtree.tar.gz
+rm -f $2/glcanvas.tar.gz
+
+echo Tarring...
+
+### wxGTK
+ls `cat $1/distrib/msw/generic.rsp $1/distrib/msw/gtk.rsp` > /tmp/wxgtk.txt
+tar cvf $2/wxgtk.tar -T /tmp/wxgtk.txt
+gzip $2/wxgtk.tar
+mv $2/wxgtk.tar.gz $2/wxgtk.tgz
+
+### wxMotif
+ls `cat $1/distrib/msw/generic.rsp $1/distrib/msw/motif.rsp` > /tmp/wxmotif.txt
+tar cvf $2/wxmotif.tar -T /tmp/wxmotif.txt
+gzip $2/wxmotif.tar
+mv $2/wxmotif.tar.gz $2/wxmotif.tgz
+
+### Doc sources
+ls `cat $1/distrib/msw/docsrc.rsp` > /tmp/docsrc.txt
+tar cvf $2/wxdocsrc.tar -T /tmp/docsrc.txt
+gzip $2/wxdocsrc.tar
+mv $2/wxdocsrc.tar.gz $2/wxdocsrc.tgz
+
+### HTML docs
+ls `cat $1/distrib/msw/wx_html.rsp` > /tmp/html.txt
+tar cvf $2/wxhtml.tar -T /tmp/html.txt
+gzip $2/wxhtml.tar
+mv $2/wxhtml.tar.gz $2/wxhtml.tgz
+
+### PDF docs
+ls `cat $1/distrib/msw/wx_pdf.rsp` > /tmp/pdf.txt
+tar cvf $2/wxpdf.tar -T /tmp/pdf.txt
+gzip $2/wxpdf.tar
+mv $2/wxpdf.tar.gz $2/wxpdf.tgz
+
+### Stubs files
+ls `cat $1/distrib/msw/stubs.rsp` > /tmp/stubs.txt
+tar cvf $2/wxstubs.tar -T /tmp/stubs.txt
+gzip $2/wxstubs.tar
+mv $2/wxstubs.tar.gz $2/wxstubs.tgz
+
+### Tex2RTF
+ls `cat $1/distrib/msw/tex2rtf.rsp` > /tmp/tex2rtf.txt
+tar cvf $2/tex2rtf.tar -T /tmp/tex2rtf.txt
+gzip $2/tex2rtf.tar
+mv $2/tex2rtf.tar.gz $2/tex2rtf.tgz
+
+### OGL
+ls `cat $1/distrib/msw/ogl.rsp` > /tmp/ogl.txt
+tar cvf $2/ogl.tar -T /tmp/ogl.txt
+gzip $2/ogl.tar
+mv $2/ogl.tar.gz $2/ogl.tgz
+
+### wxGLCanvas
+ls `cat $1/distrib/msw/glcanvas.rsp` > /tmp/glcanvas.txt
+tar cvf $2/glcanvas.tar -T /tmp/glcanvas.txt
+gzip $2/glcanvas.tar
+mv $2/glcanvas.tar.gz $2/glcanvas.tgz
+
+### wxTreeLayout
+ls `cat $1/distrib/msw/wxtree.rsp` > /tmp/wxtree.txt
+tar cvf $2/wxtree.tar -T /tmp/wxtree.txt
+gzip $2/wxtree.tar
+mv $2/wxtree.tar.gz $2/wxtree.tgz
+
+echo Done!
wxWindows 2 Change Log
----------------------
-Beta 5, February ?? 1999
+Beta 5, February 18 1999
-------------------------
wxGTK:
+- wxExecute improved.
wxMSW:
- Changed VC++ makefiles (.vc) so that it's possible to have
debug/release/DLL versions of the library available simultaneously,
with names wx.lib, wx_d.lib, wx200.lib(dll), wx200_d.lib(dll).
+- Added BC++ 5 IDE files and instructions.
+- Fixed wxChoice, wxComboBox constructor bugs (m_noStrings initialisation).
wxMotif:
+- Cured asynchronous wxExecute crash.
General:
+- wxLocale documented.
+- Added include filenames to class reference.
+- wxHelpController API changed: SetBrowser becomes SetViewer,
+ DisplaySection works for WinHelp, help sample compiles under Windows
+ (though doesn't display help yet).
Beta 4, February 12th 1999
--------------------------
\overview{Property classes overview}{propertyoverview}
-
\section{\class{wxBoolFormValidator}: wxPropertyFormValidator}\label{wxboolformvalidator}
\overview{Validator classes}{validatorclasses}
\item wxWinHelpController, for controlling Windows Help.
\item wxExtHelpController, for controlling external browsers under Unix.
The default browser is Netscape Navigator.
+\item wxXLPHelpController, for controlling wxHelp (from wxWindows 1).
\end{itemize}
\wxheading{Derived from}
<wx/help.h> (wxWindows chooses the appropriate help controller class)\\
<wx/helpbase.h> (wxHelpControllerBase class)\\
<wx/helpwin.h> (Windows Help controller)\\
-<wx/generic/helpext.h> (external browser controller)
+<wx/generic/helpext.h> (external HTML browser controller)
+<wx/generic/helpxlp.h> (wxHelp controller)
\latexignore{\rtfignore{\wxheading{Members}}}
\func{virtual void}{Initialize}{\param{const wxString\& }{file}, \param{int}{ server}}
Initializes the help instance with a help filename, and optionally a server (socket)
-number. Does not invoke the help viewer.
+number if using wxHelp. Does not invoke the help viewer.
This must be called directly after the help instance object is created and before
any attempts to communicate with the viewer.
\func{virtual bool}{DisplayBlock}{\param{long}{ blockNo}}
If the help viewer is not running, runs it and displays the file at the given block number.
-The interpretation of {\it blockNo} differs between help viewers. If using Windows Help, this
-refers to the context number. If wxHelp, this is the wxHelp block number.
+
+{\it wxHelp:} this is the wxHelp block number.
+
+{\it WinHelp:} Refers to the context number.
+
+{\it External HTML help:} the same as for \helpref{wxHelpController::DisplaySection}{wxhelpcontrollerdisplaysection}.
\membersection{wxHelpController::DisplayContents}\label{wxhelpcontrollerdisplaycontents}
\func{virtual bool}{DisplaySection}{\param{int}{ sectionNo}}
If the help viewer is not running, runs it and displays the given section.
-Sections are numbered starting from 1.
-For wxHelp, section numbers may be viewed by running wxHelp in edit mode.
+{\it wxHelp:} Sections are numbered starting from 1. Section numbers may be viewed by running wxHelp in edit mode.
+
+{\it WinHelp:} {\it sectionNo} is a context id.
-DisplaySection does not apply to WinHelp.
+{\it External HTML help:} wxExtHelpController implements {\it sectionNo} as an id in a map file, which is of the form:
+
+\begin{verbatim}
+0 wx.html ; Index
+1 wx34.html#classref ; Class reference
+2 wx204.html ; Function reference
+\end{verbatim}
\membersection{wxHelpController::KeywordSearch}\label{wxhelpcontrollerkeywordsearch}
\func{virtual bool}{KeywordSearch}{\param{const wxString\& }{keyWord}}
If the help viewer is not running, runs it, and searches for sections matching the given keyword. If one
-match is found, the file is displayed at this section. If more than one
-match is found, the Search dialog is displayed with the matches (wxHelp)
-or the first topic is displayed (Windows Help).
+match is found, the file is displayed at this section.
+
+{\it wxHelp:} If more than one
+match is found, the Search dialog is displayed with the matches.
+
+{\it WinHelp:} If more than one match is found,
+the first topic is displayed.
+
+{\it External HTML help:} If more than one match is found,
+a choice of topics is displayed.
\membersection{wxHelpController::LoadFile}\label{wxhelpcontrollerloadfile}
-\func{virtual bool}{LoadFile}{\param{const wxString\& }{file = NULL}}
+\func{virtual bool}{LoadFile}{\param{const wxString\& }{file = ""}}
If the help viewer is not running, runs it and loads the given file.
If the filename is not supplied or is
member function may be used before each display call in case the user
has opened another file.
+\membersection{wxHelpController::SetViewer}\label{wxhelpcontrollersetviewer}
+
+\func{virtual void}{SetViewer}{\param{const wxString\& }{viewer}, \param{long}{ flags}}
+
+Sets detailed viewer information. So far this is only relevant to wxExtHelpController.
+
+\wxheading{Parameters}
+
+\docparam{viewer}{This defaults to "netscape" for wxExtHelpController.}
+
+\docparam{flags}{This defaults to wxHELP\_NETSCAPE for wxExtHelpController, indicating
+that the viewer is a variant of Netscape Navigator.}
+
\membersection{wxHelpController::OnQuit}\label{wxhelpcontrolleronquit}
\func{virtual bool}{OnQuit}{\void}
Readme for wxWindows 2.0 Ide-files
+First release Feb. 1999, detlev@reymann-online.de
-First release Feb. 16. 1999, detlev@reymann-online.de
-
-1. What you can do with this IDE-files
+1. What you can do with this ide-files
2. Where to install the files
3. How to modify them for your own needs
-4. How to create IDE-files for your own wxWindows-programs
+4. How to create ide-files for your own wxWindows-programs
-1. What you can do with this IDE-files
+1. What you can do with this ide-files
======================================
-
-There are two IDE-files. One IDE-file should help you to create
-the wxWindows library from within the Ide of Borlands C++, v.
-5.x. The other one should help you to create most of the samples
-of wxWindows the same way.
+There are three ide-files. One ide-file should help you to create the wxWindows libraries from within the Ide of Borlands C++, v. 5.x. The second is called bc32d.ide and produces the debug-version of the wxWindows-library.
+If you want to produce the debugging-version, using the special ide-file bc32d.ide you have to create a seperate subdirectory \WXWIN_PATH\src\debug.
+The last one should help you to create most of the samples of wxWindows.
2. Where to install the files
=============================
-
-You should copy the file named wxwin32_lib.IDE to the
-src-directory of your wxWindows-Installation (e.g. C:\wxwin\src).
-And the other file samples.IDE should be copied into the
-samples-directory (e.g. C:\wxwin\samples).
+You should copy the files for the libraries into the src-directory of your wxWindows-Installation (e.g. C:\wxwin\src).
+And the other file for the samples should be copied into the samples-directory (e.g. C:\wxwin\samples).
3. How to modify them for your own needs
========================================
+If your wxWindows-Installation resides on the same drive as your Borland-Compiler and additionally the Borland-Installation is the default (e.g. C:\BC5) then there should be no need to change anything.
+Otherwise please change the path from within the ide (Options->project->directories). Because we use the $inherit-makro (Julian foung the trick), this should do the trick.
-If your wxWindows-Installation resIDEs on the same drive as your
-Borland-Compiler and additionally the Borland-Installation is
-the default (e.g. C:\BC5) then there should be no need to change
-anything. Otherwise please change the path from within the IDE
-(Options->project->directories). This should be very easy for
-the library-file. For the samples-file it can be neccessary to
-change the settings for all programms seperately, because there
-are local options for each of them. To do that, show the project
-so that you can see the list with all the programs, right-click
-onto each of them and choose local options. Then change the
-directory-names.
-
-4. How to create IDE-files for your own wxWindows-programs
+4. How to create ide-files for your own wxWindows-programs
==========================================================
-
-I think you are familiar with the necessary options for your own
-program. So I will only describe what is neccessary to link
-yout programm with the wxWindows-library. If you want to create
-a IDE-file for your own wxWindows-program, create a new project
-from the menu file->new->project. Deactivate all the
-standard-options, the only two things that should be activated is
-"static" for the libraries, if you want to use the library
-produced with the library-IDE and the checkbox OLE (You can
-leave this checkbox unchecked, but then you have to add the
-library \bc5\lib\ole2w32.lib to your project). You have to add
-the include-path of wxWindows to the include-path in the
-options-dialog (options->project->directories->include). The
-result should be something like:
-path_of_my_program;\bc5\include;\wxwin2\include; Then you have
-to add the libraries to the project. Open the project-view and
-activate your programm. Then right-click and choose "add" and
-select the wxWindows-library (e.g. \wxwin\lib\wx32.lib).
\ No newline at end of file
+I think you are familiar with the necessary options for your own programm. So I will only describe what is neccessary to link yout programm with the wxWindows-library. If you want to create a ide-file for your own wxWindows-program, create a new project from the menu file->new->project. Deactivate all the standard-options, the only two thing that should be aktivated is "static" for the libraries, if you want to use the library produced with the library-ide and the checkbox OLE (You can leave this checkbox unchecked, but then you have to add the library \bc5\lib\ole2w32.lib to your project). You have to add the include-path of wxWindows to the include-path in the options-dialog (options->project->directories->include). The result should be something like:
+path_of_my_program;\bc5\include;\wxwin2\include;
+Then you have to add the libraries to the project.
+Open the project-view and activate your programm. Then right-click and choose "add" and select the wxWindows-library (e.g. \wxwin\lib\wx32.lib).
\ No newline at end of file
wx200htm.zip HTML documentation
wx200vc.zip MS VC++ 5.0 project files
wx200cw.zip Metrowerks CodeWarrior project files
+wx200bc.zip BC++ 5 project files
Unarchive the required files plus any optional documentation
files into a suitable directory such as c:\wx.
Compiling using the IDE files:
-1. Load src\wxwin32_lib.ide.
+1. Load src\bc32.ide (or src\bc32d.ide for a debugging version).
2. Go to Options|Project... and specify the correct BC++ include and lib path for
your file structure.
3. Press F9 to compile the wxWindows library.
-4. Load samples\samples.ide.
+4. Load samples\bc32.ide.
5. Go to Options|Project... and specify the correct BC++ include and lib path for
your file structure.
6. Press F9 to compile the samples.
+Note that to make the png, xpm and zlib libraries (needed for
+some samples) you need to compile with bc32.ide. bc32d.ide only
+makes the wxWindows library (lib\wx32d.lib).
+
+The debug version of the wxWindows library is about 37 MB, and the
+release version is around 3 MB.
+
See also the file bc_ide.txt for further instructions and details
of how to create your own project files.
NOTES:
-(a) Unfortunately CodeWarrior support is broken in this
- release. Stefan Csomor (csomor@advancedconcepts.ch) will rectify this shortly.
-(b) You need CodeWarrior Pro 4 plus the patches to 4.1 from the
- Metrowerks Web site.
+You need CodeWarrior Pro 4 plus the patches to 4.1 from the
+Metrowerks Web site.
Symantec C++ compilation
------------------------
-wxWindows 2 beta 4
+wxWindows 2 beta 5
------------------
Welcome to wxWindows 2, a sophisticated cross-platform C++
wx200hlp.zip WinHelp documentation
wx200pdf.zip Acrobat PDF documentation
wx200htm.zip HTML documentation
-wx200vc.zip MS VC++ 5.0 project files
-wx200cw.zip Metrowerks CodeWarrior project files
+wx200vc.zip MS VC++ 5/6 project files
+wx200bc.zip Borland C++ 5 project files
+wx200cw.zip Metrowerks CodeWarrior 4.1 project files
Installation
------------
/// Is browser a netscape browser?
#define WXEXTHELP_ENVVAR_BROWSERISNETSCAPE "WX_HELPBROWSER_NS"
-
/**
This class implements help via an external browser.
It requires the name of a directory containing the documentation
@param browsername The command to call a browser/html viewer.
@param isNetscape Set this to TRUE if the browser is some variant of Netscape.
*/
+ // Obsolete form
void SetBrowser(wxString const & browsername = WXEXTHELP_DEFAULTBROWSER,
bool isNetscape = WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE);
+
+ // Set viewer: new name for SetBrowser
+ virtual void SetViewer(const wxString& viewer = WXEXTHELP_DEFAULTBROWSER, long flags = wxHELP_NETSCAPE);
+
private:
/// How to call the html viewer.
wxString m_BrowserName;
~wxColour();
// comparison
- bool operator == ( const wxColour& col );
- bool operator != ( const wxColour& col );
+ bool operator == ( const wxColour& col ) const;
+ bool operator != ( const wxColour& col ) const;
// accessors
void Set( unsigned char red, unsigned char green, unsigned char blue );
long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr );
virtual void SetMenuBar( wxMenuBar *menu_bar );
- virtual wxMenuBar *GetMenuBar();
+ virtual wxMenuBar *GetMenuBar() const;
virtual void GetClientSize( int *width, int *height ) const;
virtual void AddChild( wxWindow *child );
~wxColour();
// comparison
- bool operator == ( const wxColour& col );
- bool operator != ( const wxColour& col );
+ bool operator == ( const wxColour& col ) const;
+ bool operator != ( const wxColour& col ) const;
// accessors
void Set( unsigned char red, unsigned char green, unsigned char blue );
long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr );
virtual void SetMenuBar( wxMenuBar *menu_bar );
- virtual wxMenuBar *GetMenuBar();
+ virtual wxMenuBar *GetMenuBar() const;
virtual void GetClientSize( int *width, int *height ) const;
virtual void AddChild( wxWindow *child );
#if wxUSE_HELP
+// Flags for SetViewer
+#define wxHELP_NETSCAPE 1
+
// Defines the API for help controllers
class WXDLLEXPORT wxHelpControllerBase: public wxObject
{
virtual bool Initialize(const wxString& WXUNUSED(file), int WXUNUSED(server) ) { return FALSE; };
virtual bool Initialize(const wxString& file) = 0;
+ // Set viewer: only relevant to some kinds of controller
+ virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) {}
+
// If file is "", reloads file given in Initialize
virtual bool LoadFile(const wxString& file = "") = 0;
virtual bool DisplayContents(void) = 0;
int GetPixel() const { return m_pixel; };
void SetPixel(int pixel) { m_pixel = pixel; m_isInit = TRUE; };
- inline bool operator == (const wxColour& colour) { return (m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue); }
+ inline bool operator == (const wxColour& colour) const { return (m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue); }
- inline bool operator != (const wxColour& colour) { return (!(m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue)); }
+ inline bool operator != (const wxColour& colour) const { return (!(m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue)); }
// Allocate a colour, or nearest colour, using the given display.
// If realloc is TRUE, ignore the existing pixel, otherwise just return
unsigned char Blue() const { return m_blue; }
// comparison
- bool operator == (const wxColour& colour)
+ bool operator == (const wxColour& colour) const
{
return (m_red == colour.m_red &&
m_green == colour.m_green &&
m_blue == colour.m_blue);
}
- bool operator != (const wxColour& colour) { return !(*this == colour); }
+ bool operator != (const wxColour& colour) const { return !(*this == colour); }
WXCOLORREF GetPixel() const { return m_pixel; };
inline virtual void SetPropertySheet(wxPropertySheet *sheet) { m_propertySheet = sheet; }
inline virtual wxPropertySheet *GetPropertySheet(void) const { return m_propertySheet; }
+/*
virtual void OnOk(void) {};
virtual void OnCancel(void) {};
virtual void OnHelp(void) {};
+*/
inline virtual bool OnClose(void) { return FALSE; }
inline long GetFlags(void) { return m_buttonFlags; }
unsigned char Blue() const { return m_blue; }
// comparison
- bool operator == (const wxColour& colour)
+ bool operator == (const wxColour& colour) const
{
return (m_red == colour.m_red &&
m_green == colour.m_green &&
m_blue == colour.m_blue);
}
- bool operator != (const wxColour& colour) { return !(*this == colour); }
+ bool operator != (const wxColour& colour) const { return !(*this == colour); }
void InitFromName(const wxString& col);
/////////////////////////////////////////////////////////////////////////////
-// Name: minimal.cpp
-// Purpose: Minimal wxWindows sample
-// Author: Julian Smart
+// Name: demo.cpp
+// Purpose: wxHelpController demo
+// Author: Karsten Ballueder
// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Karsten Ballueder, Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// headers
// ----------------------------------------------------------------------------
#ifdef __GNUG__
- #pragma implementation "minimal.cpp"
- #pragma interface "minimal.cpp"
+ #pragma implementation "demo.cpp"
+ #pragma interface "demo.cpp"
#endif
// For compilers that support precompilation, includes "wx/wx.h".
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,
+ HelpDemo_Quit = 1,
+ HelpDemo_Help_Index,
+ HelpDemo_Help_Classes,
+ HelpDemo_Help_Functions,
+ HelpDemo_Help_Help,
+ HelpDemo_Help_KDE,
+ HelpDemo_Help_GNOME,
+ HelpDemo_Help_Netscape,
+ HelpDemo_Help_Search,
// controls start here (the numbers are, of course, arbitrary)
- Minimal_Text = 1000,
+ HelpDemo_Text = 1000,
};
// ----------------------------------------------------------------------------
// 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)
+ EVT_MENU(HelpDemo_Quit, MyFrame::OnQuit)
+ EVT_MENU(HelpDemo_Help_Index, MyFrame::OnHelp)
+ EVT_MENU(HelpDemo_Help_Classes, MyFrame::OnHelp)
+ EVT_MENU(HelpDemo_Help_Functions, MyFrame::OnHelp)
+ EVT_MENU(HelpDemo_Help_Help, MyFrame::OnHelp)
+ EVT_MENU(HelpDemo_Help_KDE, MyFrame::OnHelp)
+ EVT_MENU(HelpDemo_Help_GNOME, MyFrame::OnHelp)
+ EVT_MENU(HelpDemo_Help_Netscape, MyFrame::OnHelp)
+ EVT_MENU(HelpDemo_Help_Search, MyFrame::OnHelp)
END_EVENT_TABLE()
// Create a new application object: this macro will allow wxWindows to create
bool MyApp::OnInit()
{
// Create the main application window
- MyFrame *frame = new MyFrame("Minimal wxWindows App",
+ MyFrame *frame = new MyFrame("HelpDemo 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);
// 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->Append(HelpDemo_Help_Index, "&Help Index...");
+ menuFile->Append(HelpDemo_Help_Classes, "&Help on Classes...");
+ menuFile->Append(HelpDemo_Help_Functions, "&Help on Functions...");
+ menuFile->Append(HelpDemo_Help_Help, "&About Help Demo...");
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->Append(HelpDemo_Help_Search, "&Search help...");
+#ifdef __WXGTK__
menuFile->AppendSeparator();
- menuFile->Append(Minimal_Quit, "E&xit");
+ menuFile->Append(HelpDemo_Help_KDE, "Use &KDE");
+ menuFile->Append(HelpDemo_Help_GNOME, "Use &GNOME");
+ menuFile->Append(HelpDemo_Help_Netscape, "Use &Netscape");
+#endif
+ menuFile->AppendSeparator();
+ menuFile->Append(HelpDemo_Quit, "E&xit");
// now append the freshly created menu to the menu bar...
wxMenuBar *menuBar = new wxMenuBar;
{
switch(event.GetId())
{
- case Minimal_Help_Classes:
+
+ // Note: these DisplaySection calls use ids that are specific to wxExtHelpController
+ // (on Unix). For WinHelp, we'd need to use different context ids.
+
+ case HelpDemo_Help_Classes:
help.DisplaySection(1);
break;
- case Minimal_Help_Functions:
+ case HelpDemo_Help_Functions:
help.DisplaySection(2);
break;
- case Minimal_Help_Help:
+ case HelpDemo_Help_Help:
help.DisplaySection(5);
break;
- case Minimal_Help_KDE:
- if(help.IsKindOf(CLASSINFO(wxExtHelpController)))
- ((wxExtHelpController *)&help)->SetBrowser("kdehelp");
+
+ // These three calls are only used by wxExtHelpController
+
+ case HelpDemo_Help_KDE:
+ help.SetViewer("kdehelp");
break;
- case Minimal_Help_GNOME:
- if(help.IsKindOf(CLASSINFO(wxExtHelpController)))
- ((wxExtHelpController *)&help)->SetBrowser("gnome-help-browser");
+ case HelpDemo_Help_GNOME:
+ help.SetViewer("gnome-help-browser");
break;
- case Minimal_Help_Netscape:
- if(help.IsKindOf(CLASSINFO(wxExtHelpController)))
- ((wxExtHelpController *)&help)->SetBrowser("netscape",TRUE);
+ case HelpDemo_Help_Netscape:
+ help.SetViewer("netscape", wxHELP_NETSCAPE);
break;
- case Minimal_Help_Search:
+
+ case HelpDemo_Help_Search:
{
wxString key = wxGetTextFromUser("Search for?",
"Search help for keyword",
help.KeywordSearch(key);
}
break;
- case Minimal_Help_Index:
+ case HelpDemo_Help_Index:
default:
help.DisplayContents();
break;
}
}
+
m_BrowserIsNetscape = isNetscape;
}
+// Set viewer: new, generic name for SetBrowser
+void wxExtHelpController::SetViewer(const wxString& viewer, long flags)
+{
+ SetBrowser(viewer, ((flags & wxHELP_NETSCAPE) == wxHELP_NETSCAPE));
+}
+
bool
wxExtHelpController::DisplayHelp(wxString const &relativeURL)
{
return *this;
}
-bool wxColour::operator == ( const wxColour& col )
+bool wxColour::operator == ( const wxColour& col ) const
{
return m_refData == col.m_refData;
}
-bool wxColour::operator != ( const wxColour& col)
+bool wxColour::operator != ( const wxColour& col) const
{
return m_refData != col.m_refData;
}
}
}
-wxMenuBar *wxMDIChildFrame::GetMenuBar()
+wxMenuBar *wxMDIChildFrame::GetMenuBar() const
{
return m_menuBar;
}
return *this;
}
-bool wxColour::operator == ( const wxColour& col )
+bool wxColour::operator == ( const wxColour& col ) const
{
return m_refData == col.m_refData;
}
-bool wxColour::operator != ( const wxColour& col)
+bool wxColour::operator != ( const wxColour& col) const
{
return m_refData != col.m_refData;
}
}
}
-wxMenuBar *wxMDIChildFrame::GetMenuBar()
+wxMenuBar *wxMDIChildFrame::GetMenuBar() const
{
return m_menuBar;
}
printf ("wxWindows: could not execute '%s'\n", *argv);
_exit (-1);
}
+ if (!sync)
+ return pid;
wxLocalProcessData *process_data = new wxLocalProcessData;
(XtInputCallbackProc) xt_notify_end_process,
(XtPointer) process_data);
- if (sync) {
- while (!process_data->end_process)
- XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMAll);
+ while (!process_data->end_process)
+ XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMAll);
- if (WIFEXITED(process_data->end_process) != 0)
- {
- delete process_data;
- return WEXITSTATUS(process_data->end_process);
- }
+ if (WIFEXITED(process_data->end_process) != 0)
+ {
+ delete process_data;
+ return WEXITSTATUS(process_data->end_process);
}
delete process_data;
if (parent) parent->AddChild(this);
SetBackgroundColour(parent->GetBackgroundColour()) ;
SetForegroundColour(parent->GetForegroundColour()) ;
- m_noStrings = n;
+ m_noStrings = 0;
m_windowStyle = style;
if (parent) parent->AddChild(this);
SetBackgroundColour(parent->GetBackgroundColour()) ;
SetForegroundColour(parent->GetForegroundColour()) ;
- m_noStrings = n;
+ m_noStrings = 0;
m_windowStyle = style;
char wxDummyChar = 0;
#endif
-// if wxWindows is in the DLL link our entry point with the application
-// N.B. see include/wx/app.h, we're now putting this in IMPLEMENT_APP so we
-// don't have to link our apps with dummy.obj.
-
-#if 0 // defined(WXUSINGDLL)
-
-// NT defines APIENTRY, 3.x not
-#if !defined(APIENTRY)
- #define APIENTRY FAR PASCAL
-#endif
-
-int
-#ifdef __WATCOMC__
- PASCAL
-#else
- APIENTRY
-#endif
-WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR m_lpCmdLine,
- int nCmdShow )
-{
-#if !WXUSINGDLL
- wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF);
-#endif
-
- return wxEntry((WXHINSTANCE) hInstance, (WXHINSTANCE) hPrevInstance,
- m_lpCmdLine, nCmdShow);
-}
-#endif
-
-
{
if (m_helpFile == "") return FALSE;
- char buf[_MAXPATHLEN];
- strcpy(buf, (const char*) m_helpFile);
- size_t len = strlen(buf);
- if (!(buf[len-1] == 'p' && buf[len-2] == 'l' && buf[len-3] == 'h' && buf[len-4] == '.'))
- strcat(buf, ".hlp");
+ wxString str = m_helpFile;
+ size_t len = str.Length();
+ if (!(str[(size_t)(len-1)] == 'p' && str[(size_t)(len-2)] == 'l' && str[(size_t)(len-3)] == 'h' && str[(size_t)(len-4)] == '.'))
+ str += ".hlp";
+
if (wxTheApp->GetTopWindow())
{
#if defined(__WIN95__)
- WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), buf, HELP_FINDER, 0L);
+ WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const char*) str, HELP_FINDER, 0L);
#else
- WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), buf, HELP_CONTENTS, 0L);
+ WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const char*) str, HELP_CONTENTS, 0L);
#endif
return TRUE;
}
bool wxWinHelpController::DisplaySection(int section)
{
- // No WinHelp equivalent for this
- return FALSE;
+ // Use context number
+ if (m_helpFile == "") return FALSE;
+
+ wxString str = m_helpFile;
+ size_t len = str.Length();
+ if (!(str[(size_t)(len-1)] == 'p' && str[(size_t)(len-2)] == 'l' && str[(size_t)(len-3)] == 'h' && str[(size_t)(len-4)] == '.'))
+ str += ".hlp";
+
+ if (wxTheApp->GetTopWindow())
+ {
+ WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const char*) str, HELP_CONTEXT, (DWORD)section);
+ return TRUE;
+ }
+ return FALSE;
}
bool wxWinHelpController::DisplayBlock(long block)
// Use context number -- a very rough equivalent to block id!
if (m_helpFile == "") return FALSE;
- char buf[_MAXPATHLEN];
- strcpy(buf, m_helpFile);
- size_t len = strlen(buf);
- if (!(buf[len-1] == 'p' && buf[len-2] == 'l' && buf[len-3] == 'h' && buf[len-4] == '.'))
- strcat(buf, ".hlp");
+ wxString str = m_helpFile;
+ size_t len = str.Length();
+ if (!(str[(size_t)(len-1)] == 'p' && str[(size_t)(len-2)] == 'l' && str[(size_t)(len-3)] == 'h' && str[(size_t)(len-4)] == '.'))
+ str += ".hlp";
+
if (wxTheApp->GetTopWindow())
{
- WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), buf, HELP_CONTEXT, (DWORD)block);
+ WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const char*) str, HELP_CONTEXT, (DWORD)block);
return TRUE;
}
return FALSE;
{
if (m_helpFile == "") return FALSE;
- char buf[_MAXPATHLEN];
- strcpy(buf, m_helpFile);
- size_t len = strlen(buf);
- if (!(buf[len-1] == 'p' && buf[len-2] == 'l' && buf[len-3] == 'h' && buf[len-4] == '.'))
- strcat(buf, ".hlp");
+ wxString str = m_helpFile;
+ size_t len = str.Length();
+ if (!(str[(size_t)(len-1)] == 'p' && str[(size_t)(len-2)] == 'l' && str[(size_t)(len-3)] == 'h' && str[(size_t)(len-4)] == '.'))
+ str += ".hlp";
+
if (wxTheApp->GetTopWindow())
{
- WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), buf, HELP_PARTIALKEY, (DWORD)(const char*) k);
+ WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const char*) str, HELP_PARTIALKEY, (DWORD)(const char*) k);
return TRUE;
}
return FALSE;
# If taking wxWindows from CVS, setup.h doesn't exist yet.
$(WXDIR)\include\wx\msw\setup.h: $(WXDIR)\include\wx\msw\setup0.h
-copy "$(WXDIR)"\include\wx\msw\setup.h "$(WXDIR)"\include\wx\msw\setup.bak
- copy "$(WXDIR)"\include\wx\msw\setup0.h "$(WXDIR)"\include\wx\msw\setup.h
+ if not exist "$(WXDIR)"\include\wx\msw\setup.h copy "$(WXDIR)"\include\wx\msw\setup0.h "$(WXDIR)"\include\wx\msw\setup.h
..\common\$D\extended.obj: ..\common\extended.c
cl @<<
long wxWindow::MSWOnSysCommand(WXWPARAM wParam, WXLPARAM lParam)
{
- switch (wParam)
+ switch (wParam && 0xFFFFFFF0)
{
case SC_MAXIMIZE:
{