From 12a44087e448071f9f108208a0a88e908d543d44 Mon Sep 17 00:00:00 2001
From: Robert Roebling <robert@roebling.de>
Date: Sat, 9 Jan 1999 15:53:52 +0000
Subject: [PATCH]   ODBC updates   Documentation updates

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/latex/wx/body.tex        | 21 ++++++++++
 docs/latex/wx/brush.tex       |  6 +--
 docs/latex/wx/checklst.tex    |  4 +-
 docs/latex/wx/function.tex    |  1 +
 docs/latex/wx/image.tex       | 73 +++++++++++++++++++++--------------
 docs/latex/wx/minifram.tex    |  2 +-
 docs/latex/wx/pen.tex         |  6 +++
 src/common/dbtable.cpp        | 18 ++++++---
 src/iodbc/itrace.h            |  6 ---
 utils/tex2rtf/src/tex2rtf.cpp |  2 +
 10 files changed, 92 insertions(+), 47 deletions(-)

diff --git a/docs/latex/wx/body.tex b/docs/latex/wx/body.tex
index 8b8c35c2de..896f616ee3 100644
--- a/docs/latex/wx/body.tex
+++ b/docs/latex/wx/body.tex
@@ -403,6 +403,27 @@ The following documents some miscellaneous C++ issues.
 
 wxWindows does not use templates since it is a notoriously unportable feature.
 
+\subsection{RTTI}
+
+wxWindows does not use run-time type information since wxWindows provides
+its own run-time type information system, implemented using macros.
+
+\subsection{Type of NULL}
+
+Some compilers (e.g. the native IRIX cc) define NULL to be 0L so that
+no conversion to pointers is allowed. Because of that, all these
+occurences of NULL in the GTK port use an explicit conversion such 
+as
+
+{\small
+\begin{verbatim}
+  wxWindow *my_window = (wxWindow*) NULL;
+\end{verbatim}
+}
+
+It is recommended to adhere to this in all code using wxWindows as
+this make the code (a bit) more portable.
+
 \subsection{Precompiled headers}
 
 Some compilers, such as Borland C++ and Microsoft C++, support
diff --git a/docs/latex/wx/brush.tex b/docs/latex/wx/brush.tex
index 5e75dc8cfd..09158ae2d9 100644
--- a/docs/latex/wx/brush.tex
+++ b/docs/latex/wx/brush.tex
@@ -28,9 +28,9 @@ list of brushes {\bf wxTheBrushList}, and calling the member function
 
 wxBrush uses a reference counting system, so assignments between brushes are very
 cheap. You can therefore use actual wxBrush objects instead of pointers without
-efficiency problems. Bear in mind, though, that changing a brush's properties may
-affect another brush which has been involved in an assignment with the first brush,
-because of the way internal brush data is shared.
+efficiency problems. Once one wxBrush object changes its data it will create its
+own brush data internally so that other brushes, which previously shared the
+data using the reference counting, are not affected.
 
 TODO: an overview for wxBrush.
 
diff --git a/docs/latex/wx/checklst.tex b/docs/latex/wx/checklst.tex
index 8a328a4ff4..9785a48601 100644
--- a/docs/latex/wx/checklst.tex
+++ b/docs/latex/wx/checklst.tex
@@ -2,8 +2,8 @@
 
 A checklistbox is like a listbox, but allows items to be checked or unchecked.
 
-This class is currently only implemented under Windows, and wxWindows must be
-compiled with USE\_OWNER\_DRAWN set to 1.
+This class is currently implemented under Windows and GTK. When using this
+class under Windows wxWindows must be compiled with USE\_OWNER\_DRAWN set to 1.
 
 Only the new functions for this class are documented; see also \helpref{wxListBox}{wxlistbox}.
 
diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex
index 4ccd704ae8..2b39374d3a 100644
--- a/docs/latex/wx/function.tex
+++ b/docs/latex/wx/function.tex
@@ -928,6 +928,7 @@ Gets operating system version information.
 \begin{twocollist}\itemsep=0pt
 \twocolitemruled{Platform}{Return tyes}
 \twocolitem{Macintosh}{Return value is wxMACINTOSH.}
+\twocolitem{GTK}{Return value is wxGTK, {\it major} is 1, {\it minor} is 0. (for GTK 1.0.X) }
 \twocolitem{Motif}{Return value is wxMOTIF\_X, {\it major} is X version, {\it minor} is X revision.}
 \twocolitem{OS/2}{Return value is wxOS2\_PM.}
 \twocolitem{Windows 3.1}{Return value is wxWINDOWS, {\it major} is 3, {\it minor} is 1.}
diff --git a/docs/latex/wx/image.tex b/docs/latex/wx/image.tex
index 91e691bafa..281fd8a7e1 100644
--- a/docs/latex/wx/image.tex
+++ b/docs/latex/wx/image.tex
@@ -7,7 +7,10 @@ via image format handlers. Functions are available to set and get image bits, so
 it can be used for basic image manipulation.
 
 A wxImage cannot (currently) be drawn directly to a wxDC. Instead, a platform-specific
-wxBitmap object must be created from it, and that bitmap drawn on the wxDC.
+wxBitmap object must be created from it, and that bitmap drawn on the wxDC, using
+wxDC::DrawBitmap.
+
+This class is currently only available under GTK and Windows.
 
 \wxheading{Derived from}
 
@@ -31,13 +34,15 @@ Copy constructor.
 
 \func{}{wxImage}{\param{const wxBitmap\&}{ bitmap}}
 
-Constructs an image from a platform-dependent bitmap.
+Constructs an image from a platform-dependent bitmap. This preserves
+mask information so that bitmaps and images can be converted back
+and forth without loss in that respect.
 
 \func{}{wxImage}{\param{int}{ width}, \param{int}{ height}}
 
 Creates an image with the given width and height.
 
-\func{}{wxImage}{\param{const wxString\& }{name}, \param{long}{ type = wxBITMAP\_TYPE\_PNG}}
+\func{}{wxImage}{\param{const wxString\& }{name}, \param{long}{ type = wxIMAGE\_TYPE\_PNG}}
 
 Loads an image from a file.
 
@@ -53,16 +58,14 @@ Loads an image from a file.
 
 \twocolwidtha{5cm}
 \begin{twocollist}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_BMP}}}{Load a Windows bitmap file.}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_GIF}}}{Load a GIF bitmap file.}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_XBM}}}{Load an X bitmap file.}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_XPM}}}{Load an XPM bitmap file.}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_PNG}}}{Load a PNG bitmap file.}
+\twocolitem{{\bf \indexit{wxIMAGE\_TYPE\_BMP}}}{Load a Windows bitmap file.}
+\twocolitem{{\bf \indexit{wxIMAGE\_TYPE\_PNG}}}{Load a PNG bitmap file.}
 \end{twocollist}
 
 The validity of these flags depends on the platform and wxWindows configuration.
-If all possible wxWindows settings are used, the Windows platform supports BMP, BMP\_RESOURCE,
-XPM\_DATA, and XPM. Under X, the available formats are BMP, GIF, XBM, and XPM.}
+If all possible wxWindows settings are used, the loading a BMP (Windows bitmap) file
+and a PNG (portable network graphics) file is supported on all platforms that
+implement wxImage.}
 
 \wxheading{See also}
 
@@ -99,7 +102,13 @@ This function is called by wxWindows on exit.
 
 \constfunc{wxBitmap}{ConvertToBitmap}{\void}
 
-Converts the image to a platform-specific bitmap object.
+Converts the image to a platform-specific bitmap object. This has to be done
+to actually display an image as you cannot draw an image directly on a window.
+The resulting bitmap will use the colour depth of the current system which entails
+that a (crude) colour reduction has to take place. Especially when converting
+to 8-bit (or even less) bitmaps, the routine is slow and will reduce the
+quality of the resulting bitmap. A proper set of colour reduction methods has
+not yet been written.
 
 \membersection{wxImage::Create}\label{wximagecreate}
 
@@ -141,7 +150,7 @@ Finds the handler associated with the given image type.
 
 \docparam{extension}{The file extension, such as ``bmp".}
 
-\docparam{imageType}{The image type, such as wxBITMAP\_TYPE\_BMP.}
+\docparam{imageType}{The image type, such as wxIMAGE\_TYPE\_BMP.}
 
 \wxheading{Return value}
 
@@ -161,7 +170,9 @@ Returns the blue intensity at the given coordinate.
 
 \constfunc{unsigned char*}{GetData}{\void}
 
-Returns the image data as an array.
+Returns the image data as an array. This is most often used when doing
+direct image manipulation. The return value points to an array of
+chararcters in RGBGBRGB... format.
 
 \membersection{wxImage::GetGreen}\label{wximagegetgreen}
 
@@ -230,7 +241,8 @@ Returns TRUE if there is a mask active, FALSE otherwise.
 \func{static void}{InitStandardHandlers}{\void}
 
 Adds the standard image format handlers, which, depending on wxWindows
-configuration, can be handlers for Windows image, Windows image resource, and XPM.
+configuration, can be handlers for Windows BMP (loading) and PNG
+(loading and saving) file formats.
 
 This function is called by wxWindows on startup.
 
@@ -266,11 +278,8 @@ The meaning of {\it name} is determined by the {\it type} parameter.}
 
 \twocolwidtha{5cm}
 \begin{twocollist}
-\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows image file.}
-\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF image file.}
-\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Load an X image file.}
-\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Load an XPM image file.}
-\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Load a PNG image file.}
+\twocolitem{{\bf wxIMAGE\_TYPE\_BMP}}{Load a Windows image file.}
+\twocolitem{{\bf wxIMAGE\_TYPE\_PNG}}{Load a PNG image file.}
 \end{twocollist}
 
 The validity of these flags depends on the platform and wxWindows configuration.}
@@ -316,18 +325,15 @@ Saves a image in the named file.
 
 \docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.}
 
-\docparam{type}{One of the following values:
+\docparam{type}{Currently only one type can be used:
 
 \twocolwidtha{5cm}
 \begin{twocollist}
-\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Save a Windows image file.}
-\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Save a GIF image file.}
-\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Save an X image file.}
-\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Save an XPM image file.}
-\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Save a PNG image file.}
+\twocolitem{{\bf wxIMAGE\_TYPE\_PNG}}{Save a PNG image file.}
 \end{twocollist}
 
-The validity of these flags depends on the platform and wxWindows configuration.}
+The validity of these flags depends on the platform and wxWindows configuration
+as well as user-added handlers.}
 
 \wxheading{Return value}
 
@@ -345,13 +351,19 @@ Depending on how wxWindows has been configured, not all formats may be available
 
 \func{wxImage}{Scale}{\param{int}{ width}, \param{int}{ height}}
 
-Returns a scaled version of the image.
+Returns a scaled version of the image. This is also useful for
+scaling bitmaps in general as the only other way to scale bitmaps
+is do blit a wxMemoryDC into another wxMemoryDC. Windows can such scaling
+itself, but on GTK scaling bitmaps is done using this routine 
+internally.
 
 \membersection{wxImage::SetData}\label{wximagesetdata}
 
 \func{void}{SetData}{\param{unsigned char*}{data}}
 
-Sets the image data.
+Sets the image data without performing checks. The data given must have 
+the size (width*height*3) or results will be unexpected. Don't use this
+method if you aren't sure you know what you are doing.
 
 \membersection{wxImage::SetMask}\label{wximagesetmask}
 
@@ -369,7 +381,10 @@ Sets the mask colour for this image.
 
 \func{void}{SetRGB}{\param{int }{x}, \param{int }{y}, \param{unsigned char }{red}, \param{unsigned char }{blue}, \param{unsigned char }{green}}
 
-Sets the pixel at the given coordinate.
+Sets the pixel at the given coordinate. This routine performs bounds-checks
+for the coordinate so it can be considered a safe way to manipulate the
+data, but in some cases this might be too slow so that the data will have to
+be set directly. In that case you have to get that data by calling GetData().
 
 \membersection{wxImage::operator $=$}
 
diff --git a/docs/latex/wx/minifram.tex b/docs/latex/wx/minifram.tex
index c749a749eb..db8cd206b4 100644
--- a/docs/latex/wx/minifram.tex
+++ b/docs/latex/wx/minifram.tex
@@ -36,7 +36,7 @@ See also \helpref{window styles overview}{windowstyles}.
 
 \wxheading{Remarks}
 
-This class has miniframe functionality only under Windows. On other platforms,
+This class has miniframe functionality under Windows and GTK+. On other platforms,
 it behaves like a normal frame.
 
 \wxheading{See also}
diff --git a/docs/latex/wx/pen.tex b/docs/latex/wx/pen.tex
index 2022597217..5a369a3424 100644
--- a/docs/latex/wx/pen.tex
+++ b/docs/latex/wx/pen.tex
@@ -20,6 +20,12 @@ get a pointer to a pen by using the global list of pens {\bf
 wxThePenList}, and calling the member function {\bf FindOrCreatePen}.
 See the entry for \helpref{wxPenList}{wxpenlist}.
 
+wxPen uses a reference counting system, so assignments between brushes are very
+cheap. You can therefore use actual wxPen objects instead of pointers without
+efficiency problems. Once one wxPen object changes its data it will create its
+own pen data internally so that other pens, which previously shared the
+data using the reference counting, are not affected.
+
 TODO: an overview for wxPen.
 
 \wxheading{See also}
diff --git a/src/common/dbtable.cpp b/src/common/dbtable.cpp
index 645cac8005..90f8e24054 100644
--- a/src/common/dbtable.cpp
+++ b/src/common/dbtable.cpp
@@ -661,12 +661,18 @@ bool wxTable::CreateTable(void)
 	sprintf(sqlStmt, "DROP TABLE %s", tableName);
 	if (SQLExecDirect(hstmt, (UCHAR FAR *) sqlStmt, SQL_NTS) != SQL_SUCCESS)
 	{
-		// Check for sqlState = S0002, "Table or view not found".
-		// Ignore this error, bomb out on any other error.
-		// SQL Sybase Anwhere v5.5 returns an access violation error here
-		// (sqlstate = 42000) rather than an S0002.
+		/* Check for sqlState = S0002, "Table or view not found".
+		 * Ignore this error, bomb out on any other error.
+		 * SQL Sybase Anwhere v5.5 returns an access violation error here
+		 * (sqlstate = 42000) rather than an S0002. */
+		 
+		/* PostgreSQL 6.4.0 returns "08S01" or in written form
+		   "ERROR: Relation ... Does Not Exist, Robert Roebling */
+		
 		pDb->GetNextError(henv, hdbc, hstmt);
-		if (strcmp(pDb->sqlState, "S0002") && strcmp(pDb->sqlState, "42000"))
+		if (strcmp(pDb->sqlState, "S0002") && 
+		    strcmp(pDb->sqlState, "42000") &&
+		    strcmp(pDb->sqlState, "08S01"))
 		{
 			pDb->DispNextError();
 			pDb->DispAllErrors(henv, hdbc, hstmt);
@@ -829,7 +835,7 @@ bool wxTable::CreateIndex(char * idxName, bool unique, int noIdxCols, CidxDef *p
 		else
 			strcat(sqlStmt, " DESC");
 		if ((i + 1) < noIdxCols)
-			strcat(sqlStmt, ",");
+			strcat(sqlStmt, ", ");
 	}
 	
 	// Append closing parentheses
diff --git a/src/iodbc/itrace.h b/src/iodbc/itrace.h
index 4c84a4caf1..f932dcc746 100644
--- a/src/iodbc/itrace.h
+++ b/src/iodbc/itrace.h
@@ -7,12 +7,6 @@
 #  endif
 # endif
 
-/* never trace, Robert Roebling */
-
-#ifndef NO_TRACE
-#define NO_TRACE
-#endif
-
 # define TRACE_TYPE_APP2DM      1
 # define TRACE_TYPE_DM2DRV      2
 # define TRACE_TYPE_DRV2DM      3
diff --git a/utils/tex2rtf/src/tex2rtf.cpp b/utils/tex2rtf/src/tex2rtf.cpp
index 2ad1a396f5..42ca52a529 100644
--- a/utils/tex2rtf/src/tex2rtf.cpp
+++ b/utils/tex2rtf/src/tex2rtf.cpp
@@ -404,7 +404,9 @@ int MyApp::OnExit()
 
   // TODO: this simulates zero-memory leaks!
   // Otherwise there are just too many...
+#ifndef __WXGTK__
   wxDebugContext::SetCheckpoint();
+#endif
 
   return 0;
 }
-- 
2.50.0

