From 33b64e6f8b7cf372a569e61d7eee879217945043 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Thu, 18 Feb 1999 14:55:34 +0000 Subject: [PATCH] Added 'tardist' script for creating .tgz archives of wxWin; cured wxExecute crash on wxMotif; added wxHelpControllerBase::SetViewer; added consts to wxColour == and != operators; changed beta version; fixed wxChoice/wxComboBox bugs git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- distrib/msw/bc.rsp | 1 + distrib/msw/generic.rsp | 2 + distrib/msw/gtk.rsp | 1 + distrib/msw/motif.rsp | 1 + distrib/msw/tardist | 100 +++++++++++++++++++++++++++ docs/changes.txt | 11 ++- docs/latex/proplist/classes.tex | 1 - docs/latex/wx/helpinst.tex | 55 ++++++++++++--- docs/msw/bc_ide.txt | 62 +++++------------ docs/msw/install.txt | 18 +++-- docs/readme.txt | 7 +- include/wx/generic/helpext.h | 6 +- include/wx/gtk/colour.h | 4 +- include/wx/gtk/mdi.h | 2 +- include/wx/gtk1/colour.h | 4 +- include/wx/gtk1/mdi.h | 2 +- include/wx/helpbase.h | 6 ++ include/wx/motif/colour.h | 4 +- include/wx/msw/colour.h | 4 +- include/wx/prop.h | 2 + include/wx/stubs/colour.h | 4 +- samples/help/demo.cpp | 115 ++++++++++++++++---------------- src/generic/helpext.cpp | 6 ++ src/gtk/colour.cpp | 4 +- src/gtk/mdi.cpp | 2 +- src/gtk1/colour.cpp | 4 +- src/gtk1/mdi.cpp | 2 +- src/motif/utilsexc.cpp | 16 ++--- src/msw/choice.cpp | 2 +- src/msw/combobox.cpp | 2 +- src/msw/dummy.cpp | 32 --------- src/msw/helpwin.cpp | 54 +++++++++------ src/msw/makefile.vc | 2 +- src/msw/window.cpp | 2 +- 34 files changed, 332 insertions(+), 208 deletions(-) create mode 100644 distrib/msw/tardist diff --git a/distrib/msw/bc.rsp b/distrib/msw/bc.rsp index 6388546049..5bfd4a99fa 100644 --- a/distrib/msw/bc.rsp +++ b/distrib/msw/bc.rsp @@ -1,2 +1,3 @@ src/bc32.ide +src/bc32d.ide samples/bc32.ide diff --git a/distrib/msw/generic.rsp b/distrib/msw/generic.rsp index 80bc591f87..6c9e2ab699 100644 --- a/distrib/msw/generic.rsp +++ b/distrib/msw/generic.rsp @@ -1,5 +1,7 @@ distrib/msw/*.rsp distrib/msw/*.bat +distrib/msw/tardist +distrib/gtk/* docs/readme.txt docs/install.txt diff --git a/distrib/msw/gtk.rsp b/distrib/msw/gtk.rsp index 14cfe7c01d..1186662289 100644 --- a/distrib/msw/gtk.rsp +++ b/distrib/msw/gtk.rsp @@ -19,6 +19,7 @@ docs/gtk/makewxgtk include/wx/gtk/*.h include/install-sh +include/wx/install-sh src/Makefile src/Makefile.in diff --git a/distrib/msw/motif.rsp b/distrib/msw/motif.rsp index 9af44964c0..a428eb0e79 100644 --- a/distrib/msw/motif.rsp +++ b/distrib/msw/motif.rsp @@ -44,6 +44,7 @@ src/iodbc/postgres/*.h include/wx/motif/*.h include/install-sh +include/wx/install-sh docs/motif/*.txt docs/motif/makewxmotif diff --git a/distrib/msw/tardist b/distrib/msw/tardist new file mode 100644 index 0000000000..faf359bce6 --- /dev/null +++ b/distrib/msw/tardist @@ -0,0 +1,100 @@ +#!/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! diff --git a/docs/changes.txt b/docs/changes.txt index bc1f9c5111..962d29eb61 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -1,11 +1,12 @@ wxWindows 2 Change Log ---------------------- -Beta 5, February ?? 1999 +Beta 5, February 18 1999 ------------------------- wxGTK: +- wxExecute improved. wxMSW: @@ -14,12 +15,20 @@ 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 -------------------------- diff --git a/docs/latex/proplist/classes.tex b/docs/latex/proplist/classes.tex index 9b0b5aa11d..00dcfe294a 100644 --- a/docs/latex/proplist/classes.tex +++ b/docs/latex/proplist/classes.tex @@ -4,7 +4,6 @@ \overview{Property classes overview}{propertyoverview} - \section{\class{wxBoolFormValidator}: wxPropertyFormValidator}\label{wxboolformvalidator} \overview{Validator classes}{validatorclasses} diff --git a/docs/latex/wx/helpinst.tex b/docs/latex/wx/helpinst.tex index cd7c69b1a6..1e1b5dea87 100644 --- a/docs/latex/wx/helpinst.tex +++ b/docs/latex/wx/helpinst.tex @@ -23,6 +23,7 @@ There are currently the following help controller classes defined: \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} @@ -35,7 +36,8 @@ wxHelpControllerBase\\ (wxWindows chooses the appropriate help controller class)\\ (wxHelpControllerBase class)\\ (Windows Help controller)\\ - (external browser controller) + (external HTML browser controller) + (wxHelp controller) \latexignore{\rtfignore{\wxheading{Members}}} @@ -58,7 +60,7 @@ Destroys the help instance, closing down the viewer if it is running. \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. @@ -69,8 +71,12 @@ You may omit the file extension and a suitable one will be chosen. \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} @@ -84,24 +90,38 @@ contents. \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 @@ -110,6 +130,19 @@ already displaying the specified file, it will not be reloaded. This 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} diff --git a/docs/msw/bc_ide.txt b/docs/msw/bc_ide.txt index 067d790949..135384be7d 100644 --- a/docs/msw/bc_ide.txt +++ b/docs/msw/bc_ide.txt @@ -1,60 +1,30 @@ 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 diff --git a/docs/msw/install.txt b/docs/msw/install.txt index 051643dd94..279b02954e 100644 --- a/docs/msw/install.txt +++ b/docs/msw/install.txt @@ -26,6 +26,7 @@ wx200pdf.zip Acrobat PDF documentation 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. @@ -175,15 +176,22 @@ off in this mode. See issues.txt for details. 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. @@ -216,10 +224,8 @@ Metrowerks CodeWarrior compilation 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 ------------------------ diff --git a/docs/readme.txt b/docs/readme.txt index 619896c0fa..81a846c40b 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -1,4 +1,4 @@ -wxWindows 2 beta 4 +wxWindows 2 beta 5 ------------------ Welcome to wxWindows 2, a sophisticated cross-platform C++ @@ -46,8 +46,9 @@ wx200doc.zip Documentation source code (not required) 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 ------------ diff --git a/include/wx/generic/helpext.h b/include/wx/generic/helpext.h index 32033dea06..d0b9cdda3b 100644 --- a/include/wx/generic/helpext.h +++ b/include/wx/generic/helpext.h @@ -27,7 +27,6 @@ /// 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 @@ -61,8 +60,13 @@ DECLARE_CLASS(wxExtHelpController) @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; diff --git a/include/wx/gtk/colour.h b/include/wx/gtk/colour.h index 9a6503eb41..8d27d3f3b2 100644 --- a/include/wx/gtk/colour.h +++ b/include/wx/gtk/colour.h @@ -58,8 +58,8 @@ public: ~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 ); diff --git a/include/wx/gtk/mdi.h b/include/wx/gtk/mdi.h index 3357143d0a..cde7a8983d 100644 --- a/include/wx/gtk/mdi.h +++ b/include/wx/gtk/mdi.h @@ -116,7 +116,7 @@ class wxMDIChildFrame: public wxFrame 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 ); diff --git a/include/wx/gtk1/colour.h b/include/wx/gtk1/colour.h index 9a6503eb41..8d27d3f3b2 100644 --- a/include/wx/gtk1/colour.h +++ b/include/wx/gtk1/colour.h @@ -58,8 +58,8 @@ public: ~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 ); diff --git a/include/wx/gtk1/mdi.h b/include/wx/gtk1/mdi.h index 3357143d0a..cde7a8983d 100644 --- a/include/wx/gtk1/mdi.h +++ b/include/wx/gtk1/mdi.h @@ -116,7 +116,7 @@ class wxMDIChildFrame: public wxFrame 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 ); diff --git a/include/wx/helpbase.h b/include/wx/helpbase.h index 830925e80d..b93771f806 100644 --- a/include/wx/helpbase.h +++ b/include/wx/helpbase.h @@ -20,6 +20,9 @@ #if wxUSE_HELP +// Flags for SetViewer +#define wxHELP_NETSCAPE 1 + // Defines the API for help controllers class WXDLLEXPORT wxHelpControllerBase: public wxObject { @@ -35,6 +38,9 @@ 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; diff --git a/include/wx/motif/colour.h b/include/wx/motif/colour.h index 893cd7afa2..238d46cfe1 100644 --- a/include/wx/motif/colour.h +++ b/include/wx/motif/colour.h @@ -62,9 +62,9 @@ public: 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 diff --git a/include/wx/msw/colour.h b/include/wx/msw/colour.h index 52f15ed96f..0c3def2984 100644 --- a/include/wx/msw/colour.h +++ b/include/wx/msw/colour.h @@ -64,13 +64,13 @@ public: 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; }; diff --git a/include/wx/prop.h b/include/wx/prop.h index 8471c8b0a6..c933e4e72d 100644 --- a/include/wx/prop.h +++ b/include/wx/prop.h @@ -112,9 +112,11 @@ class WXDLLEXPORT wxPropertyView: public wxEvtHandler 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; } diff --git a/include/wx/stubs/colour.h b/include/wx/stubs/colour.h index 16ffdac9aa..24028b6756 100644 --- a/include/wx/stubs/colour.h +++ b/include/wx/stubs/colour.h @@ -64,13 +64,13 @@ public: 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); diff --git a/samples/help/demo.cpp b/samples/help/demo.cpp index 01e9b6fbca..1980c9f265 100644 --- a/samples/help/demo.cpp +++ b/samples/help/demo.cpp @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// -// 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 ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,8 +17,8 @@ // 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". @@ -87,17 +87,17 @@ private: 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, }; // ---------------------------------------------------------------------------- @@ -108,15 +108,15 @@ enum // 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 @@ -138,11 +138,9 @@ IMPLEMENT_APP(MyApp) 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); @@ -166,21 +164,20 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) // 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; @@ -220,28 +217,33 @@ void MyFrame::OnHelp(wxCommandEvent& event) { 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", @@ -251,9 +253,10 @@ void MyFrame::OnHelp(wxCommandEvent& event) help.KeywordSearch(key); } break; - case Minimal_Help_Index: + case HelpDemo_Help_Index: default: help.DisplayContents(); break; } } + diff --git a/src/generic/helpext.cpp b/src/generic/helpext.cpp index 80e91ebdc4..c2a7f14224 100644 --- a/src/generic/helpext.cpp +++ b/src/generic/helpext.cpp @@ -50,6 +50,12 @@ wxExtHelpController::SetBrowser(wxString const & browsername, bool isNetscape) 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) { diff --git a/src/gtk/colour.cpp b/src/gtk/colour.cpp index 88a76bba56..72104a8843 100644 --- a/src/gtk/colour.cpp +++ b/src/gtk/colour.cpp @@ -116,12 +116,12 @@ wxColour& wxColour::operator = ( const wxColour& col ) 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; } diff --git a/src/gtk/mdi.cpp b/src/gtk/mdi.cpp index e301b4513d..edfdec5641 100644 --- a/src/gtk/mdi.cpp +++ b/src/gtk/mdi.cpp @@ -298,7 +298,7 @@ void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar ) } } -wxMenuBar *wxMDIChildFrame::GetMenuBar() +wxMenuBar *wxMDIChildFrame::GetMenuBar() const { return m_menuBar; } diff --git a/src/gtk1/colour.cpp b/src/gtk1/colour.cpp index 88a76bba56..72104a8843 100644 --- a/src/gtk1/colour.cpp +++ b/src/gtk1/colour.cpp @@ -116,12 +116,12 @@ wxColour& wxColour::operator = ( const wxColour& col ) 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; } diff --git a/src/gtk1/mdi.cpp b/src/gtk1/mdi.cpp index e301b4513d..edfdec5641 100644 --- a/src/gtk1/mdi.cpp +++ b/src/gtk1/mdi.cpp @@ -298,7 +298,7 @@ void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar ) } } -wxMenuBar *wxMDIChildFrame::GetMenuBar() +wxMenuBar *wxMDIChildFrame::GetMenuBar() const { return m_menuBar; } diff --git a/src/motif/utilsexc.cpp b/src/motif/utilsexc.cpp index a088203fd0..82a89b652a 100644 --- a/src/motif/utilsexc.cpp +++ b/src/motif/utilsexc.cpp @@ -165,6 +165,8 @@ long wxExecute(char **argv, bool sync, wxProcess *handler) printf ("wxWindows: could not execute '%s'\n", *argv); _exit (-1); } + if (!sync) + return pid; wxLocalProcessData *process_data = new wxLocalProcessData; @@ -178,15 +180,13 @@ long wxExecute(char **argv, bool sync, wxProcess *handler) (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; diff --git a/src/msw/choice.cpp b/src/msw/choice.cpp index 4bba2263d7..a31cd8a366 100644 --- a/src/msw/choice.cpp +++ b/src/msw/choice.cpp @@ -59,7 +59,7 @@ bool wxChoice::Create(wxWindow *parent, wxWindowID id, if (parent) parent->AddChild(this); SetBackgroundColour(parent->GetBackgroundColour()) ; SetForegroundColour(parent->GetForegroundColour()) ; - m_noStrings = n; + m_noStrings = 0; m_windowStyle = style; diff --git a/src/msw/combobox.cpp b/src/msw/combobox.cpp index ab5eb3ef41..aec17db23d 100644 --- a/src/msw/combobox.cpp +++ b/src/msw/combobox.cpp @@ -72,7 +72,7 @@ bool wxComboBox::Create(wxWindow *parent, wxWindowID id, if (parent) parent->AddChild(this); SetBackgroundColour(parent->GetBackgroundColour()) ; SetForegroundColour(parent->GetForegroundColour()) ; - m_noStrings = n; + m_noStrings = 0; m_windowStyle = style; diff --git a/src/msw/dummy.cpp b/src/msw/dummy.cpp index dda57b7e3b..4b5d3141e8 100644 --- a/src/msw/dummy.cpp +++ b/src/msw/dummy.cpp @@ -44,35 +44,3 @@ 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 - - diff --git a/src/msw/helpwin.cpp b/src/msw/helpwin.cpp index 068165f21e..eb74f4960c 100644 --- a/src/msw/helpwin.cpp +++ b/src/msw/helpwin.cpp @@ -70,17 +70,17 @@ bool wxWinHelpController::DisplayContents(void) { 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; } @@ -89,8 +89,20 @@ bool wxWinHelpController::DisplayContents(void) 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) @@ -98,14 +110,14 @@ 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; @@ -115,14 +127,14 @@ bool wxWinHelpController::KeywordSearch(const wxString& k) { 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; diff --git a/src/msw/makefile.vc b/src/msw/makefile.vc index c74ab9cf24..1d626d9204 100644 --- a/src/msw/makefile.vc +++ b/src/msw/makefile.vc @@ -358,7 +358,7 @@ $(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummydll.obj /c /Tp dummydll.cpp # 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 @<< diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 8b970ba696..c80243a3e8 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -2201,7 +2201,7 @@ bool wxWindow::MSWOnCommand(WXWORD id, WXWORD cmd, WXHWND control) long wxWindow::MSWOnSysCommand(WXWPARAM wParam, WXLPARAM lParam) { - switch (wParam) + switch (wParam && 0xFFFFFFF0) { case SC_MAXIMIZE: { -- 2.47.2