*/
 #define wxUSE_TEXTDLG 0
 
+/*
+ * Use progress dialog
+ */
+#define wxUSE_PROGRESSDLG 0
+
 /*
  * Use directory chooser dialog
  */
  * Use this control
  */
 #define wxUSE_COMBOBOX 0
+/*
+ * Use this control
+ */
+#define wxUSE_CHOICE 0
 /*
  * Use this control
  */
 /*
  * Use log classes and logging functions
  */
-#define wxUSE_LOG 1
+#define wxUSE_LOG 0
 /*
  * Use time and date classes
  */
 
   DEFAULT_wxUSE_METAFILE=no
 
   DEFAULT_wxUSE_COMMONDLGS=no
+  DEFAULT_wxUSE_DIRDLG=no
+  DEFAULT_wxUSE_PROGRESSDLG=no
   DEFAULT_wxUSE_MINIFRAME=no
   DEFAULT_wxUSE_VALIDATORS=yes
 
   DEFAULT_wxUSE_BMPBUTTON=no
   DEFAULT_wxUSE_CHECKBOX=no
   DEFAULT_wxUSE_CHECKLST=no
+  DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_COMBOBOX=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
   DEFAULT_wxUSE_METAFILE=yes
 
   DEFAULT_wxUSE_COMMONDLGS=yes
+  DEFAULT_wxUSE_DIRDLG=yes
+  DEFAULT_wxUSE_PROGRESSDLG=yes
   DEFAULT_wxUSE_MINIFRAME=yes
   DEFAULT_wxUSE_VALIDATORS=yes
 
   DEFAULT_wxUSE_BMPBUTTON=yes
   DEFAULT_wxUSE_CHECKBOX=yes
   DEFAULT_wxUSE_CHECKLST=yes
+  DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_COMBOBOX=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
   DEFAULT_wxUSE_BMPBUTTON=yes
   DEFAULT_wxUSE_CHECKBOX=yes
   DEFAULT_wxUSE_CHECKLISTBOX=yes
+  DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_BMPBUTTON=no
   DEFAULT_wxUSE_CHECKBOX=no
   DEFAULT_wxUSE_CHECKLISTBOX=no
+  DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
   DEFAULT_wxUSE_IMAGLIST=no
 WX_ARG_ENABLE(bmpbutton,   [  --enable-bmpbutton      use wxBitmapButton class], wxUSE_BMPBUTTON)
 WX_ARG_ENABLE(checkbox,    [  --enable-checkbox       use wxCheckBox class], wxUSE_CHECKBOX)
 WX_ARG_ENABLE(checklst,    [  --enable-checklst       use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
-WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxChoice and wxComboBox classes], wxUSE_COMBOBOX)
+WX_ARG_ENABLE(choice,      [  --enable-choice         use wxChoice class], wxUSE_CHOICE)
+WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxComboBox classes], wxUSE_COMBOBOX)
 WX_ARG_ENABLE(gauge,       [  --enable-gauge          use wxGauge class], wxUSE_GAUGE)
 WX_ARG_ENABLE(grid,        [  --enable-grid           use wxGrid class], wxUSE_GRID)
 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
 dnl ---------------------------------------------------------------------------
 
 WX_ARG_ENABLE(commondlg,   [  --enable-commondlg      use common dialogs (wxDirDialog, wxProgressDialog, wxTextDialog, ...)], wxUSE_COMMONDLGS)
+WX_ARG_ENABLE(dirdlg,      [  --enable-dirdlg         use wxDirDialog], wxUSE_DIRDLG)
+WX_ARG_ENABLE(progressdlg, [  --enable-progressdlg    use wxProgressDialog], wxUSE_PROGRESSDLG)
 WX_ARG_ENABLE(miniframe,   [  --enable-miniframe      use wxMiniFrame class], wxUSE_MINIFRAME)
 WX_ARG_ENABLE(tooltips,    [  --enable-tooltips       use wxToolTip class], wxUSE_TOOLTIPS)
 WX_ARG_ENABLE(splines,     [  --enable-splines        use spline drawing code], wxUSE_SPLINES)
   OPTIMISE=
 else
   if test "$GCC" = yes ; then
-    OPTIMISE="-O2"
+    OPTIMISE="-O2 -fno-rtti -fno-exceptions"
     case "${host}" in
       i586-*-*|i686-*-* )
         OPTIMISE="${OPTIMISE} "
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_CONSTRAINTS" = "yes"; then
-  AC_DEFINE(wxUSE_CONSTRAINTS)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
+    AC_DEFINE(wxUSE_CONSTRAINTS)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
 fi
 
 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
-  AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
+    AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
 fi
 
 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
-  AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
-  if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
-  fi
+    AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
+    if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
+    fi
 fi
 
 if test "$wxUSE_HELP" = "yes"; then
-  AC_DEFINE(wxUSE_HELP)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
+    AC_DEFINE(wxUSE_HELP)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
 fi
 
 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
-  AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
+    if test "$wxUSE_CONSTRAINTS" != "yes"; then
+        AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it)
+    else
+        AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
+    fi
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
 fi
 
 if test "$wxUSE_PROLOGIO" = "yes" ; then
-  AC_DEFINE(wxUSE_PROLOGIO)
+    AC_DEFINE(wxUSE_PROLOGIO)
 fi
 
 if test "$wxUSE_RESOURCES" = "yes" ; then
-  if test "$wxUSE_PROLOGIO" = "yes" ; then
-    AC_DEFINE(wxUSE_RESOURCES)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
-  else
-    AC_MSG_WARN([wxWindows ressource system requires PrologIO and can't be compiled without it.])
-  fi
+    if test "$wxUSE_PROLOGIO" = "yes" ; then
+        AC_DEFINE(wxUSE_RESOURCES)
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+    else
+        AC_MSG_WARN([wxWindows ressource system requires PrologIO and can't be compiled without it.])
+    fi
 fi
 
 if test "$wxUSE_X_RESOURCES" = "yes"; then
-  AC_DEFINE(wxUSE_X_RESOURCES)
+    AC_DEFINE(wxUSE_X_RESOURCES)
 fi
 
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_IPC" = "yes"; then
-  AC_DEFINE(wxUSE_IPC)
+    AC_DEFINE(wxUSE_IPC)
 fi
 
 if test "$wxUSE_CLIPBOARD" = "yes"; then
-  AC_DEFINE(wxUSE_CLIPBOARD)
+    AC_DEFINE(wxUSE_CLIPBOARD)
 fi
 
 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
-  if test "$wxUSE_GTK" = 1; then
-    if test "$WXGTK12" != 1; then
-      AC_MSG_WARN([Drag and drop is only supported under wxGTK 2.1])
+    if test "$wxUSE_GTK" = 1; then
+        if test "$WXGTK12" != 1; then
+            AC_MSG_WARN([Drag and drop is only supported under wxGTK 2.1])
+        fi
     fi
-  fi
 
-  if test "$wxUSE_MOTIF" = 1; then
-    AC_MSG_WARN([Drag and drop is not yet supported under Motif])
-  fi
+    if test "$wxUSE_MOTIF" = 1; then
+        AC_MSG_WARN([Drag and drop is not yet supported under Motif])
+    fi
 
-  if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
-    AC_DEFINE(wxUSE_DRAG_AND_DROP)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
-  fi
+    if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
+        AC_DEFINE(wxUSE_DRAG_AND_DROP)
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
+    fi
 fi
 
 if test "$wxUSE_SPLINES" = "yes" ; then
   AC_DEFINE(wxUSE_COMBOBOX)
 fi
 
+if test "$wxUSE_CHOICE" = "yes"; then
+  AC_DEFINE(wxUSE_CHOICE)
+fi
+
 if test "$wxUSE_BMPBUTTON" = "yes"; then
   AC_DEFINE(wxUSE_BMPBUTTON)
 fi
 fi
 
 if test "$wxUSE_IMAGLIST" = "yes"; then
-  AC_DEFINE(wxUSE_IMAGLIST)
+    AC_DEFINE(wxUSE_IMAGLIST)
 fi
 
 if test "$wxUSE_LISTBOX" = "yes"; then
-  AC_DEFINE(wxUSE_LISTBOX)
+    AC_DEFINE(wxUSE_LISTBOX)
 fi
 
 if test "$wxUSE_LISTCTRL" = "yes"; then
-  if test "$wxUSE_IMAGLIST" = "yes"; then
-    AC_DEFINE(wxUSE_LISTCTRL)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
-  else
-    AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
-  fi
+    if test "$wxUSE_IMAGLIST" = "yes"; then
+        AC_DEFINE(wxUSE_LISTCTRL)
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
+    else
+        AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
+    fi
 fi
 
 if test "$wxUSE_NOTEBOOK" = "yes"; then
-  AC_DEFINE(wxUSE_NOTEBOOK)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
+    AC_DEFINE(wxUSE_NOTEBOOK)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
 fi
 
 if test "$wxUSE_RADIOBOX" = "yes"; then
-  AC_DEFINE(wxUSE_RADIOBOX)
+    AC_DEFINE(wxUSE_RADIOBOX)
 fi
 
 if test "$wxUSE_RADIOBTN" = "yes"; then
-  AC_DEFINE(wxUSE_RADIOBTN)
+    AC_DEFINE(wxUSE_RADIOBTN)
 fi
 
 if test "$wxUSE_SASH" = "yes"; then
-  AC_DEFINE(wxUSE_SASH)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
+    AC_DEFINE(wxUSE_SASH)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
 fi
 
 if test "$wxUSE_SCROLLBAR" = "yes"; then
-  AC_DEFINE(wxUSE_SCROLLBAR)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll"
+    AC_DEFINE(wxUSE_SCROLLBAR)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll"
 fi
 
 if test "$wxUSE_SLIDER" = "yes"; then
-  AC_DEFINE(wxUSE_SLIDER)
+    AC_DEFINE(wxUSE_SLIDER)
 fi
 
 if test "$wxUSE_SPINBTN" = "yes"; then
-  AC_DEFINE(wxUSE_SPINBTN)
+    AC_DEFINE(wxUSE_SPINBTN)
 fi
 
 if test "$wxUSE_SPLITTER" = "yes"; then
-  AC_DEFINE(wxUSE_SPLITTER)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
+    AC_DEFINE(wxUSE_SPLITTER)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
 fi
 
 if test "$wxUSE_STATBMP" = "yes"; then
-  AC_DEFINE(wxUSE_STATBMP)
+    AC_DEFINE(wxUSE_STATBMP)
 fi
 
 if test "$wxUSE_STATBOX" = "yes"; then
-  AC_DEFINE(wxUSE_STATBOX)
+    AC_DEFINE(wxUSE_STATBOX)
 fi
 
 if test "$wxUSE_STATLINE" = "yes"; then
-  AC_DEFINE(wxUSE_STATLINE)
+    AC_DEFINE(wxUSE_STATLINE)
 fi
 
 if test "$wxUSE_STATUSBAR" = "yes"; then
-  AC_DEFINE(wxUSE_STATUSBAR)
+    AC_DEFINE(wxUSE_STATUSBAR)
 fi
 
 if test "$wxUSE_TABDIALOG" = "yes"; then
-  AC_DEFINE(wxUSE_TAB_DIALOG)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab"
+    AC_DEFINE(wxUSE_TAB_DIALOG)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab"
 fi
 
 if test "$wxUSE_TOOLBAR" = "yes"; then
-  AC_DEFINE(wxUSE_TOOLBAR)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
+    AC_DEFINE(wxUSE_TOOLBAR)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
 fi
 
 if test "$wxUSE_TOOLTIPS" = "yes"; then
     if test "$wxUSE_MOTIF" = 1; then
-      AC_MSG_WARN(Tooltips are not supported yet under Motif)
+        AC_MSG_WARN(Tooltips are not supported yet under Motif)
     else
-      if test "$wxUSE_WINE" = 1; then
-        AC_MSG_WARN(Tooltips are not supported yet under WINE)
-      else
-        AC_DEFINE(wxUSE_TOOLTIPS)
-      fi
+        if test "$wxUSE_WINE" = 1; then
+            AC_MSG_WARN(Tooltips are not supported yet under WINE)
+        else
+            AC_DEFINE(wxUSE_TOOLTIPS)
+        fi
     fi
 fi
 
 if test "$wxUSE_TREECTRL" = "yes"; then
-  if test "$wxUSE_IMAGLIST" = "yes"; then
-    AC_DEFINE(wxUSE_TREECTRL)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
-  else
-    AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
-  fi
+    if test "$wxUSE_IMAGLIST" = "yes"; then
+        AC_DEFINE(wxUSE_TREECTRL)
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
+    else
+        AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
+    fi
 fi
 
 dnl ---------------------------------------------------------------------------
 dnl fi
 
 if test "$wxUSE_METAFILE" = "yes"; then
-  AC_DEFINE(wxUSE_METAFILE)
+    AC_DEFINE(wxUSE_METAFILE)
 fi
 
-if test "$wxUSE_COMMONDLGS" = "yes"; then
-  dnl these classes don't depend on anything at all
-
-  if test "$wxUSE_CONSTRAINTS" != "yes"; then
-    AC_MSG_WARN(many common dialogs cannot be used without constraints so they won't be compiled without them)
-  else
-    AC_DEFINE(wxUSE_CONSTRAINTS)
-    AC_DEFINE(wxUSE_TEXTDLG)
-
-    if test "$wxUSE_TREECTRL" != "yes"; then
-      AC_MSG_WARN(wxDirDialog cannot be used without wxTreeCtrl and it won't be compiled without it)
+if test "$wxUSE_DIRDLG" = "yes"; then
+    if test "$wxUSE_CONSTRAINTS" != "yes"; then
+       AC_MSG_WARN(wxDirDialog requires constraints so it won't be compiled without them)
     else
-      AC_DEFINE(wxUSE_DIRDLG)
+        if test "$wxUSE_TREECTRL" != "yes"; then
+            AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
+        else
+            AC_DEFINE(wxUSE_DIRDLG)
+        fi
     fi
-  fi
+fi
 
-  if test "$wxUSE_PRINTING_ARCHITECTURE" = "no"; then
-    AC_MSG_WARN([wxPrintDialog class won't be compiled without printing support])
-  fi
+if test "$wxUSE_PROGRESSDLG" = "yes"; then
+    if test "$wxUSE_CONSTRAINTS" != "yes"; then
+       AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them)
+    else
+        AC_DEFINE(wxUSE_PROGRESSDLG)
+    fi
 fi
 
 if test "$wxUSE_MINIFRAME" = "yes"; then
-  AC_DEFINE(wxUSE_MINIFRAME)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
+    AC_DEFINE(wxUSE_MINIFRAME)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
 fi
 
 if test "$wxUSE_VALIDATORS" = "yes"; then
-  AC_DEFINE(wxUSE_VALIDATORS)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
+    AC_DEFINE(wxUSE_VALIDATORS)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
 fi
 
 dnl ---------------------------------------------------------------------------
 
 dnl C/C++ compiler options used to compile wxWindows
 if test "$ac_cv_prog_gcc" = "yes"; then
-  dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
-  CXXWARNINGS="-Wall"
-  dnl there is one weird warning in docview.h:71 which prevents me from doing
-  dnl this...
-  dnl CXXWARNINGS="-Wall -Werror"
+    dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
+    CXXWARNINGS="-Wall"
+    dnl there is one weird warning in docview.h:71 which prevents me from doing
+    dnl this...
+    dnl CXXWARNINGS="-Wall -Werror"
 fi
 EXTRA_CFLAGS="$WXDEBUG $PROFILE $OPTIMISE $INCLUDES"
 
 CXXFLAGS="$CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS"
 
 if test "$wxUSE_GUI" = "yes"; then
-  dnl TODO add checks that these samples will really compile (i.e. all the
-  dnl      library features they need are present)
+    dnl TODO add checks that these samples will really compile (i.e. all the
+    dnl      library features they need are present)
 
-  dnl TODO some samples are never built so far:
-  dnl      mfc, nativdlg, oleauto, ownerdrw, proplist
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS bombs controls dialogs drawing dynamic \
-                   forty fractal image richedit wxpoem"
+    dnl TODO some samples are never built so far:
+    dnl      mfc, nativdlg, oleauto, ownerdrw, proplist
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS bombs controls dialogs drawing dynamic \
+                     forty fractal image richedit wxpoem"
 fi
 
 dnl for convenience, sort the files to build in alphabetical order
 
--- /dev/null
+
+15th June '99: Sixth wxGTK 2.1 snapshot released
+  
+ 
+The biggest change is the completely rewritten configure/makefile
+system using automake. The main argument for switching to automake
+is that the resulting makefiles should be more portable so that
+people can use the native make utilities instead of GNU make. The
+new makefile sytem also handles dependencies correctly, allows for
+shared-only compilation, can be invoked from any directory for
+concurrent builds wihtin one source tree, uses libtool for greater
+shared-library platform support, has a functinonal "make uninstall",
+works with GTK, Motif and WINE, conforms better to GNU standards
+as far as configure option names are concerned and is easier to 
+maintain.
+ 
+Applied patches to compile wxGTK on OS/2.
+ 
+Configure checks for byte-order and new defines for byte swapping
+with respect to the byte-order. Added test for this to typetest sample.
+Also made BMP handler bigendian safe so that it should work on 
+Solaris and such. 
+ 
+Small changes to basic drawing stuff: made wxColour actually compare 
+RGB values in the == operator, added new constructor to wxMask,
+corrected initial background colour for DCs, it is now possible
+to use a wxWindowDC etc before there is any window (this doesn't
+make any sense, but it is what wxMSW does.)
+ 
+Added support for the PRIMARY SELECTION to the wxClipboard
+class.
+ 
+Fixed redraw bug when scrolling window-less widgets out
+of the visible area (actually a work-around for a GTK bug).
+ 
+Regrouped some samples, created new one for various versions
+of the wxTextCtrl.
+ 
+Added wxWindow::Reparent() and wxFrame::MakeModal().
+ 
+Improved handling of column width in wxListCtrl and made
+this more compatible with the wxMSW version. Also removed
+a bug from the wxImageList returning an off-by-one id for
+added images.
+ 
+Fixed keyboard hotkeys and resizing for wxMDIChildFrame
+menu bars.
+ 
+Added flag to wxSplitterWindow to update its children's
+sizes "live" instead of moving a XOR'ed bar around - this
+is a resource-draining option. Also corrected cursors
+in splitter window.
+ 
+New way to show "disabled" or greyed toolbar items.
+ 
+Rewrote parts of the tree ctrl to allow multiple selections
+and variable size items (Sylvain). These new function do not
+exist in the native Win32 tree control.
+ 
+Implemented global cursors and wxBusyCursor etc. Also removed
+another cursor misbehaviour.
+ 
+Updated many parts of the documentation to reflect changes
+in wxWindows 2.1, wxPython and more exact description of
+cross-platform issues as well as platform differences.
+ 
+Many other fixes, mainly by others...
+ 
+Further compile fixes for different architectures.
+ 
+
+  
+25th May '99: Fifth wxGTK 2.1 snapshot released
+  
+
+ 
+This is mostly a bug-fix release. We are having funny
+times to make wxGTK work well with different micro
+versions of GTK 1.2 - which is very close to impossible.
+All versions give warnings, although their number might
+vary a lot. I use GTK 1.2.3 and only get wanrnings in
+one sample (notebook) and that one is due to a bug in
+GTK - some people using GTK 1.2.2 reported hundreds of warnings
+getting spitted out for what seems like no reason.
+ 
+This snapshot contains the beginnings of our merging of
+headers, meaning that in the future all ports will
+use the same headers and will share a lot more code.
+We have taken this moment to reorganize some code and
+hope to have eliminated much bad C++ code, as reported
+primarily by SGI's compilers (Vadim Zeitlin).
+ 
+Rewritten char and key event propagation routines
+to reflect documentation and do the same on wxGTK
+as on wxMSW. If you are interested in ascii chars
+and cursor key etc, intercept EVT_CHAR, if you 
+are interested in which key actually got pressed,
+intercept EVT_KEYDOWN (Norbert Irmer).
+ 
+Control that are given -1 as their ID no longer
+get arbitrary positive IDs assigned but arbitrary
+negative IDs. This had caused some trouble with ID clashes.
+ 
+wxWindow and wxScrolledWindow no longer use the
+wxScrollEvent, but the newly invented wxScrollWinEvent
+so that no mixing up of events sent from wxSliders
+or wxScrollbars placed in a wxWindow can occur.
+ 
+Added wxProgressDialog for use with long background
+work such as printing.
+ 
+Added drawing sample and scrolling sample, both of
+which show some misbehaviours...
+ 
+When drawing with the wxXOR logical mode, wxGTK now uses
+GdkXOR (instead of GdkInvert) and when drawing in wxINVERT logical
+mode, wxGTK now uses GdkInvert (as before). When you did some
+rubberband dragging and you used wxXOR and a black pen, then
+you should change wxINVERT.
+ 
+Applied more patches for SGI and HP-UX compilation.
+ 
+More updates for wxSockets (Guilhem Lavaux). Seems to be nearly
+finished.
+ 
+You can now use threads within your GUI again. Well, 
+at least if you know what you are doing and you had a look 
+at the threads sample.
+ 
+wxGLCanvas updated so that it can share display lists
+over several windows and to not exhibit any flicker. 
+(Norber Irmer).
+ 
+wxNotebook revamped so that its process of creation matches
+wxMSW's more closely, also avoiding problems with wrong page
+number. Added InsertPage() and the possibility to prevent
+switching pages by intercepting the PAGE_CHANGING event. Also,
+wxNotebooks now get shown even if all pages are empty.
+ 
+Added Activate() to wxMDIChildFrame (Russel).
+ 
+Improved wxSplitterWindow behaviour and visual feed-back when
+given a minimal size etc (Bruce DeVisser).
+ 
+Minor updates to wxTreeCtrl, wxListBox, printing, wxClipboard,
+wxString, wxThreads and many others.
+ 
+Also wxMSW got a big face-lift, not to mention the new wxMac release...
+ 
+                       
+  
+11th May '99: Fourth wxGTK 2.1 snapshot released
+  
+ 
+This is mostly a bug-fix release. This affects wxSocket, wxThread,
+and a few GUI classes. Also more work has been done and window
+placement and decorations etc. which we hope to have finished now.
+ 
+Applied patches for FreeBSD and SGI compilation (not yet finshed).
+ 
+Updated wxPython to beta 9.
+ 
+Made wxGLCanvas work again - strangely it flickers now...
+ 
+wxStaticText is currently broken with GTK 1.2.2 (which I don't
+yet have and thus could not fix). Also, scrolling subwindows
+(although much improved including a sample) doesn't work perfectly
+due to a bug in GTK 1.2.1 (probably 1.2.2 as well).
+ 
+Added wxStaticLine.
+  
+Note that the next release might bring about changes to keyboard
+handling and scroll event intercepting from wxScrolledWindow. 
+ 
+By and large much of the code has stabilized and won't be much
+different in the final wxWindows 2.1 release. Please test as
+much as you can.
+ 
+The next release will have a new build system.
+ 
+
+  
+3rd May '99: Third wxGTK 2.1 snapshot released
+  
+ 
+Updated INSTALL.txt and SYMBOLS.txt.
+ 
+Support for Unicode is now almost complete. Most samples work in
+both Unicode and non-Unicode mode. Thanks to Ove Kaaven and Vadim.
+ 
+Internal changes required for wxOLE and addition of a very experimental
+wxOLE code section using GNOME's Bonobo library (from GNOME's CVS).
+ 
+New version of wxPython that works with the wxGTK 2.1.
+This now includes a very comprensive test/demo suite. Thanks to
+Robin Dunn, Harm v.d. Heijden and others. Beware of the hang-man...
+ 
+More fine tuning of focus handling and GUI widgets.
+ 
+Complete rewrite of wxSocket classes (still experimental).
+Thanks to Guilhem Lavaux.
+  
+wxMenuBar supports underlined shortcuts like Windows does,
+indicated by a leading & character. wxMenus now have hotkeys
+such as in wxXt and wxMSW.
+  
+Rewritten MDI subsystem.
+  
+Correcetions and additions to the printing framework including
+a paper type database (Julian).
+ 
+Several controls now support more style flags for modifying
+look (and feel) of the controls and windows.
+ 
+New implementation of idle handlers, which now send an idle
+event only once after the event queue has been emptied (which
+is what happens in the wxMSW port as well), not regularly.
+This no longer forces wxGTK applications to sleep (by having
+to call usleep()) in idle time - giving more CPU slices to
+the application if desired.
+ 
+wxGLCanvas (the OpenGl for wxWindows) now accepts keyboard input.
+ 
+The usual number of compile and bug fixes from all involved.
+ 
+
+  
+21st April '99: Second wxGTK 2.1 snapshot released
+  
+ 
+Added much code for Unicode support. Still experimental, but looks very
+cool - thanks to Ove Kaaven and Vadim Zeitlin. If you are very brave, then
+you can compile wxGTK with "configure --with-unicode".
+ 
+More updates on the dreaded issue of making frames and dialogs impossible
+to resize etc.
+ 
+Drag and Drop works now under GTK 1.2 - at least basically when dragging
+and dropping text. The API is not entirely fixed yet but seems quite
+good now. Support for different actions (copy/move/link/..) still missing.
+I also removed support for GTK 1.0 Drag and Drop - this is just broken
+and unusable in GTK 1.0 and I don't want to fix it.
+ 
+I now embed the JPEG library and handlers for JPEG and GIF have been
+added to the existing PNG and BMP (and XPM for GTK version only). In
+the future, the RPMs will not contain these libraries but depend on
+the image libraries to be preinstalled whereas the source *.tgz will
+ship with everything that is needed for wxGTK so that no downloading
+of ten image libs will be required - also avoiding problems with ten
+different kinds of libJPEG-6.0.1.7.IV beta 7. We also updated the
+PNG code to the newest PNG version.
+ 
+wxImage now makes use of the fast rendering code as provided by
+GTK 1.2 whenever possible. This should mean a speed-up for graphics
+heavy apps.
+ 
+Many fixes all over. Also should compile with GTK 1.2.0 as opposed
+to only with GTK 1.2.1 now.
+ 
+wxPython still doesn't compile, I think.
+ 
+
+  
+12th April '99: First wxGTK 2.1 snapshot released
+  
+ 
+This is the first developers' version of wxWindows 2.1 for GTK. It's main
+new feature is that it supports GTK 1.2 (as opposed to GTK 1.0) which
+will make development within the GNOME evironment a lot easier.
+ 
+Apart from the move to GTK 1.2 and the changes (some major) that were
+required as part of that work, enhancement or corrections have been
+made to many of the non-GUI classes and functions (such as wxClipboard, 
+wxThread, wxSocket, wxConfig)
+and a few GUI classes (accelerators in menus, listbox always with
+scrollbar, wxFrame honours Motif Window Manager hints, corrected tab
+traversal for broken GTK 1.0 widgets).
+ 
+There have been slight changes to the priting dialogs and their
+setup data (which might break apps using this code in previous
+versions). Also, a bug concerning printing white has been fixed
+(actually not tested).
+ 
+Although this is only the first 2.1 snapshot, there is little reason not
+to use it as many bugs from version 2.0 have been corrected. There are,
+pf course, still a few problem left with GTK 1.2 (some of which relate
+to bugs in GTK).
+ 
+I think I preserved backward compatility with GTK 1.0 and if not it
+should be easy to fix - but mostly I don't care.
+ 
+Drag'N'Drop is currently completely broken. Also, wxPython currently
+doesn't compile with this release. The OpenGL canvas still seems to
+work.
+ 
+Major targets for the final release (still a long way): a new configure
+system, support JPEG and GIF formats, wxHTML, super-duppah frame layout
+stuff, syntax-highlighting editor, possibly Unicode, possibly some GNOME 
+gooddies, possibly world domination.
+ 
+
+  
+5th March '99: wxWindows 2.0 released
+  
+ 
+This is the final version of wxWindows 2.0 for GTK. The versions for
+Windows and Motif (and also this version) are available form Julian Smart's
+site. The Mac version is still under development.
+ 
+
+  
+19th February '99: wxWindows 2.0 beta 5
+  
+ 
+This is the fifth beta release and it contains mostly bug fixes and
+updates for documentation.
+ 
+Applied compile fixes for Solaris (different flavours and compilers).
+ 
+
+  
+12th February '99: wxWindows 2.0 beta 4
+  
+ 
+This is the fourth beta release and it contains mostly bug fixes and
+updates for documentation.
+ 
+Tracked a few more cases, where the bahaviour between wxMSW and wxGTK
+differed. This was the case for closing a dialog or frame as well as
+for clearing a device context or setting its background colour and some
+other minor details.
+ 
+Most standard dialogs have been face-liftet a little.
+ 
+Implememted default buttons for GTK.
+ 
+Fixed many bugs. You guessed it.
+ 
+
+  
+29th January '99: wxWindows 2.0 beta 3
+  
+ 
+This is the third beta release and it contains mostly bug fixes. 
+ 
+There is one field where we haven't been able to fix the API yet, and that
+it Drag'n'Drop. This is mostly due to the fact that DnD in
+GTK 1.0 is hardly usable and much different from GTK 1.2 which means that
+we have to design a common API for Windows, GTK 1.0 and GTK 1.2. Although
+we are trying to prevent that, it is possible that wxWindows 2.0 (being
+based on GTK 1.0) will not have proper DnD support.
+ 
+The major changes are that tool tips have been added, threads have been completely 
+rewritten, the ODBC code has been updated and improved, the socket code works 
+better now.
+ 
+Classes for managing MIME-types under Windows and Unix have been added.
+ 
+There is now a wxGLCanvas class for OpenGl/Mesa for the Windows, GTK and
+Motif ports. Come see the penguins flying...
+ 
+Documentation has received a big face lift - it now covers nearly all the
+classes, at least.
+ 
+The usual amount of bug fixes. Countless.
+ 
+A few member functions of wxString have been renamed.
+ 
+For those who are using the ever-so-popular wxImage class (which
+now available on Motif and Windows as well) in 8-bit mode: wxGTK
+now creates a color cube upon start-up in 8-bit mode and thus the
+generation of bitmaps from images has been speeded up 20 times.
+ 
+It is now possible to develop with wxGTK without having the GTK 1.0 header
+files installed so that having the GTK 1.2 header files installed no longer
+is any problem. We also provide RPMs for RedHat glibc 2 based systems, compiled
+with egcs 1.1.1 on SuSE 6.0. Note that the RPM will   not   work in
+SuSE 6.0 as SuSE decided to ship 6.0 with a broken GTK+ package.
+ 
+
+  
+6th January '99: wxWindows 2.0 beta 2
+  
+ 
+This is the second beta release and contains it mostly build and
+bug fixes. Threads work well now on (up-to-date) glibc 2 systems,
+commercial Unices and Windows.
+ 
+                       
+  
+20th December '98: wxWindows 2.0 beta 1
+  
+ 
+This is the first beta release and we have used the time before
+this release to tidy up some parts of the API. All releases from
+now on will be source code compatible but we reserve binary compatibility
+for the final release. Because of this, the actual library name of
+the beta version will not be 2.0 but 1.99, so that we prevent 
+conflicts with the final library later on. After the final release
+we'll only fix bugs so that there will be no reason to link any
+program statically with wxGTK.
+ 
+We changed the name of the shared library to include the version of
+the GTK used so that no conflicts emerge with simultaneous
+versions of wxWindows for GTK 1.0 and for GTK 1.2 and so on.
+ 
+As you can see, we have not moved to GTK 1.1.X as the different
+development versions are too different and buggy to be useful. We'll
+wait for a stable GTK 1.2 release (hardly 1.2.0) and start porting
+then.
+ 
+wxGTK now compiles without problems on anything between gcc 2.7.2 on
+Linux-x86 and egcs 1.1 on Linux-Alpha and egcs 1.0 on Sparc. This isn't
+as easy as it sounds...
+ 
+Available form this site are the Python bindings of wxWindows.
+Thanks to Robin Dunn for this tremendous contribution.
+Tkinter is dead, Java is dead, wxPython rules! That's all there is to say.
+ 
+Although only a few new classes have been added, many have been polished
+up substantially, the most visible are wxListCtrl, wxTreeCtrl and
+all classes related to printing. Also the DialogEd now functions
+much better than before. Drag'n'Drop is fucntional but probably won't 
+be perfect until we use GTK 1.2 and its much improved DnD features.
+ 
+wxClipboard has arrived and works for text. Other formats have not been
+tested carefully yet.
+ 
+wxMiniFrame has been added which might be useful for docking toolbars
+etc. Someone has already done that for the MSW port and we hope to
+include his very nice work later.
+ 
+wxDirDialog has been added (thanks to Harm von der Heijden).
+ 
+The entite "tab traveral" system for moving from item to item in
+a dialog has been rewritten. It now completely overrides the
+not-so-well-done GTK native tab system.
+ 
+Quite much has been done to improve the wxImage class, which is now
+available in the Windows port as well. Very useful for anything related
+to image processing. wxGTK also uses this class internally e.g. to scale
+bitmaps when the scale factor (e.g. zooming) of a drawing context
+has changed.
+  
+Some of the small and handy classes (wxDate, wxTime, wxVariant) have
+received a face-lift. wxList has been rewritten to make it possible
+to write type-safe lists. The collection of utility functions (wxFileFind etc)
+has been revamped and cleaned-up (thanks to Vadim Zeitlin, who has also
+greatly enhanced many basic classes, ranging wxString to the debug and
+log system).
+ 
+We removed some constructors of GDI classes (such as wxPen, wxColour)
+which took a pointer as a parameter. This lead to many errors among users
+resulting in unexpected behaviour so it was decided to remove these
+constructors.
+ 
+As the number of users and the number of test programs and samples
+is steadialy rising the core classes of wxWindows for MSW and GTK 1.0
+can be considered to be very stable if not outright bug-free. I haven't
+seen a crash for weeks now and wxWindows' internal debug features also
+have improved every week, making stepping-through with a debugger almost
+completely unnecessary as the library reports possible errors itself
+(when in debug mode).
+
 
 
 #include <wx/stream.h>
 
+#if wxUSE_STREAMS
+
 class WXDLLEXPORT wxDataInputStream: public wxFilterInputStream {
 public:
   wxDataInputStream(wxInputStream& s);
   void WriteString(const wxString& string);
 };
 
+#endif
+  // wxUSE_STREAMS
+
 #endif
     // _WX_DATSTREAM_H_
 
   #include  "wx/filefn.h"
 #endif
 
+#if wxUSE_FILE
+
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
   wxFile    m_file;     // the temporary file
 };
 
+#endif
+
 #endif
         // _WX_FILEH__
 
 #endif
 
 #include "wx/defs.h"
-#include "wx/textfile.h"
-#include "wx/string.h"
 
-// ----------------------------------------------------------------------------
-// compile options
-// ----------------------------------------------------------------------------
+#if wxUSE_CONFIG
 
-// it won't compile without it anyhow
-#ifndef wxUSE_CONFIG
-  #error "Please define wxUSE_CONFIG or remove fileconf.cpp from your makefile"
-#endif // wxUSE_CONFIG
+#include "wx/textfile.h"
+#include "wx/string.h"
 
 // ----------------------------------------------------------------------------
 // wxFileConfig
   void SetLastGroup(ConfigGroup *pGroup) { m_pLastGroup = pGroup; }
 };
 
-#endif  //_FILECONF_H
+#endif
+  // wxUSE_CONFIG
+
+#endif  
+  //_FILECONF_H
 
 
 
 #include "wx/dc.h"
 
+#if wxUSE_PRINTING_ARCHITECTURE
+
 #if wxUSE_POSTSCRIPT
 
 #include "wx/dialog.h"
 
 #endif
     // wxUSE_POSTSCRIPT
+    
+#endif
+    // wxUSE_PRINTING_ARCHITECTURE
 
 #endif
         // _WX_DCPSG_H_
 
 #pragma interface "dirdlgg.h"
 #endif
 
+#include "wx/defs.h"
+
+#if wxUSE_DIRDLG
+
 #include "wx/dialog.h"
-//#include "wx/checkbox.h"
+#include "wx/checkbox.h"
 #include "wx/treectrl.h"
 
 //-----------------------------------------------------------------------------
     void doSize();
 };
 
+#endif
+
 #endif
     // _WX_DIRDLGG_H_
 
 
 
 #include "wx/prntbase.h"
 
+#if wxUSE_PRINTING_ARCHITECTURE
+
 // ----------------------------------------------------------------------------
 // Represents the printer: manages printing a wxPrintout object
 // ----------------------------------------------------------------------------
     void Init(wxPrintout *printout, wxPrintout *printoutForPrinting);
 };
 
+#endif
+
 #endif
 // __PRINTPSH__
 
 #endif
 
 #include "wx/defs.h"
+
+#if wxUSE_PRINTING_ARCHITECTURE
+
 #include "wx/dialog.h"
 #include "wx/dialog.h"
 
     DECLARE_EVENT_TABLE()
 };
 
+#endif
+
 #endif
 // __PRINTDLGH_G__
 
 #endif
 
 #include "wx/setup.h"
-#include "wx/frame.h"
 
+#if wxUSE_PROGRESSDLG
 
+#include "wx/frame.h"
 
 /** Progress dialog which shows a moving progress bar.
     Taken from the Mahogany project.*/
 
    DECLARE_EVENT_TABLE()
 };
+#endif
+
 #endif
     // __PROGDLGH_G__
 
 #endif
 
 #include "wx/defs.h"
+
+#if wxUSE_CHOICE
+
 #include "wx/object.h"
 #include "wx/list.h"
 #include "wx/control.h"
     void ApplyWidgetStyle();
 };
 
+#endif
+
 #endif // __GTKCHOICEH__
 
 #endif
 
 #include "wx/defs.h"
+
+#if wxUSE_CHOICE
+
 #include "wx/object.h"
 #include "wx/list.h"
 #include "wx/control.h"
     void ApplyWidgetStyle();
 };
 
+#endif
+
 #endif // __GTKCHOICEH__
 
   virtual bool LoadFile( wxImage *image, wxInputStream& stream );
   virtual bool SaveFile( wxImage *image, wxOutputStream& stream );
 #endif
-
 };
 #endif
 
       m_mime = "image/jpeg";
   };
 
+#if wxUSE_STREAMS
   virtual bool LoadFile( wxImage *image, wxInputStream& stream );
   virtual bool SaveFile( wxImage *image, wxOutputStream& stream );
+#endif
 };
 #endif
 
 // wxGIFHandler
 //-----------------------------------------------------------------------------
 
-/* why an extra headers for GIF, RR */
+class WXDLLEXPORT wxGIFHandler : public wxImageHandler
+{
+  DECLARE_DYNAMIC_CLASS(wxGIFHandler)
+
+public:
+
+  inline wxGIFHandler()
+  {
+      m_name = "GIF file";
+      m_extension = "gif";
+      m_type = wxBITMAP_TYPE_GIF;
+      m_mime = "image/gif";
+  };
 
-#include "wx/imaggif.h"
+#if wxUSE_STREAMS
+  virtual bool LoadFile( wxImage *image, wxInputStream& stream );
+  virtual bool SaveFile( wxImage *image, wxOutputStream& stream );
+#endif
+};
 
 //-----------------------------------------------------------------------------
 // wxImage
 
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// Name:        imaggif.h
-// Purpose:     wxImage handler for GIFs (read-only)
-// Author:      Vaclav Slavik (of this header only)
-// Licence:     wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef _WX_IMAGGIF_H_
-#define _WX_IMAGGIF_H_
-
-#ifdef __GNUG__
-#pragma interface "imaggif.h"
-#endif
-
-#include <wx/setup.h>
-#include <wx/object.h>
-#include <wx/string.h>
-#include <wx/gdicmn.h>
-#include <wx/stream.h>
-#include <wx/image.h>
-
-//-----------------------------------------------------------------------------
-// wxGIFHandler
-//-----------------------------------------------------------------------------
-
-class WXDLLEXPORT wxGIFHandler : public wxImageHandler
-{
-  DECLARE_DYNAMIC_CLASS(wxGIFHandler)
-
-public:
-
-  inline wxGIFHandler()
-  {
-      m_name = "GIF file";
-      m_extension = "gif";
-      m_type = wxBITMAP_TYPE_GIF;
-      m_mime = "image/gif";
-  };
-
-  virtual bool LoadFile( wxImage *image, wxInputStream& stream );
-  virtual bool SaveFile( wxImage *image, wxOutputStream& stream );
-};
-
-#endif
-    // _WX_IMAGGIF_H_
-
 
 // Licence:     wxWindows license (part of wxExtra library)
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef   _MIMETYPE_H
-#define   _MIMETYPE_H
+#ifndef _MIMETYPE_H
+#define _MIMETYPE_H
 
 // fwd decls
 class wxIcon;
 class wxFileTypeImpl;
 class wxMimeTypesManagerImpl;
 
+#include "wx/defs.h"
+
+#if wxUSE_FILE
+
 // the things we really need
 #include "wx/string.h"
 
     wxMimeTypesManagerImpl *m_impl;
 };
 
-#endif  //_MIMETYPE_H
+#endif
+  // wxUSE_FILE
+
+#endif  
+  //_MIMETYPE_H
 
 /* vi: set cin tw=80 ts=4 sw=4: */
 
 
 #include <wx/stream.h>
 
+#if wxUSE_STREAMS
+
 class wxMemoryInputStream: public wxInputStream {
  private:
   size_t m_length;
 };
 
 #endif
+  // wxUSE_STREAMS
+
+#endif
+  // _WX_WXMMSTREAM_H__
\ No newline at end of file
 
 #define wxUSE_COMBOBOX      1
                                     // Define 1 to use COMBOXBOX control (Windows)
                                     // or FWW's ComboBox widget (Motif).
+#define wxUSE_CHOICE      1
+                                    // Define 1 to use CHOICE
+
 #define wxUSE_RADIOBUTTON   1
                                     // Define 1 to use radio button control
 
 #define wxUSE_TEXTDLG 1
 #define wxUSE_TOOLBAR 1
 #define wxUSE_STATUSBAR 1
+#define wxUSE_PROGRESSDLG 1
+#define wxUSE_DIRDLG 1
 
 /*
  * Finer detail
 
 #endif
 
 #include "wx/defs.h"
+
+#if wxUSE_STREAMS && wxUSE_SERIAL
+
 #include "wx/object.h"
 #include "wx/string.h"
 #include "wx/stream.h"
 };
 
 #endif
+  // wxUSE_STREAMS && wxUSE_SERIAL
+
+#endif
+  // _WX_WXOBJSTRM_H__
\ No newline at end of file
 
 #endif
 
 #include "wx/stream.h"
+
+#if wxUSE_SOCKETS && wxUSE_STREAMS
+
 #include "wx/socket.h"
 
 class WXDLLEXPORT wxSocketOutputStream : public wxOutputStream
 };
 
 #endif
+  // wxUSE_SOCKETS && wxUSE_STREAMS
+
+#endif
+  // __SCK_STREAM_H__
\ No newline at end of file
 
 #pragma interface "socket.h"
 #endif
 
+#include "wx/defs.h"
+
+#if wxUSE_SOCKETS
+
 // ---------------------------------------------------------------------------
 // Windows(tm) specific
 // ---------------------------------------------------------------------------
   (wxObject *) NULL  },
 
 #endif
+  // wxUSE_SOCKETS
+
+#endif
+  // _WX_NETWORK_SOCKET_H
 
 #pragma interface
 #endif
 
+#include "wx/defs.h"
+
+#if wxUSE_STREAMS
+
 #include <stdio.h>
 #include "wx/object.h"
 #include "wx/string.h"
 };
 
 #endif
+  // wxUSE_STREAMS
+
+#endif
+  // _WX_WXSTREAM_H__
 
 // Licence:     wxWindows license
 ///////////////////////////////////////////////////////////////////////////////
 
-#ifndef   _TEXTFILE_H
-#define   _TEXTFILE_H
+#ifndef _TEXTFILE_H
+#define _TEXTFILE_H
 
 #ifdef __GNUG__
 #pragma interface "textfile.h"
 #endif
 
 #include "wx/defs.h"
+
+#if wxUSE_TEXTFILE && wxUSE_FILE
+
 #include "wx/string.h"
 #include "wx/file.h"
 #include "wx/dynarray.h"
   wxString      m_strFile;  // name of the file
 };
 
-#endif  //_TEXTFILE_H
+#endif
+  // wxUSE_TEXTFILE && wxUSE_FILE
+
+#endif  
+  // _TEXTFILE_H
+  
 
 
 #include "wx/validate.h"
 
+#if wxUSE_VALIDATORS
+
 class WXDLLEXPORT wxGenericValidator: public wxValidator
 {
 public:
   wxArrayInt* m_pArrayInt;
 };
 
-#endif    // _WX_VALGENH__
+#endif
+  // wxUSE_VALIDATORS
+
+#endif    
+  // _WX_VALGENH__
 
 #pragma interface "valtext.h"
 #endif
 
-#if defined(wxUSE_VALIDATORS) && !wxUSE_VALIDATORS
-    #error "wxWindows is compiled without support for wxValidator"
-#endif
+#include "wx/defs.h"
+
+#if wxUSE_VALIDATORS
 
 #include "wx/validate.h"
 
 };
 
 #endif
+  // wxUSE_VALIDATORS
+
+#endif
+  // _WX_VALTEXTH__
 
 #pragma interface "wfstream.h"
 #endif
 
+#include "defs.h"
+
+#if wxUSE_STREAMS && wxUSE_FILE
+
 #include <wx/object.h>
 #include <wx/string.h>
 #include <wx/stream.h>
 };
 
 #endif
+  // wxUSE_STREAMS && wxUSE_FILE
+
+#endif
+  // _WX_WXFSTREAM_H__
\ No newline at end of file
 
 
 #include "wx/defs.h"
 
-#if wxUSE_ZLIB
+#if wxUSE_ZLIB && wxUSE_STREAMS
 
 #include <wx/stream.h>
 
 };
 
 #endif
+  // wxUSE_ZLIB && wxUSE_STREAMS
 
 #endif
+   // _WX_WXZSTREAM_H__
\ No newline at end of file
 
 
 #include "wx/wxprec.h"
 
-#ifndef WX_PRECOMP
-    #include  "wx/wx.h"
-#endif
-
-#if wxUSE_CONFIG
-
 #ifdef    __BORLANDC__
   #pragma hdrstop
 #endif  //__BORLANDC__
 
+#ifndef WX_PRECOMP
+  #include "wx/defs.h"
+#endif
+
+#if wxUSE_CONFIG && ((wxUSE_FILE && wxUSE_TEXTFILE) || defined(wxCONFIG_WIN32_NATIVE))
+
 #include "wx/app.h"
 #include "wx/file.h"
 #include "wx/log.h"
 #include "wx/textfile.h"
 #include "wx/utils.h"
+#include "wx/log.h"
+#include "wx/utils.h"
+#include "wx/intl.h"
 
 #include "wx/config.h"
 
 
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
-#include "wx/setup.h"
+#ifndef WX_PRECOMP
+  #include "wx/defs.h"
+#endif
 
 #if wxUSE_TIMEDATE
 
 
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
-#include "wx/defs.h"
+  #include "wx/defs.h"
 #endif
 
+#if wxUSE_STREAMS
+
 #include "wx/datstrm.h"
 
 // ---------------------------------------------------------------------------
 #endif
   Write(buf, 10);
 }
+
+#endif
+  // wxUSE_STREAMS
+  
\ No newline at end of file
 
     #include "wx/mdi.h"
 #endif
 
+#if wxUSE_PRINTING_ARCHITECTURE
+  #include "wx/prntbase.h"
+  #include "wx/printdlg.h"
+#endif
+
 #include "wx/msgdlg.h"
 #include "wx/choicdlg.h"
 #include "wx/docview.h"
-#include "wx/prntbase.h"
-#include "wx/printdlg.h"
 #include "wx/confbase.h"
 
 #include <stdio.h>
     EVT_MENU(wxID_SAVEAS, wxDocManager::OnFileSaveAs)
     EVT_MENU(wxID_UNDO, wxDocManager::OnUndo)
     EVT_MENU(wxID_REDO, wxDocManager::OnRedo)
+#if wxUSE_PRINTING_ARCHITECTURE
     EVT_MENU(wxID_PRINT, wxDocManager::OnPrint)
     EVT_MENU(wxID_PRINT_SETUP, wxDocManager::OnPrintSetup)
     EVT_MENU(wxID_PREVIEW, wxDocManager::OnPreview)
+#endif
 END_EVENT_TABLE()
 
 wxDocManager::wxDocManager(long flags, bool initialize)
 
 void wxDocManager::OnPrintSetup(wxCommandEvent& WXUNUSED(event))
 {
+#if wxUSE_PRINTING_ARCHITECTURE
     wxWindow *parentWin = wxTheApp->GetTopWindow();
     wxView *view = GetCurrentView();
     if (view)
     wxPrintDialog printerDialog(parentWin, & data);
     printerDialog.GetPrintDialogData().SetSetupDialog(TRUE);
     printerDialog.ShowModal();
+#endif // wxUSE_PRINTING_ARCHITECTURE
 }
 
 void wxDocManager::OnPreview(wxCommandEvent& WXUNUSED(event))
 
 
 bool wxEvtHandler::ProcessEvent(wxEvent& event)
 {
-    // check that our flag corresponds to reality
+    /* check that our flag corresponds to reality */
     wxASSERT( m_isWindow == IsKindOf(CLASSINFO(wxWindow)) );
 
-    // An event handler can be enabled or disabled
+    /* An event handler can be enabled or disabled */
     if ( GetEvtHandlerEnabled() )
     {
 #if wxUSE_THREADS
-       // Check whether we are in a child thread.
+       /* Check whether we are in a child thread. */
         if (!wxThread::IsMain())
           return ProcessThreadEvent(event);
 #endif
-        // Handle per-instance dynamic event tables first
+        /* Handle per-instance dynamic event tables first */
 
         if ( m_dynamicEvents && SearchDynamicEventTable(event) )
             return TRUE;
 
-        // Then static per-class event tables
+        /* Then static per-class event tables */
 
         const wxEventTable *table = GetEventTable();
 
+#if wxUSE_VALIDATORS
         // Try the associated validator first, if this is a window.
         // Problem: if the event handler of the window has been replaced,
         // this wxEvtHandler may no longer be a window.
         // THIS CAN BE CURED if PushEventHandler is used instead of
         // SetEventHandler, and then processing will be passed down the
         // chain of event handlers.
-        if ( m_isWindow )
+        if (m_isWindow)
         {
             wxWindow *win = (wxWindow *)this;
 
                 }
             }
         }
+#endif
 
         // Search upwards through the inheritance hierarchy
-        while ( table )
+        while (table)
         {
             if ( SearchEventTable((wxEventTable&)*table, event) )
                 return TRUE;
 
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
-#include "wx/defs.h"
 
 #ifdef __BORLANDC__
-    #pragma hdrstop
+  #pragma hdrstop
 #endif
 
+#ifndef WX_PRECOMP
+  #include "wx/defs.h"
+#endif
+
+#if wxUSE_FILE
+
 // standard
 #if defined(__WXMSW__) && !defined(__GNUWIN32__) && !defined(__WXWINE__)
   #include  <io.h>
     if ( remove(m_strTemp.fn_str()) != 0 )
         wxLogSysError(_("can't remove temporary file '%s'"), m_strTemp.c_str());
 }
+
+#endif
\ No newline at end of file
 
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
-#if wxUSE_SOCKETS
-
 #ifndef WX_PRECOMP
+  #include "wx/defs.h"
 #endif
 
+#if wxUSE_SOCKETS
+
 #include <stdio.h>
 #include <stdlib.h>
 #include "wx/string.h"
 
 #endif // wxUSE_STREAMS
 
 //-----------------------------------------------------------------------------
-// wxBMPHandler
+// MSW conversion routines
 //-----------------------------------------------------------------------------
 
-#if !USE_SHARED_LIBRARIES
-IMPLEMENT_DYNAMIC_CLASS(wxBMPHandler,wxImageHandler)
-#endif
-
-#if wxUSE_STREAMS
-
-#ifndef BI_RGB
-#define BI_RGB       0
-#define BI_RLE8      1
-#define BI_RLE4      2
-#endif
-
-#ifndef BI_BITFIELDS
-#define BI_BITFIELDS 3
-#endif
-
-#define poffset (line * width * 3 + column * 3)
-
-bool wxBMPHandler::LoadFile( wxImage *image, wxInputStream& stream )
-{
-    int             rshift = 0, gshift = 0, bshift = 0;
-    wxUint8         aByte;
-    wxUint16        aWord;
-    wxInt32         dbuf[4], aDword, 
-                    rmask = 0, gmask = 0, bmask = 0;
-    wxInt8          bbuf[4];
-    struct _cmap {
-        unsigned char r, g, b;
-    } *cmap = NULL;
-    
-    off_t start_offset = stream.TellI();
-
-    image->Destroy();
-
-    /*
-     * Read the BMP header
-     */
-
-    stream.Read( &bbuf, 2 );
-    stream.Read( dbuf, 4 * 4 );
-
-    wxInt32 size = wxINT32_SWAP_ON_BE( dbuf[0] );
-    wxInt32 offset = wxINT32_SWAP_ON_BE( dbuf[2] );
-
-    stream.Read(dbuf, 4 * 2);
-    int width = (int)wxINT32_SWAP_ON_BE( dbuf[0] );
-    int height = (int)wxINT32_SWAP_ON_BE( dbuf[1] );
-    if (width > 32767)
-    {
-        wxLogError( _T("Image width > 32767 pixels for file.") );
-        return FALSE;
-    }
-    if (height > 32767)
-    {
-        wxLogError( _T("Image height > 32767 pixels for file.") );
-        return FALSE;
-    }
-    
-    stream.Read( &aWord, 2 );
-/*
-    TODO
-    int planes = (int)wxUINT16_SWAP_ON_BE( aWord );
-*/
-    stream.Read( &aWord, 2 );
-    int bpp = (int)wxUINT16_SWAP_ON_BE( aWord );
-    if (bpp != 1 && bpp != 4 && bpp != 8 && bpp != 16 && bpp != 24 && bpp != 32)
-    {
-        wxLogError( _T("unknown bitdepth in file.") );
-        return FALSE;
-    }
-    
-    stream.Read( dbuf, 4 * 4 );
-    int comp = (int)wxINT32_SWAP_ON_BE( dbuf[0] );
-    if (comp != BI_RGB && comp != BI_RLE4 && comp != BI_RLE8 && comp != BI_BITFIELDS)
-    {
-        wxLogError( _T("unknown encoding in Windows BMP file.") );
-        return FALSE;
-    }
-    
-    stream.Read( dbuf, 4 * 2 );
-    int ncolors = (int)wxINT32_SWAP_ON_BE( dbuf[0] );
-    if (ncolors == 0)
-        ncolors = 1 << bpp;
-    /* some more sanity checks */
-    if (((comp == BI_RLE4) && (bpp != 4)) || 
-        ((comp == BI_RLE8) && (bpp != 8)) || 
-       ((comp == BI_BITFIELDS) && (bpp != 16 && bpp != 32)))
-    {
-        wxLogError( _T("encoding of BMP doesn't match bitdepth.") );
-        return FALSE;
-    }
-    if (bpp < 16)
-    {
-        cmap = (struct _cmap *)malloc(sizeof(struct _cmap) * ncolors);
-        if (!cmap)
-        {
-            wxLogError( _T("Cannot allocate RAM for color map in BMP file.") );
-            return FALSE;
-        }
-    }
-    else
-        cmap = NULL;
-
-    image->Create( width, height );
-    unsigned char *ptr = image->GetData();
-    if (!ptr)
-    {
-        wxLogError( _T("Cannot allocate RAM for RGB data in file.") );
-        if (cmap)
-            free(cmap);
-        return FALSE;
-    }
-
-    /*
-     * Reading the palette, if it exists.
-     */
-    if (bpp < 16 && ncolors != 0)
-    {
-        for (int j = 0; j < ncolors; j++)
-        {
-            stream.Read( bbuf, 4 );
-            cmap[j].b = bbuf[0];
-            cmap[j].g = bbuf[1];
-            cmap[j].r = bbuf[2];
-        }
-    }
-    else if (bpp == 16 || bpp == 32)
-    {
-        if (comp == BI_BITFIELDS)
-        {
-            int bit = 0;
-            stream.Read( dbuf, 4 * 3 );
-            bmask = wxINT32_SWAP_ON_BE( dbuf[0] );
-            gmask = wxINT32_SWAP_ON_BE( dbuf[1] );
-            rmask = wxINT32_SWAP_ON_BE( dbuf[2] );
-            /* find shift amount.. ugly, but i can't think of a better way */
-            for (bit = 0; bit < bpp; bit++)
-            {
-                if (bmask & (1 << bit))
-                    bshift = bit;
-                if (gmask & (1 << bit))
-                    gshift = bit;
-                if (rmask & (1 << bit))
-                    rshift = bit;
-            }
-        }
-        else if (bpp == 16)
-        {
-            rmask = 0x7C00;
-            gmask = 0x03E0;
-            bmask = 0x001F;
-            rshift = 10;
-            gshift = 5;
-            bshift = 0;
-        }
-        else if (bpp == 32)
-        {
-            rmask = 0x00FF0000;
-            gmask = 0x0000FF00;
-            bmask = 0x000000FF;
-            rshift = 16;
-            gshift = 8;
-            bshift = 0;
-        }
-    }
-
-    /*
-     * Reading the image data
-     */
-    stream.SeekI( start_offset + offset );
-    unsigned char *data = ptr;
-
-    /* set the whole image to the background color */
-    if (bpp < 16 && (comp == BI_RLE4 || comp == BI_RLE8))
-    {
-        for (int i = 0; i < width * height; i++)
-        {
-            *ptr++ = cmap[0].r;
-            *ptr++ = cmap[0].g;
-            *ptr++ = cmap[0].b;
-        }
-        ptr = data;
-    }
-    
-    int line = 0;
-    int column = 0;
-    int linesize = ((width * bpp + 31) / 32) * 4;
-
-    /* BMPs are stored upside down */
-    for (line = (height - 1); line >= 0; line--) 
-    {
-        int linepos = 0;
-        for (column = 0; column < width;)
-        {
-            if (bpp < 16)
-            {
-                int index = 0;
-                linepos++;
-                aByte = stream.GetC();
-                if (bpp == 1)
-                {
-                    int bit = 0;
-                    for (bit = 0; bit < 8; bit++)
-                    {
-                        index = ((aByte & (0x80 >> bit)) ? 1 : 0);
-                        ptr[poffset] = cmap[index].r;
-                        ptr[poffset + 1] = cmap[index].g;
-                        ptr[poffset + 2] = cmap[index].b;
-                        column++;
-                    }
-                }
-                else if (bpp == 4)
-                {
-                    if (comp == BI_RLE4)
-                    {
-                        wxLogError( _T("Can't deal with 4bit encoded yet.") );
-                        image->Destroy();
-                        free(cmap);
-                        return FALSE;
-                    }
-                    else
-                    {
-                        int nibble = 0;
-                        for (nibble = 0; nibble < 2; nibble++)
-                        {
-                            index = ((aByte & (0xF0 >> nibble * 4)) >> (!nibble * 4));
-                            if (index >= 16)
-                                index = 15;
-                            ptr[poffset] = cmap[index].r;
-                            ptr[poffset + 1] = cmap[index].g;
-                            ptr[poffset + 2] = cmap[index].b;
-                            column++;
-                        }
-                    }
-                }
-                else if (bpp == 8)
-                {
-                    if (comp == BI_RLE8)
-                    {
-                        unsigned char first;
-                        first = aByte;
-                        aByte = stream.GetC();
-                        if (first == 0)
-                        {
-                            if (aByte == 0)
-                            {
-                                /* column = width; */
-                            }
-                            else if (aByte == 1)
-                            {
-                                column = width;
-                                line = -1;
-                            }
-                            else if (aByte == 2)
-                            {
-                                aByte = stream.GetC();
-                                column += aByte;
-                                linepos = column * bpp / 8;
-                                aByte = stream.GetC();
-                                line += aByte;
-                            }
-                            else
-                            {
-                                int absolute = aByte;
-                                for (int k = 0; k < absolute; k++)
-                                {
-                                    linepos++;
-                                    aByte = stream.GetC();
-                                    ptr[poffset    ] = cmap[aByte].r;
-                                    ptr[poffset + 1] = cmap[aByte].g;
-                                    ptr[poffset + 2] = cmap[aByte].b;
-                                    column++;
-                                }
-                                if (absolute & 0x01)
-                                    aByte = stream.GetC();
-                            }
-                        }
-                        else
-                        {
-                            for (int l = 0; l < first; l++)
-                            {
-                                ptr[poffset    ] = cmap[aByte].r;
-                                ptr[poffset + 1] = cmap[aByte].g;
-                                ptr[poffset + 2] = cmap[aByte].b;
-                                column++;
-                                linepos++;
-                            }
-                        }
-                    }
-                    else
-                    {
-                        ptr[poffset    ] = cmap[aByte].r;
-                        ptr[poffset + 1] = cmap[aByte].g;
-                        ptr[poffset + 2] = cmap[aByte].b;
-                        column++;
-                        linepos += size;
-                    }
-                }
-               }
-               else if (bpp == 24)
-               {
-                   stream.Read( &bbuf, 3 );
-                   linepos += 3;
-                   ptr[poffset    ] = (unsigned char)bbuf[2];
-                   ptr[poffset + 1] = (unsigned char)bbuf[1];
-                   ptr[poffset + 2] = (unsigned char)bbuf[0];
-                   column++;
-               }
-               else if (bpp == 16)
-               {
-                   unsigned char temp;
-                   stream.Read( &aWord, 2 );
-                  aWord = wxUINT16_SWAP_ON_BE( aWord );
-                   linepos += 2;
-                   temp = (aWord & rmask) >> rshift;
-                   ptr[poffset] = temp;
-                   temp = (aWord & gmask) >> gshift;
-                   ptr[poffset + 1] = temp;
-                   temp = (aWord & bmask) >> gshift;
-                   ptr[poffset + 2] = temp;
-                   column++;
-               }
-               else
-               {
-                   unsigned char temp;
-                   stream.Read( &aDword, 4 );
-                  aDword = wxINT32_SWAP_ON_BE( aDword );
-                   linepos += 4;
-                   temp = (aDword & rmask) >> rshift;
-                   ptr[poffset] = temp;
-                   temp = (aDword & gmask) >> gshift;
-                   ptr[poffset + 1] = temp;
-                   temp = (aDword & bmask) >> bshift;
-                   ptr[poffset + 2] = temp;
-                   column++;
-               }
-          }
-          while ((linepos < linesize) && (comp != 1) && (comp != 2))
-          {
-              stream.Read( &aByte, 1 );
-              linepos += 1;
-              if (stream.LastError() != wxStream_NOERROR)
-                  break;
-          }
-     }
-     if (cmap) 
-       free(cmap);
-
-     image->SetMask( FALSE );
-
-     return TRUE;
-}
-#endif // wxUSE_STREAMS
-
 #ifdef __WXMSW__
 
 wxBitmap wxImage::ConvertToBitmap() const
 
 #endif
 
+//-----------------------------------------------------------------------------
+// GTK conversion routines
+//-----------------------------------------------------------------------------
+
 #ifdef __WXGTK__
 
 #include "gtk/gtk.h"
 
 #endif
 
+//-----------------------------------------------------------------------------
+// Motif conversion routines
+//-----------------------------------------------------------------------------
+
 #ifdef __WXMOTIF__
 
 #include <Xm/Xm.h>
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
-#pragma implementation "imaggif.h"
-#endif
+/*
+   We don't put pragma implement in this file because it is already present in
+   src/common/image.cpp
+*/
 
 // For compilers that support precompilation, includes "wx.h".
 #include <wx/wxprec.h>
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
-#include <wx/wx.h>
+#ifndef WX_PRECOMP
+  #include "wx/defs.h"
+#endif
 
-#include <wx/image.h>
-#include <wx/wfstream.h>
-#include <wx/module.h>
+#include "wx/image.h"
+#include "wx/wfstream.h"
+#include "wx/module.h"
+#include "wx/log.h"
 
-#include <wx/imaggif.h>
+IMPLEMENT_DYNAMIC_CLASS(wxGIFHandler,wxImageHandler)
+
+#if wxUSE_STREAMS
 
 /*
 
 // wxGIFHandler
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxGIFHandler,wxImageHandler)
-
 bool wxGIFHandler::LoadFile( wxImage *image, wxInputStream& stream )
 {
     unsigned char *ptr, *src, *pal;
     return FALSE;
 }
 
-
-
-
-
-
+#endif
 
 /*
    We don't put pragma implement in this file because it is already present in
    src/common/image.cpp
-
-#ifdef __GNUG__
-#pragma implementation "image.h"
-#endif
 */
 
 // For compilers that support precompilation, includes "wx.h".
 #pragma hdrstop
 #endif
 
+#include "wx/defs.h"
+
+#if wxUSE_LIBJPEG
+
 #include "wx/image.h"
 #include "wx/bitmap.h"
 #include "wx/debug.h"
 #include "wx/log.h"
 #include "wx/app.h"
-#if wxUSE_LIBJPEG
-extern "C" {
-#include "../jpeg/jpeglib.h"
+extern "C" { 
+#include "jpeglib.h"
 }
-#endif
 #include "wx/filefn.h"
 #include "wx/wfstream.h"
 #include "wx/intl.h"
 // wxJPEGHandler
 //-----------------------------------------------------------------------------
 
-#if wxUSE_LIBJPEG
-
 #if !USE_SHARED_LIBRARIES
 IMPLEMENT_DYNAMIC_CLASS(wxJPEGHandler,wxImageHandler)
 #endif
 
 #if wxUSE_STREAMS
 
-
 //------------- JPEG Data Source Manager
 
 typedef struct {
     
     return TRUE;
 }
-#endif // wxUSE_STREAMS
-
-#endif
 
-// wxUSE_LIBJPEG
+#endif 
+  // wxUSE_STREAMS
 
+#endif 
+  // wxUSE_LIBJPEG
 
 
 
 
 /*
    We don't put pragma implement in this file because it is already present in
    src/common/image.cpp
-
-#ifdef __GNUG__
-#pragma implementation "image.h"
-#endif
 */
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+  #include "wx/defs.h"
 #endif
 
+#if wxUSE_LIBPNG
+
 #include "wx/image.h"
 #include "wx/bitmap.h"
 #include "wx/debug.h"
 #include "wx/log.h"
 #include "wx/app.h"
-#if wxUSE_LIBPNG
-#include "../png/png.h"
-#endif
+#include "png.h"
 #include "wx/filefn.h"
 #include "wx/wfstream.h"
 #include "wx/intl.h"
 // wxPNGHandler
 //-----------------------------------------------------------------------------
 
-#if wxUSE_LIBPNG
-
 #if !USE_SHARED_LIBRARIES
 IMPLEMENT_DYNAMIC_CLASS(wxPNGHandler,wxImageHandler)
 #endif
 
-
 #if wxUSE_STREAMS
+
 static void _PNG_stream_reader( png_structp png_ptr, png_bytep data, png_size_t length )
 {
     ((wxInputStream*) png_get_io_ptr( png_ptr )) -> Read(data, length);
     }
     return TRUE;
 }
-#endif // wxUSE_STREAMS
 
-#endif
+#endif 
+  // wxUSE_STREAMS
 
-// wxUSE_LIBPNG
+#endif 
+  // wxUSE_LIBPNG
 
 
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-    #pragma hdrstop
+  #pragma hdrstop
 #endif
 
-#include "wx/defs.h"
+#ifndef WX_PRECOMP
+  #include "wx/defs.h"
+#endif
 
 #if wxUSE_CONSTRAINTS
 
 #ifndef WX_PRECOMP
-    #include "wx/window.h"
-    #include "wx/utils.h"
-    #include "wx/dialog.h"
-    #include "wx/msgdlg.h"
-    #include "wx/intl.h"
+  #include "wx/window.h"
+  #include "wx/utils.h"
+  #include "wx/dialog.h"
+  #include "wx/msgdlg.h"
+  #include "wx/intl.h"
 #endif
 
 #include "wx/layout.h"
 
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef    __GNUG__
-    #pragma implementation "mimetype.h"
+#pragma implementation "mimetype.h"
 #endif
 
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-
 // for compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-    #pragma hdrstop
+  #pragma hdrstop
 #endif
 
-// wxWindows
 #ifndef WX_PRECOMP
-    #include  "wx/string.h"
-    #include  "wx/icon.h"
+  #include "wx/defs.h"
+#endif
+
+#if (wxUSE_FILE && wxUSE_TEXTFILE) || defined(__WXMSW__)
+
+#ifndef WX_PRECOMP
+  #include "wx/string.h"
+  #include "wx/icon.h"
 #endif //WX_PRECOMP
 
 // Doesn't compile in WIN16 mode
 #ifndef __WIN16__
 
 #include "wx/log.h"
+#include "wx/file.h"
 #include "wx/intl.h"
 #include "wx/dynarray.h"
 #include "wx/confbase.h"
     return TRUE;
 }
 
-#endif // OS type
+#endif 
+  // OS type
+
+#endif  
+  // wxUSE_FILE && wxUSE_TEXTFILE
 
 #endif
   // __WIN16__
 
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
-#include <stdlib.h>
-#include <wx/stream.h>
-#include <wx/mstream.h>
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
+#ifndef WX_PRECOMP
+  #include "wx/defs.h"
+#endif
+
+#if wxUSE_STREAMS
+
+#include <stdlib.h>
+#include <wx/stream.h>
+#include <wx/mstream.h>
+
 // ----------------------------------------------------------------------------
 // wxMemoryInputStream
 // ----------------------------------------------------------------------------
 wxMemoryOutputStream::~wxMemoryOutputStream()
 {
 }
+
+#endif
 
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
-#include "wx/defs.h"
-#include "wx/setup.h"
+  #include "wx/defs.h"
 #endif
 
-#if wxUSE_SERIAL
+#if wxUSE_SERIAL && wxUSE_STREAMS
 
 #include "wx/object.h"
 #include "wx/objstrm.h"
 
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
-#if wxUSE_SOCKETS
-
 #ifndef WX_PRECOMP
+  #include "wx/defs.h"
 #endif
 
+#if wxUSE_SOCKETS
+
 #include <stdio.h>
 #include <wx/wfstream.h>
 #include <wx/protocol/file.h>
 
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
-#if wxUSE_SOCKETS
-
 #ifndef WX_PRECOMP
+  #include "wx/defs.h"
 #endif
 
+#if wxUSE_SOCKETS && wxUSE_STREAMS
+
 #include "wx/stream.h"
 #include "wx/socket.h"
 #include "wx/sckstrm.h"
 }
 
 #endif
+  // wxUSE_STREAMS && wxUSE_SOCKETS
 
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+  #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+  #include "wx/defs.h"
+#endif
+
+#if wxUSE_STREAMS
+
 #include <ctype.h>
 #include <wx/stream.h>
 #include <wx/datstrm.h>
 #include <wx/objstrm.h>
 
-#ifdef __BORLANDC__
-#pragma hdrstop
-#endif
-
 #define BUF_TEMP_SIZE 10000
 
 // ----------------------------------------------------------------------------
   return stream.Write("\n", 1);
 #endif
 }
+
+#endif
+  // wxUSE_STREAMS
 
   #pragma hdrstop
 #endif  //__BORLANDC__
 
+#ifndef WX_PRECOMP
+#include "wx/defs.h"
+#endif
+
+#if wxUSE_TEXTFILE && wxUSE_FILE
+
 #include  <wx/string.h>
 #include  <wx/intl.h>
 #include  <wx/file.h>
 }
 
 const wxChar *wxTextFile::GetEOL(wxTextFileType type)
-  {
+{
     switch ( type ) {
       case wxTextFileType_None: return _T("");
       case wxTextFileType_Unix: return _T("\n");
         wxFAIL_MSG(_T("bad file type in wxTextFile::GetEOL."));
         return (const wxChar *) NULL;
     }
-  }
+}
 
+#endif
 
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
-#include "wx/utils.h"
-#include "wx/intl.h"
-#include "wx/wx.h"
-#include "wx/dynarray.h"
+  #include "wx/defs.h"
+#endif
+
+#if wxUSE_VALIDATORS
+
+#ifndef WX_PRECOMP
+  #include "wx/utils.h"
+  #include "wx/intl.h"
+  #include "wx/dynarray.h"
+  #include "wx/choice.h"
+  #include "wx/combobox.h"
+  #include "wx/radiobox.h"
+  #include "wx/radiobut.h"
+  #include "wx/checkbox.h"
+  #include "wx/scrolbar.h"
+  #include "wx/gauge.h"
+  #include "wx/stattext.h"
+  #include "wx/textctrl.h"
+  #include "wx/button.h"
+  #include "wx/listbox.h"
 #endif
 
 #ifndef __WIN16__
-#include "wx/spinbutt.h"
-#include "wx/checklst.h"
+  #include "wx/spinbutt.h"
+  #include "wx/checklst.h"
 #endif
 
 #include "wx/valgen.h"
 
 wxGenericValidator::wxGenericValidator(bool *val)
 {
-  Initialize();
-  m_pBool = val;
+    Initialize();
+    m_pBool = val;
 }
 
 wxGenericValidator::wxGenericValidator(int *val)
 {
-  Initialize();
-  m_pInt = val;
+    Initialize();
+    m_pInt = val;
 }
 
 wxGenericValidator::wxGenericValidator(wxString *val)
 {
-  Initialize();
-  m_pString = val;
+    Initialize();
+    m_pString = val;
 }
 
 wxGenericValidator::wxGenericValidator(wxArrayInt *val)
 {
-  Initialize();
-  m_pArrayInt = val;
+    Initialize();
+    m_pArrayInt = val;
 }
 
 wxGenericValidator::wxGenericValidator(const wxGenericValidator& val)
 {
-  Copy(val);
+    Copy(val);
 }
 
 bool wxGenericValidator::Copy(const wxGenericValidator& val)
       pControl->SetValue(*m_pString) ;
       return TRUE;
     }
-  }
+  } else
 #endif
-  else if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
+#if wxUSE_CHOICE
+  if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
   {
     wxChoice* pControl = (wxChoice*) m_validatorWindow;
        if (m_pInt)
       return TRUE;
     }
   }
+#endif
   else if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
   {
     wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
     }
   } else 
 #endif
+#if wxUSE_CHOICE
  if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
   {
     wxChoice* pControl = (wxChoice*) m_validatorWindow;
       return TRUE;
     }
   } else 
+#endif
   if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
   {
     wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
 */
 void wxGenericValidator::Initialize()
 {
-  m_pBool = 0;
-  m_pInt = 0;
-  m_pString = 0;
-  m_pArrayInt = 0;
+    m_pBool = 0;
+    m_pInt = 0;
+    m_pString = 0;
+    m_pArrayInt = 0;
 }
 
+#endif
+  // wxUSE_VALIDATORS
+  
\ No newline at end of file
 
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
-    #pragma implementation "validate.h"
+#pragma implementation "validate.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-    #pragma hdrstop
+  #pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
-    #include "wx/wx.h"
+  #include "wx/defs.h"
+#endif
+
+#if wxUSE_VALIDATORS
+
+#ifndef WX_PRECOMP
+  #include "wx/window.h"
 #endif
 
 #include "wx/validate.h"
 {
 }
 
-
+#endif
+  // wxUSE_VALIDATORS
 
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
-    #pragma implementation "valtext.h"
+#pragma implementation "valtext.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-    #pragma hdrstop
+  #pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
-    #include <stdio.h>
-    #include "wx/textctrl.h"
-    #include "wx/utils.h"
-    #include "wx/msgdlg.h"
-    #include "wx/intl.h"
+  #include "wx/defs.h"
+#endif
+
+#if wxUSE_VALIDATORS
+
+#ifndef WX_PRECOMP
+  #include <stdio.h>
+  #include "wx/textctrl.h"
+  #include "wx/utils.h"
+  #include "wx/msgdlg.h"
+  #include "wx/intl.h"
 #endif
 
 #include "wx/valtext.h"
     return TRUE;
 }
 
+#endif
+  // wxUSE_VALIDATORS
+  
\ No newline at end of file
 
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
-#include <stdio.h>
-#include <wx/stream.h>
-#include <wx/wfstream.h>
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+  #pragma hdrstop
 #endif
 
+#ifndef WX_PRECOMP
+  #include "wx/defs.h"
+#endif
+
+#if wxUSE_STREAMS && wxUSE_FILE
+
+#include <stdio.h>
+#include <wx/stream.h>
+#include <wx/wfstream.h>
+
 // ----------------------------------------------------------------------------
 // wxFileInputStream
 // ----------------------------------------------------------------------------
  : wxFileInputStream(fileName), wxFileOutputStream(*wxFileInputStream::m_file)
 {
 }
+
+#endif
+  // wxUSE_STREAMS && wxUSE_FILE
 
 // Copyright:   (c) Guilhem Lavaux
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
+
 #ifdef __GNUG__
 #pragma implementation "zstream.h"
 #endif
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
-#include "wx/zstream.h"
+#ifdef __BORLANDC__
+  #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+  #include "wx/defs.h"
+#endif
 
-#if wxUSE_ZLIB
+#if wxUSE_ZLIB && wxUSE_STREAMS
 
+#include "wx/zstream.h"
 #include "wx/utils.h"
 #include "wx/intl.h"
 #include "wx/log.h"
-#include "../zlib/zlib.h"   // don't change this, Robert
-
-#ifdef __BORLANDC__
-#pragma hdrstop
-#endif
+#include "zlib.h"
 
 #define ZSTREAM_BUFFER_SIZE 1024
 
 }
 
 #endif
-
-  // wxUSE_ZLIB
+  // wxUSE_ZLIB && wxUSE_STREAMS
   
 
     #include "wx/defs.h"
 #endif // WX_PRECOMP
 
+#if wxUSE_PRINTING_ARCHITECTURE
+
 #if wxUSE_POSTSCRIPT
 
 #include "wx/dcmemory.h"
 
 #endif
   // wxUSE_POSTSCRIPT
+
+#endif 
+  // wxUSE_PRINTING_ARCHITECTURE
\ No newline at end of file
 
 #endif
 
 #include "wx/defs.h"
+
+#if wxUSE_DIRDLG
+
 #include "wx/utils.h"
 #include "wx/dialog.h"
 #include "wx/button.h"
   printf("Checkbox clicked: %s\n", ( m_check->GetValue() ? "on" : "off" ) );
 }
 */
+
+#endif
 
       else
          file = ifile;
 
+#if wxUSE_INTL
       // If a locale is set, look in file/localename, i.e.
       // If passed "/usr/local/myapp/help" and the current wxLocale is
       // set to be "de", then look in "/usr/local/myapp/help/de/"
                file = newfile;
          }
       }
+#endif
 
       if(! wxDirExists(file))
          return FALSE;
 
 
     bool ret = wxControl::Create( parent, id, pos, size, s, name );
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
   
     if (s & wxSUNKEN_BORDER) s -= wxSUNKEN_BORDER;
 
 
 
 #include "wx/defs.h"
 
+#if wxUSE_PRINTING_ARCHITECTURE
+
 #ifndef WX_PRECOMP
     #include "wx/utils.h"
     #include "wx/dc.h"
     }
 }
 
+#endif
 
 
 #include "wx/defs.h"
 
+#if wxUSE_PRINTING_ARCHITECTURE
+
 #ifndef WX_PRECOMP
     #include "wx/utils.h"
     #include "wx/dc.h"
     return choice;
 }
 
+#endif
 
 #include "wx/intl.h"
 #endif
 
+#if wxUSE_PROGRESSDLG
+
 #include "wx/generic/progdlgg.h"
 
 #define LAYOUT_X_MARGIN 8
    else
       wxEnableTopLevelWindows(TRUE);
 }
+
+#endif
 
 
   wxScrolledWindow::Create( parent, id, pos, size, style|wxHSCROLL|wxVSCROLL, name );
 
+#if wxUSE_VALIDATORS
   SetValidator( validator );
+#endif
 
   SetBackgroundColour( *wxWHITE );
   m_dottedPen = wxPen( *wxBLACK, 0, 0 );
 
  helpbase.cpp \
  http.cpp \
  image.cpp \
+ imagbmp.cpp \
  imaggif.cpp \
  imagjpeg.cpp \
  imagpng.cpp \
 
 
     PreCreation( parent, id, pos, newSize, style, name );
   
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_bitmap   = bitmap;
     m_disabled = bitmap;
 
 
     m_blockFirstEvent = FALSE;
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
+
     wxControl::SetLabel( label );
 
     if ( style & wxALIGN_RIGHT )
 
 
 #include "wx/choice.h"
 
+#if wxUSE_CHOICE
+
 #include "gdk/gdk.h"
 #include "gtk/gtk.h"
 
 
     PreCreation( parent, id, pos, size, style, name );
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_widget = gtk_option_menu_new();
 
     }
 }
 
+#endif
 
 
     PreCreation( parent, id, pos, size, style, name );
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_widget = gtk_combo_new();
 
 
   
   PreCreation( parent, id, pos, size, style, name );
   
-  SetValidator( validator );
+#if wxUSE_VALIDATORS
+    SetValidator( validator );
+#endif
 
   m_rangeMax = range;
   m_gaugePos = 0;
 
 
     PreCreation( parent, id, pos, size, style, name );
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_widget = gtk_scrolled_window_new( (GtkAdjustment*) NULL, (GtkAdjustment*) NULL );
     if (style & wxLB_ALWAYS_SB)
 
 
     PreCreation( parent, id, pos, size, style, name );
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_widget = gtk_frame_new( title.mbc_str() );
 
 
 
     PreCreation( parent, id, pos, newSize, style, name );
   
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_widget = gtk_radio_button_new_with_label( (GSList *) NULL, label.mbc_str() );
       
 
   
     PreCreation( parent, id, pos, size, style, name );
   
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_oldPos = 0.0;
 
 
   
     PreCreation( parent, id, pos, size, style, name );
   
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_oldPos = 0.0;
 
 
  helpbase.cpp \
  http.cpp \
  image.cpp \
+ imagbmp.cpp \
  imaggif.cpp \
  imagjpeg.cpp \
  imagpng.cpp \
 
 
     PreCreation( parent, id, pos, newSize, style, name );
   
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_bitmap   = bitmap;
     m_disabled = bitmap;
 
 
     m_blockFirstEvent = FALSE;
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
+
     wxControl::SetLabel( label );
 
     if ( style & wxALIGN_RIGHT )
 
 
 #include "wx/choice.h"
 
+#if wxUSE_CHOICE
+
 #include "gdk/gdk.h"
 #include "gtk/gtk.h"
 
 
     PreCreation( parent, id, pos, size, style, name );
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_widget = gtk_option_menu_new();
 
     }
 }
 
+#endif
 
 
     PreCreation( parent, id, pos, size, style, name );
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_widget = gtk_combo_new();
 
 
   
   PreCreation( parent, id, pos, size, style, name );
   
-  SetValidator( validator );
+#if wxUSE_VALIDATORS
+    SetValidator( validator );
+#endif
 
   m_rangeMax = range;
   m_gaugePos = 0;
 
 
     PreCreation( parent, id, pos, size, style, name );
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_widget = gtk_scrolled_window_new( (GtkAdjustment*) NULL, (GtkAdjustment*) NULL );
     if (style & wxLB_ALWAYS_SB)
 
 
     PreCreation( parent, id, pos, size, style, name );
 
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_widget = gtk_frame_new( title.mbc_str() );
 
 
 
     PreCreation( parent, id, pos, newSize, style, name );
   
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_widget = gtk_radio_button_new_with_label( (GSList *) NULL, label.mbc_str() );
       
 
   
     PreCreation( parent, id, pos, size, style, name );
   
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_oldPos = 0.0;
 
 
   
     PreCreation( parent, id, pos, size, style, name );
   
+#if wxUSE_VALIDATORS
     SetValidator( validator );
+#endif
 
     m_oldPos = 0.0;
 
 
  helpbase.cpp \
  http.cpp \
  image.cpp \
+ imagbmp.cpp \
  imaggif.cpp \
  imagjpeg.cpp \
  imagpng.cpp \
 
  helpbase.cpp \
  http.cpp \
  image.cpp \
+ imagbmp.cpp \
  imaggif.cpp \
  imagjpeg.cpp \
  imagpng.cpp \
 
   $(MSWDIR)\gdicmn.obj \
   $(MSWDIR)\helpbase.obj \
   $(MSWDIR)\image.obj \
+  $(MSWDIR)\imagbmp.obj \
   $(MSWDIR)\imagpng.obj \
   $(MSWDIR)\imagjpeg.obj \
   $(MSWDIR)\imaggif.obj \
 
 $(MSWDIR)\image.obj:     $(COMMDIR)\image.$(SRCSUFF)
 
+$(MSWDIR)\imagbmp.obj:     $(COMMDIR)\imagbmp.$(SRCSUFF)
+
 $(MSWDIR)\imagpng.obj:     $(COMMDIR)\imagpng.$(SRCSUFF)
 
 $(MSWDIR)\imagjpeg.obj:     $(COMMDIR)\imagjpeg.$(SRCSUFF)
 
   $(COMMDIR)/gdicmn.$(OBJSUFF) \
   $(COMMDIR)/helpbase.$(OBJSUFF) \
   $(COMMDIR)/image.$(OBJSUFF) \
+  $(COMMDIR)/imagebmp.$(OBJSUFF) \
   $(COMMDIR)/imagpng.$(OBJSUFF) \
   $(COMMDIR)/imagjpeg.$(OBJSUFF) \
   $(COMMDIR)/intl.$(OBJSUFF) \
 
   $(COMMDIR)/gdicmn.$(OBJSUFF) \
   $(COMMDIR)/helpbase.$(OBJSUFF) \
   $(COMMDIR)/image.$(OBJSUFF) \
+  $(COMMDIR)/imagbmp.$(OBJSUFF) \
   $(COMMDIR)/imagpng.$(OBJSUFF) \
   $(COMMDIR)/imagjpeg.$(OBJSUFF) \
   $(COMMDIR)/intl.$(OBJSUFF) \
 
   ..\common\$D\ftp.obj \
   ..\common\$D\gdicmn.obj \
   ..\common\$D\image.obj \
+  ..\common\$D\imagbmp.obj \
   ..\common\$D\imagjpeg.obj \
   ..\common\$D\imagpng.obj \
   ..\common\$D\imaggif.obj \
 
   framecmn.obj &
   gdicmn.obj &
   image.obj &
+  imagbmp.obj &
   imagpng.obj &
   intl.obj &
   ipcbase.obj &
 image.obj:     $(COMMDIR)\image.cpp
   *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
 
+imagbmp.obj:     $(COMMDIR)\imagbmp.cpp
+  *$(CCC) $(CPPFLAGS) -i=..\png -i=..\zlib $(IFLAGS) $<
+
 imagpng.obj:     $(COMMDIR)\imagpng.cpp
   *$(CCC) $(CPPFLAGS) -i=..\png -i=..\zlib $(IFLAGS) $<