From 12a44087e448071f9f108208a0a88e908d543d44 Mon Sep 17 00:00:00 2001 From: Robert Roebling 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; }