Compare commits

..

1 Commits

Author SHA1 Message Date
Bryan Petty
fab7a8d0e5 This commit was manufactured by cvs2svn to create tag
'wxWINDOWS_2_1_BETA_8'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/wxWINDOWS_2_1_BETA_8@3304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-08-06 13:41:55 +00:00
1770 changed files with 33037 additions and 404006 deletions

View File

@@ -3,7 +3,6 @@ bin
.gdb_history
Test
config.cache
configarg.cache
config.status
system.list
linux.system.cache
@@ -18,12 +17,13 @@ linux-gnu.system.cache
*.ncb
*.pro
*.opt
*.d
Release
Debug
ReleaseDLL
DebugDLL
robert
Makefile.in
setup.h.in
stamp-h.in
Makefile
configure

View File

@@ -5,26 +5,15 @@
I) Windows using plain makefiles
----------------------------------------
a) If using Microsoft Visual C++ 5.0 or 6.0
Ensure that the command-line compiler and tools (including
nmake) are installed and ready to run. Depending on your
installation there may be a batch file (named something like
VCVARS32.BAT) that needs to be run to set correct environment
varaibles and PATH entries.
Continue with item c) below.
b) If using the GNU MinGW32 or GNU CygWin32 compilers
a) Using the GNU MinGW32 or GNU CygWin32 compilers
You'll need the compiler itself which is available from
http://www.cygwin.com
When using MingW32 you'll need GNU make which is a part
of the CygWin32 toolchain and is also available as a stand
alone port without the infamous Cygwin.dll from
When using MingW32 you'll need GNU make which is part of
part of the CygWin32 toolchain and is also available as
a stand alone port without the infamous Cygwin.dll from
http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32
@@ -34,17 +23,12 @@ and its make.exe).
-> Set your path so that it includes the directory
where your compiler and tools reside
c) Build instructions
-> Assumming that you installed the wxWindows sources
-> Assume that you installed the wxWindows sources
into c:\wxWin
-> Copy c:\wxWin\include\wx\msw\setup0.h
-> Copy c:\wxWin\include\wx\msw\setup0.h
to c:\wxWin\include\wx\msw\setup.h
-> Edit c:\wxWin\include\wx\msw\setup.h so that
most features are enabled (i.e. defined to 1) with
#define wxUSE_ODBC 0
#define wxUSE_SOCKETS 0
#define wxUSE_HTML 1
#define wxUSE_THREADS 1
@@ -53,61 +37,73 @@ c) Build instructions
#define wxUSE_BUSYINFO 1
#define wxUSE_DYNLIB_CLASS 1
#define wxUSE_ZIPSTREAM 1
#define wxUSE_LIBJPEG 1
#define wxUSE_LIBPNG 1
#define wxUSE_JPEGLIB 1
#define wxUSE_PNGLIB 1
and iostreams ares disabled with
#define wxUSE_STD_IOSTREAM 0
-> type: cd c:\wxWin\src\msw
-> type: make -f makefile.g95 (if using GNU tools)
or type: make -f makefile.vc (if using MS VC++)
-> type: make -f makefile.g95
II) Unix ports
--------------
Building wxGTK or wxMotif completely without configure
won't ever work, but there is now a new makefile system
that works without libtool and automake, using only
configure to create what is needed.
In order to create configure, you need to have the
GNU autoconf package (version 2.13 or 2.14) installed
on your system and type run "autoconf" in the base
directory (or run the autogen.sh script in the same
directory, which just calls autoconf).
II) GTK port on Unix using plain makefiles.
------------------------------------------
Set WXWIN environment variable to the base directory such
as ~/wxWindows (this is actually not really needed).
as ~/wxWindows
-> type: export WXWIN=~/wxWindows
-> type: md mybuild
-> type: cd mybuild
-> type: ../configure --with-motif
or type: ../configure --with-gtk
-> edit ~/wxWindows/src/gtk.env as you wish.
-> type: cd ~/wxWindows/src/gtk
-> type: cp ./setup0.h setup.h
-> type: make
-> type: su <type root password>
-> type: make install
-> type: ldconfig
-> type: exit
Call configure with --disable-shared to create a static
library. Calling "make uninstall" will remove the installed
library and "make dist" will create a distribution (not
yet complete).
III) Windows using configure
----------------------------------------
Take a look at Unix->Windows cross compiling. With minor
modifications, this should work in Windows if you've got the cygnus
utilities (bash, GNU make, etc) and either mingw32 or cygwin32 installed.
utilities (bash, GNU make, etc) and either mingw32 or cygwin32 installed.
See http://www.cygnus.com for these programs, or go straight to their
ftp server at ftp://sourceware.cygnus.com/pub/cygwin/.
ftp server at ftp://sourceware.cygnus.com/pub/cygwin/.
Of course, you can also build the library using plain makefiles (see
Of course, you can also build the library using plain makefiles (see
section I).
IV) Unix using configure
----------------------------------------
a) You have all the newest and greatest GNU tools installed on your system
and in the same directory hierachy (e.g. either all tools in /usr or all
in /usr/local), these tools are:
- GNU libtool 1.2e (1.3 doesn't work here)
- GNU autoconf 2.13 (including autoheader 2.13)
- GNU automake 1.4 (including aclocal 1.4)
and possibly but not forcibly
- GNU make 3.76.1
- GNU C++ (EGCS)
-> Go to the base directory
-> type: ./autogen.sh
b) You don't know what autos are and have no driver's licence anyway:
-> Go to the testconf directory
-> type: ./apply
a+b) Then proceed in either case with:
-> Choose a directory name that seems fit for building wxWindows, e.g. mybuild
-> Go the base directory
-> type: mkdir mybuild
-> type: cd mybuild
-> type: ../configure --with-gtk
or type: ../configure --with-motif
or type: ../configure --with-wine
-> type make
-> drink lots of coffee and go shopping
V) MacOS
----------------------------------------
@@ -119,7 +115,7 @@ VII) Unix->Windows cross-compiling using configure
First you'll need a cross-compiler; linux glibc binaries of mingw32 and
cygwin32 (both based on egcs) can be found at
ftp://ftp.objsw.com/pub/crossgcc/linux-x-win32. Otherwise you can
ftp://ftp.objsw.com/pub/crossgcc/linux-x-win32. Otherwise you can
compile one yourself. Check the relevant FAQs.
[ A Note about cygwin32 and mingw32: the main difference is that cygwin32
@@ -138,14 +134,13 @@ sure that your configure setup is basically sound.)
To cross compile the windows library, do
-> cd win32
(or whatever you called it)
Now run configure. There are two ways to do this
-> ../configure --host=i586-mingw32 --build=i586-linux --with-mingw \
--enable-dnd=no
where --build= should read whatever platform you're building on. Configure
will notice that build and host platforms differ, and automatically prepend
i586-mingw32- to gcc, ar, ld, etc (make sure they're in the PATH!).
The other way to run configure is by specifying the names of the binaries
i586-mingw32- to gcc, ar, ld, etc (make sure they're in the PATH!).
The other way to run configure is by specifying the names of the binaries
yourself:
-> CC=i586-mingw32-gcc CXX=i586-mingw32-g++ RANLIB=i586-mingw32-ranlib \
DLLTOOL=i586-mingw32-dlltool LD=i586-mingw32-ld NM=i586-mingw32-nm \
@@ -154,20 +149,15 @@ yourself:
(all assuming you're using mingw32)
Drag'n'drop is disabled because mingw32 lacks (AFAIK) OLE headers.
[ Update: some new mingw32 versions now have a new set of windows header
files, which apparently can handle ole. Untested at the moment ]
Configure will conclude that shared libraries are out of the question and
opt for a static one. I haven't looked into DLL creation yet.
Type
-> make
Type
-> make -C src
and wait, wait, wait. Don't leave the room, because the minute you do there
will be a compile error :-)
If this is successful, you end up with a libwx_msw.a in win32/lib. Now try
building the minimal sample:
If this is successful, try building the minimal sample:
-> cd samples/minimal
-> make
-> mv minimal minimal.exe
@@ -178,13 +168,13 @@ and run it with wine, for example
If all is well, do an install; from win32
-> make install
Native and cross-compiled installations can co-exist peacefully
(as long as their widget sets differ), except for wx-config. You might
Native and cross-compiled installations can co-exist peacefully
(as long as their widget sets differ), except for wx-config. You might
want to rename the cross-compiled one to i586-mingw32-wx-config, or something.
Cross-compiling TODO:
---------------------
- resource compiling must be done manually for now (should/can we link the
- resource compiling must be done manually for now (should/can we link the
default wx resources into libwx_msw.a?) [ No we can't; the linker won't
link it in... you have to supply an object file ]
- dynamic libraries

13
Makefile.am Normal file
View File

@@ -0,0 +1,13 @@
AUTOMAKE_OPTIONS = 1.3
# no-dependencies
SUBDIRS = include src samples misc # utils user docs
bin_SCRIPTS = wx-config
configincludedir = $(libdir)/wx/include/wx/$(TOOLKIT_DIR)
configinclude_DATA = \
setup.h

File diff suppressed because it is too large Load Diff

View File

@@ -1,118 +0,0 @@
*** \gcc-inc\basetyps.h Sat Jul 31 16:48:36 1999
--- basetyps.h Fri Aug 06 11:14:36 1999
***************
*** 74,91 ****
--- 74,97 ----
STDMETHOD(Clone)(IENUM_THIS_(I) I**) PURE; \
}
#define DECLARE_ENUMERATOR(T) DECLARE_ENUMERATOR_(IEnum##T,T)
+ #ifndef GUID_DEFINED
+ #define GUID_DEFINED
typedef struct _GUID
{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
+ #endif /* GUID_DEFINED */
typedef GUID *REFGUID;
typedef GUID *LPGUID;
+ #ifndef UUID_DEFINED
+ #define UUID_DEFINED
typedef GUID UUID;
+ #endif /* UUID_DEFINED */
typedef GUID IID;
typedef GUID CLSID;
typedef CLSID *LPCLSID;
typedef IID *LPIID;
*** \gcc-inc\oaidl.h Sat Jul 31 16:48:42 1999
--- oaidl.h Fri Aug 06 13:18:48 1999
***************
*** 39,44 ****
--- 39,53 ----
#define IMPLTYPEFLAG_FRESTRICTED 4
#define IMPLTYPEFLAG_FDEFAULTVTABLE 8
+ #define DISPID_UNKNOWN ( -1 )
+ #define DISPID_VALUE ( 0 )
+ #define DISPID_PROPERTYPUT ( -3 )
+ #define DISPID_NEWENUM ( -4 )
+ #define DISPID_EVALUATE ( -5 )
+ #define DISPID_CONSTRUCTOR ( -6 )
+ #define DISPID_DESTRUCTOR ( -7 )
+ #define DISPID_COLLECT ( -8 )
+
typedef interface ITypeLib *LPTYPELIB;
typedef interface ICreateTypeInfo *LPCREATETYPEINFO;
typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
***************
*** 49,54 ****
--- 58,73 ----
typedef interface IDispatch *LPDISPATCH;
typedef interface ICreateErrorInfo *LPCREATEERRORINFO;
+ extern "C" const IID IID_ITypeLib;
+ extern "C" const IID IID_ICreateTypeInfo;
+ extern "C" const IID IID_ICreateTypeInfo2;
+ extern "C" const IID IID_ICreateTypeLib;
+ extern "C" const IID IID_ICreateTypeLib2;
+ extern "C" const IID IID_ITypeInfo;
+ extern "C" const IID IID_IErrorInfo;
+ extern "C" const IID IID_IDispatch;
+ extern "C" const IID IID_ICreateErrorInfo;
+
typedef enum tagSYSKIND {
SYS_WIN16,SYS_WIN32,SYS_MAC
} SYSKIND;
***************
*** 375,382 ****
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
! STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID)
PURE;
! STDMETHOD(Invoked)(THIS_
DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
};
#ifdef __cplusplus
--- 394,401 ----
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
! STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*)
PURE;
! STDMETHOD(Invoke)(THIS_
DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
};
#ifdef __cplusplus
*** \gcc-inc\objidl.h Sat Jul 31 16:48:42 1999
--- objidl.h Fri Aug 06 11:00:19 1999
***************
*** 627,633 ****
STDMETHOD(QueryGetData)(THIS_ FORMATETC*) PURE;
STDMETHOD(GetCanonicalFormatEtc)(THIS_ FORMATETC*,FORMATETC*) PURE;
STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE;
! STDMETHOD(EnumFormatEtc)(THIS_ DWORD,IEnumFORMATETC*) PURE;
STDMETHOD(DAdvise)(THIS_ FORMATETC*,DWORD,IAdviseSink*,PDWORD) PURE;
STDMETHOD(DUnadvise)(THIS_ DWORD) PURE;
STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**);
--- 627,633 ----
STDMETHOD(QueryGetData)(THIS_ FORMATETC*) PURE;
STDMETHOD(GetCanonicalFormatEtc)(THIS_ FORMATETC*,FORMATETC*) PURE;
STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE;
! STDMETHOD(EnumFormatEtc)(THIS_ DWORD,IEnumFORMATETC**) PURE;
STDMETHOD(DAdvise)(THIS_ FORMATETC*,DWORD,IAdviseSink*,PDWORD) PURE;
STDMETHOD(DUnadvise)(THIS_ DWORD) PURE;
STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**);

View File

@@ -1,3 +1,6 @@
/* Generate setup.h.in from this file using autoheader. */
/* */
/* Version: $Id$ */
/* This define (__WX_SETUP_H__) is used both to insure setup.h is included
* only once and to indicate that we are building using configure. */
@@ -8,52 +11,25 @@
#pragma interface
#endif
@TOP@
/* Define to empty if the keyword does not work. */
#undef const
/* ------------------------------------------------------------------------ */
/* wxWindows version (not used but required by autoheader) */
/* ------------------------------------------------------------------------ */
/* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t
/* needed for older automake? */
#undef WITH_SYMBOL_UNDERSCORE
/* Define if you don't have vprintf but do have _doprnt. */
#undef HAVE_DOPRNT
/* Define if you have the vprintf function. */
#undef HAVE_VPRINTF
/* Define as __inline if that's what the C compiler calls it. */
#undef inline
/* Define to `int' if <sys/types.h> doesn't define. */
#undef mode_t
/* Define to `long' if <sys/types.h> doesn't define. */
#undef off_t
/* Define to `int' if <sys/types.h> doesn't define. */
#undef pid_t
/* Define to `unsigned' if <sys/types.h> doesn't define. */
#undef size_t
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
/* Define if your processor stores words with the most significant
byte first (like Motorola and SPARC, unlike Intel and VAX). */
#undef WORDS_BIGENDIAN
/* Define if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
/* Define if lex declares yytext as a char * by default, not a char[]. */
#undef YYTEXT_POINTER
/* ------------------------------------------------------------------------ */
/* define if support for GTK 1.2 features */
/* ------------------------------------------------------------------------ */
#undef __WXGTK12__
/* ------------------------------------------------------------------------ */
/* define the system to compile */
/* ------------------------------------------------------------------------ */
/*
* Define to 1 for Unix[-like] system
*/
@@ -79,22 +55,25 @@
#undef __EMX__
#undef _GNU_SOURCE
/* Stupid hack; __WINDOWS__ clashes with wx/defs.h */
#ifndef __WINDOWS__
#undef __WINDOWS__
#endif
#undef __WIN95__
#undef __WIN32__
#undef __GNUWIN32__
#undef STRICT
#undef WINVER
/* ------------------------------------------------------------------------ */
/* compiler options */
/* ------------------------------------------------------------------------ */
/*
* Supports bool type
*/
#undef HAVE_BOOL
/* ------------------------------------------------------------------------ */
/* library options */
/* ------------------------------------------------------------------------ */
/*
* Use zlib
*/
@@ -107,6 +86,10 @@
* Use libjpeg
*/
#define wxUSE_LIBJPEG 0
/*
* Use libgif
*/
#define wxUSE_LIBGIF 0
/*
* Use iODBC
*/
@@ -128,14 +111,22 @@
*/
#define wxUSE_OPENGL 0
/* ------------------------------------------------------------------------ */
/* GUI or not GUI? */
/* ------------------------------------------------------------------------ */
/*
* Use GUI
*/
#define wxUSE_GUI 0
#define wxUSE_GUI 1
/*
* Don't use GUI (defined to 1 when compiling/using base only)
* Defined if !wxUSE_GUI
*/
#define wxUSE_NOGUI 0
#undef wxUSE_NOGUI
/* ------------------------------------------------------------------------ */
/* "global" GUI options */
/* ------------------------------------------------------------------------ */
/*
* Use constraints mechanism
@@ -177,6 +168,10 @@
*/
#define wxUSE_JOYSTICK 0
/* ------------------------------------------------------------------------ */
/* GUI control options */
/* ------------------------------------------------------------------------ */
/*
* Use this control
*/
@@ -281,7 +276,6 @@
#define wxUSE_TOOLBAR 0
#if defined(__WXWINE__) || defined(__GNUWIN32__)
#define wxUSE_OWNER_DRAWN 1
#if wxUSE_TOOLBAR
#define wxUSE_BUTTONBAR 1
#endif
@@ -292,6 +286,10 @@
*/
#define wxUSE_TREECTRL 0
/* ------------------------------------------------------------------------ */
/* non-GUI options */
/* ------------------------------------------------------------------------ */
/*
* Use wxLongLong (a.k.a. int64) class
*/
@@ -337,10 +335,6 @@
* Use sockets
*/
#define wxUSE_SOCKETS 0
/*
* Use dialup manager
*/
#define wxUSE_DIALUP_MANAGER 0
/*
* Use standard C++ streams if 1. If 0, use wxWin
* streams implementation.
@@ -351,6 +345,10 @@
*/
#define wxUSE_DYNLIB_CLASS 0
/* ------------------------------------------------------------------------ */
/* PS options */
/* ------------------------------------------------------------------------ */
/*
* Use font metric files in GetTextExtent for wxPostScriptDC
* Use consistent PostScript fonts for AFM and printing (!)
@@ -366,21 +364,15 @@
*/
#define wxUSE_POSTSCRIPT 0
/*
* Compile wxString with some Unicode support?
*/
#define wxUSE_WCHAR_T 0
/* ------------------------------------------------------------------------ */
/* wxString options */
/* ------------------------------------------------------------------------ */
/*
* Compile wxString in wide character (Unicode) mode?
* Compile wxString with wide character (Unicode) support?
*/
#define wxUSE_UNICODE 0
/*
* Compile wxString with (limited) multibyte char support?
*/
#define wxUSE_MULTIBYTE 0
/*
* Work around a bug in GNU libc 5.x wcstombs() implementation.
*
@@ -404,6 +396,10 @@
*/
#define wxUSE_EXPERIMENTAL_PRINTF 0
/* ------------------------------------------------------------------------ */
/* misc options */
/* ------------------------------------------------------------------------ */
/*
* Use Interprocess communication
*/
@@ -433,6 +429,10 @@
*/
#define wxUSE_DYNLIB_CLASS 0
/* ------------------------------------------------------------------------ */
/* architecture options */
/* ------------------------------------------------------------------------ */
/*
* Use the mdi architecture
*/
@@ -446,6 +446,10 @@
*/
#define wxUSE_PRINTING_ARCHITECTURE 0
/* ------------------------------------------------------------------------ */
/* Prolog and wxWindows' resource system options */
/* ------------------------------------------------------------------------ */
/*
* Use Prolog IO
*/
@@ -458,6 +462,10 @@
/* for compatibility */
#define wxUSE_WX_RESOURCES wxUSE_RESOURCES
/* ------------------------------------------------------------------------ */
/* the rest */
/* ------------------------------------------------------------------------ */
/*
* Use wxWindows help facility (needs wxUSE_IPC 1)
*/
@@ -550,21 +558,6 @@
* Zip stream for accessing files stored inside .zip archives
*/
#define wxUSE_ZIPSTREAM 0
/*
* GIF image format support
*/
#define wxUSE_GIF 0
/*
* PCX image format support
*/
#define wxUSE_PCX 0
/*
* PNM image format support
*/
#define wxUSE_PNM 0
/*
* Disable this if your compiler can't cope
@@ -582,6 +575,10 @@
*/
#define CONST_COMPATIBILITY 0
/* ------------------------------------------------------------------------ */
/* System-specific stuff */
/* ------------------------------------------------------------------------ */
/* The type of 3rd argument to getsockname() - usually size_t or int */
#undef SOCKLEN_T
@@ -615,85 +612,6 @@
/* Define if you have wcslen function */
#undef HAVE_WCSLEN
/* define if you have vsscanf function */
#undef HAVE_VSSCANF
/* The number of bytes in a char. */
#undef SIZEOF_CHAR
/* The number of bytes in a int. */
#undef SIZEOF_INT
/* The number of bytes in a int *. */
#undef SIZEOF_INT_P
/* The number of bytes in a long. */
#undef SIZEOF_LONG
/* The number of bytes in a long long. */
#undef SIZEOF_LONG_LONG
/* The number of bytes in a short. */
#undef SIZEOF_SHORT
/* Define if you have the dlopen function. */
#undef HAVE_DLOPEN
/* Define if you have the gethostname function. */
#undef HAVE_GETHOSTNAME
/* Define if you have the inet_addr function. */
#undef HAVE_INET_ADDR
/* Define if you have the inet_aton function. */
#undef HAVE_INET_ATON
/* Define if you have the nanosleep function. */
#undef HAVE_NANOSLEEP
/* Define if you have the shl_load function. */
#undef HAVE_SHL_LOAD
/* Define if you have strtok_r function. */
#undef HAVE_STRTOK_R
/* Define if you have the uname function. */
#undef HAVE_UNAME
/* Define if you have the usleep function. */
#undef HAVE_USLEEP
/* Define if you have the vfork function. */
#undef HAVE_VFORK
/* Define if you have the vsnprintf function. */
#undef HAVE_VSNPRINTF
/* Define if you have the <X11/XKBlib.h> header file. */
#undef HAVE_X11_XKBLIB_H
/* Define if you have the <fnmatch.h> header file. */
#undef HAVE_FNMATCH_H
/* Define if you have the <iostream> header file. */
#undef HAVE_IOSTREAM
/* Define if you have the <linux/joystick.h> header file. */
#undef HAVE_LINUX_JOYSTICK_H
/* Define if you have the <sched.h> header file. */
#undef HAVE_SCHED_H
/* Define if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H
/* Define if you have the <wcstr.h> header file. */
#undef HAVE_WCSTR_H
@BOTTOM@
#endif /* __WX_SETUP_H__ */

423
acinclude.m4 Normal file
View File

@@ -0,0 +1,423 @@
dnl ---------------------------------------------------------------------------
dnl
dnl Purpose: Cursom macros for autoconf configure script.
dnl Author: Vadim Zeitlin
dnl Created: 26.05.99
dnl Version: $Id$
dnl ---------------------------------------------------------------------------
dnl ===========================================================================
dnl GKT+ version test
dnl ===========================================================================
dnl ---------------------------------------------------------------------------
dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS. Uses variables
dnl gtk_config_prefix and/or gtk_config_exec_prefix if defined.
dnl ---------------------------------------------------------------------------
dnl
AC_DEFUN(AM_PATH_GTK,
[
if test x$gtk_config_exec_prefix != x ; then
gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
if test x${GTK_CONFIG+set} != xset ; then
GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
fi
fi
if test x$gtk_config_prefix != x ; then
gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
if test x${GTK_CONFIG+set} != xset ; then
GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
fi
fi
AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
min_gtk_version=ifelse([$1], ,0.99.7,$1)
AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
no_gtk=""
if test "$GTK_CONFIG" != "no" ; then
GTK_CFLAGS=`$GTK_CONFIG --cflags`
GTK_LIBS=`$GTK_CONFIG --libs`
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
dnl
dnl Now check if the installed GTK is sufficiently new. (Also sanity
dnl checks the results of gtk-config to some extent)
dnl
AC_TRY_RUN([
#include <gtk/gtk.h>
#include <stdio.h>
int
main ()
{
int major, minor, micro;
if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_gtk_version");
exit(1);
}
if (gtk_minor_version == 1) return FALSE;
return !((gtk_major_version > major) ||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
}
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
else
no_gtk=yes
fi
if test "x$no_gtk" = x ; then
AC_MSG_RESULT(yes)
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
GTK_CFLAGS=""
GTK_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
])
dnl ===========================================================================
dnl macros to find the a file in the list of include/lib paths
dnl ===========================================================================
dnl ---------------------------------------------------------------------------
dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes
dnl to the full name of the file that was found or leaves it empty if not found
dnl ---------------------------------------------------------------------------
AC_DEFUN(WX_PATH_FIND_INCLUDES,
[
ac_find_includes=
for ac_dir in $1;
do
if test -f "$ac_dir/$2"; then
ac_find_includes=$ac_dir
break
fi
done
])
dnl ---------------------------------------------------------------------------
dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_includes
dnl to the full name of the file that was found or leaves it empty if not found
dnl ---------------------------------------------------------------------------
AC_DEFUN(WX_PATH_FIND_LIBRARIES,
[
ac_find_libraries=
for ac_dir in $1;
do
for ac_extension in a so sl; do
if test -f "$ac_dir/lib$2.$ac_extension"; then
ac_find_libraries=$ac_dir
break 2
fi
done
done
])
dnl ---------------------------------------------------------------------------
dnl Path to include, already defined
dnl ---------------------------------------------------------------------------
AC_DEFUN(WX_INCLUDE_PATH_EXIST,
[
ac_path_to_include=$1
echo "$2" | grep "\-I$1" > /dev/null
result=$?
if test $result = 0; then
ac_path_to_include=""
else
ac_path_to_include="-I$1"
fi
])
dnl ---------------------------------------------------------------------------
dnl Path to link, already defined
dnl ---------------------------------------------------------------------------
AC_DEFUN(WX_LINK_PATH_EXIST,
[
echo "$2" | grep "\-L$1" > /dev/null
result=$?
if test $result = 0; then
ac_path_to_link=""
else
ac_path_to_link="-L$1"
fi
])
dnl ===========================================================================
dnl C++ features test
dnl ===========================================================================
dnl ---------------------------------------------------------------------------
dnl WX_CPP_NEW_HEADERS checks whether the compiler has "new" <iostream> header
dnl or only the old <iostream.h> one - it may be generally assumed that if
dnl <iostream> exists, the other "new" headers (without .h) exist too.
dnl
dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false-or-cross-compiling)
dnl ---------------------------------------------------------------------------
AC_DEFUN(WX_CPP_NEW_HEADERS,
[
if test "$cross_compiling" = "yes"; then
ifelse([$2], , :, [$2])
else
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_CHECK_HEADERS(iostream)
if test "x$HAVE_IOSTREAM" = x ; then
ifelse([$2], , :, [$2])
else
ifelse([$1], , :, [$1])
fi
AC_LANG_RESTORE
fi
])
dnl ---------------------------------------------------------------------------
dnl WX_CPP_BOOL checks whether the C++ compiler has a built in bool type
dnl
dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool
dnl ---------------------------------------------------------------------------
AC_DEFUN(WX_CPP_BOOL,
[
AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool,
[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_RUN([
int main()
{
bool b = true;
return 0;
}
],
[
AC_DEFINE(HAVE_BOOL)
wx_cv_cpp_bool=yes
],
wx_cv_cpp_bool=no,
wx_cv_cpp_bool=no
)
AC_LANG_RESTORE
])
if test "$wx_cv_cpp_bool" = "yes"; then
AC_DEFINE(HAVE_BOOL)
fi
])
dnl ---------------------------------------------------------------------------
dnl WX_CPP_SIZE_T_IS_NOT_INT checks whether size_t and int are different types,
dnl i.e. whether we may overload operator[] on its argument type
dnl ---------------------------------------------------------------------------
AC_DEFUN(WX_CPP_SIZE_T_IS_NOT_INT,
[
AC_CACHE_CHECK([if size_t and int are different types], wx_cv_cpp_sizet_not_int,
[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_RUN([
#include <stdlib.h>
class S
{
public:
S(char *s) { m_s = s; }
char operator[](size_t n) const { return m_s[n]; }
char operator[](int n) const { return m_s[n]; }
private:
char *m_s;
};
int main()
{
S s("dummy");
size_t n1 = 2;
int n2 = 3;
return s[n1] == s[n2];
}
],
AC_DEFINE(wxUSE_SIZE_T_STRING_OPERATOR) wx_cv_cpp_sizet_not_int=yes,
wx_cv_cpp_sizet_not_int=no,
wx_cv_cpp_sizet_not_int=no
)
AC_LANG_RESTORE
])
])
dnl ---------------------------------------------------------------------------
dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling
dnl ---------------------------------------------------------------------------
AC_DEFUN(WX_C_BIGENDIAN,
[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian,
[ac_cv_c_bigendian=unknown
# See if sys/param.h defines the BYTE_ORDER macro.
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/param.h>], [
#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
bogus endian macros
#endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/param.h>], [
#if BYTE_ORDER != BIG_ENDIAN
not big endian
#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
if test $ac_cv_c_bigendian = unknown; then
AC_TRY_RUN([main () {
/* Are we little or big endian? From Harbison&Steele. */
union
{
long l;
char c[sizeof (long)];
} u;
u.l = 1;
exit (u.c[sizeof (long) - 1] == 1);
}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes, ac_cv_c_bigendian=unknown)
fi])
if test $ac_cv_c_bigendian = unknown; then
AC_MSG_WARN([Assuming little-endian target machine - this may be overriden by adding the line "ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}" to config.cache file])
fi
if test $ac_cv_c_bigendian = yes; then
AC_DEFINE(WORDS_BIGENDIAN)
fi
])
dnl ---------------------------------------------------------------------------
dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file
dnl ---------------------------------------------------------------------------
AC_DEFUN(WX_ARG_CACHE_INIT,
[
wx_arg_cache_file="configarg.cache"
echo "loading argument cache $wx_arg_cache_file"
rm -f ${wx_arg_cache_file}.tmp
touch ${wx_arg_cache_file}.tmp
touch ${wx_arg_cache_file}
])
AC_DEFUN(WX_ARG_CACHE_FLUSH,
[
echo "saving argument cache $wx_arg_cache_file"
mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
])
dnl this macro checks for a command line argument and caches the result
dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
AC_DEFUN(WX_ARG_WITH,
[
AC_MSG_CHECKING("for --with-$1")
no_cache=0
AC_ARG_WITH($1, $2,
[
if test "$withval" = yes; then
ac_cv_use_$1='$3=yes'
else
ac_cv_use_$1='$3=no'
fi
],
[
LINE=`grep "$3" ${wx_arg_cache_file}`
if test "x$LINE" != x ; then
eval "DEFAULT_$LINE"
else
no_cache=1
fi
ac_cv_use_$1='$3='$DEFAULT_$3
])
eval "$ac_cv_use_$1"
if test "$no_cache" != 1; then
echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
fi
if test "$$3" = yes; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
])
dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH
dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name)
AC_DEFUN(WX_ARG_ENABLE,
[
AC_MSG_CHECKING("for --enable-$1")
no_cache=0
AC_ARG_ENABLE($1, $2,
[
if test "$enableval" = yes; then
ac_cv_use_$1='$3=yes'
else
ac_cv_use_$1='$3=no'
fi
],
[
LINE=`grep "$3" ${wx_arg_cache_file}`
if test "x$LINE" != x ; then
eval "DEFAULT_$LINE"
else
no_cache=1
fi
ac_cv_use_$1='$3='$DEFAULT_$3
])
eval "$ac_cv_use_$1"
if test "$no_cache" != 1; then
echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
fi
if test "$$3" = yes; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
])
dnl -
dnl - GNU libc extension (added by GL)
dnl -
AC_DEFUN(WX_GNU_EXTENSIONS,
[
AC_MSG_CHECKING([if you need GNU extensions])
AC_CACHE_VAL(wx_cv_gnu_extensions,[
AC_TRY_COMPILE([#include <features.h>],[
#ifndef __GNU_LIBRARY__
Compile error wanted
#endif
],
[wx_cv_gnu_extensions=yes],
[wx_cv_gnu_extensions=no])
])
AC_MSG_RESULT($wx_cv_gnu_extensions)
if test "$wx_cv_gnu_extensions" = "yes"; then
AC_DEFINE_UNQUOTED(_GNU_SOURCE)
fi
])

View File

@@ -1,2 +1,5 @@
#!/bin/sh
aclocal -I .
autoheader
automake --foreign --verbose
autoconf

12717
configure vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -15,13 +15,23 @@ echo Base dir..
cd ../..
cp wxGTK.spec ~/wxgtk_dist/wxGTK
cp Makefile.am ~/wxgtk_dist/wxGTK
cp acconfig.h ~/wxgtk_dist/wxGTK
cp acinclude.m4 ~/wxgtk_dist/wxGTK
cp aclocal.m4 ~/wxgtk_dist/wxGTK
cp configure.in ~/wxgtk_dist/wxGTK
cp configure ~/wxgtk_dist/wxGTK
cp config.sub ~/wxgtk_dist/wxGTK
cp config.guess ~/wxgtk_dist/wxGTK
cp install-sh ~/wxgtk_dist/wxGTK
cp ltconfig ~/wxgtk_dist/wxGTK
cp ltmain.sh ~/wxgtk_dist/wxGTK
cp missing ~/wxgtk_dist/wxGTK
cp mkinstalldirs ~/wxgtk_dist/wxGTK
cp wx-config.in ~/wxgtk_dist/wxGTK
cp makefile.unx.in ~/wxgtk_dist/wxGTK
cp setup.h.in ~/wxgtk_dist/wxGTK
cp stamp-h.in ~/wxgtk_dist/wxGTK
cp Makefile.in ~/wxgtk_dist/wxGTK
echo Docs..

View File

@@ -15,12 +15,23 @@ echo Base dir..
cd ../..
cp wxMotif.spec ~/wxmotif_dist/wxMotif
cp Makefile.am ~/wxmotif_dist/wxMotif
cp acconfig.h ~/wxmotif_dist/wxMotif
cp acinclude.m4 ~/wxmotif_dist/wxMotif
cp aclocal.m4 ~/wxmotif_dist/wxMotif
cp configure.in ~/wxmotif_dist/wxMotif
cp configure ~/wxmotif_dist/wxMotif
cp config.sub ~/wxmotif_dist/wxMotif
cp config.guess ~/wxmotif_dist/wxMotif
cp install-sh ~/wxmotif_dist/wxMotif
cp ltconfig ~/wxmotif_dist/wxMotif
cp ltmain.sh ~/wxmotif_dist/wxMotif
cp missing ~/wxmotif_dist/wxMotif
cp mkinstalldirs ~/wxmotif_dist/wxMotif
cp wx-config.in ~/wxmotif_dist/wxMotif
cp makefile.unx.in ~/wxmotif_dist/wxMotif
cp setup.h.in ~/wxmotif_dist/wxMotif
cp stamp-h.in ~/wxmotif_dist/wxMotif
cp Makefile.in ~/wxmotif_dist/wxMotif
echo Docs..

View File

@@ -97,8 +97,6 @@ del Makefile.in \wxmsw_dist\wxMSW\src\Makefile.in
cd msw
md \wxmsw_dist\wxMSW\src\msw
md \wxmsw_dist\wxMSW\src\msw\ole
copy ole\*.cpp \wxmsw_dist\wxMSW\src\msw\ole
copy *.cpp \wxmsw_dist\wxMSW\src\msw
copy *.c \wxmsw_dist\wxMSW\src\msw
copy *.def \wxmsw_dist\wxMSW\src\msw
@@ -534,7 +532,6 @@ cd minifram
md \wxmsw_dist\wxMSW\samples\minifram
copy Makefile.* \wxmsw_dist\wxMSW\samples\minifram
copy *.cpp \wxmsw_dist\wxMSW\samples\minifram
copy *.h \wxmsw_dist\wxMSW\samples\minifram
copy *.xpm \wxmsw_dist\wxMSW\samples\minifram
copy *.ico \wxmsw_dist\wxMSW\samples\minifram
copy *.def \wxmsw_dist\wxMSW\samples\minifram

View File

@@ -6,7 +6,6 @@ autogen.sh
config.guess
config.sub
configure.in
setup.h.in
install-sh
ltconfig
ltmain.sh
@@ -20,12 +19,6 @@ makefile.unx.in
distrib/msw/*.rsp
distrib/msw/*.bat
distrib/msw/tardist
distrib/msw/tmake/*.t
distrib/msw/tmake/Makefile
distrib/msw/tmake/filelist.txt
distrib/msw/tmake/makeall.bat
distrib/msw/tmake/makeall.sh
distrib/msw/tmake/wxwin.pro
distrib/gtk/*
locale/*.po
@@ -43,14 +36,9 @@ docs/bugs.txt
docs/*.htm
docs/html/*.htm
docs/html/*.gif
docs/html/*.png
src/*.inc
src/mkdir
src/Makefile
src/make.env.in
src/makeprog.env.in
src/makelib.env.in
src/common/*.cpp
src/common/dosyacc.c
@@ -58,8 +46,6 @@ src/common/doslex.c
src/common/vmsyacc.c
src/common/vmslex.c
src/common/extended.c
src/common/unzip.c
src/common/unzip.h
src/common/*.l
src/common/*.y
src/common/*.inc
@@ -73,7 +59,6 @@ src/html/*.h
src/html/bitmaps/*.xpm
src/unix/*.cpp
src/unix/*.c
src/png/*.c
src/png/*.h
@@ -105,12 +90,7 @@ include/wx/protocol/*.h
include/wx/wx_setup.vms
include/wx/common/*.h
include/wx/generic/*.h
include/wx/generic/*.xpm
include/wx/unix/*.h
include/wx/html/*.h
include/wx/html/msw/*.bmp
include/wx/html/msw/*.ico
include/wx/html/msw/*.rc
lib/dummy
bin/*.*
@@ -218,20 +198,6 @@ utils/dialoged/test/*.ico
utils/dialoged/test/*.prj
utils/dialoged/test/*.bmp
utils/wxMMedia2/makefile*
utils/wxMMedia2/README
utils/wxMMedia2/lib/*.h
utils/wxMMedia2/lib/*.cpp
utils/wxMMedia2/lib/*.def
utils/wxMMedia2/lib/*.rc
utils/wxMMedia2/lib/makefile*
utils/wxMMedia2/sample/*.h
utils/wxMMedia2/sample/*.cpp
utils/wxMMedia2/sample/makefile*
utils/wxMMedia2/sample/*.xbm
utils/wxMMedia2/sample/*.xpm
utils/wxMMedia2/sample/*.txt
samples/*.txt
samples/makefile*
@@ -904,15 +870,3 @@ samples/text/*.png
samples/text/*.ico
samples/text/*.txt
samples/wizard/*.cpp
samples/wizard/*.h
samples/wizard/makefile*
samples/wizard/*.rc
samples/wizard/*.def
samples/wizard/*.bmp
samples/wizard/*.xpm
samples/wizard/*.xbm
samples/wizard/*.png
samples/wizard/*.ico
samples/wizard/*.txt

View File

@@ -1,4 +1,3 @@
utils/glcanvas/Makefile.in
utils/glcanvas/docs/*.*
utils/glcanvas/win/*.cpp
utils/glcanvas/win/*.h

View File

@@ -1,5 +1,3 @@
configure
distrib/gtk/copy_src
distrib/gtk/README.txt
distrib/gtk/Setup
@@ -10,17 +8,16 @@ docs/gtk/COPYING.LIB
docs/gtk/makewxgtk
include/wx/gtk/*.h
include/wx/gtk/*.xpm
include/install-sh
include/wx/install-sh
src/Makefile
src/Makefile.in
src/gtk.inc
src/make.env
src/makelib.env
src/makeprog.env
src/gtk/Makefile
src/gtk/*.cpp
src/gtk/*.c
src/gtk/*.inc

View File

@@ -1,75 +1,172 @@
Makefile.in
src/Makefile
locale/Makefile
samples/Makefile.in
samples/bombs/Makefile.in
samples/caret/Makefile.in
samples/bombs/Makefile
samples/checklst/Makefile.in
samples/checklst/Makefile
samples/config/Makefile.in
samples/config/Makefile
samples/controls/Makefile.in
samples/controls/Makefile
samples/db/Makefile.in
samples/db/Makefile
samples/dde/Makefile.in
samples/dde/Makefile
samples/dialogs/Makefile.in
samples/dialogs/Makefile
samples/dnd/Makefile.in
samples/dnd/Makefile
samples/docview/Makefile.in
samples/docview/Makefile
samples/docvwmdi/Makefile.in
samples/drawing/Makefile.in
samples/docvwmdi/Makefile
samples/dynamic/Makefile.in
samples/genvalid/Makefile.in
samples/html/Makefile.in
samples/html/about/Makefile.in
samples/html/help/Makefile.in
samples/html/printing/Makefile.in
samples/html/test/Makefile.in
samples/html/virtual/Makefile.in
samples/html/widget/Makefile.in
samples/html/zip/Makefile.in
samples/dynamic/Makefile
samples/forty/Makefile.in
samples/forty/Makefile
samples/fractal/Makefile.in
samples/fractal/Makefile
samples/grid/Makefile.in
samples/grid/Makefile
samples/help/Makefile.in
samples/help/Makefile
samples/image/Makefile.in
samples/image/Makefile
samples/internat/Makefile.in
samples/internat/Makefile
samples/layout/Makefile.in
samples/layout/Makefile
samples/listctrl/Makefile.in
samples/listctrl/Makefile
samples/mdi/Makefile.in
samples/mdi/Makefile
samples/memcheck/Makefile.in
samples/memcheck/Makefile
samples/minifram/Makefile.in
samples/minifram/Makefile
samples/minimal/Makefile.in
samples/minimal/Makefile
samples/notebook/Makefile.in
samples/notebook/Makefile
samples/png/Makefile.in
samples/png/Makefile
samples/printing/Makefile.in
samples/printing/Makefile
samples/proplist/Makefile.in
samples/proplist/Makefile
samples/resource/Makefile.in
samples/resource/Makefile
samples/sashtest/Makefile.in
samples/scroll/Makefile.in
samples/sashtest/Makefile
samples/splitter/Makefile.in
samples/text/Makefile.in
samples/splitter/Makefile
samples/tab/Makefile.in
samples/tab/Makefile
samples/thread/Makefile.in
samples/thread/Makefile
samples/toolbar/Makefile.in
samples/toolbar/Makefile
samples/treectrl/Makefile.in
samples/treectrl/Makefile
samples/typetest/Makefile.in
samples/typetest/Makefile
samples/validate/Makefile.in
samples/wizard/Makefile.in
samples/validate/Makefile
samples/wxpoem/Makefile.in
samples/wxpoem/Makefile
samples/wxsocket/Makefile.in
utils/Makefile.in
utils/wxMMedia2/Makefile.in
utils/wxMMedia2/lib/Makefile.in
utils/wxMMedia2/sample/Makefile.in
samples/wxsocket/Makefile
samples/scroll/Makefile.in
samples/scroll/Makefile
samples/caret/Makefile.in
samples/caret/Makefile
samples/drawing/Makefile.in
samples/drawing/Makefile
samples/richedit/Makefile.in
samples/richedit/Makefile
samples/html/Makefile.in
samples/html/Makefile
src/Makefile.in
src/Makefile
utils/ogl/samples/ogledit/Makefile.in
utils/ogl/samples/ogledit/Makefile
utils/ogl/samples/studio/Makefile.in
utils/ogl/samples/studio/Makefile
utils/ogl/src/Makefile.in
utils/ogl/src/Makefile
Makefile.am
include/Makefile.am
include/wx/Makefile.am
include/wx/generic/Makefile.am
include/wx/gtk/Makefile.am
include/wx/html/Makefile.am
include/wx/motif/Makefile.am
include/wx/msw/Makefile.am
include/wx/msw/ctl3d/Makefile.am
include/wx/msw/gnuwin32/Makefile.am
include/wx/protocol/Makefile.am
include/wx/unix/Makefile.am
misc/Makefile.am
misc/afm/Makefile.am
misc/gs_afm/Makefile.am
samples/animatn/Makefile.am
samples/Makefile.am
samples/bombs/Makefile.am
samples/caret/Makefile.am
samples/checklst/Makefile.am
samples/config/Makefile.am
samples/controls/Makefile.am
samples/db/Makefile.am
samples/dialogs/Makefile.am
samples/dnd/Makefile.am
samples/docview/Makefile.am
samples/docvwmdi/Makefile.am
samples/drawing/Makefile.am
samples/dynamic/Makefile.am
samples/forty/Makefile.am
samples/fractal/Makefile.am
samples/grid/Makefile.am
samples/help/Makefile.am
samples/html/Makefile.am
samples/html/about/Makefile.am
samples/html/help/Makefile.am
samples/html/printing/Makefile.am
samples/html/test/Makefile.am
samples/html/virtual/Makefile.am
samples/html/widget/Makefile.am
samples/html/zip/Makefile.am
samples/image/Makefile.am
samples/internat/Makefile.am
samples/joytest/Makefile.am
samples/layout/Makefile.am
samples/listctrl/Makefile.am
samples/mdi/Makefile.am
samples/memcheck/Makefile.am
samples/mfc/Makefile.am
samples/minifram/Makefile.am
samples/minimal/Makefile.am
samples/nativdlg/Makefile.am
samples/notebook/Makefile.am
samples/oleauto/Makefile.am
samples/ownerdrw/Makefile.am
samples/png/Makefile.am
samples/printing/Makefile.am
samples/proplist/Makefile.am
samples/regtest/Makefile.am
samples/resource/Makefile.am
samples/richedit/Makefile.am
samples/sashtest/Makefile.am
samples/scroll/Makefile.am
samples/splitter/Makefile.am
samples/tab/Makefile.am
samples/taskbar/Makefile.am
samples/text/Makefile.am
samples/thread/Makefile.am
samples/toolbar/Makefile.am
samples/treectrl/Makefile.am
samples/typetest/Makefile.am
samples/validate/Makefile.am
samples/wxpoem/Makefile.am
samples/wxsocket/Makefile.am
src/Makefile.am
src/gtk/Makefile.am
src/motif/Makefile.am
src/msw/Makefile.am

View File

@@ -15,6 +15,7 @@ src/makeprog.env
src/makelib.env
src/Makefile
src/Makefile.in
src/motif.inc
src/motif/*.cpp

View File

@@ -5,6 +5,7 @@ docs/wine/COPYING.LIB
distrib/msw/*.rsp
distrib/msw/*.bat
distrib/msw/tmake/*.t
tools/gettext/xgettext.exe
tools/gettext/msgfmt.exe
@@ -51,7 +52,6 @@ src/msw/*.lst
src/msw/*.def
src/msw/*.inc
src/msw/winestub.c
src/msw/gsocket.c
src/msw/ctl3d/*.*
src/msw/ctl3d/msvc/*.*

View File

@@ -1,4 +1,3 @@
utils/ogl/Makefile.in
utils/ogl/Makefile
utils/ogl/src/*.cpp

View File

@@ -1,44 +0,0 @@
# FIXME we'll generate this makefile with configure later, but for now please
# change it manually
TMAKEDIR=/home/zeitlin/build/tmake
TMAKE=$(TMAKEDIR)/bin/tmake
WXDIR=../../..
MSW_MAKEFILES_DIR=$(WXDIR)/src/msw
all: $(MSW_MAKEFILES_DIR)/makefile.vc \
$(MSW_MAKEFILES_DIR)/makefile.b32 \
$(MSW_MAKEFILES_DIR)/makefile.dos \
$(MSW_MAKEFILES_DIR)/makefile.bcc \
$(MSW_MAKEFILES_DIR)/makefile.sc \
$(MSW_MAKEFILES_DIR)/makefile.wat \
$(MSW_MAKEFILES_DIR)/makefile.g95 \
$(MSW_MAKEFILES_DIR)/makefile.g295 \
$(WXDIR)/Makefile.in
$(MSW_MAKEFILES_DIR)/makefile.vc: filelist.txt wxwin.pro
$(TMAKE) -t vc wxwin.pro -o $@
$(MSW_MAKEFILES_DIR)/makefile.b32: filelist.txt wxwin.pro
$(TMAKE) -t b32 wxwin.pro -o $@
$(MSW_MAKEFILES_DIR)/makefile.dos: filelist.txt wxwin.pro
$(TMAKE) -t dos wxwin.pro -o $@
$(MSW_MAKEFILES_DIR)/makefile.bcc: filelist.txt wxwin.pro
$(TMAKE) -t bcc wxwin.pro -o $@
$(MSW_MAKEFILES_DIR)/makefile.sc: filelist.txt wxwin.pro
$(TMAKE) -t sc wxwin.pro -o $@
$(MSW_MAKEFILES_DIR)/makefile.wat: filelist.txt wxwin.pro
$(TMAKE) -t wat wxwin.pro -o $@
$(MSW_MAKEFILES_DIR)/makefile.g95: filelist.txt wxwin.pro
$(TMAKE) -t g95 wxwin.pro -o $@
$(MSW_MAKEFILES_DIR)/makefile.g295: filelist.txt wxwin.pro g295.t
$(TMAKE) -t g295 wxwin.pro -o $@
$(WXDIR)/Makefile.in: filelist.txt wxwin.pro
$(TMAKE) -t unx wxwin.pro -o $@

View File

@@ -38,8 +38,6 @@
next;
}
$isCFile = $file =~ /\.c$/;
my $isOleObj = $wxMSW{$file} =~ /\bO\b/;
$file =~ s/cp?p?$/obj/;
my $obj = "\$(MSWDIR)\\" . $file . " ";
@@ -49,7 +47,7 @@
#! remember that this file is in ole subdir
$project{"WXOLEOBJS"} .= $obj;
}
$project{"WXCOBJS"} .= $obj if $isCFile;
}
#$}
@@ -203,8 +201,7 @@ $(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
foreach (@objs) {
$text .= $_ . ": ";
if ( $project{"WXOLEOBJS"} =~ /\Q$_/ ) { s/MSWDIR/OLEDIR/; }
$suffix = $project{"WXCOBJS"} =~ /\Q$_/ ? "c" : '$(SRCSUFF)';
s/obj$/$suffix/;
s/obj$/\$(SRCSUFF)/;
$text .= $_ . "\n\n";
}
#$}
@@ -337,10 +334,7 @@ cleanall: clean
MFTYPE=b32
# Can't use this or we'll have to distribute all tmake files with wxWindows
# makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
self:
makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
cd $(WXWIN)\distrib\msw\tmake
tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
copy makefile.$(MFTYPE) $(WXWIN)\src\msw

View File

@@ -42,11 +42,8 @@
#! don't take files not appropriate for 16-bit Windows
next if $wxMSW{$file} =~ /\b(32|O)\b/;
$isCFile = $file =~ /\.c$/;
$file =~ s/cp?p?$/obj/;
$obj = "\$(MSWDIR)\\" . $file . " ";
$project{"WXMSWOBJS"} .= $obj;
$project{"WXCOBJS"} .= $obj if $isCFile;
$project{"WXMSWOBJS"} .= "\$(MSWDIR)\\" . $file . " "
}
#$}
@@ -165,8 +162,7 @@ $(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
my @objs = split;
foreach (@objs) {
$text .= $_ . ": ";
$suffix = $project{"WXCOBJS"} =~ /\Q$_/ ? "c" : '$(SRCSUFF)';
s/obj/$suffix/;
s/obj/\$(SRCSUFF)/;
$text .= $_ . "\n\n";
}
#$}
@@ -306,10 +302,7 @@ cleanall: clean
MFTYPE=bcc
# Can't use this or we'll have to distribute all tmake files with wxWindows
#makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
self:
makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
cd $(WXWIN)\distrib\msw\tmake
tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
copy makefile.$(MFTYPE) $(WXWIN)\src\msw

View File

@@ -15,7 +15,7 @@
#! now transform these hashes into $project tags
foreach $file (sort keys %wxGeneric) {
if ( $wxGeneric{$file} =~ /\b(PS|G|U)\b/ ) {
#! this file for some reason wasn't compiled for VC++ 1.52
#! this file for some reason was compiled for VC++ 1.52
next unless $file =~ /^prntdlgg\./;
}
@@ -27,11 +27,8 @@
#! socket files don't compile under Win16 currently
next if $wxCommon{$file} =~ /\b(32|S)\b/;
$isCFile = $file =~ /\.c$/;
$file =~ s/cp?p?$/obj/;
$obj = "\$(COMMDIR)\\" . $file . " ";
$project{"WXCOMMONOBJS"} .= $obj;
$project{"WXCOBJS"} .= $obj if $isCFile;
$project{"WXCOMMONOBJS"} .= "\$(COMMDIR)\\" . $file . " "
}
foreach $file (sort keys %wxMSW) {
@@ -180,20 +177,11 @@ $(CPPFLAGS) /YcWX/WXPREC.H /c /Tp $*.$(SRCSUFF)
$_ = $project{"WXMSWOBJS"} . $project{"WXCOMMONOBJS"} . $project{"WXGENERICOBJS"};
my @objs = split;
foreach (@objs) {
if ( $project{"WXCOBJS"} =~ /\Q$_/ ) {
s:\\:/:;
$text .= $_ . ': $*.c' . "\n" .
' cl @<<' . "\n" .
'$(CPPFLAGS2) /Fo$@ /c /Tc $*.c' . "\n" .
"<<\n\n";
}
else {
s:\\:/:;
$text .= $_ . ': $*.$(SRCSUFF)' . "\n" .
' cl @<<' . "\n" .
'$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)' . "\n" .
"<<\n\n";
}
s:\\:/:;
$text .= $_ . ': $*.$(SRCSUFF)' . "\n" .
' cl @<<' . "\n" .
'$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)' . "\n" .
"<<\n\n";
}
#$}

View File

@@ -39,30 +39,14 @@
$wxGeneric{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "M" ) {
$wxMSW{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "X" ) {
$wxMOTIF{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "R" ) {
$wxGTK{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "H" ) {
$wxHTML{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "U" ) {
$wxUNIX{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "W" ) {
$wxWXINCLUDE{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "P" ) {
$wxPROTOCOLINCLUDE{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "L" ) {
$wxHTMLINCLUDE{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "F" ) {
$wxMOTIFINCLUDE{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "B" ) {
$wxMSWINCLUDE{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "K" ) {
$wxGTKINCLUDE{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "S" ) {
$wxUNIXINCLUDE{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "N" ) {
$wxGENERICINCLUDE{$fields[0]} = $fields[2];
} elsif ( $fields[1] eq "I" ) {
$wxINCLUDE{$fields[0]} = $fields[2];
} else {
warn "Unknown file type $fields[1] for $fields[0], ignoring.\n";
next line;

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#!#############################################################################
#! File: g295.t
#! Purpose: tmake template file from which makefile.g295 is generated by running
#! tmake -t g295 wxwin.pro -o makefile.g295
#! File: gtk.t
#! Purpose: tmake template file from which Makefile is generated by running
#! tmake -t gtk wxwin.pro -o Makefile
#! Author: Vadim Zeitlin, Robert Roebling, Julian Smart
#! Created: 14.07.99
#! Version: $Id$
@@ -9,37 +9,27 @@
#${
#! include the code which parses filelist.txt file and initializes
#! %wxCommon, %wxGeneric and %wxMSW hashes.
#! %wxCommon, %wxGeneric, %wxHtml, %wxUnix and %wxGTK hashes.
IncludeTemplate("filelist.t");
#! now transform these hashes into $project tags
foreach $file (sort keys %wxGeneric) {
#! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations,
#! so take the generic version
if ( $wxGeneric{$file} =~ /\b(PS|G|U|16)\b/ ) {
next;
}
next if $wxGeneric{$file} =~ /\bR\b/;
$file =~ s/cp?p?$/\$(OBJSUFF)/;
$project{"WXGENERICOBJS"} .= '$(GENDIR)/' . $file . " "
}
foreach $file (sort keys %wxCommon) {
next if $wxCommon{$file} =~ /\b(16)\b/;
next if $wxCommon{$file} =~ /\bR\b/;
$file =~ s/cp?p?$/\$(OBJSUFF)/;
$project{"WXCOMMONOBJS"} .= '$(COMMDIR)/' . $file . " "
}
foreach $file (sort keys %wxMSW) {
#! Mingw32 doesn't have the OLE headers and has some troubles with
#! socket code
next if $wxMSW{$file} =~ /\b(16)\b/;
$project{"WXMSWOBJS"} .= '$(MSWDIR)/';
$project{"WXMSWOBJS"} .= 'ole/' if $wxMSW{$file} =~ /\bO\b/;
foreach $file (sort keys %wxGTK) {
$file =~ s/cp?p?$/\$(OBJSUFF)/;
$project{"WXMSWOBJS"} .= $file . " "
$project{"WXGTKOBJS"} .= '$(GTKDIR)/' . $file . " "
}
foreach $file (sort keys %wxHTML) {
@@ -47,12 +37,16 @@
$project{"WXHTMLOBJS"} .= '$(HTMLDIR)/' . $file . " "
}
foreach $file (sort keys %wxUNIX) {
$file =~ s/cp?p?$/\$(OBJSUFF)/;
$project{"WXUNIXOBJS"} .= '$(UNIXDIR)/' . $file . " "
}
#$}
# This file was automatically generated by tmake at #$ Now()
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE G295.T!
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE GTK.T!
#
# File: makefile.g295
# File: Makefile
# Author: Julian Smart, Robert Roebling, Vadim Zeitlin
# Created: 1993
# Updated: 1999
@@ -60,28 +54,22 @@
# Copyright:(c) 1999, Vadim Zeitlin
# Copyright:(c) 1999, Robert Roebling
#
# Makefile for libwx.a
# Makefile for libwx_gtk.a
# Replace this with your own path if necessary
WXDIR = ../..
# All common compiler flags and options are now in
# this central makefile.
include $(WXDIR)/src/makeg95.env
include $(WXDIR)/src/gtk.env
# Subordinate library possibilities
EXTRAOBJS=
GENDIR = $(WXDIR)/src/generic
COMMDIR = $(WXDIR)/src/common
HTMLDIR = $(WXDIR)/src/html
XPMDIR = $(WXDIR)/src/xpm
UNIXDIR = $(WXDIR)/src/unix
PNGDIR = $(WXDIR)/src/png
JPEGDIR = $(WXDIR)/src/jpeg
ZLIBDIR = $(WXDIR)/src/zlib
OLEDIR = $(WXDIR)/src/msw/ole
MSWDIR = $(WXDIR)/src/msw
GTKDIR = $(WXDIR)/src/gtk
DOCDIR = $(WXDIR)\docs
@@ -89,14 +77,17 @@ GENERICOBJS = \
#$ ExpandList("WXGENERICOBJS");
COMMONOBJS = \
$(COMMDIR)/y_tab.$(OBJSUFF) \
$(COMMDIR)/parser.$(OBJSUFF) \
#$ ExpandList("WXCOMMONOBJS");
HTMLOBJS = \
#$ ExpandList("WXHTMLOBJS");
MSWOBJS = \
#$ ExpandList("WXMSWOBJS");
GTKOBJS = \
#$ ExpandList("WXGTKOBJS");
UNIXOBJS = \
#$ ExpandList("WXUNIXOBJS");
ZLIBOBJS = \
$(ZLIBDIR)/adler32.$(OBJSUFF) \
@@ -180,84 +171,49 @@ JPEGOBJS = \
$(JPEGDIR)/jquant2.$(OBJSUFF) \
$(JPEGDIR)/jdmerge.$(OBJSUFF)
XPMOBJECTS = $(XPMDIR)/crbuffri.o\
$(XPMDIR)/crdatfri.o\
$(XPMDIR)/create.o $(XPMDIR)/crifrbuf.o\
$(XPMDIR)/crifrdat.o\
$(XPMDIR)/data.o\
$(XPMDIR)/hashtab.o $(XPMDIR)/misc.o\
$(XPMDIR)/parse.o $(XPMDIR)/rdftodat.o\
$(XPMDIR)/rdftoi.o\
$(XPMDIR)/rgb.o $(XPMDIR)/scan.o\
$(XPMDIR)/simx.o $(XPMDIR)/wrffrdat.o\
$(XPMDIR)/wrffrp.o $(XPMDIR)/wrffri.o
OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJS) \
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) # $(XPMOBJECTS)
OBJECTS = $(GTKOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJ) $(UNIXOBJS) \
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS)
all: $(OBJECTS) $(WXLIB)
$(WXLIB): $(OBJECTS) $(EXTRAOBJS)
ar $(AROPTIONS) $@ $(EXTRAOBJS) $(OBJECTS)
$(WXLIB): $(OBJECTS)
ar $(AROPTIONS) $@ $(OBJECTS)
$(RANLIB) $@
$(OBJECTS): $(WXINC)/wx/defs.h $(WXINC)/wx/object.h $(WXINC)/wx/setup.h
$(OBJECTS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h $(WXDIR)/include/wx/setup.h
$(COMMDIR)/y_tab.$(OBJSUFF): $(COMMDIR)/y_tab.c $(COMMDIR)/lex_yy.c
$(CCLEX) -c $(CPPFLAGS) -DUSE_DEFINE -DYY_USE_PROTOS -o $@ $(COMMDIR)/y_tab.c
$(COMMDIR)/parser.$(OBJSUFF): $(COMMDIR)/parser.c $(COMMDIR)/lexer.c
$(CCLEX) -c $(CFLAGS) -o $@ $(COMMDIR)/parser.c
$(COMMDIR)/y_tab.c: $(COMMDIR)/dosyacc.c
copy ..\common\dosyacc.c ..\common\y_tab.c
$(COMMDIR)/parser.c: $(COMMDIR)/parser.y $(COMMDIR)/lexer.c
$(YACC) $(COMMDIR)/parser.y
@sed -e "s;$(COMMDIR)/y.tab.c;parser.y;g" < y.tab.c | \
sed -e "s/BUFSIZ/5000/g" | \
sed -e "s/YYLMAX 200/YYLMAX 5000/g" | \
sed -e "s/yy/PROIO_yy/g" | \
sed -e "s/input/PROIO_input/g" | \
sed -e "s/unput/PROIO_unput/g" > $(COMMDIR)/parser.c
@$(RM) y.tab.c
$(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c
copy ..\common\doslex.c ..\common\lex_yy.c
# Replace lex with flex if you run into compilation
# problems with lex_yy.c. See also note about LEX_SCANNER
# above.
# $(COMMDIR)/lex_yy.c: $(COMMDIR)/lexer.l
# $(LEX) -L -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" | \
# sed -e "s/YYLMAX 200/YYLMAX 5000/g" > lex_yy.c
# rm -f lex.yy.c
#
# Replace yacc with bison if you run into compilation
# problems with y_tab.c.
#
# $(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y
# $(YACC) -o $(COMMDIR)/y_tab.c $(COMMDIR)/parser.y
#
# If you use e.g. gcc on Unix, uncomment these lines
# and comment out the above.
#
# $(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y
# $(YACC) $(COMMDIR)/parser.y
# mv y.tab.c $(COMMDIR)/y_tab.c
$(COMMDIR)/lexer.c: $(COMMDIR)/lexer.l
$(LEX) $(COMMDIR)/lexer.l
@sed -e "s;$(COMMDIR)/lex.yy.c;lexer.l;g" < lex.yy.c | \
sed -e "s/yy/PROIO_yy/g" | \
sed -e "s/input/PROIO_input/g" | \
sed -e "s/unput/PROIO_unput/g" > $(COMMDIR)/lexer.c
@$(RM) lex.yy.c
clean:
-erase *.o
-erase *.bak
-erase core
-erase ..\common\y_tab.c
-erase ..\common\lex_yy.c
-erase ..\common\*.o
-erase ..\common\*.bak
-erase ..\generic\*.o
-erase ..\generic\*.bak
-erase ..\html\*.o
-erase ..\png\*.o
-erase ..\png\*.bak
-erase ..\zlib\*.o
-erase ..\zlib\*.bak
-erase ..\jpeg\*.o
-erase ..\..\lib\libwx.a
rm -f $(GTKDIR)/*.$(OBJSUFF)
rm -f $(COMMDIR)/parser.c
rm -f $(COMMDIR)/lexer.c
rm -f $(COMMDIR)/*.$(OBJSUFF)
rm -f $(GENDIR)/*.$(OBJSUFF)
rm -f $(PNGDIR)/*.$(OBJSUFF)
rm -f $(ZLIBDIR)/*.$(OBJSUFF)
rm -f $(JPEGDIR)/*.$(OBJSUFF)
rm -f $(UNIXDIR)/*.$(OBJSUFF)
rm -f $(HTMLDIR)/*.$(OBJSUFF)
rm -f $(WXWIN)/lib/libwx_$(GUI).a
cleanall: clean

View File

@@ -49,6 +49,8 @@ echo Generating for Symantec C++...
E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t sc wxwin.pro -o makefile.sc
echo Generating for Watcom C++...
E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t wat wxwin.pro -o makefile.wat
echo Generating for wxGTK...
E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t gtk wxwin.pro -o Makefile
echo Generating for Unix and Configure...
E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t unx wxwin.pro -o makefile.unx.in

View File

@@ -1,54 +0,0 @@
#!/bin/sh
#
# File: makeall.sh
# Purpose: create wxWindows makefiles for all compilers
# Author: Michael Bedward
# Created: 29 Aug 1999
# Copyright: (c) 1999 Michael Bedward
# Version: $Id$
#
# This creates the makefiles for all compilers from the templates using
# tmake. The tmake executable should be in the path.
# Assume we are in distrib/msw/tmake
#
topdir="../../.."
mswdir="$topdir/src/msw"
for tname in `ls *.t`
do
case $tname in
b32.t)
echo "Generating $mswdir/makefile.b32 for Borland C++ (32 bits)..."
tmake -t b32 wxwin.pro -o $mswdir/makefile.b32 ;;
bcc.t)
echo "Generating $mswdir/makefile.bcc for Borland C++ (16 bits)..."
tmake -t bcc wxwin.pro -o $mswdir/makefile.bcc;;
dos.t)
echo "Generating $mswdir/makefile.dos for Visual C++ 1.52..."
tmake -t dos wxwin.pro -o $mswdir/makefile.dos;;
g95.t)
echo "Generating $mswdir/makefile.g95 for Cygwin/Mingw32..."
tmake -t g95 wxwin.pro -o $mswdir/makefile.g95;;
sc.t)
echo "Generating $mswdir/makefile.sc for Symantec C++..."
tmake -t sc wxwin.pro -o $mswdir/makefile.sc;;
vc.t)
echo "Generating $mswdir/makefile.vc for Visual C++ 4.0..."
tmake -t vc wxwin.pro -o $mswdir/makefile.vc;;
wat.t)
echo "Generating $mswdir/makefile.wat for Watcom C++..."
tmake -t wat wxwin.pro -o $mswdir/makefile.wat;;
unx.t)
echo "Generating $topdir/Makefile.in for Unix and Configure..."
tmake -t unx wxwin.pro -o $topdir/Makefile.in;;
esac
done

View File

@@ -1,57 +0,0 @@
#
# $Id$
#
# tmake configuration for linux-g++
#
TEMPLATE = app
CONFIG = qt warn_on release
TMAKE_CC = gcc
TMAKE_CFLAGS =
TMAKE_CFLAGS_WARN_ON = -Wall -W
TMAKE_CFLAGS_WARN_OFF =
TMAKE_CFLAGS_RELEASE = -O2 -fno-strength-reduce
TMAKE_CFLAGS_DEBUG = -g
TMAKE_CFLAGS_SHLIB = -fPIC
TMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
TMAKE_CXX = g++
TMAKE_CXXFLAGS = $$TMAKE_CFLAGS
TMAKE_CXXFLAGS_WARN_ON = $$TMAKE_CFLAGS_WARN_ON
TMAKE_CXXFLAGS_WARN_OFF = $$TMAKE_CFLAGS_WARN_OFF
TMAKE_CXXFLAGS_RELEASE = $$TMAKE_CFLAGS_RELEASE
TMAKE_CXXFLAGS_DEBUG = $$TMAKE_CFLAGS_DEBUG
TMAKE_CXXFLAGS_SHLIB = $$TMAKE_CFLAGS_SHLIB
TMAKE_CXXFLAGS_YACC = $$TMAKE_CFLAGS_YACC
TMAKE_INCDIR =
TMAKE_LIBDIR =
TMAKE_INCDIR_X11 = /usr/X11R6/include
TMAKE_LIBDIR_X11 = /usr/X11R6/lib
TMAKE_INCDIR_QT = $(QTDIR)/include
TMAKE_LIBDIR_QT = $(QTDIR)/lib
TMAKE_INCDIR_OPENGL = /usr/X11R6/include
TMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
TMAKE_LINK = g++
TMAKE_LINK_SHLIB = g++
TMAKE_LFLAGS = -Wl,-rpath=/lib:/usr/X11R6/lib:$(QTDIR)/lib
TMAKE_LFLAGS_RELEASE =
TMAKE_LFLAGS_DEBUG =
TMAKE_LFLAGS_SHLIB = -shared
TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS =
TMAKE_LIBS_X11 = -lX11 -lXext
TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu -lXext -lm
TMAKE_MOC = moc
TMAKE_AR = ar cqs
TMAKE_RANLIB =
TMAKE_TAR = tar -cf
TMAKE_GZIP = gzip -9f

View File

@@ -1,174 +1,60 @@
#!################################################################################
#! File: unx.t
#! Purpose: tmake template file from which Makefile.in is generated by running
#! tmake -t unx wxwin.pro -o Makefile.in
#! Purpose: tmake template file from which makefile.unx.in is generated by running
#! tmake -t unx wxwin.pro -o makefile.unx.in
#! Author: Vadim Zeitlin, Robert Roebling, Julian Smart
#! Created: 14.07.99
#! Version: $Id$
#!################################################################################
#${
#! include the code which parses filelist.txt file and initializes
#! %wxCommon, %wxGeneric, %wxHtml, %wxUnix and %wxGTK hashes.
IncludeTemplate("filelist.t");
#! Generic
#! now transform these hashes into $project tags
foreach $file (sort keys %wxGeneric) {
#! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations,
#! so take the generic version
if ( $wxGeneric{$file} =~ /\b(PS|G|U|16)\b/ ) {
next unless $file =~ /^dirdlgg\./;
}
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXMSW_GENERICOBJS"} .= $file . " ";
$project{"WXMSW_GENERICDEPS"} .= $file2 . " "
}
foreach $file (sort keys %wxGeneric) {
#! skip generic files not required for the wxGTK port
next if $wxGeneric{$file} =~ /\bR\b/;
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXGTK_GENERICOBJS"} .= $file . " ";
$project{"WXGTK_GENERICDEPS"} .= $file2 . " "
$project{"WXGENERICOBJS"} .= $file . " "
}
foreach $file (sort keys %wxGeneric) {
next if $wxGeneric{$file} =~ /\bX\b/;
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXMOTIF_GENERICOBJS"} .= $file . " ";
$project{"WXMOTIF_GENERICDEPS"} .= $file2 . " "
}
#! Common
foreach $file (sort keys %wxCommon) {
next if $wxCommon{$file} =~ /\bR\b/;
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXGTK_COMMONOBJS"} .= $file . " ";
$project{"WXGTK_COMMONDEPS"} .= $file2 . " "
}
foreach $file (sort keys %wxCommon) {
next if $wxCommon{$file} =~ /\bX\b/;
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXMOTIF_COMMONOBJS"} .= $file . " ";
$project{"WXMOTIF_COMMONDEPS"} .= $file2 . " "
}
foreach $file (sort keys %wxCommon) {
next if $wxCommon{$file} =~ /\b(16)\b/;
#! needs extra files (sql*.h) so not compiled by default.
next if $file =~ /^odbc\./;
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXMSW_COMMONOBJS"} .= $file . " ";
$project{"WXMSW_COMMONDEPS"} .= $file2 . " "
}
#! GUI
foreach $file (sort keys %wxMSW) {
#! Mingw32 doesn't have the OLE headers and has some troubles with
#! socket code
next if $wxMSW{$file} =~ /\b(O|16)\b/;
#! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations,
next if $file =~ /^dirdlg\./;
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXMSW_GUIOBJS"} .= $file . " ";
$project{"WXMSW_GUIDEPS"} .= $file2 . " "
$project{"WXCOMMONOBJS"} .= $file . " "
}
foreach $file (sort keys %wxGTK) {
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXGTK_GUIOBJS"} .= $file . " ";
$project{"WXGTK_GUIDEPS"} .= $file2 . " "
$project{"WXGTKOBJS"} .= $file . " "
}
foreach $file (sort keys %wxMOTIF) {
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXMOTIF_GUIOBJS"} .= $file . " ";
$project{"WXMOTIF_GUIDEPS"} .= $file2 . " "
}
#! others
foreach $file (sort keys %wxHTML) {
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXHTMLOBJS"} .= $file . " ";
$project{"WXHTMLDEPS"} .= $file2 . " "
$project{"WXHTMLOBJS"} .= $file . " "
}
foreach $file (sort keys %wxUNIX) {
$file2 = $file;
$file =~ s/cp?p?$/\o/;
$file2 =~ s/cp?p?$/\d/;
$project{"WXUNIXOBJS"} .= $file . " ";
$project{"WXUNIXDEPS"} .= $file2 . " "
$project{"WXUNIXOBJS"} .= $file . " "
}
#! headers
foreach $file (sort keys %wxWXINCLUDE) {
$project{"WX_HEADERS"} .= $file . " "
}
foreach $file (sort keys %wxGENERICINCLUDE) {
$project{"WXGENERIC_HEADERS"} .= "generic/" . $file . " "
}
foreach $file (sort keys %wxMOTIFINCLUDE) {
$project{"WXMOTIF_HEADERS"} .= "motif/" . $file . " "
}
foreach $file (sort keys %wxGTKINCLUDE) {
$project{"WXGTK_HEADERS"} .= "gtk/" . $file . " "
}
foreach $file (sort keys %wxMSWINCLUDE) {
$project{"WXMSW_HEADERS"} .= "msw/" . $file . " "
}
foreach $file (sort keys %wxHTMLINCLUDE) {
$project{"WXHTML_HEADERS"} .= "html/" . $file . " "
}
foreach $file (sort keys %wxUNIXINCLUDE) {
$project{"WXUNIX_HEADERS"} .= "unix/" . $file . " "
}
foreach $file (sort keys %wxPROTOCOLINCLUDE) {
$project{"WXPROTOCOL_HEADERS"} .= "protocol/" . $file . " "
}
#$}
#
# I want this to be:
# $(INSTALL_DATA) $(INCDIR)/wx/window.h $(includedir)/wx/window.h
#
# foreach $file (sort keys %wxINCLUDE) {
# next if $wxINCLUDE{$file} =~ /\b(GTK|MSW|MOT|PM|MAC|GEN|HTM|UNX)\b/;
#
# $project{"WXINSTALLWX"} .= "$(INSTALL_DATA)" . " " . "\$(INCDIR)/wx/" . $file . " \$(includedir)/wx/" . $file . "\n"
# }
#
#
#
# This file was automatically generated by tmake at #$ Now()
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE UNX.T!
@@ -183,39 +69,27 @@
#
# Makefile for libwx_gtk.a, libwx_motif.a and libwx_msw.a
###################################################################
########################### VERSION #################################
include ./src/make.env
LIBS = @LIBS@
############## override make.env for PIC ##########################
TOOLKIT = @TOOLKIT@
# Clears all default suffixes
.SUFFIXES: .o .cpp .c .cxx
WXLIB = @WX_LIBRARY@
.c.o :
$(CCC) -c @DEP_INFO_FLAGS@ $(CFLAGS) $(PICFLAGS) -o $@ $<
########################### VERSION #################################
.cpp.o :
$(CC) -c @DEP_INFO_FLAGS@ $(CPPFLAGS) $(PICFLAGS) -o $@ $<
WX_MAJOR_VERSION_NUMBER = @WX_MAJOR_VERSION_NUMBER@
WX_MINOR_VERSION_NUMBER = @WX_MINOR_VERSION_NUMBER@
WX_RELEASE_NUMBER = @WX_RELEASE_NUMBER@
.cxx.o :
$(CC) -c @DEP_INFO_FLAGS@ $(CPPFLAGS) $(PICFLAGS) -o $@ $<
########################### Misc #################################
SHELL = @SHELL@
########################### Paths #################################
srcdir = @srcdir@
VP1 = @top_srcdir@/src/common
VP2 = @top_srcdir@/src/@TOOLKIT_DIR@
VP3 = @top_srcdir@/src/motif/xmcombo
VP4 = @top_srcdir@/src/generic
VP5 = @top_srcdir@/src/unix
VP6 = @top_srcdir@/src/html
VP7 = @top_srcdir@/src/png
VP8 = @top_srcdir@/src/jpeg
VP9 = @top_srcdir@/src/zlib
VPATH = $(VP1):$(VP2):$(VP3):$(VP4):$(VP5):$(VP6):$(VP7):$(VP8):$(VP9)
srcdir = @srcdir@/src/gtk
top_srcdir = @top_srcdir@
prefix = @prefix@
@@ -245,10 +119,7 @@ top_builddir = .
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
# my autoconf doesn't set this
#INSTALL_SCRIPT = @INSTALL_SCRIPT@
# maybe do an additional chmod if needed?
INSTALL_SCRIPT = @INSTALL@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
@@ -264,135 +135,86 @@ host_triplet = @host@
target_alias = @target_alias@
target_triplet = @target@
############################# Dirs #################################
EXTRA_VPATH = @EXTRA_VPATH_MF@
WXDIR = $(top_srcdir)
VPATH = .:${srcdir}:${srcdir}/src/common:${srcdir}/src/generic:${srcdir}/src/html:${EXTRA_VPATH}
########################### Programs #################################
# C++ compiler
CC = @CXX@
CCPP = @CXXCPP@
# C compiler
CCC = @CC@
CCCPP = @CPP@
# Compiler for lex/yacc .c programs
CCLEX = @CC@
LEX = @LEX@
YACC = @YACC@
AR = @AR@
AS = @AS@
NM = @NM@
LN_S = @LN_S@
STRIP = @STRIP@
MAKE = make
AROPTIONS = ruv
RANLIB = @RANLIB@
LD = @LD@
MAKEINFO = @MAKEINFO@
########################### Flags #################################
CFLAGS = @TOOLKIT_DEF@ @WXDEBUG_DEFINE@ @CFLAGS@
CPPFLAGS = @TOOLKIT_DEF@ @WXDEBUG_DEFINE@ @CXXFLAGS@
########################### Rules #################################
# Clears all default suffixes
.SUFFIXES: .o .cpp .c
.c.o :
$(CCC) -c $(CFLAGS) -o $@ $<
.cpp.o :
$(CC) -c $(CPPFLAGS) -o $@ $<
########################### Files #################################
WXDIR = $(srcdir)/../..
# Subordinate library possibilities
SRCDIR = $(WXDIR)/src
GENDIR = $(WXDIR)/src/generic
COMMDIR = $(WXDIR)/src/common
HTMLDIR = $(WXDIR)/src/html
UNIXDIR = $(WXDIR)/src/unix
PNGDIR = $(WXDIR)/src/png
JPEGDIR = $(WXDIR)/src/jpeg
ZLIBDIR = $(WXDIR)/src/zlib
GTKDIR = $(WXDIR)/src/gtk
MOTIFDIR = $(WXDIR)/src/motif
MSWDIR = $(WXDIR)/src/msw
INCDIR = $(WXDIR)/include
SAMPDIR = $(WXDIR)/samples
UTILSDIR = $(WXDIR)/utils
MISCDIR = $(WXDIR)/misc
GENDIR = $(WXDIR)/src/generic
COMMDIR = $(WXDIR)/src/common
HTMLDIR = $(WXDIR)/src/html
UNIXDIR = $(WXDIR)/src/unix
PNGDIR = $(WXDIR)/src/png
JPEGDIR = $(WXDIR)/src/jpeg
ZLIBDIR = $(WXDIR)/src/zlib
GTKDIR = $(WXDIR)/src/gtk
INCDIR = $(WXDIR)/include
DOCDIR = $(WXDIR)/docs
DOCDIR = $(WXDIR)\docs
########################## Archive name ###############################
GENERICOBJS = \
#$ ExpandList("WXGENERICOBJS");
WXARCHIVE = wx$(TOOLKIT)-$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER).$(WX_RELEASE_NUMBER)-b9.tgz
DISTDIR = ./_dist_dir/wx$(TOOLKIT)
############################## Files ##################################
WX_HEADERS = \
#$ ExpandList("WX_HEADERS");
GTK_HEADERS = \
#$ ExpandList("WXGTK_HEADERS");
MOTIF_HEADERS = \
#$ ExpandList("WXMOTIF_HEADERS");
MSW_HEADERS = \
#$ ExpandList("WXMSW_HEADERS");
UNIX_HEADERS = \
#$ ExpandList("WXUNIX_HEADERS");
GENERIC_HEADERS = \
#$ ExpandList("WXGENERIC_HEADERS");
PROTOCOL_HEADERS = \
#$ ExpandList("WXPROTOCOL_HEADERS");
HTML_HEADERS = \
#$ ExpandList("WXHTML_HEADERS");
GTK_GENERICOBJS = \
#$ ExpandList("WXGTK_GENERICOBJS");
GTK_GENERICDEPS = \
#$ ExpandList("WXGTK_GENERICDEPS");
GTK_COMMONOBJS = \
COMMONOBJS = \
parser.o \
#$ ExpandList("WXGTK_COMMONOBJS");
GTK_COMMONDEPS = \
parser.d \
#$ ExpandList("WXGTK_COMMONDEPS");
GTK_GUIOBJS = \
#$ ExpandList("WXGTK_GUIOBJS");
GTK_GUIDEPS = \
#$ ExpandList("WXGTK_GUIDEPS");
MOTIF_GENERICOBJS = \
#$ ExpandList("WXMOTIF_GENERICOBJS");
MOTIF_GENERICDEPS = \
#$ ExpandList("WXMOTIF_GENERICDEPS");
MOTIF_COMMONOBJS = \
parser.o \
#$ ExpandList("WXMOTIF_COMMONOBJS");
MOTIF_COMMONDEPS = \
parser.d \
#$ ExpandList("WXMOTIF_COMMONDEPS");
MOTIF_GUIOBJS = \
xmcombo.o \
#$ ExpandList("WXMOTIF_GUIOBJS");
MOTIF_GUIDEPS = \
xmcombo.d \
#$ ExpandList("WXMOTIF_GUIDEPS");
MSW_GENERICOBJS = \
#$ ExpandList("WXMSW_GENERICOBJS");
MSW_GENERICDEPS = \
#$ ExpandList("WXMSW_GENERICDEPS");
MSW_COMMONOBJS = \
parser.o \
#$ ExpandList("WXMSW_COMMONOBJS");
MSW_COMMONDEPS = \
parser.d \
#$ ExpandList("WXMSW_COMMONDEPS");
MSW_GUIOBJS = \
#$ ExpandList("WXMSW_GUIOBJS");
MSW_GUIDEPS = \
#$ ExpandList("WXMSW_GUIDEPS");
#$ ExpandList("WXCOMMONOBJS");
HTMLOBJS = \
#$ ExpandList("WXHTMLOBJS");
#$ ExpandList("WXHTMLOBJS");
HTMLDEPS = \
#$ ExpandList("WXHTMLDEPS");
GTKOBJS = \
#$ ExpandList("WXGTKOBJS");
UNIXOBJS = \
UNIXOBJS = \
#$ ExpandList("WXUNIXOBJS");
UNIXDEPS = \
#$ ExpandList("WXUNIXDEPS");
ZLIBOBJS = \
adler32.o \
compress.o \
@@ -475,46 +297,19 @@ JPEGOBJS = \
jquant2.o \
jdmerge.o
OBJECTS = $(@GUIOBJS@) $(@COMMONOBJS@) $(@GENERICOBJS@) $(@UNIXOBJS@) $(HTMLOBJS) \
OBJECTS = $(GTKOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJ) $(UNIXOBJS) \
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS)
DEPFILES = $(@GUIDEPS@) $(@COMMONDEPS@) $(@GENERICDEPS@) $(UNIXDEPS) $(HTMLDEPS)
all: $(OBJECTS) $(WXLIB)
HEADERS = $(@GUIHEADERS@) $(HTML_HEADERS) $(UNIX_HEADERS) $(PROTOCOL_HEADERS) \
$(GENERIC_HEADERS) $(WX_HEADERS)
$(WXLIB): $(OBJECTS)
$AR) $(AROPTIONS) $@ $(OBJECTS)
$(RANLIB) $@
all: @WX_CREATE_LINKS@
@WX_LIBRARY_NAME_STATIC@: $(OBJECTS)
@$(INSTALL) -d ./lib
$(AR) $(AROPTIONS) ./lib/$@ $(OBJECTS)
$(RANLIB) ./lib/$@
@WX_LIBRARY_NAME_SHARED@: $(OBJECTS)
@$(INSTALL) -d ./lib
$(SHARED_LD) ./lib/$@ $(OBJECTS) $(EXTRALIBS)
CREATE_LINKS: @WX_TARGET_LIBRARY@
@$(RM) ./lib/@WX_LIBRARY_LINK1@
@$(RM) ./lib/@WX_LIBRARY_LINK2@
@$(RM) ./lib/@WX_LIBRARY_LINK3@
$(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK1@
$(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK2@
$(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK3@
CREATE_INSTALLED_LINKS: $(libdir)/@WX_TARGET_LIBRARY@
$(RM) $(libdir)/@WX_LIBRARY_LINK1@
$(RM) $(libdir)/@WX_LIBRARY_LINK2@
$(RM) $(libdir)/@WX_LIBRARY_LINK3@
$(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK1@
$(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK2@
$(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK3@
$(OBJECTS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h $(WXDIR)/include/wx/setup.h
parser.o: parser.c lexer.c
$(CCLEX) -c $(CFLAGS) $(PICFLAGS) -o $@ parser.c
$(CCLEX) -c $(CFLAGS) -o $@ parser.c
parser.c: $(COMMDIR)/parser.y lexer.c
$(YACC) $(COMMDIR)/parser.y
@@ -534,423 +329,15 @@ lexer.c: $(COMMDIR)/lexer.l
sed -e "s/unput/PROIO_unput/g" > lexer.c
@$(RM) lex.yy.c
-include $(DEPFILES)
preinstall: $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(top_builddir)/wx-config $(top_builddir)/setup.h
@echo " "
@echo " Installing wxWindows..."
@echo " "
$(INSTALL) -d $(prefix)
$(INSTALL) -d $(bindir)
$(INSTALL) -d $(libdir)
$(INSTALL) -d $(datadir)
$(INSTALL_SCRIPT) $(top_builddir)/wx-config $(bindir)/wx-config
$(INSTALL_PROGRAM) $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(libdir)/@WX_TARGET_LIBRARY@
$(INSTALL) -d $(libdir)/wx
$(INSTALL) -d $(libdir)/wx/include
$(INSTALL) -d $(libdir)/wx/include/wx
$(INSTALL) -d $(libdir)/wx/include/wx/@TOOLKIT_DIR@
$(INSTALL_DATA) $(top_builddir)/setup.h $(libdir)/wx/include/wx/@TOOLKIT_DIR@/setup.h
$(INSTALL) -d $(datadir)/wx
$(INSTALL) -d $(datadir)/wx/afm
$(INSTALL) -d $(datadir)/wx/gs_afm
$(INSTALL_DATA) $(top_srcdir)/misc/afm/*.afm $(datadir)/wx/afm
$(INSTALL_DATA) $(top_srcdir)/misc/gs_afm/*.afm $(datadir)/wx/gs_afm
$(INSTALL) -d $(includedir)/wx
$(INSTALL) -d $(includedir)/wx/msw
$(INSTALL) -d $(includedir)/wx/gtk
$(INSTALL) -d $(includedir)/wx/motif
$(INSTALL) -d $(includedir)/wx/html
$(INSTALL) -d $(includedir)/wx/protocol
$(INSTALL) -d $(includedir)/wx/unix
$(INSTALL) -d $(includedir)/wx/generic
@list='$(HEADERS)'; for p in $$list; do \
$(INSTALL_DATA) $(top_srcdir)/include/wx/$$p $(includedir)/wx/$$p; \
echo "$(INSTALL_DATA) $(top_srcdir)/include/wx/$$p $(includedir)/wx/$$p"; \
done
write_message:
@echo " "
@echo " The installation of wxWindows is finished. On certain"
@echo " platforms (e.g. Linux, Solaris) you'll now have to run"
@echo " ldconfig if you installed a shared library."
@echo " "
@echo " wxWindows comes with no guarantees and doesn't claim"
@echo " to be suitable for any purpose."
@echo " "
@echo " Read the wxWindows Licence on licencing conditions."
@echo " "
install: preinstall @WX_CREATE_INSTALLED_LINKS@ write_message
uninstall:
@echo " "
@echo " Uninstalling wxWindows..."
@echo " "
@echo " Removing library..."
@$(RM) $(libdir)/@WX_TARGET_LIBRARY@
@$(RM) $(libdir)/@WX_LIBRARY_LINK1@
@$(RM) $(libdir)/@WX_LIBRARY_LINK2@
@$(RM) $(libdir)/@WX_LIBRARY_LINK3@
@echo " Removing helper files..."
@$(RM) $(libdir)/wx/include/wx/@TOOLKIT_DIR@/setup.h
@$(RM) $(bindir)/wx-config
@$(RM) $(datadir)/wx/afm/*
@$(RM) $(datadir)/wx/gs_afm/*
@rmdir $(datadir)/wx/gs_afm
@rmdir $(datadir)/wx/afm
@rmdir $(datadir)/wx
@echo " Removing headers..."
@list='$(HEADERS)'; for p in $$list; do \
$(RM) $(includedir)/wx/$$p; \
done
@echo " Removing directories..."
@if test -d $(libdir)/wx/include/wx/@TOOLKIT_DIR@; then rmdir $(libdir)/wx/include/wx/@TOOLKIT_DIR@; fi
@if test -d $(libdir)/wx/include/wx; then rmdir $(libdir)/wx/include/wx; fi
@if test -d $(libdir)/wx/include; then rmdir $(libdir)/wx/include; fi
@if test -d $(libdir)/wx; then rmdir $(libdir)/wx; fi
@if test -d $(includedir)/wx/gtk; then rmdir $(includedir)/wx/gtk; fi
@if test -d $(includedir)/wx/motif; then rmdir $(includedir)/wx/motif; fi
@if test -d $(includedir)/wx/msw; then rmdir $(includedir)/wx/msw; fi
@if test -d $(includedir)/wx/html; then rmdir $(includedir)/wx/html; fi
@if test -d $(includedir)/wx/unix; then rmdir $(includedir)/wx/unix; fi
@if test -d $(includedir)/wx/generic; then rmdir $(includedir)/wx/generic; fi
@if test -d $(includedir)/wx/protocol; then rmdir $(includedir)/wx/protocol; fi
@if test -d $(includedir)/wx; then rmdir $(includedir)/wx; fi
ALL_DIST:
mkdir _dist_dir
mkdir $(DISTDIR)
cp $(WXDIR)/wx$(TOOLKIT).spec $(DISTDIR)
cp $(WXDIR)/configure $(DISTDIR)
cp $(WXDIR)/config.sub $(DISTDIR)
cp $(WXDIR)/config.guess $(DISTDIR)
cp $(WXDIR)/install-sh $(DISTDIR)
cp $(WXDIR)/mkinstalldirs $(DISTDIR)
cp $(WXDIR)/wx-config.in $(DISTDIR)
cp $(WXDIR)/setup.h.in $(DISTDIR)
cp $(WXDIR)/Makefile.in $(DISTDIR)
cp $(DOCDIR)/lgpl.txt $(DISTDIR)/COPYING.LIB
cp $(DOCDIR)/licence.txt $(DISTDIR)/LICENCE.txt
cp $(DOCDIR)/symbols.txt $(DISTDIR)/SYMBOLS.txt
cp $(DOCDIR)/$(TOOLKITDIR)/install.txt $(DISTDIR)/INSTALL.txt
cp $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES.txt
cp $(DOCDIR)/$(TOOLKITDIR)/readme.txt $(DISTDIR)/README.txt
cp $(DOCDIR)/$(TOOLKITDIR)/todo.txt $(DISTDIR)/TODO.txt
mkdir $(DISTDIR)/include
mkdir $(DISTDIR)/include/wx
mkdir $(DISTDIR)/include/wx/$(TOOLKITDIR)
mkdir $(DISTDIR)/include/wx/generic
mkdir $(DISTDIR)/include/wx/html
mkdir $(DISTDIR)/include/wx/unix
mkdir $(DISTDIR)/include/wx/protocol
cp $(INCDIR)/wx/*.h $(DISTDIR)/include/wx
cp $(INCDIR)/wx/*.cpp $(DISTDIR)/include/wx
cp $(INCDIR)/wx/generic/*.h $(DISTDIR)/include/wx/generic
cp $(INCDIR)/wx/generic/*.xpm $(DISTDIR)/include/wx/generic
cp $(INCDIR)/wx/html/*.h $(DISTDIR)/include/wx/html
cp $(INCDIR)/wx/unix/*.h $(DISTDIR)/include/wx/unix
cp $(INCDIR)/wx/protocol/*.h $(DISTDIR)/include/wx/protocol
mkdir $(DISTDIR)/src
mkdir $(DISTDIR)/src/common
mkdir $(DISTDIR)/src/generic
mkdir $(DISTDIR)/src/html
mkdir $(DISTDIR)/src/html/bitmaps
mkdir $(DISTDIR)/src/$(TOOLKITDIR)
mkdir $(DISTDIR)/src/unix
mkdir $(DISTDIR)/src/png
mkdir $(DISTDIR)/src/jpeg
mkdir $(DISTDIR)/src/zlib
cp $(SRCDIR)/*.in $(DISTDIR)/src
cp $(COMMDIR)/*.cpp $(DISTDIR)/src/common
cp $(COMMDIR)/*.c $(DISTDIR)/src/common
cp $(COMMDIR)/*.inc $(DISTDIR)/src/common
cp $(COMMDIR)/*.l $(DISTDIR)/src/common
cp $(COMMDIR)/*.h $(DISTDIR)/src/common
cp $(COMMDIR)/*.y $(DISTDIR)/src/common
cp $(GENDIR)/*.cpp $(DISTDIR)/src/generic
cp $(HTMLDIR)/*.cpp $(DISTDIR)/src/html
cp $(HTMLDIR)/*.h $(DISTDIR)/src/html
cp $(HTMLDIR)/bitmaps/*.xpm $(DISTDIR)/src/html/bitmaps
cp $(UNIXDIR)/*.h $(DISTDIR)/src/unix
cp $(UNIXDIR)/*.c $(DISTDIR)/src/unix
cp $(UNIXDIR)/*.cpp $(DISTDIR)/src/unix
cp $(PNGDIR)/*.h $(DISTDIR)/src/png
cp $(PNGDIR)/*.c $(DISTDIR)/src/png
cp $(PNGDIR)/README $(DISTDIR)/src/png
cp $(ZLIBDIR)/*.h $(DISTDIR)/src/zlib
cp $(ZLIBDIR)/*.c $(DISTDIR)/src/zlib
cp $(ZLIBDIR)/README $(DISTDIR)/src/zlib
cp $(JPEGDIR)/*.h $(DISTDIR)/src/jpeg
cp $(JPEGDIR)/*.c $(DISTDIR)/src/jpeg
cp $(JPEGDIR)/README $(DISTDIR)/src/jpeg
GTK_DIST:
cp $(WXDIR)/wxGTK.spec $(DISTDIR)
cp $(INCDIR)/wx/gtk/*.h $(DISTDIR)/include/wx/gtk
cp $(INCDIR)/wx/gtk/*.xpm $(DISTDIR)/include/wx/gtk
cp $(GTKDIR)/*.cpp $(DISTDIR)/src/gtk
cp $(GTKDIR)/*.c $(DISTDIR)/src/gtk
cp $(GTKDIR)/*.xbm $(DISTDIR)/src/gtk
MOTIF_DIST:
cp $(WXDIR)/wxMOTIF.spec $(DISTDIR)
cp $(INCDIR)/wx/motif/*.h $(DISTDIR)/include/wx/motif
cp $(MOTIFDIR)/*.cpp $(DISTDIR)/src/motif
cp $(MOTIFDIR)/*.xbm $(DISTDIR)/src/motif
mkdir $(DISTDIR)/src/motif/xmcombo
cp $(MOTIFDIR)/xmcombo/*.c $(DISTDIR)/src/motif/xmcombo
cp $(MOTIFDIR)/xmcombo/*.h $(DISTDIR)/src/motif/xmcombo
cp $(MOTIFDIR)/xmcombo/copying.txt $(DISTDIR)/src/motif/xmcombo
MSW_DIST:
cp $(WXDIR)/wxWINE.spec $(DISTDIR)
cp $(INCDIR)/wx/msw/*.h $(DISTDIR)/include/wx/msw
cp $(INCDIR)/wx/msw/*.cur $(DISTDIR)/include/wx/msw
cp $(INCDIR)/wx/msw/*.ico $(DISTDIR)/include/wx/msw
cp $(INCDIR)/wx/msw/*.bmp $(DISTDIR)/include/wx/msw
cp $(INCDIR)/wx/msw/*.rc $(DISTDIR)/include/wx/msw
cp $(MSWDIR)/*.cpp $(DISTDIR)/src/msw
cp $(MSWDIR)/*.c $(DISTDIR)/src/msw
cp $(MSWDIR)/*.def $(DISTDIR)/src/msw
mkdir $(DISTDIR)/src/msw/ole
cp $(MSWDIR)/ole/*.cpp $(DISTDIR)/src/msw/ole
SAMPLES_DIST:
mkdir $(DISTDIR)/samples
cp $(SAMPDIR)/Makefile.in $(DISTDIR)/samples
mkdir $(DISTDIR)/samples/bombs
cp $(SAMPDIR)/bombs/Makefile.in $(DISTDIR)/samples/bombs
cp $(SAMPDIR)/bombs/*.cpp $(DISTDIR)/samples/bombs
cp $(SAMPDIR)/bombs/*.h $(DISTDIR)/samples/bombs
cp $(SAMPDIR)/bombs/*.xpm $(DISTDIR)/samples/bombs
cp $(SAMPDIR)/bombs/readme.txt $(DISTDIR)/samples/bombs
mkdir $(DISTDIR)/samples/caret
cp $(SAMPDIR)/caret/Makefile.in $(DISTDIR)/samples/caret
cp $(SAMPDIR)/caret/*.cpp $(DISTDIR)/samples/caret
cp $(SAMPDIR)/caret/*.xpm $(DISTDIR)/samples/caret
mkdir $(DISTDIR)/samples/config
cp $(SAMPDIR)/config/Makefile.in $(DISTDIR)/samples/config
cp $(SAMPDIR)/config/*.cpp $(DISTDIR)/samples/config
mkdir $(DISTDIR)/samples/controls
mkdir $(DISTDIR)/samples/controls/icons
cp $(SAMPDIR)/controls/Makefile.in $(DISTDIR)/samples/controls
cp $(SAMPDIR)/controls/*.cpp $(DISTDIR)/samples/controls
cp $(SAMPDIR)/controls/*.xpm $(DISTDIR)/samples/controls
cp $(SAMPDIR)/controls/icons/*.??? $(DISTDIR)/samples/controls/icons
mkdir $(DISTDIR)/samples/checklst
cp $(SAMPDIR)/checklst/Makefile.in $(DISTDIR)/samples/checklst
cp $(SAMPDIR)/checklst/*.cpp $(DISTDIR)/samples/checklst
cp $(SAMPDIR)/checklst/*.xpm $(DISTDIR)/samples/checklst
mkdir $(DISTDIR)/samples/printing
cp $(SAMPDIR)/printing/Makefile.in $(DISTDIR)/samples/printing
cp $(SAMPDIR)/printing/*.cpp $(DISTDIR)/samples/printing
cp $(SAMPDIR)/printing/*.h $(DISTDIR)/samples/printing
cp $(SAMPDIR)/printing/*.xpm $(DISTDIR)/samples/printing
cp $(SAMPDIR)/printing/*.xbm $(DISTDIR)/samples/printing
mkdir $(DISTDIR)/samples/dialogs
cp $(SAMPDIR)/dialogs/Makefile.in $(DISTDIR)/samples/dialogs
cp $(SAMPDIR)/dialogs/*.cpp $(DISTDIR)/samples/dialogs
cp $(SAMPDIR)/dialogs/*.h $(DISTDIR)/samples/dialogs
cp $(SAMPDIR)/dialogs/*.txt $(DISTDIR)/samples/dialogs
mkdir $(DISTDIR)/samples/dnd
cp $(SAMPDIR)/dnd/Makefile.in $(DISTDIR)/samples/dnd
cp $(SAMPDIR)/dnd/*.cpp $(DISTDIR)/samples/dnd
cp $(SAMPDIR)/dnd/*.xpm $(DISTDIR)/samples/dnd
cp $(SAMPDIR)/dnd/*.txt $(DISTDIR)/samples/dnd
cp $(SAMPDIR)/dnd/*.png $(DISTDIR)/samples/dnd
mkdir $(DISTDIR)/samples/docview
cp $(SAMPDIR)/docview/Makefile.in $(DISTDIR)/samples/docview
cp $(SAMPDIR)/docview/*.cpp $(DISTDIR)/samples/docview
cp $(SAMPDIR)/docview/*.h $(DISTDIR)/samples/docview
cp $(SAMPDIR)/docview/*.xpm $(DISTDIR)/samples/docview
mkdir $(DISTDIR)/samples/docvwmdi
cp $(SAMPDIR)/docvwmdi/Makefile.in $(DISTDIR)/samples/docvwmdi
cp $(SAMPDIR)/docvwmdi/*.cpp $(DISTDIR)/samples/docvwmdi
cp $(SAMPDIR)/docvwmdi/*.h $(DISTDIR)/samples/docvwmdi
mkdir $(DISTDIR)/samples/drawing
cp $(SAMPDIR)/drawing/Makefile.in $(DISTDIR)/samples/drawing
cp $(SAMPDIR)/drawing/*.cpp $(DISTDIR)/samples/drawing
cp $(SAMPDIR)/drawing/*.xpm $(DISTDIR)/samples/drawing
mkdir $(DISTDIR)/samples/dynamic
cp $(SAMPDIR)/dynamic/Makefile.in $(DISTDIR)/samples/dynamic
cp $(SAMPDIR)/dynamic/*.cpp $(DISTDIR)/samples/dynamic
cp $(SAMPDIR)/dynamic/*.xpm $(DISTDIR)/samples/dynamic
mkdir $(DISTDIR)/samples/html
cp $(SAMPDIR)/html/Makefile.in $(DISTDIR)/samples/html
mkdir $(DISTDIR)/samples/html/about
cp $(SAMPDIR)/html/about/Makefile.in $(DISTDIR)/samples/html/about
cp $(SAMPDIR)/html/about/*.cpp $(DISTDIR)/samples/html/about
mkdir $(DISTDIR)/samples/html/about/data
cp $(SAMPDIR)/html/about/data/*.htm $(DISTDIR)/samples/html/about/data
cp $(SAMPDIR)/html/about/data/*.png $(DISTDIR)/samples/html/about/data
mkdir $(DISTDIR)/samples/html/help
cp $(SAMPDIR)/html/help/Makefile.in $(DISTDIR)/samples/html/help
cp $(SAMPDIR)/html/help/*.cpp $(DISTDIR)/samples/html/help
mkdir $(DISTDIR)/samples/html/help/helpfiles
cp $(SAMPDIR)/html/help/helpfiles/*.??? $(DISTDIR)/samples/html/help/helpfiles
mkdir $(DISTDIR)/samples/html/printing
cp $(SAMPDIR)/html/printing/Makefile.in $(DISTDIR)/samples/html/printing
cp $(SAMPDIR)/html/printing/*.xpm $(DISTDIR)/samples/html/printing
cp $(SAMPDIR)/html/printing/*.cpp $(DISTDIR)/samples/html/printing
cp $(SAMPDIR)/html/printing/*.h $(DISTDIR)/samples/html/printing
cp $(SAMPDIR)/html/printing/*.png $(DISTDIR)/samples/html/printing
cp $(SAMPDIR)/html/printing/*.htm $(DISTDIR)/samples/html/printing
mkdir $(DISTDIR)/samples/html/test
cp $(SAMPDIR)/html/test/Makefile.in $(DISTDIR)/samples/html/test
cp $(SAMPDIR)/html/test/*.cpp $(DISTDIR)/samples/html/test
cp $(SAMPDIR)/html/test/*.bmp $(DISTDIR)/samples/html/test
cp $(SAMPDIR)/html/test/*.png $(DISTDIR)/samples/html/test
cp $(SAMPDIR)/html/test/*.htm $(DISTDIR)/samples/html/test
cp $(SAMPDIR)/html/test/*.html $(DISTDIR)/samples/html/test
mkdir $(DISTDIR)/samples/html/virtual
cp $(SAMPDIR)/html/virtual/Makefile.in $(DISTDIR)/samples/html/virtual
cp $(SAMPDIR)/html/virtual/*.cpp $(DISTDIR)/samples/html/virtual
cp $(SAMPDIR)/html/virtual/*.htm $(DISTDIR)/samples/html/virtual
mkdir $(DISTDIR)/samples/html/widget
cp $(SAMPDIR)/html/widget/Makefile.in $(DISTDIR)/samples/html/widget
cp $(SAMPDIR)/html/widget/*.cpp $(DISTDIR)/samples/html/widget
cp $(SAMPDIR)/html/widget/*.htm $(DISTDIR)/samples/html/widget
mkdir $(DISTDIR)/samples/html/zip
cp $(SAMPDIR)/html/zip/Makefile.in $(DISTDIR)/samples/html/zip
cp $(SAMPDIR)/html/zip/*.cpp $(DISTDIR)/samples/html/zip
cp $(SAMPDIR)/html/zip/*.htm $(DISTDIR)/samples/html/zip
cp $(SAMPDIR)/html/zip/*.zip $(DISTDIR)/samples/html/zip
mkdir $(DISTDIR)/samples/image
cp $(SAMPDIR)/image/Makefile.in $(DISTDIR)/samples/image
cp $(SAMPDIR)/image/*.cpp $(DISTDIR)/samples/image
cp $(SAMPDIR)/image/horse.* $(DISTDIR)/samples/image
mkdir $(DISTDIR)/samples/layout
cp $(SAMPDIR)/layout/Makefile.in $(DISTDIR)/samples/layout
cp $(SAMPDIR)/layout/*.cpp $(DISTDIR)/samples/layout
cp $(SAMPDIR)/layout/*.h $(DISTDIR)/samples/layout
mkdir $(DISTDIR)/samples/listctrl
cp $(SAMPDIR)/listctrl/Makefile.in $(DISTDIR)/samples/listctrl
cp $(SAMPDIR)/listctrl/*.cpp $(DISTDIR)/samples/listctrl
cp $(SAMPDIR)/listctrl/*.h $(DISTDIR)/samples/listctrl
cp $(SAMPDIR)/listctrl/*.xpm $(DISTDIR)/samples/listctrl
mkdir $(DISTDIR)/samples/listctrl/bitmap
cp $(SAMPDIR)/listctrl/*.xpm $(DISTDIR)/samples/listctrl/bitmaps
mkdir $(DISTDIR)/samples/mdi
cp $(SAMPDIR)/mdi/Makefile.in $(DISTDIR)/samples/mdi
cp $(SAMPDIR)/mdi/*.cpp $(DISTDIR)/samples/mdi
cp $(SAMPDIR)/mdi/*.h $(DISTDIR)/samples/mdi
cp $(SAMPDIR)/mdi/*.xpm $(DISTDIR)/samples/mdi
mkdir $(DISTDIR)/samples/minifram
cp $(SAMPDIR)/minifram/Makefile.in $(DISTDIR)/samples/minifram
cp $(SAMPDIR)/minifram/*.cpp $(DISTDIR)/samples/minifram
cp $(SAMPDIR)/minifram/*.h $(DISTDIR)/samples/minifram
cp $(SAMPDIR)/minifram/*.xpm $(DISTDIR)/samples/minifram
mkdir $(DISTDIR)/samples/minifram/bitmap
cp $(SAMPDIR)/minifram/*.xpm $(DISTDIR)/samples/minifram/bitmaps
mkdir $(DISTDIR)/samples/minimal
cp $(SAMPDIR)/minimal/Makefile.in $(DISTDIR)/samples/minimal
cp $(SAMPDIR)/minimal/*.cpp $(DISTDIR)/samples/minimal
cp $(SAMPDIR)/minimal/*.xpm $(DISTDIR)/samples/minimal
mkdir $(DISTDIR)/samples/notebook
cp $(SAMPDIR)/notebook/Makefile.in $(DISTDIR)/samples/notebook
cp $(SAMPDIR)/notebook/*.cpp $(DISTDIR)/samples/notebook
cp $(SAMPDIR)/notebook/*.h $(DISTDIR)/samples/notebook
mkdir $(DISTDIR)/samples/proplist
cp $(SAMPDIR)/proplist/Makefile.in $(DISTDIR)/samples/proplist
cp $(SAMPDIR)/proplist/*.cpp $(DISTDIR)/samples/proplist
cp $(SAMPDIR)/proplist/*.h $(DISTDIR)/samples/proplist
mkdir $(DISTDIR)/samples/sashtest
cp $(SAMPDIR)/sashtest/Makefile.in $(DISTDIR)/samples/sashtest
cp $(SAMPDIR)/sashtest/*.cpp $(DISTDIR)/samples/sashtest
cp $(SAMPDIR)/sashtest/*.h $(DISTDIR)/samples/sashtest
mkdir $(DISTDIR)/samples/scroll
cp $(SAMPDIR)/scroll/Makefile.in $(DISTDIR)/samples/scroll
cp $(SAMPDIR)/scroll/*.cpp $(DISTDIR)/samples/scroll
mkdir $(DISTDIR)/samples/splitter
cp $(SAMPDIR)/splitter/Makefile.in $(DISTDIR)/samples/splitter
cp $(SAMPDIR)/splitter/*.cpp $(DISTDIR)/samples/splitter
mkdir $(DISTDIR)/samples/text
cp $(SAMPDIR)/text/Makefile.in $(DISTDIR)/samples/text
cp $(SAMPDIR)/text/*.cpp $(DISTDIR)/samples/text
cp $(SAMPDIR)/text/*.xpm $(DISTDIR)/samples/text
mkdir $(DISTDIR)/samples/thread
cp $(SAMPDIR)/thread/Makefile.in $(DISTDIR)/samples/thread
cp $(SAMPDIR)/thread/*.cpp $(DISTDIR)/samples/thread
mkdir $(DISTDIR)/samples/toolbar
cp $(SAMPDIR)/toolbar/Makefile.in $(DISTDIR)/samples/toolbar
cp $(SAMPDIR)/toolbar/*.cpp $(DISTDIR)/samples/toolbar
cp $(SAMPDIR)/toolbar/*.h $(DISTDIR)/samples/toolbar
cp $(SAMPDIR)/toolbar/*.xpm $(DISTDIR)/samples/toolbar
mkdir $(DISTDIR)/samples/toolbar/bitmap
cp $(SAMPDIR)/toolbar/*.xpm $(DISTDIR)/samples/toolbar/bitmaps
mkdir $(DISTDIR)/samples/treectrl
cp $(SAMPDIR)/treectrl/Makefile.in $(DISTDIR)/samples/treectrl
cp $(SAMPDIR)/treectrl/*.cpp $(DISTDIR)/samples/treectrl
cp $(SAMPDIR)/treectrl/*.h $(DISTDIR)/samples/treectrl
cp $(SAMPDIR)/treectrl/*.xpm $(DISTDIR)/samples/treectrl
mkdir $(DISTDIR)/samples/typetest
cp $(SAMPDIR)/typetest/Makefile.in $(DISTDIR)/samples/typetest
cp $(SAMPDIR)/typetest/*.cpp $(DISTDIR)/samples/typetest
cp $(SAMPDIR)/typetest/*.h $(DISTDIR)/samples/typetest
cp $(SAMPDIR)/typetest/*.xpm $(DISTDIR)/samples/typetest
mkdir $(DISTDIR)/samples/validate
cp $(SAMPDIR)/validate/Makefile.in $(DISTDIR)/samples/validate
cp $(SAMPDIR)/validate/*.cpp $(DISTDIR)/samples/validate
cp $(SAMPDIR)/validate/*.h $(DISTDIR)/samples/validate
cp $(SAMPDIR)/validate/*.xpm $(DISTDIR)/samples/validate
mkdir $(DISTDIR)/samples/wizard
cp $(SAMPDIR)/wizard/Makefile.in $(DISTDIR)/samples/wizard
cp $(SAMPDIR)/wizard/*.cpp $(DISTDIR)/samples/wizard
cp $(SAMPDIR)/wizard/*.xpm $(DISTDIR)/samples/wizard
mkdir $(DISTDIR)/samples/wxpoem
cp $(SAMPDIR)/wxpoem/Makefile.in $(DISTDIR)/samples/wxpoem
cp $(SAMPDIR)/wxpoem/*.cpp $(DISTDIR)/samples/wxpoem
cp $(SAMPDIR)/wxpoem/*.xpm $(DISTDIR)/samples/wxpoem
cp $(SAMPDIR)/wxpoem/*.dat $(DISTDIR)/samples/wxpoem
cp $(SAMPDIR)/wxpoem/*.txt $(DISTDIR)/samples/wxpoem
mkdir $(DISTDIR)/samples/wxsocket
cp $(SAMPDIR)/wxsocket/Makefile.in $(DISTDIR)/samples/wxsocket
cp $(SAMPDIR)/wxsocket/*.cpp $(DISTDIR)/samples/wxsocket
cp $(SAMPDIR)/wxsocket/*.xpm $(DISTDIR)/samples/wxsocket
UTILS_DIST:
mkdir $(DISTDIR)/utils
cp $(UTILSDIR)/Makefile.in $(DISTDIR)/utils
mkdir $(DISTDIR)/utils/wxMMedia2
cp $(UTILSDIR)/wxMMedia2/Makefile.in $(DISTDIR)/utils/wxMMedia2
mkdir $(DISTDIR)/utils/wxMMedia2/lib
cp $(UTILSDIR)/wxMMedia2/lib/Makefile.in $(DISTDIR)/utils/wxMMedia2/lib
cp $(UTILSDIR)/wxMMedia2/lib/*.h $(DISTDIR)/utils/wxMMedia2/lib
cp $(UTILSDIR)/wxMMedia2/lib/*.cpp $(DISTDIR)/utils/wxMMedia2/lib
cp $(UTILSDIR)/wxMMedia2/lib/*.def $(DISTDIR)/utils/wxMMedia2/lib
mkdir $(DISTDIR)/utils/wxMMedia2/sample
cp $(UTILSDIR)/wxMMedia2/sample/Makefile.in $(DISTDIR)/utils/wxMMedia2/sample
cp $(UTILSDIR)/wxMMedia2/sample/*.cpp $(DISTDIR)/utils/wxMMedia2/sample
mkdir $(DISTDIR)/utils/glcanvas
cp $(UTILSDIR)/glcanvas/Makefile.in $(DISTDIR)/utils/glcanvas
cp $(UTILSDIR)/glcanvas/docs/notes.txt $(DISTDIR)/utils/glcanvas/NOTES.txt
mkdir $(DISTDIR)/utils/glcanvas/$(TOOLKITDIR)
cp $(UTILSDIR)/glcanvas/$(TOOLKITDIR)/Makefile.in $(DISTDIR)/utils/glcanvas/$(TOOLKITDIR)
cp $(UTILSDIR)/glcanvas/$(TOOLKITDIR)/*.h $(DISTDIR)/utils/glcanvas/$(TOOLKITDIR)
cp $(UTILSDIR)/glcanvas/$(TOOLKITDIR)/*.cpp $(DISTDIR)/utils/glcanvas/$(TOOLKITDIR)
MISC_DIST:
mkdir $(DISTDIR)/misc
mkdir $(DISTDIR)/misc/afm
cp $(MISCDIR)/afm/*.afm $(DISTDIR)/misc/afm
mkdir $(DISTDIR)/misc/gs_afm
cp $(MISCDIR)/gs_afm/*.afm $(DISTDIR)/misc/gs_afm
dist: ALL_DIST @GUIDIST@ SAMPLES_DIST UTILS_DIST MISC_DIST
cd _dist_dir; tar ch wx$(TOOLKIT) | gzip -f9 > $(WXARCHIVE); mv $(WXARCHIVE) ..
$(RM) -r _dist_dir
install: $(WXLIB)
#$ ExpandList("WXINSTALLWX");
clean:
$(RM) *.o
$(RM) *.d
$(RM) parser.c
$(RM) lexer.c
$(RM) ./lib/*
rm -f *.o
rm -f *.lo
rm -f parser.c
rm -f lexer.c
rm -f *.a
rm -f *.la
cleanall: clean

View File

@@ -41,14 +41,6 @@
$file =~ s/cp?p?$/obj/;
$project{"WXMSWOBJS"} .= '$D\\' . $file . " ";
}
foreach $file (sort keys %wxHTML) {
next if $wxHTML{$file} =~ /\b16\b/;
$file =~ s/cp?p?$/obj/;
$project{"WXHTMLOBJS"} .= "..\\html\\\$D\\" . $file . " "
}
#$}
# This file was automatically generated by tmake at #$ Now()
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE VC.T!
@@ -120,11 +112,6 @@ $(CPPFLAGS2) /Fo$@ /c /Tc $<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
{..\msw}.c{..\msw\$D}.obj:
cl @<<
$(CPPFLAGS2) /Fo$@ /c /Tc $<
<<
{..\msw\ole}.cpp{..\msw\ole\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
@@ -147,12 +134,28 @@ COMMONOBJS = \
MSWOBJS = #$ ExpandList("WXMSWOBJS");
HTMLOBJS = #$ ExpandList("WXHTMLOBJS");
HTMLOBJS = \
..\html\$D\htmlcell.obj \
..\html\$D\htmlfilter.obj \
..\html\$D\htmlhelp.obj \
..\html\$D\htmlhelp_io.obj \
..\html\$D\htmlparser.obj \
..\html\$D\htmltag.obj \
..\html\$D\htmlwin.obj \
..\html\$D\htmlwinparser.obj \
..\html\$D\mod_fonts.obj \
..\html\$D\mod_hline.obj \
..\html\$D\mod_image.obj \
..\html\$D\mod_layout.obj \
..\html\$D\mod_links.obj \
..\html\$D\mod_list.obj \
..\html\$D\mod_pre.obj \
..\html\$D\mod_tables.obj \
..\html\$D\search.obj
# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
# Add $(HTMLOBJS) if wanting wxHTML classes
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(HTMLOBJS)
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)
# Normal, static library
all: dirs $(DUMMYOBJ) $(OBJECTS) $(PERIPH_TARGET) png zlib xpm jpeg $(LIBTARGET)
@@ -237,7 +240,7 @@ $(WXDIR)\lib\$(WXLIBNAME).lib: $(DUMMYOBJ) $(OBJECTS)
<<
# Update the dynamic link library
$(WXDIR)\lib\$(WXLIBNAME).dll: $(DUMMYOBJ) $(OBJECTS)
$(WXDIR)\lib\$(WXLIBNAME).dll: $(DUMMYOBJ) $(OBJECTS) $(WXDIR)\lib\$(WXLIBNAME).lib
$(link) @<<
$(LINKFLAGS)
-out:$(WXDIR)\lib\$(WXLIBNAME).dll
@@ -358,14 +361,10 @@ clean: $(PERIPH_CLEAN_TARGET) clean_png clean_zlib clean_jpeg clean_xpm
-erase $(OLEDIR)\$D\*.obj
-erase $(OLEDIR)\$D\*.sbr
-erase $(OLEDIR)\$D\*.pdb
-erase $(HTMLDIR)\$D\*.obj
-erase $(HTMLDIR)\$D\*.sbr
-erase $(HTMLDIR)\$D\*.pdb
-rmdir $(D)
-rmdir ole\$(D)
-rmdir ..\generic\$(D)
-rmdir ..\common\$(D)
-rmdir ..\html\$(D)
cleanall: clean
@@ -513,29 +512,25 @@ $(DOCDIR)/latex/techref/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
$(DOCDIR)/pdf/wx.rtf: $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
cd $(DOCDIR)\latex\wx
-copy *.wmf $(DOCDIR)\pdf
-copy *.bmp $(DOCDIR)\pdf
-copy *.bmp *.wmf $(DOCDIR)\pdf
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/pdf/wx.rtf -twice -rtf
cd $(THISDIR)
$(DOCDIR)/pdf/porting.rtf: $(DOCDIR)/latex/porting/porting.tex
cd $(DOCDIR)\latex\porting
-copy *.wmf $(DOCDIR)\pdf
-copy *.bmp $(DOCDIR)\pdf
-copy *.bmp *.wmf $(DOCDIR)\pdf
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/pdf/porting.rtf -twice -rtf
cd $(THISDIR)
$(DOCDIR)/pdf/prop.rtf: $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
cd $(DOCDIR)\latex\proplist
-copy *.wmf $(DOCDIR)\pdf
-copy *.bmp $(DOCDIR)\pdf
-copy *.bmp *.wmf $(DOCDIR)\pdf
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/pdf/prop.rtf -twice -rtf
cd $(THISDIR)
$(DOCDIR)/pdf/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
cd $(DOCDIR)\latex\techref
-copy *.wmf $(DOCDIR)\pdf
-copy *.bmp $(DOCDIR)\pdf
-copy *.bmp *.wmf $(DOCDIR)\pdf
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/pdf/techref.rtf -twice -rtf
cd $(THISDIR)

View File

@@ -30,11 +30,6 @@
my $tag = $wxMSW{$file} =~ /\bO\b/ ? "WXOLESRCS" : "WXMSWSRCS";
$project{$tag} .= $file . " "
}
foreach $file (sort keys %wxHTML) {
next if $wxHTML{$file} =~ /\b16\b/;
$project{"WXHTMLSRCS"} .= $file . " "
}
#$}
# Microsoft Developer Studio Project File - Name="wxWindows" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
@@ -130,7 +125,6 @@ SOURCE=.\src\msw\dummy.cpp
#$ ExpandGlue("WXGENERICSRCS", "# Begin Source File\n\nSOURCE=.\\src\\generic\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\generic\\", "\n# End Source File\n");
#$ ExpandGlue("WXCOMMONSRCS", "# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# End Source File\n");
#$ ExpandGlue("WXCSRCS", "# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# SUBTRACT CPP /YX /Yc /Yu\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# SUBTRACT CPP /YX /Yc /Yu\n# End Source File\n");
#$ ExpandGlue("WXHTMLSRCS", "# Begin Source File\n\nSOURCE=.\\src\\html\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\html\\", "\n# End Source File\n");
# Begin Source File

View File

@@ -3,15 +3,25 @@ user/Makefile
user/wxConvert/*.cpp
user/wxConvert/*.h
user/wxConvert/Makefile
user/wxConvert/Makefile.in
user/wxFile/*.cpp
user/wxFile/*.h
user/wxFile/Makefile
user/wxFile/Makefile.in
user/wxFile/*.xpm
user/wxTest/*.cpp
user/wxTest/*.h
user/wxTest/Makefile
user/wxTest/Makefile.in
user/wxTest/*.xpm
user/wxTest/*.png
user/wxLayout/*.cpp
user/wxLayout/*.h
user/wxLayout/Makefile
user/wxLayout/Makefile.in
user/wxLayout/*.xpm
user/wxLayout/*.png

View File

@@ -20,14 +20,10 @@ cd %src
echo Zipping...
zip32 -@ %dest\wx200gen.zip < %src\distrib\msw\generic.rsp
zip32 -@ -u %dest\wx200gen.zip < %src\distrib\msw\makefile.rsp
zip32 -@ %dest\wx200msw.zip < %src\distrib\msw\msw.rsp
zip32 -@ -u %dest\wx200msw.zip < %src\distrib\msw\makefile.rsp
zip32 -@ %dest\wx200gtk.zip < %src\distrib\msw\gtk.rsp
zip32 -@ -u %dest\wx200gtk.zip < %src\distrib\msw\makefile.rsp
zip32 -@ %dest\wx200stubs.zip < %src\distrib\msw\stubs.rsp
zip32 -@ %dest\wx200mot.zip < %src\distrib\msw\motif.rsp
zip32 -@ -u %dest\wx200mot.zip < %src\distrib\msw\makefile.rsp
zip32 -@ %dest\wx200user.zip < %src\distrib\msw\user.rsp
zip32 -@ %dest\wx200doc.zip < %src\distrib\msw\docsrc.rsp

View File

@@ -17,8 +17,6 @@ General:
- Fixed day_of_week bug (Peter Stadel).
- Added Inside(), SetLeft/Right/Top/Bottom, +, += to wxRect.
- Added wxHTML, an HTML library and widget.
- Added ZIP input stream.
2.1.0, b4, May 9th 1999
-----------------------

View File

@@ -1,69 +1,4 @@
28th August '99: Ninth wxGTK 2.1 snapshot released
As the old makefile system didn't work, I trashed it and wrote
a new one - mo more GNU. This, of course, caused a lot of people
to start sing their song of complaints - any change is a good
opportunity to complain, but the effect of the change is that
we now have shared library support on Linux and Solaris (and
probably others as well) and that the Linux shared library no
longer depends on libstdc++, so that we can finally create an
RPM that works on different Linux distributions. Also, the
Unix make system is now much simpler and directly mirrors its
Windows counterparts, making it easier to understand and maintain.
As it is independent of the various GNU tools, the requirements
for using CVS versions are also much less (any make, any compiler,
no other tools).
Split RPMs into two, one for run-time requirements and one
for developement (mostly headers).
Addition of new layout classes that work like Java's, GTK's
or Qt`s - basically, you pack item in a box and let it tell
you how much space it needs. These class are called wxSizer
and I consider them a great addition as they make true cross-
platform dialogs a child's play and are very quick to write
and easy to read. Do consider using them.
Rewritten all dialogs to make use of the new sizers. Also
added a new wxFileDialog like Win95 and replaced the generic
wxFontDialog with GTK's native font selection dialog - this
probably isn't perfect though.
A few more fixes to wxListCtrl and wxTreeCtrl, implemented
more options and modes like the wxMSW version.
New handler for PNM files. Added CanRead() function to image
handlers, updates to GIF handler for preparing the new wxAnimation
class. We'll also get a PCX and hopefully a TIFF handler so
that we support all common general-purpose file formats I know
about. PhotoShop and PhotoPaint images are not general purpose.
I also tried to correct a wxImage bug in connection with big-endian
vs. little-endian problems, but I have no Sparc to actually test
this.
Inclusion of wxMultiMedia. Can play most sound formats on GTK
and MSW and (using xanim on Unix and Win95's MM functions)
display a video in a wxWindow. This will probably be moved to
the core library.
Small updates to socket code. The MSW version is still missing.
Implemented wxBitmapDataObject class.
Added wxFFileStream using FILE* instead if file desrcriptor.
Useful for creating a "cerr" like class as in normal C++.
Also added "endl" for use with wxTextStream and fixed a few
minor problems with buffered streams etc.
Corrected Tabbing code in wxPanel and made it work with wxNotebook.
Small cursor fixes in connection with text control.
Added experimental wxWizard class. Work in progress.
A few more minor fixes.
6th August '99: Eight wxGTK 2.1 snapshot released
The new makefile system is not able to produce shared libraries

View File

@@ -16,6 +16,23 @@ install instructions just do (in the base dir):
> ldconfig
> exit
On all variants of Unix except Linux (and maybe except *BSD), shared libraries
are not supportet out of the box due to the utter stupidity of libtool, so you'll
have to do this to get shared library support:
> ./configure --with-gtk --disable-static --enable-shared
Then you'll have to edit the wrongly created libtool script. There are two
important entries with respect to shared library creation, which are
archive_cmds="\$LD -shared ....
archive_expsym_cmds="\$LD -shared ....
which should be something like
archive_cmds="\$CC -shared ....
archive_expsym_cmds="\$CC -shared ....
Afterwards you can continue with
> make
@@ -267,13 +284,6 @@ The following options handle the kind of library you want to build.
binary size. Also fewer crashes during the
actual compilation...
--enable-no_deps Enable compilation without creation of
dependency information.
--enable-permissive Enable compilation without creation of
giving erros as soon as you compile with
Solaris ANSI-defying headers...
--enable-mem_tracing Add built-in memory tracing.
--enable-dmalloc Use the dmalloc memory debugger.

View File

@@ -1,15 +1,18 @@
Welcome to wxWindows/Gtk 2.1 snapshot 9,
Welcome to wxWindows/Gtk 2.1 snapshot 8,
you have downloaded version 2.1 of the GTK+ 1.2 port of
the wxWindows GUI library. This is a developers release
and is it not suited for production development. Beware
that major changes can happen before a final release.
Beginning with snapshot 9, wxWindows uses a completely
new make file system on Unix which no longer uses the
various GNU tools and I hope that I'll never again have
to write any more makefiles.
Beginning with snapshot 6, wxWindows uses a completely
new make file system on Unix that uses GNU automake,
GNU autoconf and GNU autoheader. You do not need these
programs in order to use the library, but for taking
part in its development, they are required. Read the
INSTALL.txt file for learning what you can do with the
new configure/automake/libtool system.
More information is available from my homepage at:

View File

@@ -3,23 +3,27 @@
Finalise DnD API.
Fix bug that thread sample reports about non-finished threads.
Added wxExpandedImageList to wxTreeControl.
More testing of Unicode support.
New wxSizer class implementation.
Make wxSockets work on all platform.
Do something about reentry problems with GUI threads
when doing asynchronous work (clipboard transfer,
DnD, sockets, different threads).
Add ID based i18n system as a replacement for the
unelegant gettext system.
Add controls to wxToolbar.
Add controls to toolbar.
Add TIFF handler. Someone? (Hint, hint).
Improve, update translations. Install *.mo files somewehere.
Completely remove internal usage of C++ iostreams.
Sleep, eat, walk, study, shave, read, play piano and wash less.
-------------------- Medium priority ---------------------

View File

@@ -192,9 +192,6 @@ We are using the <a href="cvs.htm">CVS</a> system to develop and maintain wxWind
us to make alterations and upload them instantly to the server in Edinburgh, from
which others can update their source.<P>
To build source from CVS, see the file BuildCVS.txt in the top-level wxWindows distribution
directory.<P>
<H3>How is wxWindows 2 distributed?</H3>
By ftp, and via the <a href="cdrom2.htm">wxWindows CD-ROM</a>.<P>
@@ -206,8 +203,8 @@ finished?) to think very far ahead. However, we know we want to make wxWindows a
and well-publicised as possible. We also want to aim for better platform-independence of
resources such as icons and bitmaps, standardising on the PNG for all platforms.<P>
Other possibilities include: DCOM/CORBA compatibility; a wxWindows book;
<a href="http://wxstudio.linuxbox.com/">wxStudio</a>, an IDE;
Other possibilities include: DCOM/CORBA compatibility; a wxWindows book; an
<a href="http://web.ukonline.co.uk/julian.smart/wxwin/wxide.htm">IDE</a>;
other platforms; other interface abilities such as speech output.<P>
We will investigate the possibility of compiler or operating system vendors bundling wxWindows with

View File

@@ -166,79 +166,6 @@ 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>
<H3>How are the wxWindows makefiles edited under Windows?</H3>
As of wxWindows 2.1, there is a new system written by Vadim Zeitlin, that
generates the makefiles from templates using tmake.<P>
Here are Vadim's notes:<P>
<blockquote>
To use these new makefiles, you don't need anything (but see below).
However, you should NOT modify them because these files will be
rewritten when I regenerate them using tmake the next time. So, if
you find a problem with any of these makefiles (say, makefile.b32)
you'll need to modify the corresponding template (b32.t in this
example) and regenerate the makefile using tmake.<P>
tmake can be found at
<a href="http://www.troll.no/freebies/tmake.html" target=_new>www.troll.no/freebies/tmake.html</a>.
It's a Perl5 program and so it needs Perl (doh). There is a binary for
Windows (available from the same page), but I haven't used it, so
I don't know if it works as flawlessly as "perl tmake" does (note
for people knowing Perl: don't try to run tmake with -w, it won't
do you any good). Using it extremely simple: to regenerate makefile.b32
just go to distrib/msw/tmake and type<P>
<pre>tmake -t b32 wxwin.pro -o ../../src/msw/makefile.b32</pre><P>
The makefiles are untested - I don't have any of Borland, Watcom or
Symantec and I don't have enough diskspace to recompile even with
VC6 using makefiles. The new makefiles are as close as possible to the
old ones, but not closer: in fact, there has been many strange things
(should I say bugs?) in some of makefiles, some files were not compiled
without any reason etc. Please test them and notify me about any problems.
Better yet, modify the template files to generate the correct makefiles
and check them in.<P>
The templates are described in tmake ref manual (1-2 pages of text)
and are quite simple. They do contain some Perl code, but my Perl is
primitive (very C like) so it should be possible for anybody to make
trivial modifications to it (I hope that only trivial modifications
will be needed). I've tagged the ol makefiles as MAKEFILES_WITHOUT_TMAKE
in the cvs, so you can always retrieve them and compare the new ones,
this will make it easier to solve the problems you might have.<P>
Another important file is filelist.txt: it contains the list of all
files to be compiled. Some of them are only compiled in 16/32 bit mode.
Some other are only compiled with some compilers (others can't compile
them) - all this info is contained in this file.<P>
So now adding a new file to wxWindows is as easy as modifying filelist.txt
(and Makefile.ams for Unix ports) and regenerating the makefiles - no
need to modify all files manually any more.<P>
Finally, there is also a file vc6.t which I use myself: this one
generates a project file for VC++ 6.0 (I didn't create vc5.t because
I don't need it and can't test it, but it should be trivial to create
one from vc6.t - probably the only things to change would be the
version number in the very beginning and the /Z option - VC5 doesn't
support edit-and=continue). This is not an officially supported way
of building wxWindows (that is, nobody guarantees that it will work),
but it has been very useful to me and I hope it will be also for
others. To generate wxWindows.dsp run<P>
<pre>tmake -t vc6 wxwin.pro -o ../../wxWindows.dsp</pre><P>
Then just include this project in any workspace or open it from VC IDE
and it will create a new workspace for you.<P>
If all goes well, I'm planning to create a template file for Makefile.ams
under src/gtk and src/motif and also replace all makefiles in the samples
subdirectories with the project files from which all the others will be
generated. At least it will divide the number of files in samples
directory by 10 (and the number of files to be maintained too).
</blockquote>
</font>

View File

@@ -260,7 +260,6 @@ programming.
<li><a href="../../samples/typetest">typetest</a>: tests various data type classes, including
wxTime, wxDate and wxVariant.
<li><a href="../../samples/validate">validate</a>: shows simple use of validation.
<li><a href="../../samples/wizard">wizard</a>: demonstrates the wxWizard class.
<li><a href="../../samples/wxpoem">wxpoem</a>: a little poetry display program.
<li><a href="../../samples/wxsocket">wxsocket</a>: demonstrates the TCP/IP family of classes.
</ul>

View File

@@ -1,213 +0,0 @@
<HTML>
<HEAD>
<TITLE>wxWindows Roadmap</TITLE>
</HEAD>
<BODY>
<a name="top"></a>
<font face="Arial, Lucida Sans, Helvetica">
<table width=100% border=4 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#660000">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
wxWindows Roadmap
</font>
</td>
</tr>
</table>
<P>
<CENTER>
<a href="#schedule">Schedule</a> | <a href="#todo">To-Do List</a>
</CENTER>
<P>
This page represents current thinking about where wxWindows is going in the near,
medium and long-term. It also serves as a schedule for new releases so
that both developers and users can know what to expect when, at least approximately.<P>
Note (1): as the wxWindows effort is voluntary, these are not hard-and-fast deadlines:
but we will endeavour to follow them as closely as possible.<P>
Note (2): the releases described are for wxGTK, wxMSW and wxMotif ports. wxMac currently follows
its own development path but is due to merge with the main code base in November/December.
Also, minor snapshot releases for specific platforms may be
available at dates convenient to the developers.<P>
<CENTER>
<HR> <FONT SIZE=+2><I><B><a name="schedule">Schedule</a></B></I></FONT> <HR>
</CENTER>
<P>
<H4>Release 2.0.?</H4>
<ul>
<li>Release date: October 3rd, 1999
<li>This beta is intended to be the last stable snapshot before wxWindows
is split into base and GUI libraries.
<li>New wxGrid in beta.
<li>wxWizard (beta)
<li>wxDialUpManager and wxPhoneDialer (beta)
<li>wxFontEnumerator (beta)
<li>Preliminary support for different encodings
<li>wxPostEvent function
</ul>
<P>
<H2>Release 2.1</H2>
<ul>
<li>Release date: November 7th, 1999
<li>Splits wxWindows into base and GUI libraries. Most, but not all makefiles
are expected to support this: for the rest, the makefiles will build a valid
combined base/GUI library for GUI applications only.
<li>New wxGrid.
<li>wxSocket working.
<li>Full support for fonts in different encodings
<li>Tested multithreading support (wxThread)
<li>wxHTML printing (possibly).
<li>Better i18n support (i.e. more translations)
<li>Animation classes (possibly, low priority).
<li>PCX writing capability (possibly, low priority).
<li>wxImage handlers in separate .h and .cpp files.
<li>Rewritten timer.cpp, possible wxChrono class.
<li>Bug tracking system in place.
</ul>
<P>
<H4>Release 2.1.1</H4>
<ul>
<li>Release date: January 9th, 2000
<li>Miscellaneous fixes and small enhancements.
</ul>
<P>
<H4>Release 2.1.2</H4>
<ul>
<li>Release date: March 5th, 2000
<li>Miscellaneous fixes and small enhancements.
<li>wxDateTime class in beta.
</ul>
<P>
<H4>Release 2.1.3</H4>
<ul>
<li>Release date: May 7th, 2000
<li>Unicode compilation starting to work in wxGTK and wxMSW.
</ul>
<P>
<H2>Release 2.2</H2>
<ul>
<li>Release date: c. July 2nd, 2000
<li>Unicode compilation working in wxGTK and wxMSW.
<li>wxDateTime class.
<li>Regular expressions support.
</ul>
<P>
<H2>Release 2.3</H2>
<ul>
<li>Release date: unknown
<li>WinCE port available.
</ul>
<P>
<CENTER>
<HR> <FONT SIZE=+2><I><B><a name="todo">To-Do List</a></B></I></FONT> <HR>
</CENTER>
<P>
Developers: please feel free to add to these, and delete them when they are done.
<P>
<B><I>General</I></B><P>
<ul>
<li>wxHTML printing. When finished, this will allow an application to generate
printed reports with very little effort.
<li>wxSocket.
<li>Split library into several, for base (classes and functions usable by console and GUI
applications), console (classes and functions usable by console application only)
and GUI (classes and functions usable by GUI application only).
<li>Extend and unify drag and drop handling (e.g. we need to specify multiple drop targets
that can handle multiple formats).
<li>Expand the number of controls that can be specified in a WXR file;
add constraint specification to WXR syntax and Dialog Editor; add multilanguage support to WXR.
May be we'd better change the format completely and replace WXR with XML
(providing conversion utility for old files)?
<li>Rewrite Dialog Editor.
<li>Modem-oriented classes: wxDialUpManager for dialing up the ISP and
determining if there is a connection to Internet on the machine and
wxPhoneDialer for dialing arbitrary phone numbers and otherwise communicating
with the modem.
<li>PCX writing code.
<li>GIF animation code.
<li>Tidying of timer code, addition of wxChrono class.
<li>Debug wxPostScriptDC further.
<li>wxDateTime class.
<li>Expansion of wxHTML to support further tags, and frames.
<li>MGL port (see Backroom/Future Ports page).
<li>Rotated text support.
<li>FreeType support.
<li>Support for 'skins', perhaps using a set of alternative control and window classes
written generically in wxWindows.
<li>Serial and parallel port support.
<li>Modem and telephony support.
<li>Book, tutorial.
<li>More examples.
</ul>
<P>
<B><I>wxMSW</I></B><P>
<ul>
<li>Windows CE port.
<li>Cure bug whereby in a panel within another panel, all buttons become
default buttons (heavy black border).
<li>Write a RC->WXR converter.
</ul>
<P>
<B><I>wxGTK</I></B><P>
<ul>
<li>GNOME/KDE integration libraries.
</ul>
<P>
<B><I>wxMotif</I></B><P>
<ul>
<li>Fix menu accelerators
<li>Fix refresh problems
<li>Allow wxSystemSettings to be configurable, perhaps via a control
panel application.
</ul>
</BODY>
</HTML>

View File

@@ -34,7 +34,7 @@ variety of platforms. The second part details the wxWindows code organization an
its goal it to make wxWindows as uniform as possible without imposing too
many restrictions on the programmer.
<P>
Acknowledgements: This guide is partly based on <A
Acknowledgements: This guide is partly based on <A
HREF=http://www.mozilla.org/docs/tplist/catBuild/portable-cpp.html target=_top>
C++ portability guide</A> by David Williams.
@@ -50,7 +50,6 @@ C++ portability guide</A> by David Williams.
<LI><A HREF="#no_stl">Don't use STL</A></LI>
<LI><A HREF="#no_fordecl">Don't declare variables inside <TT>for()</TT></A></LI>
<LI><A HREF="#no_nestedclasses">Don't use nested classes</A></LI>
<LI><A HREF="#no_ternarywithobjects">Use ternary operator ?: carefully</A></LI>
</OL>
<BR>
<LI>General recommendations</LI>
@@ -101,15 +100,14 @@ C++ portability guide</A> by David Williams.
<LI><A HREF="#indentation">Indent your code with 4 spaces (no tabs!)</A></LI>
<LI><A HREF="#class_decl">Order of parts in a class declarations</A></LI>
</OL>
<BR>
<LI>More about naming conventions</LI>
<OL>
<LI><A HREF="#wx_prefix">Use wx or WX prefix for all public symbols</A></LI>
<LI><A HREF="#wxdllexport">Use WXDLLEXPORT with all classes/functions in
<LI><A HREF="#wxdllexport">Use WXDLLEXPORT with all classes/functions in
wxMSW/common code</A></LI>
<LI><A HREF="#set_get">Use Set/Get prefixes for accessors</A></LI>
<LI><A HREF="#constants">wxNAMING_CONSTANTS</A></LI>
</OL>
<BR>
@@ -125,7 +123,7 @@ C++ portability guide</A> by David Williams.
<H3>General C++ Rules</H3>
<UL>
<LI>New or not widely supported C++ features</LI>
<P>The usage of all features in this section is not recommended for one reason: they appeared in C++ relatively recently and are not yet
supported by all compilers. Moreover, when they're supported, there are
differences between different vendor's implementations. It's understandable that
@@ -135,7 +133,7 @@ of your favourite C++ abilities are indicated.
<P>Just to suppress any doubts that there are compilers which don't support
these new features, you can think about Win16 (a.k.a. Win 3.1) compilers,
<I>none</I> of which supports <I>any</I> feature from the list below.
<OL>
<P><LI><A NAME="no_templates"></A><B>Don't use C++ templates</B></LI><P>
Besides the reasons mentioned above, template usage also makes the
@@ -147,7 +145,7 @@ most commonly, polymorphic containers (in the sense that they can contain object
any type without compromising C++ type system, i.e. using <TT>void *</TT>
is out of question). wxWindows provides <A HREF="TODO">dynamic
arrays and lists</A> which are sufficient in 99% of cases - please don't hesitate
to use them. Lack of template is not a reason to use static arrays or
to use them. Lack of template is not a reason to use static arrays or
type-less (passing by <TT>void *</TT>) containers.
<P><LI><A NAME="no_exceptions"></A><B>Don't use C++ exceptions</B></LI><P>
@@ -182,10 +180,10 @@ might help here:<P>
void ReadAddressBookFile(const wxString& strName)
{
wxFile file;
if ( !file.Open(strFile) )
return;
...process it...
}
</PRE>
@@ -195,19 +193,19 @@ void ReadAddressBookFile(const wxString& strName)
bool ReadAddressBookFile(const wxString& strName)
{
wxFile file;
if ( !file.Open(strFile) ) {
// wxFile logged an error because file couldn't be opened which
// contains the system error code, however it doesn't know what
// this file is for and an error message "can't open $GLCW.ADB"
// can be quite confusing for the user. Here we say what we mean.
wxLogError("Can't read address book from '%s'!",
wxLogError("Can't read address book from '%s'!",
strName.c_str());
return false;
}
...process it...
return true;
}
</PRE>
@@ -219,22 +217,22 @@ bool ReadAddressBookFile(const wxString& strName)
bool ReadAddressBookFile(const wxString& strName)
{
wxFile file;
// start a block inside which all log messages are suppressed
{
wxLogNull noLog;
if ( !file.Open(strFile) )
return false;
}
...process it...
return true;
}
</PRE></LI>
</UL>
</OL>
<P><LI><A NAME="no_rtti"></A><B>Don't use RTTI</B></LI><P>
RTTI stands for Run-Time Type Information and there is probably no other
reason not to use it except the portability issue and the fact that it adds
@@ -242,7 +240,7 @@ reason not to use it except the portability issue and the fact that it adds
in the implementations I'm aware of).
<P><U>Workaround</U>: use wxWindows RTTI system which allows you to do almost
everything which the new C++ RTTI, except that, of course, you have to use
macros instead of the (horrible looking, BTW) <TT>dynamic_cast</TT>.
macros instead of the (horrible looking, BTW) <TT>dynamic_cast</TT>.
<P><LI><A NAME="no_namespaces"></A><B>Don't use namespaces</B></LI><P>
This topic is subject to change with time, however for the moment all wxWindows
@@ -314,17 +312,17 @@ you can try the following:
private:
class PrivateLibClass *m_pObject;
};
// in the .cpp file
class PrivateLibClass { ... };
PublicLibClass::PublicLibClass()
{
m_pObject = new PrivateLibClass;
...
}
PublicLibClass::~PublicLibClass()
{
delete m_pObject;
@@ -333,39 +331,20 @@ you can try the following:
<P>A nice side effect is that you don't need to recompile all the files
including the header if you change the PrivateLibClass declaration (it's
an example of a more general interface/implementation separation idea).
<P><LI><A NAME="no_ternarywithobjects"></A><B>Use ternary operator ?: carefully</B></LI><P>
The ternary operator <TT>?:</TT> shouldn't be used with objects (i.e. if any
of its operands are objects) because some compilers (notable Borland C++) fail
to compile such code.
<P><U>Workaround</U>: use <TT>if/else</TT> instead.
<PRE>
wxString s1, s2;
// Borland C++ won't compile the line below
wxString s = s1.Len() < s2.Len() ? s1 : s2;
// but any C++ compiler will compile this
wxString s;
if ( s1.Len() < s2.Len() )
s = s1;
else
s = s2;
</PRE>
</OL>
<BR>
<LI>General recommendations</B></LI><P>
While the recommendations in the previous section may not apply to you if you're
only working with perfect compilers which implement the very newest directives of
C++ standard, this section contains compiler- (and language-) independent advice
C++ standard, this section contains compiler- (and language-) independent advice
which <B>must</B> be followed if you wish to write correct, i.e. working, programs. It
also contains some C/C++ specific remarks in the end which are less
also contains some C/C++ specific remarks in the end which are less
important.
<OL>
<P><LI><A NAME="no_globals"></A><B>No global variables with constructors</B></LI><P>
In C++, the constructors of global variables are called before the
<TT>main()</TT> function (or <TT>WinMain()</TT> or any other program entry point)
<TT>main()</TT> function (or <TT>WinMain()</TT> or any other program entry point)
starts executing. Thus, there is no possibility to initialize <I>anything</I>
before the constructor call. The order of construction is largely
implementation-defined, meaning that there is no guarantee that one global
@@ -444,7 +423,7 @@ sizes are different. A small table illustrates it quite well:
Although close to the heart of many C programmers (I plead guilty), code like
classical <TT>if ( (c = getchar()) != EOF )</TT> is bad because it prevents you
from enabling "assignment in conditional expression" warning (see also
<A HREF="#no_warnings">above</A>) which is helpful to detect common
<A HREF="#no_warnings">above</A>) warning which is helpful to detect common
mistypes like <TT>if ( x = 2 )</TT> instead of <TT>if ( x == 2 )</TT>.
<P><LI><A NAME="no_comment_code"></A><B>Use <TT>#if 0</TT> rather than comments to temporarily
@@ -516,10 +495,10 @@ like files without terminating new-line. Such files also give a warning message
when loaded to vim (the Unix programmer's editor of choice :-)), so please think
about terminating the last line.
</OL>
<BR>
<LI>Style choices</B></LI><P>
All wxWindows specific style guidelines are specified in the next
All wxWindows specific style guidelines are specified in the next
section, here are the choices which are not completely arbitrary,
but have some deeper and not wxWindows-specific meaning.
@@ -539,9 +518,9 @@ following code fragment is:
void Foo::Bar(int x_)
{
...
x = x_;
...
}
</PRE>
@@ -612,7 +591,7 @@ However, the <TT>const</TT> keyword is confusing here, adds nothing to the code
and even cannot be removed if <TT>Foo()</TT> is virtual and overridden (because
the names are mangled differently). So, <I>for arguments passed by value</I>
you shouldn't use <TT>const</TT>.
<P>Of course, it doesn't apply to functions such as
<P>Of course, it doesn't apply to functions such as
<TT>void PrintMessage(const char *text)</TT> where <TT>const</TT> is mandatory.
</OL>
</UL>
@@ -628,7 +607,7 @@ The wxWindows files for each supported platform have their own subdirectories
in "include" and "src". So, for example, there is "src/msw", "include/gtk"
etc. There are also two special subdirectories called "common" and
"generic". The common subdirectory contains the files which are platform
independent (wxObject, wxString, ...) and the generic one the generic
independent (wxObject, wxString, ...) and the generic one the generic
implementations of GUI widgets, i.e. those which use only other wxWindows
classes to implement them. For the platforms where the given functionality
cannot be implemented natively, the generic implementation is used and the native
@@ -733,12 +712,12 @@ usage 'public domain' (the copyright holder does not assert the copyright).<P>
<P><LI><A NAME="indentation"></LI><B>Indent your code with 4 spaces (no tabs!)</B>
<P><LI><A NAME="class_decl"></LI><B>Order of parts in a class declarations</B><P>
</OL>
<P><LI>More about naming conventions</LI><P>
<OL>
<P><LI><A NAME="wx_prefix"></LI><B>Use wx or WX prefix for all public symbols</B>.
wx should be used for functions and classes, WX for macros.
<P><LI><A NAME="wxdllexport"</LI><B>Use WXDLLEXPORT with all classes/functions in
<P><LI><A NAME="wxdllexport"</LI><B>Use WXDLLEXPORT with all classes/functions in
wxMSW/common code</B>
The title says it all - every public (in the sense that it is not internal to
the library) function or class should have WXDLLEXPORT macro in its
@@ -755,33 +734,14 @@ keyword ordering for exporting data.
<P>There also several other places where you should take care of shared
library case: all IMPLEMENT_xxx macros which are usually used in the
corresponding .cpp files must be taken inside
corresponding .cpp files must be taken inside
"<TT>&#35;if !USE_SHARED_LIBRARY</TT>" and in the <TT>&#35;if USE_SHARED_LIBRARY</TT>
case you should put them inside <TT>common/cmndata.cpp</TT> file.
<P><LI><A NAME="set_get"></LI><B>Use Set/Get prefixes for accessors</B><P>
There is a convention in wxWindows to prefix the accessors (i.e. any simple, in
general, inline function which does nothing else except changing or returning
There is a convention in wxWindows to prefix the accessors (i.e. any simple, in
general, inline function which does nothing else except changing or returning
the value of a member variable) with either <TT>Set</TT> or <TT>Get</TT>.
<P><LI><A NAME="constants"></LI><B>wxNAMING_CONSTANTS</B><P>
The constants in wxWindows code should be defined using <TT>enum</TT> C++
keyword (and not with <TT>#define</TT> or <TT>static const int</TT>). They
should be declared in the global scope (and not inside class declaration) and
their names should start with a <TT>wx</TT> prefix. Finally, the constants
should be in all capital letters (except the first 2) to make it easier to
distinguish them from the variables with underscores separating the words.
<P>For example, file-related constants should be declared like this:
<pre>
enum
{
wxFILEOPEN_READ,
wxFILEOPEN_WRITE,
wxFILEOPEN_READWRITE
};
</pre>
</OL>
<P><LI>Miscellaneous</LI><P>
@@ -791,7 +751,7 @@ It's really a trivial piece of advice, but remember that using forward declarati
instead of including the header of corresponding class is better because not
only does it minimize the compile time, it also simplifies the dependencies
between different source files.
<P>On a related subject, in general, you should try not to include other
<P>On a related subject, in general, you should try not to include other
headers from a header file.
<P><LI><A NAME="debug_macros"></LI><B>Use debugging macros</B><P>
@@ -804,7 +764,7 @@ stubs for not (yet) implemented functions which silently return incorrect
values - otherwise, a person using a not implemented function has no idea that
it is, in fact, not implemented.
<P>As all debugging macros only do something useful if the symbol
<TT>__WXDEBUG__</TT> is defined, you should compile your programs in debug mode to profit
<TT>__DEBUG__</TT> is defined, you should compile your programs in debug mode to profit
from them.
</OL>
</UL>

View File

@@ -1,168 +0,0 @@
<HTML>
<HEAD>
<TITLE>wxWindows Book</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<font face="Arial, Lucida Sans, Helvetica">
<table width=100% border=4 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#660000">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
wxWindows Book
</font>
</td>
</tr>
</table>
<P>
<center>
<a href="#about">About</a> |
<a href="#participants">Participants</a> |
<a href="#publication">Publication</a> |
<a href="#suggestions">Suggestions</a> |
<a href="#format">Format</a> |
<a href="#contents">Contents</a>
</center>
<hr>
<H3><a name="about">About the wxWindows book</a></H3>
Discussions have been taking place on the wxwin-developers list about
collaboratively writing a wxWindows book. The concensus is to write a tutorial
book for people with reasonable C++ experience, with the possibility of including the API reference either in a very compact
form at the back of the book, or as a separate volume. The book would almost certainly
contain a CD-ROM with wxWindows and its documentation. It would probably be available
for free on-line, publisher permitting.<P>
Goals for the book:<P>
<ol>
<li> to allow users to become accomplished wxWindows developers rapidly;
<li> to be useful over a longer period than just the first few weeks, since
there are a lot of complex areas to address and not all features will be
used up-front in a project;
<li> to promote wxWindows to a wider audience;
<li> to make at least some money for the authors.
</ol>
<P>
Audience: beginners + experienced wxWindows users, but with reasonable C++
knowledge.<P>
It is suggested that any financial return from the book be allocated on a points system,
with a predefined number of points for chapters, indexing, editing, proof-reading etc.<P>
<hr>
<H3><a name="participants">Participants</a></H3>
So far, the following people are interested in taking part in this project:<P>
<ul>
<li><a href="mailto:tomr@scitechsoft.com">Tom Ryan</a>, SciTech Software.
<li><a href="mailto:robin@alldunn.com">Robin Dunn</a>. <i>Chapter on wxPython.</i>
<li><a href="mailto:mheck@www.surveyorcorp.com">Matt Heck</a>, SurveyorCorp Inc.
<i>
<ol>
<li>a case study of how and why we've used wxWindows at Surveyor Corp., and
how it's worked out so far;
<li>an appendix something similar about how to use wxLIVID for video capture and display;
<li>proofreading
</ol>
</i>
<li><a href="mailto:julian.smart@ukonline.co.uk">Julian Smart</a>.
<li><a href="mailto:zeitlin@dptmaths.ens-cachan.fr">Vadim Zeitlin</a>.
<li><a href="mailto:slavik2@czn.cz">Vaclav Slavik</a>. <i>wxHTML section</i>
<li><a href="mailto:csomor@advancedconcepts.ch">Stefan Csomor</a>. <i>the sequence of events i.e. which action provokes which event sequence,
this is implicit for the use on MSW, but very important for other systems; and porting to new platforms</i>
<li><a href="mailto:karsten@phy.hw.ac.uk">Karsten Ballueder</a>. <i>short tutorials on some useful
GNU tools, like autoconf/configure/make, programming
strategies, etc.</i>
</ul>
<hr>
<H3><a name="publication">Publication</a></H3>
Tom Ryan originally wrote:<P>
<PRE>
Hi Guys,
I just wanted to let you know that I have spoken with officials here
at California State University, Chico and they are potentially
interested in publishing a book on wxWindows! A wxWindows
book would give wxWindows a great deal of exposure.
These discussions came out of the fact that CSUC wanted to
switch from MFC to wxWindows in their GUI programming classes,
but there was not a book available for students to work with.
I was thinking that the first edition could be primarily the reference
documentation combined with a basic wxTutorial and examples. In
this case, it would be fairly straightforward to get something out
initially and then we could take it from there.
</PRE>
<p>
<a href="mailto:benles@powernet.net">Ben Allfree</a> has also expressed an interest
in publishing a wxWindows book, and distributing it via Amazon. Ben was thinking
in terms of a quickie job using the existing reference manual.<P>
Another publishing name to think of is O'Reilly. They would probably give us a lot
of guidance for style, formatting, etc.<P>
<a href="mailto:Roald.Ribe@winlink.no">Roald Ribe</a> writes:
"<a href="http://www.bruceeckel.com/javabook.html" target=_new>Thinking in Java</a>
is published both as a PDF for internet (by the author) and in print by Prentice Hall."<P>
<hr>
<H3><a name="suggestions">Suggestions and comments</a></H3>
<ul>
<li>Chapter on converting from MFC. (Julian Smart)
<li>A chapter on why some inconsistencies are almost always going to show up in a
multiplatform toolkit, how to avoid them, how to deal with when you have
no choice, and (if wxBook explains the internals or philosophy of
wxWindows at all) how wxWindows attempts to minimize the number we
encounter. (Matt Heck)
<li>Creating the shortest possible path to writing "Hello World" from scratch in wxWindows. (Matt Heck)
<li>How will royalties for subsequent editions be shared out? (Tom Ryan)
<li>"My personal feeling is that this project will wind up being developed
by a small team, led by an editor that will wind up doing about half
of the total amount of work." (Tom Ryan)
</ul>
<hr>
<H3><a name="format">Text format</a></H3>
This depends partly on the publisher, but one possibility is to target Word but have
submissions in a number of formats including Latex. We should eventually write a style
and formatting guide.<P>
<hr>
<H3><a name="contents">Contents</a></H3>
This is open to suggestion.<P>
Last year, <a href="mailto:mlorenz@visionx.com">Mike Lorenz</a> of <a href="http://www.visionx.com">VisionX</a>
suggested this
<a href="http://www.visionx.com/wx/tutorial_outline.htm">tutorial outline</a>, which could
be a good starting point.<P>
</font>
</BODY>
</HTML>

View File

@@ -137,10 +137,6 @@ Loads the accelerator table from a Windows resource (Windows only).
\docparam{resource}{Name of a Windows accelerator.}
\pythonnote{The wxPython constructor accepts a list of
wxAcceleratorEntry objects, or 3-tuples consisting of flags, keyCode,
and cmd values like you would construct wxAcceleratorEntry objects with.}
\membersection{wxAcceleratorTable::\destruct{wxAcceleratorTable}}
\func{}{\destruct{wxAcceleratorTable}}{\void}

View File

@@ -54,15 +54,9 @@ when the button is clicked.}
Default constructor.
\func{}{wxBitmapButton}{
\param{wxWindow* }{parent},
\param{wxWindowID }{id},
\param{const wxBitmap\& }{bitmap},\rtfsp
\param{const wxPoint\& }{pos = wxDefaultPosition},
\param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long }{style = wxBU\_AUTODRAW},
\param{const wxValidator\& }{validator = wxDefaultValidator},
\param{const wxString\& }{name = ``button"}}
\func{}{wxBitmapButton}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxBitmap\& }{bitmap},\rtfsp
\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long}{ style = wxBU\_AUTODRAW}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}}
Constructor, creating and showing a button.

View File

@@ -1,117 +0,0 @@
\section{\class{wxBoxSizer}}\label{wxboxsizer}
The basic idea behind a box sizer is that windows will most often be laid out in rather
simple basic geomerty, typically in a row or a column or several hierachies of either.
As an exmaple, we will construct a dialog that will contain a text field at the top and
two buttons at the bottom. This can be seen as a top-hierarchy column with the text at
the top and buttons at the bottom and a low-hierchary row with an OK button to the left
and a Cancel button to the right. In many cases (particulary dialogs under Unix and
normal frames) the main window will be resizable by the user and this change of size
will have to get propagated to its children. In our case, we want the text area to grow
with the dialog, whereas the button shall have a fixed size. In addition, there will be
a thin border around all controls to make the dialog look nice and - to make matter worse -
the buttons shall be centred as the width of the dialog changes.
It is the unique feature of a box sizer, that it can grow in both directions (height and
width) but can distribute its growth in the main direction (horizontal for a row) {\it unevenly}
among its children. In our example case, the vertical sizer is supposed to propagate all its
height changes to only the text area, not to the button area. This is determined by the {\it option} parameter
when adding a window (or another sizer) to a sizer. It is interpreted
as a weight factor, i.e. it can be zero, indicating that the window may not be resized
at all, or above zero. If several windows have a value above zero, the value is interpreted
relative to the sum of all weight factors of the sizer, so when adding two windows with
a value of 1, they will both get resized equally much and each half as much as the sizer
owning them. Then what do we do when a column sizer changes its width? This behaviour is
controlled by {\it flags} (the second parameter of the Add() function): Zero or no flag indicates that
the window will get aligned at the left (in a column sizer) and the top (row sizer), whereas
wxALIGN\_RIGHT and wxALIGN\_BOTTOM will do what they say. The item can also be centered
using the wxCENTRE flag (same as wxCENTER) or it can be forced to grow with the sizer (using
the wxGROW flag (same as wxEXPAND)).
As mentioned above, any window belonging to a sizer may have border, and it can be specified
which of the four sides may have this border, using the wxTOP, wxLEFT, wxRIGHT and wxBOTTOM
constants or wxALL for all directions (and you may also use wxNORTH, wxWEST etc instead). These
flags can be used in combintaion with the alignement flags above as the second paramter of the
Add() method using the binary or operator |. The sizer of the border also must be made known,
and it is the third parameter in the Add() method. This means, that the entire behaviour of
a sizer and its children can be controlled by the three parameters of the Add() method.
\begin{verbatim}
// we want to get a dialog that is stretchable because it
// has a text ctrl at the top and two buttons at the bottom
MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title ) :
wxDialog( parent, id, title, wxDefaultPosition, wxDefaultSize, wxDIALOG_STYLE | wxRESIZE_BORDER )
{
wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
// create text ctrl with minimal size 100x60
topsizer->Add(
new wxTextCtrl( this, -1, "My text.", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE),
1, // make vertically stretchable
wxEXPAND | // make horizontally stretchable
wxALL, // and make border all around
10 ); // set border width to 10
wxBoxSizer *button_sizer = new wxBoxSizer( wxHORIZONTAL );
button_sizer->Add(
new wxButton( this, wxID_OK, "OK" ),
0, // make horizontally unstretchable
wxALL, // make border all around (implicit top alignment)
10 ); // set border width to 10
button_sizer->Add(
new wxButton( this, wxID_CANCEL, "Cancel" ),
0, // make horizontally unstretchable
wxALL, // make border all around (implicit top alignment)
10 ); // set border width to 10
topsizer->Add(
button_sizer,
0, // make vertically unstretchable
wxCENTER ); // no border and centre horizontally
SetAutoLayout( TRUE ); // tell dialog to use sizer
SetSizer( topsizer ); // actually set the sizer
topsizer->Fit( this ); // set size to minimum size as calculated by the sizer
topsizer->SetSizeHints( this ); // set size hints to honour mininum size
}
\end{verbatim}
\wxheading{Derived from}
\helpref{wxSizer}{wxsizer}
\helpref{wxObject}{wxobject}
\membersection{wxBoxSizer::wxBoxSizer}\label{wxboxsizerwxboxsizer}
\func{}{wxBoxSizer}{\param{int }{orient}}
Constructor for a wxBoxSizer. {\it orient} may be either of wxVERTICAL
or wxHORIZONTAL for creating either a column sizer or a row sizer.
\membersection{wxBoxSizer::RecalcSizes}\label{wxboxsizerrecalcsizes}
\func{void}{RecalcSizes}{\void}
Implements the calculation of a box sizer's dimensions and then sets
the size of its its children (calling \helpref{wxWindow::SetSize}{wxwindowsetsize}
if the child is a window). It is used internally only and must not be called
by the users. Documented for information.
\membersection{wxBoxSizer::CalcMin}\label{wxboxsizercalcmin}
\func{wxSize}{CalcMin}{\void}
Implements the calculation of a box sizer's minimal. It is used internally
only and must not be called by the users. Documented for information.
\membersection{wxBoxSizer::GetOrientation}\label{wxboxsizergetorientation}
\func{int}{GetOrientation}{\void}
Returns the orientation of the boxsizer, either of wxVERTICAL
or wxHORIZONTAL.

View File

@@ -100,22 +100,9 @@ that are not static can have \helpref{validators}{wxvalidator} associated with t
{\large {\bf Window layout}}
There are two different systems for layouting windows (and dialogs in particluar).
One is based upon so-called sizers and it requires less typing, thinking and calculating
and will in almost all cases produce dialogs looking equally well on all platforms, the
other is based on so-called constraints and allows for more detailed layouts.
\overview{Overview}{constraintsoverview}
These are the classes relevant to the sizer-based layout.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxSizer}{wxsizer}}{Abstract base class}
\twocolitem{\helpref{wxBoxSizer}{wxboxsizer}}{A sizer for laying out windows in a row or column}
\twocolitem{\helpref{wxStaticBoxSizer}{wxstaticboxsizer}}{Same as wxBoxSizer, but with surrounding static box}
\end{twocollist}
\overview{Overview}{constraintsoverview} over the constraints-based layout.
These are the classes relevant to constraints-based window layout.
These are the classes relevant to automated window layout.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}}{Represents a single constraint dimension}
@@ -236,7 +223,6 @@ These are the data structure classes supported by wxWindows.
\twocolitem{\helpref{wxRegion}{wxregion}}{A class representing a region}
\twocolitem{\helpref{wxString}{wxstring}}{A string class}
\twocolitem{\helpref{wxStringList}{wxstringlist}}{A class representing a list of strings}
\twocolitem{\helpref{wxStringTokenizer}{wxstringtokenizer}}{A class for interpreting a string as a list of tokens or words}
\twocolitem{\helpref{wxRealPoint}{wxrealpoint}}{Representation of a point using floating point numbers}
\twocolitem{\helpref{wxSize}{wxsize}}{Representation of a size}
\twocolitem{\helpref{wxTime}{wxtime}}{A class for time manipulation}
@@ -282,8 +268,7 @@ classes, functions and macros.
\overview{Overview}{ipcoverview}
wxWindows provides a simple interprocess communications facilities
based on DDE. [Note that this is currently work in progress and may not
function properly.]
based on DDE.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDDEClient}{wxddeclient}}{Represents a client}

View File

@@ -90,17 +90,10 @@ Destructor, destroying the choice item.
Adds the item to the end of the choice control.
\func{void}{Append}{\param{const wxString\& }{ item}, \param{void* }{clientData}}
Adds the item to the end of the combobox, associating the given data
with the item.
\wxheading{Parameters}
\docparam{item}{String to add.}
\docparam{clientData}{Client data to associate with the item.}
\membersection{wxChoice::Clear}\label{wxchoiceclear}
\func{void}{Clear}{\void}
@@ -140,20 +133,6 @@ Gets the number of columns in this choice item.
This is implemented for Motif only.
\membersection{wxChoice::GetClientData}\label{wxchoicegetclientdata}
\constfunc{void*}{GetClientData}{\param{int}{ n}}
Returns a pointer to the client data associated with the given item (if any).
\wxheading{Parameters}
\docparam{n}{An item, starting from zero.}
\wxheading{Return value}
A pointer to the client data, or NULL if the item was not found.
\membersection{wxChoice::GetSelection}\label{wxchoicegetselection}
\constfunc{int}{GetSelection}{\void}
@@ -186,18 +165,6 @@ Gets the selected string, or the empty string if no string is selected.
Returns the number of strings in the choice control.
\membersection{wxChoice::SetClientData}\label{wxchoicesetclientdata}
\func{void}{SetClientData}{\param{int}{ n}, \param{void* }{data}}
Associates the given client data pointer with the given item.
\wxheading{Parameters}
\docparam{n}{The zero-based item.}
\docparam{data}{The client data.}
\membersection{wxChoice::SetColumns}\label{wxchoicesetcolumns}
\func{void}{SetColumns}{\param{int}{ n = 1}}

View File

@@ -9,7 +9,6 @@
\input array.tex
\input arrstrng.tex
\input autoobj.tex
\input boxsizer.tex
\input busycurs.tex
\input busyinfo.tex
\input button.tex
@@ -173,7 +172,6 @@
\input sashevt.tex
\input sashlayw.tex
\input sashwin.tex
\input sbsizer.tex
\input screendc.tex
\input scrolbar.tex
\input scrlwevt.tex
@@ -182,7 +180,6 @@
\input sngchdlg.tex
\input size.tex
\input sizeevt.tex
\input sizer.tex
\input slider.tex
\input sckaddr.tex
\input socket.tex

View File

@@ -80,10 +80,10 @@ which is generated by a control.}
\membersection{wxCommandEvent::m\_clientData}
\member{void*}{m\_clientData}
\member{char*}{m\_clientData}
Contains a pointer to client data for listboxes and choices, if the event
was a selection. Beware, this is not implemented anyway...
was a selection.
\membersection{wxCommandEvent::m\_commandInt}
@@ -123,10 +123,10 @@ Returns TRUE or FALSE for a checkbox selection event.
\membersection{wxCommandEvent::GetClientData}
\func{void*}{GetClientData}{\void}
\func{char*}{GetClientData}{\void}
Returns client data pointer for a listbox or choice selection event
(not valid for a deselection). Beware, this is not implmented anywhere...
(not valid for a deselection).
\membersection{wxCommandEvent::GetExtraLong}
@@ -163,7 +163,7 @@ is a deselection.
\membersection{wxCommandEvent::SetClientData}
\func{void}{SetClientData}{\param{void*}{ clientData}}
\func{void}{SetClientData}{\param{char*}{ clientData}}
Sets the client data for this event.

View File

@@ -21,7 +21,7 @@ A combobox permits a single selection only. Combobox items are numbered from zer
\wxheading{Window styles}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxCB\_SIMPLE}}{Creates a combobox with a permanently displayed list. Windows only. }
\twocolitem{\windowstyle{wxCB\_SIMPLE}}{Creates a combobox with a permanently displayed list.}
\twocolitem{\windowstyle{wxCB\_DROPDOWN}}{Creates a combobox with a drop-down list.}
\twocolitem{\windowstyle{wxCB\_READONLY}}{Creates a combo box consisting of a drop-down list and static text item
displaying the current selection.}
@@ -102,7 +102,7 @@ Destructor, destroying the combobox.
Adds the item to the end of the combobox.
\func{void}{Append}{\param{const wxString\& }{ item}, \param{void* }{clientData}}
\func{void}{Append}{\param{const wxString\& }{ item}, \param{char* }{clientData}}
Adds the item to the end of the combobox, associating the given data
with the item.
@@ -168,7 +168,7 @@ The position if found, or -1 if not found.
\membersection{wxComboBox::GetClientData}\label{wxcomboboxgetclientdata}
\constfunc{void*}{GetClientData}{\param{int}{ n}}
\constfunc{char*}{GetClientData}{\param{int}{ n}}
Returns a pointer to the client data associated with the given item (if any).
@@ -265,7 +265,7 @@ Removes the text between the two positions in the combobox text field.
\membersection{wxComboBox::SetClientData}\label{wxcomboboxsetclientdata}
\func{void}{SetClientData}{\param{int}{ n}, \param{void* }{data}}
\func{void}{SetClientData}{\param{int}{ n}, \param{char* }{data}}
Associates the given client data pointer with the given item.
@@ -310,9 +310,6 @@ Selects the text between the two positions, in the combobox text field.
\docparam{to}{The second position.}
\pythonnote{The second form of this method is called \tt{SetMark} in
wxPython.}
\membersection{wxComboBox::SetValue}\label{wxcomboboxsetvalue}
\func{void}{SetValue}{\param{const wxString\& }{text}}

View File

@@ -53,8 +53,8 @@ released for each drawing operation.
\membersection{wxDC::Blit}\label{wxdcblit}
\func{bool}{Blit}{\param{long}{ xdest}, \param{long}{ ydest}, \param{long}{ width}, \param{long}{ height},
\param{wxDC* }{source}, \param{long}{ xsrc}, \param{long}{ ysrc}, \param{int}{ logicalFunc = wxCOPY},
\param{bool }{useMask = FALSE}}
\param{wxDC* }{source}, \param{long}{ xsrc}, \param{long}{ ysrc}, \param{int}{ logicalFunc},
\param{bool }{useMask}}
Copy from a source DC to this DC, specifying the destination
coordinates, size of area to copy, source DC, source coordinates, and
@@ -104,7 +104,7 @@ There is partial support for Blit in wxPostScriptDC, under X.
See \helpref{wxMemoryDC}{wxmemorydc} for typical usage.
\wxheading{See also}
wxheading{See also}
\helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxBitmap}{wxbitmap}, \helpref{wxMask}{wxmask}
@@ -418,9 +418,6 @@ Gets the current pen (see \helpref{wxDC::SetPen}{wxdcsetpen}).
Sets {\it colour} to the colour at the specified location. Windows only; an X implementation
is being worked on. Not available for wxPostScriptDC or wxMetafileDC.
\pythonnote{For wxPython the wxColour value is returned and is not
required as a parameter.}
\membersection{wxDC::GetSize}\label{wxdcgetsize}
\func{void}{GetSize}{\param{long *}{width}, \param{long *}{height}}

View File

@@ -41,8 +41,7 @@ wxSWISS\_FONT}
Default constructor.
\func{}{wxFont}{\param{int}{ pointSize}, \param{int}{ family}, \param{int}{ style}, \param{int}{ weight},
\param{const bool}{ underline = FALSE}, \param{const wxString\& }{faceName = ""},
\param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
\param{const bool}{ underline = FALSE}, \param{const wxString\& }{faceName = ""}}
Creates a font object.
@@ -71,22 +70,6 @@ Creates a font object.
\docparam{faceName}{An optional string specifying the actual typeface to be used. If the empty string,
a default typeface will chosen based on the family.}
\docparam{encoding}{An encoding which may be one of
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxFONTENCODING\_SYSTEM}}{Default system encoding.}
\twocolitem{{\bf wxFONTENCODING\_DEFAULT}}{Default application encoding: this
is the encoding set by calls to
\helpref{SetDefaultEncoding}{wxfontsetdefaultencoding} and which may beset to,
say, KOI8 to create all fonts by default with KOI8 encoding. Initially, the
default application encoding is the same as default system encoding.}
\twocolitem{{\bf wxFONTENCODING\_ISO8859\_1...15}}{ISO8859 encodings.}
\twocolitem{{\bf wxFONTENCODING\_KOI8}}{The standard russian encoding for Internet.}
\twocolitem{{\bf wxFONTENCODING\_CP1250...1252}}{Windows encodings similar to ISO8859 (but not identical).}
\end{twocollist}
If the specified encoding isn't available, no font is created.
}
\wxheading{Remarks}
If the desired font does not exist, the closest match will be chosen.

View File

@@ -31,8 +31,7 @@ slashes.
\func{bool}{wxFileExists}{\param{const wxString\& }{filename}}
Returns TRUE if the file exists. It also returns TRUE if the file is
a directory.
Returns TRUE if the file exists.
\membersection{::wxFileNameFromPath}
@@ -49,12 +48,11 @@ temporary storage that should not be deallocated.
This function does directory searching; returns the first file
that matches the path {\it spec}, or the empty string. Use \helpref{wxFindNextFile}{wxfindnextfile} to
get the next matching file. Neither will report the current directory "." or the
parent directory "..".
get the next matching file.
{\it spec} may contain wildcards.
{\it flags} may be wxDIR for restricting the query to directories, wxFILE for files or zero for either.
{\it flags} is reserved for future use.
For example:
@@ -81,17 +79,6 @@ See \helpref{wxFindFirstFile}{wxfindfirstfile} for an example.
Returns the Windows directory under Windows; on other platforms returns the empty string.
\membersection{::wxInitAllImageHandlers}\label{wxinitallimagehandlers}
\func{void}{wxInitAllImageHandlers}{\void}
Adds some common image format handlers, which, depending on wxWindows
configuration, can be handlers for BMP (loading) (always installed), GIF
(loading and saving), PCX (loading and saving), PNM (loading and saving as raw
rgb), PNG (loading and saving), JPEG (loading and saving), file formats.
See also: \helpref{wxImage}{wximage} \helpref{wxImageHandler}{wximagehandler}
\membersection{::wxIsAbsolutePath}
\func{bool}{wxIsAbsolutePath}{\param{const wxString\& }{filename}}
@@ -453,15 +440,18 @@ If path is empty, the current directory will be used. If filename is empty,
no default filename will be supplied. The wildcard determines what files
are displayed in the file selector, and file extension supplies a type
extension for the required filename. Flags may be a combination of wxOPEN,
wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, or 0.
wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, or 0. They are only significant
at present in Windows.
Both the Unix and Windows versions implement a wildcard filter. Typing a
Both the X and Windows versions implement a wildcard filter. Typing a
filename containing wildcards (*, ?) in the filename text item, and
clicking on Ok, will result in only those files matching the pattern being
displayed.
displayed. In the X version, supplying no default name will result in the
wildcard filter being inserted in the filename text item; the filter is
ignored if a default name is supplied.
The wildcard may be a specification for multiple types of file
with a description for each, such as:
Under Windows (only), the wildcard may be a specification for multiple
types of file with a description for each, such as:
\begin{verbatim}
"BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
@@ -1929,23 +1919,6 @@ base classes.
<wx/object.h>
\membersection{wxBITMAP}\label{wxbitmap}
\func{}{wxBITMAP}{bitmapName}
This macro loads a bitmap from either application resources (on the platforms
for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
avoid using {\tt #ifdef}s when creating bitmaps.
\wxheading{See also}
\helpref{Bitmaps and icons overview}{wxbitmapoverview},
\helpref{wxICON}{wxicon}
\wxheading{Include files}
<wx/gdicmn.h>
\membersection{WXDEBUG\_NEW}\label{debugnew}
\func{}{WXDEBUG\_NEW}{arg}
@@ -1993,23 +1966,6 @@ Example:
\helpref{RTTI overview}{runtimeclassoverview}
\membersection{wxICON}\label{wxicon}
\func{}{wxICON}{iconName}
This macro loads an icon from either application resources (on the platforms
for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
avoid using {\tt #ifdef}s when creating icons.
\wxheading{See also}
\helpref{Bitmaps and icons overview}{wxbitmapoverview},
\helpref{wxBITMAP}{wxbitmap}
\wxheading{Include files}
<wx/gdicmn.h>
\membersection{WXTRACE}\label{trace}
\wxheading{Include files}

View File

@@ -21,7 +21,6 @@ wxDC::DrawBitmap.
\wxheading{See also}
\helpref{wxBitmap}{wxbitmap}
\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -279,16 +278,15 @@ Returns TRUE if there is a mask active, FALSE otherwise.
\func{static void}{InitStandardHandlers}{\void}
Internal use only. Adds standard image format handlers. It only install BMP
for the time being, which is use by wxBitmap.
Adds the standard image format handlers, which, depending on wxWindows
configuration, can be handlers for Windows BMP (loading), PNG
(loading and saving) and JPEG (loading and saving) file formats.
This function is called by wxWindows on startup, and shouldn't be called by
the user.
This function is called by wxWindows on startup.
\wxheading{See also}
\helpref{wxImageHandler}{wximagehandler}
\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
\membersection{wxImage::InsertHandler}
@@ -305,13 +303,11 @@ of a given handler class in an application session.}
\membersection{wxImage::LoadFile}\label{wximageloadfile}
\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}}
\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type}}
\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{const wxString\&}{ mimetype}}
Loads an image from a file. If no handler type is provided, the library will
try to use wxBITMAP\_TYPE\_BMP or all known handlers previously installed
through a call to \helpref{wxImage::InitAllHandlers}{wximageinitallhandlers}.
Loads an image from a file.
\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{long}{ type}}
@@ -332,11 +328,8 @@ The meaning of {\it stream} data 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\_JPEG}}{Load a JPEG image file.}
\twocolitem{{\bf wxBITMAP\_TYPE\_PCX}}{Load a PCX image file.}
\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Load a PNG image file.}
\twocolitem{{\bf wxBITMAP\_TYPE\_PNM}}{Load a PNM image file.}
\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Load a JPEG image file.}
\end{twocollist}
The validity of these flags depends on the platform and wxWindows configuration.}
@@ -444,8 +437,8 @@ mimetype to the named file}
\func{wxImage}{Rescale}{\param{int}{ width}, \param{int}{ height}}
Changes the size of the image in-place: after a call to this function, the
image will have the given width and height.
Changes the size of the image in-place: after a call to this function, thei
mage will have the given width and height.
\wxheading{See also}
@@ -485,13 +478,6 @@ Example:
\helpref{Rescale}{wximagerescale}
\membersection{wxImage::GetSubImage}\label{wximagegetsubimage}
\constfunc{wxImage}{GetSubImage}{\param{const wxRect&}{rect}}
Returns a sub image of the current one as long as the rect belongs entirely to
the image.
\membersection{wxImage::SetData}\label{wximagesetdata}
\func{void}{SetData}{\param{unsigned char*}{data}}
@@ -594,7 +580,6 @@ created by IJG.)
\wxheading{See also}
\helpref{wxImage}{wximage}
\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -35,7 +35,7 @@ select multiple items using the SHIFT key and the mouse or special key combinati
\twocolitem{\windowstyle{wxLB\_HSCROLL}}{Create horizontal scrollbar if contents are too wide (Windows only).}
\twocolitem{\windowstyle{wxLB\_ALWAYS\_SB}}{Always show a vertical scrollbar.}
\twocolitem{\windowstyle{wxLB\_NEEDED\_SB}}{Only create a vertical scrollbar if needed.}
\twocolitem{\windowstyle{wxLB\_SORT}}{The listbox contents are sorted in alphabetical order. No effect for GTK.}
\twocolitem{\windowstyle{wxLB\_SORT}}{The listbox contents are sorted in alphabetical order.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
@@ -113,7 +113,7 @@ Destructor, destroying the list box.
Adds the item to the end of the list box.
\func{void}{Append}{\param{const wxString\& }{ item}, \param{void* }{clientData}}
\func{void}{Append}{\param{const wxString\& }{ item}, \param{char* }{clientData}}
Adds the item to the end of the list box, associating the given data
with the item.
@@ -180,7 +180,7 @@ The zero-based position of the item, or -1 if the string was not found.
\membersection{wxListBox::GetClientData}\label{wxlistboxgetclientdata}
\constfunc{void*}{GetClientData}{\param{int}{ n}}
\constfunc{char*}{GetClientData}{\param{int}{ n}}
Returns a pointer to the client data associated with the given item (if any).
@@ -214,13 +214,14 @@ Applicable to single selection list boxes only.
\membersection{wxListBox::GetSelections}\label{wxlistboxgetselections}
\constfunc{int}{GetSelections}{\param{wxArrayInt& }{selections}}
\constfunc{int}{GetSelections}{\param{int **}{selections}}
Fill an array of ints with the positions of the currently selected items.
Gets an array containing the positions of the selected strings.
\wxheading{Parameters}
\docparam{selections}{A reference to an wxArrayInt instance that is used to store the result of the query.}
\docparam{selections}{A pointer to an integer array, which will be allocated by the function if
selects are present. Do not deallocate the returned array - it will be deallocated by the listbox.}
\wxheading{Return value}
@@ -282,9 +283,6 @@ Insert the given number of strings before the specified position.
\docparam{pos}{Position before which to insert the items: for example, if {\it pos} is 0 the items
will be inserted in the beginning of the listbox}
\pythonnote{The first two parameters are collapsed into a single
parameter for wxPython, which is a list of strings.}
\membersection{wxListBox::Number}\label{wxlistboxnumber}
\constfunc{int}{Number}{\void}
@@ -309,7 +307,7 @@ TRUE if the given item is selected, FALSE otherwise.
\func{void}{Set}{\param{int}{ n}, \param{const wxString*}{ choices}}
Clears the list box and adds the given strings. Not implemented for GTK.
Clears the list box and adds the given strings.
\wxheading{Parameters}
@@ -324,7 +322,7 @@ after this function has been called.
\membersection{wxListBox::SetClientData}\label{wxlistboxsetclientdata}
\func{void}{SetClientData}{\param{int}{ n}, \param{void* }{data}}
\func{void}{SetClientData}{\param{int}{ n}, \param{char* }{data}}
Associates the given client data pointer with the given item.

View File

@@ -56,7 +56,6 @@ functions that take a \helpref{wxListEvent}{wxlistevent} argument.
\twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).}
\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.}
\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.}
\twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).}
\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.}
\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.}
\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.}
@@ -130,12 +129,6 @@ Arranges the items in icon or small icon view. This only has effect on Win32. {\
Creates the list control. See \helpref{wxListCtrl::wxListCtrl}{wxlistctrlconstr} for further details.
\membersection{wxListCtrl::ClearAll}\label{wxlistctrlclearall}
\func{void}{ClearAll}{}
Deletes all items and all columns.
\membersection{wxListCtrl::DeleteItem}\label{wxlistctrldeleteitem}
\func{bool}{DeleteItem}{\param{long }{item}}
@@ -144,7 +137,7 @@ Deletes the specified item.
\membersection{wxListCtrl::DeleteAllItems}\label{wxlistctrldeleteallitems}
\func{bool}{DeleteAllItems}{}
\func{bool}{DeleteAllItems}{\void}
Deletes all the items in the list control.
@@ -163,7 +156,7 @@ EVT\_LIST\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no
text control will appear for in-place editing.
If the user changed the label (i.e. s/he does not press ESC or leave
the text control without changes, a EVT\_LIST\_END\_LABEL\_EDIT event
the text control without changes, a EVT\_LIST\_END\_LABEL\_EDIT event
will be sent which can be vetoed as well.
\membersection{wxListCtrl::EnsureVisible}\label{wxlistctrlensurevisible}
@@ -246,8 +239,8 @@ Returns the specified image list. {\it which} may be one of:
Gets information about the item. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
information.
\pythonnote{The wxPython version of this method takes an integer parameter
for the item ID, and returns the wxListItem object.
\pythonnote{The wxPython version of this method takes a parameter
representing the item ID, and returns the wxListItem object.
}
\membersection{wxListCtrl::GetItemData}\label{wxlistctrlgetitemdata}
@@ -376,10 +369,6 @@ giving details in {\it flags}. {\it flags} will be a combination of the followin
wxLIST\_HITTEST\_ONITEMSTATEICON.}
\end{twocollist}
\pythonnote{A tuple of values is returned in the wxPython version of
thsi method. The first value is the item id and the second is the
flags value mentioned above.}
\membersection{wxListCtrl::InsertColumn}\label{wxlistctrlinsertcolumn}
\func{long}{InsertColumn}{\param{long }{col}, \param{wxListItem\& }{info}}

View File

@@ -30,7 +30,6 @@ functions that take a wxListEvent argument.
\twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).}
\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.}
\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.}
\twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).}
\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.}
\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.}
\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.}

View File

@@ -52,7 +52,6 @@ empty, {\it HasPendingMessages()} is also provided which allows to explicitly
verify it.
\helpref{Flush}{wxlogflush}\\
\helpref{FlushActive}{wxlogflushactive}\\
\helpref{HasPendingMessages}{haspendingmessages}
\membersection{Customization}\label{wxlogcustomization}
@@ -143,16 +142,6 @@ currently. (Almost) for internal use only.
Shows all the messages currently in buffer and clears it. If the buffer
is already empty, nothing happens.
\membersection{wxLog::FlushActive}\label{wxlogflushactive}
\func{static void}{FlushActive}{\void}
Flushes the current log target if any, does nothing if there is none.
See also:
\helpref{Flush}{wxlogflush}
\membersection{wxLog::HasPendingMessages}\label{haspendingmessages}
\constfunc{bool}{HasPendingMessages}{\void}
@@ -180,7 +169,7 @@ Returns whether the verbose mode is currently active.
Sets the timestamp format prepended by the default log targets to all
messages. The string may contain any normal characters as well as \%
prefixed format specificators, see {\it strftime()} manual for details.
Passing a NULL value (not empty string) to this function disables message timestamping.
Passing a null value (not empty string) to this function disables message timestamping.
\membersection{wxLog::GetTimestamp}\label{wxloggettimestamp}

View File

@@ -25,12 +25,12 @@
%\special{!/@scaleunit 1 def}
\parskip=10pt
\parindent=0pt
\title{wxWindows 2.1: a portable C++ GUI toolkit}
\title{User Manual for wxWindows 2.1: a portable C++ GUI toolkit}
\winhelponly{\author{by Julian Smart et al
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
}}
\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin et al}
\date{August 27th 1999}
\date{August 6th 1999}
}
\makeindex
\begin{document}

View File

@@ -33,16 +33,11 @@ Default constructor.
Constructs a mask from a monochrome bitmap.
\pythonnote{This is the default constructor for wxMask in wxPython.}
\func{}{wxMask}{\param{const wxBitmap\& }{bitmap}, \param{const wxColour\& }{colour}}
Constructs a mask from a bitmap and a colour that indicates the background. Not
yet implemented for GTK.
\pythonnote{wxPython has an alternate wxMask constructor matching this
form called \tt{wxMaskColour}.}
\func{}{wxMask}{\param{const wxBitmap\& }{bitmap}, \param{int}{ index}}
Constructs a mask from a bitmap and a palette index that indicates the background. Not

View File

@@ -635,12 +635,6 @@ Determines whether an item is enabled.
TRUE if the item was found and is enabled, FALSE otherwise.
\membersection{wxMenuBar::Refresh}\label{wxmenubarrefresh}
\func{void}{Refresh}{\void}
Redraw the menu bar
\membersection{wxMenuBar::SetHelpString}\label{wxmenubarsethelpstring}
\func{void}{SetHelpString}{\param{int}{ id}, \param{const wxString\& }{helpString}}

View File

@@ -70,8 +70,7 @@ default ones which are loaded automatically) containing MIME
information in either mailcap(5) or mime.types(5) format.
\helpref{ReadMailcap}{wxmimetypesmanagerreadmailcap}\\
\helpref{ReadMimeTypes}{wxmimetypesmanagerreadmimetypes}\\
\helpref{AddFallbacks}{wxmimetypesmanageraddfallbacks}
\helpref{ReadMimeTypes}{wxmimetypesmanagerreadmimetypes}
%%%%% MEMBERS HERE %%%%%
\helponly{\insertatlevel{2}{
@@ -94,17 +93,6 @@ additional mailcap/mime.types files.
Destructor is not virtual, so this class should not be derived from.
\membersection{wxMimeTypesManager::AddFallbacks}\label{wxmimetypesmanageraddfallbacks}
\func{void}{AddFallbacks}{\param{const wxFileTypeInfo *}{fallbacks}}
This function may be used to provdie hard-wired fallbacks for the MIME types
and extensions that might not be present in the system MIME database.
% TODO
Please see the typetest sample for an example of using it.
\membersection{wxMimeTypesManager::GetFileTypeFromExtension}\label{wxmimetypesmanagergetfiletypefromextension}
\func{wxFileType*}{GetFileTypeFromExtension}{\param{const wxString\&}{ extension}}

View File

@@ -457,13 +457,6 @@ Returns a reference to the internal wxPrintData object.
Returns TRUE if the user has selected printing to a file.
\membersection{wxPrintDialogData::GetSelection}\label{wxprintdialogdatagetselection}
\constfunc{bool}{GetSelection}{\void}
Returns TRUE if the user requested that the selection be printed (where 'selection' is
a concept specific to the application).
\membersection{wxPrintDialogData::GetToPage}\label{wxprintdialogdatagettopage}
\constfunc{int}{GetToPage}{\void}
@@ -512,13 +505,6 @@ Sets the internal wxPrintData.
Sets the 'Print to file' checkbox to TRUE or FALSE.
\membersection{wxPrintDialogData::SetSelection}\label{wxprintdialogdatasetselection}
\func{void}{SetSelection}{\param{bool}{ flag}}
Selects the 'Selection' radio button. The effect of printing the selection depends on how the application
implements this command, if at all.
\membersection{wxPrintDialogData::SetSetupDialog}\label{wxprintdialogdatasetsetupdialog}
\func{void}{SetSetupDialog}{\param{bool }{flag}}

View File

@@ -18,11 +18,13 @@ progress bar. Optionally, it can display an ABORT button.
\membersection{wxProgressDialog::wxProgressDialog}\label{wxprogressdialogconstr}
\func{}{wxProgressDialog}{\param{const wxString\& }{title},
\param{const wxString\& }{message},\rtfsp
\param{int }{maximum = 100},
\param{wxWindow * }{parent = NULL},\rtfsp
\param{int }{style = wxPD\_AUTO\_HIDE | wxPD\_APP\_MODAL}}
\func{}{wxProgressDialog}
{\param{const wxString\& }{title},
\param{const wxString\& }{message},\rtfsp
\param{int }{maximum = 100},
\param{wxWindow * }{parent = NULL},\rtfsp
\param{int }{style = wxPD\_AUTO\_HIDE | wxPD\_APP\_MODAL}
}
Constructor. Creates the dialog, displays it and disables user input
for other windows, or, if wxPD\_APP\_MODAL flag is not given, for its parent
@@ -41,20 +43,20 @@ window only.
\docparam{message}{Message to show on the dialog.}
\docparam{style}{The dialog style. This is the combination of the following
bitmask constants defined in wx/defs.h:
bitmask constants defined in wx/defs.h:
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{wxPD\_APP\_MODAL}{Make the progress dialog modal. If this flag is
not given, it is only "locally" modal - that is the input to the parent
window is disabled, but not to the other ones.}
not given, it is only "locally" modal - that is the input to the parent
window is disabled, but not to the other ones.}
\twocolitem{wxPD\_AUTO\_HIDE}{By default, the progress dialog will disappear
from screen as soon as the maximum value of the progress meter has been
reached. This flag prevents it from doing it - instead the dialog will wait
until the user closes it.}
from screen as soon as the maximum value of the progress meter has been
reached. This flag prevents it from doing it - instead the dialog will wait
until the user closes it.}
\twocolitem{wxPD\_CAN\_ABORT}{This flag tells the dialog that it should have a
"Cancel" button which the user may press. If this happens, the next call to
\helpref{Update()}{wxprogressdialogupdate} will return FALSE.}
"Cancel" button which the user may press. If this happens, the next call to
\helpref{Update()}{wxprogressdialogupdate} will return FALSE.}
\twocolitem{wxPD\_ELAPSED\_TIME}{This flag tells the dialog that it should show elapsed time (since creating the dialog).}
\twocolitem{wxPD\_ESTIMATED\_TIME}{This flag tells the dialog that it should show estimated time.}
\twocolitem{wxPD\_REMAINING\_TIME}{This flag tells the dialog that it should show remaining time.}
@@ -64,8 +66,8 @@ until the user closes it.}
\membersection{wxProgressDialog::\destruct{wxProgressDialog}}
\func{}{\destruct{wxMessageDialog}}{\void}
Destructor. Deletes the dialog and enables all top level windows.
Destructor.
Deletes the dialog and enables all top level windows.
\membersection{wxProgressDialog::Update}\label{wxprogressdialogupdate}
@@ -82,10 +84,10 @@ or ask the user for the confirmation and if the abort is not confirmed the
dialog may be resumed with \helpref{Resume}{wxprogressdialogresume} function.
\docparam{value}{The new value of the progress meter. It must be strictly less
than the maximum value given to the constructor (i.e., as usual in C, the
index runs from $0$ to $maximum-1$).}
than the maximum value given to the constructor (i.e., as usual in C, the
index runs from $0$ to $maximum-1$).}
\docparam{newmsg}{The new messages for the progress dialog text, if none is
given the message is not changed.}
given the message is not changed.}
\membersection{wxProgressDialog::Resume}\label{wxprogressdialogresume}

View File

@@ -1,30 +0,0 @@
\section{\class{wxStaticBoxSizer}}\label{wxstaticboxsizer}
wxStaticBoxSizer is a sizer derived from wxBoxSizer but adds a static
box around the sizer. Note that this static box has to be created
separately.
See also \helpref{wxSizer}{wxsizer}, \helpref{wxStaticBox}{wxstaticbox} and
\helpref{wxBoxSizer}{wxboxsizer}.
\wxheading{Derived from}
\helpref{wxBoxSizer}{wxboxsizer}\\
\helpref{wxSizer}{wxsizer}\\
\helpref{wxObject}{wxobject}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxStaticBoxSizer::wxStaticBoxSizer}\label{wxstaticboxsizerwxstaticboxsizer}
\func{}{wxStaticBoxSizer}{\param{wxStaticBox* }{box}, \param{int }{orient}}
Constructor. It takes an associated static box and the orientation {\it orient}
as parameters - orient can be either of wxVERTICAL or wxHORIZONTAL.
\membersection{wxStaticBoxSizer::GetStaticBox}\label{wxstaticboxsizergetstaticbox}
\func{wxStaticBox*}{GetStaticBox}{\void}
Returns the static box associated with the sizer.

View File

@@ -50,6 +50,25 @@ Default destructor.
Delete all informations about the address.
%
% Build
%
\membersection{wxSockAddress::Build}
\func{void}{Build}{\param{struct sockaddr *\&}{ addr}, \param{size\_t\&}{ len}}
Build a coded socket address.
%
% Disassemble
%
\membersection{wxSockAddress::Disassemble}
\func{void}{Disassemble}{\param{struct sockaddr *}{addr}, \param{size\_t}{ len}}
Decode a socket address. {\bf Actually, you don't have to use this
function: only wxSocketBase use it.}
%
% SockAddrLen
%

View File

@@ -57,13 +57,13 @@ functions that take a \helpref{wxScrollEvent}{wxscrollevent} argument:
\twocolwidtha{7cm}
\begin{twocollist}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL(id, func)}}{Catch all scroll commands.}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_BOTTOM(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_LINEUP(id, func)}}{Catch a line up command.}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_LINEDOWN(id, func)}}{Catch a line down command.}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_PAGEUP(id, func)}}{Catch a page up command.}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_PAGEDOWN(id, func)}}{Catch a page down command.}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).}
\twocolitem{{\bf EVT\_COMMAND\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
\twocolitem{{\bf EVT\_COMMAND\_BOTTOM(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
\twocolitem{{\bf EVT\_COMMAND\_LINEUP(id, func)}}{Catch a line up command.}
\twocolitem{{\bf EVT\_COMMAND\_LINEDOWN(id, func)}}{Catch a line down command.}
\twocolitem{{\bf EVT\_COMMAND\_PAGEUP(id, func)}}{Catch a page up command.}
\twocolitem{{\bf EVT\_COMMAND\_PAGEDOWN(id, func)}}{Catch a page down command.}
\twocolitem{{\bf EVT\_COMMAND\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).}
\end{twocollist}%
\wxheading{See also}

View File

@@ -16,7 +16,6 @@ scroll position.
\wxheading{Derived from}
\helpref{wxPanel}{wxpanel}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}

View File

@@ -1,192 +0,0 @@
\section{\class{wxSizer}}\label{wxsizer}
wxSizer is the abstract base class used for laying out subwindows in a window. You
cannot use wxSizer directly; instead, you'll have to use \helpref{wxBoxSizer}{wxboxsizer}
or \helpref{wxStaticBoxSizer}{wxstaticboxsizer}.
The layout algorithm used by sizers in wxWindows closely related to layout
in other GUI toolkits, such as Java's AWT, the GTK toolkit or the Qt toolkit. It is
based upon the idea of the individual subwindows reporting their minimal required
size and their ability to get stretched if the size of the parent window has changed.
This will most often mean, that the programmer does not set the original size of
the dialog in the beginning, rather the top-most sizer will get queried and it will
then query its children. Its children can be normal windows or other sizers, so that
a hierachy of sizer can be constructed. Note that sizer are not derived from wxWindows
and thus do not interfere with tab ordering and require very little resources compared
to a real window on screen.
What makes sizers so well fitted for use in wxWindows, is the fact that every control
reports its own minimal size and the algorithm can handle differences in font sizes
or different window (dialog item) sizes on different platforms without problems. If e.g.
the standard font as well as the overall design of Motif widgets requires more space than
on Windows, the intial dialog size will automatically be bigger on Motif than on Windows.
\pythonnote{If you wish to create a sizer class in wxPython you should
derive the class from \tt{wxPySizer} in order to get Python-aware
capabilities for the various virtual methods.}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSizer::wxSizer}\label{wxsizerwxsizer}
\func{}{wxSizer}{\void}
The constructor. Note that wxSizer is an abstract base class and may not
be instantiated.
\membersection{wxSizer::\destruct{wxSizer}}\label{wxsizerdtor}
\func{}{\destruct{wxSizer}}{\void}
The destructor.
\membersection{wxSizer::Add}\label{wxsizeradd}
\func{void}{Add}{\param{wxWindow* }{window}, \param{int }{option = 0},\param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
\func{void}{Add}{\param{wxSizer* }{sizer}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
\func{void}{Add}{\param{int }{width}, \param{int }{height}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
Adds the {\it window} to the sizer. As wxSizer itself is an abstract class, the parameters
have no meaning in the wxSizer class itself, but as there currently is only one class
deriving directly from wxSizer and this class does not override these methods, the meaning
of the paramters is described here:
\docparam{window}{The window to be added to the sizer. Its initial size (either set explicitly by the
user or calculated internally when using wxDefaultSize) is interpreted as the minimal and in many
cases also the initial size. This is particularly useful in connection with \helpref{SetSizeHint}{wxsizersetsizehints}.}
\docparam{sizer}{The (child-)sizer to be added to the sizer. This allows placing a child sizer in a
sizer and thus to create hierarchies of sizers (typically a vertical box as the top sizer and several
horizontal boxes on the level beneath).}
\docparam{width and height}{The dimension of a spacer to be added to the sizer. Adding spacers to sizers
gives more flexilibilty in the design of dialogs; imagine for example a vertical box with two buttons at the
bottom of a dialog: you might want to insert a space between the two buttons and make that space stretchable
using the {\it option} flag and the result will be that the left button will be aligned with the left
side of the dialog and the right button with the right side - the space in between will shrink and grow with
the dialog.}
\docparam{option}{Although the meaning of this parameter is undefined in wxSizer, it is used in wxBoxSizer
to indicate if a child of a sizer can change its size in the main orientation of the wxBoxSizer - where
0 stands for not changable and a value of more than zero in interpreted relative to the value of other
children of the same wxBoxSizer. You might, e.g., have a horizontal wxBoxSizer with three children, two
of which are supposed to change their size with the sizer, then the two stretchable windows would get a
value of 1 each to make them grow and shrink equally with the sizer's vertical dimension.}
\docparam{flag}{This parameter can be used to set a number of flags which can be combined using
the binary OR operator |. Two main behaviours are defined using these flags: One is the border
around a window: the {\it border} parameter determines the border width whereas the flags given here
determine where the border may be (wxTOP, wxBOTTOM, wxLEFT, wxRIGHT or wxALL). The other flags
determine the child window's behaviour if the size of the sizer changes, but - in contrast to
the {\it option} flag - not in the main orientation, but the respectively other orientation. So
if you created a wxBoxSizer with the wxVERTICAL option, these flags will be relevant if the
sizer changes its horizontal size. A child may get resized to completely fill out the new size (using
either wxGROW or wxEXPAND), may get centered (wxCENTER or wxCENTRE) or may get aligned to either
side (wxALIGN\_LEFT and wxALIGN\_TOP are set to 0 and thus represent the default, wxALIGN\_RIGHT and
wxALIGN\_BOTTOM have their obvious meaning.}
\docparam{border}{Determines the border width, if the {\it flag} parameter is set to any border.}
\docparam{userData}{Allows an extra object to be attached to the sizer
item, for use in derived classes when sizing information is more
complex than what {\it option} and {\it flag} will allow for.}
\membersection{wxSizer::Prepend}\label{wxsizerprepend}
\func{void}{Prepend}{\param{wxWindow* }{window}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
\func{void}{Prepend}{\param{wxSizer* }{sizer}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
\func{void}{Prepend}{\param{int }{width}, \param{int }{height}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border= 0}, \param{wxObject* }{userData = NULL}}
Same as \helpref{wxSizer::Add}{wxsizeradd}, but prepends the items to the beginning of the
list of items (windows, subsizers or spaces) owned by this sizer.
\membersection{wxSizer::Remove}\label{wxsizerremove}
\func{bool}{Remove}{\param{wxWindow* }{window}}
\func{bool}{Remove}{\param{wxSizer* }{sizer}}
\func{bool}{Remove}{\param{int }{nth}}
Removes a child from the sizer. {\it window} is the window to be removed, {\it sizer} the
equivalent sizer and {\it nth} is the position of the child in the sizer, typically 0 for
the first item. This method does not cause any layout or resizing to take place and does
not delete the window itself. Call \helpref{wxSizer::Layout}{wxsizerlayout} for updating
the layout "on screen" after removing a child fom the sizer.
Returns TRUE if the child item was found and removed, FALSE otherwise.
\membersection{wxSizer::SetDimension}\label{wxsizersetdimension}
\func{void}{SetDimension}{\param{int }{x}, \param{int }{y}, \param{int }{width}, \param{int }{height}}
Call this to force the sizer to take the given dimension and thus force the items owned
by the sizer to resize themselves according to the rules defined by the paramater in the
\helpref{wxSizer::Add}{wxsizeradd} and \helpref{wxSizer::Prepend}{wxsizerprepend} methods.
\membersection{wxSizer::GetSize}\label{wxsizergetsize}
\func{wxSize}{GetSize}{\void}
Returns the current size of the sizer.
\membersection{wxSizer::GetPosition}\label{wxsizergetposition}
\func{wxPoint}{GetPosition}{\void}
Returns the current position of the sizer.
\membersection{wxSizer::GetMinSize}\label{wxsizergetminsize}
\func{wxSize}{GetMinSize}{\void}
Returns the minimal size of the sizer.
\membersection{wxSizer::RecalcSizes}\label{wxsizerrecalcsizes}
\func{void}{RecalcSizes}{\void}
This method is abstract and has to be overwritten by any derived class.
Here, the sizer will do the actual calculation of its children's positions
and sizes.
\membersection{wxSizer::CalcMin}\label{wxsizercalcmin}
\func{wxSize}{CalcMin}{\void}
This method is abstract and has to be overwritten by any derived class.
Here, the sizer will do the actual calculation of its children minimal sizes.
\membersection{wxSizer::Layout}\label{wxsizerlayout}
\func{void}{Layout}{\void}
Call this to force laying out the children anew, e.g. after having added a child
to or removed a child (window, other sizer or space) from the sizer while keeping
the current dimension.
\membersection{wxSizer::Fit}\label{wxsizerfit}
\func{void}{Fit}{\param{wxWindow* }{window}}
Tell the sizer to resize the {\it window} to match the sizer's minimal size. This
is commonly done in the constructor of the window itself, see sample in the description
of \helpref{wxBoxSizer}{wxboxsizer}.
\membersection{wxSizer::SetSizeHints}\label{wxsizersetsizehints}
\func{void}{SetSizeHints}{\param{wxWindow* }{window}}
Tell the sizer to set the minimal size of the {\it window} to match the sizer's minimal size.
This is commonly done in the constructor of the window itself, see sample in the description
of \helpref{wxBoxSizer}{wxboxsizer} if the window is resizable (as many dialogs under Unix and
frames on probably all platforms).

View File

@@ -8,31 +8,9 @@
<wx/socket.h>
\wxheading{wxSocket errors}%\label{wxsocketerrs} % Labels don't work on a non-section!
\wxheading{See also}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxSOCKET\_NOERROR}}{No error happened.}
\twocolitem{{\bf wxSOCKET\_INVOP}}{Invalid operation.}
\twocolitem{{\bf wxSOCKET\_IOERR}}{Input/Output error.}
\twocolitem{{\bf wxSOCKET\_INVADDR}}{Invalid address passed to wxSocket.}
\twocolitem{{\bf wxSOCKET\_INVSOCK}}{Invalid socket (uninitialized).}
\twocolitem{{\bf wxSOCKET\_NOHOST}}{No corresponding host.}
\twocolitem{{\bf wxSOCKET\_INVPORT}}{Invalid port.}
\twocolitem{{\bf wxSOCKET\_TRYAGAIN}}{The IO call has a timeout or is in non-blocking mode.}
\twocolitem{{\bf wxSOCKET\_MEMERR}}{Memory exhausted.}
\end{twocollist}%
\wxheading{wxSocket events}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxSOCKET\_INPUT}}{Some data are ready to be got.}
\twocolitem{{\bf wxSOCKET\_OUTPUT}}{The socket is ready to be written to.}
\twocolitem{{\bf wxSOCKET\_CONNECTION}}{Someone want to connect our server.}
\twocolitem{{\bf wxSOCKET\_LOST}}{The connection has been broken.}
\twocolitem{{\bf wxSOCKET\_MAX\_EVENT}}{This should never happen but the compiler may complain about it.}
\end{twocollist}%
GSocket for wxWindows
% ---------------------------------------------------------------------------
% Event handling
@@ -100,36 +78,10 @@ Destroys the wxSocketBase object.
%
\membersection{wxSocketBase::SetNotify}\label{wxsocketbasesetnotify}
\func{void}{SetNotify}{\param{wxSocketEventFlags}{ event_flags}}
\func{void}{SetNotify}{\param{GSocketEventFlags}{ event_flags}}
SetNotify setups which socket events are to be sent to the event handler.
You specify in parameters a mask of wxSocket events. The flags is:
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxSOCKET\_INPUT\_FLAG}}{to receive wxSOCKET_INPUT}
\twocolitem{{\bf wxSOCKET\_OUTPUT\_FLAG}}{to receive wxSOCKET_OUTPUT}
\twocolitem{{\bf wxSOCKET\_CONNECTION\_FLAG}}{to receive wxSOCKET_CONNECTION}
\twocolitem{{\bf wxSOCKET\_LOST\_FLAG}}{to receive wxSOCKET_LOST}
\end{twocollist}%
For example:
\begin{verbatim}
sock.SetNotify(wxSOCKET\_INPUT\_FLAG | wxSOCKET\_LOST\_FLAG);
\end{verbatim}
In this example, the user will be notified about incoming socket datas and
a broken connection.
For more information on socket events see \helpref{wxSocket events}{wxsocketbase}.
%
% SetTimeout
%
\membersection{wxSocketBase::SetTimeout}{wxsocketbasesettimeout}
\func{void}{SetTimeout}{\param{int }{seconds}}
This function sets the socket timeout in seconds.
For more information on socket events see GSocket events.
%
% Notify
@@ -184,15 +136,15 @@ Returns TRUE if the socket mustn't wait.
\membersection{wxSocketBase::LastCount}\label{wxsocketbaselastcount}
\constfunc{wxUint32}{LastCount}{\void}
\constfunc{size\_t}{LastCount}{\void}
Returns the number of bytes read or written by the last IO call.
\membersection{wxSocketBase::LastError}\label{wxsocketbaselasterror}
\constfunc{wxSocketError}{LastError}{\void}
\constfunc{GSocketError}{LastError}{\void}
Returns the last occured wxSocket error. See \helpref{wxSocket errors}{wxsocketbase}.
Returns an error in the GSocket format. See GSocket errors.
% ---------------------------------------------------------------------------
% IO calls
@@ -202,7 +154,7 @@ Returns the last occured wxSocket error. See \helpref{wxSocket errors}{wxsocketb
%
\membersection{wxSocketBase::Peek}\label{wxsocketbasepeek}
\func{wxSocketBase\&}{Peek}{\param{char *}{ buffer}, \param{wxUint32}{ nbytes}}
\func{wxSocketBase\&}{Peek}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
This function peeks a buffer of {\it nbytes} bytes from the socket. Peeking a buffer
doesn't delete it from the system socket in-queue.
@@ -228,7 +180,7 @@ Returns a reference to the current object.
%
\membersection{wxSocketBase::Read}\label{wxsocketbaseread}
\func{wxSocketBase\&}{Read}{\param{char *}{ buffer}, \param{wxUint32}{ nbytes}}
\func{wxSocketBase\&}{Read}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
This function reads a buffer of {\it nbytes} bytes from the socket.
@@ -267,7 +219,7 @@ This remark is also valid for all IO call.
%
\membersection{wxSocketBase::Write}\label{wxsocketbasewrite}
\func{wxSocketBase\&}{Write}{\param{const char *}{ buffer}, \param{wxUint32}{ nbytes}}
\func{wxSocketBase\&}{Write}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
This function writes a buffer of {\it nbytes} bytes from the socket.
@@ -304,7 +256,7 @@ Returns a reference to the current object.
%
\membersection{wxSocketBase::WriteMsg}\label{wxsocketbasewritemsg}
\func{wxSocketBase\&}{WriteMsg}{\param{const char *}{ buffer}, \param{wxUint32}{ nbytes}}
\func{wxSocketBase\&}{WriteMsg}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
This function writes a buffer of {\it nbytes} bytes from the socket. But it
writes a short header before so that ReadMsg can alloc the right size for
@@ -332,7 +284,7 @@ Returns a reference to the current object.
%
\membersection{wxSocketBase::ReadMsg}\label{wxsocketbasereadmsg}
\func{wxSocketBase\&}{ReadMsg}{\param{char *}{ buffer}, \param{wxUint32}{ nbytes}}
\func{wxSocketBase\&}{ReadMsg}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
This function reads a buffer sent by WriteMsg on a socket. If the buffer passed
to the function isn't big enough, the function filled it and then discard the
@@ -358,9 +310,9 @@ Returns a reference to the current object.
%
% Unread
%
\membersection{wxSocketBase::Unread}\label{wxsocketbaseunread}
\membersection{wxSocketBase::UnRead}\label{wxsocketbaseunread}
\func{wxSocketBase\&}{Unread}{\param{const char *}{ buffer}, \param{wxUint32}{ nbytes}}
\func{wxSocketBase\&}{UnRead}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
This function unreads a buffer. It means that the buffer is put in the top
of the incoming queue. But, it is put also at the end of all unread buffers.
@@ -397,7 +349,7 @@ doesn't wait.
% ---------------------------------------------------------------------------
\membersection{wxSocketBase::Wait}\label{wxsocketbasewait}
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for an event: it could be an incoming byte, the possibility
for the client to write, a lost connection, an incoming connection, an
@@ -407,7 +359,7 @@ established connection.
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{millisecond}{Number of milliseconds to wait.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
@@ -424,7 +376,7 @@ Returns TRUE if an event occured, FALSE if the timeout was reached.
%
\membersection{wxSocketBase::WaitForRead}\label{wxsocketbasewaitforread}
\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for a read event.
@@ -432,7 +384,7 @@ This function waits for a read event.
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{millisecond}{Number of milliseconds to wait.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
@@ -449,7 +401,7 @@ Returns TRUE if a byte arrived, FALSE if the timeout was reached.
%
\membersection{wxSocketBase::WaitForWrite}\label{wxsocketbasewaitforwrite}
\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for a write event.
@@ -457,7 +409,7 @@ This function waits for a write event.
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{millisecond}{Number of milliseconds to wait.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
@@ -474,7 +426,7 @@ Returns TRUE if a write event occured, FALSE if the timeout was reached.
%
\membersection{wxSocketBase::WaitForLost}\label{wxsocketbasewaitforlost}
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for a "lost" event. For instance, the peer may have closed
the connection, or the connection may have been broken.
@@ -483,7 +435,7 @@ the connection, or the connection may have been broken.
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{millisecond}{Number of milliseconds to wait.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
@@ -502,8 +454,7 @@ Returns TRUE if a "lost" event occured, FALSE if the timeout was reached.
\func{void}{RestoreState}{\void}
This function restores the previous state of the socket (include flags,
notify flags, notify state, C callback function and data).
This function restores a previously saved state.
\wxheading{See also}
@@ -526,36 +477,6 @@ actually it saves all flags and the state of the asynchronous callbacks.
\helpref{wxSocketBase::RestoreState}{wxsocketbaserestorestate}
%
% GetLocal
%
\membersection{wxSocketBase::GetLocal}{wxsocketbasegetlocal}
\constfunc{bool}{GetLocal}{\param{wxSockAddress\& }{addr_man}}
This function returns the local address field of the socket. The local
address field contains the complete local address of the socket (local
address, local port, ...).
\wxheading{Return value}
It returns TRUE if no errors happened, FALSE otherwise.
%
% GetPeer
%
\membersection{wxSocketBase::GetPeer}{wxsocketbasegetlocal}
\constfunc{bool}{GetPeer}{\param{wxSockAddress\& }{addr_man}}
This function returns the peer address field of the socket. The peer
address field contains the complete peer host address of the socket
(address, port, ...).
\wxheading{Return value}
It returns TRUE if no errors happened, FALSE otherwise.
% ---------------------------------------------------------------------------
% Socket callbacks
% ---------------------------------------------------------------------------
@@ -573,43 +494,7 @@ Sets an event handler to be called when a socket event occured.
\wxheading{See also}
\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify}
\helpref{wxSocketBase::Notify}{wxsocketbasenotify}
\helpref{wxSocketEvent}{wxsocketevent}
\helpref{wxEvtHandler}{wxevthandler}
\membersection{wxSocketBase::Callback}\label{wxsocketbasecallback}
\func{wxSocketBase::wxSockCbk}{Callback}{\param{wxSocketBase::wxSockCbk}{ callback}}
wxSocket event handler can call C callback. This function allows you to set it.
The format of the callback is as followed:
\begin{verbatim}
void SocketCallback(wxSocketBase& sock,wxSocketNotify evt,char *cdata);
\end{verbatim}
The first parameter reminds you of the caller socket. The second parameter
informs you about the current event (See \helpref{wxSocket events}{wxsocketbase}).
The third parameters is the client data you specified using \helpref{CallbackData}{wxsocketcallbackdata}.
\wxheading{Return value}
It returns the previous callback.
\wxheading{See also}
\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify}
\helpref{wxSocketBase::Notify}{wxsocketbasenotify}
\membersection{wxSocketBase::CallbackData}\label{wxsocketcallbackdata}
\func{char *}{CallbackData}{\param{char *}{cdata}}
This function sets the the client data which will be passed to a \helpref{C callback}{wxsocketbasecallback}.
\wxheading{Return value}
This function returns the old value of the client data pointer.
% ---------------------------------------------------------------------------
% CLASS wxSocketClient
@@ -678,7 +563,7 @@ Returns TRUE if the connection is established and no error occurs.
%
\membersection{wxSocketClient::WaitOnConnect}\label{wxsocketclientwaitonconnect}
\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ milliseconds = 0}}
\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ microseconds = 0}}
Wait for a "connect" event.
@@ -727,7 +612,7 @@ Constructor.
\membersection{wxSocketEvent::SocketEvent}\label{wxsocketeventsocketevent}
\constfunc{wxSocketNotify}{SocketEvent}{\void}
\constfunc{GSocketEvent}{SocketEvent}{\void}
Returns the socket event type.

View File

@@ -34,11 +34,10 @@ can call directly wxStreamBuffer::Read without any problems.
\wxheading{Warning}
All errors and messages linked to the stream are stored in the stream object.
\begin{verbatim}
streambuffer.Read(...);
streambuffer2.Read(...); /* This one erases previous error messages set by
``streambuffer'' */
streambuffer.Read(...);
streambuffer2.Read(...); /* This one erases previous error messages set by
``streambuffer'' */
\end{verbatim}
\func{}{wxStreamBuffer}{\param{BufMode}{ mode}}

View File

@@ -3,13 +3,6 @@
% -----------------------------------------------------------------------------
\section{\class{wxFileInputStream}}\label{wxfileinputstream}
This classes represent data streams to and from a file. There are actually
two such groups of classes: those documented here, and another group called
wxFFileInputStream, wxFFileOutputStream and wxFFileStream which are not
based on file descriptors (and their wxWindows equivalent wxFile) but the
FILE* type (and wxFFile). Apart from the different constructor ("FILE *file"
instead if "int fd") their interface is identical.
\wxheading{Derived from}
\helpref{wxInputStream}{wxinputstream}

View File

@@ -30,7 +30,7 @@ XPM icon file to be available at run-time.
#endif
\end{verbatim}
A macro, \helpref{wxICON}{wxicon}, is available which creates an icon using an XPM
A macro, wxICON, is available which creates an icon using an XPM
on the appropriate platform, or an icon resource on Windows.
\begin{verbatim}
@@ -47,30 +47,6 @@ wxIcon icon("mondrian");
#endif
\end{verbatim}
There is also a corresponding \helpref{wxBITMAP}{wxbitmap} macro which allows
to create the bitmaps in much the same way as \helpref{wxICON}{wxicon} creates
icons. It assumes that bitmaps live in resources under Windows or OS2 and XPM
files under all other platforms (for XPMs, the corresponding file must be
included before this macro is used, of course, and the name of the bitmap
should be the same as the resource name under Windows with {\tt \_xpm}
suffix). For example:
\begin{verbatim}
// an easy and portable way to create a bitmap
wxBitmap bmp(wxBITMAP(bmpname));
// which is roughly equivalent to the following
#if defined(__WXMSW__) || defined(__WXPM__)
wxBitmap bmp("bmpname", wxBITMAP_TYPE_RESOURCE);
#else // Unix
wxBitmap bmp(bmpname_xpm, wxBITMAP_TYPE_XPM);
#endif
\end{verbatim}
You should always use wxICON and wxBITMAP macros because they work for any
platform (unlike the code above which doesn't deal with wxMac, wxBe, ...) and
are more short and clear than versions with {\tt #ifdef}s.
\subsection{Supported bitmap file formats}\label{supportedbitmapformats}
The following lists the formats handled on different platforms. Note

View File

@@ -21,8 +21,8 @@ combineSubSections = yes
;;
;; These two are for generating MS HTML Help project, contents and index files.
;;
htmlWorkshopFiles = true
htmlIndex = true
;htmlWorkshopFiles = true
;htmlIndex = true
;\overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}}
;\htmlonly{\image{}{books.gif}}\helpref{#1}{#2}
@@ -34,7 +34,7 @@ htmlIndex = true
\constfunc [3] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}}
\windowstyle [1] {{\bf #1}\index{#1}}
\bftt [1] {\bf{\tt{#1}}}
\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}} #1}
\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}}\\ #1}
%\pythonnote [1] {}

View File

@@ -30,7 +30,7 @@ you can still use Ctrl-Enter to pass to the next control from the keyboard.}
\twocolitem{\windowstyle{wxTE\_MULTILINE}}{The text control allows multiple lines.}
\twocolitem{\windowstyle{wxTE\_PASSWORD}}{The text will be echoed as asterisks.}
\twocolitem{\windowstyle{wxTE\_READONLY}}{The text will not be user-editable.}
\twocolitem{\windowstyle{wxHSCROLL}}{A horizontal scrollbar will be created. No effect under GTK+.}
\twocolitem{\windowstyle{wxHSCROLL}}{A horizontal scrollbar will be created.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles} and
@@ -38,8 +38,7 @@ See also \helpref{window styles overview}{windowstyles} and
\wxheading{Remarks}
This class multiply-inherits from {\bf streambuf} where compilers allow, allowing code such as
the following:
This class multiply-inherits from {\bf streambuf} where compilers allow, allowing code such as the following:
{\small%
\begin{verbatim}
@@ -52,11 +51,8 @@ the following:
\end{verbatim}
}%
If your compiler does not support derivation from {\bf streambuf} and gives a compile error, define the symbol
{\bf NO\_TEXT\_WINDOW\_STREAM} in the wxTextCtrl header file.
Note that any use of C++ iostreams (including this one) deprecated and might get completely removed
in the future.
If your compiler does not support derivation from {\bf streambuf} and gives a compile error, define the symbol {\bf NO\_TEXT\_WINDOW\_STREAM} in the
wxTextCtrl header file.
\wxheading{Event handling}

View File

@@ -18,10 +18,25 @@ with a new wxDateTime class in the near future.
{\small \begin{verbatim}
typedef unsigned short hourTy;
\end{verbatim}}
{\small \begin{verbatim}
typedef unsigned short minuteTy;
\end{verbatim}}
{\small \begin{verbatim}
typedef unsigned short secondTy;
\end{verbatim}}
{\small \begin{verbatim}
typedef unsigned long clockTy;
\end{verbatim}}
{\small \begin{verbatim}
enum tFormat { wx12h, wx24h };
\end{verbatim}}
{\small \begin{verbatim}
enum tPrecision { wxStdMinSec, wxStdMin };
\end{verbatim}}

View File

@@ -9,7 +9,6 @@ This chapter contains a selection of topic overviews.
\input tcontain.tex
\input tlog.tex
\input tconfig.tex
\input tunicode.tex
\input tbitmap.tex
\input tdialog.tex
\input tfont.tex

View File

@@ -159,7 +159,7 @@ EVT\_TREE\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no
text control will appear for in-place editing.
If the user changed the label (i.e. s/he does not press ESC or leave
the text control without changes, a EVT\_TREE\_END\_LABEL\_EDIT event
the text control without changes, a EVT\_TREE\_END\_LABEL\_EDIT event
will be sent which can be vetoed as well.
\wxheading{See also}
@@ -203,10 +203,6 @@ The return value is TRUE if the rectangle was successfully retrieved or FALSE
if it was not (in this case {\it rect} is not changed) - for example, if the
item is currently invisible.
\pythonnote{The wxPython version of this method requires only the
\tt{item} and \tt{textOnly} parameters. The return value is either a
\tt{wxRect} object or \tt{None}.}
\membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount}
\constfunc{size\_t}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = TRUE}}
@@ -291,20 +287,9 @@ associated with the wxTreeItemData for the given item Id.}
\membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage}
\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item},
\param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}}
\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item}}
Gets the specified item image. The value of {\it which} may be:
\begin{itemize}\itemsep=0pt
\item{wxTreeItemIcon\_Normal} to get the normal item image
\item{wxTreeItemIcon\_Selected} to get the selected item image (i.e. the image
which is shown when the item is currently selected)
\item{wxTreeItemIcon\_Expanded} to get the expanded image (this only
makes sense for items which have children - then this image is shown when the
item is expanded and the normal image is shown when it is collapsed)
\item{wxTreeItemIcon\_SelectedExpanded} to get the selected expanded image
(which is shown when an expanded item is currently selected)
\end{itemize}
Gets the normal item image.
\membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext}
@@ -396,15 +381,14 @@ Returns the root item for the tree control.
\constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}}
Gets the selected item image (this function is obsolete, use
{\tt GetItemImage(item, wxTreeItemIcon\_Selected} instead).
Gets the selected item image.
\membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection}
\constfunc{wxTreeItemId}{GetSelection}{\void}
Returns the selection, or an invalid item if there is no selection.
This function only works with the controls without wxTR\_MULTIPLE style, use
This function only works with the controls without wxTR\_MULTIPLE style, use
\helpref{GetSelections}{wxtreectrlgetselections} for the controls which do have
this style.
@@ -417,9 +401,6 @@ function can be called only if the control has the wxTR\_MULTIPLE style.
Returns the number of selected items.
\pythonnote{The wxPython version of this method accepts no parameters
and returns a Python list of \tt{wxTreeItemId}'s.}
\membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest}
\func{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
@@ -565,19 +546,15 @@ usage and loading time.
\membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage}
\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item},
\param{int }{image},
\param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}}
\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{image}}
Sets the specified item image. See \helpref{GetItemImage}{wxtreectrlgetitemimage}
for the description of {\it which} parameter.
Sets the normal item image. This is an index into the assciated image list.
\membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage}
\func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}}
Sets the selected item image (this function is obsolete, use
{\tt SetItemImage(item, wxTreeItemIcon\_Selected} instead).
Sets the item selected image. This is an index into the assciated image list.
\membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext}
@@ -614,7 +591,7 @@ Removes the selection from the currently selected item (if any).
\func{void}{UnselectAll}{\void}
This function either behaves the same as \helpref{Unselect}{wxtreectrlunselect}
This function either behaves the same as \helpref{Unselect}{wxtreectrlunselect}
if the control doesn't have wxTR\_MULTIPLE style, or removes the selection from
all items if it does have this style.

View File

@@ -46,33 +46,27 @@ functions that take a wxTreeEvent argument.
Constructor.
\membersection{wxTreeEvent::GetItem}
\membersection{wxTreeEvent::m\_code}
\constfunc{wxTreeItemId}{GetItem}{}
\member{int}{m\_code}
Returns he item (valid for all events).
Key code if the event is a keypress event.
\membersection{wxTreeEvent::GetOldItem}
\membersection{wxTreeEvent::m\_itemIndex}
\constfunc{wxTreeItemId}{GetOldItem}{}
\member{wxTreeItem}{m\_item}
Returns the old item index (valid for EVT\_TREE\_ITEM\_CHANGING and CHANGED events)
The item (valid for all events).
\membersection{wxTreeEvent::GetPoint()}
\membersection{wxTreeEvent::m\_oldItem}
\constfunc{wxPoint}{GetPoint}{}
\member{long}{m\_oldItem}
Returns the position of the mouse pointer if the event is a drag event.
The old item index (valid for EVT\_TREE\_ITEM\_CHANGING and CHANGED events)
\membersection{wxTreeEvent::GetCode}
\membersection{wxTreeEvent::m\_pointDrag}
\constfunc{int}{GetCode}{}
\member{wxPoint}{m\_pointDrag}
The key code if the event was is a key event.
\membersection{wxTreeEvent::GetLabel}
\constfunc{const wxString&}{GetLabel}{}
Returns the label if the event was a begin or end edit label event.
The position of the mouse pointer if the event is a drag event.

View File

@@ -8,18 +8,15 @@ Classes: \helpref{wxStreamBase}{wxstreambase},
\wxheading{Purpose of wxStream}
We had troubles with standard C++ streams on several platforms:
they react quite well in most cases, but in the multi-threaded case, for example,
they have many problems. Some Borland Compilers refuse to work at all
with them and using iostreams on Linux makes writing programs, that are
binary compatible across different Linux distributions, impossible.
We went into troubles with c++ std streams on some platform:
they react quite well in most cases, but in multi-threaded case, for example,
they have a LOT of problems.
Therefore, wxStreams have been added to wxWindows because an application should
compile and run on all supported platforms and we don't want users to depend on release
Then, wxStreams have been built in wxWindows because an application should compile
and run on all supported platforms and we don't want users depend on release
X.XX of libg++ or some other compiler to run the program.
wxStreams is divided in two main parts:
\begin{enumerate}\itemsep=0pt
\item the core: wxStreamBase, wxStreamBuffer, wxInputStream, wxOutputStream,
wxFilterIn/OutputStream
@@ -51,41 +48,41 @@ wxStreamBuffer. This could also be a simple link to the a true syscall
\wxheading{Generic usage: an example}
Usage is simple. We can take the example of wxFileInputStream and here is some sample
About its usage, it's simple. We can take the example of wxFileInputStream and here is a sample
code:
\begin{verbatim}
...
// The constructor initializes the stream buffer and open the file descriptor
// associated to the name of the file.
wxFileInputStream in_stream("the_file_to_be_read");
wxFileInputStream in\_stream("the\_file\_to\_be\_read");
// Ok, read some bytes ... nb_datas is expressed in bytes.
in_stream.Read(data, nb_datas);
if (in_stream.LastError() != wxStream_NOERROR) {
// Ok, read some bytes ... nb\_datas is expressed in bytes.
in\_stream.Read(data, nb\_datas);
if (in\_stream.LastError() != wxStream\_NOERROR) {
// Oh oh, something bad happens.
// For a complete list, look into the documentation at wxStreamBase.
}
// You can also inline all like this.
if (in_stream.Read(data, nb_datas).LastError() != wxStream_NOERROR) {
if (in\_stream.Read(data, nb\_datas).LastError() != wxStream\_NOERROR) {
// Do something.
}
// You can also get the last number of bytes REALLY put into the buffer.
size_t really_read = in_stream.LastRead();
size\_t really\_read = in\_stream.LastRead();
// Ok, moves to the beginning of the stream. SeekI returns the last position
// in the stream counted from the beginning.
off_t old_position = in_stream.SeekI(0, wxFromBeginning);
off\_t old_position = in\_stream.SeekI(0, wxFromBeginning);
// What is my current position ?
off_t position = in_stream.TellI();
off\_t position = in\_stream.TellI();
// wxFileInputStream will close the file descriptor on the destruction.
\end{verbatim}
\wxheading{Compatibility with C++ streams}
\wxheading{Compatibility with c++ stream}
As I said previously, we could add a filter stream so it takes an istream
argument and builds a wxInputStream from it: I don't think it should

View File

@@ -1,156 +0,0 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name: tunicode.tex
%% Purpose: Overview of the Unicode support in wxWindows
%% Author: Vadim Zeitlin
%% Modified by:
%% Created: 22.09.99
%% RCS-ID: $Id$
%% Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
%% Licence: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Unicode support in wxWindows}\label{unicode}
This section briefly describes the state of the Unicode support in wxWindows.
Read it if you want to know more about how to write programs able to work with
characters from languages other than English.
\subsection{What is Unicode?}
Starting with release 2.1 wxWindows has support for compiling in Unicode mode
on the platforms which support it. Unicode is a standard for character
encoding which addreses the shortcomings of the previous, 8 bit standards, by
using 16 bit for encoding each character. This allows to have 65536 characters
instead of the usual 256 and is sufficient to encode all of the world
languages at once. More details about Unicode may be found at {\tt www.unicode.org}.
% TODO expand on it, say that Unicode extends ASCII, mention ISO8859, ...
As this solution is obviously preferable to the previous ones (think of
incompatible encodings for the same language, locale chaos and so on), many
modern ooperating systems support it. The probably first example is Windows NT
which uses only Unicode internally since its very first version.
Writing internationalized programs is much easier with Unicode and, as the
support for it improves, it should become more and more so. Moreover, in the
Windows NT/2000 case, even the program which uses only standard ASCII can profit
from using Unicode because they will work more efficiently - there will be no
need for the system to convert all strings hte program uses to/from Unicode
each time a system call is made.
\subsection{Unicode and ANSI modes}
As not all platforms supported by wxWindows support Unicode (fully) yet, in
many cases it is unwise to write a program which can only work in Unicode
environment. A better solution is to write programs in such way that they may
be compiled either in ANSI (traditional) mode or in the Unicode one.
This can be achieved quite simply by using the means provided by wxWindows.
Basicly, there are only a few things to watch out for:
\begin{itemize}
\item Character type ({\tt char} or {\tt wchar\_t})
\item Literal strings (i.e. {\tt "Hello, world!"} or {\tt '*'})
\item String functions ({\tt strlen()}, {\tt strcpy()}, ...)
\end{itemize}
Let's look at them in order. First of all, each character in an Unicode
program takes 2 bytes instead of usual one, so another type should be used to
store the characters ({\tt char} only holds 1 byte usually). This type is
called {\tt wchar\_t} which stands for {\it wide-character type}.
Also, the string and character constants should be encoded on 2 bytes instead
of one. This is achieved by using the standard C (and C++) way: just put the
letter {\tt 'L'} after any string constant and it becomes a {\it long}
constant, i.e. a wide character one. To make things a bit more readable, you
are also allowed to prefix the constant with {\tt 'L'} instead of putting it
after it.
Finally, the standard C functions don't work with {\tt wchar\_t} strings, so
another set of functions exists which do the same thing but accept
{\tt wchar\_t *} instead of {\tt char *}. For example, a function to get the
length of a wide-character string is called {\tt wcslen()} (compare with
{\tt strlen()} - you see that the only difference is that the "str" prefix
standing for "string" has been replaced with "wcs" standing for
"wide-character string").
To summarize, here is a brief example of how a program which can be compiled
in both ANSI and Unicode modes could look like:
\begin{verbatim}
#ifdef __UNICODE__
wchar_t wch = L'*';
const wchar_t *ws = L"Hello, world!";
int len = wcslen(ws);
#else // ANSI
char ch = '*';
const char *s = "Hello, world!";
int len = strlen(s);
#endif // Unicode/ANSI
\end{verbatim}
Of course, it would be nearly impossibly to write such programs if it had to
be done this way (try to imagine the number of {\tt #ifdef UNICODE} an average
program would have had!). Luckily, there is another way - see the next
section.
\subsection{Unicode support in wxWindows}
In wxWindows, the code fragment froim above should be written instead:
\begin{verbatim}
wxChar ch = T('*');
wxString s = T("Hello, world!");
int len = s.Len();
\end{verbatim}
What happens here? First of all, you see that there are no more {\tt #ifdef}s
at all. Instead, we define some types and macros which behave differently in
the Unicode and ANSI builds and allows us to avoid using conditional
compilation in the program itself.
We have a {\tt wxChar} type which maps either on {\tt char} or {\tt wchar\_t}
depending on the mode in which program is being compiled. There is no need for
a separate type for strings though, because the standard
\helpref{wxString}{wxstring} supports Unicode, i.e. it stores iether ANSI or
Unicode strings depending on the mode.
Finally, there is a special {\tt T()} macro which should enclose all literal
strings in the program. As it's easy to see comparing the last fragment with
the one above, this macro expands to nothing in the (usual) ANSI mode and
prefixes {\tt 'L'} to its argument in the Unicode mode.
The important conclusion is that if you use {\tt wxChar} instead of
{\tt char}, avoid using C style strings and use {\tt wxString} instead and
don't forget to enclose all string literals inside {\tt T()} macro, your
program automatically becomes (almost) Unicode compliant!
Just let us state once again the rules:
\begin{itemize}
\item Always use {\tt wxChar} instead of {\tt char}
\item Always enclose literal string constants in {\tt T()} macro unless
they're already converted to the right representation (another standard
wxWindows macro {\tt \_()} does it, so there is no need for {\tt T()} in this
case) or you intend to pass the constant directly to an external function
which doesn't accept wide-character strings.
\item Use {\tt wxString} instead of C style strings.
\end{itemize}
\subsection{Unicode and the outside world}
We have seen that it was easy to write Unicode programs using wxWindows types
and macros, but it has been also mentioned that it isn't quite enough.
Although everything works fine inside the program, things can get nasty when
it tries to communicate with the outside world which, sadly, often expects
ANSI strings (a notable exception is the entire Win32 API which accepts either
Unicode or ANSI strings and which thus makes it unnecessary to ever perform
any convertions in the program).
To get a ANSI string from a wxString, you may use
\helpref{mb\_str()}{wxstringmbstr} function which always returns an ANSI
string (independently of the mode - while the usual
\helpref{c\_str()}{wxstringcstr} returns a pointer to the internal
representation which is either ASCII or Unicode). More rarely used, but still
useful, is \helpref{wc\_str()}{wxstringwcstr} function which always returns
the Unicode string.
% TODO describe fn_str(), wx_str(), wxCharBuf classes, ...

View File

@@ -91,14 +91,14 @@ $\backslash$n or $\backslash$r$\backslash$n or $\backslash$r.
This class provides functions that write text datas using an output stream.
So, you can write \it{text} floats, integers.
You can also simulate the C++ cout class:
For example:
\begin{verbatim}
wxFFileOutputStream output( stderr );
wxTextOutputStream cout( output );
wxFileOutputStream output( "mytext.txt" );
wxTextOutputStream text( output );
cout << "This is a text line" << endl;
cout << 1234;
cout << 1.23456;
output << "This is a text line\n";
output << 1234;
output << 1.23456;
\end{verbatim}
The wxTextOutputStream writes text files (or streams) on DOS, Macintosh

View File

@@ -22,8 +22,8 @@ For more information, please see \helpref{Validator overview}{validatoroverview}
\wxheading{See also}
\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator},
\helpref{wxTextValidator}{wxtextvalidator}
\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator},
\helpref{wxTextValidator}{wxTextvalidator}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -73,13 +73,13 @@ Clones the generic validator using the copy constructor.
\membersection{wxGenericValidator::TransferFromWindow}\label{wxgenericvalidatortransferfromwindow}
\func{virtual bool}{TransferToWindow}{}
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
Transfers the value to the window.
\membersection{wxGenericValidator::TransferToWindow}\label{wxgenericvalidatortransfertowindow}
\func{virtual bool}{TransferToWindow}{}
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
Transfers the window value to the appropriate data type.

View File

@@ -18,10 +18,6 @@ To specify a default, `null' validator, use the symbol {\bf wxDefaultValidator}.
For more information, please see \helpref{Validator overview}{validatoroverview}.
\pythonnote{If you wish to create a validator class in wxPython you should
derive the class from \tt{wxPyValidator} in order to get Python-aware
capabilities for the various virtual methods.}
\wxheading{Derived from}
\helpref{wxEvtHandler}{wxevthandler}\\
@@ -33,10 +29,7 @@ capabilities for the various virtual methods.}
\wxheading{See also}
\helpref{Validator overview}{validatoroverview},
\helpref{wxTextValidator}{wxtextvalidator},
\helpref{wxGenericValidator}{wxgenericvalidator},
\helpref{Validator overview}{validatoroverview}, \helpref{wxTextValidator}{wxtextvalidator}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -86,14 +79,14 @@ Associates a window with the validator.
\membersection{wxValidator::TransferFromWindow}\label{wxvalidatortransferfromwindow}
\func{virtual bool}{TransferToWindow}{}
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
This overridable function is called when the value in the window must be
transferred to the validator. Return FALSE if there is a problem.
\membersection{wxValidator::TransferToWindow}\label{wxvalidatortransfertowindow}
\func{virtual bool}{TransferToWindow}{}
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
This overridable function is called when the value associated with the validator must be
transferred to the window. Return FALSE if there is a problem.

View File

@@ -16,7 +16,7 @@ For more information, please see \helpref{Validator overview}{validatoroverview}
\wxheading{See also}
\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator},
\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator},
\helpref{wxGenericValidator}{wxgenericvalidator}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -111,13 +111,13 @@ Sets the validator style.
\membersection{wxTextValidator::TransferFromWindow}\label{wxtextvalidatortransferfromwindow}
\func{virtual bool}{TransferFromWindow}{}
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
Transfers the string value to the window.
\membersection{wxTextValidator::TransferToWindow}\label{wxtextvalidatortransfertowindow}
\func{virtual bool}{TransferToWindow}{}
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
Transfers the window value to the string.

View File

@@ -1,15 +1,8 @@
\section{\class{wxWindow}}\label{wxwindow}
wxWindow is the base class for all windows. Any children of the window will be deleted
automatically by the destructor before the window itself is deleted.
Please note that we documented a number of handler functions (OnChar(), OnMouse() etc.) in this
help text. These must not be called by a user program and are documented only for illustration.
On several platforms, only a few of these handlers are actually written (they are not always
needed) and if you are uncertain on how to add a certain behaviour to a window class, intercept
the respective event as usual and call \helpref{wxEvent::Skip}{wxeventskip} so that the native
platform can implement its native behaviour or just ignore the event if nothing needs to be
done.
wxWindow is the base class for all windows. Any
children of the window will be deleted automatically by the destructor
before the window itself is deleted.
\wxheading{Derived from}
@@ -23,7 +16,7 @@ done.
\wxheading{Window styles}
The following styles can apply to all windows, although they will not always make sense for a particular
window class or on all platforms.
window class.
\twocolwidtha{5cm}%
\begin{twocollist}\itemsep=0pt
@@ -38,14 +31,6 @@ events. Windows only.}
\twocolitem{\windowstyle{wxNO\_3D}}{Prevents the children of this window taking on 3D styles, even though
the application-wide policy is for 3D controls. Windows only.}
\twocolitem{\windowstyle{wxTAB\_TRAVERSAL}}{Use this to enable tab traversal for non-dialog windows.}
\twocolitem{\windowstyle{wxWANTS\_CHARS}}{Use this to indicate that the window
wants to get all char events - even for keys like TAB or ENTER which are
usually used for dialog navigation and which wouldn't be generated without
this style}
\twocolitem{\windowstyle{wxNO\_FULLREPAINT\_ON\_RESIZE}}{Disables repainting
the window completely when its size is changed - you will have to repaint the
new window area manually if you use style. Currently only has effect for
Windows.}
\twocolitem{\windowstyle{wxVSCROLL}}{Use this style to enable a vertical scrollbar. (Still used?) }
\twocolitem{\windowstyle{wxHSCROLL}}{Use this style to enable a horizontal scrollbar. (Still used?) }
\twocolitem{\windowstyle{wxCLIP\_CHILDREN}}{Use this style to eliminate flicker caused by the background being
@@ -787,20 +772,6 @@ Returns TRUE if the window is enabled for input, FALSE otherwise.
\helpref{wxWindow::Enable}{wxwindowenable}
\membersection{wxWindow:IsExposed}\label{wxwindowisexposed}
\constfunc{bool}{IsExposed}{\param{int }{x}, \param{int }{y}}
\constfunc{bool}{IsExposed}{\param{wxPoint }{&pt}}
\constfunc{bool}{IsExposed}{\param{int }{x}, \param{int }{y}, \param{int }{w}, \param{int }{h}}
\constfunc{bool}{IsExposed}{\param{wxRect }{&rect}}
Returns TRUE if the given point or rectange area has been exposed since the
last repaint. Call this in an paint event handler to optimize redrawing by
only redrawing those areas, which have been exposed.
\membersection{wxWindow::IsRetained}\label{wxwindowisretained}
\constfunc{virtual bool}{IsRetained}{\void}
@@ -829,8 +800,7 @@ window).
\func{void}{Layout}{\void}
Invokes the constraint-based layout algorithm or the sizer-based algorithm
for this window.
Invokes the constraint-based layout algorithm for this window.
See \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} on when
this function gets called automatically using auto layout.
@@ -1708,9 +1678,7 @@ Sets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxa
\func{void}{SetAutoLayout}{\param{const bool}{ autoLayout}}
Determines whether the \helpref{wxWindow::Layout}{wxwindowlayout} function will
be called automatically when the window is resized. Use in connection with
\helpref{wxWindow::SetSizer}{wxwindowsetsizer} and
\helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} for layouting subwindows.
be called automatically when the window is resized.
\wxheading{Parameters}
@@ -1849,9 +1817,8 @@ constraints.}
\wxheading{Remarks}
You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a window to use
the constraints automatically in OnSize; otherwise, you must override OnSize and call Layout()
explicitly. When setting both a wxLayoutConstraints and a \helpref{wxSizer}{wxsizer}, only the
sizer will have effect.
the constraints automatically in OnSize; otherwise, you must
override OnSize and call Layout explicitly.
\membersection{wxWindow::SetDropTarget}\label{wxwindowsetdroptarget}
@@ -2194,27 +2161,6 @@ given bounds.
The resizing increments are only significant under Motif or Xt.
\membersection{wxWindow::SetSizer}\label{wxwindowsetsizer}
\func{void}{SetSizer}{\param{wxSizer* }{sizer}}
Sets the window to have the given layout sizer. The window
will then own the object, and will take care of its deletion.
If an existing layout constraints object is already owned by the
window, it will be deleted.
\wxheading{Parameters}
\docparam{sizer}{The sizer to set. Pass NULL to disassociate and delete the window's
sizer.}
\wxheading{Remarks}
You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a window to use
the sizer automatically in OnSize; otherwise, you must override OnSize and call Layout()
explicitly. When setting both a wxSizer and a \helpref{wxLayoutConstraints}{wxlayoutconstraints},
only the sizer will have effect.
\membersection{wxWindow::SetTitle}\label{wxwindowsettitle}
\func{virtual void}{SetTitle}{\param{const wxString\& }{title}}

View File

@@ -14,8 +14,8 @@ wxPython is a blending of the wxWindows GUI classes and the
\wxheading{Python}
So what is Python? Go to
\urlref{http://www.python.org}{http://www.python.org} to learn more,
but in a nutshell Python is an interpreted,
\urlref{http://www.python.org}{http://www.python.org}
to learn more, but in a nutshell Python is an interpreted,
interactive, object-oriented programming language. It is often
compared to Tcl, Perl, Scheme or Java.
@@ -33,22 +33,23 @@ commercial use.
wxPython is a Python package that can be imported at runtime that
includes a collection of Python modules and an extension module
(native code). It provides a series of Python classes that mirror (or
shadow) many of the wxWindows GUI classes. This extension module
(native code). It provides a series of Python classes that mirror (or
shadow) many of the wxWindows GUI classes. This extension module
attempts to mirror the class heiarchy of wxWindows as closely as
possble. This means that there is a wxFrame class in wxPython that
looks, smells, tastes and acts almost the same as the wxFrame class in
the C++ version.
wxPython is very versitile. It can be used to create standalone GUI
wxPython is very versitile. It can be used to create standalone GUI
applications, or in situations where Python is embedded in a C++
application as an internal scripting or macro language.
Currently wxPython is available for Win32 platforms and the GTK
toolkit (wxGTK) on most Unix/X-windows platforms. The effort to
enable wxPython for wxMotif will begin shortly. See \helpref{Building Python}{wxpbuild} for
toolkit (wxGTK) on most Unix/X-windows platforms. The effort to
enable wxPython for wxMotif will begin shortly. See \helpref{Building Python}{wxpbuild} for
details about getting wxPython working for you.
%----------------------------------------------------------------------
\section{Why use wxPython?}\label{wxpwhy}
@@ -59,11 +60,11 @@ then I ususally code it as an extension module and leave the majority
of the program in Python.
Another good thing to use wxPython for is quick prototyping of your
wxWindows apps. With C++ you have to continuously go though the
edit-compile-link-run cycle, which can be quite time consuming. With
Python it is only an edit-run cycle. You can easily build an
wxWindows apps. With C++ you have to continuously go though the
edit-compile-link-run cycle, which can be quite time comsuming. With
Python it is only an edit-run cycle. You can easily build an
application in a few hours with Python that would normally take a few
days or longer with C++. Converting a wxPython app to a C++/wxWindows app
days or longer with C++. Converting a wxPython app to a C++/wxWindows app
should be a straight forward task.
%----------------------------------------------------------------------
@@ -73,139 +74,154 @@ There are other GUI solutions out there for Python.
\wxheading{Tkinter}
Tkinter is the defacto standard GUI for Python. It is available
on nearly every platform that Python and Tcl/TK are. Why Tcl/Tk?
Tkinter is the defacto standard GUI for Python. It is available
on nearly every platform that Python and Tcl/TK are. Why Tcl/Tk?
Well because Tkinter is just a wrapper around Tcl's GUI toolkit, Tk.
This has its upsides and its downsides...
The upside is that Tk is a pretty versatile toolkit. It can be made
to do a lot of things in a lot of different environments. It is fairly
The upside is that Tk is a pretty veristile toolkit. It can be made
to do a lot of things in a lot of different environments. It is fairly
easy to create new widgets and use them interchangably in your
programs.
The downside is Tcl. When using Tkinter you actually have two
The downside is Tcl. When using Tkinter you actually have two
separate language interpreters running, the Python interpreter and the
Tcl interpreter for the GUI. Since the guts of Tcl is mostly about
string processing, it is fairly slow as well. (Not too bad on a fast
Tcl interpreter for the GUI. Since the guts of Tcl is mostly about
string processing, it is fairly slow as well. (Not too bad on a fast
Pentium II, but you really notice the difference on slower machines.)
It wasn't until the lastest version of Tcl/Tk that native Look and
Feel was possible on non-Motif platforms. This is because Tk
usually implements its own widgets (controls) even when there are
Feel's were possible on non-Motif platforms. This is because Tk
usually implements it's own widgets (controls) even when there are
native controls available.
Tkinter is a pretty low-level toolkit. You have to do a lot of work
Tkinter is a pretty low-level toolkit. You have to do a lot of work
(verbose program code) to do things that would be much simpler with a higher
level of abstraction.
\wxheading{PythonWin}
PythonWin is an add-on package for Python for the Win32 platform. It
includes wrappers for MFC as well as much of the Win32 API. Because
PythonWin is an add-on package for Python for the Win32 platform. It
includes wrappers for MFC as well as much of the win32 API. Because
of its foundation, it is very familiar for programmers who have
experience with MFC and the Win32 API. It is obviously not compatible
with other platforms and toolkits. PythonWin is organized as separate
experience with MFC and the Win32 API. It is obviously not compatible
with other platforms and toolkits. PythonWin is organized as separate
packages and modules so you can use the pieces you need without having
to use the GUI portions.
\wxheading{Others}
There are quite a few other GUI modules available for Python, some in
active use, some that havn't been updated for ages. Most are simple
active use, some that havn't been updated for ages. Most are simple
wrappers around some C or C++ toolkit or another, and most are not
cross-platform compatible. See \urlref{this link}{http://www.python.org/download/Contributed.html\#Graphics}
cross-platform compatible. See \urlref{this
link}{http://www.python.org/download/Contributed.html\#Graphics}
for a listing of a few of them.
%----------------------------------------------------------------------
\section{Building wxPython}\label{wxpbuild}
I used SWIG (\urlref{http://www.swig.org}{http://www.swig.org}) to
to create the source code for the
extension module. This enabled me to only have to deal with a small
amount of code and only have to bother with the exceptional issues.
SWIG takes care of the rest and generates all the repetative code for
me. You don't need SWIG to build the extension module as all the
generated C++ code is included under the src directory.
create the source code for the extension module. This enabled me to
only have to deal with a small amount of code and only have to bother
with the exceptional issues. SWIG takes care of the rest and
generates all the repetative code for me. You don't need SWIG to
build the extension module as all the generated C++ code is included
under the src directory. If you try to build wxPython and get errors
because SWIG is missing, then simply touch the .cpp and .py files so
make won't attempt to build them from the .i files.
I added a few minor features to SWIG to control some of the code
generation. If you want to play around with this you will need to get
a recent version of SWIG from their CVS or from a daily build. See
\urlref{http://www.swig.org/}{http://www.swig.org/} for details.
generation. If you want to play around with this the patches are in
wxPython/SWIG.patches and they should be applied to the 1.1p5 version
of SWIG. These new patches are documented at
\urlref{this site}{http://starship.skyport.net/crew/robind/python/\#swig},
and they should also end up in the 1.2 version of SWIG.
wxPython is organized as a Python package. This means that the
wxPython is organized as a Python package. This means that the
directory containing the results of the build process should be a
subdirectory of a directory on the \tt{PYTHONPATH}. (And preferably should
be named wxPython.) You can control where the build process will dump
wxPython by setting the \tt{TARGETDIR} variable for the build utility (see
below).
subdirectory of a directory on the \tt{PYTHONPATH}, (and preferably
should be named wxPython.) You can control where the build process
will dump wxPython by setting the \tt{TARGETDIR} makefile variable.
The default is \tt{\$(WXWIN)/utils/wxPython}. If you leave it here
then you should add \tt{\$(WXWIN)/utils} to your \tt{PYTHONPATH}.
However, you may prefer to use something that is already on your
\tt{PYTHONPATH}, such as the \tt{site-packages} directory on Unix
systems.
\wxheading{Win32}
These instructions assume that you have Microsoft Visual C++ 5.0 or
6.0, that you have installed the command-line tools, and that the
appropriate environment variables are set for these tools. You should
also have Python 1.5.1 installed, and wxWindows installed and built as
specified below.
\begin{enumerate}\itemsep=0pt
\item Build wxWindows as described in its BuildCVS.txt file. For Unix
systems I run configure with these flags:
\begin{verbatim}
--with-gtk
--with-libjpeg
--without-odbc
--enable-unicode=no
--enable-threads=yes
--enable-socket=yes
--enable-static=no
--enable-shared=yes
--disable-std_iostreams
\end{verbatim}
You can use whatever flags you want, but I know these work.
For Win32 systems I use Visual C++ 6.0, but 5.0 should work also. The
build utility currently does not support any other Win32 compilers.
\item At this point you may want to make an alias or symlink, script,
batch file, whatever on the PATH that invokes \tt{\$(WXWIN)/utils/wxPython/distrib/build.py} to
help simplify matters somewhat. For example, on my Win32 system I have a file named
\tt{build}.bat in a directory on the PATH that contains:
\tt{python \%WXWIN/utils/wxPython/distrib/build.py \%1 \%2 \%3 \%4 \%5 \%6}
\item Build wxWindows with \tt{wxUSE_RESOURCE_LOADING_IN_MSW} set to 1 in
\tt{include/wx/msw/setup.h} so icons can be loaded dynamically. While
there, make sure \tt{wxUSE_OWNER_DRAWN} is also set to 1.
\item Change into the \tt{\$(WXWIN)/utils/wxPython/src} directory.
\item Type "\tt{build -b}" to build wxPython and "\tt{build -i}" to
install it, or "\tt{build -bi}" to do both steps at once.
The build.py script actually generates a Makefile based on what it
finds on your system and information found in the build.cfg file.
If you have troubles building or you want it built or installed in
a different way, take a look at the docstring in build.py. You are
able to to override many configuration options in a file named
build.local.
\item To build and install the add-on modules, change to the appropriate
directory under \tt{\$(WXWIN)/utils/wxPython/modules} and run the build
utility again.
\item Edit makefile.vc and specify where your python installation is at.
You may also want to fiddle with the \tt{TARGETDIR} variable as described
above.
\item Run \tt{nmake -f makefile.vc}
\item If it builds successfully, congratulations! Move on to the next
step. If not then you can try mailing the wxwin-developers list for
help. Also, I will always have a pre-built win32 version of this extension module at
\urlref{http://alldunn.com/wxPython}{http://alldunn.com/wxPython}.
\item Change to the \tt{\$(WXWIN)/utils/wxPython/demo} directory.
\item Try executing the demo program. For example:
\item Try executing the demo program. Note that some of the demos print
diagnositc or test info to standard output, so they will require the
console version of python. For example:
\tt{python demo.py}
To run it without requiring a console on Win32, you can use the
\tt{pythonw.exe} version of Python either from the command line or from a
shortcut.
To run them without requiring a console, you can use the \tt{pythonw.exe}
version of Python either from the command line or from a shortcut.
\end{enumerate}
\wxheading{Unix}
These directions assume that you have already successfully built
wxWindows for GTK, and installed Python 1.5.1 or later. If you build Python
yourself, you will get everything installed that you need simply by
doing \bftt{make install}. If you get Python from an RPM or other
pre-packaged source then there will probably be a separate package
with the development libraries, etc. that you will need to install.
\begin{enumerate}\itemsep=0pt
\item Change into the \tt{\$(WXWIN)/utils/wxPython/src} directory.
\item Edit \tt{Setup.in} and ensure that the flags, directories, and toolkit
options are correct, (hopefully this will be done by \tt{configure}
soon.) See the above commentary about \tt{TARGETDIR}. There are a
few sample Setup.in.[platform] files provided.
\item Run this command to generate a makefile:
\tt{make -f Makefile.pre.in boot}
\item Once you have the \tt{Makefile}, run \bftt{make} to build and then
\bftt{make install} to install the wxPython extension module.
\item Change to the \tt{\$(WXWIN)/utils/wxPython/demo} directory.
\item Try executing the demo program. For example:
\tt{python demo.py}
\end{enumerate}
%----------------------------------------------------------------------
\section{Using wxPython}\label{wxpusing}
\wxheading{First things first...}
I'm not going to try and teach the Python language here. You can do
I'm not going to try and teach the Python language here. You can do
that at the \urlref{Python Tutorial}{http://www.python.org/doc/tut/tut.html}.
I'm also going to assume that you know a bit about wxWindows already,
enough to notice the similarities in the classes used.
Take a look at the following wxPython program. You can find a similar
program in the \tt{wxPython/demo} directory, named \tt{DialogUnits.py}. If your
Take a look at the following wxPython program. You can find a similar
program in the \tt{wxPython/demo} directory, named \tt{DialogUnits.py}. If your
Python and wxPython are properly installed, you should be able to run
it by issuing this command:
@@ -297,54 +313,48 @@ it by issuing this command:
\begin{enumerate}\itemsep=0pt
\item At line 2 the wxPython classes, constants, and etc. are imported
into the current module's namespace. If you prefer to reduce
namespace pollution you can use "\tt{from wxPython import wx}" and
into the current module's namespace. If you prefer to reduce
namespace polution you can use "\tt{from wxPython import wx}" and
then access all the wxPython identifiers through the wx module, for
example, "\tt{wx.wxFrame}".
\item At line 13 the frame's sizing and moving events are connected to
methods of the class. These helper functions are intended to be like
the event table macros that wxWindows employs. But since static event
methods of the class. These helper functions are intended to be like
the event table macros that wxWindows employs. But since static event
tables are impossible with wxPython, we use helpers that are named the
same to dynamically build the table. The only real difference is
same to dynamically build the table. The only real difference is
that the first arguemnt to the event helpers is always the window that
the event table entry should be added to.
\item Notice the use of \tt{wxDLG\_PNT} and \tt{wxDLG\_SZE} in lines 19
- 29 to convert from dialog units to pixels. These helpers are unique
- 29 to convert from dialog units to pixels. These helpers are unique
to wxPython since Python can't do method overloading like C++.
\item There is an \tt{OnCloseWindow} method at line 34 but no call to
EVT\_CLOSE to attach the event to the method. Does it really get
called? The answer is, yes it does. This is because many of the
EVT\_CLOSE to attach the event to the method. Does it really get
called? The answer is, yes it does. This is because many of the
\em{standard} events are attached to windows that have the associated
\em{standard} method names. I have tried to follow the lead of the
\em{standard} method names. I have tried to follow the lead of the
C++ classes in this area to determine what is \em{standard} but since
that changes from time to time I can make no guarentees, nor will it
be fully documented. When in doubt, use an EVT\_*** function.
be fully documented. When in doubt, use an EVT\_*** function.
\item At lines 17 to 21 notice that there are no saved references to
the panel or the static text items that are created. Those of you
the panel or the static text items that are created. Those of you
who know Python might be wondering what happens when Python deletes
these objects when they go out of scope. Do they disappear from the GUI? They
don't. Remember that in wxPython the Python objects are just shadows of the
coresponding C++ objects. Once the C++ windows and controls are
these objects when they go out of scope. Do they disappear from the GUI? They
don't. Remember that in wxPython the Python objects are just shadows of the
coresponding C++ objects. Once the C++ windows and controls are
attached to their parents, the parents manage them and delete them
when necessary. For this reason, most wxPython objects do not need to
when necessary. For this reason, most wxPython objects do not need to
have a \_\_del\_\_ method that explicitly causes the C++ object to be
deleted. If you ever have the need to forcibly delete a window, use
deleted. If you ever have the need to forcibly delete a window, use
the Destroy() method as shown on line 36.
\item Just like wxWindows in C++, wxPython apps need to create a class
derived from \tt{wxApp} (line 56) that implements a method named
\tt{OnInit}, (line 59.) This method should create the application's
main window (line 62) and use \tt{wxApp.SetTopWindow()} (line 66) to
inform wxWindows about it.
\item And finally, at line 72 an instance of the application class is
created. At this point wxPython finishes initializing itself, and calls
the \tt{OnInit} method to get things started. (The zero parameter here is
a flag for functionality that isn't quite implemented yet. Just
created. At this point wxPython finishes initializing itself, and calls
the \tt{OnInit} method to get things started. (The zero parameter here is
a flag for functionality that isn't quite implemented yet. Just
ignore it for now.) The call to \tt{MainLoop} at line 73 starts the event
loop which continues until the application terminates or all the top
level windows are closed.
@@ -353,9 +363,9 @@ level windows are closed.
%----------------------------------------------------------------------
\section{wxWindows classes implemented in wxPython}\label{wxpclasses}
The following classes are supported in wxPython. Most provide nearly
The following classes are supported in wxPython. Most provide nearly
full implementations of the public interfaces specified in the C++
documentation, others are less so. They will all be brought as close
documentation, others are less so. They will all be brought as close
as possible to the C++ spec over time.
\begin{itemize}\itemsep=0pt
@@ -365,11 +375,9 @@ as possible to the C++ spec over time.
\item \helpref{wxBitmapButton}{wxbitmapbutton}
\item \helpref{wxBitmap}{wxbitmap}
\item wxBMPHandler
\item \helpref{wxBoxSizer}{wxboxsizer}
\item \helpref{wxBrush}{wxbrush}
\item \helpref{wxButton}{wxbutton}
\item \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}
\item wxCaret
\item \helpref{wxCheckBox}{wxcheckbox}
\item \helpref{wxCheckListBox}{wxchecklistbox}
\item \helpref{wxChoice}{wxchoice}
@@ -402,14 +410,6 @@ as possible to the C++ spec over time.
\item wxGridCell
\item wxGridEvent
\item \helpref{wxGrid}{wxgrid}
\item \helpref{wxHtmlCell}{wxhtmlcell}
\item \helpref{wxHtmlContainerCell}{wxhtmlcontainercell}
\item \helpref{wxHtmlParser}{wxhtmlparser}
\item \helpref{wxHtmlTagHandler}{wxhtmltaghandler}
\item \helpref{wxHtmlTag}{wxhtmltag}
\item \helpref{wxHtmlWinParser}{wxhtmlwinparser}
\item \helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}
\item \helpref{wxHtmlWindow}{wxhtmlwindow}
\item wxIconizeEvent
\item \helpref{wxIcon}{wxicon}
\item \helpref{wxIdleEvent}{wxidleevent}
@@ -476,20 +476,16 @@ as possible to the C++ spec over time.
\item \helpref{wxScrollBar}{wxscrollbar}
\item \helpref{wxScrollEvent}{wxscrollevent}
\item \helpref{wxScrolledWindow}{wxscrolledwindow}
\item \helpref{wxScrollWinEvent}{wxscrollwinevent}
\item wxShowEvent
\item \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog}
\item \helpref{wxSizeEvent}{wxsizeevent}
\item \helpref{wxSize}{wxsize}
\item \helpref{wxSizer}{wxsizer}
\item wxSizerItem
\item \helpref{wxSlider}{wxslider}
\item \helpref{wxSpinButton}{wxspinbutton}
\item wxSpinEvent
\item \helpref{wxSplitterWindow}{wxsplitterwindow}
\item \helpref{wxStaticBitmap}{wxstaticbitmap}
\item \helpref{wxStaticBox}{wxstaticbox}
\item \helpref{wxStaticBoxSizer}{wxstaticboxsizer}
\item wxStaticLine
\item \helpref{wxStaticText}{wxstatictext}
\item \helpref{wxStatusBar}{wxstatusbar}
@@ -506,12 +502,10 @@ as possible to the C++ spec over time.
\item \helpref{wxTreeItemData}{wxtreeitemdata}
\item wxTreeItemId
\item \helpref{wxUpdateUIEvent}{wxupdateuievent}
\item \helpref{wxValidator}{wxvalidator}
\item \helpref{wxWindowDC}{wxwindowdc}
\item \helpref{wxWindow}{wxwindow}
\end{itemize}
%----------------------------------------------------------------------
@@ -521,7 +515,7 @@ Since wxPython is a blending of multiple technologies, help comes from
multiple sources. See
\urlref{http://alldunn.com/wxPython}{http://alldunn.com/wxPython} for details on
various sources of help, but probably the best source is the
wxPython-users mail list. You can view the archive or subscribe by
wxPython-users mail list. You can view the archive or subscribe by
going to
\urlref{http://starship.python.net/mailman/listinfo/wxpython-users}{http://starship.python.net/mailman/listinfo/wxpython-users}

View File

@@ -16,6 +16,23 @@ install instructions just do (in the base dir):
> ldconfig
> exit
On all variants of Unix except Linux (and maybe except *BSD), shared libraries
are not supportet out of the box due to the utter stupidity of libtool, so you'll
have to do this to get shared library support:
> ./configure --with-motif --disable-static --enable-shared
Then you'll have to edit the wrongly created libtool script. There are two
important entries with respect to shared library creation, which are
archive_cmds="\$LD -shared ....
archive_expsym_cmds="\$LD -shared ....
which should be something like
archive_cmds="\$CC -shared ....
archive_expsym_cmds="\$CC -shared ....
Afterwards you can continue with
> make
@@ -231,13 +248,6 @@ The following options handle the kind of library you want to build.
binary size. Also fewer crashes during the
actual compilation...
--enable-no_deps Enable compilation without creation of
dependency information.
--enable-permissive Enable compilation without creation of
giving erros as soon as you compile with
Solaris ANSI-defying headers...
--enable-mem_tracing Add built-in memory tracing.
--enable-dmalloc Use the dmalloc memory debugger.

View File

@@ -11,7 +11,6 @@ __WXGTK12__ GTK 1.2 or higher
__WXMSW__ Any Windows
__WXWINE__ WINE (i.e. Win32 on Unix)
__WXMAC__ MacOS
__WXPM__ OS/2 native Presentation Manager
__UNIX__ any Unix
__WINDOWS__ any Windows
__WIN95__ GUI for Windows 95 and above; NT 4.0 and above.

7
include/Makefile.am Normal file
View File

@@ -0,0 +1,7 @@
## Purpose: The automake makefile for wxWindows (include subdir)
## Author: Vadim Zeitlin
## Version: $Id$
##
## Process this file with automake to produce Makefile.in
SUBDIRS = wx

197
include/wx/Makefile.am Normal file
View File

@@ -0,0 +1,197 @@
## Purpose: The automake makefile for wxWindows (include/wx subdir)
## Author: Vadim Zeitlin
## Version: $Id$
##
## Process this file with automake to produce Makefile.in
SUBDIRS = generic @TOOLKIT_DIR@ @INCLUDE_SUBDIRS@
wx_includedir = ${includedir}/wx
wx_include_HEADERS = \
\
arrimpl.cpp \
listimpl.cpp \
\
accel.h \
app.h \
bitmap.h \
bmpbuttn.h \
brush.h \
buffer.h \
busyinfo.h \
button.h \
caret.h \
checkbox.h \
checklst.h \
choicdlg.h \
choice.h \
clipbrd.h \
cmndata.h \
colordlg.h \
colour.h \
combobox.h \
confbase.h \
config.h \
control.h \
cursor.h \
dataobj.h \
date.h \
datstrm.h \
db.h \
dbtable.h \
dc.h \
dcclient.h \
dcmemory.h \
dcprint.h \
dcps.h \
dcscreen.h \
dde.h \
debug.h \
defs.h \
dialog.h \
dirdlg.h \
dnd.h \
docmdi.h \
docview.h \
dragimag.h \
dynarray.h \
dynlib.h \
event.h \
expr.h \
extdlg.h \
ffile.h \
file.h \
fileconf.h \
filedlg.h \
filefn.h \
filesys.h \
font.h \
fontdlg.h \
frame.h \
fs_inet.h \
fs_zip.h \
gauge.h \
gdicmn.h \
gdiobj.h \
grid.h \
gsocket.h \
hash.h \
help.h \
helpbase.h \
helphtml.h \
helpwin.h \
helpxlp.h \
icon.h \
image.h \
imaglist.h \
intl.h \
ioswrap.h \
ipcbase.h \
joystick.h \
layout.h \
laywin.h \
list.h \
listbox.h \
listctrl.h \
log.h \
longlong.h \
matrix.h \
mdi.h \
memory.h \
menu.h \
menuitem.h \
metafile.h \
mimetype.h \
minifram.h \
module.h \
msgdlg.h \
mstream.h \
notebook.h \
object.h \
objstrm.h \
odbc.h \
ownerdrw.h \
palette.h \
panel.h \
paper.h \
pen.h \
pnghand.h \
print.h \
printdlg.h \
prntbase.h \
process.h \
progdlg.h \
prop.h \
propform.h \
proplist.h \
radiobox.h \
radiobut.h \
region.h \
resource.h \
sashwin.h \
sckaddr.h \
sckipc.h \
sckstrm.h \
scrolbar.h \
scrolwin.h \
serbase.h \
settings.h \
setup.h \
slider.h \
socket.h \
spinbutt.h \
splitter.h \
statbmp.h \
statbox.h \
statline.h \
stattext.h \
statusbr.h \
stream.h \
string.h \
tab.h \
tabctrl.h \
taskbar.h \
tbar95.h \
tbarbase.h \
tbarmsw.h \
tbarsmpl.h \
textctrl.h \
textdlg.h \
textfile.h \
txtstrm.h \
thread.h \
time.h \
timer.h \
tipdlg.h \
tokenzr.h \
toolbar.h \
tooltip.h \
treectrl.h \
types.h \
url.h \
utils.h \
valgen.h \
validate.h \
valtext.h \
variant.h \
version.h \
wave.h \
wfstream.h \
window.h \
wx.h \
wx_cw.h \
wx_cw_cm.h \
wx_cw_d.h \
wxchar.h \
wxexpr.h \
wxhtml.h \
wxprec.h \
xpmhand.h \
zipstream.h \
zstream.h
# setup.h is installed in another directory because several versions of wxwin
# should be able to coexist on the same machine
portheadersdir = ${datadir}/@PACKAGE@/include/wx/@TOOLKIT_DIR@
portheaders_headers = setup.h

View File

@@ -37,9 +37,7 @@
#include "wx/event.h" // for the base class
#if wxUSE_GUI
#include "wx/window.h" // for wxTopLevelWindows
#endif // wxUSE_GUI
#include "wx/window.h" // for wxTopLevelWindows
#if wxUSE_LOG
#include "wx/log.h"
@@ -66,33 +64,22 @@ public:
// prevents the program from continuing - it's a good place to create
// the top level program window and return TRUE.
//
// Override: always in GUI application, rarely in console ones.
#if wxUSE_GUI
// Override: always.
virtual bool OnInit() { return FALSE; };
#else // !GUI
virtual bool OnInit() { return TRUE; };
#endif // wxUSE_GUI
#if wxUSE_GUI
// a platform-dependent version of OnInit(): the code here is likely to
// depend on the toolkit. default version does nothing.
//
// Override: rarely.
virtual bool OnInitGui() { return TRUE; }
#endif // wxUSE_GUI
// called to start program execution - the default version just enters
// the main GUI loop in which events are received and processed until
// the last window is not deleted (if GetExitOnFrameDelete) or
// ExitMainLoop() is called. In console mode programs, the execution
// of the program really starts here
// ExitMainLoop() is called.
//
// Override: rarely in GUI applications, always in console ones.
#if wxUSE_GUI
// Override: rarely.
virtual int OnRun() { return MainLoop(); };
#else // !GUI
virtual int OnRun() = 0;
#endif // wxUSE_GUI
// called after the main loop termination. This is a good place for
// cleaning up (it may be too late in dtor) and is also useful if you
@@ -115,7 +102,6 @@ public:
// the worker functions - usually not used directly by the user code
// -----------------------------------------------------------------
#if wxUSE_GUI
// execute the main GUI loop, the function returns when the loop ends
virtual int MainLoop() = 0;
@@ -132,7 +118,6 @@ public:
// process the first event in the event queue (blocks until an event
// apperas if there are none currently)
virtual void Dispatch() = 0;
#endif // wxUSE_GUI
// application info: name, description, vendor
// -------------------------------------------
@@ -159,7 +144,6 @@ public:
const wxString& GetVendorName() const { return m_vendorName; }
void SetVendorName(const wxString& name) { m_vendorName = name; }
#if wxUSE_GUI
// top level window functions
// --------------------------
@@ -187,8 +171,6 @@ public:
void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; }
bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
#endif // wxUSE_GUI
// miscellaneous customization functions
// -------------------------------------
@@ -197,15 +179,10 @@ public:
// user-defined class (default implementation creates a wxLogGui
// object) - this log object is used by default by all wxLogXXX()
// functions.
virtual wxLog *CreateLogTarget()
#if wxUSE_GUI
{ return new wxLogGui; }
#else // !GUI
{ return new wxLogStderr; }
#endif // wxUSE_GUI
virtual wxLog *CreateLogTarget() { return new wxLogGui; }
#endif // wxUSE_LOG
#if wxUSE_GUI
// get the standard icon used by wxWin dialogs - this allows the user
// to customize the standard dialogs. The 'which' parameter is one of
// wxICON_XXX values
@@ -221,7 +198,6 @@ public:
// printing.
virtual void SetPrintMode(int WXUNUSED(mode)) { }
int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
#endif // wxUSE_GUI
// implementation only from now on
// -------------------------------
@@ -252,35 +228,29 @@ protected:
// TRUE if the application wants to get debug output
bool m_wantDebugOutput;
#if wxUSE_GUI
// the main top level window - may be NULL
wxWindow *m_topWindow;
#endif // wxUSE_GUI
};
// ----------------------------------------------------------------------------
// now include the declaration of the real class
// ----------------------------------------------------------------------------
#if wxUSE_GUI
#if defined(__WXMSW__)
#include "wx/msw/app.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/app.h"
#elif defined(__WXQT__)
#include "wx/qt/app.h"
#elif defined(__WXGTK__)
#include "wx/gtk/app.h"
#elif defined(__WXMAC__)
#include "wx/mac/app.h"
#elif defined(__WXPM__)
#include "wx/os2/app.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/app.h"
#endif
#else // !GUI
typedef wxAppBase wxApp;
#endif // GUI/!GUI
#if defined(__WXMSW__)
#include "wx/msw/app.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/app.h"
#elif defined(__WXQT__)
#include "wx/qt/app.h"
#elif defined(__WXGTK__)
#include "wx/gtk/app.h"
#elif defined(__WXMAC__)
#include "wx/mac/app.h"
#elif defined(__WXPM__)
#include "wx/os2/app.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/app.h"
#endif
// ----------------------------------------------------------------------------
// the global data
@@ -296,34 +266,11 @@ WXDLLEXPORT_DATA(extern wxApp*) wxTheApp;
// global functions
// ----------------------------------------------------------------------------
// event loop related functions only work in GUI programs
// ------------------------------------------------------
#if wxUSE_GUI
// Force an exit from main loop
extern void WXDLLEXPORT wxExit();
void WXDLLEXPORT wxExit();
// Yield to other apps/messages
extern bool WXDLLEXPORT wxYield();
#endif // wxUSE_GUI
// console applications may avoid using DECLARE_APP and IMPLEMENT_APP macros
// and call these functions instead at the program startup and termination
// -------------------------------------------------------------------------
#if wxUSE_NOGUI
// initialize the library (may be called as many times as needed, but each
// call to wxInitialize() must be matched by wxUninitialize())
extern bool WXDLLEXPORT wxInitialize();
// clean up - the library can't be used any more after the last call to
// wxUninitialize()
extern void WXDLLEXPORT wxUninitialize();
#endif // wxUSE_NOGUI
bool WXDLLEXPORT wxYield();
// ----------------------------------------------------------------------------
// macros for dynamic creation of the application object

View File

@@ -2,7 +2,7 @@
// Name: listimpl.cpp
// Purpose: helper file for implementation of dynamic lists
// Author: Vadim Zeitlin
// Modified by:
// Modified by:
// Created: 16.10.97
// RCS-ID: $Id$
// Copyright: (c) 1997 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
@@ -20,9 +20,6 @@
* 4) WX_DEFINE_OBJARRAY *
*****************************************************************************/
// needed to resolve the conflict between global T and macro parameter T
#define _WX_ERROR_REMOVE2(x) T("bad index in " #x "::Remove()")
// macro implements remaining (not inline) methods of template list
// (it's private to this file)
#undef _DEFINE_OBJARRAY
@@ -61,7 +58,7 @@ void name::Empty() \
\
void name::Remove(size_t uiIndex) \
{ \
wxCHECK_RET( uiIndex < Count(), _WX_ERROR_REMOVE2(name) ); \
wxCHECK_RET( uiIndex < Count(), _T("bad index in " #name "::Remove()") ); \
\
delete (T*)wxBaseArray::Item(uiIndex); \
\
@@ -102,8 +99,8 @@ int name::Index(const T& Item, bool bFromEnd) const \
} \
} \
\
return wxNOT_FOUND; \
}
return wxNOT_FOUND; \
}
// redefine the macro so that now it will generate the class implementation
// old value would provoke a compile-time error if this file is not included

View File

@@ -15,7 +15,6 @@
#define _WX_BUFFER_H
#include "wx/wxchar.h"
#include <string.h> // strdup
// ----------------------------------------------------------------------------
@@ -28,14 +27,14 @@ class wxCharBuffer
public:
wxCharBuffer(const char *str)
{
wxASSERT_MSG( str, T("NULL string in wxCharBuffer") );
wxASSERT_MSG( str, _T("NULL string in wxCharBuffer") );
m_str = str ? strdup(str) : (char *)NULL;
}
wxCharBuffer(size_t len)
{
m_str = (char *)malloc(len+1);
m_str[len] = '\0';
m_str[len] = '\0';
}
// no need to check for NULL, free() does it
~wxCharBuffer() { free(m_str); }
@@ -67,7 +66,7 @@ class wxWCharBuffer
public:
wxWCharBuffer(const wchar_t *wcs)
{
wxASSERT_MSG( wcs, T("NULL string in wxWCharBuffer") );
wxASSERT_MSG( wcs, _T("NULL string in wxWCharBuffer") );
if (wcs) {
size_t siz = (wcslen(wcs)+1)*sizeof(wchar_t);
@@ -79,7 +78,7 @@ public:
wxWCharBuffer(size_t len)
{
m_wcs = (wchar_t *)malloc((len+1)*sizeof(wchar_t));
m_wcs[len] = L'\0';
m_wcs[len] = L'\0';
}
// no need to check for NULL, free() does it
@@ -101,23 +100,23 @@ public:
operator const wchar_t *() const { return m_wcs; }
wchar_t operator[](size_t n) const { return m_wcs[n]; }
private:
wchar_t *m_wcs;
};
#endif
#if wxUSE_UNICODE
#define wxMB2WXbuf wxWCharBuffer
#define wxWX2MBbuf wxCharBuffer
#define wxWC2WXbuf wxChar*
#define wxWX2WCbuf wxChar*
#else // ANSI
#define wxMB2WXbuf wxChar*
#define wxWX2MBbuf wxChar*
#define wxWC2WXbuf wxCharBuffer
#define wxWX2WCbuf wxWCharBuffer
#endif // Unicode/ANSI
#define wxMB2WXbuf wxWCharBuffer
#define wxWX2MBbuf wxCharBuffer
#define wxWC2WXbuf wxChar*
#define wxWX2WCbuf wxChar*
#else
#define wxMB2WXbuf wxChar*
#define wxWX2MBbuf wxChar*
#define wxWC2WXbuf wxCharBuffer
#define wxWX2WCbuf wxWCharBuffer
#endif
// ----------------------------------------------------------------------------
// template class for any kind of data

View File

@@ -182,6 +182,8 @@ private:
#if defined(__WXMSW__)
#include "wx/msw/caret.h"
#elif defined(__WXPM__)
#include "wx/os2/caret.h"
#else
#include "wx/generic/caret.h"
#endif // platform

View File

@@ -1,7 +1,11 @@
#ifndef _WX_CHOICDLG_H_BASE_
#define _WX_CHOICDLG_H_BASE_
#ifdef __WXGTK__
#include "wx/gtk/choicdlg.h"
#else
#include "wx/generic/choicdgg.h"
#endif
#endif
// _WX_CHOICDLG_H_BASE_

Some files were not shown because too many files have changed in this diff Show More