utils/glcanvas/win/*.cpp
utils/glcanvas/win/*.h
utils/glcanvas/win/make*.*
-utils/glcanvas/src/*.cpp
-utils/glcanvas/src/*.h
-utils/glcanvas/src/make*.*
+utils/glcanvas/gtk/*.cpp
+utils/glcanvas/gtk/*.h
+utils/glcanvas/gtk/make*.*
utils/glcanvas/motif/*.cpp
utils/glcanvas/motif/*.h
utils/glcanvas/motif/make*.*
docs/gtk/*.html
docs/gtk/*.txt
+docs/gtk/makewxgtk
include/wx/gtk/*.h
include/install-sh
include/install-sh
docs/motif/*.txt
-docs/motif/makewx
+docs/motif/makewxmotif
lib/dummy
-wxWindows 2.0 Change Log
-------------------------
+wxWindows 2 Change Log
+----------------------
-Beta 3, January 1999
---------------------
+Beta 3, January 31st 1999
+-------------------------
wxGTK:
+- wxClipboard/DnD API changes (still in progress).
+- wxToolTip class added.
+- Miscellaneous fixes.
+
wxMSW:
- wxRegConfig DeleteAll bug fixed.
- TWIN32 support added.
- Renamed VC++ makefiles from .nt to .vc, and
factored out program/library settings.
+- Fixed wxIniConfig bug.
wxMotif:
--- /dev/null
+# makewxgtk
+# Sets permissions (in case we extracted wxGTK from zip files)
+# and makes wxGTK.
+# Call from top-level wxWindows directory.
+# Note that this uses standard (but commonly-used) configure options;
+# if you're feeling brave, you may wish to compile with threads.
+# -- Julian Smart
+chmod a+x configure config.sub config.guess setup/general/* setup/shared/*
+./configure --with-shared --with-gtk --with-debug_flag --with-debug_info --without-threads -without-odbc
+make makefiles
+make
you can follow the following steps to use the simpler (but
less automatic) makefile system. If using configure, the
following script should make the library and samples, when
- run from the top-level wxWindows directory (see also 'makewx'
- in this directory):
-
- # Make wxMotif using the configure system
- chmod a+x configure config.sub setup/general/* config.guess setup/shared/*
- ./configure --with-shared --with-motif --with-debug_flag \
- --with-debug_info --without-threads
+ run from the top-level wxWindows directory (see also 'makewxmotif'
+ in this directory). Make this script executable with the command
+ chmod a+x makewxmotif.
+
+ -------:x-----Cut here-----:x-----
+ # makewxmotif
+ # Sets permissions (in case we extracted wxMotif from zip files)
+ # and makes wxMotif.
+ # Call from top-level wxWindows directory.
+ # Note that this uses standard (but commonly-used) configure options;
+ # if you're feeling brave, you may wish to compile with threads.
+ # -- Julian Smart
+ chmod a+x configure config.sub config.guess setup/general/* setup/shared/*
+ ./configure --with-shared --with-motif --without-gtk --with-debug_flag --with-debug_info --without-threads
+ make makefiles
make
+ -------:x-----Cut here-----:x-----
+
+ This script will build wxMotif using shared libraries.
+
+- Change directory to a sample e.g. samples/minimal, and type make.
+ The binary will end up under the Linux (or other appropriate) subdirectory.
+
+- To build an application outside the wxWindows hierarchy, you can
+ use `wx-config --cflags` when compiling source files and `wx-config --libs`
+ when linking, where wx-config is in the wxWindows root directory.
+ These invocations return the appropriate flags for the compiler.
+
+- When compiling certain utilities such as Dialog Editor, you may find
+ that the makefile refers to wx-config as above. Unless you have used
+ "make install" to install wxWindows, wx-config won't be found, so
+ either edit the makefile to hard-wire the flags, or place wx-config
+ where it will be found by the makefile.
COMPILING USING MAKEFILES
export WXWIN=/home/jacs/wx2
- Later, there will be a better makefile system
- and/or alternate make.env files as per wxWindows 1.68.
Please feel free to contribute settings files for your environment.
- Change directory to src/motif and type:
make -f makefile.unx motif
This should make the library libwx_motif.a in the lib
- directory.
+ directory. Note that this makefile system does not build shared
+ libraries, only static ones (that is, the wxWindows library will be
+ linked statically; to see remaining dependencies on shared libraries,
+ type e.g. ldd minimal_motif).
- Make a sample, such as the minimal sample:
------
- Better installation and makefile systems are
- required. Although the wxGTK config system can be used to make
- wxMotif and samples, it can't easily be made to work
- with applications outside the wxWindows hierarchy. Hence the
- simple makefile system.
+ required. A revised configure system is in preparation.
- Debugging mode is switched on by default. To compile in non-debug
- mode, remove the -D__WXDEBUG__ switch in make.env.
+ mode, remove the -D__WXDEBUG__ switch in make.env (or if using the
+ configure system, change --with-debug_flag to --without_debug_flag
+ and --with-debug_info to --without-debug_info in the makewxmotif
+ script).
- Some classes can be switched off in include/wx/motif/setup.h,
if you are having trouble with a particular file. However,
wxwin-users@wx.dent.med.uni-muenchen.de
-Julian Smart, December 1998.
+Julian Smart, January 1999.
julian.smart@ukonline.co.uk
+++ /dev/null
-# Make wxMotif using the configure system
-chmod a+x configure config.sub setup/general/* config.guess setup/shared/*
-./configure --with-shared --with-motif --with-debug_flag --with-debug_info --without-threads
-make
-
--- /dev/null
+# makewxmotif
+# Sets permissions (in case we extracted wxMotif from zip files)
+# and makes wxMotif.
+# Call from top-level wxWindows directory.
+# Note that this uses standard (but commonly-used) configure options;
+# if you're feeling brave, you may wish to compile with threads.
+# -- Julian Smart
+chmod a+x configure config.sub config.guess setup/general/* setup/shared/*
+./configure --with-shared --with-motif --without-gtk --with-debug_flag --with-debug_info --without-threads
+make makefiles
+make
files into a suitable directory such as c:\wx. Alter your
WXWIN environment variable to point to this directory.
+Other add-on packages are available from the wxWindows Web site, such as:
+
+- glcanvas.zip. Use OpenGL in a wxWindows window.
+- ogl3.zip. Object Graphics Library: build network diagrams, CASE tools etc.
+- tex2rtf3.zip. Tex2RTF: create Windows Help, HTML, and Word RTF files from
+ the same document source.
+
Compilation
-----------
At present, wxWindows compiles with VC++ 4.0/5.0/6.0,
-BC++ 4.5/5.0, Gnu-Win32 b19/b20, and Mingw32. It may compile
+BC++ 4.5/5.0, Cygwin b19/b20, and Mingw32. It may compile
with 16-bit compilers (BC++ and VC++ 1.5) but this hasn't
been tested lately.
at 40MB :-) However, wxWindows at least makes a good test suite for
improving the compiler.
-Gnu-Win32 b19/b20/Mingw32 compilation
--------------------------------------
+Cygwin b19/b20/Mingw32 compilation
+----------------------------------
-wxWindows 2.0 supports Gnu-Win32/Cygwin b19, b20, Mingw32, and Mingw32/EGCS.
+wxWindows 2.0 supports Cygwin (formerly GnuWin32) b19, b20, Mingw32, and Mingw32/EGCS.
Thanks are due to Keith Garry Boyce (garp@opustel.com) and Cygnus for making
it all possible.
-From wxWindows 2.0 beta 9, both Gnu-Win32 and Mingw32 (the minimal
-distribution of Gnu-Win32) can be used with the same makefiles.
+From wxWindows 2.0 beta 9, both Cygwin and Mingw32 (the minimal
+distribution of Cygwin) can be used with the same makefiles.
Here are the steps required:
-- Retrieve and install the latest beta of Gnu-Win32, or Mingw32, as per the
+- Retrieve and install the latest beta of Cygwin, or Mingw32, as per the
instructions with either of these packages.
- If using Mingw32 (including the EGCS variant), you need some
extra files to use the wxWindows makefiles. You can find these
files in ports/mingw32 on the ftp site or CD-ROM, as extra.zip.
These should be extracted to the Mingw32 directory.
+ If you have already have downloaded bison, flex, make, rm, mv
+ from elsewhere, you won't need this.
+
IMPORTANT: also see mingw32.txt in this directory (docs/msw)
about a fix that has to be applied to a Mingw32 header file.
to set up appropriate variables, if necessary mounting drives.
Run it before compiling.
-- For Gnu-Win32, make sure there's a \tmp directory on your
+- For Cygwin, make sure there's a \tmp directory on your
Windows drive or bison will crash.
- Edit wx/src/makeg95.env and search for MINGW32. Take note of
- the comments for adjusting settings to suit Gnu-Win32 or
+ the comments for adjusting settings to suit Cygwin or
Mingw32. Basically, this is just a case of adding the __MINGW32__ symbol
- to OPTIONS for Mingw32, or removing it for Cygnus Gnu-Win32.
+ to OPTIONS for Mingw32, or removing it for Cygnus Cygwin.
For Mingw32/EGCS, add both __MINGW32__ and __EGCS__.
+ You may need to remove -loldnames from WINLIBS for Mingw32, or add it for
+ Cygwin.
- Mingw32 may not support winsock.h, so comment out
socket-related files in src/msw/makefile.g95.
- Use the 'strip' command to reduce executable size.
-- With Cygnus Gnu-Win32, you can invoke gdb --nw myfile.exe to
+- With Cygnus Cygwin, you can invoke gdb --nw myfile.exe to
debug an executable. If there are memory leaks, they will be
flagged when the program quits.
- libwx.a is 48 MB or more - but much less if compiled with no
debug info (-g0) and level 4 optimization (-O4).
- install.exe doesn't have built-in decompression because lzexpand.lib
- isn't available with Gnu-Win32. However, you can use it with external
+ isn't available with Cygwin. However, you can use it with external
decompression utilities.
- Doesn't compile src/msw/ole files, so no drag and drop.
Use makefile.twn in much the same way as makefile.g95, as
described above. Not all sample makefiles are supplied yet.
-Notes
------
+For some reason, I found I had to copy TWIN32's Windows resource
+compiler (rc) to the current working directory for it to be found.
+
+General Notes
+-------------
- Debugging: under Windows 95, debugging output isn't output in
the same way that it is under NT or Windows 3.1. Set
-wxWindows 2.0
--------------
+wxWindows 2 beta 3
+------------------
-Welcome to wxWindows 2.0, a sophisticated cross-platform C++
+Welcome to wxWindows 2, a sophisticated cross-platform C++
framework for writing advanced GUI applications using (where
possible) the native controls.
Platforms supported
-------------------
-wxWindows 2.0 currently supports the following platforms:
+wxWindows 2 currently supports the following platforms:
- Windows 3.1, Windows 95/98, Windows NT
-- Unix with Motif/Lesstif
-- Unix with GTK+
+- Most Unix variants with Motif/Lesstif
+- Most Unix variants with GTK+
+
+Most popular C++ compilers are supported; see the release notes
+(available via docs/html/index.htm) for details.
Files
-----
Installation
------------
-wxWindows 2.0 needs to be compiled before you can test out
+wxWindows 2 needs to be compiled before you can test out
the samples or write your own applications.
For installation information, please see the install.txt file
in the individual directories:
Documentation
-------------
-See docs/changes.txt for a history of changes to wxWindows 2.0.
+See docs/changes.txt for a history of changes to wxWindows 2.
See docs/html/index.htm for an HTML index of the major documents.
The Windows help files are located in docs/winhelp.
The wxWindows Web site is located at:
- http://wxwin.home.ml.org
+ http://www.wxwindows.org
The wxGTK Web site (with further wxGTK-specific fiels and
information) is located at:
front-end and hundreds of MB of compilers, utilities and other
material may be ordered from the CD-ROM page:
- http://wxwin.home.ml.org/cdrom
+ http://www.wxwindows.org/cdrom.htm
or contact Julian Smart <julian.smart@ukonline.co.uk>.
#ifndef _WX_WX_SERBASEH_H__
#define _WX_WX_SERBASEH_H__
+#include <wx/setup.h>
#include <wx/dynlib.h>
#define WXSERIAL(classname) classname##_Serialize
+#if wxUSE_SERIAL
class wxObject_Serialize : public wxObject {
DECLARE_DYNAMIC_CLASS(wxObject_Serialize)
public:
protected:
wxObject *m_object;
};
+#endif
+ // wxUSE_SERIAL
#define DECLARE_SERIAL_CLASS(classname, parent) \
#define IMPLEMENT_ALIAS_SERIAL_CLASS(classname, parent) \
IMPLEMENT_DYNAMIC_CLASS(classname##_Serialize, parent##_Serialize)
+#if wxUSE_SERIAL
DECLARE_SERIAL_CLASS(wxList, wxObject)
DECLARE_SERIAL_CLASS(wxHashTable, wxObject)
+#endif
+ // wxUSE_SERIAL
#endif
enum caseCompare {exact, ignoreCase};
// values for first parameter of Strip function
enum stripType {leading = 0x1, trailing = 0x2, both = 0x3};
+
// use Printf()
- inline int sprintf(const char *pszFormat, ...)
- {
- va_list argptr;
- va_start(argptr, pszFormat);
- int iLen = PrintfV(pszFormat, argptr);
- va_end(argptr);
- return iLen;
- }
+ int sprintf(const char *pszFormat, ...);
// use Cmp()
inline int CompareTo(const char* psz, caseCompare cmp = exact) const
--- /dev/null
+#
+# File: makefile.unx
+# Author: Julian Smart
+# Created: 1993
+# Updated:
+# Copyright: (c) 1993, AIAI, University of Edinburgh
+#
+# "%W% %G%"
+#
+# Makefile for dialogs example (UNIX).
+
+WXDIR = ../..
+
+# All common UNIX compiler flags and options are now in
+# this central makefile.
+include $(WXDIR)/src/maketwin.env
+
+OBJECTS = $(OBJDIR)/dialogs.$(OBJSUFF) $(OBJDIR)/dialogs_resources.$(OBJSUFF)
+
+all: $(OBJDIR) dialogs$(GUISUFFIX)$(EXESUFF)
+
+wx:
+
+$(OBJDIR):
+ mkdir $(OBJDIR)
+
+dialogs$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB)
+ $(CC) $(LDFLAGS) -o dialogs$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS)
+
+$(OBJDIR)/dialogs.$(OBJSUFF): dialogs.$(SRCSUFF)
+ $(CC) -c $(CPPFLAGS) -o $@ dialogs.$(SRCSUFF)
+
+dialogs_resources.c: dialogs.rc
+ $(RESCOMP) $(RCINPUTSWITCH) dialogs.rc $(RCOUTPUTSWITCH) dialogs_resources.c $(RESFLAGS)
+
+$(OBJDIR)/dialogs_resources.$(OBJSUFF): dialogs_resources.c
+ $(CC) -c $(CPPFLAGS) -o $@ dialogs_resources.c
+
+#$(OBJDIR)/dialogs_resources.o: dialogs.rc
+# $(RESCOMP) $(RCINPUTSWITCH) dialogs.rc $(RCOUTPUTSWITCH) $(OBJDIR)/dialogs_resources.o $(RESFLAGS)
+
+clean:
+ rm -f $(OBJECTS) dialogs$(GUISUFFIX).exe core *.rsc *.res
// convert to lower case, return the copy of the string
wxString wxString::Lower() const { wxString s(*this); return s.MakeLower(); }
+int wxString::sprintf(const char *pszFormat, ...)
+ {
+ va_list argptr;
+ va_start(argptr, pszFormat);
+ int iLen = PrintfV(pszFormat, argptr);
+ va_end(argptr);
+ return iLen;
+ }
+
// ---------------------------------------------------------------------------
// standard C++ library string functions
// ---------------------------------------------------------------------------
struct tm *tp;
time(&t0);
tp = localtime(&t0);
- *timeZone = timezone; // tp->tm_gmtoff; // ???
+ *timeZone = _timezone; // tp->tm_gmtoff; // ???
*dstObserved = tp->tm_isdst;
#elif defined(__MINGW32__)
time_t t0;
MAKE=make
# LEX
-LEX=flex -t -L
+LEX=flex # -t -L
# YACC. yacc or bison
# YACC=yacc
########################## Compiler flags #############################
# Miscellaneous compiler options
-OPTIONS= # -D__MINGW32__ # -D__EGCS__
+OPTIONS= -D__EGCS__ # -D__MINGW32__
# Debugging information
# AIX: comment out.
WINLIBS=-lstdc++ -lgcc \
- -lwinspool -lwinmm -lshell32 -loldnames \
- -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32
+ -lwinspool -lwinmm -lshell32 \
+ -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 # -loldnames
# Shouldn't need to change these...
WXSRC=$(WXDIR)/src/msw
REM
-REM replace g:\egcs-mingw32 with whatever your installation root may be.
+REM replace k:\mingw32 with whatever your installation root may be.
REM
-path C:\WINDOWS;C:\WINDOWS\COMMAND;g:\egcs-mingw32\bin;c:\bin
+path C:\WINDOWS;C:\WINDOWS\COMMAND;k:\mingw32\bin;c:\bin
-SET GCC_EXEC_PREFIX=g:\egcs-mingw32\lib\gcc-lib\
-set BISON_SIMPLE=g:\egcs-mingw32\share\bison.simple
-set BISON_HAIRY=g:\egcs-mingw32\share\bison.hairy
+SET GCC_EXEC_PREFIX=k:\mingw32\lib\gcc-lib\
+set BISON_SIMPLE=k:\mingw32\share\bison.simple
+set BISON_HAIRY=k:\mingw32\share\bison.hairy
+set C_INCLUDE_PATH=k:\MINGW32\include
+set CPLUS_INCLUDE_PATH=k:\MINGW32\include\g++;g:\MINGW32\include
+set LIBRARY_PATH=k:\MINGW32\lib
+set GCC_EXEC_PREFIX=k:\MINGW32\lib\gcc-lib\
rem 4DOS users only...
unalias make
motif/msgdlg.cpp \
motif/palette.cpp \
motif/pen.cpp \
- motif/print.cpp \
motif/radiobox.cpp \
motif/radiobut.cpp \
motif/region.cpp \
}
#endif
+wxPrivateDropTarget::wxPrivateDropTarget()
+{
+ m_id = wxTheApp->GetAppName();
+}
+
+size_t wxPrivateDropTarget::GetFormatCount() const
+{
+ return 1;
+}
+
+wxDataFormat wxPrivateDropTarget::GetFormat(size_t n) const
+{
+ return wxDF_INVALID;
+}
#endif
// wxUSE_DRAG_AND_DROP
extern int wxCharCodeWXToMSW(int id, bool *isVirtual);
// Create from an array
+#if !defined(__WIN16__) && !defined(__TWIN32__)
wxAcceleratorTable::wxAcceleratorTable(int n, const wxAcceleratorEntry entries[])
{
// Not available in WIN16
-#if !defined(__WIN16__) && !defined(__TWIN32__)
m_refData = new wxAcceleratorRefData;
ACCEL* arr = new ACCEL[n];
delete[] arr;
M_ACCELDATA->m_ok = (M_ACCELDATA->m_hAccel != 0);
-#endif
}
+#else
+wxAcceleratorTable::wxAcceleratorTable(int WXUNUSED(n), const wxAcceleratorEntry WXUNUSED(entries)[])
+{
+}
+#endif
bool wxAcceleratorTable::Ok(void) const
{
# problems with lex_yy.c. See also note about LEX_SCANNER
# above.
$(COMMDIR)/lex_yy.c: $(COMMDIR)/lexer.l
- $(LEX) $(COMMDIR)/lexer.l > $(COMMDIR)/lex_yy.c
+ $(LEX) -L -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l
-# The following may be required for some versions of LEX/FLEX
-# $(LEX) -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l
+# Try one of these if the above line doesn't work.
+# Alternative syntax (1)
+# $(LEX) -t -L $(COMMDIR)/lexer.l > $(COMMDIR)/lex_yy.c
+# Alternative syntax (2)
+# $(LEX) -L -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l
# sed -e "s/BUFSIZ/5000/g" < lex.yy.c | \
# sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \