]> git.saurik.com Git - wxWidgets.git/commitdiff
Some stubs corrections; Motif corrections incl. busy cursor fix; doc corrections
authorJulian Smart <julian@anthemion.co.uk>
Wed, 24 Feb 1999 08:02:28 +0000 (08:02 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Wed, 24 Feb 1999 08:02:28 +0000 (08:02 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1775 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

27 files changed:
docs/html/faqmsw.htm
docs/latex/wx/document.tex
docs/latex/wx/tokenizr.tex
docs/latex/wx/window.tex
docs/motif/install.txt
docs/msw/install.txt
include/wx/motif/frame.h
include/wx/motif/mdi.h
include/wx/motif/setup.h
include/wx/stubs/filedlg.h
include/wx/stubs/setup.h
include/wx/tokenzr.h
samples/docview/doc.cpp
samples/docview/docview.cpp
samples/docview/view.cpp
samples/docvwmdi/doc.cpp
samples/docvwmdi/docview.cpp
samples/docvwmdi/view.cpp
samples/layout/layout.cpp
samples/printing/printing.cpp
src/generic/panelg.cpp
src/motif/dialog.cpp
src/motif/utils.cpp
src/motif/window.cpp
src/stubs/filedlg.cpp
src/stubs/makefile.unx
src/stubs/thread.cpp

index b373e725def41cfe85abbf089e3cb05ea0163b12..984a87f3fc944d2a316099c46351dabd025ed7df 100644 (file)
@@ -146,6 +146,26 @@ There is a sample which demonstrates MFC and wxWindows code co-existing in the s
 application. However, don't expect to be able to enable wxWindows windows with OLE-2
 functionality using MFC.<P>
 
+<H3>Why do I sometimes get bizarre crash problems using VC++ 5/6?</H3>
+
+Some crash problems can be due to inconsistent compiler
+options (and of course this isn't limited to wxWindows).
+If strange/weird/impossible things start to happen please
+check (dumping IDE project file as makefile and doing text comparison
+if necessary) that the project settings, especially the list of defined
+symbols, struct packing, etc. are exactly the same for all items in
+the project. After this, delete everything (including PCH) and recompile.<P>
+
+VC++ 5's optimization code seems to be broken and can
+cause problems: this can be seen when deleting an object Dialog
+Editor, in Release mode with optimizations on. If in doubt,
+switch off optimisations, although this will result in much
+larger executables. It seems possible that the library can be created with
+strong optimization, so long as the application is not strongly
+optimized. For example, in wxWindows project, set to 'Minimum
+Size'. In Dialog Editor project, set to 'Customize: Favor Small
+Code' (and no others). This will then work.<P>
+
 
 </font>
 
index fc50326630c7591f77136d3d4c13684a88b6f2f6..4affd5ade702c40ae89af855afbdb0e9ef482780 100644 (file)
@@ -141,7 +141,7 @@ dialog boxes. By default, uses the frame associated with the first view.
 
 \constfunc{wxString}{GetFilename}{\void}
 
-Gets the filename associated with this document, or NULL if none is
+Gets the filename associated with this document, or "" if none is
 associated.
 
 \membersection{wxDocument::GetFirstView}
@@ -241,7 +241,7 @@ document, and notifies the views that the filename (in fact, the title) has chan
 
 \func{virtual bool}{OnOpenDocument}{\param{const wxString\& }{filename}}
 
-Constructs an input file stream for the given filename (which must not be NULL),
+Constructs an input file stream for the given filename (which must not be empty),
 and calls LoadObject. If LoadObject returns TRUE, the document is set to
 unmodified; otherwise, an error message box is displayed. The document's
 views are notified that the filename has changed, to give windows an opportunity
@@ -251,7 +251,7 @@ to update their titles. All of the document's views are then updated.
 
 \func{virtual bool}{OnSaveDocument}{\param{const wxString\& }{filename}}
 
-Constructs an output file stream for the given filename (which must not be NULL),
+Constructs an output file stream for the given filename (which must not be empty),
 and calls SaveObject. If SaveObject returns TRUE, the document is set to
 unmodified; otherwise, an error message box is displayed.
 
index 750bd8cb3541a5cdbaa51df0f69efc226962476b..ffc8d5dfe7772bb5fd64a8abdd346e5d730695c1 100644 (file)
@@ -31,25 +31,25 @@ Destructor.
 
 \membersection{wxStringTokenizer::CountTokens}\label{wxstringtokenizercounttokens}
 
-\constfunc{virtual int}{CountTokens}{\void}
+\constfunc{int}{CountTokens}{\void}
 
 Returns the number of tokens in the input string.
 
-\membersection{wxStringTokenizer::HasMoreToken}\label{wxstringtokenizerhasmoretoken}
+\membersection{wxStringTokenizer::HasMoreTokens}\label{wxstringtokenizerhasmoretokens}
 
-\constfunc{virtual bool}{HasMoreToken}{\void}
+\constfunc{bool}{HasMoreTokens}{\void}
 
 Returns TRUE if the tokenizer has further tokens.
 
-\membersection{wxStringTokenizer::NextToken}\label{wxstringtokenizernexttoken}
+\membersection{wxStringTokenizer::GetNextToken}\label{wxstringtokenizergetnexttoken}
 
-\constfunc{virtual wxString}{NextToken}{\void}
+\constfunc{wxString}{GetNextToken}{\void}
 
 Returns the next token.
 
 \membersection{wxStringTokenizer::GetString}\label{wxstringtokenizergetstring}
 
-\constfunc{virtual wxString}{GetString}{\void}
+\constfunc{wxString}{GetString}{\void}
 
 Returns the input string.
 
index 22a2375ef0d57f7f1147a86fccff3a830e86584b..6c371edf252cbaf63d0d13588660f7ffdb1dd753 100644 (file)
@@ -1683,11 +1683,13 @@ Sets the window's cursor.
 
 \docparam{cursor}{Specifies the cursor that the window should normally display.}
 
+\begin{comment}
 \wxheading{Remarks}
 
 Under Windows, you sometimes need to call ::wxSetCursor in addition to this
 function if you want the cursor to change immediately, because under Windows,
 wxWindows only sets the global cursor when it detects mouse movement.
+\end{comment
 
 \wxheading{See also}
 
index 25e82c7cfcd09c18e187706c165b83be290f29b0..59b5efa404cb0ddb2198e10b20c989f14d1afba3 100644 (file)
@@ -131,6 +131,20 @@ Troubleshooting
   possible temporary workaround (comment out the final
   XtDestroyWidget from ~wxWindow in window.cpp).
 
+- If you use flex and bison instead of yacc and lex, you may need
+  to change the relevant part of src/motif/makefile.unx to read:
+
+  ../common/y_tab.c: ../common/parser.y
+     $(YACC) ../common/parser.y
+     mv ../common/parser.tab.c ../common/y_tab.c
+
+  (the 'mv' command needs to be changed)
+
+- Some compilers, such as Sun C++, may give a lot of warnings about
+  virtual functions being hidden. Please ignore these, it's correct C++ syntax.
+  If you find any incorrect instances, though, such as a
+  missing 'const' in an overridden function, please let us know.
+
 Other Notes
 -----------
 
index 6659a1680ee179cd73f9f88b0b9fb9c97bd3cde9..98481fb68fa1472adf3665efc4129b627546f090 100644 (file)
@@ -137,6 +137,13 @@ optimized. For example, in wxWindows project, set to 'Minimum
 Size'. In Dialog Editor project, set to 'Customize: Favor Small
 Code' (and no others). This will then work.
 
+Note (4): some crash problems can be due to inconsistent compiler
+options. If strange/weird/impossible things start to happen please
+check (dumping IDE project file as makefile and doing text comparison
+if necessary) that the project settings, especially the list of defined
+symbols, struct packing, etc. are exactly the same for all items in
+the project. After this, delete everything (including PCH) and recompile.
+
 Visual C++ 1.5 compilation
 --------------------------
 
index 9326616bb9abceb00e8039711b3cb03ec3c7cef4..732b4917c3ded25d004c5fb9c5a25fbf40ccfe68 100644 (file)
@@ -55,7 +55,6 @@ public:
 
     virtual bool Destroy();
 
-    void SetClientSize(int width, int height);
     void GetClientSize(int *width, int *height) const;
     void GetSize(int *width, int *height) const ;
     void GetPosition(int *x, int *y) const ;
index 26376b2c613254bdd179896ff446f3c601cc9876..37cb7825437fcbc1a243932930461cbed6149cc2 100644 (file)
@@ -146,7 +146,7 @@ public:
     void SetTitle(const wxString& title);
 
     void SetClientSize(int width, int height);
-    void GetClientSize(int *width, int *height);
+    void GetClientSize(int *width, int *height) const;
     void GetSize(int *width, int *height) const;
     void GetPosition(int *x, int *y) const ;
 
index d8a9fbdd86dd37b6dad0c9a41200f7f7239e2e43..d1e2804da44a695bdc3cbbad3ac6b8512ad658c0 100644 (file)
 #define wxUSE_TOOLTIPS      0
                                   // Use tooltips
 
+#define wxUSE_DYNLIB_CLASS  0
+                                  // Use wxLibrary
+
 /*
  * Finer detail
  *
index 9169262331818a52118181bc14e5f73d3472a14f..bd6075eb15fbe90be1729aa219190da4c2b5363f 100644 (file)
@@ -67,5 +67,23 @@ public:
 #define wxHIDE_READONLY     0x0008
 #define wxFILE_MUST_EXIST   0x0010
 
+// File selector - backward compatibility
+WXDLLEXPORT wxString wxFileSelector(const char *message = wxFileSelectorPromptStr, const char *default_path = NULL,
+                     const char *default_filename = NULL, const char *default_extension = NULL,
+                     const char *wildcard = wxFileSelectorDefaultWildcardStr, int flags = 0,
+                     wxWindow *parent = NULL, int x = -1, int y = -1);
+
+// An extended version of wxFileSelector
+WXDLLEXPORT wxString wxFileSelectorEx(const char *message = wxFileSelectorPromptStr, const char *default_path = NULL,
+                     const char *default_filename = NULL, int *indexDefaultExtension = NULL,
+                     const char *wildcard = wxFileSelectorDefaultWildcardStr, int flags = 0,
+                     wxWindow *parent = NULL, int x = -1, int y = -1);
+
+// Generic file load dialog
+WXDLLEXPORT wxString wxLoadFileSelector(const char *what, const char *extension, const char *default_name = NULL, wxWindow *parent = NULL);
+
+// Generic file save dialog
+WXDLLEXPORT wxString wxSaveFileSelector(const char *what, const char *extension, const char *default_name = NULL, wxWindow *parent = NULL);
+
 #endif
     // _WX_FILEDLG_H_
index 0456d8c1a6b80de90c058c136d55e572eeb3c6e4..49c2fe8b50f874a1c97c53b5018506a9d39b5ae9 100644 (file)
 
 #define wxUSE_SERIAL        0
                                   // Use serialization
+
+#define wxUSE_TOOLTIPS      0
+                                  // Use tooltips
+
+#define wxUSE_DYNLIB_CLASS  0
+                                  // Use wxLibrary
 /*
  * Finer detail
  *
index c23d130185e27c2fe8f456df2064c6cbe6f933da..764b4c80919e854b4bd252b376eb51946009fc9f 100644 (file)
@@ -30,7 +30,10 @@ public:
 
   int CountTokens();
   bool HasMoreToken();
+  inline bool HasMoreTokens() { return HasMoreToken(); };
   wxString NextToken();
+  // A better name!
+  inline wxString GetNextToken() { return NextToken(); };
   wxString GetString() { return m_string; }
 
   void SetString(const wxString& to_tokenize,
index 04e328c621e748b01f483f05365831639ff70363..23a531614357f20cd2df2d8a95c39a93ffe8eda6 100644 (file)
@@ -25,7 +25,7 @@
 #endif
 
 #if !wxUSE_DOC_VIEW_ARCHITECTURE
-#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h!
+#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
 #endif
 
 #include "doc.h"
index 681fa2ebc00d93c8a8351f97b517b03599d7bf86..6204548013608e99c4616fec31be457552fbe874 100644 (file)
@@ -32,7 +32,7 @@
 #endif
 
 #if !wxUSE_DOC_VIEW_ARCHITECTURE
-#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h!
+#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
 #endif
 
 #include "wx/docview.h"
index e0e01bb49921931c04fd6a6b84ff186f492e7a49..61cec414218e47dee075566090c1b517452d2b50 100644 (file)
@@ -25,7 +25,7 @@
 #endif
 
 #if !wxUSE_DOC_VIEW_ARCHITECTURE
-#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h!
+#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
 #endif
 
 #include "docview.h"
index 04e328c621e748b01f483f05365831639ff70363..23a531614357f20cd2df2d8a95c39a93ffe8eda6 100644 (file)
@@ -25,7 +25,7 @@
 #endif
 
 #if !wxUSE_DOC_VIEW_ARCHITECTURE
-#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h!
+#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
 #endif
 
 #include "doc.h"
index 00a2ea7340943ed854abe6b70452fb7dc1aebda9..dad7ffd133ea721473a107ed83db55ed48bb8a4d 100644 (file)
@@ -30,7 +30,7 @@
 #endif
 
 #if !wxUSE_DOC_VIEW_ARCHITECTURE
-#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h!
+#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
 #endif
 
 #include "docview.h"
index 56afdce5df04eb5c09901f332131eef521f1f767..80adc134672d3f41f137e967d7036a703884553f 100644 (file)
@@ -25,7 +25,7 @@
 #endif
 
 #if !wxUSE_DOC_VIEW_ARCHITECTURE
-#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h!
+#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
 #endif
 
 #include "docview.h"
index ab66c79b015c582c5bcd5f9b0f42ed9c257f6c68..23209958d2c2d893b3275a89960b2c2181a902ba 100644 (file)
@@ -21,7 +21,7 @@
 #endif
 
 #if !wxUSE_CONSTRAINTS
-#error You must set wxUSE_CONSTRAINTS to 1 in wx_setup.h!
+#error You must set wxUSE_CONSTRAINTS to 1 in setup.h!
 #endif
 
 #include <ctype.h>
index 4ace50d72ae4706a7b349697a7808c8521756a00..2deb53b0fd0ce0447d3455b669b03b15e3dca8d0 100644 (file)
@@ -25,7 +25,7 @@
 #endif
 
 #if !wxUSE_PRINTING_ARCHITECTURE
-#error You must set wxUSE_PRINTING_ARCHITECTURE to 1 in wx_setup.h to compile this demo.
+#error You must set wxUSE_PRINTING_ARCHITECTURE to 1 in setup.h to compile this demo.
 #endif
 
 // Set this to 1 if you want to test PostScript printing under MSW.
index f96bb1701b8c1fa32cde06ec55ffe081a5eded92..4046f5bd11f7af7042640b7989be52880edd1133 100644 (file)
@@ -51,7 +51,7 @@ bool wxPanel::Create(wxWindow *parent, wxWindowID id,
                      long style,
                      const wxString& name)
 {
-    m_lastFocus = NULL;
+    m_lastFocus = 0;
 
     bool ret = wxWindow::Create(parent, id, pos, size, style, name);
 
index 7dc7f7363f8dfe2b20b54686f30f40f245ca6c37..41d930d7f16c8b5842d5373201c8a6f7b3435180 100644 (file)
@@ -342,6 +342,11 @@ void wxDialog::DoSetSize(int x, int y, int width, int height, int sizeFlags)
     XtVaSetValues((Widget) m_mainWidget, XmNresizePolicy, XmRESIZE_NONE, NULL);
 }
 
+void wxDialog::DoSetClientSize(int width, int height)
+{
+    wxWindow::SetSize(-1, -1, width, height);
+}
+
 void wxDialog::SetTitle(const wxString& title)
 {
     m_dialogTitle = title;
index 99569a53c2d594cd258ca3931b3050eea10f1e48..94820453fb528f4fa9d1dd46a50df3a8434c735e 100644 (file)
@@ -556,6 +556,9 @@ wxXSetBusyCursor (wxWindow * win, wxCursor * cursor)
     Display *display = (Display*) win->GetXDisplay();
     
     Window xwin = (Window) win->GetXWindow();
+    if (!xwin)
+       return;
+
     XSetWindowAttributes attrs;
     
     if (cursor)
index 5af495324243d41d8ba7b0778fcba7e790af0e74..e3e0d614beedca19bbe8deadba7f269006acdac7 100644 (file)
@@ -747,7 +747,7 @@ void wxWindow::GetClientSize(int *x, int *y) const
     *x = xx; *y = yy;
 }
 
-void wxWindow::SetSize(int x, int y, int width, int height, int sizeFlags)
+void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
 {
     // A bit of optimization to help sort out the flickers.
     int oldX, oldY, oldW, oldH;
@@ -819,7 +819,7 @@ void wxWindow::SetSize(int x, int y, int width, int height, int sizeFlags)
     */
 }
 
-void wxWindow::SetClientSize(int width, int height)
+void wxWindow::DoSetClientSize(int width, int height)
 {
     if (m_drawingArea)
     {
@@ -2307,12 +2307,18 @@ void wxDeleteWindowFromTable(Widget w)
 // Get the underlying X window and display
 WXWindow wxWindow::GetXWindow() const
 {
-    return (WXWindow) XtWindow((Widget) GetMainWidget());
+    if (GetMainWidget())
+        return (WXWindow) XtWindow((Widget) GetMainWidget());
+    else
+        return (WXWindow) 0;
 }
 
 WXDisplay *wxWindow::GetXDisplay() const
 {
-    return (WXDisplay*) XtDisplay((Widget) GetMainWidget());
+    if (GetMainWidget())
+        return (WXDisplay*) XtDisplay((Widget) GetMainWidget());
+    else
+        return (WXDisplay*) NULL;
 }
 
 WXWidget wxWindow::GetMainWidget() const
index 36182617e0f2a96337e4b03a143372372bf3ea11..8832598af41c29001acd781e577cf51a17f859e7 100644 (file)
@@ -59,7 +59,7 @@ wxString wxFileSelector(const char *title,
         return wxEmptyString;
 }
 
-char *wxFileSelectorEx(const char *title,
+wxString wxFileSelectorEx(const char *title,
                        const char *defaultDir,
                        const char *defaultFileName,
                        int* defaultFilterIndex,
index a834d05b4a83ce10175df7a58b33c6dbc6580a88..9e789a14a0dbbfd1f99679452eb716c17df229b5 100644 (file)
@@ -51,7 +51,7 @@ LIB_CPP_SRC=\
  ../common/framecmn.cpp \
  ../common/stream.cpp \
  ../common/datstrm.cpp \
- ../common/fstream.cpp \
+ ../common/wfstream.cpp \
  ../common/mstream.cpp \
  ../common/zstream.cpp \
  ../common/objstrm.cpp \
index e12b45e63ba08f60aa98e2a3885774a09091da7d..34ad1a4f14ad02ddcb343efea7d17dbca7ea45db 100644 (file)
@@ -17,6 +17,8 @@
 #include "wx/thread.h"
 #include "wx/utils.h"
 
+#if wxUSE_THREADS
+
 enum thread_state {
   STATE_IDLE = 0,
   STATE_RUNNING,
@@ -259,3 +261,5 @@ public:
 
 IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule)
 
+#endif
+  // wxUSE_THREADS