Compare commits

...

1 Commits

Author SHA1 Message Date
Bryan Petty
3126696b7c This commit was manufactured by cvs2svn to create tag
'WX_HTML_BEFORE_TEXT_SELECTION'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/WX_HTML_BEFORE_TEXT_SELECTION@20809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-06-01 13:35:26 +00:00
8711 changed files with 86 additions and 3026127 deletions

View File

@@ -1,60 +0,0 @@
system.list
bin
.gdb_history
Test
config.cache
configarg.cache
config.status
system.list
linux.system.cache
wx-config
config.log
linux-gnu.system.cache
*.dsp
*.dsw
*.plg
*.opt
*.aps
*.ncb
*.pro
*.opt
*.d
*.swp
*.swo
Release
Debug
ReleaseDLL
DebugDLL
UnivRelease
UnivDebug
BaseRelease
BaseDebug
robert
stamp-h.in
Makefile
configure
setup.h
stamp-h
libtool
aclocal.m4
base
gtk
gtk2
motif
win32
x11
univ
univ-debug
univ-release
base-debug
gtk-debug
motif-debug
win32-debug
base-release
gtk-release
motif-release
win32-release
*tags
log
univtags.cmd
.DS_Store

View File

@@ -1,253 +0,0 @@
------------------------------------------------------------------------
How to build the sources from CVS
------------------------------------------------------------------------
Please use the install.txt files in docs/gtk, docs/msw, docs/motif, docs/mac
etc. alongside these instructions.
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 MinGW or Cygwin compilers
You can get MinGW from http://www.mingw.org/
Cygwin is available at http://sources.redhat.com/cygwin/
The makefile might have small problems with Cygwin's tools
so it is recommended to use MinGW and its toolchain instead
if possible.
-> Set your path so that it includes the directory
where your compiler and tools reside
-> If your are using an old MinGW version (gcc-2.95 or older),
you might need to fix some headers with the patches contained
in the wxWin\Mingw32-gcc295.patches file. PLEASE APPLY THESE
PATCHES BY HAND! There are apparently a few different versions
of the headers floating around. Note that these patches are
not needed if you are using MinGW gcc-2.95.2 or newer.
-> Edit wx/src/makeg95.env and set the MINGW32 variable at the top of
the file to either 1 (you have MinGW) or 0 (you have Cygwin).
Also set the MINGW32VERSION variable appropiately.
c) Build instructions
-> Assumming that you installed the wxWindows sources
into c:\wxWin
-> Copy c:\wxWin\include\wx\msw\setup0.h
to c:\wxWin\include\wx\msw\setup.h
-> Edit c:\wxWin\include\wx\msw\setup.h to choose
the features you would like to compile wxWindows with[out].
and std iostreams are disabled with
#define wxUSE_STD_IOSTREAM 0
-> type: cd c:\wxWin\src\msw
-> type: set WXWIN=c:\wxWin
-> type: make -f makefile.g95 (if using GNU tools)
or type: nmake -f makefile.vc (if using MS VC++)
See also docs/msw/install.txt for additional compilation options.
d) Borland (including free command line tools)
Download tools from http://www.borland.com/downloads/
See docs/msw/install.txt for details; in brief
-> type set WXWIN=c:\wxwindows
-> type cd %WXWIN%\src\msw
-> type make -f makefile.b32
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).
Set WXWIN environment variable to the base directory such
as ~/wxWindows (this is actually not really needed).
-> type: export WXWIN=~/wxWindows
-> type: md mybuild
-> type: cd mybuild
-> type: ../configure --with-motif
or type: ../configure --with-gtk
-> 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
----------------------------------------
wxWindows can be built on Windows using MSYS (see
http://www.mingw.org/), which is a POSIX build environment
for Windows. With MSYS you can just ./configure && make (see also VII,
Unix->Windows cross-compiling using configure).
Of course, you can also build the library using plain makefiles (see
section I).
IV) Classic MacOS using CodeWarrior (eg MacOS 8.x/9.x)
----------------------------------------
Refer to the readme.txt and install.txt files in docs/mac to build
wxWindows under Classic Mac OS using CodeWarrior.
If you are checking out the CVS sources using cvs under Mac OS X and
compiling under Classic Mac OS:
- make sure that all text files have a Mac OS type of 'TEXT' otherwise
CodeWarrior may ignore them. Checking out the CVS sources using cvs
under Mac OS X creates untyped files which can lead to compilation
errors under CodeWarrior which are hard to track down.
- convert the xml files to CodeWarrior binary projects using the supplied
AppleScript in docs/mac (M5xml2mcp.applescript for CodeWarrior 5.3)
V) MacOS X using configure and the Developer Tools
----------------------------------------
You need to have the Developer Tools installed. If this is not the case,
you will need to register at the Apple Developer web site (this is a free
registration) in order to download the Developer Tools installer.
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).
-> type: mkdir macbuild
-> type: cd macbuild
-> type: ../configure --with-mac
or type: ../configure
-> type: make
VI) OS/2
----------------------------------------
VII) Unix->Windows cross-compiling using configure
--------------------------------------------------
First you'll need a cross-compiler; linux glibc binaries of MinGW and
Cygwin (both based on egcs) can be found at
ftp://ftp.objsw.com/pub/crossgcc/linux-x-win32. Alternative binaries,
based on the latest MinGW release can be found at
http://members.telering.at/jessich/mingw/mingwcross/mingw_cross.html
Otherwise you can compile one yourself.
[ A Note about Cygwin and MinGW: the main difference is that Cygwin
binaries are always linked against cygwin.dll. This dll encapsulates most
standard Unix C extensions, which is very handy if you're porting unix
software to windows. However, wxMSW doesn't need this, so MinGW is
preferable if you write portable C(++). ]
You might want to build both Unix and Windows binaries in the same source
tree; to do this make subdirs for each e.g. unix and win32. If you've
already build wxWindows in the main dir, do a 'make distclean' there,
otherwise configure will get confused. (In any case, read the section 'Unix
using configure' and make sure you're able to build a native wxWindows
library; cross-compiling errors can be pretty obscure and you'll want to be
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
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
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 \
../configure --host=i586-mingw32 --with-mingw
(all assuming you're using MinGW)
By default this will compile a DLL, if you want a static library,
specify --disable-shared.
Type
-> make
and wait, wait, wait. Don't leave the room, because the minute you do there
will be a compile error :-)
NB: if you are using a very old compiler you risk to get quite a few warnings
about "ANSI C++ forbids implicit conversion from 'void *'" in all places
where va_arg macro is used. This is due to a bug in (some versions of)
MinGW headers which may be corrected by upgrading your compier,
otherwise you might edit the file
${install_prefix}/lib/gcc-lib/i586-mingw32/egcs-2.91.57/include/stdarg.h
(instead of egcs-2.91.57 you may have something different), searching for
the lines
/* Define __gnuc_va_list. */
#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST
#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || defined(__NetBSD__)
typedef char *__gnuc_va_list;
#else
typedef void *__gnuc_va_list;
#endif
#endif
and adding "|| defined(_WIN32)" to the list of platforms on which
__gnuc_va_list is char *.
If this is successful, you end up with a wx23_2.dll/libwx23_2.a in win32/lib
(or just libwx_msw.a if you opted for a static build).
Now try building the minimal sample:
-> cd samples/minimal
-> make
and run it with wine, for example (or copy to a Windows box)
-> wine minimal.exe
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
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
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 ]
- static executables are HUGE -- there must be room for improvement.

File diff suppressed because it is too large Load Diff

View File

@@ -1,169 +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**);
--- i386-mingw32\include\stdio.h Sun Aug 1 06:18:20 1999
+++ stdio.h Sun Nov 7 03:41:40 1999
@@ -203,9 +203,12 @@
int fprintf (FILE* filePrintTo, const char* szFormat, ...);
int printf (const char* szFormat, ...);
int sprintf (char* caBuffer, const char* szFormat, ...);
+int _snprintf (char* caBuffer, size_t n, const char* szFormat, ...);
int vfprintf (FILE* filePrintTo, const char* szFormat, va_list varg);
int vprintf (const char* szFormat, va_list varg);
int vsprintf (char* caBuffer, const char* szFormat, va_list varg);
+int _vsnprintf (char* caBuffer, size_t n, const char* szFormat,
+ va_list varg);
/* Wide character versions */
int fwprintf (FILE* filePrintTo, const wchar_t* wsFormat, ...);
--- i386-mingw32\include\winbase.h Sat Jul 31 17:48:48 1999
+++ winbase.h Fri Feb 25 01:49:08 2000
@@ -989,7 +989,7 @@
BOOL WINAPI CopyFileExW(LPCWSTR,LPCWSTR,LPPROGRESS_ROUTINE,LPVOID,LPBOOL,DWORD);
#define RtlMoveMemory memmove
#define RtlCopyMemory memcpy
-#define RtlFillMemory memset
+#define RtlFillMemory(d,l,f) memset ((d),(f),(l))
#define RtlZeroMemory(d,l) memset((d),0,(l))
#define MoveMemory RtlMoveMemory
#define CopyMemory RtlCopyMemory
--- i386-mingw32\include\winsock.h Sat Jul 31 17:48:50 1999
+++ winsock.h Mon Mar 20 13:47:12 2000
@@ -13,6 +13,10 @@
#define _GNU_H_WINDOWS32_SOCKETS
#include <windows.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef _SYS_TYPES_H
typedef unsigned char u_char;
typedef unsigned short u_short;
@@ -495,4 +499,9 @@
typedef struct timeval TIMEVAL;
typedef struct timeval *PTIMEVAL;
typedef struct timeval *LPTIMEVAL;
+
+#ifdef __cplusplus
+}
#endif
+#endif
+

View File

@@ -1,600 +0,0 @@
dnl ---------------------------------------------------------------------------
dnl
dnl Macros for configure.in for wxWindows by Robert Roebling, Phil Blecker,
dnl Vadim Zeitlin and Ron Lee
dnl
dnl This script is under the wxWindows licence.
dnl
dnl Version: $Id$
dnl ---------------------------------------------------------------------------
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 /usr/include;
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_libraries
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 /usr/lib;
do
for ac_extension in a so sl dylib; 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],
[
dnl never add -I/usr/include to the CPPFLAGS
if test "x$1" = "x/usr/include"; then
ac_path_to_include=""
else
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
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 "$ac_cv_header_iostream" = "yes" ; then
ifelse([$1], , :, [$1])
else
ifelse([$2], , :, [$2])
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_COMPILE(
[
],
[
bool b = true;
return 0;
],
[
wx_cv_cpp_bool=yes
],
[
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_EXPLICIT checks whether the C++ compiler support the explicit
dnl keyword and defines HAVE_EXPLICIT if this is the case
dnl ---------------------------------------------------------------------------
AC_DEFUN([WX_CPP_EXPLICIT],
[
AC_CACHE_CHECK([if C++ compiler supports the explicit keyword],
wx_cv_explicit,
[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
dnl do the test in 2 steps: first check that the compiler knows about the
dnl explicit keyword at all and then verify that it really honours it
AC_TRY_COMPILE(
[
class Foo { public: explicit Foo(int) {} };
],
[
return 0;
],
[
AC_TRY_COMPILE(
[
class Foo { public: explicit Foo(int) {} };
static void TakeFoo(const Foo& foo) { }
],
[
TakeFoo(17);
return 0;
],
wx_cv_explicit=no,
wx_cv_explicit=yes
)
],
wx_cv_explicit=no
)
AC_LANG_RESTORE
])
if test "$wx_cv_explicit" = "yes"; then
AC_DEFINE(HAVE_EXPLICIT)
fi
])
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 three-valued command line --with argument:
dnl possible arguments are 'yes', 'no', 'sys', or 'builtin'
dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name)
AC_DEFUN([WX_ARG_SYS_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'
elif test "$withval" = no; then
ac_cv_use_$1='$3=no'
elif test "$withval" = sys; then
ac_cv_use_$1='$3=sys'
elif test "$withval" = builtin; then
ac_cv_use_$1='$3=builtin'
else
AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
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)
elif test "$$3" = no; then
AC_MSG_RESULT(no)
elif test "$$3" = sys; then
AC_MSG_RESULT([system version])
elif test "$$3" = builtin; then
AC_MSG_RESULT([builtin version])
else
AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
fi
])
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, enablestring)
dnl
dnl enablestring is a hack and allows to show "checking for --disable-foo"
dnl message when running configure instead of the default "checking for
dnl --enable-foo" one whih is useful for the options enabled by default
AC_DEFUN([WX_ARG_ENABLE],
[
enablestring=$4
AC_MSG_CHECKING([for --${enablestring:-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 Linker features test
dnl ===========================================================================
dnl ---------------------------------------------------------------------------
dnl WX_VERSIONED_SYMBOLS checks whether the linker can create versioned
dnl symbols. If it can, sets LDFLAGS_VERSIONING to $CXX flags needed to use
dnl version script file named versionfile
dnl
dnl call WX_VERSIONED_SYMBOLS(versionfile)
dnl ---------------------------------------------------------------------------
AC_DEFUN([WX_VERSIONED_SYMBOLS],
[
found_versioning=no
dnl FIXME - doesn't work, Solaris linker doesn't accept wildcards
dnl in the script.
dnl dnl Check for known non-gcc cases:
dnl case "${host}" in
dnl *-*-solaris2* )
dnl if test "x$GCC" != "xyes" ; then
dnl LDFLAGS_VERSIONING="-M $1"
dnl found_versioning=yes
dnl fi
dnl ;;
dnl esac
dnl Generic check for GCC or GCC-like behaviour (Intel C++, GCC):
if test $found_versioning = no ; then
AC_CACHE_CHECK([if the linker accepts --version-script], wx_cv_version_script,
[
echo "VER_1 { *; };" >conftest.sym
echo "int main() { return 0; }" >conftest.cpp
if AC_TRY_COMMAND([
$CXX -o conftest.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
-Wl,--version-script,conftest.sym >/dev/null 2>conftest.stderr]) ; then
if test -s conftest.stderr ; then
wx_cv_version_script=no
else
wx_cv_version_script=yes
fi
else
wx_cv_version_script=no
fi
rm -f conftest.output conftest.stderr conftest.sym conftest.cpp
])
if test $wx_cv_version_script = yes ; then
LDFLAGS_VERSIONING="-Wl,--version-script,$1"
fi
fi
])
dnl ===========================================================================
dnl "3rd party" macros included here because they are not widely available
dnl ===========================================================================
dnl ---------------------------------------------------------------------------
dnl test for availability of iconv()
dnl ---------------------------------------------------------------------------
dnl From Bruno Haible.
AC_DEFUN([AM_ICONV],
[
dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
dnl those with the standalone portable GNU libiconv installed).
AC_ARG_WITH([libiconv-prefix],
[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
for dir in `echo "$withval" | tr : ' '`; do
if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
done
])
AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_func_iconv=yes)
if test "$am_cv_func_iconv" != yes; then
am_save_LIBS="$LIBS"
LIBS="$LIBS -liconv"
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_lib_iconv=yes
am_cv_func_iconv=yes)
LIBS="$am_save_LIBS"
fi
])
if test "$am_cv_func_iconv" = yes; then
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
AC_CACHE_CHECK([if iconv needs const], wx_cv_func_iconv_const,
AC_TRY_COMPILE([
#include <stdlib.h>
#include <iconv.h>
extern
#ifdef __cplusplus
"C"
#endif
#if defined(__STDC__) || defined(__cplusplus)
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
#else
size_t iconv();
#endif
],
[],
wx_cv_func_iconv_const="no",
wx_cv_func_iconv_const="yes"
)
)
iconv_const=
if test "x$wx_cv_func_iconv_const" = "xyes"; then
iconv_const="const"
fi
AC_DEFINE_UNQUOTED(ICONV_CONST, $iconv_const,
[Define as const if the declaration of iconv() needs const.])
fi
LIBICONV=
if test "$am_cv_lib_iconv" = yes; then
LIBICONV="-liconv"
fi
AC_SUBST(LIBICONV)
])
dnl ---------------------------------------------------------------------------
dnl AC_SYS_LARGEFILE (partly based on the code from autoconf 2.5x)
dnl ---------------------------------------------------------------------------
dnl WX_SYS_LARGEFILE_TEST
dnl
dnl NB: original autoconf test was checking if compiler supported 6 bit off_t
dnl arithmetic properly but this failed miserably with gcc under Linux
dnl whereas the system still supports 64 bit files, so now simply check
dnl that off_t is big enough
define(WX_SYS_LARGEFILE_TEST,
[typedef struct {
unsigned int field: sizeof(off_t) == 8;
} wxlf;
])
dnl WX_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, CACHE-VAR)
define(WX_SYS_LARGEFILE_MACRO_VALUE,
[
AC_CACHE_CHECK([for $1 value needed for large files], [$3],
[
AC_TRY_COMPILE([#define $1 $2
#include <sys/types.h>],
WX_SYS_LARGEFILE_TEST,
[$3=$2],
[$3=no])
]
)
if test "$$3" != no; then
wx_largefile=yes
AC_DEFINE_UNQUOTED([$1], [$$3])
fi
])
dnl AC_SYS_LARGEFILE
dnl ----------------
dnl By default, many hosts won't let programs access large files;
dnl one must use special compiler options to get large-file access to work.
dnl For more details about this brain damage please see:
dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
AC_DEFUN([AC_SYS_LARGEFILE],
[AC_ARG_ENABLE(largefile,
[ --disable-largefile omit support for large files])
if test "$enable_largefile" != no; then
dnl _FILE_OFFSET_BITS==64 is needed for Linux, Solaris, ...
dnl _LARGE_FILES -- for AIX
wx_largefile=no
WX_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits)
if test "x$wx_largefile" != "xyes"; then
WX_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files)
fi
AC_MSG_CHECKING(if large file support is available)
if test "x$wx_largefile" = "xyes"; then
AC_DEFINE(HAVE_LARGEFILE_SUPPORT)
fi
AC_MSG_RESULT($wx_largefile)
fi
])
dnl Available from the GNU Autoconf Macro Archive at:
dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_const_cast.html
dnl
AC_DEFUN([AC_CXX_CONST_CAST],
[AC_CACHE_CHECK(whether the compiler supports const_cast<>,
ac_cv_cxx_const_cast,
[AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE(,[int x = 0;const int& y = x;int& z = const_cast<int&>(y);return z;],
ac_cv_cxx_const_cast=yes, ac_cv_cxx_const_cast=no)
AC_LANG_RESTORE
])
if test "$ac_cv_cxx_const_cast" = yes; then
AC_DEFINE(HAVE_CONST_CAST,,[define if the compiler supports const_cast<>])
fi
])

1063
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,21 +0,0 @@
/* XPM */
static char * addbookm_xpm[] = {
"16 15 3 1",
" c None",
". c #000000",
"+ c #C3F9BD",
" .. ",
" .. ",
" .. . ",
"........ .+. ",
"........ .+++. ",
" .. .+++++. ",
" .. .+++++. ",
" .. .+++++. ",
" .+++++. ",
" .+++++. ",
" .+++++. ",
" ....++. ",
" .+. ",
" .. ",
" . "};

View File

@@ -1,24 +0,0 @@
/* XPM */
static char * back_xpm[] = {
"16 16 5 1",
" c None",
". c #000000",
"+ c #C0E4CB",
"@ c #77C490",
"# c #808080",
" ",
" ",
" . ",
" .. ",
" .+. ",
" .++........ ",
" .++@+++++++. ",
" .++@@@@@@@@@. ",
" .+@@@@@@@@@. ",
" #.+@........ ",
" #.+.####### ",
" #..# ",
" #.# ",
" ## ",
" # ",
" "};

View File

@@ -1,32 +0,0 @@
/* XPM */
static char *cross_xpm[] = {
/* columns rows colors chars-per-pixel */
"10 10 16 1",
" c Gray0",
". c #bf0000",
"X c #00bf00",
"o c #bfbf00",
"O c #0000bf",
"+ c #bf00bf",
"@ c #00bfbf",
"# c None",
"$ c #808080",
"% c Red",
"& c Green",
"* c Yellow",
"= c Blue",
"- c Magenta",
"; c Cyan",
": c Gray100",
/* pixels */
" ######## ",
" #### ",
"# ## #",
"## ##",
"### ###",
"### ###",
"## ##",
"# ## #",
" #### ",
" ###### "
};

View File

@@ -1,31 +0,0 @@
/* XPM */
static char * deffile_xpm[] = {
"16 16 12 1",
" c None",
". c #000000",
"+ c #808080",
"@ c #FFFFFF",
"# c #282829",
"$ c #505052",
"% c #78787B",
"& c #A0A0A4",
"* c #404040",
"= c #1F1F1F",
"- c #3F3F3F",
"; c #2F2F2F",
" ",
" ....... ",
" .+@@@@@@# ",
" .+@@@@@@$% ",
" .+@@@@@@$&% ",
" .+@@@@@@#$$# ",
" .+@@@@@@@@@@. ",
" .+@@@@@@@@@@. ",
" .+@@@@@@@@@@. ",
" .+@@@@@@@@@@. ",
" .+@@@@@@@@@@. ",
" .+@@@@@@@@@@. ",
" .*++++++++++. ",
" .=---=;-----. ",
" ",
" "};

View File

@@ -1,23 +0,0 @@
/* XPM */
static char * delbookm_xpm[] = {
"16 15 5 1",
" c None",
". c #808080",
"+ c #000000",
"@ c #FFFFFF",
"# c #F4D4D6",
" .+++++. ",
".+@+++@+. ",
"+@@@+@@@+ + ",
"++@@@@@++ +#+ ",
"+++@@@++++###+ ",
"++@@@@@++#####+ ",
"+@@@+@@@+####+ ",
".+@+++@+.###+ ",
" .+++++.###+ ",
" +#####+ ",
" +#####+ ",
" ++++##+ ",
" +#+ ",
" ++ ",
" + "};

View File

@@ -1,42 +0,0 @@
/* XPM */
static char *dir_up_xpm[] = {
/* columns rows colors chars-per-pixel */
"20 20 16 1",
" c Gray0",
". c #800000",
"X c #008000",
"o c #808000",
"O c #000080",
"+ c #800080",
"@ c #008080",
"# c None",
"$ c #808080",
"% c Red",
"& c Green",
"* c Yellow",
"= c Blue",
"- c Magenta",
"; c Cyan",
": c Gray100",
/* pixels */
"####################",
"####################",
"####################",
"#### ###########",
"### *:*:* ##########",
"## ####",
"## :*:*:*:*:*:*: ###",
"## *:*: :*:*:*:* ###",
"## :*: :*:*:*: ###",
"## *: :*:*:* ###",
"## :*:* *:*:*:*: ###",
"## *:*: :*:*:*:* ###",
"## :*:* :*: ###",
"## *:*:*:*:*:*:* ###",
"## :*:*:*:*:*:*: ###",
"## ###",
"####################",
"####################",
"####################",
"####################",
};

View File

@@ -1,24 +0,0 @@
/* XPM */
static char * down_xpm[] = {
"16 16 5 1",
" c None",
". c #000000",
"+ c #808080",
"@ c #C0E4CB",
"# c #77C490",
" ",
" .....+ ",
" .@##.+ ",
" .@##.+ ",
" .@##.+ ",
" .@##.+ ",
" .@##.+ ",
" .@##.+++++ ",
" ....@##....+ ",
" .@@####@.+ ",
" .@@##@.+ ",
" .@@@.+ ",
" .@.+ ",
" . ",
" ",
" "};

View File

@@ -1,76 +0,0 @@
/* XPM */
static char * exefile_xpm[] = {
"16 16 57 1",
" c None",
". c #000000",
"+ c #808080",
"@ c #650000",
"# c #CB0000",
"$ c #700000",
"% c #CDCDCD",
"& c #D2D2D2",
"* c #D7D7D7",
"= c #282829",
"- c #FF0000",
"; c #E60000",
"> c #FFFFFF",
", c #505052",
"' c #78787B",
") c #CC0000",
"! c #F70000",
"~ c #A0A0A4",
"{ c #8C4848",
"] c #FFA0A0",
"^ c #A95959",
"/ c #DBDBDB",
"( c #F7F7F7",
"_ c #0000C8",
": c #0000F4",
"< c #ECECEC",
"[ c #1010BC",
"} c #1313E8",
"| c #EDEDED",
"1 c #8B8B8B",
"2 c #AFAFAF",
"3 c #C4C4C4",
"4 c #FDFDFD",
"5 c #E8E8E8",
"6 c #FFFF00",
"7 c #007300",
"8 c #00B200",
"9 c #BFBFBF",
"0 c #CBCBCB",
"a c #DEDEDE",
"b c #00A800",
"c c #00FF00",
"d c #BEBEBE",
"e c #FCFCFC",
"f c #7D7D7D",
"g c #F8F8F8",
"h c #888888",
"i c #F8F800",
"j c #F7F700",
"k c #006200",
"l c #00A100",
"m c #757575",
"n c #959595",
"o c #404040",
"p c #1F1F1F",
"q c #3F3F3F",
"r c #2F2F2F",
" ",
" ........ ",
" .+@#$%&*= ",
" .+#-;>>>,' ",
" .+)-!>>>,~' ",
" .+{]^>>>=,,= ",
" .+/>(>>>>>_:. ",
" .+<>>>>>>>[}. ",
" .+|>>>>>>>12. ",
" .+|>>>>>>>34. ",
" .+/>56667894. ",
" .+0>a666bcde. ",
" .+fghiijklmn. ",
" .o++++++++++. ",
" .pqqqpprqqqq. ",
" "};

View File

@@ -1,26 +0,0 @@
/* XPM */
static char *fileopen_xpm[] = {
/* columns rows colors chars-per-pixel */
"16 15 5 1",
" c None",
". c Black",
"X c Yellow",
"o c Gray100",
"O c #bfbf00",
/* pixels */
" ",
" ... ",
" . . .",
" ..",
" ... ...",
" .XoX....... ",
" .oXoXoXoXo. ",
" .XoXoXoXoX. ",
" .oXoX..........",
" .XoX.OOOOOOOOO.",
" .oo.OOOOOOOOO. ",
" .X.OOOOOOOOO. ",
" ..OOOOOOOOO. ",
" ........... ",
" "
};

View File

@@ -1,28 +0,0 @@
/* XPM */
static char * folder_xpm[] = {
/* width height ncolors chars_per_pixel */
"16 16 6 1",
/* colors */
" s None c None",
". c #000000",
"+ c #c0c0c0",
"@ c #808080",
"# c #ffff00",
"$ c #ffffff",
/* pixels */
" ",
" @@@@@ ",
" @#+#+#@ ",
" @#+#+#+#@@@@@@ ",
" @$$$$$$$$$$$$@.",
" @$#+#+#+#+#+#@.",
" @$+#+#+#+#+#+@.",
" @$#+#+#+#+#+#@.",
" @$+#+#+#+#+#+@.",
" @$#+#+#+#+#+#@.",
" @$+#+#+#+#+#+@.",
" @$#+#+#+#+#+#@.",
" @@@@@@@@@@@@@@.",
" ..............",
" ",
" "};

View File

@@ -1,24 +0,0 @@
/* XPM */
static char * forward_xpm[] = {
"16 16 5 1",
" c None",
". c #000000",
"+ c #C0E4CB",
"@ c #77C490",
"# c #808080",
" ",
" ",
" . ",
" .. ",
" .+. ",
" ........++. ",
" .+++++++@++. ",
" .@@@@@@@@@++. ",
" .@@@@@@@@@+. ",
" ........@+.# ",
" #######.+.# ",
" #..# ",
" #.# ",
" ## ",
" # ",
" "};

View File

@@ -1,522 +0,0 @@
/* XPM */
static char * error_xpm[] = {
"48 48 471 2",
" c None",
". c #FD3819",
"+ c #FD3319",
"@ c #FA3019",
"# c #F33119",
"$ c #EE301A",
"% c #EB311B",
"& c #E9301A",
"* c #E9321C",
"= c #EB331E",
"- c #FF3A1A",
"; c #FF3318",
"> c #ED2E17",
", c #D32914",
"' c #C32714",
") c #BA2614",
"! c #B52514",
"~ c #B22514",
"{ c #B12615",
"] c #B42717",
"^ c #BC2A18",
"/ c #C62C1A",
"( c #CD2E1C",
"_ c #CF2F1C",
": c #FF3216",
"< c #DD2A14",
"[ c #C32613",
"} c #B32311",
"| c #AE2312",
"1 c #AB2313",
"2 c #A82212",
"3 c #A52212",
"4 c #961F11",
"5 c #952011",
"6 c #A22314",
"7 c #A72516",
"8 c #A92718",
"9 c #AB2719",
"0 c #B32A1A",
"a c #BD2C1D",
"b c #B52A1C",
"c c #FD3518",
"d c #EB2D14",
"e c #C32512",
"f c #B12311",
"g c #AC2211",
"h c #A92211",
"i c #A82312",
"j c #A62212",
"k c #9F2112",
"l c #A32313",
"m c #A72415",
"n c #A62617",
"o c #A32518",
"p c #A62718",
"q c #A62719",
"r c #A8291B",
"s c #AD2A1B",
"t c #AB291C",
"u c #FE3317",
"v c #D82914",
"w c #B92311",
"x c #A92111",
"y c #A72212",
"z c #962011",
"A c #A02214",
"B c #A72517",
"C c #A62618",
"D c #A2271A",
"E c #A5281B",
"F c #A5291B",
"G c #A82A1D",
"H c #A5291D",
"I c #FF3417",
"J c #D02813",
"K c #B32310",
"L c #A92110",
"M c #A82211",
"N c #A82313",
"O c #A42313",
"P c #9B2013",
"Q c #A62517",
"R c #AB3326",
"S c #A5281A",
"T c #A2281C",
"U c #A42A1D",
"V c #98271C",
"W c #FD3517",
"X c #D52913",
"Y c #A82314",
"Z c #A72414",
"` c #A42415",
" . c #9D2214",
".. c #A02416",
"+. c #A52516",
"@. c #A52719",
"#. c #AA3427",
"$. c #AA3428",
"%. c #A4291C",
"&. c #9B281C",
"*. c #A1291D",
"=. c #A1291E",
"-. c #9E2A1E",
";. c #852319",
">. c #FC391A",
",. c #E22B15",
"'. c #B62412",
"). c #AC3021",
"!. c #AC3022",
"~. c #9C2316",
"{. c #992416",
"]. c #A22618",
"^. c #A5271A",
"/. c #AA3529",
"(. c #A93529",
"_. c #A9362A",
":. c #A42A1E",
"<. c #A42B1E",
"[. c #A02A1F",
"}. c #A02A20",
"|. c #99291E",
"1. c #671C16",
"2. c #FC3017",
"3. c #BE2512",
"4. c #AA2F20",
"5. c #A92F20",
"6. c #AC3123",
"7. c #A02518",
"8. c #962417",
"9. c #9C2518",
"0. c #A5291C",
"a. c #A9362B",
"b. c #A9372B",
"c. c #A32B1F",
"d. c #A32C20",
"e. c #A02B20",
"f. c #9E2A20",
"g. c #8C271D",
"h. c #FA3619",
"i. c #AE2212",
"j. c #A82414",
"k. c #941F12",
"l. c #9E2E20",
"m. c #AB3224",
"n. c #AB3225",
"o. c #A3271A",
"p. c #942417",
"q. c #962418",
"r. c #A1281C",
"s. c #A42B1F",
"t. c #A8372C",
"u. c #A8382D",
"v. c #A32C21",
"w. c #A02C20",
"x. c #A02C21",
"y. c #962920",
"z. c #5B1A13",
"A. c #FA3118",
"B. c #BB2513",
"C. c #A42212",
"D. c #981F11",
"E. c #9D2314",
"F. c #AA3326",
"G. c #A3281B",
"H. c #922519",
"I. c #902419",
"J. c #9D271B",
"K. c #A8382E",
"L. c #A8392E",
"M. c #A22D22",
"N. c #A02D22",
"O. c #9B2C21",
"P. c #7D231C",
"Q. c #DD2D17",
"R. c #AF2413",
"S. c #A62213",
"T. c #9C2112",
"U. c #AA3327",
"V. c #AF3F33",
"W. c #A2291C",
"X. c #99271B",
"Y. c #92251B",
"Z. c #9B281D",
"`. c #A22D21",
" + c #A7392F",
".+ c #A93F2F",
"++ c #A12F22",
"@+ c #A02E23",
"#+ c #88281F",
"$+ c #300E0B",
"%+ c #F6361B",
"&+ c #C72816",
"*+ c #A92413",
"=+ c #D48D1D",
"-+ c #E4AF21",
";+ c #E3AF22",
">+ c #E1AE24",
",+ c #E0AD25",
"'+ c #DFAE28",
")+ c #DEAD29",
"!+ c #DDA82A",
"~+ c #DDAC2A",
"{+ c #DEB139",
"]+ c #DFB445",
"^+ c #DDB03A",
"/+ c #DAAC2F",
"(+ c #D9A832",
"_+ c #D9AC32",
":+ c #D8A733",
"<+ c #D2A332",
"[+ c #C89B30",
"}+ c #D1A333",
"|+ c #D4A637",
"1+ c #D3A638",
"2+ c #C1782E",
"3+ c #A12D22",
"4+ c #9F2E24",
"5+ c #902B22",
"6+ c #41130F",
"7+ c #F7321B",
"8+ c #BD2716",
"9+ c #DCAD2D",
"0+ c #DBAC2E",
"a+ c #DAAE39",
"b+ c #DBAF3A",
"c+ c #DBAD3E",
"d+ c #D7A734",
"e+ c #D5A634",
"f+ c #D2A436",
"g+ c #D3A63A",
"h+ c #D2A539",
"i+ c #A12F25",
"j+ c #9F2F25",
"k+ c #952C23",
"l+ c #4D1712",
"m+ c #F1321B",
"n+ c #B52615",
"o+ c #E2B232",
"p+ c #DAA82F",
"q+ c #D5A82E",
"r+ c #D1A230",
"s+ c #D9AB3E",
"t+ c #DAAC3F",
"u+ c #D6A735",
"v+ c #D1A53C",
"w+ c #A13026",
"x+ c #9F2F26",
"y+ c #962E24",
"z+ c #571B15",
"A+ c #020303",
"B+ c #EE321B",
"C+ c #E0B234",
"D+ c #DFB135",
"E+ c #D3A332",
"F+ c #D0A131",
"G+ c #D5A533",
"H+ c #D8AC40",
"I+ c #C79D37",
"J+ c #C59C39",
"K+ c #C49C3A",
"L+ c #A13027",
"M+ c #9E3026",
"N+ c #942D25",
"O+ c #581B16",
"P+ c #010202",
"Q+ c #E4311B",
"R+ c #B12617",
"S+ c #DFAD36",
"T+ c #DFB036",
"U+ c #D3A433",
"V+ c #CC9F32",
"W+ c #D2A435",
"X+ c #D6AB42",
"Y+ c #D5AB43",
"Z+ c #D0A53D",
"`+ c #D0A53F",
" @ c #A03127",
".@ c #9E3027",
"+@ c #912D25",
"@@ c #4E1814",
"#@ c #000101",
"$@ c #DF301C",
"%@ c #B12718",
"&@ c #CC9D30",
"*@ c #D1A436",
"=@ c #CA9E34",
"-@ c #CFA337",
";@ c #D4AA44",
">@ c #D3AA47",
",@ c #CFA53E",
"'@ c #CFA540",
")@ c #A03128",
"!@ c #9E3128",
"~@ c #892B24",
"{@ c #3D130F",
"]@ c #D02E1B",
"^@ c #B62819",
"/@ c #CD8622",
"(@ c #DCB03B",
"_@ c #CB9D31",
":@ c #D1A437",
"<@ c #CBA037",
"[@ c #CFA338",
"}@ c #D2AA48",
"|@ c #C18138",
"1@ c #A03229",
"2@ c #9A3029",
"3@ c #7F2821",
"4@ c #240B0A",
"5@ c #B72819",
"6@ c #BA2B1A",
"7@ c #A32618",
"8@ c #9C271B",
"9@ c #9A261B",
"0@ c #A9372C",
"a@ c #9A2B1F",
"b@ c #992B20",
"c@ c #A22E23",
"d@ c #992C21",
"e@ c #992C22",
"f@ c #A02E24",
"g@ c #9C2D23",
"h@ c #A53D34",
"i@ c #9D3129",
"j@ c #953028",
"k@ c #6C221D",
"l@ c #0D0404",
"m@ c #C72E1D",
"n@ c #AB281A",
"o@ c #98271B",
"p@ c #95261B",
"q@ c #9F291E",
"r@ c #A6362B",
"s@ c #A32D21",
"t@ c #902A1F",
"u@ c #A22F24",
"v@ c #982D23",
"w@ c #A02F25",
"x@ c #9D2F26",
"y@ c #9F3026",
"z@ c #A53E35",
"A@ c #9F332A",
"B@ c #9D322A",
"C@ c #8B2C26",
"D@ c #4E1915",
"E@ c #010101",
"F@ c #AE281A",
"G@ c #AD291B",
"H@ c #A2271B",
"I@ c #99281C",
"J@ c #9E291F",
"K@ c #9A291E",
"L@ c #A2362C",
"M@ c #A22E24",
"N@ c #87281E",
"O@ c #8A291F",
"P@ c #982D24",
"Q@ c #9C2F26",
"R@ c #9F3128",
"S@ c #A23E36",
"T@ c #983129",
"U@ c #752620",
"V@ c #1D0908",
"W@ c #020202",
"X@ c #6B1B12",
"Y@ c #B42C1D",
"Z@ c #A8291C",
"`@ c #9A2A1E",
" # c #A22B20",
".# c #A3382E",
"+# c #A1372D",
"@# c #9C2C21",
"## c #9F2D23",
"$# c #A12F24",
"%# c #9A2C23",
"&# c #9D2F25",
"*# c #972D25",
"=# c #9D3027",
"-# c #9E3129",
";# c #9F332B",
"># c #9F3E36",
",# c #8F3832",
"'# c #4E1A16",
")# c #8A2216",
"!# c #AD2B1D",
"~# c #A4291D",
"{# c #A73A2F",
"]# c #A02D23",
"^# c #9D2E23",
"/# c #972E26",
"(# c #9F322A",
"_# c #9E3229",
":# c #9D332B",
"<# c #8F2F28",
"[# c #66221D",
"}# c #100605",
"|# c #A12A1F",
"1# c #A63B31",
"2# c #972F27",
"3# c #9C322A",
"4# c #94302A",
"5# c #722620",
"6# c #270D0B",
"7# c #3A0F0B",
"8# c #9C281C",
"9# c #9F3930",
"0# c #8F2A22",
"a# c #982E25",
"b# c #963028",
"c# c #963029",
"d# c #772822",
"e# c #361210",
"f# c #030303",
"g# c #330D09",
"h# c #8B251C",
"i# c #9B2A1F",
"j# c #A23B32",
"k# c #90362F",
"l# c #982E26",
"m# c #A0322A",
"n# c #9D332A",
"o# c #9A322A",
"p# c #8D2E28",
"q# c #6D241F",
"r# c #33100E",
"s# c #1D0907",
"t# c #6E1E16",
"u# c #96291F",
"v# c #9D2B21",
"w# c #9F2E23",
"x# c #9D3A32",
"y# c #943029",
"z# c #832C25",
"A# c #5C1F1B",
"B# c #1E0A08",
"C# c #000000",
"D# c #41130E",
"E# c #85251C",
"F# c #912920",
"G# c #972C22",
"H# c #9C2D24",
"I# c #9E3127",
"J# c #A23D35",
"K# c #9D3229",
"L# c #9A312A",
"M# c #933028",
"N# c #832B24",
"O# c #6B241E",
"P# c #401512",
"Q# c #070302",
"R# c #0C0403",
"S# c #37100D",
"T# c #681E17",
"U# c #81261E",
"V# c #8B2921",
"W# c #8F2B23",
"X# c #942E26",
"Y# c #902D26",
"Z# c #842A24",
"`# c #5C1E1A",
" $ c #36120F",
".$ c #0D0504",
"+$ c #170706",
"@$ c #2D0E0B",
"#$ c #401310",
"$$ c #4E1813",
"%$ c #581C17",
"&$ c #401411",
"*$ c #2B0E0C",
"=$ c #140706",
"-$ c #030202",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" . + @ # $ % & * = ",
" - ; > , ' ) ! ~ ~ { ] ^ / ( _ ",
" : < [ } | 1 2 3 4 5 6 7 7 8 9 0 a b ",
" c d e f g h 2 i j k l m 7 7 n o p q r s t ",
" u v w g x h 2 y j z A m 7 B n C q q D E F G H ",
" I J K L x M 2 N N O P O 7 Q n C R R S E F T U U V ",
" W X f L h 2 2 N Y Z m ` ...+.C q @.#.$.F %.&.*.=.-.;. ",
" >.,.'.L h 2 i N Y ).!.7 7 +.~.{.].^.S E /.(._.:.<.[.}.|.1. ",
" 2.3.g h 2 i N 4.5.m 6.6.n C p 7.8.9.E 0.%.U a.b.c.d.e.f.g. ",
" h., i.M 2 N N j.k.l.6.B m.n.q q S o.p.q.r.U :.s.t.u.v.w.x.y.z. ",
" A.B.M 2 C.D.Z m E.7 Q m.n.R F.S E F G.H.I.J.s.c.d.K.L.M.N.O.P. ",
" Q.R.y N S.T.m 7 7 n C C R U.V.$.0.%.U W.X.Y.Z.d.v.`. +.+++@+#+$+ ",
" %+&+*+=+-+-+;+>+>+,+'+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+|+1+2+3+4+5+6+ ",
" 7+8+N -+;+;+>+>+,+'+'+)+~+~+9+0+a+b+c+_+:+d+d+e+f+|+1+g+h+i+j+k+l+ ",
" m+n+Z ;+;+>+o+,+'+)+)+~+9+9+0+p+q+r+s+t+d+u+u+|+1+1+g+v+v+w+x+y+z+A+ ",
" B+{ m ;+>+,+,+C+D+)+~+9+9+0+/+/+(+E+F+G+H+H+|+1+1+I+J+J+K+L+M+N+O+P+ ",
" Q+R+7 >+,+'+'+)+S+T+9+0+0+/+(+_+:+d+U+V+W+X+Y+Y+g+v+v+Z+`+ @.@+@@@#@ ",
" $@%@7 ,+'+'+)+~+~+{+^+0+/+(+_+&@d+d+u+*@=@-@g+;@>@Z+Z+,@'@)@!@~@{@#@ ",
" ]@^@n /@)+)+~+~+9+0+^+(@(+_+:+_@_@u+|+|+:@<@[@v+}@}@,@'@|@1@2@3@4@#@ ",
" 5@6@C 7@q S E F 8@9@U a.0@c.d.v.a@b@c@d@e@f@g@j+L+ @h@1@1@i@j@k@l@P+ ",
" m@n@@.S E F %.U o@p@q@r@d.v.s@M.t@t@u@v@i+w@x@y@)@1@z@A@B@C@D@E@A+ ",
" F@G@S H@0.%.U :.<.I@J@K@L@x.M.c@M@N@O@P@P@L+y@Q@R@1@A@S@T@U@V@W@ ",
" X@Y@Z@0.%.U :.<.c.d.`@ #.#+#@###$#%#&#w+*#)@)@=#-#A@;#>#,#'#E@A+ ",
" )#!#~#*.:.<.c.d.d.a@b@M.{#]#^#f@w+w+ @/#/#1@(#_#;#:#<#[#}#W@A+ ",
" 8@U =.|#c.d.v.s@M.d@d@M@1#i+w+L+ @)@1@2#(#;#;#3#4#5#6#E@A+ ",
" 7#8#[.[.e.v.s@M.c@c@u@i+1#9#0#a#)@1@1@b#c#;#:#4#d#e#E@W@f# ",
" g#h#i#e.x.x.c@M@$#i+w+P@j#k#l#1@m#A@;#n#o#p#q#r#E@W@A+ ",
" s#t#u#v#N.]#w#i+w+w+ @/#x#z@(#A@B@o#y#z#A#B#E@W@A+ ",
" C#D#E#F#G#H#j+j+M+.@I#!@J#K#L#M#N#O#P#Q#W@W@A+ ",
" C#R#S#T#U#V#W#N+X#X#Y#C@Z#U@`# $.$E@W@W@f# ",
" f#W@+$@$#$$$O+%$D@&$*$=$-$W@W@W@A+ ",
" f#f#W@W@W@W@W@W@W@W@W@W@W@A+f# ",
" f#f#E@E@A+#@f#f#f# ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};

View File

@@ -1,474 +0,0 @@
/* XPM */
static char * info_xpm[] = {
"48 48 423 2",
" c None",
". c #FEFEFE",
"+ c #FFFFFF",
"@ c #F1F1F1",
"# c #CACACA",
"$ c #CBCBCB",
"% c #EDEDED",
"& c #999999",
"* c #4B4B4B",
"= c #131313",
"- c #2E2E2E",
"; c #393732",
"> c #423F36",
", c #242119",
"' c #282828",
") c #626262",
"! c #C2C2C2",
"~ c #FAFAFA",
"{ c #2D2D2D",
"] c #736F61",
"^ c #E0CE8A",
"/ c #EFDD8F",
"( c #F4E298",
"_ c #F4E191",
": c #F3E093",
"< c #ECD78C",
"[ c #D8C78E",
"} c #B7AA7C",
"| c #9B8C5A",
"1 c #5F5C4F",
"2 c #B6B6B6",
"3 c #FEFEFD",
"4 c #A1A1A1",
"5 c #1E1E1E",
"6 c #C2BEAF",
"7 c #F1DC92",
"8 c #F5E190",
"9 c #F7E7A5",
"0 c #F8EAAE",
"a c #F9E9A7",
"b c #F8E795",
"c c #F8E796",
"d c #F5E49C",
"e c #EBDB99",
"f c #E2CD7F",
"g c #D7C480",
"h c #21201E",
"i c #838383",
"j c #F9F9F9",
"k c #DDD9CA",
"l c #EFD986",
"m c #EFDA8E",
"n c #F8EAAF",
"o c #F9F0C7",
"p c #FAF5DE",
"q c #FAF3D0",
"r c #FAEAA6",
"s c #F9E89E",
"t c #F8E793",
"u c #F7E493",
"v c #EFDD93",
"w c #E5D187",
"x c #DFD2A9",
"y c #595958",
"z c #939393",
"A c #474747",
"B c #BAB6A9",
"C c #F5E4A3",
"D c #F4DE87",
"E c #F4E7B2",
"F c #F9F5E3",
"G c #FAF6E6",
"H c #FBF8ED",
"I c #FBF9EF",
"J c #FAF8EC",
"K c #FAF3DA",
"L c #F9E99B",
"M c #F8E791",
"N c #F6E38F",
"O c #EFDD92",
"P c #DFCB80",
"Q c #D7C896",
"R c #333333",
"S c #C9C9C9",
"T c #B4B4B4",
"U c #545454",
"V c #F0DD9C",
"W c #F3DF8D",
"X c #F7E69F",
"Y c #F8EFCF",
"Z c #FAF5E5",
"` c #F9F4E2",
" . c #FBF6E7",
".. c #FAF5E7",
"+. c #FAF6E9",
"@. c #FAEDB7",
"#. c #F9E89B",
"$. c #F8E691",
"%. c #F5E391",
"&. c #E8D68B",
"*. c #D1BC70",
"=. c #A29C84",
"-. c #525252",
";. c #848484",
">. c #989585",
",. c #EED681",
"'. c #F5E293",
"). c #F8E8A9",
"!. c #FAF4E1",
"~. c #FAF6E7",
"{. c #F9F5E4",
"]. c #F9F5E6",
"^. c #F7EEC3",
"/. c #F7E7A0",
"(. c #F7E691",
"_. c #F7E58F",
":. c #F1E08E",
"<. c #DBC878",
"[. c #C6B677",
"}. c #2A2A27",
"|. c #DADADA",
"1. c #646464",
"2. c #C1B999",
"3. c #EFD882",
"4. c #F6E499",
"5. c #F8EDBA",
"6. c #FAF5E4",
"7. c #FBF5E6",
"8. c #FAF5E6",
"9. c #F9F1DB",
"0. c #F9F4E3",
"a. c #F8F2DB",
"b. c #F6EBBE",
"c. c #F6E6A0",
"d. c #F3E290",
"e. c #E4D07E",
"f. c #C1AE67",
"g. c #646159",
"h. c #A0A0A0",
"i. c #EFD881",
"j. c #F6E498",
"k. c #FAF6E8",
"l. c #F9F5E5",
"m. c #F8F2DE",
"n. c #F7EFD0",
"o. c #F5E9C2",
"p. c #F4E5A0",
"q. c #F7E695",
"r. c #F3E295",
"s. c #E6D27E",
"t. c #C6B36A",
"u. c #79766C",
"v. c #7B7B7B",
"w. c #636363",
"x. c #B8B095",
"y. c #FBF8EE",
"z. c #FAF7EB",
"A. c #F9F6E5",
"B. c #F9F6EA",
"C. c #F9F4E0",
"D. c #F4EAC9",
"E. c #F7EBB1",
"F. c #F5E7A2",
"G. c #F6E697",
"H. c #F6E59B",
"I. c #F2E093",
"J. c #E7D480",
"K. c #CCB96E",
"L. c #797157",
"M. c #949494",
"N. c #818181",
"O. c #898782",
"P. c #F0DC91",
"Q. c #F6E496",
"R. c #F7EAAF",
"S. c #FBF7EC",
"T. c #F9F6E7",
"U. c #FAF5E8",
"V. c #FBF7ED",
"W. c #FAEEBB",
"X. c #F8ECB8",
"Y. c #F4EACA",
"Z. c #F3E6A3",
"`. c #F6E593",
" + c #F6E493",
".+ c #F2E090",
"++ c #E4D17E",
"@+ c #C4B269",
"#+ c #6D664D",
"$+ c #A5A5A5",
"%+ c #BFBFBF",
"&+ c #464646",
"*+ c #EDD990",
"=+ c #F2DC8A",
"-+ c #F7E8A6",
";+ c #FAF4D9",
">+ c #F8F1DB",
",+ c #F9F4E7",
"'+ c #F9EFCB",
")+ c #FAECAF",
"!+ c #F5E7B2",
"~+ c #EDE7BA",
"{+ c #F2E29A",
"]+ c #F6E591",
"^+ c #F5E393",
"/+ c #EFDC8B",
"(+ c #D9C677",
"_+ c #AB9B5B",
":+ c #201D13",
"<+ c #D5D5D5",
"[+ c #FCFCFC",
"}+ c #FDFDFC",
"|+ c #6F6F6F",
"1+ c #9B9584",
"2+ c #F1DC86",
"3+ c #F6E59D",
"4+ c #FAF2D3",
"5+ c #FBF7EA",
"6+ c #F9F4E5",
"7+ c #FAF3E5",
"8+ c #F8ECB9",
"9+ c #F6E7A7",
"0+ c #F3E7AD",
"a+ c #F1E3A4",
"b+ c #F4E395",
"c+ c #EADA91",
"d+ c #E4D07F",
"e+ c #CDBC70",
"f+ c #817959",
"g+ c #4E4E4E",
"h+ c #DEDEDD",
"i+ c #3E3E3E",
"j+ c #EEDA8D",
"k+ c #F7E8A7",
"l+ c #FAF2D2",
"m+ c #FAF7EA",
"n+ c #F9F4E6",
"o+ c #F7EED9",
"p+ c #F1E6AD",
"q+ c #F4E49D",
"r+ c #F2E4A1",
"s+ c #F1E19B",
"t+ c #F0DF92",
"u+ c #E5D48D",
"v+ c #DBC97E",
"w+ c #D9C577",
"x+ c #B9A964",
"y+ c #4F4938",
"z+ c #A7A7A7",
"A+ c #FDFDFD",
"B+ c #262626",
"C+ c #F2E097",
"D+ c #F9EBB1",
"E+ c #FAF3DB",
"F+ c #F8F1DC",
"G+ c #F7EFD8",
"H+ c #F4E9C4",
"I+ c #F3E4A1",
"J+ c #F3E296",
"K+ c #F1E195",
"L+ c #E9DA96",
"M+ c #E6D68C",
"N+ c #DAC87E",
"O+ c #DAC777",
"P+ c #C4B36B",
"Q+ c #958857",
"R+ c #353535",
"S+ c #F4F4F4",
"T+ c #E4E4E4",
"U+ c #434032",
"V+ c #F3DE87",
"W+ c #F8EBB1",
"X+ c #F9F2DB",
"Y+ c #F3EAC1",
"Z+ c #F4E9C1",
"`+ c #F3E6AD",
" @ c #EEDB8B",
".@ c #DCCB84",
"+@ c #D1C076",
"@@ c #D1BF73",
"#@ c #C9B76D",
"$@ c #9D9164",
"%@ c #43433D",
"&@ c #C2C2C1",
"*@ c #4D493C",
"=@ c #EFD782",
"-@ c #F4E9BB",
";@ c #F4E7BB",
">@ c #F1DFA1",
",@ c #F3E3A7",
"'@ c #E3D186",
")@ c #D9C679",
"!@ c #CAB871",
"~@ c #C1B372",
"{@ c #AEA475",
"]@ c #7F7A64",
"^@ c #0B0B0B",
"/@ c #7D7D7D",
"(@ c #6D6D64",
"_@ c #121211",
":@ c #383526",
"<@ c #5F5E59",
"[@ c #5A594C",
"}@ c #A9A077",
"|@ c #E8D48D",
"1@ c #E7D180",
"2@ c #DBC77C",
"3@ c #DBC97C",
"4@ c #BAA864",
"5@ c #8F8255",
"6@ c #3B3724",
"7@ c #0F0E0C",
"8@ c #494949",
"9@ c #BBBBBB",
"0@ c #35352E",
"a@ c #9D9D99",
"b@ c #B4B4B2",
"c@ c #EFEFEE",
"d@ c #DADAD8",
"e@ c #696964",
"f@ c #1D1D16",
"g@ c #928963",
"h@ c #C2B071",
"i@ c #B3A05E",
"j@ c #A99959",
"k@ c #474439",
"l@ c #DCDCDC",
"m@ c #F5F5F5",
"n@ c #050504",
"o@ c #161614",
"p@ c #55554E",
"q@ c #8D8D85",
"r@ c #D4D4D1",
"s@ c #F6F6F6",
"t@ c #CACAC4",
"u@ c #585851",
"v@ c #4D4C47",
"w@ c #80795F",
"x@ c #716D5B",
"y@ c #2A2A2A",
"z@ c #D9D9D9",
"A@ c #585858",
"B@ c #23231F",
"C@ c #C7C7C5",
"D@ c #A9A9A4",
"E@ c #3D3D35",
"F@ c #131311",
"G@ c #8D8D87",
"H@ c #C3C3C1",
"I@ c #7B7B7A",
"J@ c #5C5C5B",
"K@ c #0D0D0A",
"L@ c #3B3B3B",
"M@ c #BABABA",
"N@ c #191919",
"O@ c #525248",
"P@ c #D7D7D3",
"Q@ c #F7F7F7",
"R@ c #CFCFC8",
"S@ c #2F2F29",
"T@ c #474742",
"U@ c #71716F",
"V@ c #757571",
"W@ c #0F0F0F",
"X@ c #ECECEC",
"Y@ c #000000",
"Z@ c #080807",
"`@ c #96968E",
" # c #DFDFDE",
".# c #FBFBFB",
"+# c #B3B3B1",
"@# c #70706B",
"## c #4F4F4E",
"$# c #42423A",
"%# c #434343",
"&# c #BCBCB9",
"*# c #AEAEA9",
"=# c #4B4B44",
"-# c #0F0F0E",
";# c #92928D",
"># c #929292",
",# c #696968",
"'# c #141412",
")# c #878787",
"!# c #75756C",
"~# c #C3C3C2",
"{# c #F0F0F0",
"]# c #B9B9B1",
"^# c #525249",
"/# c #464644",
"(# c #7F7F7B",
"_# c #6D6D6D",
":# c #050505",
"<# c #44443B",
"[# c #333331",
"}# c #B3B3B0",
"|# c #EFEFEF",
"1# c #CFCFCE",
"2# c #434342",
"3# c #56564F",
"4# c #272727",
"5# c #161613",
"6# c #12120F",
"7# c #2C2C2A",
"8# c #9E9E9A",
"9# c #6B6B6A",
"0# c #10100E",
"a# c #21211D",
"b# c #20201C",
"c# c #383837",
"d# c #737373",
"e# c #141411",
"f# c #090908",
"g# c #0B0B09",
"h# c #31312B",
"i# c #33332F",
"j# c #30302F",
"k# c #101010",
"l# c #4E4E45",
"m# c #010101",
"n# c #1A1A17",
"o# c #0C0C0B",
"p# c #020202",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" . . + + . . . ",
" . . . . . . . . . . . . ",
" + . . . . . . . . . . . . . . . ",
" . . . . . . @ # $ $ % . . . . . . . ",
" . . . . % & * = - ; > , ' ) ! ~ . . . . ",
" . . . . ! { ] ^ / ( _ : < [ } | 1 2 . . . . ",
" 3 . . . 4 5 6 7 8 9 0 a b c d e f g h i j . . + ",
" . . . ! 5 k l m n o p q r s t u v w x y z . . . . ",
" . . ~ A B C D E F G H I J K L M N O P Q R S . . . ",
" . . . T U V W X Y Z ` ...+.G @.#.$.%.&.*.=.-.. . . ",
" . . . ;.>.,.'.).!.~.` {.` ]...^./.(._.:.<.[.}.|.. . . ",
" . . . 1.2.3.4.5.6.Z 7.8.9.0.a.b.c.$.$.d.e.f.g.h.. . . ",
" . . . 1.2.i.j.5.{.k.k.l.` m.n.o.p.q.q.r.s.t.u.v.. . + ",
" . . . w.x.i.'.5...y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.. + + ",
" . . . N.O.P.Q.R.Z S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+. . + ",
" . . %+&+*+=+-+;+y.>+,+'+)+!+~+{+]+^+/+(+_+:+<+. . . ",
" [+}+j |+1+2+3+4+5+6+7+8+9+0+a+b+%.c+d+e+f+g+j . . ",
" [+}+}+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+. . . ",
" }+}+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+. . . ",
" [+}+T+U+V+W+X+Y+Z+`+s+/ @.@+@@@#@$@%@4 . . . ",
" [+&@*@=@-@;@>@,@C+/ '@)@!@~@{@]@^@/@~ . . . ",
" (@_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@. . + + ",
" 0@a@b@c@d@e@f@g@h@i@j@k@) l@m@. . . + ",
" n@o@p@q@r@s@t@u@v@w@x@y@z@}+}+. . . ",
" A@B@C@D@E@F@G@H@I@J@K@L@M@}+}+}+. ",
" N@O@P@A+Q@R@S@T@U@V@W@X@[+[+[+ ",
" Y@Z@S@`@ #.#+#@###$#%# ",
" N@Y@&#*#=#-#;#>#|+,#'#)# ",
" Y@!#~#{#{#]#^#/#(#_#:# ",
" Y@Y@<#[#}#|#1#,#2#3#4# ",
" Y@5#6#S@7#8#|+9#Y@ ",
" Y@Y@0#a#b#c#,#d#Y@ ",
" e#f#5#F@g#h#i#j#k# ",
" l#m#e#n#o#0#Y@ ",
" m#p# ",
" ",
" ",
" ",
" ",
" ",
" "};

View File

@@ -1,125 +0,0 @@
/* XPM */
static char * question_xpm[] = {
"48 48 74 1",
" c None",
". c #000000",
"+ c #A27F3B",
"@ c #B89243",
"# c #D8AB4E",
"$ c #9D7D3A",
"% c #A6823C",
"& c #7C622D",
"* c #F7D899",
"= c #F7E2B8",
"- c #D8BA7B",
"; c #BE9B53",
"> c #F7C35A",
", c #F7DFAF",
"' c #F7E5C0",
") c #F7D48C",
"! c #F7CF7E",
"~ c #D8B15F",
"{ c #6E5526",
"] c #F7DCA5",
"^ c #A8843D",
"/ c #937435",
"( c #AA863E",
"_ c #D8B66E",
": c #BEA363",
"< c #947536",
"[ c #927335",
"} c #F7C96D",
"| c #80632D",
"1 c #C39F57",
"2 c #A38E55",
"3 c #A48B5A",
"4 c #D2A64D",
"5 c #82662F",
"6 c #654F24",
"7 c #DCB463",
"8 c #BE9544",
"9 c #C3A466",
"0 c #8C6D31",
"a c #D2B06C",
"b c #D8BE86",
"c c #715929",
"d c #B99344",
"e c #B38D40",
"f c #D8B56E",
"g c #D8AC58",
"h c #997A3B",
"i c #000001",
"j c #6B5527",
"k c #C39F55",
"l c #DCC494",
"m c #DAB872",
"n c #C9AC73",
"o c #BFA16A",
"p c #19150D",
"q c #876A31",
"r c #C9A45B",
"s c #C6A76A",
"t c #7F6941",
"u c #977737",
"v c #D8B165",
"w c #D8AC5B",
"x c #BEA272",
"y c #C09745",
"z c #D8B163",
"A c #927C52",
"B c #735F3B",
"C c #A68748",
"D c #1A1A1A",
"E c #393939",
"F c #221C12",
"G c #DDBC74",
"H c #D2A64C",
"I c #705627",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ........ ",
" ...+@#$%&... ",
" ..#**=*---;%... ",
" ..>,'*)>>>!-~%{.. ",
" .>,]>^//(>>!_~%.. ",
" .:*=><....[>>}~~|.. ",
" .}'!<.. .1>!#~%.. ",
" .2),#.. .3>}~#%.. ",
" .4!>%.. .3}}_#5.. ",
" .>!>%.. .3>__#6.. ",
" .7~85.. .9}-#%... ",
" ....... 0ab~#c.. ",
" ..... .d)b#8... ",
" .e}b##... ",
" ..>)fgh..i ",
" jklmnop.. ",
" .qafrst.. ",
" .u-vwx.. ",
" .y-zwA.. ",
" .#b~#B.. ",
" .;-#8.. ",
" .CC%|.. ",
" .DE... ",
" .... ",
" ",
" F.... ",
" .G!)8.. ",
" .!**#.. ",
" .))~8.. ",
" .)_#8.. ",
" .H~8I.. ",
" ...... ",
" .... ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};

View File

@@ -1,291 +0,0 @@
/* XPM */
static char * warning_xpm[] = {
"48 48 240 2",
" c None",
". c #F42A14",
"+ c #C62210",
"@ c #F62B14",
"# c #D22411",
"$ c #A91D0F",
"% c #85170C",
"& c #F62913",
"* c #D52511",
"= c #A71D0E",
"- c #A11C0E",
"; c #9B1B0E",
"> c #641209",
", c #F72913",
"' c #E02712",
") c #B31F0F",
"! c #A41C0E",
"~ c #8A180C",
"{ c #EC2913",
"] c #B9200F",
"^ c #B14010",
"/ c #9A1C0F",
"( c #631109",
"_ c #F52A13",
": c #CA2310",
"< c #BB5B11",
"[ c #C26F12",
"} c #A31D0F",
"| c #A01D0F",
"1 c #921A0E",
"2 c #F52913",
"3 c #DB2612",
"4 c #A61D0F",
"5 c #E0AD11",
"6 c #DFB112",
"7 c #77150C",
"8 c #B72010",
"9 c #A31C0E",
"0 c #E1AE12",
"a c #D28814",
"b c #9F1D10",
"c c #911A0F",
"d c #4D0D07",
"e c #C56B12",
"f c #A11D10",
"g c #A21D10",
"h c #73150C",
"i c #DE2612",
"j c #DCAE11",
"k c #B9930E",
"l c #DEAC13",
"m c #CF8812",
"n c #901A0F",
"o c #490D07",
"p c #EF2914",
"q c #BA2010",
"r c #D18912",
"s c #C39B0F",
"t c #010100",
"u c #0E0B00",
"v c #403105",
"w c #A11D11",
"x c #9E1D11",
"y c #F32912",
"z c #D12412",
"A c #7A6109",
"B c #070400",
"C c #130F00",
"D c #020200",
"E c #CD8713",
"F c #490E09",
"G c #E82814",
"H c #B21F10",
"I c #E0B213",
"J c #2C2303",
"K c #030100",
"L c #010000",
"M c #191300",
"N c #DCAB15",
"O c #9D1E12",
"P c #72150D",
"Q c #C82312",
"R c #251D02",
"S c #000000",
"T c #040300",
"U c #292003",
"V c #A01E12",
"W c #8F1B10",
"X c #DC2613",
"Y c #271E02",
"Z c #1D1602",
"` c #423305",
" . c #71150D",
".. c #ED2914",
"+. c #BD2111",
"@. c #D08C13",
"#. c #4E3D06",
"$. c #403104",
"%. c #453506",
"&. c #DBAA16",
"*. c #CC8614",
"=. c #891A11",
"-. c #470E09",
";. c #F42914",
">. c #D92613",
",. c #1E1702",
"'. c #251D03",
"). c #413206",
"!. c #9F1E13",
"~. c #991D13",
"{. c #5E110A",
"]. c #EA2915",
"^. c #A21D0F",
"/. c #090700",
"(. c #0B0900",
"_. c #CC8615",
":. c #9C1E13",
"<. c #861910",
"[. c #2C0805",
"}. c #D42513",
"|. c #050400",
"1. c #100D01",
"2. c #0A0800",
"3. c #332704",
"4. c #DAAA17",
"5. c #981D14",
"6. c #5E120C",
"7. c #130F01",
"8. c #524007",
"9. c #9E1E14",
"0. c #9B1E14",
"a. c #7A1710",
"b. c #382C05",
"c. c #513F07",
"d. c #151001",
"e. c #71570A",
"f. c #D8A919",
"g. c #8D1B12",
"h. c #490E0A",
"i. c #BD9312",
"j. c #675009",
"k. c #312604",
"l. c #C79A14",
"m. c #CB8617",
"n. c #9A1F15",
"o. c #6D160E",
"p. c #9D1F15",
"q. c #871B12",
"r. c #440E09",
"s. c #B62111",
"t. c #CB9E13",
"u. c #241C03",
"v. c #C49813",
"w. c #D7A81A",
"x. c #C16916",
"y. c #971E15",
"z. c #5C120D",
"A. c #D22614",
"B. c #CF8C12",
"C. c #4B3A07",
"D. c #020100",
"E. c #69520A",
"F. c #C98517",
"G. c #991F16",
"H. c #7B1912",
"I. c #2B0A07",
"J. c #EC2A16",
"K. c #3C2E05",
"L. c #090701",
"M. c #745A0C",
"N. c #9C1F16",
"O. c #8C1C14",
"P. c #460E0A",
"Q. c #D82715",
"R. c #C87E14",
"S. c #E0AE14",
"T. c #DFAD13",
"U. c #312605",
"V. c #7C610C",
"W. c #D7A816",
"X. c #BF6F16",
"Y. c #61130E",
"Z. c #EA2A16",
"`. c #BF2212",
" + c #B95B13",
".+ c #C16F14",
"++ c #C77E14",
"@+ c #CB8914",
"#+ c #DAAA16",
"$+ c #DBAB17",
"%+ c #D9AA19",
"&+ c #D8A91A",
"*+ c #D8A51C",
"=+ c #C57E16",
"-+ c #AB4216",
";+ c #781812",
">+ c #260806",
",+ c #CD2513",
"'+ c #9B1F17",
")+ c #8B1C15",
"!+ c #440E0A",
"~+ c #78150B",
"{+ c #520E07",
"]+ c #6A130B",
"^+ c #6F140B",
"/+ c #78150C",
"(+ c #86180D",
"_+ c #8A190F",
":+ c #931B10",
"<+ c #981F17",
"[+ c #5A120D",
"}+ c #020202",
"|+ c #0E0302",
"1+ c #230704",
"2+ c #2E0906",
"3+ c #410C07",
"4+ c #420C07",
"5+ c #571109",
"6+ c #5D110B",
"7+ c #60120B",
"8+ c #6E150C",
"9+ c #73160E",
"0+ c #801810",
"a+ c #881A11",
"b+ c #861B13",
"c+ c #851B14",
"d+ c #801A13",
"e+ c #731711",
"f+ c #4D100C",
"g+ c #0D0403",
"h+ c #220705",
"i+ c #210705",
"j+ c #230705",
"k+ c #420D08",
"l+ c #3E0C08",
"m+ c #3D0C09",
"n+ c #3C0C09",
"o+ c #3B0C09",
"p+ c #2E0A08",
"q+ c #1C0705",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" . + ",
" @ # $ % ",
" & * = - ; > ",
" , ' ) ! ! - ~ ",
" { ] ! ! ^ ! / ( ",
" _ : ! ! < [ } | 1 ",
" 2 3 4 ! ! 5 6 } } | 7 ",
" { 8 ! 9 0 6 6 a } b c d ",
" _ : ! ! e 6 6 6 6 f g b h ",
" i 4 ! ! 5 j k j l m g b n o ",
" p q ! ! r s t u v l l g w x h ",
" y z ! ! ! 6 A B C D l l E w x n F ",
" G H ! ! I 6 J K L M l l N w w O P ",
" _ Q ! ! a 6 6 R S T U l N N E V O W F ",
" X 4 ! } 6 6 6 Y S Z ` N N N N V V O . ",
" ..+.! ! @.6 6 l #.S $.%.N N N &.*.V O =.-. ",
" ;.>.4 ! } 6 6 6 l ,.t '.).N N &.&.&.V !.~.{. ",
" ].8 ! ^.I 6 6 l l /.t (.'.N &.&.&.&._.!.:.<.[. ",
" p }.! } a 6 6 l l l |.1.2.3.&.&.&.&.4.4.!.!.5.6. ",
" ].8 } } 6 6 l l l l |.7.T 8.&.&.&.4.4.4._.9.0.a. ",
" p }.} } @.6 l l l l N b.c.d.e.&.&.4.4.4.4.f.9.9.g.h. ",
" ].8 } } 6 l l l l N N i.j.k.l.&.&.4.4.4.f.f.m.9.n.o. ",
" p }.} } @.6 l l l N N N N &.&.&.&.4.4.4.4.f.f.f.p.n.q.r. ",
" ].s.} } 6 l l l N N N N t.'.u.v.4.4.4.4.f.f.f.w.x.p.y.z. ",
" p A.} } B.l l l l N N N &.C.D.D.E.4.4.4.f.f.f.f.w.F.p.G.H.I. ",
" J.s.} } l l l l N N N N &.K.T L.M.4.4.f.f.f.f.w.w.w.p.N.O.P. ",
" Q.} } R.S.T.l N N N N &.&.i.U.V.W.4.f.f.f.f.w.w.w.w.X.N.G.Y. ",
" Z.`.} g g g g w w w +.+++@+#+$+$+$+%+%+%+%+&+&+&+&+*+=+-+G.;+>+ ",
" ,+} | g g g w w w w V V V V !.!.!.!.9.9.9.p.p.p.p.N.N.N.N.'+)+!+ ",
" ~+{+]+^+/+(+_+:+x O V V V !.!.!.!.9.9.9.p.p.p.p.N.N.N.N.'+'+<+[+ ",
" }+}+|+1+2+3+4+5+6+7+8+9+9+9+0+a+a+a+a+q.q.q.b+b+b+b+c+c+d+e+f+}+ ",
" }+}+}+}+}+}+}+}+}+g+h+i+i+j+k+l+l+l+l+l+l+m+m+m+n+n+n+o+p+q+}+ ",
" }+}+}+}+}+}+}+}+}+}+}+}+}+}+}+}+}+}+}+}+}+}+}+}+}+S ",
" }+}+}+}+}+}+}+}+}+}+}+}+}+}+ ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};

View File

@@ -1,44 +0,0 @@
/* XPM */
static char *helpicon_xpm[] = {
/* columns rows colors chars-per-pixel */
"32 32 6 1",
" c Gray0",
". c Blue",
"X c #808080808080",
"o c #c0c0c0c0c0c0",
"O c Gray100",
"+ c None",
/* pixels */
"+++++++++++XXXXXXXX+++++++++++++",
"++++++++XXXoOOOOOOoXXX++++++++++",
"++++++XXoOOOOOOOOOOOOoXX++++++++",
"+++++XoOOOOOOOOOOOOOOOOoX+++++++",
"++++XOOOOOOOOOOOOOOOOOOOO ++++++",
"+++XOOOOOOOo......oOOOOOOO +++++",
"++XOOOOOOOo.oOO....oOOOOOOO ++++",
"+XoOOOOOOO..OOOO....OOOOOOOo +++",
"+XOOOOOOOO....OO....OOOOOOOO X++",
"XoOOOOOOOO....Oo....OOOOOOOOo X+",
"XOOOOOOOOOo..oO....OOOOOOOOOO X+",
"XOOOOOOOOOOOOOo...OOOOOOOOOOO XX",
"XOOOOOOOOOOOOO...OOOOOOOOOOOO XX",
"XOOOOOOOOOOOOO..oOOOOOOOOOOOO XX",
"XOOOOOOOOOOOOO..OOOOOOOOOOOOO XX",
"XoOOOOOOOOOOOOOOOOOOOOOOOOOOo XX",
"+XOOOOOOOOOOOo..oOOOOOOOOOOO XXX",
"+XoOOOOOOOOOO....OOOOOOOOOOo XXX",
"++XOOOOOOOOOO....OOOOOOOOOO XXX+",
"+++ OOOOOOOOOo..oOOOOOOOOO XXXX+",
"++++ OOOOOOOOOOOOOOOOOOOO XXXX++",
"+++++ oOOOOOOOOOOOOOOOOo XXXX+++",
"++++++ oOOOOOOOOOOOOo XXXX++++",
"+++++++X oOOOOOOo XXXXX+++++",
"++++++++XXX oOOO XXXXXXX++++++",
"++++++++++XXXX OOO XXXXX++++++++",
"+++++++++++++X OOO XX+++++++++++",
"+++++++++++++++ OO XX+++++++++++",
"++++++++++++++++ O XX+++++++++++",
"+++++++++++++++++ XX+++++++++++",
"++++++++++++++++++XXX+++++++++++",
"+++++++++++++++++++XX+++++++++++"
};

View File

@@ -1,26 +0,0 @@
/* XPM */
static char * home_xpm[] = {
"20 20 3 1",
" c None",
". c #000000000000",
"X c #FFFFFFFFFFFF",
" ",
" ",
" .. ",
" . .... ",
" . .XX . ",
" . .XXXX . ",
" ..XXXXXX . ",
" .XXXXXXXX . ",
" .XXXXXXXXX . ",
" ...XXXXXXXX ... ",
" .XXXXXXXX . ",
" .XXX...XX . ",
" .XXX. .XX . ",
" .XXX. .XX . ",
" .XXX. .XX . ",
" .XXX. .XX . ",
" ..... ...... ",
" ",
" ",
" "};

View File

@@ -1,40 +0,0 @@
/* XPM */
static char * htmbook_xpm[] = {
"16 16 21 1",
" c None",
". c #007F7F",
"+ c #660000",
"@ c #CC0000",
"# c #E50000",
"$ c #FF0000",
"% c #F20000",
"& c #D80000",
"* c #720000",
"= c #7F0000",
"- c #BFBFBF",
"; c #E57F7F",
"> c #7F7F7F",
", c #FFFFFF",
"' c #F2BFBF",
") c #723F3F",
"! c #A5A5A5",
"~ c #E5E5E5",
"{ c #B2B2B2",
"] c #003F3F",
"^ c #000000",
" ",
" ......... ",
" +@#$$$$$%&+ ",
" +##$$$$$$$* ",
" +##$$$$$$$=- ",
" +##$$$$$$$=;> ",
" +##$$$$$$$=;,. ",
" +##$$$$$$$=;,. ",
" +##$$$$$$$=''. ",
" +##$$$$$$$=,;. ",
" +##$$$$$$%+,;. ",
" +&++++++++),;. ",
" ++!~~~~~~~~~,. ",
" ++!~~~~~~~~~{. ",
" ]^^^^^^^^^^^ ",
" "};

View File

@@ -1,28 +0,0 @@
/* XPM */
static char * htmfoldr_xpm[] = {
/* width height ncolors chars_per_pixel */
"16 16 6 1",
/* colors */
" s None c None",
". c #000000",
"+ c #c0c0c0",
"@ c #808080",
"# c #ffff00",
"$ c #ffffff",
/* pixels */
" ",
" @@@@@ ",
" @#+#+#@ ",
" @#+#+#+#@@@@@@ ",
" @$$$$$$$$$$$$@.",
" @$#+#+#+#+#+#@.",
" @$+#+#+#+#+#+@.",
" @$#+#+#+#+#+#@.",
" @$+#+#+#+#+#+@.",
" @$#+#+#+#+#+#@.",
" @$+#+#+#+#+#+@.",
" @$#+#+#+#+#+#@.",
" @@@@@@@@@@@@@@.",
" ..............",
" ",
" "};

View File

@@ -1,21 +0,0 @@
/* XPM */
static char * htmoptns_xpm[] = {
"16 16 2 1",
" c None",
". c #000000",
" ",
" .. ",
" ... ",
" .... ",
" . ... ",
" .. ... ",
" . .. ",
" .. ... ",
" . .. ",
" ......... ",
" .. ... ",
" . ... ",
" .. ... ",
" .... ....... ",
" ",
" "};

View File

@@ -1,25 +0,0 @@
/* XPM */
static char * htmpage_xpm[] = {
/* width height ncolors chars_per_pixel */
"16 16 3 1",
/* colors */
" s None c None",
". c #000000",
"+ c #ffffff",
/* pixels */
" ",
" ........ ",
" .++++++.. ",
" .+.+.++.+. ",
" .++++++.... ",
" .+.+.+++++. ",
" .+++++++++. ",
" .+.+.+.+.+. ",
" .+++++++++. ",
" .+.+.+.+.+. ",
" .+++++++++. ",
" .+.+.+.+.+. ",
" .+++++++++. ",
" ........... ",
" ",
" "};

View File

@@ -1,35 +0,0 @@
/* XPM */
static char * htmsidep_xpm[] = {
"16 15 17 1",
" c None",
". c #000000",
"+ c #800000",
"@ c #008000",
"# c #808000",
"$ c #000080",
"% c #800080",
"& c #008080",
"* c #C0C0C0",
"= c #808080",
"- c #FF0000",
"; c #00FF00",
"> c #FFFF00",
", c #0000FF",
"' c #FF00FF",
") c #00FFFF",
"! c #FFFFFF",
"****************",
"*..............*",
"*.************.*",
"*..............*",
"*.****.!!!!!!!.*",
"*.****.!====*!.*",
"*.****.!!!!!!!.*",
"*.****.!===*!!.*",
"*.****.!!!!!!!.*",
"*.****.!====*!.*",
"*.****.!!!!!!!.*",
"*.****.!===*!!.*",
"*.****.!!!!!!!.*",
"*..............*",
"****************"};

View File

@@ -1,28 +0,0 @@
/* XPM */
static char * listview_xpm[] = {
"20 20 5 1",
" c None",
". c #000000",
"+ c #FFFFFF",
"@ c #000083",
"# c #838183",
" ",
" ",
" ................ ",
" .++++++++++++++. ",
" .+@@+++++@@++++. ",
" .+@+@+.#+@+@+.+. ",
" .+@@@++++@@@+++. ",
" .++++++++++++++. ",
" .++++++++++++++. ",
" .+@@+++++@@++++. ",
" .+@+@+.#+@+@+.+. ",
" .+@@@++++@@@+++. ",
" .++++++++++++++. ",
" .++++++++++++++. ",
" .+@@+++++@@++++. ",
" .+@+@+.#+@+@+.+. ",
" .+@@@++++@@@+++. ",
" ................ ",
" ",
" "};

View File

@@ -1,41 +0,0 @@
/* XPM */
static char * missimg_xpm[] = {
"29 31 7 1",
" c None",
". c #808080",
"+ c #FFFFFF",
"@ c #C0C0C0",
"# c #000000",
"$ c #333366",
"% c #B2B2B2",
"..................... ",
".+++++++++++++++++++.. ",
".+++++++++++++++++++.@. ",
".++@@@@@@@@@@@@@@@@@.+@. ",
".++@@@@@@@@@@@@@@@@@.++@. ",
".++@@@@@.@@@@.@@@@@@.+++@. ",
".++@@@@@@@@@@@@@@@@@.++++@. ",
".++@@@@@@@@@@@@@@@@@.+++++@. ",
".++@@.@@@@@@@@@@.@@@######## ",
".++@@@@@@@@@@@@@@@@@@$$$$$$#.",
".######@@@@@@@@@@@@@@@.....#.",
" ###@@@@@@@@@@@@@@@++#.",
" #####@@@@@@@@@@++#.",
" #@.@@@@@@@@++#.",
".. ###@@@@@@@++#.",
".+.... #@@@@@@++#.",
".++@@@... ####@@++#.",
".++@@@@@@.. #####.",
".++@@@@@@@@... ",
".++@@@@@@%%%%@. ",
".++@@@@@@%%%%@@.... ",
".++@@@@@@%%%%@@@@@@.... ",
".++@@@@@@%%%%@@@@@@@@@@.... ",
".++@@@@@@@@@@@@@@@@@@@@@@++#.",
".++@@@@@@@@@@@@@@@@@@@@@@++#.",
".++@@@@@@@@@@@@@@@@@@@@@@++#.",
".++@@@@@@@@@@@@@@@@@@@@@@++#.",
".++@@@@@@@@@@@@@@@@@@@@@@++#.",
".++++++++++++++++++++++++++#.",
".++++++++++++++++++++++++++#.",
"############################."};

View File

@@ -1,129 +0,0 @@
/* XPM */
static char * error_xpm[] = {
"48 48 78 1",
" c None",
". c #000000",
"+ c #200000",
"@ c #4A0000",
"# c #6B0000",
"$ c #8F0000",
"% c #890000",
"& c #5F0000",
"* c #380000",
"= c #0E0000",
"- c #030000",
"; c #480000",
"> c #9C0000",
", c #E40000",
"' c #FE0000",
") c #FF0000",
"! c #C90000",
"~ c #7E0000",
"{ c #250000",
"] c #090000",
"^ c #700000",
"/ c #DE0000",
"( c #FB0000",
"_ c #BB0000",
": c #410000",
"< c #500000",
"[ c #DF0000",
"} c #B00000",
"| c #0D0000",
"1 c #AB0000",
"2 c #F60000",
"3 c #600000",
"4 c #010000",
"5 c #220000",
"6 c #DA0000",
"7 c #950000",
"8 c #070000",
"9 c #350000",
"0 c #F00000",
"a c #BD0000",
"b c #080000",
"c c #B10000",
"d c #880000",
"e c #FD0000",
"f c #4D0000",
"g c #0B0000",
"h c #F50000",
"i c #1A0000",
"j c #820000",
"k c #E30000",
"l c #040000",
"m c #3C0000",
"n c #FEAFAF",
"o c #FFFEFE",
"p c #FEFEFE",
"q c #FF7F7F",
"r c #840000",
"s c #FFAFAF",
"t c #FFFFFF",
"u c #C00000",
"v c #EA0000",
"w c #2F0000",
"x c #290000",
"y c #D80000",
"z c #AE0000",
"A c #FE6D6D",
"B c #FF9F9F",
"C c #FE9F9F",
"D c #FF4F4F",
"E c #690000",
"F c #C10000",
"G c #5B0000",
"H c #050000",
"I c #B70000",
"J c #E50000",
"K c #F40000",
"L c #420000",
"M c #650000",
" ",
" ",
" ..+@#$$$%&*=. ",
" -;>,''''''))))!~{. ",
" ]^/'''''''''))))))(_:. ",
" .<['''''''''''))))))))'}+. ",
" |1'''''''''''''))))))))))234 ",
" 56)'''''''''''''))))))))))))78 ",
" 90))''''''''''''')))))))))))))ab ",
" 50)))'''''''''''''))))))))))))))c4 ",
" |6))))''''''''''''')))))))))))))))d. ",
" .1'))))''''''''''''')))))))))))))))ef ",
" <''))))''''''''''''')))))))))))))))),g ",
" ][')))))''''''''''''')))))))))))))))))%. ",
" ^'''))))''''''''''''')))))))))))))))))hi ",
" -/'''))))'''''''''''''))))))))))))))))))j ",
" ;)'')))))'''''''''''''))))))))))))))))))kl ",
" >''''))))''''''''''''')))))))))))))))))))m ",
" .,'''noooopppppppppppppoooooooooooooooq)))r ",
" +))')sttttppppppppppppptttttttttttttttq)))u. ",
" @''''nttttppppppppppppptttttttttttttttq)))v. ",
" #))''nttttppppppppppppptttttttttttttttq))))g ",
" $)'''nttttppppppppppppptttttttttttttttq))))w ",
" $''''nttttppppppppppppptttttttttttttttq))))w ",
" $)'''nttttppppppppppppptttttttttttttttq))))w ",
" %)'''nttttppppppppppppptttttttttttttttq))))x ",
" &''''nttttppppppppppppptttttttttttttttq)))). ",
" *)'''nttttppppppppppppptttttttttttttttq)))y. ",
" =))''sttttppppppppppppptttttttttttttttq)))z ",
" .!'''ABBBBCCCCCCCCCCCCCBBBBBBBBBBBBBBBD)))E ",
" ~''''))))'''''''''''''))))))))))))))))))e+ ",
" {('))))))'''''''''''''))))))))))))))))))F. ",
" ._'''))))'''''''''''''))))))))))))))))))G ",
" :'''))))''''''''''''')))))))))))))))))6H ",
" .}))))))''''''''''''')))))))))))))))))< ",
" +2'))))'''''''''''''))))))))))))))))I. ",
" .3)))))''''''''''''')))))))))))))))Ji ",
" 47))))'''''''''''''))))))))))))))KL ",
" 8a)))'''''''''''''))))))))))))))M. ",
" bc))'''''''''''''))))))))))))KM. ",
" 4de''''''''''''')))))))))))JL. ",
" .f,''''''''''''))))))))))Ii ",
" g%h''''''''''))))))))6<. ",
" .ijk'''''''')))))eFGH ",
" .lmruv''''))yzE+. ",
" ..gwwwx... ",
" ",
" "};

View File

@@ -1,210 +0,0 @@
/* XPM */
static char * info_xpm[] = {
"48 48 159 2",
" c None",
". c #12165C",
"+ c #9E9EC4",
"@ c #565294",
"# c #2E3274",
"$ c #1A227C",
"% c #16229C",
"& c #262274",
"* c #362E8C",
"= c #262A9C",
"- c #121E7C",
"; c #1A2AAC",
"> c #162284",
", c #262EA4",
"' c #2A2A84",
") c #1E1E6C",
"! c #3E3A84",
"~ c #7A72B4",
"{ c #121E74",
"] c #1E2284",
"^ c #2A2E9C",
"/ c #362E9C",
"( c #D2D2E4",
"_ c #62669C",
": c #1E269C",
"< c #1A2AB4",
"[ c #6A6EAC",
"} c #121A6C",
"| c #2E2A84",
"1 c #26268C",
"2 c #3E328C",
"3 c #322E9C",
"4 c #B6B6CC",
"5 c #1626AC",
"6 c #1E268C",
"7 c #2E267C",
"8 c #363294",
"9 c #1A2694",
"0 c #22226C",
"a c #26267C",
"b c #2E2A9C",
"c c #1A1E7C",
"d c #222A9C",
"e c #162294",
"f c #1E2EBC",
"g c #2A2EAC",
"h c #6A6A9C",
"i c #2E2A94",
"j c #CACADC",
"k c #1A1A64",
"l c #16269C",
"m c #262AAC",
"n c #161E8C",
"o c #464294",
"p c #8286C4",
"q c #1A1E64",
"r c #222AB4",
"s c #6A6EB4",
"t c #1A1A6C",
"u c #BABAD4",
"v c #1E2694",
"w c #121A64",
"x c #2E2E94",
"y c #3A2E8C",
"z c #2A2A9C",
"A c #161E7C",
"B c #1A2284",
"C c #262A94",
"D c #2E2E9C",
"E c #36329C",
"F c #FEFEFC",
"G c #666AA4",
"H c #1E2AB4",
"I c #161A6C",
"J c #322A84",
"K c #2A267C",
"L c #262EB4",
"M c #1A269C",
"N c #1E2274",
"O c #1E2AA4",
"P c #221E6C",
"Q c #423E8C",
"R c #222284",
"S c #E6E6EC",
"T c #22269C",
"U c #6E6EA4",
"V c #3232A4",
"W c #BAB6D4",
"X c #1A26AC",
"Y c #222684",
"Z c #3A328C",
"` c #22227C",
" . c #222AAC",
".. c #222EB4",
"+. c #8A86BC",
"@. c #1A1E74",
"#. c #161A5C",
"$. c #322E8C",
"%. c #3A329C",
"&. c #A29ECC",
"*. c #26227C",
"=. c #362E94",
"-. c #262AA4",
";. c #121E84",
">. c #16228C",
",. c #262EAC",
"'. c #2A2A8C",
"). c #1E1E74",
"!. c #7A76B4",
"~. c #161E74",
"{. c #1E228C",
"]. c #2A2EA4",
"^. c #6266A4",
"/. c #1E26A4",
"(. c #1A2ABC",
"_. c #121A74",
":. c #2E2A8C",
"<. c #262694",
"[. c #3E3294",
"}. c #322EA4",
"|. c #B6B6D4",
"1. c #222274",
"2. c #262684",
"3. c #222AA4",
"4. c #1A2294",
"5. c #2E2EAC",
"6. c #6E6AA4",
"7. c #322A94",
"8. c #1626A4",
"9. c #8E8ABC",
"0. c #4A429C",
"a. c #6E6EBC",
"b. c #222694",
"c. c #2A2A94",
"d. c #1A1E6C",
"e. c #BABADC",
"f. c #3A2E94",
"g. c #2A2AA4",
"h. c #161E84",
"i. c #1A228C",
"j. c #2E2EA4",
"k. c #3632A4",
"l. c #666AAC",
"m. c #1E2ABC",
"n. c #161A74",
"o. c #322A8C",
"p. c #2A2684",
"q. c #1A26A4",
"r. c #1E227C",
"s. c #1E2AAC",
"t. c #423E94",
"u. c #E6E6F4",
"v. c #6E6EAC",
"w. c #1A26B4",
"x. c #22268C",
"y. c #3A3294",
"z. c #222EBC",
"A. c #161A64",
"B. c #322E94",
" ",
" ",
" ",
" ",
" 7 7 7 7 7 7 7 7 & ",
" 2 2 2 2 2 2 y y y f.f.[.y 7 *. ",
" J y 2 2 2 2 2 [.[.[.[.y.=.=.f.=./ B.p. ",
" 2 2 2 2 [.2 [.[.f.y y y * * =.=.B./ B.3 o.*.*. ",
" y 2 2 [.2 [.2 2 y [.[.f.f.o.* $.$.B.B.7.D 3 D }.D ",
" 2 2 [.[.2 [.2 [.f.[.y ~ ( F F W 0.$.:.i x 7.3 D D <.R ",
" y 2 [.[.[.2 [.2 2 y y ~ F F F F F u.o :.:.c.c.b b D }.}.g. ",
" 2 [.[.2 [.2 [.2 [.y 2 Z ( F F F F F F +.7 '.:.:.i D b ].].z R ",
" y 2 2 [.[.[.[.[.2 f.y y y F F F F F F F |.p.p.'.'.<.z z g.].].5.m ",
" 2 2 [.t.[.[.2 2 2 f.2 f.* * u.F F F F F F + *.2.2.C '.c.z ^ ].g m = n ",
" y 2 [.2 [.[.[.[.2 f.2 f.* * &.F F F F F F @ a *.2.2.C C z = g.].,.g. . ",
" 2 2 [.[.[.[.[.2 [.[.[.f.* o.J $.u F F F u.U 1.0 Y *.2.1 <.C ^ -.m g.L = n ",
" 2 2 2 [.2 t.[.[.f.[.Z y.* $.J 7 | Q U 6.P 1.P P ` ` 2.1 <.= = , ,.,.m m . ",
" 2 [.[.[.[.[.[.2 f.2 f.f.* =.o.:.| K & & 0 0 P N 1.1.` R 2.d <.= -.-.m ..../.n ",
" 2 2 [.2 [.2 [.[.[.[.y.=.=.* o.:.p.K ! 6.h 4 4 ) ) ).r.6 Y b.= = , ,.,.m ..r r ",
" [.2 t.[.[.[.[.[.f.y.8 y.* B.9.W S F F F F F F ) ) N 1.R R x.b.= 3.m m ..m ..s. ",
" 7 [.2 [.2 [.[.[.[.[.f.=.=.=.o.e.F F F F F F F F ) ) ).N R x.b.T 3.3. .m ..r H m.H ",
" 2 [.[.[.[.[.[.[.[.f.%.=.=.$.B.:.o W F F F F F F k q N r.] R b.d T , . .r ....s.n ",
" y 2 2 [.[.[.[.[.%.f.%.=.=.B.$.:.'.v.F F F F F F t k ) N ] 6 x.d T 3... .H r H m.< ",
" 2 [.[.[.[.[.[.%.y.%.=.E / 7.7.p.p.v.F F F F F F q d.t @.r.R v T O . .....f r X n ",
" y 2 2 [.[.[.[.%.=.%.=.B.B.x B.:.| v.F F F F F F k d.d.c $ {.6 T d O .r r f f m.(. ",
" 2 [.[.[.[.[.%.%.%./ E / 3 7.i '.2.v.F F F F F F A.A.t @.r.] b.: /. .s.H H H m.5 ;. ",
" J 2 [.[.[.[.f.%.8 / E 8 3 i i :.p.v.F F F F F F k A.d.~.$ B 6 : : /.s.H m.m.f (.(. ",
" [.[.[.%.[.%.%./ f.E / 3 3 B.i p.1 v.F F F F F F . A.I @.c {.{.: O s. .H H m.(.w.;. ",
" 7 [.[.%.f.%.%.E / V =.3 D D ^ '.1 v.F F F F F F #.A.I @.A i.9 : O s.s.H f m.(.(.w. ",
" [.[.[.[.%.%.E E E / 3 3 7.i i c.2.v.F F F F F F . . A.~.c B {.M /.X H H (.(.(.w.;. ",
" [.%.%./ %.f./ V 3 3 D D c.c.<.Y v.F F F F F F #.A.A.~.A B 4.9 /.X ; < f f (.(. ",
" %.f.E %./ k.k./ V }.}.D D c.'.1 [ F F F F F F . . } I c >.i.M q.; H < (.(.(.5 ",
" J f.k.E E E / / 3 V 3 D b z 1 x.v.F F F F F F #.. A.} c B 4.M /.X < (.(.(.(.(. ",
" %.%.%.E / V }.V D j.z z c.C 1 [ F F F F F F . A.} ~.A h.4.4.q.; w.(.(.(.5 ",
" 7 k./ V / V D }.j.j.^ z z <.x.[ F F F F F F . . . _.A h.4.% q.; 5 w.w.(.(. ",
" / k./ V }.}.j.j.j.b z C C R l.F F F F F F . } I ~.A >.e M 5 5 (.(.(.5 ",
" 7 V 3 V V V }.j.].].g.= C <.s F F F F F F # w } n.A >.e 4.X 5 < (.w.(. ",
" / k.}.}.j.j.j.j.g.z = a.p u.F F F F F F j _ _ - - n e 8.5 5 w.w.5 ",
" V V j.j.j.].].].z = F F F F F F F F F F F F n.;.n e % X 5 (.(. ",
" j.V j.j.j.].-.-.<.a.a.s [ l.G G _ _ _ ^.^.- h.e % 8.5 < 5 ",
" 5.].g j.]., , d T b.{.{.c A ~._.} } _.n.;.;.e % % 5 5 ",
" 5.j.].g g.-.-.d : v i.> A A ~._.- - - >.e e % 5 % ",
" g g.g -., 3.d : v v i.B h.A n.h.;.;.;.n % 8.% ",
" -.,. .-.3.T : 4.{.>.>.>.>.;.>.n % % % ",
" 3.-.3.3.O M 4.4.i.n e n e e e ",
" : : : /.4.% e n ;. ",
" ",
" "};

View File

@@ -1,216 +0,0 @@
/* XPM */
static char * question_xpm[] = {
"48 48 165 2",
" c None",
". c #000000",
"+ c #080808",
"@ c #2A2A2A",
"# c #434343",
"$ c #545454",
"% c #626262",
"& c #6A6A6A",
"* c #6E6E6E",
"= c #424242",
"- c #525252",
"; c #898989",
"> c #DCDCDC",
", c #E5E5E5",
"' c #EDEDED",
") c #F4F4F4",
"! c #F9F9F9",
"~ c #FCFCFC",
"{ c #FFFFFF",
"] c #888888",
"^ c #4F4F4F",
"/ c #050505",
"( c #0F0F0F",
"_ c #9C9C9C",
": c #E6E6E6",
"< c #9B9B9B",
"[ c #1F1F1F",
"} c #A1A1A1",
"| c #E3E3E3",
"1 c #4D4D4D",
"2 c #D6D6D6",
"3 c #ECECEC",
"4 c #D9D9D9",
"5 c #C6C6C6",
"6 c #B0B0B0",
"7 c #848484",
"8 c #D3D3D3",
"9 c #010101",
"0 c #8B8B8B",
"a c #F2F2F2",
"b c #F3F3F3",
"c c #A6A6A6",
"d c #5E5E5E",
"e c #2F2F2F",
"f c #272727",
"g c #202020",
"h c #4E4E4E",
"i c #8A8A8A",
"j c #0B0B0B",
"k c #B6B6B6",
"l c #5D5D5D",
"m c #131313",
"n c #9A9A9A",
"o c #C9C9C9",
"p c #878787",
"q c #0A0A0A",
"r c #373737",
"s c #DADADA",
"t c #B4B4B4",
"u c #B1B1B1",
"v c #030303",
"w c #767676",
"x c #FDFDFD",
"y c #FAFAFA",
"z c #383838",
"A c #F8F8F8",
"B c #AFAFAF",
"C c #070707",
"D c #818181",
"E c #555555",
"F c #BDBDBD",
"G c #7D7D7D",
"H c #3C3C3C",
"I c #F6F6F6",
"J c #535353",
"K c #242424",
"L c #ABABAB",
"M c #393939",
"N c #BBBBBB",
"O c #EAEAEA",
"P c #A3A3A3",
"Q c #4B4B4B",
"R c #616161",
"S c #CFCFCF",
"T c #060606",
"U c #EFEFEF",
"V c #B9B9B9",
"W c #303030",
"X c #161616",
"Y c #2C2C2C",
"Z c #C0C0C0",
"` c #2E2E2E",
" . c #858585",
".. c #E4E4E4",
"+. c #1C1C1C",
"@. c #D4D4D4",
"#. c #828282",
"$. c #C7C7C7",
"%. c #3A3A3A",
"&. c #090909",
"*. c #151515",
"=. c #8E8E8E",
"-. c #F7F7F7",
";. c #C4C4C4",
">. c #EBEBEB",
",. c #CECECE",
"'. c #3D3D3D",
"). c #676767",
"!. c #F1F1F1",
"~. c #FBFBFB",
"{. c #353535",
"]. c #212121",
"^. c #EEEEEE",
"/. c #444444",
"(. c #DEDEDE",
"_. c #020202",
":. c #6B6B6B",
"<. c #E1E1E1",
"[. c #575757",
"}. c #111111",
"|. c #939393",
"1. c #ADADAD",
"2. c #6C6C6C",
"3. c #929292",
"4. c #4A4A4A",
"5. c #1E1E1E",
"6. c #3B3B3B",
"7. c #A0A0A0",
"8. c #696969",
"9. c #FEFEFE",
"0. c #CBCBCB",
"a. c #F0F0F0",
"b. c #0E0E0E",
"c. c #DFDFDF",
"d. c #808080",
"e. c #D0D0D0",
"f. c #636363",
"g. c #323232",
"h. c #D2D2D2",
"i. c #333333",
"j. c #292929",
"k. c #484848",
"l. c #646464",
"m. c #F5F5F5",
"n. c #B2B2B2",
"o. c #494949",
"p. c #E2E2E2",
"q. c #3F3F3F",
"r. c #0D0D0D",
"s. c #E0E0E0",
"t. c #2D2D2D",
"u. c #3E3E3E",
"v. c #C8C8C8",
"w. c #D1D1D1",
"x. c #7C7C7C",
"y. c #141414",
"z. c #A4A4A4",
"A. c #C2C2C2",
"B. c #262626",
"C. c #191919",
"D. c #999999",
"E. c #0C0C0C",
"F. c #101010",
"G. c #787878",
"H. c #797979",
" ",
" ",
" ",
" ",
" ",
" ",
" . . . . . . . . . . . . . . . . ",
" . . . . + @ # $ % & * * & % $ = @ + . . . . ",
" . . . . - ; > , ' ) ! ~ { { ~ ! ) ' , > ] ^ . . . . ",
" . . / ( _ : { { { { { { { { { { { { { { { { { { : < ( / . . ",
" . . [ } | { { { { { { { { { { { { { { { { { { { { { { | } [ . . ",
" . . 1 2 { { { { { { { { 3 4 5 6 7 7 7 < 5 8 : ! { { { { { { 2 1 . . . ",
" . . 9 0 a { { { { { { { b c d e 9 9 9 f 9 9 9 g h i 4 { { { { { { a ; 9 . . ",
" . . j k { { { { { { { { ' l m 9 9 9 9 n o p 9 9 9 9 q r s { { { { { { { t q . . ",
" . . + u { { { { { { { { { # v 9 9 9 9 w x { y z 9 9 9 9 9 @ A { { { { { { { B C . . ",
" . . . D y { { { { { { { { { 9 9 9 9 9 j ' { { { E 9 9 9 9 9 9 F { { { { { { { y G . . . ",
" . . H I { { { { { { { { { { J 9 9 9 9 ^ { { { { K 9 9 9 9 9 9 L { { { { { { { { I M . . . ",
" . . . N { { { { { { { { { { { O P Q Q R S { { { } 9 9 9 9 9 9 T U { { { { { { { { { V . . . ",
" . . W ! { { { { { { { { { { { { { { { { { { A 6 X 9 9 9 9 9 Y Z { { { { { { { { { { ! ` . . ",
" . . .{ { { { { { { { { { { { { { { { { { ..7 ( 9 9 9 9 +.* @.{ { { { { { { { { { { { #.. . . ",
". . . $.{ { { { { { { { { { { { { { { { { < %.&.9 9 9 *.=.5 -.{ { { { { { { { { { { { { ;.. . . ",
". . . >.{ { { { { { { { { { { { { { { ,.'.+ . . . . ).!.~ { { { { { { { { { { { { { { { O . . . ",
". . . ~.{ { { { { { { { { { { { { { O {.. . . . . ].^.{ { { { { { { { { { { { { { { { { ~.. . . ",
". . . A { { { { { { { { { { { { { { k 9 9 9 9 9 9 /.{ { { { { { { { { { { { { { { { { { A . . . ",
". . . (.{ { { { { { { { { { { { { { 5 _.. . . . . q :.4 U U <.{ { { { { { { { { { { { { > . . . ",
". . . 6 { { { { { { { { { { { { { { { [.&.. . . . . . . . }.|.{ { { { { { { { { { { { { 1.. . . ",
". . . 2.{ { { { { { { { { { { { { { { a 3.4.5.9 9 9 5.6.).7.a { { { { { { { { { { { { { 8.. . . ",
" . . ( !.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.<.0.F F F 0.s a.9.9.9.9.9.9.9.9.9.9.9.9.9.9.!.b.. . . ",
" . . . D { { { { { { { { { { { { { { { { { U c.c.c.U { { { { { { { { { { { { { { { { d.. . . ",
" . . . ( 8 { { { { { { { { { { { { { { { e.f.g.g.g.f.;.{ { { { { { { { { { { { { { h.b.. . . ",
" . . . 4.) { { { { { { { { { { { { { ' i.9 9 9 9 9 j.' { { { { { { { { { { { { ) k.. . . ",
" . . . l.m.{ { { { { { { { { { { { n.. . . . . . . n.{ { { { { { { { { { { m.f.. . . . ",
" . . . o.p.{ { { { { { { { { { { F 9 9 9 9 9 9 9 5 { { { { { { { { { { p.k.. . . . ",
" . . . @ 0.{ { { { { { { { { { b q.. . . . . d { { { { { { { { { { b j.. . . . ",
" . . . r.7.{ { { { { { { { { { s.* = t.= < 3 { { { { { { { { { { A e . . . ",
" . . . . u._ >.y { { { { { { { { { { { { { { { { { { { { { { { { a - . . ",
" . . . . . W % v., { { { { { { { { { { { { { { , w.e.>.{ { { { { U x.T ",
" . . . . . y.f D z.A.4 >.-.x x -.>.4 A.z.d.B.C.C.Y i c h.{ { { ) D.. ",
" . . . . . . / &.E.( F.}.}.F.b.E.&./ . . . . . 9 T E.}.] 5 ' ) G.. ",
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . M H.H.. ",
" . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . ",
" ",
" ",
" ",
" ",
" ",
" "};

View File

@@ -1,202 +0,0 @@
/* XPM */
static char * warning_xpm[] = {
"48 48 151 2",
" c None",
". c #C70707",
"+ c #F80808",
"@ c #EA0808",
"# c #A50505",
"$ c #E10808",
"% c #F70808",
"& c #E85959",
"* c #F80909",
"= c #F90909",
"- c #CD0707",
"; c #EE0808",
"> c #F12B2B",
", c #F5F4F4",
"' c #DE5F5F",
") c #AE0606",
"! c #D2ACAC",
"~ c #FEFEFE",
"{ c #E5DFDF",
"] c #F91717",
"^ c #E30808",
"/ c #DC4C4C",
"( c #FCFCFC",
"_ c #D68585",
": c #DB0707",
"< c #F80C0C",
"[ c #DECDCD",
"} c #F6F5F5",
"| c #ED2B2B",
"1 c #F50808",
"2 c #D66D6D",
"3 c #FFFFFF",
"4 c #D2A9A9",
"5 c #BB0606",
"6 c #E70808",
"7 c #F11A1A",
"8 c #EDE9E9",
"9 c #E84646",
"0 c #D59696",
"a c #DDCCCC",
"b c #F90E0E",
"c c #CE0707",
"d c #EA3030",
"e c #F8F8F8",
"f c #383838",
"g c #000000",
"h c #555555",
"i c #DE6D6D",
"j c #B20606",
"k c #DAB9B9",
"l c #A9A9A9",
"m c #AAAAAA",
"n c #EAE6E6",
"o c #F81919",
"p c #F30808",
"q c #E05252",
"r c #D58D8D",
"s c #E00808",
"t c #F81111",
"u c #E1D5D5",
"v c #C6C6C6",
"w c #C7C7C7",
"x c #F22F2F",
"y c #CF7979",
"z c #D4B4B4",
"A c #F90A0A",
"B c #C60707",
"C c #EF0808",
"D c #EF2222",
"E c #EEEBEB",
"F c #E14E4E",
"G c #D69E9E",
"H c #E0D2D2",
"I c #F91111",
"J c #D40707",
"K c #E93A3A",
"L c #545454",
"M c #D97373",
"N c #C80707",
"O c #F80A0A",
"P c #DAC3C3",
"Q c #717171",
"R c #727272",
"S c #EFEDED",
"T c #F91F1F",
"U c #E45757",
"V c #CE9999",
"W c #E40808",
"X c #F81313",
"Y c #E3DADA",
"Z c #F9F9F9",
"` c #F13737",
" . c #F60808",
".. c #D37979",
"+. c #D8BDBD",
"@. c #F90B0B",
"#. c #C90707",
"$. c #F12424",
"%. c #F0EFEF",
"&. c #DB5656",
"*. c #D39F9F",
"=. c #1C1C1C",
"-. c #E7E0E0",
";. c #D50707",
">. c #F40808",
",. c #E93F3F",
"'. c #FBFBFB",
"). c #D77575",
"!. c #F90C0C",
"~. c #D9C5C5",
"{. c #F1EEEE",
"]. c #F42121",
"^. c #E60808",
"/. c #F90808",
"(. c #DC5F5F",
"_. c #E2E2E2",
":. c #D19D9D",
"<. c #F91616",
"[. c #E9E3E3",
"}. c #FAFAFA",
"|. c #E33D3D",
"1. c #D58383",
"2. c #8D8D8D",
"3. c #E3E3E3",
"4. c #D9C0C0",
"5. c #F70909",
"6. c #F02C2C",
"7. c #DA5D5D",
"8. c #BC0606",
"9. c #D0A9A9",
"0. c #E8DFDF",
"a. c #F51414",
"b. c #DF0808",
"c. c #E34646",
"d. c #FDFDFD",
"e. c #393939",
"f. c #D57E7E",
"g. c #F80B0B",
"h. c #DDCDCD",
"i. c #F4F3F3",
"j. c #F12626",
"k. c #ED0808",
"l. c #E35D5D",
"m. c #EBE9E9",
"n. c #ECEAEA",
"o. c #D99292",
"p. c #A10505",
"q. c #F80E0E",
"r. c #F80D0D",
"s. c #F90F0F",
"t. c #F20808",
" ",
" ",
" ",
" ",
" ",
" ",
" . + @ ",
" + + + # ",
" $ + + + % ",
" + % & * = - ",
" ; % > , ' = = ",
" ) + + ! ~ { ] = ^ ",
" + + / ( ~ ~ _ * = ",
" : + < [ ~ ~ ~ } | = 1 ",
" + % 2 ~ ~ ~ ~ 3 4 = = 5 ",
" 6 + 7 8 ~ ~ ~ ~ 3 3 9 = = ",
" + % 0 ~ ~ ~ ~ ~ 3 3 a b = c ",
" % % d e ~ f g g g h 3 3 i = = ",
" j + * k ~ l g g g g g m 3 n o = p ",
" + + q ~ ~ l g g g g g m 3 3 r = = ",
" s + t u ~ ~ v g g g g g w 3 3 e x = = ",
" + + y ~ ~ ~ ~ g g g g g 3 3 3 3 z A = B ",
" C + D E ~ ~ ~ ~ g g g g g 3 3 3 3 ~ F = % ",
" + % G ~ ~ ~ ~ ~ f g g g h 3 3 3 3 3 H I = J ",
" + % K ( ~ ~ ~ ~ ~ L g g g h 3 3 3 3 3 3 M = = ",
" N + O P ~ ~ ~ ~ ~ ~ Q g g g R 3 3 3 3 3 3 S T = @ ",
" = % U ~ ~ ~ ~ ~ ~ ~ l g g g m 3 3 3 3 3 3 3 V * = ",
" W = X Y ~ ~ ~ ~ ~ ~ ~ l g g g m 3 3 3 3 3 3 3 Z ` = . ",
" = = ..~ ~ ~ ~ ~ ~ ~ ~ ~ g g g 3 3 3 3 3 3 3 3 3 +.@.= #. ",
" .= $.%.~ ~ ~ ~ ~ ~ ~ ~ ~ g g g 3 3 3 3 3 3 3 3 3 3 &.= = ",
" = * *.~ ~ ~ ~ ~ ~ ~ ~ ~ ~ =.g f 3 3 3 3 3 3 3 3 3 3 -.I = ;. ",
" >.= ,.'.~ ~ ~ ~ ~ ~ ~ ~ ~ ~ L g L 3 3 3 3 3 3 3 3 3 3 3 ).= = ",
" N = !.~.3 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ v l v 3 3 3 3 3 3 3 3 3 3 3 {.].= ^. ",
" /.= (.3 3 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ v l _.3 3 3 3 3 3 3 3 3 3 3 3 :.= = ",
" : + <.[.3 3 ~ ~ ~ ~ ~ ~ ~ ~ ~ L g g g m 3 3 3 3 3 3 3 3 3 3 3 }.|.= = ",
" = + 1.3 3 3 ~ ~ ~ ~ ~ ~ ~ ~ 2.g g g g g 3.3 3 3 3 3 3 3 3 3 3 3 4.A = - ",
" p 5.6.} 3 3 3 ~ ~ ~ ~ ~ ~ ~ ~ L g g g g g m 3 3 3 3 3 3 3 3 3 3 3 3 7.= = ",
" 8.+ * 9.3 3 3 3 ~ ~ ~ ~ ~ ~ ~ ~ Q g g g g g w 3 3 3 3 3 3 3 3 3 3 3 3 0.a.= b. ",
" % % c.d.3 3 3 3 ~ ~ ~ ~ ~ ~ ~ ~ _.=.g g g e.3 3 3 3 3 3 3 3 3 3 3 3 3 3 f.= = ",
" - * g.h.~ 3 3 3 3 ~ ~ ~ ~ ~ ~ ~ ~ ~ _.Q L Q 3.3 3 3 3 3 3 3 3 3 3 3 3 3 3 i.j.= k. ",
" = = l.m.m.n.n.n.n.m.m.m.m.m.m.m.m.m.m.m.m.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.o.* = p. ",
" ^.* + g.q.r.b s.b s.r.< r.< r.r.< r.< r.< r.r.b s.b s.s.b s.b s.s.b s.b s.s.b b A = = ",
" t.= * + * + = = = = + + + + + + + + + + + + + = = = = = = = = = = = = = = = = = = = = ",
" ",
" ",
" ",
" ",
" "};

View File

@@ -1,42 +0,0 @@
/* XPM */
static char *new_dir_xpm[] = {
/* columns rows colors chars-per-pixel */
"20 20 16 1",
" c Gray0",
". c #800000",
"X c #008000",
"o c #808000",
"O c #000080",
"+ c #800080",
"@ c #008080",
"# c None",
"$ c #808080",
"% c Red",
"& c Green",
"* c Yellow",
"= c Blue",
"- c Magenta",
"; c Cyan",
": c Gray100",
/* pixels */
"####################",
"####################",
"############# ######",
"####################",
"############# ######",
"########## ##### ###",
"##### ## # # ####",
"#### *:*: ## # #####",
"### ## # ##",
"### :*:*:*:*: #####",
"### *:*:*:*:* # ####",
"### :*:*:*:*: ## ###",
"### *:*:*:*:* ######",
"### :*:*:*:*: ######",
"### *:*:*:*:* ######",
"### ######",
"####################",
"####################",
"####################",
"####################"
};

View File

@@ -1,26 +0,0 @@
/* XPM */
static char *print_xpm[] = {
/* columns rows colors chars-per-pixel */
"16 15 5 1",
" c None",
". c Black",
"X c Gray100",
"o c #808000",
"O c Yellow",
/* pixels */
" ",
" ......... ",
" .XXXXXXXX. ",
" .X.....X. ",
" .XXXXXXXX. ",
" .X.....X.... ",
" .XXXXXXXX. . .",
" .......... . ..",
". . . .",
"............. .",
". ooo . . ",
". OOO ... ",
"............. . ",
" . . . ",
" ........... "
};

View File

@@ -1,27 +0,0 @@
/* XPM */
static char * repview_xpm[] = {
"20 20 4 1",
" c None",
". c #000000",
"+ c #FFFFFF",
"@ c #000083",
" ",
" ",
" ................ ",
" .++++++++++++++. ",
" .++++++++++++++. ",
" .+++....+...+.+. ",
" .++++++++++++++. ",
" .+@@@@@@@@@@@.+. ",
" .++++++++++++++. ",
" .+@+....+...+.+. ",
" .++++++++++++++. ",
" .+@+....+...+.+. ",
" .++++++++++++++. ",
" .+@+....+...+.+. ",
" .++++++++++++++. ",
" .+@+....+...+.+. ",
" .++++++++++++++. ",
" ................ ",
" ",
" "};

View File

@@ -1,32 +0,0 @@
/* XPM */
static char *tick_xpm[] = {
/* columns rows colors chars-per-pixel */
"10 10 16 1",
" c Gray0",
". c #bf0000",
"X c #00bf00",
"o c #bfbf00",
"O c #0000bf",
"+ c #bf00bf",
"@ c #00bfbf",
"# c None",
"$ c #808080",
"% c Red",
"& c Green",
"* c Yellow",
"= c Blue",
"- c Magenta",
"; c Cyan",
": c Gray100",
/* pixels */
"##########",
"######## #",
"####### ",
"###### ",
"##### #",
" ## ##",
" ###",
"# ####",
"## #####",
"### ######"
};

View File

@@ -1,45 +0,0 @@
/* XPM */
static char *tipicon_xpm[] = {
/* columns rows colors chars-per-pixel */
"32 32 7 1",
" c Gray0",
". c Cyan",
"X c Yellow",
"o c #808080808080",
"O c #c0c0c0c0c0c0",
"+ c Gray100",
"@ c None",
/* pixels */
"@@@@@@@@@@@@ @@@@@@@@@@@@@@",
"@@@@@@@@@@ XXXXXX @@@@@@@@@@@@",
"@@@@@@@@@ XXXXXXXXXX @@@@@@@@@@@",
"@@@@@@@@@ XXXXXXXXXX @@@@@@@@@@@",
"@@@@@@@@ XXXXX XXXXX @@@@@@@@@@",
"@@@@@@@ XXXXXX XXXXXX @@@@@@@@@",
"@@@@@@@ XXXXXX XXXXXX @@@@@@@@@",
"@@@@@@@ XXXXXX XXXXXX @@@@@@@@@",
"@@@@@@@ XXXXXX XXXXXX @@@@@@@@@",
"@@@@@@@ XXXXXX XXXXXX @@@@@@@@@",
"@@@@@@@@ XXXXX XXXXX @@@@@@@@@",
"@@@@@@@@oXXXXXXXXXXXX @@@@@@@@@@",
"@@@@@@@o+ XXXX XXXX o@@@@@@@@@@",
"@@@@@@o++ XXXX XXXX +o@@@@@@@@@",
"@@@@@o++++ XXX XXX +++o@@@@@@@@",
"@@@@o++.+.+ XXXXXX .+..+o@@@@@@@",
"@@@o++++++++ XXXX +++++++o@@@@@@",
"@@ +..+.+.+. oooo +.+..+.+ @@@@@",
"@@@ ++++++++ OOOO +++++++ @@@@@@",
"@@@@ ++.+.+. oooo +.+..+ @@@@@@@",
"@@@oo ++++++ OO +++++ oo@@@@@@",
"@@@ooo ++.+.+ ++.++ ooo@@@@@@",
"@@@@ooo +.+.+ ++.+ ooo@@@@@@@",
"@@@@@ooo +++++++++++ ooo@@@@@@@@",
"@@@@@@ooo +.+.+.+.+ ooo@@@@@@@@@",
"@@@@@@@ooo +++++++ ooo@@@@@@@@@@",
"@@@@@@@@ooo +.+.+ ooo@@@@@@@@@@@",
"@@@@@@@@@ooo +++ ooo@@@@@@@@@@@@",
"@@@@@@@@@@ooo + ooo@@@@@@@@@@@@@",
"@@@@@@@@@@@ooo ooo@@@@@@@@@@@@@@",
"@@@@@@@@@@@@ooooo@@@@@@@@@@@@@@@",
"@@@@@@@@@@@@@ooo@@@@@@@@@@@@@@@@"
};

View File

@@ -1,24 +0,0 @@
/* XPM */
static char * toparent_xpm[] = {
"16 16 5 1",
" c None",
". c #000000",
"+ c #C0E4CB",
"@ c #808080",
"# c #77C490",
" ",
" ",
" . ",
" .+.@ ",
" .+++.@ ",
" .++##+.@ ",
" .++####+.@ ",
" ....+##....@ ",
" .+##.@@@@@ ",
" .+##...... ",
" .+#######.@ ",
" .+#######.@ ",
" .+#######.@ ",
" ..........@ ",
" ",
" "};

View File

@@ -1,24 +0,0 @@
/* XPM */
static char * up_xpm[] = {
"16 16 5 1",
" c None",
". c #000000",
"+ c #C0E4CB",
"@ c #808080",
"# c #77C490",
" ",
" . ",
" .+.@ ",
" .+++.@ ",
" .++##+.@ ",
" .++####+.@ ",
" ....+##....@ ",
" .+##.@@@@@ ",
" .+##.@ ",
" .+##.@ ",
" .+##.@ ",
" .+##.@ ",
" .+##.@ ",
" .....@ ",
" ",
" "};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,25 +0,0 @@
/* XPM */
static char *wxwin16x16_xpm[] = {
"16 16 6 1",
" c None",
". c #000000",
"X c #000084",
"o c #FFFFFF",
"O c #FFFF00",
"+ c #FF0000",
" ",
" ",
" ",
" ....... ",
" .XXXXX. ",
" .oXXXX. ",
" .oXXX.......",
".....oXXX.OOOOO.",
".+++.XXXX.oOOOO.",
".o++......oOOOO.",
".o++++. .oOOOO.",
".o++++. .OOOOO.",
".+++++. .......",
"....... ",
" ",
" "};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,41 +0,0 @@
/* XPM */
static char *wxwin32x32_xpm[] = {
"32 32 6 1",
" c None",
". c #000000",
"X c #000084",
"o c #FFFFFF",
"O c #FFFF00",
"+ c #FF0000",
" ",
" ",
" ",
" ",
" ",
" .............. ",
" .XXXXXXXXXXXX. ",
" .XXXXXXXXXXXX. ",
" .XooXXXXXXXXX. ",
" .XooXXXXXXXXX. ",
" .XooXXXXXXXXX. ",
" .XooXXXXXX..............",
" .XooXXXXXX.OOOOOOOOOOOO.",
".........XooXXXXXX.OOOOOOOOOOOO.",
".+++++++.XooXXXXXX.OooOOOOOOOOO.",
".+++++++.XooXXXXXX.OooOOOOOOOOO.",
".+oo++++.XXXXXXXXX.OooOOOOOOOOO.",
".+oo++++.XXXXXXXXX.OooOOOOOOOOO.",
".+oo++++...........OooOOOOOOOOO.",
".+oo+++++++++. .OooOOOOOOOOO.",
".+oo+++++++++. .OooOOOOOOOOO.",
".+oo+++++++++. .OooOOOOOOOOO.",
".+oo+++++++++. .OOOOOOOOOOOO.",
".+oo+++++++++. .OOOOOOOOOOOO.",
".++++++++++++. ..............",
".++++++++++++. ",
".............. ",
" ",
" ",
" ",
" ",
" "};

View File

@@ -1,2 +0,0 @@
#!/bin/sh
autoconf

1400
config.guess vendored

File diff suppressed because it is too large Load Diff

1411
config.sub vendored

File diff suppressed because it is too large Load Diff

23139
configure vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +0,0 @@
#
# Makefile : Builds wxWindows utils for Unix.
#
all:
cd src; $(MAKE)
clean:
cd src; $(MAKE) clean
cd samples; $(MAKE) clean
cd utils; $(MAKE) clean
samples:
cd samples; $(MAKE)

1063
contrib/configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,99 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_REVISION($Id$)dnl
AC_INIT(Makefile.in)
dnl we need the values the main configure determined for us, so refuse
dnl to run if we don't have them
if test "x$wx_cv_path_ifs" = "x"; then
AC_MSG_ERROR([Please run configure from the top level directory.])
fi
dnl ---------------
dnl MMedia specific
dnl ---------------
dnl Check for ESD
ESD_LINK=
AC_CHECK_HEADER(esd.h, [
AC_CHECK_LIB(esd, esd_close, [
ESD_LINK="-lesd"
])
])
if test "$ESD_LINK" != "" ; then
echo "ESound detected"
fi
dnl -----------
dnl Final subst
PATH_IFS=$wx_cv_path_ifs
WX_TARGET_LIBRARY=$wx_cv_target_library
WX_TARGET_LIBRARY_TYPE=$wx_cv_target_libtype
WX_LIBRARY_BASENAME=$wx_cv_library_basename
WX_RELEASE=$wx_cv_release
WX_CURRENT=$wx_cv_current
WX_REVISION=$wx_cv_revision
WX_AGE=$wx_cv_age
AC_SUBST(PATH_IFS)
AC_SUBST(ESD_LINK)
AC_SUBST(WX_TARGET_LIBRARY)
AC_SUBST(WX_TARGET_LIBRARY_TYPE)
AC_SUBST(WX_LIBRARY_BASENAME)
AC_SUBST(WX_RELEASE)
AC_SUBST(WX_CURRENT)
AC_SUBST(WX_REVISION)
AC_SUBST(WX_AGE)
dnl -----------
dnl File output
AC_OUTPUT([
src/Makefile
src/deprecated/Makefile
src/ogl/Makefile
src/mmedia/Makefile
src/stc/Makefile
src/svg/Makefile
src/xrc/Makefile
src/gizmos/Makefile
src/plot/Makefile
src/applet/Makefile
src/fl/Makefile
src/net/Makefile
samples/Makefile
samples/deprecated/Makefile
samples/deprecated/proplist/Makefile
samples/deprecated/resource/Makefile
samples/deprecated/treelay/Makefile
samples/mmedia/Makefile
samples/ogl/Makefile
samples/ogl/ogledit/Makefile
samples/ogl/studio/Makefile
samples/stc/Makefile
samples/svg/Makefile
samples/gizmos/Makefile
samples/gizmos/editlbox/Makefile
samples/gizmos/dynsash/Makefile
samples/gizmos/dynsash_switch/Makefile
samples/gizmos/multicell/Makefile
samples/gizmos/splittree/Makefile
samples/gizmos/led/Makefile
samples/xrc/Makefile
samples/plot/Makefile
samples/applet/Makefile
samples/fl/Makefile
samples/fl/fl_demo1/Makefile
samples/fl/fl_demo2/Makefile
samples/fl/fl_sample1/Makefile
samples/fl/fl_sample2/Makefile
samples/fl/fl_sample3/Makefile
utils/Makefile
utils/wxrc/Makefile
utils/wxrcedit/Makefile
utils/convertrc/Makefile
])

View File

@@ -1,15 +0,0 @@
\chapter{Classes by category}\label{classesbycat}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
A classification of deprecated wxWindows classes by category.
{\large {\bf Miscellaneous}}
\twocolwidtha{6cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxTreeLayout}{wxtreelayout}}{Tree layout algorithm}
\twocolitem{\helpref{wxExpr}{wxexpr}}{A class for parsing WXR (and other) data files}
\twocolitem{\helpref{wxExprDatabase}{wxexprdatabase}}{A class for storing parsed WXR (and other) data files}
\end{twocollist}

View File

@@ -1,35 +0,0 @@
\chapter{Alphabetical class reference}\label{classref}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
% NB: the files should be in alphabetic order of the classes documented in
% them and *not* in alphabetic order of the file names!
\input propbfva.tex
\input propblva.tex
\input propflva.tex
\input propifva.tex
\input propilva.tex
\input proplosv.tex
\input property.tex
\input propford.tex
\input propforf.tex
\input propforp.tex
\input propforv.tex
\input propfovi.tex
\input proplisd.tex
\input proplisf.tex
\input proplisp.tex
\input propliva.tex
\input proplstv.tex
\input propsht.tex
\input propvald.tex
\input propregv.tex
\input propval.tex
\input propview.tex
\input proprfva.tex
\input proprlva.tex
\input propstfv.tex
\input propslv.tex
\input treelay.tex

View File

@@ -1,496 +0,0 @@
\section{\class{wxExpr}}\label{wxexpr}
The {\bf wxExpr} class is the building brick of expressions similar to Prolog
clauses, or objects. It can represent an expression of type long integer, float, string, word,
or list, and lists can be nested.
\wxheading{Derived from}
None
\wxheading{Include files}
<wx/wxexpr.h>
\wxheading{See also}
\helpref{wxExpr overview}{exproverview}, \helpref{wxExprDatabase}{wxexprdatabase}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxExpr::wxExpr}\label{wxexprconstr}
\func{}{wxExpr}{\param{const wxString\&}{functor}}
Construct a new clause with this form, supplying the functor name. A clause is an object
that will appear in the data file, with a list of attribute/value pairs.
\func{}{wxExpr}{\param{wxExprType}{ type}, \param{const wxString\&}{ wordOrString = ``"}}
Construct a new empty list, or a word (will be output with no quotes), or a string, depending on the
value of {\it type}.
{\it type} can be {\bf wxExprList}, {\bf wxExprWord}, or {\bf wxExprString}. If {\it type} is wxExprList,
the value of {\it wordOrString} will be ignored.
\func{}{wxExpr}{\param{long}{ value}}
Construct an integer expression.
\func{}{wxExpr}{\param{float}{ value}}
Construct a floating point expression.
\func{}{wxExpr}{\param{wxList* }{value}}
Construct a list expression. The list's nodes' data should
themselves be {\bf wxExpr}s.
wxExpr no longer uses the {\bf wxList} internally,
so this constructor turns the list into its internal
format (assuming a non-nested list) and then deletes the supplied
list.
\membersection{wxExpr::\destruct{wxExpr}}
\func{}{\destruct{wxExpr}}{\void}
Destructor.
\membersection{wxExpr::AddAttributeValue}\label{wxexpraddattributevalue}
Use these on clauses ONLY. Note that the functions for adding strings
and words must be differentiated by function name which is why
they are missing from this group (see \helpref{wxExpr::AddAttributeValueString}{wxexpraddattributevaluestring} and
\rtfsp\helpref{wxExpr::AddAttributeValueWord}{wxexpraddattributevalueword}).
\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{float }{value}}
Adds an attribute and floating point value pair to the clause.
\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{long }{value}}
Adds an attribute and long integer value pair to the clause.
\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxList* }{value}}
Adds an attribute and list value pair to the clause, converting the list into
internal form and then deleting {\bf value}. Note that the list should not contain
nested lists (except if in internal {\bf wxExpr} form.)
\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxExpr* }{value}}
Adds an attribute and wxExpr value pair to the clause. Do not delete\rtfsp
{\it value} once this function has been called.
\membersection{wxExpr::AddAttributeValueString}\label{wxexpraddattributevaluestring}
\func{void}{AddAttributeValueString}{\param{const wxString\&}{ attribute}, \param{const wxString\&}{ value}}
Adds an attribute and string value pair to the clause.
\membersection{wxExpr::AddAttributeValueStringList}\label{wxexpraddattributevaluestringlist}
\func{void}{AddAttributeValueStringList}{\param{const wxString\&}{ attribute}, \param{wxList* }{value}}
Adds an attribute and string list value pair to the clause.
Note that the list passed to this function is a list of strings, NOT a list
of {\bf wxExpr}s; it gets turned into a list of {\bf wxExpr}s
automatically. This is a convenience function, since lists of strings
are often manipulated in C++.
\membersection{wxExpr::AddAttributeValueWord}\label{wxexpraddattributevalueword}
\func{void}{AddAttributeValueWord}{\param{const wxString\&}{ attribute}, \param{const wxString\&}{ value}}
Adds an attribute and word value pair to the clause.
\membersection{wxExpr::Append}\label{wxexprappend}
\func{void}{Append}{\param{wxExpr*}{ value}}
Append the {\bf value} to the end of the list. `this' must be a list.
\membersection{wxExpr::Arg}\label{wxexprarg}
\constfunc{wxExpr* }{Arg}{\param{wxExprType}{ type}, \param{int}{ n}}
Get nth arg of the given clause (starting from 1). NULL is returned if
the expression is not a clause, or {\it n} is invalid, or the given type
does not match the actual type. See also \helpref{wxExpr::Nth}{wxexprnth}.
\membersection{wxExpr::Insert}\label{wxexprinsert}
\func{void}{Insert}{\param{wxExpr* }{value}}
Insert the {\bf value} at the start of the list. `this' must be a list.
\membersection{wxExpr::GetAttributeValue}\label{wxexprgetattributevalue}
These functions are the easiest way to retrieve attribute values, by
passing a pointer to variable. If the attribute is present, the
variable will be filled with the appropriate value. If not, the
existing value is left alone. This style of retrieving attributes
makes it easy to set variables to default values before calling these
functions; no code is necessary to check whether the attribute is
present or not.
\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxString\&}{ value}}
Retrieve a string (or word) value.
\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{float\& }{value}}
Retrieve a floating point value.
\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{int\& }{value}}
Retrieve an integer value.
\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{long\& }{value}}
Retrieve a long integer value.
\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxExpr**}{ value}}
Retrieve a wxExpr pointer.
\membersection{wxExpr::GetAttributeValueStringList}\label{wxexprgetattributestringlist}
\constfunc{void}{GetAttributeValueStringList}{\param{const wxString\&}{attribute}, \param{wxList* }{value}}
Use this on clauses ONLY. See above for comments on this style of
attribute value retrieval. This function expects to receive a pointer to
a new list (created by the calling application); it will append strings
to the list if the attribute is present in the clause.
\membersection{wxExpr::AttributeValue}\label{wxexprattributevalue}
\constfunc{wxExpr*}{AttributeValue}{\param{const wxString\&}{ word}}
Use this on clauses ONLY. Searches the clause for an attribute
matching {\it word}, and returns the value associated with it.
\membersection{wxExpr::Copy}\label{wxexprcopy}
\constfunc{wxExpr*}{Copy}{\void}
Recursively copies the expression, allocating new storage space.
\membersection{wxExpr::DeleteAttributeValue}\label{wxexprdeletattributevalue}
\func{void}{DeleteAttributeValue}{\param{const wxString\&}{ attribute}}
Use this on clauses only. Deletes the attribute and its value (if any) from the
clause.
\membersection{wxExpr::Functor}\label{wxexprfunctor}
\constfunc{wxString}{Functor}{\void}
Use this on clauses only. Returns the clause's functor (object name).
\membersection{wxExpr::GetClientData}\label{wxexprgetclientdata}
\constfunc{wxObject*}{GetClientData}{\void}
Retrieve arbitrary data stored with this clause. This can be useful when
reading in data for storing a pointer to the C++ object, so when another
clause makes a reference to this clause, its C++ object can be retrieved.
See \helpref{wxExpr::SetClientData}{wxexprsetclientdata}.
\membersection{wxExpr::GetFirst}\label{wxexprgetfirst}
\constfunc{wxExpr*}{GetFirst}{\void}
If this is a list expression (or clause), gets the first element in the list.
See also \helpref{wxExpr::GetLast}{wxexprgetlast}, \helpref{wxExpr::GetNext}{wxexprgetnext}, \helpref{wxExpr::Nth}{wxexprnth}.
\membersection{wxExpr::GetLast}\label{wxexprgetlast}
\constfunc{wxExpr*}{GetLast}{\void}
If this is a list expression (or clause), gets the last element in the list.
See also \helpref{wxExpr::GetFirst}{wxexprgetfirst}, \helpref{wxExpr::GetNext}{wxexprgetnext}, \helpref{wxExpr::Nth}{wxexprnth}.
\membersection{wxExpr::GetNext}\label{wxexprgetnext}
\constfunc{wxExpr*}{GetNext}{\void}
If this is a node in a list (any wxExpr may be a node in a list), gets the
next element in the list.
See also \helpref{wxExpr::GetFirst}{wxexprgetfirst}, \helpref{wxExpr::GetLast}{wxexprgetlast}, \helpref{wxExpr::Nth}{wxexprnth}.
\membersection{wxExpr::IntegerValue}\label{wxexprintegervalue}
\constfunc{long}{IntegerValue}{\void}
Returns the integer value of the expression.
\membersection{wxExpr::Nth}\label{wxexprnth}
\constfunc{wxExpr*}{Nth}{\param{int}{ n}}
Get nth arg of the given list expression (starting from 0). NULL is returned if
the expression is not a list expression, or {\it n} is invalid. See also \helpref{wxExpr::Arg}{wxexprarg}.
Normally, you would use attribute-value pairs to add and retrieve data
from objects (clauses) in a data file. However, if the data gets complex,
you may need to store attribute values as lists, and pick them apart
yourself.
\membersection{wxExpr::RealValue}\label{wxexprrealvalue}
\constfunc{float}{RealValue}{\void}
Returns the floating point value of the expression.
\membersection{wxExpr::SetClientData}\label{wxexprsetclientdata}
\func{void}{SetClientData}{\param{wxObject *}{data}}
Associate arbitrary data with this clause. This can be useful when
reading in data for storing a pointer to the C++ object, so when another
clause makes a reference to this clause, its C++ object can be retrieved.
See \helpref{wxExpr::GetClientData}{wxexprgetclientdata}.
\membersection{wxExpr::StringValue}\label{wxexprstringvalue}
\constfunc{wxString}{StringValue}{\void}
Returns the string value of the expression.
\membersection{wxExpr::Type}\label{wxexprtype}
\constfunc{wxExprType}{Type}{\void}
Returns the type of the expression. {\bf wxExprType} is defined as follows:
\begin{verbatim}
typedef enum {
wxExprNull,
wxExprInteger,
wxExprReal,
wxExprWord,
wxExprString,
wxExprList
} wxExprType;
\end{verbatim}
\membersection{wxExpr::WordValue}\label{wxexprwordvalue}
\constfunc{wxString}{WordValue}{\void}
Returns the word value of the expression.
\membersection{wxExpr::WriteClause}\label{wxexprwriteprologclause}
\func{void}{WriteClause}{\param{FILE *}{ stream}}
Writes the clause to the given stream in Prolog format. Not normally needed, since
the whole {\bf wxExprDatabase} will usually be written at once. The format is:
functor, open parenthesis, list of comma-separated expressions, close parenthesis,
full stop.
\membersection{wxExpr::WriteExpr}\label{wxexprwriteexpr}
\func{void}{WriteExpr}{\param{FILE *}{ stream}}
Writes the expression (not clause) to the given stream in Prolog
format. Not normally needed, since the whole {\bf wxExprDatabase} will
usually be written at once. Lists are written in square bracketed,
comma-delimited format.
\membersection{Functions and macros}
Below are miscellaneous functions and macros associated with wxExpr objects.
\func{bool}{wxExprIsFunctor}{\param{wxExpr *}{expr}, \param{const wxString\&}{ functor}}
Checks that the functor of {\it expr} is {\it functor}.
\func{void}{wxExprCleanUp}{\void}
Cleans up the wxExpr system (YACC/LEX buffers) to avoid memory-checking warnings as the program exits.
\begin{verbatim}
#define wxMakeInteger(x) (new wxExpr((long)x))
#define wxMakeReal(x) (new wxExpr((float)x))
#define wxMakeString(x) (new wxExpr(PrologString, x))
#define wxMakeWord(x) (new wxExpr(PrologWord, x))
#define wxMake(x) (new wxExpr(x))
\end{verbatim}
Macros to help make wxExpr objects.
\section{\class{wxExprDatabase}}\label{wxexprdatabase}
The {\bf wxExprDatabase} class represents a database, or list,
of Prolog-like expressions. Instances of this class are used for reading,
writing and creating data files.
\wxheading{Derived from}
\helpref{wxList}{wxlist}\\
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxExpr overview}{exproverview}, \helpref{wxExpr}{wxexpr}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxExprDatabase::wxExprDatabase}\label{wxexprdatabaseconstr}
\func{void}{wxExprDatabase}{\param{proioErrorHandler}{ handler = 0}}
Construct a new, unhashed database, with an optional error handler. The
error handler must be a function returning a bool and taking an integer and a string
argument. When an error occurs when reading or writing a database, this function is
called. The error is given as the first argument (currently one of WXEXPR\_ERROR\_GENERAL,
WXEXPR\_ERROR\_SYNTAX) and an error message is given as the second argument. If false
is returned by the error handler, processing of the wxExpr operation stops.
Another way of handling errors is simply to call \helpref{wxExprDatabase::GetErrorCount}{wxexprdatabasegeterrorcount} after
the operation, to check whether errors have occurred, instead of installing an error handler.
If the error count is more than zero, \helpref{wxExprDatabase::Write}{wxexprdatabasewrite} and
\rtfsp\helpref{wxExprDatabase::Read}{wxexprdatabaseread} will return false to
the application.
For example:
\begin{verbatim}
bool myErrorHandler(int err, chat *msg)
{
if (err == WXEXPR_ERROR_SYNTAX)
{
wxMessageBox(msg, "Syntax error");
}
return false;
}
wxExprDatabase database(myErrorHandler);
\end{verbatim}
\func{}{wxExprDatabase}{\param{wxExprType}{ type}, \param{const wxString\&}{attribute},
\rtfsp\param{int}{ size = 500}, \param{proioErrorHandler}{ handler = 0}}
Construct a new database hashed on a combination of the clause functor and
a named attribute (often an integer identification).
See above for an explanation of the error handler.
\membersection{wxExprDatabase::\destruct{wxExprDatabase}}
\func{}{\destruct{wxExprDatabase}}{\void}
Delete the database and contents.
\membersection{wxExprDatabase::Append}\label{wxexprdatabaseappend}
\func{void}{Append}{\param{wxExpr* }{clause}}
Append a clause to the end of the database. If the database is hashing,
the functor and a user-specified attribute will be hashed upon, giving the
option of random access in addition to linear traversal of the database.
\membersection{wxExprDatabase::BeginFind}\label{wxexprdatabasebeginfind}
\func{void}{BeginFind}{\void}
Reset the current position to the start of the database. Subsequent
\rtfsp\helpref{wxExprDatabase::FindClause}{wxexprdatabasefindclause} calls will move the pointer.
\membersection{wxExprDatabase::ClearDatabase}\label{wxexprdatabasecleardatabase}
\func{void}{ClearDatabase}{\void}
Clears the contents of the database.
\membersection{wxExprDatabase::FindClause}\label{wxexprdatabasefindclause}
Various ways of retrieving clauses from the database. A return
value of NULL indicates no (more) clauses matching the given criteria.
Calling the functions repeatedly retrieves more matching clauses, if any.
\func{wxExpr* }{FindClause}{\param{long}{ id}}
Find a clause based on the special ``id'' attribute.
\func{wxExpr* }{FindClause}{\param{const wxString\&}{ attribute}, \param{const wxString\&}{ value}}
Find a clause which has the given attribute set to the given string or word value.
\func{wxExpr*}{FindClause}{\param{const wxString\&}{ attribute}, \param{long}{ value}}
Find a clause which has the given attribute set to the given integer value.
\func{wxExpr*}{FindClause}{\param{const wxString\&}{ attribute}, \param{float}{ value}}
Find a clause which has the given attribute set to the given floating point value.
\membersection{wxExprDatabase::FindClauseByFunctor}\label{wxexprdatabasefindclausebyfunctor}
\func{wxExpr*}{FindClauseByFunctor}{\param{const wxString\&}{ functor}}
Find the next clause with the specified functor.
\membersection{wxExprDatabase::GetErrorCount}\label{wxexprdatabasegeterrorcount}
\constfunc{int}{GetErrorCount}{\void}
Returns the number of errors encountered during the last read or write operation.
\membersection{wxExprDatabase::HashFind}\label{wxexprdatabasehashfind}
\constfunc{wxExpr*}{HashFind}{\param{const wxString\&}{ functor}, \param{long}{ value}}
Finds the clause with the given functor and with the attribute specified
in the database constructor having the given integer value.
For example,
\begin{verbatim}
// Hash on a combination of functor and integer "id" attribute when reading in
wxExprDatabase db(wxExprInteger, "id");
// Read it in
db.ReadProlog("data");
// Retrieve a clause with specified functor and id
wxExpr *clause = db.HashFind("node", 24);
\end{verbatim}
This would retrieve a clause which is written: {\tt node(id = 24, ..., )}.
\func{wxExpr*}{HashFind}{\param{const wxString\&}{ functor}, \param{const wxString\&}{ value}}
Finds the clause with the given functor and with the attribute specified
in the database constructor having the given string value.
\membersection{wxExprDatabase::Read}\label{wxexprdatabaseread}
\func{bool}{Read}{\param{const wxString\&}{ filename}}
Reads in the given file, returning true if successful.
\membersection{wxExprDatabase::ReadFromString}\label{wxexprdatabasereadfromstring}
\func{bool}{ReadFromString}{\param{const wxString\&}{ buffer}}
Reads a Prolog database from the given string buffer, returning true if
successful.
\membersection{wxExprDatabase::Write}\label{wxexprdatabasewrite}
\func{bool}{Write}{\param{FILE *}{stream}}
\func{bool}{Write}{\param{const wxString\&}{ filename}}
Writes the database as a Prolog-format file.

View File

@@ -1,361 +0,0 @@
\chapter{Functions}\label{functions}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}
Deprecated functions and macros defined in wxWindows are described here: you can
either look up a function using the alphabetical listing of them or find it in
the corresponding topic.
\section{Alphabetical functions and macros list}
%\helpref{wxGetResource}{wxgetresource}\\
%\helpref{wxLoadUserResource}{wxloaduserresource}\\
%\helpref{wxMakeMetafilePlaceable}{wxmakemetafileplaceable}\\
%\helpref{wxNewId}{wxnewid}\\
\helpref{wxLoadFromResource}{wxloadfromresource}\\
\helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}\\
\helpref{wxResourceClear}{wxresourceclear}\\
\helpref{wxResourceCreateBitmap}{wxresourcecreatebitmap}\\
\helpref{wxResourceCreateIcon}{wxresourcecreateicon}\\
\helpref{wxResourceCreateMenuBar}{wxresourcecreatemenubar}\\
\helpref{wxResourceGetIdentifier}{wxresourcegetidentifier}\\
\helpref{wxResourceParseData}{wxresourcedata}\\
\helpref{wxResourceParseFile}{wxresourceparsefile}\\
\helpref{wxResourceParseString}{wxresourceparsestring}\\
\helpref{wxResourceRegisterBitmapData}{registerbitmapdata}\\
\helpref{wxResourceRegisterIconData}{wxresourceregistericondata}\\
%\helpref{wxSetPrinterCommand}{wxsetprintercommand}\\
%\helpref{wxSetPrinterFile}{wxsetprinterfile}\\
%\helpref{wxSetPrinterMode}{wxsetprintermode}\\
%\helpref{wxSetPrinterOptions}{wxsetprinteroptions}\\
%\helpref{wxSetPrinterOrientation}{wxsetprinterorientation}\\
%\helpref{wxSetPrinterPreviewCommand}{wxsetprinterpreviewcommand}\\
%\helpref{wxSetPrinterScaling}{wxsetprinterscaling}\\
%\helpref{wxSetPrinterTranslation}{wxsetprintertranslation}\\
\section{Printer settings}\label{printersettings}
{\bf NB:} These routines are obsolete and should no longer be used!
The following functions are used to control PostScript printing. Under
Windows, PostScript output can only be sent to a file.
\wxheading{Include files}
<wx/dcps.h>
\membersection{::wxGetPrinterCommand}\label{wxgetprintercommand}
\func{wxString}{wxGetPrinterCommand}{\void}
Gets the printer command used to print a file. The default is {\tt lpr}.
\membersection{::wxGetPrinterFile}\label{wxgetprinterfile}
\func{wxString}{wxGetPrinterFile}{\void}
Gets the PostScript output filename.
\membersection{::wxGetPrinterMode}\label{wxgetprintermode}
\func{int}{wxGetPrinterMode}{\void}
Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
The default is PS\_PREVIEW.
\membersection{::wxGetPrinterOptions}\label{wxgetprinteroptions}
\func{wxString}{wxGetPrinterOptions}{\void}
Gets the additional options for the print command (e.g. specific printer). The default is nothing.
\membersection{::wxGetPrinterOrientation}\label{wxgetprinterorientation}
\func{int}{wxGetPrinterOrientation}{\void}
Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
\membersection{::wxGetPrinterPreviewCommand}\label{wxgetprinterpreviewcommand}
\func{wxString}{wxGetPrinterPreviewCommand}{\void}
Gets the command used to view a PostScript file. The default depends on the platform.
\membersection{::wxGetPrinterScaling}\label{wxgetprinterscaling}
\func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}}
Gets the scaling factor for PostScript output. The default is 1.0, 1.0.
\membersection{::wxGetPrinterTranslation}\label{wxgetprintertranslation}
\func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}}
Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
\membersection{::wxSetPrinterCommand}\label{wxsetprintercommand}
\func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}}
Sets the printer command used to print a file. The default is {\tt lpr}.
\membersection{::wxSetPrinterFile}\label{wxsetprinterfile}
\func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}}
Sets the PostScript output filename.
\membersection{::wxSetPrinterMode}\label{wxsetprintermode}
\func{void}{wxSetPrinterMode}{\param{int }{mode}}
Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
The default is PS\_PREVIEW.
\membersection{::wxSetPrinterOptions}\label{wxsetprinteroptions}
\func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}}
Sets the additional options for the print command (e.g. specific printer). The default is nothing.
\membersection{::wxSetPrinterOrientation}\label{wxsetprinterorientation}
\func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}}
Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
\membersection{::wxSetPrinterPreviewCommand}\label{wxsetprinterpreviewcommand}
\func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}}
Sets the command used to view a PostScript file. The default depends on the platform.
\membersection{::wxSetPrinterScaling}\label{wxsetprinterscaling}
\func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}}
Sets the scaling factor for PostScript output. The default is 1.0, 1.0.
\membersection{::wxSetPrinterTranslation}\label{wxsetprintertranslation}
\func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}}
Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
\section{Resource functions}\label{resourcefunctions}
\overview{Resource functions}{resourceformats}
This section details functions for manipulating wxWindows (.WXR) resource
files and loading user interface elements from resources.
\normalbox{Please note that this use of the word `resource' is different from that used when talking
about initialisation file resource reading and writing, using such functions
as wxWriteResource and wxGetResource. It is just an unfortunate clash of terminology.}
\helponly{For an overview of the wxWindows resource mechanism, see \helpref{the wxWindows resource system}{resourceformats}.}
See also \helpref{wxWindow::LoadFromResource}{wxwindowloadfromresource} for
loading from resource data.
\membersection{wxLoadFromResource}\label{wxloadfromresource}
\func{virtual bool}{LoadFromResource}{\param{wxWindow* thisWindow}, \param{wxWindow* }{parent},\rtfsp
\param{const wxString\& }{resourceName}, \param{const wxResourceTable* }{resourceTable = NULL}}
Loads a panel or dialog from a resource file.
\wxheading{Parameters}
\docparam{thisWindow}{Window to load the resource into.}
\docparam{parent}{Parent window.}
\docparam{resourceName}{The name of the resource to load.}
\docparam{resourceTable}{The resource table to load it from. If this is NULL, the
default resource table will be used.}
\wxheading{Return value}
{\tt true} if the operation succeeded, otherwise {\tt false}.
\membersection{::wxResourceAddIdentifier}\label{wxresourceaddidentifier}
\func{bool}{wxResourceAddIdentifier}{\param{const wxString\& }{name}, \param{int }{value}}
Used for associating a name with an integer identifier (equivalent to dynamically\rtfsp
{\tt\#}defining a name to an integer). Unlikely to be used by an application except
perhaps for implementing resource functionality for interpreted languages.
\membersection{::wxResourceClear}\label{wxresourceclear}
\func{void}{wxResourceClear}{\void}
Clears the wxWindows resource table.
\membersection{::wxResourceCreateBitmap}\label{wxresourcecreatebitmap}
\func{wxBitmap *}{wxResourceCreateBitmap}{\param{const wxString\& }{resource}}
Creates a new bitmap from a file, static data, or Windows resource, given a valid
wxWindows bitmap resource identifier. For example, if the .WXR file contains
the following:
\begin{verbatim}
static const wxString\& project_resource = "bitmap(name = 'project_resource',\
bitmap = ['project', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\
bitmap = ['project.xpm', wxBITMAP_TYPE_XPM, 'X']).";
\end{verbatim}
then this function can be called as follows:
\begin{verbatim}
wxBitmap *bitmap = wxResourceCreateBitmap("project_resource");
\end{verbatim}
\membersection{::wxResourceCreateIcon}\label{wxresourcecreateicon}
\func{wxIcon *}{wxResourceCreateIcon}{\param{const wxString\& }{resource}}
Creates a new icon from a file, static data, or Windows resource, given a valid
wxWindows icon resource identifier. For example, if the .WXR file contains
the following:
\begin{verbatim}
static const wxString\& project_resource = "icon(name = 'project_resource',\
icon = ['project', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\
icon = ['project', wxBITMAP_TYPE_XBM_DATA, 'X']).";
\end{verbatim}
then this function can be called as follows:
\begin{verbatim}
wxIcon *icon = wxResourceCreateIcon("project_resource");
\end{verbatim}
\membersection{::wxResourceCreateMenuBar}\label{wxresourcecreatemenubar}
\func{wxMenuBar *}{wxResourceCreateMenuBar}{\param{const wxString\& }{resource}}
Creates a new menu bar given a valid wxWindows menubar resource
identifier. For example, if the .WXR file contains the following:
\begin{verbatim}
static const wxString\& menuBar11 = "menu(name = 'menuBar11',\
menu = \
[\
['&File', 1, '', \
['&Open File', 2, 'Open a file'],\
['&Save File', 3, 'Save a file'],\
[],\
['E&xit', 4, 'Exit program']\
],\
['&Help', 5, '', \
['&About', 6, 'About this program']\
]\
]).";
\end{verbatim}
then this function can be called as follows:
\begin{verbatim}
wxMenuBar *menuBar = wxResourceCreateMenuBar("menuBar11");
\end{verbatim}
\membersection{::wxResourceGetIdentifier}\label{wxresourcegetidentifier}
\func{int}{wxResourceGetIdentifier}{\param{const wxString\& }{name}}
Used for retrieving the integer value associated with an identifier.
A zero value indicates that the identifier was not found.
See \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}.
\membersection{::wxResourceParseData}\label{wxresourcedata}
\func{bool}{wxResourceParseData}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
Parses a string containing one or more wxWindows resource objects. If
the resource objects are global static data that are included into the
C++ program, then this function must be called for each variable
containing the resource data, to make it known to wxWindows.
{\it resource} should contain data in the following form:
\begin{verbatim}
dialog(name = 'dialog1',
style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
title = 'Test dialog box',
x = 312, y = 234, width = 400, height = 300,
modal = 0,
control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
[11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
[11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
[11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
\end{verbatim}
This function will typically be used after including a {\tt .wxr} file into
a C++ program as follows:
\begin{verbatim}
#include "dialog1.wxr"
\end{verbatim}
Each of the contained resources will declare a new C++ variable, and each
of these variables should be passed to wxResourceParseData.
\membersection{::wxResourceParseFile}\label{wxresourceparsefile}
\func{bool}{wxResourceParseFile}{\param{const wxString\& }{filename}, \param{wxResourceTable *}{table = NULL}}
Parses a file containing one or more wxWindows resource objects
in C++-compatible syntax. Use this function to dynamically load
wxWindows resource data.
\membersection{::wxResourceParseString}\label{wxresourceparsestring}
\func{bool}{wxResourceParseString}{\param{char *}{s}, \param{wxResourceTable *}{table = NULL}}
Parses a string containing one or more wxWindows resource objects. If
the resource objects are global static data that are included into the
C++ program, then this function must be called for each variable
containing the resource data, to make it known to wxWindows.
{\it resource} should contain data with the following form:
\begin{verbatim}
dialog(name = 'dialog1',
style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
title = 'Test dialog box',
x = 312, y = 234, width = 400, height = 300,
modal = 0,
control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
[11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
[11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
[11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
\end{verbatim}
This function will typically be used after calling \helpref{wxLoadUserResource}{wxloaduserresource} to
load an entire {\tt .wxr file} into a string.
\membersection{::wxResourceRegisterBitmapData}\label{registerbitmapdata}
\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char *}{xbm\_data}, \param{int }{width},
\param{int }{height}, \param{wxResourceTable *}{table = NULL}}
\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char **}{xpm\_data}}
Makes {\tt\#}included XBM or XPM bitmap data known to the wxWindows resource system.
This is required if other resources will use the bitmap data, since otherwise there
is no connection between names used in resources, and the global bitmap data.
\membersection{::wxResourceRegisterIconData}\label{wxresourceregistericondata}
Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.

View File

@@ -1,649 +0,0 @@
\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{report}
% JACS: doesn't make it through Tex2RTF, sorry. I will put it into texhelp.sty
% since Tex2RTF doesn't parse it.
% BTW, style MUST be report for it to work for Tex2RTF.
%KB:
%\addtolength{\textwidth}{1in}
%\addtolength{\oddsidemargin}{-0.5in}
%\addtolength{\topmargin}{-0.5in}
%\addtolength{\textheight}{1in}
%\sloppy
%end of my changes
\newcommand{\indexit}[1]{#1\index{#1}}%
\newcommand{\pipe}[0]{$\|$\ }%
\definecolour{black}{0}{0}{0}%
\definecolour{cyan}{0}{255}{255}%
\definecolour{green}{0}{255}{0}%
\definecolour{magenta}{255}{0}{255}%
\definecolour{red}{255}{0}{0}%
\definecolour{blue}{0}{0}{200}%
\definecolour{yellow}{255}{255}{0}%
\definecolour{white}{255}{255}{255}%
%
\input psbox.tex
\input ltx.tex
% Remove this for processing with dvi2ps instead of dvips
%\special{!/@scaleunit 1 def}
\parskip=10pt
\parindent=0pt
\title{wxWindows Deprecated Classes}
\winhelponly{\author{by Julian Smart et al
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
}}
\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin,
Robin Dunn, et al}
\date{April 2003}
}
\makeindex
\begin{document}
\maketitle
\pagestyle{fancyplain}
\bibliographystyle{plain}
\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}}
\setfooter{\thepage}{}{}{}{}{\thepage}%
\pagenumbering{roman}
\tableofcontents
\chapter{Copyright notice}
\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
\begin{center}
Copyright (c) 1992-2002 Julian Smart, Robert Roebling, Vadim Zeitlin and other
members of the wxWindows team\\
Portions (c) 1996 Artificial Intelligence Applications Institute\\
\end{center}
Please also see the wxWindows license files (preamble.txt, lgpl.txt, gpl.txt, license.txt,
licendoc.txt) for conditions of software and documentation use.
\section*{wxWindows Library License, Version 3}
Copyright (c) 1992-2002 Julian Smart, Robert Roebling, Vadim Zeitlin et al.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
\begin{center}
WXWINDOWS LIBRARY LICENSE\\
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
\end{center}
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this software, usually in a file named COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA~02111-1307 USA.
EXCEPTION NOTICE
1. As a special exception, the copyright holders of this library give
permission for additional uses of the text contained in this release of
the library as licensed under the wxWindows Library License, applying
either version 3 of the License, or (at your option) any later version of
the License as published by the copyright holders of version 3 of the
License document.
2. The exception is that you may create binary object code versions of any
works using this library or based on this library, and use, copy, modify,
link and distribute such binary object code files unrestricted under terms
of your choice.
3. If you copy code from files distributed under the terms of the GNU
General Public License or the GNU Library General Public License into a
copy of this library, as this license permits, the exception does not
apply to the code that you add in this way. To avoid misleading anyone as
to the status of such modified files, you must delete this exception
notice from such code and/or adjust the licensing conditions notice
accordingly.
4. If you write modifications of your own for this library, it is your
choice whether to permit this exception to apply to your modifications.
If you do not wish that, you must delete the exception notice from such
code and/or adjust the licensing conditions notice accordingly.
\section*{GNU Library General Public License, Version 2}
Copyright (C) 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
\wxheading{Preamble}
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software -- to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
\begin{center}
GNU LIBRARY GENERAL PUBLIC LICENSE\\
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
\end{center}
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
\begin{indented}{1cm}
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
\end{indented}
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
\begin{indented}{1cm}
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
\end{indented}
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
\begin{indented}{1cm}
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
\end{indented}
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
\begin{center}
NO WARRANTY
\end{center}
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
\begin{center}
END OF TERMS AND CONDITIONS
\end{center}
\wxheading{Appendix: How to Apply These Terms to Your New Libraries}
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
\footnotesize{
\begin{verbatim}
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
\end{verbatim}
}
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
\footnotesize{
\begin{verbatim}
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
\end{verbatim}
}
That's all there is to it!
\chapter{Introduction}\label{introduction}
\pagenumbering{arabic}%
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
This manual contains documentation for classes that are
now obsolete.
\input classes.tex
\input function.tex
\input category.tex
\input topics.tex
\input proplist.tex
\newpage
% Note: In RTF, the \printindex must come before the
% change of header/footer, since the \printindex inserts
% the RTF \sect command which divides one chapter from
% the next.
\rtfonly{\printindex
\addcontentsline{toc}{chapter}{Index}
\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
\setfooter{\thepage}{}{}{}{}{\thepage}
}
% In Latex, it must be this way around (I think)
\latexonly{\addcontentsline{toc}{chapter}{Index}
\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
\setfooter{\thepage}{}{}{}{}{\thepage}
\printindex
}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -1,539 +0,0 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: prop1.eps
%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley
%%BoundingBox: 167 292 445 500
%%Pages: 1
%%DocumentFonts:
%%EndComments
%%EndProlog
%%Page: 1 1
% remember original state
/origstate save def
% build a temporary dictionary
20 dict begin
% lower left corner
167 292 translate
% size of image (on paper, in 1/72inch coords)
278 208 scale
% define 'colorimage' if it isn't defined
% ('colortogray' and 'mergeprocs' come from xwd2ps
% via xgrab)
/colorimage where % do we know about 'colorimage'?
{ pop } % yes: pop off the 'dict' returned
{ % no: define one
/colortogray { % define an RGB->I function
/rgbdata exch store % call input 'rgbdata'
rgbdata length 3 idiv
/npixls exch store
/rgbindx 0 store
/grays npixls string store % str to hold the result
0 1 npixls 1 sub {
grays exch
rgbdata rgbindx get 20 mul % Red
rgbdata rgbindx 1 add get 32 mul % Green
rgbdata rgbindx 2 add get 12 mul % Blue
add add 64 idiv % I = .5G + .31R + .18B
put
/rgbindx rgbindx 3 add store
} for
grays
} bind def
% Utility procedure for colorimage operator.
% This procedure takes two procedures off the
% stack and merges them into a single procedure.
/mergeprocs { % def
dup length
3 -1 roll
dup
length
dup
5 1 roll
3 -1 roll
add
array cvx
dup
3 -1 roll
0 exch
putinterval
dup
4 2 roll
putinterval
} bind def
/colorimage { % def
pop pop % remove 'false 3' operands
{colortogray} mergeprocs
image
} bind def
} ifelse % end of 'false' case
% define the colormap
/cmap 42 string def
% load up the colormap
currentfile cmap readhexstring
000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00
ffff00 0000ff 00ffff ffffff
pop pop % lose return values from readhexstring
% rlecmapimage expects to have 'w h bits matrix' on stack
/rlecmapimage {
/buffer 1 string def
/rgbval 3 string def
/block 384 string def
% proc to read a block from file, and return RGB data
{ currentfile buffer readhexstring pop
/bcount exch 0 get store
bcount 128 ge
{ % it's a non-run block
0 1 bcount 128 sub
{ currentfile buffer readhexstring pop pop
% look up value in color map
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
% and put it in position i*3 in block
block exch 3 mul rgbval putinterval
} for
block 0 bcount 127 sub 3 mul getinterval
}
{ % else it's a run block
currentfile buffer readhexstring pop pop
% look up value in colormap
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
0 1 bcount { block exch 3 mul rgbval putinterval } for
block 0 bcount 1 add 3 mul getinterval
} ifelse
} % end of proc
false 3 colorimage
} bind def
278 208 8 % dimensions of data
[278 0 0 -208 0 208] % mapping matrix
rlecmapimage
7f067f0614060000
81060d7f0d7f0d110d810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d068106047f047f040c040106810700
82060d068106048204060d820d060783070d0702010203098102047f047a040106810700
82060d068106048704060b060001020781070283020702098109028102047f0446040e0d
81000d0d0d81000481040d0d0d81000481040682060700
82060d0681060482040806810600820002078507020902070201028109047f044604810d
060b068307000d060b068207000482040d060b068207000481040682060700
82060d0681060481040685060800040307820702098409020702098109040104050d2d04
030d0204010d1a04050d6604810d060b068307000d06810600070001068207000482040d
060b068207000481040682060700
82060d068106048704060b0604000a0789070209020702070209040104010d0204010d1d
04010d0b04010d0104010d0104010d1204010d0704010d1004010d5504810d060b068307
000d06810600070001068207000482040d06010601000306010001068207000481040682
060700
82060d068106048204070681060001000107010286070209020702040104010d0204010d
1d04010d0b04010d0504010d1204010d0704010d1004010d5504810d060b068307000d06
820600060506810006830607000482040d06020601000106010002068207000481040682
060700
82060d0681060485040d0607060d010d8407020002090109820200040104010d0204010d
81040d010d0104030d0104040d0204030d0104020d81040d010d81040d820d040d810d04
0304010d0504040d0204030d0204030d0104020d0604010d0404030d0204020d0104020d
5404810d060b068307000d06820600060506810006830607000482040d06030603000306
8207000481040682060700
82060d068106048104070507010006020204050d0104010d0104010d0104010d81040d81
0d0481040d820d040d810d0481040d820d040d810d0481040d810d0481040d820d040d81
0d040404030d0204020d81040d820d040d810d0481040d820d040d810d0481040d820d04
0d810d040604010d0304010d0104010d81040d820d040d820d040d810d045404810d060b
068307000d06820600060506810006830607000482040d06040601000406820700048104
0682060700
82060d068106048104050505010006030204010d0504010d0104010d0104010d81040d81
0d0481040d820d040d040d81040d810d0481040d810d0481040d820d040d810d04070401
0d0104010d0104010d81040d040d81040d040d81040d810d040604010d0304050d010401
0d0204010d5504810d060b068307000d06820600060506810006830607000482040d0603
06030003068207000481040682060700
82060d0681060481040c010c8205080c830c05030a020a81030a810a040104010d050401
0d0104010d0104010d81040d810d0481040d820d040d810d040304010d0104010d010401
0d81040d810d040704010d0104010d0104010d81040d810d040304010d0404010d070401
0d0304010d0604010d0104010d5504810d060b068307000d068206000605068100068306
07000482040d06020601000106010002068207000481040682060700
82060d068106048c040c05070507050c05030a030a840a03000a040104010d0504010d01
04010d0104010d81040d810d0481040d820d040d810d0481040d820d040d810d0481040d
810d040104020d0504010d0104010d0104010d0104010d81040d810d0481040d820d040d
810d0481040d820d040d810d040604010d0304010d0104010d81040d820d040d820d040d
810d045404810d060106050003068307000d06820600060506810006830607000482040d
06010601000306010001068207000481040682060700
82060d0681060482040c08020886070c05030a030a010a82030a040104010d0504010d02
04030d0104040d0204030d0104010d0204010d0104010d0704030d0204010d0104010d01
04030d0204030d0204010d0604010d0404030d0204020d0204010d5404810d0601060500
03068307000d06810600070001068207000482040d060b068207000481040682060700
82060d0681060482040c080208010c8205030a810a0384030a030a041404010d1404010d
7f041804810d060b068307000d060b068207000482040d060b0682070004810406820607
00
82060d0681060482040c080308850c05030a030a010a82000a041404010d1204020d7f04
1904810d070c0782000d070c0781000482040d070c0781000481040682060700
82060d0681060483040c05080208850c05030a030a810a0382030a047f0446041f000104
0f0001040106810700
82060d0681060481040c050c8205030a050a7f047b040106810700
82060d068106047f047f040c040106810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d0637067f073907810d061c06810700
82060d06030616000306160001068107007f00360082060d0681060015000406810700
82060d06020681000d140d820700068206000d140d8507000607000d7f0d350d84060d06
000d140d820700060206810700
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
84060d06000d130d01078100060206810700
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
84060d06000d810d06110601078100060206810700
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
84060d06000d810d06110601078100060206810700
82060d06020682000d0603068100060606810006030601078100068306000d0612060107
84000607000d820d000d7f0d320d84060d06000d810d06110601078100060206810700
82060d06020682000d06030683000600060306810006040601078100068306000d061206
010785000607000d0081000d7f0d320d84060d06000d810d061106010781000602068107
00
82060d06020682000d06040683000600060106810006050601078100068306000d060b06
8100060406010785000607000d000100810d0081000d820d000d810d0081000d810d0002
007f0d220d84060d06000d810d06110601078100060206810700
82060d06020682000d06050685000600060006060601078100068306000d060a06830006
00060306010785000607000d0081000d810d0082000d000100810d0082000d0081000d81
0d0081000d7f0d200d84060d06000d810d06110601078100060206810700
82060d06020682000d0606068300060006070601078100068306000d0609068300060006
0406010785000607000d0081000d810d0082000d000100810d0082000d0081000d810d00
81000d7f0d200d84060d06000d810d06110601078100060206810700
82060d06020682000d0607068300060006060601078100068306000d0604068100060106
83000600060506010785000607000d0081000d010d0200810d000100010d0100010d0100
7f0d210d84060d06000d810d06110601078100060206810700
82060d06020682000d06060685000600060006050601078100068306000d060306870006
0006000600060606010785000607000d0081000d010d0200810d000100010d0100010d01
007f0d210d84060d06000d810d06110601078100060206810700
82060d06020682000d06050681000601068300060006040601078100068306000d060406
850006000600060706010784000607000d810d0081000d810d0081000d010d0100020d03
007f0d220d84060d06000d810d0603060100810600820006008100060406010781000602
06810700
82060d06020682000d06040681000603068300060006030601078100068306000d060506
83000600060806010784000607000d7f0d350d84060d06000d810d060306010081060082
000600810006040601078100060206810700
82060d06020682000d060306010005060100040601078100068306000d06060681000609
06010784000607000d7f0d350d84060d06000d810d06110601078100060206810700
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
84060d06000d810d06110601078100060206810700
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
84060d06000d810d06110601078100060206810700
82060d06020682000d0714078100068306000d07140784000607000d7f0d350d85060d06
000d0714078100060206810700
82060d06020682000d0714078100068306000d07140784000607000d7f0d350d84060d06
000715078100060206810700
82060d06030616000306160001068207000d7f0d350d82060d0681060015000406810700
82060d0637068107067f063706810d061c06810700
82060d0637067f0d3a0d1d06810700
82060d0601067f077f070a07810d060106810700
82060d0601068107007f007f00070082060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d010d0300010d0400020d03007f0d720d82060d060106810700
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
810d0081000d7f0d700d82060d060106810700
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0004007f
0d710d82060d060106810700
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
7f0d740d82060d060106810700
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
810d0081000d7f0d700d82060d060106810700
82060d0601068207000d010d0300010d0100010d0100010d03007f0d720d82060d060106
810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d060106ff0700040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040aff040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a8c040a040a040a040a040a060d060106810700
82060d0601068307000a047f047f04050482060d060106810700
82060d060106820700047f047f040504830a060d060106810700
82060d0601068307000a0482040d047f047f04020482060d060106810700
82060d0601068207000481040d810d047f047f040104830a060d060106810700
82060d0601068307000a0d020d81040d810d0482040d0481040d810d0481040d020d7f04
720482060d060106810700
82060d0601068207000481040d810d0481040d820d040d010d81040d820d040d810d0481
040d810d047f046f04830a060d060106810700
82060d0601068407000a040d810d0481040d820d040d010d81040d820d040d810d048104
0d810d047f04700482060d060106810700
82060d0601068207000481040d810d040104020d81040d010d0104010d0104010d7f0470
04830a060d060106810700
82060d0601068407000a040d810d040104020d81040d010d0104010d0104010d7f047104
82060d060106810700
82060d060106820700040104010d0104010d0204010d0204030d7f047104830a060d0601
06810700
82060d0601068307000a047f047f04050482060d060106810700
82060d060106820700047f047f040504830a060d060106810700
82060d060106ff07000a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a04ff0a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a048c0a040a040a040a040a04060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d010d81000d810d0081000d7f0d7e0d82060d060106810700
82060d0601068207000d810d0081000d810d0081000d7f0d7e0d82060d060106810700
82060d0601068307000d000200810d000300010d0300010d0300020d03007f0d690d8206
0d060106810700
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
010d0100810d0081000d810d0081000d7f0d670d82060d060106810700
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0500
810d0004007f0d680d82060d060106810700
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
040d01007f0d6c0d82060d060106810700
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
010d0100810d0081000d810d0081000d7f0d670d82060d060106810700
82060d0601068207000d010d0100810d0081000d810d0082000d0081000d020d0300020d
03007f0d690d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068107067f067f060806810d060106810700
82060d0601067f0d7f0d0b0d0206810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d0601067f077f070b070206810700
82060d0601068107007f007f000800810d060106810700
82060d0601068207000d7f0d760d0e060100810d060106810700
82060d0601068207000d7f0d760d81060d0b0d81070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d1c0d0100120d01000e0d81000d6b0d0400400d82060d060a0681
070082000d060106810700
82060d0601068207000d010d81000d190d81000d120d81000d7b0d85000d000d000d3f0d
82060d060a0681070082000d060106810700
82060d0601068207000d810d000300030d0200010d0100010d0100020d0100810d008400
0d000d0081000d090d0300010d82000d0081000d020d0200020d0200040d0300020d0200
5f0d81000d020d0100810d0082000d0081000d810d0081000d010d02002c0d82060d0603
06810006040681070082000d060106810700
82060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d820d
000d810d0081000d810d0081000d820d000d070d81000d010d81000d810d0081000d820d
000d820d000d010d81000d020d81000d020d81000d010d81000d820d000d010d81000d5d
0d81000d030d0100030d81000d010d81000d820d000d010d81000d2a0d82060d06020602
00040681070082000d060106810700
82060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d820d
000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d820d000d01
0d81000d020d81000d020d81000d040d04005e0d81000d030d81000d030d81000d010d81
000d810d0003002b0d82060d0601060400030681070082000d060106810700
82060d0601068207000d010d81000d010d81000d820d000d010d81000d820d000d810d00
81000d820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d
820d000d010d81000d020d81000d020d81000d040d81000d610d81000d030d81000d030d
81000d810d0081000d820d000d2e0d82060d068106000500020681070082000d06010681
0700
82060d0601068207000d020d0200030d0200030d0100810d0081000d810d000200810d00
0100810d000100080d0300810d000100810d000100010d0200020d0400020d0300020d03
005d0d0200020d0300030d0100810d0081000d810d0002002b0d82060d060a0681070082
000d060106810700
82060d0601068207000d1a0d81000d7f0d590d82060d060a0681070082000d0601068107
00
82060d0601068207000d170d02007f0d5b0d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d8106070c070100810d060106810700
82060d0601068207000d7f0d760d1000810d060106810700
82060d0601068207000d7f0d760d92060d060d060d060d060d060d060d060d000d060106
810700
82060d0601068207000d7f0d770d91060d060d060d060d060d060d060d06000d06010681
0700
82060d0601068207000d030d81000d7f0d2d0d81000d020d0300390d92060d060d060d06
0d060d060d060d060d000d060106810700
82060d0601068207000d7f0d320d0100030d81000d3c0d91060d060d060d060d060d060d
060d06000d060106810700
82060d0601068207000d010d0200040d0200010d0100810d0081000d7f0d1c0d83000d00
0d020d81000d3b0d92060d060d060d060d060d060d060d060d000d060106810700
82060d0601068207000d030d81000d020d81000d010d81000d810d0081000d820d000d7f
0d1a0d81000d820d000d020d02003b0d91060d060d060d060d060d060d060d06000d0601
06810700
82060d0601068207000d030d81000d030d0300010d81000d010d81000d7f0d1a0d040005
0d81000d380d92060d060d060d060d060d060d060d060d000d060106810700
82060d0601068207000d030d81000d020d81000d010d81000d820d000d010d81000d7f0d
1d0d81000d010d81000d010d81000d380d0e060100810d060106810700
82060d0601068207000d010d0400010d0800810d0001007f0d1c0d0200020d02003a0d81
060d0b0d81070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d810d0081000d060d81000d030d0100040d01007f0d170d020003
0d0300390d82060d060a0681070082000d060106810700
82060d0601068207000d010d81000d0d0d81000d040d81000d7f0d150d81000d010d8100
0d010d81000d3b0d82060d060a0681070082000d060106810700
82060d0601068207000d010d82000d0081000d010d0200050d81000d040d81000d7f0d18
0d81000d020d81000d3b0d82060d060a0681070082000d060106810700
82060d0601068207000d010d0100010d81000d020d81000d040d81000d040d81000d7f0d
170d81000d030d02003a0d82060d060a0681070082000d060106810700
82060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d81000d7f
0d160d81000d070d81000d380d82060d060a0681070082000d060106810700
82060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d81000d7f
0d150d81000d040d81000d010d81000d380d82060d060a0681070082000d060106810700
82060d0601068207000d810d000300020d0400010d0400010d04007f0d140d0400020d02
003a0d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d030d81000d0a0d0100050d81000d7f0d5b0d82060d060a068107
0082000d060106810700
82060d0601068207000d110d81000d7f0d620d82060d060a0681070082000d0601068107
00
82060d0601068207000d010d0300010d0100010d0100030d81000d020d0200040d020001
0d0100810d0081000d7f0d070d0200010d0100810d0081000d020d0200330d82060d060a
0681070082000d060106810700
82060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d81000d02
0d81000d010d81000d810d0081000d820d000d7f0d050d81000d010d81000d810d008100
0d820d000d820d000d010d81000d310d82060d060a0681070082000d060106810700
82060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d81000d03
0d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81000d810d
000300320d82060d060a0681070082000d060106810700
82060d0601068207000d040d81000d010d81000d810d0081000d020d81000d040d81000d
020d81000d010d81000d820d000d010d81000d7f0d050d81000d010d81000d820d000d01
0d81000d820d000d350d82060d060a0681070082000d060106810700
82060d0601068207000d040d81000d020d0100810d0082000d000300010d0400010d0800
810d0001007f0d060d0200010d0200810d000100010d0300320d82060d060a0681070082
000d060106810700
82060d0601068207000d040d81000d7f0d6f0d82060d060a0681070082000d0601068107
00
82060d0601068207000d010d02007f0d710d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d810d0081000d060d81000d7f0d690d82060d060a068107008200
0d060106810700
82060d0601068207000d010d81000d0b0d81000d7f0d640d82060d060a0681070082000d
060106810700
82060d0601068207000d010d82000d0081000d010d0200020d0400010d0200820d000d02
0d0200010d0100810d0081000d7f0d050d0100810d0081000d020d0200010d0100810d00
81000d020d02002c0d82060d060a0681070082000d060106810700
82060d0601068207000d010d0100010d81000d020d81000d020d81000d040d85000d000d
000d820d000d010d81000d810d0081000d820d000d7f0d050d0100010d81000d820d000d
010d81000d810d0081000d820d000d820d000d010d81000d2a0d82060d060a0681070082
000d060106810700
82060d0601068207000d010d81000d010d81000d020d81000d020d81000d040d85000d00
0d000d010d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81
000d820d000d010d81000d810d0003002b0d82060d060a0681070082000d060106810700
82060d0601068207000d010d81000d010d81000d020d81000d020d81000d010d81000d86
0d000d000d000d820d000d010d81000d820d000d010d81000d7f0d050d81000d010d8100
0d820d000d010d81000d820d000d010d81000d820d000d2e0d82060d060a068107008200
0d060106810700
82060d0601068207000d810d000300020d0400020d0200010d0600810d000400810d0002
007f0d060d0200810d000100010d0200010d0200810d000100010d03002b0d8106070c07
0100810d060106810700
82060d0601068207000d240d81000d7f0d4f0d1000810d060106810700
82060d0601068207000d230d02007f0d4f0d0e060100810d060106810700
82060d0601068207000d7f0d760d81060d0b0d81070082000d060106810700
82060d060106820700047f04760482060d060a0681070082000d060106810700
82060d060106820700047f04760482060d060a0681070082000d060106810700
82060d060106820700047f04760482060d060a0681070082000d060106810700
82060d060106820700047f04760482060d060a0681070082000d060106810700
82060d060106820700043404810d041304010d7f04290482060d06810600050002068107
0082000d060106810700
82060d060106820700041d04810d042b04810d046204810d04430482060d060106040003
0681070082000d060106810700
82060d060106820700040204030d0204020d0104010d81040d810d040204030d81040d03
0d0204010d81040d810d040104020d0204020d0204010d81040d810d040204020d030401
0d82040d046104040d0104020d81040d010d0104020d330482060d060206020004068107
0082000d060106810700
82060d060106820700040104810d040104810d0482040d040104810d0481040d810d0482
040d0482040d040404810d040504010d0304810d040104810d040204810d040204010d01
04810d0482040d040104810d0482040d0481040d810d046204810d040404810d04010481
0d0482040d040104810d04310482060d060306810006040681070082000d060106810700
82060d060106820700040104810d040404810d040104810d0482040d040104810d040104
020d0204810d040504810d040404030d0304810d040204810d040104810d0481040d030d
0104810d040104810d046204810d040404850d040d040d0482040d040104810d04310482
060d060a0681070082000d060106810700
82060d060106820700040104810d040404810d040104810d0482040d040104810d040404
810d0482040d040104810d040104810d040304810d040104810d040204810d040204810d
040104810d0482040d040404810d040104810d046204810d040104810d0486040d040d04
0d0482040d040104810d04310482060d060a0681070082000d060106810700
82060d060106820700040204030d0204020d0104020d81040d010d81040d020d0304020d
0204030d0204050d81040d030d81040d010d81040d010d0104030d0204040d6304020d03
04830d040d040204020d330482060d060a0681070082000d060106810700
82060d060106820700047f04760482060d060a0681070082000d060106810700
82060d060106820700047f0476048106070c070100810d060106810700
82060d060106820700047f0476041000810d060106810700
82060d0601068107067f0677061000810d060106810700
82060d0601067f0d7f0d0b0d0206810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
8106077f077f0712070000
7f007f001500
%
% Compression made this file 6.27% of the uncompressed size.
%
showpage
% stop using temporary dictionary
end
% restore original state
origstate restore
%%Trailer

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -1,664 +0,0 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: prop2.eps
%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley
%%BoundingBox: 167 221 466 500
%%Pages: 1
%%DocumentFonts:
%%EndComments
%%EndProlog
%%Page: 1 1
% remember original state
/origstate save def
% build a temporary dictionary
20 dict begin
% lower left corner
167 221 translate
% size of image (on paper, in 1/72inch coords)
299 279 scale
% define 'colorimage' if it isn't defined
% ('colortogray' and 'mergeprocs' come from xwd2ps
% via xgrab)
/colorimage where % do we know about 'colorimage'?
{ pop } % yes: pop off the 'dict' returned
{ % no: define one
/colortogray { % define an RGB->I function
/rgbdata exch store % call input 'rgbdata'
rgbdata length 3 idiv
/npixls exch store
/rgbindx 0 store
/grays npixls string store % str to hold the result
0 1 npixls 1 sub {
grays exch
rgbdata rgbindx get 20 mul % Red
rgbdata rgbindx 1 add get 32 mul % Green
rgbdata rgbindx 2 add get 12 mul % Blue
add add 64 idiv % I = .5G + .31R + .18B
put
/rgbindx rgbindx 3 add store
} for
grays
} bind def
% Utility procedure for colorimage operator.
% This procedure takes two procedures off the
% stack and merges them into a single procedure.
/mergeprocs { % def
dup length
3 -1 roll
dup
length
dup
5 1 roll
3 -1 roll
add
array cvx
dup
3 -1 roll
0 exch
putinterval
dup
4 2 roll
putinterval
} bind def
/colorimage { % def
pop pop % remove 'false 3' operands
{colortogray} mergeprocs
image
} bind def
} ifelse % end of 'false' case
% define the colormap
/cmap 42 string def
% load up the colormap
currentfile cmap readhexstring
000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00
ffff00 0000ff 00ffff ffffff
pop pop % lose return values from readhexstring
% rlecmapimage expects to have 'w h bits matrix' on stack
/rlecmapimage {
/buffer 1 string def
/rgbval 3 string def
/block 384 string def
% proc to read a block from file, and return RGB data
{ currentfile buffer readhexstring pop
/bcount exch 0 get store
bcount 128 ge
{ % it's a non-run block
0 1 bcount 128 sub
{ currentfile buffer readhexstring pop pop
% look up value in color map
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
% and put it in position i*3 in block
block exch 3 mul rgbval putinterval
} for
block 0 bcount 127 sub 3 mul getinterval
}
{ % else it's a run block
currentfile buffer readhexstring pop pop
% look up value in colormap
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
0 1 bcount { block exch 3 mul rgbval putinterval } for
block 0 bcount 1 add 3 mul getinterval
} ifelse
} % end of proc
false 3 colorimage
} bind def
299 279 8 % dimensions of data
[299 0 0 -279 0 279] % mapping matrix
rlecmapimage
7f0003007f072607
07077f067f0618068100070707
070781060d7f0d7f0d150d820700070707
070782060d067f067f061406820700070707
070782060d067f067f061406820700070707
070782060d068106077f077f0710070106820700070707
070782060d068106078207060d820d060783070d0702010203098102077f077e07010682
0700070707
070782060d068106078707060b060001020781070283020702098109028102077f074a07
0e0d81000d0d0d81000781070d0d0d81000781070683060700070707
070782060d0681060782070806810600820002078507020902070201028109077f074a07
810d060b068307000d060b068207000782070d060b068207000781070683060700070707
070782060d06810607810706850608000403078207020984090207020981090701070506
2d070306020701061a0705066a07810d060b068307000d06810600070001068207000782
070d060b068207000781070683060700070707
070782060d068106078707060b0604000a07890702090207020702090701070106020701
061d0701060b07010601070106010701061207010607070106100701065907810d060b06
8307000d06810600070001068207000782070d0601060100030601000106820700078107
0683060700070707
070782060d0681060701070106020001070102860702090207020701070106020701061d
0701060b070106050701061207010607070106100701065907810d060b068307000d0682
0600060506810006830607000782070d0602060100010601000206820700078107068306
0700070707
070782060d0681060785070d0607060d010d840702000209010982020007010701060207
010681070601060107030601070406020703060107020681070601068107068206070681
060703070106050704060207030602070306010702060607010604070306020702060107
02065807810d060b068307000d06820600060506810006830607000782070d0603060300
03068207000781070683060700070707
070782060d06810607070701000602020705060107010601070106010701068107068106
078107068206070681060781070682060706810607810706810607810706820607068106
070407030602070206810706820607068106078107068206070681060781070682060706
81060706070106030701060107010681070682060706820607068106075807810d060b06
8307000d06820600060506810006830607000782070d0604060100040682070007810706
83060700070707
070782060d06810607810705050501000603020701060507010601070106010701068107
068106078107068206070604068107068106078107068106078107068206070681060707
070106010701060107010681070604068107060406810706810607060701060307050601
070106020701065907810d060b068307000d06820600060506810006830607000782070d
060306030003068207000781070683060700070707
070782060d0681060781070c010c8205080c830c05030a020a81030a810a070107010605
070106010701060107010681070681060781070682060706810607030701060107010601
070106810706810607070701060107010601070106810706810607030701060407010607
0701060307010606070106010701065907810d060b068307000d06820600060506810006
830607000782070d06020601000106010002068207000781070683060700070707
070782060d068106078c070c05070507050c05030a030a840a03000a0701070106050701
060107010601070106810706810607810706820607068106078107068206070681060781
070681060701070206050701060107010601070106010701068107068106078107068206
070681060781070682060706810607060701060307010601070106810706820607068206
07068106075807810d060106050003068307000d06820600060506810006830607000782
070d06010601000306010001068207000781070683060700070707
070782060d0681060782070c08020886070c05030a030a010a82030a0701070106050701
060207030601070406020703060107010602070106010701060707030602070106010701
06010703060207030602070106060701060407030602070206020701065807810d060106
050003068307000d06810600070001068207000782070d060b0682070007810706830607
00070707
070782060d0681060782070c080208010c8205030a810a0384030a030a07140701061407
01067f071c07810d060b068307000d060b068207000782070d060b068207000781070683
060700070707
070782060d0681060782070c080308850c05030a030a010a82000a071407010612070206
7f071d07810d070c0782000d070c0781000782070d070c07810007810706830607000707
07
070782060d0681060783070c05080208850c05030a030a810a0382030a077f074a071f00
01070f0001070106820700070707
070782060d0681060781070c050c8205030a050a7f077f070106820700070707
070782060d068106077f077f0710070106820700070707
070782060d067f067f061406820700070707
070782060d067f067f061406820700070707
070782060d0637067f073d07810d061c06820700070707
070782060d06030616000306160001068107007f003a0082060d06810600150004068207
00070707
070782060d06020681000d140d820700068206000d140d8507000607000d7f0d390d8406
0d06000d140d820700060206820700070707
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
390d84060d06000d130d01078100060206820700070707
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
390d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
390d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0603068100060606810006030601078100068306000d061206
010784000607000d010d0100020d0200020d0200020d02007f0d230d84060d06000d810d
06110601078100060206820700070707
070782060d06020682000d060306020003060200040601078100068306000d060b068100
060406010784000607000d810d000100010d0100810d0082000d0082000d0082000d0082
000d0081000d7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d060406020001060200050601078100068306000d060a060200
0406010785000607000d000200010d0100810d0082000d0082000d0082000d0082000d00
81000d7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0605060500060601078100068306000d060906030004060107
87000607000d000d0081000d810d0082000d0082000d0082000d0082000d0082000d0081
000d7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0606060300070601078100068306000d060806030005060107
84000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d0081000d
7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0606060300070601078100068306000d060306010001060300
0606010784000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d
0081000d7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0605060500060601078100068306000d060306060007060107
84000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d0081000d
7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d060406020001060200050601078100068306000d0604060400
0806010784000607000d010d0100020d0200020d0200020d02007f0d230d84060d06000d
810d060306010781060782070607810706040601078100060206820700070707
070782060d06020682000d060306020003060200040601078100068306000d0605060200
0906010784000607000d7f0d390d84060d06000d810d0603060107810607820706078107
06040601078100060206820700070707
070782060d06020682000d060306010005060100040601078100068306000d0606068100
060906010784000607000d7f0d390d84060d06000d810d06110601078100060206820700
070707
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
390d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
390d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0714078100068306000d07140784000607000d7f0d390d8506
0d06000d0714078100060206820700070707
070782060d06020682000d0714078100068306000d07140784000607000d7f0d390d8406
0d06000715078100060206820700070707
070782060d06030616000306160001068207000d7f0d390d82060d068106001500040682
0700070707
070782060d0637068107067f063b06810d061c06820700070707
070782060d0637067f0d3e0d1d06820700070707
070782060d0601067f077f070e07810d060106820700070707
070782060d0601068107007f007f000b0082060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d040d0100120d01007f0d150d0200550d82060d0601068207
00070707
070782060d0601068207000d030d81000d140d81000d7f0d130d81000d010d81000d530d
82060d060106820700070707
070782060d0601068207000d020d0300010d0100810d0081000d010d0200030d0100820d
000d7f0d130d81000d010d81000d530d82060d060106820700070707
070782060d0601068207000d030d81000d030d0100030d81000d010d81000d820d000d81
0d0081000d7f0d130d81000d010d81000d530d82060d060106820700070707
070782060d0601068207000d030d81000d030d81000d030d0400010d81000d010d81000d
7f0d130d81000d010d81000d530d82060d060106820700070707
070782060d0601068207000d030d81000d030d81000d030d81000d040d81000d010d8100
0d7f0d130d81000d010d81000d530d82060d060106820700070707
070782060d0601068207000d020d0300010d0300030d0300020d04007f0d140d0200550d
82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d1c0d0100120d01000e0d81000d6b0d0400090d0100480d82
060d060106820700070707
070782060d0601068207000d010d81000d190d81000d120d81000d7c0d81000d820d000d
090d81000d470d82060d060106820700070707
070782060d0601068207000d810d000300030d0200010d0100010d0100020d0100810d00
84000d000d0081000d090d0300010d82000d0081000d020d0200020d0200040d0300020d
02005e0d83000d000d020d0200040d81000d030d0300020d0200390d82060d0601068207
00070707
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
820d000d810d0081000d810d0081000d820d000d070d81000d010d81000d810d0081000d
820d000d820d000d010d81000d020d81000d020d81000d010d81000d820d000d010d8100
0d5c0d0200020d81000d010d81000d020d81000d020d81000d040d81000d010d81000d37
0d82060d060106820700070707
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d820d00
0d010d81000d020d81000d020d81000d040d04005d0d83000d000d020d0300030d81000d
030d0200020d0400380d82060d060106820700070707
070782060d0601068207000d010d81000d010d81000d820d000d010d81000d820d000d81
0d0081000d820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81
000d820d000d010d81000d020d81000d020d81000d040d81000d600d81000d030d81000d
010d81000d020d81000d060d81000d820d000d3b0d82060d060106820700070707
070782060d0601068207000d020d0200030d0200030d0100810d0081000d810d00020081
0d000100810d000100080d0300810d000100810d000100010d0200020d0400020d030002
0d03005c0d0200030d0500810d000300010d0300030d0300380d82060d06010682070007
0707
070782060d0601068207000d1a0d81000d7f0d6d0d82060d060106820700070707
070782060d0601068207000d170d02007f0d6f0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700040304810d047f043204010d4f0482060d0601068207000707
07
070782060d060106820700047f043904810d044e0482060d060106820700070707
070782060d060106820700040104020d0404020d0104010d81040d810d047f042404810d
044e0482060d060106820700070707
070782060d060106820700040304810d040204810d040104810d0481040d810d0482040d
047f041a04040d0304810d044e0482060d060106820700070707
070782060d060106820700040304810d040304030d0104810d040104810d047f04230481
0d044e0482060d060106820700070707
070782060d060106820700040304810d040204810d040104810d0482040d040104810d04
7f042304810d044e0482060d060106820700070707
070782060d060106820700040104040d0104080d81040d010d7f042104040d4d0482060d
060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d810d0081000d060d81000d030d0100040d01007f0d170d02
00030d03004d0d82060d060106820700070707
070782060d0601068207000d010d81000d0d0d81000d040d81000d7f0d150d81000d010d
81000d010d81000d4f0d82060d060106820700070707
070782060d0601068207000d010d82000d0081000d010d0200050d81000d040d81000d7f
0d180d81000d020d81000d4f0d82060d060106820700070707
070782060d0601068207000d010d0100010d81000d020d81000d040d81000d040d81000d
7f0d170d81000d030d02004e0d82060d060106820700070707
070782060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d8100
0d7f0d160d81000d070d81000d4c0d82060d060106820700070707
070782060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d8100
0d7f0d150d81000d040d81000d010d81000d4c0d82060d060106820700070707
070782060d0601068207000d810d000300020d0400010d0400010d04007f0d140d040002
0d02004e0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d030d81000d0a0d0100050d81000d7f0d6f0d82060d060106
820700070707
070782060d0601068207000d110d81000d7f0d760d82060d060106820700070707
070782060d0601068207000d010d0300010d0100010d0100030d81000d020d0200040d02
00010d0100810d0081000d7f0d070d0200010d0100810d0081000d020d0200470d82060d
060106820700070707
070782060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d8100
0d020d81000d010d81000d810d0081000d820d000d7f0d050d81000d010d81000d810d00
81000d820d000d820d000d010d81000d450d82060d060106820700070707
070782060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d8100
0d030d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81000d
810d000300460d82060d060106820700070707
070782060d0601068207000d040d81000d010d81000d810d0081000d020d81000d040d81
000d020d81000d010d81000d820d000d010d81000d7f0d050d81000d010d81000d820d00
0d010d81000d820d000d490d82060d060106820700070707
070782060d0601068207000d040d81000d020d0100810d0082000d000300010d0400010d
0800810d0001007f0d060d0200010d0200810d000100010d0300460d82060d0601068207
00070707
070782060d0601068207000d040d81000d7f0d7f0d030d82060d060106820700070707
070782060d0601068207000d010d02007f0d7f0d050d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d810d0081000d060d81000d7f0d7d0d82060d060106820700
070707
070782060d0601068207000d010d81000d0b0d81000d7f0d780d82060d06010682070007
0707
070782060d0601068207000d010d82000d0081000d010d0200020d0400010d0200820d00
0d020d0200010d0100810d0081000d7f0d050d0100810d0081000d020d0200010d010081
0d0081000d020d0200400d82060d060106820700070707
070782060d0601068207000d010d0100010d81000d020d81000d020d81000d040d85000d
000d000d820d000d010d81000d810d0081000d820d000d7f0d050d0100010d81000d820d
000d010d81000d810d0081000d820d000d820d000d010d81000d3e0d82060d0601068207
00070707
070782060d0601068207000d010d81000d010d81000d020d81000d020d81000d040d8500
0d000d000d010d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d01
0d81000d820d000d010d81000d810d0003003f0d82060d060106820700070707
070782060d0601068207000d010d81000d010d81000d020d81000d020d81000d010d8100
0d860d000d000d000d820d000d010d81000d820d000d010d81000d7f0d050d81000d010d
81000d820d000d010d81000d820d000d010d81000d820d000d420d82060d060106820700
070707
070782060d0601068207000d810d000300020d0400020d0200010d0600810d000400810d
0002007f0d060d0200810d000100010d0200010d0200810d000100010d03003f0d82060d
060106820700070707
070782060d0601068207000d240d81000d7f0d630d82060d060106820700070707
070782060d0601068207000d230d02007f0d630d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d340d81000d130d01007f0d3d0d82060d0601068207000707
07
070782060d0601068207000d1d0d81000d2b0d81000d620d81000d570d82060d06010682
0700070707
070782060d0601068207000d020d0300020d0200010d0100810d0081000d020d0300810d
000300020d0100810d0081000d010d0200020d0200020d0100810d0081000d020d020003
0d0100820d000d610d0400010d0200810d000100010d0200470d82060d06010682070007
0707
070782060d0601068207000d010d81000d010d81000d820d000d010d81000d810d008100
0d820d000d820d000d040d81000d050d0100030d81000d010d81000d020d81000d020d01
00010d81000d820d000d010d81000d820d000d810d0081000d620d81000d040d81000d01
0d81000d820d000d010d81000d450d82060d060106820700070707
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
010d0200020d81000d050d81000d040d0300030d81000d020d81000d010d81000d810d00
0300010d81000d010d81000d620d81000d040d85000d000d000d820d000d010d81000d45
0d82060d060106820700070707
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
040d81000d820d000d010d81000d010d81000d030d81000d010d81000d020d81000d020d
81000d010d81000d820d000d040d81000d010d81000d620d81000d010d81000d860d000d
000d000d820d000d010d81000d450d82060d060106820700070707
070782060d0601068207000d020d0300020d0200010d0200810d000100810d000200030d
0200020d0300020d0500810d000300810d000100810d000100010d0300020d0400630d02
00030d83000d000d020d0200470d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
7f077f0726078100070107
03077f0d7f0d210d820700070107
0307820d06077f077f071c07840d060700070107
0307830d0607047f047f041c0483060700070107
0307830d0607047f047f041c0483060700070107
0307830d0607047f047f040a040e0d8100048404060700070107
0307830d0607047f047f040a04810d060b06820700048404060700070107
0307830d06070481040d040d3a04010d7f044604810d060b068207000484040607000701
07
0307830d06070481040d810d040104010d1d04010d1904010d7f044604810d0601060107
030601070106820700048404060700070107
0307830d06070481040d810d040104010d1d04010d1904010d7f044604810d0602060107
01060107010d83060700048404060700070107
0307830d06070481040d810d040104010d81040d010d0104030d0104040d0204030d0104
020d81040d010d81040d820d040d810d040304010d0104010d0104030d0104010d81040d
810d0481040d810d0481040d020d0604030d0104020d81040d010d0104030d0104020d7f
041a04810d0603060307010d0106820700048404060700070107
0307830d06070481040d040d0104010d0104010d0104010d81040d810d0481040d820d04
0d810d0481040d820d040d810d0481040d810d0481040d820d040d810d040304010d0104
010d0404010d81040d820d040d810d0481040d820d040d810d0481040d810d040304010d
0104010d81040d810d0481040d810d0481040d810d0481040d820d040d810d047f041a04
810d0604060107010d0206820700048404060700070107
0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
040d040d81040d810d0481040d810d0481040d820d040d810d040404030d0204040d8104
0d820d040d810d0481040d820d040d040d0404050d81040d810d0481040d810d0481040d
810d0481040d820d040d810d047f041a04810d0603060307030682070004840406070007
0107
0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
040d810d040304010d0104010d0104010d81040d810d040404030d0104010d0104010d81
040d820d040d810d0481040d820d040d810d040704010d0404010d0104010d0104010d01
04010d81040d810d047f041a04810d0602060107010d0107020682070004840406070007
0107
0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
040d810d0481040d820d040d810d0481040d810d040104020d0704010d0204010d010401
0d81040d820d040d820d040d010d81040d810d0481040d810d040304010d0104010d8104
0d810d0481040d810d0481040d810d0481040d820d040d810d047f041a04810d06010601
07010d010601070106820700048404060700070107
0307830d06070481040d810d040404010d0204030d0104040d0204030d0104010d020401
0d0104010d0804010d0304040d81040d810d0481040d030d0104030d0604030d0104010d
0104010d0204030d0104010d7f041b04810d060206010d0306010d830607000484040607
00070107
0307830d0607041304010d1404010d7f045d04810d060b06820700048404060700070107
0307830d0607041304010d1204020d7f045e04810d070c078100048404060700070107
0307830d0607047f047f040a040f00010483060700070107
0307830d0607047f047f041c0483060700070107
0307830d0607047f047f041c0483060700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d06170602037f067f060406820700070107
0307810d06160681030a830a0600067f067f060206820700070107
0307810d06150681030a020a83060007067f067f0683060700070107
0307810d06150681030a030a8100078107067f067f06820700070107
0307810d06140681030a040a820600078107067f067e06820700070107
0307810d06140681030a050a8100078107067f067e06820700070107
0307810d06130681030a060a820600078107067f067d06820700070107
0307810d06130681030a070a8100078107067f067d06820700070107
0307810d06120681030a080a820600078107067f067c06820700070107
0307810d06120681030a010a810600010081060a010a8100078107067f067c0682070007
0107
0307810d06110681030a020a0400020a820600078107067f067b06820700070107
0307810d06110681030a020a0400030a8100078107061606810006030681000605068100
0627068100061b0681000620068100062c06040001060200140681000602060400010602
0001068100060a06820700070107
0307810d06100681030a030a0400030a8206000781070615068100060306810006050681
000621068100060306810006230681000618068100060906810006200681000603068100
060106810006120681000602068100060306810006010683000600060a06820700070107
0307810d06100681030a030a0400040a8100078107061606810006010681000606068100
062106810006030681000623068100061806810006090681000620068100060306810006
0106810006120681000602068100060306810006010683000600060a06820700070107
0307810d060f0681030a040a0400040a8206000781070615068100060106810006010602
000106830006000601068100068106000100040602008106008100068206000601068100
068106008100068106008100060206030002060200050602000106820006008100060306
840006000600810006810600810006810600010002060300010602000106010003060300
020602000106010082060006820600068206000681060001000206020001068200060081
000606060300010681000601068100060306020001068200060081000601060300030603
000106810006010683000600060a06820700070107
0307810d060f0681030a040a810300010081030a040a8100078107061506810006010681
000604068500060006000601068300060006010681000602068100068206000684060006
000601068300060006840600060006030681000601068300060006010681000606068200
060081000682060006020682000600810006840600060006820600060106830006000601
068300060006010683000600060306810006010683000600060106830006000682060006
820600068406000600060106830006000601068200060081000682060006050681000601
068300060006010681000606068200060081000684060006000601068100060206810006
01068300060006010683000600060a06820700070107
0307810d060e0681030a050a810600010081060a040a8206000781070615068300060006
020603008406000600060106820006000300030681000682060006840600060006010681
000682060006010681000603068100060106820006000300040603008206000601068100
060206830006000601068300060006810600030082060006010682000600030082060006
030681000601068200060003008206000689060006000600060006000300810600030082
060006010681000602060100040683000600060106810006030603008206000601068300
060006010681000606068300060006010683000600060a06820700070107
0307810d060e0681030a060a0200070a8100078107061506830006000601068100060106
850006000600060106830006000606068100068206000684060006000601068100060106
810006820600060306810006010683000600060606810006010683000600060106810006
020683000600060106830006000682060006030681000601068300060006030681000603
068100060106830006000603068100068a06000600060006000600060306810006030681
000601068100060906830006000601068100060206810006010683000600060106830006
0006010681000606068300060006010683000600060a06820700070107
0307810d060d0681030a070a830300030a060a8206000781070615068100060206810006
010685000600060006810600830006000601068100060206810006820600068406000600
068106008300060006840600060006030681000601068300060006010681000602068100
060106830006000601068100060206830006000601068300060006820600060106830006
000601068300060006010683000600060306810006010683000600060106830006000601
068100060106810006820600060106830006000601068300060006010681000605068100
060106830006000601068100060206810006010683000600060106830006000601068100
0602068100060106830006000601068100060c06820700070107
0307810d060d0681030a070a830600060a070a8100078107061506810006030603008206
000681060083000600068106000100040681000682060006820600068106008300060006
810600810006010681000602060300020602000506030082060006010681000602068300
060006010681000682060006810600010002060300010602000106810006030603000206
020002068100068206000601068100060106020002060200010681000601068100060606
020002060200050603008206000601068100068106000200040602000206020001068100
060a06820700070107
0307810d060c0681030a090a81000a080a820600078107067c0681000677068207000701
07
0307810d060c0681030a150a810007810706780603007906820700070107
0307810d060b0681030a090a8106008200060a070a820600078107067f06750682070007
0107
0307810d060b0681030a090a0300090a8100078107067f067506820700070107
0307810d060a0681030a0a0a0300090a820600078107067f067406820700070107
0307810d060a0681030a0a0a8106008200060a090a8100078107067f0674068207000701
07
0307810d060a0681030a190a81000701077f067406820700070107
0307810d060a0681030a180a8206000701077f067406820700070107
0307810d060b0681030a160a8206000702077f067406820700070107
0307810d060c06810300160004077f067406820700070107
0307810d060e061a077f067506820700070107
0307810d060f0618077f067606820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d066b0648006a06820700070107
0307810d066a064a006906820700070107
0307810d066a060100450d8107008100066806820700070107
0307810d066a060100440d010701006906820700070107
0307810d066a060100010d18069100060006000600060006000600060006000617060107
01006906820700070107
0307810d066a060100010d4206010701006906820700070107
0307810d066a060100010d18068100060d068100061706010701006906820700070107
0307810d066a060100010d1b060300020681000601068100061906010701006906820700
070107
0307810d066a060100010d18068300060006020681000682060006820600068206000617
06010701006906820700070107
0307810d066a060100010d1a0681000602068100068406000600061b0601070100690682
0700070107
0307810d066a060100010d18068300060006020681000681060081000602068100061706
010701006906820700070107
0307810d066a060100010d1a0681000602068100068106008100061c0601070100690682
0700070107
0307810d066a060100010d18068300060006020681000684060006000601068100061706
010701006906820700070107
0307810d066a060100010d1a06810006020681000682060006820600061a060107010069
06820700070107
0307810d066a060100010d18068300060006020681000682060006010683000600061706
010701006906820700070107
0307810d066a060100010d1b060300020681000602068100061806010701006906820700
070107
0307810d066a060100010d18068100060d068100061706010701006906820700070107
0307810d066a060100010d4206010701006906820700070107
0307810d066a060100010d18069100060006000600060006000600060006000617060107
01006906820700070107
0307810d066a060100810d07440701006906820700070107
0307810d066a060100460701006906820700070107
0307810d066a064a006906820700070107
0307810d066b0648006a06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
7f077f0726078100070107
02077f007f0024000207
7f077f072a07
7f077f072a07
7f077f072a07
7f077f072a07
7f077f072a07
7f077f072a07
%
% Compression made this file 5.68% of the uncompressed size.
%
showpage
% stop using temporary dictionary
end
% restore original state
origstate restore
%%Trailer

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

View File

@@ -1,17 +0,0 @@
\section{\class{wxBoolFormValidator}}\label{wxboolformvalidator}
This class validates a boolean value for a \helpref{form view}{wxpropertyformview}.
The associated control must be a wxCheckBox.
\wxheading{See also}
\helpref{Property validator classes}{proplistvalidatorclasses}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxBoolFormValidator::wxBoolFormValidator}
\func{void}{wxBoolFormValidator}{\param{long }{flags=0}}
Constructor.

View File

@@ -1,16 +0,0 @@
\section{\class{wxBoolListValidator}}\label{wxboollistvalidator}
This class validates a boolean value for a \helpref{property list view}{wxpropertylistview}.
\wxheading{See also}
\helpref{Validator classes}{proplistvalidatorclasses}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxBoolListValidator::wxBoolListValidator}
\func{void}{wxBoolListValidator}{\param{long }{flags=0}}
Constructor.

View File

@@ -1,107 +0,0 @@
\section{\class{wxProperty}}\label{wxproperty}
The {\bf wxProperty} class represents a property, with a \helpref{wxPropertyValue}{wxpropertyvalue}\rtfsp
containing the actual value, a name a role, an optional validator, and
an optional associated window.
A property might correspond to an actual C++ data member, or it
might correspond to a conceptual property, such as the width of a window.
There is no explicit data member {\it wxWindow::width}, but it may be convenient
to invent such a property for the purposes of editing attributes of the window.
The properties in the property sheet can be mapped to ``reality" by
whatever means (in this case by calling wxWindow::SetSize when the user has
finished editing the property sheet).
A validator may be associated with the property in order to ensure that this and
only this validator will be used for editing and validating the property.
An alternative method is to use the {\it role} parameter to specify what kind
of validator would be appropriate; for example, specifying ``filename" for the role
would allow the property view to find an appropriate validator at edit time.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxProperty::wxProperty}
\func{void}{wxProperty}{\void}
\func{void}{wxProperty}{\param{wxProperty\& }{prop}}
\func{void}{wxProperty}{\param{wxString}{ name}, \param{wxString}{ role}, \param{wxPropertyValidator *}{validator=NULL}}
\func{void}{wxProperty}{\param{wxString}{ name}, \param{const wxPropertyValue\&}{ val}, \param{wxString}{ role}, \param{wxPropertyValidator *}{validator=NULL}}
Constructors.
\membersection{wxProperty::\destruct{wxProperty}}
\func{void}{\destruct{wxProperty}}{\void}
Destructor. Destroys the wxPropertyValue, and the property validator if there is one. However, if the
actual C++ value in the wxPropertyValue is a pointer, the data in that variable is not destroyed.
\membersection{wxProperty::GetValue}
\func{wxPropertyValue\&}{GetValue}{\void}
Returns a reference to the property value.
\membersection{wxProperty::GetValidator}
\func{wxPropertyValidator *}{GetValidator}{\void}
Returns a pointer to the associated property validator (if any).
\membersection{wxProperty::GetName}
\func{wxString\&}{GetName}{\void}
Returns the name of the property.
\membersection{wxProperty::GetRole}
\func{wxRole\&}{GetRole}{\void}
Returns the role of the property, to be used when choosing an appropriate validator.
\membersection{wxProperty::GetWindow}
\func{wxWindow *}{GetWindow}{\void}
Returns the window associated with the property (if any).
\membersection{wxProperty::SetValue}
\func{void}{SetValue}{\param{wxPropertyValue\&}{ val}}
Sets the value of the property.
\membersection{wxProperty::SetName}
\func{void}{SetName}{\param{wxString\&}{ name}}
Sets the name of the property.
\membersection{wxProperty::SetRole}
\func{void}{SetRole}{\param{wxString\&}{ role}}
Sets the role of the property.
\membersection{wxProperty::SetValidator}
\func{void}{SetValidator}{\param{wxPropertyValidator *}{validator}}
Sets the validator: this will be deleted when the property is deleted.
\membersection{wxProperty::SetWindow}
\func{void}{SetWindow}{\param{wxWindow *}{win}}
Sets the window associated with the property.
\membersection{wxProperty::operator $=$}
\func{void}{operator $=$}{\param{const wxPropertyValue\&}{ val}}
Assignment operator.

View File

@@ -1,18 +0,0 @@
\section{\class{wxFilenameListValidator}}\label{wxfilenamelistvalidator}
This class validates a filename for a \helpref{property list view}{wxpropertylistview}, allowing the user to edit it textually and also popping up
a file selector in ``detailed editing" mode.
\wxheading{See also}
\helpref{Validator classes}{proplistvalidatorclasses}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxFilenameListValidator::wxFilenameListValidator}
\func{void}{wxFilenameListValidator}{\param{wxString }{message = ``Select a file"}, \param{wxString }{wildcard = ``*.*"},
\param{long}{ flags=0}}
Constructor. Supply an optional message and wildcard.

View File

@@ -1,23 +0,0 @@
\section{\class{wxPropertyFormDialog}}\label{wxpropertyformdialog}
The {\bf wxPropertyFormDialog} class is a prepackaged dialog which can
be used for viewing a form property sheet. Pass a property form view object, and the dialog
will pass OnClose and OnDefaultAction listbox messages to the view class for
processing.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyFormDialog::wxPropertyFormDialog}
\func{void}{wxPropertyFormDialog}{\param{wxPropertyFormView *}{view}, \param{wxWindow *}{parent}, \param{char *}{title},
\param{bool}{ modal=false}, \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
\param{long}{ style=wxDEFAULT\_DIALOG\_STYLE}, \param{char *}{name=``dialogBox"}}
Constructor.
\membersection{wxPropertyFormDialog::\destruct{wxPropertyFormDialog}}
\func{void}{\destruct{wxPropertyFormDialog}}{\void}
Destructor.

View File

@@ -1,43 +0,0 @@
\section{\class{wxPropertyFormFrame}}\label{wxpropertyformframe}
The {\bf wxPropertyFormFrame} class is a prepackaged frame which can
be used for viewing a property form. Pass a property form view object, and the frame
will pass OnClose messages to the view class for processing.
Call Initialize to create the panel and associate the view; override OnCreatePanel
if you wish to use a panel class other than the default wxPropertyFormPanel.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyFormFrame::wxPropertyFormFrame}
\func{void}{wxPropertyFormFrame}{\param{wxPropertyFormView *}{view}, \param{wxFrame *}{parent}, \param{char *}{title},
\param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
\param{long}{ style=wxSDI $\|$ wxDEFAULT\_FRAME}, \param{char *}{name=``frame"}}
Constructor.
\membersection{wxPropertyFormFrame::\destruct{wxPropertyFormFrame}}
\func{void}{\destruct{wxPropertyFormFrame}}{\void}
Destructor.
\membersection{wxPropertyFormFrame::GetPropertyPanel}
\func{wxPanel *}{GetPropertyPanel}{\void}
Returns the panel associated with the frame.
\membersection{wxPropertyFormFrame::Initialize}
\func{bool}{Initialize}{\void}
Must be called to create the panel and associate the view with the panel and frame.
\membersection{wxPropertyFormFrame::OnCreatePanel}
\func{wxPanel *}{OnCreatePanel}{\param{wxFrame *}{parent}, \param{wxPropertyFormView *}{view}}
Creates a panel. Override this to create a panel type other than wxPropertyFormPanel.

View File

@@ -1,23 +0,0 @@
\section{\class{wxPropertyFormPanel}}\label{wxpropertyformpanel}
The {\bf wxPropertyFormPanel} class is a prepackaged panel which can
be used for viewing a property form. Pass a property form view object, and the panel
will pass OnDefaultAction listbox messages to the view class for
processing.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyFormPanel::wxPropertyFormPanel}
\func{void}{wxPropertyFormPanel}{\param{wxPropertyFormView *}{view}, \param{wxWindow *}{parent},
\param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
\param{long}{ style=0}, \param{char *}{name=``panel"}}
Constructor.
\membersection{wxPropertyFormPanel::\destruct{wxPropertyFormPanel}}
\func{void}{\destruct{wxPropertyFormPanel}}{\void}
Destructor.

View File

@@ -1,60 +0,0 @@
\section{\class{wxPropertyFormValidator}}\label{wxpropertyformvalidator}
The {\bf wxPropertyFormValidator} class defines a base class for form validators. By overriding virtual functions,
the programmer can create custom behaviour for kinds of property.
\wxheading{See also}
\helpref{wxPropertyFormValidator overview}{wxpropertyformvalidatoroverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyFormValidator::wxPropertyFormValidator}
\func{void}{wxPropertyFormValidator}{\param{long}{ flags = 0}}
Constructor.
\membersection{wxPropertyFormValidator::\destruct{wxPropertyFormValidator}}
\func{void}{\destruct{wxPropertyFormValidator}}{\void}
Destructor.
\membersection{wxPropertyFormValidator::OnCommand}
\func{bool}{OnCommand}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
\param{wxWindow *}{parentWindow}, \param{wxCommandEvent\& }{event}}
Called when the control corresponding to the property receives a command (if not intercepted
by a callback associated with the actual control).
\membersection{wxPropertyFormValidator::OnCheckValue}
\func{bool}{OnCheckValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
\param{wxWindow *}{parentWindow}}
Called when the view checks the property value. The value checked by this validator should be taken from the
panel item corresponding to the property.
\membersection{wxPropertyFormValidator::OnDisplayValue}
\func{bool}{OnDisplayValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
\param{wxWindow *}{parentWindow}}
Should display the property value in the appropriate control.
\membersection{wxPropertyFormValidator::OnDoubleClick}
\func{bool}{OnDoubleClick}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
\param{wxWindow *}{parentWindow}}
Called when the control corresponding to the property is double clicked (listboxes only).
\membersection{wxPropertyFormValidator::OnRetrieveValue}
\func{bool}{OnRetrieveValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
\param{wxWindow *}{parentWindow}}
Should do the transfer from the property editing area to the property itself.

View File

@@ -1,104 +0,0 @@
\section{\class{wxPropertyFormView}}\label{wxpropertyformview}
The {\bf wxPropertyFormView} class shows a wxPropertySheet as a view onto a panel or dialog
box which has already been created.
\wxheading{See also}
\helpref{wxPropertyFormView overview}{wxpropertyformviewoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyFormView::wxPropertyFormView}
\func{void}{wxPropertyFormView}{\param{long}{ flags = 0}}
Constructor.
\membersection{wxPropertyFormView::\destruct{wxPropertyFormView}}
\func{void}{\destruct{wxPropertyFormView}}{\void}
Destructor.
\membersection{wxPropertyFormView::AssociateNames}\label{wxpropertyformviewassociatenames}
\func{void}{AssociateNames}{\void}
Associates the properties with the controls on the panel. For each panel item, if the
panel item name is the same as a property name, the two objects will be associated.
This function should be called manually since the programmer may wish to do the
association manually.
\membersection{wxPropertyFormView::Check}\label{wxpropertyformviewcheck}
\func{bool}{Check}{\void}
Checks all properties by calling the appropriate validators; returns false if a validation failed.
\membersection{wxPropertyFormView::GetPanel}\label{wxpropertyformviewgetpanel}
\func{wxPanel *}{GetPanel}{\void}
Returns the panel associated with the view.
\membersection{wxPropertyFormView::GetManagedWindow}\label{wxpropertyformviewgetmanagedwindow}
\func{wxWindow *}{GetManagedWindow}{\void}
Returns the managed window (a frame or dialog) associated with the view.
\membersection{wxPropertyFormView::OnOk}\label{wxpropertyformviewonok}
\func{void}{OnOk}{\void}
Virtual function that will be called when the OK button on the physical window is pressed.
By default, checks and updates the form values, closes and deletes the frame or dialog, then deletes the view.
\membersection{wxPropertyFormView::OnCancel}\label{wxpropertyformviewoncancel}
\func{void}{OnCancel}{\void}
Virtual function that will be called when the Cancel button on the physical window is pressed.
By default, closes and deletes the frame or dialog, then deletes the view.
\membersection{wxPropertyFormView::OnHelp}\label{wxpropertyformviewonhelp}
\func{void}{OnHelp}{\void}
Virtual function that will be called when the Help button on the physical window is pressed.
This needs to be overridden by the application for anything interesting to happen.
\membersection{wxPropertyFormView::OnRevert}\label{wxpropertyformviewonrevert}
\func{void}{OnRevert}{\void}
Virtual function that will be called when the Revert button on the physical window is pressed.
By default transfers the wxProperty values to the panel items (in effect
undoing any unsaved changes in the items).
\membersection{wxPropertyFormView::OnUpdate}\label{wxpropertyformviewonupdate}
\func{void}{OnUpdate}{\void}
Virtual function that will be called when the Update button on the physical window is pressed.
By defaults transfers the displayed values to the wxProperty objects.
\membersection{wxPropertyFormView::SetManagedWindow}\label{wxpropertyformviewsetmanagedwindow}
\func{void}{SetManagedWindow}{\param{wxWindow *}{win}}
Sets the managed window (a frame or dialog) associated with the view.
\membersection{wxPropertyFormView::TransferToDialog}\label{wxpropertyformviewtransfertodialog}
\func{bool}{TransferToDialog}{\void}
Transfers property values to the controls in the dialog.
\membersection{wxPropertyFormView::TransferToPropertySheet}\label{wxpropertyformviewtransfertopropertysheet}
\func{bool}{TransferToPropertySheet}{\void}
Transfers property values from the controls in the dialog to the property sheet.

View File

@@ -1,18 +0,0 @@
\section{\class{wxIntegerFormValidator}}\label{wxintegerformvalidator}
This class validates a range of integer values for a form view. The associated control must be a wxTextCtrl
or wxSlider.
\wxheading{See also}
\helpref{Validator classes}{proplistvalidatorclasses}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxIntegerFormValidator::wxIntegerFormValidator}
\func{void}{wxIntegerFormValidator}{\param{long }{min=0}, \param{long }{max=0},
\param{long}{ flags=0}}
Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.

View File

@@ -1,17 +0,0 @@
\section{\class{wxIntegerListValidator}}\label{wxintegerlistvalidator}
This class validates a range of integer values for a list view.
\wxheading{See also}
\overview{Validator classes}{proplistvalidatorclasses}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxIntegerListValidator::wxIntegerListValidator}
\func{void}{wxIntegerListValidator}{\param{long }{min=0}, \param{long }{max=0},
\param{long}{ flags=wxPROP\_ALLOW\_TEXT\_EDITING}}
Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.

View File

@@ -1,23 +0,0 @@
\section{\class{wxPropertyListDialog}}\label{wxpropertylistdialog}
The {\bf wxPropertyListDialog} class is a prepackaged dialog which can
be used for viewing a property list. Pass a property list view object, and the dialog
will pass OnClose and OnDefaultAction listbox messages to the view class for
processing.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyListDialog::wxPropertyListDialog}
\func{void}{wxPropertyListDialog}{\param{wxPropertyListView *}{view}, \param{wxWindow *}{parent}, \param{char *}{title},
\param{bool}{ modal=false}, \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
\param{long}{ style=wxDEFAULT\_DIALOG\_STYLE}, \param{char *}{name=``dialogBox"}}
Constructor.
\membersection{wxPropertyListDialog::\destruct{wxPropertyListDialog}}
\func{void}{\destruct{wxPropertyListDialog}}{\void}
Destructor.

View File

@@ -1,43 +0,0 @@
\section{\class{wxPropertyListFrame}}\label{wxpropertylistframe}
The {\bf wxPropertyListFrame} class is a prepackaged frame which can
be used for viewing a property list. Pass a property list view object, and the frame
will pass OnClose messages to the view class for processing.
Call Initialize to create the panel and associate the view; override OnCreatePanel
if you wish to use a panel class other than the default wxPropertyListPanel.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyListFrame::wxPropertyListFrame}
\func{void}{wxPropertyListFrame}{\param{wxPropertyListView *}{view}, \param{wxFrame *}{parent}, \param{char *}{title},
\param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
\param{long}{ style=wxSDI $\|$ wxDEFAULT\_FRAME}, \param{char *}{name=``frame"}}
Constructor.
\membersection{wxPropertyListFrame::\destruct{wxPropertyListFrame}}
\func{void}{\destruct{wxPropertyListFrame}}{\void}
Destructor.
\membersection{wxPropertyListFrame::GetPropertyPanel}
\func{wxPanel *}{GetPropertyPanel}{\void}
Returns the panel associated with the frame.
\membersection{wxPropertyListFrame::Initialize}
\func{bool}{Initialize}{\void}
Must be called to create the panel and associate the view with the panel and frame.
\membersection{wxPropertyListFrame::OnCreatePanel}
\func{wxPanel *}{OnCreatePanel}{\param{wxFrame *}{parent}, \param{wxPropertyListView *}{view}}
Creates a panel. Override this to create a panel type other than wxPropertyListPanel.

View File

@@ -1,24 +0,0 @@
\section{\class{wxPropertyListPanel}}\label{wxpropertylistpanel}
The {\bf wxPropertyListPanel} class is a prepackaged panel which can
be used for viewing a property list. Pass a property list view object, and the panel
will pass OnDefaultAction listbox messages to the view class for
processing.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyListPanel::wxPropertyListPanel}
\func{void}{wxPropertyListPanel}{\param{wxPropertyListView *}{view}, \param{wxWindow *}{parent},
\param{const wxPoint&}{ pos = wxDefaultPosition},
\param{const wxSize&}{ size = wxDefaultSize},
\param{long}{ style=0}, \param{char *}{name=``panel"}}
Constructor.
\membersection{wxPropertyListPanel::\destruct{wxPropertyListPanel}}
\func{void}{\destruct{wxPropertyListPanel}}{\void}
Destructor.

View File

@@ -1,556 +0,0 @@
\chapter{Property sheet classes}\label{proplist}
\section{Introduction}\label{proplistintro}
The Property Sheet Classes help the programmer to specify complex dialogs and
their relationship with their associated data. By specifying data as a
wxPropertySheet containing wxProperty objects, the programmer can use
a range of available or custom wxPropertyView classes to allow the user to
edit this data. Classes derived from wxPropertyView act as mediators between the
wxPropertySheet and the actual window (and associated panel items).
For example, the wxPropertyListView is a kind of wxPropertyView which displays
data in a Visual Basic-style property list (see \helpref{the next section}{proplistappearance} for
screen shots). This is a listbox containing names and values, with
an edit control and other optional controls via which the user edits the selected
data item.
wxPropertyFormView is another kind of wxPropertyView which mediates between
the data and a panel or dialog box which has already been created. This makes it a contender for
the replacement of wxForm, since programmer-controlled layout is going to be much more
satisfactory. If automatic layout is desired, then wxPropertyListView could be used instead.
The main intention of this class library was to provide property {\it list} behaviour, but
it has been generalised as much as possible so that the concept of a property sheet and its viewers
can reduce programming effort in a range of user interface tasks.
For further details on the classes and how they are used, please see \helpref{Property classes overview}{proplistpropertyoverview}.
\subsection{The appearance and behaviour of a property list view}\label{proplistappearance}
The property list, as seen in an increasing number of development tools
such as Visual Basic and Delphi, is a convenient and compact method for
displaying and editing a number of items without the need for one
control per item, and without the need for designing a special form. The
controls are as follows:
\begin{itemize}\itemsep=0pt
\item A listbox showing the properties and their current values, which has double-click
properties dependent on the nature of the current property;
\item a text editing area at the top of the display, allowing the user to edit
the currently selected property if appropriate;
\item `confirm' and `cancel' buttons to confirm or cancel an edit (for the property, not the
whole sheet);
\item an optional list that appears when the user can make a choice from several known possible values;
\item a small Edit button to invoke `detailed editing' (perhaps showing or hiding the above value list, or
maybe invoking a common dialog);
\item optional OK/Close, Cancel and Help buttons for the whole dialog.
\end{itemize}
The concept of `detailed editing' versus quick editing gives the user a choice
of editing mode, so novice and expert behaviour can be catered for, or the user can just
use what he feels comfortable with.
Behaviour alters depending on the kind of property being edited. For example, a boolean value has
the following behaviour:
\begin{itemize}\itemsep=0pt
\item Double-clicking on the item toggles between true and false.
\item Showing the value list enables the user to select true or false.
\item The user may be able to type in the word true or false, or the edit control
may be read-only to disallow this since it is error-prone.
\end{itemize}
A list of strings may pop up a dialog for editing them, a simple string just allows text editing,
double-clicking a colour property may show a colour selector, double-clicking on a filename property may
show a file selector (in addition to being able to type in the name in the edit control), etc.
Note that the `type' of property, such as string or integer, does not
necessarily determine the behaviour of the property. The programmer has
to be able to specify different behaviours for the same type, depending
on the meaning of the property. For example, a colour and a filename may
both be strings, but their editing behaviour should be different. This
is why objects of type wxPropertyValidator need to be used, to define
behaviour for a given class of properties or even specific property
name. Objects of class wxPropertyView contain a list of property
registries, which enable reuse of bunches of these validators in
different circumstances. Or a wxProperty can be explicitly set to use a
particular validator object.
The following screen shot of the property classes test program shows the
user editing a string, which is constrained to be one of three possible
values.
\helponly{\image{}{prop1.bmp}}
The second picture shows the user having entered a integer that
was outside the range specified to the validator. Note that in this picture,
the value list is hidden because it is not used when editing an integer.
\helponly{\image{}{prop2.bmp}}
\section{Headers}\label{proplistfiles}
The property class library comprises the following files:
\begin{itemize}\itemsep=0pt
\item prop.h: base property class header
\item proplist.h: wxPropertyListView and associated classes
\item propform.h: wxPropertyListView and associated classes
\end{itemize}
\section{Topic overviews}\label{proplistoverviews}
This chapter contains a selection of topic overviews.
\subsection{Property classes overview}\label{proplistpropertyoverview}
The property classes help a programmer to express relationships between
data and physical windows, in particular:
\begin{itemize}\itemsep=0pt
\item the transfer of data to and from the physical controls;
\item the behaviour of various controls and custom windows for particular
types of data;
\item the validation of data, notifying the user when incorrect data is entered,
or even better, constraining the input so only valid data can be entered.
\end{itemize}
With a consistent framework, the programmer should be able to use existing
components and design new ones in a principled manner, to solve many data entry
requirements.
Each datum is represented in a \helpref{wxProperty}{wxproperty}, which has a name and a value.
Various C++ types are permitted in the value of a property, and the property can store a pointer
to the data instead of a copy of the data. A \helpref{wxPropertySheet}{wxpropertysheet} represents a number of these properties.
These two classes are independent from the way in which the data is visually manipulated. To
mediate between property sheets and windows, the abstract class \helpref{wxPropertyView}{wxpropertyview} is
available for programmers to derive new kinds of view. One kind of view that is available is the \helpref{wxPropertyListView}{wxpropertylistview},
which displays the data in a Visual Basic-style list, with a small number of controls for editing
the currently selected property. Another is \helpref{wxPropertyFormView}{wxpropertyformview} which
mediates between an existing dialog or panel and the property sheet.
The hard work of mediation is actually performed by validators, which are instances of classes
derived from \helpref{wxPropertyValidator}{wxpropertyvalidator}. A validator is associated with
a particular property and is responsible for
responding to user interface events, and displaying, updating and checking the property value.
Because a validator's behaviour depends largely on the kind of view being used, there has to be
a separate hierarchy of validators for each class of view. So for wxPropertyListView, there is
an abstract class \helpref{wxPropertyListValidator}{wxpropertylistvalidator} from which concrete
classes are derived, such as \helpref{wxRealListValidator}{wxreallistvalidator} and
\rtfsp\helpref{wxStringListValidator}{wxstringlistvalidator}.
A validator can be explicitly set for a property, so there is no doubt which validator
should be used to edit that property. However, it is also possible to define a registry
of validators, and have the validator chosen on the basis of the {\it role} of the property.
So a property with a ``filename" role would match the ``filename" validator, which pops
up a file selector when the user double clicks on the property.
You don't have to define your own frame or window classes: there are some predefined
that will work with the property list view. See \helpref{Window classes}{proplistwindowclasses} for
further details.
\subsubsection{Example 1: Property list view}
The following code fragment shows the essentials of creating a registry of
standard validators, a property sheet containing some properties, and
a property list view and dialog or frame. RegisterValidators will be
called on program start, and PropertySheetTest is called in response to a
menu command.
Note how some properties are created with an explicit reference to
a validator, and others are provided with a ``role'' which can be matched
against a validator in the registry.
The interface generated by this test program is shown in the section \helpref{Appearance and
behaviour of a property list view}{proplistappearance}.
\begin{verbatim}
void RegisterValidators(void)
{
myListValidatorRegistry.RegisterValidator((wxString)"real", new wxRealListValidator);
myListValidatorRegistry.RegisterValidator((wxString)"string", new wxStringListValidator);
myListValidatorRegistry.RegisterValidator((wxString)"integer", new wxIntegerListValidator);
myListValidatorRegistry.RegisterValidator((wxString)"bool", new wxBoolListValidator);
}
void PropertyListTest(Bool useDialog)
{
wxPropertySheet *sheet = new wxPropertySheet;
sheet->AddProperty(new wxProperty("fred", 1.0, "real"));
sheet->AddProperty(new wxProperty("tough choice", (Bool)true, "bool"));
sheet->AddProperty(new wxProperty("ian", (long)45, "integer", new wxIntegerListValidator(-50, 50)));
sheet->AddProperty(new wxProperty("bill", 25.0, "real", new wxRealListValidator(0.0, 100.0)));
sheet->AddProperty(new wxProperty("julian", "one", "string"));
sheet->AddProperty(new wxProperty("bitmap", "none", "string", new wxFilenameListValidator("Select a bitmap file", "*.bmp")));
wxStringList *strings = new wxStringList("one", "two", "three", NULL);
sheet->AddProperty(new wxProperty("constrained", "one", "string", new wxStringListValidator(strings)));
wxPropertyListView *view =
new wxPropertyListView(NULL,
wxPROP_BUTTON_CHECK_CROSS|wxPROP_DYNAMIC_VALUE_FIELD|wxPROP_PULLDOWN);
wxDialogBox *propDialog = NULL;
wxPropertyListFrame *propFrame = NULL;
if (useDialog)
{
propDialog = new wxPropertyListDialog(view, NULL, "Property Sheet Test", true, -1, -1, 400, 500);
}
else
{
propFrame = new wxPropertyListFrame(view, NULL, "Property Sheet Test", -1, -1, 400, 500);
}
view->AddRegistry(&myListValidatorRegistry);
if (useDialog)
{
view->ShowView(sheet, propDialog);
propDialog->Centre(wxBOTH);
propDialog->Show(true);
}
else
{
propFrame->Initialize();
view->ShowView(sheet, propFrame->GetPropertyPanel());
propFrame->Centre(wxBOTH);
propFrame->Show(true);
}
}
\end{verbatim}
\subsubsection{Example 2: Property form view}
This example is similar to Example 1, but uses a property form view to
edit a property sheet using a predefined dialog box.
\begin{verbatim}
void RegisterValidators(void)
{
myFormValidatorRegistry.RegisterValidator((wxString)"real", new wxRealFormValidator);
myFormValidatorRegistry.RegisterValidator((wxString)"string", new wxStringFormValidator);
myFormValidatorRegistry.RegisterValidator((wxString)"integer", new wxIntegerFormValidator);
myFormValidatorRegistry.RegisterValidator((wxString)"bool", new wxBoolFormValidator);
}
void PropertyFormTest(Bool useDialog)
{
wxPropertySheet *sheet = new wxPropertySheet;
sheet->AddProperty(new wxProperty("fred", 25.0, "real", new wxRealFormValidator(0.0, 100.0)));
sheet->AddProperty(new wxProperty("tough choice", (Bool)true, "bool"));
sheet->AddProperty(new wxProperty("ian", (long)45, "integer", new wxIntegerFormValidator(-50, 50)));
sheet->AddProperty(new wxProperty("julian", "one", "string"));
wxStringList *strings = new wxStringList("one", "two", "three", NULL);
sheet->AddProperty(new wxProperty("constrained", "one", "string", new wxStringFormValidator(strings)));
wxPropertyFormView *view = new wxPropertyFormView(NULL);
wxDialogBox *propDialog = NULL;
wxPropertyFormFrame *propFrame = NULL;
if (useDialog)
{
propDialog = new wxPropertyFormDialog(view, NULL, "Property Form Test", true, -1, -1, 400, 300);
}
else
{
propFrame = new wxPropertyFormFrame(view, NULL, "Property Form Test", -1, -1, 400, 300);
propFrame->Initialize();
}
wxPanel *panel = propDialog ? propDialog : propFrame->GetPropertyPanel();
panel->SetLabelPosition(wxVERTICAL);
// Add items to the panel
(void) new wxButton(panel, (wxFunction)NULL, "OK", -1, -1, -1, -1, 0, "ok");
(void) new wxButton(panel, (wxFunction)NULL, "Cancel", -1, -1, 80, -1, 0, "cancel");
(void) new wxButton(panel, (wxFunction)NULL, "Update", -1, -1, 80, -1, 0, "update");
(void) new wxButton(panel, (wxFunction)NULL, "Revert", -1, -1, -1, -1, 0, "revert");
panel->NewLine();
// The name of this text item matches the "fred" property
(void) new wxText(panel, (wxFunction)NULL, "Fred", "", -1, -1, 90, -1, 0, "fred");
(void) new wxCheckBox(panel, (wxFunction)NULL, "Yes or no", -1, -1, -1, -1, 0, "tough choice");
(void) new wxSlider(panel, (wxFunction)NULL, "Sliding scale", 0, -50, 50, 100, -1, -1, wxHORIZONTAL, "ian");
panel->NewLine();
(void) new wxListBox(panel, (wxFunction)NULL, "Constrained", wxSINGLE, -1, -1, 100, 90, 0, NULL, 0, "constrained");
view->AddRegistry(&myFormValidatorRegistry);
if (useDialog)
{
view->ShowView(sheet, propDialog);
view->AssociateNames();
view->TransferToDialog();
propDialog->Centre(wxBOTH);
propDialog->Show(true);
}
else
{
view->ShowView(sheet, propFrame->GetPropertyPanel());
view->AssociateNames();
view->TransferToDialog();
propFrame->Centre(wxBOTH);
propFrame->Show(true);
}
}
\end{verbatim}
\subsection{Validator classes overview}\label{proplistvalidatoroverview}
Classes: \helpref{Validator classes}{proplistvalidatorclasses}
The validator classes provide functionality for mediating between a wxProperty and
the actual display. There is a separate family of validator classes for each
class of view, since the differences in user interface for these views implies
that little common functionality can be shared amongst validators.
\subsubsection{wxPropertyValidator overview}\label{wxpropertyvalidatoroverview}
Class: \helpref{wxPropertyValidator}{wxpropertyvalidator}
This class is the root of all property validator classes. It contains a small
amount of common functionality, including functions to convert between
strings and C++ values.
A validator is notionally an object which sits between a property and its displayed
value, and checks that the value the user enters is correct, giving an error message
if the validation fails. In fact, the validator does more than that, and is akin to
a view class but at a finer level of detail. It is also responsible for
loading the dialog box control with the value from the property, putting it back
into the property, preparing special controls for editing the value, and
may even invoke special dialogs for editing the value in a convenient way.
In a property list dialog, there is quite a lot of scope for supplying custom dialogs,
such as file or colour selectors. For a form dialog, there is less scope because
there is no concept of `detailed editing' of a value: one control is associated with
one property, and there is no provision for invoking further dialogs. The reader
may like to work out how the form view could be extended to provide some of the
functionality of the property list!
Validator objects may be associated explicitly with a wxProperty, or they may be
indirectly associated by virtue of a property `kind' that matches validators having
that kind. In the latter case, such validators are stored in a validator registry
which is passed to the view before the dialog is shown. If the validator takes
arguments, such as minimum and maximum values in the case of a wxIntegerListValidator,
then the validator must be associated explicitly with the property. The validator
will be deleted when the property is deleted.
\subsubsection{wxPropertyListValidator overview}\label{wxpropertylistvalidatoroverview}
Class: \helpref{wxPropertyListValidator}{wxpropertylistvalidator}
This class is the abstract base class for property list view validators.
The list view acts upon a user interface containing a list of properties,
a text item for direct property value editing, confirm/cancel buttons for the value,
a pulldown list for making a choice between values, and OK/Cancel/Help buttons
for the dialog (see \helpref{property list appearance}{proplistappearance}).
By overriding virtual functions, the programmer can create custom
behaviour for different kinds of property. Custom behaviour can use just the
available controls on the property list dialog, or the validator can
invoke custom editors with quite different controls, which pop up in
`detailed editing' mode.
See the detailed class documentation for the members you should override
to give your validator appropriate behaviour.
\subsubsection{wxPropertyFormValidator overview}\label{wxpropertyformvalidatoroverview}
This class is the abstract base class for property form view validators.
The form view acts upon an existing dialog box or panel, where either the
panel item names correspond to property names, or the programmer has explicitly
associated the panel item with the property.
By overriding virtual functions, the programmer determines how
values are displayed or retrieved, and the checking that the validator does.
See the detailed class documentation for the members you should override
to give your validator appropriate behaviour.
\subsection{View classes overview}\label{proplistviewoverview}
Classes: \helpref{View classes}{proplistviewclasses}
An instance of a view class relates a property sheet with an actual window.
Currently, there are two classes of view: wxPropertyListView and wxPropertyFormView.
\subsubsection{wxPropertyView overview}\label{wxpropertyviewoverview}
Class: \helpref{wxPropertyView}{wxpropertyview}
This is the abstract base class for property views.
\subsubsection{wxPropertyListView overview}\label{wxpropertylistviewoverview}
Class: \helpref{wxPropertyListView}{wxpropertylistview}
The property list view defines the relationship between a property sheet and
a property list dialog or panel. It manages user interface events such as
clicking on a property, pressing return in the text edit field, and clicking
on Confirm or Cancel. These events cause member functions of the
class to be called, and these in turn may call member functions of
the appropriate validator to be called, to prepare controls, check the property value,
invoke detailed editing, etc.
\subsubsection{wxPropertyFormView overview}\label{wxpropertyformviewoverview}
Class: \helpref{wxPropertyFormView}{wxpropertyformview}
The property form view manages the relationship between a property sheet
and an existing dialog or panel.
You must first create a panel or dialog box for the view to work on.
The panel should contain panel items with names that correspond to
properties in your property sheet; or you can explicitly set the
panel item for each property.
Apart from any custom panel items that you wish to control independently
of the property-editing items, wxPropertyFormView takes over the
processing of item events. It can also control normal dialog behaviour such
as OK, Cancel, so you should also create some standard buttons that the property view
can recognise. Just create the buttons with standard names and the view
will do the rest. The following button names are recognised:
\begin{itemize}\itemsep=0pt
\item {\bf ok}: indicates the OK button. Calls wxPropertyFormView::OnOk. By default,
checks and updates the form values, closes and deletes the frame or dialog, then deletes the view.
\item {\bf cancel}: indicates the Cancel button. Calls wxPropertyFormView::OnCancel. By default,
closes and deletes the frame or dialog, then deletes the view.
\item {\bf help}: indicates the Help button. Calls wxPropertyFormView::OnHelp. This needs
to be overridden by the application for anything interesting to happen.
\item {\bf revert}: indicates the Revert button. Calls wxPropertyFormView::OnRevert,
which by default transfers the wxProperty values to the panel items (in effect
undoing any unsaved changes in the items).
\item {\bf update}: indicates the Revert button. Calls wxPropertyFormView::OnUpdate, which
by defaults transfers the displayed values to the wxProperty objects.
\end{itemize}
\subsection{wxPropertySheet overview}\label{wxpropertysheetoverview}
Classes: \helpref{wxPropertySheet}{wxpropertysheet}, \helpref{wxProperty}{wxproperty}, \helpref{wxPropertyValue}{wxpropertyvalue}
A property sheet defines zero or more properties. This is a bit like an explicit representation of
a C++ object. wxProperty objects can have values which are pointers to C++ values, or they
can allocate their own storage for values.
Because the property sheet representation is explicit and can be manipulated by
a program, it is a convenient form to be used for a variety of
editing purposes. wxPropertyListView and wxPropertyFormView are two classes that
specify the relationship between a property sheet and a user interface. You could imagine
other uses for wxPropertySheet, for example to generate a form-like user interface without
the need for GUI programming. Or for storing the names and values of command-line switches, with the
option to subsequently edit these values using a wxPropertyListView.
A typical use for a property sheet is to represent values of an object
which are only implicit in the current representation of it. For
example, in Visual Basic and similar programming environments, you can
`edit a button', or rather, edit the button's properties. One of the
properties you can edit is {\it width} - but there is no explicit
representation of width in a wxWindows button; instead, you call SetSize
and GetSize members. To translate this into a consistent,
property-oriented scheme, we could derive a new class
wxButtonWithProperties, which has two new functions: SetProperty and
GetProperty. SetProperty accepts a property name and a value, and calls
an appropriate function for the property that is being passed.
GetProperty accepts a property name, returning a property value. So
instead of having to use the usual arbitrary set of C++ member functions
to set or access attributes of a window, programmer deals merely with
SetValue/GetValue, and property names and values.
We now have a single point at which we can modify or query an object by specifying
names and values at run-time. (The implementation of SetProperty and GetProperty
is probably quite messy and involves a large if-then-else statement to
test the property name and act accordingly.)
When the user invokes the property editor for a wxButtonWithProperties, the system
creates a wxPropertySheet with `imaginary' properties such as width, height, font size
and so on. For each property, wxButtonWithProperties::GetProperty is called, and the result is
passed to the corresponding wxProperty. The wxPropertySheet is passed to a wxPropertyListView
as described elsewhere, and the user edits away. When the user has finished editing, the system calls
wxButtonWithProperties::SetProperty to transfer the wxProperty value back into the button
by way of an appropriate call, wxWindow::SetSize in the case of width and height properties.
\section{Classes by category}\label{proplistclassesbycat}
A classification of property sheet classes by category.
\subsection{Data classes}
\begin{itemize}\itemsep=0pt
\item \helpref{wxProperty}{wxproperty}
\item \helpref{wxPropertyValue}{wxpropertyvalue}
\item \helpref{wxPropertySheet}{wxpropertysheet}
\end{itemize}
\subsection{Validator classes}\label{proplistvalidatorclasses}
Validators check that the values the user has entered for a property are
valid. They can also define specific ways of entering data, such as a
file selector for a filename, and they are responsible for transferring
values between the wxProperty and the physical display.
Base classes:
\begin{itemize}\itemsep=0pt
\item \helpref{wxPropertyValidator}{wxproperty}
\item \helpref{wxPropertyListValidator}{wxpropertylistvalidator}
\item \helpref{wxPropertyFormValidator}{wxpropertyformvalidator}
\end{itemize}
List view validators:
\begin{itemize}\itemsep=0pt
\item \helpref{wxBoolListValidator}{wxboollistvalidator}
\item \helpref{wxFilenameListValidator}{wxfilenamelistvalidator}
\item \helpref{wxIntegerListValidator}{wxintegerlistvalidator}
\item \helpref{wxListOfStringsListValidator}{wxlistofstringslistvalidator}
\item \helpref{wxRealListValidator}{wxreallistvalidator}
\item \helpref{wxStringListValidator}{wxstringlistvalidator}
\end{itemize}
Form view validators:
\begin{itemize}\itemsep=0pt
\item \helpref{wxBoolFormValidator}{wxboolformvalidator}
\item \helpref{wxIntegerFormValidator}{wxintegerformvalidator}
\item \helpref{wxRealFormValidator}{wxrealformvalidator}
\item \helpref{wxStringFormValidator}{wxstringformvalidator}
\end{itemize}
\subsection{View classes}\label{proplistviewclasses}
View classes mediate between a property sheet and a physical window.
\begin{itemize}\itemsep=0pt
\item \helpref{wxPropertyView}{wxpropertyview}
\item \helpref{wxPropertyListView}{wxpropertylistview}
\item \helpref{wxPropertyFormView}{wxpropertyformview}
\end{itemize}
\subsection{Window classes}\label{proplistwindowclasses}
The class library defines some window classes that can be used as-is with a suitable
view class and property sheet.
\begin{itemize}\itemsep=0pt
\item \helpref{wxPropertyFormFrame}{wxpropertyformframe}
\item \helpref{wxPropertyFormDialog}{wxpropertyformdialog}
\item \helpref{wxPropertyFormPanel}{wxpropertyformpanel}
\item \helpref{wxPropertyListFrame}{wxpropertylistframe}
\item \helpref{wxPropertyListDialog}{wxpropertylistdialog}
\item \helpref{wxPropertyListPanel}{wxpropertylistpanel}
\end{itemize}
\subsection{Registry classes}
A validator registry is a list of validators that can be applied to properties in a property sheet.
There may be one or more registries per property view.
\begin{itemize}\itemsep=0pt
\item \helpref{wxPropertyValidatorRegistry}{wxpropertyvalidatorregistry}
\end{itemize}

View File

@@ -1,110 +0,0 @@
\section{\class{wxPropertyListValidator}}\label{wxpropertylistvalidator}
The {\bf wxPropertyListValidator} abstract class is the base class for
deriving validators for property lists.
\wxheading{See also}
\helpref{wxPropertyListValidator overview}{wxpropertylistvalidatoroverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyListValidator::wxPropertyListValidator}
\func{void}{wxPropertyListValidator}{\param{long}{ flags = wxPROP\_ALLOW\_TEXT\_EDITING}}
Constructor.
\membersection{wxPropertyListValidator::\destruct{wxPropertyListValidator}}
\func{void}{\destruct{wxPropertyListValidator}}{\void}
Destructor.
\membersection{wxPropertyListValidator::OnCheckValue}
\func{bool}{OnCheckValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Called when the Tick (Confirm) button is pressed or focus is list. Return false if the value
was invalid, which is a signal restores the old value. Return true if the value was valid.
\membersection{wxPropertyListValidator::OnClearControls}
\func{bool}{OnClearControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Allows the clearing (enabling, disabling) of property list controls, when the focus leaves the current property.
\membersection{wxPropertyListValidator::OnClearDetailControls}
\func{bool}{OnClearDetailControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Called when the focus is lost, if the validator is in detailed editing mode.
\membersection{wxPropertyListValidator::OnDisplayValue}
\func{bool}{OnDisplayValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Should display the value in the appropriate controls. The default implementation gets the
textual value from the property and inserts it into the text edit control.
\membersection{wxPropertyListValidator::OnDoubleClick}
\func{bool}{OnDoubleClick}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Called when the property is double clicked. Extra functionality can be provided,
such as cycling through possible values.
\membersection{wxPropertyListValidator::OnEdit}
\func{bool}{OnEdit}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Called when the Edit (detailed editing) button is pressed. The default implementation
calls wxPropertyListView::BeginDetailedEditing; a filename validator (for example) overrides
this function to show the file selector.
\membersection{wxPropertyListValidator::OnPrepareControls}
\func{bool}{OnPrepareControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Called to allow the validator to setup the display, such enabling or disabling buttons, and
setting the values and selection in the standard listbox control (the one optionally used for displaying
value options).
\membersection{wxPropertyListValidator::OnPrepareDetailControls}
\func{bool}{OnPrepareDetailControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Called when the property is edited `in detail', i.e. when the Edit button is pressed.
\membersection{wxPropertyListValidator::OnRetrieveValue}
\func{bool}{OnRetrieveValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Called when Tick (Confirm) is pressed or focus is lost or view wants to update
the property list. Should do the transfer from the property editing area to the property itself
\membersection{wxPropertyListValidator::OnSelect}
\func{bool}{OnSelect}{\param{bool}{ select}, \param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Called when the property is selected or deselected: typically displays the value
in the edit control (having chosen a suitable control to display: (non)editable text or listbox).
\membersection{wxPropertyListValidator::OnValueListSelect}
\func{bool}{OnValueListSelect}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
\param{wxWindow *}{parentWindow}}
Called when the value listbox is selected. The default behaviour is to copy
string to text control, and retrieve the value into the property.

View File

@@ -1,31 +0,0 @@
\section{\class{wxListOfStringsListValidator}}\label{wxlistofstringslistvalidator}
This class validates a list of strings for a list view. When editing the property,
a dialog box is presented for adding, deleting or editing entries in the list.
At present no constraints may be supplied.
You can construct a string list property value by constructing a wxStringList object.
For example:
\begin{verbatim}
myListValidatorRegistry.RegisterValidator((wxString)"stringlist",
new wxListOfStringsListValidator);
wxStringList *strings = new wxStringList("earth", "fire", "wind", "water", NULL);
sheet->AddProperty(new wxProperty("fred", strings, "stringlist"));
\end{verbatim}
\wxheading{See also}
\helpref{Validator classes}{proplistvalidatorclasses}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxListOfStringsListValidator::wxListofStringsListValidator}
\func{void}{wxListOfStringsListValidator}{\param{long}{ flags=0}}
Constructor.

View File

@@ -1,111 +0,0 @@
\section{\class{wxPropertyListView}}\label{wxpropertylistview}
The {\bf wxPropertyListView} class shows a wxPropertySheet as a Visual Basic-style property list.
\wxheading{See also}
\helpref{wxPropertyListView overview}{wxpropertylistviewoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyListView::wxPropertyListView}
\func{void}{wxPropertyListView}{ \param{wxPanel*} propPanel = NULL, \param{long}{ flags = wxPROP\_BUTTON\_DEFAULT}}
Constructor.
The {\it flags} argument can be a bit list of the following:
\begin{itemize}\itemsep=0pt
\item wxPROP\_BUTTON\_CLOSE
\item wxPROP\_BUTTON\_OK
\item wxPROP\_BUTTON\_CANCEL
\item wxPROP\_BUTTON\_CHECK\_CROSS
\item wxPROP\_BUTTON\_HELP
\item wxPROP\_DYNAMIC\_VALUE\_FIELD
\item wxPROP\_PULLDOWN
\end{itemize}
\membersection{wxPropertyListView::\destruct{wxPropertyListView}}
\func{void}{\destruct{wxPropertyListView}}{\void}
Destructor.
\membersection{wxPropertyListView::AssociatePanel}\label{wxpropertylistviewassociatepanel}
\func{void}{AssociatePanel}{\param{wxPanel *}{panel}}
Associates the window on which the controls will be displayed, with the view (sets an internal pointer to the window).
\membersection{wxPropertyListView::BeginShowingProperty}\label{wxpropertylistviewbeginshowingproperty}
\func{bool}{BeginShowingProperty}{\param{wxProperty *}{property}}
Finds the appropriate validator and loads the property into the controls, by calling
wxPropertyValidator::OnPrepareControls and then wxPropertyListView::DisplayProperty.
\membersection{wxPropertyListView::DisplayProperty}\label{wxpropertylistviewdisplayproperty}
\func{bool}{DisplayProperty}{\param{wxProperty *}{property}}
Calls wxPropertyValidator::OnDisplayValue for the current property's validator. This function
gets called by wxPropertyListView::BeginShowingProperty, which is in turn called
from ShowProperty, called by OnPropertySelect, called by the listbox callback when selected.
\membersection{wxPropertyListView::EndShowingProperty}\label{wxpropertylistviewendshowingproperty}
\func{bool}{EndShowingProperty}{\param{wxProperty *}{property}}
Finds the appropriate validator and unloads the property from the controls, by calling
wxPropertyListView::RetrieveProperty, wxPropertyValidator::OnClearControls and (if we're in
detailed editing mode) wxPropertyValidator::OnClearDetailControls.
\membersection{wxPropertyListView::GetPanel}\label{wxpropertylistviewgetpanel}
\func{wxPanel *}{GetPanel}{\void}
Returns the panel associated with the view.
\membersection{wxPropertyListView::GetManagedWindow}\label{wxpropertylistviewgetmanagedwindow}
\func{wxWindow *}{GetManagedWindow}{\void}
Returns the managed window (a frame or dialog) associated with the view.
\membersection{wxPropertyListView::GetWindowCancelButton}\label{wxpropertylistviewgetwindowcancelbutton}
\func{wxButton *}{GetWindowCancelButton}{\void}
Returns the window cancel button, if any.
\membersection{wxPropertyListView::GetWindowCloseButton}\label{wxpropertylistviewgetwindowclosebutton}
\func{wxButton *}{GetWindowCloseButton}{\void}
Returns the window close or OK button, if any.
\membersection{wxPropertyListView::GetWindowHelpButton}\label{wxpropertylistviewgetwindowhelpbutton}
\func{wxButton *}{GetWindowHelpButton}{\void}
Returns the window help button, if any.
\membersection{wxPropertyListView::SetManagedWindow}\label{wxpropertylistviewsetmanagedwindow}
\func{void}{SetManagedWindow}{\param{wxWindow *}{win}}
Sets the managed window (a frame or dialog) associated with the view.
\membersection{wxPropertyListView::UpdatePropertyDisplayInList}\label{wxpropertylistviewupdatepropdisplay}
\func{bool}{UpdatePropertyDisplayInList}{\param{wxProperty *}{property}}
Updates the display for the given changed property.
\membersection{wxPropertyListView::UpdatePropertyList}\label{wxpropertylistviewupdateproplist}
\func{bool}{UpdatePropertyList}{\param{bool }{clearEditArea = true}}
Updates the whole property list display.

View File

@@ -1,42 +0,0 @@
\section{\class{wxPropertyValidatorRegistry}}\label{wxpropertyvalidatorregistry}
The {\bf wxPropertyValidatorRegistry} class is used for storing validators,
indexed by the `role name' of the property, by which groups of property
can be identified for the purpose of validation and editing.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyValidatorRegistry::wxPropertyValidatorRegistry}
\func{void}{wxPropertyValidatorRegistry}{\void}
Constructor.
\membersection{wxPropertyValidatorRegistry::\destruct{wxPropertyValidatorRegistry}}
\func{void}{\destruct{wxPropertyValidatorRegistry}}{\void}
Destructor.
\membersection{wxPropertyValidatorRegistry::Clear}
\func{void}{ClearRegistry}{\void}
Clears the registry, deleting the validators.
\membersection{wxPropertyValidatorRegistry::GetValidator}
\func{wxPropertyValidator *}{GetValidator}{\param{wxString\& }{roleName}}
Retrieve a validator by the property role name.
\membersection{wxPropertyValidatorRegistry::RegisterValidator}\label{wxpropertyvalidatorregistervalidator}
\func{void}{RegisterValidator}{\param{wxString\& }{roleName}, \param{wxPropertyValidator *}{validator}}
Register a validator with the registry. {\it roleName} is a name indicating the
role of the property, such as ``filename''. Later, when a validator is chosen for
editing a property, this role name is matched against the class names of the property,
if the property does not already have a validator explicitly associated with it.

View File

@@ -1,17 +0,0 @@
\section{\class{wxRealFormValidator}}\label{wxrealformvalidator}
This class validates a range of real values for form views. The associated panel item must be a wxText.
\wxheading{See also}
\helpref{Validator classes}{proplistvalidatorclasses}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxRealFormValidator::wxRealFormValidator}
\func{void}{wxRealFormValidator}{\param{float }{min=0.0}, \param{float }{max=0.0},
\param{long}{ flags=0}}
Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.

View File

@@ -1,19 +0,0 @@
\section{\class{wxRealListValidator}}\label{wxreallistvalidator}
This class validates a range of real values for property lists.
\wxheading{See also}
\helpref{Validator classes}{proplistvalidatorclasses}
\helpref{wxPropertySheet overview}{wxpropertysheetoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxRealListValidator::wxRealListValidator}
\func{void}{wxRealListValidator}{\param{float }{min=0.0}, \param{float }{max=0.0},
\param{long}{ flags=wxPROP\_ALLOW\_TEXT\_EDITING}}
Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.

View File

@@ -1,83 +0,0 @@
\section{\class{wxPropertySheet}}\label{wxpropertysheet}
The {\bf wxPropertySheet} class is used for storing a number of
wxProperty objects (essentially names and values).
\wxheading{See also}
\helpref{wxPropertySheet overview}{wxpropertysheetoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertySheet::wxPropertySheet}
\func{void}{wxPropertySheet}{\param{const wxString}{ name = ""}}
Constructor. Sets property sheet's name to name if present.
\membersection{wxPropertySheet::\destruct{wxPropertySheet}}
\func{void}{\destruct{wxPropertySheet}}{\void}
Destructor. Destroys all contained properties.
\membersection{wxPropertySheet::AddProperty}\label{wxpropertysheetaddproperty}
\func{void}{AddProperty}{\param{wxProperty *}{property}}
Adds a property to the sheet.
\membersection{wxPropertySheet::Clear}\label{wxpropertysheetclear}
\func{void}{Clear}{\void}
Clears all the properties from the sheet (deleting them).
\membersection{wxPropertySheet::GetName}\label{wxpropertysheetgetname}
\func{wxString}{GetName}{\void}
Gets the sheet's name.
\membersection{wxPropertySheet::GetProperty}\label{wxpropertysheetgetproperty}
\func{wxProperty *}{GetProperty}{\param{wxString}{ name}}
Gets a property by name.
\membersection{wxPropertySheet::GetProperties}\label{wxpropertysheetgetproperties}
\func{wxList\&}{GetProperties}{\void}
Returns a reference to the internal list of properties.
\membersection{wxPropertySheet::HasProperty}\label{wxpropertysheethasproperty}
\func{bool}{HasProperty}{\param{wxString}{ propname}}
Returns true if sheet contains property propname.
\membersection{wxPropertySheet::RemoveProperty}\label{wxpropertysheetremoveproperty}
\func{void}{RemoveProperty}{\param{wxString}{ propname}}
Removes property propname from sheet, deleting it.
\membersection{wxPropertySheet::SetName}\label{wxpropertysheetsetname}
\func{void}{SetName}{\param{wxString}{ sheetname}}
Set the sheet's name to sheetname
\membersection{wxPropertySheet::SetProperty}\label{wxpropertysheetsetproperty}
\func{bool}{SetProperty}{\param{wxString}{ propname}, \param{wxPropertyValue}{ value}}
Sets property propname to value. Returns false if property is not a member of sheet.
\membersection{wxPropertySheet::SetAllModified}
\func{void}{SetAllModified}{\param{bool}{ flag}}
Sets the `modified' flag of each property value.

View File

@@ -1,18 +0,0 @@
\section{\class{wxStringListValidator}}\label{wxstringlistvalidator}
This class validates a string value, with an optional choice of possible values.
\wxheading{See also}
\helpref{Validator classes}{proplistvalidatorclasses}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxStringListValidator::wxStringListValidator}
\func{void}{wxStringListValidator}{\param{wxStringList *}{list=NULL}, \param{long}{ flags=0}}
Constructor. Supply a list of strings to indicate a choice, or no strings to allow the
user to freely edit the string. The string list will be deleted when the validator is deleted.

View File

@@ -1,20 +0,0 @@
\section{\class{wxStringFormValidator}}\label{wxstringformvalidator}
This class validates a string value for a form view, with an optional choice of possible values.
The associated panel item must be a wxText, wxListBox or wxChoice. For wxListBox and wxChoice items,
if the item is empty, the validator attempts to initialize the item from the strings in
the validator.
\wxheading{See also}
\helpref{Validator classes}{proplistvalidatorclasses}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxStringFormValidator::wxStringFormValidator}
\func{void}{wxStringFormValidator}{\param{wxStringList *}{list=NULL}, \param{long}{ flags=0}}
Constructor. Supply a list of strings to indicate a choice, or no strings to allow the
user to freely edit the string. The string list will be deleted when the validator is deleted.

View File

@@ -1,242 +0,0 @@
\section{\class{wxPropertyValue}}\label{wxpropertyvalue}
The {\bf wxPropertyValue} class represents the value of a property,
and is normally associated with a wxProperty object.
A wxPropertyValue has one of the following types:
\begin{itemize}\itemsep=0pt
\item wxPropertyValueNull
\item wxPropertyValueInteger
\item wxPropertyValueReal
\item wxPropertyValueBool
\item wxPropertyValueString
\item wxPropertyValueList
\item wxPropertyValueIntegerPtr
\item wxPropertyValueRealPtr
\item wxPropertyValueBoolPtr
\item wxPropertyValueStringPtr
\end{itemize}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyValue::wxPropertyValue}
\func{void}{wxPropertyValue}{\void}
Default constructor.
\func{void}{wxPropertyValue}{\param{const wxPropertyValue\& }{copyFrom}}
Copy constructor.
\func{void}{wxPropertyValue}{\param{char *}{val}}
Construction from a string value.
\func{void}{wxPropertyValue}{\param{long}{ val}}
Construction from an integer value. You may need to cast to (long) to
avoid confusion with other constructors (such as the bool constructor).
\func{void}{wxPropertyValue}{\param{bool}{ val}}
Construction from a boolean value.
\func{void}{wxPropertyValue}{\param{float}{ val}}
Construction from a floating point value.
\func{void}{wxPropertyValue}{\param{double}{ val}}
Construction from a floating point value.
\func{void}{wxPropertyValue}{\param{wxList *}{ val}}
Construction from a list of wxPropertyValue objects. The
list, but not each contained wxPropertyValue, will be deleted
by the constructor. The wxPropertyValues will be assigned to
this wxPropertyValue list. In other words, so do not delete wxList or
its data after calling this constructor.
\func{void}{wxPropertyValue}{\param{wxStringList *}{ val}}
Construction from a list of strings. The list (including the strings
contained in it) will be deleted by the constructor, so do not
destroy {\it val} explicitly.
\func{void}{wxPropertyValue}{\param{char **}{val}}
Construction from a string pointer.
\func{void}{wxPropertyValue}{\param{long *}{val}}
Construction from an integer pointer.
\func{void}{wxPropertyValue}{\param{bool *}{val}}
Construction from an boolean pointer.
\func{void}{wxPropertyValue}{\param{float *}{val}}
Construction from a floating point pointer.
The last four constructors use pointers to various C++ types, and do not
store the types themselves; this allows the values to stand in for actual
data values defined elsewhere.
\membersection{wxPropertyValue::\destruct{wxPropertyValue}}
\func{void}{\destruct{wxPropertyValue}}{\void}
Destructor.
\membersection{wxPropertyValue::Append}
\func{void}{Append}{\param{wxPropertyValue *}{expr}}
Appends a property value to the list.
\membersection{wxPropertyValue::BoolValue}
\func{bool}{BoolValue}{\void}
Returns the boolean value.
\membersection{wxPropertyValue::BoolValuePtr}
\func{bool *}{BoolValuePtr}{\void}
Returns the pointer to the boolean value.
\membersection{wxPropertyValue::ClearList}
\func{void}{ClearList}{\void}
Deletes the contents of the list.
\membersection{wxPropertyValue::Delete}
\func{void}{Delete}{\param{wxPropertyValue *}{expr}}
Deletes {\it expr} from this list.
\membersection{wxPropertyValue::GetFirst}
\func{wxPropertyValue *}{GetFirst}{\void}
Gets the first value in the list.
\membersection{wxPropertyValue::GetLast}
\func{wxPropertyValue *}{GetFirst}{\void}
Gets the last value in the list.
\membersection{wxPropertyValue::GetModified}
\func{bool}{GetModified}{\void}
Returns true if the value was modified since being created
(or since SetModified was called).
\membersection{wxPropertyValue::GetNext}
\func{wxPropertyValue *}{GetNext}{\void}
Gets the next value in the list (the one after `this').
\membersection{wxPropertyValue::GetStringRepresentation}
\func{wxString}{GetStringRepresentation}{\void}
Gets a string representation of the value.
\membersection{wxPropertyValue::IntegerValue}
\func{long}{IntegerValue}{\void}
Returns the integer value.
\membersection{wxPropertyValue::Insert}
\func{void}{Insert}{\param{wxPropertyValue *}{expr}}
Inserts a property value at the front of a list.
\membersection{wxPropertyValue::IntegerValuePtr}
\func{long *}{IntegerValuePtr}{\void}
Returns the pointer to the integer value.
\membersection{wxPropertyValue::Nth}
\func{wxPropertyValue *}{Nth}{\param{int}{ n}}
Returns the nth value of a list expression (starting from zero).
\membersection{wxPropertyValue::Number}
\func{int}{Number}{\void}
Returns the number of elements in a list expression.
\membersection{wxPropertyValue::RealValue}
\func{float}{RealValue}{\void}
Returns the floating point value.
\membersection{wxPropertyValue::RealValuePtr}
\func{float *}{RealValuePtr}{\void}
Returns the pointer to the floating point value.
\membersection{wxPropertyValue::SetModified}
\func{void}{SetModified}{\param{bool}{ flag}}
Sets the `modified' flag.
\membersection{wxPropertyValue::StringValue}
\func{char *}{StringValue}{\void}
Returns the string value.
\membersection{wxPropertyValue::StringValuePtr}
\func{char **}{StringValuePtr}{\void}
Returns the pointer to the string value.
\membersection{wxPropertyValue::Type}
\func{wxPropertyValueType}{Type}{\void}
Returns the value type.
\membersection{wxPropertyValue::operator $=$}
\func{void}{operator $=$}{\param{const wxPropertyValue\& }{val}}
\func{void}{operator $=$}{\param{const char *}{val}}
\func{void}{operator $=$}{\param{const long }{val}}
\func{void}{operator $=$}{\param{const bool }{val}}
\func{void}{operator $=$}{\param{const float }{val}}
\func{void}{operator $=$}{\param{const char **}{val}}
\func{void}{operator $=$}{\param{const long *}{val}}
\func{void}{operator $=$}{\param{const bool *}{val}}
\func{void}{operator $=$}{\param{const float *}{val}}
Assignment operators.

View File

@@ -1,41 +0,0 @@
\section{\class{wxPropertyValidator}}\label{wxpropertyvalidator}
The {\bf wxPropertyValidator} abstract class is the base class for deriving
validators for properties.
\wxheading{See also}
\helpref{wxPropertyValidator overview}{wxpropertyvalidatoroverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyValidator::wxPropertyValidator}
\func{void}{wxPropertyValidator}{\param{long}{ flags = 0}}
Constructor.
\membersection{wxPropertyValidator::\destruct{wxPropertyValidator}}
\func{void}{\destruct{wxPropertyValidator}}{\void}
Destructor.
\membersection{wxPropertyValidator::GetFlags}
\func{long}{GetFlags}{\void}
Returns the flags for the validator.
\membersection{wxPropertyValidator::GetValidatorProperty}
\func{wxProperty *}{GetValidatorProperty}{\void}
Gets the property for the validator.
\membersection{wxPropertyValidator::SetValidatorProperty}
\func{void}{SetValidatorProperty}{\param{wxProperty *}{property}}
Sets the property for the validator.

View File

@@ -1,111 +0,0 @@
\section{\class{wxPropertyView}}\label{wxpropertyview}
The {\bf wxPropertyView} abstract class is the base class for views
of property sheets, acting as intermediaries between properties and
actual windows.
\wxheading{See also}
\helpref{wxPropertyView overview}{wxpropertyviewoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxPropertyView::wxPropertyView}
\func{void}{wxPropertyView}{\param{long}{ flags = wxPROP\_BUTTON\_DEFAULT}}
Constructor.
The {\it flags} argument can be a bit list of the following:
\begin{itemize}\itemsep=0pt
\item wxPROP\_BUTTON\_CLOSE
\item wxPROP\_BUTTON\_OK
\item wxPROP\_BUTTON\_CANCEL
\item wxPROP\_BUTTON\_CHECK\_CROSS
\item wxPROP\_BUTTON\_HELP
\item wxPROP\_DYNAMIC\_VALUE\_FIELD
\item wxPROP\_PULLDOWN
\end{itemize}
\membersection{wxPropertyView::\destruct{wxPropertyView}}
\func{void}{\destruct{wxPropertyView}}{\void}
Destructor.
\membersection{wxPropertyView::AddRegistry}\label{wxpropertyviewaddregistry}
\func{void}{AddRegistry}{\param{wxPropertyValidatorRegistry *}{registry}}
Adds a registry (list of property validators) the view's list of registries, which is initially empty.
\membersection{wxPropertyView::FindPropertyValidator}\label{wxpropertyviewfindpropertyvalidator}
\func{wxPropertyValidator *}{FindPropertyValidator}{\param{wxProperty *}{property}}
Finds the property validator that is most appropriate to this property.
\membersection{wxPropertyView::GetPropertySheet}\label{wxpropertyviewgetpropertysheet}
\func{wxPropertySheet *}{GetPropertySheet}{\void}
Gets the property sheet for this view.
\membersection{wxPropertyView::GetRegistryList}\label{wxpropertyviewgetregistrylist}
\func{wxList\&}{GetRegistryList}{\void}
Returns a reference to the list of property validator registries.
\membersection{wxPropertyView::OnOk}\label{wxpropertyviewonok}
\func{void}{OnOk}{\void}
Virtual function that will be called when the OK button on the physical window is pressed (if it exists).
\membersection{wxPropertyView::OnCancel}\label{wxpropertyviewoncancel}
\func{void}{OnCancel}{\void}
Virtual function that will be called when the Cancel button on the physical window is pressed (if it exists).
\membersection{wxPropertyView::OnClose}\label{wxpropertyviewonclose}
\func{bool}{OnClose}{\void}
Virtual function that will be called when the physical window is closed. The default implementation returns false.
\membersection{wxPropertyView::OnHelp}\label{wxpropertyviewonhelp}
\func{void}{OnHelp}{\void}
Virtual function that will be called when the Help button on the physical window is pressed (if it exists).
\membersection{wxPropertyView::OnPropertyChanged}\label{wxpropertyviewonpropertychanged}
\func{void}{OnPropertyChanged}{\param{wxProperty *}{property}}
Virtual function called by a view or validator when a property's value changed. Validators
must be written correctly for this to be called. You can override this function
to respond immediately to property value changes.
\membersection{wxPropertyView::OnUpdateView}\label{wxpropertyviewonupdateview}
\func{bool}{OnUpdateView}{\void}
Called by the viewed object to update the view. The default implementation just returns
false.
\membersection{wxPropertyView::SetPropertySheet}\label{wxpropertyviewsetpropertysheet}
\func{void}{SetPropertySheet}{\param{wxPropertySheet *}{sheet}}
Sets the property sheet for this view.
\membersection{wxPropertyView::ShowView}\label{wxpropertyviewshowview}
\func{void}{ShowView}{\param{wxPropertySheet *}{sheet}, \param{wxPanel *}{panel}}
Associates this view with the given panel, and shows the view.

View File

@@ -1,55 +0,0 @@
;;; Tex2RTF initialisation file, using NO style sheet for HTML. See
;;; tex2rtf_css.ini for a version using a style sheet. You can use
;;; -macros tex2rtf.ini to specify the ini file.
runTwice = yes
titleFontSize = 12
authorFontSize = 10
authorFontSize = 10
chapterFontSize = 12
sectionFontSize = 12
subsectionFontSize = 12
contentsDepth = 2
headerRule = yes
footerRule = yes
useHeadingStyles = yes
listItemIndent=40
generateHPJ = yes
htmlBrowseButtons = bitmap
winHelpContents = yes
winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95
winHelpTitle = "wxWindows Deprecated Classes Manual"
truncateFilenames = yes
combineSubSections = yes
;;
;; These two are for generating MS HTML Help project, contents and index files.
;;
htmlWorkshopFiles = true
htmlIndex = true
; Finally, a way to specify face names
htmlFaceName = "Arial, Lucida, Helvetica"
\textasciitilde [0]{{\tt\~}}
\textasciicircum [0]{{\tt\^}}
\textbackslash [0]{{\tt$\backslash$}}
\gifsep [0]{\par}
ignoreInput = "ltx.tex"
; htmlStylesheet = "wx.css"
;\overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}}
;\htmlonly{\image{}{books.gif}}\helpref{#1}{#2}
;\sethotspotcolour{on}\sethotspotunderline{on}}
\overview [2] {\helpref{#1}{#2}}
\docparam [2]{\parskip{0}{\it #1}\htmlignore{\par}\parskip{10}\indented{1cm}{#2}}
\wxheading [1]{{\bf \htmlignore{\fcol{blue}{#1}}\htmlonly{\fcol{red}{#1}}}}
\const [0] {{\bf const}}
\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] {}
\perlnote [1] {{\bf \fcol{blue}{wxPerl note:}} #1}
%\perlnote [1] {}
; make tex2rtf understand \hbox{} macro:
\hbox [1] {#1}

View File

@@ -1,9 +0,0 @@
\chapter{Topic overviews}\label{overviews}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
This chapter contains a selection of topic overviews.
\input texpr.tex
\input tresourc.tex

View File

@@ -1,327 +0,0 @@
\section{\class{wxTreeLayout}}\label{wxtreelayout}
wxTreeLayout provides layout of simple trees with one root node, drawn left-to-right,
with user-defined spacing between nodes.
wxTreeLayout is an abstract class that must be subclassed. The programmer
defines various member functions which will access whatever data structures
are appropriate for the application, and wxTreeLayout uses these when laying
out the tree.
Nodes are identified by long integer identifiers. The derived class
communicates the actual tree structure to wxTreeLayout by defining \helpref{wxTreeLayout::GetChildren}{wxtreelayoutgetchildren}\rtfsp
and \helpref{wxTreeLayout::GetNodeParent}{wxtreelayoutgetnodeparent} functions.
The application should call \helpref{wxTreeLayout::DoLayout}{wxtreelayoutdolayout} to do the tree
layout. Depending on how the derived class has been defined, either
\rtfsp\helpref{wxTreeLayout::Draw}{wxtreelayoutdraw} must be called (for example by the OnPaint member
of a wxScrolledWindow) or the application-defined drawing code should be called
as normal.
For example, if you have an image drawing system already defined, you
may want wxTreeLayout to position existing node images in that system. So you
just need a way for wxTreeLayout to set the node image positions according to
the layout algorithm, and the rest will be done by your own image drawing
system.
The algorithm is due to Gabriel Robins \cite{robins87}, a linear-time
algorithm originally implemented in LISP for AI applications.
The original algorithm has been modified so that both X and Y planes
are calculated simultaneously, increasing efficiency slightly. The basic
code is only a page or so long.
\helponly{Below is the example tree generated by the program test.cc.
\begin{figure}
$$\image{11cm;0cm}{treetst.ps}$$
\caption{Example tree}\label{exampletree}
\end{figure}
}
\wxheading{Derived from}
wxObject
\wxheading{See also}
\helpref{wxTreeLayoutStored}{wxtreelayoutstored}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxTreeLayout::wxTreeLayout}
\func{}{wxTreeLayout}{\void}
Constructor.
\membersection{wxTreeLayout::ActivateNode}\label{wxtreelayoutactivatenode}
\func{void}{ActivateNode}{\param{long}{ id}, \param{bool }{active}}
Define this so wxTreeLayout can turn nodes on and off for drawing purposes
(not all nodes may be connected in the tree). See also \helpref{wxTreeLayout::NodeActive}{wxtreelayoutnodeactive}.
\membersection{wxTreeLayout::CalcLayout}
\func{void}{CalcLayout}{\param{long}{ id}, \param{int}{ level}}
Private function for laying out a branch.
\membersection{wxTreeLayout::DoLayout}\label{wxtreelayoutdolayout}
\func{void}{DoLayout}{\param{wxDC\&}{ dc}, \param{long}{ topNode = -1}}
Calculates the layout for the tree, optionally specifying the top node.
\membersection{wxTreeLayout::Draw}\label{wxtreelayoutdraw}
\func{void}{Draw}{\param{wxDC\&}{ dc}}
Call this to let wxTreeLayout draw the tree itself, once the layout has been
calculated with \helpref{wxTreeLayout::DoLayout}{wxtreelayoutdolayout}.
\membersection{wxTreeLayout::DrawBranch}
\func{void}{DrawBranch}{\param{long}{ from}, \param{long}{ to}, \param{wxDC\&}{ dc}}
Defined by wxTreeLayout to draw an arc between two nodes.
\membersection{wxTreeLayout::DrawBranches}
\func{void}{DrawBranches}{\param{wxDC\&}{ dc}}
Defined by wxTreeLayout to draw the arcs between nodes.
\membersection{wxTreeLayout::DrawNode}
\func{void}{DrawNode}{\param{long}{ id}, \param{wxDC\&}{ dc}}
Defined by wxTreeLayout to draw a node.
\membersection{wxTreeLayout::DrawNodes}
\func{void}{DrawNodes}{\param{wxDC\&}{ dc}}
Defined by wxTreeLayout to draw the nodes.
\membersection{wxTreeLayout::GetChildren}\label{wxtreelayoutgetchildren}
\func{void}{GetChildren}{\param{long}{ id}, \param{wxList \&}{list}}
Must be defined to return the children of node {\it id} in the given list
of integers.
\membersection{wxTreeLayout::GetNextNode}\label{wxtreelayoutgetnextnode}
\func{long}{GetNextNode}{\param{long}{ id}}
Must be defined to return the next node after {\it id}, so that wxTreeLayout can
iterate through all relevant nodes. The ordering is not important.
The function should return -1 if there are no more nodes.
\membersection{wxTreeLayout::GetNodeName}
\constfunc{wxString}{GetNodeName}{\param{long}{ id}}
May optionally be defined to get a node's name (for example if leaving
the drawing to wxTreeLayout).
\membersection{wxTreeLayout::GetNodeSize}
\constfunc{void}{GetNodeSize}{\param{long}{ id}, \param{long*}{ x}, \param{long*}{ y}}
Can be defined to indicate a node's size, or left to wxTreeLayout to use the
name as an indication of size.
\membersection{wxTreeLayout::GetNodeParent}\label{wxtreelayoutgetnodeparent}
\constfunc{long}{GetNodeParent}{\param{long}{ id}}
Must be defined to return the parent node of {\it id}.
The function should return -1 if there is no parent.
\membersection{wxTreeLayout::GetNodeX}
\constfunc{long}{GetNodeX}{\param{long}{ id}}
Must be defined to return the current X position of the node. Note that
coordinates are assumed to be at the top-left of the node so some conversion
may be necessary for your application.
\membersection{wxTreeLayout::GetNodeY}
\constfunc{long}{GetNodeY}{\param{long}{ id}}
Must be defined to return the current Y position of the node. Note that
coordinates are assumed to be at the top-left of the node so some conversion
may be necessary for your application.
\membersection{wxTreeLayout::GetLeftMargin}
\constfunc{long}{GetLeftMargin}{\void}
Gets the left margin set with \helpref{wxTreeLayout::SetMargins}{wxtreelayoutsetmargins}.
\membersection{wxTreeLayout::GetOrientation}
\constfunc{bool}{GetOrientation}{\void}
Gets the orientation: true means top-to-bottom, false means left-to-right (the default).
\membersection{wxTreeLayout::GetTopMargin}
\constfunc{long}{GetTopMargin}{\void}
Gets the top margin set with \helpref{wxTreeLayout::SetMargins}{wxtreelayoutsetmargins}.
\membersection{wxTreeLayout::GetTopNode}
\constfunc{long}{GetTopNode}{\void}
wxTreeLayout calls this to get the top of the tree. Don't redefine this; call
\rtfsp\helpref{wxTreeLayout::SetTopNode}{wxtreelayoutsettopnode} instead before calling \helpref{wxTreeLayout::DoLayout}{wxtreelayoutdolayout}.
\membersection{wxTreeLayout::GetXSpacing}
\constfunc{long}{GetXSpacing}{\void}
Gets the horizontal spacing between nodes.
\membersection{wxTreeLayout::GetYSpacing}
\constfunc{long}{GetYSpacing}{\void}
Gets the vertical spacing between nodes.
\membersection{wxTreeLayout::Initialize}
\func{void}{Initialize}{\void}
Initializes wxTreeLayout. Call from application or overridden {\bf Initialize}
or constructor.
\membersection{wxTreeLayout::NodeActive}\label{wxtreelayoutnodeactive}
\func{bool}{NodeActive}{\param{long}{ id}}
Define this so wxTreeLayout can know which nodes are to be drawn (not all
nodes may be connected in the tree). See also \helpref{wxTreeLayout::ActivateNode}{wxtreelayoutactivatenode}.
\membersection{wxTreeLayout::SetNodeName}
\func{void}{SetNodeName}{\param{long}{ id}, \param{const wxString\& }{ name}}
May optionally be defined to set a node's name.
\membersection{wxTreeLayout::SetNodeX}
\func{void}{SetNodeX}{\param{long}{ id}, \param{long}{ x}}
Must be defined to set the current X position of the node. Note that
coordinates are assumed to be at the top-left of the node so some conversion
may be necessary for your application.
\membersection{wxTreeLayout::SetNodeY}
\func{void}{SetNodeY}{\param{long}{ id}, \param{long}{ y}}
Must be defined to set the current Y position of the node. Note that
coordinates are assumed to be at the top-left of the node so some conversion
may be necessary for your application.
\membersection{wxTreeLayout::SetOrientation}
\func{void}{SetOrientation}{\param{bool}{ orientation}}
Sets the tree orientation: true means top-to-bottom, false means left-to-right (the default).
\membersection{wxTreeLayout::SetTopNode}\label{wxtreelayoutsettopnode}
\func{void}{SetTopNode}{\param{long}{ id}}
Call this to identify the top of the tree to wxTreeLayout.
\membersection{wxTreeLayout::SetSpacing}
\func{void}{SetSpacing}{\param{long}{ x}, \param{long}{ y}}
Sets the horizontal and vertical spacing between nodes in the tree.
\membersection{wxTreeLayout::SetMargins}\label{wxtreelayoutsetmargins}
\func{void}{SetMargins}{\param{long}{ x}, \param{long}{ y}}
Sets the left and top margins of the whole tree.
\section{\class{wxTreeLayoutStored}}\label{wxtreelayoutstored}
wxTreeLayoutStored provides storage for node labels, position and client data. It also provides hit-testing
(which node a mouse event occurred on). It is usually a more convenient class to use than wxTreeLayout.
\wxheading{Derived from}
\helpref{wxTreeLayout}{wxtreelayout}\\
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxTreeLayout}{wxtreelayout}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxTreeLayoutStored::wxTreeLayoutStored}
\func{}{wxTreeLayoutStored}{\param{int }{noNodes = 200}}
Constructor. Specify the maximum number of nodes to be allocated.
\membersection{wxTreeLayoutStored::AddChild}\label{wxtreelayoutstoredaddchild}
\func{long}{AddChild}{\param{const wxString\&}{ name}, \param{const wxString\&}{ parent = ""}}
Adds a child with a given parent, returning the node id.
\membersection{wxTreeLayoutStored::GetClientData}\label{wxtreelayoutstoredgetclientdata}
\constfunc{long}{GetClientData}{\param{long}{ id}}
Gets the client data for the given node.
\membersection{wxTreeLayoutStored::GetNode}\label{wxtreelayoutstoredgetnode}
\constfunc{wxStoredNode*}{GetNode}{\param{long}{ id}}
Returns the wxStoredNode object for the given node id.
\membersection{wxTreeLayoutStored::GetNodeCount}\label{wxtreelayoutstoredgetnodecount}
\constfunc{int}{GetNodeCount}{\void}
Returns the current number of nodes.
\membersection{wxTreeLayoutStored::GetNumNodes}\label{wxtreelayoutstoredgetnumnodes}
\constfunc{int}{GetNumNodes}{\void}
Returns the maximum number of nodes.
\membersection{wxTreeLayoutStored::HitTest}\label{wxtreelayoutstoredhittest}
\func{wxString}{HitTest}{\param{wxMouseEvent\&}{ event}, \param{wxDC\& }{dc}}
Returns a string with the node name corresponding to the position of the mouse event, or the empty string if no node
was detected.
\membersection{wxTreeLayoutStored::NameToId}\label{wxtreelayoutstorednametoid}
\func{long}{NameToId}{\param{const wxString\&}{ name}}
Returns the id for the given node name, or -1 if there was no such node.
\membersection{wxTreeLayoutStored::SetClientData}\label{wxtreelayoutstoredsetclientdata}
\func{void}{SetClientData}{\param{long}{ id}, \param{long}{ clientData}}
Sets client data for the given node.

View File

@@ -1,335 +0,0 @@
\section{The wxWindows resource system}\label{resourceformats}
wxWindows has an optional {\it resource file} facility,
which allows separation of dialog, menu, bitmap and icon specifications
from the application code.
{\bf NOTE:} this format is now deprecated in favour of the XML-based \helpref{XRC resource system}{xrcoverview}.
However it is still available if wxUSE\_RESOURCES is enabled.
The format is similar in principle to the Windows resource file (whose ASCII form is
suffixed .RC and whose binary form is suffixed .RES). The wxWindows resource
file is currently ASCII-only, suffixed .WXR. Note that under Windows,
the .WXR file does not {\it replace} the native Windows resource file,
it merely supplements it. There is no existing native resource format in X
(except for the defaults file, which has limited expressive power).
For details of functions for manipulating resource files and loading
user interface elements, see \helpref{wxWindows resource functions}{resourcefuncs}.
You can use Dialog Editor to create resource files. Unfortunately neither
Dialog Editor nor the .WXR format currently cover all wxWindows controls;
some are missing, such as wxSpinCtrl, wxSpinButton, wxListCtrl, wxTreeCtrl and others.
Note that in later versions of wxWindows, this resource format will be replaced
by XML specifications that can also include sizers.
\subsection{The format of a .WXR file}
A wxWindows resource file may look a little odd at first. It is C++
compatible, comprising mostly of static string variable declarations with
wxExpr syntax within the string.
Here's a sample .WXR file:
\begin{verbatim}
/*
* wxWindows Resource File
*
*/
#include "noname.ids"
static char *my_resource = "bitmap(name = 'my_resource',\
bitmap = ['myproject', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\
bitmap = ['myproject.xpm', wxBITMAP_TYPE_XPM, 'X']).";
static char *menuBar11 = "menu(name = 'menuBar11',\
menu = \
[\
['&File', 1, '', \
['&Open File', 2, 'Open a file'],\
['&Save File', 3, 'Save a file'],\
[],\
['E&xit', 4, 'Exit program']\
],\
['&Help', 5, '', \
['&About', 6, 'About this program']\
]\
]).";
static char *project_resource = "icon(name = 'project_resource',\
icon = ['project', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\
icon = ['project_data', wxBITMAP_TYPE_XBM, 'X']).";
static char *panel3 = "dialog(name = 'panel3',\
style = '',\
title = 'untitled',\
button_font = [14, 'wxSWISS', 'wxNORMAL', 'wxBOLD', 0],\
label_font = [10, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],\
x = 0, y = 37, width = 292, height = 164,\
control = [1000, wxButton, 'OK', '', 'button5', 23, 34, -1, -1, 'my_resource'],\
control = [1001, wxStaticText, 'A Label', '', 'message7', 166, 61, -1, -1, 'my_resource'],\
control = [1002, wxTextCtrl, 'Text', 'wxTE_MULTITEXT', 'text8', 24, 110, -1, -1]).";
\end{verbatim}
As you can see, C++-style comments are allowed, and apparently include files
are supported too: but this is a special case, where the included file
is a file of defines shared by the C++ application code and resource file
to relate identifiers (such as FILE\_OPEN) to integers.
Each {\it resource object} is of standard \helpref{wxExpr}{wxexpr} syntax, that is,
an object name such as {\bf dialog} or {\bf icon}, then an open
parenthesis, a list of comma-delimited attribute/value pairs, a closing
parenthesis, and a full stop. Backslashes are required to escape newlines,
for the benefit of C++ syntax. If double quotation marks are used to
delimit strings, they need to be escaped with backslash within a C++ string
(so it is easier to use single quotation marks instead).
\normalbox{{\it A note on string syntax:} A string that begins with
an alphabetic character, and contains only alphanumeric characters,
hyphens and underscores, need not be quoted at all. Single quotes and double
quotes may be used to delimit more complex strings. In fact, single-quoted
and no-quoted strings are actually called {\it words}, but are treated
as strings for the purpose of the resource system.}
A resource file like this is typically included in the application main file,
as if it were a normal C++ file. This eliminates the need for a separate
resource file to be distributed alongside the executable. However, the
resource file can be dynamically loaded if desired (useful for non-C++
languages such as Python).
Once included, the resources need to be `parsed' (interpreted), because
so far the data is just a number of static string variables. The function\rtfsp
{\bf ::wxResourceParseData} is called early on in initialization of the application
(usually in {\bf wxApp::OnInit}) with a variable as argument. This may need to be
called a number of times, one for each variable. However, more than one
resource `object' can be stored in one string variable at a time, so you can
get all your resources into one variable if you want to.
{\bf ::wxResourceParseData} parses the contents of the resource, ready for use
by functions such as {\bf ::wxResourceCreateBitmap} and {\bf wxPanel::LoadFromResource}.
If a wxWindows resource object (such as a bitmap resource) refers to a
C++ data structure, such as static XPM data, a further call ({\bf ::wxResourceRegisterBitmapData}) needs
to be made on initialization to tell
wxWindows about this data. The wxWindows resource object will refer to a
string identifier, such as `project\_data' in the example file above.
This identifier will be looked up in a table to get the C++ static data
to use for the bitmap or icon.
In the C++ fragment below, the WXR resource file is included,
and appropriate resource initialization is carried out in {\bf OnInit}.
Note that at this stage, no actual wxWindows dialogs, menus, bitmaps or
icons are created; their `templates' are merely being set up for later
use.
\begin{verbatim}
/*
* File: project.cpp
* Purpose: main application module
*/
#include "wx/wx.h"
#include "project.h"
// Includes the dialog, menu etc. resources
#include "project.wxr"
// Includes XPM data
#include "project.xpm"
IMPLEMENT_APP(AppClass)
// Called to initialize the program
bool AppClass::OnInit()
{
wxResourceRegisterBitmapData("project_data", project_bits, project_width, project_height);
wxResourceParseData(menuBar11);
wxResourceParseData(my_resource);
wxResourceParseData(project_resource);
wxResourceParseData(panel3);
...
return true;
}
\end{verbatim}
The following code shows a dialog:
\begin{verbatim}
// project.wxr contains dialog1
MyDialog *dialog = new MyDialog;
if (dialog->LoadFromResource(this, "dialog1"))
{
wxTextCtrl *text = (wxTextCtrl *)wxFindWindowByName("text3", dialog);
if (text)
text->SetValue("wxWindows resource demo");
dialog->ShowModal();
}
dialog->Destroy();
\end{verbatim}
Please see also the resource sample.
\subsection{Dialog resource format}
A dialog resource object may be used for either panels or dialog boxes, and
consists of the following attributes. In the following, a {\it font specification}\rtfsp
is a list consisting of point size, family, style, weight, underlined, optional facename.
\begin{twocollist}\itemsep=0pt
\twocolitemruled{Attribute}{Value}
\twocolitem{id}{The integer identifier of the resource.}
\twocolitem{name}{The name of the resource.}
\twocolitem{style}{Optional dialog box or panel window style.}
\twocolitem{title}{The title of the dialog box (unused if a panel).}.
\twocolitem{modal}{Whether modal: 1 if modal, 0 if modeless, absent if a panel resource.}
\twocolitem{use\_dialog\_units}{If 1, use dialog units (dependent on the dialog font size) for control sizes and positions.}
\twocolitem{use\_system\_defaults}{If 1, override colours and fonts to use system settings instead.}
\twocolitem{button\_font}{The font used for control buttons: a list comprising point size (integer),
family (string), font style (string), font weight (string) and underlining (0 or 1).}
\twocolitem{label\_font}{The font used for control labels: a list comprising point size (integer),
family (string), font style (string), font weight (string) and underlining (0 or 1). Now obsolete; use button\_font instead.}
\twocolitem{x}{The x position of the dialog or panel.}
\twocolitem{y}{The y position of the dialog or panel.}
\twocolitem{width}{The width of the dialog or panel.}
\twocolitem{height}{The height of the dialog or panel.}
\twocolitem{background\_colour}{The background colour of the dialog or panel.}
\twocolitem{label\_colour}{The default label colour for the children of the dialog or panel. Now obsolete; use button\_colour instead.}
\twocolitem{button\_colour}{The default button text colour for the children of the dialog or panel.}
\end{twocollist}
Then comes zero or more attributes named `control' for each control
(panel item) on the dialog or panel. The value is a list of further
elements. In the table below, the names in the first column correspond to
the first element of the value list, and the second column details the
remaining elements of the list. Note that titles for some controls are obsolete
(they don't have titles), but the syntax is retained for backward compatibility.
\begin{twocollist}\itemsep=0pt
\twocolitemruled{Control}{Values}
\twocolitem{wxButton}{id (integer), title (string), window style (string), name (string), x, y, width, height, button bitmap resource (optional string), button font spec}
\twocolitem{wxCheckBox}{id (integer), title (string), window style (string), name (string), x, y, width, height, default value (optional integer, 1 or 0), label font spec}
\twocolitem{wxChoice}{id (integer), title (string), window style (string), name (string), x, y, width, height, values (optional list of strings), label font spec, button font spec}
\twocolitem{wxComboBox}{id (integer), title (string), window style (string), name (string), x, y, width, height, default text value, values (optional list of strings), label font spec, button font spec}
\twocolitem{wxGauge}{id (integer), title (string), window style (string), name (string), x, y, width, height, value (optional integer), range (optional integer), label font spec, button font spec}
\twocolitem{wxStaticBox}{id (integer), title (string), window style (string), name (string), x, y, width, height, label font spec}
\twocolitem{wxListBox}{id (integer), title (string), window style (string), name (string), x, y, width, height, values (optional list of strings), multiple (optional string, wxSINGLE or wxMULTIPLE),
label font spec, button font spec}
\twocolitem{wxStaticText}{id (integer), title (string), window style (string), name (string), x, y, width, height, message bitmap resource (optional string), label font spec}
\twocolitem{wxRadioBox}{id (integer), title (string), window style (string), name (string), x, y, width, height, values (optional list of strings), number of rows or cols,
label font spec, button font spec}
\twocolitem{wxRadioButton}{id (integer), title (string), window style (string), name (string), x, y, width, height, default value (optional integer, 1 or 0), label font spec}
\twocolitem{wxScrollBar}{id (integer), title (string), window style (string), name (string), x, y, width, height, value (optional integer),
page length (optional integer), object length (optional integer), view length (optional integer)}
\twocolitem{wxSlider}{id (integer), title (string), window style (string), name (string), x, y, width, height, value (optional integer), minimum (optional integer), maximum (optional integer),
label font spec, button font spec}
\twocolitem{wxTextCtrl}{id (integer), title (string), window style (string), name (string), x, y, width, height, default value (optional string),
label font spec, button font spec}
\end{twocollist}
\subsection{Menubar resource format}
A menubar resource object consists of the following attributes.
\begin{twocollist}\itemsep=0pt
\twocolitemruled{Attribute}{Value}
\twocolitem{name}{The name of the menubar resource.}
\twocolitem{menu}{A list containing all the menus, as detailed below.}
\end{twocollist}
The value of the {\bf menu} attribute is a list of menu item specifications, where each menu
item specification is itself a list comprising:
\begin{itemize}\itemsep=0pt
\item title (a string)
\item menu item identifier (a string or non-zero integer, see below)
\item help string (optional)
\item 0 or 1 for the `checkable' parameter (optional)
\item optionally, further menu item specifications if this item is a pulldown menu.
\end{itemize}
If the menu item specification is the empty list ([]), this is interpreted as a menu separator.
If further (optional) information is associated with each menu item in a future release of wxWindows,
it will be placed after the help string and before the optional pulldown menu specifications.
Note that the menu item identifier must be an integer if the resource is being
included as C++ code and then parsed on initialisation. Unfortunately,\rtfsp
\#define substitution is not performed inside strings, and
therefore the program cannot know the mapping. However, if the .WXR file
is being loaded dynamically, wxWindows will attempt to replace string
identifiers with \#defined integers, because it is able to parse
the included \#defines.
\subsection{Bitmap resource format}
A bitmap resource object consists of a name attribute, and one or more {\bf bitmap} attributes.
There can be more than one of these to allow specification of bitmaps that are optimum for the
platform and display.
\begin{itemize}\itemsep=0pt
\item Bitmap name or filename.
\item Type of bitmap; for example, wxBITMAP\_TYPE\_BMP\_RESOURCE. See class reference under {\bf wxBitmap} for
a full list).
\item Platform this bitmap is valid for; one of WINDOWS, X, MAC and ANY.
\item Number of colours (optional).
\item X resolution (optional).
\item Y resolution (optional).
\end{itemize}
\subsection{Icon resource format}
An icon resource object consists of a name attribute, and one or more {\bf icon} attributes.
There can be more than one of these to allow specification of icons that are optimum for the
platform and display.
\begin{itemize}\itemsep=0pt
\item Icon name or filename.
\item Type of icon; for example, wxBITMAP\_TYPE\_ICO\_RESOURCE. See class reference under {\bf wxBitmap} for
a full list).
\item Platform this bitmap is valid for; one of WINDOWS, X, MAC and ANY.
\item Number of colours (optional).
\item X resolution (optional).
\item Y resolution (optional).
\end{itemize}
\subsection{Resource format design issues}
The .WXR file format is a recent addition and subject to change.
The use of an ASCII resource file format may seem rather inefficient, but this
choice has a number of advantages:
\begin{itemize}\itemsep=0pt
\item Since it is C++ compatible, it can be included into an application's source code,
eliminating the problems associated with distributing a separate resource file
with the executable. However, it can also be loaded dynamically from a file, which will be required
for non-C++ programs that use wxWindows.
\item No extra binary file format and separate converter need be maintained for the wxWindows project
(although others are welcome to add the equivalent of the Windows `rc' resource
parser and a binary format).
\item It would be difficult to append a binary resource component onto an executable
in a portable way.
\item The file format is essentially the \helpref{wxExpr}{wxexpr} object format, for which
a parser already exists, so parsing is easy. For those programs that use wxExpr
anyway, the size overhead of the parser is minimal.
\end{itemize}
The disadvantages of the approach include:
\begin{itemize}\itemsep=0pt
\item Parsing adds a small execution overhead to program initialization.
\item Under 16-bit Windows especially, global data is at a premium.
Using a .RC resource table for some wxWindows resource data may be a partial solution,
although .RC strings are limited to 255 characters.
\item Without a resource preprocessor, it is not possible to substitute integers
for identifiers (so menu identifiers have to be written as integers in the resource
object, in addition to providing \#defines for application code convenience).
\end{itemize}
\subsection{Compiling the resource system}
To enable the resource system, set {\bf wxUSE\_WX\_RESOURCES} to 1 in setup.h.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 978 B

View File

@@ -1,31 +0,0 @@
%
% automatically generated by HelpGen $Revision$ from
% dyntbar.h at 21/Jan/02 21:14:18
%
\section{\class{BagLayout}}\label{baglayout}
BagLayout lays out items in left-to-right order from
top to bottom.
\wxheading{Derived from}
\helpref{LayoutManagerBase}{layoutmanagerbase}
\wxheading{Include files}
<wx/fl/dyntbar.h>
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{BagLayout::Layout}\label{baglayoutlayout}
\func{void}{Layout}{\param{const wxSize\& }{parentDim}, \param{wxSize\& }{resultingDim}, \param{wxLayoutItemArrayT\& }{items}, \param{int }{horizGap}, \param{int }{vertGap}}
Constructor.

View File

@@ -1,58 +0,0 @@
%
% automatically generated by HelpGen $Revision$ from
% controlbar.h at 21/Jan/02 21:14:14
%
\section{\class{wxBarIterator}}\label{wxbariterator}
Used for traversing through all bars of all rows in the pane.
\wxheading{Derived from}
No base class
\wxheading{Include files}
<wx/fl/controlbar.h>
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxBarIterator::wxBarIterator}\label{wxbariteratorwxbariterator}
\func{}{wxBarIterator}{\param{RowArrayT\& }{rows}}
Constructor, taking row array.
\membersection{wxBarIterator::BarInfo}\label{wxbariteratorbarinfo}
\func{cbBarInfo\&}{BarInfo}{\void}
Gets the current bar information.
\membersection{wxBarIterator::Next}\label{wxbariteratornext}
\func{bool}{Next}{\void}
Advances the iterator and returns TRUE if a bar is available.
\membersection{wxBarIterator::Reset}\label{wxbariteratorreset}
\func{void}{Reset}{\void}
Resets the iterator to the start of the first row.
\membersection{wxBarIterator::RowInfo}\label{wxbariteratorrowinfo}
\func{cbRowInfo\&}{RowInfo}{\void}
Returns a reference to the currently traversed row.

View File

@@ -1,259 +0,0 @@
\chapter{Introduction}\label{introduction}
\pagenumbering{arabic}%
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
\section{What is FL?}\label{whatisfl}
This manual describes FL (Frame Layout), a
class library for managing sophisticated window layout,
with panes that can be moved around the main window
and customized. FL handles many decoration and dragging
issues, giving applications the kind of docking facilities
that Visual C++ and Netscape Navigator possess.
FL was written by Aleksandras Gluchovas, and is heavily used in
wxWorkshop which he also wrote the bulk of.
{\bf Please note} that this guide is in its infancy, and contributions
from FL users are very welcome.
The following screenshot (from fl\_demo1) shows a frame with a number of
bars that can be dragged around. The vertical grippers with
two lines allow a bar to be dragged in that row, changing the
ordering of the bar if necessary.
The dotted grippers (as in Netscape Navigator) allow
a whole row to be moved, again changing the position of the row
if required. While moving a bar or row, immediate feedback
is given as the moving bar displaces other bars.
Other features: the splitter bar shows a dotted thick line as
it's dragged. Single-clicking on a row handle minimizes it to
a horizontal tab which is given its own narrow row. This allows
the user to temporarily hide a row whilst allowing quick access
to it when required.
A close button (x) hides a bar completely. You can get it back again
by right-clicking and selecting the appropriate menu item.
A left, right, up or down arrow button expands the pane in that direction.
\center{\image{}{screen01.bmp}}
\section{Compiling and using FL}
FL can be found under the 'contrib' hierarchy, in the following directories:
\begin{verbatim}
contrib/src/fl
contrib/include/wx/fl
contrib/samples/fl
contrib/docs/latex/fl
docs/html/fl
docs/htmlhelp/fl.chm
docs/pdf/fl.pdf
docs/winhelp/fl.hlp
\end{verbatim}
To compile FL:
\begin{itemize}\itemsep=0pt
\item Under Windows using VC++, open the flVC.dsw project
and compile.
\item Under Unix, FL should be configured when you configured
wxWindows. Make FL by changing directory to contrib/src/fl and
type 'make'. {\bf Note:} there is currently a
problem with the wxWindows build system that means that
only the static version of library can be built at present.
\end{itemize}
To use FL:
\begin{itemize}\itemsep=0pt
\item Under Windows using VC++, link with fl[d].lib.
\item Under Unix, link with libfl[d].a.
\end{itemize}
\section{FL concepts}
These are typical steps when adding FL functionality to your application.
\begin{itemize}\itemsep=0pt
\item include the appropriate header files;
\item create a new \helpref{wxFrameLayout}{wxframelayout} passing the top-level frame and the window that
is interpreted as the main 'client' window;
\item set an updates manager for optimizing drag operations;
\item add plugins for implementing various features;
\item add bars;
\item enable floating mode for the layout if required;
\item delete the frame layout in the main frame's destructor.
\end{itemize}
The following is taken from fl\_demo1 and shows the main code implementing the
user interface as illustrated in \helpref{What is FL?}{whatisfl}.
\begin{verbatim}
// fl headers
#include "wx/fl/controlbar.h" // core API
// extra plugins
#include "wx/fl/barhintspl.h" // bevel for bars with "X"s and grooves
#include "wx/fl/rowdragpl.h" // NC-look with draggable rows
#include "wx/fl/cbcustom.h" // customization plugin
#include "wx/fl/hintanimpl.h"
// beauty-care
#include "wx/fl/gcupdatesmgr.h" // smooth d&d
#include "wx/fl/antiflickpl.h" // double-buffered repaint of decorations
#include "wx/fl/dyntbar.h" // auto-layout toolbar
#include "wx/fl/dyntbarhnd.h" // control-bar dimension handler for it
MyFrame::MyFrame(wxFrame *frame)
: wxFrame( frame, -1, "wxWindows 2.0 wxFrameLayout Test Application", wxDefaultPosition,
wxSize( 700, 500 ),
wxCLIP_CHILDREN | wxMINIMIZE_BOX | wxMAXIMIZE_BOX |
wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION,
"freimas" )
{
mpClientWnd = CreateTextCtrl( "Client window" );
mpLayout = new wxFrameLayout( this, mpClientWnd );
mpLayout->SetUpdatesManager( new cbGCUpdatesMgr() );
// setup plugins for testing
mpLayout->PushDefaultPlugins();
mpLayout->AddPlugin( CLASSINFO( cbBarHintsPlugin ) ); // fancy "X"es and bevel for bars
mpLayout->AddPlugin( CLASSINFO( cbHintAnimationPlugin ) );
mpLayout->AddPlugin( CLASSINFO( cbRowDragPlugin ) );
mpLayout->AddPlugin( CLASSINFO( cbAntiflickerPlugin ) );
mpLayout->AddPlugin( CLASSINFO( cbSimpleCustomizationPlugin ) );
// drop in some bars
cbDimInfo sizes0( 200,45, // when docked horizontally
200,85, // when docked vertically
175,35, // when floated
FALSE, // the bar is not fixed-size
4, // vertical gap (bar border)
4 // horizontal gap (bar border)
);
cbDimInfo sizes1( 150,35, // when docked horizontally
150,85, // when docked vertically
175,35, // when floated
TRUE, // the bar is not fixed-size
4, // vertical gap (bar border)
4 // horizontal gap (bar border)
);
cbDimInfo sizes2( 175,45, // when docked horizontally
175,37, // when docked vertically
170,35, // when floated
TRUE, // the bar is not fixed-size
4, // vertical gap (bar border)
4, // horizontal gap (bar border)
new cbDynToolBarDimHandler()
);
mpLayout->AddBar( CreateTextCtrl("Hello"), // bar window
sizes0, FL_ALIGN_TOP, // alignment ( 0-top,1-bottom, etc)
0, // insert into 0th row (vert. position)
0, // offset from the start of row (in pixels)
"InfoViewer1", // name for reference in customization pop-ups
TRUE
);
mpLayout->AddBar( CreateTextCtrl("Bye"), // bar window
sizes0, FL_ALIGN_TOP, // alignment ( 0-top,1-bottom, etc)
1, // insert into 0th row (vert. position)
0, // offset from the start of row (in pixels)
"InfoViewer2", // name for reference in customization pop-ups
TRUE
);
mpLayout->AddBar( CreateTextCtrl("Fixed0"), // bar window
sizes1, FL_ALIGN_TOP, // alignment ( 0-top,1-bottom, etc)
0, // insert into 0th row (vert. position)
0, // offset from the start of row (in pixels)
"ToolBar1", // name for reference in customization pop-ups
TRUE
);
wxDynamicToolBar* pToolBar = new wxDynamicToolBar();
pToolBar->Create( this, -1 );
// 1001-1006 ids of command events fired by added tool-buttons
pToolBar->AddTool( 1001, BMP_DIR "new.bmp" );
pToolBar->AddTool( 1002, BMP_DIR "open.bmp" );
pToolBar->AddTool( 1003, BMP_DIR "save.bmp" );
pToolBar->AddTool( 1004, BMP_DIR "cut.bmp" );
pToolBar->AddTool( 1005, BMP_DIR "copy.bmp" );
pToolBar->AddTool( 1006, BMP_DIR "paste.bmp" );
mpLayout->AddBar( pToolBar, // bar window (can be NULL)
sizes2, FL_ALIGN_TOP, // alignment ( 0-top,1-bottom, etc)
0, // insert into 0th row (vert. position)
0, // offset from the start of row (in pixels)
"ToolBar2", // name for reference in customization pop-ups
FALSE
);
mpLayout->EnableFloating( TRUE ); // off, thinking about wxGtk...
}
MyFrame::~MyFrame()
{
if ( mpLayout)
delete mpLayout; // should be destroyed manually
}
\end{verbatim}
\section{Controlling dragging behaviour}\label{controllingdragbehav}
Various pane-dragging behaviours are supported. FL can
show an outline of where the window would be docked
if you stopped dragging at that point.
This is a list of properties of interest in the cbCommonPaneProperties
structure:
\begin{verbatim}
bool mRealTimeUpdatesOn; // default: ON
bool mOutOfPaneDragOn; // default: ON
bool mExactDockPredictionOn; // default: OFF
bool mNonDestructFrictionOn; // default: OFF
\end{verbatim}
To get behaviour similar to Microsoft's DevStudio drag-ghost behaviour,
mRealTimeUpdatesOn have to be set to FALSE, for example:
\begin{verbatim}
cbCommonPaneProperties props;
....
....
props.mRealTimeUpdatesOn = FALSE;
fl->SetPaneProperties( props, wxALL_PANES );
\end{verbatim}
{\it mOutOfPaneDragOn} specifies whether bars can be dragged
away from this pane. (Note: this may not currently be working.)
{\it mExactDockPredictionOn} is only relevant when {\it mRealTimeUpdatesOn} is FALSE,
and then the hint rectangle behaves a little jumpily. It tries to show
exatly how the bar would look and where it would be docked if the dragging finished right
now, i.e. the final position, with all the 'friction-physics' calculated.
Otherwise the hint flies smothly above the surface only hinting whether the bar
will be docked vertically or horizontally if dropped now.
This is a feature you won't find anywhere else!
{\it mNonDestructFirctionOn} causes the bars not being dragged
to stay where they are, while the currently dragged one is 'diving'
through the underlaying panes, docking itself in and out in real time.
Otherwise the stationary bars would be pushed around messing up the composition permanently.
This flag is irelevant when {\it mRealTimeUpdatesOn} is FALSE, as the ghost-rect
does not do any docking until the drag finishes.

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