--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<cdtproject id="org.eclipse.cdt.make.core.make">
+ <extension id="org.eclipse.cdt.make.core.MakeScannerProvider" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
+ <extension id="org.eclipse.cdt.core.Elf" point="org.eclipse.cdt.core.BinaryParser"/>
+ <data>
+ <item id="org.eclipse.cdt.make.core.makeScannerInfo">
+ <includePath path="$(SDK6_LOCATION)headers"/>
+ <includePath path="$(SDK6_LOCATION)headers\EntryNums"/>
+ <includePath path="$(SDK6_LOCATION)headers\posix"/>
+ <includePath path="$(SDK6_LOCATION)headers\posix\arm"/>
+ <includePath path="$(SDK6_LOCATION)headers\posix\arpa"/>
+ <includePath path="$(SDK6_LOCATION)headers\posix\machine"/>
+ <includePath path="$(SDK6_LOCATION)headers\posix\machine\arm"/>
+ <includePath path="$(SDK6_LOCATION)headers\posix\machine\x86"/>
+ <includePath path="$(SDK6_LOCATION)headers\posix\net"/>
+ <includePath path="$(SDK6_LOCATION)headers\posix\netinet"/>
+ <includePath path="$(SDK6_LOCATION)headers\posix\sys"/>
+ <includePath path="$(SDK6_LOCATION)headers\streams"/>
+ <definedSymbol symbol="__arm__"/>
+ </item>
+ </data>
+</cdtproject>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>wxWidgets</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.palmsource.eclipse.palmoscore.palmOSMakeBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>CREATOR_ID</key>
+ <value>STRT</value>
+ </dictionary>
+ <dictionary>
+ <key>DB_HIDDEN</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>TARGET</key>
+ <value>Simulator</value>
+ </dictionary>
+ <dictionary>
+ <key>DB_TYPE</key>
+ <value>appl</value>
+ </dictionary>
+ <dictionary>
+ <key>VERSION</key>
+ <value>1</value>
+ </dictionary>
+ <dictionary>
+ <key>SDK</key>
+ <value>com.palmsource.eclipse.sdk.palmos6</value>
+ </dictionary>
+ <dictionary>
+ <key>DB_RESET_INSTALL</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>APP_NAME</key>
+ <value>wxWidgets</value>
+ </dictionary>
+ <dictionary>
+ <key>PROJECT_NAME</key>
+ <value>wxWidgets</value>
+ </dictionary>
+ <dictionary>
+ <key>OS_API</key>
+ <value>Protein</value>
+ </dictionary>
+ <dictionary>
+ <key>PROJECT_TYPE</key>
+ <value>appl</value>
+ </dictionary>
+ <dictionary>
+ <key>DB_BACKUP</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>DB_PREVENT_COPY</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>DEBUG_OR_RELEASE</key>
+ <value>Debug</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.make.core.makeBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>org.eclipse.cdt.core.errorOutputParser</key>
+ <value>org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.VCErrorParser;</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+ <value>clean all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.incrementalBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>make</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enabledIncrementalBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>false</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.palmsource.eclipse.palmos6dev.palmOSProteinNature</nature>
+ <nature>com.palmsource.eclipse.palmoscore.palmOSNature</nature>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.make.core.makeNature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ </natures>
+</projectDescription>
--- /dev/null
+# This file auto-generated by Palm OS Make builder. Don't modify directly!!!
+
+# This value is unescaped. Either quote the value or escape special characters when you use it.
+ifeq ($(TOOLS_DIR), )
+ TOOLS_DIR = C:/Program Files/PalmSource/Palm OS Developer Suite/PalmOSTools/
+endif
+
+# This value is unescaped. Either quote the value or escape special characters when you use it.
+ifeq ($(SDK_LOCATION), )
+ SDK_LOCATION = C:/Program Files/PalmSource/Palm OS Developer Suite/sdk-6/
+endif
+
+ifeq ($(SDK_VERSION), )
+ SDK_VERSION = sdk-6
+endif
+
+ifeq ($(CREATOR_ID), )
+ CREATOR_ID = STRT
+endif
+
+ifeq ($(DB_HIDDEN), )
+ DB_HIDDEN = false
+endif
+
+ifeq ($(TARGET), )
+ TARGET = Simulator
+endif
+
+ifeq ($(DB_TYPE), )
+ DB_TYPE = appl
+endif
+
+ifeq ($(VERSION), )
+ VERSION = 1
+endif
+
+ifeq ($(DB_RESET_INSTALL), )
+ DB_RESET_INSTALL = false
+endif
+
+ifeq ($(SDK), )
+ SDK = com.palmsource.eclipse.sdk.palmos6
+endif
+
+ifeq ($(APP_NAME), )
+ APP_NAME = wxWidgets
+endif
+
+ifeq ($(OS_API), )
+ OS_API = Protein
+endif
+
+ifeq ($(PROJECT_NAME), )
+ PROJECT_NAME = wxWidgets
+endif
+
+ifeq ($(PROJECT_TYPE), )
+ PROJECT_TYPE = appl
+endif
+
+ifeq ($(DB_BACKUP), )
+ DB_BACKUP = true
+endif
+
+ifeq ($(DB_PREVENT_COPY), )
+ DB_PREVENT_COPY = false
+endif
+
+ifeq ($(DEBUG_OR_RELEASE), )
+ DEBUG_OR_RELEASE = Debug
+endif
+
--- /dev/null
+## --------------------------------------------------------------------------
+# Palm OS Generic Protein Makefile for Eclipse v1.0.0
+#
+# Fill in this file to specify your project and the source that you want
+# to build, and the settings involved in the build. The makefile-engine.mk
+# will then do the hard work of the makefile and dependency handling.
+#
+# After starting a new project, please remember the following steps...
+# 1. Add all sources and resources in SOURCES and RESOURCES
+# 2. Review the other settings as needed.
+#
+## --------------------------------------------------------------------------
+
+SHELL = /bin/sh
+## conditionally include an auto-generated.mk for dynamic definitions
+-include auto-generated.mk
+
+## --------------------------------------------------------------------------
+# Set up the artifact name.
+# The database name and other file names are based on the application name
+## --------------------------------------------------------------------------
+
+ARTIFACT_NAME = wxWidgets
+EMPTY =
+SPACE =$(EMPTY) $(EMPTY)
+ESCAPED_ARTIFACT_NAME = $(subst $(SPACE),\ ,$(ARTIFACT_NAME))
+
+PROJECT_NAME = wxWidgets
+PRC_NAME = wxWidgets.prc
+
+## --------------------------------------------------------------------------
+# Sources and Resources and Definition files
+# List all the sources (.c/.cpp), resources (.xrd), and definition file (.sld)
+# in your project. Use project relative path names with forward slashes
+# (src/code.cpp). Please do not use spaces in directory or file names.
+#
+# A note about XRD resource files: If you have existing .rsrc or .rcp files,
+# refer to the documentation for the GenerateXRD tool to convert them into
+# XRD files for use with all Palm OS SDKs.
+## --------------------------------------------------------------------------
+
+# TODO: Update all sources and resources
+
+SOURCES = ../../samples/minimal/minimal.cpp \
+../../src/common/accesscmn.cpp \
+../../src/common/appbase.cpp \
+../../src/common/appcmn.cpp \
+../../src/common/artprov.cpp \
+../../src/common/artstd.cpp \
+../../src/common/bmpbase.cpp \
+../../src/common/bookctrl.cpp \
+../../src/common/choiccmn.cpp \
+../../src/common/clipcmn.cpp \
+../../src/common/clntdata.cpp \
+../../src/common/cmdproc.cpp \
+../../src/common/cmndata.cpp \
+../../src/common/config.cpp \
+../../src/common/containr.cpp \
+../../src/common/cshelp.cpp \
+../../src/common/ctrlcmn.cpp \
+../../src/common/ctrlsub.cpp \
+../../src/common/datacmn.cpp \
+../../src/common/datetime.cpp \
+../../src/common/datstrm.cpp \
+../../src/common/db.cpp \
+../../src/common/dbgrid.cpp \
+../../src/common/dbtable.cpp \
+../../src/common/dcbase.cpp \
+../../src/common/dircmn.cpp \
+../../src/common/dlgcmn.cpp \
+../../src/common/dndcmn.cpp \
+../../src/common/dobjcmn.cpp \
+../../src/common/docmdi.cpp \
+../../src/common/docview.cpp \
+../../src/common/dpycmn.cpp \
+../../src/common/dseldlg.cpp \
+../../src/common/dynarray.cpp \
+../../src/common/dynlib.cpp \
+../../src/common/dynload.cpp \
+../../src/common/effects.cpp \
+../../src/common/encconv.cpp \
+../../src/common/event.cpp \
+../../src/common/fddlgcmn.cpp \
+../../src/common/ffile.cpp \
+../../src/common/file.cpp \
+../../src/common/fileconf.cpp \
+../../src/common/filesys.cpp \
+../../src/common/fldlgcmn.cpp \
+../../src/common/fmapbase.cpp \
+../../src/common/fontcmn.cpp \
+../../src/common/fontmap.cpp \
+../../src/common/framecmn.cpp \
+../../src/common/fs_inet.cpp \
+../../src/common/fs_mem.cpp \
+../../src/common/fs_zip.cpp \
+../../src/common/ftp.cpp \
+../../src/common/gaugecmn.cpp \
+../../src/common/gbsizer.cpp \
+../../src/common/gdicmn.cpp \
+../../src/common/geometry.cpp \
+../../src/common/gifdecod.cpp \
+../../src/common/hash.cpp \
+../../src/common/hashmap.cpp \
+../../src/common/helpbase.cpp \
+../../src/common/http.cpp \
+../../src/common/iconbndl.cpp \
+../../src/common/imagall.cpp \
+../../src/common/imagbmp.cpp \
+../../src/common/image.cpp \
+../../src/common/imagfill.cpp \
+../../src/common/imaggif.cpp \
+../../src/common/imagiff.cpp \
+../../src/common/imagjpeg.cpp \
+../../src/common/imagpcx.cpp \
+../../src/common/imagpng.cpp \
+../../src/common/imagpnm.cpp \
+../../src/common/imagtiff.cpp \
+../../src/common/imagxpm.cpp \
+../../src/common/init.cpp \
+../../src/common/intl.cpp \
+../../src/common/ipcbase.cpp \
+../../src/common/layout.cpp \
+../../src/common/lboxcmn.cpp \
+../../src/common/list.cpp \
+../../src/common/log.cpp \
+../../src/common/longlong.cpp \
+../../src/common/matrix.cpp \
+../../src/common/memory.cpp \
+../../src/common/menucmn.cpp \
+../../src/common/mimecmn.cpp \
+../../src/common/module.cpp \
+../../src/common/msgout.cpp \
+../../src/common/mstream.cpp \
+../../src/common/nbkbase.cpp \
+../../src/common/object.cpp \
+../../src/common/paper.cpp \
+../../src/common/popupcmn.cpp \
+../../src/common/prntbase.cpp \
+../../src/common/process.cpp \
+../../src/common/protocol.cpp \
+../../src/common/quantize.cpp \
+../../src/common/radiocmn.cpp \
+../../src/common/regex.cpp \
+../../src/common/rendcmn.cpp \
+../../src/common/rgncmn.cpp \
+../../src/common/sckaddr.cpp \
+../../src/common/sckfile.cpp \
+../../src/common/sckipc.cpp \
+../../src/common/sckstrm.cpp \
+../../src/common/settcmn.cpp \
+../../src/common/sizer.cpp \
+../../src/common/socket.cpp \
+../../src/common/statbar.cpp \
+../../src/common/strconv.cpp \
+../../src/common/stream.cpp \
+../../src/common/string.cpp \
+../../src/common/sysopt.cpp \
+../../src/common/taskbarcmn.cpp \
+../../src/common/tbarbase.cpp \
+../../src/common/textbuf.cpp \
+../../src/common/textcmn.cpp \
+../../src/common/textfile.cpp \
+../../src/common/timercmn.cpp \
+../../src/common/tokenzr.cpp \
+../../src/common/toplvcmn.cpp \
+../../src/common/treebase.cpp \
+../../src/common/txtstrm.cpp \
+../../src/common/url.cpp \
+../../src/common/utilscmn.cpp \
+../../src/common/valgen.cpp \
+../../src/common/validate.cpp \
+../../src/common/valtext.cpp \
+../../src/common/variant.cpp \
+../../src/common/wfstream.cpp \
+../../src/common/wincmn.cpp \
+../../src/common/wxchar.cpp \
+../../src/common/xpmdecod.cpp \
+../../src/common/xti.cpp \
+../../src/common/xtistrm.cpp \
+../../src/common/xtixml.cpp \
+../../src/common/zipstrm.cpp \
+../../src/common/zstream.cpp \
+../../src/generic/renderg.cpp \
+../../src/generic/statusbr.cpp \
+../../src/palmos/accel.cpp \
+../../src/palmos/app.cpp \
+../../src/palmos/base.cpp \
+../../src/palmos/bitmap.cpp \
+../../src/palmos/bmpbuttn.cpp \
+../../src/palmos/brush.cpp \
+../../src/palmos/button.cpp \
+../../src/palmos/caret.cpp \
+../../src/palmos/checkbox.cpp \
+../../src/palmos/checklst.cpp \
+../../src/palmos/choice.cpp \
+../../src/palmos/clipbrd.cpp \
+../../src/palmos/colordlg.cpp \
+../../src/palmos/colour.cpp \
+../../src/palmos/combobox.cpp \
+../../src/palmos/control.cpp \
+../../src/palmos/crashrpt.cpp \
+../../src/palmos/cursor.cpp \
+../../src/palmos/data.cpp \
+../../src/palmos/dc.cpp \
+../../src/palmos/dcclient.cpp \
+../../src/palmos/dcmemory.cpp \
+../../src/palmos/dcprint.cpp \
+../../src/palmos/dcscreen.cpp \
+../../src/palmos/dialog.cpp \
+../../src/palmos/dialup.cpp \
+../../src/palmos/dib.cpp \
+../../src/palmos/dir.cpp \
+../../src/palmos/dirdlg.cpp \
+../../src/palmos/display.cpp \
+../../src/palmos/dragimag.cpp \
+../../src/palmos/dummy.cpp \
+../../src/palmos/enhmeta.cpp \
+../../src/palmos/evtloop.cpp \
+../../src/palmos/fdrepdlg.cpp \
+../../src/palmos/filedlg.cpp \
+../../src/palmos/font.cpp \
+../../src/palmos/fontdlg.cpp \
+../../src/palmos/fontenum.cpp \
+../../src/palmos/fontutil.cpp \
+../../src/palmos/frame.cpp \
+../../src/palmos/gauge.cpp \
+../../src/palmos/gdiimage.cpp \
+../../src/palmos/gdiobj.cpp \
+../../src/palmos/glcanvas.cpp \
+../../src/palmos/help.cpp \
+../../src/palmos/icon.cpp \
+../../src/palmos/imaglist.cpp \
+../../src/palmos/iniconf.cpp \
+../../src/palmos/joystick.cpp \
+../../src/palmos/listbox.cpp \
+../../src/palmos/listctrl.cpp \
+../../src/palmos/main.cpp \
+../../src/palmos/mdi.cpp \
+../../src/palmos/menu.cpp \
+../../src/palmos/menuitem.cpp \
+../../src/palmos/metafile.cpp \
+../../src/palmos/mimetype.cpp \
+../../src/palmos/minifram.cpp \
+../../src/palmos/msgdlg.cpp \
+../../src/palmos/mslu.cpp \
+../../src/palmos/nativdlg.cpp \
+../../src/palmos/notebook.cpp \
+../../src/palmos/ownerdrw.cpp \
+../../src/palmos/palette.cpp \
+../../src/palmos/pen.cpp \
+../../src/palmos/popupwin.cpp \
+../../src/palmos/printdlg.cpp \
+../../src/palmos/printpalm.cpp \
+../../src/palmos/radiobox.cpp \
+../../src/palmos/radiobut.cpp \
+../../src/palmos/regconf.cpp \
+../../src/palmos/region.cpp \
+../../src/palmos/registry.cpp \
+../../src/palmos/renderer.cpp \
+../../src/palmos/scrolbar.cpp \
+../../src/palmos/settings.cpp \
+../../src/palmos/slider.cpp \
+../../src/palmos/snglinst.cpp \
+../../src/palmos/sound.cpp \
+../../src/palmos/spinbutt.cpp \
+../../src/palmos/spinctrl.cpp \
+../../src/palmos/statbmp.cpp \
+../../src/palmos/statbox.cpp \
+../../src/palmos/statusbar.cpp \
+../../src/palmos/statline.cpp \
+../../src/palmos/stattext.cpp \
+../../src/palmos/taskbar.cpp \
+../../src/palmos/toolbar.cpp \
+../../src/palmos/textctrl.cpp \
+../../src/palmos/tglbtn.cpp \
+../../src/palmos/thread.cpp \
+../../src/palmos/timer.cpp \
+../../src/palmos/tooltip.cpp \
+../../src/palmos/toplevel.cpp \
+../../src/palmos/treectrl.cpp \
+../../src/palmos/utils.cpp \
+../../src/palmos/utilsexc.cpp \
+../../src/palmos/utilsgui.cpp \
+../../src/palmos/volume.cpp \
+../../src/palmos/window.cpp
+
+RESOURCES = ../../include/wx/palmos/wxWidgets.xrd ../../include/wx/palmos/Version.xrd
+DEFS_FILE = ../../include/wx/palmos/wxWidgets.def
+SLD_FILE = ../../include/wx/palmos/wxWidgets.sld
+
+## --------------------------------------------------------------------------
+# Review Database information
+# Register Creator ID at: http://dev.palmos.com/creatorid/
+## --------------------------------------------------------------------------
+
+CREATOR_ID = bapp
+DB_TYPE = appl
+
+DATABASE_RESET =
+DATABASE_BACKUP = -b
+DATABASE_HIDDEN =
+DATABASE_PROTECT =
+DATABASE_VERSION = 1
+
+LOCALE = enUS
+DATABASE_NAME = $(APP_NAME)
+
+## --------------------------------------------------------------------------
+# Choose SDK
+# Supported values:
+# sdk-6
+## --------------------------------------------------------------------------
+
+SDK_VERSION = sdk-6
+
+ifeq ($(SDK_LOCATION),)
+SDK_LOCATION=../../
+endif
+## --------------------------------------------------------------------------
+# Build Settings
+# Review the following for your needs.
+# The default settings build with debug information and no optimization and
+# a target platform of an actual device.
+## --------------------------------------------------------------------------
+
+#
+# Set Debug or Release configuration for this project via the project
+# properties (right-click on the project and select Properties).
+#
+DEBUG_OR_RELEASE=Debug
+
+#
+# Set the target platform for the build; either Device or Simulator
+# Use Device as a target for emulator builds.
+#
+TARGET_PLATFORM=Simulator
+
+# Specify the level of optimization that you want:
+# NONE, SOME, FULL, INTRAPROCEDURAL, INTERPROCEDURAL, INLINING.
+# Leave blank to select FULL for release builds, and NONE for
+# debug builds.
+# INTRAPROCEDURAL, INTERPROCEDURAL, INLINING are applicable to
+# device builds only; simulator builds will translate those levels
+# to FULL.
+OPTIMIZE_LEVEL = NONE
+
+# Specify warning level
+# NONE = suppress all warnings
+# ALL = enable all warnings
+# <undefined> = default warnings
+WARNING_LEVEL =
+
+# Specify exception handling support
+# true = enable it
+# false = don't enable it
+ENABLE_EXCEPTION_HANDLING=true
+
+# List additional libraries to link with
+# (Full or project relative path)
+ADDITIONAL_LINK_LIBRARIES =
+ADDITIONAL_SIM_LINK_LIBRARIES =
+
+# Additional paths to look for #include "header"
+# (Source file directories are automatically included)
+# Please note that both local and system include paths should
+# either use "cygwin" syntax or if in Windows syntax the should
+# be quoted. ie: ../MyLibrary/headers or "C:\Source\MyLibrary\headers"
+# Additionally, you must explicly specify the "-I" prior to each
+# path included in this variable. Spaces are used to separate
+# each path from each other.
+LOCAL_INCLUDE_PATHS = -Irsc -I../../include
+LOCAL_SIM_INCLUDE_PATHS = -Irsc -I../../include
+
+# Additional paths to look for #include <header>
+# (Palm OS SDK directories are automatically included)
+# Additionally, you must explicly specify the "-I" prior to each
+# path included in this variable. Spaces are used to separate
+# each path from each other.
+SYSTEM_INCLUDE_PATHS =
+SYSTEM_SIM_INCLUDE_PATHS =
+
+# Specify any needed preprocessor symbols.
+# If you set DEFINES to "ASSERTLEVEL=1", the compiler will see "-DASSERTLEVEL=1"
+# (separate individual entries with spaces)
+DEFINES =
+SIM_DEFINES =
+
+# Specify additional compiler flags for all files
+ADDITIONAL_COMPILER_FLAGS =
+ADDITIONAL_SIM_COMPILER_FLAGS =
+
+# Specify additional linker flags
+ADDITIONAL_LINKER_FLAGS =
+ADDITIONAL_SIM_LINKER_FLAGS =
+
+# Specify additional archival flags (for static libraries)
+ADDITIONAL_AR_FLAGS =
+ADDITIONAL_SIM_AR_FLAGS =
+
+
+# Tools Directory
+# Normally you wouldn't want to override this since the necessary tools
+# are in the PATH. But if you experimenting with other tools, then
+# reset the directory here
+# If overridden, end with a trailing '/'
+
+ifeq ($(TOOLS_DIR), )
+TOOLS_DIR = ../../../PalmOSTools/
+endif
+
+## --------------------------------------------------------------------------
+# Resource Settings
+## --------------------------------------------------------------------------
+
+# Specify the target text encoding
+# LATIN, JAPANESE, SIMPLIFIED_CHINESE
+TEXTENCODING = LATIN
+
+# Specify error levels for locale and text encoding
+# NOCHECK
+# STRICT
+# <default>
+LOCALE_CHECKING =
+
+# Specific if encoding should be checked
+# FALSE, TRUE
+STRICT_ENCODING = FALSE
+
+## --------------------------------------------------------------------------
+# Output Settings
+## --------------------------------------------------------------------------
+
+# Modify if you want object and output files to be in different locations
+# (However, please note that all three object directories must be different
+# for the makefile engine to properly operate.)
+# OUTPUT_DIR is the "main" output directory, where all linked and binary objects
+# will be put.
+
+DEBUG_DEVICE_OUTPUT_DIR := DebugDevice
+RELEASE_DEVICE_OUTPUT_DIR := ReleaseDevice
+DEBUG_SIMULATOR_OUTPUT_DIR := DebugSim
+RELEASE_SIMULATOR_OUTPUT_DIR := ReleaseSim
+RSC_OBJ_DIR := ResourceObjs
+
+## --------------------------------------------------------------------------
+# Makefiles
+## --------------------------------------------------------------------------
+
+
+## include the makefile engine
+include makefile-engine.mk
+
+## conditionally include your own custom.mk for your specific overrides or definitions
+## this is useful if you don't want to use the auto-generated.mk values
+## for some reason
+-include custom.mk
--- /dev/null
+## Palm OS Protein Generic Makefile Engine for Eclipse v1.0.0
+#
+# Last edit: 7/22/04
+#
+# This makefile engine is capable of compiling Protein
+# applications for Palm OS.
+#
+# This makefile engine assumes that the following variables are
+# set outside of this makefile by a referencing master makefile
+# (see a master makefile generated by a Palm OS Developer
+# Suite wizard for detailed explanation of each variable):
+#
+# SOURCES
+# RESOURCES
+# DATABASE_RESET
+# DATABASE_BACKUP
+# DATABASE_HIDDEN
+# DATABASE_PROTECT
+# DATABASE_BUNDLE
+# DATABASE_VERSION
+# DATABASE_NAME
+# PROJECT_TYPE
+# DEBUG_OR_RELEASE
+# OPTIMIZE_LEVEL
+# WARNING_LEVEL
+# ENABLE_EXCEPTIONS
+# ENABLE_ASSERTIONS
+# ADDITIONAL_LINK_LIBRARIES
+# ADDITIONAL_SIM_LINK_LIBRARIES
+# LOCAL_INCLUDE_PATHS
+# LOCAL_SIM_INCLUDE_PATHS
+# SYSTEM_INCLUDE_PATHS
+# SYSTEM_SIM_INCLUDE_PATHS
+# DEFINES
+# SIM_DEFINES
+# ADDITIONAL_COMPILER_FLAGS
+# ADDITIONAL_SIM_COMPILER_FLAGS
+# ADDITIONAL_LINKER_FLAGS
+# ADDITIONAL_SIM_LINKER_FLAGS
+# ADDITIONAL_AR_FLAGS
+# ADDITIONAL_SIM_AR_FLAGS
+# TEXTENCODING
+# LOCALE_CHECKING
+# STRICT_ENCODING
+# SDK_LOCATION
+# TARGET_PLATFORM
+#
+# Additionally, the user of this makefile engine may obtain the
+# dynamic values for:
+# SDK_LOCATION
+# SDK_VERSION
+# TOOLS_DIR
+# by doing an optional include of a makefile segment that is
+# generated during the Palm OS Developer Suite standard make build.
+# The makefile line to accomplish this is:
+# -include auto-generated.mk
+# All master makefiles generated by Palm OS Developer Suite
+# wizards include this line already to pick up and use these
+# dynamic definitions.
+#
+# All variable values may be overridden by editing the make command
+# for the project (Project->Properties->C/C++ Make Project->Make Builder,
+# Build Command field).
+#
+
+###############################################################################
+# Defaults
+
+comma:= ,
+
+ifeq ($(TOOLS_DIR), )
+ TOOLS_DIR =
+endif
+
+# Locale (defaults to English)
+ifeq ($(LOCALE), )
+ LOCALE := enUS
+endif
+
+ifeq ($(CREATOR_ID), )
+ CREATOR_ID = STRT
+endif
+
+ifeq ($(DB_TYPE), )
+ DB_TYPE = appl
+endif
+
+ifeq ($(SLD_FILE), )
+ SLD_FILE = none
+endif
+
+ifeq ($(DEBUG_DEVICE_OUTPUT_DIR), )
+ DEBUG_DEVICE_OUTPUT_DIR = DebugDevice
+endif
+
+ifeq ($(RELEASE_DEVICE_OUTPUT_DIR), )
+ RELEASE_DEVICE_OUTPUT_DIR = ReleaseDevice
+endif
+
+ifeq ($(DEBUG_SIMULATOR_OUTPUT_DIR), )
+ DEBUG_SIMULATOR_OUTPUT_DIR = DebugSim
+endif
+
+ifeq ($(RELEASE_SIMULATOR_OUTPUT_DIR), )
+ RELEASE_SIMULATOR_OUTPUT_DIR = ReleaseSim
+endif
+
+ifeq ($(SDK_VERSION), )
+ SDK_VERSION = sdk-6
+endif
+
+ifeq ($(ENABLE_EXCEPTIONS), )
+ ENABLE_EXCEPTIONS=TRUE
+endif
+
+###############################################################################
+# App/PRC/Database Names
+#
+# The difference between App Name and Database name is that App Name may
+# contain spaces while the database name is the App name with spaces removed.
+# (Coded in such a way that if the user already explicitly defined these
+# variables previously, we'll go with those).
+
+ifeq ($(DATABASE_NAME), )
+ifeq ($(ESCAPED_ARTIFACT_NAME), )
+ # Database name defaults if ARTIFACT_NAME is empty
+ DATABASE_NAME = StartApp
+else
+ DATABASE_NAME = $(ESCAPED_ARTIFACT_NAME)
+endif
+endif
+
+ifeq ($(PRC_NAME), )
+ifeq ($(ESCAPED_ARTIFACT_NAME), )
+ # PRC name defaults if ESCAPED_ARTIFACT_NAME is empty
+ PRC_NAME = Start.prc
+else
+ PRC_NAME = $(DATABASE_NAME).prc
+endif
+endif
+
+ifeq ($(LIB_NAME), )
+ifeq ($(ESCAPED_ARTIFACT_NAME), )
+ # LIB name defaults if ESCAPED_ARTIFACT_NAME is empty
+ LIB_NAME = Start.a
+else
+ LIB_NAME = $(DATABASE_NAME).a
+endif
+endif
+
+ifeq ($(SIM_LIB_NAME), )
+ifeq ($(ESCAPED_ARTIFACT_NAME), )
+ # SIM LIB name defaults if ESCAPED_ARTIFACT_NAME is empty
+ SIM_LIB_NAME = Start.lib
+else
+ SIM_LIB_NAME = $(DATABASE_NAME).lib
+endif
+endif
+
+###############################################################################
+# Compile and Link Settings
+
+TARGET_FORMAT=PalmOS6
+
+# Compiler settings... compiler + optimizations + debug
+# This is a makefile for Palm OS 6 so the compilers used are as follows:
+# Device target compiler is pacc
+# Simulator target compiler is gcc
+
+CC = "$(TOOLS_DIR)pacc"
+SIM_CC = gcc
+
+CFLAGS += -D__PALMOS_KERNEL__=1 -D__PALMOS__=0x06000000
+SIM_CFLAGS += -fexceptions -mno-cygwin -mwindows -D__PALMOS_KERNEL__=1 -D__PALMOS__=0x06000000 -D_SUPPORTS_NAMESPACE=0 -D_SUPPORTS_RTTI=1 -DTARGET_PLATFORM=TARGET_PLATFORM_PALMSIM_WIN32 -DTARGET_HOST=TARGET_HOST_PALMOS
+
+# Warning level for device target
+ifeq ($(WARNING_LEVEL), ALL)
+ CFLAGS += -W4
+else
+ifeq ($(WARNING_LEVEL), SOME)
+ CFLAGS += -W2
+else
+ifeq ($(WARNING_LEVEL), NONE)
+ CFLAGS += -W0
+endif
+endif
+endif
+
+# Warning level for simulator target
+ifeq ($(SIM_WARNING_LEVEL), ALL)
+ SIM_CFLAGS += -Wall
+else
+ifeq ($(SIM_WARNING_LEVEL), NONE)
+ SIM_CFLAGS += -w
+endif
+endif
+
+# Warnings as errors for device builds
+ifeq ($(WARNING_AS_ERROR), TRUE)
+ CFLAGS += -Werror
+endif
+
+# Warnings as errors for simulator builds
+ifeq ($(SIM_WARNING_AS_ERROR), TRUE)
+ SIM_CFLAGS += -Werror
+endif
+
+# Adding after other warnings flags so this is always in effect
+SIM_CFLAGS += -Wno-multichar
+
+# Verbose output for device build
+ifeq ($(VERBOSE), TRUE)
+ CFLAGS += -v
+endif
+
+# Verbose output for simulator build
+ifeq ($(SIM_VERBOSE), TRUE)
+ SIM_CFLAGS += -v
+endif
+
+# Dislay logo
+ifeq ($(ARM_LOGO), TRUE)
+ CFLAGS += -logo
+else
+ CFLAGS += -nologo
+endif
+
+# Exception handling support
+ifeq ($(ENABLE_EXCEPTIONS), TRUE)
+ CFLAGS += -ex
+ LDFLAGS += -ex
+endif
+
+# Assertion handling support
+ifeq ($(ENABLE_ASSERTIONS), TRUE)
+ CFLAGS += -UNDEBUG
+else
+ CFLAGS += -DNDEBUG=1
+endif
+
+# Additional linker flags
+ifdef ADDITIONAL_PALINK_FLAGS
+ LDFLAGS += $(ADDITIONAL_PALINK_FLAGS)
+endif
+
+# Optimization settings
+ifeq ($(OPTIMIZE_LEVEL), INLINING)
+ OPTIMIZER_FLAG = -O5
+ SIM_OPTIMIZER_FLAG = -O3
+else
+ifeq ($(OPTIMIZE_LEVEL), INTERPROCEDURAL)
+ OPTIMIZER_FLAG = -O4
+ SIM_OPTIMIZER_FLAG = -O3
+else
+ifeq ($(OPTIMIZE_LEVEL), FULL)
+ OPTIMIZER_FLAG = -O3
+ SIM_OPTIMIZER_FLAG = -O3
+else
+ifeq ($(OPTIMIZE_LEVEL), INTRAPROCEDURAL)
+ OPTIMIZER_FLAG = -O2
+ SIM_OPTIMIZER_FLAG = -O3
+else
+ifeq ($(OPTIMIZE_LEVEL), SOME)
+ OPTIMIZER_FLAG = -O1
+ SIM_OPTIMIZER_FLAG = -O1
+else
+ifeq ($(OPTIMIZE_LEVEL), NONE)
+ OPTIMIZER_FLAG = -O0
+ SIM_OPTIMIZER_FLAG = -O0
+else
+# Default to 0 for debug, 3 for release
+ifeq ($(DEBUG_OR_RELEASE), Debug)
+ OPTIMIZER_FLAG = -O0
+ SIM_OPTIMIZER_FLAG = -O0
+else
+ OPTIMIZER_FLAG = -O3
+ SIM_OPTIMIZER_FLAG = -O3
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+
+# Debug settings (can override optimize settings)
+ifeq ($(DEBUG_OR_RELEASE), Debug)
+ DEBUG_FLAG += -g
+ BUILD_TYPE_FLAG = -DBUILD_TYPE=BUILD_TYPE_DEBUG
+ TRACE_OUTPUT_FLAG = -DTRACE_OUTPUT=TRACE_OUTPUT_ON
+else
+ BUILD_TYPE_FLAG = -DBUILD_TYPE=BUILD_TYPE_RELEASE
+ TRACE_OUTPUT_FLAG = -DTRACE_OUTPUT=TRACE_OUTPUT_OFF
+endif
+
+ifeq ($(DEBUG_OR_RELEASE), Debug)
+ OBJ_DIR = $(DEBUG_DEVICE_OUTPUT_DIR)
+ SIM_OBJ_DIR = $(DEBUG_SIMULATOR_OUTPUT_DIR)
+else
+ OBJ_DIR = $(RELEASE_DEVICE_OUTPUT_DIR)
+ SIM_OBJ_DIR = $(RELEASE_SIMULATOR_OUTPUT_DIR)
+endif
+
+
+CFLAGS += $(OPTIMIZER_FLAG) $(DEBUG_FLAG) $(BUILD_TYPE_FLAG) $(TRACE_OUTPUT_FLAG)
+SIM_CFLAGS += $(SIM_OPTIMIZER_FLAG) $(DEBUG_FLAG) $(BUILD_TYPE_FLAG) $(TRACE_OUTPUT_FLAG)
+
+# Linker settings (must come after setting DEBUG_FLAG)
+LD = "$(TOOLS_DIR)pacc"
+SIM_LD = gcc
+
+LDFLAGS += $(DEBUG_FLAG) -nologo -Wl,-nolocals
+SIM_LDFLAGS += $(DEBUG_FLAG) -mno-cygwin -mwindows $(SIM_OBJ_DIR)/gcc_link.def -shared -nostdlib -u___divdi3 -u___moddi3 -u___udivdi3 -u___umoddi3
+SIM_LIBS = -L "$(TOOLS_DIR)misclibs" -lpxstlport -lpxsupc++ -lpxgcc -lgcc
+ifeq ($(DEBUG_OR_RELEASE), Debug)
+ LDFLAGS += -Wl,-debug -Wl,-libpath -Wl,"$(SDK_LOCATION)libraries/ARM_4T/Debug/Default"
+ SIM_LIBS += "$(SDK_LOCATION)libraries/Simulator/Debug/PalmOS.lib"
+else
+ LDFLAGS += -Wl,-libpath -Wl,"$(SDK_LOCATION)libraries/ARM_4T/Release/Default"
+ SIM_LIBS += "$(SDK_LOCATION)libraries/Simulator/Release/PalmOS.lib"
+endif
+
+LDOBJS = PalmOS.a SystemGlue.a FloatMgr.sa
+
+ifeq ($(TARGET_PLATFORM), Device)
+ NATIVE_OBJ_DIR := $(OBJ_DIR)
+ RSC_OBJ_DIR := $(OBJ_DIR)
+else
+ NATIVE_OBJ_DIR := $(SIM_OBJ_DIR)
+ RSC_OBJ_DIR := $(SIM_OBJ_DIR)
+endif
+
+# Librarian settings
+AR="$(TOOLS_DIR)palib"
+SIM_AR=ar
+
+ARFLAGS= -c -a
+SIM_ARFLAGS=-rc
+
+LINKER_OUTPUT := $(OBJ_DIR)/$(DATABASE_NAME).axf
+SIM_LINKER_OUTPUT := $(SIM_OBJ_DIR)/$(DATABASE_NAME).dll
+
+TARGET := $(OBJ_DIR)/$(PRC_NAME)
+SIM_TARGET := $(SIM_OBJ_DIR)/$(PRC_NAME)
+
+STATIC_LIB_TARGET := $(OBJ_DIR)/$(LIB_NAME)
+SIM_STATIC_LIB_TARGET := $(SIM_OBJ_DIR)/$(SIM_LIB_NAME)
+
+###############################################################################
+# Resource flags (PalmRC)
+
+RFLAGS +=
+
+# Default text encoding is Latin
+ifeq ($(PRC_TEXT_ENCODING), )
+ PRC_TEXT_ENCODING = LATIN
+endif
+
+ifeq ($(PRC_TEXT_ENCODING), LATIN)
+ RFLAGS += -target 4.0
+else
+ifeq ($(PRC_TEXT_ENCODING), JAPANESE)
+ RFLAGS += -target 4.0J
+else
+ifeq ($(PRC_TEXT_ENCODING), SIMPLIFIED_CHINESE)
+ RFLAGS += -target 4.0CS
+endif
+endif
+endif
+
+ifeq ($(PRC_NO_LOCALE_CHECK), TRUE)
+ RFLAGS += -noLocaleCheck
+endif
+
+ifeq ($(PRC_STRICT_LOCALE), TRUE)
+ RFLAGS += -strictLocale
+endif
+
+ifeq ($(PRC_STRICT_ENCODING), TRUE)
+ RFLAGS += -strictTextEncoding
+endif
+
+ifdef PRC_OVERLAY_FILTER
+ RFLAGS += -overlayFilter $(PRC_OVERLAY_FILTER)
+endif
+
+ifeq ($(PRC_NO_WARN_SIZE), TRUE)
+ RFLAGS += -noWarnSize
+endif
+
+ifeq ($(PRC_QUIET), TRUE)
+ RFLAGS += -quiet
+endif
+
+ifeq ($(PRCMERGE_QUIET), TRUE)
+ PRCFLAGS += -quiet
+endif
+
+###############################################################################
+
+# function for converting sources to object file names in one of output directories
+define SOURCE_LIST_TO_OBJS
+ $(addprefix $(OBJ_DIR)/, $(addsuffix .o, $(foreach file, $(SOURCES), \
+ $(basename $(notdir $(file))))))
+endef
+
+# function for converting sources to object file names in $(SIM_OBJ_DIR)
+define SOURCE_LIST_TO_SIM_OBJS
+ $(addprefix $(SIM_OBJ_DIR)/, $(addsuffix .o, $(foreach file, $(SOURCES), \
+ $(basename $(notdir $(file))))))
+endef
+
+# function for converting resources into resource object files
+define RESOURCE_LIST_TO_OBJS
+ $(addprefix $(RSC_OBJ_DIR)/, $(addsuffix .trc, $(foreach file, $(RESOURCES), \
+ $(basename $(file)))))
+endef
+
+OBJS = $(SOURCE_LIST_TO_OBJS)
+SIM_OBJS = $(SOURCE_LIST_TO_SIM_OBJS)
+SOURCE_PATHS += $(sort $(foreach file, $(SOURCES), $(dir $(file))))
+RESOURCE_OBJS = $(RESOURCE_LIST_TO_OBJS)
+RESOURCE_PATHS += $(sort $(foreach file, $(RESOURCES), $(dir $(file))))
+SLD_BASENAME := $(addsuffix _Startup, $(basename $(notdir $(SLD_FILE))))
+SLD_OBJ := $(addprefix $(OBJ_DIR)/, $(addsuffix .o, $(SLD_BASENAME)))
+SLD_SIM_OBJ := $(addprefix $(SIM_OBJ_DIR)/, $(addsuffix .o, $(SLD_BASENAME)))
+
+VPATH :=
+VPATH += $(addprefix :, $(subst ,:, $(filter-out $($(subst, :, ,$(VPATH))), $(SOURCE_PATHS) $(RESOURCE_PATHS) )))
+
+SYSTEM_INCLUDES = $(SYSTEM_INCLUDE_PATHS) -I "$(SDK_LOCATION)headers" -I "$(SDK_LOCATION)headers/posix"
+INCLUDES = $(LOCAL_INCLUDE_PATHS) $(foreach path, $(SOURCE_PATHS), $(addprefix -I, $(path))) $(SYSTEM_INCLUDES) $(PRE_INCLUDE_PATHS)
+CPP_INCLUDES = -I "$(TOOLS_DIR)include/stlport"
+
+SIM_SYSTEM_INCLUDES = $(SYSTEM_SIM_INCLUDE_PATHS) -I "$(SDK_LOCATION)headers" -I "$(SDK_LOCATION)headers/posix"
+SIM_INCLUDES = $(LOCAL_SIM_INCLUDE_PATHS) $(foreach path, $(SOURCE_PATHS), $(addprefix -I, $(path))) $(SIM_SYSTEM_INCLUDES) $(SIM_PRE_INCLUDE_PATHS)
+SIM_CPP_INCLUDES = -I "$(TOOLS_DIR)include/stlport"
+
+# Now add additional settings specified by user
+LDFLAGS += $(ADDITIONAL_LINK_LIBRARIES)
+LDFLAGS += $(foreach libpath, $(ADDITIONAL_LINK_LIBPATH), $(addprefix -libpath , $(libpath)))
+LDFLAGS += $(foreach option, $(ADDITIONAL_LINKER_FLAGS), $(addprefix -Wl$(comma), $(option)))
+CFLAGS += $(foreach define, $(DEFINES), $(addprefix -D, $(define)))
+CFLAGS += $(foreach define, $(UNDEFINES), $(addprefix -U, $(define)))
+CFLAGS += $(ADDITIONAL_COMPILER_FLAGS)
+
+SIM_LDFLAGS += $(ADDITIONAL_SIM_LINK_LIBRARIES)
+SIM_LDFLAGS += $(ADDITIONAL_SIM_LINKER_FLAGS)
+SIM_LDFLAGS += $(foreach libpath, $(ADDITIONAL_SIM_LINK_LIBPATH), $(addprefix -L, $(libpath)))
+SIM_CFLAGS += $(foreach define, $(SIM_DEFINES), $(addprefix -D, $(define)))
+SIM_CFLAGS += $(foreach define, $(SIM_UNDEFINES), $(addprefix -U, $(define)))
+SIM_CFLAGS += $(ADDITIONAL_SIM_COMPILER_FLAGS)
+
+# Specifyc additional archival flags (for static libraries)
+ARFLAGS += $(ADDITIONAL_AR_FLAGS)
+SIM_ARFLAGS += $(ADDITIONAL_SIM_AR_FLAGS)
+
+RFLAGS += $(ADDITIONAL_PRC_FLAGS)
+PRCFLAGS += $(ADDITIONAL_PRCMERGE_FLAGS)
+
+###############################################################################
+# Flags for PRC creation
+
+PRCFLAGS += -dbFlagExtendedDB -dbFlagExecutable
+
+PRCFLAGS += -dbVersion $(DATABASE_VERSION) $(DATABASE_PROTECT) $(DATABASE_HIDDEN) $(DATABASE_BACKUP) $(DATABASE_RESET) $(DATABASE_BUNDLE)
+
+
+###############################################################################
+# Flags for pslib
+
+PSLIB_DEV_FLAGS =
+PSLIB_SIM_FLAGS = -outSimgcc
+ifeq ($(PROJECT_TYPE), slib)
+ PSLIB_DEV_FLAGS += -outEntryNums $(OBJ_DIR)/$(DATABASE_NAME)_Client.h -outObjStubs $(OBJ_DIR)/$(DATABASE_NAME)_Client.sa
+ PSLIB_SIM_FLAGS += -outEntryNums $(SIM_OBJ_DIR)/$(DATABASE_NAME)_Client.h -outSimStubs $(SIM_OBJ_DIR)/$(DATABASE_NAME)_Client.slib
+endif
+
+
+
+###############################################################################
+# Project make target determination
+
+ifeq ($(TARGET_PLATFORM), Device)
+
+ifeq ($(PROJECT_TYPE), )
+ PROJECT_TARGET = device
+endif
+
+ifeq ($(PROJECT_TYPE), appl)
+ PROJECT_TARGET = device
+endif
+ifeq ($(PROJECT_TYPE), slib)
+ PROJECT_TARGET = device_shared_lib
+endif
+ifeq ($(PROJECT_TYPE), lib)
+ PROJECT_TARGET = device_static_lib
+endif
+
+else
+
+ifeq ($(PROJECT_TYPE), )
+ PROJECT_TARGET = simulator
+endif
+
+ifeq ($(PROJECT_TYPE), appl)
+ PROJECT_TARGET = simulator
+endif
+ifeq ($(PROJECT_TYPE), slib)
+ PROJECT_TARGET = simulator_shared_lib
+endif
+ifeq ($(PROJECT_TYPE), lib)
+ PROJECT_TARGET = simulator_static_lib
+endif
+
+endif
+
+###############################################################################
+# Eclipse requires an all target to get the work done
+
+all: $(PROJECT_TARGET)
+
+# This rule is only valid for projects created as application projects.
+# Don't invoke this make target directly; instead change the value of
+# TARGET_PLATFORM to Device in the main makefile
+device: $(OBJ_DIR) $(TARGET)
+
+# This rule is only valid for projects created as application projects.
+# Don't invoke this make target directly; instead change the value of
+# TARGET_PLATFORM to Simulator in the main makefile
+simulator: $(SIM_OBJ_DIR) $(SIM_TARGET)
+
+# This rule is only valid for projects created as shared library projects.
+# Don't invoke this make target directly; instead change the value of
+# TARGET_PLATFORM to Device in the main makefile
+device_shared_lib: $(OBJ_DIR) $(TARGET)
+
+# This rule is only valid for projects created as shared library projects.
+# Don't invoke this make target directly; instead change the value of
+# TARGET_PLATFORM to Simulator in the main makefile
+simulator_shared_lib: $(SIM_OBJ_DIR) $(SIM_TARGET)
+
+# This rule is only valid for projects created as static library projects.
+# Don't invoke this make target directly; instead change the value of
+# TARGET_PLATFORM to Device in the main makefile
+device_static_lib: $(OBJ_DIR) $(STATIC_LIB_TARGET)
+
+# This rule is only valid for projects created as static library projects.
+# Don't invoke this make target directly; instead change the value of
+# TARGET_PLATFORM to Simulator in the main makefile
+simulator_static_lib: $(SIM_OBJ_DIR) $(SIM_STATIC_LIB_TARGET)
+
+
+# rule to create the object file directories if needed
+$(OBJ_DIR):
+ @[ -d $(OBJ_DIR) ] || mkdir $(OBJ_DIR) > /dev/null 2>&1
+
+$(SIM_OBJ_DIR):
+ @[ -d $(SIM_OBJ_DIR) ] || mkdir $(SIM_OBJ_DIR) > /dev/null 2>&1
+
+# main C/C++ sources
+$(OBJ_DIR)/%.o : %.c makefile
+ $(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
+$(OBJ_DIR)/%.o : %.cpp makefile
+ $(CC) -c $< $(INCLUDES) $(CPP_INCLUDES) $(CFLAGS) -o $@
+$(OBJ_DIR)/%.o : %.cp makefile
+ $(CC) -c $< $(INCLUDES) $(CPP_INCLUDES) $(CFLAGS) -o $@
+$(OBJ_DIR)/%.o : %.cc makefile
+ $(CC) -c $< $(INCLUDES) $(CPP_INCLUDES) $(CFLAGS) -o $@
+$(OBJ_DIR)/%.o : %.C makefile
+ $(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
+$(OBJ_DIR)/%.o : %.CC makefile
+ $(CC) -c $< $(INCLUDES) $(CPP_INCLUDES) $(CFLAGS) -o $@
+$(OBJ_DIR)/%.o : %.CPP makefile
+ $(CC) -c $< $(INCLUDES) $(CPP_INCLUDES) $(CFLAGS) -o $@
+
+# Simulator C/C++ sources
+$(SIM_OBJ_DIR)/%.o : %.c makefile
+ $(SIM_CC) -c $< $(SIM_INCLUDES) -std=c99 $(SIM_CFLAGS) -o $@
+$(SIM_OBJ_DIR)/%.o : %.cpp makefile
+ $(SIM_CC) -c $< $(SIM_INCLUDES) $(SIM_CPP_INCLUDES) -frtti $(SIM_CFLAGS) -o $@
+$(SIM_OBJ_DIR)/%.o : %.cp makefile
+ $(SIM_CC) -c $< $(SIM_INCLUDES) $(SIM_CPP_INCLUDES) -frtti $(SIM_CFLAGS) -o $@
+$(SIM_OBJ_DIR)/%.o : %.cc makefile
+ $(SIM_CC) -c $< $(SIM_INCLUDES) $(SIM_CPP_INCLUDES) -frtti $(SIM_CFLAGS) -o $@
+$(SIM_OBJ_DIR)/%.o : %.C makefile
+ $(SIM_CC) -c $< $(SIM_INCLUDES) -std=c99 $(SIM_CFLAGS) -o $@
+$(SIM_OBJ_DIR)/%.o : %.CC makefile
+ $(SIM_CC) -c $< $(SIM_INCLUDES) $(SIM_CPP_INCLUDES) -frtti $(SIM_CFLAGS) -o $@
+$(SIM_OBJ_DIR)/%.o : %.CPP makefile
+ $(SIM_CC) -c $< $(SIM_INCLUDES) $(SIM_CPP_INCLUDES) -frtti $(SIM_CFLAGS) -o $@
+
+
+# XRD source processing
+$(RSC_OBJ_DIR)/%.trc : %.xrd makefile
+ "$(TOOLS_DIR)PalmRC" -p $(TARGET_FORMAT) -makeDeps $(@D)/$(*F).deps $(RFLAGS) -locale $(LOCALE) "`cygpath -w -a ./$<`" -o $@
+$(RSC_OBJ_DIR)/%.trc : %.XRD makefile
+ "$(TOOLS_DIR)PalmRC" -p $(TARGET_FORMAT) -makeDeps $(@D)/$(*F).deps $(RFLAGS) -locale $(LOCALE) "`cygpath -w -a ./$<`" -o $@
+
+
+# Definition file source processing
+$(SLD_OBJ) : makefile
+ @echo "...Processing definition file for Device..."
+ "$(TOOLS_DIR)pslib" -inDef "$(SLD_FILE)" $(PSLIB_DEV_FLAGS) -outObjStartup $@ -type '$(DB_TYPE)' -creator '$(CREATOR_ID)' -execName $(DATABASE_NAME)
+
+$(SLD_SIM_OBJ) : makefile
+ @echo "...Processing definition file for Simulator..."
+ "$(TOOLS_DIR)pslib" -inDef "$(SLD_FILE)" $(PSLIB_SIM_FLAGS) -outSimStartup $@ -outSimRsrc $(SIM_OBJ_DIR)/acod0000.bin -outSimDefs $(SIM_OBJ_DIR)/gcc_link.def -type '$(DB_TYPE)' -creator '$(CREATOR_ID)' -execName $(DATABASE_NAME)
+
+# Linking step
+$(LINKER_OUTPUT) : $(OBJS)
+ @echo "...Linking for Device Target..."
+ $(LD) -o $(LINKER_OUTPUT) $(OBJS) $(SLD_OBJ) $(LDOBJS) $(LDFLAGS)
+
+$(SIM_LINKER_OUTPUT) : $(SIM_OBJS)
+ @echo "...Linking for Simulator Target..."
+ $(SIM_LD) --entry 0 -o $(SIM_LINKER_OUTPUT) $(SIM_OBJS) $(SLD_SIM_OBJ) $(SIM_LDFLAGS) $(SIM_LIBS)
+
+
+# Final target creation
+$(TARGET): $(SLD_OBJ) $(LINKER_OUTPUT) $(RESOURCE_OBJS)
+ @echo "...Creating PRC for Device: $(TARGET)"
+ "$(TOOLS_DIR)pelf2bin" -format 6 -directory $(OBJ_DIR) -code acod -data adat -rsrc 0x0000 $(LINKER_OUTPUT)
+ "$(TOOLS_DIR)PRCMerge" -dbType '$(DB_TYPE)' -dbCreator '$(CREATOR_ID)' -dbName $(DATABASE_NAME) $(PRCFLAGS) -o $(TARGET) $(RESOURCE_OBJS) $(OBJ_DIR)/adat0000.bin $(OBJ_DIR)/acod0000.bin
+ @echo ...Done with Device build...
+ @echo
+
+$(SIM_TARGET): $(SLD_SIM_OBJ) $(SIM_LINKER_OUTPUT) $(RESOURCE_OBJS)
+ @echo "...Creating PRC for Simulator: $(SIM_TARGET)"
+ cp -f "$(SDK_LOCATION)misctools/Resources/amdd_fake" $(SIM_OBJ_DIR)/adat0000.bin
+ "$(TOOLS_DIR)PRCMerge" -dbType '$(DB_TYPE)' -dbCreator '$(CREATOR_ID)' -dbName $(DATABASE_NAME) $(PRCFLAGS) -o $(SIM_TARGET) $(RESOURCE_OBJS) $(SIM_OBJ_DIR)/adat0000.bin $(SIM_OBJ_DIR)/acod0000.bin
+ @echo ...Done with Simulator build...
+ @echo
+
+$(STATIC_LIB_TARGET) : $(OBJS)
+ @echo "...Linking Static Library for Device Target..."
+ $(AR) $(ARFLAGS) $(STATIC_LIB_TARGET) $(OBJS)
+
+$(SIM_STATIC_LIB_TARGET) : $(SIM_OBJS)
+ @echo "...Linking Static Library for Simulator Target..."
+ $(SIM_AR) $(SIM_ARFLAGS) $(SIM_STATIC_LIB_TARGET) $(SIM_OBJS)
+
+
+FORCE:
+
+# Eclipse requires a clean command
+clean :: FORCE
+ -rm -rf $(NATIVE_OBJ_DIR)/*
+
+
+printvars :: FORCE
+ @echo "SDK_LOCATION"
+ @echo $(SDK_LOCATION)
+ @echo "CFLAGS"
+ @echo $(CFLAGS)
+ @echo "SIM_CFLAGS"
+ @echo $(SIM_CFLAGS)
+ @echo "LDFLAGS"
+ @echo $(LDFLAGS)
+ @echo "SIM_LDFLAGS"
+ @echo $(SIM_LDFLAGS)
+ @echo "OBJS"
+ @echo $(OBJS)
+ @echo "SIM_OBJS"
+ @echo $(SIM_OBJS)
+ @echo "SLD_OBJ"
+ @echo $(SLD_OBJ)
+ @echo "SLD_SIM_OBJ"
+ @echo $(SLD_SIM_OBJ)
+ @echo "TARGET"
+ @echo $(TARGET)
+ @echo "SIM_TARGET"
+ @echo $(SIM_TARGET)
+ @echo "SOURCE_PATHS"
+ @echo $(SOURCE_PATHS)
+ @echo "RESOURCE_OBJS"
+ @echo $(RESOURCE_OBJS)
+ @echo "RESOURCE_PATHS"
+ @echo $(RESOURCE_PATHS)
+ @echo "OBJ_DIR"
+ @echo $(OBJ_DIR)
+ @echo "SIM_OBJ_DIR"
+ @echo $(SIM_OBJ_DIR)
+ @echo "RSC_OBJ_DIR"
+ @echo $(RSC_OBJ_DIR)
+ @echo "LINKER_OUTPUT"
+ @echo $(LINKER_OUTPUT)
+ @echo "SIM_LINKER_OUTPUT"
+ @echo $(SIM_LINKER_OUTPUT)
+ @echo "SIM_GCC_SLIBS"
+ @echo $(SIM_GCC_SLIBS)
+ @echo "SIM_GCC_SLIB_PATHS"
+ @echo $(SIM_GCC_SLIB_PATHS)
+ @echo "VPATH"
+ @echo $(VPATH)
+
+
+#
+# dependency generation
+# Generate dependencies with depend target "make depend"
+#
+
+DEPFLAG = -MM
+
+#
+# Adds $(SIM_OBJ_DIR) to target .o file
+# ...Search for string starting at the beginning of the line [^]
+# ...that contain anything followed by .o [.*\.o]
+# ...and remember that string [\(...\)]
+# ...replace that string with $(SIM_OBJ_DIR)/<tagged string> [$$(SIM_OBJ_DIR)/\1]
+# ($ is doubled so that make doesn't interpret the variable syntax)
+#
+SOURCE_SEDSCRIPT = sed -e's%^\(.*\.o\)%$$(OBJ_DIR)/\1%'
+SOURCE_SIM_SEDSCRIPT = sed -e's%^\(.*\.o\)%$$(SIM_OBJ_DIR)/\1%'
+
+# Command adds $(RSC_OBJ_DIR) and converts .xrd to .trc
+RESOURCE_TARGET_SEDSCRIPT = sed -e';s%^\(.*\).xrd%$$(RSC_OBJ_DIR)/\1.trc%'
+
+# Command to escape spaces in a path
+ESCAPE_SPACES_SEDSCRIPT = sed 's/ /\\\ /g'
+
+# Take out all newlines (and/or returns) and replace with spaces
+# ...putting all dependencies on the same line
+RESOURCE_PREREQ_SEDSCRIPT = tr '\r\n' ' '
+
+depend :: FORCE
+ @echo "" > .dependencies
+ @$(SIM_CC) $(SIM_INCLUDES) $(SIM_CFLAGS) $(DEPFLAG) $(SOURCES) | $(SOURCE_SIM_SEDSCRIPT) >> .dependencies
+ @$(SIM_CC) $(SIM_INCLUDES) $(SIM_CFLAGS) $(DEPFLAG) $(SOURCES) | $(SOURCE_SEDSCRIPT) >> .dependencies
+ @for i in $(RESOURCES); do \
+ echo "$$i: \\" | $(RESOURCE_TARGET_SEDSCRIPT) >> .resdependencies; \
+ "$(TOOLS_DIR)PalmRC" -p $(TARGET_FORMAT) $(RFLAGS) -locale $(LOCALE) -makedeps $$i.tmp "`cygpath -w -a ./$$i`"; \
+ cygpath -m -f $$i.tmp | $(ESCAPE_SPACES_SEDSCRIPT) >> $$i.deps; \
+ rm -rf $$i.tmp; \
+ cat $$i.deps | $(RESOURCE_PREREQ_SEDSCRIPT) >> .resdependencies; \
+ echo "" >> .resdependencies; \
+ rm -rf $$i.deps; \
+ cat .resdependencies >> .dependencies; \
+ rm -rf .resdependencies; \
+ done
+
+
+cleandepend :: FORCE
+ -rm -f .dependencies
+
+-include .dependencies
--- /dev/null
+wxWidgets 2.5.3 CVS 10-18-2004
+------------------------------
+
+This is a Palm OS 6 port of the wxWidgets toolkit. Included in the source
+package is the complete source necessary to build the Palm OS port using the
+Palm OS Developer Studio. Also included is the diff showing the changes that
+need to be incorporated into the wxWidgets 2.5.3 CVS source tree before the
+Palm OS port can be integrated.
+
+I am releasing this port to the wxWidgets team under the terms of the wxWindows
+license. A copy of the wxWindows license is included in the source package.
+
+No third party libraries or code were used in making this port. The port consists
+entirely of code I personally wrote combined with code that was included in the
+wxWidgets 2.5.3 CSV source tree. Whenever possible, I have used the Palm OS 6 API,
+in places where the API was not practical to use, I wrote my own functions.
+
+I am submitting this source package as an entry in the wxWidgets Palm OS 6 port
+challenge. Details on this challenge are available at http://www.wxwindows.org/palmos.htm
+
+Please note that this port is in a very early state. Currently the port
+provides limited functionality for the wxFrame, wxMenu, wxStatusBar,
+wxTopLevelWindow, and wxWindow classes. The other classes in the wxWidgets
+toolkit still need to be ported. In it's current state, the Palm OS 6 port
+is capable of running the minimal wxWidgets sample
+
+The easiest way to see the port in action is to build the source package with
+the Palm OS Developer Studio available at http://www.palmos.com/dev/dl/dl_tools/dl_pods/
+Here are the steps that you need to follow to build the package:
+
+1) Unpack the ZIP file into a directory located within the Palm OS Developer
+ Studio workspace directory. The path to the folder should look something
+ like this: "C:\Program Files\PalmSource\Palm OS Developer Suite\workspace\wxWidgets"
+
+2) Open Palm OS Developer Studio and click on File->Import.
+
+3) Select "Existing Project into Workspace" as the import source and click Next.
+
+4) On the next screen click the Browse button next to Project contents and select
+ the folder you unpacked the source package into. Click on Finish to continue.
+
+5) You should now see the project listed in the Project pane on the right side of the
+ window. Click on the name of the project. Now click on the Project menu and select
+ "Rebuild Project"
+
+6) After the build is complete, click on the Run menu and select "" The Palm OS 6 simulator
+ should start. If this is the first time you have used the simulator, you will be prompted
+ to choose a ROM file. You can find the ROM files in a folder like "C:\Program
+ Files\PalmSource\Palm OS Developer Suite\sdk-6\tools\Simulator\6.0.1\ROM" It doesn't
+ really matter whether you choose a Release or a Debug ROM (the debug ROM generates extra
+ reports when an application crashes.)
+
+7) You should see the Palm logo appear in the simulator window. You may get a dialog box
+ asking you to choose a language. Click OK to continue. You should see the simulator
+ initialize the built-in Palm applications. After a few moments, the wxWidgets minimal
+ sample should start. Have fun!
+
+Since this source package was based on the wxWidgets 2.5.3 CVS source tree dated October 18,
+2004 I don't anticipate any problems with merging the sources into the 2.5.3 source tree.
+
+If you have any questions or comments about the port, please feel free to send an email to
+the wxWidgets developer list or directly to me at wbo@freeshell.org
+
+Enjoy!
+William Osborne
+wbo@freeshell.org
\ No newline at end of file
// ----------------------------------------------------------------------------
#if wxUSE_GUI
- #if defined(__WXMSW__)
+ #if defined(__PALMOS__)
+ #include "wx/palmos/app.h"
+ #elif defined(__WXMSW__)
#include "wx/msw/app.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/app.h"
// NB: test for __UNIX__ before __WXMAC__ as under Darwin we want to use the
// Unix code (and otherwise __UNIX__ wouldn't be defined)
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+ #include "wx/palmos/apptbase.h"
+#elif defined(__WXMSW__)
#include "wx/msw/apptbase.h"
#elif defined(__UNIX__) && !defined(__EMX__)
#include "wx/unix/apptbase.h"
// include the platform-specific version of the classes above
// ----------------------------------------------------------------------------
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+ #include "wx/palmos/apptrait.h"
+#elif defined(__WXMSW__)
#include "wx/msw/apptrait.h"
#elif defined(__UNIX__) && !defined(__EMX__)
#include "wx/unix/apptrait.h"
};
#endif
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/bitmap.h"
+#elif defined(__WXMSW__)
#include "wx/msw/bitmap.h"
#elif defined(__WXMOTIF__)
#include "wx/x11/bitmap.h"
#ifndef _WX_BRUSH_H_BASE_
#define _WX_BRUSH_H_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+ #include "wx/palmos/brush.h"
+#elif defined(__WXMSW__)
#include "wx/msw/brush.h"
#elif defined(__WXMOTIF__) || defined(__WXX11__)
#include "wx/x11/brush.h"
Compiler-specific checking.
*/
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+# include "wx/palmos/chkconf.h"
+#elif defined(__WXMSW__)
# include "wx/msw/chkconf.h"
#elif defined(__WXMAC__)
# include "wx/mac/chkconf.h"
#ifndef _WX_COLOUR_H_BASE_
#define _WX_COLOUR_H_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/colour.h"
+#elif defined(__WXMSW__)
#include "wx/msw/colour.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/colour.h"
#if defined(__WXUNIVERSAL__)
#include "wx/univ/control.h"
+#elif defined(__PALMOS__)
+ #include "wx/palmos/control.h"
#elif defined(__WXMSW__)
#include "wx/msw/control.h"
#elif defined(__WXMOTIF__)
#ifndef _WX_CURSOR_H_BASE_
#define _WX_CURSOR_H_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/cursor.h"
+#elif defined(__WXMSW__)
#include "wx/msw/cursor.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/cursor.h"
// now include the declaration of wxDC class
// ----------------------------------------------------------------------------
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+ #include "wx/palmos/dc.h"
+#elif defined(__WXMSW__)
#include "wx/msw/dc.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dc.h"
#ifndef _WX_DCCLIENT_H_BASE_
#define _WX_DCCLIENT_H_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/dcclient.h"
+#elif defined(__WXMSW__)
#include "wx/msw/dcclient.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dcclient.h"
#ifndef _WX_DCMEMORY_H_BASE_
#define _WX_DCMEMORY_H_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/dcmemory.h"
+#elif defined(__WXMSW__)
#include "wx/msw/dcmemory.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dcmemory.h"
#ifndef _WX_DCPRINT_H_BASE_
#define _WX_DCPRINT_H_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/dcprint.h"
+#elif defined(__WXMSW__)
#include "wx/msw/dcprint.h"
#endif
#if defined(__WXPM__)
#ifndef _WX_DCSCREEN_H_BASE_
#define _WX_DCSCREEN_H_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/dcscreen.h"
+#elif defined(__WXMSW__)
#include "wx/msw/dcscreen.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dcscreen.h"
#if defined(__WXUNIVERSAL__) && !defined(__WXMICROWIN__)
#include "wx/univ/dialog.h"
#else
- #if defined(__WXMSW__)
+ #if defined(__PALMOS__)
+ #include "wx/palmos/dialog.h"
+ #elif defined(__WXMSW__)
#include "wx/msw/dialog.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dialog.h"
struct WXDLLEXPORT wxNativeEncodingInfo
{
wxString facename; // may be empty meaning "any"
+#ifndef __PALMOS__
wxFontEncoding encoding; // so that we know what this struct represents
#if defined(__WXMSW__) || \
#else
#error "Unsupported toolkit"
#endif
-
+#endif
// this struct is saved in config by wxFontMapper, so it should know to
// serialise itself (implemented in platform-specific code)
bool FromString(const wxString& s);
// can sometimes be very useful (e.g. under MSW this is necessary for
// integration with MFC) but currently this is done for MSW only, other ports
// should follow a.s.a.p.
-#ifdef __WXMSW__
+#if defined(__PALMOS__)
+ #include "wx/palmos/evtloop.h"
+#elif defined(__WXMSW__)
#include "wx/msw/evtloop.h"
#else
// detect compilers which have support for huge files (currently only
// Digital Mars doesn't)
+ #ifndef __PALMOS__
#include "wx/msw/private.h"
+ #endif
#undef wxHAS_HUGE_FILES
#if defined(__MINGW32__)
#endif
// constants (unless already defined by the user code)
- #if !defined(__BORLANDC__) && !defined(__WATCOMC__)
+ #if !defined(__BORLANDC__) && !defined(__WATCOMC__) && !defined(__PALMOS__)
#ifndef O_RDONLY
#define O_RDONLY _O_RDONLY
#define O_WRONLY _O_WRONLY
};
// include the real class declaration
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+ #include "wx/palmos/font.h"
+#elif defined(__WXMSW__)
#include "wx/msw/font.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/font.h"
#include "wx/font.h" // for wxFont and wxFontEncoding
-#if defined(__WXMSW__)
+#if defined(__WXMSW__) && !defined(__PALMOS__)
#include "wx/msw/wrapwin.h"
#endif
// set the XFLD
void SetXFontName(const wxString& xFontName);
-#elif defined(__WXMSW__)
+#elif defined(__WXMSW__) && !defined(__PALMOS__)
LOGFONT lf;
#elif defined(__WXPM__)
// OS/2 native structures that define a font
#if defined(__WXUNIVERSAL__) // && !defined(__WXMICROWIN__)
#include "wx/univ/frame.h"
#else // !__WXUNIVERSAL__
- #if defined(__WXMSW__)
+ #if defined(__PALMOS__)
+ #include "wx/palmos/frame.h"
+ #elif defined(__WXMSW__)
#include "wx/msw/frame.h"
#elif defined(__WXGTK__)
#include "wx/gtk/frame.h"
#ifndef _WX_GDIOBJ_H_BASE_
#define _WX_GDIOBJ_H_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/gdiobj.h"
+#elif defined(__WXMSW__)
#include "wx/msw/gdiobj.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/gdiobj.h"
#include "wx/msw/wince/helpwce.h"
#define wxHelpController wxWinceHelpController
+#elif defined(__PALMOS__)
+ #include "wx/palmos/help.h"
+
+ #define wxHelpController wxPalmHelpController
#elif defined(__WXMSW__)
#include "wx/msw/helpwin.h"
#include "wx/iconloc.h"
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+ #include "wx/palmos/icon.h"
+#elif defined(__WXMSW__)
#include "wx/msw/icon.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/icon.h"
#else // !wxUSE_BASE_CLASSES_ONLY
#if defined(__WXUNIVERSAL__)
#include "wx/univ/menu.h"
+#elif defined(__PALMOS__)
+ #include "wx/palmos/menu.h"
#elif defined(__WXMSW__)
#include "wx/msw/menu.h"
#elif defined(__WXMOTIF__)
#else // !wxUSE_BASE_CLASSES_ONLY
#if defined(__WXUNIVERSAL__)
#include "wx/univ/menuitem.h"
+#elif defined(__PALMOS__)
+ #include "wx/palmos/menuitem.h"
#elif defined(__WXMSW__)
#include "wx/msw/menuitem.h"
#elif defined(__WXMOTIF__)
#if defined(__WXMSW__)
#if wxUSE_ENH_METAFILE
+ #if defined(__PALMOS__)
+ #include "wx/palmos/enhmeta.h"
+ #else
#include "wx/msw/enhmeta.h"
+ #endif
// map all metafile classes to enh metafile
#if !wxUSE_WIN_METAFILES_ALWAYS
#define wxMETAFILE_IS_ENH
#endif // wxUSE_WIN_METAFILES_ALWAYS
#else // !wxUSE_ENH_METAFILE
+ #if defined(__PALMOS__)
+ #include "wx/palmos/metafile.h"
+ #else
#include "wx/msw/metafile.h"
#endif
+ #endif
#elif defined(__WXPM__)
#include "wx/os2/metafile.h"
#elif defined(__WXMAC__)
#ifndef _WX_MINIFRAM_H_BASE_
#define _WX_MINIFRAMH_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/minifram.h"
+#elif defined(__WXMSW__)
#include "wx/msw/minifram.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/minifram.h"
#if defined(__WXUNIVERSAL__) || defined(__WXGPE__)
#include "wx/generic/msgdlgg.h"
+#elif defined(__PALMOS__)
+#include "wx/palmos/msgdlg.h"
#elif defined(__WXMSW__)
#include "wx/msw/msgdlg.h"
#elif defined(__WXMOTIF__)
--- /dev/null
+// Header generated by Constructor for Palm OS (R) 1.9
+//
+// Generated at 3:29:52 PM on Tuesday, June 24, 2003
+//
+// Generated for file: BasicApp.xrd
+//
+// THIS IS AN AUTOMATICALLY GENERATED HEADER FILE
+// DO NOT EDIT - CHANGES MADE TO THIS FILE WILL BE LOST
+//
+// Palm App Name: "BasicApp"
+//
+// Palm App Version: "1.0a1"
+
+
+// Resource: tFRM 1000
+#define MainForm 1000 //(Left Origin = 0, Top Origin = 0, Width = 160, Height = 160, Usable = 1, Modal = 0, Save Behind = 0, Help ID = 0, Menu Bar ID = 1000, Default Button ID = 0)
+#define MainContentLabel 1603 //(Left Origin = 32, Top Origin = 50, Usable = 1, Font = Bold)
+#define MainForm2Button 1001 //(Left Origin = 1, Top Origin = 147, Width = 39, Height = 12, Usable = 1, Anchor Left = 1, Frame = 1, Non-bold Frame = 1, Font = Standard)
+#define MainDialogButton 1002 //(Left Origin = 46, Top Origin = 147, Width = 39, Height = 12, Usable = 1, Anchor Left = 1, Frame = 1, Non-bold Frame = 1, Font = Standard)
+
+// Resource: tFRM 1200
+#define DialogForm 1200 //(Left Origin = 2, Top Origin = 58, Width = 156, Height = 100, Usable = 1, Modal = 1, Save Behind = 1, Help ID = 1200, Menu Bar ID = 0, Default Button ID = 1202)
+#define DialogOKButton 1201 //(Left Origin = 5, Top Origin = 83, Width = 36, Height = 12, Usable = 1, Anchor Left = 1, Frame = 1, Non-bold Frame = 1, Font = Standard)
+#define DialogCancelButton 1202 //(Left Origin = 47, Top Origin = 83, Width = 36, Height = 12, Usable = 1, Anchor Left = 1, Frame = 1, Non-bold Frame = 1, Font = Standard)
+#define DialogContentLabel 1203 //(Left Origin = 10, Top Origin = 23, Usable = 1, Font = Bold)
+
+// Resource: tFRM 1300
+#define Form2Form 1300 //(Left Origin = 0, Top Origin = 0, Width = 160, Height = 160, Usable = 1, Modal = 0, Save Behind = 0, Help ID = 0, Menu Bar ID = 0, Default Button ID = 0)
+#define Form2DoneButton 1301 //(Left Origin = 1, Top Origin = 147, Width = 36, Height = 12, Usable = 1, Anchor Left = 1, Frame = 1, Non-bold Frame = 1, Font = Standard)
+
+// Resource: tFRM 2000
+#define AboutForm 2000 //(Left Origin = 2, Top Origin = 2, Width = 156, Height = 156, Usable = 1, Modal = 1, Save Behind = 1, Help ID = 0, Menu Bar ID = 0, Default Button ID = 0)
+#define AboutTitleLabel 2002 //(Left Origin = 54, Top Origin = 25, Usable = 1, Font = Bold 12)
+#define AboutText1Label 2003 //(Left Origin = 23, Top Origin = 54, Usable = 1, Font = Standard)
+#define AboutText2Label 2004 //(Left Origin = 50, Top Origin = 104, Usable = 1, Font = Bold)
+#define AboutOKButton 2005 //(Left Origin = 58, Top Origin = 139, Width = 40, Height = 12, Usable = 1, Anchor Left = 1, Frame = 1, Non-bold Frame = 1, Font = Standard)
+
+
+// Resource: MBAR 1000
+#define MainFormMenuBar 1000
+
+
+// Resource: MENU 1000
+#define MainOptionsMenu 1000
+#define MainOptionsAboutBasicApp 1000
+
+
+// Resource: tSTR 1200
+#define HelpID1200String 1200 // "Placeholder text for the modal dialog Tips button."
+
+
+// Resource: PICT 1000
+#define Largeicon1bitBitmap 1000
+
+// Resource: PICT 1001
+#define Largeicon2bitBitmap 1001
+
+// Resource: PICT 1002
+#define Largeicon8bitBitmap 1002
+
+// Resource: PICT 1003
+#define LargeiconX21bitBitmap 1003
+
+// Resource: PICT 1004
+#define LargeiconX22bitBitmap 1004
+
+// Resource: PICT 1005
+#define LargeiconX28bitBitmap 1005
+
+// Resource: PICT 1006
+#define Smallicon1bitBitmap 1006
+
+// Resource: PICT 1007
+#define Smallicon2bitBitmap 1007
+
+// Resource: PICT 1008
+#define Smallicon8bitBitmap 1008
+
+// Resource: PICT 1009
+#define SmalliconX21bitBitmap 1009
+
+// Resource: PICT 1010
+#define SmalliconX22bitBitmap 1010
+
+// Resource: PICT 1011
+#define SmalliconX28bitBitmap 1011
+
+
+// Resource: taif 1000
+#define Largeicons12and8bitsAppIconFamily 1000
+
+// Resource: taif 1001
+#define Smallicons12and8bitsAppIconFamily 1001
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<PALMOS_RESOURCE_FILE>
+
+ <APP_VERSION_RESOURCE RESOURCE_ID="1000">
+ <TEXT> "1.0" </TEXT>
+ </APP_VERSION_RESOURCE>
+
+</PALMOS_RESOURCE_FILE>
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/accel.h
+// Purpose: wxAcceleratorTable class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_ACCEL_H_
+#define _WX_ACCEL_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "accel.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// the accel table has all accelerators for a given window or menu
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxAcceleratorTable : public wxObject
+{
+public:
+ // default ctor
+ wxAcceleratorTable();
+
+ // copy ctor
+ wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); }
+
+ // load from .rc resource (Windows specific)
+ wxAcceleratorTable(const wxString& resource);
+
+ // initialize from array
+ wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]);
+
+ virtual ~wxAcceleratorTable();
+
+ wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) { if ( *this != accel ) Ref(accel); return *this; }
+ bool operator==(const wxAcceleratorTable& accel) const
+ { return m_refData == accel.m_refData; } // FIXME: this is wrong (VZ)
+ bool operator!=(const wxAcceleratorTable& accel) const
+ { return !(*this == accel); }
+
+ bool Ok() const;
+ void SetHACCEL(WXHACCEL hAccel);
+ WXHACCEL GetHACCEL() const;
+
+ // translate the accelerator, return TRUE if done
+ bool Translate(wxWindow *window, WXMSG *msg) const;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxAcceleratorTable)
+};
+
+#endif
+ // _WX_ACCEL_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: app.h
+// Purpose: wxApp class
+// Author: William Osborne
+// Modified by:
+// Created: 10/17/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_APP_H_
+#define _WX_APP_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "app.h"
+#endif
+
+#include "wx/event.h"
+#include "wx/icon.h"
+
+class WXDLLIMPEXP_CORE wxFrame;
+class WXDLLIMPEXP_CORE wxWindow;
+class WXDLLIMPEXP_CORE wxApp;
+class WXDLLIMPEXP_CORE wxKeyEvent;
+class WXDLLIMPEXP_BASE wxLog;
+
+// Represents the application. Derive OnInit and declare
+// a new App object to start application
+class WXDLLEXPORT wxApp : public wxAppBase
+{
+ DECLARE_DYNAMIC_CLASS(wxApp)
+
+public:
+ wxApp();
+ virtual ~wxApp();
+
+ // override base class (pure) virtuals
+ virtual bool Initialize(int& argc, wxChar **argv);
+ virtual void CleanUp();
+
+ virtual bool Yield(bool onlyIfNeeded = false);
+ virtual void WakeUpIdle();
+
+ virtual void SetPrintMode(int mode) { m_printMode = mode; }
+ virtual int GetPrintMode() const { return m_printMode; }
+
+ // implementation only
+ void OnIdle(wxIdleEvent& event);
+ void OnEndSession(wxCloseEvent& event);
+ void OnQueryEndSession(wxCloseEvent& event);
+
+#if wxUSE_EXCEPTIONS
+ virtual bool OnExceptionInMainLoop();
+#endif // wxUSE_EXCEPTIONS
+
+ // deprecated functions, use wxEventLoop directly instead
+#if WXWIN_COMPATIBILITY_2_4
+ wxDEPRECATED( void DoMessage(WXMSG *pMsg) );
+ wxDEPRECATED( bool DoMessage() );
+ wxDEPRECATED( bool ProcessMessage(WXMSG* pMsg) );
+#endif // WXWIN_COMPATIBILITY_2_4
+
+protected:
+ int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT
+
+public:
+ // Implementation
+ static bool RegisterWindowClasses();
+ static bool UnregisterWindowClasses();
+
+#if wxUSE_RICHEDIT
+ // initialize the richedit DLL of (at least) given version, return true if
+ // ok (Win95 has version 1, Win98/NT4 has 1 and 2, W2K has 3)
+ static bool InitRichEdit(int version = 2);
+#endif // wxUSE_RICHEDIT
+
+ // returns 400, 470, 471 for comctl32.dll 4.00, 4.70, 4.71 or 0 if it
+ // wasn't found at all
+ static int GetComCtl32Version();
+
+ // the SW_XXX value to be used for the frames opened by the application
+ // (currently seems unused which is a bug -- TODO)
+ static int m_nCmdShow;
+
+protected:
+ DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxApp)
+};
+
+// ----------------------------------------------------------------------------
+// Palm OS specific wxEntry() overload and IMPLEMENT_WXWIN_MAIN definition
+// ----------------------------------------------------------------------------
+
+#ifndef SW_SHOWNORMAL
+ #define SW_SHOWNORMAL 1
+#endif
+
+extern int WXDLLEXPORT
+wxEntry();
+
+#include <PalmOS.h>
+#define IMPLEMENT_WXWIN_MAIN \
+ uint32_t PilotMain(uint16_t cmd, MemPtr cmdPBP, uint16_t launchFlags) \
+ { \
+ switch (cmd) { \
+ case sysAppLaunchCmdNormalLaunch: \
+ wxEntry(); \
+ break; \
+ default: \
+ break; \
+ } \
+ return errNone; \
+ }
+
+#endif // _WX_APP_H_
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/apptbase.h
+// Purpose: declaration of wxAppTraits for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PALMOS_APPTBASE_H_
+#define _WX_PALMOS_APPTBASE_H_
+
+// ----------------------------------------------------------------------------
+// wxAppTraits: the MSW version adds extra hooks needed by MSW-only code
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_BASE wxAppTraits : public wxAppTraitsBase
+{
+public:
+ // wxExecute() support methods
+ // ---------------------------
+
+ // called before starting to wait for the child termination, may return
+ // some opaque data which will be passed later to AfterChildWaitLoop()
+ virtual void *BeforeChildWaitLoop() = 0;
+
+ // process pending Windows messages, even in console app
+ virtual void AlwaysYield() = 0;
+
+ // called after starting to wait for the child termination, the parameter
+ // is the return value of BeforeChildWaitLoop()
+ virtual void AfterChildWaitLoop(void *data) = 0;
+
+
+ // wxThread helpers
+ // ----------------
+
+ // process a message while waiting for a(nother) thread, should return
+ // false if and only if we have to exit the application
+ virtual bool DoMessageFromThreadWait() = 0;
+
+ // other miscellaneous helpers
+ // ---------------------------
+
+ // under MSW this function returns same version for both console and GUI
+ // applications so we can implement it directly in the base class and only
+ // override it wxGUIAppTraits to fill in toolkit information
+ virtual wxToolkitInfo& GetToolkitInfo();
+};
+
+#endif // _WX_PALMOS_APPTBASE_H_
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/apptrait.h
+// Purpose: class implementing wxAppTraits for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSW_APPTRAIT_H_
+#define _WX_MSW_APPTRAIT_H_
+
+// ----------------------------------------------------------------------------
+// wxGUI/ConsoleAppTraits: must derive from wxAppTraits, not wxAppTraitsBase
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_BASE wxConsoleAppTraits : public wxConsoleAppTraitsBase
+{
+public:
+ virtual void *BeforeChildWaitLoop();
+ virtual void AlwaysYield();
+ virtual void AfterChildWaitLoop(void *data);
+
+ virtual bool DoMessageFromThreadWait();
+};
+
+#if wxUSE_GUI
+
+class WXDLLIMPEXP_CORE wxGUIAppTraits : public wxGUIAppTraitsBase
+{
+public:
+ virtual void *BeforeChildWaitLoop();
+ virtual void AlwaysYield();
+ virtual void AfterChildWaitLoop(void *data);
+
+ virtual bool DoMessageFromThreadWait();
+ virtual wxToolkitInfo& GetToolkitInfo();
+};
+
+#endif // wxUSE_GUI
+
+#endif // _WX_MSW_APPTRAIT_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/bitmap.h
+// Purpose: wxBitmap class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_BITMAP_H_
+#define _WX_BITMAP_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "bitmap.h"
+#endif
+
+#include "wx/palmos/gdiimage.h"
+#include "wx/gdicmn.h"
+#include "wx/palette.h"
+
+class WXDLLEXPORT wxBitmap;
+class WXDLLEXPORT wxBitmapHandler;
+class WXDLLEXPORT wxBitmapRefData;
+class WXDLLEXPORT wxControl;
+class WXDLLEXPORT wxCursor;
+class WXDLLEXPORT wxDC;
+#if wxUSE_WXDIB
+class WXDLLEXPORT wxDIB;
+#endif
+class WXDLLEXPORT wxIcon;
+class WXDLLEXPORT wxImage;
+class WXDLLEXPORT wxMask;
+class WXDLLEXPORT wxPalette;
+class WXDLLEXPORT wxPixelDataBase;
+
+// ----------------------------------------------------------------------------
+// wxBitmap: a mono or colour bitmap
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxBitmap : public wxGDIImage
+{
+public:
+ // default ctor creates an invalid bitmap, you must Create() it later
+ wxBitmap() { Init(); }
+
+ // Copy constructors
+ wxBitmap(const wxBitmap& bitmap) { Init(); Ref(bitmap); }
+
+ // Initialize with raw data
+ wxBitmap(const char bits[], int width, int height, int depth = 1);
+
+ // Initialize with XPM data
+ wxBitmap(const char **data) { CreateFromXpm(data); }
+ wxBitmap(char **data) { CreateFromXpm((const char **)data); }
+
+ // Load a file or resource
+ wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_BMP_RESOURCE);
+
+ // New constructor for generalised creation from data
+ wxBitmap(void *data, long type, int width, int height, int depth = 1);
+
+ // Create a new, uninitialized bitmap of the given size and depth (if it
+ // is omitted, will create a bitmap compatible with the display)
+ //
+ // NB: this ctor will create a DIB for 24 and 32bpp bitmaps, use ctor
+ // taking a DC argument if you want to force using DDB in this case
+ wxBitmap(int width, int height, int depth = -1);
+
+ // Create a bitmap compatible with the given DC
+ wxBitmap(int width, int height, const wxDC& dc);
+
+#if wxUSE_IMAGE && wxUSE_WXDIB
+ // Convert from wxImage
+ wxBitmap(const wxImage& image, int depth = -1)
+ { (void)CreateFromImage(image, depth); }
+
+ // Create a DDB compatible with the given DC from wxImage
+ wxBitmap(const wxImage& image, const wxDC& dc)
+ { (void)CreateFromImage(image, dc); }
+#endif // wxUSE_IMAGE
+
+ // we must have this, otherwise icons are silently copied into bitmaps using
+ // the copy ctor but the resulting bitmap is invalid!
+ wxBitmap(const wxIcon& icon) { Init(); CopyFromIcon(icon); }
+
+ wxBitmap& operator=(const wxBitmap& bitmap)
+ {
+ if ( m_refData != bitmap.m_refData )
+ Ref(bitmap);
+ return *this;
+ }
+
+ wxBitmap& operator=(const wxIcon& icon)
+ {
+ (void)CopyFromIcon(icon);
+
+ return *this;
+ }
+
+ wxBitmap& operator=(const wxCursor& cursor)
+ {
+ (void)CopyFromCursor(cursor);
+
+ return *this;
+ }
+
+ virtual ~wxBitmap();
+
+#if wxUSE_IMAGE && wxUSE_WXDIB
+ wxImage ConvertToImage() const;
+#endif // wxUSE_IMAGE
+
+ // get the given part of bitmap
+ wxBitmap GetSubBitmap( const wxRect& rect ) const;
+
+ // copies the contents and mask of the given (colour) icon to the bitmap
+ bool CopyFromIcon(const wxIcon& icon);
+
+ // copies the contents and mask of the given cursor to the bitmap
+ bool CopyFromCursor(const wxCursor& cursor);
+
+#if wxUSE_WXDIB
+ // copies from a device independent bitmap
+ bool CopyFromDIB(const wxDIB& dib);
+#endif
+
+ virtual bool Create(int width, int height, int depth = -1);
+ virtual bool Create(int width, int height, const wxDC& dc);
+ virtual bool Create(void *data, long type, int width, int height, int depth = 1);
+ virtual bool LoadFile(const wxString& name, long type = wxBITMAP_TYPE_BMP_RESOURCE);
+ virtual bool SaveFile(const wxString& name, int type, const wxPalette *cmap = NULL);
+
+ wxBitmapRefData *GetBitmapData() const
+ { return (wxBitmapRefData *)m_refData; }
+
+ // raw bitmap access support functions
+ void *GetRawData(wxPixelDataBase& data, int bpp);
+ void UngetRawData(wxPixelDataBase& data);
+
+#if wxUSE_PALETTE
+ wxPalette* GetPalette() const;
+ void SetPalette(const wxPalette& palette);
+#endif // wxUSE_PALETTE
+
+ wxMask *GetMask() const;
+ void SetMask(wxMask *mask);
+
+ bool operator==(const wxBitmap& bitmap) const { return m_refData == bitmap.m_refData; }
+ bool operator!=(const wxBitmap& bitmap) const { return m_refData != bitmap.m_refData; }
+
+ // these functions are internal and shouldn't be used, they risk to
+ // disappear in the future
+ bool HasAlpha() const;
+ void UseAlpha();
+
+#if WXWIN_COMPATIBILITY_2_4
+ // these functions do nothing and are only there for backwards
+ // compatibility
+ wxDEPRECATED( int GetQuality() const );
+ wxDEPRECATED( void SetQuality(int quality) );
+#endif // WXWIN_COMPATIBILITY_2_4
+
+ // implementation only from now on
+ // -------------------------------
+
+public:
+ void SetHBITMAP(WXHBITMAP bmp) { SetHandle((WXHANDLE)bmp); }
+ WXHBITMAP GetHBITMAP() const { return (WXHBITMAP)GetHandle(); }
+
+#ifdef __WXDEBUG__
+ void SetSelectedInto(wxDC *dc);
+ wxDC *GetSelectedInto() const;
+#endif // __WXDEBUG__
+
+protected:
+ // common part of all ctors
+ void Init();
+
+ virtual wxGDIImageRefData *CreateData() const;
+
+ // creates the bitmap from XPM data, supposed to be called from ctor
+ bool CreateFromXpm(const char **bits);
+
+ // creates an uninitialized bitmap, called from Create()s above
+ bool DoCreate(int w, int h, int depth, WXHDC hdc);
+
+#if wxUSE_IMAGE && wxUSE_WXDIB
+ // creates the bitmap from wxImage, supposed to be called from ctor
+ bool CreateFromImage(const wxImage& image, int depth);
+
+ // creates a DDB from wxImage, supposed to be called from ctor
+ bool CreateFromImage(const wxImage& image, const wxDC& dc);
+
+ // common part of the 2 methods above (hdc may be 0)
+ bool CreateFromImage(const wxImage& image, int depth, WXHDC hdc);
+#endif // wxUSE_IMAGE
+
+private:
+#ifdef __WIN32__
+ // common part of CopyFromIcon/CopyFromCursor for Win32
+ bool CopyFromIconOrCursor(const wxGDIImage& icon);
+#endif // __WIN32__
+
+ DECLARE_DYNAMIC_CLASS(wxBitmap)
+};
+
+// ----------------------------------------------------------------------------
+// wxMask: a mono bitmap used for drawing bitmaps transparently.
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxMask : public wxObject
+{
+public:
+ wxMask();
+
+ // Construct a mask from a bitmap and a colour indicating the transparent
+ // area
+ wxMask(const wxBitmap& bitmap, const wxColour& colour);
+
+ // Construct a mask from a bitmap and a palette index indicating the
+ // transparent area
+ wxMask(const wxBitmap& bitmap, int paletteIndex);
+
+ // Construct a mask from a mono bitmap (copies the bitmap).
+ wxMask(const wxBitmap& bitmap);
+
+ // construct a mask from the givne bitmap handle
+ wxMask(WXHBITMAP hbmp) { m_maskBitmap = hbmp; }
+
+ virtual ~wxMask();
+
+ bool Create(const wxBitmap& bitmap, const wxColour& colour);
+ bool Create(const wxBitmap& bitmap, int paletteIndex);
+ bool Create(const wxBitmap& bitmap);
+
+ // Implementation
+ WXHBITMAP GetMaskBitmap() const { return m_maskBitmap; }
+ void SetMaskBitmap(WXHBITMAP bmp) { m_maskBitmap = bmp; }
+
+protected:
+ WXHBITMAP m_maskBitmap;
+
+ DECLARE_DYNAMIC_CLASS(wxMask)
+};
+
+// ----------------------------------------------------------------------------
+// wxBitmapHandler is a class which knows how to load/save bitmaps to/from file
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxBitmapHandler : public wxGDIImageHandler
+{
+public:
+ wxBitmapHandler() { m_type = wxBITMAP_TYPE_INVALID; }
+ wxBitmapHandler(const wxString& name, const wxString& ext, long type)
+ : wxGDIImageHandler(name, ext, type)
+ {
+ }
+
+ // keep wxBitmapHandler derived from wxGDIImageHandler compatible with the
+ // old class which worked only with bitmaps
+ virtual bool Create(wxBitmap *bitmap,
+ void *data,
+ long flags,
+ int width, int height, int depth = 1);
+ virtual bool LoadFile(wxBitmap *bitmap,
+ const wxString& name,
+ long flags,
+ int desiredWidth, int desiredHeight);
+ virtual bool SaveFile(wxBitmap *bitmap,
+ const wxString& name,
+ int type,
+ const wxPalette *palette = NULL);
+
+ virtual bool Create(wxGDIImage *image,
+ void *data,
+ long flags,
+ int width, int height, int depth = 1);
+ virtual bool Load(wxGDIImage *image,
+ const wxString& name,
+ long flags,
+ int desiredWidth, int desiredHeight);
+ virtual bool Save(wxGDIImage *image,
+ const wxString& name,
+ int type);
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxBitmapHandler)
+};
+
+#endif
+ // _WX_BITMAP_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: bmpbuttn.h
+// Purpose: wxBitmapButton class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_BMPBUTTN_H_
+#define _WX_BMPBUTTN_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "bmpbuttn.h"
+#endif
+
+#include "wx/button.h"
+#include "wx/bitmap.h"
+
+#define wxDEFAULT_BUTTON_MARGIN 4
+
+class WXDLLEXPORT wxBitmapButton: public wxBitmapButtonBase
+{
+public:
+ wxBitmapButton()
+ { m_marginX = m_marginY = wxDEFAULT_BUTTON_MARGIN; }
+ wxBitmapButton(wxWindow *parent,
+ wxWindowID id,
+ const wxBitmap& bitmap,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxBU_AUTODRAW,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxButtonNameStr)
+ {
+ Create(parent, id, bitmap, pos, size, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxBitmap& bitmap,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxBU_AUTODRAW,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxButtonNameStr);
+
+ // Implementation
+ virtual void SetDefault();
+ virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
+ virtual void DrawFace( WXHDC dc, int left, int top, int right, int bottom, bool sel );
+ virtual void DrawButtonFocus( WXHDC dc, int left, int top, int right, int bottom, bool sel );
+ virtual void DrawButtonDisable( WXHDC dc, int left, int top, int right, int bottom, bool with_marg );
+
+protected:
+ virtual wxSize DoGetBestSize() const;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxBitmapButton)
+};
+
+#endif
+ // _WX_BMPBUTTN_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/brush.h
+// Purpose: wxBrush class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_BRUSH_H_
+#define _WX_BRUSH_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "brush.h"
+#endif
+
+#include "wx/gdicmn.h"
+#include "wx/gdiobj.h"
+#include "wx/bitmap.h"
+
+class WXDLLEXPORT wxBrush;
+
+// ----------------------------------------------------------------------------
+// wxBrush
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxBrush : public wxGDIObject
+{
+public:
+ wxBrush();
+ wxBrush(const wxColour& col, int style = wxSOLID);
+ wxBrush(const wxBitmap& stipple);
+ wxBrush(const wxBrush& brush) { Ref(brush); }
+ virtual ~wxBrush();
+
+ virtual void SetColour(const wxColour& col);
+ virtual void SetColour(unsigned char r, unsigned char g, unsigned char b);
+ virtual void SetStyle(int style);
+ virtual void SetStipple(const wxBitmap& stipple);
+
+ wxBrush& operator=(const wxBrush& brush);
+ bool operator==(const wxBrush& brush) const;
+ bool operator!=(const wxBrush& brush) const { return !(*this == brush); }
+
+ wxColour GetColour() const;
+ int GetStyle() const;
+ wxBitmap *GetStipple() const;
+
+ bool Ok() const { return m_refData != NULL; }
+
+ // return the HBRUSH for this brush
+ virtual WXHANDLE GetResourceHandle() const;
+
+protected:
+ virtual wxObjectRefData *CreateRefData() const;
+ virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxBrush)
+};
+
+#endif
+ // _WX_BRUSH_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/button.h
+// Purpose: wxButton class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_BUTTON_H_
+#define _WX_BUTTON_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "button.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// Pushbutton
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxButton : public wxButtonBase
+{
+public:
+ wxButton() { }
+ wxButton(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxButtonNameStr)
+ {
+ Create(parent, id, label, pos, size, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxButtonNameStr);
+
+ virtual ~wxButton();
+
+ virtual void SetDefault();
+
+ // implementation from now on
+ virtual void Command(wxCommandEvent& event);
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+
+ virtual void ApplyParentThemeBackground(const wxColour& bg)
+ {
+ // avoide switching into owner-drawn mode
+ wxControl::SetBackgroundColour(bg);
+ }
+
+#ifdef __WIN32__
+ // coloured buttons support
+ virtual bool SetBackgroundColour(const wxColour &colour);
+ virtual bool SetForegroundColour(const wxColour &colour);
+
+ virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
+
+private:
+ void MakeOwnerDrawn();
+#endif // __WIN32__
+
+protected:
+ // send a notification event, return TRUE if processed
+ bool SendClickEvent();
+
+ // default button handling
+ void SetTmpDefault();
+ void UnsetTmpDefault();
+
+ // set or unset BS_DEFPUSHBUTTON style
+ static void SetDefaultStyle(wxButton *btn, bool on);
+
+ // usually overridden base class virtuals
+ virtual wxSize DoGetBestSize() const;
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const ;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxButton)
+};
+
+#endif
+ // _WX_BUTTON_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/caret.h
+// Purpose: wxCaret class - the Palm OS implementation of wxCaret
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_CARET_H_
+#define _WX_CARET_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "caret.h"
+#endif
+
+class WXDLLEXPORT wxCaret : public wxCaretBase
+{
+public:
+ wxCaret() { Init(); }
+ // create the caret of given (in pixels) width and height and associate
+ // with the given window
+ wxCaret(wxWindow *window, int width, int height)
+ {
+ Init();
+
+ (void)Create(window, width, height);
+ }
+ // same as above
+ wxCaret(wxWindowBase *window, const wxSize& size)
+ {
+ Init();
+
+ (void)Create(window, size);
+ }
+
+ // process wxWindow notifications
+ virtual void OnSetFocus();
+ virtual void OnKillFocus();
+
+protected:
+ void Init()
+ {
+ wxCaretBase::Init();
+
+ m_hasCaret = FALSE;
+ }
+
+ // override base class virtuals
+ virtual void DoMove();
+ virtual void DoShow();
+ virtual void DoHide();
+ virtual void DoSize();
+
+ // helper function which creates the system caret
+ bool PalmOSCreateCaret();
+
+private:
+ bool m_hasCaret;
+
+ DECLARE_NO_COPY_CLASS(wxCaret)
+};
+
+#endif // _WX_CARET_H_
+
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/checkbox.h
+// Purpose: wxCheckBox class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_CHECKBOX_H_
+#define _WX_CHECKBOX_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "checkbox.h"
+#endif
+
+// Checkbox item (single checkbox)
+class WXDLLEXPORT wxCheckBox : public wxCheckBoxBase
+{
+public:
+ wxCheckBox() { }
+ wxCheckBox(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxCheckBoxNameStr)
+ {
+ Create(parent, id, label, pos, size, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxCheckBoxNameStr);
+
+ virtual void SetValue(bool value);
+ virtual bool GetValue() const;
+
+ virtual void SetLabel(const wxString& label);
+
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ virtual void Command(wxCommandEvent& event);
+
+protected:
+ virtual wxSize DoGetBestSize() const;
+
+ virtual void DoSet3StateValue(wxCheckBoxState value);
+
+ virtual wxCheckBoxState DoGet3StateValue() const;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckBox)
+};
+
+#endif
+ // _WX_CHECKBOX_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: checklst.h
+// Purpose: wxCheckListBox class - a listbox with checkable items
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef __CHECKLST__H_
+#define __CHECKLST__H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "checklst.h"
+#endif
+
+#if !wxUSE_OWNER_DRAWN
+ #error "wxCheckListBox class requires owner-drawn functionality."
+#endif
+
+class WXDLLEXPORT wxOwnerDrawn;
+class WXDLLEXPORT wxCheckListBoxItem; // fwd decl, defined in checklst.cpp
+
+class WXDLLEXPORT wxCheckListBox : public wxCheckListBoxBase
+{
+public:
+ // ctors
+ wxCheckListBox();
+ wxCheckListBox(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int nStrings = 0,
+ const wxString choices[] = NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxListBoxNameStr);
+ wxCheckListBox(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxListBoxNameStr);
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxListBoxNameStr);
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxListBoxNameStr);
+
+ // override base class virtuals
+ virtual void Delete(int n);
+
+ virtual bool SetFont( const wxFont &font );
+
+ // items may be checked
+ virtual bool IsChecked(size_t uiIndex) const;
+ virtual void Check(size_t uiIndex, bool bCheck = TRUE);
+
+ // return the index of the item at this position or wxNOT_FOUND
+ int HitTest(const wxPoint& pt) const { return DoHitTestItem(pt.x, pt.y); }
+ int HitTest(wxCoord x, wxCoord y) const { return DoHitTestItem(x, y); }
+
+ // accessors
+ size_t GetItemHeight() const { return m_nItemHeight; }
+
+protected:
+ // we create our items ourselves and they have non-standard size,
+ // so we need to override these functions
+ virtual wxOwnerDrawn *CreateLboxItem(size_t n);
+ virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item);
+
+ // this can't be called DoHitTest() because wxWindow already has this method
+ int DoHitTestItem(wxCoord x, wxCoord y) const;
+
+ // pressing space or clicking the check box toggles the item
+ void OnKeyDown(wxKeyEvent& event);
+ void OnLeftClick(wxMouseEvent& event);
+
+private:
+ size_t m_nItemHeight; // height of checklistbox items (the same for all)
+
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckListBox)
+};
+
+#endif //_CHECKLST_H
--- /dev/null
+/*
+ * Name: wx/palmos/chkconf.h
+ * Purpose: Compiler-specific configuration checking
+ * Author: William Osborne
+ * Modified by:
+ * Created: 10/13/04
+ * RCS-ID: $Id:
+ * Copyright: (c) William Osborne
+ * Licence: wxWindows licence
+ */
+
+/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
+
+#ifndef _WX_PALMOS_CHKCONF_H_
+#define _WX_PALMOS_CHKCONF_H_
+
+/*
+ * disable the settings which don't work for some compilers
+ */
+
+/*
+ * If using PostScript-in-MSW in Univ, must enable PostScript
+ */
+
+#if defined(__WXUNIVERSAL__) && wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW && !wxUSE_POSTSCRIPT
+#undef wxUSE_POSTSCRIPT
+#define wxUSE_POSTSCRIPT 1
+#endif
+
+#ifndef wxUSE_NORLANDER_HEADERS
+#if (defined(__WATCOMC__) && (__WATCOMC__ >= 1200)) || defined(__WINE__) || ((defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95))))
+# define wxUSE_NORLANDER_HEADERS 1
+#else
+# define wxUSE_NORLANDER_HEADERS 0
+#endif
+#endif
+
+/*
+ * GCC does not have SEH (__try/__catch)
+ */
+
+#if defined(__GNUG__)
+ #undef wxUSE_ON_FATAL_EXCEPTION
+ #define wxUSE_ON_FATAL_EXCEPTION 0
+#endif
+
+/*
+ * wxUSE_DEBUG_NEW_ALWAYS doesn't work with CodeWarrior
+ */
+
+#if defined(__MWERKS__)
+ #undef wxUSE_DEBUG_NEW_ALWAYS
+ #define wxUSE_DEBUG_NEW_ALWAYS 0
+#endif
+
+#if defined(__GNUWIN32__)
+/* These don't work as expected for mingw32 and cygwin32 */
+#undef wxUSE_MEMORY_TRACING
+#define wxUSE_MEMORY_TRACING 0
+
+#undef wxUSE_GLOBAL_MEMORY_OPERATORS
+#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+#undef wxUSE_DEBUG_NEW_ALWAYS
+#define wxUSE_DEBUG_NEW_ALWAYS 0
+
+/* Cygwin betas don't have wcslen */
+#if defined(__CYGWIN__) || defined(__CYGWIN32__)
+# if ! ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
+# undef wxUSE_WCHAR_T
+# define wxUSE_WCHAR_T 0
+# endif
+#endif
+
+#endif
+ /* __GNUWIN32__ */
+
+/* MFC duplicates these operators */
+#if wxUSE_MFC
+#undef wxUSE_GLOBAL_MEMORY_OPERATORS
+#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+#undef wxUSE_DEBUG_NEW_ALWAYS
+#define wxUSE_DEBUG_NEW_ALWAYS 0
+#endif
+ /* wxUSE_MFC */
+
+#if (defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS)
+/* GnuWin32 doesn't have appropriate headers for e.g. IUnknown. */
+#undef wxUSE_DRAG_AND_DROP
+#define wxUSE_DRAG_AND_DROP 0
+#endif
+
+#if !wxUSE_OWNER_DRAWN
+#undef wxUSE_CHECKLISTBOX
+#define wxUSE_CHECKLISTBOX 0
+#endif
+
+#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
+/* BC++ 4.0 can't compile JPEG library */
+#undef wxUSE_LIBJPEG
+#define wxUSE_LIBJPEG 0
+#endif
+
+/* wxUSE_DEBUG_NEW_ALWAYS = 1 not compatible with BC++ in DLL mode */
+#if defined(__BORLANDC__) && (defined(WXMAKINGDLL) || defined(WXUSINGDLL))
+#undef wxUSE_DEBUG_NEW_ALWAYS
+#define wxUSE_DEBUG_NEW_ALWAYS 0
+#endif
+
+#if defined(__WXMSW__) && (defined(__WATCOMC__) && __WATCOMC__ < 1200)
+#undef wxUSE_WCHAR_T
+#define wxUSE_WCHAR_T 0
+#endif
+
+#endif
+ /* _WX_PALMOS_CHKCONF_H_ */
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: choice.h
+// Purpose: wxChoice class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_CHOICE_H_
+#define _WX_CHOICE_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "choice.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// Choice item
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxChoice : public wxChoiceBase
+{
+public:
+ // ctors
+ wxChoice() { }
+ virtual ~wxChoice();
+
+ wxChoice(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxChoiceNameStr)
+ {
+ Create(parent, id, pos, size, n, choices, style, validator, name);
+ }
+ wxChoice(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxChoiceNameStr)
+ {
+ Create(parent, id, pos, size, choices, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxChoiceNameStr);
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxChoiceNameStr);
+
+ // implement base class pure virtuals
+ virtual int DoAppend(const wxString& item);
+ virtual int DoInsert(const wxString& item, int pos);
+ virtual void Delete(int n);
+ virtual void Clear();
+
+ virtual int GetCount() const;
+ virtual int GetSelection() const;
+ virtual void SetSelection(int n);
+
+ virtual int FindString(const wxString& s) const;
+ virtual wxString GetString(int n) const;
+ virtual void SetString(int n, const wxString& s);
+
+ // MSW only
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+ virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
+ WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+
+protected:
+ virtual void DoMoveWindow(int x, int y, int width, int height);
+ virtual void DoSetItemClientData( int n, void* clientData );
+ virtual void* DoGetItemClientData( int n ) const;
+ virtual void DoSetItemClientObject( int n, wxClientData* clientData );
+ virtual wxClientData* DoGetItemClientObject( int n ) const;
+
+ // MSW implementation
+ virtual wxSize DoGetBestSize() const;
+ virtual void DoGetSize(int *w, int *h) const;
+ virtual void DoSetSize(int x, int y,
+ int width, int height,
+ int sizeFlags = wxSIZE_AUTO);
+
+ virtual bool MSWShouldPreProcessMessage(WXMSG *pMsg);
+
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+ // update the height of the drop down list to fit the number of items we
+ // have (without changing the visible height)
+ void UpdateVisibleHeight();
+
+ // create and initialize the control
+ bool CreateAndInit(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ int n, const wxString choices[],
+ long style,
+ const wxValidator& validator,
+ const wxString& name);
+
+ // free all memory we have (used by Clear() and dtor)
+ void Free();
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxChoice)
+};
+
+#endif // _WX_CHOICE_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/clipbrd.h
+// Purpose: wxClipboad class and clipboard functions for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_CLIPBRD_H_
+#define _WX_CLIPBRD_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "clipbrd.h"
+#endif
+
+#if wxUSE_CLIPBOARD
+
+#include "wx/list.h"
+#include "wx/module.h"
+#include "wx/dataobj.h" // for wxDataFormat
+
+// These functions superceded by wxClipboard, but retained in order to
+// implement wxClipboard, and for compatibility.
+
+// open/close the clipboard
+WXDLLEXPORT bool wxOpenClipboard();
+WXDLLEXPORT bool wxIsClipboardOpened();
+#define wxClipboardOpen wxIsClipboardOpened
+WXDLLEXPORT bool wxCloseClipboard();
+
+// get/set data
+WXDLLEXPORT bool wxEmptyClipboard();
+WXDLLEXPORT bool wxSetClipboardData(wxDataFormat dataFormat,
+ const void *data,
+ int width = 0, int height = 0);
+WXDLLEXPORT void* wxGetClipboardData(wxDataFormat dataFormat,
+ long *len = NULL);
+
+// clipboard formats
+WXDLLEXPORT bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat);
+WXDLLEXPORT wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat);
+WXDLLEXPORT int wxRegisterClipboardFormat(wxChar *formatName);
+WXDLLEXPORT bool wxGetClipboardFormatName(wxDataFormat dataFormat,
+ wxChar *formatName,
+ int maxCount);
+
+//-----------------------------------------------------------------------------
+// wxClipboard
+//-----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxDataObject;
+class WXDLLEXPORT wxClipboard : public wxObject
+{
+ DECLARE_DYNAMIC_CLASS(wxClipboard)
+
+public:
+ wxClipboard();
+ ~wxClipboard();
+
+ // open the clipboard before SetData() and GetData()
+ virtual bool Open();
+
+ // close the clipboard after SetData() and GetData()
+ virtual void Close();
+
+ // query whether the clipboard is opened
+ virtual bool IsOpened() const;
+
+ // set the clipboard data. all other formats will be deleted.
+ virtual bool SetData( wxDataObject *data );
+
+ // add to the clipboard data.
+ virtual bool AddData( wxDataObject *data );
+
+ // ask if data in correct format is available
+ virtual bool IsSupported( wxDataFormat format );
+
+ // fill data with data on the clipboard (if available)
+ virtual bool GetData( wxDataObject& data );
+
+ // clears wxTheClipboard and the system's clipboard if possible
+ virtual void Clear();
+
+ // flushes the clipboard: this means that the data which is currently on
+ // clipboard will stay available even after the application exits (possibly
+ // eating memory), otherwise the clipboard will be emptied on exit
+ virtual bool Flush();
+
+ // X11 has two clipboards which get selected by this call. Empty on MSW.
+ void UsePrimarySelection( bool WXUNUSED(primary) = FALSE ) { }
+
+private:
+ bool m_clearOnExit;
+ bool m_isOpened;
+};
+
+#endif // wxUSE_CLIPBOARD
+#endif
+ // _WX_CLIPBRD_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/colordlg.h
+// Purpose: wxColourDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_COLORDLG_H_
+#define _WX_COLORDLG_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "colordlg.h"
+#endif
+
+#include "wx/setup.h"
+#include "wx/dialog.h"
+#include "wx/cmndata.h"
+
+// ----------------------------------------------------------------------------
+// wxColourDialog: dialog for choosing a colours
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxColourDialog : public wxDialog
+{
+public:
+ wxColourDialog();
+ wxColourDialog(wxWindow *parent, wxColourData *data = NULL);
+
+ bool Create(wxWindow *parent, wxColourData *data = NULL);
+
+ wxColourData& GetColourData() { return m_colourData; }
+
+ // override some base class virtuals
+ virtual void SetTitle(const wxString& title);
+ virtual wxString GetTitle() const;
+
+ virtual int ShowModal();
+
+ virtual void DoGetPosition( int *x, int *y ) const;
+
+protected:
+ virtual void DoGetSize(int *width, int *height) const;
+ virtual void DoGetClientSize(int *width, int *height) const;
+ virtual void DoSetSize(int x, int y,
+ int width, int height,
+ int sizeFlags = wxSIZE_AUTO);
+
+ wxColourData m_colourData;
+ wxString m_title;
+
+ wxPoint m_pos;
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxColourDialog)
+};
+
+#endif
+ // _WX_COLORDLG_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/colour.h
+// Purpose: wxColour class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_COLOUR_H_
+#define _WX_COLOUR_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "colour.h"
+#endif
+
+#include "wx/object.h"
+
+// ----------------------------------------------------------------------------
+// Colour
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxColour : public wxObject
+{
+public:
+ // constructors
+ // ------------
+
+ // default
+ wxColour() { Init(); }
+
+ // from separate RGB
+ wxColour( unsigned char red, unsigned char green, unsigned char blue )
+ { Set(red, green, blue); }
+
+ // from packed RGB
+ wxColour( unsigned long colRGB ) { Set(colRGB); }
+
+ // implicit conversion from the colour name
+ wxColour(const wxString &colourName) { InitFromName(colourName); }
+ wxColour(const wxChar *colourName) { InitFromName(colourName); }
+
+
+ // copy ctors and assignment operators
+ wxColour(const wxColour& col);
+ wxColour& operator=( const wxColour& col);
+
+ // dtor
+ ~wxColour();
+
+
+ // other methods
+ // -------------
+
+ // to have the matching Create also for this class
+ void Create( unsigned char red, unsigned char green, unsigned char blue )
+ { Set(red, green, blue); }
+
+ // Set() functions
+ void Set(unsigned char red, unsigned char green, unsigned char blue);
+ void Set(unsigned long colRGB)
+ {
+ // we don't need to know sizeof(long) here because we assume that the three
+ // least significant bytes contain the R, G and B values
+ Set((unsigned char)colRGB,
+ (unsigned char)(colRGB >> 8),
+ (unsigned char)(colRGB >> 16));
+ }
+
+ // accessors
+ // ---------
+
+ bool Ok() const { return m_isInit; }
+
+ unsigned char Red() const { return m_red; }
+ unsigned char Green() const { return m_green; }
+ unsigned char Blue() const { return m_blue; }
+
+ // comparison
+ bool operator==(const wxColour& colour) const
+ {
+ return m_isInit == colour.m_isInit
+ && m_red == colour.m_red
+ && m_green == colour.m_green
+ && m_blue == colour.m_blue;
+ }
+
+ bool operator != (const wxColour& colour) const { return !(*this == colour); }
+
+ WXCOLORREF GetPixel() const { return m_pixel; };
+
+ void InitFromName(const wxString& colourName);
+
+public:
+ WXCOLORREF m_pixel;
+
+protected:
+ // Helper function
+ void Init();
+
+private:
+ bool m_isInit;
+ unsigned char m_red;
+ unsigned char m_blue;
+ unsigned char m_green;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxColour)
+};
+
+#endif
+ // _WX_COLOUR_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/msw/combobox.h
+// Purpose: wxComboBox class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_COMBOBOX_H_
+#define _WX_COMBOBOX_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "combobox.h"
+#endif
+
+#include "wx/choice.h"
+
+#if wxUSE_COMBOBOX
+
+// ----------------------------------------------------------------------------
+// Combobox control
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxComboBox: public wxChoice
+{
+public:
+ wxComboBox() { }
+
+ wxComboBox(wxWindow *parent, wxWindowID id,
+ const wxString& value = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxComboBoxNameStr)
+ {
+ Create(parent, id, value, pos, size, n, choices, style, validator, name);
+ }
+ wxComboBox(wxWindow *parent, wxWindowID id,
+ const wxString& value,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxComboBoxNameStr)
+ {
+ Create(parent, id, value, pos, size, choices, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& value = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0,
+ const wxString choices[] = NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxComboBoxNameStr);
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& value,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxComboBoxNameStr);
+
+ // List functions: see wxChoice
+
+ // Text field functions
+ wxString GetValue() const { return GetLabel(); }
+ virtual void SetValue(const wxString& value);
+
+ // Clipboard operations
+ virtual void Copy();
+ virtual void Cut();
+ virtual void Paste();
+ virtual void SetInsertionPoint(long pos);
+ virtual void SetInsertionPointEnd();
+ virtual long GetInsertionPoint() const;
+ virtual long GetLastPosition() const;
+ virtual void Replace(long from, long to, const wxString& value);
+ virtual void Remove(long from, long to);
+ virtual void SetSelection(int n) { wxChoice::SetSelection(n); }
+ virtual void SetSelection(long from, long to);
+ virtual void SetEditable(bool editable);
+
+ // implementation only from now on
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ bool MSWProcessEditMsg(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam);
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
+ virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
+ WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+
+ WXHWND GetEditHWND() const;
+
+protected:
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxComboBox)
+};
+
+#endif // wxUSE_COMBOBOX
+#endif
+ // _WX_COMBOBOX_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: control.h
+// Purpose: wxControl class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_CONTROL_H_
+#define _WX_CONTROL_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "control.h"
+#endif
+
+#include "wx/dynarray.h"
+
+// General item class
+class WXDLLEXPORT wxControl : public wxControlBase
+{
+public:
+ wxControl() { }
+
+ wxControl(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxControlNameStr)
+ {
+ Create(parent, id, pos, size, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxControlNameStr);
+
+ virtual ~wxControl();
+
+ // Simulates an event
+ virtual void Command(wxCommandEvent& event) { ProcessCommand(event); }
+
+
+ // implementation from now on
+ // --------------------------
+
+ virtual wxVisualAttributes GetDefaultAttributes() const
+ {
+ return GetClassDefaultAttributes(GetWindowVariant());
+ }
+
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+
+ // Calls the callback and appropriate event handlers
+ bool ProcessCommand(wxCommandEvent& event);
+
+ // MSW-specific
+#ifdef __WIN95__
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+#endif // Win95
+
+ // For ownerdraw items
+ virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *WXUNUSED(item)) { return FALSE; };
+ virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *WXUNUSED(item)) { return FALSE; };
+
+ const wxArrayLong& GetSubcontrols() const { return m_subControls; }
+
+ void OnEraseBackground(wxEraseEvent& event);
+
+ virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
+ WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+
+protected:
+ // choose the default border for this window
+ virtual wxBorder GetDefaultBorder() const;
+
+ // return default best size (doesn't really make any sense, override this)
+ virtual wxSize DoGetBestSize() const;
+
+ // create the control of the given Windows class: this is typically called
+ // from Create() method of the derived class passing its label, pos and
+ // size parameter (style parameter is not needed because m_windowStyle is
+ // supposed to had been already set and so is used instead when this
+ // function is called)
+ bool MSWCreateControl(const wxChar *classname,
+ const wxString& label,
+ const wxPoint& pos,
+ const wxSize& size);
+
+ // NB: the method below is deprecated now, with MSWGetStyle() the method
+ // above should be used instead! Once all the controls are updated to
+ // implement MSWGetStyle() this version will disappear.
+ //
+ // create the control of the given class with the given style (combination
+ // of WS_XXX flags, i.e. Windows style, not wxWidgets one), returns
+ // FALSE if creation failed
+ //
+ // All parameters except classname and style are optional, if the
+ // size/position are not given, they should be set later with SetSize()
+ // and, label (the title of the window), of course, is left empty. The
+ // extended style is determined from the style and the app 3D settings
+ // automatically if it's not specified explicitly.
+ bool MSWCreateControl(const wxChar *classname,
+ WXDWORD style,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ const wxString& label = wxEmptyString,
+ WXDWORD exstyle = (WXDWORD)-1);
+
+ // default style for the control include WS_TABSTOP if it AcceptsFocus()
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+ // this is a helper for the derived class GetClassDefaultAttributes()
+ // implementation: it returns the right colours for the classes which
+ // contain something else (e.g. wxListBox, wxTextCtrl, ...) instead of
+ // being simple controls (such as wxButton, wxCheckBox, ...)
+ static wxVisualAttributes
+ GetCompositeControlsDefaultAttributes(wxWindowVariant variant);
+
+
+ // for controls like radiobuttons which are really composite this array
+ // holds the ids (not HWNDs!) of the sub controls
+ wxArrayLong m_subControls;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxControl)
+ DECLARE_EVENT_TABLE()
+};
+
+#endif
+ // _WX_CONTROL_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/crashrpt.h
+// Purpose: helpers for the structured exception handling (SEH)
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSW_SEH_H_
+#define _WX_MSW_SEH_H_
+
+#include "wx/defs.h"
+
+#if wxUSE_ON_FATAL_EXCEPTION
+
+// ----------------------------------------------------------------------------
+// report generation flags
+// ----------------------------------------------------------------------------
+
+enum
+{
+ // we always report where the crash occured
+ wxCRASH_REPORT_LOCATION = 0,
+
+ // if this flag is given, the call stack is dumped
+ //
+ // this results in dump/crash report as small as possible, this is the
+ // default flag
+ wxCRASH_REPORT_STACK = 1,
+
+ // if this flag is given, the values of the local variables are dumped
+ //
+ // note that this will result in huge file containing the dump of the
+ // entire process memory space when using mini dumps!
+ wxCRASH_REPORT_LOCALS = 2,
+
+ // if this flag is given, the values of all global variables are dumped
+ //
+ // this creates a much larger mini dump and also takes more time to
+ // generate if our own crash reporting code is used
+ wxCRASH_REPORT_GLOBALS = 4
+};
+
+// ----------------------------------------------------------------------------
+// wxCrashReport: this class is used to create crash reports
+// ----------------------------------------------------------------------------
+
+struct WXDLLIMPEXP_BASE wxCrashReport
+{
+ // set the name of the file to which the report is written, it is
+ // constructed from the .exe name by default
+ static void SetFileName(const wxChar *filename);
+
+ // return the current file name
+ static const wxChar *GetFileName();
+
+ // write the exception report to the file, return true if it could be done
+ // or false otherwise
+ static bool Generate(int flags = wxCRASH_REPORT_LOCATION |
+ wxCRASH_REPORT_STACK);
+};
+
+#endif // wxUSE_ON_FATAL_EXCEPTION
+
+#endif // _WX_MSW_SEH_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/cursor.h
+// Purpose: wxCursor class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_CURSOR_H_
+#define _WX_CURSOR_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "cursor.h"
+#endif
+
+#include "wx/palmos/gdiimage.h"
+
+class WXDLLEXPORT wxImage;
+
+// Cursor
+class WXDLLEXPORT wxCursor : public wxGDIImage
+{
+public:
+ // constructors
+ wxCursor();
+ wxCursor(const wxCursor& cursor) { Ref(cursor); }
+ wxCursor(const wxImage& image);
+ wxCursor(const char bits[], int width, int height,
+ int hotSpotX = -1, int hotSpotY = -1,
+ const char maskBits[] = NULL);
+ wxCursor(const wxString& name,
+ long flags = wxBITMAP_TYPE_CUR_RESOURCE,
+ int hotSpotX = 0, int hotSpotY = 0);
+ wxCursor(int idCursor);
+ virtual ~wxCursor();
+
+ wxCursor& operator=(const wxCursor& cursor)
+ { if (*this == cursor) return (*this); Ref(cursor); return *this; }
+
+ bool operator==(const wxCursor& cursor) const;
+ bool operator!=(const wxCursor& cursor) const
+ { return !(*this == cursor); }
+
+ // implementation only
+ void SetHCURSOR(WXHCURSOR cursor) { SetHandle((WXHANDLE)cursor); }
+ WXHCURSOR GetHCURSOR() const { return (WXHCURSOR)GetHandle(); }
+
+protected:
+ virtual wxGDIImageRefData *CreateData() const;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxCursor)
+};
+
+#endif
+ // _WX_CURSOR_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: dc.h
+// Purpose: wxDC class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_DC_H_
+#define _WX_DC_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "dc.h"
+#endif
+
+#include "wx/defs.h"
+#include "wx/dc.h"
+
+// ---------------------------------------------------------------------------
+// macros
+// ---------------------------------------------------------------------------
+
+#if wxUSE_DC_CACHEING
+/*
+ * Cached blitting, maintaining a cache
+ * of bitmaps required for transparent blitting
+ * instead of constant creation/deletion
+ */
+
+class wxDCCacheEntry: public wxObject
+{
+public:
+ wxDCCacheEntry(WXHBITMAP hBitmap, int w, int h, int depth);
+ wxDCCacheEntry(WXHDC hDC, int depth);
+ ~wxDCCacheEntry();
+
+ WXHBITMAP m_bitmap;
+ WXHDC m_dc;
+ int m_width;
+ int m_height;
+ int m_depth;
+};
+#endif
+
+class WXDLLEXPORT wxDC : public wxDCBase
+{
+public:
+ wxDC();
+ ~wxDC();
+
+ // implement base class pure virtuals
+ // ----------------------------------
+
+ virtual void Clear();
+
+ virtual bool StartDoc(const wxString& message);
+ virtual void EndDoc();
+
+ virtual void StartPage();
+ virtual void EndPage();
+
+ virtual void SetFont(const wxFont& font);
+ virtual void SetPen(const wxPen& pen);
+ virtual void SetBrush(const wxBrush& brush);
+ virtual void SetBackground(const wxBrush& brush);
+ virtual void SetBackgroundMode(int mode);
+#if wxUSE_PALETTE
+ virtual void SetPalette(const wxPalette& palette);
+#endif // wxUSE_PALETTE
+
+ virtual void DestroyClippingRegion();
+
+ virtual wxCoord GetCharHeight() const;
+ virtual wxCoord GetCharWidth() const;
+ virtual void DoGetTextExtent(const wxString& string,
+ wxCoord *x, wxCoord *y,
+ wxCoord *descent = NULL,
+ wxCoord *externalLeading = NULL,
+ wxFont *theFont = NULL) const;
+ virtual bool DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const;
+
+ virtual bool CanDrawBitmap() const;
+ virtual bool CanGetTextExtent() const;
+ virtual int GetDepth() const;
+ virtual wxSize GetPPI() const;
+
+ virtual void SetMapMode(int mode);
+ virtual void SetUserScale(double x, double y);
+ virtual void SetSystemScale(double x, double y);
+ virtual void SetLogicalScale(double x, double y);
+ virtual void SetLogicalOrigin(wxCoord x, wxCoord y);
+ virtual void SetDeviceOrigin(wxCoord x, wxCoord y);
+ virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
+ virtual void SetLogicalFunction(int function);
+
+ // implementation from now on
+ // --------------------------
+
+ virtual void SetRop(WXHDC cdc);
+ virtual void SelectOldObjects(WXHDC dc);
+
+ wxWindow *GetWindow() const { return m_canvas; }
+ void SetWindow(wxWindow *win)
+ {
+ m_canvas = win;
+
+#if wxUSE_PALETTE
+ // if we have palettes use the correct one for this window
+ InitializePalette();
+#endif // wxUSE_PALETTE
+ }
+
+ WXHDC GetHDC() const { return m_hDC; }
+ void SetHDC(WXHDC dc, bool bOwnsDC = FALSE)
+ {
+ m_hDC = dc;
+ m_bOwnsDC = bOwnsDC;
+
+ // we might have a pre existing clipping region, make sure that we
+ // return it if asked -- but avoid calling ::GetClipBox() right now as
+ // it could be unnecessary wasteful
+ m_clipping = true;
+ m_clipX1 =
+ m_clipX2 = 0;
+ }
+
+ const wxBitmap& GetSelectedBitmap() const { return m_selectedBitmap; }
+ wxBitmap& GetSelectedBitmap() { return m_selectedBitmap; }
+
+ // update the internal clip box variables
+ void UpdateClipBox();
+
+#if wxUSE_DC_CACHEING
+ static wxDCCacheEntry* FindBitmapInCache(WXHDC hDC, int w, int h);
+ static wxDCCacheEntry* FindDCInCache(wxDCCacheEntry* notThis, WXHDC hDC);
+
+ static void AddToBitmapCache(wxDCCacheEntry* entry);
+ static void AddToDCCache(wxDCCacheEntry* entry);
+ static void ClearCache();
+#endif
+
+protected:
+ virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col,
+ int style = wxFLOOD_SURFACE);
+
+ virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const;
+
+ virtual void DoDrawPoint(wxCoord x, wxCoord y);
+ virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
+
+ virtual void DoDrawArc(wxCoord x1, wxCoord y1,
+ wxCoord x2, wxCoord y2,
+ wxCoord xc, wxCoord yc);
+ virtual void DoDrawCheckMark(wxCoord x, wxCoord y,
+ wxCoord width, wxCoord height);
+ virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h,
+ double sa, double ea);
+
+ virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+ virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y,
+ wxCoord width, wxCoord height,
+ double radius);
+ virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+
+ virtual void DoCrossHair(wxCoord x, wxCoord y);
+
+ virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y);
+ virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
+ bool useMask = FALSE);
+
+ virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y);
+ virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y,
+ double angle);
+
+ virtual bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
+ wxDC *source, wxCoord xsrc, wxCoord ysrc,
+ int rop = wxCOPY, bool useMask = FALSE, wxCoord xsrcMask = -1, wxCoord ysrcMask = -1);
+
+ // this is gnarly - we can't even call this function DoSetClippingRegion()
+ // because of virtual function hiding
+ virtual void DoSetClippingRegionAsRegion(const wxRegion& region);
+ virtual void DoSetClippingRegion(wxCoord x, wxCoord y,
+ wxCoord width, wxCoord height);
+ virtual void DoGetClippingRegion(wxCoord *x, wxCoord *y,
+ wxCoord *width, wxCoord *height)
+ {
+ GetClippingBox(x, y, width, height);
+ }
+ virtual void DoGetClippingBox(wxCoord *x, wxCoord *y,
+ wxCoord *w, wxCoord *h) const;
+
+ virtual void DoGetSize(int *width, int *height) const;
+ virtual void DoGetSizeMM(int* width, int* height) const;
+
+ virtual void DoDrawLines(int n, wxPoint points[],
+ wxCoord xoffset, wxCoord yoffset);
+ virtual void DoDrawPolygon(int n, wxPoint points[],
+ wxCoord xoffset, wxCoord yoffset,
+ int fillStyle = wxODDEVEN_RULE);
+ virtual void DoDrawPolyPolygon(int n, int count[], wxPoint points[],
+ wxCoord xoffset, wxCoord yoffset,
+ int fillStyle = wxODDEVEN_RULE);
+
+
+#if wxUSE_PALETTE
+ // MSW specific, select a logical palette into the HDC
+ // (tell windows to translate pixel from other palettes to our custom one
+ // and vice versa)
+ // Realize tells it to also reset the system palette to this one.
+ void DoSelectPalette(bool realize = FALSE);
+
+ // Find out what palette our parent window has, then select it into the dc
+ void InitializePalette();
+#endif // wxUSE_PALETTE
+
+ // common part of DoDrawText() and DoDrawRotatedText()
+ void DrawAnyText(const wxString& text, wxCoord x, wxCoord y);
+
+ // common part of DoSetClippingRegion() and DoSetClippingRegionAsRegion()
+ void SetClippingHrgn(WXHRGN hrgn);
+
+ // MSW-specific member variables
+ // -----------------------------
+
+ // the window associated with this DC (may be NULL)
+ wxWindow *m_canvas;
+
+ wxBitmap m_selectedBitmap;
+
+ // TRUE => DeleteDC() in dtor, FALSE => only ReleaseDC() it
+ bool m_bOwnsDC:1;
+
+ // our HDC
+ WXHDC m_hDC;
+
+ // Store all old GDI objects when do a SelectObject, so we can select them
+ // back in (this unselecting user's objects) so we can safely delete the
+ // DC.
+ WXHBITMAP m_oldBitmap;
+ WXHPEN m_oldPen;
+ WXHBRUSH m_oldBrush;
+ WXHFONT m_oldFont;
+
+#if wxUSE_PALETTE
+ WXHPALETTE m_oldPalette;
+#endif // wxUSE_PALETTE
+
+#if wxUSE_DC_CACHEING
+ static wxList sm_bitmapCache;
+ static wxList sm_dcCache;
+#endif
+
+ DECLARE_DYNAMIC_CLASS(wxDC)
+ DECLARE_NO_COPY_CLASS(wxDC)
+};
+
+// ----------------------------------------------------------------------------
+// wxDCTemp: a wxDC which doesn't free the given HDC (used by wxWidgets
+// only/mainly)
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxDCTemp : public wxDC
+{
+public:
+ wxDCTemp(WXHDC hdc) { SetHDC(hdc); }
+ virtual ~wxDCTemp() { SetHDC((WXHDC)NULL); }
+
+private:
+ DECLARE_NO_COPY_CLASS(wxDCTemp)
+};
+
+#endif
+ // _WX_DC_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: dcclient.h
+// Purpose: wxClientDC class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_DCCLIENT_H_
+#define _WX_DCCLIENT_H_
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "dcclient.h"
+#endif
+
+#include "wx/dc.h"
+#include "wx/dynarray.h"
+
+// ----------------------------------------------------------------------------
+// array types
+// ----------------------------------------------------------------------------
+
+// this one if used by wxPaintDC only
+struct WXDLLEXPORT wxPaintDCInfo;
+
+WX_DECLARE_EXPORTED_OBJARRAY(wxPaintDCInfo, wxArrayDCInfo);
+
+// ----------------------------------------------------------------------------
+// DC classes
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxWindowDC : public wxDC
+{
+public:
+ // default ctor
+ wxWindowDC();
+
+ // Create a DC corresponding to the whole window
+ wxWindowDC(wxWindow *win);
+
+protected:
+ // intiialize the newly created DC
+ void InitDC();
+
+ // override some base class virtuals
+ virtual void DoGetSize(int *width, int *height) const;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxWindowDC)
+};
+
+class WXDLLEXPORT wxClientDC : public wxWindowDC
+{
+public:
+ // default ctor
+ wxClientDC();
+
+ // Create a DC corresponding to the client area of the window
+ wxClientDC(wxWindow *win);
+
+ virtual ~wxClientDC();
+
+protected:
+ void InitDC();
+
+ // override some base class virtuals
+ virtual void DoGetSize(int *width, int *height) const;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxClientDC)
+};
+
+class WXDLLEXPORT wxPaintDC : public wxClientDC
+{
+public:
+ wxPaintDC();
+
+ // Create a DC corresponding for painting the window in OnPaint()
+ wxPaintDC(wxWindow *win);
+
+ virtual ~wxPaintDC();
+
+ // find the entry for this DC in the cache (keyed by the window)
+ static WXHDC FindDCInCache(wxWindow* win);
+
+protected:
+ static wxArrayDCInfo ms_cache;
+
+ // find the entry for this DC in the cache (keyed by the window)
+ wxPaintDCInfo *FindInCache(size_t *index = NULL) const;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxPaintDC)
+};
+
+/*
+ * wxPaintDCEx
+ * This class is used when an application sends an HDC with the WM_PAINT
+ * message. It is used in HandlePaint and need not be used by an application.
+ */
+
+class WXDLLEXPORT wxPaintDCEx : public wxPaintDC
+{
+public:
+ wxPaintDCEx(wxWindow *canvas, WXHDC dc);
+ virtual ~wxPaintDCEx();
+private:
+ int saveState;
+
+ DECLARE_CLASS(wxPaintDCEx)
+ DECLARE_NO_COPY_CLASS(wxPaintDCEx)
+};
+
+#endif
+ // _WX_DCCLIENT_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/dcmemory.h
+// Purpose: wxMemoryDC class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_DCMEMORY_H_
+#define _WX_DCMEMORY_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "dcmemory.h"
+#endif
+
+#include "wx/dcclient.h"
+
+class WXDLLEXPORT wxMemoryDC : public wxDC
+{
+public:
+ wxMemoryDC();
+ wxMemoryDC(wxDC *dc); // Create compatible DC
+
+ virtual void SelectObject(const wxBitmap& bitmap);
+
+protected:
+ // override some base class virtuals
+ virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+ virtual void DoGetSize(int* width, int* height) const;
+
+ // create DC compatible with the given one or screen if dc == NULL
+ bool CreateCompatible(wxDC *dc);
+
+ // initialize the newly created DC
+ void Init();
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxMemoryDC)
+};
+
+#endif
+ // _WX_DCMEMORY_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/dcprint.h
+// Purpose: wxPrinterDC class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_DCPRINT_H_
+#define _WX_DCPRINT_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "dcprint.h"
+#endif
+
+#if wxUSE_PRINTING_ARCHITECTURE
+
+#include "wx/dc.h"
+#include "wx/cmndata.h"
+
+class WXDLLEXPORT wxPrinterDC : public wxDC
+{
+public:
+ // Create a printer DC (obsolete function: use wxPrintData version now)
+ wxPrinterDC(const wxString& driver, const wxString& device, const wxString& output, bool interactive = TRUE, int orientation = wxPORTRAIT);
+
+ // Create from print data
+ wxPrinterDC(const wxPrintData& data);
+
+ wxPrinterDC(WXHDC theDC);
+
+ // override some base class virtuals
+ virtual bool StartDoc(const wxString& message);
+ virtual void EndDoc();
+ virtual void StartPage();
+ virtual void EndPage();
+
+protected:
+ virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
+ bool useMask = FALSE);
+ virtual bool DoBlit(wxCoord xdest, wxCoord ydest,
+ wxCoord width, wxCoord height,
+ wxDC *source, wxCoord xsrc, wxCoord ysrc,
+ int rop = wxCOPY, bool useMask = FALSE, wxCoord xsrcMask = -1, wxCoord ysrcMask = -1);
+
+ // init the dc
+ void Init();
+
+ wxPrintData m_printData;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxPrinterDC)
+};
+
+// Gets an HDC for the default printer configuration
+// WXHDC WXDLLEXPORT wxGetPrinterDC(int orientation);
+
+// Gets an HDC for the specified printer configuration
+WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& data);
+
+#endif // wxUSE_PRINTING_ARCHITECTURE
+
+#endif
+ // _WX_DCPRINT_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/dcscreen.h
+// Purpose: wxScreenDC class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_DCSCREEN_H_
+#define _WX_DCSCREEN_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "dcscreen.h"
+#endif
+
+#include "wx/dcclient.h"
+
+class WXDLLEXPORT wxScreenDC : public wxWindowDC
+{
+public:
+ // Create a DC representing the whole screen
+ wxScreenDC();
+
+ // Compatibility with X's requirements for drawing on top of all windows
+ static bool StartDrawingOnTop(wxWindow* WXUNUSED(window)) { return TRUE; }
+ static bool StartDrawingOnTop(wxRect* WXUNUSED(rect) = NULL) { return TRUE; }
+ static bool EndDrawingOnTop() { return TRUE; }
+
+protected:
+ virtual void DoGetSize(int *width, int *height) const;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxScreenDC)
+};
+
+#endif
+ // _WX_DCSCREEN_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/dialog.h
+// Purpose: wxDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_DIALOG_H_
+#define _WX_DIALOG_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "dialog.h"
+#endif
+
+#include "wx/panel.h"
+
+WXDLLEXPORT_DATA(extern const wxChar*) wxDialogNameStr;
+
+class WXDLLEXPORT wxDialogModalData;
+
+// Dialog boxes
+class WXDLLEXPORT wxDialog : public wxDialogBase
+{
+public:
+ wxDialog() { Init(); }
+
+ // full ctor
+ wxDialog(wxWindow *parent, wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_DIALOG_STYLE,
+ const wxString& name = wxDialogNameStr)
+ {
+ Init();
+
+ (void)Create(parent, id, title, pos, size, style, name);
+ }
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_DIALOG_STYLE,
+ const wxString& name = wxDialogNameStr);
+
+ virtual ~wxDialog();
+
+ // return true if we're showing the dialog modally
+ virtual bool IsModal() const { return m_modalData != NULL; }
+
+ // show the dialog modally and return the value passed to EndModal()
+ virtual int ShowModal();
+
+ // may be called to terminate the dialog with the given return code
+ virtual void EndModal(int retCode);
+
+ // implementation only from now on
+ // -------------------------------
+
+ // override some base class virtuals
+ virtual bool Show(bool show = TRUE);
+
+ virtual void Raise();
+
+ // event handlers
+ void OnCharHook(wxKeyEvent& event);
+ void OnCloseWindow(wxCloseEvent& event);
+
+ // Standard buttons
+ void OnOK(wxCommandEvent& event);
+ void OnApply(wxCommandEvent& event);
+ void OnCancel(wxCommandEvent& event);
+
+ // Responds to colour changes
+ void OnSysColourChanged(wxSysColourChangedEvent& event);
+
+ // Windows callbacks
+ WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+
+#if wxUSE_CTL3D
+ virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
+ WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+#endif // wxUSE_CTL3D
+
+ // obsolete methods
+ // ----------------
+
+ // use the other ctor
+ wxDEPRECATED( wxDialog(wxWindow *parent,
+ const wxString& title, bool modal,
+ int x = -1, int y= -1, int width = 500, int height = 500,
+ long style = wxDEFAULT_DIALOG_STYLE,
+ const wxString& name = wxDialogNameStr) );
+
+ // just call Show() or ShowModal()
+ wxDEPRECATED( void SetModal(bool flag) );
+
+ // use IsModal()
+ wxDEPRECATED( bool IsModalShowing() const );
+
+protected:
+ // find the window to use as parent for this dialog if none has been
+ // specified explicitly by the user
+ //
+ // may return NULL
+ wxWindow *FindSuitableParent() const;
+
+ // common part of all ctors
+ void Init();
+
+private:
+ wxWindow* m_oldFocus;
+ bool m_endModalCalled; // allow for closing within InitDialog
+
+ // this pointer is non-NULL only while the modal event loop is running
+ wxDialogModalData *m_modalData;
+
+
+ DECLARE_DYNAMIC_CLASS(wxDialog)
+ DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxDialog)
+};
+
+#endif
+ // _WX_DIALOG_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/dib.h
+// Purpose: wxDIB class representing device independent bitmaps
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PALMOS_DIB_H_
+#define _WX_PALMOS_DIB_H_
+
+class WXDLLEXPORT wxBitmap;
+class WXDLLEXPORT wxPalette;
+
+#include "wx/msw/private.h"
+
+#if wxUSE_WXDIB
+
+// ----------------------------------------------------------------------------
+// wxDIB: represents a DIB section
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxDIB
+{
+public:
+ // ctors and such
+ // --------------
+
+ // create an uninitialized DIB with the given width, height and depth (only
+ // 24 and 32 bpp DIBs are currently supported)
+ //
+ // after using this ctor, GetData() and GetHandle() may be used if IsOk()
+ // returns true
+ wxDIB(int width, int height, int depth)
+ { Init(); (void)Create(width, height, depth); }
+
+ // create a DIB from the DDB
+ wxDIB(const wxBitmap& bmp)
+ { Init(); (void)Create(bmp); }
+
+ // load a DIB from file (any depth is supoprted here unlike above)
+ //
+ // as above, use IsOk() to see if the bitmap was loaded successfully
+ wxDIB(const wxString& filename)
+ { Init(); (void)Load(filename); }
+
+ // same as the corresponding ctors but with return value
+ bool Create(int width, int height, int depth);
+ bool Create(const wxBitmap& bmp);
+ bool Load(const wxString& filename);
+
+ // dtor is not virtual, this class is not meant to be used polymorphically
+ ~wxDIB();
+
+
+ // operations
+ // ----------
+
+#ifndef __WXWINCE__
+ // create a bitmap compatiblr with the given HDC (or screen by default) and
+ // return its handle, the caller is responsible for freeing it (using
+ // DeleteObject())
+ HBITMAP CreateDDB(HDC hdc = 0) const;
+#endif // !__WXWINCE__
+
+ // get the handle from the DIB and reset it, i.e. this object won't destroy
+ // the DIB after this (but the caller should do it)
+ HBITMAP Detach() { HBITMAP hbmp = m_handle; m_handle = 0; return hbmp; }
+
+#if wxUSE_PALETTE
+ // create a palette for this DIB (always a trivial/default one for 24bpp)
+ wxPalette *CreatePalette() const;
+#endif // wxUSE_PALETTE
+
+ // save the DIB as a .BMP file to the file with the given name
+ bool Save(const wxString& filename);
+
+
+ // accessors
+ // ---------
+
+ // return true if DIB was successfully created, false otherwise
+ bool IsOk() const { return m_handle != 0; }
+
+ // get the bitmap size
+ wxSize GetSize() const { DoGetObject(); return wxSize(m_width, m_height); }
+ int GetWidth() const { DoGetObject(); return m_width; }
+ int GetHeight() const { DoGetObject(); return m_height; }
+
+ // get the number of bits per pixel, or depth
+ int GetDepth() const { DoGetObject(); return m_depth; }
+
+ // get the DIB handle
+ HBITMAP GetHandle() const { return m_handle; }
+
+ // get raw pointer to bitmap bits, you should know what you do if you
+ // decide to use it
+ void *GetData() const { DoGetObject(); return m_data; }
+
+
+ // HBITMAP conversion
+ // ------------------
+
+ // these functions are only used by wxWidgets internally right now, please
+ // don't use them directly if possible as they're subject to change
+
+#ifndef __WXWINCE__
+ // creates a DDB compatible with the given (or screen) DC from either
+ // a plain DIB or a DIB section (in which case the last parameter must be
+ // non NULL)
+ static HBITMAP ConvertToBitmap(const BITMAPINFO *pbi,
+ HDC hdc = 0,
+ void *bits = NULL);
+
+ // create a plain DIB (not a DIB section) from a DDB, the caller is
+ // responsable for freeing it using ::GlobalFree()
+ static HGLOBAL ConvertFromBitmap(HBITMAP hbmp);
+
+ // creates a DIB from the given DDB or calculates the space needed by it:
+ // if pbi is NULL, only the space is calculated, otherwise pbi is supposed
+ // to point at BITMAPINFO of the correct size which is filled by this
+ // function (this overload is needed for wxBitmapDataObject code in
+ // src/msw/ole/dataobj.cpp)
+ static size_t ConvertFromBitmap(BITMAPINFO *pbi, HBITMAP hbmp);
+#endif // __WXWINCE__
+
+
+ // wxImage conversion
+ // ------------------
+
+#if wxUSE_IMAGE
+ // create a DIB from the given image, the DIB will be either 24 or 32 (if
+ // the image has alpha channel) bpp
+ wxDIB(const wxImage& image) { Init(); (void)Create(image); }
+
+ // same as the above ctor but with the return code
+ bool Create(const wxImage& image);
+
+ // create wxImage having the same data as this DIB
+ wxImage ConvertToImage() const;
+#endif // wxUSE_IMAGE
+
+
+ // helper functions
+ // ----------------
+
+ // return the size of one line in a DIB with given width and depth: the
+ // point here is that as the scan lines need to be DWORD aligned so we may
+ // need to add some padding
+ static unsigned long GetLineSize(int width, int depth)
+ {
+ return ((width*depth + 31) & ~31) >> 3;
+ }
+
+private:
+ // common part of all ctors
+ void Init();
+
+ // free resources
+ void Free();
+
+ // initialize the contents from the provided DDB (Create() must have been
+ // already called)
+ bool CopyFromDDB(HBITMAP hbmp);
+
+
+ // the DIB section handle, 0 if invalid
+ HBITMAP m_handle;
+
+ // NB: we could store only m_handle and not any of the other fields as
+ // we may always retrieve them from it using ::GetObject(), but we
+ // decide to still store them for efficiency concerns -- however if we
+ // don't have them from the very beginning (e.g. DIB constructed from a
+ // bitmap), we only retrieve them when necessary and so these fields
+ // should *never* be accessed directly, even from inside wxDIB code
+
+ // function which must be called before accessing any members and which
+ // gets their values from m_handle, if not done yet
+ void DoGetObject() const;
+
+ // pointer to DIB bits, may be NULL
+ void *m_data;
+
+ // size and depth of the image
+ int m_width,
+ m_height,
+ m_depth;
+
+ // in some cases we could be using a handle which we didn't create and in
+ // this case we shouldn't free it neither -- this flag tell us if this is
+ // the case
+ bool m_ownsHandle;
+
+
+ // DIBs can't be copied
+ wxDIB(const wxDIB&);
+ wxDIB& operator=(const wxDIB&);
+};
+
+// ----------------------------------------------------------------------------
+// inline functions implementation
+// ----------------------------------------------------------------------------
+
+inline
+void wxDIB::Init()
+{
+ m_handle = 0;
+ m_ownsHandle = true;
+
+ m_data = NULL;
+
+ m_width =
+ m_height =
+ m_depth = 0;
+}
+
+inline
+void wxDIB::Free()
+{
+ if ( m_handle && m_ownsHandle )
+ {
+ if ( !::DeleteObject(m_handle) )
+ {
+ wxLogLastError(wxT("DeleteObject(hDIB)"));
+ }
+
+ Init();
+ }
+}
+
+inline wxDIB::~wxDIB()
+{
+ Free();
+}
+
+#endif
+ // wxUSE_WXDIB
+
+#endif // _WX_PALMOS_DIB_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/dirdlg.h
+// Purpose: wxDirDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_DIRDLG_H_
+#define _WX_DIRDLG_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "dirdlg.h"
+#endif
+
+class WXDLLEXPORT wxDirDialog : public wxDialog
+{
+public:
+ wxDirDialog(wxWindow *parent,
+ const wxString& message = wxDirSelectorPromptStr,
+ const wxString& defaultPath = wxEmptyString,
+ long style = 0,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ const wxString& name = wxDirDialogNameStr);
+
+ void SetMessage(const wxString& message) { m_message = message; }
+ void SetPath(const wxString& path);
+ void SetStyle(long style) { SetWindowStyle(style); }
+
+ wxString GetMessage() const { return m_message; }
+ wxString GetPath() const { return m_path; }
+ long GetStyle() const { return GetWindowStyle(); }
+
+ virtual int ShowModal();
+
+protected:
+ wxString m_message;
+ wxString m_path;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxDirDialog)
+};
+
+#endif
+ // _WX_DIRDLG_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: display.h
+// Purpose: wxDisplay class customization for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "display.h"
+#endif
+
+#ifndef _WX_PALMOS_DISPLAY_H_
+#define _WX_PALMOS_DISPLAY_H_
+
+class WXDLLEXPORT wxDisplay : public wxDisplayBase
+{
+public:
+ // this function may be called *before* using any other wxDisplay methods
+ // to tell it to use DirectX functions instead of the standard Windows ones
+ static void UseDirectX(bool useDX);
+
+ // create the display object for the given physical display
+ wxDisplay(size_t index = 0);
+
+ virtual ~wxDisplay();
+
+ // implement base class pure virtuals
+ virtual bool IsOk() const;
+ virtual wxRect GetGeometry() const;
+ virtual wxString GetName() const;
+
+ virtual wxArrayVideoModes
+ GetModes(const wxVideoMode& mode = wxVideoMode()) const;
+ virtual wxVideoMode GetCurrentMode() const;
+ virtual bool ChangeMode(const wxVideoMode& mode = wxVideoMode());
+
+private:
+ // get the display name to use with EnumDisplaySettings()
+ wxString GetNameForEnumSettings() const;
+
+ // we have different implementations using DirectDraw and without it
+ wxArrayVideoModes DoGetModesDirectX(const wxVideoMode& modeMatch) const;
+ bool DoChangeModeDirectX(const wxVideoMode& mode);
+
+ wxArrayVideoModes DoGetModesWindows(const wxVideoMode& modeMatch) const;
+ bool DoChangeModeWindows(const wxVideoMode& mode);
+
+
+ DECLARE_NO_COPY_CLASS(wxDisplay)
+};
+
+#endif // _WX_PALMOS_DISPLAY_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/dragimag.h
+// Purpose: wxDragImage class: a kind of a cursor, that can cope
+// with more sophisticated images
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_DRAGIMAG_H_
+#define _WX_DRAGIMAG_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "dragimag.h"
+#endif
+
+#include "wx/bitmap.h"
+#include "wx/icon.h"
+#include "wx/cursor.h"
+#include "wx/treectrl.h"
+#include "wx/listctrl.h"
+
+// If 1, use a simple wxCursor instead of ImageList_SetDragCursorImage
+#define wxUSE_SIMPLER_DRAGIMAGE 0
+
+/*
+ To use this class, create a wxDragImage when you start dragging, for example:
+
+ void MyTreeCtrl::OnBeginDrag(wxTreeEvent& event)
+ {
+#ifdef __WXMSW__
+ ::UpdateWindow((HWND) GetHWND()); // We need to implement this in wxWidgets
+#endif
+
+ CaptureMouse();
+
+ m_dragImage = new wxDragImage(* this, itemId);
+ m_dragImage->BeginDrag(wxPoint(0, 0), this);
+ m_dragImage->Move(pt, this);
+ m_dragImage->Show(this);
+ ...
+ }
+
+ In your OnMouseMove function, hide the image, do any display updating required,
+ then move and show the image again:
+
+ void MyTreeCtrl::OnMouseMove(wxMouseEvent& event)
+ {
+ if (m_dragMode == MY_TREE_DRAG_NONE)
+ {
+ event.Skip();
+ return;
+ }
+
+ // Prevent screen corruption by hiding the image
+ if (m_dragImage)
+ m_dragImage->Hide(this);
+
+ // Do some updating of the window, such as highlighting the drop target
+ ...
+
+#ifdef __WXMSW__
+ if (updateWindow)
+ ::UpdateWindow((HWND) GetHWND());
+#endif
+
+ // Move and show the image again
+ m_dragImage->Move(event.GetPosition(), this);
+ m_dragImage->Show(this);
+ }
+
+ Eventually we end the drag and delete the drag image.
+
+ void MyTreeCtrl::OnLeftUp(wxMouseEvent& event)
+ {
+ ...
+
+ // End the drag and delete the drag image
+ if (m_dragImage)
+ {
+ m_dragImage->EndDrag(this);
+ delete m_dragImage;
+ m_dragImage = NULL;
+ }
+ ReleaseMouse();
+ }
+*/
+
+/*
+ Notes for Unix version:
+ Can we simply use cursors instead, creating a cursor dynamically, setting it into the window
+ in BeginDrag, and restoring the old cursor in EndDrag?
+ For a really bog-standard implementation, we could simply use a normal dragging cursor
+ and ignore the image.
+*/
+
+/*
+ * wxDragImage
+ */
+
+class WXDLLEXPORT wxDragImage: public wxObject
+{
+public:
+
+ // Ctors & dtor
+ ////////////////////////////////////////////////////////////////////////////
+
+ wxDragImage();
+ wxDragImage(const wxBitmap& image, const wxCursor& cursor = wxNullCursor)
+ {
+ Init();
+
+ Create(image, cursor);
+ }
+
+ // Deprecated form of the above
+ wxDragImage(const wxBitmap& image, const wxCursor& cursor, const wxPoint& cursorHotspot)
+ {
+ Init();
+
+ Create(image, cursor, cursorHotspot);
+ }
+
+ wxDragImage(const wxIcon& image, const wxCursor& cursor = wxNullCursor)
+ {
+ Init();
+
+ Create(image, cursor);
+ }
+
+ // Deprecated form of the above
+ wxDragImage(const wxIcon& image, const wxCursor& cursor, const wxPoint& cursorHotspot)
+ {
+ Init();
+
+ Create(image, cursor, cursorHotspot);
+ }
+
+ wxDragImage(const wxString& str, const wxCursor& cursor = wxNullCursor)
+ {
+ Init();
+
+ Create(str, cursor);
+ }
+
+ // Deprecated form of the above
+ wxDragImage(const wxString& str, const wxCursor& cursor, const wxPoint& cursorHotspot)
+ {
+ Init();
+
+ Create(str, cursor, cursorHotspot);
+ }
+
+#if wxUSE_TREECTRL
+ wxDragImage(const wxTreeCtrl& treeCtrl, wxTreeItemId& id)
+ {
+ Init();
+
+ Create(treeCtrl, id);
+ }
+#endif
+
+#if wxUSE_LISTCTRL
+ wxDragImage(const wxListCtrl& listCtrl, long id)
+ {
+ Init();
+
+ Create(listCtrl, id);
+ }
+#endif
+
+ ~wxDragImage();
+
+ // Attributes
+ ////////////////////////////////////////////////////////////////////////////
+
+ // Operations
+ ////////////////////////////////////////////////////////////////////////////
+
+ // Create a drag image from a bitmap and optional cursor
+ bool Create(const wxBitmap& image, const wxCursor& cursor = wxNullCursor);
+ bool Create(const wxBitmap& image, const wxCursor& cursor, const wxPoint& WXUNUSED(cursorHotspot))
+ {
+ wxLogDebug(wxT("wxDragImage::Create: use of a cursor hotspot is now deprecated. Please omit this argument."));
+ return Create(image, cursor);
+ }
+
+ // Create a drag image from an icon and optional cursor
+ bool Create(const wxIcon& image, const wxCursor& cursor = wxNullCursor);
+ bool Create(const wxIcon& image, const wxCursor& cursor, const wxPoint& WXUNUSED(cursorHotspot))
+ {
+ wxLogDebug(wxT("wxDragImage::Create: use of a cursor hotspot is now deprecated. Please omit this argument."));
+ return Create(image, cursor);
+ }
+
+ // Create a drag image from a string and optional cursor
+ bool Create(const wxString& str, const wxCursor& cursor = wxNullCursor);
+ bool Create(const wxString& str, const wxCursor& cursor, const wxPoint& WXUNUSED(cursorHotspot))
+ {
+ wxLogDebug(wxT("wxDragImage::Create: use of a cursor hotspot is now deprecated. Please omit this argument."));
+ return Create(str, cursor);
+ }
+
+#if wxUSE_TREECTRL
+ // Create a drag image for the given tree control item
+ bool Create(const wxTreeCtrl& treeCtrl, wxTreeItemId& id);
+#endif
+
+#if wxUSE_LISTCTRL
+ // Create a drag image for the given list control item
+ bool Create(const wxListCtrl& listCtrl, long id);
+#endif
+
+ // Begin drag. hotspot is the location of the drag position relative to the upper-left
+ // corner of the image.
+ bool BeginDrag(const wxPoint& hotspot, wxWindow* window, bool fullScreen = FALSE, wxRect* rect = (wxRect*) NULL);
+
+ // Begin drag. hotspot is the location of the drag position relative to the upper-left
+ // corner of the image. This is full screen only. fullScreenRect gives the
+ // position of the window on the screen, to restrict the drag to.
+ bool BeginDrag(const wxPoint& hotspot, wxWindow* window, wxWindow* fullScreenRect);
+
+ // End drag
+ bool EndDrag();
+
+ // Move the image: call from OnMouseMove. Pt is in window client coordinates if window
+ // is non-NULL, or in screen coordinates if NULL.
+ bool Move(const wxPoint& pt);
+
+ // Show the image
+ bool Show();
+
+ // Hide the image
+ bool Hide();
+
+ // Implementation
+ ////////////////////////////////////////////////////////////////////////////
+
+ // Initialize variables
+ void Init();
+
+ // Returns the native image list handle
+ WXHIMAGELIST GetHIMAGELIST() const { return m_hImageList; }
+
+#if !wxUSE_SIMPLER_DRAGIMAGE
+ // Returns the native image list handle for the cursor
+ WXHIMAGELIST GetCursorHIMAGELIST() const { return m_hCursorImageList; }
+#endif
+
+protected:
+ WXHIMAGELIST m_hImageList;
+
+#if wxUSE_SIMPLER_DRAGIMAGE
+ wxCursor m_oldCursor;
+#else
+ WXHIMAGELIST m_hCursorImageList;
+#endif
+
+ wxCursor m_cursor;
+// wxPoint m_cursorHotspot; // Obsolete
+ wxPoint m_position;
+ wxWindow* m_window;
+ wxRect m_boundingRect;
+ bool m_fullScreen;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxDragImage)
+ DECLARE_NO_COPY_CLASS(wxDragImage)
+};
+
+#endif
+ // _WX_DRAGIMAG_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/enhmeta.h
+// Purpose: wxEnhMetaFile class for Win32
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PALMOS_ENHMETA_H_
+#define _WX_PALMOS_ENHMETA_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "enhmeta.h"
+#endif
+
+#include "wx/dc.h"
+
+#if wxUSE_DRAG_AND_DROP
+ #include "wx/dataobj.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// wxEnhMetaFile: encapsulation of Win32 HENHMETAFILE
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxEnhMetaFile : public wxObject
+{
+public:
+ wxEnhMetaFile(const wxString& file = wxEmptyString) : m_filename(file)
+ { Init(); }
+ wxEnhMetaFile(const wxEnhMetaFile& metafile)
+ { Init(); Assign(metafile); }
+ wxEnhMetaFile& operator=(const wxEnhMetaFile& metafile)
+ { Free(); Assign(metafile); return *this; }
+
+ virtual ~wxEnhMetaFile()
+ { Free(); }
+
+ // display the picture stored in the metafile on the given DC
+ bool Play(wxDC *dc, wxRect *rectBound = (wxRect *)NULL);
+
+ // accessors
+ bool Ok() const { return m_hMF != 0; }
+
+ wxSize GetSize() const;
+ int GetWidth() const { return GetSize().x; }
+ int GetHeight() const { return GetSize().y; }
+
+ const wxString& GetFileName() const { return m_filename; }
+
+ // copy the metafile to the clipboard: the width and height parameters are
+ // for backwards compatibility (with wxMetaFile) only, they are ignored by
+ // this method
+ bool SetClipboard(int width = 0, int height = 0);
+
+ // implementation
+ WXHANDLE GetHENHMETAFILE() const { return m_hMF; }
+ void SetHENHMETAFILE(WXHANDLE hMF) { Free(); m_hMF = hMF; }
+
+protected:
+ void Init() { m_hMF = 0; }
+ void Free();
+ void Assign(const wxEnhMetaFile& mf);
+
+private:
+ wxString m_filename;
+ WXHANDLE m_hMF;
+
+ DECLARE_DYNAMIC_CLASS(wxEnhMetaFile)
+};
+
+// ----------------------------------------------------------------------------
+// wxEnhMetaFileDC: allows to create a wxEnhMetaFile
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxEnhMetaFileDC : public wxDC
+{
+public:
+ // the ctor parameters specify the filename (empty for memory metafiles),
+ // the metafile picture size and the optional description/comment
+ wxEnhMetaFileDC(const wxString& filename = wxEmptyString,
+ int width = 0, int height = 0,
+ const wxString& description = wxEmptyString);
+
+ virtual ~wxEnhMetaFileDC();
+
+ // obtain a pointer to the new metafile (caller should delete it)
+ wxEnhMetaFile *Close();
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxEnhMetaFileDC)
+};
+
+#if wxUSE_DRAG_AND_DROP
+
+// ----------------------------------------------------------------------------
+// wxEnhMetaFileDataObject is a specialization of wxDataObject for enh metafile
+// ----------------------------------------------------------------------------
+
+// notice that we want to support both CF_METAFILEPICT and CF_ENHMETAFILE and
+// so we derive from wxDataObject and not from wxDataObjectSimple
+class WXDLLEXPORT wxEnhMetaFileDataObject : public wxDataObject
+{
+public:
+ // ctors
+ wxEnhMetaFileDataObject() { }
+ wxEnhMetaFileDataObject(const wxEnhMetaFile& metafile)
+ : m_metafile(metafile) { }
+
+ // virtual functions which you may override if you want to provide data on
+ // demand only - otherwise, the trivial default versions will be used
+ virtual void SetMetafile(const wxEnhMetaFile& metafile)
+ { m_metafile = metafile; }
+ virtual wxEnhMetaFile GetMetafile() const
+ { return m_metafile; }
+
+ // implement base class pure virtuals
+ virtual wxDataFormat GetPreferredFormat(Direction dir) const;
+ virtual size_t GetFormatCount(Direction dir) const;
+ virtual void GetAllFormats(wxDataFormat *formats, Direction dir) const;
+ virtual size_t GetDataSize(const wxDataFormat& format) const;
+ virtual bool GetDataHere(const wxDataFormat& format, void *buf) const;
+ virtual bool SetData(const wxDataFormat& format, size_t len,
+ const void *buf);
+
+protected:
+ wxEnhMetaFile m_metafile;
+
+ DECLARE_NO_COPY_CLASS(wxEnhMetaFileDataObject)
+};
+
+
+// ----------------------------------------------------------------------------
+// wxEnhMetaFileSimpleDataObject does derive from wxDataObjectSimple which
+// makes it more convenient to use (it can be used with wxDataObjectComposite)
+// at the price of not supoprting any more CF_METAFILEPICT but only
+// CF_ENHMETAFILE
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxEnhMetaFileSimpleDataObject : public wxDataObjectSimple
+{
+public:
+ // ctors
+ wxEnhMetaFileSimpleDataObject() : wxDataObjectSimple(wxDF_ENHMETAFILE) { }
+ wxEnhMetaFileSimpleDataObject(const wxEnhMetaFile& metafile)
+ : wxDataObjectSimple(wxDF_ENHMETAFILE), m_metafile(metafile) { }
+
+ // virtual functions which you may override if you want to provide data on
+ // demand only - otherwise, the trivial default versions will be used
+ virtual void SetEnhMetafile(const wxEnhMetaFile& metafile)
+ { m_metafile = metafile; }
+ virtual wxEnhMetaFile GetEnhMetafile() const
+ { return m_metafile; }
+
+ // implement base class pure virtuals
+ virtual size_t GetDataSize() const;
+ virtual bool GetDataHere(void *buf) const;
+ virtual bool SetData(size_t len, const void *buf);
+
+ virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const
+ { return GetDataSize(); }
+ virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format),
+ void *buf) const
+ { return GetDataHere(buf); }
+ virtual bool SetData(const wxDataFormat& WXUNUSED(format),
+ size_t len, const void *buf)
+ { return SetData(len, buf); }
+
+protected:
+ wxEnhMetaFile m_metafile;
+
+ DECLARE_NO_COPY_CLASS(wxEnhMetaFileSimpleDataObject)
+};
+
+#endif // wxUSE_DRAG_AND_DROP
+
+#endif // _WX_PALMOS_ENHMETA_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/evtloop.h
+// Purpose: wxEventLoop class for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 2004-10-14
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PALMOS_EVTLOOP_H_
+#define _WX_PALMOS_EVTLOOP_H_
+
+// ----------------------------------------------------------------------------
+// wxEventLoop
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxEventLoop : public wxEventLoopBase
+{
+public:
+ wxEventLoop();
+
+ // implement base class pure virtuals
+ virtual int Run();
+ virtual void Exit(int rc = 0);
+ virtual bool Pending() const;
+ virtual bool Dispatch();
+ virtual bool IsRunning() const;
+
+ // MSW-specific methods
+ // --------------------
+
+ // preprocess a message, return true if processed (i.e. no further
+ // dispatching required)
+ virtual bool PreProcessMessage(WXMSG *msg);
+
+ // process a single message
+ virtual void ProcessMessage(WXMSG *msg);
+
+protected:
+ // should we exit the loop?
+ bool m_shouldExit;
+
+ // the loop exit code
+ int m_exitcode;
+};
+
+#endif // _WX_PALMOS_EVTLOOP_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/fdrepdlg.h
+// Purpose: wxFindReplaceDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "mswfdrepdlg.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// wxFindReplaceDialog: dialog for searching / replacing text
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxFindReplaceDialog : public wxFindReplaceDialogBase
+{
+public:
+ // ctors and such
+ wxFindReplaceDialog() { Init(); }
+ wxFindReplaceDialog(wxWindow *parent,
+ wxFindReplaceData *data,
+ const wxString &title,
+ int style = 0);
+
+ bool Create(wxWindow *parent,
+ wxFindReplaceData *data,
+ const wxString &title,
+ int style = 0);
+
+ virtual ~wxFindReplaceDialog();
+
+ // implementation only from now on
+
+ wxFindReplaceDialogImpl *GetImpl() const { return m_impl; }
+
+ // override some base class virtuals
+ virtual bool Show(bool show = TRUE);
+ virtual void SetTitle( const wxString& title);
+ virtual wxString GetTitle() const;
+
+protected:
+ virtual void DoGetSize(int *width, int *height) const;
+ virtual void DoGetClientSize(int *width, int *height) const;
+ virtual void DoSetSize(int x, int y,
+ int width, int height,
+ int sizeFlags = wxSIZE_AUTO);
+
+ void Init();
+
+ wxString m_title;
+
+ wxFindReplaceDialogImpl *m_impl;
+
+ DECLARE_DYNAMIC_CLASS(wxFindReplaceDialog)
+ DECLARE_NO_COPY_CLASS(wxFindReplaceDialog)
+};
+
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/filedlg.h
+// Purpose: wxFileDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_FILEDLG_H_
+#define _WX_FILEDLG_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "filedlg.h"
+#endif
+
+//-------------------------------------------------------------------------
+// wxFileDialog
+//-------------------------------------------------------------------------
+
+class WXDLLEXPORT wxFileDialog: public wxFileDialogBase
+{
+public:
+ wxFileDialog(wxWindow *parent,
+ const wxString& message = wxFileSelectorPromptStr,
+ const wxString& defaultDir = wxEmptyString,
+ const wxString& defaultFile = wxEmptyString,
+ const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
+ long style = 0,
+ const wxPoint& pos = wxDefaultPosition);
+
+ virtual void SetPath(const wxString& path);
+ virtual void GetPaths(wxArrayString& paths) const;
+ virtual void GetFilenames(wxArrayString& files) const;
+
+ virtual int ShowModal();
+
+private:
+ wxArrayString m_fileNames;
+
+ DECLARE_DYNAMIC_CLASS(wxFileDialog)
+ DECLARE_NO_COPY_CLASS(wxFileDialog)
+};
+
+#endif // _WX_FILEDLG_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: font.h
+// Purpose: wxFont class
+// Author: William Osborne
+// Modified by:
+// Created: 10/14/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_FONT_H_
+#define _WX_FONT_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "font.h"
+#endif
+
+#include <wx/gdicmn.h>
+
+// ----------------------------------------------------------------------------
+// wxFont
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxFont : public wxFontBase
+{
+public:
+ // ctors and such
+ wxFont() { Init(); }
+ wxFont(const wxFont& font) : wxFontBase(font) { Init(); Ref(font); }
+
+ wxFont(int size,
+ int family,
+ int style,
+ int weight,
+ bool underlined = false,
+ const wxString& face = wxEmptyString,
+ wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
+ {
+ Init();
+
+ (void)Create(size, family, style, weight, underlined, face, encoding);
+ }
+
+ wxFont(const wxSize& pixelSize,
+ int family,
+ int style,
+ int weight,
+ bool underlined = false,
+ const wxString& face = wxEmptyString,
+ wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
+ {
+ Init();
+
+ (void)Create(pixelSize, family, style, weight,
+ underlined, face, encoding);
+ }
+
+ wxFont(const wxNativeFontInfo& info, WXHFONT hFont = 0)
+ {
+ Init();
+
+ Create(info, hFont);
+ }
+
+ wxFont(const wxString& fontDesc);
+
+ bool Create(int size,
+ int family,
+ int style,
+ int weight,
+ bool underlined = false,
+ const wxString& face = wxEmptyString,
+ wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
+ {
+ return DoCreate(size, wxDefaultSize, false, family, style,
+ weight, underlined, face, encoding);
+ }
+
+ bool Create(const wxSize& pixelSize,
+ int family,
+ int style,
+ int weight,
+ bool underlined = false,
+ const wxString& face = wxEmptyString,
+ wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
+ {
+ return DoCreate(-1, pixelSize, true, family, style,
+ weight, underlined, face, encoding);
+ }
+
+ bool Create(const wxNativeFontInfo& info, WXHFONT hFont = 0);
+
+ virtual ~wxFont();
+
+ // assignment
+ wxFont& operator=(const wxFont& font);
+
+ // implement base class pure virtuals
+ virtual int GetPointSize() const;
+ virtual wxSize GetPixelSize() const;
+ virtual bool IsUsingSizeInPixels() const;
+ virtual int GetFamily() const;
+ virtual int GetStyle() const;
+ virtual int GetWeight() const;
+ virtual bool GetUnderlined() const;
+ virtual wxString GetFaceName() const;
+ virtual wxFontEncoding GetEncoding() const;
+ virtual const wxNativeFontInfo *GetNativeFontInfo() const;
+
+ virtual void SetPointSize(int pointSize);
+ virtual void SetPixelSize(const wxSize& pixelSize);
+ virtual void SetFamily(int family);
+ virtual void SetStyle(int style);
+ virtual void SetWeight(int weight);
+ virtual void SetFaceName(const wxString& faceName);
+ virtual void SetUnderlined(bool underlined);
+ virtual void SetEncoding(wxFontEncoding encoding);
+
+ virtual bool IsFixedWidth() const;
+
+ // implementation only from now on
+ // -------------------------------
+
+ virtual bool IsFree() const;
+ virtual bool RealizeResource();
+ virtual WXHANDLE GetResourceHandle() const;
+ virtual bool FreeResource(bool force = false);
+
+ // for consistency with other wxMSW classes
+ WXHFONT GetHFONT() const;
+
+ /*
+ virtual bool UseResource();
+ virtual bool ReleaseResource();
+ */
+
+protected:
+ // real font creation function, used in all cases
+ bool DoCreate(int size,
+ const wxSize& pixelSize,
+ bool sizeUsingPixels,
+ int family,
+ int style,
+ int weight,
+ bool underlined = false,
+ const wxString& face = wxEmptyString,
+ wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
+
+ virtual void DoSetNativeFontInfo(const wxNativeFontInfo& info);
+
+ // common part of all ctors
+ void Init();
+
+ void Unshare();
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxFont)
+};
+
+#endif
+ // _WX_FONT_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: fontdlg.h
+// Purpose: wxFontDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PALMOS_FONTDLG_H_
+#define _WX_PALMOS_FONTDLG_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "fontdlg.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// wxFontDialog
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxFontDialog : public wxFontDialogBase
+{
+public:
+ wxFontDialog() : wxFontDialogBase() { /* must be Create()d later */ }
+ wxFontDialog(wxWindow *parent)
+ : wxFontDialogBase(parent) { Create(parent); }
+ wxFontDialog(wxWindow *parent, const wxFontData& data)
+ : wxFontDialogBase(parent, data) { Create(parent, data); }
+
+ virtual int ShowModal();
+
+ // deprecated interface, don't use
+ wxFontDialog(wxWindow *parent, const wxFontData *data)
+ : wxFontDialogBase(parent, data) { Create(parent, data); }
+
+protected:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxFontDialog)
+};
+
+#endif
+ // _WX_PALMOS_FONTDLG_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: fontenum.h
+// Purpose: wxFontEnumerator class for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_FONTENUM_H_
+#define _WX_FONTENUM_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "fontenum.h"
+#endif
+
+/*
+ * wxFontEnumerator: for gathering font information
+ */
+
+class wxFontEnumerator: public wxObject
+{
+DECLARE_CLASS(wxFontEnumerator)
+public:
+ wxFontEnumerator() {};
+
+ // Enumerate the fonts.
+ bool Enumerate();
+
+ // Stop enumeration if FALSE is returned.
+ // By default, the enumerator stores the facenames in a list for
+ // retrieval via GetFacenames().
+ virtual bool OnFont(const wxFont& font);
+
+ // Return the list of facenames.
+ wxStringList& GetFacenames() { return (wxStringList&) m_faceNames; }
+protected:
+ wxStringList m_faceNames;
+};
+
+#endif
+ // _WX_FONTENUM_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/frame.h
+// Purpose: wxFrame class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_FRAME_H_
+#define _WX_FRAME_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "frame.h"
+#endif
+
+class WXDLLEXPORT wxFrame : public wxFrameBase
+{
+public:
+ // construction
+ wxFrame() { Init(); }
+ wxFrame(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE,
+ const wxString& name = wxFrameNameStr)
+ {
+ Init();
+
+ Create(parent, id, title, pos, size, style, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE,
+ const wxString& name = wxFrameNameStr);
+
+ virtual ~wxFrame();
+
+ // implement base class pure virtuals
+ virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL);
+ virtual void Raise();
+
+ // implementation only from now on
+ // -------------------------------
+
+ // event handlers
+ void OnSysColourChanged(wxSysColourChangedEvent& event);
+ void OnPaint(wxPaintEvent& event);
+
+ // Toolbar
+#if wxUSE_TOOLBAR
+ virtual wxToolBar* CreateToolBar(long style = -1,
+ wxWindowID id = -1,
+ const wxString& name = wxToolBarNameStr);
+
+ virtual void PositionToolBar();
+#endif // wxUSE_TOOLBAR
+
+ // Status bar
+#if wxUSE_STATUSBAR
+ virtual wxStatusBar* OnCreateStatusBar(int number = 1,
+ long style = wxST_SIZEGRIP,
+ wxWindowID id = 0,
+ const wxString& name = wxStatusLineNameStr);
+
+ virtual void PositionStatusBar();
+
+ // Hint to tell framework which status bar to use: the default is to use
+ // native one for the platforms which support it (Win32), the generic one
+ // otherwise
+
+ // TODO: should this go into a wxFrameworkSettings class perhaps?
+ static void UseNativeStatusBar(bool useNative)
+ { m_useNativeStatusBar = useNative; };
+ static bool UsesNativeStatusBar()
+ { return m_useNativeStatusBar; };
+#endif // wxUSE_STATUSBAR
+
+ WXHMENU GetWinMenu() const { return m_hMenu; }
+
+ // event handlers
+ bool HandlePaint();
+ bool HandleSize(int x, int y, WXUINT flag);
+ bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control);
+ bool HandleMenuLoop(const wxEventType& evtType, WXWORD isPopup);
+
+ // tooltip management
+#if wxUSE_TOOLTIPS
+ WXHWND GetToolTipCtrl() const { return m_hwndToolTip; }
+ void SetToolTipCtrl(WXHWND hwndTT) { m_hwndToolTip = hwndTT; }
+#endif // tooltips
+
+ // a MSW only function which sends a size event to the window using its
+ // current size - this has an effect of refreshing the window layout
+ virtual void SendSizeEvent();
+
+ virtual wxPoint GetClientAreaOrigin() const;
+
+#if wxUSE_MENUS_NATIVE
+ bool HandleMenuOpen();
+ bool HandleMenuSelect(int ItemID);
+#endif // wxUSE_MENUS_NATIVE
+
+protected:
+ // common part of all ctors
+ void Init();
+
+ // override base class virtuals
+ virtual void DoGetClientSize(int *width, int *height) const;
+ virtual void DoSetClientSize(int width, int height);
+
+#if wxUSE_MENUS_NATIVE
+ // perform MSW-specific action when menubar is changed
+ virtual void AttachMenuBar(wxMenuBar *menubar);
+
+ // a plug in for MDI frame classes which need to do something special when
+ // the menubar is set
+ virtual void InternalSetMenuBar();
+#endif // wxUSE_MENUS_NATIVE
+
+ // propagate our state change to all child frames
+ void IconizeChildFrames(bool bIconize);
+
+ // we add menu bar accel processing
+ bool MSWTranslateMessage(WXMSG* pMsg);
+
+ // window proc for the frames
+ WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+
+ // handle WM_INITMENUPOPUP message
+ bool HandleInitMenuPopup(WXHMENU hMenu);
+
+ virtual bool IsMDIChild() const { return FALSE; }
+
+ // get default (wxWidgets) icon for the frame
+ virtual WXHICON GetDefaultIcon() const;
+
+#if wxUSE_STATUSBAR
+ static bool m_useNativeStatusBar;
+ wxStatusBar *StatusBar;
+#endif // wxUSE_STATUSBAR
+
+ // Data to save/restore when calling ShowFullScreen
+ int m_fsStatusBarFields; // 0 for no status bar
+ int m_fsStatusBarHeight;
+ int m_fsToolBarHeight;
+
+private:
+#if wxUSE_TOOLTIPS
+ WXHWND m_hwndToolTip;
+#endif // tooltips
+
+ // used by IconizeChildFrames(), see comments there
+ bool m_wasMinimized;
+
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxFrame)
+};
+
+#endif
+ // _WX_FRAME_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: gauge.h
+// Purpose: wxGauge class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _GAUGE_H_
+#define _GAUGE_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "gauge95.h"
+#endif
+
+#if wxUSE_GAUGE
+
+WXDLLEXPORT_DATA(extern const wxChar*) wxGaugeNameStr;
+
+// Group box
+class WXDLLEXPORT wxGauge : public wxGaugeBase
+{
+public:
+ wxGauge() { }
+
+ wxGauge(wxWindow *parent,
+ wxWindowID id,
+ int range,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxGA_HORIZONTAL,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxGaugeNameStr)
+ {
+ (void)Create(parent, id, range, pos, size, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ int range,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxGA_HORIZONTAL,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxGaugeNameStr);
+
+ // set gauge range/value
+ virtual void SetRange(int range);
+ virtual void SetValue(int pos);
+
+ // overriden base class virtuals
+ virtual bool SetForegroundColour(const wxColour& col);
+ virtual bool SetBackgroundColour(const wxColour& col);
+
+protected:
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+ virtual wxSize DoGetBestSize() const;
+
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxGauge)
+};
+
+#endif // wxUSE_GAUGE
+
+#endif
+ // _GAUGE_H_
--- /dev/null
+/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
+/* MinGW w32api specific stuff */
+
+#ifndef _WX_MSW_GCCPRIV_H_
+#define _WX_MSW_GCCPRIV_H_
+
+#if defined(__MINGW32__) && !defined(__GNUWIN32__)
+ #define __GNUWIN32__
+#endif
+
+#if defined( __MINGW32__ ) && !defined(__WINE__) && !defined( HAVE_W32API_H )
+ #if ( __GNUC__ > 2 ) || ( ( __GNUC__ == 2 ) && ( __GNUC_MINOR__ >= 95 ) )
+ #include <_mingw.h>
+ #if __MINGW32_MAJOR_VERSION >= 1
+ #define HAVE_W32API_H
+ #endif
+ #endif
+#elif defined( __CYGWIN__ ) && !defined( HAVE_W32API_H )
+ #if ( __GNUC__ > 2 )
+ #define HAVE_W32API_H
+ #endif
+#endif
+
+#if (defined(__WATCOMC__) && __WATCOMC__ >= 1200)
+ #define HAVE_W32API_H
+#endif
+
+/* check for MinGW/Cygwin w32api version ( releases >= 0.5, only ) */
+#if defined( HAVE_W32API_H )
+#include <w32api.h>
+#endif
+
+/* Watcom can't handle defined(xxx) here: */
+#if defined(__W32API_MAJOR_VERSION) && defined(__W32API_MINOR_VERSION)
+ #define wxCHECK_W32API_VERSION( major, minor ) \
+ ( ( ( __W32API_MAJOR_VERSION > (major) ) \
+ || ( __W32API_MAJOR_VERSION == (major) && __W32API_MINOR_VERSION >= (minor) ) ) )
+#else
+ #define wxCHECK_W32API_VERSION( major, minor ) (0)
+#endif
+
+/* Cygwin / Mingw32 with gcc >= 2.95 use new windows headers which
+ are more ms-like (header author is Anders Norlander, hence the name) */
+#if (defined(__MINGW32__) || defined(__CYGWIN__) || defined(__WINE__)) && ((__GNUC__>2) || ((__GNUC__==2) && (__GNUC_MINOR__>=95)))
+ #ifndef wxUSE_NORLANDER_HEADERS
+ #define wxUSE_NORLANDER_HEADERS 1
+ #endif
+#else
+ #ifndef wxUSE_NORLANDER_HEADERS
+ #define wxUSE_NORLANDER_HEADERS 0
+ #endif
+#endif
+
+/* "old" GNUWIN32 is the one without Norlander's headers: it lacks the
+ standard Win32 headers and we define the used stuff ourselves for it
+ in wx/msw/gnuwin32/extra.h */
+#if defined(__GNUC__) && !wxUSE_NORLANDER_HEADERS
+ #define __GNUWIN32_OLD__
+#endif
+
+/* Cygwin 1.0 */
+#if defined(__CYGWIN__) && ((__GNUC__==2) && (__GNUC_MINOR__==9))
+ #define __CYGWIN10__
+#endif
+
+/* Mingw runtime 1.0-20010604 has some missing _tXXXX functions,
+ so let's define them ourselves: */
+#if defined(__GNUWIN32__) && wxCHECK_W32API_VERSION( 1, 0 ) \
+ && !wxCHECK_W32API_VERSION( 1, 1 )
+ #ifndef _tsetlocale
+ #if wxUSE_UNICODE
+ #define _tsetlocale _wsetlocale
+ #else
+ #define _tsetlocale setlocale
+ #endif
+ #endif
+ #ifndef _tgetenv
+ #if wxUSE_UNICODE
+ #define _tgetenv _wgetenv
+ #else
+ #define _tgetenv getenv
+ #endif
+ #endif
+ #ifndef _tfopen
+ #if wxUSE_UNICODE
+ #define _tfopen _wfopen
+ #else
+ #define _tfopen fopen
+ #endif
+ #endif
+#endif
+
+// current mingw32 headers forget to define _puttchar, this will probably be
+// fixed in the next versions but for now do it ourselves
+#if defined( __MINGW32__ ) && !defined( _puttchar )
+ #ifdef wxUSE_UNICODE
+ #define _puttchar putwchar
+ #else
+ #define _puttchar puttchar
+ #endif
+#endif
+
+
+#endif
+ /* _WX_MSW_GCCPRIV_H_ */
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: include/wx/palmos/gdiimage.h
+// Purpose: wxGDIImage class: base class for wxBitmap, wxIcon, wxCursor
+// under Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// NB: this is a private header, it is not intended to be directly included by
+// user code (but may be included from other, public, wxWin headers
+
+#ifndef _WX_PALMOS_GDIIMAGE_H_
+#define _WX_PALMOS_GDIIMAGE_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "gdiimage.h"
+#endif
+
+#include "wx/gdiobj.h" // base class
+#include "wx/gdicmn.h" // wxBITMAP_TYPE_INVALID
+#include "wx/list.h"
+
+class WXDLLEXPORT wxGDIImageRefData;
+class WXDLLEXPORT wxGDIImageHandler;
+class WXDLLEXPORT wxGDIImage;
+
+WX_DECLARE_EXPORTED_LIST(wxGDIImageHandler, wxGDIImageHandlerList);
+
+// ----------------------------------------------------------------------------
+// wxGDIImageRefData: common data fields for all derived classes
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxGDIImageRefData : public wxGDIRefData
+{
+public:
+ wxGDIImageRefData()
+ {
+ m_width = m_height = m_depth = 0;
+
+ m_handle = 0;
+ }
+
+ // accessors
+ bool IsOk() const { return m_handle != 0; }
+
+ void SetSize(int w, int h) { m_width = w; m_height = h; }
+
+ // free the ressources we allocated
+ virtual void Free() = 0;
+
+ // for compatibility, the member fields are public
+
+ // the size of the image
+ int m_width, m_height;
+
+ // the depth of the image
+ int m_depth;
+
+ // the handle to it
+ union
+ {
+ WXHANDLE m_handle; // for untyped access
+ WXHBITMAP m_hBitmap;
+ WXHICON m_hIcon;
+ WXHCURSOR m_hCursor;
+ };
+};
+
+// ----------------------------------------------------------------------------
+// wxGDIImageHandler: a class which knows how to load/save wxGDIImages.
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxGDIImageHandler : public wxObject
+{
+public:
+ // ctor
+ wxGDIImageHandler() { m_type = wxBITMAP_TYPE_INVALID; }
+ wxGDIImageHandler(const wxString& name,
+ const wxString& ext,
+ long type)
+ : m_name(name), m_extension(ext)
+ {
+ m_type = type;
+ }
+
+ // accessors
+ void SetName(const wxString& name) { m_name = name; }
+ void SetExtension(const wxString& ext) { m_extension = ext; }
+ void SetType(long type) { m_type = type; }
+
+ wxString GetName() const { return m_name; }
+ wxString GetExtension() const { return m_extension; }
+ long GetType() const { return m_type; }
+
+ // real handler operations: to implement in derived classes
+ virtual bool Create(wxGDIImage *image,
+ void *data,
+ long flags,
+ int width, int height, int depth = 1) = 0;
+ virtual bool Load(wxGDIImage *image,
+ const wxString& name,
+ long flags,
+ int desiredWidth, int desiredHeight) = 0;
+ virtual bool Save(wxGDIImage *image,
+ const wxString& name,
+ int type) = 0;
+
+protected:
+ wxString m_name;
+ wxString m_extension;
+ long m_type;
+};
+
+// ----------------------------------------------------------------------------
+// wxGDIImage: this class supports GDI image handlers which may be registered
+// dynamically and will be used for loading/saving the images in the specified
+// format. It also falls back to wxImage if no appropriate image is found.
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxGDIImage : public wxGDIObject
+{
+public:
+ // handlers list interface
+ static wxGDIImageHandlerList& GetHandlers() { return ms_handlers; }
+
+ static void AddHandler(wxGDIImageHandler *handler);
+ static void InsertHandler(wxGDIImageHandler *handler);
+ static bool RemoveHandler(const wxString& name);
+
+ static wxGDIImageHandler *FindHandler(const wxString& name);
+ static wxGDIImageHandler *FindHandler(const wxString& extension, long type);
+ static wxGDIImageHandler *FindHandler(long type);
+
+ static void InitStandardHandlers();
+ static void CleanUpHandlers();
+
+ // access to the ref data casted to the right type
+ wxGDIImageRefData *GetGDIImageData() const
+ { return (wxGDIImageRefData *)m_refData; }
+
+ // create data if we don't have it yet
+ void EnsureHasData() { if ( IsNull() ) m_refData = CreateData(); }
+
+ // accessors
+ WXHANDLE GetHandle() const
+ { return IsNull() ? 0 : GetGDIImageData()->m_handle; }
+ void SetHandle(WXHANDLE handle)
+ { EnsureHasData(); GetGDIImageData()->m_handle = handle; }
+
+ bool Ok() const { return GetHandle() != 0; }
+
+ int GetWidth() const { return IsNull() ? 0 : GetGDIImageData()->m_width; }
+ int GetHeight() const { return IsNull() ? 0 : GetGDIImageData()->m_height; }
+ int GetDepth() const { return IsNull() ? 0 : GetGDIImageData()->m_depth; }
+
+ void SetWidth(int w) { EnsureHasData(); GetGDIImageData()->m_width = w; }
+ void SetHeight(int h) { EnsureHasData(); GetGDIImageData()->m_height = h; }
+ void SetDepth(int d) { EnsureHasData(); GetGDIImageData()->m_depth = d; }
+
+ void SetSize(int w, int h)
+ {
+ EnsureHasData();
+ GetGDIImageData()->SetSize(w, h);
+ }
+ void SetSize(const wxSize& size) { SetSize(size.x, size.y); }
+
+ // forward some of base class virtuals to wxGDIImageRefData
+ bool FreeResource(bool force = FALSE);
+ virtual WXHANDLE GetResourceHandle() const;
+
+protected:
+ // create the data for the derived class here
+ virtual wxGDIImageRefData *CreateData() const = 0;
+
+ static wxGDIImageHandlerList ms_handlers;
+};
+
+#endif // _WX_PALMOS_GDIIMAGE_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/gdiobj.h
+// Purpose: wxGDIObject class: base class for other GDI classes
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_GDIOBJ_H_
+#define _WX_GDIOBJ_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "gdiobj.h"
+#endif
+
+#include "wx/object.h" // base class
+
+// ----------------------------------------------------------------------------
+// wxGDIRefData is the base class for wxXXXData structures which contain the
+// real data for the GDI object and are shared among all wxWin objects sharing
+// the same native GDI object
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxGDIRefData : public wxObjectRefData
+{
+ // this class is intentionally left blank
+};
+
+// ----------------------------------------------------------------------------
+// wxGDIObject
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxGDIObject : public wxObject
+{
+public:
+ wxGDIObject() { m_visible = FALSE; };
+
+ // Creates the resource
+ virtual bool RealizeResource() { return FALSE; };
+
+ // Frees the resource
+ virtual bool FreeResource(bool WXUNUSED(force) = FALSE) { return FALSE; }
+
+ virtual bool IsFree() const { return FALSE; }
+
+ bool IsNull() const { return (m_refData == 0); }
+
+ // Returns handle.
+ virtual WXHANDLE GetResourceHandle() const { return 0; }
+
+ virtual bool GetVisible() { return m_visible; }
+ virtual void SetVisible(bool v) { m_visible = v; }
+
+protected:
+ bool m_visible; // TRUE only if we should delete this object ourselves
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxGDIObject)
+};
+
+#endif
+ // _WX_GDIOBJ_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/glcanvas.h
+// Purpose: wxGLCanvas, for using OpenGL with wxWidgets under Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "glcanvas.h"
+#endif
+
+#ifndef _WX_GLCANVAS_H_
+#define _WX_GLCANVAS_H_
+
+#include "wx/palette.h"
+#include "wx/scrolwin.h"
+
+#include <windows.h>
+#include "wx/msw/winundef.h"
+
+#include <GL/gl.h>
+
+//---------------------------------------------------------------------------
+// Constants for attriblist
+//---------------------------------------------------------------------------
+
+// The generic GL implementation doesn't support most of these options,
+// such as stereo, auxiliary buffers, alpha channel, and accum buffer.
+// Other implementations may actually support them.
+
+enum
+{
+ WX_GL_RGBA=1, /* use true color palette */
+ WX_GL_BUFFER_SIZE, /* bits for buffer if not WX_GL_RGBA */
+ WX_GL_LEVEL, /* 0 for main buffer, >0 for overlay, <0 for underlay */
+ WX_GL_DOUBLEBUFFER, /* use doublebuffer */
+ WX_GL_STEREO, /* use stereoscopic display */
+ WX_GL_AUX_BUFFERS, /* number of auxiliary buffers */
+ WX_GL_MIN_RED, /* use red buffer with most bits (> MIN_RED bits) */
+ WX_GL_MIN_GREEN, /* use green buffer with most bits (> MIN_GREEN bits) */
+ WX_GL_MIN_BLUE, /* use blue buffer with most bits (> MIN_BLUE bits) */
+ WX_GL_MIN_ALPHA, /* use blue buffer with most bits (> MIN_ALPHA bits) */
+ WX_GL_DEPTH_SIZE, /* bits for Z-buffer (0,16,32) */
+ WX_GL_STENCIL_SIZE, /* bits for stencil buffer */
+ WX_GL_MIN_ACCUM_RED, /* use red accum buffer with most bits (> MIN_ACCUM_RED bits) */
+ WX_GL_MIN_ACCUM_GREEN, /* use green buffer with most bits (> MIN_ACCUM_GREEN bits) */
+ WX_GL_MIN_ACCUM_BLUE, /* use blue buffer with most bits (> MIN_ACCUM_BLUE bits) */
+ WX_GL_MIN_ACCUM_ALPHA /* use blue buffer with most bits (> MIN_ACCUM_ALPHA bits) */
+};
+
+class WXDLLIMPEXP_GL wxGLCanvas; /* forward reference */
+
+class WXDLLIMPEXP_GL wxGLContext: public wxObject
+{
+public:
+ wxGLContext(bool isRGB, wxGLCanvas *win, const wxPalette& palette = wxNullPalette);
+
+ wxGLContext( bool isRGB, wxGLCanvas *win,
+ const wxPalette& WXUNUSED(palette),
+ const wxGLContext *other /* for sharing display lists */ );
+
+ ~wxGLContext();
+
+
+ void SetCurrent();
+
+ void SetColour(const wxChar *colour);
+
+ void SwapBuffers();
+
+
+ inline wxWindow* GetWindow() const { return m_window; }
+
+ inline WXHDC GetHDC() const { return m_hDC; }
+
+ inline HGLRC GetGLRC() const { return m_glContext; }
+
+public:
+ HGLRC m_glContext;
+ WXHDC m_hDC;
+ wxWindow* m_window;
+};
+
+class WXDLLIMPEXP_GL wxGLCanvas: public wxWindow
+{
+ DECLARE_CLASS(wxGLCanvas)
+public:
+ wxGLCanvas(wxWindow *parent, wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = 0,
+ const wxString& name = wxGLCanvasName, int *attribList = 0,
+ const wxPalette& palette = wxNullPalette);
+
+ wxGLCanvas(wxWindow *parent,
+ const wxGLContext *shared = (wxGLContext *) NULL,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxGLCanvasName,
+ int *attribList = (int *) NULL,
+ const wxPalette& palette = wxNullPalette);
+
+ wxGLCanvas(wxWindow *parent,
+ const wxGLCanvas *shared = (wxGLCanvas *)NULL,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxGLCanvasName,
+ int *attribList = 0,
+ const wxPalette& palette = wxNullPalette);
+
+ ~wxGLCanvas();
+
+ // Replaces wxWindow::Create functionality, since
+ // we need to use a different window class
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos, const wxSize& size,
+ long style, const wxString& name);
+
+ void SetCurrent();
+
+#ifdef __WXUNIVERSAL__
+ virtual bool SetCurrent(bool doit) { return wxWindow::SetCurrent(doit); };
+#endif
+
+ void SetColour(const wxChar *colour);
+
+ void SwapBuffers();
+
+ void OnSize(wxSizeEvent& event);
+
+ void OnQueryNewPalette(wxQueryNewPaletteEvent& event);
+
+ void OnPaletteChanged(wxPaletteChangedEvent& event);
+
+ inline wxGLContext* GetContext() const { return m_glContext; }
+
+ inline WXHDC GetHDC() const { return m_hDC; }
+
+ void SetupPixelFormat(int *attribList = (int *) NULL);
+
+ void SetupPalette(const wxPalette& palette);
+
+ wxPalette CreateDefaultPalette();
+
+ inline wxPalette* GetPalette() const { return (wxPalette *) &m_palette; }
+
+protected:
+ wxGLContext* m_glContext; // this is typedef-ed ptr, in fact
+ wxPalette m_palette;
+ WXHDC m_hDC;
+
+ DECLARE_EVENT_TABLE()
+};
+
+#endif
+ // _WX_GLCANVAS_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: helpwin.h
+// Purpose: Help system: WinHelp implementation
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_HELP_H_
+#define _WX_HELP_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "help.h"
+#endif
+
+#include "wx/wx.h"
+
+#if wxUSE_HELP
+
+#include "wx/helpbase.h"
+
+class WXDLLEXPORT wxPalmHelpController: public wxHelpControllerBase
+{
+ DECLARE_CLASS(wxPalmHelpController)
+
+public:
+ wxPalmHelpController() {};
+ ~wxPalmHelpController() {};
+
+ // Must call this to set the filename
+ virtual bool Initialize(const wxString& file);
+ virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) { return Initialize( file ); }
+
+ // If file is "", reloads file given in Initialize
+ virtual bool LoadFile(const wxString& file = wxEmptyString);
+ virtual bool DisplayContents();
+ virtual bool DisplaySection(int sectionNo);
+ virtual bool DisplaySection(const wxString& section) { return KeywordSearch(section); }
+ virtual bool DisplayBlock(long blockNo);
+ virtual bool DisplayContextPopup(int contextId);
+ virtual bool KeywordSearch(const wxString& k,
+ wxHelpSearchMode mode = wxHELP_SEARCH_ALL);
+ virtual bool Quit();
+
+ inline wxString GetHelpFile() const { return m_helpFile; }
+
+protected:
+ // Append extension if necessary.
+ wxString GetValidFilename(const wxString& file) const;
+
+private:
+ wxString m_helpFile;
+};
+
+#endif // wxUSE_HELP
+#endif
+// _WX_HELP_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/icon.h
+// Purpose: wxIcon class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_ICON_H_
+#define _WX_ICON_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "icon.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "wx/palmos/gdiimage.h"
+
+// ---------------------------------------------------------------------------
+// icon data
+// ---------------------------------------------------------------------------
+
+// notice that although wxIconRefData inherits from wxBitmapRefData, it is not
+// a valid wxBitmapRefData
+class WXDLLEXPORT wxIconRefData : public wxGDIImageRefData
+{
+public:
+ wxIconRefData() { }
+ virtual ~wxIconRefData() { Free(); }
+
+ virtual void Free();
+};
+
+// ---------------------------------------------------------------------------
+// Icon
+// ---------------------------------------------------------------------------
+
+class WXDLLEXPORT wxIcon : public wxGDIImage
+{
+public:
+ // ctors
+ // default
+ wxIcon() { }
+
+ // copy
+ wxIcon(const wxIcon& icon) { Ref(icon); }
+
+ // from raw data
+ wxIcon(const char bits[], int width, int height);
+
+ // from XPM data
+ wxIcon(const char **data) { CreateIconFromXpm(data); }
+
+ wxIcon(char **data) { CreateIconFromXpm((const char **)data); }
+
+ // from resource/file
+ wxIcon(const wxString& name,
+ long type = wxBITMAP_TYPE_ICO_RESOURCE,
+ int desiredWidth = -1, int desiredHeight = -1);
+
+ wxIcon(const wxIconLocation& loc);
+
+ virtual ~wxIcon();
+
+ virtual bool LoadFile(const wxString& name,
+ long type = wxBITMAP_TYPE_ICO_RESOURCE,
+ int desiredWidth = -1, int desiredHeight = -1);
+
+ wxIcon& operator = (const wxIcon& icon)
+ { if ( *this != icon ) Ref(icon); return *this; }
+ bool operator == (const wxIcon& icon) const
+ { return m_refData == icon.m_refData; }
+ bool operator != (const wxIcon& icon) const
+ { return m_refData != icon.m_refData; }
+
+ // implementation only from now on
+ wxIconRefData *GetIconData() const { return (wxIconRefData *)m_refData; }
+
+ void SetHICON(WXHICON icon) { SetHandle((WXHANDLE)icon); }
+ WXHICON GetHICON() const { return (WXHICON)GetHandle(); }
+
+ // create from bitmap (which should have a mask unless it's monochrome):
+ // there shouldn't be any implicit bitmap -> icon conversion (i.e. no
+ // ctors, assignment operators...), but it's ok to have such function
+ void CopyFromBitmap(const wxBitmap& bmp);
+
+protected:
+ virtual wxGDIImageRefData *CreateData() const
+ {
+ return new wxIconRefData;
+ }
+
+ // create from XPM data
+ void CreateIconFromXpm(const char **data);
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxIcon)
+};
+
+#endif
+ // _WX_ICON_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/imaglist.h
+// Purpose: wxImageList class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_IMAGLIST_H_
+#define _WX_IMAGLIST_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "imaglist.h"
+#endif
+
+#include "wx/bitmap.h"
+
+/*
+ * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to
+ * images for their items by an index into an image list.
+ * A wxImageList is capable of creating images with optional masks from
+ * a variety of sources - a single bitmap plus a colour to indicate the mask,
+ * two bitmaps, or an icon.
+ *
+ * Image lists can also create and draw images used for drag and drop functionality.
+ * This is not yet implemented in wxImageList. We need to discuss a generic API
+ * for doing drag and drop and see whether it ties in with the Win95 view of it.
+ * See below for candidate functions and an explanation of how they might be
+ * used.
+ */
+
+// Flags for Draw
+#define wxIMAGELIST_DRAW_NORMAL 0x0001
+#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002
+#define wxIMAGELIST_DRAW_SELECTED 0x0004
+#define wxIMAGELIST_DRAW_FOCUSED 0x0008
+
+// Flag values for Set/GetImageList
+enum {
+ wxIMAGE_LIST_NORMAL, // Normal icons
+ wxIMAGE_LIST_SMALL, // Small icons
+ wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation)
+};
+
+// Eventually we'll make this a reference-counted wxGDIObject. For
+// now, the app must take care of ownership issues. That is, the
+// image lists must be explicitly deleted after the control(s) that uses them
+// is (are) deleted, or when the app exits.
+class WXDLLEXPORT wxImageList : public wxObject
+{
+public:
+ /*
+ * Public interface
+ */
+
+ wxImageList();
+
+ // Creates an image list.
+ // Specify the width and height of the images in the list,
+ // whether there are masks associated with them (e.g. if creating images
+ // from icons), and the initial size of the list.
+ wxImageList(int width, int height, bool mask = TRUE, int initialCount = 1)
+ {
+ Create(width, height, mask, initialCount);
+ }
+ ~wxImageList();
+
+
+ // Attributes
+ ////////////////////////////////////////////////////////////////////////////
+
+ // Returns the number of images in the image list.
+ int GetImageCount() const;
+
+ // Returns the size (same for all images) of the images in the list
+ bool GetSize(int index, int &width, int &height) const;
+
+ // Operations
+ ////////////////////////////////////////////////////////////////////////////
+
+ // Creates an image list
+ // width, height specify the size of the images in the list (all the same).
+ // mask specifies whether the images have masks or not.
+ // initialNumber is the initial number of images to reserve.
+ bool Create(int width, int height, bool mask = TRUE, int initialNumber = 1);
+
+ // Adds a bitmap, and optionally a mask bitmap.
+ // Note that wxImageList creates *new* bitmaps, so you may delete
+ // 'bitmap' and 'mask' after calling Add.
+ int Add(const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap);
+
+ // Adds a bitmap, using the specified colour to create the mask bitmap
+ // Note that wxImageList creates *new* bitmaps, so you may delete
+ // 'bitmap' after calling Add.
+ int Add(const wxBitmap& bitmap, const wxColour& maskColour);
+
+ // Adds a bitmap and mask from an icon.
+ int Add(const wxIcon& icon);
+
+ // Replaces a bitmap, optionally passing a mask bitmap.
+ // Note that wxImageList creates new bitmaps, so you may delete
+ // 'bitmap' and 'mask' after calling Replace.
+ bool Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap);
+
+/* Not supported by Win95
+ // Replacing a bitmap, using the specified colour to create the mask bitmap
+ // Note that wxImageList creates new bitmaps, so you may delete
+ // 'bitmap'.
+ bool Replace(int index, const wxBitmap& bitmap, const wxColour& maskColour);
+*/
+
+ // Replaces a bitmap and mask from an icon.
+ // You can delete 'icon' after calling Replace.
+ bool Replace(int index, const wxIcon& icon);
+
+ // Removes the image at the given index.
+ bool Remove(int index);
+
+ // Remove all images
+ bool RemoveAll();
+
+ // Draws the given image on a dc at the specified position.
+ // If 'solidBackground' is TRUE, Draw sets the image list background
+ // colour to the background colour of the wxDC, to speed up
+ // drawing by eliminating masked drawing where possible.
+ bool Draw(int index, wxDC& dc, int x, int y,
+ int flags = wxIMAGELIST_DRAW_NORMAL,
+ bool solidBackground = FALSE);
+
+ // TODO: miscellaneous functionality
+/*
+ wxIcon *MakeIcon(int index);
+ bool SetOverlayImage(int index, int overlayMask);
+
+*/
+
+ // TODO: Drag-and-drop related functionality.
+
+#if 0
+ // Creates a new drag image by combining the given image (typically a mouse cursor image)
+ // with the current drag image.
+ bool SetDragCursorImage(int index, const wxPoint& hotSpot);
+
+ // If successful, returns a pointer to the temporary image list that is used for dragging;
+ // otherwise, NULL.
+ // dragPos: receives the current drag position.
+ // hotSpot: receives the offset of the drag image relative to the drag position.
+ static wxImageList *GetDragImageList(wxPoint& dragPos, wxPoint& hotSpot);
+
+ // Call this function to begin dragging an image. This function creates a temporary image list
+ // that is used for dragging. The image combines the specified image and its mask with the
+ // current cursor. In response to subsequent mouse move messages, you can move the drag image
+ // by using the DragMove member function. To end the drag operation, you can use the EndDrag
+ // member function.
+ bool BeginDrag(int index, const wxPoint& hotSpot);
+
+ // Ends a drag operation.
+ bool EndDrag();
+
+ // Call this function to move the image that is being dragged during a drag-and-drop operation.
+ // This function is typically called in response to a mouse move message. To begin a drag
+ // operation, use the BeginDrag member function.
+ static bool DragMove(const wxPoint& point);
+
+ // During a drag operation, locks updates to the window specified by lockWindow and displays
+ // the drag image at the position specified by point.
+ // The coordinates are relative to the window's upper left corner, so you must compensate
+ // for the widths of window elements, such as the border, title bar, and menu bar, when
+ // specifying the coordinates.
+ // If lockWindow is NULL, this function draws the image in the display context associated
+ // with the desktop window, and coordinates are relative to the upper left corner of the screen.
+ // This function locks all other updates to the given window during the drag operation.
+ // If you need to do any drawing during a drag operation, such as highlighting the target
+ // of a drag-and-drop operation, you can temporarily hide the dragged image by using the
+ // wxImageList::DragLeave function.
+
+ // lockWindow: pointer to the window that owns the drag image.
+ // point: position at which to display the drag image. Coordinates are relative to the
+ // upper left corner of the window (not the client area).
+
+ static bool DragEnter( wxWindow *lockWindow, const wxPoint& point );
+
+ // Unlocks the window specified by pWndLock and hides the drag image, allowing the
+ // window to be updated.
+ static bool DragLeave( wxWindow *lockWindow );
+
+ /* Here's roughly how you'd use these functions if implemented in this Win95-like way:
+
+ 1) Starting to drag:
+
+ wxImageList *dragImageList = new wxImageList(16, 16, TRUE);
+ dragImageList->Add(myDragImage); // Provide an image to combine with the current cursor
+ dragImageList->BeginDrag(0, wxPoint(0, 0));
+ wxShowCursor(FALSE); // wxShowCursor not yet implemented in wxWin
+ myWindow->CaptureMouse();
+
+ 2) Dragging:
+
+ // Called within mouse move event. Could also use dragImageList instead of assuming
+ // these are static functions.
+ // These two functions could possibly be combined into one, since DragEnter is
+ // a bit obscure.
+ wxImageList::DragMove(wxPoint(x, y)); // x, y are current cursor position
+ wxImageList::DragEnter(NULL, wxPoint(x, y)); // NULL assumes dragging across whole screen
+
+ 3) Finishing dragging:
+
+ dragImageList->EndDrag();
+ myWindow->ReleaseMouse();
+ wxShowCursor(TRUE);
+*/
+
+#endif
+
+ // Implementation
+ ////////////////////////////////////////////////////////////////////////////
+
+ // Returns the native image list handle
+ WXHIMAGELIST GetHIMAGELIST() const { return m_hImageList; }
+
+protected:
+ WXHIMAGELIST m_hImageList;
+
+ DECLARE_DYNAMIC_CLASS(wxImageList)
+};
+
+#endif
+ // _WX_IMAGLIST_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: include/wx/palmos/iniconf.h
+// Purpose: INI-file based wxConfigBase implementation
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _INICONF_H
+#define _INICONF_H
+
+// ----------------------------------------------------------------------------
+// wxIniConfig is a wxConfig implementation which uses MS Windows INI files to
+// store the data. Because INI files don't really support arbitrary nesting of
+// groups, we do the following:
+// (1) in win.ini file we store all entries in the [vendor] section and
+// the value group1/group2/key is mapped to the value group1_group2_key
+// in this section, i.e. all path separators are replaced with underscore
+// (2) in appname.ini file we map group1/group2/group3/key to the entry
+// group2_group3_key in [group1]
+//
+// Of course, it might lead to indesirable results if '_' is also used in key
+// names (i.e. group/key is the same as group_key) and also GetPath() result
+// may be not what you would expect it to be.
+//
+// Another limitation: the keys and section names are never case-sensitive
+// which might differ from wxFileConfig it it was compiled with
+// wxCONFIG_CASE_SENSITIVE option.
+// ----------------------------------------------------------------------------
+
+// for this class, "local" file is the file appname.ini and the global file
+// is the [vendor] subsection of win.ini (default for "vendor" is to be the
+// same as appname). The file name (strAppName parameter) may, in fact,
+// contain the full path to the file. If it doesn't, the file is searched for
+// in the Windows directory.
+class WXDLLEXPORT wxIniConfig : public wxConfigBase
+{
+public:
+ // ctor & dtor
+ // if strAppName doesn't contain the extension and is not an absolute path,
+ // ".ini" is appended to it. if strVendor is empty, it's taken to be the
+ // same as strAppName.
+ wxIniConfig(const wxString& strAppName = wxEmptyString, const wxString& strVendor = wxEmptyString,
+ const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString, long style = wxCONFIG_USE_LOCAL_FILE);
+ virtual ~wxIniConfig();
+
+ // implement inherited pure virtual functions
+ virtual void SetPath(const wxString& strPath);
+ virtual const wxString& GetPath() const;
+
+ virtual bool GetFirstGroup(wxString& str, long& lIndex) const;
+ virtual bool GetNextGroup (wxString& str, long& lIndex) const;
+ virtual bool GetFirstEntry(wxString& str, long& lIndex) const;
+ virtual bool GetNextEntry (wxString& str, long& lIndex) const;
+
+ virtual size_t GetNumberOfEntries(bool bRecursive = FALSE) const;
+ virtual size_t GetNumberOfGroups(bool bRecursive = FALSE) const;
+
+ virtual bool HasGroup(const wxString& strName) const;
+ virtual bool HasEntry(const wxString& strName) const;
+
+ // return TRUE if the current group is empty
+ bool IsEmpty() const;
+
+ virtual bool Flush(bool bCurrentOnly = FALSE);
+
+ virtual bool RenameEntry(const wxString& oldName, const wxString& newName);
+ virtual bool RenameGroup(const wxString& oldName, const wxString& newName);
+
+ virtual bool DeleteEntry(const wxString& Key, bool bGroupIfEmptyAlso = TRUE);
+ virtual bool DeleteGroup(const wxString& szKey);
+ virtual bool DeleteAll();
+
+protected:
+ // read/write
+ bool DoReadString(const wxString& key, wxString *pStr) const;
+ bool DoReadLong(const wxString& key, long *plResult) const;
+
+ bool DoWriteString(const wxString& key, const wxString& szValue);
+ bool DoWriteLong(const wxString& key, long lValue);
+
+private:
+ // helpers
+ wxString GetPrivateKeyName(const wxString& szKey) const;
+ wxString GetKeyName(const wxString& szKey) const;
+
+ wxString m_strLocalFilename; // name of the private INI file
+ wxString m_strGroup, // current group in appname.ini file
+ m_strPath; // the rest of the path (no trailing '_'!)
+};
+
+#endif //_INICONF_H
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: joystick.h
+// Purpose: wxJoystick class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_JOYSTICK_H_
+#define _WX_JOYSTICK_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "joystick.h"
+#endif
+
+#include "wx/event.h"
+
+class WXDLLIMPEXP_ADV wxJoystick: public wxObject
+{
+ DECLARE_DYNAMIC_CLASS(wxJoystick)
+ public:
+ /*
+ * Public interface
+ */
+
+ wxJoystick(int joystick = wxJOYSTICK1);
+
+ // Attributes
+ ////////////////////////////////////////////////////////////////////////////
+
+ wxPoint GetPosition(void) const;
+ int GetZPosition(void) const;
+ int GetButtonState(void) const;
+ int GetPOVPosition(void) const;
+ int GetPOVCTSPosition(void) const;
+ int GetRudderPosition(void) const;
+ int GetUPosition(void) const;
+ int GetVPosition(void) const;
+ int GetMovementThreshold(void) const;
+ void SetMovementThreshold(int threshold) ;
+
+ // Capabilities
+ ////////////////////////////////////////////////////////////////////////////
+
+ static int GetNumberJoysticks(void);
+
+ bool IsOk(void) const; // Checks that the joystick is functioning
+ int GetManufacturerId(void) const ;
+ int GetProductId(void) const ;
+ wxString GetProductName(void) const ;
+ int GetXMin(void) const;
+ int GetYMin(void) const;
+ int GetZMin(void) const;
+ int GetXMax(void) const;
+ int GetYMax(void) const;
+ int GetZMax(void) const;
+ int GetNumberButtons(void) const;
+ int GetNumberAxes(void) const;
+ int GetMaxButtons(void) const;
+ int GetMaxAxes(void) const;
+ int GetPollingMin(void) const;
+ int GetPollingMax(void) const;
+ int GetRudderMin(void) const;
+ int GetRudderMax(void) const;
+ int GetUMin(void) const;
+ int GetUMax(void) const;
+ int GetVMin(void) const;
+ int GetVMax(void) const;
+
+ bool HasRudder(void) const;
+ bool HasZ(void) const;
+ bool HasU(void) const;
+ bool HasV(void) const;
+ bool HasPOV(void) const;
+ bool HasPOV4Dir(void) const;
+ bool HasPOVCTS(void) const;
+
+ // Operations
+ ////////////////////////////////////////////////////////////////////////////
+
+ // pollingFreq = 0 means that movement events are sent when above the threshold.
+ // If pollingFreq > 0, events are received every this many milliseconds.
+ bool SetCapture(wxWindow* win, int pollingFreq = 0);
+ bool ReleaseCapture(void);
+
+protected:
+ int m_joystick;
+};
+
+#endif
+ // _WX_JOYSTICK_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/listbox.h
+// Purpose: wxListBox class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_LISTBOX_H_
+#define _WX_LISTBOX_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "listbox.h"
+#endif
+
+#if wxUSE_LISTBOX
+
+// ----------------------------------------------------------------------------
+// simple types
+// ----------------------------------------------------------------------------
+
+#if wxUSE_OWNER_DRAWN
+ class WXDLLEXPORT wxOwnerDrawn;
+
+ // define the array of list box items
+ #include "wx/dynarray.h"
+
+ WX_DEFINE_EXPORTED_ARRAY_PTR(wxOwnerDrawn *, wxListBoxItemsArray);
+#endif // wxUSE_OWNER_DRAWN
+
+// forward decl for GetSelections()
+class wxArrayInt;
+
+// ----------------------------------------------------------------------------
+// List box control
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxListBox : public wxListBoxBase
+{
+public:
+ // ctors and such
+ wxListBox();
+ wxListBox(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxListBoxNameStr)
+ {
+ Create(parent, id, pos, size, n, choices, style, validator, name);
+ }
+ wxListBox(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxListBoxNameStr)
+ {
+ Create(parent, id, pos, size, choices, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxListBoxNameStr);
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxListBoxNameStr);
+
+ virtual ~wxListBox();
+
+ // implement base class pure virtuals
+ virtual void Clear();
+ virtual void Delete(int n);
+
+ virtual int GetCount() const;
+ virtual wxString GetString(int n) const;
+ virtual void SetString(int n, const wxString& s);
+ virtual int FindString(const wxString& s) const;
+
+ virtual bool IsSelected(int n) const;
+ virtual void SetSelection(int n, bool select = TRUE);
+ virtual int GetSelection() const;
+ virtual int GetSelections(wxArrayInt& aSelections) const;
+
+ virtual int DoAppend(const wxString& item);
+ virtual void DoInsertItems(const wxArrayString& items, int pos);
+ virtual void DoSetItems(const wxArrayString& items, void **clientData);
+
+ virtual void DoSetFirstItem(int n);
+
+ virtual void DoSetItemClientData(int n, void* clientData);
+ virtual void* DoGetItemClientData(int n) const;
+ virtual void DoSetItemClientObject(int n, wxClientData* clientData);
+ virtual wxClientData* DoGetItemClientObject(int n) const;
+
+ // wxCheckListBox support
+#if wxUSE_OWNER_DRAWN
+ bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item);
+ bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
+
+ // plug-in for derived classes
+ virtual wxOwnerDrawn *CreateLboxItem(size_t n);
+
+ // allows to get the item and use SetXXX functions to set it's appearance
+ wxOwnerDrawn *GetItem(size_t n) const { return m_aItems[n]; }
+
+ // get the index of the given item
+ int GetItemIndex(wxOwnerDrawn *item) const { return m_aItems.Index(item); }
+#endif // wxUSE_OWNER_DRAWN
+
+ // Windows-specific code to set the horizontal extent of the listbox, if
+ // necessary. If s is non-NULL, it's used to calculate the horizontal
+ // extent. Otherwise, all strings are used.
+ virtual void SetHorizontalExtent(const wxString& s = wxEmptyString);
+
+ // Windows callbacks
+ bool MSWCommand(WXUINT param, WXWORD id);
+
+ virtual wxVisualAttributes GetDefaultAttributes() const
+ {
+ return GetClassDefaultAttributes(GetWindowVariant());
+ }
+
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL)
+ {
+ return GetCompositeControlsDefaultAttributes(variant);
+ }
+
+protected:
+ WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+ // free memory (common part of Clear() and dtor)
+ void Free();
+
+ int m_noItems;
+ int m_selected;
+
+ virtual wxSize DoGetBestSize() const;
+
+#if wxUSE_OWNER_DRAWN
+ // control items
+ wxListBoxItemsArray m_aItems;
+#endif
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxListBox)
+};
+
+#endif // wxUSE_LISTBOX
+
+#endif
+ // _WX_LISTBOX_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/listctrl.h
+// Purpose: wxListCtrl class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_LISTCTRL_H_
+#define _WX_LISTCTRL_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "listctrl.h"
+#endif
+
+#if wxUSE_LISTCTRL
+
+#include "wx/control.h"
+#include "wx/event.h"
+#include "wx/hash.h"
+#include "wx/textctrl.h"
+
+
+class WXDLLEXPORT wxImageList;
+
+/*
+ The wxListCtrl can show lists of items in four different modes:
+ wxLC_LIST: multicolumn list view, with optional small icons (icons could be
+ optional for some platforms). Columns are computed automatically,
+ i.e. you don't set columns as in wxLC_REPORT. In other words,
+ the list wraps, unlike a wxListBox.
+ wxLC_REPORT: single or multicolumn report view (with optional header)
+ wxLC_ICON: large icon view, with optional labels
+ wxLC_SMALL_ICON: small icon view, with optional labels
+
+ You can change the style dynamically, either with SetSingleStyle or
+ SetWindowStyleFlag.
+
+ Further window styles:
+
+ wxLC_ALIGN_TOP icons align to the top (default)
+ wxLC_ALIGN_LEFT icons align to the left
+ wxLC_AUTOARRANGE icons arrange themselves
+ wxLC_USER_TEXT the app provides label text on demand, except for column headers
+ wxLC_EDIT_LABELS labels are editable: app will be notified.
+ wxLC_NO_HEADER no header in report mode
+ wxLC_NO_SORT_HEADER can't click on header
+ wxLC_SINGLE_SEL single selection
+ wxLC_SORT_ASCENDING sort ascending (must still supply a comparison callback in SortItems)
+ wxLC_SORT_DESCENDING sort descending (ditto)
+
+ Items are referred to by their index (position in the list starting from zero).
+
+ Label text is supplied via insertion/setting functions and is stored by the
+ control, unless the wxLC_USER_TEXT style has been specified, in which case
+ the app will be notified when text is required (see sample).
+
+ Images are dealt with by (optionally) associating 3 image lists with the control.
+ Zero-based indexes into these image lists indicate which image is to be used for
+ which item. Each image in an image list can contain a mask, and can be made out
+ of either a bitmap, two bitmaps or an icon. See ImagList.h for more details.
+
+ Notifications are passed via the wxWidgets 2.0 event system, or using virtual
+ functions in wxWidgets 1.66.
+
+ See the sample wxListCtrl app for API usage.
+
+ TODO:
+ - addition of further convenience functions
+ to avoid use of wxListItem in some functions
+ - state/overlay images: probably not needed.
+ - in Win95, you can be called back to supply other information
+ besides text, such as state information. This saves no memory
+ and is probably superfluous to requirements.
+ - testing of whole API, extending current sample.
+
+
+ */
+
+class WXDLLEXPORT wxListCtrl: public wxControl
+{
+public:
+ /*
+ * Public interface
+ */
+
+ wxListCtrl() { Init(); }
+
+ wxListCtrl(wxWindow *parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxLC_ICON,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = _T("wxListCtrl"))
+ {
+ Init();
+
+ Create(parent, id, pos, size, style, validator, name);
+ }
+
+ virtual ~wxListCtrl();
+
+ bool Create(wxWindow *parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxLC_ICON,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = _T("wxListCtrl"));
+
+
+ // Attributes
+ ////////////////////////////////////////////////////////////////////////////
+
+ // Set the control colours
+ bool SetForegroundColour(const wxColour& col);
+ bool SetBackgroundColour(const wxColour& col);
+
+ // Gets information about this column
+ bool GetColumn(int col, wxListItem& item) const;
+
+ // Sets information about this column
+ bool SetColumn(int col, wxListItem& item) ;
+
+ // Gets the column width
+ int GetColumnWidth(int col) const;
+
+ // Sets the column width
+ bool SetColumnWidth(int col, int width) ;
+
+ // Gets the number of items that can fit vertically in the
+ // visible area of the list control (list or report view)
+ // or the total number of items in the list control (icon
+ // or small icon view)
+ int GetCountPerPage() const;
+
+ // return the total area occupied by all the items (icon/small icon only)
+ wxRect GetViewRect() const;
+
+ // Gets the edit control for editing labels.
+ wxTextCtrl* GetEditControl() const;
+
+ // Gets information about the item
+ bool GetItem(wxListItem& info) const ;
+
+ // Sets information about the item
+ bool SetItem(wxListItem& info) ;
+
+ // Sets a string field at a particular column
+ long SetItem(long index, int col, const wxString& label, int imageId = -1);
+
+ // Gets the item state
+ int GetItemState(long item, long stateMask) const ;
+
+ // Sets the item state
+ bool SetItemState(long item, long state, long stateMask) ;
+
+ // Sets the item image
+ bool SetItemImage(long item, int image, int selImage) ;
+
+ // Gets the item text
+ wxString GetItemText(long item) const ;
+
+ // Sets the item text
+ void SetItemText(long item, const wxString& str) ;
+
+ // Gets the item data
+ long GetItemData(long item) const ;
+
+ // Sets the item data
+ bool SetItemData(long item, long data) ;
+
+ // Gets the item rectangle
+ bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const ;
+
+ // Gets the item position
+ bool GetItemPosition(long item, wxPoint& pos) const ;
+
+ // Sets the item position
+ bool SetItemPosition(long item, const wxPoint& pos) ;
+
+ // Gets the number of items in the list control
+ int GetItemCount() const;
+
+ // Gets the number of columns in the list control
+ int GetColumnCount() const { return m_colCount; }
+
+ // get the horizontal and vertical components of the item spacing
+ wxSize GetItemSpacing() const;
+
+ // Foreground colour of an item.
+ void SetItemTextColour( long item, const wxColour& col);
+ wxColour GetItemTextColour( long item ) const;
+
+ // Background colour of an item.
+ void SetItemBackgroundColour( long item, const wxColour &col);
+ wxColour GetItemBackgroundColour( long item ) const;
+
+ // Gets the number of selected items in the list control
+ int GetSelectedItemCount() const;
+
+ // Gets the text colour of the listview
+ wxColour GetTextColour() const;
+
+ // Sets the text colour of the listview
+ void SetTextColour(const wxColour& col);
+
+ // Gets the index of the topmost visible item when in
+ // list or report view
+ long GetTopItem() const ;
+
+ // Add or remove a single window style
+ void SetSingleStyle(long style, bool add = TRUE) ;
+
+ // Set the whole window style
+ void SetWindowStyleFlag(long style) ;
+
+ // Searches for an item, starting from 'item'.
+ // item can be -1 to find the first item that matches the
+ // specified flags.
+ // Returns the item or -1 if unsuccessful.
+ long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const ;
+
+ // Gets one of the three image lists
+ wxImageList *GetImageList(int which) const ;
+
+ // Sets the image list
+ // N.B. There's a quirk in the Win95 list view implementation.
+ // If in wxLC_LIST mode, it'll *still* display images by the labels if
+ // there's a small-icon image list set for the control - even though you
+ // haven't specified wxLIST_MASK_IMAGE when inserting.
+ // So you have to set a NULL small-icon image list to be sure that
+ // the wxLC_LIST mode works without icons. Of course, you may want icons...
+ void SetImageList(wxImageList *imageList, int which) ;
+ void AssignImageList(wxImageList *imageList, int which) ;
+
+ // are we in report mode?
+ bool InReportView() const { return HasFlag(wxLC_REPORT); }
+
+ // are we in virtual report mode?
+ bool IsVirtual() const { return HasFlag(wxLC_VIRTUAL); }
+
+ // refresh items selectively (only useful for virtual list controls)
+ void RefreshItem(long item);
+ void RefreshItems(long itemFrom, long itemTo);
+
+ // Operations
+ ////////////////////////////////////////////////////////////////////////////
+
+ // Arranges the items
+ bool Arrange(int flag = wxLIST_ALIGN_DEFAULT);
+
+ // Deletes an item
+ bool DeleteItem(long item);
+
+ // Deletes all items
+ bool DeleteAllItems() ;
+
+ // Deletes a column
+ bool DeleteColumn(int col);
+
+ // Deletes all columns
+ bool DeleteAllColumns();
+
+ // Clears items, and columns if there are any.
+ void ClearAll();
+
+ // Edit the label
+ wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = CLASSINFO(wxTextCtrl));
+
+ // End label editing, optionally cancelling the edit
+ bool EndEditLabel(bool cancel);
+
+ // Ensures this item is visible
+ bool EnsureVisible(long item) ;
+
+ // Find an item whose label matches this string, starting from the item after 'start'
+ // or the beginning if 'start' is -1.
+ long FindItem(long start, const wxString& str, bool partial = FALSE);
+
+ // Find an item whose data matches this data, starting from the item after 'start'
+ // or the beginning if 'start' is -1.
+ long FindItem(long start, long data);
+
+ // Find an item nearest this position in the specified direction, starting from
+ // the item after 'start' or the beginning if 'start' is -1.
+ long FindItem(long start, const wxPoint& pt, int direction);
+
+ // Determines which item (if any) is at the specified point,
+ // giving details in 'flags' (see wxLIST_HITTEST_... flags above)
+ long HitTest(const wxPoint& point, int& flags);
+
+ // Inserts an item, returning the index of the new item if successful,
+ // -1 otherwise.
+ long InsertItem(wxListItem& info);
+
+ // Insert a string item
+ long InsertItem(long index, const wxString& label);
+
+ // Insert an image item
+ long InsertItem(long index, int imageIndex);
+
+ // Insert an image/string item
+ long InsertItem(long index, const wxString& label, int imageIndex);
+
+ // For list view mode (only), inserts a column.
+ long InsertColumn(long col, wxListItem& info);
+
+ long InsertColumn(long col,
+ const wxString& heading,
+ int format = wxLIST_FORMAT_LEFT,
+ int width = -1);
+
+ // set the number of items in a virtual list control
+ void SetItemCount(long count);
+
+ // Scrolls the list control. If in icon, small icon or report view mode,
+ // x specifies the number of pixels to scroll. If in list view mode, x
+ // specifies the number of columns to scroll.
+ // If in icon, small icon or list view mode, y specifies the number of pixels
+ // to scroll. If in report view mode, y specifies the number of lines to scroll.
+ bool ScrollList(int dx, int dy);
+
+ // Sort items.
+
+ // fn is a function which takes 3 long arguments: item1, item2, data.
+ // item1 is the long data associated with a first item (NOT the index).
+ // item2 is the long data associated with a second item (NOT the index).
+ // data is the same value as passed to SortItems.
+ // The return value is a negative number if the first item should precede the second
+ // item, a positive number of the second item should precede the first,
+ // or zero if the two items are equivalent.
+
+ // data is arbitrary data to be passed to the sort function.
+ bool SortItems(wxListCtrlCompare fn, long data);
+
+ // IMPLEMENTATION
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+
+ // bring the control in sync with current m_windowStyle value
+ void UpdateStyle();
+
+ // Event handlers
+ ////////////////////////////////////////////////////////////////////////////
+ // Necessary for drawing hrules and vrules, if specified
+ void OnPaint(wxPaintEvent& event);
+
+
+ virtual bool ShouldInheritColours() const { return false; }
+
+ virtual wxVisualAttributes GetDefaultAttributes() const
+ {
+ return GetClassDefaultAttributes(GetWindowVariant());
+ }
+
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+
+
+ // obsolete stuff, for compatibility only -- don't use
+ wxDEPRECATED( int GetItemSpacing(bool isSmall) const);
+
+protected:
+ // common part of all ctors
+ void Init();
+
+ // free memory taken by all internal data
+ void FreeAllInternalData();
+
+ // convert our styles to Windows
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+
+ wxTextCtrl* m_textCtrl; // The control used for editing a label
+ wxImageList * m_imageListNormal; // The image list for normal icons
+ wxImageList * m_imageListSmall; // The image list for small icons
+ wxImageList * m_imageListState; // The image list state icons (not implemented yet)
+ bool m_ownsImageListNormal,
+ m_ownsImageListSmall,
+ m_ownsImageListState;
+
+ int m_colCount; // Windows doesn't have GetColumnCount so must
+ // keep track of inserted/deleted columns
+ long m_count; // Keep track of item count to save calls to
+ // ListView_GetItemCount
+ bool m_ignoreChangeMessages;
+
+ // TRUE if we have any internal data (user data & attributes)
+ bool m_AnyInternalData;
+
+ // TRUE if we have any items with custom attributes
+ bool m_hasAnyAttr;
+
+ // these functions are only used for virtual list view controls, i.e. the
+ // ones with wxLC_VIRTUAL style
+
+ // return the text for the given column of the given item
+ virtual wxString OnGetItemText(long item, long column) const;
+
+ // return the icon for the given item
+ virtual int OnGetItemImage(long item) const;
+
+ // return the attribute for the item (may return NULL if none)
+ virtual wxListItemAttr *OnGetItemAttr(long item) const;
+
+private:
+ // process NM_CUSTOMDRAW notification message
+ WXLPARAM OnCustomDraw(WXLPARAM lParam);
+
+ DECLARE_DYNAMIC_CLASS(wxListCtrl)
+ DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxListCtrl)
+};
+
+#endif // wxUSE_LISTCTRL
+
+#endif // _WX_LISTCTRL_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/mdi.h
+// Purpose: MDI (Multiple Document Interface) classes
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MDI_H_
+#define _WX_MDI_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "mdi.h"
+#endif
+
+#include "wx/frame.h"
+
+WXDLLEXPORT_DATA(extern const wxChar*) wxFrameNameStr;
+WXDLLEXPORT_DATA(extern const wxChar*) wxStatusLineNameStr;
+
+class WXDLLEXPORT wxMDIClientWindow;
+class WXDLLEXPORT wxMDIChildFrame;
+
+// ---------------------------------------------------------------------------
+// wxMDIParentFrame
+// ---------------------------------------------------------------------------
+
+class WXDLLEXPORT wxMDIParentFrame : public wxFrame
+{
+public:
+ wxMDIParentFrame();
+ wxMDIParentFrame(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
+ const wxString& name = wxFrameNameStr)
+ {
+ Create(parent, id, title, pos, size, style, name);
+ }
+
+ ~wxMDIParentFrame();
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
+ const wxString& name = wxFrameNameStr);
+
+ // accessors
+ // ---------
+
+ // Get the active MDI child window (Windows only)
+ wxMDIChildFrame *GetActiveChild() const;
+
+ // Get the client window
+ wxMDIClientWindow *GetClientWindow() const { return m_clientWindow; }
+
+ // Create the client window class (don't Create the window,
+ // just return a new class)
+ virtual wxMDIClientWindow *OnCreateClient(void);
+
+ // MDI windows menu
+ wxMenu* GetWindowMenu() const { return m_windowMenu; };
+ void SetWindowMenu(wxMenu* menu) ;
+
+ // MDI operations
+ // --------------
+ virtual void Cascade();
+ virtual void Tile();
+ virtual void ArrangeIcons();
+ virtual void ActivateNext();
+ virtual void ActivatePrevious();
+
+ // handlers
+ // --------
+
+ // Responds to colour changes
+ void OnSysColourChanged(wxSysColourChangedEvent& event);
+
+ void OnSize(wxSizeEvent& event);
+
+ bool HandleActivate(int state, bool minimized, WXHWND activate);
+ bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control);
+
+ // override window proc for MDI-specific message processing
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
+ virtual WXLRESULT MSWDefWindowProc(WXUINT, WXWPARAM, WXLPARAM);
+ virtual bool MSWTranslateMessage(WXMSG* msg);
+
+protected:
+#if wxUSE_MENUS_NATIVE
+ virtual void InternalSetMenuBar();
+#endif // wxUSE_MENUS_NATIVE
+
+ virtual WXHICON GetDefaultIcon() const;
+
+ wxMDIClientWindow * m_clientWindow;
+ wxMDIChildFrame * m_currentChild;
+ wxMenu* m_windowMenu;
+
+ // TRUE if MDI Frame is intercepting commands, not child
+ bool m_parentFrameActive;
+
+private:
+ friend class WXDLLEXPORT wxMDIChildFrame;
+
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS(wxMDIParentFrame)
+ DECLARE_NO_COPY_CLASS(wxMDIParentFrame)
+};
+
+// ---------------------------------------------------------------------------
+// wxMDIChildFrame
+// ---------------------------------------------------------------------------
+
+class WXDLLEXPORT wxMDIChildFrame : public wxFrame
+{
+public:
+ wxMDIChildFrame() { Init(); }
+ wxMDIChildFrame(wxMDIParentFrame *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE,
+ const wxString& name = wxFrameNameStr)
+ {
+ Init();
+
+ Create(parent, id, title, pos, size, style, name);
+ }
+
+ ~wxMDIChildFrame();
+
+ bool Create(wxMDIParentFrame *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE,
+ const wxString& name = wxFrameNameStr);
+
+ virtual bool IsTopLevel() const { return FALSE; }
+
+ // MDI operations
+ virtual void Maximize(bool maximize = TRUE);
+ virtual void Restore();
+ virtual void Activate();
+
+ // Implementation only from now on
+ // -------------------------------
+
+ // Handlers
+ bool HandleMDIActivate(long bActivate, WXHWND, WXHWND);
+ bool HandleWindowPosChanging(void *lpPos);
+ bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control);
+ bool HandleGetMinMaxInfo(void *mmInfo);
+
+ virtual WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+ virtual WXLRESULT MSWDefWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+ virtual bool MSWTranslateMessage(WXMSG *msg);
+
+ virtual void MSWDestroyWindow();
+
+ bool ResetWindowStyle(void *vrect);
+
+ void OnIdle(wxIdleEvent& event);
+
+protected:
+ virtual void DoGetPosition(int *x, int *y) const;
+ virtual void DoSetClientSize(int width, int height);
+ virtual void InternalSetMenuBar();
+ virtual bool IsMDIChild() const { return TRUE; }
+
+ virtual WXHICON GetDefaultIcon() const;
+
+ // common part of all ctors
+ void Init();
+
+private:
+ bool m_needsResize; // flag which tells us to artificially resize the frame
+
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxMDIChildFrame)
+};
+
+// ---------------------------------------------------------------------------
+// wxMDIClientWindow
+// ---------------------------------------------------------------------------
+
+class WXDLLEXPORT wxMDIClientWindow : public wxWindow
+{
+public:
+ wxMDIClientWindow() { Init(); }
+ wxMDIClientWindow(wxMDIParentFrame *parent, long style = 0)
+ {
+ Init();
+
+ CreateClient(parent, style);
+ }
+
+ // Note: this is virtual, to allow overridden behaviour.
+ virtual bool CreateClient(wxMDIParentFrame *parent,
+ long style = wxVSCROLL | wxHSCROLL);
+
+ // Explicitly call default scroll behaviour
+ void OnScroll(wxScrollEvent& event);
+
+ virtual void DoSetSize(int x, int y,
+ int width, int height,
+ int sizeFlags = wxSIZE_AUTO);
+protected:
+ void Init() { m_scrollX = m_scrollY = 0; }
+
+ int m_scrollX, m_scrollY;
+
+private:
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxMDIClientWindow)
+};
+
+#endif
+ // _WX_MDI_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/menu.h
+// Purpose: wxMenu, wxMenuBar classes
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MENU_H_
+#define _WX_MENU_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "menu.h"
+#endif
+
+#if wxUSE_ACCEL
+ #include "wx/accel.h"
+ #include "wx/dynarray.h"
+
+ WX_DEFINE_EXPORTED_ARRAY_PTR(wxAcceleratorEntry *, wxAcceleratorArray);
+#endif // wxUSE_ACCEL
+
+class WXDLLEXPORT wxFrame;
+
+#if defined(__WXWINCE__) && wxUSE_TOOLBAR
+class WXDLLEXPORT wxToolBar;
+#endif
+
+#include "wx/arrstr.h"
+
+// ----------------------------------------------------------------------------
+// Menu
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxMenu : public wxMenuBase
+{
+public:
+ // ctors & dtor
+ wxMenu(const wxString& title, long style = 0)
+ : wxMenuBase(title, style) { Init(); }
+
+ wxMenu(long style = 0) : wxMenuBase(style) { Init(); }
+
+ virtual ~wxMenu();
+
+ // implement base class virtuals
+ virtual wxMenuItem* DoAppend(wxMenuItem *item);
+ virtual wxMenuItem* DoInsert(size_t pos, wxMenuItem *item);
+ virtual wxMenuItem* DoRemove(wxMenuItem *item);
+
+ virtual void Break();
+
+ virtual void SetTitle(const wxString& title);
+
+ // deprecated functions
+#if wxUSE_MENU_CALLBACK
+ wxMenu(const wxString& title, const wxFunction func)
+ : wxMenuBase(title)
+ {
+ Init();
+
+ Callback(func);
+ }
+#endif // wxUSE_MENU_CALLBACK
+
+ // implementation only from now on
+ // -------------------------------
+
+ virtual void Attach(wxMenuBarBase *menubar);
+
+ bool PalmCommand(WXUINT param, WXWORD id);
+
+ // semi-private accessors
+ // get the window which contains this menu
+ wxWindow *GetWindow() const;
+ // get the menu handle
+ WXHMENU GetHMenu() const { return m_hMenu; }
+
+#if wxUSE_ACCEL
+ // called by wxMenuBar to build its accel table from the accels of all menus
+ bool HasAccels() const { return !m_accels.IsEmpty(); }
+ size_t GetAccelCount() const { return m_accels.GetCount(); }
+ size_t CopyAccels(wxAcceleratorEntry *accels) const;
+
+ // called by wxMenuItem when its accels changes
+ void UpdateAccel(wxMenuItem *item);
+
+ // helper used by wxMenu itself (returns the index in m_accels)
+ int FindAccel(int id) const;
+#endif // wxUSE_ACCEL
+
+private:
+ // common part of all ctors
+ void Init();
+
+ // common part of Append/Insert (behaves as Append is pos == (size_t)-1)
+ bool DoInsertOrAppend(wxMenuItem *item, size_t pos = (size_t)-1);
+
+ // terminate the current radio group, if any
+ void EndRadioGroup();
+
+ // if TRUE, insert a break before appending the next item
+ bool m_doBreak;
+
+ // the position of the first item in the current radio group or -1
+ int m_startRadioGroup;
+
+ // the menu handle of this menu
+ WXHMENU m_hMenu;
+
+#if wxUSE_ACCEL
+ // the accelerators for our menu items
+ wxAcceleratorArray m_accels;
+#endif // wxUSE_ACCEL
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxMenu)
+};
+
+// ----------------------------------------------------------------------------
+// Menu Bar (a la Windows)
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxMenuInfo : public wxObject
+{
+public :
+ wxMenuInfo() { m_menu = NULL ; }
+ virtual ~wxMenuInfo() { }
+
+ void Create( wxMenu *menu , const wxString &title )
+ { m_menu = menu ; m_title = title ; }
+ wxMenu* GetMenu() const { return m_menu ; }
+ wxString GetTitle() const { return m_title ; }
+private :
+ wxMenu *m_menu ;
+ wxString m_title ;
+
+ DECLARE_DYNAMIC_CLASS(wxMenuInfo) ;
+} ;
+
+WX_DECLARE_EXPORTED_LIST(wxMenuInfo, wxMenuInfoList );
+
+class WXDLLEXPORT wxMenuBar : public wxMenuBarBase
+{
+public:
+ // ctors & dtor
+ // default constructor
+ wxMenuBar();
+
+ wxMenuBar(long style);
+ // menubar takes ownership of the menus arrays but copies the titles
+ wxMenuBar(int n, wxMenu *menus[], const wxString titles[]);
+ virtual ~wxMenuBar();
+
+ // menubar construction
+ bool Append( wxMenuInfo *info ) { return Append( info->GetMenu() , info->GetTitle() ) ; }
+ const wxMenuInfoList& GetMenuInfos() const ;
+
+ virtual bool Append( wxMenu *menu, const wxString &title );
+ virtual bool Insert(size_t pos, wxMenu *menu, const wxString& title);
+ virtual wxMenu *Replace(size_t pos, wxMenu *menu, const wxString& title);
+ virtual wxMenu *Remove(size_t pos);
+
+ virtual void EnableTop( size_t pos, bool flag );
+ virtual void SetLabelTop( size_t pos, const wxString& label );
+ virtual wxString GetLabelTop( size_t pos ) const;
+
+ // implementation from now on
+ WXHMENU Create();
+ virtual void Detach();
+ virtual void Attach(wxFrame *frame);
+
+ void LoadMenu();
+ int ProcessCommand(int ItemID);
+
+#if wxUSE_TOOLBAR && defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(__POCKETPC__) || defined(__SMARTPHONE__))
+ // Under WinCE, a menubar is owned by the frame's toolbar
+ void SetToolBar(wxToolBar* toolBar) { m_toolBar = toolBar; }
+ wxToolBar* GetToolBar() const { return m_toolBar; }
+#endif
+
+#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !defined(__POCKETPC__) && !defined(__SMARTPHONE__))
+ WXHWND GetCommandBar() const { return m_commandBar; }
+ bool AddAdornments(long style);
+#endif
+
+#if wxUSE_ACCEL
+ // get the accel table for all the menus
+ const wxAcceleratorTable& GetAccelTable() const { return m_accelTable; }
+
+ // update the accel table (must be called after adding/deletign a menu)
+ void RebuildAccelTable();
+#endif // wxUSE_ACCEL
+
+ // get the menu handle
+ WXHMENU GetHMenu() const { return m_hMenu; }
+
+ // if the menubar is modified, the display is not updated automatically,
+ // call this function to update it (m_menuBarFrame should be !NULL)
+ void Refresh();
+
+ // To avoid compile warning
+ void Refresh( bool eraseBackground,
+ const wxRect *rect = (const wxRect *) NULL ) { wxWindow::Refresh(eraseBackground, rect); }
+
+protected:
+ // common part of all ctors
+ void Init();
+
+ wxArrayString m_titles ;
+ wxMenuInfoList m_menuInfos;
+
+ WXHMENU m_hMenu;
+
+ // Return the Palm position for a wxMenu which is sometimes different from
+ // the wxWidgets position.
+ int PalmPositionForWxMenu(wxMenu *menu, int wxpos);
+#if wxUSE_ACCEL
+ // the accelerator table for all accelerators in all our menus
+ wxAcceleratorTable m_accelTable;
+#endif // wxUSE_ACCEL
+
+#if defined(__WXWINCE__) && wxUSE_TOOLBAR
+ wxToolBar* m_toolBar;
+#endif
+ // Not using a combined wxToolBar/wxMenuBar? then use
+ // a commandbar in WinCE .NET to implement the
+ // menubar, since there is no ::SetMenu function.
+#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !defined(__POCKETPC__) && !defined(__SMARTPHONE__))
+ WXHWND m_commandBar;
+ bool m_adornmentsAdded;
+#endif
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxMenuBar)
+};
+
+#endif // _WX_MENU_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: menuitem.h
+// Purpose: wxMenuItem class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _MENUITEM_H
+#define _MENUITEM_H
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "menuitem.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if wxUSE_OWNER_DRAWN
+ #include "wx/ownerdrw.h" // base class
+#endif
+
+// ----------------------------------------------------------------------------
+// wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxMenuItem : public wxMenuItemBase
+#if wxUSE_OWNER_DRAWN
+ , public wxOwnerDrawn
+#endif
+{
+public:
+ // ctor & dtor
+ wxMenuItem(wxMenu *parentMenu = (wxMenu *)NULL,
+ int id = wxID_SEPARATOR,
+ const wxString& name = wxEmptyString,
+ const wxString& help = wxEmptyString,
+ wxItemKind kind = wxITEM_NORMAL,
+ wxMenu *subMenu = (wxMenu *)NULL);
+ virtual ~wxMenuItem();
+
+ // override base class virtuals
+ virtual void SetText(const wxString& strName);
+ virtual void SetCheckable(bool checkable);
+
+ virtual void Enable(bool bDoEnable = TRUE);
+ virtual void Check(bool bDoCheck = TRUE);
+ virtual bool IsChecked() const;
+
+ // unfortunately needed to resolve ambiguity between
+ // wxMenuItemBase::IsCheckable() and wxOwnerDrawn::IsCheckable()
+ bool IsCheckable() const { return wxMenuItemBase::IsCheckable(); }
+
+ // the id for a popup menu is really its menu handle (as required by
+ // ::AppendMenu() API), so this function will return either the id or the
+ // menu handle depending on what we're
+ int GetRealId() const;
+
+ // mark item as belonging to the given radio group
+ void SetAsRadioGroupStart();
+ void SetRadioGroupStart(int start);
+ void SetRadioGroupEnd(int end);
+
+ // compatibility only, don't use in new code
+ wxMenuItem(wxMenu *parentMenu,
+ int id,
+ const wxString& text,
+ const wxString& help,
+ bool isCheckable,
+ wxMenu *subMenu = (wxMenu *)NULL);
+
+private:
+ // common part of all ctors
+ void Init();
+
+ // the positions of the first and last items of the radio group this item
+ // belongs to or -1: start is the radio group start and is valid for all
+ // but first radio group items (m_isRadioGroupStart == FALSE), end is valid
+ // only for the first one
+ union
+ {
+ int start;
+ int end;
+ } m_radioGroup;
+
+ // does this item start a radio group?
+ bool m_isRadioGroupStart;
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxMenuItem)
+};
+
+#endif //_MENUITEM_H
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/metafile.h
+// Purpose: wxMetaFile, wxMetaFileDC and wxMetaFileDataObject classes
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_METAFIILE_H_
+#define _WX_METAFIILE_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "metafile.h"
+#endif
+
+#include "wx/setup.h"
+
+#if wxUSE_METAFILE
+
+#include "wx/dc.h"
+#include "wx/gdiobj.h"
+
+#if wxUSE_DRAG_AND_DROP
+ #include "wx/dataobj.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// Metafile and metafile device context classes
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxMetafile;
+
+class WXDLLEXPORT wxMetafileRefData: public wxGDIRefData
+{
+ friend class WXDLLEXPORT wxMetafile;
+public:
+ wxMetafileRefData();
+ ~wxMetafileRefData();
+
+public:
+ WXHANDLE m_metafile;
+ int m_windowsMappingMode;
+ int m_width, m_height;
+};
+
+#define M_METAFILEDATA ((wxMetafileRefData *)m_refData)
+
+class WXDLLEXPORT wxMetafile: public wxGDIObject
+{
+public:
+ wxMetafile(const wxString& file = wxEmptyString);
+ wxMetafile(const wxMetafile& metafile) { Ref(metafile); }
+ virtual ~wxMetafile();
+
+ // After this is called, the metafile cannot be used for anything
+ // since it is now owned by the clipboard.
+ virtual bool SetClipboard(int width = 0, int height = 0);
+
+ virtual bool Play(wxDC *dc);
+ bool Ok() const { return (M_METAFILEDATA && (M_METAFILEDATA->m_metafile != 0)); };
+
+ // set/get the size of metafile for clipboard operations
+ wxSize GetSize() const { return wxSize(GetWidth(), GetHeight()); }
+ int GetWidth() const { return M_METAFILEDATA->m_width; }
+ int GetHeight() const { return M_METAFILEDATA->m_height; }
+
+ void SetWidth(int width) { M_METAFILEDATA->m_width = width; }
+ void SetHeight(int height) { M_METAFILEDATA->m_height = height; }
+
+ // Implementation
+ WXHANDLE GetHMETAFILE() const { return M_METAFILEDATA->m_metafile; }
+ void SetHMETAFILE(WXHANDLE mf) ;
+ int GetWindowsMappingMode() const { return M_METAFILEDATA->m_windowsMappingMode; }
+ void SetWindowsMappingMode(int mm);
+
+ // Operators
+ wxMetafile& operator=(const wxMetafile& metafile)
+ { if (*this != metafile) Ref(metafile); return *this; }
+ bool operator==(const wxMetafile& metafile) const
+ { return m_refData == metafile.m_refData; }
+ bool operator!=(const wxMetafile& metafile) const
+ { return m_refData != metafile.m_refData; }
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxMetafile)
+};
+
+class WXDLLEXPORT wxMetafileDC: public wxDC
+{
+public:
+ // Don't supply origin and extent
+ // Supply them to wxMakeMetaFilePlaceable instead.
+ wxMetafileDC(const wxString& file = wxEmptyString);
+
+ // Supply origin and extent (recommended).
+ // Then don't need to supply them to wxMakeMetaFilePlaceable.
+ wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg);
+
+ virtual ~wxMetafileDC();
+
+ // Should be called at end of drawing
+ virtual wxMetafile *Close();
+ virtual void SetMapMode(int mode);
+ virtual void GetTextExtent(const wxString& string, long *x, long *y,
+ long *descent = NULL, long *externalLeading = NULL,
+ wxFont *theFont = NULL, bool use16bit = FALSE) const;
+
+ // Implementation
+ wxMetafile *GetMetaFile() const { return m_metaFile; }
+ void SetMetaFile(wxMetafile *mf) { m_metaFile = mf; }
+ int GetWindowsMappingMode() const { return m_windowsMappingMode; }
+ void SetWindowsMappingMode(int mm) { m_windowsMappingMode = mm; }
+
+protected:
+ int m_windowsMappingMode;
+ wxMetafile* m_metaFile;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxMetafileDC)
+};
+
+/*
+ * Pass filename of existing non-placeable metafile, and bounding box.
+ * Adds a placeable metafile header, sets the mapping mode to anisotropic,
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
+ *
+ */
+
+// No origin or extent
+bool WXDLLEXPORT wxMakeMetafilePlaceable(const wxString& filename, float scale = 1.0);
+
+// Optional origin and extent
+bool WXDLLEXPORT wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale = 1.0, bool useOriginAndExtent = TRUE);
+
+// ----------------------------------------------------------------------------
+// wxMetafileDataObject is a specialization of wxDataObject for metafile data
+// ----------------------------------------------------------------------------
+
+#if wxUSE_DRAG_AND_DROP
+
+class WXDLLEXPORT wxMetafileDataObject : public wxDataObjectSimple
+{
+public:
+ // ctors
+ wxMetafileDataObject() : wxDataObjectSimple(wxDF_METAFILE)
+ { }
+ wxMetafileDataObject(const wxMetafile& metafile)
+ : wxDataObjectSimple(wxDF_METAFILE), m_metafile(metafile) { }
+
+ // virtual functions which you may override if you want to provide data on
+ // demand only - otherwise, the trivial default versions will be used
+ virtual void SetMetafile(const wxMetafile& metafile)
+ { m_metafile = metafile; }
+ virtual wxMetafile GetMetafile() const
+ { return m_metafile; }
+
+ // implement base class pure virtuals
+ virtual size_t GetDataSize() const;
+ virtual bool GetDataHere(void *buf) const;
+ virtual bool SetData(size_t len, const void *buf);
+
+protected:
+ wxMetafile m_metafile;
+};
+
+#endif // wxUSE_DRAG_AND_DROP
+
+#endif // wxUSE_METAFILE
+#endif
+ // _WX_METAFIILE_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/mimetype.h
+// Purpose: classes and functions to manage MIME types
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _MIMETYPE_IMPL_H
+#define _MIMETYPE_IMPL_H
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "mimetype.h"
+#endif
+
+#include "wx/defs.h"
+
+#if wxUSE_MIMETYPE
+
+#include "wx/mimetype.h"
+
+// ----------------------------------------------------------------------------
+// wxFileTypeImpl is the MSW version of wxFileType, this is a private class
+// and is never used directly by the application
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_BASE wxFileTypeImpl
+{
+public:
+ // ctor
+ wxFileTypeImpl() { }
+
+ // one of these Init() function must be called (ctor can't take any
+ // arguments because it's common)
+
+ // initialize us with our file type name and extension - in this case
+ // we will read all other data from the registry
+ void Init(const wxString& strFileType, const wxString& ext);
+
+ // implement accessor functions
+ bool GetExtensions(wxArrayString& extensions);
+ bool GetMimeType(wxString *mimeType) const;
+ bool GetMimeTypes(wxArrayString& mimeTypes) const;
+ bool GetIcon(wxIconLocation *iconLoc) const;
+ bool GetDescription(wxString *desc) const;
+ bool GetOpenCommand(wxString *openCmd,
+ const wxFileType::MessageParameters& params) const;
+ bool GetPrintCommand(wxString *printCmd,
+ const wxFileType::MessageParameters& params) const;
+
+ size_t GetAllCommands(wxArrayString * verbs, wxArrayString * commands,
+ const wxFileType::MessageParameters& params) const;
+
+ bool Unassociate();
+
+ // set an arbitrary command, ask confirmation if it already exists and
+ // overwriteprompt is TRUE
+ bool SetCommand(const wxString& cmd,
+ const wxString& verb,
+ bool overwriteprompt = TRUE);
+
+ bool SetDefaultIcon(const wxString& cmd = wxEmptyString, int index = 0);
+
+ // this is called by Associate
+ bool SetDescription (const wxString& desc);
+
+private:
+ // helper function: reads the command corresponding to the specified verb
+ // from the registry (returns an empty string if not found)
+ wxString GetCommand(const wxChar *verb) const;
+
+ // get the registry path for the given verb
+ wxString GetVerbPath(const wxString& verb) const;
+
+ // check that the registry key for our extension exists, create it if it
+ // doesn't, return FALSE if this failed
+ bool EnsureExtKeyExists();
+
+ wxString m_strFileType, // may be empty
+ m_ext;
+
+ // these methods are not publicly accessible (as wxMimeTypesManager
+ // doesn't know about them), and should only be called by Unassociate
+
+ bool RemoveOpenCommand();
+ bool RemoveCommand(const wxString& verb);
+ bool RemoveMimeType();
+ bool RemoveDefaultIcon();
+ bool RemoveDescription();
+};
+
+class WXDLLIMPEXP_BASE wxMimeTypesManagerImpl
+{
+public:
+ // nothing to do here, we don't load any data but just go and fetch it from
+ // the registry when asked for
+ wxMimeTypesManagerImpl() { }
+
+ // implement containing class functions
+ wxFileType *GetFileTypeFromExtension(const wxString& ext);
+ wxFileType *GetOrAllocateFileTypeFromExtension(const wxString& ext);
+ wxFileType *GetFileTypeFromMimeType(const wxString& mimeType);
+
+ size_t EnumAllFileTypes(wxArrayString& mimetypes);
+
+ // this are NOPs under Windows
+ bool ReadMailcap(const wxString& WXUNUSED(filename), bool WXUNUSED(fallback) = TRUE)
+ { return TRUE; }
+ bool ReadMimeTypes(const wxString& WXUNUSED(filename))
+ { return TRUE; }
+
+ // create a new filetype association
+ wxFileType *Associate(const wxFileTypeInfo& ftInfo);
+
+ // create a new filetype with the given name and extension
+ wxFileType *CreateFileType(const wxString& filetype, const wxString& ext);
+};
+
+#endif // wxUSE_MIMETYPE
+
+#endif
+ //_MIMETYPE_IMPL_H
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/minifram.h
+// Purpose: wxMiniFrame class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MINIFRAM_H_
+#define _WX_MINIFRAM_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "minifram.h"
+#endif
+
+#include "wx/frame.h"
+
+class WXDLLEXPORT wxMiniFrame : public wxFrame
+{
+public:
+ wxMiniFrame() { }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxCAPTION | wxCLIP_CHILDREN | wxRESIZE_BORDER,
+ const wxString& name = wxFrameNameStr)
+ {
+ return wxFrame::Create(parent, id, title, pos, size,
+ style |
+ wxFRAME_TOOL_WINDOW |
+ (parent ? wxFRAME_FLOAT_ON_PARENT : 0), name);
+ }
+
+ wxMiniFrame(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxCAPTION | wxCLIP_CHILDREN | wxRESIZE_BORDER,
+ const wxString& name = wxFrameNameStr)
+ {
+ Create(parent, id, title, pos, size, style, name);
+ }
+
+protected:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxMiniFrame)
+};
+
+#endif
+ // _WX_MINIFRAM_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: msgdlg.h
+// Purpose: wxMessageDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSGBOXDLG_H_
+#define _WX_MSGBOXDLG_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "msgdlg.h"
+#endif
+
+#include "wx/setup.h"
+#include "wx/dialog.h"
+
+/*
+ * Message box dialog
+ */
+
+WXDLLEXPORT_DATA(extern const wxChar*) wxMessageBoxCaptionStr;
+
+class WXDLLEXPORT wxMessageDialog: public wxDialog
+{
+DECLARE_DYNAMIC_CLASS(wxMessageDialog)
+protected:
+ wxString m_caption;
+ wxString m_message;
+ long m_dialogStyle;
+ wxWindow * m_parent;
+public:
+ wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption = wxMessageBoxCaptionStr,
+ long style = wxOK|wxCENTRE, const wxPoint& pos = wxDefaultPosition);
+
+ int ShowModal(void);
+
+ DECLARE_NO_COPY_CLASS(wxMessageDialog)
+};
+
+
+#endif
+ // _WX_MSGBOXDLG_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/mslu.h
+// Purpose: Fixes for bugs in MSLU
+// Author: Vaclav Slavik
+// Modified by:
+// Created: 2002/02/17
+// RCS-ID: $Id$
+// Copyright: (c) 2002 Vaclav Slavik
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSLU_H_
+#define _WX_MSLU_H_
+
+#include "wx/defs.h"
+#include "wx/utils.h"
+#include "wx/wxchar.h"
+
+#if !wxUSE_UNICODE_MSLU
+inline bool wxUsingUnicowsDll() { return FALSE; }
+#else
+
+// Returns true if we are running under Unicode emulation in Win9x environment.
+// Workaround hacks take effect only if this condition is met
+inline bool wxUsingUnicowsDll()
+{
+ return (wxGetOsVersion() == wxWIN95);
+}
+
+//------------------------------------------------------------------------
+// Wrongly implemented functions from unicows.dll
+//------------------------------------------------------------------------
+
+#if wxUSE_GUI
+
+WXDLLEXPORT int wxMSLU_DrawStateW(WXHDC dc, WXHBRUSH br, WXFARPROC outputFunc,
+ WXLPARAM lData, WXWPARAM wData,
+ int x, int y, int cx, int cy,
+ unsigned int flags);
+#define DrawStateW(dc, br, func, ld, wd, x, y, cx, cy, flags) \
+ wxMSLU_DrawStateW((WXHDC)dc,(WXHBRUSH)br,(WXFARPROC)func, \
+ ld, wd, x, y, cx, cy, flags)
+
+WXDLLEXPORT int wxMSLU_GetOpenFileNameW(void *ofn);
+#define GetOpenFileNameW(ofn) wxMSLU_GetOpenFileNameW((void*)ofn)
+
+WXDLLEXPORT int wxMSLU_GetSaveFileNameW(void *ofn);
+#define GetSaveFileNameW(ofn) wxMSLU_GetSaveFileNameW((void*)ofn)
+
+#endif
+
+//------------------------------------------------------------------------
+// Missing libc file manipulation functions in Win9x
+//------------------------------------------------------------------------
+
+WXDLLEXPORT int wxMSLU__trename(const wxChar *oldname, const wxChar *newname);
+WXDLLEXPORT int wxMSLU__tremove(const wxChar *name);
+
+#if defined( __VISUALC__ ) \
+ || ( defined(__MINGW32__) && wxCHECK_W32API_VERSION( 0, 5 ) ) \
+ || ( defined(__MWERKS__) && defined(__WXMSW__) ) \
+ || ( defined(__BORLANDC__) && (__BORLANDC__ > 0x460) )
+WXDLLEXPORT int wxMSLU__wopen(const wxChar *name, int flags, int mode);
+WXDLLEXPORT int wxMSLU__waccess(const wxChar *name, int mode);
+WXDLLEXPORT int wxMSLU__wmkdir(const wxChar *name);
+WXDLLEXPORT int wxMSLU__wrmdir(const wxChar *name);
+WXDLLEXPORT int wxMSLU__wstat(const wxChar *name, struct _stat *buffer);
+#endif
+
+#endif // wxUSE_UNICODE_MSLU
+
+#endif // _WX_MSLU_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/msvcrt.h
+// Purpose: macros to use some non-standard features of MS Visual C++
+// C run-time library
+// Author: Vadim Zeitlin
+// Modified by:
+// Created: 31.01.1999
+// RCS-ID: $Id$
+// Copyright: (c) Vadim Zeitlin
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// the goal of this file is to define wxCrtSetDbgFlag() macro which may be
+// used like this:
+// wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF);
+// to turn on memory leak checks for programs compiled with Microsoft Visual
+// C++ (5.0+). The macro will expand to nothing under other compilers.
+
+#ifndef _PALMOS_MSVCRT_H_
+#define _PALMOS_MSVCRT_H_
+
+// use debug CRT functions for memory leak detections in VC++ 5.0+ in debug
+// builds
+#undef wxUSE_VC_CRTDBG
+#if defined(__WXDEBUG__) && defined(__VISUALC__) && (__VISUALC__ >= 1000) \
+ && !defined(UNDER_CE)
+ // it doesn't combine well with wxWin own memory debugging methods
+ #if !wxUSE_GLOBAL_MEMORY_OPERATORS && !wxUSE_MEMORY_TRACING && !defined(__NO_VC_CRTDBG__)
+ #define wxUSE_VC_CRTDBG
+ #endif
+#endif
+
+#ifdef wxUSE_VC_CRTDBG
+ // VC++ uses this macro as debug/release mode indicator
+ #ifndef _DEBUG
+ #define _DEBUG
+ #endif
+
+ // Need to undef new if including crtdbg.h which redefines new itself
+ #ifdef new
+ #undef new
+ #endif
+
+ // we need this to show file & line number of the allocation that caused
+ // the leak
+ #define _CRTDBG_MAP_ALLOC
+ #include <stdlib.h>
+ #ifndef _CRTBLD
+ // Need when builded with pure MS SDK
+ #define _CRTBLD
+ #endif
+
+ #include <crtdbg.h>
+
+ // this define works around a bug with inline declarations of new, see
+ //
+ // http://support.microsoft.com/support/kb/articles/Q140/8/58.asp
+ //
+ // for the details
+ #define new new( _NORMAL_BLOCK, __FILE__, __LINE__)
+
+ #define wxCrtSetDbgFlag(flag) \
+ _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | (flag))
+#else // !using VC CRT
+ #define wxCrtSetDbgFlag(flag)
+#endif // wxUSE_VC_CRTDBG
+
+#endif // _PALMOS_MSVCRT_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/notebook.h
+// Purpose: MSW/GTK compatible notebook (a.k.a. property sheet)
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _NOTEBOOK_H
+#define _NOTEBOOK_H
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "notebook.h"
+#endif
+
+#if wxUSE_NOTEBOOK
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "wx/control.h"
+
+// ----------------------------------------------------------------------------
+// wxNotebook
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxNotebookPageInfo : public wxObject
+{
+public :
+ wxNotebookPageInfo() { m_page = NULL ; m_imageId = -1 ; m_selected = false ; }
+ virtual ~wxNotebookPageInfo() { }
+
+ void Create( wxNotebookPage *page , const wxString &text , bool selected , int imageId )
+ { m_page = page ; m_text = text ; m_selected = selected ; m_imageId = imageId ; }
+ wxNotebookPage* GetPage() const { return m_page ; }
+ wxString GetText() const { return m_text ; }
+ bool GetSelected() const { return m_selected ; }
+ int GetImageId() const { return m_imageId; }
+private :
+ wxNotebookPage *m_page ;
+ wxString m_text ;
+ bool m_selected ;
+ int m_imageId ;
+
+ DECLARE_DYNAMIC_CLASS(wxNotebookPageInfo) ;
+} ;
+
+
+WX_DECLARE_EXPORTED_LIST(wxNotebookPageInfo, wxNotebookPageInfoList );
+
+class WXDLLEXPORT wxNotebook : public wxNotebookBase
+{
+public:
+ // ctors
+ // -----
+ // default for dynamic class
+ wxNotebook();
+ // the same arguments as for wxControl (@@@ any special styles?)
+ wxNotebook(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxNOTEBOOK_NAME);
+ // Create() function
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxNOTEBOOK_NAME);
+
+ // accessors
+ // ---------
+ // get number of pages in the dialog
+ virtual size_t GetPageCount() const;
+
+ // set the currently selected page, return the index of the previously
+ // selected one (or -1 on error)
+ // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events
+ int SetSelection(size_t nPage);
+ // get the currently selected page
+ int GetSelection() const { return m_nSelection; }
+
+ // set/get the title of a page
+ bool SetPageText(size_t nPage, const wxString& strText);
+ wxString GetPageText(size_t nPage) const;
+
+ // image list stuff: each page may have an image associated with it. All
+ // the images belong to an image list, so you have to
+ // 1) create an image list
+ // 2) associate it with the notebook
+ // 3) set for each page it's image
+ // associate image list with a control
+ void SetImageList(wxImageList* imageList);
+
+ // sets/returns item's image index in the current image list
+ int GetPageImage(size_t nPage) const;
+ bool SetPageImage(size_t nPage, int nImage);
+
+ // currently it's always 1 because wxGTK doesn't support multi-row
+ // tab controls
+ int GetRowCount() const;
+
+ // control the appearance of the notebook pages
+ // set the size (the same for all pages)
+ void SetPageSize(const wxSize& size);
+ // set the padding between tabs (in pixels)
+ void SetPadding(const wxSize& padding);
+
+ // Windows only: attempts to get colour for UX theme page background
+ wxColour GetThemeBackgroundColour();
+
+ // operations
+ // ----------
+ // remove all pages
+ bool DeleteAllPages();
+
+ // inserts a new page to the notebook (it will be deleted ny the notebook,
+ // don't delete it yourself). If bSelect, this page becomes active.
+ bool InsertPage(size_t nPage,
+ wxNotebookPage *pPage,
+ const wxString& strText,
+ bool bSelect = FALSE,
+ int imageId = -1);
+
+ void AddPageInfo( wxNotebookPageInfo* info ) { AddPage( info->GetPage() , info->GetText() , info->GetSelected() , info->GetImageId() ) ; }
+ const wxNotebookPageInfoList& GetPageInfos() const ;
+
+ // Windows-only at present. Also, you must use the wxNB_FIXEDWIDTH
+ // style.
+ void SetTabSize(const wxSize& sz);
+
+ // Windows only: attempts to apply the UX theme page background to this page
+ void ApplyThemeBackground(wxWindow* window, const wxColour& colour);
+
+ // hit test
+ virtual int HitTest(const wxPoint& pt, long *flags = NULL) const;
+
+ // calculate the size of the notebook from the size of its page
+ virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const;
+
+ // callbacks
+ // ---------
+ void OnSize(wxSizeEvent& event);
+ void OnSelChange(wxNotebookEvent& event);
+ void OnNavigationKey(wxNavigationKeyEvent& event);
+
+ // base class virtuals
+ // -------------------
+
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+ virtual bool MSWOnScroll(int orientation, WXWORD nSBCode,
+ WXWORD pos, WXHWND control);
+ virtual bool MSWTranslateMessage(WXMSG *wxmsg);
+
+#if wxUSE_CONSTRAINTS
+ virtual void SetConstraintSizes(bool recurse = TRUE);
+ virtual bool DoPhase(int nPhase);
+#endif // wxUSE_CONSTRAINTS
+
+protected:
+ // common part of all ctors
+ void Init();
+
+ // translate wxWin styles to the Windows ones
+ virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const;
+
+ // remove one page from the notebook, without deleting
+ virtual wxNotebookPage *DoRemovePage(size_t nPage);
+
+ // set the size of the given page to fit in the notebook
+ void AdjustPageSize(wxNotebookPage *page);
+
+ // override WndProc.
+#if wxUSE_UXTHEME
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+#endif
+
+ // the current selection (-1 if none)
+ int m_nSelection;
+
+ wxNotebookPageInfoList m_pageInfos ;
+
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxNotebook)
+ DECLARE_EVENT_TABLE()
+};
+
+#endif // wxUSE_NOTEBOOK
+
+#endif // _NOTEBOOK_H
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palette.h
+// Purpose: wxPalette class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PALETTE_H_
+#define _WX_PALETTE_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "palette.h"
+#endif
+
+#include "wx/gdiobj.h"
+
+class WXDLLEXPORT wxPalette;
+
+class WXDLLEXPORT wxPaletteRefData: public wxGDIRefData
+{
+ friend class WXDLLEXPORT wxPalette;
+public:
+ wxPaletteRefData(void);
+ ~wxPaletteRefData(void);
+protected:
+ WXHPALETTE m_hPalette;
+};
+
+#define M_PALETTEDATA ((wxPaletteRefData *)m_refData)
+
+class WXDLLEXPORT wxPalette: public wxGDIObject
+{
+ DECLARE_DYNAMIC_CLASS(wxPalette)
+
+public:
+ wxPalette(void);
+ inline wxPalette(const wxPalette& palette) { Ref(palette); }
+
+ wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue);
+ ~wxPalette(void);
+ bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue);
+ int GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const;
+ bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const;
+
+ virtual bool Ok(void) const { return (m_refData != NULL) ; }
+
+ inline wxPalette& operator = (const wxPalette& palette) { if (*this == palette) return (*this); Ref(palette); return *this; }
+ inline bool operator == (const wxPalette& palette) const { return m_refData == palette.m_refData; }
+ inline bool operator != (const wxPalette& palette) const { return m_refData != palette.m_refData; }
+
+ virtual bool FreeResource(bool force = FALSE);
+
+ inline WXHPALETTE GetHPALETTE(void) const { return (M_PALETTEDATA ? M_PALETTEDATA->m_hPalette : 0); }
+ void SetHPALETTE(WXHPALETTE pal);
+};
+
+#define wxColorMap wxPalette
+#define wxColourMap wxPalette
+
+#endif
+ // _WX_PALETTE_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/pen.h
+// Purpose: wxPen class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PEN_H_
+#define _WX_PEN_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "pen.h"
+#endif
+
+#include "wx/gdiobj.h"
+#include "wx/bitmap.h"
+#include "wx/colour.h"
+
+typedef WXDWORD wxMSWDash;
+
+class WXDLLEXPORT wxPen;
+
+// VZ: this class should be made private
+class WXDLLEXPORT wxPenRefData : public wxGDIRefData
+{
+public:
+ wxPenRefData();
+ wxPenRefData(const wxPenRefData& data);
+ virtual ~wxPenRefData();
+
+ bool operator==(const wxPenRefData& data) const
+ {
+ // we intentionally don't compare m_hPen fields here
+ return m_style == data.m_style &&
+ m_width == data.m_width &&
+ m_join == data.m_join &&
+ m_cap == data.m_cap &&
+ m_colour == data.m_colour &&
+ (m_style != wxSTIPPLE || m_stipple == data.m_stipple) &&
+ (m_style != wxUSER_DASH ||
+ (m_nbDash == data.m_nbDash &&
+ memcmp(m_dash, data.m_dash, m_nbDash*sizeof(wxDash)) == 0));
+ }
+
+protected:
+ int m_width;
+ int m_style;
+ int m_join;
+ int m_cap;
+ wxBitmap m_stipple;
+ int m_nbDash;
+ wxDash * m_dash;
+ wxColour m_colour;
+ WXHPEN m_hPen;
+
+private:
+ friend class WXDLLEXPORT wxPen;
+
+ // Cannot use
+ // DECLARE_NO_COPY_CLASS(wxPenRefData)
+ // because copy constructor is explicitly declared above;
+ // but no copy assignment operator is defined, so declare
+ // it private to prevent the compiler from defining it:
+ wxPenRefData& operator=(const wxPenRefData&);
+};
+
+#define M_PENDATA ((wxPenRefData *)m_refData)
+#define wxPENDATA(x) ((wxPenRefData *)(x).m_refData)
+
+// ----------------------------------------------------------------------------
+// Pen
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxPen : public wxGDIObject
+{
+public:
+ wxPen();
+ wxPen(const wxColour& col, int width = 1, int style = wxSOLID);
+ wxPen(const wxBitmap& stipple, int width);
+ wxPen(const wxPen& pen) { Ref(pen); }
+ virtual ~wxPen();
+
+ wxPen& operator=(const wxPen& pen)
+ {
+ if ( this != &pen )
+ Ref(pen);
+
+ return *this;
+ }
+
+ bool operator==(const wxPen& pen) const
+ {
+ const wxPenRefData *penData = (wxPenRefData *)pen.m_refData;
+
+ // an invalid pen is only equal to another invalid pen
+ return m_refData ? penData && *M_PENDATA == *penData : !penData;
+ }
+
+ bool operator!=(const wxPen& pen) const { return !(*this == pen); }
+
+ virtual bool Ok() const { return (m_refData != NULL); }
+
+ // Override in order to recreate the pen
+ void SetColour(const wxColour& col);
+ void SetColour(unsigned char r, unsigned char g, unsigned char b);
+
+ void SetWidth(int width);
+ void SetStyle(int style);
+ void SetStipple(const wxBitmap& stipple);
+ void SetDashes(int nb_dashes, const wxDash *dash);
+ void SetJoin(int join);
+ void SetCap(int cap);
+
+ wxColour& GetColour() const { return (M_PENDATA ? M_PENDATA->m_colour : wxNullColour); };
+ int GetWidth() const { return (M_PENDATA ? M_PENDATA->m_width : 0); };
+ int GetStyle() const { return (M_PENDATA ? M_PENDATA->m_style : 0); };
+ int GetJoin() const { return (M_PENDATA ? M_PENDATA->m_join : 0); };
+ int GetCap() const { return (M_PENDATA ? M_PENDATA->m_cap : 0); };
+ int GetDashes(wxDash **ptr) const
+ {
+ *ptr = (M_PENDATA ? (wxDash*)M_PENDATA->m_dash : (wxDash*) NULL);
+ return (M_PENDATA ? M_PENDATA->m_nbDash : 0);
+ }
+ wxDash* GetDash() const { return (M_PENDATA ? (wxDash*)M_PENDATA->m_dash : (wxDash*)NULL); };
+ inline int GetDashCount() const { return (M_PENDATA ? M_PENDATA->m_nbDash : 0); };
+
+ inline wxBitmap *GetStipple() const { return (M_PENDATA ? (& M_PENDATA->m_stipple) : (wxBitmap*) NULL); };
+
+ // Internal
+ bool RealizeResource();
+ bool FreeResource(bool force = FALSE);
+ WXHANDLE GetResourceHandle() const;
+ bool IsFree() const;
+ void Unshare();
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxPen)
+};
+
+#endif // _WX_PEN_H_
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/popupwin.h
+// Purpose: wxPopupWindow class for wxMSW
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSW_POPUPWIN_H_
+#define _WX_MSW_POPUPWIN_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "popup.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// wxPopupWindow
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxPopupWindow : public wxPopupWindowBase
+{
+public:
+ wxPopupWindow() { }
+
+ wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE)
+ { (void)Create(parent, flags); }
+
+ bool Create(wxWindow *parent, int flags = wxBORDER_NONE);
+
+ virtual bool Show(bool show = TRUE);
+
+protected:
+ // popups handle the position like wxTopLevelWindow, not wxWindow
+ virtual void DoGetPosition(int *x, int *y) const;
+
+ // return the style to be used for the popup windows
+ virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle) const;
+
+ // get the HWND to be used as parent of this window with CreateWindow()
+ virtual WXHWND MSWGetParent() const;
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxPopupWindow)
+};
+
+#endif // _WX_MSW_POPUPWIN_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: printdlg.h
+// Purpose: wxPrintDialog, wxPageSetupDialog classes
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PRINTDLG_H_
+#define _WX_PRINTDLG_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "printdlg.h"
+#endif
+
+#if wxUSE_PRINTING_ARCHITECTURE
+
+#include "wx/dialog.h"
+#include "wx/cmndata.h"
+
+class WXDLLEXPORT wxDC;
+
+// ---------------------------------------------------------------------------
+// wxPrinterDialog: the common dialog for printing.
+// ---------------------------------------------------------------------------
+
+class WXDLLEXPORT wxPrintDialog : public wxDialog
+{
+ DECLARE_DYNAMIC_CLASS(wxPrintDialog)
+
+public:
+ wxPrintDialog();
+ wxPrintDialog(wxWindow *parent, wxPrintDialogData* data = NULL);
+ wxPrintDialog(wxWindow *parent, wxPrintData* data);
+ virtual ~wxPrintDialog();
+
+ bool Create(wxWindow *parent, wxPrintDialogData* data = NULL);
+ virtual int ShowModal();
+
+ wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; }
+ wxPrintData& GetPrintData() { return m_printDialogData.GetPrintData(); }
+ virtual wxDC *GetPrintDC();
+
+private:
+ wxPrintDialogData m_printDialogData;
+ wxDC* m_printerDC;
+ bool m_destroyDC;
+ wxWindow* m_dialogParent;
+
+ DECLARE_NO_COPY_CLASS(wxPrintDialog)
+};
+
+class WXDLLEXPORT wxPageSetupDialog: public wxDialog
+{
+ DECLARE_DYNAMIC_CLASS(wxPageSetupDialog)
+
+public:
+ wxPageSetupDialog();
+ wxPageSetupDialog(wxWindow *parent, wxPageSetupData *data = NULL);
+ virtual ~wxPageSetupDialog();
+
+ bool Create(wxWindow *parent, wxPageSetupData *data = NULL);
+ virtual int ShowModal();
+
+ wxPageSetupData& GetPageSetupData() { return m_pageSetupData; }
+
+private:
+ wxPageSetupData m_pageSetupData;
+ wxWindow* m_dialogParent;
+
+ DECLARE_NO_COPY_CLASS(wxPageSetupDialog)
+};
+
+#endif // wxUSE_PRINTING_ARCHITECTURE
+
+#endif
+ // _WX_PRINTDLG_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: printpalm.h
+// Purpose: wxPalmPrinter, wxPalmPrintPreview classes
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PRINTPALM_H_
+#define _WX_PRINTPALM_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "printpalm.h"
+#endif
+
+#include "wx/prntbase.h"
+
+// ---------------------------------------------------------------------------
+// Represents the printer: manages printing a wxPrintout object
+// ---------------------------------------------------------------------------
+
+class WXDLLEXPORT wxPalmPrinter : public wxPrinterBase
+{
+ DECLARE_DYNAMIC_CLASS(wxPalmPrinter)
+
+public:
+ wxPalmPrinter(wxPrintDialogData *data = NULL);
+ virtual ~wxPalmPrinter();
+
+ virtual bool Print(wxWindow *parent,
+ wxPrintout *printout,
+ bool prompt = TRUE);
+ virtual wxDC* PrintDialog(wxWindow *parent);
+ virtual bool Setup(wxWindow *parent);
+
+private:
+ WXFARPROC m_lpAbortProc;
+
+ DECLARE_NO_COPY_CLASS(wxPalmPrinter)
+};
+
+// ---------------------------------------------------------------------------
+// wxPrintPreview: programmer creates an object of this class to preview a
+// wxPrintout.
+// ---------------------------------------------------------------------------
+
+class WXDLLEXPORT wxPalmPrintPreview : public wxPrintPreviewBase
+{
+public:
+ wxPalmPrintPreview(wxPrintout *printout,
+ wxPrintout *printoutForPrinting = NULL,
+ wxPrintDialogData *data = NULL);
+ wxPalmPrintPreview(wxPrintout *printout,
+ wxPrintout *printoutForPrinting,
+ wxPrintData *data);
+ virtual ~wxPalmPrintPreview();
+
+ virtual bool Print(bool interactive);
+ virtual void DetermineScaling();
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxPalmPrintPreview)
+};
+
+#endif
+// _WX_PRINTPALM_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/radiobox.h
+// Purpose: wxRadioBox class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_RADIOBOX_H_
+#define _WX_RADIOBOX_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "radiobox.h"
+#endif
+
+class WXDLLEXPORT wxBitmap;
+
+// ----------------------------------------------------------------------------
+// wxRadioBox
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxRadioBox : public wxControl, public wxRadioBoxBase
+{
+public:
+ wxRadioBox();
+
+ wxRadioBox(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = NULL,
+ int majorDim = 0,
+ long style = wxRA_HORIZONTAL,
+ const wxValidator& val = wxDefaultValidator,
+ const wxString& name = wxRadioBoxNameStr)
+ {
+ (void)Create(parent, id, title, pos, size, n, choices, majorDim,
+ style, val, name);
+ }
+ wxRadioBox(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ int majorDim = 0,
+ long style = wxRA_HORIZONTAL,
+ const wxValidator& val = wxDefaultValidator,
+ const wxString& name = wxRadioBoxNameStr)
+ {
+ (void)Create(parent, id, title, pos, size, choices, majorDim,
+ style, val, name);
+ }
+
+ ~wxRadioBox();
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = NULL,
+ int majorDim = 0,
+ long style = wxRA_HORIZONTAL,
+ const wxValidator& val = wxDefaultValidator,
+ const wxString& name = wxRadioBoxNameStr);
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ int majorDim = 0,
+ long style = wxRA_HORIZONTAL,
+ const wxValidator& val = wxDefaultValidator,
+ const wxString& name = wxRadioBoxNameStr);
+
+ // implement the radiobox interface
+ virtual void SetSelection(int n);
+ virtual int GetSelection() const;
+ virtual int GetCount() const;
+ virtual wxString GetString(int n) const;
+ virtual void SetString(int n, const wxString& label);
+ virtual void Enable(int n, bool enable = TRUE);
+ virtual void Show(int n, bool show = TRUE);
+ virtual int GetColumnCount() const;
+ virtual int GetRowCount() const;
+
+ virtual bool Show(bool show = TRUE);
+ void SetFocus();
+ virtual bool Enable(bool enable = TRUE);
+ void SetLabelFont(const wxFont& WXUNUSED(font)) {};
+ void SetButtonFont(const wxFont& font) { SetFont(font); }
+
+ void Command(wxCommandEvent& event);
+
+ int GetNumberOfRowsOrCols() const { return m_noRowsOrCols; }
+ void SetNumberOfRowsOrCols(int n) { m_noRowsOrCols = n; }
+
+ // implementation only from now on
+ // -------------------------------
+
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+
+ // FIXME: are they used? missing "Do" prefix?
+ void GetSize(int *x, int *y) const;
+ void GetPosition(int *x, int *y) const;
+
+ virtual bool SetFont(const wxFont& font);
+
+ WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+ virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
+ WXUINT message,
+ WXWPARAM wParam, WXLPARAM lParam);
+ WXHWND *GetRadioButtons() const { return m_radioButtons; }
+ bool ContainsHWND(WXHWND hWnd) const;
+ void SendNotificationEvent();
+
+ // get the number of buttons per column/row
+ int GetNumVer() const;
+ int GetNumHor() const;
+
+ virtual void ApplyParentThemeBackground(const wxColour& bg)
+ { SetBackgroundColour(bg); }
+
+protected:
+ // we can't compute our best size before the items are added to the control
+ virtual void SetInitialBestSize(const wxSize& WXUNUSED(size)) { }
+
+ // subclass one radio button
+ void SubclassRadioButton(WXHWND hWndBtn);
+
+ // get the max size of radio buttons
+ wxSize GetMaxButtonSize() const;
+
+ // get the total size occupied by the radio box buttons
+ wxSize GetTotalButtonSize(const wxSize& sizeBtn) const;
+
+ WXHWND * m_radioButtons;
+ int m_majorDim;
+ int * m_radioWidth; // for bitmaps
+ int * m_radioHeight;
+
+ int m_noItems;
+ int m_noRowsOrCols;
+ int m_selectedButton;
+
+ virtual void DoSetSize(int x, int y,
+ int width, int height,
+ int sizeFlags = wxSIZE_AUTO);
+ virtual wxSize DoGetBestSize() const;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxRadioBox)
+ DECLARE_NO_COPY_CLASS(wxRadioBox)
+};
+
+#endif
+ // _WX_RADIOBOX_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: radiobut.h
+// Purpose: wxRadioButton class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_RADIOBUT_H_
+#define _WX_RADIOBUT_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "radiobut.h"
+#endif
+
+class WXDLLEXPORT wxRadioButton: public wxControl
+{
+public:
+ // ctors and creation functions
+ wxRadioButton() { Init(); }
+
+ wxRadioButton(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxRadioButtonNameStr)
+ {
+ Init();
+
+ Create(parent, id, label, pos, size, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxRadioButtonNameStr);
+
+ // implement the radio button interface
+ virtual void SetValue(bool value);
+ virtual bool GetValue() const;
+
+ // implementation only from now on
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ virtual void Command(wxCommandEvent& event);
+ virtual void ApplyParentThemeBackground(const wxColour& bg)
+ { SetBackgroundColour(bg); }
+
+
+protected:
+ virtual wxSize DoGetBestSize() const;
+
+private:
+ // common part of all ctors
+ void Init();
+
+ // we need to store the state internally as the result of GetValue()
+ // sometimes gets out of sync in WM_COMMAND handler
+ bool m_isChecked;
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxRadioButton)
+};
+
+#endif
+ // _WX_RADIOBUT_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/regconf.h
+// Purpose: Registry based implementation of wxConfigBase
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _REGCONF_H
+#define _REGCONF_H
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "regconf.h"
+#endif
+
+#ifndef _REGISTRY_H
+ #include "wx/palmos/registry.h"
+#endif
+#include "wx/object.h"
+
+// ----------------------------------------------------------------------------
+// wxRegConfig
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_BASE wxRegConfig : public wxConfigBase
+{
+public:
+ // ctor & dtor
+ // will store data in HKLM\appName and HKCU\appName
+ wxRegConfig(const wxString& appName = wxEmptyString,
+ const wxString& vendorName = wxEmptyString,
+ const wxString& localFilename = wxEmptyString,
+ const wxString& globalFilename = wxEmptyString,
+ long style = wxCONFIG_USE_GLOBAL_FILE);
+
+ // dtor will save unsaved data
+ virtual ~wxRegConfig();
+
+ // implement inherited pure virtual functions
+ // ------------------------------------------
+
+ // path management
+ virtual void SetPath(const wxString& strPath);
+ virtual const wxString& GetPath() const { return m_strPath; }
+
+ // entry/subgroup info
+ // enumerate all of them
+ virtual bool GetFirstGroup(wxString& str, long& lIndex) const;
+ virtual bool GetNextGroup (wxString& str, long& lIndex) const;
+ virtual bool GetFirstEntry(wxString& str, long& lIndex) const;
+ virtual bool GetNextEntry (wxString& str, long& lIndex) const;
+
+ // tests for existence
+ virtual bool HasGroup(const wxString& strName) const;
+ virtual bool HasEntry(const wxString& strName) const;
+ virtual EntryType GetEntryType(const wxString& name) const;
+
+ // get number of entries/subgroups in the current group, with or without
+ // it's subgroups
+ virtual size_t GetNumberOfEntries(bool bRecursive = FALSE) const;
+ virtual size_t GetNumberOfGroups(bool bRecursive = FALSE) const;
+
+ virtual bool Flush(bool WXUNUSED(bCurrentOnly) = FALSE) { return TRUE; }
+
+ // rename
+ virtual bool RenameEntry(const wxString& oldName, const wxString& newName);
+ virtual bool RenameGroup(const wxString& oldName, const wxString& newName);
+
+ // delete
+ virtual bool DeleteEntry(const wxString& key, bool bGroupIfEmptyAlso = TRUE);
+ virtual bool DeleteGroup(const wxString& key);
+ virtual bool DeleteAll();
+
+protected:
+ // opens the local key creating it if necessary and returns it
+ wxRegKey& LocalKey() const // must be const to be callable from const funcs
+ {
+ wxRegConfig* self = wxConstCast(this, wxRegConfig);
+
+ if ( !m_keyLocal.IsOpened() )
+ {
+ // create on demand
+ self->m_keyLocal.Create();
+ }
+
+ return self->m_keyLocal;
+ }
+
+ // implement read/write methods
+ virtual bool DoReadString(const wxString& key, wxString *pStr) const;
+ virtual bool DoReadLong(const wxString& key, long *plResult) const;
+
+ virtual bool DoWriteString(const wxString& key, const wxString& szValue);
+ virtual bool DoWriteLong(const wxString& key, long lValue);
+
+private:
+ // no copy ctor/assignment operator
+ wxRegConfig(const wxRegConfig&);
+ wxRegConfig& operator=(const wxRegConfig&);
+
+ // these keys are opened during all lifetime of wxRegConfig object
+ wxRegKey m_keyLocalRoot, m_keyLocal,
+ m_keyGlobalRoot, m_keyGlobal;
+
+ // current path (not '/' terminated)
+ wxString m_strPath;
+};
+
+#endif //_REGCONF_H
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/region.h
+// Purpose: wxRegion class
+// Author: Julian Smart
+// Modified by:
+// Created: 01/02/97
+// RCS-ID: $Id$
+// Copyright: (c) 1997-2002 wxWidgets team
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_REGION_H_
+#define _WX_REGION_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "region.h"
+#endif
+
+#include "wx/gdiobj.h"
+#include "wx/gdicmn.h"
+
+class WXDLLEXPORT wxRect;
+class WXDLLEXPORT wxPoint;
+
+enum wxRegionContain
+{
+ wxOutRegion = 0,
+ wxPartRegion = 1,
+ wxInRegion = 2
+};
+
+// So far, for internal use only
+enum wxRegionOp
+{
+ wxRGN_AND, // Creates the intersection of the two combined regions.
+ wxRGN_COPY, // Creates a copy of the region identified by hrgnSrc1.
+ wxRGN_DIFF, // Combines the parts of hrgnSrc1 that are not part of hrgnSrc2.
+ wxRGN_OR, // Creates the union of two combined regions.
+ wxRGN_XOR // Creates the union of two combined regions except for any overlapping areas.
+};
+
+class WXDLLEXPORT wxRegion : public wxGDIObject
+{
+public:
+ wxRegion();
+ wxRegion(wxCoord x, wxCoord y, wxCoord w, wxCoord h);
+ wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight);
+ wxRegion(const wxRect& rect);
+ wxRegion(WXHRGN hRegion); // Hangs on to this region
+ wxRegion(size_t n, const wxPoint *points, int fillStyle = wxODDEVEN_RULE );
+ wxRegion( const wxBitmap& bmp)
+ {
+ Union(bmp);
+ }
+ wxRegion( const wxBitmap& bmp,
+ const wxColour& transColour, int tolerance = 0)
+ {
+ Union(bmp, transColour, tolerance);
+ }
+
+ virtual ~wxRegion();
+
+ // Copying
+ wxRegion(const wxRegion& r) : wxGDIObject(r)
+ { Ref(r); }
+ wxRegion& operator = (const wxRegion& r)
+ { Ref(r); return (*this); }
+
+ // Modify region
+ // -------------
+
+ // Clear current region
+ void Clear();
+
+ // Move the region
+ bool Offset(wxCoord x, wxCoord y);
+
+ // Union rectangle or region with this.
+ bool Union(wxCoord x, wxCoord y, wxCoord width, wxCoord height) { return Combine(x, y, width, height, wxRGN_OR); }
+ bool Union(const wxRect& rect) { return Combine(rect, wxRGN_OR); }
+ bool Union(const wxRegion& region) { return Combine(region, wxRGN_OR); }
+
+ // Intersect rectangle or region with this.
+ bool Intersect(wxCoord x, wxCoord y, wxCoord width, wxCoord height) { return Combine(x, y, width, height, wxRGN_AND); }
+ bool Intersect(const wxRect& rect) { return Combine(rect, wxRGN_AND); }
+ bool Intersect(const wxRegion& region) { return Combine(region, wxRGN_AND); }
+
+ // Subtract rectangle or region from this:
+ // Combines the parts of 'this' that are not part of the second region.
+ bool Subtract(wxCoord x, wxCoord y, wxCoord width, wxCoord height) { return Combine(x, y, width, height, wxRGN_DIFF); }
+ bool Subtract(const wxRect& rect) { return Combine(rect, wxRGN_DIFF); }
+ bool Subtract(const wxRegion& region) { return Combine(region, wxRGN_DIFF); }
+
+ // XOR: the union of two combined regions except for any overlapping areas.
+ bool Xor(wxCoord x, wxCoord y, wxCoord width, wxCoord height) { return Combine(x, y, width, height, wxRGN_XOR); }
+ bool Xor(const wxRect& rect) { return Combine(rect, wxRGN_XOR); }
+ bool Xor(const wxRegion& region) { return Combine(region, wxRGN_XOR); }
+
+ // Information on region
+ // ---------------------
+
+ // Outer bounds of region
+ void GetBox(wxCoord& x, wxCoord& y, wxCoord&w, wxCoord &h) const;
+ wxRect GetBox() const ;
+
+ // Is region empty?
+ bool Empty() const;
+ inline bool IsEmpty() const { return Empty(); }
+
+ // Tests
+ // Does the region contain the point (x,y)?
+ wxRegionContain Contains(wxCoord x, wxCoord y) const;
+ // Does the region contain the point pt?
+ wxRegionContain Contains(const wxPoint& pt) const;
+ // Does the region contain the rectangle (x, y, w, h)?
+ wxRegionContain Contains(wxCoord x, wxCoord y, wxCoord w, wxCoord h) const;
+ // Does the region contain the rectangle rect?
+ wxRegionContain Contains(const wxRect& rect) const;
+
+ // Convert the region to a B&W bitmap with the white pixels being inside
+ // the region.
+ wxBitmap ConvertToBitmap() const;
+
+ // Use the non-transparent pixels of a wxBitmap for the region to combine
+ // with this region. First version takes transparency from bitmap's mask,
+ // second lets the user specify the colour to be treated as transparent
+ // along with an optional tolerance value.
+ // NOTE: implemented in common/rgncmn.cpp
+ bool Union(const wxBitmap& bmp);
+ bool Union(const wxBitmap& bmp,
+ const wxColour& transColour, int tolerance = 0);
+
+// Internal
+ bool Combine(wxCoord x, wxCoord y, wxCoord width, wxCoord height, wxRegionOp op);
+ bool Combine(const wxRegion& region, wxRegionOp op);
+ bool Combine(const wxRect& rect, wxRegionOp op);
+
+ // Get internal region handle
+ WXHRGN GetHRGN() const;
+
+protected:
+ virtual wxObjectRefData *CreateRefData() const;
+ virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const;
+
+ friend class WXDLLEXPORT wxRegionIterator;
+
+ DECLARE_DYNAMIC_CLASS(wxRegion)
+};
+
+class WXDLLEXPORT wxRegionIterator : public wxObject
+{
+public:
+ wxRegionIterator() { Init(); }
+ wxRegionIterator(const wxRegion& region);
+ wxRegionIterator(const wxRegionIterator& ri) : wxObject(ri) { Init(); *this = ri; }
+
+ wxRegionIterator& operator=(const wxRegionIterator& ri);
+
+ virtual ~wxRegionIterator();
+
+ void Reset() { m_current = 0; }
+ void Reset(const wxRegion& region);
+
+ bool HaveRects() const { return (m_current < m_numRects); }
+
+#ifndef __SALFORDC__
+ operator bool () const { return HaveRects(); }
+#endif
+
+ wxRegionIterator& operator++();
+ wxRegionIterator operator++(int);
+
+ wxCoord GetX() const;
+ wxCoord GetY() const;
+ wxCoord GetW() const;
+ wxCoord GetWidth() const { return GetW(); }
+ wxCoord GetH() const;
+ wxCoord GetHeight() const { return GetH(); }
+
+ wxRect GetRect() const { return wxRect(GetX(), GetY(), GetW(), GetH()); }
+
+private:
+ // common part of all ctors
+ void Init();
+
+ long m_current;
+ long m_numRects;
+ wxRegion m_region;
+ wxRect* m_rects;
+
+ DECLARE_DYNAMIC_CLASS(wxRegionIterator)
+};
+
+#endif
+ // _WX_REGION_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/registry.h
+// Purpose: Registry classes and functions
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _REGISTRY_H
+#define _REGISTRY_H
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "registry.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// types used in this module
+// ----------------------------------------------------------------------------
+
+/*
+#ifndef HKEY_DEFINED
+ #define HKEY_DEFINED
+ #define HKEY unsigned long
+#endif
+*/
+
+typedef unsigned long ulong;
+
+// ----------------------------------------------------------------------------
+// class wxRegKey encapsulates window HKEY handle
+// ----------------------------------------------------------------------------
+class WXDLLIMPEXP_BASE wxRegKey
+{
+public:
+ // NB: do _not_ change the values of elements in these enumerations!
+
+ // registry value types (with comments from winnt.h)
+ enum ValueType
+ {
+ Type_None, // No value type
+ Type_String, // Unicode nul terminated string
+#ifdef __WIN32__
+ Type_Expand_String, // Unicode nul terminated string
+ // (with environment variable references)
+ Type_Binary, // Free form binary
+ Type_Dword, // 32-bit number
+ Type_Dword_little_endian // 32-bit number
+ = Type_Dword, // (same as Type_DWORD)
+ Type_Dword_big_endian, // 32-bit number
+ Type_Link, // Symbolic Link (unicode)
+ Type_Multi_String, // Multiple Unicode strings
+ Type_Resource_list, // Resource list in the resource map
+ Type_Full_resource_descriptor, // Resource list in the hardware description
+ Type_Resource_requirements_list // ???
+#endif //WIN32
+ };
+
+ // predefined registry keys
+ enum StdKey
+ {
+ HKCR // classes root
+#ifdef __WIN32__
+ ,
+ HKCU, // current user
+ HKLM, // local machine
+ HKUSR, // users
+ HKPD // performance data (WinNT/2K only)
+#if WINVER >= 0x0400
+ ,
+ HKCC, // current config (starting from Win95/NT 4.0)
+ HKDD // dynamic data (Win95/98 only)
+#endif // Winver
+#endif // Win32/16
+ };
+
+ // access mode for the key
+ enum AccessMode
+ {
+ Read, // read-only
+ Write // read and write
+ };
+
+ // information about standard (predefined) registry keys
+ // number of standard keys
+ static const size_t nStdKeys;
+ // get the name of a standard key
+ static const wxChar *GetStdKeyName(size_t key);
+ // get the short name of a standard key
+ static const wxChar *GetStdKeyShortName(size_t key);
+ // get StdKey from root HKEY
+ static StdKey GetStdKeyFromHkey(WXHKEY hkey);
+
+ // extacts the std key prefix from the string (return value) and
+ // leaves only the part after it (i.e. modifies the string passed!)
+ static StdKey ExtractKeyName(wxString& str);
+
+ // ctors
+ // root key is set to HKCR (the only root key under Win16)
+ wxRegKey();
+ // strKey is the full name of the key (i.e. starting with HKEY_xxx...)
+ wxRegKey(const wxString& strKey);
+ // strKey is the name of key under (standard key) keyParent
+ wxRegKey(StdKey keyParent, const wxString& strKey);
+ // strKey is the name of key under (previously created) keyParent
+ wxRegKey(const wxRegKey& keyParent, const wxString& strKey);
+ // dtor closes the key
+ ~wxRegKey();
+
+ // change key (closes the previously opened key if any)
+ // the name is absolute, i.e. should start with HKEY_xxx
+ void SetName(const wxString& strKey);
+ // the name is relative to the parent key
+ void SetName(StdKey keyParent, const wxString& strKey);
+ // the name is relative to the parent key
+ void SetName(const wxRegKey& keyParent, const wxString& strKey);
+ // hKey should be opened and will be closed in wxRegKey dtor
+ void SetHkey(WXHKEY hKey);
+
+ // get infomation about the key
+ // get the (full) key name. Abbreviate std root keys if bShortPrefix.
+ wxString GetName(bool bShortPrefix = TRUE) const;
+ // return true if the key exists
+ bool Exists() const;
+ // get the info about key (any number of these pointers may be NULL)
+ bool GetKeyInfo(size_t *pnSubKeys, // number of subkeys
+ size_t *pnMaxKeyLen, // max len of subkey name
+ size_t *pnValues, // number of values
+ size_t *pnMaxValueLen) const;
+ // return true if the key is opened
+ bool IsOpened() const { return m_hKey != 0; }
+ // for "if ( !key ) wxLogError(...)" kind of expressions
+ operator bool() const { return m_dwLastError == 0; }
+
+ // operations on the key itself
+ // explicitly open the key (will be automatically done by all functions
+ // which need the key to be opened if the key is not opened yet)
+ bool Open(AccessMode mode = Write);
+ // create the key: will fail if the key already exists and !bOkIfExists
+ bool Create(bool bOkIfExists = TRUE);
+ // rename a value from old name to new one
+ bool RenameValue(const wxChar *szValueOld, const wxChar *szValueNew);
+ // rename the key
+ bool Rename(const wxChar *szNewName);
+ // copy value to another key possibly changing its name (by default it will
+ // remain the same)
+ bool CopyValue(const wxChar *szValue, wxRegKey& keyDst,
+ const wxChar *szNewName = NULL);
+ // copy the entire contents of the key recursively to another location
+ bool Copy(const wxChar *szNewName);
+ // same as Copy() but using a key and not the name
+ bool Copy(wxRegKey& keyDst);
+ // close the key (will be automatically done in dtor)
+ bool Close();
+
+ // deleting keys/values
+ // deletes this key and all of it's subkeys/values
+ bool DeleteSelf();
+ // deletes the subkey with all of it's subkeys/values recursively
+ bool DeleteKey(const wxChar *szKey);
+ // deletes the named value (may be NULL to remove the default value)
+ bool DeleteValue(const wxChar *szValue);
+
+ // access to values and subkeys
+ // get value type
+ ValueType GetValueType(const wxChar *szValue) const;
+ // returns TRUE if the value contains a number (else it's some string)
+ bool IsNumericValue(const wxChar *szValue) const;
+
+ // assignment operators set the default value of the key
+ wxRegKey& operator=(const wxString& strValue)
+ { SetValue(NULL, strValue); return *this; }
+ wxRegKey& operator=(long lValue)
+ { SetValue(NULL, lValue); return *this; }
+
+ // query the default value of the key: implicitly or explicitly
+ wxString QueryDefaultValue() const;
+ operator wxString() const { return QueryDefaultValue(); }
+
+ // named values
+
+ // set the string value
+ bool SetValue(const wxChar *szValue, const wxString& strValue);
+ // retrieve the string value
+ bool QueryValue(const wxChar *szValue, wxString& strValue) const
+ { return QueryValue(szValue, strValue, FALSE); }
+ // retrieve raw string value
+ bool QueryRawValue(const wxChar *szValue, wxString& strValue) const
+ { return QueryValue(szValue, strValue, TRUE); }
+ // retrieve either raw or expanded string value
+ bool QueryValue(const wxChar *szValue, wxString& strValue, bool raw) const;
+
+#ifdef __WIN32__
+ // set the numeric value
+ bool SetValue(const wxChar *szValue, long lValue);
+ // return the numeric value
+ bool QueryValue(const wxChar *szValue, long *plValue) const;
+#endif //Win32
+
+ // query existence of a key/value
+ // return true if value exists
+ bool HasValue(const wxChar *szKey) const;
+ // return true if given subkey exists
+ bool HasSubKey(const wxChar *szKey) const;
+ // return true if any subkeys exist
+ bool HasSubkeys() const;
+ // return true if any values exist
+ bool HasValues() const;
+ // return true if the key is empty (nothing under this key)
+ bool IsEmpty() const { return !HasSubkeys() && !HasValues(); }
+
+ // enumerate values and subkeys
+ bool GetFirstValue(wxString& strValueName, long& lIndex);
+ bool GetNextValue (wxString& strValueName, long& lIndex) const;
+
+ bool GetFirstKey (wxString& strKeyName , long& lIndex);
+ bool GetNextKey (wxString& strKeyName , long& lIndex) const;
+
+ // for wxRegConfig usage only: preallocate some memory for the name
+ void ReserveMemoryForName(size_t bytes) { m_strKey.reserve(bytes); }
+
+private:
+ // common part of all ctors
+ void Init()
+ {
+ m_hKey = (WXHKEY) NULL;
+ m_dwLastError = 0;
+ }
+
+ // no copy ctor/assignment operator
+ wxRegKey(const wxRegKey& key); // not implemented
+ wxRegKey& operator=(const wxRegKey& key); // not implemented
+
+ WXHKEY m_hKey, // our handle
+ m_hRootKey; // handle of the top key (i.e. StdKey)
+ wxString m_strKey; // key name (relative to m_hRootKey)
+
+ long m_dwLastError; // last error (0 if none)
+};
+
+#endif //_REGISTRY_H
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: scrollbar.h
+// Purpose: wxScrollBar class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_SCROLBAR_H_
+#define _WX_SCROLBAR_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "scrolbar.h"
+#endif
+
+// Scrollbar item
+class WXDLLEXPORT wxScrollBar: public wxScrollBarBase
+{
+public:
+ wxScrollBar() { m_pageSize = 0; m_viewSize = 0; m_objectSize = 0; }
+ ~wxScrollBar();
+
+ wxScrollBar(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSB_HORIZONTAL,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxScrollBarNameStr)
+ {
+ Create(parent, id, pos, size, style, validator, name);
+ }
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSB_HORIZONTAL,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxScrollBarNameStr);
+
+ int GetThumbPosition() const ;
+ int GetThumbSize() const { return m_pageSize; }
+ int GetPageSize() const { return m_viewSize; }
+ int GetRange() const { return m_objectSize; }
+
+ virtual void SetThumbPosition(int viewStart);
+ virtual void SetScrollbar(int position, int thumbSize, int range, int pageSize,
+ bool refresh = TRUE);
+
+ // needed for RTTI
+ void SetThumbSize( int s ) { SetScrollbar( GetThumbPosition() , s , GetRange() , GetPageSize() , true ) ; }
+ void SetPageSize( int s ) { SetScrollbar( GetThumbPosition() , GetThumbSize() , GetRange() , s , true ) ; }
+ void SetRange( int s ) { SetScrollbar( GetThumbPosition() , GetThumbSize() , s , GetPageSize() , true ) ; }
+
+ void Command(wxCommandEvent& event);
+ virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
+ WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+ virtual bool MSWOnScroll(int orientation, WXWORD wParam,
+ WXWORD pos, WXHWND control);
+
+protected:
+
+ wxSize DoGetBestSize() const;
+
+ int m_pageSize;
+ int m_viewSize;
+ int m_objectSize;
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxScrollBar)
+};
+
+#endif
+ // _WX_SCROLBAR_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/msw/setup.h
+// Purpose: Configuration for the library
+// Author: Julian Smart
+// Modified by:
+// Created: 01/02/97
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_SETUP_H_
+#define _WX_SETUP_H_
+
+// ----------------------------------------------------------------------------
+// global settings
+// ----------------------------------------------------------------------------
+
+// define this to 0 when building wxBase library - this can also be done from
+// makefile/project file overriding the value here
+#ifndef wxUSE_GUI
+ #define wxUSE_GUI 1
+#endif // wxUSE_GUI
+
+// ----------------------------------------------------------------------------
+// compatibility settings
+// ----------------------------------------------------------------------------
+
+// This setting determines the compatibility with 2.2 API: set it to 1 to
+// enable it but please consider updating your code instead.
+//
+// Default is 0
+//
+// Recommended setting: 0 (please update your code)
+#define WXWIN_COMPATIBILITY_2_2 0
+
+// This setting determines the compatibility with 2.4 API: set it to 0 to
+// flag all cases of using deprecated functions.
+//
+// Default is 1 but please try building your code with 0 as the default will
+// change to 0 in the next version and the deprecated functions will disappear
+// in the version after it completely.
+//
+// Recommended setting: 0 (please update your code)
+#define WXWIN_COMPATIBILITY_2_4 1
+
+// Define as 1 for font size to be backward compatible to 1.63 and earlier.
+// 1.64 and later define point sizes to be compatible with Windows.
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxFONT_SIZE_COMPATIBILITY 0
+
+// Set to 0 for accurate dialog units, else 1 to be as per 2.1.16 and before.
+// If migrating between versions, your dialogs may seem to shrink.
+//
+// Default is 1
+//
+// Recommended setting: 0 (the new calculations are more correct!)
+#define wxDIALOG_UNIT_COMPATIBILITY 1
+
+// ----------------------------------------------------------------------------
+// debugging settings
+// ----------------------------------------------------------------------------
+
+// Generic comment about debugging settings: they are very useful if you don't
+// use any other memory leak detection tools such as Purify/BoundsChecker, but
+// are probably redundant otherwise. Also, Visual C++ CRT has the same features
+// as wxWidgets memory debugging subsystem built in since version 5.0 and you
+// may prefer to use it instead of built in memory debugging code because it is
+// faster and more fool proof.
+//
+// Using VC++ CRT memory debugging is enabled by default in debug mode
+// (__WXDEBUG__) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0)
+// and if __NO_VC_CRTDBG__ is not defined.
+
+// If 1, enables wxDebugContext, for writing error messages to file, etc. If
+// __WXDEBUG__ is not defined, will still use the normal memory operators.
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_DEBUG_CONTEXT 0
+
+// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF*
+// __WXDEBUG__ is also defined.
+//
+// WARNING: this code may not work with all architectures, especially if
+// alignment is an issue. This switch is currently ignored for mingw / cygwin
+//
+// Default is 0
+//
+// Recommended setting: 1 if you are not using a memory debugging tool, else 0
+#define wxUSE_MEMORY_TRACING 0
+
+// In debug mode, cause new and delete to be redefined globally.
+// If this causes problems (e.g. link errors which is a common problem
+// especially if you use another library which also redefines the global new
+// and delete), set this to 0.
+// This switch is currently ignored for mingw / cygwin
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If
+// this causes problems (e.g. link errors), set this to 0. You may need to set
+// this to 0 if using templates (at least for VC++). This switch is currently
+// ignored for mingw / cygwin / CodeWarrior
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_DEBUG_NEW_ALWAYS 0
+
+// wxHandleFatalExceptions() may be used to catch the program faults at run
+// time and, instead of terminating the program with a usual GPF message box,
+// call the user-defined wxApp::OnFatalException() function. If you set
+// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work.
+//
+// This setting is for Win32 only and can only be enabled if your compiler
+// supports Win32 structured exception handling (currently only VC++ does)
+//
+// Default is 1
+//
+// Recommended setting: 1 if your compiler supports it.
+#if defined(_MSC_VER) || \
+ (defined(__BORLANDC__) && __BORLANDC__ >= 0x0550)
+ #define wxUSE_ON_FATAL_EXCEPTION 0
+#else
+#define wxUSE_ON_FATAL_EXCEPTION 0
+#endif
+
+// ----------------------------------------------------------------------------
+// Unicode support
+// ----------------------------------------------------------------------------
+
+// Set wxUSE_UNICODE to 1 to compile wxWidgets in Unicode mode: wxChar will be
+// defined as wchar_t, wxString will use Unicode internally. If you set this
+// to 1, you must use wxT() macro for all literal strings in the program.
+//
+// Unicode is currently only fully supported under Windows NT/2000/XP
+// (Windows 9x doesn't support it and the programs compiled in Unicode mode
+// will not run under 9x -- but see wxUSE_UNICODE_MSLU below).
+//
+// Default is 0
+//
+// Recommended setting: 0 (unless you only plan to use Windows NT/2000/XP)
+#ifndef wxUSE_UNICODE
+ #define wxUSE_UNICODE 0
+#endif
+
+// Set wxUSE_UNICODE_MSLU to 1 if you want to compile wxWidgets in Unicode mode
+// and be able to run compiled apps under Windows 9x as well as NT/2000/XP.
+// This setting enables use of unicows.dll from MSLU (MS Layer for Unicode, see
+// http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx). Note
+// that you will have to modify the makefiles to include unicows.lib import
+// library as the first library (see installation instructions in install.txt
+// to learn how to do it when building the library or samples).
+//
+// If your compiler doesn't have unicows.lib, you can get a version of it at
+// http://libunicows.sourceforge.net
+//
+// Default is 0
+//
+// Recommended setting: 0 (1 if you want to deploy Unicode apps on 9x systems)
+#define wxUSE_UNICODE_MSLU 0
+
+// Setting wxUSE_WCHAR_T to 1 gives you some degree of Unicode support without
+// compiling the program in Unicode mode. More precisely, it will be possible
+// to construct wxString from a wide (Unicode) string and convert any wxString
+// to Unicode.
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_WCHAR_T 0
+
+// ----------------------------------------------------------------------------
+// global features
+// ----------------------------------------------------------------------------
+
+// Compile library in exception-safe mode? If set to 1, the library will try to
+// behave correctly in presence of exceptions (even though it still will not
+// use the exceptions itself) and notify the user code about any unhandled
+// exceptions. If set to 0, propagation of the exceptions through the library
+// code will lead to undefined behaviour -- but the code itself will be
+// slightly smaller and faster.
+//
+// Default is 1
+//
+// Recommended setting: depends on whether you intend to use C++ exceptions
+// in your own code (1 if you do, 0 if you don't)
+#define wxUSE_EXCEPTIONS 1
+
+// Set wxUSE_EXTENDED_RTTI to 1 to use extended RTTI
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_EXTENDED_RTTI 0
+
+#if defined(__BORLANDC__)
+#undef wxUSE_EXTENDED_RTTI
+#define wxUSE_EXTENDED_RTTI 1
+#endif
+
+// Set wxUSE_STL to 1 to derive wxList(Foo) and wxArray(Foo) from
+// std::list<Foo*> and std::vector<Foo*>, with a compatibility interface,
+// and for wxHashMap to be implemented with templates.
+//
+// Default is 0
+//
+// Recommended setting: YMMV
+#define wxUSE_STL 0
+
+// Support for message/error logging. This includes wxLogXXX() functions and
+// wxLog and derived classes. Don't set this to 0 unless you really know what
+// you are doing.
+//
+// Default is 1
+//
+// Recommended setting: 1 (always)
+#define wxUSE_LOG 0
+
+// Recommended setting: 1
+#define wxUSE_LOGWINDOW 0
+
+// Recommended setting: 1
+#define wxUSE_LOGGUI 0
+
+// Recommended setting: 1
+#define wxUSE_LOG_DIALOG 0
+
+// Support for command line parsing using wxCmdLineParser class.
+//
+// Default is 1
+//
+// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
+#define wxUSE_CMDLINE_PARSER 0
+
+// Support for multithreaded applications: if 1, compile in thread classes
+// (thread.h) and make the library a bit more thread safe. Although thread
+// support is quite stable by now, you may still consider recompiling the
+// library without it if you have no use for it - this will result in a
+// somewhat smaller and faster operation.
+//
+// This is ignored under Win16, threads are only supported under Win32.
+//
+// Default is 1
+//
+// Recommended setting: 0 unless you do plan to develop MT applications
+#define wxUSE_THREADS 0
+
+// If enabled (1), compiles wxWidgets streams classes
+#define wxUSE_STREAMS 0
+
+// Use standard C++ streams if 1. If 0, use wxWin streams implementation.
+#define wxUSE_STD_IOSTREAM 0
+
+// ----------------------------------------------------------------------------
+// non GUI features selection
+// ----------------------------------------------------------------------------
+
+// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit
+// integer which is implemented in terms of native 64 bit integers if any or
+// uses emulation otherwise.
+//
+// This class is required by wxDateTime and so you should enable it if you want
+// to use wxDateTime. For most modern platforms, it will use the native 64 bit
+// integers in which case (almost) all of its functions are inline and it
+// almost does not take any space, so there should be no reason to switch it
+// off.
+//
+// Recommended setting: 1
+#define wxUSE_LONGLONG 1
+
+// Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
+// POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
+//
+// Default is 1
+//
+// Recommended setting: 1 (wxFile is highly recommended as it is required by
+// i18n code, wxFileConfig and others)
+#define wxUSE_FILE 0
+#define wxUSE_FFILE 0
+
+// Use wxFSVolume class providing access to the configured/active mount points
+//
+// Default is 1
+//
+// Recommended setting: 1 (but may be safely disabled if you don't use it)
+#define wxUSE_FSVOLUME 0
+
+// use wxTextBuffer class: required by wxTextFile
+#define wxUSE_TEXTBUFFER 0
+
+// use wxTextFile class: requires wxFile and wxTextBuffer, required by
+// wxFileConfig
+#define wxUSE_TEXTFILE 0
+
+// i18n support: _() macro, wxLocale class. Requires wxTextFile.
+#define wxUSE_INTL 0
+
+// Set wxUSE_DATETIME to 1 to compile the wxDateTime and related classes which
+// allow to manipulate dates, times and time intervals. wxDateTime replaces the
+// old wxTime and wxDate classes which are still provided for backwards
+// compatibility (and implemented in terms of wxDateTime).
+//
+// Note that this class is relatively new and is still officially in alpha
+// stage because some features are not yet (fully) implemented. It is already
+// quite useful though and should only be disabled if you are aiming at
+// absolutely minimal version of the library.
+//
+// Requires: wxUSE_LONGLONG
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_DATETIME 0
+
+// Set wxUSE_TIMER to 1 to compile wxTimer class
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_TIMER 0
+
+// Use wxStopWatch clas.
+//
+// Default is 1
+//
+// Recommended setting: 1 (needed by wxSocket)
+#define wxUSE_STOPWATCH 0
+
+// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes
+// which allow the application to store its settings in the persistent
+// storage. Setting this to 1 will also enable on-demand creation of the
+// global config object in wxApp.
+//
+// See also wxUSE_CONFIG_NATIVE below.
+//
+// Recommended setting: 1
+#define wxUSE_CONFIG 0
+
+// If wxUSE_CONFIG is 1, you may choose to use either the native config
+// classes under Windows (using .INI files under Win16 and the registry under
+// Win32) or the portable text file format used by the config classes under
+// Unix.
+//
+// Default is 1 to use native classes. Note that you may still use
+// wxFileConfig even if you set this to 1 - just the config object created by
+// default for the applications needs will be a wxRegConfig or wxIniConfig and
+// not wxFileConfig.
+//
+// Recommended setting: 1
+#define wxUSE_CONFIG_NATIVE 0
+
+// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows
+// to connect/disconnect from the network and be notified whenever the dial-up
+// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_DIALUP_MANAGER 0
+
+// Compile in classes for run-time DLL loading and function calling.
+// Required by wxUSE_DIALUP_MANAGER.
+//
+// This setting is for Win32 only
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_DYNLIB_CLASS 0
+
+// experimental, don't use for now
+#define wxUSE_DYNAMIC_LOADER 0
+
+// Set to 1 to use socket classes
+#define wxUSE_SOCKETS 0
+
+// Set to 1 to enable virtual file systems (required by wxHTML)
+#define wxUSE_FILESYSTEM 0
+
+// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM)
+#define wxUSE_FS_ZIP 0
+
+// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM)
+#define wxUSE_FS_INET 0
+
+// Set to 1 to compile wxZipInput/OutputStream classes.
+#define wxUSE_ZIPSTREAM 0
+
+// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by
+// wxUSE_LIBPNG
+#define wxUSE_ZLIB 0
+
+// If enabled, the code written by Apple will be used to write, in a portable
+// way, float on the disk. See extended.c for the license which is different
+// from wxWidgets one.
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you don't like the license terms (unlikely)
+#define wxUSE_APPLE_IEEE 0
+
+// Joystick support class
+#define wxUSE_JOYSTICK 0
+
+// wxFontMapper class
+#define wxUSE_FONTMAP 0
+
+// wxMimeTypesManager class
+#define wxUSE_MIMETYPE 0
+
+// wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP
+// or wxURL you need to set this to 1.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_PROTOCOL 0
+
+// The settings for the individual URL schemes
+#define wxUSE_PROTOCOL_FILE 0
+#define wxUSE_PROTOCOL_FTP 0
+#define wxUSE_PROTOCOL_HTTP 0
+
+// Define this to use wxURL class.
+#define wxUSE_URL 0
+
+// Define this to use native platform url and protocol support.
+// Currently valid only for MS-Windows.
+// Note: if you set this to 1, you can open ftp/http/gopher sites
+// and obtain a valid input stream for these sites
+// even when you set wxUSE_PROTOCOL_FTP/HTTP to 0.
+// Doing so reduces the code size.
+//
+// This code is experimental and subject to change.
+#define wxUSE_URL_NATIVE 0
+
+// Support for regular expression matching via wxRegEx class: enable this to
+// use POSIX regular expressions in your code. You need to compile regex
+// library from src/regex to use it under Windows.
+//
+// Default is 0
+//
+// Recommended setting: 1 if your compiler supports it, if it doesn't please
+// contribute us a makefile for src/regex for it
+#define wxUSE_REGEX 0
+
+// wxSystemOptions class
+#define wxUSE_SYSTEM_OPTIONS 0
+
+// wxSound class
+#define wxUSE_SOUND 0
+
+// Use wxWidget's XRC XML-based resource system. Recommended.
+//
+// Default is 1
+//
+// Recommended setting: 1 (requires wxUSE_XML)
+#define wxUSE_XRC 0
+
+// XML parsing classes. Note that their API will change in the future, so
+// using wxXmlDocument and wxXmlNode in your app is not recommended.
+//
+// Default is 1
+//
+// Recommended setting: 1 (required by XRC)
+#if wxUSE_XRC
+# define wxUSE_XML 1
+#else
+# define wxUSE_XML 0
+#endif
+
+// ----------------------------------------------------------------------------
+// Individual GUI controls
+// ----------------------------------------------------------------------------
+
+// You must set wxUSE_CONTROLS to 1 if you are using any controls at all
+// (without it, wxControl class is not compiled)
+//
+// Default is 1
+//
+// Recommended setting: 1 (don't change except for very special programs)
+#define wxUSE_CONTROLS 1
+
+// wxPopupWindow class is a top level transient window. It is currently used
+// to implement wxTipWindow
+//
+// Default is 1
+//
+// Recommended setting: 1 (may be set to 0 if you don't wxUSE_TIPWINDOW)
+#define wxUSE_POPUPWIN 0
+
+// wxTipWindow allows to implement the custom tooltips, it is used by the
+// context help classes. Requires wxUSE_POPUPWIN.
+//
+// Default is 1
+//
+// Recommended setting: 1 (may be set to 0)
+#define wxUSE_TIPWINDOW 0
+
+// Each of the settings below corresponds to one wxWidgets control. They are
+// all switched on by default but may be disabled if you are sure that your
+// program (including any standard dialogs it can show!) doesn't need them and
+// if you desperately want to save some space. If you use any of these you must
+// set wxUSE_CONTROLS as well.
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_BUTTON 0 // wxButton
+#define wxUSE_BMPBUTTON 0 // wxBitmapButton
+#define wxUSE_CALENDARCTRL 0 // wxCalendarCtrl
+#define wxUSE_CHECKBOX 0 // wxCheckBox
+#define wxUSE_CHECKLISTBOX 0 // wxCheckListBox (requires wxUSE_OWNER_DRAWN)
+#define wxUSE_CHOICE 0 // wxChoice
+#define wxUSE_COMBOBOX 0 // wxComboBox
+#define wxUSE_GAUGE 0 // wxGauge
+#define wxUSE_LISTBOX 0 // wxListBox
+#define wxUSE_LISTCTRL 0 // wxListCtrl
+#define wxUSE_RADIOBOX 0 // wxRadioBox
+#define wxUSE_RADIOBTN 0 // wxRadioButton
+#define wxUSE_SCROLLBAR 0 // wxScrollBar
+#define wxUSE_SLIDER 0 // wxSlider
+#define wxUSE_SPINBTN 0 // wxSpinButton
+#define wxUSE_SPINCTRL 0 // wxSpinCtrl
+#define wxUSE_STATBOX 0 // wxStaticBox
+#define wxUSE_STATLINE 0 // wxStaticLine
+#define wxUSE_STATTEXT 0 // wxStaticText
+#define wxUSE_STATBMP 0 // wxStaticBitmap
+#define wxUSE_TEXTCTRL 0 // wxTextCtrl
+#define wxUSE_TOGGLEBTN 0 // requires wxButton
+#define wxUSE_TREECTRL 0 // wxTreeCtrl
+
+// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR
+// below either wxStatusBar95 or a generic wxStatusBar will be used.
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_STATUSBAR 1
+
+// Two status bar implementations are available under Win32: the generic one
+// or the wrapper around native control. For native look and feel the native
+// version should be used.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (there is no advantage in using the generic one)
+#define wxUSE_NATIVE_STATUSBAR 1
+
+// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar
+// classes at all. Otherwise, use the native toolbar class unless
+// wxUSE_TOOLBAR_NATIVE is 0.
+//
+// Default is 1 for all settings.
+//
+// Recommended setting: 1 for wxUSE_TOOLBAR and wxUSE_TOOLBAR_NATIVE.
+#define wxUSE_TOOLBAR 0
+#define wxUSE_TOOLBAR_NATIVE 0
+
+// wxNotebook is a control with several "tabs" located on one of its sides. It
+// may be used ot logically organise the data presented to the user instead of
+// putting everything in one huge dialog. It replaces wxTabControl and related
+// classes of wxWin 1.6x.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_NOTEBOOK 0
+
+// wxListbook control is similar to wxNotebook but uses wxListCtrl instead of
+// the tabs
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_LISTBOOK 0
+
+// wxChoicebook control is similar to wxNotebook but uses wxChoice instead of
+// the tabs
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_CHOICEBOOK 0
+
+// wxTabDialog is a generic version of wxNotebook but it is incompatible with
+// the new class. It shouldn't be used in new code.
+//
+// Default is 0.
+//
+// Recommended setting: 0 (use wxNotebook)
+#define wxUSE_TAB_DIALOG 0
+
+// wxGrid class
+//
+// Default is 1 for both options.
+//
+// Recommended setting: 1
+//
+#define wxUSE_GRID 0
+
+// ----------------------------------------------------------------------------
+// Miscellaneous GUI stuff
+// ----------------------------------------------------------------------------
+
+// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
+#define wxUSE_ACCEL 0
+
+// Hotkey support (currently Windows only)
+#define wxUSE_HOTKEY 0
+
+// Use wxCaret: a class implementing a "cursor" in a text control (called caret
+// under Windows).
+//
+// Default is 1.
+//
+// Recommended setting: 1 (can be safely set to 0, not used by the library)
+#define wxUSE_CARET 0
+
+// Use wxDisplay class: it allows enumerating all displays on a system and
+// working with them.
+//
+// Default is 0 because it isn't yet implemented on all platforms
+//
+// Recommended setting: 1 if you need it, can be safely set to 0 otherwise
+#define wxUSE_DISPLAY 0
+
+// Miscellaneous geometry code: needed for Canvas library
+#define wxUSE_GEOMETRY 0
+
+// Use wxImageList. This class is needed by wxNotebook, wxTreeCtrl and
+// wxListCtrl.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (set it to 0 if you don't use any of the controls
+// enumerated above, then this class is mostly useless too)
+#define wxUSE_IMAGLIST 0
+
+// Use wxMenu, wxMenuBar, wxMenuItem.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (can't be disabled under MSW)
+#define wxUSE_MENUS 1
+
+// Use wxSashWindow class.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_SASH 0
+
+// Use wxSplitterWindow class.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_SPLITTER 0
+
+// Use wxToolTip and wxWindow::Set/GetToolTip() methods.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_TOOLTIPS 0
+
+// wxValidator class and related methods
+#define wxUSE_VALIDATORS 0
+
+// wxDC cacheing implementation
+#define wxUSE_DC_CACHEING 0
+
+// Set this to 1 to enable the use of DIB's for wxBitmap to support
+// bitmaps > 16MB on Win95/98/Me. Set to 0 to use DDB's only.
+#define wxUSE_DIB_FOR_BITMAP 0
+
+// Set this to 1 to enable wxDIB
+#define wxUSE_WXDIB 0
+
+// ----------------------------------------------------------------------------
+// common dialogs
+// ----------------------------------------------------------------------------
+
+// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g.
+// file selector, printer dialog). Switching this off also switches off the
+// printing architecture and interactive wxPrinterDC.
+//
+// Default is 1
+//
+// Recommended setting: 1 (unless it really doesn't work)
+#define wxUSE_COMMON_DIALOGS 0
+
+// wxBusyInfo displays window with message when app is busy. Works in same way
+// as wxBusyCursor
+#define wxUSE_BUSYINFO 0
+
+// Use single/multiple choice dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_CHOICEDLG 0
+
+// Use colour picker dialog
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_COLOURDLG 0
+
+// wxDirDlg class for getting a directory name from user
+#define wxUSE_DIRDLG 0
+
+// TODO: setting to choose the generic or native one
+
+// Use file open/save dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in many places in the library itself)
+#define wxUSE_FILEDLG 0
+
+// Use find/replace dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (but may be safely set to 0)
+#define wxUSE_FINDREPLDLG 0
+
+// Use font picker dialog
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_FONTDLG 0
+
+// Use wxMessageDialog and wxMessageBox.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_MSGDLG 1
+
+// progress dialog class for lengthy operations
+#define wxUSE_PROGRESSDLG 0
+
+// support for startup tips (wxShowTip &c)
+#define wxUSE_STARTUP_TIPS 0
+
+// text entry dialog and wxGetTextFromUser function
+#define wxUSE_TEXTDLG 0
+
+// number entry dialog
+#define wxUSE_NUMBERDLG 0
+
+// splash screen class
+#define wxUSE_SPLASH 0
+
+// wizards
+#define wxUSE_WIZARDDLG 0
+
+// ----------------------------------------------------------------------------
+// Metafiles support
+// ----------------------------------------------------------------------------
+
+// Windows supports the graphics format known as metafile which is, though not
+// portable, is widely used under Windows and so is supported by wxWin (under
+// Windows only, of course). Win16 (Win3.1) used the so-called "Window
+// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in
+// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by
+// default, WMFs will be used under Win16 and EMFs under Win32. This may be
+// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting
+// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile
+// in any metafile related classes at all.
+//
+// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS.
+//
+// Recommended setting: default or 0 for everything for portable programs.
+#define wxUSE_METAFILE 0
+#define wxUSE_ENH_METAFILE 0
+#define wxUSE_WIN_METAFILES_ALWAYS 0
+
+// ----------------------------------------------------------------------------
+// Big GUI components
+// ----------------------------------------------------------------------------
+
+// Set to 0 to disable MDI support.
+//
+// Requires wxUSE_NOTEBOOK under platforms other than MSW.
+//
+// Default is 1.
+//
+// Recommended setting: 1, can be safely set to 0.
+#define wxUSE_MDI 0
+
+// Set to 0 to disable document/view architecture
+#define wxUSE_DOC_VIEW_ARCHITECTURE 0
+
+// Set to 0 to disable MDI document/view architecture
+//
+// Requires wxUSE_MDI && wxUSE_DOC_VIEW_ARCHITECTURE
+#define wxUSE_MDI_ARCHITECTURE 0
+
+// Set to 0 to disable print/preview architecture code
+#define wxUSE_PRINTING_ARCHITECTURE 0
+
+// wxHTML sublibrary allows to display HTML in wxWindow programs and much,
+// much more.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a
+// smaller library.
+#define wxUSE_HTML 0
+
+// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL
+// headers and libraries to be able to compile the library with wxUSE_GLCANVAS
+// set to 1. Note that for some compilers (notably Microsoft Visual C++) you
+// will need to manually add opengl32.lib and glu32.lib to the list of
+// libraries linked with your program if you use OpenGL.
+//
+// Default is 0.
+//
+// Recommended setting: 1 if you intend to use OpenGL, 0 otherwise
+#define wxUSE_GLCANVAS 0
+
+// ----------------------------------------------------------------------------
+// Data transfer
+// ----------------------------------------------------------------------------
+
+// Use wxClipboard class for clipboard copy/paste.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_CLIPBOARD 0
+
+// Use wxDataObject and related classes. Needed for clipboard and OLE drag and
+// drop
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_DATAOBJ 0
+
+// Use wxDropTarget and wxDropSource classes for drag and drop (this is
+// different from "built in" drag and drop in wxTreeCtrl which is always
+// available). Requires wxUSE_DATAOBJ.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_DRAG_AND_DROP 0
+
+// Use wxAccessible for enhanced and customisable accessibility.
+// Depends on wxUSE_OLE.
+//
+// Default is 0.
+//
+// Recommended setting (at present): 0
+#define wxUSE_ACCESSIBILITY 0
+
+// ----------------------------------------------------------------------------
+// miscellaneous settings
+// ----------------------------------------------------------------------------
+
+// wxSingleInstanceChecker class allows to verify at startup if another program
+// instance is running (it is only available under Win32)
+//
+// Default is 1
+//
+// Recommended setting: 1 (the class is tiny, disabling it won't save much
+// space)
+#define wxUSE_SNGLINST_CHECKER 0
+
+#define wxUSE_DRAGIMAGE 0
+
+#define wxUSE_IPC 0
+ // 0 for no interprocess comms
+#define wxUSE_HELP 0
+ // 0 for no help facility
+#define wxUSE_MS_HTML_HELP 0
+ // 0 for no MS HTML Help
+
+// Use wxHTML-based help controller?
+#define wxUSE_WXHTML_HELP 0
+
+#define wxUSE_RESOURCES 0
+ // 0 for no wxGetResource/wxWriteResource
+#define wxUSE_CONSTRAINTS 0
+ // 0 for no window layout constraint system
+
+#define wxUSE_SPLINES 0
+ // 0 for no splines
+
+#define wxUSE_MOUSEWHEEL 0
+ // Include mouse wheel support
+
+// ----------------------------------------------------------------------------
+// postscript support settings
+// ----------------------------------------------------------------------------
+
+// Set to 1 for PostScript device context.
+#define wxUSE_POSTSCRIPT 0
+
+// Set to 1 to use font metric files in GetTextExtent
+#define wxUSE_AFM_FOR_POSTSCRIPT 0
+
+// Set to 0 to disable PostScript print/preview architecture code under Windows
+// (just use Windows printing).
+#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
+
+// ----------------------------------------------------------------------------
+// database classes
+// ----------------------------------------------------------------------------
+
+// Define 1 to use ODBC classes
+#define wxUSE_ODBC 0
+
+// For backward compatibility reasons, this parameter now only controls the
+// default scrolling method used by cursors. This default behavior can be
+// overriden by setting the second param of wxDB::wxDbGetConnection() or
+// wxDb() constructor to indicate whether the connection (and any wxDbTable()s
+// that use the connection) should support forward only scrolling of cursors,
+// or both forward and backward support for backward scrolling cursors is
+// dependent on the data source as well as the ODBC driver being used.
+#define wxODBC_FWD_ONLY_CURSORS 0
+
+// Default is 0. Set to 1 to use the deprecated classes, enum types, function,
+// member variables. With a setting of 1, full backward compatability with the
+// 2.0.x release is possible. It is STRONGLY recommended that this be set to 0,
+// as future development will be done only on the non-deprecated
+// functions/classes/member variables/etc.
+#define wxODBC_BACKWARD_COMPATABILITY 0
+
+// ----------------------------------------------------------------------------
+// other compiler (mis)features
+// ----------------------------------------------------------------------------
+
+// Set this to 0 if your compiler can't cope with omission of prototype
+// parameters.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (should never need to set this to 0)
+#define REMOVE_UNUSED_ARG 1
+
+// VC++ 4.2 and above allows <iostream> and <iostream.h> but you can't mix
+// them. Set to 1 for <iostream.h>, 0 for <iostream>. Note that VC++ 7.1
+// and later doesn't support wxUSE_IOSTREAMH == 1 and so <iostream> will be
+// used anyhow.
+//
+// Default is 1.
+//
+// Recommended setting: whatever your compiler likes more
+#define wxUSE_IOSTREAMH 1
+
+// ----------------------------------------------------------------------------
+// image format support
+// ----------------------------------------------------------------------------
+
+// wxImage supports many different image formats which can be configured at
+// compile-time. BMP is always supported, others are optional and can be safely
+// disabled if you don't plan to use images in such format sometimes saving
+// substantial amount of code in the final library.
+//
+// Some formats require an extra library which is included in wxWin sources
+// which is mentioned if it is the case.
+
+// Set to 1 for wxImage support (recommended).
+#define wxUSE_IMAGE 0
+
+// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB.
+#define wxUSE_LIBPNG 0
+
+// Set to 1 for JPEG format support (requires libjpeg)
+#define wxUSE_LIBJPEG 0
+
+// Set to 1 for TIFF format support (requires libtiff)
+#define wxUSE_LIBTIFF 0
+
+// Set to 1 for GIF format support
+#define wxUSE_GIF 0
+
+// Set to 1 for PNM format support
+#define wxUSE_PNM 0
+
+// Set to 1 for PCX format support
+#define wxUSE_PCX 0
+
+// Set to 1 for IFF format support (Amiga format)
+#define wxUSE_IFF 0
+
+// Set to 1 for XPM format support
+#define wxUSE_XPM 0
+
+// Set to 1 for MS Icons and Cursors format support
+#define wxUSE_ICO_CUR 0
+
+// Set to 1 to compile in wxPalette class
+#define wxUSE_PALETTE 0
+
+// ----------------------------------------------------------------------------
+// Windows-only settings
+// ----------------------------------------------------------------------------
+
+// Set this to 1 if you want to use wxWidgets and MFC in the same program. This
+// will override some other settings (see below)
+//
+// Default is 0.
+//
+// Recommended setting: 0 unless you really have to use MFC
+#define wxUSE_MFC 0
+
+// Set this to 1 for generic OLE support: this is required for drag-and-drop,
+// clipboard, OLE Automation. Only set it to 0 if your compiler is very old and
+// can't compile/doesn't have the OLE headers.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_OLE 0
+
+// Set this to 1 to use Microsoft CTL3D library for "3D-look" under Win16 or NT
+// 3.x. This setting is ignored under Win9x and NT 4.0+.
+//
+// Default is 0 for (most) Win32 (systems), 1 for Win16
+//
+// Recommended setting: same as default
+#if defined(__WIN95__)
+#define wxUSE_CTL3D 0
+#else
+#define wxUSE_CTL3D 0
+#endif
+
+// Define as 1 to use Microsoft's ItsyBitsy small title bar library, for
+// wxMiniFrame. This setting is only used for Win3.1; Win9x and NT use native
+// miniframes support instead.
+//
+// Default is 0 for (most) Win32 (systems), 1 for Win16
+//
+#define wxUSE_ITSY_BITSY 0
+
+// Set this to 1 to use RICHEDIT controls for wxTextCtrl with style wxTE_RICH
+// which allows to put more than ~32Kb of text in it even under Win9x (NT
+// doesn't have such limitation).
+//
+// Default is 1 for compilers which support it
+//
+// Recommended setting: 1, only set it to 0 if your compiler doesn't have
+// or can't compile <richedit.h>
+#if defined(__WIN95__) && !defined(__WINE__) && !defined(__GNUWIN32_OLD__)
+#define wxUSE_RICHEDIT 0
+
+// TODO: This should be ifdef'ed for any compilers that don't support
+// RichEdit 2.0 but do have RichEdit 1.0...
+#define wxUSE_RICHEDIT2 0
+
+#else
+#define wxUSE_RICHEDIT 0
+#define wxUSE_RICHEDIT2 0
+#endif
+
+// Set this to 1 to enable support for the owner-drawn menu and listboxes. This
+// is required by wxUSE_CHECKLISTBOX.
+//
+// Default is 1.
+//
+// Recommended setting: 1, set to 0 for a small library size reduction
+#define wxUSE_OWNER_DRAWN 0
+
+// Set to 1 to compile MS Windows XP theme engine support
+#define wxUSE_UXTHEME 0
+
+// Set to 1 to auto-adapt to MS Windows XP themes where possible
+// (notably, wxNotebook pages)
+#define wxUSE_UXTHEME_AUTO 0
+
+// ----------------------------------------------------------------------------
+// obsolete settings
+// ----------------------------------------------------------------------------
+
+// NB: all settings in this section are obsolete and should not be used/changed
+// at all, they will disappear
+
+// Set to 1 to use PenWindows
+#define wxUSE_PENWINDOWS 0
+
+// Define 1 to use bitmap messages.
+#define wxUSE_BITMAP_MESSAGE 0
+
+// If 1, enables provision of run-time type information.
+// NOW MANDATORY: don't change.
+#define wxUSE_DYNAMIC_CLASSES 1
+
+#endif
+ // _WX_SETUP_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/msw/setup.h
+// Purpose: Configuration for the library
+// Author: Julian Smart
+// Modified by:
+// Created: 01/02/97
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_SETUP_H_
+#define _WX_SETUP_H_
+
+// ----------------------------------------------------------------------------
+// global settings
+// ----------------------------------------------------------------------------
+
+// define this to 0 when building wxBase library - this can also be done from
+// makefile/project file overriding the value here
+#ifndef wxUSE_GUI
+ #define wxUSE_GUI 1
+#endif // wxUSE_GUI
+
+// ----------------------------------------------------------------------------
+// compatibility settings
+// ----------------------------------------------------------------------------
+
+// This setting determines the compatibility with 2.2 API: set it to 1 to
+// enable it but please consider updating your code instead.
+//
+// Default is 0
+//
+// Recommended setting: 0 (please update your code)
+#define WXWIN_COMPATIBILITY_2_2 0
+
+// This setting determines the compatibility with 2.4 API: set it to 0 to
+// flag all cases of using deprecated functions.
+//
+// Default is 1 but please try building your code with 0 as the default will
+// change to 0 in the next version and the deprecated functions will disappear
+// in the version after it completely.
+//
+// Recommended setting: 0 (please update your code)
+#define WXWIN_COMPATIBILITY_2_4 1
+
+// Define as 1 for font size to be backward compatible to 1.63 and earlier.
+// 1.64 and later define point sizes to be compatible with Windows.
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxFONT_SIZE_COMPATIBILITY 0
+
+// Set to 0 for accurate dialog units, else 1 to be as per 2.1.16 and before.
+// If migrating between versions, your dialogs may seem to shrink.
+//
+// Default is 1
+//
+// Recommended setting: 0 (the new calculations are more correct!)
+#define wxDIALOG_UNIT_COMPATIBILITY 1
+
+// ----------------------------------------------------------------------------
+// debugging settings
+// ----------------------------------------------------------------------------
+
+// Generic comment about debugging settings: they are very useful if you don't
+// use any other memory leak detection tools such as Purify/BoundsChecker, but
+// are probably redundant otherwise. Also, Visual C++ CRT has the same features
+// as wxWidgets memory debugging subsystem built in since version 5.0 and you
+// may prefer to use it instead of built in memory debugging code because it is
+// faster and more fool proof.
+//
+// Using VC++ CRT memory debugging is enabled by default in debug mode
+// (__WXDEBUG__) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0)
+// and if __NO_VC_CRTDBG__ is not defined.
+
+// If 1, enables wxDebugContext, for writing error messages to file, etc. If
+// __WXDEBUG__ is not defined, will still use the normal memory operators.
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_DEBUG_CONTEXT 0
+
+// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF*
+// __WXDEBUG__ is also defined.
+//
+// WARNING: this code may not work with all architectures, especially if
+// alignment is an issue. This switch is currently ignored for mingw / cygwin
+//
+// Default is 0
+//
+// Recommended setting: 1 if you are not using a memory debugging tool, else 0
+#define wxUSE_MEMORY_TRACING 0
+
+// In debug mode, cause new and delete to be redefined globally.
+// If this causes problems (e.g. link errors which is a common problem
+// especially if you use another library which also redefines the global new
+// and delete), set this to 0.
+// This switch is currently ignored for mingw / cygwin
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If
+// this causes problems (e.g. link errors), set this to 0. You may need to set
+// this to 0 if using templates (at least for VC++). This switch is currently
+// ignored for mingw / cygwin / CodeWarrior
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_DEBUG_NEW_ALWAYS 0
+
+// wxHandleFatalExceptions() may be used to catch the program faults at run
+// time and, instead of terminating the program with a usual GPF message box,
+// call the user-defined wxApp::OnFatalException() function. If you set
+// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work.
+//
+// This setting is for Win32 only and can only be enabled if your compiler
+// supports Win32 structured exception handling (currently only VC++ does)
+//
+// Default is 1
+//
+// Recommended setting: 1 if your compiler supports it.
+#if defined(_MSC_VER) || \
+ (defined(__BORLANDC__) && __BORLANDC__ >= 0x0550)
+ #define wxUSE_ON_FATAL_EXCEPTION 0
+#else
+#define wxUSE_ON_FATAL_EXCEPTION 0
+#endif
+
+// ----------------------------------------------------------------------------
+// Unicode support
+// ----------------------------------------------------------------------------
+
+// Set wxUSE_UNICODE to 1 to compile wxWidgets in Unicode mode: wxChar will be
+// defined as wchar_t, wxString will use Unicode internally. If you set this
+// to 1, you must use wxT() macro for all literal strings in the program.
+//
+// Unicode is currently only fully supported under Windows NT/2000/XP
+// (Windows 9x doesn't support it and the programs compiled in Unicode mode
+// will not run under 9x -- but see wxUSE_UNICODE_MSLU below).
+//
+// Default is 0
+//
+// Recommended setting: 0 (unless you only plan to use Windows NT/2000/XP)
+#ifndef wxUSE_UNICODE
+ #define wxUSE_UNICODE 0
+#endif
+
+// Set wxUSE_UNICODE_MSLU to 1 if you want to compile wxWidgets in Unicode mode
+// and be able to run compiled apps under Windows 9x as well as NT/2000/XP.
+// This setting enables use of unicows.dll from MSLU (MS Layer for Unicode, see
+// http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx). Note
+// that you will have to modify the makefiles to include unicows.lib import
+// library as the first library (see installation instructions in install.txt
+// to learn how to do it when building the library or samples).
+//
+// If your compiler doesn't have unicows.lib, you can get a version of it at
+// http://libunicows.sourceforge.net
+//
+// Default is 0
+//
+// Recommended setting: 0 (1 if you want to deploy Unicode apps on 9x systems)
+#define wxUSE_UNICODE_MSLU 0
+
+// Setting wxUSE_WCHAR_T to 1 gives you some degree of Unicode support without
+// compiling the program in Unicode mode. More precisely, it will be possible
+// to construct wxString from a wide (Unicode) string and convert any wxString
+// to Unicode.
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_WCHAR_T 0
+
+// ----------------------------------------------------------------------------
+// global features
+// ----------------------------------------------------------------------------
+
+// Compile library in exception-safe mode? If set to 1, the library will try to
+// behave correctly in presence of exceptions (even though it still will not
+// use the exceptions itself) and notify the user code about any unhandled
+// exceptions. If set to 0, propagation of the exceptions through the library
+// code will lead to undefined behaviour -- but the code itself will be
+// slightly smaller and faster.
+//
+// Default is 1
+//
+// Recommended setting: depends on whether you intend to use C++ exceptions
+// in your own code (1 if you do, 0 if you don't)
+#define wxUSE_EXCEPTIONS 1
+
+// Set wxUSE_EXTENDED_RTTI to 1 to use extended RTTI
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_EXTENDED_RTTI 0
+
+#if defined(__BORLANDC__)
+#undef wxUSE_EXTENDED_RTTI
+#define wxUSE_EXTENDED_RTTI 1
+#endif
+
+// Set wxUSE_STL to 1 to derive wxList(Foo) and wxArray(Foo) from
+// std::list<Foo*> and std::vector<Foo*>, with a compatibility interface,
+// and for wxHashMap to be implemented with templates.
+//
+// Default is 0
+//
+// Recommended setting: YMMV
+#define wxUSE_STL 0
+
+// Support for message/error logging. This includes wxLogXXX() functions and
+// wxLog and derived classes. Don't set this to 0 unless you really know what
+// you are doing.
+//
+// Default is 1
+//
+// Recommended setting: 1 (always)
+#define wxUSE_LOG 0
+
+// Recommended setting: 1
+#define wxUSE_LOGWINDOW 0
+
+// Recommended setting: 1
+#define wxUSE_LOGGUI 0
+
+// Recommended setting: 1
+#define wxUSE_LOG_DIALOG 0
+
+// Support for command line parsing using wxCmdLineParser class.
+//
+// Default is 1
+//
+// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
+#define wxUSE_CMDLINE_PARSER 0
+
+// Support for multithreaded applications: if 1, compile in thread classes
+// (thread.h) and make the library a bit more thread safe. Although thread
+// support is quite stable by now, you may still consider recompiling the
+// library without it if you have no use for it - this will result in a
+// somewhat smaller and faster operation.
+//
+// This is ignored under Win16, threads are only supported under Win32.
+//
+// Default is 1
+//
+// Recommended setting: 0 unless you do plan to develop MT applications
+#define wxUSE_THREADS 0
+
+// If enabled (1), compiles wxWidgets streams classes
+#define wxUSE_STREAMS 0
+
+// Use standard C++ streams if 1. If 0, use wxWin streams implementation.
+#define wxUSE_STD_IOSTREAM 0
+
+// ----------------------------------------------------------------------------
+// non GUI features selection
+// ----------------------------------------------------------------------------
+
+// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit
+// integer which is implemented in terms of native 64 bit integers if any or
+// uses emulation otherwise.
+//
+// This class is required by wxDateTime and so you should enable it if you want
+// to use wxDateTime. For most modern platforms, it will use the native 64 bit
+// integers in which case (almost) all of its functions are inline and it
+// almost does not take any space, so there should be no reason to switch it
+// off.
+//
+// Recommended setting: 1
+#define wxUSE_LONGLONG 1
+
+// Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
+// POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
+//
+// Default is 1
+//
+// Recommended setting: 1 (wxFile is highly recommended as it is required by
+// i18n code, wxFileConfig and others)
+#define wxUSE_FILE 0
+#define wxUSE_FFILE 0
+
+// Use wxFSVolume class providing access to the configured/active mount points
+//
+// Default is 1
+//
+// Recommended setting: 1 (but may be safely disabled if you don't use it)
+#define wxUSE_FSVOLUME 0
+
+// use wxTextBuffer class: required by wxTextFile
+#define wxUSE_TEXTBUFFER 0
+
+// use wxTextFile class: requires wxFile and wxTextBuffer, required by
+// wxFileConfig
+#define wxUSE_TEXTFILE 0
+
+// i18n support: _() macro, wxLocale class. Requires wxTextFile.
+#define wxUSE_INTL 0
+
+// Set wxUSE_DATETIME to 1 to compile the wxDateTime and related classes which
+// allow to manipulate dates, times and time intervals. wxDateTime replaces the
+// old wxTime and wxDate classes which are still provided for backwards
+// compatibility (and implemented in terms of wxDateTime).
+//
+// Note that this class is relatively new and is still officially in alpha
+// stage because some features are not yet (fully) implemented. It is already
+// quite useful though and should only be disabled if you are aiming at
+// absolutely minimal version of the library.
+//
+// Requires: wxUSE_LONGLONG
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_DATETIME 0
+
+// Set wxUSE_TIMER to 1 to compile wxTimer class
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_TIMER 0
+
+// Use wxStopWatch clas.
+//
+// Default is 1
+//
+// Recommended setting: 1 (needed by wxSocket)
+#define wxUSE_STOPWATCH 0
+
+// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes
+// which allow the application to store its settings in the persistent
+// storage. Setting this to 1 will also enable on-demand creation of the
+// global config object in wxApp.
+//
+// See also wxUSE_CONFIG_NATIVE below.
+//
+// Recommended setting: 1
+#define wxUSE_CONFIG 0
+
+// If wxUSE_CONFIG is 1, you may choose to use either the native config
+// classes under Windows (using .INI files under Win16 and the registry under
+// Win32) or the portable text file format used by the config classes under
+// Unix.
+//
+// Default is 1 to use native classes. Note that you may still use
+// wxFileConfig even if you set this to 1 - just the config object created by
+// default for the applications needs will be a wxRegConfig or wxIniConfig and
+// not wxFileConfig.
+//
+// Recommended setting: 1
+#define wxUSE_CONFIG_NATIVE 0
+
+// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows
+// to connect/disconnect from the network and be notified whenever the dial-up
+// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_DIALUP_MANAGER 0
+
+// Compile in classes for run-time DLL loading and function calling.
+// Required by wxUSE_DIALUP_MANAGER.
+//
+// This setting is for Win32 only
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_DYNLIB_CLASS 0
+
+// experimental, don't use for now
+#define wxUSE_DYNAMIC_LOADER 0
+
+// Set to 1 to use socket classes
+#define wxUSE_SOCKETS 0
+
+// Set to 1 to enable virtual file systems (required by wxHTML)
+#define wxUSE_FILESYSTEM 0
+
+// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM)
+#define wxUSE_FS_ZIP 0
+
+// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM)
+#define wxUSE_FS_INET 0
+
+// Set to 1 to compile wxZipInput/OutputStream classes.
+#define wxUSE_ZIPSTREAM 0
+
+// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by
+// wxUSE_LIBPNG
+#define wxUSE_ZLIB 0
+
+// If enabled, the code written by Apple will be used to write, in a portable
+// way, float on the disk. See extended.c for the license which is different
+// from wxWidgets one.
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you don't like the license terms (unlikely)
+#define wxUSE_APPLE_IEEE 0
+
+// Joystick support class
+#define wxUSE_JOYSTICK 0
+
+// wxFontMapper class
+#define wxUSE_FONTMAP 0
+
+// wxMimeTypesManager class
+#define wxUSE_MIMETYPE 0
+
+// wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP
+// or wxURL you need to set this to 1.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_PROTOCOL 0
+
+// The settings for the individual URL schemes
+#define wxUSE_PROTOCOL_FILE 0
+#define wxUSE_PROTOCOL_FTP 0
+#define wxUSE_PROTOCOL_HTTP 0
+
+// Define this to use wxURL class.
+#define wxUSE_URL 0
+
+// Define this to use native platform url and protocol support.
+// Currently valid only for MS-Windows.
+// Note: if you set this to 1, you can open ftp/http/gopher sites
+// and obtain a valid input stream for these sites
+// even when you set wxUSE_PROTOCOL_FTP/HTTP to 0.
+// Doing so reduces the code size.
+//
+// This code is experimental and subject to change.
+#define wxUSE_URL_NATIVE 0
+
+// Support for regular expression matching via wxRegEx class: enable this to
+// use POSIX regular expressions in your code. You need to compile regex
+// library from src/regex to use it under Windows.
+//
+// Default is 0
+//
+// Recommended setting: 1 if your compiler supports it, if it doesn't please
+// contribute us a makefile for src/regex for it
+#define wxUSE_REGEX 0
+
+// wxSystemOptions class
+#define wxUSE_SYSTEM_OPTIONS 0
+
+// wxSound class
+#define wxUSE_SOUND 0
+
+// Use wxWidget's XRC XML-based resource system. Recommended.
+//
+// Default is 1
+//
+// Recommended setting: 1 (requires wxUSE_XML)
+#define wxUSE_XRC 0
+
+// XML parsing classes. Note that their API will change in the future, so
+// using wxXmlDocument and wxXmlNode in your app is not recommended.
+//
+// Default is 1
+//
+// Recommended setting: 1 (required by XRC)
+#if wxUSE_XRC
+# define wxUSE_XML 1
+#else
+# define wxUSE_XML 0
+#endif
+
+// ----------------------------------------------------------------------------
+// Individual GUI controls
+// ----------------------------------------------------------------------------
+
+// You must set wxUSE_CONTROLS to 1 if you are using any controls at all
+// (without it, wxControl class is not compiled)
+//
+// Default is 1
+//
+// Recommended setting: 1 (don't change except for very special programs)
+#define wxUSE_CONTROLS 1
+
+// wxPopupWindow class is a top level transient window. It is currently used
+// to implement wxTipWindow
+//
+// Default is 1
+//
+// Recommended setting: 1 (may be set to 0 if you don't wxUSE_TIPWINDOW)
+#define wxUSE_POPUPWIN 0
+
+// wxTipWindow allows to implement the custom tooltips, it is used by the
+// context help classes. Requires wxUSE_POPUPWIN.
+//
+// Default is 1
+//
+// Recommended setting: 1 (may be set to 0)
+#define wxUSE_TIPWINDOW 0
+
+// Each of the settings below corresponds to one wxWidgets control. They are
+// all switched on by default but may be disabled if you are sure that your
+// program (including any standard dialogs it can show!) doesn't need them and
+// if you desperately want to save some space. If you use any of these you must
+// set wxUSE_CONTROLS as well.
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_BUTTON 0 // wxButton
+#define wxUSE_BMPBUTTON 0 // wxBitmapButton
+#define wxUSE_CALENDARCTRL 0 // wxCalendarCtrl
+#define wxUSE_CHECKBOX 0 // wxCheckBox
+#define wxUSE_CHECKLISTBOX 0 // wxCheckListBox (requires wxUSE_OWNER_DRAWN)
+#define wxUSE_CHOICE 0 // wxChoice
+#define wxUSE_COMBOBOX 0 // wxComboBox
+#define wxUSE_GAUGE 0 // wxGauge
+#define wxUSE_LISTBOX 0 // wxListBox
+#define wxUSE_LISTCTRL 0 // wxListCtrl
+#define wxUSE_RADIOBOX 0 // wxRadioBox
+#define wxUSE_RADIOBTN 0 // wxRadioButton
+#define wxUSE_SCROLLBAR 0 // wxScrollBar
+#define wxUSE_SLIDER 0 // wxSlider
+#define wxUSE_SPINBTN 0 // wxSpinButton
+#define wxUSE_SPINCTRL 0 // wxSpinCtrl
+#define wxUSE_STATBOX 0 // wxStaticBox
+#define wxUSE_STATLINE 0 // wxStaticLine
+#define wxUSE_STATTEXT 0 // wxStaticText
+#define wxUSE_STATBMP 0 // wxStaticBitmap
+#define wxUSE_TEXTCTRL 0 // wxTextCtrl
+#define wxUSE_TOGGLEBTN 0 // requires wxButton
+#define wxUSE_TREECTRL 0 // wxTreeCtrl
+
+// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR
+// below either wxStatusBar95 or a generic wxStatusBar will be used.
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_STATUSBAR 1
+
+// Two status bar implementations are available under Win32: the generic one
+// or the wrapper around native control. For native look and feel the native
+// version should be used.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (there is no advantage in using the generic one)
+#define wxUSE_NATIVE_STATUSBAR 1
+
+// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar
+// classes at all. Otherwise, use the native toolbar class unless
+// wxUSE_TOOLBAR_NATIVE is 0.
+//
+// Default is 1 for all settings.
+//
+// Recommended setting: 1 for wxUSE_TOOLBAR and wxUSE_TOOLBAR_NATIVE.
+#define wxUSE_TOOLBAR 0
+#define wxUSE_TOOLBAR_NATIVE 0
+
+// wxNotebook is a control with several "tabs" located on one of its sides. It
+// may be used ot logically organise the data presented to the user instead of
+// putting everything in one huge dialog. It replaces wxTabControl and related
+// classes of wxWin 1.6x.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_NOTEBOOK 0
+
+// wxListbook control is similar to wxNotebook but uses wxListCtrl instead of
+// the tabs
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_LISTBOOK 0
+
+// wxChoicebook control is similar to wxNotebook but uses wxChoice instead of
+// the tabs
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_CHOICEBOOK 0
+
+// wxTabDialog is a generic version of wxNotebook but it is incompatible with
+// the new class. It shouldn't be used in new code.
+//
+// Default is 0.
+//
+// Recommended setting: 0 (use wxNotebook)
+#define wxUSE_TAB_DIALOG 0
+
+// wxGrid class
+//
+// Default is 1 for both options.
+//
+// Recommended setting: 1
+//
+#define wxUSE_GRID 0
+
+// ----------------------------------------------------------------------------
+// Miscellaneous GUI stuff
+// ----------------------------------------------------------------------------
+
+// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
+#define wxUSE_ACCEL 0
+
+// Hotkey support (currently Windows only)
+#define wxUSE_HOTKEY 0
+
+// Use wxCaret: a class implementing a "cursor" in a text control (called caret
+// under Windows).
+//
+// Default is 1.
+//
+// Recommended setting: 1 (can be safely set to 0, not used by the library)
+#define wxUSE_CARET 0
+
+// Use wxDisplay class: it allows enumerating all displays on a system and
+// working with them.
+//
+// Default is 0 because it isn't yet implemented on all platforms
+//
+// Recommended setting: 1 if you need it, can be safely set to 0 otherwise
+#define wxUSE_DISPLAY 0
+
+// Miscellaneous geometry code: needed for Canvas library
+#define wxUSE_GEOMETRY 0
+
+// Use wxImageList. This class is needed by wxNotebook, wxTreeCtrl and
+// wxListCtrl.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (set it to 0 if you don't use any of the controls
+// enumerated above, then this class is mostly useless too)
+#define wxUSE_IMAGLIST 0
+
+// Use wxMenu, wxMenuBar, wxMenuItem.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (can't be disabled under MSW)
+#define wxUSE_MENUS 1
+
+// Use wxSashWindow class.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_SASH 0
+
+// Use wxSplitterWindow class.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_SPLITTER 0
+
+// Use wxToolTip and wxWindow::Set/GetToolTip() methods.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_TOOLTIPS 0
+
+// wxValidator class and related methods
+#define wxUSE_VALIDATORS 0
+
+// wxDC cacheing implementation
+#define wxUSE_DC_CACHEING 0
+
+// Set this to 1 to enable the use of DIB's for wxBitmap to support
+// bitmaps > 16MB on Win95/98/Me. Set to 0 to use DDB's only.
+#define wxUSE_DIB_FOR_BITMAP 0
+
+// Set this to 1 to enable wxDIB
+#define wxUSE_WXDIB 0
+
+// ----------------------------------------------------------------------------
+// common dialogs
+// ----------------------------------------------------------------------------
+
+// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g.
+// file selector, printer dialog). Switching this off also switches off the
+// printing architecture and interactive wxPrinterDC.
+//
+// Default is 1
+//
+// Recommended setting: 1 (unless it really doesn't work)
+#define wxUSE_COMMON_DIALOGS 0
+
+// wxBusyInfo displays window with message when app is busy. Works in same way
+// as wxBusyCursor
+#define wxUSE_BUSYINFO 0
+
+// Use single/multiple choice dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_CHOICEDLG 0
+
+// Use colour picker dialog
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_COLOURDLG 0
+
+// wxDirDlg class for getting a directory name from user
+#define wxUSE_DIRDLG 0
+
+// TODO: setting to choose the generic or native one
+
+// Use file open/save dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in many places in the library itself)
+#define wxUSE_FILEDLG 0
+
+// Use find/replace dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (but may be safely set to 0)
+#define wxUSE_FINDREPLDLG 0
+
+// Use font picker dialog
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_FONTDLG 0
+
+// Use wxMessageDialog and wxMessageBox.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_MSGDLG 1
+
+// progress dialog class for lengthy operations
+#define wxUSE_PROGRESSDLG 0
+
+// support for startup tips (wxShowTip &c)
+#define wxUSE_STARTUP_TIPS 0
+
+// text entry dialog and wxGetTextFromUser function
+#define wxUSE_TEXTDLG 0
+
+// number entry dialog
+#define wxUSE_NUMBERDLG 0
+
+// splash screen class
+#define wxUSE_SPLASH 0
+
+// wizards
+#define wxUSE_WIZARDDLG 0
+
+// ----------------------------------------------------------------------------
+// Metafiles support
+// ----------------------------------------------------------------------------
+
+// Windows supports the graphics format known as metafile which is, though not
+// portable, is widely used under Windows and so is supported by wxWin (under
+// Windows only, of course). Win16 (Win3.1) used the so-called "Window
+// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in
+// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by
+// default, WMFs will be used under Win16 and EMFs under Win32. This may be
+// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting
+// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile
+// in any metafile related classes at all.
+//
+// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS.
+//
+// Recommended setting: default or 0 for everything for portable programs.
+#define wxUSE_METAFILE 0
+#define wxUSE_ENH_METAFILE 0
+#define wxUSE_WIN_METAFILES_ALWAYS 0
+
+// ----------------------------------------------------------------------------
+// Big GUI components
+// ----------------------------------------------------------------------------
+
+// Set to 0 to disable MDI support.
+//
+// Requires wxUSE_NOTEBOOK under platforms other than MSW.
+//
+// Default is 1.
+//
+// Recommended setting: 1, can be safely set to 0.
+#define wxUSE_MDI 0
+
+// Set to 0 to disable document/view architecture
+#define wxUSE_DOC_VIEW_ARCHITECTURE 0
+
+// Set to 0 to disable MDI document/view architecture
+//
+// Requires wxUSE_MDI && wxUSE_DOC_VIEW_ARCHITECTURE
+#define wxUSE_MDI_ARCHITECTURE 0
+
+// Set to 0 to disable print/preview architecture code
+#define wxUSE_PRINTING_ARCHITECTURE 0
+
+// wxHTML sublibrary allows to display HTML in wxWindow programs and much,
+// much more.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a
+// smaller library.
+#define wxUSE_HTML 0
+
+// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL
+// headers and libraries to be able to compile the library with wxUSE_GLCANVAS
+// set to 1. Note that for some compilers (notably Microsoft Visual C++) you
+// will need to manually add opengl32.lib and glu32.lib to the list of
+// libraries linked with your program if you use OpenGL.
+//
+// Default is 0.
+//
+// Recommended setting: 1 if you intend to use OpenGL, 0 otherwise
+#define wxUSE_GLCANVAS 0
+
+// ----------------------------------------------------------------------------
+// Data transfer
+// ----------------------------------------------------------------------------
+
+// Use wxClipboard class for clipboard copy/paste.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_CLIPBOARD 0
+
+// Use wxDataObject and related classes. Needed for clipboard and OLE drag and
+// drop
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_DATAOBJ 0
+
+// Use wxDropTarget and wxDropSource classes for drag and drop (this is
+// different from "built in" drag and drop in wxTreeCtrl which is always
+// available). Requires wxUSE_DATAOBJ.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_DRAG_AND_DROP 0
+
+// Use wxAccessible for enhanced and customisable accessibility.
+// Depends on wxUSE_OLE.
+//
+// Default is 0.
+//
+// Recommended setting (at present): 0
+#define wxUSE_ACCESSIBILITY 0
+
+// ----------------------------------------------------------------------------
+// miscellaneous settings
+// ----------------------------------------------------------------------------
+
+// wxSingleInstanceChecker class allows to verify at startup if another program
+// instance is running (it is only available under Win32)
+//
+// Default is 1
+//
+// Recommended setting: 1 (the class is tiny, disabling it won't save much
+// space)
+#define wxUSE_SNGLINST_CHECKER 0
+
+#define wxUSE_DRAGIMAGE 0
+
+#define wxUSE_IPC 0
+ // 0 for no interprocess comms
+#define wxUSE_HELP 0
+ // 0 for no help facility
+#define wxUSE_MS_HTML_HELP 0
+ // 0 for no MS HTML Help
+
+// Use wxHTML-based help controller?
+#define wxUSE_WXHTML_HELP 0
+
+#define wxUSE_RESOURCES 0
+ // 0 for no wxGetResource/wxWriteResource
+#define wxUSE_CONSTRAINTS 0
+ // 0 for no window layout constraint system
+
+#define wxUSE_SPLINES 0
+ // 0 for no splines
+
+#define wxUSE_MOUSEWHEEL 0
+ // Include mouse wheel support
+
+// ----------------------------------------------------------------------------
+// postscript support settings
+// ----------------------------------------------------------------------------
+
+// Set to 1 for PostScript device context.
+#define wxUSE_POSTSCRIPT 0
+
+// Set to 1 to use font metric files in GetTextExtent
+#define wxUSE_AFM_FOR_POSTSCRIPT 0
+
+// Set to 0 to disable PostScript print/preview architecture code under Windows
+// (just use Windows printing).
+#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
+
+// ----------------------------------------------------------------------------
+// database classes
+// ----------------------------------------------------------------------------
+
+// Define 1 to use ODBC classes
+#define wxUSE_ODBC 0
+
+// For backward compatibility reasons, this parameter now only controls the
+// default scrolling method used by cursors. This default behavior can be
+// overriden by setting the second param of wxDB::wxDbGetConnection() or
+// wxDb() constructor to indicate whether the connection (and any wxDbTable()s
+// that use the connection) should support forward only scrolling of cursors,
+// or both forward and backward support for backward scrolling cursors is
+// dependent on the data source as well as the ODBC driver being used.
+#define wxODBC_FWD_ONLY_CURSORS 0
+
+// Default is 0. Set to 1 to use the deprecated classes, enum types, function,
+// member variables. With a setting of 1, full backward compatability with the
+// 2.0.x release is possible. It is STRONGLY recommended that this be set to 0,
+// as future development will be done only on the non-deprecated
+// functions/classes/member variables/etc.
+#define wxODBC_BACKWARD_COMPATABILITY 0
+
+// ----------------------------------------------------------------------------
+// other compiler (mis)features
+// ----------------------------------------------------------------------------
+
+// Set this to 0 if your compiler can't cope with omission of prototype
+// parameters.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (should never need to set this to 0)
+#define REMOVE_UNUSED_ARG 1
+
+// VC++ 4.2 and above allows <iostream> and <iostream.h> but you can't mix
+// them. Set to 1 for <iostream.h>, 0 for <iostream>. Note that VC++ 7.1
+// and later doesn't support wxUSE_IOSTREAMH == 1 and so <iostream> will be
+// used anyhow.
+//
+// Default is 1.
+//
+// Recommended setting: whatever your compiler likes more
+#define wxUSE_IOSTREAMH 1
+
+// ----------------------------------------------------------------------------
+// image format support
+// ----------------------------------------------------------------------------
+
+// wxImage supports many different image formats which can be configured at
+// compile-time. BMP is always supported, others are optional and can be safely
+// disabled if you don't plan to use images in such format sometimes saving
+// substantial amount of code in the final library.
+//
+// Some formats require an extra library which is included in wxWin sources
+// which is mentioned if it is the case.
+
+// Set to 1 for wxImage support (recommended).
+#define wxUSE_IMAGE 0
+
+// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB.
+#define wxUSE_LIBPNG 0
+
+// Set to 1 for JPEG format support (requires libjpeg)
+#define wxUSE_LIBJPEG 0
+
+// Set to 1 for TIFF format support (requires libtiff)
+#define wxUSE_LIBTIFF 0
+
+// Set to 1 for GIF format support
+#define wxUSE_GIF 0
+
+// Set to 1 for PNM format support
+#define wxUSE_PNM 0
+
+// Set to 1 for PCX format support
+#define wxUSE_PCX 0
+
+// Set to 1 for IFF format support (Amiga format)
+#define wxUSE_IFF 0
+
+// Set to 1 for XPM format support
+#define wxUSE_XPM 0
+
+// Set to 1 for MS Icons and Cursors format support
+#define wxUSE_ICO_CUR 0
+
+// Set to 1 to compile in wxPalette class
+#define wxUSE_PALETTE 0
+
+// ----------------------------------------------------------------------------
+// Windows-only settings
+// ----------------------------------------------------------------------------
+
+// Set this to 1 if you want to use wxWidgets and MFC in the same program. This
+// will override some other settings (see below)
+//
+// Default is 0.
+//
+// Recommended setting: 0 unless you really have to use MFC
+#define wxUSE_MFC 0
+
+// Set this to 1 for generic OLE support: this is required for drag-and-drop,
+// clipboard, OLE Automation. Only set it to 0 if your compiler is very old and
+// can't compile/doesn't have the OLE headers.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_OLE 0
+
+// Set this to 1 to use Microsoft CTL3D library for "3D-look" under Win16 or NT
+// 3.x. This setting is ignored under Win9x and NT 4.0+.
+//
+// Default is 0 for (most) Win32 (systems), 1 for Win16
+//
+// Recommended setting: same as default
+#if defined(__WIN95__)
+#define wxUSE_CTL3D 0
+#else
+#define wxUSE_CTL3D 0
+#endif
+
+// Define as 1 to use Microsoft's ItsyBitsy small title bar library, for
+// wxMiniFrame. This setting is only used for Win3.1; Win9x and NT use native
+// miniframes support instead.
+//
+// Default is 0 for (most) Win32 (systems), 1 for Win16
+//
+#define wxUSE_ITSY_BITSY 0
+
+// Set this to 1 to use RICHEDIT controls for wxTextCtrl with style wxTE_RICH
+// which allows to put more than ~32Kb of text in it even under Win9x (NT
+// doesn't have such limitation).
+//
+// Default is 1 for compilers which support it
+//
+// Recommended setting: 1, only set it to 0 if your compiler doesn't have
+// or can't compile <richedit.h>
+#if defined(__WIN95__) && !defined(__WINE__) && !defined(__GNUWIN32_OLD__)
+#define wxUSE_RICHEDIT 0
+
+// TODO: This should be ifdef'ed for any compilers that don't support
+// RichEdit 2.0 but do have RichEdit 1.0...
+#define wxUSE_RICHEDIT2 0
+
+#else
+#define wxUSE_RICHEDIT 0
+#define wxUSE_RICHEDIT2 0
+#endif
+
+// Set this to 1 to enable support for the owner-drawn menu and listboxes. This
+// is required by wxUSE_CHECKLISTBOX.
+//
+// Default is 1.
+//
+// Recommended setting: 1, set to 0 for a small library size reduction
+#define wxUSE_OWNER_DRAWN 0
+
+// Set to 1 to compile MS Windows XP theme engine support
+#define wxUSE_UXTHEME 0
+
+// Set to 1 to auto-adapt to MS Windows XP themes where possible
+// (notably, wxNotebook pages)
+#define wxUSE_UXTHEME_AUTO 0
+
+// ----------------------------------------------------------------------------
+// obsolete settings
+// ----------------------------------------------------------------------------
+
+// NB: all settings in this section are obsolete and should not be used/changed
+// at all, they will disappear
+
+// Set to 1 to use PenWindows
+#define wxUSE_PENWINDOWS 0
+
+// Define 1 to use bitmap messages.
+#define wxUSE_BITMAP_MESSAGE 0
+
+// If 1, enables provision of run-time type information.
+// NOW MANDATORY: don't change.
+#define wxUSE_DYNAMIC_CLASSES 1
+
+#endif
+ // _WX_SETUP_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/slider95.h
+// Purpose: wxSlider class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _SLIDER95_H_
+#define _SLIDER95_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "slider95.h"
+#endif
+
+// Slider
+class WXDLLEXPORT wxSlider : public wxSliderBase
+{
+public:
+ wxSlider();
+
+ wxSlider(wxWindow *parent, wxWindowID id,
+ int value, int minValue, int maxValue,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSL_HORIZONTAL,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxSliderNameStr)
+ {
+ Create(parent, id, value, minValue, maxValue, pos, size, style, validator, name);
+ }
+
+ ~wxSlider();
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ int value, int minValue, int maxValue,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSL_HORIZONTAL,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxSliderNameStr);
+
+ virtual int GetValue() const;
+ virtual void SetValue(int);
+
+ void GetPosition(int *x, int *y) const;
+
+ bool Show(bool show = TRUE);
+
+ void SetRange(int minValue, int maxValue);
+
+ int GetMin() const { return m_rangeMin; }
+ int GetMax() const { return m_rangeMax; }
+
+ // For trackbars only
+ void SetTickFreq(int n, int pos);
+ int GetTickFreq() const { return m_tickFreq; }
+ void SetPageSize(int pageSize);
+ int GetPageSize() const;
+ void ClearSel();
+ void ClearTicks();
+ void SetLineSize(int lineSize);
+ int GetLineSize() const;
+ int GetSelEnd() const;
+ int GetSelStart() const;
+ void SetSelection(int minPos, int maxPos);
+ void SetThumbLength(int len);
+ int GetThumbLength() const;
+ void SetTick(int tickPos);
+
+ // IMPLEMENTATION
+ WXHWND GetStaticMin() const { return m_staticMin; }
+ WXHWND GetStaticMax() const { return m_staticMax; }
+ WXHWND GetEditValue() const { return m_staticValue; }
+ virtual bool ContainsHWND(WXHWND hWnd) const;
+
+ void Command(wxCommandEvent& event);
+ virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
+ WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+ virtual bool MSWOnScroll(int orientation, WXWORD wParam,
+ WXWORD pos, WXHWND control);
+
+protected:
+ WXHWND m_staticMin;
+ WXHWND m_staticMax;
+ WXHWND m_staticValue;
+ int m_rangeMin;
+ int m_rangeMax;
+ int m_pageSize;
+ int m_lineSize;
+ int m_tickFreq;
+
+ virtual void DoGetSize(int *width, int *height) const;
+
+ virtual void DoSetSize(int x, int y,
+ int width, int height,
+ int sizeFlags = wxSIZE_AUTO);
+
+ virtual wxSize DoGetBestSize() const;
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxSlider)
+};
+
+#endif
+ // _SLIDER95_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: sound.h
+// Purpose: wxSound class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_SOUND_H_
+#define _WX_SOUND_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "sound.h"
+#endif
+
+#if wxUSE_SOUND
+
+#include "wx/object.h"
+
+class WXDLLIMPEXP_ADV wxSound : public wxSoundBase
+{
+public:
+ wxSound();
+ wxSound(const wxString& fileName, bool isResource = false);
+ wxSound(int size, const wxByte* data);
+ ~wxSound();
+
+public:
+ // Create from resource or file
+ bool Create(const wxString& fileName, bool isResource = false);
+ // Create from data
+ bool Create(int size, const wxByte* data);
+
+ bool IsOk() const { return (m_waveData ? true : false); };
+
+ static void Stop();
+
+protected:
+ bool Free();
+
+ bool DoPlay(unsigned flags) const;
+
+private:
+ wxByte* m_waveData;
+ int m_waveLength;
+ bool m_isResource;
+
+ DECLARE_NO_COPY_CLASS(wxSound)
+};
+#endif
+#endif
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/univ/spinbutt.h
+// Purpose: wxSpinButton class
+// Author: Julian Smart
+// Modified by:
+// Created: 01/02/97
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_SPINBUTT_H_
+#define _WX_SPINBUTT_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "spinbutt.h"
+#endif
+
+#include "wx/control.h"
+#include "wx/event.h"
+
+class WXDLLEXPORT wxSpinButton : public wxSpinButtonBase
+{
+public:
+ // construction
+ wxSpinButton() { }
+
+ wxSpinButton(wxWindow *parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSP_VERTICAL | wxSP_ARROW_KEYS,
+ const wxString& name = wxSPIN_BUTTON_NAME)
+ {
+ Create(parent, id, pos, size, style, name);
+ }
+
+ virtual ~wxSpinButton();
+
+ bool Create(wxWindow *parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSP_VERTICAL | wxSP_ARROW_KEYS,
+ const wxString& name = wxSPIN_BUTTON_NAME);
+
+
+ // accessors
+ virtual int GetValue() const;
+ virtual void SetValue(int val);
+ virtual void SetRange(int minVal, int maxVal);
+
+ // implementation
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+ virtual bool MSWOnScroll(int orientation, WXWORD wParam,
+ WXWORD pos, WXHWND control);
+
+ // a wxSpinButton can't do anything useful with focus, only wxSpinCtrl can
+ virtual bool AcceptsFocus() const { return FALSE; }
+
+protected:
+ virtual wxSize DoGetBestSize() const;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxSpinButton)
+};
+
+#endif
+ // _WX_SPINBUTT_H_
--- /dev/null
+////////////////////////////////////////////////////////////////////////////
+// Name: palmos/spinctrl.h
+// Purpose: wxSpinCtrl class declaration for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PALMOS_SPINCTRL_H_
+#define _WX_PALMOS_SPINCTRL_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "spinctrl.h"
+#endif
+
+#include "wx/spinbutt.h" // the base class
+
+#include "wx/dynarray.h"
+
+class WXDLLEXPORT wxSpinCtrl;
+WX_DEFINE_EXPORTED_ARRAY_PTR(wxSpinCtrl *, wxArraySpins);
+
+// ----------------------------------------------------------------------------
+// Under Win32, wxSpinCtrl is a wxSpinButton with a buddy (as MSDN docs call
+// it) text window whose contents is automatically updated when the spin
+// control is clicked.
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxSpinCtrl : public wxSpinButton
+{
+public:
+ wxSpinCtrl() { }
+
+ wxSpinCtrl(wxWindow *parent,
+ wxWindowID id = -1,
+ const wxString& value = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSP_ARROW_KEYS,
+ int min = 0, int max = 100, int initial = 0,
+ const wxString& name = _T("wxSpinCtrl"))
+ {
+ Create(parent, id, value, pos, size, style, min, max, initial, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id = -1,
+ const wxString& value = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSP_ARROW_KEYS,
+ int min = 0, int max = 100, int initial = 0,
+ const wxString& name = _T("wxSpinCtrl"));
+
+ // a wxTextCtrl-like method (but we can't have GetValue returning wxString
+ // because the base class already has one returning int!)
+ void SetValue(const wxString& text);
+
+ // another wxTextCtrl-like method
+ void SetSelection(long from, long to);
+
+ // implementation only from now on
+ // -------------------------------
+
+ virtual ~wxSpinCtrl();
+
+ virtual void SetValue(int val) { wxSpinButton::SetValue(val); }
+ virtual int GetValue() const;
+ virtual bool SetFont(const wxFont &font);
+ virtual void SetFocus();
+
+ virtual bool Enable(bool enable = TRUE);
+ virtual bool Show(bool show = TRUE);
+
+ // wxSpinButton doesn't accept focus, but we do
+ virtual bool AcceptsFocus() const { return wxWindow::AcceptsFocus(); }
+
+ // for internal use only
+
+ // get the subclassed window proc of the buddy text
+ WXFARPROC GetBuddyWndProc() const { return m_wndProcBuddy; }
+
+ // return the spinctrl object whose buddy is the given window or NULL
+ static wxSpinCtrl *GetSpinForTextCtrl(WXHWND hwndBuddy);
+
+ // process a WM_COMMAND generated by the buddy text control
+ bool ProcessTextCommand(WXWORD cmd, WXWORD id);
+
+protected:
+ virtual void DoGetPosition(int *x, int *y) const;
+ virtual void DoMoveWindow(int x, int y, int width, int height);
+ virtual wxSize DoGetBestSize() const;
+ virtual void DoGetSize(int *width, int *height) const;
+
+ // the handler for wxSpinButton events
+ void OnSpinChange(wxSpinEvent& event);
+
+ // Handle processing of special keys
+ void OnChar(wxKeyEvent& event);
+ void OnSetFocus(wxFocusEvent& event);
+
+ // the data for the "buddy" text ctrl
+ WXHWND m_hwndBuddy;
+ WXFARPROC m_wndProcBuddy;
+
+ // all existing wxSpinCtrls - this allows to find the one corresponding to
+ // the given buddy window in GetSpinForTextCtrl()
+ static wxArraySpins ms_allSpins;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxSpinCtrl)
+ DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxSpinCtrl)
+};
+
+#endif // _WX_PALMOS_SPINCTRL_H_
+
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/statbmp.h
+// Purpose: wxStaticBitmap class for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_STATBMP_H_
+#define _WX_STATBMP_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "statbmp.h"
+#endif
+
+#include "wx/control.h"
+#include "wx/icon.h"
+#include "wx/bitmap.h"
+
+WXDLLEXPORT_DATA(extern const wxChar*) wxStaticBitmapNameStr;
+
+// a control showing an icon or a bitmap
+class WXDLLEXPORT wxStaticBitmap : public wxStaticBitmapBase
+{
+public:
+ wxStaticBitmap() { Init(); }
+
+ wxStaticBitmap(wxWindow *parent,
+ wxWindowID id,
+ const wxGDIImage& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxStaticBitmapNameStr)
+ {
+ Init();
+
+ Create(parent, id, label, pos, size, style, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxGDIImage& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxStaticBitmapNameStr);
+
+ virtual ~wxStaticBitmap() { Free(); }
+
+ virtual void SetIcon(const wxIcon& icon) { SetImage(&icon); }
+ virtual void SetBitmap(const wxBitmap& bitmap) { SetImage(&bitmap); }
+
+ // assert failure is provoked by an attempt to get an icon from bitmap or
+ // vice versa
+ wxIcon GetIcon() const
+ {
+ wxASSERT_MSG( m_isIcon, _T("no icon in this wxStaticBitmap") );
+
+ return *(wxIcon *)m_image;
+ }
+
+ wxBitmap GetBitmap() const
+ {
+ wxASSERT_MSG( !m_isIcon, _T("no bitmap in this wxStaticBitmap") );
+
+ return *(wxBitmap *)m_image;
+ }
+
+ // implementation only from now on
+ // -------------------------------
+
+ // implement base class virtuals
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
+protected:
+ virtual wxBorder GetDefaultBorder() const;
+ virtual wxSize DoGetBestSize() const;
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+ // ctor/dtor helpers
+ void Init() { m_isIcon = TRUE; m_image = NULL; }
+ void Free();
+
+ // TRUE if icon/bitmap is valid
+ bool ImageIsOk() const;
+
+ void SetImage(const wxGDIImage* image);
+ void SetImageNoCopy( wxGDIImage* image );
+
+ // we can have either an icon or a bitmap
+ bool m_isIcon;
+ wxGDIImage *m_image;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxStaticBitmap)
+ DECLARE_NO_COPY_CLASS(wxStaticBitmap)
+};
+
+#endif
+ // _WX_STATBMP_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: statbox.h
+// Purpose: wxStaticBox class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_STATBOX_H_
+#define _WX_STATBOX_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "statbox.h"
+#endif
+
+// Group box
+class WXDLLEXPORT wxStaticBox : public wxStaticBoxBase
+{
+public:
+ wxStaticBox() { }
+
+ wxStaticBox(wxWindow *parent, wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxStaticBoxNameStr)
+ {
+ Create(parent, id, label, pos, size, style, name);
+ }
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxStaticBoxNameStr);
+
+ // implementation from now on
+ // --------------------------
+
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
+ // overriden base class virtuals
+ virtual bool AcceptsFocus() const { return FALSE; }
+
+protected:
+ virtual wxSize DoGetBestSize() const;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticBox)
+};
+
+#endif
+ // _WX_STATBOX_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/statline.h
+// Purpose: Palm OS version of wxStaticLine class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSW_STATLINE_H_
+#define _WX_MSW_STATLINE_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface
+#endif
+
+// ----------------------------------------------------------------------------
+// wxStaticLine
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxStaticLine : public wxStaticLineBase
+{
+public:
+ // constructors and pseudo-constructors
+ wxStaticLine() { }
+
+ wxStaticLine( wxWindow *parent,
+ wxWindowID id,
+ const wxPoint &pos = wxDefaultPosition,
+ const wxSize &size = wxDefaultSize,
+ long style = wxLI_HORIZONTAL,
+ const wxString &name = wxStaticTextNameStr )
+ {
+ Create(parent, id, pos, size, style, name);
+ }
+
+ bool Create( wxWindow *parent,
+ wxWindowID id,
+ const wxPoint &pos = wxDefaultPosition,
+ const wxSize &size = wxDefaultSize,
+ long style = wxLI_HORIZONTAL,
+ const wxString &name = wxStaticTextNameStr );
+
+ // overriden base class virtuals
+ virtual bool AcceptsFocus() const { return FALSE; }
+
+protected:
+ // usually overridden base class virtuals
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticLine)
+};
+
+#endif // _WX_MSW_STATLINE_H_
+
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/stattext.h
+// Purpose: wxStaticText class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_STATTEXT_H_
+#define _WX_STATTEXT_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "stattext.h"
+#endif
+
+class WXDLLEXPORT wxStaticText : public wxStaticTextBase
+{
+public:
+ wxStaticText() { }
+
+ wxStaticText(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxStaticTextNameStr)
+ {
+ Create(parent, id, label, pos, size, style, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxStaticTextNameStr);
+
+ // override some methods to resize the window properly
+ virtual void SetLabel(const wxString& label);
+ virtual bool SetFont( const wxFont &font );
+
+protected:
+ // implement/override some base class virtuals
+ virtual wxBorder GetDefaultBorder() const;
+ virtual void DoSetSize(int x, int y, int w, int h,
+ int sizeFlags = wxSIZE_AUTO);
+ virtual wxSize DoGetBestSize() const;
+ virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const;
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticText)
+};
+
+#endif
+ // _WX_STATTEXT_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/statusbr.h
+// Purpose: Palm OS implementation of wxStatusBar
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_STATUSBR_H_
+#define _WX_STATUSBR_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "statusbr.h"
+#endif
+
+#if wxUSE_NATIVE_STATUSBAR
+
+class WXDLLEXPORT wxStatusBarPalm : public wxStatusBarBase
+{
+public:
+ // ctors and such
+ wxStatusBarPalm();
+ wxStatusBarPalm(wxWindow *parent,
+ wxWindowID id = -1,
+ long style = wxST_SIZEGRIP,
+ const wxString& name = wxEmptyString)
+ {
+ (void)Create(parent, id, style, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id = -1,
+ long style = wxST_SIZEGRIP,
+ const wxString& name = wxEmptyString);
+
+ virtual ~wxStatusBarPalm();
+
+ // a status line can have several (<256) fields numbered from 0
+ virtual void SetFieldsCount(int number = 1, const int *widths = NULL);
+
+ // each field of status line has it's own text
+ virtual void SetStatusText(const wxString& text, int number = 0);
+ virtual wxString GetStatusText(int number = 0) const;
+
+ // set status line fields' widths
+ virtual void SetStatusWidths(int n, const int widths_field[]);
+
+ // sets the minimal vertical size of the status bar
+ virtual void SetMinHeight(int height);
+
+ // get the position and size of the field's internal bounding rectangle
+ virtual bool GetFieldRect(int i, wxRect& rect) const;
+
+ // get the border size
+ virtual int GetBorderX() const;
+ virtual int GetBorderY() const;
+
+ void DrawStatusBar();
+
+protected:
+ void CopyFieldsWidth(const int widths[]);
+ void SetFieldsWidth();
+
+ // store the text in the status bar
+ wxListString **StatusTextBuffer;
+ void SetStatusBufferText(const wxString& text, int number);
+ wxString GetStatusBufferText(int number);
+ wxListString *GetOrCreateStatusBuffer(int i);
+ wxListString *GetStatusBufferStack(int i) const;
+ void DeleteStatusBuffer();
+
+ // override base class virtual
+ void DoMoveWindow(int x, int y, int width, int height);
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBarPalm)
+};
+
+#endif // wxUSE_NATIVE_STATUSBAR
+
+#endif
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: tabctrl.h
+// Purpose: wxTabCtrl class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_TABCTRL_H_
+#define _WX_TABCTRL_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "tabctrl.h"
+#endif
+
+class wxImageList;
+
+// WXDLLEXPORT_DATA(extern const wxChar*) wxToolBarNameStr;
+
+/*
+ * Flags returned by HitTest
+ */
+
+#define wxTAB_HITTEST_NOWHERE 1
+#define wxTAB_HITTEST_ONICON 2
+#define wxTAB_HITTEST_ONLABEL 4
+#define wxTAB_HITTEST_ONITEM 6
+
+class WXDLLEXPORT wxTabCtrl: public wxControl
+{
+ DECLARE_DYNAMIC_CLASS(wxTabCtrl)
+ public:
+ /*
+ * Public interface
+ */
+
+ wxTabCtrl();
+
+ inline wxTabCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
+ long style = 0, const wxString& name = wxT("tabCtrl"))
+ {
+ Create(parent, id, pos, size, style, name);
+ }
+ ~wxTabCtrl();
+
+// Accessors
+
+ // Get the selection
+ int GetSelection() const;
+
+ // Get the tab with the current keyboard focus
+ int GetCurFocus() const;
+
+ // Get the associated image list
+ wxImageList* GetImageList() const;
+
+ // Get the number of items
+ int GetItemCount() const;
+
+ // Get the rect corresponding to the tab
+ bool GetItemRect(int item, wxRect& rect) const;
+
+ // Get the number of rows
+ int GetRowCount() const;
+
+ // Get the item text
+ wxString GetItemText(int item) const ;
+
+ // Get the item image
+ int GetItemImage(int item) const;
+
+ // Get the item data
+ void* GetItemData(int item) const;
+
+ // Set the selection
+ int SetSelection(int item);
+
+ // Set the image list
+ void SetImageList(wxImageList* imageList);
+
+ // Set the text for an item
+ bool SetItemText(int item, const wxString& text);
+
+ // Set the image for an item
+ bool SetItemImage(int item, int image);
+
+ // Set the data for an item
+ bool SetItemData(int item, void* data);
+
+ // Set the size for a fixed-width tab control
+ void SetItemSize(const wxSize& size);
+
+ // Set the padding between tabs
+ void SetPadding(const wxSize& padding);
+
+// Operations
+
+ bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
+ long style = 0, const wxString& name = wxT("tabCtrl"));
+
+ // Delete all items
+ bool DeleteAllItems();
+
+ // Delete an item
+ bool DeleteItem(int item);
+
+ // Hit test
+ int HitTest(const wxPoint& pt, long& flags);
+
+ // Insert an item
+ bool InsertItem(int item, const wxString& text, int imageId = -1, void* data = NULL);
+
+ // Implementation
+
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+
+ // Responds to colour changes
+ void OnSysColourChanged(wxSysColourChangedEvent& event);
+
+protected:
+ wxImageList* m_imageList;
+
+DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxTabCtrl)
+};
+
+class WXDLLEXPORT wxTabEvent : public wxNotifyEvent
+{
+public:
+ wxTabEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
+ int nSel = -1, int nOldSel = -1)
+ : wxNotifyEvent(commandType, id)
+ {
+ m_nSel = nSel;
+ m_nOldSel = nOldSel;
+ }
+
+ // accessors
+ // the currently selected page (-1 if none)
+ int GetSelection() const { return m_nSel; }
+ void SetSelection(int nSel) { m_nSel = nSel; }
+ // the page that was selected before the change (-1 if none)
+ int GetOldSelection() const { return m_nOldSel; }
+ void SetOldSelection(int nOldSel) { m_nOldSel = nOldSel; }
+
+private:
+ int m_nSel, // currently selected page
+ m_nOldSel; // previously selected page
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxTabEvent)
+};
+
+typedef void (wxEvtHandler::*wxTabEventFunction)(wxTabEvent&);
+
+#define EVT_TAB_SEL_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_TAB_SEL_CHANGED, \
+ id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxTabEventFunction, & fn ), NULL),
+#define EVT_TAB_SEL_CHANGING(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_TAB_SEL_CHANGING, \
+ id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxTabEventFunction, & fn ), NULL),
+
+#endif
+ // _WX_TABCTRL_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////
+// File: wx/palmos/taskbar.h
+// Purpose: Defines wxTaskBarIcon class for manipulating icons on the
+// task bar.
+// Author: Julian Smart
+// Modified by: Vaclav Slavik
+// Created: 24/3/98
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////
+
+#ifndef _TASKBAR_H_
+#define _TASKBAR_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "taskbar.h"
+#endif
+
+#include "wx/icon.h"
+
+// private helper class:
+class WXDLLIMPEXP_ADV wxTaskBarIconWindow;
+
+class WXDLLIMPEXP_ADV wxTaskBarIcon: public wxTaskBarIconBase
+{
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxTaskBarIcon)
+public:
+ wxTaskBarIcon();
+ virtual ~wxTaskBarIcon();
+
+// Accessors
+ inline bool IsOk() const { return true; }
+ inline bool IsIconInstalled() const { return m_iconAdded; }
+
+// Operations
+ bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxEmptyString);
+ bool RemoveIcon(void);
+ bool PopupMenu(wxMenu *menu); //, int x, int y);
+
+#if WXWIN_COMPATIBILITY_2_4
+ wxDEPRECATED( bool IsOK() const );
+
+// Overridables
+ virtual void OnMouseMove(wxEvent&);
+ virtual void OnLButtonDown(wxEvent&);
+ virtual void OnLButtonUp(wxEvent&);
+ virtual void OnRButtonDown(wxEvent&);
+ virtual void OnRButtonUp(wxEvent&);
+ virtual void OnLButtonDClick(wxEvent&);
+ virtual void OnRButtonDClick(wxEvent&);
+#endif
+
+// Implementation
+protected:
+ friend class wxTaskBarIconWindow;
+ long WindowProc(unsigned int msg, unsigned int wParam, long lParam);
+ void RegisterWindowMessages();
+
+// Data members
+protected:
+ wxTaskBarIconWindow *m_win;
+ bool m_iconAdded;
+ wxIcon m_icon;
+ wxString m_strTooltip;
+
+#if WXWIN_COMPATIBILITY_2_4
+ // non-virtual default event handlers to forward events to the virtuals
+ void _OnMouseMove(wxTaskBarIconEvent&);
+ void _OnLButtonDown(wxTaskBarIconEvent&);
+ void _OnLButtonUp(wxTaskBarIconEvent&);
+ void _OnRButtonDown(wxTaskBarIconEvent&);
+ void _OnRButtonUp(wxTaskBarIconEvent&);
+ void _OnLButtonDClick(wxTaskBarIconEvent&);
+ void _OnRButtonDClick(wxTaskBarIconEvent&);
+
+ DECLARE_EVENT_TABLE()
+#endif
+};
+
+#if WXWIN_COMPATIBILITY_2_4
+inline bool wxTaskBarIcon::IsOK() const { return IsOk(); }
+#endif
+
+#endif
+ // _TASKBAR_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/textctrl.h
+// Purpose: wxTextCtrl class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_TEXTCTRL_H_
+#define _WX_TEXTCTRL_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "textctrl.h"
+#endif
+
+class WXDLLEXPORT wxTextCtrl : public wxTextCtrlBase
+{
+public:
+ // creation
+ // --------
+
+ wxTextCtrl() { Init(); }
+ wxTextCtrl(wxWindow *parent, wxWindowID id,
+ const wxString& value = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxTextCtrlNameStr)
+ {
+ Init();
+
+ Create(parent, id, value, pos, size, style, validator, name);
+ }
+ ~wxTextCtrl();
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxString& value = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxTextCtrlNameStr);
+
+ // implement base class pure virtuals
+ // ----------------------------------
+
+ virtual wxString GetValue() const;
+ virtual void SetValue(const wxString& value);
+
+ virtual wxString GetRange(long from, long to) const;
+
+ virtual int GetLineLength(long lineNo) const;
+ virtual wxString GetLineText(long lineNo) const;
+ virtual int GetNumberOfLines() const;
+
+ virtual bool IsModified() const;
+ virtual bool IsEditable() const;
+
+ virtual void GetSelection(long* from, long* to) const;
+
+ // operations
+ // ----------
+
+ // editing
+ virtual void Clear();
+ virtual void Replace(long from, long to, const wxString& value);
+ virtual void Remove(long from, long to);
+
+ // load the controls contents from the file
+ virtual bool LoadFile(const wxString& file);
+
+ // clears the dirty flag
+ virtual void MarkDirty();
+ virtual void DiscardEdits();
+
+ virtual void SetMaxLength(unsigned long len);
+
+ // writing text inserts it at the current position, appending always
+ // inserts it at the end
+ virtual void WriteText(const wxString& text);
+ virtual void AppendText(const wxString& text);
+
+#ifdef __WIN32__
+ virtual bool EmulateKeyPress(const wxKeyEvent& event);
+#endif // __WIN32__
+
+#if wxUSE_RICHEDIT
+ // apply text attribute to the range of text (only works with richedit
+ // controls)
+ virtual bool SetStyle(long start, long end, const wxTextAttr& style);
+ virtual bool SetDefaultStyle(const wxTextAttr& style);
+ virtual bool GetStyle(long position, wxTextAttr& style);
+#endif // wxUSE_RICHEDIT
+
+ // translate between the position (which is just an index in the text ctrl
+ // considering all its contents as a single strings) and (x, y) coordinates
+ // which represent column and line.
+ virtual long XYToPosition(long x, long y) const;
+ virtual bool PositionToXY(long pos, long *x, long *y) const;
+
+ virtual void ShowPosition(long pos);
+ virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt,
+ wxTextCoord *col,
+ wxTextCoord *row) const;
+
+ // Clipboard operations
+ virtual void Copy();
+ virtual void Cut();
+ virtual void Paste();
+
+ virtual bool CanCopy() const;
+ virtual bool CanCut() const;
+ virtual bool CanPaste() const;
+
+ // Undo/redo
+ virtual void Undo();
+ virtual void Redo();
+
+ virtual bool CanUndo() const;
+ virtual bool CanRedo() const;
+
+ // Insertion point
+ virtual void SetInsertionPoint(long pos);
+ virtual void SetInsertionPointEnd();
+ virtual long GetInsertionPoint() const;
+ virtual long GetLastPosition() const;
+
+ virtual void SetSelection(long from, long to);
+ virtual void SetEditable(bool editable);
+
+ // Caret handling (Windows only)
+
+ bool ShowNativeCaret(bool show = true);
+ bool HideNativeCaret() { return ShowNativeCaret(false); }
+
+ // Implementation from now on
+ // --------------------------
+
+ virtual void SetWindowStyleFlag(long style);
+
+ virtual void Command(wxCommandEvent& event);
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
+ WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+
+#if wxUSE_RICHEDIT
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+
+ int GetRichVersion() const { return m_verRichEdit; }
+ bool IsRich() const { return m_verRichEdit != 0; }
+
+ // rich edit controls are not compatible with normal ones and wem ust set
+ // the colours for them otherwise
+ virtual bool SetBackgroundColour(const wxColour& colour);
+ virtual bool SetForegroundColour(const wxColour& colour);
+#endif // wxUSE_RICHEDIT
+
+ virtual void AdoptAttributesFromHWND();
+
+ virtual bool AcceptsFocus() const;
+
+ // callbacks
+ void OnDropFiles(wxDropFilesEvent& event);
+ void OnChar(wxKeyEvent& event); // Process 'enter' if required
+
+ void OnCut(wxCommandEvent& event);
+ void OnCopy(wxCommandEvent& event);
+ void OnPaste(wxCommandEvent& event);
+ void OnUndo(wxCommandEvent& event);
+ void OnRedo(wxCommandEvent& event);
+ void OnDelete(wxCommandEvent& event);
+ void OnSelectAll(wxCommandEvent& event);
+
+ void OnUpdateCut(wxUpdateUIEvent& event);
+ void OnUpdateCopy(wxUpdateUIEvent& event);
+ void OnUpdatePaste(wxUpdateUIEvent& event);
+ void OnUpdateUndo(wxUpdateUIEvent& event);
+ void OnUpdateRedo(wxUpdateUIEvent& event);
+ void OnUpdateDelete(wxUpdateUIEvent& event);
+ void OnUpdateSelectAll(wxUpdateUIEvent& event);
+
+ // Show a context menu for Rich Edit controls (the standard
+ // EDIT control has one already)
+ void OnRightClick(wxMouseEvent& event);
+
+ // be sure the caret remains invisible if the user
+ // called HideNativeCaret() before
+ void OnSetFocus(wxFocusEvent& event);
+
+protected:
+ // common part of all ctors
+ void Init();
+
+ // intercept WM_GETDLGCODE
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
+ // call this to increase the size limit (will do nothing if the current
+ // limit is big enough)
+ //
+ // returns true if we increased the limit to allow entering more text,
+ // false if we hit the limit set by SetMaxLength() and so didn't change it
+ bool AdjustSpaceLimit();
+
+#if wxUSE_RICHEDIT && (!wxUSE_UNICODE || wxUSE_UNICODE_MSLU)
+ // replace the selection or the entire control contents with the given text
+ // in the specified encoding
+ bool StreamIn(const wxString& value, wxFontEncoding encoding, bool selOnly);
+
+ // get the contents of the control out as text in the given encoding
+ wxString StreamOut(wxFontEncoding encoding, bool selOnly = false) const;
+#endif // wxUSE_RICHEDIT
+
+ // replace the contents of the selection or of the entire control with the
+ // given text
+ void DoWriteText(const wxString& text, bool selectionOnly = TRUE);
+
+ // set the selection possibly without scrolling the caret into view
+ void DoSetSelection(long from, long to, bool scrollCaret = TRUE);
+
+ // return true if there is a non empty selection in the control
+ bool HasSelection() const;
+
+ // get the length of the line containing the character at the given
+ // position
+ long GetLengthOfLineContainingPos(long pos) const;
+
+ // send TEXT_UPDATED event, return TRUE if it was handled, FALSE otherwise
+ bool SendUpdateEvent();
+
+ // override some base class virtuals
+ virtual bool MSWShouldPreProcessMessage(WXMSG* pMsg);
+ virtual wxSize DoGetBestSize() const;
+
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+#if wxUSE_RICHEDIT
+ // we're using RICHEDIT (and not simple EDIT) control if this field is not
+ // 0, it also gives the version of the RICHEDIT control being used (1, 2 or
+ // 3 so far)
+ int m_verRichEdit;
+#endif // wxUSE_RICHEDIT
+
+ // if TRUE, SendUpdateEvent() will eat the next event (see comments in the
+ // code as to why this is needed)
+ bool m_suppressNextUpdate;
+
+private:
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxTextCtrl)
+
+ wxMenu* m_privateContextMenu;
+
+ bool m_isNativeCaretShown;
+};
+
+#endif
+ // _WX_TEXTCTRL_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/tglbtn.h
+// Purpose: Declaration of the wxToggleButton class, which implements a
+// toggle button under Palm OS.
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_TOGGLEBUTTON_H_
+#define _WX_TOGGLEBUTTON_H_
+
+WXDLLEXPORT_DATA(extern const wxChar*) wxCheckBoxNameStr;
+
+// Checkbox item (single checkbox)
+class WXDLLEXPORT wxToggleButton : public wxControl
+{
+public:
+ wxToggleButton() {}
+ wxToggleButton(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxCheckBoxNameStr)
+ {
+ Create(parent, id, label, pos, size, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxCheckBoxNameStr);
+
+ virtual void SetValue(bool value);
+ virtual bool GetValue() const ;
+
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ virtual void SetLabel(const wxString& label);
+ virtual void Command(wxCommandEvent& event);
+
+protected:
+ virtual wxSize DoGetBestSize() const;
+ virtual wxBorder GetDefaultBorder() const;
+ virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxToggleButton)
+};
+
+#endif // _WX_TOGGLEBUTTON_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: timer.h
+// Purpose: wxTimer class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_TIMER_H_
+#define _WX_TIMER_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "timer.h"
+#endif
+
+class WXDLLEXPORT wxTimer : public wxTimerBase
+{
+friend void wxProcessTimer(wxTimer& timer);
+
+public:
+ wxTimer() { Init(); }
+ wxTimer(wxEvtHandler *owner, int id = -1) : wxTimerBase(owner, id)
+ { Init(); }
+ ~wxTimer();
+
+ virtual bool Start(int milliseconds = -1, bool oneShot = FALSE);
+ virtual void Stop();
+
+ virtual bool IsRunning() const { return m_id != 0; }
+
+protected:
+ void Init();
+
+ unsigned long m_id;
+
+private:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxTimer)
+};
+
+#endif
+ // _WX_TIMERH_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/toolbar.h
+// Purpose: wxToolBar class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_TBAR95_H_
+#define _WX_TBAR95_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "toolbar.h"
+#endif
+
+#if wxUSE_TOOLBAR
+
+#include "wx/dynarray.h"
+
+class WXDLLEXPORT wxToolBar : public wxToolBarBase
+{
+public:
+ // ctors and dtor
+ wxToolBar() { Init(); }
+
+ wxToolBar(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxNO_BORDER | wxTB_HORIZONTAL,
+ const wxString& name = wxToolBarNameStr)
+ {
+ Init();
+
+ Create(parent, id, pos, size, style, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxNO_BORDER | wxTB_HORIZONTAL,
+ const wxString& name = wxToolBarNameStr);
+
+ virtual ~wxToolBar();
+
+ // override/implement base class virtuals
+ virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
+
+ virtual bool Realize();
+
+ virtual void SetToolBitmapSize(const wxSize& size);
+ virtual wxSize GetToolSize() const;
+
+ virtual void SetRows(int nRows);
+
+ // implementation only from now on
+ // -------------------------------
+
+ virtual void SetWindowStyleFlag(long style);
+
+ void OnMouseEvent(wxMouseEvent& event);
+ void OnSysColourChanged(wxSysColourChangedEvent& event);
+
+ void SetFocus() {}
+
+protected:
+ // common part of all ctors
+ void Init();
+
+ // recreate the control completely
+ void Recreate();
+
+ // implement base class pure virtuals
+ virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
+ virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
+
+ virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
+ virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
+ virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
+
+ virtual wxToolBarToolBase *CreateTool(int id,
+ const wxString& label,
+ const wxBitmap& bmpNormal,
+ const wxBitmap& bmpDisabled,
+ wxItemKind kind,
+ wxObject *clientData,
+ const wxString& shortHelp,
+ const wxString& longHelp);
+ virtual wxToolBarToolBase *CreateTool(wxControl *control);
+
+ // return the appropriate size and flags for the toolbar control
+ virtual wxSize DoGetBestSize() const;
+
+ // should be called whenever the toolbar size changes
+ void UpdateSize();
+
+ // the big bitmap containing all bitmaps of the toolbar buttons
+ WXHBITMAP m_hBitmap;
+
+ // the total number of toolbar elements
+ size_t m_nButtons;
+
+ // the tool the cursor is in
+ wxToolBarToolBase *m_pInTool;
+
+private:
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS(wxToolBar)
+ DECLARE_NO_COPY_CLASS(wxToolBar)
+};
+
+#endif // wxUSE_TOOLBAR
+
+#endif
+ // _WX_TBAR95_H_
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/tooltip.h
+// Purpose: wxToolTip class - tooltip control
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+class WXDLLEXPORT wxToolTip : public wxObject
+{
+public:
+ // ctor & dtor
+ wxToolTip(const wxString &tip);
+ virtual ~wxToolTip();
+
+ // accessors
+ // tip text
+ void SetTip(const wxString& tip);
+ const wxString& GetTip() const { return m_text; }
+
+ // the window we're associated with
+ void SetWindow(wxWindow *win);
+ wxWindow *GetWindow() const { return m_window; }
+
+ // controlling tooltip behaviour: globally change tooltip parameters
+ // enable or disable the tooltips globally
+ static void Enable(bool flag);
+ // set the delay after which the tooltip appears
+ static void SetDelay(long milliseconds);
+
+ // implementation only from now on
+ // -------------------------------
+
+ // should be called in responde to WM_MOUSEMOVE
+ void RelayEvent(WXMSG *msg);
+
+private:
+ // the one and only one tooltip control we use - never access it directly
+ // but use GetToolTipCtrl() which will create it when needed
+ static WXHWND ms_hwndTT;
+
+ // create the tooltip ctrl if it doesn't exist yet and return its HWND
+ static WXHWND GetToolTipCtrl();
+
+ // remove this tooltip from the tooltip control
+ void Remove();
+
+ // add a window to the tooltip control
+ void Add(WXHWND hwnd);
+
+ wxString m_text; // tooltip text
+ wxWindow *m_window; // window we're associated with
+
+ DECLARE_ABSTRACT_CLASS(wxToolTip)
+ DECLARE_NO_COPY_CLASS(wxToolTip)
+};
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/toplevel.h
+// Purpose: wxTopLevelWindow
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PALMOS_TOPLEVEL_H_
+#define _WX_PALMOS_TOPLEVEL_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "toplevel.h"
+#endif
+
+#ifdef __PALMOS__
+ #include <PalmOS.h>
+#endif
+
+// ----------------------------------------------------------------------------
+// wxTopLevelWindowPalm
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxTopLevelWindowPalm : public wxTopLevelWindowBase
+{
+public:
+ // constructors and such
+ wxTopLevelWindowPalm() { Init(); }
+
+ wxTopLevelWindowPalm(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE,
+ const wxString& name = wxFrameNameStr)
+ {
+ Init();
+
+ (void)Create(parent, id, title, pos, size, style, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE,
+ const wxString& name = wxFrameNameStr);
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name,
+ wxFrame* PFrame);
+
+ virtual ~wxTopLevelWindowPalm();
+
+ // implement base class pure virtuals
+ virtual void Maximize(bool maximize = TRUE);
+ virtual bool IsMaximized() const;
+ virtual void Iconize(bool iconize = TRUE);
+ virtual bool IsIconized() const;
+ virtual void SetIcon(const wxIcon& icon);
+ virtual void SetIcons(const wxIconBundle& icons );
+ virtual void Restore();
+
+#ifndef __WXWINCE__
+ virtual bool SetShape(const wxRegion& region);
+#endif // __WXWINCE__
+
+ virtual bool Show(bool show = TRUE);
+
+ virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL);
+ virtual bool IsFullScreen() const { return m_fsIsShowing; }
+
+ // wxPalm only: EnableCloseButton(FALSE) may be used to remove the "Close"
+ // button from the title bar
+ bool EnableCloseButton(bool enable = TRUE);
+
+ // implementation from now on
+ // --------------------------
+
+ // event handlers
+ void OnActivate(wxActivateEvent& event);
+
+ // called by wxWindow whenever it gets focus
+ void SetLastFocus(wxWindow *win) { m_winLastFocused = win; }
+ wxWindow *GetLastFocus() const { return m_winLastFocused; }
+
+protected:
+ // common part of all ctors
+ void Init();
+
+ // create a new frame, return FALSE if it couldn't be created
+ bool CreateFrame(const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size);
+
+ // create a new dialog using the given dialog template from resources,
+ // return FALSE if it couldn't be created
+ bool CreateDialog(const void *dlgTemplate,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size);
+
+ // common part of Iconize(), Maximize() and Restore()
+ void DoShowWindow(int nShowCmd);
+
+ // translate wxWidgets flags to Windows ones
+ virtual WXDWORD PalmGetStyle(long flags, WXDWORD *exstyle) const;
+
+ // choose the right parent to use with CreateWindow()
+ virtual WXHWND PalmGetParent() const;
+
+ // is the window currently iconized?
+ bool m_iconized;
+
+ // should the frame be maximized when it will be shown? set by Maximize()
+ // when it is called while the frame is hidden
+ bool m_maximizeOnShow;
+
+ // Data to save/restore when calling ShowFullScreen
+ long m_fsStyle; // Passed to ShowFullScreen
+ wxRect m_fsOldSize;
+ long m_fsOldWindowStyle;
+ bool m_fsIsMaximized;
+ bool m_fsIsShowing;
+
+ // the last focused child: we restore focus to it on activation
+ wxWindow *m_winLastFocused;
+
+ DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxTopLevelWindowPalm)
+};
+
+static Boolean FrameFormHandleEvent(EventType* pEvent);
+
+#endif // _WX_PALMOS_TOPLEVEL_H_
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/treectrl.h
+// Purpose: wxTreeCtrl class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_TREECTRL_H_
+#define _WX_TREECTRL_H_
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "treectrl.h"
+#endif
+
+#if wxUSE_TREECTRL
+
+#include "wx/textctrl.h"
+#include "wx/dynarray.h"
+#include "wx/treebase.h"
+#include "wx/hashmap.h"
+
+#ifdef __GNUWIN32__
+ // Cygwin windows.h defines these identifiers
+ #undef GetFirstChild
+ #undef GetNextSibling
+#endif // Cygwin
+
+// fwd decl
+class WXDLLEXPORT wxImageList;
+class WXDLLEXPORT wxDragImage;
+struct WXDLLEXPORT wxTreeViewItem;
+
+// NB: all the following flags are for compatbility only and will be removed in the
+// next versions
+
+// flags for deprecated `Expand(int action)'
+enum
+{
+ wxTREE_EXPAND_EXPAND,
+ wxTREE_EXPAND_COLLAPSE,
+ wxTREE_EXPAND_COLLAPSE_RESET,
+ wxTREE_EXPAND_TOGGLE
+};
+
+// flags for deprecated InsertItem() variant (their values are the same as of
+// TVI_FIRST and TVI_LAST)
+#define wxTREE_INSERT_FIRST 0xFFFF0001
+#define wxTREE_INSERT_LAST 0xFFFF0002
+
+// hash storing attributes for our items
+WX_DECLARE_EXPORTED_VOIDPTR_HASH_MAP(wxTreeItemAttr *, wxMapTreeAttr);
+
+// ----------------------------------------------------------------------------
+// wxTreeCtrl
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxTreeCtrl : public wxControl
+{
+public:
+ // creation
+ // --------
+ wxTreeCtrl() { Init(); }
+
+ wxTreeCtrl(wxWindow *parent, wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxTreeCtrlNameStr)
+ {
+ Create(parent, id, pos, size, style, validator, name);
+ }
+
+ virtual ~wxTreeCtrl();
+
+ bool Create(wxWindow *parent, wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxTreeCtrlNameStr);
+
+ // accessors
+ // ---------
+
+ // get the total number of items in the control
+ size_t GetCount() const;
+
+ // indent is the number of pixels the children are indented relative to
+ // the parents position. SetIndent() also redraws the control
+ // immediately.
+ unsigned int GetIndent() const;
+ void SetIndent(unsigned int indent);
+
+ // spacing is the number of pixels between the start and the Text
+ // not implemented under wxMSW
+ unsigned int GetSpacing() const { return 18; } // return wxGTK default
+ void SetSpacing(unsigned int WXUNUSED(spacing)) { }
+
+ // image list: these functions allow to associate an image list with
+ // the control and retrieve it. Note that the control does _not_ delete
+ // the associated image list when it's deleted in order to allow image
+ // lists to be shared between different controls.
+ //
+ // The normal image list is for the icons which correspond to the
+ // normal tree item state (whether it is selected or not).
+ // Additionally, the application might choose to show a state icon
+ // which corresponds to an app-defined item state (for example,
+ // checked/unchecked) which are taken from the state image list.
+ wxImageList *GetImageList() const;
+ wxImageList *GetStateImageList() const;
+
+ void SetImageList(wxImageList *imageList);
+ void SetStateImageList(wxImageList *imageList);
+ void AssignImageList(wxImageList *imageList);
+ void AssignStateImageList(wxImageList *imageList);
+
+ // Functions to work with tree ctrl items. Unfortunately, they can _not_ be
+ // member functions of wxTreeItem because they must know the tree the item
+ // belongs to for Windows implementation and storing the pointer to
+ // wxTreeCtrl in each wxTreeItem is just too much waste.
+
+ // accessors
+ // ---------
+
+ // retrieve items label
+ wxString GetItemText(const wxTreeItemId& item) const;
+ // get one of the images associated with the item (normal by default)
+ int GetItemImage(const wxTreeItemId& item,
+ wxTreeItemIcon which = wxTreeItemIcon_Normal) const;
+ // get the data associated with the item
+ wxTreeItemData *GetItemData(const wxTreeItemId& item) const;
+
+ // get the item's text colour
+ wxColour GetItemTextColour(const wxTreeItemId& item) const;
+
+ // get the item's background colour
+ wxColour GetItemBackgroundColour(const wxTreeItemId& item) const;
+
+ // get the item's font
+ wxFont GetItemFont(const wxTreeItemId& item) const;
+
+ // modifiers
+ // ---------
+
+ // set items label
+ void SetItemText(const wxTreeItemId& item, const wxString& text);
+ // get one of the images associated with the item (normal by default)
+ void SetItemImage(const wxTreeItemId& item, int image,
+ wxTreeItemIcon which = wxTreeItemIcon_Normal);
+ // associate some data with the item
+ void SetItemData(const wxTreeItemId& item, wxTreeItemData *data);
+
+ // force appearance of [+] button near the item. This is useful to
+ // allow the user to expand the items which don't have any children now
+ // - but instead add them only when needed, thus minimizing memory
+ // usage and loading time.
+ void SetItemHasChildren(const wxTreeItemId& item, bool has = TRUE);
+
+ // the item will be shown in bold
+ void SetItemBold(const wxTreeItemId& item, bool bold = TRUE);
+
+ // the item will be shown with a drop highlight
+ void SetItemDropHighlight(const wxTreeItemId& item, bool highlight = TRUE);
+
+ // set the items text colour
+ void SetItemTextColour(const wxTreeItemId& item, const wxColour& col);
+
+ // set the items background colour
+ void SetItemBackgroundColour(const wxTreeItemId& item, const wxColour& col);
+
+ // set the items font (should be of the same height for all items)
+ void SetItemFont(const wxTreeItemId& item, const wxFont& font);
+
+ // item status inquiries
+ // ---------------------
+
+ // is the item visible (it might be outside the view or not expanded)?
+ bool IsVisible(const wxTreeItemId& item) const;
+ // does the item has any children?
+ bool ItemHasChildren(const wxTreeItemId& item) const;
+ // is the item expanded (only makes sense if HasChildren())?
+ bool IsExpanded(const wxTreeItemId& item) const;
+ // is this item currently selected (the same as has focus)?
+ bool IsSelected(const wxTreeItemId& item) const;
+ // is item text in bold font?
+ bool IsBold(const wxTreeItemId& item) const;
+
+ // number of children
+ // ------------------
+
+ // if 'recursively' is FALSE, only immediate children count, otherwise
+ // the returned number is the number of all items in this branch
+ size_t GetChildrenCount(const wxTreeItemId& item,
+ bool recursively = TRUE) const;
+
+ // navigation
+ // ----------
+
+ // wxTreeItemId.IsOk() will return FALSE if there is no such item
+
+ // get the root tree item
+ wxTreeItemId GetRootItem() const;
+
+ // get the item currently selected (may return NULL if no selection)
+ wxTreeItemId GetSelection() const;
+
+ // get the items currently selected, return the number of such item
+ //
+ // NB: this operation is expensive and can take a long time for a
+ // control with a lot of items (~ O(number of items)).
+ size_t GetSelections(wxArrayTreeItemIds& selections) const;
+
+ // get the parent of this item (may return NULL if root)
+ wxTreeItemId GetItemParent(const wxTreeItemId& item) const;
+
+#if WXWIN_COMPATIBILITY_2_2
+ // deprecated: Use GetItemParent instead.
+ wxTreeItemId GetParent(const wxTreeItemId& item) const
+ { return GetItemParent( item ); }
+
+ // Expose the base class method hidden by the one above.
+ wxWindow *GetParent() const { return wxControl::GetParent(); }
+#endif // WXWIN_COMPATIBILITY_2_2
+
+ // for this enumeration function you must pass in a "cookie" parameter
+ // which is opaque for the application but is necessary for the library
+ // to make these functions reentrant (i.e. allow more than one
+ // enumeration on one and the same object simultaneously). Of course,
+ // the "cookie" passed to GetFirstChild() and GetNextChild() should be
+ // the same!
+
+ // get the first child of this item
+ wxTreeItemId GetFirstChild(const wxTreeItemId& item,
+ wxTreeItemIdValue& cookie) const;
+ // get the next child
+ wxTreeItemId GetNextChild(const wxTreeItemId& item,
+ wxTreeItemIdValue& cookie) const;
+ // get the last child of this item - this method doesn't use cookies
+ wxTreeItemId GetLastChild(const wxTreeItemId& item) const;
+
+ // get the next sibling of this item
+ wxTreeItemId GetNextSibling(const wxTreeItemId& item) const;
+ // get the previous sibling
+ wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const;
+
+ // get first visible item
+ wxTreeItemId GetFirstVisibleItem() const;
+ // get the next visible item: item must be visible itself!
+ // see IsVisible() and wxTreeCtrl::GetFirstVisibleItem()
+ wxTreeItemId GetNextVisible(const wxTreeItemId& item) const;
+ // get the previous visible item: item must be visible itself!
+ wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const;
+
+ // operations
+ // ----------
+
+ // add the root node to the tree
+ wxTreeItemId AddRoot(const wxString& text,
+ int image = -1, int selectedImage = -1,
+ wxTreeItemData *data = NULL);
+
+ // insert a new item in as the first child of the parent
+ wxTreeItemId PrependItem(const wxTreeItemId& parent,
+ const wxString& text,
+ int image = -1, int selectedImage = -1,
+ wxTreeItemData *data = NULL);
+
+ // insert a new item after a given one
+ wxTreeItemId InsertItem(const wxTreeItemId& parent,
+ const wxTreeItemId& idPrevious,
+ const wxString& text,
+ int image = -1, int selectedImage = -1,
+ wxTreeItemData *data = NULL);
+
+ // insert a new item before the one with the given index
+ wxTreeItemId InsertItem(const wxTreeItemId& parent,
+ size_t index,
+ const wxString& text,
+ int image = -1, int selectedImage = -1,
+ wxTreeItemData *data = NULL);
+
+ // insert a new item in as the last child of the parent
+ wxTreeItemId AppendItem(const wxTreeItemId& parent,
+ const wxString& text,
+ int image = -1, int selectedImage = -1,
+ wxTreeItemData *data = NULL);
+
+ // delete this item and associated data if any
+ void Delete(const wxTreeItemId& item);
+ // delete all children (but don't delete the item itself)
+ // NB: this won't send wxEVT_COMMAND_TREE_ITEM_DELETED events
+ void DeleteChildren(const wxTreeItemId& item);
+ // delete all items from the tree
+ // NB: this won't send wxEVT_COMMAND_TREE_ITEM_DELETED events
+ void DeleteAllItems();
+
+ // expand this item
+ void Expand(const wxTreeItemId& item);
+ // collapse the item without removing its children
+ void Collapse(const wxTreeItemId& item);
+ // collapse the item and remove all children
+ void CollapseAndReset(const wxTreeItemId& item);
+ // toggles the current state
+ void Toggle(const wxTreeItemId& item);
+
+ // remove the selection from currently selected item (if any)
+ void Unselect();
+ // unselect all items (only makes sense for multiple selection control)
+ void UnselectAll();
+ // select this item
+ void SelectItem(const wxTreeItemId& item, bool select = true);
+ // unselect this item
+ void UnselectItem(const wxTreeItemId& item);
+ // toggle item selection
+ void ToggleItemSelection(const wxTreeItemId& item);
+
+ // make sure this item is visible (expanding the parent item and/or
+ // scrolling to this item if necessary)
+ void EnsureVisible(const wxTreeItemId& item);
+ // scroll to this item (but don't expand its parent)
+ void ScrollTo(const wxTreeItemId& item);
+
+ // start editing the item label: this (temporarily) replaces the item
+ // with a one line edit control. The item will be selected if it hadn't
+ // been before. textCtrlClass parameter allows you to create an edit
+ // control of arbitrary user-defined class deriving from wxTextCtrl.
+ wxTextCtrl* EditLabel(const wxTreeItemId& item,
+ wxClassInfo* textCtrlClass = CLASSINFO(wxTextCtrl));
+ // returns the same pointer as StartEdit() if the item is being edited,
+ // NULL otherwise (it's assumed that no more than one item may be
+ // edited simultaneously)
+ wxTextCtrl* GetEditControl() const;
+ // end editing and accept or discard the changes to item label
+ void EndEditLabel(const wxTreeItemId& item, bool discardChanges = FALSE);
+
+ // sorting
+ // this function is called to compare 2 items and should return -1, 0
+ // or +1 if the first item is less than, equal to or greater than the
+ // second one. The base class version performs alphabetic comparaison
+ // of item labels (GetText)
+ virtual int OnCompareItems(const wxTreeItemId& item1,
+ const wxTreeItemId& item2);
+ // sort the children of this item using OnCompareItems
+ //
+ // NB: this function is not reentrant and not MT-safe (FIXME)!
+ void SortChildren(const wxTreeItemId& item);
+
+ // helpers
+ // -------
+
+ // determine to which item (if any) belongs the given point (the
+ // coordinates specified are relative to the client area of tree ctrl)
+ // and fill the flags parameter with a bitmask of wxTREE_HITTEST_xxx
+ // constants.
+ //
+ // The first function is more portable (because easier to implement
+ // on other platforms), but the second one returns some extra info.
+ wxTreeItemId HitTest(const wxPoint& point)
+ { int dummy; return HitTest(point, dummy); }
+ wxTreeItemId HitTest(const wxPoint& point, int& flags);
+
+ // get the bounding rectangle of the item (or of its label only)
+ bool GetBoundingRect(const wxTreeItemId& item,
+ wxRect& rect,
+ bool textOnly = FALSE) const;
+
+ // deprecated
+ // ----------
+
+#if WXWIN_COMPATIBILITY_2_4
+ // these methods are deprecated and will be removed in future versions of
+ // wxWidgets, they're here for compatibility only, don't use them in new
+ // code (the comments indicate why these methods are now useless and how to
+ // replace them)
+
+ // use Expand, Collapse, CollapseAndReset or Toggle
+ wxDEPRECATED( void ExpandItem(const wxTreeItemId& item, int action) );
+
+ // use AddRoot, PrependItem or AppendItem
+ wxDEPRECATED( wxTreeItemId InsertItem(const wxTreeItemId& parent,
+ const wxString& text,
+ int image = -1, int selImage = -1,
+ long insertAfter = wxTREE_INSERT_LAST) );
+
+ // use Set/GetImageList and Set/GetStateImageList
+ wxImageList *GetImageList(int) const { return GetImageList(); }
+ void SetImageList(wxImageList *imageList, int) { SetImageList(imageList); }
+
+ // use Set/GetItemImage directly
+ int GetItemSelectedImage(const wxTreeItemId& item) const
+ { return GetItemImage(item, wxTreeItemIcon_Selected); }
+ void SetItemSelectedImage(const wxTreeItemId& item, int image)
+ { SetItemImage(item, image, wxTreeItemIcon_Selected); }
+
+ // use the versions taking wxTreeItemIdValue cookies
+ wxDEPRECATED( wxTreeItemId GetFirstChild(const wxTreeItemId& item,
+ long& cookie) const );
+ wxDEPRECATED( wxTreeItemId GetNextChild(const wxTreeItemId& item,
+ long& cookie) const );
+#endif // WXWIN_COMPATIBILITY_2_4
+
+
+ // implementation
+ // --------------
+
+ virtual bool ShouldInheritColours() const { return false; }
+
+ virtual wxVisualAttributes GetDefaultAttributes() const
+ {
+ return GetClassDefaultAttributes(GetWindowVariant());
+ }
+
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+
+
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+
+ // override some base class virtuals
+ virtual bool SetBackgroundColour(const wxColour &colour);
+ virtual bool SetForegroundColour(const wxColour &colour);
+
+ // get/set the check state for the item (only for wxTR_MULTIPLE)
+ bool IsItemChecked(const wxTreeItemId& item) const;
+ void SetItemCheck(const wxTreeItemId& item, bool check = TRUE);
+
+ // set/get the item state.image (state == -1 means cycle to the next one)
+ void SetState(const wxTreeItemId& node, int state);
+ int GetState(const wxTreeItemId& node);
+
+protected:
+ // SetImageList helper
+ void SetAnyImageList(wxImageList *imageList, int which);
+
+ // refresh a single item
+ void RefreshItem(const wxTreeItemId& item);
+
+ wxTextCtrl *m_textCtrl; // used while editing the item label
+ wxImageList *m_imageListNormal, // images for tree elements
+ *m_imageListState; // special images for app defined states
+ bool m_ownsImageListNormal, m_ownsImageListState;
+
+private:
+ // the common part of all ctors
+ void Init();
+
+ // helper functions
+ inline bool DoGetItem(wxTreeViewItem *tvItem) const;
+ inline void DoSetItem(wxTreeViewItem *tvItem);
+
+ inline void DoExpand(const wxTreeItemId& item, int flag);
+
+ wxTreeItemId DoInsertItem(const wxTreeItemId& parent,
+ wxTreeItemId hInsertAfter,
+ const wxString& text,
+ int image, int selectedImage,
+ wxTreeItemData *data);
+
+ int DoGetItemImageFromData(const wxTreeItemId& item,
+ wxTreeItemIcon which) const;
+ void DoSetItemImageFromData(const wxTreeItemId& item,
+ int image,
+ wxTreeItemIcon which) const;
+ void DoSetItemImages(const wxTreeItemId& item, int image, int imageSel);
+
+ void DeleteTextCtrl();
+
+ // support for additional item images which we implement using
+ // wxTreeItemIndirectData technique - see the comments in msw/treectrl.cpp
+ void SetIndirectItemData(const wxTreeItemId& item,
+ class wxTreeItemIndirectData *data);
+ bool HasIndirectData(const wxTreeItemId& item) const;
+ bool IsDataIndirect(wxTreeItemData *data) const
+ { return data && data->GetId().m_pItem == 0; }
+
+ // the hash storing the items attributes (indexed by item ids)
+ wxMapTreeAttr m_attrs;
+
+ // TRUE if the hash above is not empty
+ bool m_hasAnyAttr;
+
+ // used for dragging
+ wxDragImage *m_dragImage;
+
+ // Virtual root item, if wxTR_HIDE_ROOT is set.
+ void* m_pVirtualRoot;
+
+ // the starting item for selection with Shift
+ wxTreeItemId m_htSelStart;
+
+ friend class wxTreeItemIndirectData;
+ friend class wxTreeSortHelper;
+
+ DECLARE_DYNAMIC_CLASS(wxTreeCtrl)
+ DECLARE_NO_COPY_CLASS(wxTreeCtrl)
+};
+
+#endif // wxUSE_TREECTRL
+
+#endif
+ // _WX_TREECTRL_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/palmos/window.h
+// Purpose: wxWindow class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_WINDOW_H_
+#define _WX_WINDOW_H_
+
+#ifdef __PALMOS__
+ #include <PalmOS.h>
+#endif
+
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "window.h"
+#endif
+
+// [at least] some version of Windows send extra mouse move messages after
+// a mouse click or a key press - to temporarily fix this problem, set the
+// define below to 1
+//
+// a better solution should be found later...
+#define wxUSE_MOUSEEVENT_HACK 0
+
+// ---------------------------------------------------------------------------
+// constants
+// ---------------------------------------------------------------------------
+
+// FIXME does anybody use those? they're unused by wxWidgets...
+enum
+{
+ wxKEY_SHIFT = 1,
+ wxKEY_CTRL = 2
+};
+
+// ---------------------------------------------------------------------------
+// wxWindow declaration for Palm
+// ---------------------------------------------------------------------------
+
+class WXDLLEXPORT wxWindowPalm : public wxWindowBase
+{
+public:
+ wxWindowPalm() { Init(); }
+
+ wxWindowPalm(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxPanelNameStr)
+ {
+ Init();
+ Create(parent, id, pos, size, style, name);
+ }
+
+ virtual ~wxWindowPalm();
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxPanelNameStr);
+
+ // implement base class pure virtuals
+ virtual void SetTitle( const wxString& title);
+ virtual wxString GetTitle() const;
+
+ virtual void Raise();
+ virtual void Lower();
+
+ virtual bool Show( bool show = TRUE );
+ virtual bool Enable( bool enable = TRUE );
+
+ virtual void SetFocus();
+ virtual void SetFocusFromKbd();
+
+ virtual bool Reparent(wxWindowBase *newParent);
+
+ virtual void WarpPointer(int x, int y);
+
+ virtual void Refresh( bool eraseBackground = TRUE,
+ const wxRect *rect = (const wxRect *) NULL );
+ virtual void Update();
+ virtual void Freeze();
+ virtual void Thaw();
+
+ virtual void SetWindowStyleFlag( long style );
+ virtual bool SetCursor( const wxCursor &cursor );
+ virtual bool SetFont( const wxFont &font );
+
+ virtual int GetCharHeight() const;
+ virtual int GetCharWidth() const;
+ virtual void GetTextExtent(const wxString& string,
+ int *x, int *y,
+ int *descent = (int *) NULL,
+ int *externalLeading = (int *) NULL,
+ const wxFont *theFont = (const wxFont *) NULL)
+ const;
+
+#if wxUSE_MENUS_NATIVE
+ virtual bool DoPopupMenu( wxMenu *menu, int x, int y );
+#endif // wxUSE_MENUS_NATIVE
+
+ virtual void SetScrollbar( int orient, int pos, int thumbVisible,
+ int range, bool refresh = TRUE );
+ virtual void SetScrollPos( int orient, int pos, bool refresh = TRUE );
+ virtual int GetScrollPos( int orient ) const;
+ virtual int GetScrollThumb( int orient ) const;
+ virtual int GetScrollRange( int orient ) const;
+ virtual void ScrollWindow( int dx, int dy,
+ const wxRect* rect = (wxRect *) NULL );
+
+ virtual bool ScrollLines(int lines);
+ virtual bool ScrollPages(int pages);
+
+#if wxUSE_DRAG_AND_DROP
+ virtual void SetDropTarget( wxDropTarget *dropTarget );
+#endif // wxUSE_DRAG_AND_DROP
+
+ // Accept files for dragging
+ virtual void DragAcceptFiles(bool accept);
+
+#if WXWIN_COMPATIBILITY_2_4
+ wxDEPRECATED( bool GetUseCtl3D() const );
+ wxDEPRECATED( bool GetTransparentBackground() const );
+ wxDEPRECATED( void SetTransparent(bool t = TRUE) );
+#endif // WXWIN_COMPATIBILITY_2_4
+
+#ifndef __WXUNIVERSAL__
+ // Native resource loading (implemented in src/Palm/nativdlg.cpp)
+ // FIXME: should they really be all virtual?
+ virtual bool LoadNativeDialog(wxWindow* parent, wxWindowID& id);
+ virtual bool LoadNativeDialog(wxWindow* parent, const wxString& name);
+ wxWindow* GetWindowChild1(wxWindowID id);
+ wxWindow* GetWindowChild(wxWindowID id);
+#endif // __WXUNIVERSAL__
+
+#if wxUSE_HOTKEY
+ // install and deinstall a system wide hotkey
+ virtual bool RegisterHotKey(int hotkeyId, int modifiers, int keycode);
+ virtual bool UnregisterHotKey(int hotkeyId);
+#endif // wxUSE_HOTKEY
+
+ // implementation from now on
+ // --------------------------
+
+ // simple accessors
+ // ----------------
+
+ WXHWND GetHWND() const { return m_hWnd; }
+ void SetHWND(WXHWND hWnd) { m_hWnd = hWnd; }
+ virtual WXWidget GetHandle() const { return GetHWND(); }
+
+ // event handlers
+ // --------------
+
+ void OnEraseBackground(wxEraseEvent& event);
+ void OnPaint(wxPaintEvent& event);
+
+public:
+ // For implementation purposes - sometimes decorations make the client area
+ // smaller
+ virtual wxPoint GetClientAreaOrigin() const;
+
+ // Windows subclassing
+ void SubclassWin(WXHWND hWnd);
+ void UnsubclassWin();
+
+ WXFARPROC PalmGetOldWndProc() const { return m_oldWndProc; }
+ void PalmSetOldWndProc(WXFARPROC proc) { m_oldWndProc = proc; }
+
+ // return TRUE if the window is of a standard (i.e. not wxWidgets') class
+ //
+ // to understand why does it work, look at SubclassWin() code and comments
+ bool IsOfStandardClass() const { return m_oldWndProc != NULL; }
+
+ wxWindow *FindItem(long id) const;
+ wxWindow *FindItemByHWND(WXHWND hWnd, bool controlOnly = FALSE) const;
+
+ // Palm only: TRUE if this control is part of the main control
+ virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; };
+
+ // translate wxWidgets style flags for this control into the Windows style
+ // and optional extended style for the corresponding native control
+ //
+ // this is the function that should be overridden in the derived classes,
+ // but you will mostly use PalmGetCreateWindowFlags() below
+ virtual WXDWORD PalmGetStyle(long flags, WXDWORD *exstyle = NULL) const ;
+
+ // get the Palm window flags corresponding to wxWidgets ones
+ //
+ // the functions returns the flags (WS_XXX) directly and puts the ext
+ // (WS_EX_XXX) flags into the provided pointer if not NULL
+ WXDWORD PalmGetCreateWindowFlags(WXDWORD *exflags = NULL) const
+ { return PalmGetStyle(GetWindowStyle(), exflags); }
+
+ // translate wxWidgets coords into Windows ones suitable to be passed to
+ // ::CreateWindow()
+ //
+ // returns TRUE if non default coords are returned, FALSE otherwise
+ bool PalmGetCreateWindowCoords(const wxPoint& pos,
+ const wxSize& size,
+ int& x, int& y,
+ int& w, int& h) const;
+
+ // get the HWND to be used as parent of this window with CreateWindow()
+ virtual WXHWND PalmGetParent() const;
+
+ // creates the window of specified Windows class with given style, extended
+ // style, title and geometry (default values
+ //
+ // returns TRUE if the window has been created, FALSE if creation failed
+ bool PalmCreate(const wxChar *wclass,
+ const wxChar *title = NULL,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ WXDWORD style = 0,
+ WXDWORD exendedStyle = 0);
+
+ virtual bool PalmCommand(WXUINT param, WXWORD id);
+
+#ifndef __WXUNIVERSAL__
+ // Create an appropriate wxWindow from a HWND
+ virtual wxWindow* CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd);
+
+ // Make sure the window style reflects the HWND style (roughly)
+ virtual void AdoptAttributesFromHWND();
+#endif // __WXUNIVERSAL__
+
+ // Setup background and foreground colours correctly
+ virtual void SetupColours();
+
+ // ------------------------------------------------------------------------
+ // helpers for message handlers: these perform the same function as the
+ // message crackers from <windowsx.h> - they unpack WPARAM and LPARAM into
+ // the correct parameters
+ // ------------------------------------------------------------------------
+
+ void UnpackCommand(WXWPARAM wParam, WXLPARAM lParam,
+ WXWORD *id, WXHWND *hwnd, WXWORD *cmd);
+ void UnpackActivate(WXWPARAM wParam, WXLPARAM lParam,
+ WXWORD *state, WXWORD *minimized, WXHWND *hwnd);
+ void UnpackScroll(WXWPARAM wParam, WXLPARAM lParam,
+ WXWORD *code, WXWORD *pos, WXHWND *hwnd);
+ void UnpackCtlColor(WXWPARAM wParam, WXLPARAM lParam,
+ WXWORD *nCtlColor, WXHDC *hdc, WXHWND *hwnd);
+ void UnpackMenuSelect(WXWPARAM wParam, WXLPARAM lParam,
+ WXWORD *item, WXWORD *flags, WXHMENU *hmenu);
+
+ // ------------------------------------------------------------------------
+ // internal handlers for Palm messages: all handlers return a boolean value:
+ // TRUE means that the handler processed the event and FALSE that it didn't
+ // ------------------------------------------------------------------------
+
+ // there are several cases where we have virtual functions for Windows
+ // message processing: this is because these messages often require to be
+ // processed in a different manner in the derived classes. For all other
+ // messages, however, we do *not* have corresponding PalmOnXXX() function
+ // and if the derived class wants to process them, it should override
+ // PalmWindowProc() directly.
+
+ // scroll event (both horizontal and vertical)
+ virtual bool PalmOnScroll(int orientation, WXWORD nSBCode,
+ WXWORD pos, WXHWND control);
+
+ // child control notifications
+#ifdef __WIN95__
+ virtual bool PalmOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+#endif // __WIN95__
+
+ // owner-drawn controls need to process these messages
+ virtual bool PalmOnDrawItem(int id, WXDRAWITEMSTRUCT *item);
+ virtual bool PalmOnMeasureItem(int id, WXMEASUREITEMSTRUCT *item);
+
+ // the rest are not virtual
+ bool HandleCreate(WXLPCREATESTRUCT cs, bool *mayCreate);
+ bool HandleInitDialog(WXHWND hWndFocus);
+ bool HandleDestroy();
+
+ bool HandlePaint();
+ bool HandleEraseBkgnd(WXHDC pDC);
+
+ bool HandleMinimize();
+ bool HandleMaximize();
+ bool HandleSize(int x, int y, WXUINT flag);
+ bool HandleSizing(wxRect& rect);
+ bool HandleGetMinMaxInfo(void *mmInfo);
+
+ bool HandleShow(bool show, int status);
+ bool HandleActivate(int flag, bool minimized, WXHWND activate);
+
+ bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control);
+
+ bool HandleCtlColor(WXHBRUSH *hBrush,
+ WXHDC hdc,
+ WXHWND hWnd,
+ WXUINT nCtlColor,
+ WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam);
+
+ bool HandlePaletteChanged(WXHWND hWndPalChange);
+ bool HandleQueryNewPalette();
+ bool HandleSysColorChange();
+ bool HandleDisplayChange();
+ bool HandleCaptureChanged(WXHWND gainedCapture);
+
+ bool HandleQueryEndSession(long logOff, bool *mayEnd);
+ bool HandleEndSession(bool endSession, long logOff);
+
+ bool HandleSetFocus(WXHWND wnd);
+ bool HandleKillFocus(WXHWND wnd);
+
+ bool HandleDropFiles(WXWPARAM wParam);
+
+ bool HandleMouseEvent(WXUINT msg, int x, int y, WXUINT flags);
+ bool HandleMouseMove(int x, int y, WXUINT flags);
+ bool HandleMouseWheel(WXWPARAM wParam, WXLPARAM lParam);
+
+ bool HandleChar(WXWPARAM wParam, WXLPARAM lParam, bool isASCII = FALSE);
+ bool HandleKeyDown(WXWPARAM wParam, WXLPARAM lParam);
+ bool HandleKeyUp(WXWPARAM wParam, WXLPARAM lParam);
+#if wxUSE_ACCEL
+ bool HandleHotKey(WXWPARAM wParam, WXLPARAM lParam);
+#endif
+#ifdef __WIN32__
+ int HandleMenuChar(int chAccel, WXLPARAM lParam);
+#endif
+
+ bool HandleQueryDragIcon(WXHICON *hIcon);
+
+ bool HandleSetCursor(WXHWND hWnd, short nHitTest, int mouseMsg);
+
+ // Window procedure
+ virtual WXLRESULT PalmWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
+ // Calls an appropriate default window procedure
+ virtual WXLRESULT PalmDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
+ // message processing helpers
+
+ // return FALSE if the message shouldn't be translated/preprocessed but
+ // dispatched normally
+ virtual bool PalmShouldPreProcessMessage(WXMSG* pMsg);
+
+ // return TRUE if the message was preprocessed and shouldn't be dispatched
+ virtual bool PalmProcessMessage(WXMSG* pMsg);
+
+ // return TRUE if the message was translated and shouldn't be dispatched
+ virtual bool PalmTranslateMessage(WXMSG* pMsg);
+
+ // called when the window is about to be destroyed
+ virtual void PalmDestroyWindow();
+
+ // this function should return the brush to paint the window background
+ // with or 0 for the default brush
+ virtual WXHBRUSH OnCtlColor(WXHDC hDC,
+ WXHWND hWnd,
+ WXUINT nCtlColor,
+ WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam);
+
+ // Responds to colour changes: passes event on to children.
+ void OnSysColourChanged(wxSysColourChangedEvent& event);
+
+ // initialize various fields of wxMouseEvent (common part of PalmOnMouseXXX)
+ void InitMouseEvent(wxMouseEvent& event, int x, int y, WXUINT flags);
+
+ // check if mouse is in the window
+ bool IsMouseInWindow() const;
+
+ // virtual function for implementing internal idle
+ // behaviour
+ virtual void OnInternalIdle() ;
+
+protected:
+ // the window handle
+ WXHWND m_hWnd;
+ FormType *FrameForm;
+
+ FormType *GetFormPtr();
+ void SetFormPtr(FormType *FormPtr);
+
+ // the old window proc (we subclass all windows)
+ WXFARPROC m_oldWndProc;
+
+ // additional (Palm specific) flags
+ bool m_mouseInWindow:1;
+ bool m_lastKeydownProcessed:1;
+
+ // the size of one page for scrolling
+ int m_xThumbSize;
+ int m_yThumbSize;
+
+#if wxUSE_MOUSEEVENT_HACK
+ // the coordinates of the last mouse event and the type of it
+ long m_lastMouseX,
+ m_lastMouseY;
+ int m_lastMouseEvent;
+#endif // wxUSE_MOUSEEVENT_HACK
+
+ WXHMENU m_hMenu; // Menu, if any
+
+ // implement the base class pure virtuals
+ virtual void DoClientToScreen( int *x, int *y ) const;
+ virtual void DoScreenToClient( int *x, int *y ) const;
+ virtual void DoGetPosition( int *x, int *y ) const;
+ virtual void DoGetSize( int *width, int *height ) const;
+ virtual void DoGetClientSize( int *width, int *height ) const;
+ virtual void DoSetSize(int x, int y,
+ int width, int height,
+ int sizeFlags = wxSIZE_AUTO);
+ virtual void DoSetClientSize(int width, int height);
+
+ virtual void DoCaptureMouse();
+ virtual void DoReleaseMouse();
+
+ // move the window to the specified location and resize it: this is called
+ // from both DoSetSize() and DoSetClientSize() and would usually just call
+ // ::MoveWindow() except for composite controls which will want to arrange
+ // themselves inside the given rectangle
+ virtual void DoMoveWindow(int x, int y, int width, int height);
+
+#if wxUSE_TOOLTIPS
+ virtual void DoSetToolTip( wxToolTip *tip );
+
+ // process TTN_NEEDTEXT message properly (i.e. fixing the bugs in
+ // comctl32.dll in our code -- see the function body for more info)
+ bool HandleTooltipNotify(WXUINT code,
+ WXLPARAM lParam,
+ const wxString& ttip);
+#endif // wxUSE_TOOLTIPS
+
+ // the helper functions used by HandleChar/KeyXXX methods
+ wxKeyEvent CreateKeyEvent(wxEventType evType, int id,
+ WXLPARAM lParam = 0, WXWPARAM wParam = 0) const;
+
+private:
+ // common part of all ctors
+ void Init();
+
+ // the (non-virtual) handlers for the events
+ bool HandleMove(int x, int y);
+ bool HandleMoving(wxRect& rect);
+ bool HandleJoystickEvent(WXUINT msg, int x, int y, WXUINT flags);
+
+#ifdef __WIN95__
+ bool HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+#endif // __WIN95__
+
+ // list of disabled children before last call to our Disable()
+ wxWindowList *m_childrenDisabled;
+
+ // number of calls to Freeze() minus number of calls to Thaw()
+ unsigned int m_frozenness;
+
+ DECLARE_DYNAMIC_CLASS(wxWindowPalm)
+ DECLARE_NO_COPY_CLASS(wxWindowPalm)
+ DECLARE_EVENT_TABLE()
+};
+
+// ----------------------------------------------------------------------------
+// inline functions
+// ----------------------------------------------------------------------------
+
+#if WXWIN_COMPATIBILITY_2_4
+
+inline bool wxWindowPalm::GetUseCtl3D() const { return false; }
+inline bool wxWindowPalm::GetTransparentBackground() const { return false; }
+inline void wxWindowPalm::SetTransparent(bool WXUNUSED(t)) { }
+
+#endif // WXWIN_COMPATIBILITY_2_4
+
+// ---------------------------------------------------------------------------
+// global functions
+// ---------------------------------------------------------------------------
+
+// kbd code translation
+WXDLLEXPORT int wxCharCodePalmToWX(int keySym, WXLPARAM lParam = 0);
+WXDLLEXPORT int wxCharCodeWXToPalm(int id, bool *IsVirtual);
+
+// window creation helper class: before creating a new HWND, instantiate an
+// object of this class on stack - this allows to process the messages sent to
+// the window even before CreateWindow() returns
+class wxWindowCreationHook
+{
+public:
+ wxWindowCreationHook(wxWindowPalm *winBeingCreated);
+ ~wxWindowCreationHook();
+};
+
+// ----------------------------------------------------------------------------
+// global objects
+// ----------------------------------------------------------------------------
+
+// notice that this hash must be defined after wxWindow declaration as it
+// needs to "see" its dtor and not just forward declaration
+#include "wx/hash.h"
+
+// pseudo-template HWND <-> wxWindow hash table
+#if WXWIN_COMPATIBILITY_2_4
+WX_DECLARE_HASH(wxWindow, wxWindowList, wxWinHashTable);
+#else
+WX_DECLARE_HASH(wxWindowPalm, wxWindowList, wxWinHashTable);
+#endif
+
+extern wxWinHashTable *wxWinHandleHash;
+
+#endif
+ // _WX_WINDOW_H_
--- /dev/null
+EXPORTS
+_PalmUIAppStartup @1
+SysGetRefNum @2
+__ExportDispatchTable @3
+__GetRefNum @4
+__SetPreloadedDispatchTable @5
+__SetRefNum @6
\ No newline at end of file
--- /dev/null
+;
+; BasicApp Library Definition File
+;
+
+REVISION 1
+RESOURCEID 0
+
+; Always use this default main entry point for UI applications
+ENTRY _PalmUIAppStartup
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<PALMOS_RESOURCE_FILE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1000">
+ <ALERT_TYPE> WARNING_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "OK" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1001">
+ <ALERT_TYPE> ERROR_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "OK" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1002">
+ <ALERT_TYPE> INFORMATION_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "OK" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1003">
+ <ALERT_TYPE> CONFIRMATION_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "OK" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1100">
+ <ALERT_TYPE> WARNING_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "OK" </TEXT>
+ <TEXT> "Cancel" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1101">
+ <ALERT_TYPE> ERROR_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "OK" </TEXT>
+ <TEXT> "Cancel" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1102">
+ <ALERT_TYPE> INFORMATION_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "OK" </TEXT>
+ <TEXT> "Cancel" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1103">
+ <ALERT_TYPE> CONFIRMATION_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "OK" </TEXT>
+ <TEXT> "Cancel" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1200">
+ <ALERT_TYPE> WARNING_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "Yes" </TEXT>
+ <TEXT> "No" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1201">
+ <ALERT_TYPE> ERROR_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "Yes" </TEXT>
+ <TEXT> "No" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1202">
+ <ALERT_TYPE> INFORMATION_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "Yes" </TEXT>
+ <TEXT> "No" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1203">
+ <ALERT_TYPE> CONFIRMATION_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "Yes" </TEXT>
+ <TEXT> "No" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1300">
+ <ALERT_TYPE> WARNING_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "Yes" </TEXT>
+ <TEXT> "No" </TEXT>
+ <TEXT> "Cancel" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1301">
+ <ALERT_TYPE> ERROR_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "Yes" </TEXT>
+ <TEXT> "No" </TEXT>
+ <TEXT> "Cancel" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1302">
+ <ALERT_TYPE> INFORMATION_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "Yes" </TEXT>
+ <TEXT> "No" </TEXT>
+ <TEXT> "Cancel" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <ALERT_RESOURCE RESOURCE_ID="1303">
+ <ALERT_TYPE> CONFIRMATION_ALERT </ALERT_TYPE>
+ <HELP_ID> 0 </HELP_ID>
+ <DEFAULT_BUTTON> 0 </DEFAULT_BUTTON>
+ <TITLE> "AAAAAAAAAABBBBBBBBBBCCCCC" </TITLE>
+ <MESSAGE> "^1" </MESSAGE>
+ <BUTTONS>
+ <TEXT> "Yes" </TEXT>
+ <TEXT> "No" </TEXT>
+ <TEXT> "Cancel" </TEXT>
+ </BUTTONS>
+ </ALERT_RESOURCE>
+
+ <APP_ICON_BITMAP_RESOURCE RESOURCE_ID="1000" COMMENT="AppIcon large">
+ <BITMAPS>
+ <BITMAP COMMENT="AppIcon large">
+ <BITMAP_DENSITY> 144 </BITMAP_DENSITY>
+ <WIDTH> 50 </WIDTH>
+ <HEIGHT> 44 </HEIGHT>
+ <BIT_DEPTH> 8 </BIT_DEPTH>
+ <BITMAP_COMPRESSION> BEST </BITMAP_COMPRESSION>
+ <HAS_TRANSPARENCY> TRUE </HAS_TRANSPARENCY>
+ <TRANSPARENT_COLOR>
+ <INDEX> 0xC0 </INDEX>
+ </TRANSPARENT_COLOR>
+ <HAS_COLOR_TABLE> FALSE </HAS_COLOR_TABLE>
+ <BITMAP_FILE> "./Icons/AppIcon_Large-X2-8.bmp" </BITMAP_FILE>
+ </BITMAP>
+ </BITMAPS>
+ </APP_ICON_BITMAP_RESOURCE>
+
+ <APP_ICON_BITMAP_RESOURCE RESOURCE_ID="1001" COMMENT="AppIcon small">
+ <BITMAPS>
+ <BITMAP COMMENT="AppIcon small">
+ <BITMAP_DENSITY> 144 </BITMAP_DENSITY>
+ <WIDTH> 30 </WIDTH>
+ <HEIGHT> 18 </HEIGHT>
+ <BIT_DEPTH> 8 </BIT_DEPTH>
+ <BITMAP_COMPRESSION> BEST </BITMAP_COMPRESSION>
+ <HAS_TRANSPARENCY> TRUE </HAS_TRANSPARENCY>
+ <TRANSPARENT_COLOR>
+ <INDEX> 0xC0 </INDEX>
+ </TRANSPARENT_COLOR>
+ <HAS_COLOR_TABLE> FALSE </HAS_COLOR_TABLE>
+ <BITMAP_FILE> "./Icons/AppIcon_Small-X2-8.bmp" </BITMAP_FILE>
+ </BITMAP>
+ </BITMAPS>
+ </APP_ICON_BITMAP_RESOURCE>
+
+ <APP_ICON_NAME_RESOURCE RESOURCE_ID="1000">
+ <TEXT> "Minimal App" </TEXT>
+ </APP_ICON_NAME_RESOURCE>
+
+ <MENU_BAR_RESOURCE RESOURCE_ID="1000" COMMENT="Single Menu">
+ <VISIBLE> TRUE </VISIBLE>
+ <MENUS>
+ <MENU>
+ <TITLE> "AAA " </TITLE>
+ <HIDDEN> FALSE </HIDDEN>
+ <BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </BOUNDS>
+ <TITLE_BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </TITLE_BOUNDS>
+ <MENU_ITEMS>
+ <MENU_ITEM>
+ <ID> 9000 </ID>
+ <TITLE> "A" </TITLE>
+ <COMMAND> "" </COMMAND>
+ <HIDDEN> FALSE </HIDDEN>
+ </MENU_ITEM>
+ </MENU_ITEMS>
+ </MENU>
+ </MENUS>
+ </MENU_BAR_RESOURCE>
+
+ <MENU_BAR_RESOURCE RESOURCE_ID="2000" COMMENT="Double Menu">
+ <VISIBLE> TRUE </VISIBLE>
+ <MENUS>
+ <MENU>
+ <TITLE> "AAA " </TITLE>
+ <HIDDEN> FALSE </HIDDEN>
+ <BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </BOUNDS>
+ <TITLE_BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </TITLE_BOUNDS>
+ <MENU_ITEMS>
+ <MENU_ITEM>
+ <ID> 9000 </ID>
+ <TITLE> "A" </TITLE>
+ <COMMAND> "" </COMMAND>
+ <HIDDEN> FALSE </HIDDEN>
+ </MENU_ITEM>
+ </MENU_ITEMS>
+ </MENU>
+ <MENU>
+ <TITLE> "AAA " </TITLE>
+ <HIDDEN> FALSE </HIDDEN>
+ <BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </BOUNDS>
+ <TITLE_BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </TITLE_BOUNDS>
+ <MENU_ITEMS>
+ <MENU_ITEM>
+ <ID> 9001 </ID>
+ <TITLE> "B" </TITLE>
+ <COMMAND> "" </COMMAND>
+ <HIDDEN> FALSE </HIDDEN>
+ </MENU_ITEM>
+ </MENU_ITEMS>
+ </MENU>
+ </MENUS>
+ </MENU_BAR_RESOURCE>
+
+ <MENU_BAR_RESOURCE RESOURCE_ID="3000" COMMENT="Triple Menu">
+ <VISIBLE> TRUE </VISIBLE>
+ <MENUS>
+ <MENU>
+ <TITLE> "AAA " </TITLE>
+ <HIDDEN> FALSE </HIDDEN>
+ <BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </BOUNDS>
+ <TITLE_BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </TITLE_BOUNDS>
+ <MENU_ITEMS>
+ <MENU_ITEM>
+ <ID> 9000 </ID>
+ <TITLE> "A" </TITLE>
+ <COMMAND> "" </COMMAND>
+ <HIDDEN> FALSE </HIDDEN>
+ </MENU_ITEM>
+ </MENU_ITEMS>
+ </MENU>
+ <MENU>
+ <TITLE> "AAA " </TITLE>
+ <HIDDEN> FALSE </HIDDEN>
+ <BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </BOUNDS>
+ <TITLE_BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </TITLE_BOUNDS>
+ <MENU_ITEMS>
+ <MENU_ITEM>
+ <ID> 9001 </ID>
+ <TITLE> "B" </TITLE>
+ <COMMAND> "" </COMMAND>
+ <HIDDEN> FALSE </HIDDEN>
+ </MENU_ITEM>
+ </MENU_ITEMS>
+ </MENU>
+ <MENU>
+ <TITLE> "AAA " </TITLE>
+ <HIDDEN> FALSE </HIDDEN>
+ <BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </BOUNDS>
+ <TITLE_BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </TITLE_BOUNDS>
+ <MENU_ITEMS>
+ <MENU_ITEM>
+ <ID> 9002 </ID>
+ <TITLE> "C" </TITLE>
+ <COMMAND> "" </COMMAND>
+ <HIDDEN> FALSE </HIDDEN>
+ </MENU_ITEM>
+ </MENU_ITEMS>
+ </MENU>
+ </MENUS>
+ </MENU_BAR_RESOURCE>
+
+ <MENU_BAR_RESOURCE RESOURCE_ID="4000" COMMENT="Quadrupal Menu">
+ <VISIBLE> TRUE </VISIBLE>
+ <MENUS>
+ <MENU>
+ <TITLE> "AAA " </TITLE>
+ <HIDDEN> FALSE </HIDDEN>
+ <BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </BOUNDS>
+ <TITLE_BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </TITLE_BOUNDS>
+ <MENU_ITEMS>
+ <MENU_ITEM>
+ <ID> 9000 </ID>
+ <TITLE> "A" </TITLE>
+ <COMMAND> "" </COMMAND>
+ <HIDDEN> FALSE </HIDDEN>
+ </MENU_ITEM>
+ </MENU_ITEMS>
+ </MENU>
+ <MENU>
+ <TITLE> "AAA " </TITLE>
+ <HIDDEN> FALSE </HIDDEN>
+ <BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </BOUNDS>
+ <TITLE_BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </TITLE_BOUNDS>
+ <MENU_ITEMS>
+ <MENU_ITEM>
+ <ID> 9001 </ID>
+ <TITLE> "B" </TITLE>
+ <COMMAND> "" </COMMAND>
+ <HIDDEN> FALSE </HIDDEN>
+ </MENU_ITEM>
+ </MENU_ITEMS>
+ </MENU>
+ <MENU>
+ <TITLE> "AAA " </TITLE>
+ <HIDDEN> FALSE </HIDDEN>
+ <BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </BOUNDS>
+ <TITLE_BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </TITLE_BOUNDS>
+ <MENU_ITEMS>
+ <MENU_ITEM>
+ <ID> 9002 </ID>
+ <TITLE> "C" </TITLE>
+ <COMMAND> "" </COMMAND>
+ <HIDDEN> FALSE </HIDDEN>
+ </MENU_ITEM>
+ </MENU_ITEMS>
+ </MENU>
+ <MENU>
+ <TITLE> "AAA " </TITLE>
+ <HIDDEN> FALSE </HIDDEN>
+ <BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </BOUNDS>
+ <TITLE_BOUNDS>
+ <LEFT> 0 </LEFT>
+ <TOP> 0 </TOP>
+ <WIDTH> 0 </WIDTH>
+ <HEIGHT> 0 </HEIGHT>
+ </TITLE_BOUNDS>
+ <MENU_ITEMS>
+ <MENU_ITEM>
+ <ID> 9003 </ID>
+ <TITLE> "D" </TITLE>
+ <COMMAND> "" </COMMAND>
+ <HIDDEN> FALSE </HIDDEN>
+ </MENU_ITEM>
+ </MENU_ITEMS>
+ </MENU>
+ </MENUS>
+ </MENU_BAR_RESOURCE>
+
+</PALMOS_RESOURCE_FILE>
#ifndef _WX_PEN_H_BASE_
#define _WX_PEN_H_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/pen.h"
+#elif defined(__WXMSW__)
#include "wx/msw/pen.h"
#elif defined(__WXMOTIF__) || defined(__WXX11__)
#include "wx/x11/pen.h"
This macro can be used to check that the version of mingw32 compiler is
at least maj.min
*/
-#if ( defined( __GNUWIN32__ ) || defined( __MINGW32__ ) || \
+#if defined(__PALMOS__)
+# include "wx/palmos/gccpriv.h"
+#elif ( defined( __GNUWIN32__ ) || defined( __MINGW32__ ) || \
defined( __CYGWIN__ ) || \
(defined(__WATCOMC__) && __WATCOMC__ >= 1200) ) && \
!defined(__DOS__) && !defined(__WXMOTIF__) && !defined(__WXGTK__) && !defined(__WXX11__)
#if defined(__WXUNIVERSAL__) && (!defined(__WXMSW__) || wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW)
#include "wx/generic/prntdlgg.h"
+#elif defined(__PALMOS__)
+#include "wx/palmos/printdlg.h"
#elif defined(__WXMSW__)
#include "wx/msw/printdlg.h"
#elif defined(__WXMOTIF__)
#ifndef _WX_REGION_H_BASE_
#define _WX_REGION_H_BASE_
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+#include "wx/palmos/region.h"
+#elif defined(__WXMSW__)
#include "wx/msw/region.h"
#elif defined(__WXMOTIF__)
#include "wx/x11/region.h"
#include "wx/gdicmn.h" // for wxPoint
// some platforms have their own renderers, others use the generic one
-#if defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXGTK__)
+#if (defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXGTK__)) && !defined(__PALMOS__)
#define wxHAS_NATIVE_RENDERER
#else
#undef wxHAS_NATIVE_RENDERER
#define wxStatusBarUniv wxStatusBar
#include "wx/univ/statusbr.h"
+#elif defined(__PALMOS__) && wxUSE_NATIVE_STATUSBAR
+ #define wxStatusBarPalm wxStatusBar
+
+ #include "wx/palmos/statbrpalm.h"
#elif defined(__WIN32__) && wxUSE_NATIVE_STATUSBAR
#define wxStatusBar95 wxStatusBar
#include <strings.h> // for strcasecmp()
#endif // HAVE_STRCASECMP_IN_STRINGS_H
+#ifdef __PALMOS__
+ #include <StringMgr.h>
+#endif
+
#include "wx/wxchar.h" // for wxChar
#include "wx/buffer.h" // for wxCharBuffer
#include "wx/strconv.h" // for wxConvertXXX() macros and wxMBConv classes
// now include the actual class declaration
// ----------------------------------------------------------------------------
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+ #include "wx/palmos/taskbar.h"
+#elif defined(__WXMSW__)
#include "wx/msw/taskbar.h"
#elif defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__)
#include "wx/unix/taskbarx11.h"
#else // wxUSE_TOOLBAR_NATIVE
#if defined(__WXUNIVERSAL__)
#include "wx/univ/toolbar.h"
+ #elif defined(__PALMOS__)
+ #include "wx/palmos/toolbar.h"
#elif defined(__WXMSW__) && (!defined(_WIN32_WCE) || (_WIN32_WCE >= 400 && !defined(__POCKETPC__) && !defined(__SMARTPHONE__)))
#include "wx/msw/tbar95.h"
#elif defined(__WXWINCE__)
// include the real class declaration
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+ #include "wx/palmos/toplevel.h"
+ #define wxTopLevelWindowNative wxTopLevelWindowPalm
+#elif defined(__WXMSW__)
#include "wx/msw/toplevel.h"
#define wxTopLevelWindowNative wxTopLevelWindowMSW
#elif defined(__WXGTK__)
#if defined(__WXUNIVERSAL__)
#include "wx/generic/treectlg.h"
+#elif defined(__PALMOS__)
+ #include "wx/palmos/treectrl.h"
#elif defined(__WXMSW__)
#include "wx/msw/treectrl.h"
#elif defined(__WXMOTIF__)
// ----------------------------------------------------------------------------
// include the declaration of the platform-specific class
-#if defined(__WXMSW__)
+#if defined(__PALMOS__)
+ #ifdef __WXUNIVERSAL__
+ #define wxWindowNative wxWindowPalm
+ #else // !wxUniv
+ #define wxWindowPalm wxWindow
+ #endif // wxUniv/!wxUniv
+ #include "wx/palmos/window.h"
+#elif defined(__WXMSW__)
#ifdef __WXUNIVERSAL__
#define wxWindowNative wxWindowMSW
#else // !wxUniv
#define wxHAVE_TCHAR_SUPPORT
#elif defined(__DMC__)
#define wxHAVE_TCHAR_SUPPORT
-#elif defined(__MINGW32__) && wxCHECK_W32API_VERSION( 1, 0 )
+#elif defined(__MINGW32__) && wxCHECK_W32API_VERSION( 1, 0 ) && !defined(__PALMOS__)
#define wxHAVE_TCHAR_SUPPORT
#include <stddef.h>
#include <string.h>
defined(__EMX__) || defined(__DJGPP__)
#define wxStricmp stricmp
#define wxStrnicmp strnicmp
+ #elif defined(__PALMOS__)
+ /* FIXME: There is no equivalent to strnicmp in the Palm OS API. This
+ * quick hack should do until one can be written.
+ */
+ #define wxStricmp StrCaselessCompare
+ #define wxStrnicmp strnicmp
#elif defined(__SYMANTEC__) || defined(__VISUALC__) || \
(defined(__MWERKS__) && defined(__INTEL__))
#define wxStricmp _stricmp
#define wxWX2WC wxMB2WC
#endif
#else /* !wxUSE_UNICODE */
-#error ha
+/* Why is this here?
+#error ha */
/* No wxUSE_WCHAR_T: we have to do something (JACS) */
#define wxMB2WC wxStrncpy
#define wxWC2MB wxStrncpy
#include <signal.h> // for SIGTRAP used by wxTrap()
#endif //Win/Unix
-#if defined(__WXMSW__)
+#if defined(__WXMSW__) && !defined(__PALMOS__)
#include "wx/msw/wrapwin.h" // includes windows.h for MessageBox()
#endif
this->argc = argc;
this->argv = argv;
+#ifndef __PALMOS__
if ( m_appName.empty() && argv )
{
// the application name is, by default, the name of its executable file
wxFileName::SplitPath(argv[0], NULL, &m_appName, NULL);
}
+#endif
return true;
}
#include "wx/utils.h"
#include "wx/ptr_scpd.h"
-#if defined(__WXMSW__)
+#if defined(__WXMSW__) && !defined(__PALMOS__)
#include "wx/msw/private.h" // includes windows.h for LOGFONT
#endif
#include "wx/paper.h"
#endif // wxUSE_PRINTING_ARCHITECTURE
-#ifdef __WXMSW__
+#if defined(__WXMSW__) && !defined(__PALMOS__)
#include <windowsx.h>
#include "wx/msw/private.h"
wxWindow *child = node->GetData();
-#ifdef __WXMSW__
+#if defined(__WXMSW__) && !defined(__PALMOS__)
bool is_not_msw_rb = !m_winLastFocused ||
!wxIsKindOf(m_winLastFocused,wxRadioButton);
#else
// direction we're coming
event.SetEventObject(m_winParent);
-#ifdef __WXMSW__
+#if defined(__WXMSW__) && !defined(__PALMOS__)
// we need to hop to the next activated
// radio button, not just the next radio
// button under MSW
#include "wx/gdicmn.h"
-#if defined(__WXMSW__)
+#if defined(__WXMSW__) && !defined(__PALMOS__)
#include "wx/msw/private.h" // includes windows.h for LOGFONT
#include "wx/msw/winundef.h"
#endif
#include "wx/log.h"
#include <string.h>
-#ifdef __WXMSW__
+#if defined(__WXMSW__) && !defined(__PALMOS__)
#include "wx/msw/wrapwin.h"
#endif
{
#ifdef __WXWINCE__
::ExitThread(3); // the same exit code as abort()
+#elif __PALMOS__
+ return -1;
#else
::ExitProcess(3); // the same exit code as abort()
#endif
#include <stdarg.h>
#include <stdio.h>
-#ifdef __WXMSW__
+#if defined(__WXMSW__) && !defined(__PALMOS__)
#include "wx/msw/private.h"
#endif
#ifdef __WXMAC__
out.PrintfV(format, args);
va_end(args);
-#if defined(__WXMSW__) && !defined(__WXMICROWIN__)
+#if defined(__WXMSW__) && !defined(__WXMICROWIN__) && !defined(__PALMOS__)
out.Replace(wxT("\t"), wxT(" "));
out.Replace(wxT("\n"), wxT("\r\n"));
::OutputDebugString(out);
#include <sys/stat.h>
#endif
-#ifdef __WXMSW__
+#if defined(__WXMSW__) && !defined(__PALMOS__)
#include "wx/msw/private.h"
#endif
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
+#ifndef __PALMOS__
+
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "imaglist.h"
#endif
return true;
}
-
+#endif // __PALMOS__
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
+
+#ifndef __PALMOS__
+
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "notebook.h"
#endif
return retval;
}
+#endif // __PALMOS__
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: accel.cpp
+// Purpose: wxAcceleratorTable
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "accel.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/window.h"
+#endif
+
+#include "wx/accel.h"
+
+#if wxUSE_ACCEL
+
+#include "wx/palmos/private.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable, wxObject)
+
+class WXDLLEXPORT wxAcceleratorRefData: public wxObjectRefData
+{
+ friend class WXDLLEXPORT wxAcceleratorTable;
+public:
+ wxAcceleratorRefData();
+ ~wxAcceleratorRefData();
+
+ inline HACCEL GetHACCEL() const { return m_hAccel; }
+protected:
+ HACCEL m_hAccel;
+ bool m_ok;
+
+ DECLARE_NO_COPY_CLASS(wxAcceleratorRefData)
+};
+
+#define M_ACCELDATA ((wxAcceleratorRefData *)m_refData)
+
+wxAcceleratorRefData::wxAcceleratorRefData()
+{
+}
+
+wxAcceleratorRefData::~wxAcceleratorRefData()
+{
+}
+
+wxAcceleratorTable::wxAcceleratorTable()
+{
+}
+
+wxAcceleratorTable::~wxAcceleratorTable()
+{
+}
+
+wxAcceleratorTable::wxAcceleratorTable(const wxString& resource)
+{
+}
+
+extern int wxCharCodeWXToMSW(int id, bool *isVirtual);
+
+wxAcceleratorTable::wxAcceleratorTable(int n, const wxAcceleratorEntry entries[])
+{
+}
+
+bool wxAcceleratorTable::Ok() const
+{
+ return false;
+}
+
+void wxAcceleratorTable::SetHACCEL(WXHACCEL hAccel)
+{
+}
+
+WXHACCEL wxAcceleratorTable::GetHACCEL() const
+{
+ return 0;
+}
+
+bool wxAcceleratorTable::Translate(wxWindow *window, WXMSG *wxmsg) const
+{
+ return false;
+}
+
+#endif
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: app.cpp
+// Purpose: wxApp
+// Author: William Osborne
+// Modified by:
+// Created: 10/08/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "app.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#if defined(__BORLANDC__)
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/frame.h"
+ #include "wx/app.h"
+ #include "wx/utils.h"
+ #include "wx/gdicmn.h"
+ #include "wx/pen.h"
+ #include "wx/brush.h"
+ #include "wx/cursor.h"
+ #include "wx/icon.h"
+ #include "wx/palette.h"
+ #include "wx/dc.h"
+ #include "wx/dialog.h"
+ #include "wx/msgdlg.h"
+ #include "wx/intl.h"
+ #include "wx/dynarray.h"
+ #include "wx/wxchar.h"
+ #include "wx/icon.h"
+ #include "wx/log.h"
+#endif
+
+#include "wx/apptrait.h"
+#include "wx/filename.h"
+#include "wx/module.h"
+#include "wx/dynlib.h"
+
+#if wxUSE_TOOLTIPS
+ #include "wx/tooltip.h"
+#endif // wxUSE_TOOLTIPS
+
+// We don't support OLE
+#undef wxUSE_OLE
+#define wxUSE_OLE 0
+
+#include <string.h>
+#include <ctype.h>
+
+// ---------------------------------------------------------------------------
+// global variables
+// ---------------------------------------------------------------------------
+
+extern wxList WXDLLEXPORT wxPendingDelete;
+
+// NB: all "NoRedraw" classes must have the same names as the "normal" classes
+// with NR suffix - wxWindow::MSWCreate() supposes this
+const wxChar *wxCanvasClassName = wxT("wxWindowClass");
+const wxChar *wxCanvasClassNameNR = wxT("wxWindowClassNR");
+const wxChar *wxMDIFrameClassName = wxT("wxMDIFrameClass");
+const wxChar *wxMDIFrameClassNameNoRedraw = wxT("wxMDIFrameClassNR");
+const wxChar *wxMDIChildFrameClassName = wxT("wxMDIChildFrameClass");
+const wxChar *wxMDIChildFrameClassNameNoRedraw = wxT("wxMDIChildFrameClassNR");
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// ===========================================================================
+// wxGUIAppTraits implementation
+// ===========================================================================
+
+// private class which we use to pass parameters from BeforeChildWaitLoop() to
+// AfterChildWaitLoop()
+struct ChildWaitLoopData
+{
+ ChildWaitLoopData(wxWindowDisabler *wd_, wxWindow *winActive_)
+ {
+ wd = wd_;
+ winActive = winActive_;
+ }
+
+ wxWindowDisabler *wd;
+ wxWindow *winActive;
+};
+
+void *wxGUIAppTraits::BeforeChildWaitLoop()
+{
+ return NULL;
+}
+
+void wxGUIAppTraits::AlwaysYield()
+{
+ wxYield();
+}
+
+void wxGUIAppTraits::AfterChildWaitLoop(void *dataOrig)
+{
+}
+
+bool wxGUIAppTraits::DoMessageFromThreadWait()
+{
+ return false;
+}
+
+wxToolkitInfo& wxGUIAppTraits::GetToolkitInfo()
+{
+ static wxToolkitInfo info;
+ wxToolkitInfo& baseInfo = wxAppTraits::GetToolkitInfo();
+ info.versionMajor = baseInfo.versionMajor;
+ info.versionMinor = baseInfo.versionMinor;
+ info.os = baseInfo.os;
+ info.shortName = _T("msw");
+ info.name = _T("wxMSW");
+#ifdef __WXUNIVERSAL__
+ info.shortName << _T("univ");
+ info.name << _T("/wxUniversal");
+#endif
+ return info;
+}
+
+// ===========================================================================
+// wxApp implementation
+// ===========================================================================
+
+int wxApp::m_nCmdShow = 0;
+
+// ---------------------------------------------------------------------------
+// wxWin macros
+// ---------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)
+
+BEGIN_EVENT_TABLE(wxApp, wxEvtHandler)
+ EVT_IDLE(wxApp::OnIdle)
+ EVT_END_SESSION(wxApp::OnEndSession)
+ EVT_QUERY_END_SESSION(wxApp::OnQueryEndSession)
+END_EVENT_TABLE()
+
+// class to ensure that wxAppBase::CleanUp() is called if our Initialize()
+// fails
+class wxCallBaseCleanup
+{
+public:
+ wxCallBaseCleanup(wxApp *app) : m_app(app) { }
+ ~wxCallBaseCleanup() { if ( m_app ) m_app->wxAppBase::CleanUp(); }
+
+ void Dismiss() { m_app = NULL; }
+
+private:
+ wxApp *m_app;
+};
+
+//// Initialize
+bool wxApp::Initialize(int& argc, wxChar **argv)
+{
+ if ( !wxAppBase::Initialize(argc, argv) )
+ return false;
+
+ // ensure that base cleanup is done if we return too early
+ wxCallBaseCleanup callBaseCleanup(this);
+
+ wxWinHandleHash = new wxWinHashTable(wxKEY_INTEGER, 100);
+
+ callBaseCleanup.Dismiss();
+
+ return true;
+}
+
+// ---------------------------------------------------------------------------
+// RegisterWindowClasses
+// ---------------------------------------------------------------------------
+
+// TODO we should only register classes really used by the app. For this it
+// would be enough to just delay the class registration until an attempt
+// to create a window of this class is made.
+bool wxApp::RegisterWindowClasses()
+{
+ return TRUE;
+}
+
+// ---------------------------------------------------------------------------
+// UnregisterWindowClasses
+// ---------------------------------------------------------------------------
+
+bool wxApp::UnregisterWindowClasses()
+{
+ bool retval = TRUE;
+ return retval;
+}
+
+void wxApp::CleanUp()
+{
+ // all objects pending for deletion must be deleted first, otherwise we
+ // would crash when they use wxWinHandleHash (and UnregisterWindowClasses()
+ // call wouldn't succeed as long as any windows still exist), so call the
+ // base class method first and only then do our clean up
+ wxAppBase::CleanUp();
+
+ // for an EXE the classes are unregistered when it terminates but DLL may
+ // be loaded several times (load/unload/load) into the same process in
+ // which case the registration will fail after the first time if we don't
+ // unregister the classes now
+ UnregisterWindowClasses();
+
+ delete wxWinHandleHash;
+ wxWinHandleHash = NULL;
+}
+
+// ----------------------------------------------------------------------------
+// wxApp ctor/dtor
+// ----------------------------------------------------------------------------
+
+wxApp::wxApp()
+{
+ m_printMode = wxPRINT_WINDOWS;
+}
+
+wxApp::~wxApp()
+{
+ // our cmd line arguments are allocated inside wxEntry(HINSTANCE), they
+ // don't come from main(), so we have to free them
+
+ while ( argc )
+ {
+ // m_argv elements were allocated by wxStrdup()
+ free(argv[--argc]);
+ }
+
+ // but m_argv itself -- using new[]
+ delete [] argv;
+}
+
+// ----------------------------------------------------------------------------
+// wxApp idle handling
+// ----------------------------------------------------------------------------
+
+void wxApp::OnIdle(wxIdleEvent& event)
+{
+ wxAppBase::OnIdle(event);
+}
+
+void wxApp::WakeUpIdle()
+{
+}
+
+// ----------------------------------------------------------------------------
+// other wxApp event hanlders
+// ----------------------------------------------------------------------------
+
+void wxApp::OnEndSession(wxCloseEvent& WXUNUSED(event))
+{
+ if (GetTopWindow())
+ GetTopWindow()->Close(TRUE);
+}
+
+// Default behaviour: close the application with prompts. The
+// user can veto the close, and therefore the end session.
+void wxApp::OnQueryEndSession(wxCloseEvent& event)
+{
+ if (GetTopWindow())
+ {
+ if (!GetTopWindow()->Close(!event.CanVeto()))
+ event.Veto(TRUE);
+ }
+}
+
+// ----------------------------------------------------------------------------
+// miscellaneous
+// ----------------------------------------------------------------------------
+
+/* static */
+int wxApp::GetComCtl32Version()
+{
+ return 0;
+}
+
+// Yield to incoming messages
+
+bool wxApp::Yield(bool onlyIfNeeded)
+{
+ return true;
+}
+
+#if wxUSE_EXCEPTIONS
+
+// ----------------------------------------------------------------------------
+// exception handling
+// ----------------------------------------------------------------------------
+
+bool wxApp::OnExceptionInMainLoop()
+{
+ return true;
+}
+
+#endif // wxUSE_EXCEPTIONS
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/basemsw.cpp
+// Purpose: misc stuff only used in applications under PalmOS
+// Author: William Osborne
+// Modified by:
+// Created: 10.13.2004
+// RCS-ID: $Id:
+// Copyright: (c) 2004 William Osborne
+// License: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#endif //WX_PRECOMP
+
+#include "wx/apptrait.h"
+
+#include "wx/recguard.h"
+
+// ============================================================================
+// wxConsoleAppTraits implementation
+// ============================================================================
+
+void wxConsoleAppTraits::AlwaysYield()
+{
+}
+
+void *wxConsoleAppTraits::BeforeChildWaitLoop()
+{
+ return NULL;
+}
+
+void wxConsoleAppTraits::AfterChildWaitLoop(void * WXUNUSED(data))
+{
+}
+
+bool wxConsoleAppTraits::DoMessageFromThreadWait()
+{
+ return true;
+}
+
--- /dev/null
+////////////////////////////////////////////////////////////////////////////
+// Name: bitmap.cpp
+// Purpose: wxBitmap
+// Author: William Osborne
+// Modified by:
+// Created: 10/08/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "bitmap.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include <stdio.h>
+
+ #include "wx/list.h"
+ #include "wx/utils.h"
+ #include "wx/app.h"
+ #include "wx/palette.h"
+ #include "wx/dcmemory.h"
+ #include "wx/bitmap.h"
+ #include "wx/icon.h"
+#endif
+
+#include "wx/log.h"
+
+#if wxUSE_WXDIB
+#include "wx/palmos/dib.h"
+#endif
+
+#include "wx/image.h"
+#include "wx/xpmdecod.h"
+
+#ifdef wxHAVE_RAW_BITMAP
+#include "wx/rawbmp.h"
+#endif
+
+// missing from mingw32 header
+#ifndef CLR_INVALID
+ #define CLR_INVALID ((COLORREF)-1)
+#endif // no CLR_INVALID
+
+// ----------------------------------------------------------------------------
+// Bitmap data
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxBitmapRefData : public wxGDIImageRefData
+{
+public:
+ wxBitmapRefData();
+ virtual ~wxBitmapRefData() { Free(); }
+
+ virtual void Free();
+
+ // set the mask object to use as the mask, we take ownership of it
+ void SetMask(wxMask *mask)
+ {
+ delete m_bitmapMask;
+ m_bitmapMask = mask;
+ }
+
+ // return the mask
+ wxMask *GetMask() const { return m_bitmapMask; }
+
+public:
+#if wxUSE_PALETTE
+ wxPalette m_bitmapPalette;
+#endif // wxUSE_PALETTE
+
+#ifdef __WXDEBUG__
+ wxDC *m_selectedInto;
+#endif // __WXDEBUG__
+
+#if wxUSE_WXDIB
+ wxDIB *m_dib;
+#endif
+
+ bool m_hasAlpha;
+
+ bool m_isDIB;
+
+private:
+ wxMask *m_bitmapMask;
+
+ DECLARE_NO_COPY_CLASS(wxBitmapRefData)
+};
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject)
+IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject)
+
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// helper functions
+// ----------------------------------------------------------------------------
+
+#if !wxUSE_WXDIB
+ #define NEVER_USE_DIB
+#else
+ static inline bool wxShouldCreateDIB(int w, int h, int d, WXHDC hdc)
+ {
+ // here is the logic:
+ //
+ // (a) if hdc is specified, the caller explicitly wants DDB
+ // (b) otherwise, create a DIB if depth >= 24 (we don't support 16bpp
+ // or less DIBs anyhow)
+ // (c) finally, create DIBs under Win9x even if the depth hasn't been
+ // explicitly specified but the current display depth is 24 or
+ // more and the image is "big", i.e. > 16Mb which is the
+ // theoretical limit for DDBs under Win9x
+ //
+ // consequences (all of which seem to make sense):
+ //
+ // (i) by default, DDBs are created (depth == -1 usually)
+ // (ii) DIBs can be created by explicitly specifying the depth
+ // (iii) using a DC always forces creating a DDB
+ return !hdc &&
+ (d >= 24 ||
+ (d == -1 &&
+ wxDIB::GetLineSize(w, wxDisplayDepth())*h > 16*1024*1024));
+ }
+
+ #define SOMETIMES_USE_DIB
+#endif // different DIB usage scenarious
+
+// ----------------------------------------------------------------------------
+// wxBitmapRefData
+// ----------------------------------------------------------------------------
+
+wxBitmapRefData::wxBitmapRefData()
+{
+#ifdef __WXDEBUG__
+ m_selectedInto = NULL;
+#endif
+ m_bitmapMask = NULL;
+
+ m_hBitmap = (WXHBITMAP) NULL;
+#if wxUSE_WXDIB
+ m_dib = NULL;
+#endif
+
+ m_isDIB =
+ m_hasAlpha = FALSE;
+}
+
+void wxBitmapRefData::Free()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxBitmap creation
+// ----------------------------------------------------------------------------
+
+// this function should be called from all wxBitmap ctors
+void wxBitmap::Init()
+{
+}
+
+wxGDIImageRefData *wxBitmap::CreateData() const
+{
+ return NULL;
+}
+
+#ifdef __WIN32__
+
+bool wxBitmap::CopyFromIconOrCursor(const wxGDIImage& icon)
+{
+ return FALSE;
+}
+
+#endif // Win32
+
+bool wxBitmap::CopyFromCursor(const wxCursor& cursor)
+{
+ return FALSE;
+}
+
+bool wxBitmap::CopyFromIcon(const wxIcon& icon)
+{
+ return FALSE;
+}
+
+#ifndef NEVER_USE_DIB
+
+bool wxBitmap::CopyFromDIB(const wxDIB& dib)
+{
+ return FALSE:
+}
+
+#endif // NEVER_USE_DIB
+
+wxBitmap::~wxBitmap()
+{
+}
+
+wxBitmap::wxBitmap(const char bits[], int width, int height, int depth)
+{
+ Init();
+}
+
+// Create from XPM data
+#if wxUSE_IMAGE && wxUSE_XPM
+bool wxBitmap::CreateFromXpm(const char **data)
+#else
+bool wxBitmap::CreateFromXpm(const char **WXUNUSED(data))
+#endif
+{
+ return FALSE;
+}
+
+wxBitmap::wxBitmap(int w, int h, int d)
+{
+}
+
+wxBitmap::wxBitmap(int w, int h, const wxDC& dc)
+{
+}
+
+wxBitmap::wxBitmap(void *data, long type, int width, int height, int depth)
+{
+}
+
+wxBitmap::wxBitmap(const wxString& filename, wxBitmapType type)
+{
+}
+
+bool wxBitmap::Create(int width, int height, int depth)
+{
+ return FALSE;
+}
+
+bool wxBitmap::Create(int width, int height, const wxDC& dc)
+{
+ return FALSE;
+}
+
+bool wxBitmap::DoCreate(int w, int h, int d, WXHDC hdc)
+{
+ return FALSE;
+}
+
+#if wxUSE_IMAGE
+
+// ----------------------------------------------------------------------------
+// wxImage to/from conversions
+// ----------------------------------------------------------------------------
+
+#if wxUSE_WXDIB
+
+bool wxBitmap::CreateFromImage(const wxImage& image, int depth)
+{
+ return FALSE;
+}
+
+bool wxBitmap::CreateFromImage(const wxImage& image, const wxDC& dc)
+{
+ return FALSE;
+}
+
+bool wxBitmap::CreateFromImage(const wxImage& image, int depth, WXHDC hdc)
+{
+ return FALSE;
+}
+
+wxImage wxBitmap::ConvertToImage() const
+{
+ wxImage image;
+ return image;
+}
+
+#endif // wxUSE_WXDIB
+
+#endif // wxUSE_IMAGE
+
+// ----------------------------------------------------------------------------
+// loading and saving bitmaps
+// ----------------------------------------------------------------------------
+
+bool wxBitmap::LoadFile(const wxString& filename, long type)
+{
+ return FALSE;
+}
+
+bool wxBitmap::Create(void *data, long type, int width, int height, int depth)
+{
+ return FALSE;
+}
+
+bool wxBitmap::SaveFile(const wxString& filename,
+ int type,
+ const wxPalette *palette)
+{
+ return FALSE;
+}
+
+// ----------------------------------------------------------------------------
+// sub bitmap extraction
+// ----------------------------------------------------------------------------
+
+wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
+{
+ wxBitmap ret( 0, 0 );
+ return ret;
+}
+
+// ----------------------------------------------------------------------------
+// wxBitmap accessors
+// ----------------------------------------------------------------------------
+
+#if wxUSE_PALETTE
+wxPalette* wxBitmap::GetPalette() const
+{
+ return (wxPalette *) NULL;
+}
+#endif
+
+wxMask *wxBitmap::GetMask() const
+{
+ return (wxMask *) NULL;
+}
+
+#ifdef __WXDEBUG__
+
+wxDC *wxBitmap::GetSelectedInto() const
+{
+ return (wxDC *) NULL;
+}
+
+#endif
+
+#if WXWIN_COMPATIBILITY_2_4
+
+int wxBitmap::GetQuality() const
+{
+ return 0;
+}
+
+#endif // WXWIN_COMPATIBILITY_2_4
+
+void wxBitmap::UseAlpha()
+{
+}
+
+bool wxBitmap::HasAlpha() const
+{
+ return FALSE;
+}
+
+// ----------------------------------------------------------------------------
+// wxBitmap setters
+// ----------------------------------------------------------------------------
+
+#ifdef __WXDEBUG__
+
+void wxBitmap::SetSelectedInto(wxDC *dc)
+{
+}
+
+#endif
+
+#if wxUSE_PALETTE
+
+void wxBitmap::SetPalette(const wxPalette& palette)
+{
+}
+
+#endif // wxUSE_PALETTE
+
+void wxBitmap::SetMask(wxMask *mask)
+{
+}
+
+#if WXWIN_COMPATIBILITY_2_4
+
+void wxBitmap::SetQuality(int WXUNUSED(quality))
+{
+}
+
+#endif // WXWIN_COMPATIBILITY_2_4
+
+// ----------------------------------------------------------------------------
+// raw bitmap access support
+// ----------------------------------------------------------------------------
+
+#ifdef wxHAVE_RAW_BITMAP
+void *wxBitmap::GetRawData(wxPixelDataBase& data, int bpp)
+{
+ return NULL;
+}
+
+void wxBitmap::UngetRawData(wxPixelDataBase& dataBase)
+{
+ return;
+}
+#endif // #ifdef wxHAVE_RAW_BITMAP
+
+// ----------------------------------------------------------------------------
+// wxMask
+// ----------------------------------------------------------------------------
+
+wxMask::wxMask()
+{
+ m_maskBitmap = 0;
+}
+
+// Construct a mask from a bitmap and a colour indicating
+// the transparent area
+wxMask::wxMask(const wxBitmap& bitmap, const wxColour& colour)
+{
+}
+
+// Construct a mask from a bitmap and a palette index indicating
+// the transparent area
+wxMask::wxMask(const wxBitmap& bitmap, int paletteIndex)
+{
+}
+
+// Construct a mask from a mono bitmap (copies the bitmap).
+wxMask::wxMask(const wxBitmap& bitmap)
+{
+}
+
+wxMask::~wxMask()
+{
+}
+
+// Create a mask from a mono bitmap (copies the bitmap).
+bool wxMask::Create(const wxBitmap& bitmap)
+{
+ return FALSE;
+}
+
+// Create a mask from a bitmap and a palette index indicating
+// the transparent area
+bool wxMask::Create(const wxBitmap& bitmap, int paletteIndex)
+{
+ return FALSE;
+}
+
+// Create a mask from a bitmap and a colour indicating
+// the transparent area
+bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour)
+{
+ return FALSE;
+}
+
+// ----------------------------------------------------------------------------
+// wxBitmapHandler
+// ----------------------------------------------------------------------------
+
+bool wxBitmapHandler::Create(wxGDIImage *image,
+ void *data,
+ long flags,
+ int width, int height, int depth)
+{
+ return FALSE;
+}
+
+bool wxBitmapHandler::Load(wxGDIImage *image,
+ const wxString& name,
+ long flags,
+ int width, int height)
+{
+ return FALSE;
+}
+
+bool wxBitmapHandler::Save(wxGDIImage *image,
+ const wxString& name,
+ int type)
+{
+ return FALSE;
+}
+
+bool wxBitmapHandler::Create(wxBitmap *WXUNUSED(bitmap),
+ void *WXUNUSED(data),
+ long WXUNUSED(type),
+ int WXUNUSED(width),
+ int WXUNUSED(height),
+ int WXUNUSED(depth))
+{
+ return FALSE;
+}
+
+bool wxBitmapHandler::LoadFile(wxBitmap *WXUNUSED(bitmap),
+ const wxString& WXUNUSED(name),
+ long WXUNUSED(type),
+ int WXUNUSED(desiredWidth),
+ int WXUNUSED(desiredHeight))
+{
+ return FALSE;
+}
+
+bool wxBitmapHandler::SaveFile(wxBitmap *WXUNUSED(bitmap),
+ const wxString& WXUNUSED(name),
+ int WXUNUSED(type),
+ const wxPalette *WXUNUSED(palette))
+{
+ return FALSE;
+}
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/bmpbuttn.cpp
+// Purpose: wxBitmapButton
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "bmpbuttn.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_BMPBUTTON
+
+#ifndef WX_PRECOMP
+ #include "wx/bmpbuttn.h"
+ #include "wx/log.h"
+ #include "wx/dcmemory.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+
+WX_DEFINE_FLAGS( wxBitmapButtonStyle )
+
+wxBEGIN_FLAGS( wxBitmapButtonStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxBU_AUTODRAW)
+ wxFLAGS_MEMBER(wxBU_LEFT)
+ wxFLAGS_MEMBER(wxBU_RIGHT)
+ wxFLAGS_MEMBER(wxBU_TOP)
+ wxFLAGS_MEMBER(wxBU_BOTTOM)
+wxEND_FLAGS( wxBitmapButtonStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxBitmapButton, wxButton,"wx/bmpbuttn.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxBitmapButton)
+ wxPROPERTY_FLAGS( WindowStyle , wxBitmapButtonStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxBitmapButton)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_5( wxBitmapButton , wxWindow* , Parent , wxWindowID , Id , wxBitmap , Bitmap , wxPoint , Position , wxSize , Size )
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton)
+#endif
+
+#define BUTTON_HEIGHT_FACTOR (EDIT_CONTROL_FACTOR * 1.1)
+
+bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id,
+ const wxBitmap& bitmap,
+ const wxPoint& pos,
+ const wxSize& size, long style,
+ const wxValidator& wxVALIDATOR_PARAM(validator),
+ const wxString& name)
+{
+ return false;
+}
+
+#define FOCUS_MARGIN 3
+
+bool wxBitmapButton::MSWOnDraw(WXDRAWITEMSTRUCT *item)
+{
+ return true;
+}
+
+void wxBitmapButton::DrawFace( WXHDC dc, int left, int top,
+ int right, int bottom, bool sel )
+{
+}
+
+void wxBitmapButton::DrawButtonFocus( WXHDC dc, int left, int top, int right,
+ int bottom, bool WXUNUSED(sel) )
+{
+}
+
+void wxBitmapButton::DrawButtonDisable( WXHDC dc, int left, int top, int right,
+ int bottom, bool with_marg )
+{
+}
+
+void wxBitmapButton::SetDefault()
+{
+}
+
+wxSize wxBitmapButton::DoGetBestSize() const
+{
+ wxSize best;
+ best.x = 0;
+ best.y = 0;
+
+ return best;
+}
+
+#endif // wxUSE_BMPBUTTON
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/brush.cpp
+// Purpose: wxBrush
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "brush.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/list.h"
+ #include "wx/utils.h"
+ #include "wx/app.h"
+ #include "wx/brush.h"
+#endif // WX_PRECOMP
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+// ============================================================================
+// wxBrush implementation
+// ============================================================================
+
+IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject)
+
+// ----------------------------------------------------------------------------
+// wxBrush ctors/dtor
+// ----------------------------------------------------------------------------
+
+wxBrush::wxBrush()
+{
+}
+
+wxBrush::wxBrush(const wxColour& col, int style)
+{
+}
+
+wxBrush::wxBrush(const wxBitmap& stipple)
+{
+}
+
+wxBrush::~wxBrush()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxBrush house keeping stuff
+// ----------------------------------------------------------------------------
+
+wxBrush& wxBrush::operator=(const wxBrush& brush)
+{
+ return *this;
+}
+
+bool wxBrush::operator==(const wxBrush& brush) const
+{
+ return FALSE;
+}
+
+wxObjectRefData *wxBrush::CreateRefData() const
+{
+ return NULL;
+}
+
+wxObjectRefData *wxBrush::CloneRefData(const wxObjectRefData *data) const
+{
+ return NULL;
+}
+
+// ----------------------------------------------------------------------------
+// wxBrush accessors
+// ----------------------------------------------------------------------------
+
+wxColour wxBrush::GetColour() const
+{
+ return wxNullColour;
+}
+
+int wxBrush::GetStyle() const
+{
+ return -1;
+}
+
+wxBitmap *wxBrush::GetStipple() const
+{
+ return NULL;
+}
+
+WXHANDLE wxBrush::GetResourceHandle() const
+{
+ return (WXHANDLE)0;
+}
+
+// ----------------------------------------------------------------------------
+// wxBrush setters
+// ----------------------------------------------------------------------------
+
+void wxBrush::SetColour(const wxColour& col)
+{
+}
+
+void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b)
+{
+}
+
+void wxBrush::SetStyle(int style)
+{
+}
+
+void wxBrush::SetStipple(const wxBitmap& stipple)
+{
+}
+
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/button.cpp
+// Purpose: wxButton
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "button.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_BUTTON
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+ #include "wx/button.h"
+ #include "wx/brush.h"
+ #include "wx/panel.h"
+ #include "wx/bmpbuttn.h"
+ #include "wx/settings.h"
+ #include "wx/dcscreen.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+
+WX_DEFINE_FLAGS( wxButtonStyle )
+
+wxBEGIN_FLAGS( wxButtonStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxBU_LEFT)
+ wxFLAGS_MEMBER(wxBU_RIGHT)
+ wxFLAGS_MEMBER(wxBU_TOP)
+ wxFLAGS_MEMBER(wxBU_BOTTOM)
+ wxFLAGS_MEMBER(wxBU_EXACTFIT)
+wxEND_FLAGS( wxButtonStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxButton, wxControl,"wx/button.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxButton)
+ wxEVENT_PROPERTY( Click , wxEVT_COMMAND_BUTTON_CLICKED , wxCommandEvent)
+
+ wxPROPERTY( Font , wxFont , SetFont , GetFont , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Label, wxString , SetLabel, GetLabel, wxString(), 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+
+ wxPROPERTY_FLAGS( WindowStyle , wxButtonStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxButton)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_6( wxButton , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle )
+
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl)
+#endif
+
+// this macro tries to adjust the default button height to a reasonable value
+// using the char height as the base
+#define BUTTON_HEIGHT_FROM_CHAR_HEIGHT(cy) (11*EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)/10)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// creation/destruction
+// ----------------------------------------------------------------------------
+
+bool wxButton::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+wxButton::~wxButton()
+{
+}
+
+// ----------------------------------------------------------------------------
+// flags
+// ----------------------------------------------------------------------------
+
+WXDWORD wxButton::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// size management including autosizing
+// ----------------------------------------------------------------------------
+
+wxSize wxButton::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+/* static */
+wxSize wxButtonBase::GetDefaultSize()
+{
+ return wxSize(0,0);
+}
+
+void wxButton::SetDefault()
+{
+}
+
+void wxButton::SetTmpDefault()
+{
+}
+
+void wxButton::UnsetTmpDefault()
+{
+}
+
+/* static */
+void
+wxButton::SetDefaultStyle(wxButton *btn, bool on)
+{
+}
+
+// ----------------------------------------------------------------------------
+// helpers
+// ----------------------------------------------------------------------------
+
+bool wxButton::SendClickEvent()
+{
+ return false;
+}
+
+void wxButton::Command(wxCommandEvent & event)
+{
+}
+
+// ----------------------------------------------------------------------------
+// event/message handlers
+// ----------------------------------------------------------------------------
+
+bool wxButton::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// owner-drawn buttons support
+// ----------------------------------------------------------------------------
+
+#ifdef __WIN32__
+
+// drawing helpers
+
+static void DrawButtonText(HDC hdc,
+ RECT *pRect,
+ const wxString& text,
+ COLORREF col)
+{
+}
+
+static void DrawRect(HDC hdc, const RECT& r)
+{
+}
+
+void wxButton::MakeOwnerDrawn()
+{
+}
+
+bool wxButton::SetBackgroundColour(const wxColour &colour)
+{
+ return false;
+}
+
+bool wxButton::SetForegroundColour(const wxColour &colour)
+{
+ return false;
+}
+
+static void DrawButtonFrame(HDC hdc, const RECT& rectBtn,
+ bool selected, bool pushed)
+{
+}
+
+bool wxButton::MSWOnDraw(WXDRAWITEMSTRUCT *wxdis)
+{
+ return true;
+}
+
+#endif // __WIN32__
+
+#endif // wxUSE_BUTTON
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/caret.cpp
+// Purpose: Palm OS implementation of wxCaret
+// Author: William Osborne
+// Modified by:
+// Created: 10.13.04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "caret.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/window.h"
+ #include "wx/log.h"
+#endif // WX_PRECOMP
+
+#include "wx/caret.h"
+
+#if wxUSE_CARET
+
+#include "wx/palmos/private.h"
+
+// ---------------------------------------------------------------------------
+// macros
+// ---------------------------------------------------------------------------
+
+#define CALL_CARET_API(api, args) \
+ if ( !api args ) \
+ wxLogLastError(_T(#api))
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// blink time
+// ---------------------------------------------------------------------------
+
+//static
+int wxCaretBase::GetBlinkTime()
+{
+ return 0;
+}
+
+//static
+void wxCaretBase::SetBlinkTime(int milliseconds)
+{
+}
+
+// ---------------------------------------------------------------------------
+// creating/destroying the caret
+// ---------------------------------------------------------------------------
+
+bool wxCaret::PalmOSCreateCaret()
+{
+ return false;
+}
+
+void wxCaret::OnSetFocus()
+{
+}
+
+void wxCaret::OnKillFocus()
+{
+}
+
+// ---------------------------------------------------------------------------
+// showing/hiding the caret
+// ---------------------------------------------------------------------------
+
+void wxCaret::DoShow()
+{
+}
+
+void wxCaret::DoHide()
+{
+}
+
+// ---------------------------------------------------------------------------
+// moving the caret
+// ---------------------------------------------------------------------------
+
+void wxCaret::DoMove()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+// resizing the caret
+// ---------------------------------------------------------------------------
+
+void wxCaret::DoSize()
+{
+}
+
+#endif
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/checkbox.cpp
+// Purpose: wxCheckBox
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "checkbox.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_CHECKBOX
+
+#ifndef WX_PRECOMP
+ #include "wx/checkbox.h"
+ #include "wx/brush.h"
+ #include "wx/dcscreen.h"
+ #include "wx/settings.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+#ifndef BST_UNCHECKED
+ #define BST_UNCHECKED 0x0000
+#endif
+
+#ifndef BST_CHECKED
+ #define BST_CHECKED 0x0001
+#endif
+
+#ifndef BST_INDETERMINATE
+ #define BST_INDETERMINATE 0x0002
+#endif
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxCheckBoxStyle )
+
+wxBEGIN_FLAGS( wxCheckBoxStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxNO_BORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxNO_FULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+wxEND_FLAGS( wxCheckBoxStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxCheckBox, wxControl,"wx/checkbox.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxCheckBox)
+ wxEVENT_PROPERTY( Click , wxEVT_COMMAND_CHECKBOX_CLICKED , wxCommandEvent )
+
+ wxPROPERTY( Font , wxFont , SetFont , GetFont , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Label,wxString, SetLabel, GetLabel, wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Value ,bool, SetValue, GetValue, EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxCheckBoxStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxCheckBox)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_6( wxCheckBox , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
+#endif
+
+
+// ----------------------------------------------------------------------------
+// wxCheckBox
+// ----------------------------------------------------------------------------
+
+bool wxCheckBox::MSWCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id))
+{
+ return true;
+}
+
+bool wxCheckBox::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos,
+ const wxSize& size, long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+void wxCheckBox::SetLabel(const wxString& label)
+{
+}
+
+wxSize wxCheckBox::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+void wxCheckBox::SetValue(bool val)
+{
+}
+
+bool wxCheckBox::GetValue() const
+{
+ return false;
+}
+
+void wxCheckBox::Command(wxCommandEvent& event)
+{
+}
+
+wxCOMPILE_TIME_ASSERT(wxCHK_UNCHECKED == BST_UNCHECKED
+ && wxCHK_CHECKED == BST_CHECKED
+ && wxCHK_UNDETERMINED == BST_INDETERMINATE, EnumValuesIncorrect);
+
+void wxCheckBox::DoSet3StateValue(wxCheckBoxState state)
+{
+}
+
+wxCheckBoxState wxCheckBox::DoGet3StateValue() const
+{
+ return (wxCheckBoxState) 0;
+}
+
+#endif // wxUSE_CHECKBOX
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/checklst.cpp
+// Purpose: implementation of wxCheckListBox class
+// Author: William Osborne
+// Modified by:
+// Created: 10.13.04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "checklst.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#if wxUSE_OWNER_DRAWN
+
+#ifndef WX_PRECOMP
+ #include "wx/object.h"
+ #include "wx/colour.h"
+ #include "wx/font.h"
+ #include "wx/bitmap.h"
+ #include "wx/window.h"
+ #include "wx/listbox.h"
+ #include "wx/dcmemory.h"
+
+ #include "wx/settings.h"
+
+ #include "wx/log.h"
+#endif
+
+#include "wx/ownerdrw.h"
+#include "wx/checklst.h"
+
+#include "wx/palmos/wrapwin.h"
+
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// get item (converted to right type)
+#define GetItem(n) ((wxCheckListBoxItem *)(GetItem(n)))
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxCheckListBoxStyle )
+
+wxBEGIN_FLAGS( wxCheckListBoxStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxLB_SINGLE)
+ wxFLAGS_MEMBER(wxLB_MULTIPLE)
+ wxFLAGS_MEMBER(wxLB_EXTENDED)
+ wxFLAGS_MEMBER(wxLB_HSCROLL)
+ wxFLAGS_MEMBER(wxLB_ALWAYS_SB)
+ wxFLAGS_MEMBER(wxLB_NEEDED_SB)
+ wxFLAGS_MEMBER(wxLB_SORT)
+ wxFLAGS_MEMBER(wxLB_OWNERDRAW)
+
+wxEND_FLAGS( wxCheckListBoxStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxCheckListBox, wxListBox,"wx/checklst.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxCheckListBox)
+ wxEVENT_PROPERTY( Toggle , wxEVT_COMMAND_CHECKLISTBOX_TOGGLED , wxCommandEvent )
+ wxPROPERTY_FLAGS( WindowStyle , wxCheckListBoxStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , wxLB_OWNERDRAW /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxCheckListBox)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_4( wxCheckListBox , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size )
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox, wxListBox)
+#endif
+
+// ----------------------------------------------------------------------------
+// declaration and implementation of wxCheckListBoxItem class
+// ----------------------------------------------------------------------------
+
+class wxCheckListBoxItem : public wxOwnerDrawn
+{
+friend class WXDLLEXPORT wxCheckListBox;
+public:
+ // ctor
+ wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex);
+
+ // drawing functions
+ virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat);
+
+ // simple accessors and operations
+ bool IsChecked() const { return m_bChecked; }
+
+ void Check(bool bCheck);
+ void Toggle() { Check(!IsChecked()); }
+
+ void SendEvent();
+
+private:
+
+ DECLARE_NO_COPY_CLASS(wxCheckListBoxItem)
+ bool m_bChecked;
+ wxCheckListBox *m_pParent;
+ size_t m_nIndex;
+};
+
+wxCheckListBoxItem::wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex)
+ : wxOwnerDrawn(wxEmptyString, TRUE) // checkable
+{
+}
+
+bool wxCheckListBoxItem::OnDrawItem(wxDC& dc, const wxRect& rc,
+ wxODAction act, wxODStatus stat)
+{
+ return FALSE;
+}
+
+// change the state of the item and redraw it
+void wxCheckListBoxItem::Check(bool check)
+{
+}
+
+// send an "item checked" event
+void wxCheckListBoxItem::SendEvent()
+{
+}
+
+// ----------------------------------------------------------------------------
+// implementation of wxCheckListBox class
+// ----------------------------------------------------------------------------
+
+// define event table
+// ------------------
+BEGIN_EVENT_TABLE(wxCheckListBox, wxListBox)
+ EVT_KEY_DOWN(wxCheckListBox::OnKeyDown)
+ EVT_LEFT_DOWN(wxCheckListBox::OnLeftClick)
+END_EVENT_TABLE()
+
+// control creation
+// ----------------
+
+// def ctor: use Create() to really create the control
+wxCheckListBox::wxCheckListBox()
+{
+}
+
+// ctor which creates the associated control
+wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos, const wxSize& size,
+ int nStrings, const wxString choices[],
+ long style, const wxValidator& val,
+ const wxString& name)
+{
+ Create(parent, id, pos, size, nStrings, choices, style, val, name);
+}
+
+wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos, const wxSize& size,
+ const wxArrayString& choices,
+ long style, const wxValidator& val,
+ const wxString& name)
+{
+ Create(parent, id, pos, size, choices, style, val, name);
+}
+
+bool wxCheckListBox::Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos, const wxSize& size,
+ int n, const wxString choices[],
+ long style,
+ const wxValidator& validator, const wxString& name)
+{
+ return wxListBox::Create(parent, id, pos, size, n, choices,
+ style | wxLB_OWNERDRAW, validator, name);
+}
+
+bool wxCheckListBox::Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos, const wxSize& size,
+ const wxArrayString& choices,
+ long style,
+ const wxValidator& validator, const wxString& name)
+{
+ return wxListBox::Create(parent, id, pos, size, choices,
+ style | wxLB_OWNERDRAW, validator, name);
+}
+
+// misc overloaded methods
+// -----------------------
+
+void wxCheckListBox::Delete(int N)
+{
+}
+
+bool wxCheckListBox::SetFont( const wxFont &font )
+{
+ return false;
+}
+
+// create/retrieve item
+// --------------------
+
+// create a check list box item
+wxOwnerDrawn *wxCheckListBox::CreateLboxItem(size_t nIndex)
+{
+ wxCheckListBoxItem *pItem = new wxCheckListBoxItem(this, nIndex);
+ return pItem;
+}
+
+// return item size
+// ----------------
+bool wxCheckListBox::MSWOnMeasure(WXMEASUREITEMSTRUCT *item)
+{
+ return false;
+}
+
+// check items
+// -----------
+
+bool wxCheckListBox::IsChecked(size_t uiIndex) const
+{
+ return false;
+}
+
+void wxCheckListBox::Check(size_t uiIndex, bool bCheck)
+{
+}
+
+// process events
+// --------------
+
+void wxCheckListBox::OnKeyDown(wxKeyEvent& event)
+{
+}
+
+void wxCheckListBox::OnLeftClick(wxMouseEvent& event)
+{
+}
+
+int wxCheckListBox::DoHitTestItem(wxCoord x, wxCoord y) const
+{
+ return wxNOT_FOUND;
+}
+
+#endif
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: choice.cpp
+// Purpose: wxChoice
+// Author: William Osborne
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "choice.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_CHOICE
+
+#ifndef WX_PRECOMP
+ #include "wx/choice.h"
+ #include "wx/utils.h"
+ #include "wx/log.h"
+ #include "wx/brush.h"
+ #include "wx/settings.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxChoiceStyle )
+
+wxBEGIN_FLAGS( wxChoiceStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+wxEND_FLAGS( wxChoiceStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxChoice, wxControl,"wx/choice.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxChoice)
+ wxEVENT_PROPERTY( Select , wxEVT_COMMAND_CHOICE_SELECTED , wxCommandEvent )
+
+ wxPROPERTY( Font , wxFont , SetFont , GetFont , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_COLLECTION( Choices , wxArrayString , wxString , AppendString , GetStrings , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Selection ,int, SetSelection, GetSelection, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxChoiceStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxChoice)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_4( wxChoice , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl)
+#endif
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// creation
+// ----------------------------------------------------------------------------
+
+bool wxChoice::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ int n, const wxString choices[],
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+bool wxChoice::CreateAndInit(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ int n, const wxString choices[],
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return FALSE;
+}
+
+bool wxChoice::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+bool wxChoice::MSWShouldPreProcessMessage(WXMSG *pMsg)
+{
+ return false;
+}
+
+WXDWORD wxChoice::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+wxChoice::~wxChoice()
+{
+}
+
+// ----------------------------------------------------------------------------
+// adding/deleting items to/from the list
+// ----------------------------------------------------------------------------
+
+int wxChoice::DoAppend(const wxString& item)
+{
+ return 0;
+}
+
+int wxChoice::DoInsert(const wxString& item, int pos)
+{
+ return 0;
+}
+
+void wxChoice::Delete(int n)
+{
+}
+
+void wxChoice::Clear()
+{
+}
+
+void wxChoice::Free()
+{
+}
+
+// ----------------------------------------------------------------------------
+// selection
+// ----------------------------------------------------------------------------
+
+int wxChoice::GetSelection() const
+{
+ return 0;
+}
+
+void wxChoice::SetSelection(int n)
+{
+}
+
+// ----------------------------------------------------------------------------
+// string list functions
+// ----------------------------------------------------------------------------
+
+int wxChoice::GetCount() const
+{
+ return 0;
+}
+
+int wxChoice::FindString(const wxString& s) const
+{
+ return 0;
+}
+
+void wxChoice::SetString(int n, const wxString& s)
+{
+}
+
+wxString wxChoice::GetString(int n) const
+{
+ wxString str;
+
+ return str;
+}
+
+// ----------------------------------------------------------------------------
+// client data
+// ----------------------------------------------------------------------------
+
+void wxChoice::DoSetItemClientData( int n, void* clientData )
+{
+}
+
+void* wxChoice::DoGetItemClientData( int n ) const
+{
+ return (void *)NULL;
+}
+
+void wxChoice::DoSetItemClientObject( int n, wxClientData* clientData )
+{
+}
+
+wxClientData* wxChoice::DoGetItemClientObject( int n ) const
+{
+ return (wxClientData *)DoGetItemClientData(n);
+}
+
+// ----------------------------------------------------------------------------
+// wxMSW specific helpers
+// ----------------------------------------------------------------------------
+
+void wxChoice::UpdateVisibleHeight()
+{
+}
+
+void wxChoice::DoMoveWindow(int x, int y, int width, int height)
+{
+}
+
+void wxChoice::DoGetSize(int *w, int *h) const
+{
+}
+
+void wxChoice::DoSetSize(int x, int y,
+ int width, int height,
+ int sizeFlags)
+{
+}
+
+wxSize wxChoice::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+WXLRESULT wxChoice::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return 0;
+}
+
+bool wxChoice::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
+{
+ return false;
+}
+
+WXHBRUSH wxChoice::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED(nCtlColor),
+ WXUINT WXUNUSED(message),
+ WXWPARAM WXUNUSED(wParam),
+ WXLPARAM WXUNUSED(lParam)
+ )
+{
+ return (WXHBRUSH) 0;
+}
+
+#endif // wxUSE_CHOICE
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: clipbrd.cpp
+// Purpose: Clipboard functionality
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "clipbrd.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/setup.h"
+#endif
+
+#if wxUSE_CLIPBOARD
+
+#ifndef WX_PRECOMP
+ #include "wx/object.h"
+ #include "wx/event.h"
+ #include "wx/app.h"
+ #include "wx/frame.h"
+ #include "wx/bitmap.h"
+ #include "wx/utils.h"
+ #include "wx/intl.h"
+#endif
+
+#if wxUSE_METAFILE
+ #include "wx/metafile.h"
+#endif
+
+#include "wx/log.h"
+#include "wx/clipbrd.h"
+
+#include <string.h>
+
+#include "wx/palmos/private.h"
+
+#if wxUSE_WXDIB
+#include "wx/palmos/dib.h"
+#endif
+
+#if wxUSE_DATAOBJ
+ #include "wx/dataobj.h"
+#endif
+
+#if wxUSE_OLE && !defined(__WXWINCE__)
+ // use OLE clipboard
+ #define wxUSE_OLE_CLIPBOARD 1
+#else // !wxUSE_DATAOBJ
+ // use Win clipboard API
+ #define wxUSE_OLE_CLIPBOARD 0
+#endif
+
+#if wxUSE_OLE_CLIPBOARD
+ #include <ole2.h>
+#endif // wxUSE_OLE_CLIPBOARD
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// old-style clipboard functions
+// ---------------------------------------------------------------------------
+
+static bool gs_wxClipboardIsOpen = FALSE;
+
+bool wxOpenClipboard()
+{
+ return false;
+}
+
+bool wxCloseClipboard()
+{
+ return false;
+}
+
+bool wxEmptyClipboard()
+{
+ return false;
+}
+
+bool wxIsClipboardOpened()
+{
+ return false;
+}
+
+bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat)
+{
+ return false;
+}
+
+
+bool wxSetClipboardData(wxDataFormat dataFormat,
+ const void *data,
+ int width, int height)
+{
+ return false;
+}
+
+void *wxGetClipboardData(wxDataFormat dataFormat, long *len)
+{
+ void *retval = NULL;
+
+ return retval;
+}
+
+wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat)
+{
+ return (wxDataFormat::NativeFormat)::EnumClipboardFormats(dataFormat);
+}
+
+int wxRegisterClipboardFormat(wxChar *formatName)
+{
+ return ::RegisterClipboardFormat(formatName);
+}
+
+bool wxGetClipboardFormatName(wxDataFormat dataFormat,
+ wxChar *formatName,
+ int maxCount)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// wxClipboard
+// ---------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject)
+
+wxClipboard::wxClipboard()
+{
+ m_clearOnExit = FALSE;
+ m_isOpened = FALSE;
+}
+
+wxClipboard::~wxClipboard()
+{
+ if ( m_clearOnExit )
+ {
+ Clear();
+ }
+}
+
+void wxClipboard::Clear()
+{
+}
+
+bool wxClipboard::Flush()
+{
+ return false;
+}
+
+bool wxClipboard::Open()
+{
+ return wxOpenClipboard();
+}
+
+bool wxClipboard::IsOpened() const
+{
+ return wxIsClipboardOpened();
+}
+
+bool wxClipboard::SetData( wxDataObject *data )
+{
+ return false;
+}
+
+bool wxClipboard::AddData( wxDataObject *data )
+{
+ return false;
+}
+
+void wxClipboard::Close()
+{
+ wxCloseClipboard();
+}
+
+bool wxClipboard::IsSupported( wxDataFormat format )
+{
+ return wxIsClipboardFormatAvailable(format);
+}
+
+bool wxClipboard::GetData( wxDataObject& data )
+{
+ return false;
+}
+
+#endif // wxUSE_CLIPBOARD
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/colordlg.cpp
+// Purpose: wxColourDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "colordlg.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include <stdio.h>
+ #include "wx/defs.h"
+ #include "wx/bitmap.h"
+ #include "wx/pen.h"
+ #include "wx/brush.h"
+ #include "wx/colour.h"
+ #include "wx/gdicmn.h"
+ #include "wx/utils.h"
+ #include "wx/frame.h"
+ #include "wx/dialog.h"
+ #include "wx/msgdlg.h"
+#endif
+
+#if wxUSE_COLOURDLG && !defined(__SMARTPHONE__)
+
+#include "wx/palmos/private.h"
+#include "wx/colordlg.h"
+#include "wx/cmndata.h"
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxColourDialog
+// ----------------------------------------------------------------------------
+
+wxColourDialog::wxColourDialog()
+{
+}
+
+wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data)
+{
+}
+
+bool wxColourDialog::Create(wxWindow *parent, wxColourData *data)
+{
+ return false;
+}
+
+int wxColourDialog::ShowModal()
+{
+ return wxID_CANCEL;
+}
+
+// ----------------------------------------------------------------------------
+// title
+// ----------------------------------------------------------------------------
+
+void wxColourDialog::SetTitle(const wxString& title)
+{
+ m_title = title;
+}
+
+wxString wxColourDialog::GetTitle() const
+{
+ return m_title;
+}
+
+// ----------------------------------------------------------------------------
+// position/size
+// ----------------------------------------------------------------------------
+
+void wxColourDialog::DoGetPosition(int *x, int *y) const
+{
+ if ( x )
+ *x = m_pos.x;
+ if ( y )
+ *y = m_pos.y;
+}
+
+void wxColourDialog::DoSetSize(int x, int y,
+ int WXUNUSED(width), int WXUNUSED(height),
+ int WXUNUSED(sizeFlags))
+{
+ if ( x != -1 )
+ m_pos.x = x;
+
+ if ( y != -1 )
+ m_pos.y = y;
+
+ // ignore the size params - we can't change the size of a standard dialog
+ return;
+}
+
+// NB: of course, both of these functions are completely bogus, but it's better
+// than nothing
+void wxColourDialog::DoGetSize(int *width, int *height) const
+{
+ // the standard dialog size
+ if ( width )
+ *width = 225;
+ if ( height )
+ *height = 324;
+}
+
+void wxColourDialog::DoGetClientSize(int *width, int *height) const
+{
+ // the standard dialog size
+ if ( width )
+ *width = 219;
+ if ( height )
+ *height = 299;
+}
+
+#endif
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: colour.cpp
+// Purpose: wxColour class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "colour.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+#include "wx/colour.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#include "wx/gdicmn.h"
+
+#include <string.h>
+
+#if wxUSE_EXTENDED_RTTI
+
+template<> void wxStringReadValue(const wxString &s , wxColour &data )
+{
+ // copied from VS xrc
+ unsigned long tmp = 0;
+
+ if (s.Length() != 7 || s[0u] != wxT('#')
+ || wxSscanf(s.c_str(), wxT("#%lX"), &tmp) != 1)
+ {
+ wxLogError(_("String To Colour : Incorrect colour specification : %s"),
+ s.c_str() );
+ data = wxNullColour;
+ }
+ else
+ {
+ data = wxColour((unsigned char) ((tmp & 0xFF0000) >> 16) ,
+ (unsigned char) ((tmp & 0x00FF00) >> 8),
+ (unsigned char) ((tmp & 0x0000FF)));
+ }
+}
+
+template<> void wxStringWriteValue(wxString &s , const wxColour &data )
+{
+ s = wxString::Format(wxT("#%02X%02X%02X"),
+ data.Red(), data.Green(), data.Blue() );
+}
+
+wxTO_STRING_IMP( wxColour )
+wxFROM_STRING_IMP( wxColour )
+
+IMPLEMENT_DYNAMIC_CLASS_WITH_COPY_AND_STREAMERS_XTI( wxColour , wxObject , "wx/colour.h" , &wxTO_STRING( wxColour ) , &wxFROM_STRING( wxColour ))
+
+wxBEGIN_PROPERTIES_TABLE(wxColour)
+ wxREADONLY_PROPERTY( Red, unsigned char, Red, EMPTY_MACROVALUE , 0 /*flags*/, wxT("Helpstring"), wxT("group"))
+ wxREADONLY_PROPERTY( Green, unsigned char, Green, EMPTY_MACROVALUE , 0 /*flags*/, wxT("Helpstring"), wxT("group"))
+ wxREADONLY_PROPERTY( Blue, unsigned char, Blue, EMPTY_MACROVALUE , 0 /*flags*/, wxT("Helpstring"), wxT("group"))
+wxEND_PROPERTIES_TABLE()
+
+wxCONSTRUCTOR_3( wxColour, unsigned char, Red, unsigned char, Green, unsigned char, Blue )
+
+wxBEGIN_HANDLERS_TABLE(wxColour)
+wxEND_HANDLERS_TABLE()
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject)
+#endif
+
+// Colour
+
+void wxColour::Init()
+{
+ m_isInit = false;
+ m_pixel = 0;
+ m_red =
+ m_blue =
+ m_green = 0;
+}
+
+wxColour::wxColour(const wxColour& col)
+{
+ *this = col;
+}
+
+wxColour& wxColour::operator=(const wxColour& col)
+{
+ m_red = col.m_red;
+ m_green = col.m_green;
+ m_blue = col.m_blue;
+ m_isInit = col.m_isInit;
+ m_pixel = col.m_pixel;
+ return *this;
+}
+
+void wxColour::InitFromName(const wxString& name)
+{
+ // leave invalid
+ Init();
+}
+
+wxColour::~wxColour()
+{
+}
+
+void wxColour::Set(unsigned char r, unsigned char g, unsigned char b)
+{
+}
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/combobox.cpp
+// Purpose: wxComboBox class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "combobox.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_COMBOBOX
+
+#ifndef WX_PRECOMP
+ #include "wx/settings.h"
+ #include "wx/log.h"
+ // for wxEVT_COMMAND_TEXT_ENTER
+ #include "wx/textctrl.h"
+#endif
+
+#include "wx/combobox.h"
+#include "wx/brush.h"
+#include "wx/clipbrd.h"
+#include "wx/palmos/private.h"
+
+#if wxUSE_TOOLTIPS
+ #if !defined(__GNUWIN32_OLD__) || defined(__CYGWIN10__)
+ #include <commctrl.h>
+ #endif
+ #include "wx/tooltip.h"
+#endif // wxUSE_TOOLTIPS
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxComboBoxStyle )
+
+wxBEGIN_FLAGS( wxComboBoxStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxCB_SIMPLE)
+ wxFLAGS_MEMBER(wxCB_SORT)
+ wxFLAGS_MEMBER(wxCB_READONLY)
+ wxFLAGS_MEMBER(wxCB_DROPDOWN)
+
+wxEND_FLAGS( wxComboBoxStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxComboBox, wxControl,"wx/combobox.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxComboBox)
+ wxEVENT_PROPERTY( Select , wxEVT_COMMAND_COMBOBOX_SELECTED , wxCommandEvent )
+ wxEVENT_PROPERTY( TextEnter , wxEVT_COMMAND_TEXT_ENTER , wxCommandEvent )
+
+ // TODO DELEGATES
+ wxPROPERTY( Font , wxFont , SetFont , GetFont , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_COLLECTION( Choices , wxArrayString , wxString , AppendString , GetStrings , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Value ,wxString, SetValue, GetValue, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Selection ,int, SetSelection, GetSelection, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxComboBoxStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxComboBox)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_5( wxComboBox , wxWindow* , Parent , wxWindowID , Id , wxString , Value , wxPoint , Position , wxSize , Size )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl)
+#endif
+
+// ----------------------------------------------------------------------------
+// function prototypes
+// ----------------------------------------------------------------------------
+
+// ---------------------------------------------------------------------------
+// global vars
+// ---------------------------------------------------------------------------
+
+// the pointer to standard radio button wnd proc
+static WNDPROC gs_wndprocEdit = (WNDPROC)NULL;
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+WXHBRUSH wxComboBox::OnCtlColor(WXHDC pDC,
+ WXHWND WXUNUSED(pWnd),
+ WXUINT WXUNUSED(nCtlColor),
+ WXUINT WXUNUSED(message),
+ WXWPARAM WXUNUSED(wParam),
+ WXLPARAM WXUNUSED(lParam))
+{
+ HDC hdc = (HDC)pDC;
+ wxColour colBack = GetBackgroundColour();
+
+ if (!IsEnabled())
+ colBack = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE);
+
+ ::SetBkColor(hdc, wxColourToRGB(colBack));
+ ::SetTextColor(hdc, wxColourToRGB(GetForegroundColour()));
+
+ wxBrush *brush = wxTheBrushList->FindOrCreateBrush(colBack, wxSOLID);
+
+ return (WXHBRUSH)brush->GetResourceHandle();
+}
+
+// ----------------------------------------------------------------------------
+// wxComboBox callbacks
+// ----------------------------------------------------------------------------
+
+WXLRESULT wxComboBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return 0;
+}
+
+bool wxComboBox::MSWProcessEditMsg(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return false;
+}
+
+bool wxComboBox::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
+{
+ return false;
+}
+
+WXHWND wxComboBox::GetEditHWND() const
+{
+ return (WXHWND)0;
+}
+
+// ----------------------------------------------------------------------------
+// wxComboBox creation
+// ----------------------------------------------------------------------------
+
+bool wxComboBox::Create(wxWindow *parent, wxWindowID id,
+ const wxString& value,
+ const wxPoint& pos,
+ const wxSize& size,
+ int n, const wxString choices[],
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+bool wxComboBox::Create(wxWindow *parent, wxWindowID id,
+ const wxString& value,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+WXDWORD wxComboBox::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// wxComboBox text control-like methods
+// ----------------------------------------------------------------------------
+
+void wxComboBox::SetValue(const wxString& value)
+{
+}
+
+// Clipboard operations
+void wxComboBox::Copy()
+{
+}
+
+void wxComboBox::Cut()
+{
+}
+
+void wxComboBox::Paste()
+{
+}
+
+void wxComboBox::SetEditable(bool WXUNUSED(editable))
+{
+}
+
+void wxComboBox::SetInsertionPoint(long pos)
+{
+}
+
+void wxComboBox::SetInsertionPointEnd()
+{
+}
+
+long wxComboBox::GetInsertionPoint() const
+{
+ return 0;
+}
+
+long wxComboBox::GetLastPosition() const
+{
+ return 0;
+}
+
+void wxComboBox::Replace(long from, long to, const wxString& value)
+{
+}
+
+void wxComboBox::Remove(long from, long to)
+{
+}
+
+void wxComboBox::SetSelection(long from, long to)
+{
+}
+
+#endif // wxUSE_COMBOBOX
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/control.cpp
+// Purpose: wxControl class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "control.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_CONTROLS
+
+#ifndef WX_PRECOMP
+ #include "wx/event.h"
+ #include "wx/app.h"
+ #include "wx/dcclient.h"
+ #include "wx/log.h"
+ #include "wx/settings.h"
+#endif
+
+#include "wx/control.h"
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow)
+
+BEGIN_EVENT_TABLE(wxControl, wxWindow)
+ EVT_ERASE_BACKGROUND(wxControl::OnEraseBackground)
+END_EVENT_TABLE()
+
+// ============================================================================
+// wxControl implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxControl ctor/dtor
+// ----------------------------------------------------------------------------
+
+wxControl::~wxControl()
+{
+ m_isBeingDeleted = TRUE;
+}
+
+// ----------------------------------------------------------------------------
+// control window creation
+// ----------------------------------------------------------------------------
+
+bool wxControl::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& wxVALIDATOR_PARAM(validator),
+ const wxString& name)
+{
+ if ( !wxWindow::Create(parent, id, pos, size, style, name) )
+ return FALSE;
+
+#if wxUSE_VALIDATORS
+ SetValidator(validator);
+#endif
+
+ return TRUE;
+}
+
+bool wxControl::MSWCreateControl(const wxChar *classname,
+ const wxString& label,
+ const wxPoint& pos,
+ const wxSize& size)
+{
+ WXDWORD exstyle;
+ WXDWORD msStyle = MSWGetStyle(GetWindowStyle(), &exstyle);
+
+ return MSWCreateControl(classname, msStyle, pos, size, label, exstyle);
+}
+
+bool wxControl::MSWCreateControl(const wxChar *classname,
+ WXDWORD style,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxString& label,
+ WXDWORD exstyle)
+{
+ return TRUE;
+}
+
+// ----------------------------------------------------------------------------
+// various accessors
+// ----------------------------------------------------------------------------
+
+wxBorder wxControl::GetDefaultBorder() const
+{
+ // we want to automatically give controls a sunken style (confusingly,
+ // it may not really mean sunken at all as we map it to WS_EX_CLIENTEDGE
+ // which is not sunken at all under Windows XP -- rather, just the default)
+ return wxBORDER_SUNKEN;
+}
+
+WXDWORD wxControl::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+wxSize wxControl::DoGetBestSize() const
+{
+ return wxSize(16, 16);
+}
+
+/* static */ wxVisualAttributes
+wxControl::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
+{
+ wxVisualAttributes attrs;
+
+ // old school (i.e. not "common") controls use the standard dialog font
+ // by default
+ attrs.font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+
+ // most, or at least many, of the controls use the same colours as the
+ // buttons -- others will have to override this (and possibly simply call
+ // GetCompositeControlsDefaultAttributes() from their versions)
+ attrs.colFg = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNTEXT);
+ attrs.colBg = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE);
+
+ return attrs;
+}
+
+// another version for the "composite", i.e. non simple controls
+/* static */ wxVisualAttributes
+wxControl::GetCompositeControlsDefaultAttributes(wxWindowVariant WXUNUSED(variant))
+{
+ wxVisualAttributes attrs;
+ attrs.font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+ attrs.colFg = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT);
+ attrs.colBg = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW);
+
+ return attrs;
+}
+
+// ----------------------------------------------------------------------------
+// message handling
+// ----------------------------------------------------------------------------
+
+bool wxControl::ProcessCommand(wxCommandEvent& event)
+{
+ return GetEventHandler()->ProcessEvent(event);
+}
+
+#ifdef __WIN95__
+bool wxControl::MSWOnNotify(int idCtrl,
+ WXLPARAM lParam,
+ WXLPARAM* result)
+{
+}
+#endif // Win95
+
+void wxControl::OnEraseBackground(wxEraseEvent& event)
+{
+}
+
+WXHBRUSH wxControl::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED(nCtlColor),
+#if wxUSE_CTL3D
+ WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam
+#else
+ WXUINT WXUNUSED(message),
+ WXWPARAM WXUNUSED(wParam),
+ WXLPARAM WXUNUSED(lParam)
+#endif
+ )
+{
+ return (WXHBRUSH)0;
+}
+
+// ---------------------------------------------------------------------------
+// global functions
+// ---------------------------------------------------------------------------
+
+#endif // wxUSE_CONTROLS
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/crashrpt.cpp
+// Purpose: helpers for structured exception handling (SEH)
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+/*
+ The code generating the crash reports in this file is heavily based on
+ Matt Pietrek's column from the March 2002 issue of MSDN Magazine. Note
+ that this code is not currently used by default, however. In any case,
+ all bugs are my alone.
+ */
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_ON_FATAL_EXCEPTION
+
+#ifndef WX_PRECOMP
+#endif //WX_PRECOMP
+
+/*
+ We have two possibilities here: one, a priori more interesting, is to
+ generate the crash report ourselves and include the values of all the
+ variables in the dump. Unfortunately my code to do it doesn't work in
+ "real life" situations i.e. it works in small examples but invariably
+ gets confused by something in big programs which makes quite useless.
+
+ The other possibility is to let dbghelp.dll to do the work for us and
+ analyze its results later using a debugger with knowledge about crash
+ dumps, such as (free!) WinDbg. This also has another advantage of not
+ needing to ship the .pdb file (containing debug info) to the user. So
+ this is the default now, but I keep the old code just in case, and if
+ you really want you can still use it.
+ */
+#define wxUSE_MINIDUMP 1
+
+#if !wxUSE_MINIDUMP
+ #include "wx/longlong.h"
+#endif // wxUSE_MINIDUMP
+
+#include "wx/datetime.h"
+
+#include "wx/dynload.h"
+
+#include "wx/palmos/crashrpt.h"
+
+#include "wx/palmos/wrapwin.h"
+#include "wx/palmos/private.h"
+
+#ifndef wxUSE_DBGHELP
+ #define wxUSE_DBGHELP 0
+#endif
+
+#if wxUSE_DBGHELP
+
+// ----------------------------------------------------------------------------
+// types of imagehlp.h functions
+// ----------------------------------------------------------------------------
+
+#if wxUSE_MINIDUMP
+
+typedef BOOL (WINAPI *MiniDumpWriteDump_t)(HANDLE, DWORD, HANDLE,
+ MINIDUMP_TYPE,
+ CONST PMINIDUMP_EXCEPTION_INFORMATION,
+ CONST PMINIDUMP_USER_STREAM_INFORMATION,
+ CONST PMINIDUMP_CALLBACK_INFORMATION);
+#else // !wxUSE_MINIDUMP
+typedef DWORD (WINAPI *SymSetOptions_t)(DWORD);
+typedef BOOL (WINAPI *SymInitialize_t)(HANDLE, LPSTR, BOOL);
+typedef BOOL (WINAPI *StackWalk_t)(DWORD, HANDLE, HANDLE, LPSTACKFRAME,
+ LPVOID, PREAD_PROCESS_MEMORY_ROUTINE,
+ PFUNCTION_TABLE_ACCESS_ROUTINE,
+ PGET_MODULE_BASE_ROUTINE,
+ PTRANSLATE_ADDRESS_ROUTINE);
+typedef BOOL (WINAPI *SymFromAddr_t)(HANDLE, DWORD64, PDWORD64, PSYMBOL_INFO);
+typedef LPVOID (WINAPI *SymFunctionTableAccess_t)(HANDLE, DWORD);
+typedef DWORD (WINAPI *SymGetModuleBase_t)(HANDLE, DWORD);
+typedef BOOL (WINAPI *SymGetLineFromAddr_t)(HANDLE, DWORD,
+ PDWORD, PIMAGEHLP_LINE);
+typedef BOOL (WINAPI *SymSetContext_t)(HANDLE, PIMAGEHLP_STACK_FRAME,
+ PIMAGEHLP_CONTEXT);
+typedef BOOL (WINAPI *SymEnumSymbols_t)(HANDLE, ULONG64, PCSTR,
+ PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID);
+typedef BOOL (WINAPI *SymGetTypeInfo_t)(HANDLE, DWORD64, ULONG,
+ IMAGEHLP_SYMBOL_TYPE_INFO, PVOID);
+#endif // wxUSE_MINIDUMP
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+#if !wxUSE_MINIDUMP
+
+// Stolen from CVCONST.H in the DIA 2.0 SDK
+enum BasicType
+{
+ BASICTYPE_NOTYPE = 0,
+ BASICTYPE_VOID = 1,
+ BASICTYPE_CHAR = 2,
+ BASICTYPE_WCHAR = 3,
+ BASICTYPE_INT = 6,
+ BASICTYPE_UINT = 7,
+ BASICTYPE_FLOAT = 8,
+ BASICTYPE_BCD = 9,
+ BASICTYPE_BOOL = 10,
+ BASICTYPE_LONG = 13,
+ BASICTYPE_ULONG = 14,
+ BASICTYPE_CURRENCY = 25,
+ BASICTYPE_DATE = 26,
+ BASICTYPE_VARIANT = 27,
+ BASICTYPE_COMPLEX = 28,
+ BASICTYPE_BIT = 29,
+ BASICTYPE_BSTR = 30,
+ BASICTYPE_HRESULT = 31
+};
+
+// Same as above
+enum SymbolTag
+{
+ SYMBOL_TAG_NULL,
+ SYMBOL_TAG_FUNCTION = 5,
+ SYMBOL_TAG_DATA = 7,
+ SYMBOL_TAG_PUBLIC = 10, // appears in .DBGs
+ SYMBOL_TAG_UDT,
+ SYMBOL_TAG_ENUM,
+ SYMBOL_TAG_FUNCTION_TYPE,
+ SYMBOL_TAG_POINTER_TYPE,
+ SYMBOL_TAG_ARRAY_TYPE,
+ SYMBOL_TAG_BASE_TYPE,
+ SYMBOL_TAG_TYPEDEF,
+ SYMBOL_TAG_BASECLASS
+};
+
+#endif // wxUSE_MINIDUMP
+
+#endif // wxUSE_DBGHELP
+
+// ----------------------------------------------------------------------------
+// classes
+// ----------------------------------------------------------------------------
+
+// low level wxBusyCursor replacement: we use Win32 API directly here instead
+// of going through wxWidgets calls as this could be dangerous
+class BusyCursor
+{
+public:
+ BusyCursor()
+ {
+ }
+
+ ~BusyCursor()
+ {
+ }
+
+private:
+};
+
+// the real crash report generator
+class wxCrashReportImpl
+{
+public:
+ wxCrashReportImpl(const wxChar *filename);
+
+ bool Generate(int flags);
+
+ ~wxCrashReportImpl()
+ {
+ if ( m_hFile != INVALID_HANDLE_VALUE )
+ {
+ ::CloseHandle(m_hFile);
+ }
+ }
+
+private:
+
+ // formatted output to m_hFile
+ void Output(const wxChar *format, ...);
+
+ // output end of line
+ void OutputEndl() { Output(_T("\r\n")); }
+
+#if wxUSE_DBGHELP
+
+#if !wxUSE_MINIDUMP
+ // translate exception code to its symbolic name
+ static wxString GetExceptionString(DWORD dwCode);
+
+ // return the type from "type index"
+ static BasicType GetBasicType(DWORD64 modBase, DWORD typeIndex);
+
+ // return the name for the type index
+ static wxString GetSymbolName(DWORD64 modBase, DWORD dwTypeIndex);
+
+ // return the string representation of the variable value
+ static wxString FormatSimpleValue(BasicType bt,
+ DWORD64 length,
+ PVOID pAddress);
+
+ // return string representation of a struct field (which may itself be a
+ // struct, of course)
+ static wxString FormatField(DWORD64 modBase,
+ DWORD dwTypeIndex,
+ void *pVariable,
+ unsigned level);
+
+ // show the name and value of the given symbol
+ static wxString FormatSymbol(PSYMBOL_INFO pSym, STACKFRAME *sf);
+
+ // show value described by SYMBOL_INFO located at pVariable
+ static wxString FormatAnyValue(PSYMBOL_INFO pSym, void *pVariable);
+
+ // show value of possibly complex (user-defined) type
+ static wxString FormatUDT(DWORD64 modBase,
+ DWORD dwTypeIndex,
+ void *pVariable,
+ unsigned level = 0);
+
+ // outputs information about the given symbol
+ void OutputSymbol(PSYMBOL_INFO pSymInfo, STACKFRAME *sf);
+
+ // map address to module (and also section:offset), retunr true if ok
+ static bool GetLogicalAddress(PVOID addr,
+ PTSTR szModule,
+ DWORD len,
+ DWORD& section,
+ DWORD& offset);
+
+ // callback used with SymEnumSymbols() to process all variables
+ static BOOL CALLBACK EnumerateSymbolsCallback(PSYMBOL_INFO pSymInfo,
+ ULONG SymbolSize,
+ PVOID UserContext);
+
+
+ // show the general information about exception which should be always
+ // available
+ //
+ // returns the module of the handle where the crash occured
+ HANDLE OutputBasicContext(EXCEPTION_RECORD *pExceptionRecord, CONTEXT *pCtx);
+
+ // output the call stack and local variables values
+ void OutputStack(const CONTEXT *pCtx, int flags);
+
+ // output the global variables values
+ void OutputGlobals(HANDLE hModuleCrash);
+
+
+ // the current stack frame (may be NULL)
+ STACKFRAME *m_sfCurrent;
+#endif // !wxUSE_MINIDUMP
+
+ // load all the functions we need from dbghelp.dll, return true if all ok
+ bool BindDbgHelpFunctions(const wxDynamicLibrary& dllDbgHelp);
+
+
+ // dynamically loaded dbghelp.dll functions
+ #define DECLARE_SYM_FUNCTION(func) static func ## _t func
+
+#if wxUSE_MINIDUMP
+ DECLARE_SYM_FUNCTION(MiniDumpWriteDump);
+#else // !wxUSE_MINIDUMP
+ DECLARE_SYM_FUNCTION(SymSetOptions);
+ DECLARE_SYM_FUNCTION(SymInitialize);
+ DECLARE_SYM_FUNCTION(StackWalk);
+ DECLARE_SYM_FUNCTION(SymFromAddr);
+ DECLARE_SYM_FUNCTION(SymFunctionTableAccess);
+ DECLARE_SYM_FUNCTION(SymGetModuleBase);
+ DECLARE_SYM_FUNCTION(SymGetLineFromAddr);
+ DECLARE_SYM_FUNCTION(SymSetContext);
+ DECLARE_SYM_FUNCTION(SymEnumSymbols);
+ DECLARE_SYM_FUNCTION(SymGetTypeInfo);
+#endif // wxUSE_MINIDUMP/!wxUSE_MINIDUMP
+
+ #undef DECLARE_SYM_FUNCTION
+#endif // wxUSE_DBGHELP
+
+ // the handle of the report file
+ HANDLE m_hFile;
+};
+
+// ----------------------------------------------------------------------------
+// globals
+// ----------------------------------------------------------------------------
+
+// global pointer to exception information, only valid inside OnFatalException
+extern WXDLLIMPEXP_BASE EXCEPTION_POINTERS *wxGlobalSEInformation = NULL;
+
+
+// flag telling us whether the application wants to handle exceptions at all
+static bool gs_handleExceptions = false;
+
+// the file name where the report about exception is written
+static wxChar gs_reportFilename[MAX_PATH];
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+#if wxUSE_DBGHELP
+
+#define DEFINE_SYM_FUNCTION(func) func ## _t wxCrashReportImpl::func = 0
+
+#if wxUSE_MINIDUMP
+DEFINE_SYM_FUNCTION(MiniDumpWriteDump);
+#else // !wxUSE_MINIDUMP
+DEFINE_SYM_FUNCTION(SymSetOptions);
+DEFINE_SYM_FUNCTION(SymInitialize);
+DEFINE_SYM_FUNCTION(StackWalk);
+DEFINE_SYM_FUNCTION(SymFromAddr);
+DEFINE_SYM_FUNCTION(SymFunctionTableAccess);
+DEFINE_SYM_FUNCTION(SymGetModuleBase);
+DEFINE_SYM_FUNCTION(SymGetLineFromAddr);
+DEFINE_SYM_FUNCTION(SymSetContext);
+DEFINE_SYM_FUNCTION(SymEnumSymbols);
+DEFINE_SYM_FUNCTION(SymGetTypeInfo);
+#endif // wxUSE_MINIDUMP/!wxUSE_MINIDUMP
+
+#undef DEFINE_SYM_FUNCTION
+
+#endif // wxUSE_DBGHELP
+
+// ----------------------------------------------------------------------------
+// wxCrashReportImpl
+// ----------------------------------------------------------------------------
+
+wxCrashReportImpl::wxCrashReportImpl(const wxChar *filename)
+{
+}
+
+void wxCrashReportImpl::Output(const wxChar *format, ...)
+{
+}
+
+#if wxUSE_DBGHELP
+
+#if !wxUSE_MINIDUMP
+
+bool
+wxCrashReportImpl::GetLogicalAddress(PVOID addr,
+ PTSTR szModule,
+ DWORD len,
+ DWORD& section,
+ DWORD& offset)
+{
+ return false;
+}
+
+/* static */ BasicType
+wxCrashReportImpl::GetBasicType(DWORD64 modBase, DWORD typeIndex)
+{
+ return BASICTYPE_NOTYPE;
+}
+
+/* static */ wxString
+wxCrashReportImpl::FormatSimpleValue(BasicType bt,
+ DWORD64 length,
+ PVOID pAddress)
+{
+ wxString s;
+
+ return s;
+}
+
+/* static */
+wxString wxCrashReportImpl::GetSymbolName(DWORD64 modBase, DWORD dwTypeIndex)
+{
+ wxString s;
+
+ return s;
+}
+
+// this is called for the struct members/base classes
+wxString
+wxCrashReportImpl::FormatField(DWORD64 modBase,
+ DWORD dwTypeIndex,
+ void *pVariable,
+ unsigned level)
+{
+ wxString s;
+
+ return s;
+}
+
+// If it's a user defined type (UDT), recurse through its members until we're
+// at fundamental types.
+wxString
+wxCrashReportImpl::FormatUDT(DWORD64 modBase,
+ DWORD dwTypeIndex,
+ void *pVariable,
+ unsigned level)
+{
+ wxString s;
+
+ return s;
+}
+
+// return the string containing the symbol of the given symbol
+/* static */ wxString
+wxCrashReportImpl::FormatAnyValue(PSYMBOL_INFO pSym, void *pVariable)
+{
+ wxString s;
+
+ return s;
+}
+
+// display contents and type of the given variable
+/* static */ wxString
+wxCrashReportImpl::FormatSymbol(PSYMBOL_INFO pSym, STACKFRAME *sf)
+{
+ wxString s;
+
+ return s;
+}
+
+void
+wxCrashReportImpl::OutputSymbol(PSYMBOL_INFO pSymInfo, STACKFRAME *sf)
+{
+}
+
+// callback for SymEnumSymbols()
+/* static */
+BOOL CALLBACK
+wxCrashReportImpl::EnumerateSymbolsCallback(PSYMBOL_INFO pSymInfo,
+ ULONG WXUNUSED(SymbolSize),
+ PVOID UserContext)
+{
+ return false;
+}
+
+HANDLE
+wxCrashReportImpl::OutputBasicContext(EXCEPTION_RECORD *pExceptionRecord,
+ CONTEXT *pCtx)
+{
+ return ::GetModuleHandle(szFaultingModule);
+}
+
+void wxCrashReportImpl::OutputStack(const CONTEXT *pCtx, int flags)
+{
+}
+
+void wxCrashReportImpl::OutputGlobals(HANDLE hModule)
+{
+}
+
+#endif // wxUSE_MINIDUMP
+
+bool wxCrashReportImpl::BindDbgHelpFunctions(const wxDynamicLibrary& dllDbgHelp)
+{
+ return false;
+}
+
+#if !wxUSE_MINIDUMP
+
+/* static */
+wxString wxCrashReportImpl::GetExceptionString(DWORD dwCode)
+{
+ wxString s;
+
+ return s;
+}
+
+#endif // !wxUSE_MINIDUMP
+
+#endif // wxUSE_DBGHELP
+
+bool wxCrashReportImpl::Generate(
+#if wxUSE_DBGHELP
+ int flags
+#else
+ int WXUNUSED(flags)
+#endif
+)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxCrashReport
+// ----------------------------------------------------------------------------
+
+/* static */
+void wxCrashReport::SetFileName(const wxChar *filename)
+{
+}
+
+/* static */
+const wxChar *wxCrashReport::GetFileName()
+{
+ return NULL;
+}
+
+/* static */
+bool wxCrashReport::Generate(int flags)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxApp::OnFatalException() support
+// ----------------------------------------------------------------------------
+
+bool wxHandleFatalExceptions(bool doit)
+{
+ return true;
+}
+
+extern unsigned long wxGlobalSEHandler(EXCEPTION_POINTERS *pExcPtrs)
+{
+ return EXCEPTION_EXECUTE_HANDLER;
+}
+
+#else // !wxUSE_ON_FATAL_EXCEPTION
+
+bool wxHandleFatalExceptions(bool WXUNUSED(doit))
+{
+ return false;
+}
+
+#endif // wxUSE_ON_FATAL_EXCEPTION/!wxUSE_ON_FATAL_EXCEPTION
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/cursor.cpp
+// Purpose: wxCursor class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "cursor.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/utils.h"
+ #include "wx/app.h"
+ #include "wx/bitmap.h"
+ #include "wx/icon.h"
+ #include "wx/cursor.h"
+ #include "wx/settings.h"
+ #include "wx/intl.h"
+#endif
+
+#include "wx/module.h"
+#include "wx/image.h"
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxGDIObject)
+
+// ----------------------------------------------------------------------------
+// globals
+// ----------------------------------------------------------------------------
+
+// Current cursor, in order to hang on to cursor handle when setting the cursor
+// globally
+static wxCursor *gs_globalCursor = NULL;
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+
+// ----------------------------------------------------------------------------
+// Cursors
+// ----------------------------------------------------------------------------
+
+wxCursor::wxCursor()
+{
+}
+
+#if wxUSE_IMAGE
+wxCursor::wxCursor(const wxImage& image)
+{
+}
+#endif
+
+wxCursor::wxCursor(const char WXUNUSED(bits)[],
+ int WXUNUSED(width),
+ int WXUNUSED(height),
+ int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY),
+ const char WXUNUSED(maskBits)[])
+{
+}
+
+wxCursor::wxCursor(const wxString& filename,
+ long kind,
+ int hotSpotX,
+ int hotSpotY)
+{
+}
+
+// Cursors by stock number
+wxCursor::wxCursor(int idCursor)
+{
+}
+
+wxCursor::~wxCursor()
+{
+}
+
+// ----------------------------------------------------------------------------
+// other wxCursor functions
+// ----------------------------------------------------------------------------
+
+bool wxCursor::operator==(const wxCursor& cursor) const
+{
+ return FALSE;
+}
+
+wxGDIImageRefData *wxCursor::CreateData() const
+{
+ return NULL;
+}
+
+// ----------------------------------------------------------------------------
+// Global cursor setting
+// ----------------------------------------------------------------------------
+
+const wxCursor *wxGetGlobalCursor()
+{
+ return NULL;
+}
+
+void wxSetCursor(const wxCursor& cursor)
+{
+}
+
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: data.cpp
+// Purpose: Various data
+// Author: Julian Smart
+// Modified by:
+// Created: 01/02/97
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "data.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: dc.cpp
+// Purpose: wxDC class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "dc.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/window.h"
+ #include "wx/dc.h"
+ #include "wx/utils.h"
+ #include "wx/dialog.h"
+ #include "wx/app.h"
+ #include "wx/bitmap.h"
+ #include "wx/dcmemory.h"
+ #include "wx/log.h"
+ #include "wx/icon.h"
+#endif
+
+#include "wx/sysopt.h"
+#include "wx/dcprint.h"
+#include "wx/module.h"
+#include "wx/dynload.h"
+
+#ifdef wxHAVE_RAW_BITMAP
+#include "wx/rawbmp.h"
+#endif
+
+#include <string.h>
+#include <math.h>
+
+#ifndef AC_SRC_ALPHA
+#define AC_SRC_ALPHA 1
+#endif
+
+/* Quaternary raster codes */
+#ifndef MAKEROP4
+#define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore))
+#endif
+
+IMPLEMENT_ABSTRACT_CLASS(wxDC, wxDCBase)
+
+// ---------------------------------------------------------------------------
+// constants
+// ---------------------------------------------------------------------------
+
+static const int VIEWPORT_EXTENT = 1000;
+
+static const int MM_POINTS = 9;
+static const int MM_METRIC = 10;
+
+// usually this is defined in math.h
+#ifndef M_PI
+ static const double M_PI = 3.14159265358979323846;
+#endif // M_PI
+
+#define DSTCOPY 0x00AA0029
+
+// ---------------------------------------------------------------------------
+// private functions
+// ---------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// wxDC
+// ---------------------------------------------------------------------------
+
+// Default constructor
+wxDC::wxDC()
+{
+}
+
+wxDC::~wxDC()
+{
+}
+
+// This will select current objects out of the DC,
+// which is what you have to do before deleting the
+// DC.
+void wxDC::SelectOldObjects(WXHDC dc)
+{
+}
+
+// ---------------------------------------------------------------------------
+// clipping
+// ---------------------------------------------------------------------------
+
+void wxDC::UpdateClipBox()
+{
+}
+
+void
+wxDC::DoGetClippingBox(wxCoord *x, wxCoord *y, wxCoord *w, wxCoord *h) const
+{
+}
+
+// common part of DoSetClippingRegion() and DoSetClippingRegionAsRegion()
+void wxDC::SetClippingHrgn(WXHRGN hrgn)
+{
+}
+
+void wxDC::DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord w, wxCoord h)
+{
+}
+
+void wxDC::DoSetClippingRegionAsRegion(const wxRegion& region)
+{
+}
+
+void wxDC::DestroyClippingRegion()
+{
+}
+
+// ---------------------------------------------------------------------------
+// query capabilities
+// ---------------------------------------------------------------------------
+
+bool wxDC::CanDrawBitmap() const
+{
+ return false;
+}
+
+bool wxDC::CanGetTextExtent() const
+{
+ return false;
+}
+
+int wxDC::GetDepth() const
+{
+ return 0;
+}
+
+// ---------------------------------------------------------------------------
+// drawing
+// ---------------------------------------------------------------------------
+
+void wxDC::Clear()
+{
+}
+
+bool wxDC::DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, int style)
+{
+ return false;
+}
+
+bool wxDC::DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const
+{
+ return false;
+}
+
+void wxDC::DoCrossHair(wxCoord x, wxCoord y)
+{
+}
+
+void wxDC::DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
+{
+}
+
+// Draws an arc of a circle, centred on (xc, yc), with starting point (x1, y1)
+// and ending at (x2, y2)
+void wxDC::DoDrawArc(wxCoord x1, wxCoord y1,
+ wxCoord x2, wxCoord y2,
+ wxCoord xc, wxCoord yc)
+{
+}
+
+void wxDC::DoDrawCheckMark(wxCoord x1, wxCoord y1,
+ wxCoord width, wxCoord height)
+{
+}
+
+void wxDC::DoDrawPoint(wxCoord x, wxCoord y)
+{
+}
+
+void wxDC::DoDrawPolygon(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset,int fillStyle)
+{
+}
+
+void
+wxDC::DoDrawPolyPolygon(int n,
+ int count[],
+ wxPoint points[],
+ wxCoord xoffset,
+ wxCoord yoffset,
+ int fillStyle)
+{
+}
+
+void wxDC::DoDrawLines(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset)
+{
+}
+
+void wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
+{
+}
+
+void wxDC::DoDrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height, double radius)
+{
+}
+
+void wxDC::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
+{
+}
+
+void wxDC::DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,double sa,double ea)
+{
+}
+
+void wxDC::DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y)
+{
+}
+
+void wxDC::DoDrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, bool useMask )
+{
+}
+
+void wxDC::DoDrawText(const wxString& text, wxCoord x, wxCoord y)
+{
+}
+
+void wxDC::DrawAnyText(const wxString& text, wxCoord x, wxCoord y)
+{
+}
+
+void wxDC::DoDrawRotatedText(const wxString& text,
+ wxCoord x, wxCoord y,
+ double angle)
+{
+}
+
+// ---------------------------------------------------------------------------
+// set GDI objects
+// ---------------------------------------------------------------------------
+
+#if wxUSE_PALETTE
+
+void wxDC::DoSelectPalette(bool realize)
+{
+}
+
+void wxDC::SetPalette(const wxPalette& palette)
+{
+}
+
+void wxDC::InitializePalette()
+{
+}
+
+#endif // wxUSE_PALETTE
+
+void wxDC::SetFont(const wxFont& font)
+{
+}
+
+void wxDC::SetPen(const wxPen& pen)
+{
+}
+
+void wxDC::SetBrush(const wxBrush& brush)
+{
+}
+
+void wxDC::SetBackground(const wxBrush& brush)
+{
+}
+
+void wxDC::SetBackgroundMode(int mode)
+{
+}
+
+void wxDC::SetLogicalFunction(int function)
+{
+}
+
+void wxDC::SetRop(WXHDC dc)
+{
+}
+
+bool wxDC::StartDoc(const wxString& WXUNUSED(message))
+{
+ return true;
+}
+
+void wxDC::EndDoc()
+{
+}
+
+void wxDC::StartPage()
+{
+}
+
+void wxDC::EndPage()
+{
+}
+
+// ---------------------------------------------------------------------------
+// text metrics
+// ---------------------------------------------------------------------------
+
+wxCoord wxDC::GetCharHeight() const
+{
+ return 0;
+}
+
+wxCoord wxDC::GetCharWidth() const
+{
+ return 0;
+}
+
+void wxDC::DoGetTextExtent(const wxString& string, wxCoord *x, wxCoord *y,
+ wxCoord *descent, wxCoord *externalLeading,
+ wxFont *font) const
+{
+}
+
+
+bool wxDC::DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const
+{
+ return false;
+}
+
+
+
+
+void wxDC::SetMapMode(int mode)
+{
+}
+
+void wxDC::SetUserScale(double x, double y)
+{
+}
+
+void wxDC::SetAxisOrientation(bool xLeftRight, bool yBottomUp)
+{
+}
+
+void wxDC::SetSystemScale(double x, double y)
+{
+}
+
+void wxDC::SetLogicalOrigin(wxCoord x, wxCoord y)
+{
+}
+
+void wxDC::SetDeviceOrigin(wxCoord x, wxCoord y)
+{
+}
+
+// ---------------------------------------------------------------------------
+// coordinates transformations
+// ---------------------------------------------------------------------------
+
+wxCoord wxDCBase::DeviceToLogicalX(wxCoord x) const
+{
+ return 0;
+}
+
+wxCoord wxDCBase::DeviceToLogicalXRel(wxCoord x) const
+{
+ return 0;
+}
+
+wxCoord wxDCBase::DeviceToLogicalY(wxCoord y) const
+{
+ return 0;
+}
+
+wxCoord wxDCBase::DeviceToLogicalYRel(wxCoord y) const
+{
+ return 0;
+}
+
+wxCoord wxDCBase::LogicalToDeviceX(wxCoord x) const
+{
+ return 0;
+}
+
+wxCoord wxDCBase::LogicalToDeviceXRel(wxCoord x) const
+{
+ return 0;
+}
+
+wxCoord wxDCBase::LogicalToDeviceY(wxCoord y) const
+{
+ return 0;
+}
+
+wxCoord wxDCBase::LogicalToDeviceYRel(wxCoord y) const
+{
+ return 0;
+}
+
+// ---------------------------------------------------------------------------
+// bit blit
+// ---------------------------------------------------------------------------
+
+bool wxDC::DoBlit(wxCoord xdest, wxCoord ydest,
+ wxCoord width, wxCoord height,
+ wxDC *source, wxCoord xsrc, wxCoord ysrc,
+ int rop, bool useMask,
+ wxCoord xsrcMask, wxCoord ysrcMask)
+{
+ return false;
+}
+
+void wxDC::DoGetSize(int *w, int *h) const
+{
+}
+
+void wxDC::DoGetSizeMM(int *w, int *h) const
+{
+}
+
+wxSize wxDC::GetPPI() const
+{
+ return wxSize(0, 0);
+}
+
+void wxDC::SetLogicalScale(double x, double y)
+{
+}
+
+// ----------------------------------------------------------------------------
+// DC caching
+// ----------------------------------------------------------------------------
+
+#if wxUSE_DC_CACHEING
+
+wxList wxDC::sm_bitmapCache;
+wxList wxDC::sm_dcCache;
+
+wxDCCacheEntry::wxDCCacheEntry(WXHBITMAP hBitmap, int w, int h, int depth)
+{
+}
+
+wxDCCacheEntry::wxDCCacheEntry(WXHDC hDC, int depth)
+{
+}
+
+wxDCCacheEntry::~wxDCCacheEntry()
+{
+}
+
+wxDCCacheEntry* wxDC::FindBitmapInCache(WXHDC dc, int w, int h)
+{
+ return NULL;
+}
+
+wxDCCacheEntry* wxDC::FindDCInCache(wxDCCacheEntry* notThis, WXHDC dc)
+{
+ return NULL;
+}
+
+void wxDC::AddToBitmapCache(wxDCCacheEntry* entry)
+{
+}
+
+void wxDC::AddToDCCache(wxDCCacheEntry* entry)
+{
+}
+
+void wxDC::ClearCache()
+{
+}
+
+class wxDCModule : public wxModule
+{
+public:
+ virtual bool OnInit() { return true; }
+ virtual void OnExit() { wxDC::ClearCache(); }
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxDCModule)
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxDCModule, wxModule)
+
+#endif // wxUSE_DC_CACHEING
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: dcclient.cpp
+// Purpose: wxClientDC class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "dcclient.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include "wx/string.h"
+#include "wx/log.h"
+#include "wx/window.h"
+
+#include "wx/dcclient.h"
+
+// ----------------------------------------------------------------------------
+// array/list types
+// ----------------------------------------------------------------------------
+
+struct WXDLLEXPORT wxPaintDCInfo
+{
+ wxPaintDCInfo(wxWindow *win, wxDC *dc)
+ {
+ hwnd = win->GetHWND();
+ hdc = dc->GetHDC();
+ count = 1;
+ }
+
+ WXHWND hwnd; // window for this DC
+ WXHDC hdc; // the DC handle
+ size_t count; // usage count
+};
+
+#include "wx/arrimpl.cpp"
+
+WX_DEFINE_OBJARRAY(wxArrayDCInfo);
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC)
+IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC)
+IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxClientDC)
+IMPLEMENT_CLASS(wxPaintDCEx, wxPaintDC)
+
+// ----------------------------------------------------------------------------
+// global variables
+// ----------------------------------------------------------------------------
+
+#ifdef __WXDEBUG__
+ int g_isPainting = 0;
+#endif // __WXDEBUG__
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ----------------------------------------------------------------------------
+// wxWindowDC
+// ----------------------------------------------------------------------------
+
+wxWindowDC::wxWindowDC()
+{
+}
+
+wxWindowDC::wxWindowDC(wxWindow *canvas)
+{
+}
+
+void wxWindowDC::InitDC()
+{
+}
+
+void wxWindowDC::DoGetSize(int *width, int *height) const
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxClientDC
+// ----------------------------------------------------------------------------
+
+wxClientDC::wxClientDC()
+{
+}
+
+wxClientDC::wxClientDC(wxWindow *canvas)
+{
+}
+
+void wxClientDC::InitDC()
+{
+}
+
+wxClientDC::~wxClientDC()
+{
+}
+
+void wxClientDC::DoGetSize(int *width, int *height) const
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxPaintDC
+// ----------------------------------------------------------------------------
+
+wxArrayDCInfo wxPaintDC::ms_cache;
+
+wxPaintDC::wxPaintDC()
+{
+}
+
+wxPaintDC::wxPaintDC(wxWindow *canvas)
+{
+}
+
+wxPaintDC::~wxPaintDC()
+{
+}
+
+wxPaintDCInfo *wxPaintDC::FindInCache(size_t *index) const
+{
+ return NULL;
+}
+
+WXHDC wxPaintDC::FindDCInCache(wxWindow* win)
+{
+ return 0;
+}
+
+/*
+ * wxPaintDCEx
+ */
+
+wxPaintDCEx::wxPaintDCEx(wxWindow *canvas, WXHDC dc) : saveState(0)
+{
+}
+
+wxPaintDCEx::~wxPaintDCEx()
+{
+}
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: dcmemory.cpp
+// Purpose: wxMemoryDC class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "dcmemory.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/utils.h"
+ #include "wx/log.h"
+#endif
+
+#include "wx/dcmemory.h"
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxMemoryDC
+// ----------------------------------------------------------------------------
+
+wxMemoryDC::wxMemoryDC()
+{
+}
+
+wxMemoryDC::wxMemoryDC(wxDC *dc)
+{
+}
+
+void wxMemoryDC::Init()
+{
+}
+
+bool wxMemoryDC::CreateCompatible(wxDC *dc)
+{
+ return false;
+}
+
+void wxMemoryDC::SelectObject(const wxBitmap& bitmap)
+{
+}
+
+void wxMemoryDC::DoGetSize(int *width, int *height) const
+{
+}
+
+// the rest of this file deals with drawing rectangles workaround, disabled by
+// default
+
+#define wxUSE_MEMORY_DC_DRAW_RECTANGLE 0
+
+#if wxUSE_MEMORY_DC_DRAW_RECTANGLE
+
+// For some reason, drawing a rectangle on a memory DC has problems.
+// Use this substitute if we can.
+static void wxDrawRectangle(wxDC& dc, wxCoord x, wxCoord y, wxCoord width, wxCoord height)
+{
+}
+
+#endif // wxUSE_MEMORY_DC_DRAW_RECTANGLE
+
+void wxMemoryDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
+{
+}
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/dcprint.cpp
+// Purpose: wxPrinterDC class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "dcprint.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #include "wx/log.h"
+ #include "wx/window.h"
+ #include "wx/dcmemory.h"
+#endif
+
+#if wxUSE_PRINTING_ARCHITECTURE
+
+#include "wx/palmos/private.h"
+
+#if wxUSE_WXDIB
+#include "wx/palmos/dib.h"
+#endif
+
+#include "wx/dcprint.h"
+#include "math.h"
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_CLASS(wxPrinterDC, wxDC)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxPrinterDC construction
+// ----------------------------------------------------------------------------
+
+// This form is deprecated
+wxPrinterDC::wxPrinterDC(const wxString& driver_name,
+ const wxString& device_name,
+ const wxString& file,
+ bool interactive,
+ int orientation)
+{
+}
+
+wxPrinterDC::wxPrinterDC(const wxPrintData& printData)
+{
+}
+
+
+wxPrinterDC::wxPrinterDC(WXHDC dc)
+{
+}
+
+void wxPrinterDC::Init()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxPrinterDC {Start/End}{Page/Doc} methods
+// ----------------------------------------------------------------------------
+
+bool wxPrinterDC::StartDoc(const wxString& message)
+{
+ return false;
+}
+
+void wxPrinterDC::EndDoc()
+{
+}
+
+void wxPrinterDC::StartPage()
+{
+}
+
+void wxPrinterDC::EndPage()
+{
+}
+
+// Returns default device and port names
+static bool wxGetDefaultDeviceName(wxString& deviceName, wxString& portName)
+{
+ return false;
+}
+
+// Gets an HDC for the specified printer configuration
+WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& printDataConst)
+{
+ return (WXHDC) 0;
+}
+
+// ----------------------------------------------------------------------------
+// wxPrinterDC bit blitting/bitmap drawing
+// ----------------------------------------------------------------------------
+
+// helper of DoDrawBitmap() and DoBlit()
+static
+bool DrawBitmapUsingStretchDIBits(HDC hdc,
+ const wxBitmap& bmp,
+ wxCoord x, wxCoord y)
+{
+ return false;
+}
+
+void wxPrinterDC::DoDrawBitmap(const wxBitmap& bmp,
+ wxCoord x, wxCoord y,
+ bool useMask)
+{
+}
+
+bool wxPrinterDC::DoBlit(wxCoord xdest, wxCoord ydest,
+ wxCoord width, wxCoord height,
+ wxDC *source,
+ wxCoord WXUNUSED(xsrc), wxCoord WXUNUSED(ysrc),
+ int WXUNUSED(rop), bool useMask,
+ wxCoord WXUNUSED(xsrcMask), wxCoord WXUNUSED(ysrcMask))
+{
+ return false;
+}
+
+#endif
+ // wxUSE_PRINTING_ARCHITECTURE
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/dcscreen.cpp
+// Purpose: wxScreenDC class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "dcscreen.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #include "wx/window.h"
+#endif
+
+#include "wx/dcscreen.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC)
+
+// Create a DC representing the whole screen
+wxScreenDC::wxScreenDC()
+{
+}
+
+void wxScreenDC::DoGetSize(int *width, int *height) const
+{
+}
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/dialog.cpp
+// Purpose: wxDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10/12/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "dialog.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/dialog.h"
+ #include "wx/utils.h"
+ #include "wx/frame.h"
+ #include "wx/app.h"
+ #include "wx/settings.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+#endif
+
+#include "wx/log.h"
+#include "wx/evtloop.h"
+#include "wx/ptr_scpd.h"
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxDialogStyle )
+
+wxBEGIN_FLAGS( wxDialogStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxNO_BORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+
+ // dialog styles
+ wxFLAGS_MEMBER(wxWS_EX_VALIDATE_RECURSIVELY)
+ wxFLAGS_MEMBER(wxSTAY_ON_TOP)
+ wxFLAGS_MEMBER(wxCAPTION)
+ wxFLAGS_MEMBER(wxTHICK_FRAME)
+ wxFLAGS_MEMBER(wxSYSTEM_MENU)
+ wxFLAGS_MEMBER(wxRESIZE_BORDER)
+ wxFLAGS_MEMBER(wxRESIZE_BOX)
+ wxFLAGS_MEMBER(wxCLOSE_BOX)
+ wxFLAGS_MEMBER(wxMAXIMIZE_BOX)
+ wxFLAGS_MEMBER(wxMINIMIZE_BOX)
+wxEND_FLAGS( wxDialogStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxDialog, wxTopLevelWindow,"wx/dialog.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxDialog)
+ wxPROPERTY( Title, wxString, SetTitle, GetTitle, wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxDialogStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxDialog)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_6( wxDialog , wxWindow* , Parent , wxWindowID , Id , wxString , Title , wxPoint , Position , wxSize , Size , long , WindowStyle)
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxTopLevelWindow)
+#endif
+
+BEGIN_EVENT_TABLE(wxDialog, wxDialogBase)
+ EVT_BUTTON(wxID_OK, wxDialog::OnOK)
+ EVT_BUTTON(wxID_APPLY, wxDialog::OnApply)
+ EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel)
+
+ EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged)
+
+ EVT_CLOSE(wxDialog::OnCloseWindow)
+END_EVENT_TABLE()
+
+// ----------------------------------------------------------------------------
+// wxDialogModalData
+// ----------------------------------------------------------------------------
+
+// this is simply a container for any data we need to implement modality which
+// allows us to avoid changing wxDialog each time the implementation changes
+class wxDialogModalData
+{
+public:
+ wxDialogModalData(wxDialog *dialog) : m_evtLoop(dialog) { }
+
+ void RunLoop()
+ {
+ m_evtLoop.Run();
+ }
+
+ void ExitLoop()
+ {
+ m_evtLoop.Exit();
+ }
+
+private:
+ wxModalEventLoop m_evtLoop;
+};
+
+wxDEFINE_TIED_SCOPED_PTR_TYPE(wxDialogModalData);
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxDialog construction
+// ----------------------------------------------------------------------------
+
+void wxDialog::Init()
+{
+}
+
+bool wxDialog::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+// deprecated ctor
+wxDialog::wxDialog(wxWindow *parent,
+ const wxString& title,
+ bool WXUNUSED(modal),
+ int x,
+ int y,
+ int w,
+ int h,
+ long style,
+ const wxString& name)
+{
+}
+
+void wxDialog::SetModal(bool WXUNUSED(flag))
+{
+}
+
+wxDialog::~wxDialog()
+{
+}
+
+// ----------------------------------------------------------------------------
+// showing the dialogs
+// ----------------------------------------------------------------------------
+
+bool wxDialog::IsModalShowing() const
+{
+ return false;
+}
+
+wxWindow *wxDialog::FindSuitableParent() const
+{
+ return NULL;
+}
+
+bool wxDialog::Show(bool show)
+{
+ return false;
+}
+
+void wxDialog::Raise()
+{
+}
+
+// show dialog modally
+int wxDialog::ShowModal()
+{
+ return -1;
+}
+
+void wxDialog::EndModal(int retCode)
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxWin event handlers
+// ----------------------------------------------------------------------------
+
+// Standard buttons
+void wxDialog::OnOK(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+void wxDialog::OnApply(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+void wxDialog::OnCancel(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+void wxDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event))
+{
+}
+
+void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& WXUNUSED(event))
+{
+}
+
+// ---------------------------------------------------------------------------
+// dialog window proc
+// ---------------------------------------------------------------------------
+
+WXLRESULT wxDialog::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return false;
+}
+
+#if wxUSE_CTL3D
+
+// Define for each class of dialog and control
+WXHBRUSH wxDialog::OnCtlColor(WXHDC WXUNUSED(pDC),
+ WXHWND WXUNUSED(pWnd),
+ WXUINT WXUNUSED(nCtlColor),
+ WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam)
+{
+ return (WXHBRUSH)Ctl3dCtlColorEx(message, wParam, lParam);
+}
+
+#endif // wxUSE_CTL3D
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/dialup.cpp
+// Purpose: Palm OS implementation of network/dialup classes and functions
+// Author: Vadim Zeitlin
+// Modified by:
+// Created: 07.07.99
+// RCS-ID: $Id$
+// Copyright: (c) Vadim Zeitlin
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_DIALUP_MANAGER
+
+#ifndef WX_PRECOMP
+ #include "wx/log.h"
+ #include "wx/intl.h"
+ #include "wx/event.h"
+#endif
+
+#include "wx/timer.h"
+#include "wx/app.h"
+#include "wx/generic/choicdgg.h"
+
+#include "wx/dynlib.h"
+#include "wx/dialup.h"
+
+DEFINE_EVENT_TYPE(wxEVT_DIALUP_CONNECTED)
+DEFINE_EVENT_TYPE(wxEVT_DIALUP_DISCONNECTED)
+
+// This needs to be written using Palm OS Network API calls, but for now this
+// will do.
+#if (!defined(__PALMOS__)
+
+#include <ras.h>
+#include <raserror.h>
+
+#include <wininet.h>
+
+// Not in VC++ 5
+#ifndef INTERNET_CONNECTION_LAN
+#define INTERNET_CONNECTION_LAN 2
+#endif
+#ifndef INTERNET_CONNECTION_PROXY
+#define INTERNET_CONNECTION_PROXY 4
+#endif
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// this message is sent by the secondary thread when RAS status changes
+#define wxWM_RAS_STATUS_CHANGED (WM_USER + 10010)
+#define wxWM_RAS_DIALING_PROGRESS (WM_USER + 10011)
+
+// ----------------------------------------------------------------------------
+// types
+// ----------------------------------------------------------------------------
+
+// the signatures of RAS functions: all this is quite heavy, but we must do it
+// to allow running wxWin programs on machine which don't have RAS installed
+// (this does exist) - if we link with rasapi32.lib, the program will fail on
+// startup because of the missing DLL...
+
+#ifndef UNICODE
+ typedef DWORD (APIENTRY * RASDIAL)( LPRASDIALEXTENSIONS, LPCSTR, LPRASDIALPARAMSA, DWORD, LPVOID, LPHRASCONN );
+ typedef DWORD (APIENTRY * RASENUMCONNECTIONS)( LPRASCONNA, LPDWORD, LPDWORD );
+ typedef DWORD (APIENTRY * RASENUMENTRIES)( LPCSTR, LPCSTR, LPRASENTRYNAMEA, LPDWORD, LPDWORD );
+ typedef DWORD (APIENTRY * RASGETCONNECTSTATUS)( HRASCONN, LPRASCONNSTATUSA );
+ typedef DWORD (APIENTRY * RASGETERRORSTRING)( UINT, LPSTR, DWORD );
+ typedef DWORD (APIENTRY * RASHANGUP)( HRASCONN );
+ typedef DWORD (APIENTRY * RASGETPROJECTIONINFO)( HRASCONN, RASPROJECTION, LPVOID, LPDWORD );
+ typedef DWORD (APIENTRY * RASCREATEPHONEBOOKENTRY)( HWND, LPCSTR );
+ typedef DWORD (APIENTRY * RASEDITPHONEBOOKENTRY)( HWND, LPCSTR, LPCSTR );
+ typedef DWORD (APIENTRY * RASSETENTRYDIALPARAMS)( LPCSTR, LPRASDIALPARAMSA, BOOL );
+ typedef DWORD (APIENTRY * RASGETENTRYDIALPARAMS)( LPCSTR, LPRASDIALPARAMSA, LPBOOL );
+ typedef DWORD (APIENTRY * RASENUMDEVICES)( LPRASDEVINFOA, LPDWORD, LPDWORD );
+ typedef DWORD (APIENTRY * RASGETCOUNTRYINFO)( LPRASCTRYINFOA, LPDWORD );
+ typedef DWORD (APIENTRY * RASGETENTRYPROPERTIES)( LPCSTR, LPCSTR, LPRASENTRYA, LPDWORD, LPBYTE, LPDWORD );
+ typedef DWORD (APIENTRY * RASSETENTRYPROPERTIES)( LPCSTR, LPCSTR, LPRASENTRYA, DWORD, LPBYTE, DWORD );
+ typedef DWORD (APIENTRY * RASRENAMEENTRY)( LPCSTR, LPCSTR, LPCSTR );
+ typedef DWORD (APIENTRY * RASDELETEENTRY)( LPCSTR, LPCSTR );
+ typedef DWORD (APIENTRY * RASVALIDATEENTRYNAME)( LPCSTR, LPCSTR );
+ typedef DWORD (APIENTRY * RASCONNECTIONNOTIFICATION)( HRASCONN, HANDLE, DWORD );
+
+ static const wxChar gs_funcSuffix = _T('A');
+#else // Unicode
+ typedef DWORD (APIENTRY * RASDIAL)( LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW, DWORD, LPVOID, LPHRASCONN );
+ typedef DWORD (APIENTRY * RASENUMCONNECTIONS)( LPRASCONNW, LPDWORD, LPDWORD );
+ typedef DWORD (APIENTRY * RASENUMENTRIES)( LPCWSTR, LPCWSTR, LPRASENTRYNAMEW, LPDWORD, LPDWORD );
+ typedef DWORD (APIENTRY * RASGETCONNECTSTATUS)( HRASCONN, LPRASCONNSTATUSW );
+ typedef DWORD (APIENTRY * RASGETERRORSTRING)( UINT, LPWSTR, DWORD );
+ typedef DWORD (APIENTRY * RASHANGUP)( HRASCONN );
+ typedef DWORD (APIENTRY * RASGETPROJECTIONINFO)( HRASCONN, RASPROJECTION, LPVOID, LPDWORD );
+ typedef DWORD (APIENTRY * RASCREATEPHONEBOOKENTRY)( HWND, LPCWSTR );
+ typedef DWORD (APIENTRY * RASEDITPHONEBOOKENTRY)( HWND, LPCWSTR, LPCWSTR );
+ typedef DWORD (APIENTRY * RASSETENTRYDIALPARAMS)( LPCWSTR, LPRASDIALPARAMSW, BOOL );
+ typedef DWORD (APIENTRY * RASGETENTRYDIALPARAMS)( LPCWSTR, LPRASDIALPARAMSW, LPBOOL );
+ typedef DWORD (APIENTRY * RASENUMDEVICES)( LPRASDEVINFOW, LPDWORD, LPDWORD );
+ typedef DWORD (APIENTRY * RASGETCOUNTRYINFO)( LPRASCTRYINFOW, LPDWORD );
+ typedef DWORD (APIENTRY * RASGETENTRYPROPERTIES)( LPCWSTR, LPCWSTR, LPRASENTRYW, LPDWORD, LPBYTE, LPDWORD );
+ typedef DWORD (APIENTRY * RASSETENTRYPROPERTIES)( LPCWSTR, LPCWSTR, LPRASENTRYW, DWORD, LPBYTE, DWORD );
+ typedef DWORD (APIENTRY * RASRENAMEENTRY)( LPCWSTR, LPCWSTR, LPCWSTR );
+ typedef DWORD (APIENTRY * RASDELETEENTRY)( LPCWSTR, LPCWSTR );
+ typedef DWORD (APIENTRY * RASVALIDATEENTRYNAME)( LPCWSTR, LPCWSTR );
+ typedef DWORD (APIENTRY * RASCONNECTIONNOTIFICATION)( HRASCONN, HANDLE, DWORD );
+
+ static const wxChar gs_funcSuffix = _T('W');
+#endif // ASCII/Unicode
+
+// structure passed to the secondary thread
+struct WXDLLEXPORT wxRasThreadData
+{
+ wxRasThreadData()
+ {
+ hWnd = 0;
+ hEventRas =
+ hEventQuit = 0;
+ dialUpManager = NULL;
+ }
+
+ ~wxRasThreadData()
+ {
+ if ( hWnd )
+ DestroyWindow(hWnd);
+
+ if ( hEventQuit )
+ CloseHandle(hEventQuit);
+
+ if ( hEventRas )
+ CloseHandle(hEventRas);
+ }
+
+ HWND hWnd; // window to send notifications to
+ HANDLE hEventRas, // automatic event which RAS signals when status changes
+ hEventQuit; // manual event which we signal when we terminate
+
+ class WXDLLEXPORT wxDialUpManagerMSW *dialUpManager; // the owner
+};
+
+// ----------------------------------------------------------------------------
+// wxDialUpManager class for MSW
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxDialUpManagerMSW : public wxDialUpManager
+{
+public:
+ // ctor & dtor
+ wxDialUpManagerMSW();
+ virtual ~wxDialUpManagerMSW();
+
+ // implement base class pure virtuals
+ virtual bool IsOk() const;
+ virtual size_t GetISPNames(wxArrayString& names) const;
+ virtual bool Dial(const wxString& nameOfISP,
+ const wxString& username,
+ const wxString& password,
+ bool async);
+ virtual bool IsDialing() const;
+ virtual bool CancelDialing();
+ virtual bool HangUp();
+ virtual bool IsAlwaysOnline() const;
+ virtual bool IsOnline() const;
+ virtual void SetOnlineStatus(bool isOnline = TRUE);
+ virtual bool EnableAutoCheckOnlineStatus(size_t nSeconds);
+ virtual void DisableAutoCheckOnlineStatus();
+ virtual void SetWellKnownHost(const wxString& hostname, int port);
+ virtual void SetConnectCommand(const wxString& commandDial,
+ const wxString& commandHangup);
+
+ // for RasTimer
+ void CheckRasStatus();
+
+ // for wxRasStatusWindowProc
+ void OnConnectStatusChange();
+ void OnDialProgress(RASCONNSTATE rasconnstate, DWORD dwError);
+
+ // for wxRasDialFunc
+ static HWND GetRasWindow() { return ms_hwndRas; }
+ static wxDialUpManagerMSW *GetDialer() { return ms_dialer; }
+
+private:
+ // return the error string for the given RAS error code
+ static wxString GetErrorString(DWORD error);
+
+ // find the (first) handle of the active connection
+ static HRASCONN FindActiveConnection();
+
+ // notify the application about status change
+ void NotifyApp(bool connected, bool fromOurselves = FALSE) const;
+
+ // destroy the thread data and the thread itself
+ void CleanUpThreadData();
+
+ // number of times EnableAutoCheckOnlineStatus() had been called minus the
+ // number of times DisableAutoCheckOnlineStatus() had been called
+ int m_autoCheckLevel;
+
+ // timer used for polling RAS status
+ class WXDLLEXPORT RasTimer : public wxTimer
+ {
+ public:
+ RasTimer(wxDialUpManagerMSW *dialUpManager)
+ { m_dialUpManager = dialUpManager; }
+
+ virtual void Notify() { m_dialUpManager->CheckRasStatus(); }
+
+ private:
+ wxDialUpManagerMSW *m_dialUpManager;
+
+ DECLARE_NO_COPY_CLASS(RasTimer)
+ } m_timerStatusPolling;
+
+ // thread handle for the thread sitting on connection change event
+ HANDLE m_hThread;
+
+ // data used by this thread and our hidden window to send messages between
+ // each other
+ wxRasThreadData *m_data;
+
+ // the handle of rasapi32.dll when it's loaded
+ wxDynamicLibrary m_dllRas;
+
+ // the hidden window we use for passing messages between threads
+ static HWND ms_hwndRas;
+
+ // the handle of the connection we initiated or 0 if none
+ static HRASCONN ms_hRasConnection;
+
+ // the pointers to RAS functions
+ static RASDIAL ms_pfnRasDial;
+ static RASENUMCONNECTIONS ms_pfnRasEnumConnections;
+ static RASENUMENTRIES ms_pfnRasEnumEntries;
+ static RASGETCONNECTSTATUS ms_pfnRasGetConnectStatus;
+ static RASGETERRORSTRING ms_pfnRasGetErrorString;
+ static RASHANGUP ms_pfnRasHangUp;
+ static RASGETPROJECTIONINFO ms_pfnRasGetProjectionInfo;
+ static RASCREATEPHONEBOOKENTRY ms_pfnRasCreatePhonebookEntry;
+ static RASEDITPHONEBOOKENTRY ms_pfnRasEditPhonebookEntry;
+ static RASSETENTRYDIALPARAMS ms_pfnRasSetEntryDialParams;
+ static RASGETENTRYDIALPARAMS ms_pfnRasGetEntryDialParams;
+ static RASENUMDEVICES ms_pfnRasEnumDevices;
+ static RASGETCOUNTRYINFO ms_pfnRasGetCountryInfo;
+ static RASGETENTRYPROPERTIES ms_pfnRasGetEntryProperties;
+ static RASSETENTRYPROPERTIES ms_pfnRasSetEntryProperties;
+ static RASRENAMEENTRY ms_pfnRasRenameEntry;
+ static RASDELETEENTRY ms_pfnRasDeleteEntry;
+ static RASVALIDATEENTRYNAME ms_pfnRasValidateEntryName;
+
+ // this function is not supported by Win95
+ static RASCONNECTIONNOTIFICATION ms_pfnRasConnectionNotification;
+
+ // if this flag is different from -1, it overrides IsOnline()
+ static int ms_userSpecifiedOnlineStatus;
+
+ // this flag tells us if we're online
+ static int ms_isConnected;
+
+ // this flag tells us whether a call to RasDial() is in progress
+ static wxDialUpManagerMSW *ms_dialer;
+
+ DECLARE_NO_COPY_CLASS(wxDialUpManagerMSW)
+};
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+static LRESULT WINAPI wxRasStatusWindowProc(HWND hWnd, UINT message,
+ WPARAM wParam, LPARAM lParam);
+
+static DWORD wxRasMonitorThread(wxRasThreadData *data);
+
+static void WINAPI wxRasDialFunc(UINT unMsg,
+ RASCONNSTATE rasconnstate,
+ DWORD dwError);
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// init the static variables
+// ----------------------------------------------------------------------------
+
+HRASCONN wxDialUpManagerMSW::ms_hRasConnection = 0;
+
+HWND wxDialUpManagerMSW::ms_hwndRas = 0;
+
+RASDIAL wxDialUpManagerMSW::ms_pfnRasDial = 0;
+RASENUMCONNECTIONS wxDialUpManagerMSW::ms_pfnRasEnumConnections = 0;
+RASENUMENTRIES wxDialUpManagerMSW::ms_pfnRasEnumEntries = 0;
+RASGETCONNECTSTATUS wxDialUpManagerMSW::ms_pfnRasGetConnectStatus = 0;
+RASGETERRORSTRING wxDialUpManagerMSW::ms_pfnRasGetErrorString = 0;
+RASHANGUP wxDialUpManagerMSW::ms_pfnRasHangUp = 0;
+RASGETPROJECTIONINFO wxDialUpManagerMSW::ms_pfnRasGetProjectionInfo = 0;
+RASCREATEPHONEBOOKENTRY wxDialUpManagerMSW::ms_pfnRasCreatePhonebookEntry = 0;
+RASEDITPHONEBOOKENTRY wxDialUpManagerMSW::ms_pfnRasEditPhonebookEntry = 0;
+RASSETENTRYDIALPARAMS wxDialUpManagerMSW::ms_pfnRasSetEntryDialParams = 0;
+RASGETENTRYDIALPARAMS wxDialUpManagerMSW::ms_pfnRasGetEntryDialParams = 0;
+RASENUMDEVICES wxDialUpManagerMSW::ms_pfnRasEnumDevices = 0;
+RASGETCOUNTRYINFO wxDialUpManagerMSW::ms_pfnRasGetCountryInfo = 0;
+RASGETENTRYPROPERTIES wxDialUpManagerMSW::ms_pfnRasGetEntryProperties = 0;
+RASSETENTRYPROPERTIES wxDialUpManagerMSW::ms_pfnRasSetEntryProperties = 0;
+RASRENAMEENTRY wxDialUpManagerMSW::ms_pfnRasRenameEntry = 0;
+RASDELETEENTRY wxDialUpManagerMSW::ms_pfnRasDeleteEntry = 0;
+RASVALIDATEENTRYNAME wxDialUpManagerMSW::ms_pfnRasValidateEntryName = 0;
+RASCONNECTIONNOTIFICATION wxDialUpManagerMSW::ms_pfnRasConnectionNotification = 0;
+
+int wxDialUpManagerMSW::ms_userSpecifiedOnlineStatus = -1;
+int wxDialUpManagerMSW::ms_isConnected = -1;
+wxDialUpManagerMSW *wxDialUpManagerMSW::ms_dialer = NULL;
+
+// ----------------------------------------------------------------------------
+// ctor and dtor: the dynamic linking happens here
+// ----------------------------------------------------------------------------
+
+// the static creator function is implemented here
+wxDialUpManager *wxDialUpManager::Create()
+{
+ return new wxDialUpManagerMSW;
+}
+
+#ifdef __VISUALC__
+ // warning about "'this' : used in base member initializer list" - so what?
+ #pragma warning(disable:4355)
+#endif // VC++
+
+wxDialUpManagerMSW::wxDialUpManagerMSW()
+ : m_timerStatusPolling(this),
+ m_dllRas(_T("RASAPI32"))
+{
+ // initialize our data
+ m_autoCheckLevel = 0;
+ m_hThread = 0;
+ m_data = new wxRasThreadData;
+
+ if ( !m_dllRas.IsLoaded() )
+ {
+ wxLogError(_("Dial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it."));
+ }
+ else if ( !ms_pfnRasDial )
+ {
+ // resolve the functions we need
+
+ // this will contain the name of the function we failed to resolve
+ // if any at the end
+ const char *funcName = NULL;
+
+ // get the function from rasapi32.dll and abort if it's not found
+ #define RESOLVE_RAS_FUNCTION(type, name) \
+ ms_pfn##name = (type)m_dllRas.GetSymbol( wxString(_T(#name)) \
+ + gs_funcSuffix); \
+ if ( !ms_pfn##name ) \
+ { \
+ funcName = #name; \
+ goto exit; \
+ }
+
+ // a variant of above macro which doesn't abort if the function is
+ // not found in the DLL
+ #define RESOLVE_OPTIONAL_RAS_FUNCTION(type, name) \
+ ms_pfn##name = (type)m_dllRas.GetSymbol( wxString(_T(#name)) \
+ + gs_funcSuffix);
+
+ RESOLVE_RAS_FUNCTION(RASDIAL, RasDial);
+ RESOLVE_RAS_FUNCTION(RASENUMCONNECTIONS, RasEnumConnections);
+ RESOLVE_RAS_FUNCTION(RASENUMENTRIES, RasEnumEntries);
+ RESOLVE_RAS_FUNCTION(RASGETCONNECTSTATUS, RasGetConnectStatus);
+ RESOLVE_RAS_FUNCTION(RASGETERRORSTRING, RasGetErrorString);
+ RESOLVE_RAS_FUNCTION(RASHANGUP, RasHangUp);
+ RESOLVE_RAS_FUNCTION(RASGETENTRYDIALPARAMS, RasGetEntryDialParams);
+
+ // suppress error messages about missing (non essential) functions
+ {
+ wxLogNull noLog;
+
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASGETPROJECTIONINFO, RasGetProjectionInfo);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASCREATEPHONEBOOKENTRY, RasCreatePhonebookEntry);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASEDITPHONEBOOKENTRY, RasEditPhonebookEntry);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASSETENTRYDIALPARAMS, RasSetEntryDialParams);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASGETENTRYPROPERTIES, RasGetEntryProperties);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASSETENTRYPROPERTIES, RasSetEntryProperties);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASRENAMEENTRY, RasRenameEntry);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASDELETEENTRY, RasDeleteEntry);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASVALIDATEENTRYNAME, RasValidateEntryName);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASGETCOUNTRYINFO, RasGetCountryInfo);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASENUMDEVICES, RasEnumDevices);
+ RESOLVE_OPTIONAL_RAS_FUNCTION(RASCONNECTIONNOTIFICATION, RasConnectionNotification);
+ }
+
+ // keep your preprocessor name space clean
+ #undef RESOLVE_RAS_FUNCTION
+ #undef RESOLVE_OPTIONAL_RAS_FUNCTION
+
+exit:
+ if ( funcName )
+ {
+ static const wxChar *msg = wxTRANSLATE(
+"The version of remote access service (RAS) installed on this machine is too\
+old, please upgrade (the following required function is missing: %s)."
+ );
+
+ wxLogError(wxGetTranslation(msg), funcName);
+ m_dllRas.Unload();
+ return;
+ }
+ }
+
+ // enable auto check by default
+ EnableAutoCheckOnlineStatus(0);
+}
+
+wxDialUpManagerMSW::~wxDialUpManagerMSW()
+{
+ CleanUpThreadData();
+}
+
+// ----------------------------------------------------------------------------
+// helper functions
+// ----------------------------------------------------------------------------
+
+wxString wxDialUpManagerMSW::GetErrorString(DWORD error)
+{
+ wxChar buffer[512]; // this should be more than enough according to MS docs
+ DWORD dwRet = ms_pfnRasGetErrorString(error, buffer, WXSIZEOF(buffer));
+ switch ( dwRet )
+ {
+ case ERROR_INVALID_PARAMETER:
+ // this was a standard Win32 error probably
+ return wxString(wxSysErrorMsg(error));
+
+ default:
+ {
+ wxLogSysError(dwRet,
+ _("Failed to retrieve text of RAS error message"));
+
+ wxString msg;
+ msg.Printf(_("unknown error (error code %08x)."), error);
+ return msg;
+ }
+
+ case 0:
+ // we want the error message to start from a lower case letter
+ buffer[0] = wxTolower(buffer[0]);
+
+ return wxString(buffer);
+ }
+}
+
+HRASCONN wxDialUpManagerMSW::FindActiveConnection()
+{
+ // enumerate connections
+ DWORD cbBuf = sizeof(RASCONN);
+ LPRASCONN lpRasConn = (LPRASCONN)malloc(cbBuf);
+ if ( !lpRasConn )
+ {
+ // out of memory
+ return 0;
+ }
+
+ lpRasConn->dwSize = sizeof(RASCONN);
+
+ DWORD nConnections = 0;
+ DWORD dwRet = ERROR_BUFFER_TOO_SMALL;
+
+ while ( dwRet == ERROR_BUFFER_TOO_SMALL )
+ {
+ dwRet = ms_pfnRasEnumConnections(lpRasConn, &cbBuf, &nConnections);
+
+ if ( dwRet == ERROR_BUFFER_TOO_SMALL )
+ {
+ LPRASCONN lpRasConnOld = lpRasConn;
+ lpRasConn = (LPRASCONN)realloc(lpRasConn, cbBuf);
+ if ( !lpRasConn )
+ {
+ // out of memory
+ free(lpRasConnOld);
+
+ return 0;
+ }
+ }
+ else if ( dwRet == 0 )
+ {
+ // ok, success
+ break;
+ }
+ else
+ {
+ // an error occured
+ wxLogError(_("Cannot find active dialup connection: %s"),
+ GetErrorString(dwRet).c_str());
+ return 0;
+ }
+ }
+
+ HRASCONN hrasconn;
+
+ switch ( nConnections )
+ {
+ case 0:
+ // no connections
+ hrasconn = 0;
+ break;
+
+ default:
+ // more than 1 connection - we don't know what to do with this
+ // case, so give a warning but continue (taking the first
+ // connection) - the warning is really needed because this function
+ // is used, for example, to select the connection to hang up and so
+ // we may hang up the wrong connection here...
+ wxLogWarning(_("Several active dialup connections found, choosing one randomly."));
+ // fall through
+
+ case 1:
+ // exactly 1 connection, great
+ hrasconn = lpRasConn->hrasconn;
+ }
+
+ free(lpRasConn);
+
+ return hrasconn;
+}
+
+void wxDialUpManagerMSW::CleanUpThreadData()
+{
+ if ( m_hThread )
+ {
+ if ( !SetEvent(m_data->hEventQuit) )
+ {
+ wxLogLastError(_T("SetEvent(RasThreadQuit)"));
+ }
+ else // sent quit request to the background thread
+ {
+ // the thread still needs m_data so we can't free it here, rather
+ // let the thread do it itself
+ m_data = NULL;
+ }
+
+ CloseHandle(m_hThread);
+
+ m_hThread = 0;
+ }
+
+ if ( m_data )
+ {
+ delete m_data;
+ m_data = NULL;
+ }
+}
+
+// ----------------------------------------------------------------------------
+// connection status
+// ----------------------------------------------------------------------------
+
+void wxDialUpManagerMSW::CheckRasStatus()
+{
+ // use int, not bool to compare with -1
+ int isConnected = FindActiveConnection() != 0;
+ if ( isConnected != ms_isConnected )
+ {
+ if ( ms_isConnected != -1 )
+ {
+ // notify the program
+ NotifyApp(isConnected != 0);
+ }
+ // else: it's the first time we're called, just update the flag
+
+ ms_isConnected = isConnected;
+ }
+}
+
+void wxDialUpManagerMSW::NotifyApp(bool connected, bool fromOurselves) const
+{
+ wxDialUpEvent event(connected, fromOurselves);
+ (void)wxTheApp->ProcessEvent(event);
+}
+
+// this function is called whenever the status of any RAS connection on this
+// machine changes by RAS itself
+void wxDialUpManagerMSW::OnConnectStatusChange()
+{
+ // we know that status changed, but we don't know whether we're connected
+ // or not - so find it out
+ CheckRasStatus();
+}
+
+// this function is called by our callback which we give to RasDial() when
+// calling it asynchronously
+void wxDialUpManagerMSW::OnDialProgress(RASCONNSTATE rasconnstate,
+ DWORD dwError)
+{
+ if ( !GetDialer() )
+ {
+ // this probably means that CancelDialing() was called and we get
+ // "disconnected" notification
+ return;
+ }
+
+ // we're only interested in 2 events: connected and disconnected
+ if ( dwError )
+ {
+ wxLogError(_("Failed to establish dialup connection: %s"),
+ GetErrorString(dwError).c_str());
+
+ // we should still call RasHangUp() if we got a non 0 connection
+ if ( ms_hRasConnection )
+ {
+ ms_pfnRasHangUp(ms_hRasConnection);
+ ms_hRasConnection = 0;
+ }
+
+ ms_dialer = NULL;
+
+ NotifyApp(FALSE /* !connected */, TRUE /* we dialed ourselves */);
+ }
+ else if ( rasconnstate == RASCS_Connected )
+ {
+ ms_isConnected = TRUE;
+ ms_dialer = NULL;
+
+ NotifyApp(TRUE /* connected */, TRUE /* we dialed ourselves */);
+ }
+}
+
+// ----------------------------------------------------------------------------
+// implementation of wxDialUpManager functions
+// ----------------------------------------------------------------------------
+
+bool wxDialUpManagerMSW::IsOk() const
+{
+ return m_dllRas.IsLoaded();
+}
+
+size_t wxDialUpManagerMSW::GetISPNames(wxArrayString& names) const
+{
+ // fetch the entries
+ DWORD size = sizeof(RASENTRYNAME);
+ RASENTRYNAME *rasEntries = (RASENTRYNAME *)malloc(size);
+ rasEntries->dwSize = sizeof(RASENTRYNAME);
+
+ DWORD nEntries;
+ DWORD dwRet;
+ do
+ {
+ dwRet = ms_pfnRasEnumEntries
+ (
+ NULL, // reserved
+ NULL, // default phone book (or all)
+ rasEntries, // [out] buffer for the entries
+ &size, // [in/out] size of the buffer
+ &nEntries // [out] number of entries fetched
+ );
+
+ if ( dwRet == ERROR_BUFFER_TOO_SMALL )
+ {
+ // reallocate the buffer
+ rasEntries = (RASENTRYNAME *)realloc(rasEntries, size);
+ }
+ else if ( dwRet != 0 )
+ {
+ // some other error - abort
+ wxLogError(_("Failed to get ISP names: %s"),
+ GetErrorString(dwRet).c_str());
+
+ free(rasEntries);
+
+ return 0u;
+ }
+ }
+ while ( dwRet != 0 );
+
+ // process them
+ names.Empty();
+ for ( size_t n = 0; n < (size_t)nEntries; n++ )
+ {
+ names.Add(rasEntries[n].szEntryName);
+ }
+
+ free(rasEntries);
+
+ // return the number of entries
+ return names.GetCount();
+}
+
+bool wxDialUpManagerMSW::Dial(const wxString& nameOfISP,
+ const wxString& username,
+ const wxString& password,
+ bool async)
+{
+ // check preconditions
+ wxCHECK_MSG( IsOk(), FALSE, wxT("using uninitialized wxDialUpManager") );
+
+ if ( ms_hRasConnection )
+ {
+ wxFAIL_MSG(wxT("there is already an active connection"));
+
+ return TRUE;
+ }
+
+ // get the default ISP if none given
+ wxString entryName(nameOfISP);
+ if ( !entryName )
+ {
+ wxArrayString names;
+ size_t count = GetISPNames(names);
+ switch ( count )
+ {
+ case 0:
+ // no known ISPs, abort
+ wxLogError(_("Failed to connect: no ISP to dial."));
+
+ return FALSE;
+
+ case 1:
+ // only one ISP, choose it
+ entryName = names[0u];
+ break;
+
+ default:
+ // several ISPs, let the user choose
+ {
+ wxString *strings = new wxString[count];
+ for ( size_t i = 0; i < count; i++ )
+ {
+ strings[i] = names[i];
+ }
+
+ entryName = wxGetSingleChoice
+ (
+ _("Choose ISP to dial"),
+ _("Please choose which ISP do you want to connect to"),
+ count,
+ strings
+ );
+
+ delete [] strings;
+
+ if ( !entryName )
+ {
+ // cancelled by user
+ return FALSE;
+ }
+ }
+ }
+ }
+
+ RASDIALPARAMS rasDialParams;
+ rasDialParams.dwSize = sizeof(rasDialParams);
+ wxStrncpy(rasDialParams.szEntryName, entryName, RAS_MaxEntryName);
+
+ // do we have the username and password?
+ if ( !username || !password )
+ {
+ BOOL gotPassword;
+ DWORD dwRet = ms_pfnRasGetEntryDialParams
+ (
+ NULL, // default phonebook
+ &rasDialParams, // [in/out] the params of this entry
+ &gotPassword // [out] did we get password?
+ );
+
+ if ( dwRet != 0 )
+ {
+ wxLogError(_("Failed to connect: missing username/password."));
+
+ return FALSE;
+ }
+ }
+ else
+ {
+ wxStrncpy(rasDialParams.szUserName, username, UNLEN);
+ wxStrncpy(rasDialParams.szPassword, password, PWLEN);
+ }
+
+ // default values for other fields
+ rasDialParams.szPhoneNumber[0] = '\0';
+ rasDialParams.szCallbackNumber[0] = '\0';
+ rasDialParams.szCallbackNumber[0] = '\0';
+
+ rasDialParams.szDomain[0] = '*';
+ rasDialParams.szDomain[1] = '\0';
+
+ // apparently, this is not really necessary - passing NULL instead of the
+ // phone book has the same effect
+#if 0
+ wxString phoneBook;
+ if ( wxGetOsVersion() == wxWINDOWS_NT )
+ {
+ // first get the length
+ UINT nLen = ::GetSystemDirectory(NULL, 0);
+ nLen++;
+
+ if ( !::GetSystemDirectory(phoneBook.GetWriteBuf(nLen), nLen) )
+ {
+ wxLogSysError(_("Cannot find the location of address book file"));
+ }
+
+ phoneBook.UngetWriteBuf();
+
+ // this is the default phone book
+ phoneBook << "\\ras\\rasphone.pbk";
+ }
+#endif // 0
+
+ // TODO may be we should disable auto check while async dialing is in
+ // progress?
+
+ ms_dialer = this;
+
+ DWORD dwRet = ms_pfnRasDial
+ (
+ NULL, // no extended features
+ NULL, // default phone book file (NT only)
+ &rasDialParams,
+ 0, // use callback for notifications
+ async ? (void *)wxRasDialFunc // cast needed for gcc 3.1
+ : 0, // no notifications, sync operation
+ &ms_hRasConnection
+ );
+
+ if ( dwRet != 0 )
+ {
+ // can't pass a wxWCharBuffer through ( ... )
+ wxLogError(_("Failed to %s dialup connection: %s"),
+ wxString(async ? _("initiate") : _("establish")).c_str(),
+ GetErrorString(dwRet).c_str());
+
+ // we should still call RasHangUp() if we got a non 0 connection
+ if ( ms_hRasConnection )
+ {
+ ms_pfnRasHangUp(ms_hRasConnection);
+ ms_hRasConnection = 0;
+ }
+
+ ms_dialer = NULL;
+
+ return FALSE;
+ }
+
+ // for async dialing, we're not yet connected
+ if ( !async )
+ {
+ ms_isConnected = TRUE;
+ }
+
+ return TRUE;
+}
+
+bool wxDialUpManagerMSW::IsDialing() const
+{
+ return GetDialer() != NULL;
+}
+
+bool wxDialUpManagerMSW::CancelDialing()
+{
+ if ( !GetDialer() )
+ {
+ // silently ignore
+ return FALSE;
+ }
+
+ wxASSERT_MSG( ms_hRasConnection, wxT("dialing but no connection?") );
+
+ ms_dialer = NULL;
+
+ return HangUp();
+}
+
+bool wxDialUpManagerMSW::HangUp()
+{
+ wxCHECK_MSG( IsOk(), FALSE, wxT("using uninitialized wxDialUpManager") );
+
+ // we may terminate either the connection we initiated or another one which
+ // is active now
+ HRASCONN hRasConn;
+ if ( ms_hRasConnection )
+ {
+ hRasConn = ms_hRasConnection;
+
+ ms_hRasConnection = 0;
+ }
+ else
+ {
+ hRasConn = FindActiveConnection();
+ }
+
+ if ( !hRasConn )
+ {
+ wxLogError(_("Cannot hang up - no active dialup connection."));
+
+ return FALSE;
+ }
+
+ DWORD dwRet = ms_pfnRasHangUp(hRasConn);
+ if ( dwRet != 0 )
+ {
+ wxLogError(_("Failed to terminate the dialup connection: %s"),
+ GetErrorString(dwRet).c_str());
+ }
+
+ ms_isConnected = FALSE;
+
+ return TRUE;
+}
+
+bool wxDialUpManagerMSW::IsAlwaysOnline() const
+{
+ // assume no permanent connection by default
+ bool isAlwaysOnline = FALSE;
+
+ // try to use WinInet functions
+
+ // NB: we could probably use wxDynamicLibrary here just as well,
+ // but we allow multiple instances of wxDialUpManagerMSW so
+ // we might as well use the ref counted version here too.
+
+ wxDynamicLibrary hDll(_T("WININET"));
+ if ( hDll.IsLoaded() )
+ {
+ typedef BOOL (WINAPI *INTERNETGETCONNECTEDSTATE)(LPDWORD, DWORD);
+ INTERNETGETCONNECTEDSTATE pfnInternetGetConnectedState;
+
+ #define RESOLVE_FUNCTION(type, name) \
+ pfn##name = (type)hDll.GetSymbol(_T(#name))
+
+ RESOLVE_FUNCTION(INTERNETGETCONNECTEDSTATE, InternetGetConnectedState);
+
+ if ( pfnInternetGetConnectedState )
+ {
+ DWORD flags = 0;
+ if ( pfnInternetGetConnectedState(&flags, 0 /* reserved */) )
+ {
+ // there is some connection to the net, see of which type
+ isAlwaysOnline = (flags & (INTERNET_CONNECTION_LAN |
+ INTERNET_CONNECTION_PROXY)) != 0;
+ }
+ //else: no Internet connection at all
+ }
+ }
+
+ return isAlwaysOnline;
+}
+
+bool wxDialUpManagerMSW::IsOnline() const
+{
+ wxCHECK_MSG( IsOk(), FALSE, wxT("using uninitialized wxDialUpManager") );
+
+ if ( IsAlwaysOnline() )
+ {
+ // always => now
+ return true;
+ }
+
+ if ( ms_userSpecifiedOnlineStatus != -1 )
+ {
+ // user specified flag overrides our logic
+ return ms_userSpecifiedOnlineStatus != 0;
+ }
+ else
+ {
+ // return TRUE if there is at least one active connection
+ return FindActiveConnection() != 0;
+ }
+}
+
+void wxDialUpManagerMSW::SetOnlineStatus(bool isOnline)
+{
+ wxCHECK_RET( IsOk(), wxT("using uninitialized wxDialUpManager") );
+
+ ms_userSpecifiedOnlineStatus = isOnline;
+}
+
+bool wxDialUpManagerMSW::EnableAutoCheckOnlineStatus(size_t nSeconds)
+{
+ wxCHECK_MSG( IsOk(), FALSE, wxT("using uninitialized wxDialUpManager") );
+
+ if ( m_autoCheckLevel++ )
+ {
+ // already checking
+ return TRUE;
+ }
+
+ bool ok = ms_pfnRasConnectionNotification != 0;
+
+ if ( ok )
+ {
+ // we're running under NT 4.0, Windows 98 or later and can use
+ // RasConnectionNotification() to be notified by a secondary thread
+
+ // first, see if we don't have this thread already running
+ if ( m_hThread != 0 )
+ {
+ if ( ::ResumeThread(m_hThread) != (DWORD)-1 )
+ return TRUE;
+
+ // we're leaving a zombie thread... but what else can we do?
+ wxLogLastError(wxT("ResumeThread(RasThread)"));
+
+ ok = FALSE;
+ }
+ }
+
+ // create all the stuff we need to be notified about RAS connection
+ // status change
+
+ if ( ok )
+ {
+ // first create an event to wait on
+ m_data->hEventRas = CreateEvent
+ (
+ NULL, // security attribute (default)
+ FALSE, // manual reset (no, it is automatic)
+ FALSE, // initial state (not signaled)
+ NULL // name (no)
+ );
+ if ( !m_data->hEventRas )
+ {
+ wxLogLastError(wxT("CreateEvent(RasStatus)"));
+
+ ok = FALSE;
+ }
+ }
+
+ if ( ok )
+ {
+ // create the event we use to quit the thread: using a manual event
+ // here avoids problems with missing the event if wxDialUpManagerMSW
+ // is created and destroyed immediately, before wxRasStatusWindowProc
+ // starts waiting on the event
+ m_data->hEventQuit = CreateEvent
+ (
+ NULL, // default security
+ TRUE, // manual event
+ FALSE, // initially non signalled
+ NULL // nameless
+ );
+ if ( !m_data->hEventQuit )
+ {
+ wxLogLastError(wxT("CreateEvent(RasThreadQuit)"));
+
+ CleanUpThreadData();
+
+ ok = FALSE;
+ }
+ }
+
+ if ( ok && !ms_hwndRas )
+ {
+ // create a hidden window to receive notification about connections
+ // status change
+ extern const wxChar *wxCanvasClassName;
+ ms_hwndRas = ::CreateWindow(wxCanvasClassName, NULL,
+ 0, 0, 0, 0,
+ 0, NULL,
+ (HMENU)NULL, wxGetInstance(), 0);
+ if ( !ms_hwndRas )
+ {
+ wxLogLastError(wxT("CreateWindow(RasHiddenWindow)"));
+
+ CleanUpThreadData();
+
+ ok = FALSE;
+ }
+
+ // and subclass it
+ wxSetWindowProc(ms_hwndRas, wxRasStatusWindowProc);
+ }
+
+ m_data->hWnd = ms_hwndRas;
+
+ if ( ok )
+ {
+ // start the secondary thread
+ m_data->dialUpManager = this;
+
+ DWORD tid;
+ m_hThread = CreateThread
+ (
+ NULL,
+ 0,
+ (LPTHREAD_START_ROUTINE)wxRasMonitorThread,
+ (void *)m_data,
+ 0,
+ &tid
+ );
+
+ if ( !m_hThread )
+ {
+ wxLogLastError(wxT("CreateThread(RasStatusThread)"));
+
+ CleanUpThreadData();
+ }
+ }
+
+ if ( ok )
+ {
+ // start receiving RAS notifications
+ DWORD dwRet = ms_pfnRasConnectionNotification
+ (
+ (HRASCONN)INVALID_HANDLE_VALUE,
+ m_data->hEventRas,
+ 3 /* RASCN_Connection | RASCN_Disconnection */
+ );
+
+ if ( dwRet != 0 )
+ {
+ wxLogDebug(wxT("RasConnectionNotification() failed: %s"),
+ GetErrorString(dwRet).c_str());
+
+ CleanUpThreadData();
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+
+ // we're running under Windows 95 and have to poll ourselves
+ // (or, alternatively, the code above for NT/98 failed)
+ m_timerStatusPolling.Stop();
+ if ( nSeconds == 0 )
+ {
+ // default value
+ nSeconds = 60;
+ }
+ m_timerStatusPolling.Start(nSeconds * 1000);
+
+ return TRUE;
+}
+
+void wxDialUpManagerMSW::DisableAutoCheckOnlineStatus()
+{
+ wxCHECK_RET( IsOk(), wxT("using uninitialized wxDialUpManager") );
+
+ if ( --m_autoCheckLevel )
+ {
+ // still checking
+ return;
+ }
+
+ if ( m_hThread )
+ {
+ // we have running secondary thread, it's just enough to suspend it
+ if ( SuspendThread(m_hThread) == (DWORD)-1 )
+ {
+ wxLogLastError(wxT("SuspendThread(RasThread)"));
+ }
+ }
+ else
+ {
+ // even simpler - just stop the timer
+ m_timerStatusPolling.Stop();
+ }
+}
+
+// ----------------------------------------------------------------------------
+// stubs which don't do anything in MSW version
+// ----------------------------------------------------------------------------
+
+void wxDialUpManagerMSW::SetWellKnownHost(const wxString& WXUNUSED(hostname),
+ int WXUNUSED(port))
+{
+ wxCHECK_RET( IsOk(), wxT("using uninitialized wxDialUpManager") );
+
+ // nothing to do - we don't use this
+}
+
+void wxDialUpManagerMSW::SetConnectCommand(const wxString& WXUNUSED(dial),
+ const wxString& WXUNUSED(hangup))
+{
+ wxCHECK_RET( IsOk(), wxT("using uninitialized wxDialUpManager") );
+
+ // nothing to do - we don't use this
+}
+
+// ----------------------------------------------------------------------------
+// callbacks
+// ----------------------------------------------------------------------------
+
+static DWORD wxRasMonitorThread(wxRasThreadData *data)
+{
+ HANDLE handles[2];
+ handles[0] = data->hEventRas;
+ handles[1] = data->hEventQuit;
+
+ bool cont = TRUE;
+ while ( cont )
+ {
+ DWORD dwRet = WaitForMultipleObjects(2, handles, FALSE, INFINITE);
+
+ switch ( dwRet )
+ {
+ case WAIT_OBJECT_0:
+ // RAS connection status changed
+ SendMessage(data->hWnd, wxWM_RAS_STATUS_CHANGED,
+ 0, (LPARAM)data);
+ break;
+
+ case WAIT_OBJECT_0 + 1:
+ cont = FALSE;
+ break;
+
+ default:
+ wxFAIL_MSG( _T("unexpected return of WaitForMultipleObjects()") );
+ // fall through
+
+ case WAIT_FAILED:
+#ifdef __WXDEBUG__
+ // using wxLogLastError() from here is dangerous: we risk to
+ // deadlock the main thread if wxLog sends output to GUI
+ DWORD err = GetLastError();
+ wxMessageOutputDebug().Printf
+ (
+ wxT("WaitForMultipleObjects(RasMonitor) failed: 0x%08lx (%s)"),
+ err,
+ wxSysErrorMsg(err)
+ );
+#endif // __WXDEBUG__
+
+ // no sense in continuing, who knows if the handles we're
+ // waiting for even exist yet...
+ return (DWORD)-1;
+ }
+ }
+
+ // we don't need it any more now and if this thread ran, it is our
+ // responsability to free the data
+ delete data;
+
+ return 0;
+}
+
+static LRESULT APIENTRY wxRasStatusWindowProc(HWND hWnd, UINT message,
+ WPARAM wParam, LPARAM lParam)
+{
+ switch ( message )
+ {
+ case wxWM_RAS_STATUS_CHANGED:
+ {
+ wxRasThreadData *data = (wxRasThreadData *)lParam;
+ data->dialUpManager->OnConnectStatusChange();
+ }
+ break;
+
+ case wxWM_RAS_DIALING_PROGRESS:
+ {
+ wxDialUpManagerMSW *dialMan = wxDialUpManagerMSW::GetDialer();
+
+ dialMan->OnDialProgress((RASCONNSTATE)wParam, lParam);
+ }
+ break;
+
+ default:
+ return ::DefWindowProc(hWnd, message, wParam, lParam);
+ }
+
+ return 0;
+}
+
+static void WINAPI wxRasDialFunc(UINT WXUNUSED(unMsg),
+ RASCONNSTATE rasconnstate,
+ DWORD dwError)
+{
+ wxDialUpManagerMSW *dialUpManager = wxDialUpManagerMSW::GetDialer();
+
+ wxCHECK_RET( dialUpManager, wxT("who started to dial then?") );
+
+ SendMessage(dialUpManager->GetRasWindow(), wxWM_RAS_DIALING_PROGRESS,
+ rasconnstate, dwError);
+}
+
+#endif // __PALMOS__
+
+#endif // wxUSE_DIALUP_MANAGER
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/dib.cpp
+// Purpose: implements wxDIB class
+// Author: William Osborne
+// Modified by:
+// Created: 10.13.04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// License: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #include "wx/log.h"
+#endif //WX_PRECOMP
+
+#if wxUSE_WXDIB
+
+#include "wx/bitmap.h"
+#include "wx/intl.h"
+#include "wx/file.h"
+
+#include "wx/image.h"
+#include "wx/palmos/dib.h"
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// calculate the number of palette entries needed for the bitmap with this
+// number of bits per pixel
+static inline WORD GetNumberOfColours(WORD bitsPerPixel)
+{
+ // only 1, 4 and 8bpp bitmaps use palettes (well, they could be used with
+ // 24bpp ones too but we don't support this as I think it's quite uncommon)
+ return bitsPerPixel <= 8 ? 1 << bitsPerPixel : 0;
+}
+
+// wrapper around ::GetObject() for DIB sections
+static inline bool GetDIBSection(HBITMAP hbmp, DIBSECTION *ds)
+{
+ // note that at least under Win9x (this doesn't seem to happen under Win2K
+ // but this doesn't mean anything, of course), GetObject() may return
+ // sizeof(DIBSECTION) for a bitmap which is *not* a DIB section and the way
+ // to check for it is by looking at the bits pointer
+ return ::GetObject(hbmp, sizeof(DIBSECTION), ds) == sizeof(DIBSECTION) &&
+ ds->dsBm.bmBits;
+}
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxDIB creation
+// ----------------------------------------------------------------------------
+
+bool wxDIB::Create(int width, int height, int depth)
+{
+ return false;
+}
+
+bool wxDIB::Create(const wxBitmap& bmp)
+{
+ return false;
+}
+
+bool wxDIB::CopyFromDDB(HBITMAP hbmp)
+{
+ return false;
+}
+
+
+// ----------------------------------------------------------------------------
+// Loading/saving the DIBs
+// ----------------------------------------------------------------------------
+
+bool wxDIB::Load(const wxString& filename)
+{
+ return false;
+}
+
+bool wxDIB::Save(const wxString& filename)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxDIB accessors
+// ----------------------------------------------------------------------------
+
+void wxDIB::DoGetObject() const
+{
+}
+
+// ----------------------------------------------------------------------------
+// DDB <-> DIB conversions
+// ----------------------------------------------------------------------------
+
+HBITMAP wxDIB::CreateDDB(HDC hdc) const
+{
+ return 0;
+}
+
+/* static */
+HBITMAP wxDIB::ConvertToBitmap(const BITMAPINFO *pbmi, HDC hdc, void *bits)
+{
+ return 0;
+}
+
+/* static */
+size_t wxDIB::ConvertFromBitmap(BITMAPINFO *pbi, HBITMAP hbmp)
+{
+ return 0;
+}
+
+/* static */
+HGLOBAL wxDIB::ConvertFromBitmap(HBITMAP hbmp)
+{
+ return NULL;
+}
+
+// ----------------------------------------------------------------------------
+// palette support
+// ----------------------------------------------------------------------------
+
+#if wxUSE_PALETTE
+
+wxPalette *wxDIB::CreatePalette() const
+{
+ return NULL;
+}
+
+#endif // wxUSE_PALETTE
+
+// ----------------------------------------------------------------------------
+// wxImage support
+// ----------------------------------------------------------------------------
+
+#if wxUSE_IMAGE
+
+bool wxDIB::Create(const wxImage& image)
+{
+ return false;
+}
+
+wxImage wxDIB::ConvertToImage() const
+{
+ return wxNullImage;
+}
+
+#endif // wxUSE_IMAGE
+
+#endif // wxUSE_WXDIB
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/dir.cpp
+// Purpose: wxDir implementation for Win32
+// Author: William Osborne
+// Modified by:
+// Created: 10.13.04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "dir.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/intl.h"
+ #include "wx/log.h"
+#endif // PCH
+
+#include "wx/dir.h"
+#include "wx/filefn.h" // for wxPathExists()
+
+// ----------------------------------------------------------------------------
+// define the types and functions used for file searching
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+#ifndef MAX_PATH
+ #define MAX_PATH 260 // from VC++ headers
+#endif
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+#define M_DIR ((wxDirData *)m_data)
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxDir helpers
+// ----------------------------------------------------------------------------
+
+/* static */
+bool wxDir::Exists(const wxString& dir)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxDir construction/destruction
+// ----------------------------------------------------------------------------
+
+wxDir::wxDir(const wxString& dirname)
+{
+}
+
+bool wxDir::Open(const wxString& dirname)
+{
+ return false;
+}
+
+bool wxDir::IsOpened() const
+{
+ return false;
+}
+
+wxString wxDir::GetName() const
+{
+ wxString name;
+
+ return name;
+}
+
+wxDir::~wxDir()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxDir enumerating
+// ----------------------------------------------------------------------------
+
+bool wxDir::GetFirst(wxString *filename,
+ const wxString& filespec,
+ int flags) const
+{
+ return false;
+}
+
+bool wxDir::GetNext(wxString *filename) const
+{
+ return false;
+}
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: dirdlg.cpp
+// Purpose: wxDirDialog
+// Author: William Osborne
+// Modified by:
+// Created: 10.13.04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "dirdlg.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_DIRDLG
+
+#if defined(__WIN95__) && !defined(__GNUWIN32_OLD__) && wxUSE_OLE
+
+#ifndef WX_PRECOMP
+ #include "wx/utils.h"
+ #include "wx/dialog.h"
+ #include "wx/dirdlg.h"
+ #include "wx/log.h"
+ #include "wx/app.h" // for GetComCtl32Version()
+#endif
+
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+#ifndef MAX_PATH
+ #define MAX_PATH 4096 // be generous
+#endif
+
+#ifndef BIF_NEWDIALOGSTYLE
+ #define BIF_NEWDIALOGSTYLE 0x0040
+#endif
+
+#ifndef BIF_NONEWFOLDERBUTTON
+ #define BIF_NONEWFOLDERBUTTON 0x0200
+#endif
+
+#ifndef BIF_EDITBOX
+ #define BIF_EDITBOX 16
+#endif
+
+// ----------------------------------------------------------------------------
+// wxWidgets macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_CLASS(wxDirDialog, wxDialog)
+
+// ----------------------------------------------------------------------------
+// private functions prototypes
+// ----------------------------------------------------------------------------
+
+// free the parameter
+static void ItemListFree(LPITEMIDLIST pidl);
+
+// the callback proc for the dir dlg
+static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp,
+ LPARAM pData);
+
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxDirDialog
+// ----------------------------------------------------------------------------
+
+wxDirDialog::wxDirDialog(wxWindow *parent,
+ const wxString& message,
+ const wxString& defaultPath,
+ long style,
+ const wxPoint& WXUNUSED(pos),
+ const wxSize& WXUNUSED(size),
+ const wxString& WXUNUSED(name))
+{
+}
+
+void wxDirDialog::SetPath(const wxString& path)
+{
+}
+
+int wxDirDialog::ShowModal()
+{
+ return wxID_OK;
+}
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+static int CALLBACK
+BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData)
+{
+ return 0;
+}
+
+
+static void ItemListFree(LPITEMIDLIST pidl)
+{
+ if ( pidl )
+ {
+ LPMALLOC pMalloc;
+ SHGetMalloc(&pMalloc);
+ if ( pMalloc )
+ {
+ pMalloc->Free(pidl);
+ pMalloc->Release();
+ }
+ else
+ {
+ wxLogLastError(wxT("SHGetMalloc"));
+ }
+ }
+}
+
+#else
+ #include "../generic/dirdlgg.cpp"
+#endif // compiler/platform on which the code here compiles
+
+#endif // wxUSE_DIRDLG
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: display.cpp
+// Purpose: Palm OS Implementation of wxDisplay class
+// Author: William Osborne
+// Modified by:
+// Created: 10.13.04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "display.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_DISPLAY
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+ #include "wx/dynarray.h"
+ #include "wx/frame.h"
+#endif
+
+#include "wx/dynload.h"
+
+#include "wx/display.h"
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+#ifdef _UNICODE
+ #define WINFUNC(x) _T(#x) L"W"
+#else
+ #define WINFUNC(x) #x "A"
+#endif
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+class wxDisplayInfo
+{
+public:
+ // handle of this monitor used by MonitorXXX() functions, never NULL
+ HMONITOR m_hmon;
+
+ // IDirectDraw object used to control this display, may be NULL
+ IDirectDraw2 *m_pDD2;
+
+ // DirectDraw GUID for this display, only valid when using DirectDraw
+ GUID m_guid;
+
+ // the entire area of this monitor in virtual screen coordinates
+ wxRect m_rect;
+
+ // the display device name for this monitor, empty initially and retrieved
+ // on demand by DoGetName()
+ wxString m_devName;
+
+ wxDisplayInfo() { m_hmon = NULL; m_pDD2 = NULL; }
+ ~wxDisplayInfo() { if ( m_pDD2 ) m_pDD2->Release(); }
+};
+
+WX_DECLARE_OBJARRAY(wxDisplayInfo, wxDisplayInfoArray);
+#include "wx/arrimpl.cpp"
+WX_DEFINE_OBJARRAY(wxDisplayInfoArray);
+
+// this module is used to cleanup gs_displays array
+class wxDisplayModule : public wxModule
+{
+public:
+ virtual bool OnInit() { return true; }
+ virtual void OnExit();
+
+ DECLARE_DYNAMIC_CLASS(wxDisplayModule)
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxDisplayModule, wxModule)
+
+// ----------------------------------------------------------------------------
+// globals
+// ----------------------------------------------------------------------------
+
+// this is not really MT-unsafe as wxDisplay is only going to be used from the
+// main thread, i.e. we consider that it's a GUI class and so don't protect it
+static wxDisplayInfoArray *gs_displays = NULL;
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ----------------------------------------------------------------------------
+// local functions
+// ----------------------------------------------------------------------------
+
+// initialize gs_displays using DirectX functions
+static bool DoInitDirectX()
+{
+ return false;
+}
+
+// initialize gs_displays using the standard Windows functions
+static void DoInitStdWindows()
+{
+}
+
+// this function must be called before accessing gs_displays array as it
+// creates and initializes it
+static void InitDisplays()
+{
+}
+
+// convert a DEVMODE to our wxVideoMode
+wxVideoMode ConvertToVideoMode(const DEVMODE& dm)
+{
+ return wxVideoMode(160,
+ 160,
+ 16,
+ 0);
+}
+
+// ----------------------------------------------------------------------------
+// wxDisplayModule
+// ----------------------------------------------------------------------------
+
+void wxDisplayModule::OnExit()
+{
+}
+
+// ---------------------------------------------------------------------------
+// wxDisplay
+// ---------------------------------------------------------------------------
+
+/* static */
+void wxDisplay::UseDirectX(bool useDX)
+{
+}
+
+// helper of GetFromPoint() and GetFromWindow()
+static int DisplayFromHMONITOR(HMONITOR hmon)
+{
+ return wxNOT_FOUND;
+}
+
+/* static */
+size_t wxDisplayBase::GetCount()
+{
+ return 0;
+}
+
+/* static */
+int wxDisplayBase::GetFromPoint ( const wxPoint& pt )
+{
+ return 0;
+}
+
+/* static */
+int wxDisplayBase::GetFromWindow(wxWindow *window)
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// wxDisplay ctor/dtor
+// ----------------------------------------------------------------------------
+
+wxDisplay::wxDisplay ( size_t n )
+ : wxDisplayBase ( n )
+{
+}
+
+wxDisplay::~wxDisplay()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxDisplay simple accessors
+// ----------------------------------------------------------------------------
+
+bool wxDisplay::IsOk() const
+{
+ return false;
+}
+
+wxRect wxDisplay::GetGeometry() const
+{
+ wxRect rect;
+
+ return rect;
+}
+
+wxString wxDisplay::GetName() const
+{
+ wxString ret;
+
+ return ret;
+}
+
+wxString wxDisplay::GetNameForEnumSettings() const
+{
+ wxString ret;
+
+ return ret;
+}
+
+// ----------------------------------------------------------------------------
+// video modes enumeration
+// ----------------------------------------------------------------------------
+
+wxArrayVideoModes
+wxDisplay::DoGetModesDirectX(const wxVideoMode& WXUNUSED(modeMatch)) const
+{
+ wxArrayVideoModes modes;
+
+ return modes;
+}
+
+wxArrayVideoModes
+wxDisplay::DoGetModesWindows(const wxVideoMode& modeMatch) const
+{
+ wxArrayVideoModes modes;
+
+ return modes;
+}
+
+wxArrayVideoModes wxDisplay::GetModes(const wxVideoMode& modeMatch) const
+{
+ return gs_useDirectX ? DoGetModesDirectX(modeMatch)
+ : DoGetModesWindows(modeMatch);
+}
+
+wxVideoMode wxDisplay::GetCurrentMode() const
+{
+ wxVideoMode mode;
+
+ return mode;
+}
+
+// ----------------------------------------------------------------------------
+// video mode switching
+// ----------------------------------------------------------------------------
+
+bool wxDisplay::DoChangeModeDirectX(const wxVideoMode& mode)
+{
+ return false;
+}
+
+bool wxDisplay::DoChangeModeWindows(const wxVideoMode& mode)
+{
+ return false;
+}
+
+bool wxDisplay::ChangeMode(const wxVideoMode& mode)
+{
+ return gs_useDirectX ? DoChangeModeDirectX(mode)
+ : DoChangeModeWindows(mode);
+}
+
+#endif // wxUSE_DISPLAY
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: dragimag.cpp
+// Purpose: wxDragImage
+// Author: William Osborne
+// Modified by:
+// Created: 10.13.04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "dragimag.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#if wxUSE_DRAGIMAGE
+
+#ifndef WX_PRECOMP
+#include <stdio.h>
+#include "wx/setup.h"
+#include "wx/window.h"
+#include "wx/dcclient.h"
+#include "wx/dcscreen.h"
+#include "wx/dcmemory.h"
+#include "wx/settings.h"
+#endif
+
+#include "wx/msw/private.h"
+#include "wx/log.h"
+#include "wx/intl.h"
+#include "wx/frame.h"
+#include "wx/image.h"
+
+#include "wx/palmos/dragimag.h"
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxDragImage, wxObject)
+
+#define GetHimageList() ((HIMAGELIST) m_hImageList)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxDragImage ctors/dtor
+// ----------------------------------------------------------------------------
+
+wxDragImage::wxDragImage()
+{
+}
+
+wxDragImage::~wxDragImage()
+{
+}
+
+void wxDragImage::Init()
+{
+}
+
+// Attributes
+////////////////////////////////////////////////////////////////////////////
+
+
+// Operations
+////////////////////////////////////////////////////////////////////////////
+
+// Create a drag image from a bitmap and optional cursor
+bool wxDragImage::Create(const wxBitmap& image, const wxCursor& cursor)
+{
+ return false;
+}
+
+// Create a drag image from an icon and optional cursor
+bool wxDragImage::Create(const wxIcon& image, const wxCursor& cursor)
+{
+ return false;
+}
+
+// Create a drag image from a string and optional cursor
+bool wxDragImage::Create(const wxString& str, const wxCursor& cursor)
+{
+ return false;
+}
+
+#if wxUSE_TREECTRL
+// Create a drag image for the given tree control item
+bool wxDragImage::Create(const wxTreeCtrl& treeCtrl, wxTreeItemId& id)
+{
+ return false;
+}
+#endif
+
+#if wxUSE_LISTCTRL
+// Create a drag image for the given list control item
+bool wxDragImage::Create(const wxListCtrl& listCtrl, long id)
+{
+ return false;
+}
+#endif
+
+// Begin drag
+bool wxDragImage::BeginDrag(const wxPoint& hotspot, wxWindow* window, bool fullScreen, wxRect* rect)
+{
+ return false;
+}
+
+// Begin drag. hotspot is the location of the drag position relative to the upper-left
+// corner of the image. This is full screen only. fullScreenRect gives the
+// position of the window on the screen, to restrict the drag to.
+bool wxDragImage::BeginDrag(const wxPoint& hotspot, wxWindow* window, wxWindow* fullScreenRect)
+{
+ return false;
+}
+
+// End drag
+bool wxDragImage::EndDrag()
+{
+ return false;
+}
+
+// Move the image: call from OnMouseMove. Pt is in window client coordinates if window
+// is non-NULL, or in screen coordinates if NULL.
+bool wxDragImage::Move(const wxPoint& pt)
+{
+ return false;
+}
+
+bool wxDragImage::Show()
+{
+ return false;
+}
+
+bool wxDragImage::Hide()
+{
+ return false;
+}
+
+
+#endif // wxUSE_DRAGIMAGE
--- /dev/null
+/*
+ * File: dummy.cc
+ * Purpose: See below
+ * Author: Julian Smart
+ * Created: 1993
+ * Updated:
+ * Copyright: (c) 1993, AIAI, University of Edinburgh
+ */
+
+/* A dummy file to include wx.h. If precompiling wx.h, I
+ * always start by compiling this and producing the PCH file.
+ * Then subsequent source files use the PCH file.
+ *
+ * If precompiling wx.h for wxWidgets and derived apps,
+ * link dummy.obj with your program (the MSC 7 linker complains otherwise).
+ *
+ * This is the only convenient way I found to use precompiled headers
+ * under MSC 7.
+ *
+ * This will produce a big PCH file.
+ */
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include "wx/palmos/msvcrt.h"
+
--- /dev/null
+/*
+ * File: dummydll.cc
+ * Purpose:
+ * Author: Julian Smart
+ * Created: 1993
+ * Updated:
+ * Copyright: (c) 1993, AIAI, University of Edinburgh
+ */
+
+/* static const char sccsid[] = "@(#)dummydll.cc 1.2 5/9/94"; */
+
+/*
+ * A dummy file to include wx.h. If precompiling wx.h, I
+ * always start by compiling this and producing the PCH file.
+ * Then subsequent source files use the PCH file.
+ */
+
+#include "wx/wxprec.h"
+
+// Foils optimizations in Visual C++ (see also app.cpp). Without it,
+// dummy.obj isn't linked and we get a linker error.
+#if defined(__VISUALC__)
+ char wxDummyChar=0;
+#endif
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/enhmeta.cpp
+// Purpose: implementation of wxEnhMetaFileXXX classes
+// Author: William Osborne
+// Modified by:
+// Created: 10.13.04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "enhmeta.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_ENH_METAFILE
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #include "wx/log.h"
+#endif //WX_PRECOMP
+
+#include "wx/metafile.h"
+#include "wx/clipbrd.h"
+
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxEnhMetaFile, wxObject)
+IMPLEMENT_ABSTRACT_CLASS(wxEnhMetaFileDC, wxDC)
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+#define GetEMF() ((HENHMETAFILE)m_hMF)
+#define GetEMFOf(mf) ((HENHMETAFILE)((mf).m_hMF))
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// we must pass NULL if the string is empty to metafile functions
+static inline const wxChar *GetMetaFileName(const wxString& fn)
+ { return !fn ? (wxChar *)NULL : fn.c_str(); }
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxEnhMetaFile
+// ----------------------------------------------------------------------------
+
+void wxEnhMetaFile::Assign(const wxEnhMetaFile& mf)
+{
+}
+
+void wxEnhMetaFile::Free()
+{
+}
+
+bool wxEnhMetaFile::Play(wxDC *dc, wxRect *rectBound)
+{
+ return false;
+}
+
+wxSize wxEnhMetaFile::GetSize() const
+{
+ wxSize size = wxDefaultSize;
+
+ return size;
+}
+
+bool wxEnhMetaFile::SetClipboard(int WXUNUSED(width), int WXUNUSED(height))
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxEnhMetaFileDC
+// ----------------------------------------------------------------------------
+
+wxEnhMetaFileDC::wxEnhMetaFileDC(const wxString& filename,
+ int width, int height,
+ const wxString& description)
+{
+}
+
+wxEnhMetaFile *wxEnhMetaFileDC::Close()
+{
+ return NULL;
+}
+
+wxEnhMetaFileDC::~wxEnhMetaFileDC()
+{
+}
+
+#if wxUSE_DRAG_AND_DROP
+
+// ----------------------------------------------------------------------------
+// wxEnhMetaFileDataObject
+// ----------------------------------------------------------------------------
+
+wxDataFormat
+wxEnhMetaFileDataObject::GetPreferredFormat(Direction WXUNUSED(dir)) const
+{
+ return wxDF_ENHMETAFILE;
+}
+
+size_t wxEnhMetaFileDataObject::GetFormatCount(Direction WXUNUSED(dir)) const
+{
+ // wxDF_ENHMETAFILE and wxDF_METAFILE
+ return 2;
+}
+
+void wxEnhMetaFileDataObject::GetAllFormats(wxDataFormat *formats,
+ Direction WXUNUSED(dir)) const
+{
+}
+
+size_t wxEnhMetaFileDataObject::GetDataSize(const wxDataFormat& format) const
+{
+ return 0u;
+}
+
+bool wxEnhMetaFileDataObject::GetDataHere(const wxDataFormat& format, void *buf) const
+{
+ return false;
+}
+
+bool wxEnhMetaFileDataObject::SetData(const wxDataFormat& format,
+ size_t WXUNUSED(len),
+ const void *buf)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxEnhMetaFileSimpleDataObject
+// ----------------------------------------------------------------------------
+
+size_t wxEnhMetaFileSimpleDataObject::GetDataSize() const
+{
+ return 0u;
+}
+
+bool wxEnhMetaFileSimpleDataObject::GetDataHere(void *buf) const
+{
+ return false;
+}
+
+bool wxEnhMetaFileSimpleDataObject::SetData(size_t WXUNUSED(len),
+ const void *buf)
+{
+ return false;
+}
+
+
+#endif // wxUSE_DRAG_AND_DROP
+
+#endif // wxUSE_ENH_METAFILE
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/evtloop.cpp
+// Purpose: implements wxEventLoop for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10.14.04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// License: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "evtloop.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/window.h"
+ #include "wx/app.h"
+#endif //WX_PRECOMP
+
+#include "wx/evtloop.h"
+
+#include "wx/tooltip.h"
+#include "wx/except.h"
+#include "wx/ptr_scpd.h"
+
+#if wxUSE_THREADS
+ #include "wx/thread.h"
+
+ // define the array of MSG strutures
+ WX_DECLARE_OBJARRAY(MSG, wxMsgArray);
+
+ #include "wx/arrimpl.cpp"
+
+ WX_DEFINE_OBJARRAY(wxMsgArray);
+#endif // wxUSE_THREADS
+
+// ----------------------------------------------------------------------------
+// helper class
+// ----------------------------------------------------------------------------
+
+// this object sets the wxEventLoop given to the ctor as the currently active
+// one and unsets it in its dtor
+class wxEventLoopActivator
+{
+public:
+ wxEventLoopActivator(wxEventLoop **pActive,
+ wxEventLoop *evtLoop)
+ {
+ m_pActive = pActive;
+ m_evtLoopOld = *pActive;
+ *pActive = evtLoop;
+ }
+
+ ~wxEventLoopActivator()
+ {
+ // restore the previously active event loop
+ *m_pActive = m_evtLoopOld;
+ }
+
+private:
+ wxEventLoop *m_evtLoopOld;
+ wxEventLoop **m_pActive;
+};
+
+// ============================================================================
+// wxEventLoop implementation
+// ============================================================================
+
+wxEventLoop *wxEventLoopBase::ms_activeLoop = NULL;
+
+// ----------------------------------------------------------------------------
+// ctor/dtor
+// ----------------------------------------------------------------------------
+
+wxEventLoop::wxEventLoop()
+{
+ m_shouldExit = false;
+ m_exitcode = 0;
+}
+
+// ----------------------------------------------------------------------------
+// wxEventLoop message processing
+// ----------------------------------------------------------------------------
+
+void wxEventLoop::ProcessMessage(WXMSG *msg)
+{
+}
+
+bool wxEventLoop::PreProcessMessage(WXMSG *msg)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxEventLoop running and exiting
+// ----------------------------------------------------------------------------
+
+bool wxEventLoop::IsRunning() const
+{
+ return true;
+}
+
+int wxEventLoop::Run()
+{
+ status_t error;
+ EventType event;
+
+ do {
+ wxTheApp && wxTheApp->ProcessIdle();
+
+ EvtGetEvent(&event, evtWaitForever);
+
+ if (SysHandleEvent(&event))
+ continue;
+
+ if (MenuHandleEvent(0, &event, &error))
+ continue;
+
+ FrmDispatchEvent(&event);
+
+ } while (event.eType != appStopEvent);
+
+ return 0;
+}
+
+void wxEventLoop::Exit(int rc)
+{
+ FrmCloseAllForms();
+
+ EventType AppStop;
+ AppStop.eType=appStopEvent;
+ EvtAddEventToQueue(&AppStop);
+}
+
+// ----------------------------------------------------------------------------
+// wxEventLoop message processing dispatching
+// ----------------------------------------------------------------------------
+
+bool wxEventLoop::Pending() const
+{
+ return false;
+}
+
+bool wxEventLoop::Dispatch()
+{
+ return false;
+}
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/fdrepdlg.cpp
+// Purpose: wxFindReplaceDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10.13.04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "mswfdrepdlg.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_FINDREPLDLG
+
+#ifndef WX_PRECOMP
+ #include "wx/intl.h"
+ #include "wx/log.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+#include "wx/fdrepdlg.h"
+
+// ----------------------------------------------------------------------------
+// functions prototypes
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxFindReplaceDialog, wxDialog)
+
+// ----------------------------------------------------------------------------
+// wxFindReplaceDialogImpl: the internals of wxFindReplaceDialog
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxFindReplaceDialogImpl
+{
+public:
+ wxFindReplaceDialogImpl(wxFindReplaceDialog *dialog, int flagsWX);
+ ~wxFindReplaceDialogImpl();
+
+ void InitFindWhat(const wxString& str);
+ void InitReplaceWith(const wxString& str);
+
+ void SubclassDialog(HWND hwnd);
+
+ static UINT GetFindDialogMessage() { return ms_msgFindDialog; }
+
+ // only for passing to ::FindText or ::ReplaceText
+ FINDREPLACE *GetPtrFindReplace() { return &m_findReplace; }
+
+ // set/query the "closed by user" flag
+ void SetClosedByUser() { m_wasClosedByUser = TRUE; }
+ bool WasClosedByUser() const { return m_wasClosedByUser; }
+
+private:
+ void InitString(const wxString& str, LPTSTR *ppStr, WORD *pLen);
+
+ // the owner of the dialog
+ HWND m_hwndOwner;
+
+ // the previous window proc of our owner
+ WNDPROC m_oldParentWndProc;
+
+ // the find replace data used by the dialog
+ FINDREPLACE m_findReplace;
+
+ // TRUE if the user closed us, FALSE otherwise
+ bool m_wasClosedByUser;
+
+ // registered Message for Dialog
+ static UINT ms_msgFindDialog;
+
+ DECLARE_NO_COPY_CLASS(wxFindReplaceDialogImpl)
+};
+
+UINT wxFindReplaceDialogImpl::ms_msgFindDialog = 0;
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxFindReplaceDialogImpl
+// ----------------------------------------------------------------------------
+
+wxFindReplaceDialogImpl::wxFindReplaceDialogImpl(wxFindReplaceDialog *dialog,
+ int flagsWX)
+{
+}
+
+void wxFindReplaceDialogImpl::InitString(const wxString& str,
+ LPTSTR *ppStr, WORD *pLen)
+{
+}
+
+void wxFindReplaceDialogImpl::InitFindWhat(const wxString& str)
+{
+}
+
+void wxFindReplaceDialogImpl::InitReplaceWith(const wxString& str)
+{
+}
+
+void wxFindReplaceDialogImpl::SubclassDialog(HWND hwnd)
+{
+}
+
+wxFindReplaceDialogImpl::~wxFindReplaceDialogImpl()
+{
+}
+
+// ============================================================================
+// wxFindReplaceDialog implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxFindReplaceDialog ctors/dtor
+// ----------------------------------------------------------------------------
+
+void wxFindReplaceDialog::Init()
+{
+}
+
+wxFindReplaceDialog::wxFindReplaceDialog(wxWindow *parent,
+ wxFindReplaceData *data,
+ const wxString &title,
+ int flags)
+ : wxFindReplaceDialogBase(parent, data, title, flags)
+{
+}
+
+wxFindReplaceDialog::~wxFindReplaceDialog()
+{
+}
+
+bool wxFindReplaceDialog::Create(wxWindow *parent,
+ wxFindReplaceData *data,
+ const wxString &title,
+ int flags)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxFindReplaceData show/hide
+// ----------------------------------------------------------------------------
+
+bool wxFindReplaceDialog::Show(bool show)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxFindReplaceDialog title handling
+// ----------------------------------------------------------------------------
+
+void wxFindReplaceDialog::SetTitle( const wxString& title)
+{
+}
+
+wxString wxFindReplaceDialog::GetTitle() const
+{
+ return wxString;
+}
+
+// ----------------------------------------------------------------------------
+// wxFindReplaceDialog position/size
+// ----------------------------------------------------------------------------
+
+void wxFindReplaceDialog::DoSetSize(int WXUNUSED(x), int WXUNUSED(y),
+ int WXUNUSED(width), int WXUNUSED(height),
+ int WXUNUSED(sizeFlags))
+{
+ // ignore - we can't change the size of this standard dialog
+ return;
+}
+
+// NB: of course, both of these functions are completely bogus, but it's better
+// than nothing
+void wxFindReplaceDialog::DoGetSize(int *width, int *height) const
+{
+}
+
+void wxFindReplaceDialog::DoGetClientSize(int *width, int *height) const
+{
+}
+
+#endif // wxUSE_FINDREPLDLG
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/filedlg.cpp
+// Purpose: wxFileDialog
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "filedlg.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_FILEDLG && !defined(__SMARTPHONE__)
+
+#ifndef WX_PRECOMP
+ #include "wx/utils.h"
+ #include "wx/msgdlg.h"
+ #include "wx/filedlg.h"
+ #include "wx/filefn.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+ #include "wx/app.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "wx/filename.h"
+#include "wx/tokenzr.h"
+
+#ifndef OFN_EXPLORER
+ #define OFN_EXPLORER 0x00080000
+#endif
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+#define wxMAXPATH 1024
+
+# define wxMAXFILE 1024
+
+# define wxMAXEXT 5
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+IMPLEMENT_CLASS(wxFileDialog, wxFileDialogBase)
+
+// ----------------------------------------------------------------------------
+// wxFileDialog
+// ----------------------------------------------------------------------------
+
+wxFileDialog::wxFileDialog(wxWindow *parent,
+ const wxString& message,
+ const wxString& defaultDir,
+ const wxString& defaultFileName,
+ const wxString& wildCard,
+ long style,
+ const wxPoint& pos)
+ :wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos)
+
+{
+}
+
+void wxFileDialog::GetPaths(wxArrayString& paths) const
+{
+}
+
+void wxFileDialog::GetFilenames(wxArrayString& files) const
+{
+}
+
+void wxFileDialog::SetPath(const wxString& path)
+{
+}
+
+int wxFileDialog::ShowModal()
+{
+ return wxID_CANCEL;
+}
+
+#endif // wxUSE_FILEDLG
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/font.cpp
+// Purpose: wxFont class
+// Author: William Osborne
+// Modified by:
+// Created: 10/14/04
+// RCS-ID: $Id:
+// Copyright: (c) wxWidgets team
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "font.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/setup.h"
+ #include "wx/list.h"
+ #include "wx/utils.h"
+ #include "wx/app.h"
+ #include "wx/font.h"
+ #include "wx/log.h"
+ #include "wx/encinfo.h"
+#endif // WX_PRECOMP
+
+#include "wx/fontutil.h"
+#include "wx/fontmap.h"
+
+#include "wx/tokenzr.h"
+
+#if wxUSE_EXTENDED_RTTI
+
+wxBEGIN_ENUM( wxFontFamily )
+ wxENUM_MEMBER( wxDEFAULT )
+ wxENUM_MEMBER( wxDECORATIVE )
+ wxENUM_MEMBER( wxROMAN )
+ wxENUM_MEMBER( wxSCRIPT )
+ wxENUM_MEMBER( wxSWISS )
+ wxENUM_MEMBER( wxMODERN )
+ wxENUM_MEMBER( wxTELETYPE )
+wxEND_ENUM( wxFontFamily )
+
+wxBEGIN_ENUM( wxFontStyle )
+ wxENUM_MEMBER( wxNORMAL )
+ wxENUM_MEMBER( wxITALIC )
+ wxENUM_MEMBER( wxSLANT )
+wxEND_ENUM( wxFontStyle )
+
+wxBEGIN_ENUM( wxFontWeight )
+ wxENUM_MEMBER( wxNORMAL )
+ wxENUM_MEMBER( wxLIGHT )
+ wxENUM_MEMBER( wxBOLD )
+wxEND_ENUM( wxFontWeight )
+
+IMPLEMENT_DYNAMIC_CLASS_WITH_COPY_XTI(wxFont, wxGDIObject,"wx/font.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxFont)
+ wxPROPERTY( Size,int, SetPointSize, GetPointSize, 12 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Family, int , SetFamily, GetFamily, (int)wxDEFAULT , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // wxFontFamily
+ wxPROPERTY( Style, int , SetStyle, GetStyle, (int)wxNORMAL , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // wxFontStyle
+ wxPROPERTY( Weight, int , SetWeight, GetWeight, (int)wxNORMAL , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // wxFontWeight
+ wxPROPERTY( Underlined, bool , SetUnderlined, GetUnderlined, false , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Face, wxString , SetFaceName, GetFaceName, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Encoding, wxFontEncoding , SetEncoding, GetEncoding, wxFONTENCODING_DEFAULT , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+wxEND_PROPERTIES_TABLE()
+
+wxCONSTRUCTOR_6( wxFont , int , Size , int , Family , int , Style , int , Weight , bool , Underlined , wxString , Face )
+
+wxBEGIN_HANDLERS_TABLE(wxFont)
+wxEND_HANDLERS_TABLE()
+
+#else
+ IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
+#endif
+
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// wxFontRefData - the internal description of the font
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxFontRefData: public wxGDIRefData
+{
+public:
+ // constructors
+ wxFontRefData()
+ {
+ Init(-1, wxSize(0, 0), FALSE, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL,
+ wxFONTWEIGHT_NORMAL, FALSE, wxEmptyString,
+ wxFONTENCODING_DEFAULT);
+ }
+
+ wxFontRefData(int size,
+ const wxSize& pixelSize,
+ bool sizeUsingPixels,
+ int family,
+ int style,
+ int weight,
+ bool underlined,
+ const wxString& faceName,
+ wxFontEncoding encoding)
+ {
+ Init(size, pixelSize, sizeUsingPixels, family, style, weight,
+ underlined, faceName, encoding);
+ }
+
+ wxFontRefData(const wxNativeFontInfo& info, WXHFONT hFont = 0)
+ {
+ Init(info, hFont);
+ }
+
+ wxFontRefData(const wxFontRefData& data)
+ {
+ if ( data.m_nativeFontInfoOk )
+ {
+ Init(data.m_nativeFontInfo);
+ }
+ else
+ {
+ Init(data.m_pointSize, data.m_pixelSize, data.m_sizeUsingPixels,
+ data.m_family, data.m_style, data.m_weight,
+ data.m_underlined, data.m_faceName, data.m_encoding);
+ }
+ }
+
+ virtual ~wxFontRefData();
+
+ // operations
+ bool Alloc(wxFont *font);
+
+ void Free();
+
+ // all wxFont accessors
+ int GetPointSize() const
+ {
+ return m_nativeFontInfoOk ? m_nativeFontInfo.GetPointSize()
+ : m_pointSize;
+ }
+
+ wxSize GetPixelSize() const
+ {
+ return m_nativeFontInfoOk ? m_nativeFontInfo.GetPixelSize()
+ : m_pixelSize;
+ }
+
+ bool IsUsingSizeInPixels() const
+ {
+ return m_nativeFontInfoOk ? true : m_sizeUsingPixels;
+ }
+
+ int GetFamily() const
+ {
+ return m_family;
+ }
+
+ int GetStyle() const
+ {
+ return m_nativeFontInfoOk ? m_nativeFontInfo.GetStyle()
+ : m_style;
+ }
+
+ int GetWeight() const
+ {
+ return m_nativeFontInfoOk ? m_nativeFontInfo.GetWeight()
+ : m_weight;
+ }
+
+ bool GetUnderlined() const
+ {
+ return m_nativeFontInfoOk ? m_nativeFontInfo.GetUnderlined()
+ : m_underlined;
+ }
+
+ wxString GetFaceName() const
+ {
+ wxString s;
+ if ( m_nativeFontInfoOk )
+ s = m_nativeFontInfo.GetFaceName();
+ else
+ s = m_faceName;
+
+ return s;
+ }
+
+ wxFontEncoding GetEncoding() const
+ {
+ return m_nativeFontInfoOk ? m_nativeFontInfo.GetEncoding()
+ : m_encoding;
+ }
+
+ WXHFONT GetHFONT() const { return m_hFont; }
+
+ // ... and setters
+ void SetPointSize(int pointSize)
+ {
+ if ( m_nativeFontInfoOk )
+ {
+ m_nativeFontInfo.SetPointSize(pointSize);
+ }
+ else
+ {
+ m_pointSize = pointSize;
+ m_sizeUsingPixels = FALSE;
+ }
+ }
+
+ void SetPixelSize(const wxSize& pixelSize)
+ {
+ if ( m_nativeFontInfoOk )
+ {
+ m_nativeFontInfo.SetPixelSize(pixelSize);
+ }
+ else
+ {
+ m_pixelSize = pixelSize;
+ m_sizeUsingPixels = TRUE;
+ }
+ }
+
+ void SetFamily(int family)
+ {
+ m_family = family;
+ }
+
+ void SetStyle(int style)
+ {
+ if ( m_nativeFontInfoOk )
+ m_nativeFontInfo.SetStyle((wxFontStyle)style);
+ else
+ m_style = style;
+ }
+
+ void SetWeight(int weight)
+ {
+ if ( m_nativeFontInfoOk )
+ m_nativeFontInfo.SetWeight((wxFontWeight)weight);
+ else
+ m_weight = weight;
+ }
+
+ void SetFaceName(const wxString& faceName)
+ {
+ if ( m_nativeFontInfoOk )
+ m_nativeFontInfo.SetFaceName(faceName);
+ else
+ m_faceName = faceName;
+ }
+
+ void SetUnderlined(bool underlined)
+ {
+ if ( m_nativeFontInfoOk )
+ m_nativeFontInfo.SetUnderlined(underlined);
+ else
+ m_underlined = underlined;
+ }
+
+ void SetEncoding(wxFontEncoding encoding)
+ {
+ if ( m_nativeFontInfoOk )
+ m_nativeFontInfo.SetEncoding(encoding);
+ else
+ m_encoding = encoding;
+ }
+
+ // native font info tests
+ bool HasNativeFontInfo() const { return m_nativeFontInfoOk; }
+
+ const wxNativeFontInfo& GetNativeFontInfo() const
+ { return m_nativeFontInfo; }
+
+protected:
+ // common part of all ctors
+ void Init(int size,
+ const wxSize& pixelSize,
+ bool sizeUsingPixels,
+ int family,
+ int style,
+ int weight,
+ bool underlined,
+ const wxString& faceName,
+ wxFontEncoding encoding);
+
+ void Init(const wxNativeFontInfo& info, WXHFONT hFont = 0);
+
+ // font characterstics
+ int m_pointSize;
+ wxSize m_pixelSize;
+ bool m_sizeUsingPixels;
+ int m_family;
+ int m_style;
+ int m_weight;
+ bool m_underlined;
+ wxString m_faceName;
+ wxFontEncoding m_encoding;
+
+ // Windows font handle
+ WXHFONT m_hFont;
+
+ // Native font info
+ wxNativeFontInfo m_nativeFontInfo;
+ bool m_nativeFontInfoOk;
+};
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxFontRefData
+// ----------------------------------------------------------------------------
+
+void wxFontRefData::Init(int pointSize,
+ const wxSize& pixelSize,
+ bool sizeUsingPixels,
+ int family,
+ int style,
+ int weight,
+ bool underlined,
+ const wxString& faceName,
+ wxFontEncoding encoding)
+{
+}
+
+void wxFontRefData::Init(const wxNativeFontInfo& info, WXHFONT hFont)
+{
+}
+
+wxFontRefData::~wxFontRefData()
+{
+}
+
+bool wxFontRefData::Alloc(wxFont *font)
+{
+ return false;
+}
+
+void wxFontRefData::Free()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxNativeFontInfo
+// ----------------------------------------------------------------------------
+
+void wxNativeFontInfo::SetPixelSize(const wxSize& pixelSize)
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxFont
+// ----------------------------------------------------------------------------
+
+void wxFont::Init()
+{
+}
+
+bool wxFont::Create(const wxNativeFontInfo& info, WXHFONT hFont)
+{
+ return false;
+}
+
+wxFont::wxFont(const wxString& fontdesc)
+{
+}
+
+/* Constructor for a font. Note that the real construction is done
+ * in wxDC::SetFont, when information is available about scaling etc.
+ */
+bool wxFont::DoCreate(int pointSize,
+ const wxSize& pixelSize,
+ bool sizeUsingPixels,
+ int family,
+ int style,
+ int weight,
+ bool underlined,
+ const wxString& faceName,
+ wxFontEncoding encoding)
+{
+ return false;
+}
+
+wxFont::~wxFont()
+{
+}
+
+// ----------------------------------------------------------------------------
+// real implementation
+// ----------------------------------------------------------------------------
+
+bool wxFont::RealizeResource()
+{
+ return false;
+}
+
+bool wxFont::FreeResource(bool WXUNUSED(force))
+{
+ return false;
+}
+
+WXHANDLE wxFont::GetResourceHandle() const
+{
+ return (WXHANDLE)0;
+}
+
+WXHFONT wxFont::GetHFONT() const
+{
+ return 0;
+}
+
+bool wxFont::IsFree() const
+{
+ return false;
+}
+
+void wxFont::Unshare()
+{
+}
+
+// ----------------------------------------------------------------------------
+// change font attribute: we recreate font when doing it
+// ----------------------------------------------------------------------------
+
+void wxFont::SetPointSize(int pointSize)
+{
+}
+
+void wxFont::SetPixelSize(const wxSize& pixelSize)
+{
+}
+
+void wxFont::SetFamily(int family)
+{
+}
+
+void wxFont::SetStyle(int style)
+{
+}
+
+void wxFont::SetWeight(int weight)
+{
+}
+
+void wxFont::SetFaceName(const wxString& faceName)
+{
+}
+
+void wxFont::SetUnderlined(bool underlined)
+{
+}
+
+void wxFont::SetEncoding(wxFontEncoding encoding)
+{
+}
+
+void wxFont::DoSetNativeFontInfo(const wxNativeFontInfo& info)
+{
+}
+
+// ----------------------------------------------------------------------------
+// accessors
+// ----------------------------------------------------------------------------
+
+int wxFont::GetPointSize() const
+{
+ return 0;
+}
+
+wxSize wxFont::GetPixelSize() const
+{
+ return wxSize(0,0);
+}
+
+bool wxFont::IsUsingSizeInPixels() const
+{
+ return false;
+}
+
+int wxFont::GetFamily() const
+{
+ return wxFONTFAMILY_ROMAN;
+}
+
+int wxFont::GetStyle() const
+{
+ return wxFONTSTYLE_NORMAL;
+}
+
+int wxFont::GetWeight() const
+{
+ return wxFONTWEIGHT_NORMAL;
+}
+
+bool wxFont::GetUnderlined() const
+{
+ return false;
+}
+
+wxString wxFont::GetFaceName() const
+{
+ return wxEmptyString;
+}
+
+wxFontEncoding wxFont::GetEncoding() const
+{
+ return wxFONTENCODING_SYSTEM;
+}
+
+const wxNativeFontInfo *wxFont::GetNativeFontInfo() const
+{
+ return NULL;
+}
+
+bool wxFont::IsFixedWidth() const
+{
+ return false;
+}
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/fontdlg.cpp
+// Purpose: wxFontDialog class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "fontdlg.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_FONTDLG
+
+#ifndef WX_PRECOMP
+ #include "wx/defs.h"
+ #include "wx/utils.h"
+ #include "wx/dialog.h"
+#endif
+
+#include "wx/fontdlg.h"
+#include "wx/palmos/private.h"
+
+#include "wx/cmndata.h"
+#include "wx/log.h"
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxFontDialog
+// ----------------------------------------------------------------------------
+
+int wxFontDialog::ShowModal()
+{
+ return wxID_CANCEL;
+}
+
+#endif // wxUSE_FONTDLG
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/fontenum.cpp
+// Purpose: wxFontEnumerator class for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "fontenum.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_FONTMAP
+
+#ifndef WX_PRECOMP
+ #include "wx/font.h"
+ #include "wx/encinfo.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+#include "wx/fontutil.h"
+#include "wx/fontenum.h"
+#include "wx/fontmap.h"
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+// the helper class which calls ::EnumFontFamilies() and whose OnFont() is
+// called from the callback passed to this function and, in its turn, calls the
+// appropariate wxFontEnumerator method
+class wxFontEnumeratorHelper
+{
+public:
+ wxFontEnumeratorHelper(wxFontEnumerator *fontEnum);
+
+ // control what exactly are we enumerating
+ // we enumerate fonts with given enocding
+ bool SetEncoding(wxFontEncoding encoding);
+ // we enumerate fixed-width fonts
+ void SetFixedOnly(bool fixedOnly) { m_fixedOnly = fixedOnly; }
+ // we enumerate the encodings available in this family
+ void SetFamily(const wxString& family);
+
+ // call to start enumeration
+ void DoEnumerate();
+
+ // called by our font enumeration proc
+ bool OnFont(const LPLOGFONT lf, const LPTEXTMETRIC tm) const;
+
+private:
+ // the object we forward calls to OnFont() to
+ wxFontEnumerator *m_fontEnum;
+
+ // if != -1, enum only fonts which have this encoding
+ int m_charset;
+
+ // if not empty, enum only the fonts with this facename
+ wxString m_facename;
+
+ // if not empty, enum only the fonts in this family
+ wxString m_family;
+
+ // if TRUE, enum only fixed fonts
+ bool m_fixedOnly;
+
+ // if TRUE, we enumerate the encodings, not fonts
+ bool m_enumEncodings;
+
+ // the list of charsets we already found while enumerating charsets
+ wxArrayInt m_charsets;
+
+ // the list of facenames we already found while enumerating facenames
+ wxArrayString m_facenames;
+
+ DECLARE_NO_COPY_CLASS(wxFontEnumeratorHelper)
+};
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+#ifndef __WXMICROWIN__
+int CALLBACK wxFontEnumeratorProc(LPLOGFONT lplf, LPTEXTMETRIC lptm,
+ DWORD dwStyle, LONG lParam);
+#endif
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxFontEnumeratorHelper
+// ----------------------------------------------------------------------------
+
+wxFontEnumeratorHelper::wxFontEnumeratorHelper(wxFontEnumerator *fontEnum)
+{
+}
+
+void wxFontEnumeratorHelper::SetFamily(const wxString& family)
+{
+}
+
+bool wxFontEnumeratorHelper::SetEncoding(wxFontEncoding encoding)
+{
+ return FALSE;
+}
+
+#define wxFONTENUMPROC FONTENUMPROC
+
+void wxFontEnumeratorHelper::DoEnumerate()
+{
+}
+
+bool wxFontEnumeratorHelper::OnFont(const LPLOGFONT lf,
+ const LPTEXTMETRIC tm) const
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxFontEnumerator
+// ----------------------------------------------------------------------------
+
+bool wxFontEnumerator::EnumerateFacenames(wxFontEncoding encoding,
+ bool fixedWidthOnly)
+{
+ return false;
+}
+
+bool wxFontEnumerator::EnumerateEncodings(const wxString& family)
+{
+ return false;
+}
+
+#endif // wxUSE_FONTMAP
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/fontutil.cpp
+// Purpose: font-related helper functions
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "fontutil.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #include "wx/log.h"
+ #include "wx/intl.h"
+ #include "wx/encinfo.h"
+#endif //WX_PRECOMP
+
+#include "wx/fontutil.h"
+#include "wx/fontmap.h"
+
+#include "wx/tokenzr.h"
+
+#ifndef HANGUL_CHARSET
+# define HANGUL_CHARSET 129
+#endif
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxNativeEncodingInfo
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// helper functions
+// ----------------------------------------------------------------------------
+
+bool wxGetNativeFontEncoding(wxFontEncoding encoding,
+ wxNativeEncodingInfo *info)
+{
+ return false;
+}
+
+bool wxTestFontEncoding(const wxNativeEncodingInfo& info)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxFontEncoding <-> CHARSET_XXX
+// ----------------------------------------------------------------------------
+
+wxFontEncoding wxGetFontEncFromCharSet(int cs)
+{
+ return wxFONTENCODING_SYSTEM;
+}
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/frame.cpp
+// Purpose: wxFrame
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "frame.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/frame.h"
+ #include "wx/app.h"
+ #include "wx/menu.h"
+ #include "wx/utils.h"
+ #include "wx/dialog.h"
+ #include "wx/settings.h"
+ #include "wx/dcclient.h"
+ #include "wx/mdi.h"
+ #include "wx/panel.h"
+#endif // WX_PRECOMP
+
+#if wxUSE_STATUSBAR
+ #include "wx/statusbr.h"
+ #include "wx/generic/statusbr.h"
+#endif // wxUSE_STATUSBAR
+
+#if wxUSE_TOOLBAR
+ #include "wx/toolbar.h"
+#endif // wxUSE_TOOLBAR
+
+#include "wx/menuitem.h"
+#include "wx/log.h"
+
+#ifdef __WXUNIVERSAL__
+ #include "wx/univ/theme.h"
+ #include "wx/univ/colschem.h"
+#endif // __WXUNIVERSAL__
+
+// ----------------------------------------------------------------------------
+// globals
+// ----------------------------------------------------------------------------
+
+#if wxUSE_MENUS_NATIVE
+ extern wxMenu *wxCurrentPopupMenu;
+#endif // wxUSE_MENUS_NATIVE
+
+// ----------------------------------------------------------------------------
+// event tables
+// ----------------------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(wxFrame, wxFrameBase)
+ EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)
+ EVT_PAINT(wxFrame::OnPaint)
+END_EVENT_TABLE()
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxFrameStyle )
+
+wxBEGIN_FLAGS( wxFrameStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ // frame styles
+ wxFLAGS_MEMBER(wxSTAY_ON_TOP)
+ wxFLAGS_MEMBER(wxCAPTION)
+ wxFLAGS_MEMBER(wxTHICK_FRAME)
+ wxFLAGS_MEMBER(wxSYSTEM_MENU)
+ wxFLAGS_MEMBER(wxRESIZE_BORDER)
+ wxFLAGS_MEMBER(wxRESIZE_BOX)
+ wxFLAGS_MEMBER(wxCLOSE_BOX)
+ wxFLAGS_MEMBER(wxMAXIMIZE_BOX)
+ wxFLAGS_MEMBER(wxMINIMIZE_BOX)
+
+ wxFLAGS_MEMBER(wxFRAME_TOOL_WINDOW)
+ wxFLAGS_MEMBER(wxFRAME_FLOAT_ON_PARENT)
+
+ wxFLAGS_MEMBER(wxFRAME_SHAPED)
+
+wxEND_FLAGS( wxFrameStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxFrame, wxTopLevelWindow,"wx/frame.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxFrame)
+ wxEVENT_PROPERTY( Menu , wxEVT_COMMAND_MENU_SELECTED , wxCommandEvent)
+
+ wxPROPERTY( Title,wxString, SetTitle, GetTitle, wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxFrameStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+ wxPROPERTY( MenuBar , wxMenuBar * , SetMenuBar , GetMenuBar , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxFrame)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_6( wxFrame , wxWindow* , Parent , wxWindowID , Id , wxString , Title , wxPoint , Position , wxSize , Size , long , WindowStyle)
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
+#endif
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// static class members
+// ----------------------------------------------------------------------------
+
+#if wxUSE_STATUSBAR
+ #if wxUSE_NATIVE_STATUSBAR
+ bool wxFrame::m_useNativeStatusBar = TRUE;
+ #else
+ bool wxFrame::m_useNativeStatusBar = FALSE;
+ #endif
+#endif // wxUSE_NATIVE_STATUSBAR
+
+// ----------------------------------------------------------------------------
+// creation/destruction
+// ----------------------------------------------------------------------------
+
+void wxFrame::Init()
+{
+ StatusBar=NULL;
+}
+
+bool wxFrame::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name, this) )
+ return false;
+
+ return true;
+}
+
+wxFrame::~wxFrame()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxFrame client size calculations
+// ----------------------------------------------------------------------------
+
+void wxFrame::DoSetClientSize(int width, int height)
+{
+}
+
+// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc.
+void wxFrame::DoGetClientSize(int *x, int *y) const
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxFrame: various geometry-related functions
+// ----------------------------------------------------------------------------
+
+void wxFrame::Raise()
+{
+}
+
+// generate an artificial resize event
+void wxFrame::SendSizeEvent()
+{
+}
+
+#if wxUSE_STATUSBAR
+wxStatusBar *wxFrame::OnCreateStatusBar(int number,
+ long style,
+ wxWindowID id,
+ const wxString& name)
+{
+ wxStatusBar *statusBar = NULL;
+
+#if wxUSE_NATIVE_STATUSBAR
+ if ( !UsesNativeStatusBar() )
+ {
+ statusBar = (wxStatusBar *)new wxStatusBarGeneric(this, id, style);
+ }
+ else
+#endif
+ {
+ statusBar = new wxStatusBar(this, id, style, name);
+ }
+
+ statusBar->SetFieldsCount(number);
+
+ StatusBar=statusBar;
+ return statusBar;
+
+ return NULL;
+}
+
+void wxFrame::PositionStatusBar()
+{
+}
+#endif // wxUSE_STATUSBAR
+
+#if wxUSE_MENUS_NATIVE
+
+void wxFrame::AttachMenuBar(wxMenuBar *menubar)
+{
+ wxFrameBase::AttachMenuBar(menubar);
+
+ if ( !menubar )
+ {
+ // actually remove the menu from the frame
+ m_hMenu = (WXHMENU)0;
+ }
+}
+
+void wxFrame::InternalSetMenuBar()
+{
+}
+
+bool wxFrame::HandleMenuOpen()
+{
+ if(!m_frameMenuBar)
+ return false;
+
+ m_frameMenuBar->LoadMenu();
+ return true;
+}
+
+bool wxFrame::HandleMenuSelect(int ItemID)
+{
+ if (!m_frameMenuBar)
+ return false;
+
+ int item=m_frameMenuBar->ProcessCommand(ItemID);
+ if(item==-1)
+ return false;
+
+ wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, item);
+ commandEvent.SetEventObject(this);
+
+ GetEventHandler()->ProcessEvent(commandEvent);
+ return true;
+}
+
+#endif // wxUSE_MENUS_NATIVE
+
+// Responds to colour changes, and passes event on to children.
+void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
+{
+}
+
+void wxFrame::OnPaint(wxPaintEvent& event)
+{
+ #if wxUSE_STATUSBAR
+ if(StatusBar!=NULL)
+ StatusBar->DrawStatusBar();
+ #endif
+}
+
+// Pass TRUE to show full screen, FALSE to restore.
+bool wxFrame::ShowFullScreen(bool show, long style)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// tool/status bar stuff
+// ----------------------------------------------------------------------------
+
+#if wxUSE_TOOLBAR
+
+wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name)
+{
+ return NULL;
+}
+
+void wxFrame::PositionToolBar()
+{
+}
+
+#endif // wxUSE_TOOLBAR
+
+// ----------------------------------------------------------------------------
+// frame state (iconized/maximized/...)
+// ----------------------------------------------------------------------------
+
+// propagate our state change to all child frames: this allows us to emulate X
+// Windows behaviour where child frames float independently of the parent one
+// on the desktop, but are iconized/restored with it
+void wxFrame::IconizeChildFrames(bool bIconize)
+{
+}
+
+WXHICON wxFrame::GetDefaultIcon() const
+{
+ // we don't have any standard icons (any more)
+ return (WXHICON)0;
+}
+
+// ===========================================================================
+// message processing
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// preprocessing
+// ---------------------------------------------------------------------------
+
+bool wxFrame::MSWTranslateMessage(WXMSG* pMsg)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// our private (non virtual) message handlers
+// ---------------------------------------------------------------------------
+
+bool wxFrame::HandlePaint()
+{
+ return false;
+}
+
+bool wxFrame::HandleSize(int x, int y, WXUINT id)
+{
+ return false;
+}
+
+bool wxFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// the window proc for wxFrame
+// ---------------------------------------------------------------------------
+
+WXLRESULT wxFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxFrame size management: we exclude the areas taken by menu/status/toolbars
+// from the client area, so the client area is what's really available for the
+// frame contents
+// ----------------------------------------------------------------------------
+
+// get the origin of the client area in the client coordinates
+wxPoint wxFrame::GetClientAreaOrigin() const
+{
+ wxPoint pt;
+ return pt;
+}
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/gauge.cpp
+// Purpose: wxGauge class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "gauge.h"
+#endif
+
+// 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_GAUGE
+
+#include "wx/gauge.h"
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+#ifndef PBS_SMOOTH
+ #define PBS_SMOOTH 0x01
+#endif
+
+#ifndef PBS_VERTICAL
+ #define PBS_VERTICAL 0x04
+#endif
+
+#ifndef PBM_SETBARCOLOR
+ #define PBM_SETBARCOLOR (WM_USER+9)
+#endif
+
+#ifndef PBM_SETBKCOLOR
+ #define PBM_SETBKCOLOR 0x2001
+#endif
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxGaugeStyle )
+
+wxBEGIN_FLAGS( wxGaugeStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxGA_HORIZONTAL)
+ wxFLAGS_MEMBER(wxGA_VERTICAL)
+ wxFLAGS_MEMBER(wxGA_PROGRESSBAR)
+ wxFLAGS_MEMBER(wxGA_SMOOTH)
+
+wxEND_FLAGS( wxGaugeStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxGauge, wxControl,"wx/gauge.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxGauge)
+ wxPROPERTY( Value , int , SetValue, GetValue, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Range , int , SetRange, GetRange, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( ShadowWidth , int , SetShadowWidth, GetShadowWidth, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( BezelFace , int , SetBezelFace, GetBezelFace, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxGaugeStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxGauge)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_6( wxGauge , wxWindow* , Parent , wxWindowID , Id , int , Range , wxPoint , Position , wxSize , Size , long , WindowStyle )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl)
+#endif
+
+// ============================================================================
+// wxGauge implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxGauge creation
+// ----------------------------------------------------------------------------
+
+bool wxGauge::Create(wxWindow *parent,
+ wxWindowID id,
+ int range,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+WXDWORD wxGauge::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// wxGauge geometry
+// ----------------------------------------------------------------------------
+
+wxSize wxGauge::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+// ----------------------------------------------------------------------------
+// wxGauge setters
+// ----------------------------------------------------------------------------
+
+void wxGauge::SetRange(int r)
+{
+}
+
+void wxGauge::SetValue(int pos)
+{
+}
+
+bool wxGauge::SetForegroundColour(const wxColour& col)
+{
+ return false;
+}
+
+bool wxGauge::SetBackgroundColour(const wxColour& col)
+{
+ return false;
+}
+
+#endif // wxUSE_GAUGE
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/gdiimage.cpp
+// Purpose: wxGDIImage implementation
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "gdiimage.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #include "wx/log.h"
+#endif // WX_PRECOMP
+
+#include "wx/app.h"
+
+#include "wx/bitmap.h"
+#include "wx/palmos/gdiimage.h"
+
+#if wxUSE_WXDIB
+#include "wx/palmos/dib.h"
+#endif
+
+#include "wx/file.h"
+
+#include "wx/listimpl.cpp"
+WX_DEFINE_LIST(wxGDIImageHandlerList);
+
+// ----------------------------------------------------------------------------
+// auxiliary functions
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+wxGDIImageHandlerList wxGDIImage::ms_handlers;
+
+// ----------------------------------------------------------------------------
+// wxGDIImage functions forwarded to wxGDIImageRefData
+// ----------------------------------------------------------------------------
+
+bool wxGDIImage::FreeResource(bool WXUNUSED(force))
+{
+ return false;
+}
+
+WXHANDLE wxGDIImage::GetResourceHandle() const
+{
+ return NULL;
+}
+
+// ----------------------------------------------------------------------------
+// wxGDIImage handler stuff
+// ----------------------------------------------------------------------------
+
+void wxGDIImage::AddHandler(wxGDIImageHandler *handler)
+{
+}
+
+void wxGDIImage::InsertHandler(wxGDIImageHandler *handler)
+{
+}
+
+bool wxGDIImage::RemoveHandler(const wxString& name)
+{
+ return false;
+}
+
+wxGDIImageHandler *wxGDIImage::FindHandler(const wxString& name)
+{
+ return NULL;
+}
+
+wxGDIImageHandler *wxGDIImage::FindHandler(const wxString& extension,
+ long type)
+{
+ return NULL;
+}
+
+wxGDIImageHandler *wxGDIImage::FindHandler(long type)
+{
+ return NULL;
+}
+
+void wxGDIImage::CleanUpHandlers()
+{
+}
+
+void wxGDIImage::InitStandardHandlers()
+{
+}
+
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: gdiobj.cpp
+// Purpose: wxGDIObject class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "gdiobj.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include <stdio.h>
+#include "wx/setup.h"
+#include "wx/list.h"
+#include "wx/utils.h"
+#include "wx/app.h"
+#endif
+
+#include "wx/gdiobj.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxGDIObject, wxObject)
+
+/*
+void wxGDIObject::IncrementResourceUsage(void)
+{
+};
+
+void wxGDIObject::DecrementResourceUsage(void)
+{
+};
+
+*/
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/glcanvas.cpp
+// Purpose: wxGLCanvas, for using OpenGL with wxWidgets
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "glcanvas.h"
+#endif
+
+#include "wx/wxprec.h"
+
+#if defined(__BORLANDC__)
+#pragma hdrstop
+#endif
+
+#if wxUSE_GLCANVAS
+
+#ifndef WX_PRECOMP
+ #include "wx/frame.h"
+ #include "wx/settings.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+ #include "wx/app.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+// DLL options compatibility check:
+#include "wx/build.h"
+WX_CHECK_BUILD_OPTIONS("wxGL")
+
+#include "wx/glcanvas.h"
+
+static const wxChar *wxGLCanvasClassName = wxT("wxGLCanvasClass");
+static const wxChar *wxGLCanvasClassNameNoRedraw = wxT("wxGLCanvasClassNR");
+
+LRESULT WXDLLEXPORT APIENTRY _EXPORT wxWndProc(HWND hWnd, UINT message,
+ WPARAM wParam, LPARAM lParam);
+
+/*
+ * GLContext implementation
+ */
+
+wxGLContext::wxGLContext(bool WXUNUSED(isRGB), wxGLCanvas *win, const wxPalette& WXUNUSED(palette))
+{
+}
+
+wxGLContext::wxGLContext(
+ bool WXUNUSED(isRGB), wxGLCanvas *win,
+ const wxPalette& WXUNUSED(palette),
+ const wxGLContext *other /* for sharing display lists */
+ )
+{
+}
+
+wxGLContext::~wxGLContext()
+{
+}
+
+void wxGLContext::SwapBuffers()
+{
+}
+
+void wxGLContext::SetCurrent()
+{
+}
+
+void wxGLContext::SetColour(const wxChar *colour)
+{
+}
+
+
+/*
+ * wxGLCanvas implementation
+ */
+
+IMPLEMENT_CLASS(wxGLCanvas, wxWindow)
+
+BEGIN_EVENT_TABLE(wxGLCanvas, wxWindow)
+ EVT_SIZE(wxGLCanvas::OnSize)
+ EVT_PALETTE_CHANGED(wxGLCanvas::OnPaletteChanged)
+ EVT_QUERY_NEW_PALETTE(wxGLCanvas::OnQueryNewPalette)
+END_EVENT_TABLE()
+
+wxGLCanvas::wxGLCanvas(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos, const wxSize& size, long style, const wxString& name,
+ int *attribList, const wxPalette& palette) : wxWindow()
+{
+}
+
+wxGLCanvas::wxGLCanvas( wxWindow *parent,
+ const wxGLContext *shared, wxWindowID id,
+ const wxPoint& pos, const wxSize& size, long style, const wxString& name,
+ int *attribList, const wxPalette& palette )
+ : wxWindow()
+{
+}
+
+// Not very useful for wxMSW, but this is to be wxGTK compliant
+
+wxGLCanvas::wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared, wxWindowID id,
+ const wxPoint& pos, const wxSize& size, long style, const wxString& name,
+ int *attribList, const wxPalette& palette ):
+ wxWindow()
+{
+}
+
+wxGLCanvas::~wxGLCanvas()
+{
+}
+
+// Replaces wxWindow::Create functionality, since we need to use a different
+// window class
+bool wxGLCanvas::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+static void AdjustPFDForAttributes(PIXELFORMATDESCRIPTOR& pfd, int *attribList)
+{
+}
+
+void wxGLCanvas::SetupPixelFormat(int *attribList) // (HDC hDC)
+{
+}
+
+void wxGLCanvas::SetupPalette(const wxPalette& palette)
+{
+}
+
+wxPalette wxGLCanvas::CreateDefaultPalette()
+{
+ wxPalette palette;
+
+ return palette;
+}
+
+void wxGLCanvas::SwapBuffers()
+{
+}
+
+void wxGLCanvas::OnSize(wxSizeEvent& WXUNUSED(event))
+{
+}
+
+void wxGLCanvas::SetCurrent()
+{
+}
+
+void wxGLCanvas::SetColour(const wxChar *colour)
+{
+}
+
+void wxGLCanvas::OnQueryNewPalette(wxQueryNewPaletteEvent& event)
+{
+}
+
+void wxGLCanvas::OnPaletteChanged(wxPaletteChangedEvent& event)
+{
+}
+
+void glArrayElementEXT(GLint WXUNUSED(i))
+{
+}
+
+void glColorPointerEXT(GLint WXUNUSED(size), GLenum WXUNUSED(type), GLsizei WXUNUSED(stride), GLsizei WXUNUSED(count), const GLvoid *WXUNUSED(pointer))
+{
+}
+
+void glDrawArraysEXT(GLenum mode, GLint first, GLsizei count)
+{
+}
+
+void glEdgeFlagPointerEXT(GLsizei WXUNUSED(stride), GLsizei WXUNUSED(count), const GLboolean *WXUNUSED(pointer))
+{
+}
+
+void glGetPointervEXT(GLenum WXUNUSED(pname), GLvoid* *WXUNUSED(params))
+{
+}
+
+void glIndexPointerEXT(GLenum WXUNUSED(type), GLsizei WXUNUSED(stride), GLsizei WXUNUSED(count), const GLvoid *WXUNUSED(pointer))
+{
+}
+
+void glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer)
+{
+}
+
+void glTexCoordPointerEXT(GLint WXUNUSED(size), GLenum WXUNUSED(type), GLsizei WXUNUSED(stride), GLsizei WXUNUSED(count), const GLvoid *WXUNUSED(pointer))
+{
+}
+
+void glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer)
+{
+}
+
+void glColorSubtableEXT(GLenum WXUNUSED(target), GLsizei WXUNUSED(start), GLsizei WXUNUSED(count), GLenum WXUNUSED(format), GLenum WXUNUSED(type), const GLvoid *WXUNUSED(table))
+{
+}
+
+void glColorTableEXT(GLenum WXUNUSED(target), GLenum WXUNUSED(internalformat), GLsizei WXUNUSED(width), GLenum WXUNUSED(format), GLenum WXUNUSED(type), const GLvoid *WXUNUSED(table))
+{
+}
+
+void glCopyColorTableEXT(GLenum WXUNUSED(target), GLenum WXUNUSED(internalformat), GLint WXUNUSED(x), GLint WXUNUSED(y), GLsizei WXUNUSED(width))
+{
+}
+
+void glGetColorTableEXT(GLenum WXUNUSED(target), GLenum WXUNUSED(format), GLenum WXUNUSED(type), GLvoid *WXUNUSED(table))
+{
+}
+
+void glGetColorTableParamaterfvEXT(GLenum WXUNUSED(target), GLenum WXUNUSED(pname), GLfloat *WXUNUSED(params))
+{
+}
+
+void glGetColorTavleParameterivEXT(GLenum WXUNUSED(target), GLenum WXUNUSED(pname), GLint *WXUNUSED(params))
+{
+}
+
+void glLockArraysSGI(GLint WXUNUSED(first), GLsizei WXUNUSED(count))
+{
+}
+
+void glUnlockArraysSGI()
+{
+}
+
+
+void glCullParameterdvSGI(GLenum WXUNUSED(pname), GLdouble* WXUNUSED(params))
+{
+}
+
+void glCullParameterfvSGI(GLenum WXUNUSED(pname), GLfloat* WXUNUSED(params))
+{
+}
+
+void glIndexFuncSGI(GLenum WXUNUSED(func), GLclampf WXUNUSED(ref))
+{
+}
+
+void glIndexMaterialSGI(GLenum WXUNUSED(face), GLenum WXUNUSED(mode))
+{
+}
+
+void glAddSwapHintRectWin(GLint WXUNUSED(x), GLint WXUNUSED(y), GLsizei WXUNUSED(width), GLsizei WXUNUSED(height))
+{
+}
+
+
+//---------------------------------------------------------------------------
+// wxGLApp
+//---------------------------------------------------------------------------
+
+IMPLEMENT_CLASS(wxGLApp, wxApp)
+
+bool wxGLApp::InitGLVisual(int *attribList)
+{
+ return false;
+}
+
+wxGLApp::~wxGLApp()
+{
+}
+
+#endif
+ // wxUSE_GLCANVAS
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: helpwin.cpp
+// Purpose: Help system: WinHelp implementation
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "helpwin.h"
+#endif
+
+// 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_HELP
+
+#include "wx/filefn.h"
+#include "wx/msw/helpwin.h"
+
+#include <time.h>
+
+#include "wx/palmos/private.h"
+
+#include <string.h>
+
+
+IMPLEMENT_DYNAMIC_CLASS(wxWinHelpController, wxHelpControllerBase)
+
+bool wxWinHelpController::Initialize(const wxString& filename)
+{
+ return false;
+}
+
+bool wxWinHelpController::LoadFile(const wxString& file)
+{
+ return false;
+}
+
+bool wxWinHelpController::DisplayContents(void)
+{
+ return false;
+}
+
+bool wxWinHelpController::DisplaySection(int section)
+{
+ return false;
+}
+
+bool wxWinHelpController::DisplayContextPopup(int contextId)
+{
+ return false;
+}
+
+bool wxWinHelpController::DisplayBlock(long block)
+{
+ return false;
+}
+
+bool wxWinHelpController::KeywordSearch(const wxString& k,
+ wxHelpSearchMode WXUNUSED(mode))
+{
+ return false;
+}
+
+bool wxWinHelpController::Quit(void)
+{
+ return false;
+}
+
+wxString wxWinHelpController::GetValidFilename(const wxString& file) const
+{
+ wxString ret;
+
+ return ret;
+}
+
+#endif // wxUSE_HELP
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/icon.cpp
+// Purpose: wxIcon class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "icon.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/defs.h"
+ #include "wx/list.h"
+ #include "wx/utils.h"
+ #include "wx/app.h"
+ #include "wx/icon.h"
+ #include "wx/bitmap.h"
+ #include "wx/log.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxGDIObject)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxIconRefData
+// ----------------------------------------------------------------------------
+
+void wxIconRefData::Free()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxIcon
+// ----------------------------------------------------------------------------
+
+wxIcon::wxIcon(const char bits[], int width, int height)
+{
+}
+
+wxIcon::wxIcon(const wxString& iconfile,
+ long flags,
+ int desiredWidth,
+ int desiredHeight)
+
+{
+}
+
+wxIcon::wxIcon(const wxIconLocation& loc)
+{
+}
+
+wxIcon::~wxIcon()
+{
+}
+
+void wxIcon::CopyFromBitmap(const wxBitmap& bmp)
+{
+}
+
+void wxIcon::CreateIconFromXpm(const char **data)
+{
+}
+
+bool wxIcon::LoadFile(const wxString& filename,
+ long type,
+ int desiredWidth, int desiredHeight)
+{
+ return false;
+}
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/imaglist.cpp
+// Purpose: wxImageList implementation for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "imaglist.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/window.h"
+ #include "wx/icon.h"
+ #include "wx/dc.h"
+ #include "wx/string.h"
+ #include "wx/dcmemory.h"
+#endif
+
+#include "wx/log.h"
+#include "wx/intl.h"
+
+#include "wx/palmos/imaglist.h"
+#include "wx/palmos/private.h"
+
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxImageList, wxObject)
+
+#define GetHImageList() ((HIMAGELIST)m_hImageList)
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxImageList creation/destruction
+// ----------------------------------------------------------------------------
+
+wxImageList::wxImageList()
+{
+}
+
+// Creates an image list
+bool wxImageList::Create(int width, int height, bool mask, int initial)
+{
+ return false;
+}
+
+wxImageList::~wxImageList()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxImageList attributes
+// ----------------------------------------------------------------------------
+
+int wxImageList::GetImageCount() const
+{
+ return 0;
+}
+
+bool wxImageList::GetSize(int WXUNUSED(index), int &width, int &height) const
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxImageList operations
+// ----------------------------------------------------------------------------
+
+int wxImageList::Add(const wxBitmap& bitmap, const wxBitmap& mask)
+
+ return 0;
+}
+
+int wxImageList::Add(const wxBitmap& bitmap, const wxColour& maskColour)
+{
+ return 0;
+}
+
+int wxImageList::Add(const wxIcon& icon)
+{
+ return 0;
+}
+
+bool wxImageList::Replace(int index,
+ const wxBitmap& bitmap, const wxBitmap& mask)
+{
+ return false;
+}
+
+bool wxImageList::Replace(int i, const wxIcon& icon)
+{
+ return false;
+}
+
+bool wxImageList::Remove(int index)
+{
+ return false;
+}
+
+bool wxImageList::RemoveAll()
+{
+ return false;
+}
+
+bool wxImageList::Draw(int index,
+ wxDC& dc,
+ int x, int y,
+ int flags,
+ bool solidBackground)
+{
+ return false;
+}
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/iniconf.cpp
+// Purpose: implementation of wxIniConfig class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "iniconf.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #include "wx/intl.h"
+ #include "wx/event.h"
+ #include "wx/app.h"
+ #include "wx/utils.h"
+#endif //WX_PRECOMP
+
+// Doesn't yet compile in Unicode mode
+
+#if wxUSE_CONFIG && !wxUSE_UNICODE
+
+#include "wx/dynarray.h"
+#include "wx/log.h"
+#include "wx/config.h"
+#include "wx/file.h"
+
+#include "wx/palmos/iniconf.h"
+
+#include "wx/palmos/wrapwin.h"
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// we replace all path separators with this character
+#define PATH_SEP_REPLACE '_'
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// ctor & dtor
+// ----------------------------------------------------------------------------
+
+wxIniConfig::wxIniConfig(const wxString& strAppName,
+ const wxString& strVendor,
+ const wxString& localFilename,
+ const wxString& globalFilename,
+ long style)
+ : wxConfigBase(strAppName, strVendor, localFilename, globalFilename, style)
+{
+}
+
+wxIniConfig::~wxIniConfig()
+{
+}
+
+// ----------------------------------------------------------------------------
+// path management
+// ----------------------------------------------------------------------------
+
+void wxIniConfig::SetPath(const wxString& strPath)
+{
+}
+
+const wxString& wxIniConfig::GetPath() const
+{
+ static wxString s_str;
+
+ return s_str;
+}
+
+wxString wxIniConfig::GetPrivateKeyName(const wxString& szKey) const
+{
+ wxString strKey;
+
+ return strKey;
+}
+
+wxString wxIniConfig::GetKeyName(const wxString& szKey) const
+{
+ wxString strKey;
+
+ return strKey;
+}
+
+// ----------------------------------------------------------------------------
+// enumeration
+// ----------------------------------------------------------------------------
+
+bool wxIniConfig::GetFirstGroup(wxString& WXUNUSED(str), long& WXUNUSED(lIndex)) const
+{
+ return FALSE;
+}
+
+bool wxIniConfig::GetNextGroup (wxString& WXUNUSED(str), long& WXUNUSED(lIndex)) const
+{
+ return FALSE;
+}
+
+bool wxIniConfig::GetFirstEntry(wxString& WXUNUSED(str), long& WXUNUSED(lIndex)) const
+{
+ return FALSE;
+}
+
+bool wxIniConfig::GetNextEntry (wxString& WXUNUSED(str), long& WXUNUSED(lIndex)) const
+{
+ return FALSE;
+}
+
+// ----------------------------------------------------------------------------
+// misc info
+// ----------------------------------------------------------------------------
+
+size_t wxIniConfig::GetNumberOfEntries(bool WXUNUSED(bRecursive)) const
+{
+ return (size_t)-1;
+}
+
+size_t wxIniConfig::GetNumberOfGroups(bool WXUNUSED(bRecursive)) const
+{
+ return (size_t)-1;
+}
+
+bool wxIniConfig::HasGroup(const wxString& WXUNUSED(strName)) const
+{
+ return FALSE;
+}
+
+bool wxIniConfig::HasEntry(const wxString& WXUNUSED(strName)) const
+{
+ return FALSE;
+}
+
+// is current group empty?
+bool wxIniConfig::IsEmpty() const
+{
+ return TRUE;
+}
+
+// ----------------------------------------------------------------------------
+// read/write
+// ----------------------------------------------------------------------------
+
+bool wxIniConfig::DoReadString(const wxString& szKey, wxString *pstr) const
+{
+ return FALSE;
+}
+
+bool wxIniConfig::DoReadLong(const wxString& szKey, long *pl) const
+{
+ return FALSE ;
+}
+
+bool wxIniConfig::DoWriteString(const wxString& szKey, const wxString& szValue)
+{
+ return FALSE;
+}
+
+bool wxIniConfig::DoWriteLong(const wxString& szKey, long lValue)
+{
+ return FALSE;
+}
+
+bool wxIniConfig::Flush(bool /* bCurrentOnly */)
+{
+ return FALSE;
+}
+
+// ----------------------------------------------------------------------------
+// delete
+// ----------------------------------------------------------------------------
+
+bool wxIniConfig::DeleteEntry(const wxString& szKey, bool bGroupIfEmptyAlso)
+{
+ return FALSE;
+}
+
+bool wxIniConfig::DeleteGroup(const wxString& szKey)
+{
+ return FALSE;
+}
+
+#ifndef MAX_PATH
+#define MAX_PATH 256
+#endif
+
+bool wxIniConfig::DeleteAll()
+{
+ return FALSE;
+}
+
+bool wxIniConfig::RenameEntry(const wxString& WXUNUSED(oldName),
+ const wxString& WXUNUSED(newName))
+{
+ return FALSE;
+}
+
+bool wxIniConfig::RenameGroup(const wxString& WXUNUSED(oldName),
+ const wxString& WXUNUSED(newName))
+{
+ return FALSE;
+}
+
+#endif
+ // wxUSE_CONFIG && wxUSE_UNICODE
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: joystick.cpp
+// Purpose: wxJoystick class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "joystick.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#include "wx/string.h"
+#include "wx/window.h"
+
+#if !defined(__WIN32__) && !defined(_MMRESULT_)
+typedef UINT MMRESULT;
+#endif
+
+#include "wx/window.h"
+#include "wx/palmos/joystick.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject)
+
+// Attributes
+////////////////////////////////////////////////////////////////////////////
+
+wxJoystick::wxJoystick(int joystick)
+{
+};
+
+wxPoint wxJoystick::GetPosition() const
+{
+ return wxPoint(0, 0);
+}
+
+int wxJoystick::GetZPosition() const
+{
+ return 0;
+}
+
+int wxJoystick::GetButtonState() const
+{
+ return 0;
+}
+
+int wxJoystick::GetPOVPosition() const
+{
+ return -1;
+}
+
+int wxJoystick::GetPOVCTSPosition() const
+{
+ return -1;
+}
+
+int wxJoystick::GetRudderPosition() const
+{
+ return 0;
+}
+
+int wxJoystick::GetUPosition() const
+{
+ return 0;
+}
+
+int wxJoystick::GetVPosition() const
+{
+ return 0;
+}
+
+int wxJoystick::GetMovementThreshold() const
+{
+ return 0;
+}
+
+void wxJoystick::SetMovementThreshold(int threshold)
+{
+}
+
+// Capabilities
+////////////////////////////////////////////////////////////////////////////
+
+int wxJoystick::GetNumberJoysticks()
+{
+ return 0;
+}
+
+bool wxJoystick::IsOk() const
+{
+ return false;
+}
+
+int wxJoystick::GetManufacturerId() const
+{
+ return 0;
+}
+
+int wxJoystick::GetProductId() const
+{
+ return 0;
+}
+
+wxString wxJoystick::GetProductName() const
+{
+ return wxString("");
+}
+
+int wxJoystick::GetXMin() const
+{
+ return 0;
+}
+
+int wxJoystick::GetYMin() const
+{
+ return 0;
+}
+
+int wxJoystick::GetZMin() const
+{
+ return 0;
+}
+
+int wxJoystick::GetXMax() const
+{
+ return 0;
+}
+
+int wxJoystick::GetYMax() const
+{
+ return 0;
+}
+
+int wxJoystick::GetZMax() const
+{
+ return 0;
+}
+
+int wxJoystick::GetNumberButtons() const
+{
+ return 0;
+}
+
+int wxJoystick::GetNumberAxes() const
+{
+ return 0;
+}
+
+int wxJoystick::GetMaxButtons() const
+{
+ return 0;
+}
+
+int wxJoystick::GetMaxAxes() const
+{
+ return 0;
+}
+
+int wxJoystick::GetPollingMin() const
+{
+ return 0;
+}
+
+int wxJoystick::GetPollingMax() const
+{
+ return 0;
+}
+
+int wxJoystick::GetRudderMin() const
+{
+ return 0;
+}
+
+int wxJoystick::GetRudderMax() const
+{
+ return 0;
+}
+
+int wxJoystick::GetUMin() const
+{
+ return 0;
+}
+
+int wxJoystick::GetUMax() const
+{
+ return 0;
+}
+
+int wxJoystick::GetVMin() const
+{
+ return 0;
+}
+
+int wxJoystick::GetVMax() const
+{
+ return 0;
+}
+
+
+bool wxJoystick::HasRudder() const
+{
+ return false;
+}
+
+bool wxJoystick::HasZ() const
+{
+ return false;
+}
+
+bool wxJoystick::HasU() const
+{
+ return false;
+}
+
+bool wxJoystick::HasV() const
+{
+ return false;
+}
+
+bool wxJoystick::HasPOV() const
+{
+ return false;
+}
+
+bool wxJoystick::HasPOV4Dir() const
+{
+ return false;
+}
+
+bool wxJoystick::HasPOVCTS() const
+{
+ return false;
+}
+
+// Operations
+////////////////////////////////////////////////////////////////////////////
+
+bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq)
+{
+ return false;
+}
+
+bool wxJoystick::ReleaseCapture()
+{
+ return false;
+}
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/listbox.cpp
+// Purpose: wxListBox
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "listbox.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_LISTBOX
+
+#ifndef WX_PRECOMP
+#include "wx/listbox.h"
+#include "wx/settings.h"
+#include "wx/brush.h"
+#include "wx/font.h"
+#include "wx/dc.h"
+#include "wx/utils.h"
+#endif
+
+#include "wx/window.h"
+#include "wx/palmos/private.h"
+
+#include "wx/dynarray.h"
+#include "wx/log.h"
+
+#if wxUSE_OWNER_DRAWN
+ #include "wx/ownerdrw.h"
+#endif
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxListBoxStyle )
+
+wxBEGIN_FLAGS( wxListBoxStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxLB_SINGLE)
+ wxFLAGS_MEMBER(wxLB_MULTIPLE)
+ wxFLAGS_MEMBER(wxLB_EXTENDED)
+ wxFLAGS_MEMBER(wxLB_HSCROLL)
+ wxFLAGS_MEMBER(wxLB_ALWAYS_SB)
+ wxFLAGS_MEMBER(wxLB_NEEDED_SB)
+ wxFLAGS_MEMBER(wxLB_SORT)
+
+wxEND_FLAGS( wxListBoxStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxListBox, wxControl,"wx/listbox.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxListBox)
+ wxEVENT_PROPERTY( Select , wxEVT_COMMAND_LISTBOX_SELECTED , wxCommandEvent )
+ wxEVENT_PROPERTY( DoubleClick , wxEVT_COMMAND_LISTBOX_DOUBLECLICKED , wxCommandEvent )
+
+ wxPROPERTY( Font , wxFont , SetFont , GetFont , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_COLLECTION( Choices , wxArrayString , wxString , AppendString , GetStrings, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY( Selection ,int, SetSelection, GetSelection, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY_FLAGS( WindowStyle , wxListBoxStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxListBox)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_4( wxListBox , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl)
+#endif
+
+// ============================================================================
+// list box item declaration and implementation
+// ============================================================================
+
+#if wxUSE_OWNER_DRAWN
+
+class wxListBoxItem : public wxOwnerDrawn
+{
+public:
+ wxListBoxItem(const wxString& str = wxEmptyString);
+};
+
+wxListBoxItem::wxListBoxItem(const wxString& str) : wxOwnerDrawn(str, FALSE)
+{
+ // no bitmaps/checkmarks
+ SetMarginWidth(0);
+}
+
+wxOwnerDrawn *wxListBox::CreateLboxItem(size_t WXUNUSED(n))
+{
+ return new wxListBoxItem();
+}
+
+#endif //USE_OWNER_DRAWN
+
+// ============================================================================
+// list box control implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// creation
+// ----------------------------------------------------------------------------
+
+// Listbox item
+wxListBox::wxListBox()
+{
+}
+
+bool wxListBox::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ int n, const wxString choices[],
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+bool wxListBox::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+wxListBox::~wxListBox()
+{
+}
+
+WXDWORD wxListBox::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// implementation of wxListBoxBase methods
+// ----------------------------------------------------------------------------
+
+void wxListBox::DoSetFirstItem(int N)
+{
+}
+
+void wxListBox::Delete(int N)
+{
+}
+
+int wxListBox::DoAppend(const wxString& item)
+{
+ return 0;
+}
+
+void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData)
+{
+}
+
+int wxListBox::FindString(const wxString& s) const
+{
+ return wxNOT_FOUND;
+}
+
+void wxListBox::Clear()
+{
+}
+
+void wxListBox::Free()
+{
+}
+
+void wxListBox::SetSelection(int N, bool select)
+{
+}
+
+bool wxListBox::IsSelected(int N) const
+{
+ return false;
+}
+
+wxClientData* wxListBox::DoGetItemClientObject(int n) const
+{
+ return (wxClientData *)DoGetItemClientData(n);
+}
+
+void *wxListBox::DoGetItemClientData(int n) const
+{
+ return (void *)NULL;
+}
+
+void wxListBox::DoSetItemClientObject(int n, wxClientData* clientData)
+{
+}
+
+void wxListBox::DoSetItemClientData(int n, void *clientData)
+{
+}
+
+// Return number of selections and an array of selected integers
+int wxListBox::GetSelections(wxArrayInt& aSelections) const
+{
+ return 0;
+}
+
+// Get single selection, for single choice list items
+int wxListBox::GetSelection() const
+{
+ return 0;
+}
+
+// Find string for position
+wxString wxListBox::GetString(int N) const
+{
+ wxString result;
+
+ return result;
+}
+
+void
+wxListBox::DoInsertItems(const wxArrayString& items, int pos)
+{
+}
+
+void wxListBox::SetString(int N, const wxString& s)
+{
+}
+
+int wxListBox::GetCount() const
+{
+ return m_noItems;
+}
+
+// ----------------------------------------------------------------------------
+// helpers
+// ----------------------------------------------------------------------------
+
+void wxListBox::SetHorizontalExtent(const wxString& s)
+{
+}
+
+wxSize wxListBox::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+// ----------------------------------------------------------------------------
+// callbacks
+// ----------------------------------------------------------------------------
+
+bool wxListBox::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxCheckListBox support
+// ----------------------------------------------------------------------------
+
+#if wxUSE_OWNER_DRAWN
+
+// drawing
+// -------
+
+// space beneath/above each row in pixels
+// "standard" checklistbox use 1 here, some might prefer 2. 0 is ugly.
+#define OWNER_DRAWN_LISTBOX_EXTRA_SPACE (1)
+
+// the height is the same for all items
+// TODO should be changed for LBS_OWNERDRAWVARIABLE style listboxes
+
+// NB: can't forward this to wxListBoxItem because LB_SETITEMDATA
+// message is not yet sent when we get here!
+bool wxListBox::MSWOnMeasure(WXMEASUREITEMSTRUCT *item)
+{
+ return true;
+}
+
+// forward the message to the appropriate item
+bool wxListBox::MSWOnDraw(WXDRAWITEMSTRUCT *item)
+{
+ return true;
+}
+
+#endif // wxUSE_OWNER_DRAWN
+
+#endif // wxUSE_LISTBOX
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/listctrl.cpp
+// Purpose: wxListCtrl
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "listctrl.h"
+ #pragma implementation "listctrlbase.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_LISTCTRL && defined(__WIN95__)
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+ #include "wx/settings.h"
+#endif
+
+#include "wx/textctrl.h"
+#include "wx/imaglist.h"
+#include "wx/listctrl.h"
+#include "wx/dcclient.h"
+
+#include "wx/palmos/private.h"
+
+#include "wx/palmos/wrapcctl.h"
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// private helper classes
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// events
+// ----------------------------------------------------------------------------
+
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_BEGIN_DRAG)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_BEGIN_RDRAG)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_END_LABEL_EDIT)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_DELETE_ITEM)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_GET_INFO)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_SET_INFO)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_ITEM_SELECTED)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_ITEM_DESELECTED)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_KEY_DOWN)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_INSERT_ITEM)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_COL_CLICK)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_COL_RIGHT_CLICK)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_COL_BEGIN_DRAG)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_COL_DRAGGING)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_COL_END_DRAG)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_ITEM_ACTIVATED)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_ITEM_FOCUSED)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_CACHE_HINT)
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxListCtrlStyle )
+
+wxBEGIN_FLAGS( wxListCtrlStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxLC_LIST)
+ wxFLAGS_MEMBER(wxLC_REPORT)
+ wxFLAGS_MEMBER(wxLC_ICON)
+ wxFLAGS_MEMBER(wxLC_SMALL_ICON)
+ wxFLAGS_MEMBER(wxLC_ALIGN_TOP)
+ wxFLAGS_MEMBER(wxLC_ALIGN_LEFT)
+ wxFLAGS_MEMBER(wxLC_AUTOARRANGE)
+ wxFLAGS_MEMBER(wxLC_USER_TEXT)
+ wxFLAGS_MEMBER(wxLC_EDIT_LABELS)
+ wxFLAGS_MEMBER(wxLC_NO_HEADER)
+ wxFLAGS_MEMBER(wxLC_SINGLE_SEL)
+ wxFLAGS_MEMBER(wxLC_SORT_ASCENDING)
+ wxFLAGS_MEMBER(wxLC_SORT_DESCENDING)
+ wxFLAGS_MEMBER(wxLC_VIRTUAL)
+
+wxEND_FLAGS( wxListCtrlStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxListCtrl, wxControl,"wx/listctrl.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxListCtrl)
+ wxEVENT_PROPERTY( TextUpdated , wxEVT_COMMAND_TEXT_UPDATED , wxCommandEvent )
+
+ wxPROPERTY_FLAGS( WindowStyle , wxListCtrlStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxListCtrl)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_5( wxListCtrl , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size , long , WindowStyle )
+
+/*
+ TODO : Expose more information of a list's layout etc. via appropriate objects (Ã la NotebookPageInfo)
+*/
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxControl)
+#endif
+
+IMPLEMENT_DYNAMIC_CLASS(wxListView, wxListCtrl)
+IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject)
+
+IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxNotifyEvent)
+
+BEGIN_EVENT_TABLE(wxListCtrl, wxControl)
+ EVT_PAINT(wxListCtrl::OnPaint)
+END_EVENT_TABLE()
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxListCtrl construction
+// ----------------------------------------------------------------------------
+
+void wxListCtrl::Init()
+{
+}
+
+bool wxListCtrl::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+WXDWORD wxListCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+void wxListCtrl::UpdateStyle()
+{
+}
+
+void wxListCtrl::FreeAllInternalData()
+{
+}
+
+wxListCtrl::~wxListCtrl()
+{
+}
+
+// ----------------------------------------------------------------------------
+// set/get/change style
+// ----------------------------------------------------------------------------
+
+// Add or remove a single window style
+void wxListCtrl::SetSingleStyle(long style, bool add)
+{
+}
+
+// Set the whole window style
+void wxListCtrl::SetWindowStyleFlag(long flag)
+{
+}
+
+// ----------------------------------------------------------------------------
+// accessors
+// ----------------------------------------------------------------------------
+
+/* static */ wxVisualAttributes
+wxListCtrl::GetClassDefaultAttributes(wxWindowVariant variant)
+{
+ wxVisualAttributes attrs;
+
+ return attrs;
+}
+
+// Sets the foreground, i.e. text, colour
+bool wxListCtrl::SetForegroundColour(const wxColour& col)
+{
+ return false;
+}
+
+// Sets the background colour
+bool wxListCtrl::SetBackgroundColour(const wxColour& col)
+{
+ return false;
+}
+
+// Gets information about this column
+bool wxListCtrl::GetColumn(int col, wxListItem& item) const
+{
+ return false;
+}
+
+// Sets information about this column
+bool wxListCtrl::SetColumn(int col, wxListItem& item)
+{
+ return false;
+}
+
+// Gets the column width
+int wxListCtrl::GetColumnWidth(int col) const
+{
+ return 0;
+}
+
+// Sets the column width
+bool wxListCtrl::SetColumnWidth(int col, int width)
+{
+ return false;
+}
+
+// Gets the number of items that can fit vertically in the
+// visible area of the list control (list or report view)
+// or the total number of items in the list control (icon
+// or small icon view)
+int wxListCtrl::GetCountPerPage() const
+{
+ return 0;
+}
+
+// Gets the edit control for editing labels.
+wxTextCtrl* wxListCtrl::GetEditControl() const
+{
+ return NULL;
+}
+
+// Gets information about the item
+bool wxListCtrl::GetItem(wxListItem& info) const
+{
+ return false;
+}
+
+// Sets information about the item
+bool wxListCtrl::SetItem(wxListItem& info)
+{
+ return false;
+}
+
+long wxListCtrl::SetItem(long index, int col, const wxString& label, int imageId)
+{
+ return 0;
+}
+
+
+// Gets the item state
+int wxListCtrl::GetItemState(long item, long stateMask) const
+{
+ return 0;
+}
+
+// Sets the item state
+bool wxListCtrl::SetItemState(long item, long state, long stateMask)
+{
+ return false;
+}
+
+// Sets the item image
+bool wxListCtrl::SetItemImage(long item, int image, int WXUNUSED(selImage))
+{
+ return false;
+}
+
+// Gets the item text
+wxString wxListCtrl::GetItemText(long item) const
+{
+ wxListItem info;
+
+ return info.m_text;
+}
+
+// Sets the item text
+void wxListCtrl::SetItemText(long item, const wxString& str)
+{
+}
+
+// Gets the item data
+long wxListCtrl::GetItemData(long item) const
+{
+ return 0;
+}
+
+// Sets the item data
+bool wxListCtrl::SetItemData(long item, long data)
+{
+ return false;
+}
+
+wxRect wxListCtrl::GetViewRect() const
+{
+ wxRect rect;
+
+ return rect;
+}
+
+// Gets the item rectangle
+bool wxListCtrl::GetItemRect(long item, wxRect& rect, int code) const
+{
+ return false;
+}
+
+// Gets the item position
+bool wxListCtrl::GetItemPosition(long item, wxPoint& pos) const
+{
+ return false;
+}
+
+// Sets the item position.
+bool wxListCtrl::SetItemPosition(long item, const wxPoint& pos)
+{
+ return false;
+}
+
+// Gets the number of items in the list control
+int wxListCtrl::GetItemCount() const
+{
+ return 0;
+}
+
+wxSize wxListCtrl::GetItemSpacing() const
+{
+ return wxSize(0,0);
+}
+
+int wxListCtrl::GetItemSpacing(bool isSmall) const
+{
+ return 0;
+}
+
+void wxListCtrl::SetItemTextColour( long item, const wxColour &col )
+{
+}
+
+wxColour wxListCtrl::GetItemTextColour( long item ) const
+{
+ wxColour col;
+
+ return col;
+}
+
+void wxListCtrl::SetItemBackgroundColour( long item, const wxColour &col )
+{
+}
+
+wxColour wxListCtrl::GetItemBackgroundColour( long item ) const
+{
+ wxColour col;
+
+ return col;
+}
+
+// Gets the number of selected items in the list control
+int wxListCtrl::GetSelectedItemCount() const
+{
+ return 0;
+}
+
+// Gets the text colour of the listview
+wxColour wxListCtrl::GetTextColour() const
+{
+ wxColour col;
+ return col;
+}
+
+// Sets the text colour of the listview
+void wxListCtrl::SetTextColour(const wxColour& col)
+{
+}
+
+// Gets the index of the topmost visible item when in
+// list or report view
+long wxListCtrl::GetTopItem() const
+{
+ return 0;
+}
+
+// Searches for an item, starting from 'item'.
+// 'geometry' is one of
+// wxLIST_NEXT_ABOVE/ALL/BELOW/LEFT/RIGHT.
+// 'state' is a state bit flag, one or more of
+// wxLIST_STATE_DROPHILITED/FOCUSED/SELECTED/CUT.
+// item can be -1 to find the first item that matches the
+// specified flags.
+// Returns the item or -1 if unsuccessful.
+long wxListCtrl::GetNextItem(long item, int geom, int state) const
+{
+ return 0;
+}
+
+
+wxImageList *wxListCtrl::GetImageList(int which) const
+{
+ return NULL;
+}
+
+void wxListCtrl::SetImageList(wxImageList *imageList, int which)
+{
+}
+
+void wxListCtrl::AssignImageList(wxImageList *imageList, int which)
+{
+}
+
+// ----------------------------------------------------------------------------
+// Operations
+// ----------------------------------------------------------------------------
+
+// Arranges the items
+bool wxListCtrl::Arrange(int flag)
+{
+ return false;
+}
+
+// Deletes an item
+bool wxListCtrl::DeleteItem(long item)
+{
+ return false;
+}
+
+// Deletes all items
+bool wxListCtrl::DeleteAllItems()
+{
+ return false;
+}
+
+// Deletes all items
+bool wxListCtrl::DeleteAllColumns()
+{
+ return false;
+}
+
+// Deletes a column
+bool wxListCtrl::DeleteColumn(int col)
+{
+ return false;
+}
+
+// Clears items, and columns if there are any.
+void wxListCtrl::ClearAll()
+{
+}
+
+wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass)
+{
+ return NULL;
+}
+
+// End label editing, optionally cancelling the edit
+bool wxListCtrl::EndEditLabel(bool WXUNUSED(cancel))
+{
+ return FALSE;
+}
+
+// Ensures this item is visible
+bool wxListCtrl::EnsureVisible(long item)
+{
+ return false;
+}
+
+// Find an item whose label matches this string, starting from the item after 'start'
+// or the beginning if 'start' is -1.
+long wxListCtrl::FindItem(long start, const wxString& str, bool partial)
+{
+ return 0;
+}
+
+// Find an item whose data matches this data, starting from the item after 'start'
+// or the beginning if 'start' is -1.
+// NOTE : Lindsay Mathieson - 14-July-2002
+// No longer use ListView_FindItem as the data attribute is now stored
+// in a wxListItemInternalData structure refernced by the actual lParam
+long wxListCtrl::FindItem(long start, long data)
+{
+ return -1;
+}
+
+// Find an item nearest this position in the specified direction, starting from
+// the item after 'start' or the beginning if 'start' is -1.
+long wxListCtrl::FindItem(long start, const wxPoint& pt, int direction)
+{
+ return -1;
+}
+
+// Determines which item (if any) is at the specified point,
+// giving details in 'flags' (see wxLIST_HITTEST_... flags above)
+long wxListCtrl::HitTest(const wxPoint& point, int& flags)
+{
+ return 0;
+}
+
+// Inserts an item, returning the index of the new item if successful,
+// -1 otherwise.
+long wxListCtrl::InsertItem(wxListItem& info)
+{
+ return 0;
+}
+
+long wxListCtrl::InsertItem(long index, const wxString& label)
+{
+ return 0;
+}
+
+// Inserts an image item
+long wxListCtrl::InsertItem(long index, int imageIndex)
+{
+ return 0;
+}
+
+// Inserts an image/string item
+long wxListCtrl::InsertItem(long index, const wxString& label, int imageIndex)
+{
+ return 0;
+}
+
+// For list view mode (only), inserts a column.
+long wxListCtrl::InsertColumn(long col, wxListItem& item)
+{
+ return 0;
+}
+
+long wxListCtrl::InsertColumn(long col,
+ const wxString& heading,
+ int format,
+ int width)
+{
+ return 0;
+}
+
+// scroll the control by the given number of pixels (exception: in list view,
+// dx is interpreted as number of columns)
+bool wxListCtrl::ScrollList(int dx, int dy)
+{
+ return FALSE;
+}
+
+// Sort items.
+
+// fn is a function which takes 3 long arguments: item1, item2, data.
+// item1 is the long data associated with a first item (NOT the index).
+// item2 is the long data associated with a second item (NOT the index).
+// data is the same value as passed to SortItems.
+// The return value is a negative number if the first item should precede the second
+// item, a positive number of the second item should precede the first,
+// or zero if the two items are equivalent.
+
+// data is arbitrary data to be passed to the sort function.
+
+// Internal structures for proxying the user compare function
+// so that we can pass it the *real* user data
+
+// translate lParam data and call user func
+struct wxInternalDataSort
+{
+ wxListCtrlCompare user_fn;
+ long data;
+};
+
+int CALLBACK wxInternalDataCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
+{
+ struct wxInternalDataSort *internalData = (struct wxInternalDataSort *) lParamSort;
+
+ wxListItemInternalData *data1 = (wxListItemInternalData *) lParam1;
+ wxListItemInternalData *data2 = (wxListItemInternalData *) lParam2;
+
+ long d1 = (data1 == NULL ? 0 : data1->lParam);
+ long d2 = (data2 == NULL ? 0 : data2->lParam);
+
+ return internalData->user_fn(d1, d2, internalData->data);
+
+};
+
+bool wxListCtrl::SortItems(wxListCtrlCompare fn, long data)
+{
+ return FALSE;
+}
+
+
+
+// ----------------------------------------------------------------------------
+// message processing
+// ----------------------------------------------------------------------------
+
+bool wxListCtrl::MSWCommand(WXUINT cmd, WXWORD id)
+{
+ return false;
+}
+
+bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
+{
+ return false;
+}
+
+// see comment at the end of wxListCtrl::GetColumn()
+#ifdef NM_CUSTOMDRAW // _WIN32_IE >= 0x0300
+
+WXLPARAM wxListCtrl::OnCustomDraw(WXLPARAM lParam)
+{
+ return CDRF_DODEFAULT;
+}
+
+#endif // NM_CUSTOMDRAW supported
+
+// Necessary for drawing hrules and vrules, if specified
+void wxListCtrl::OnPaint(wxPaintEvent& event)
+{
+}
+
+// ----------------------------------------------------------------------------
+// virtual list controls
+// ----------------------------------------------------------------------------
+
+wxString wxListCtrl::OnGetItemText(long WXUNUSED(item), long WXUNUSED(col)) const
+{
+ return wxEmptyString;
+}
+
+int wxListCtrl::OnGetItemImage(long WXUNUSED(item)) const
+{
+ return -1;
+}
+
+wxListItemAttr *wxListCtrl::OnGetItemAttr(long WXUNUSED_UNLESS_DEBUG(item)) const
+{
+ // no attributes by default
+ return NULL;
+}
+
+void wxListCtrl::SetItemCount(long count)
+{
+}
+
+void wxListCtrl::RefreshItem(long item)
+{
+}
+
+void wxListCtrl::RefreshItems(long itemFrom, long itemTo)
+{
+}
+
+// ----------------------------------------------------------------------------
+// internal data stuff
+// ----------------------------------------------------------------------------
+
+static wxListItemInternalData *wxGetInternalData(HWND hwnd, long itemId)
+{
+ return NULL;
+};
+
+static
+wxListItemInternalData *wxGetInternalData(const wxListCtrl *ctl, long itemId)
+{
+ return wxGetInternalData(GetHwndOf(ctl), itemId);
+};
+
+static wxListItemAttr *wxGetInternalDataAttr(wxListCtrl *ctl, long itemId)
+{
+ return NULL;
+};
+
+static void wxDeleteInternalData(wxListCtrl* ctl, long itemId)
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxWin <-> MSW items conversions
+// ----------------------------------------------------------------------------
+
+static void wxConvertFromMSWListItem(HWND hwndListCtrl,
+ wxListItem& info,
+ LV_ITEM& lvItem)
+{
+}
+
+static void wxConvertToMSWFlags(long state, long stateMask, LV_ITEM& lvItem)
+{
+}
+
+static void wxConvertToMSWListItem(const wxListCtrl *ctrl,
+ const wxListItem& info,
+ LV_ITEM& lvItem)
+{
+}
+
+static void wxConvertToMSWListCol(int WXUNUSED(col), const wxListItem& item,
+ LV_COLUMN& lvCol)
+{
+}
+
+#endif // wxUSE_LISTCTRL
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/main.cpp
+// Purpose: wxEnter for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/07/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include "wx/event.h"
+#include "wx/app.h"
+#include "wx/cmdline.h"
+
+#if wxUSE_GUI
+
+// ============================================================================
+// implementation: various entry points
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// Platform-specific wxEntry
+// ----------------------------------------------------------------------------
+
+int wxEntry()
+{
+ /* There is no command line in PalmOS. For now generate a fake arument
+ * list. Later this may be changed to reflect the application launch code
+ */
+ wxArrayString args;
+ int argc = args.GetCount();
+
+ // +1 here for the terminating NULL
+ wxChar **argv = new wxChar *[argc + 1];
+ for ( int i = 0; i < argc; i++ )
+ {
+ argv[i] = wxStrdup(args[i]);
+ }
+
+ // argv[] must be NULL-terminated
+ argv[argc] = NULL;
+
+ return wxEntry(argc, argv);
+}
+
+#endif // wxUSE_GUI
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/mdi.cpp
+// Purpose: MDI classes for wx
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "mdi.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_MDI && !defined(__WXUNIVERSAL__)
+
+#ifndef WX_PRECOMP
+ #include "wx/setup.h"
+ #include "wx/frame.h"
+ #include "wx/menu.h"
+ #include "wx/app.h"
+ #include "wx/utils.h"
+ #include "wx/dialog.h"
+ #if wxUSE_STATUSBAR
+ #include "wx/statusbr.h"
+ #endif
+ #include "wx/settings.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+#endif
+
+#include "wx/mdi.h"
+#include "wx/palmos/private.h"
+
+#if wxUSE_STATUSBAR && wxUSE_NATIVE_STATUSBAR
+ #include "wx/palmos/statbr95.h"
+#endif
+
+#if wxUSE_TOOLBAR
+ #include "wx/toolbar.h"
+#endif // wxUSE_TOOLBAR
+
+#include <string.h>
+
+// ---------------------------------------------------------------------------
+// global variables
+// ---------------------------------------------------------------------------
+
+extern wxMenu *wxCurrentPopupMenu;
+
+extern const wxChar *wxMDIFrameClassName; // from app.cpp
+extern const wxChar *wxMDIChildFrameClassName;
+extern const wxChar *wxMDIChildFrameClassNameNoRedraw;
+extern void wxAssociateWinWithHandle(HWND hWnd, wxWindow *win);
+extern void wxRemoveHandleAssociation(wxWindow *win);
+
+
+// ---------------------------------------------------------------------------
+// constants
+// ---------------------------------------------------------------------------
+
+static const int IDM_WINDOWTILE = 4001;
+static const int IDM_WINDOWTILEHOR = 4001;
+static const int IDM_WINDOWCASCADE = 4002;
+static const int IDM_WINDOWICONS = 4003;
+static const int IDM_WINDOWNEXT = 4004;
+static const int IDM_WINDOWTILEVERT = 4005;
+static const int IDM_WINDOWPREV = 4006;
+
+// This range gives a maximum of 500 MDI children. Should be enough :-)
+static const int wxFIRST_MDI_CHILD = 4100;
+static const int wxLAST_MDI_CHILD = 4600;
+
+// Status border dimensions
+static const int wxTHICK_LINE_BORDER = 3;
+static const int wxTHICK_LINE_WIDTH = 1;
+
+// ---------------------------------------------------------------------------
+// private functions
+// ---------------------------------------------------------------------------
+
+// set the MDI menus (by sending the WM_MDISETMENU message) and update the menu
+// of the parent of win (which is supposed to be the MDI client window)
+static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow);
+
+// insert the window menu (subMenu) into menu just before "Help" submenu or at
+// the very end if not found
+static void InsertWindowMenu(wxWindow *win, WXHMENU menu, HMENU subMenu);
+
+// Remove the window menu
+static void RemoveWindowMenu(wxWindow *win, WXHMENU menu);
+
+// is this an id of an MDI child?
+inline bool IsMdiCommandId(int id)
+{
+ return (id >= wxFIRST_MDI_CHILD) && (id <= wxLAST_MDI_CHILD);
+}
+
+// unpack the parameters of WM_MDIACTIVATE message
+static void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam,
+ WXWORD *activate, WXHWND *hwndAct, WXHWND *hwndDeact);
+
+// return the HMENU of the MDI menu
+static inline HMENU GetMDIWindowMenu(wxMDIParentFrame *frame)
+{
+ wxMenu *menu = frame->GetWindowMenu();
+ return menu ? GetHmenuOf(menu) : 0;
+}
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// wxWin macros
+// ---------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame)
+IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame)
+IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow)
+
+BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame)
+ EVT_SIZE(wxMDIParentFrame::OnSize)
+ EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged)
+END_EVENT_TABLE()
+
+BEGIN_EVENT_TABLE(wxMDIChildFrame, wxFrame)
+ EVT_IDLE(wxMDIChildFrame::OnIdle)
+END_EVENT_TABLE()
+
+BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow)
+ EVT_SCROLL(wxMDIClientWindow::OnScroll)
+END_EVENT_TABLE()
+
+// ===========================================================================
+// wxMDIParentFrame: the frame which contains the client window which manages
+// the children
+// ===========================================================================
+
+wxMDIParentFrame::wxMDIParentFrame()
+{
+}
+
+bool wxMDIParentFrame::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+wxMDIParentFrame::~wxMDIParentFrame()
+{
+}
+
+#if wxUSE_MENUS_NATIVE
+
+void wxMDIParentFrame::InternalSetMenuBar()
+{
+}
+
+#endif // wxUSE_MENUS_NATIVE
+
+void wxMDIParentFrame::SetWindowMenu(wxMenu* menu)
+{
+}
+
+void wxMDIParentFrame::OnSize(wxSizeEvent&)
+{
+}
+
+// Returns the active MDI child window
+wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const
+{
+ return NULL;
+}
+
+// Create the client window class (don't Create the window, just return a new
+// class)
+wxMDIClientWindow *wxMDIParentFrame::OnCreateClient()
+{
+ return new wxMDIClientWindow;
+}
+
+// Responds to colour changes, and passes event on to children.
+void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
+{
+ event.Skip();
+}
+
+WXHICON wxMDIParentFrame::GetDefaultIcon() const
+{
+ // we don't have any standard icons (any more)
+ return (WXHICON)0;
+}
+
+// ---------------------------------------------------------------------------
+// MDI operations
+// ---------------------------------------------------------------------------
+
+void wxMDIParentFrame::Cascade()
+{
+}
+
+void wxMDIParentFrame::Tile()
+{
+}
+
+void wxMDIParentFrame::ArrangeIcons()
+{
+}
+
+void wxMDIParentFrame::ActivateNext()
+{
+}
+
+void wxMDIParentFrame::ActivatePrevious()
+{
+}
+
+// ---------------------------------------------------------------------------
+// the MDI parent frame window proc
+// ---------------------------------------------------------------------------
+
+WXLRESULT wxMDIParentFrame::MSWWindowProc(WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam)
+{
+ return 0;
+}
+
+bool wxMDIParentFrame::HandleActivate(int state, bool minimized, WXHWND activate)
+{
+ return false;
+}
+
+bool wxMDIParentFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND hwnd)
+{
+ return false;
+}
+
+WXLRESULT wxMDIParentFrame::MSWDefWindowProc(WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam)
+{
+ return 0;
+}
+
+bool wxMDIParentFrame::MSWTranslateMessage(WXMSG* msg)
+{
+ return false;
+}
+
+// ===========================================================================
+// wxMDIChildFrame
+// ===========================================================================
+
+void wxMDIChildFrame::Init()
+{
+}
+
+bool wxMDIChildFrame::Create(wxMDIParentFrame *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+wxMDIChildFrame::~wxMDIChildFrame()
+{
+}
+
+// Set the client size (i.e. leave the calculation of borders etc.
+// to wxWidgets)
+void wxMDIChildFrame::DoSetClientSize(int width, int height)
+{
+}
+
+void wxMDIChildFrame::DoGetPosition(int *x, int *y) const
+{
+}
+
+void wxMDIChildFrame::InternalSetMenuBar()
+{
+}
+
+WXHICON wxMDIChildFrame::GetDefaultIcon() const
+{
+ // we don't have any standard icons (any more)
+ return (WXHICON)0;
+}
+
+// ---------------------------------------------------------------------------
+// MDI operations
+// ---------------------------------------------------------------------------
+
+void wxMDIChildFrame::Maximize(bool maximize)
+{
+}
+
+void wxMDIChildFrame::Restore()
+{
+}
+
+void wxMDIChildFrame::Activate()
+{
+}
+
+// ---------------------------------------------------------------------------
+// MDI window proc and message handlers
+// ---------------------------------------------------------------------------
+
+WXLRESULT wxMDIChildFrame::MSWWindowProc(WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam)
+{
+ return 0;
+}
+
+bool wxMDIChildFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND hwnd)
+{
+ return false;
+}
+
+bool wxMDIChildFrame::HandleMDIActivate(long WXUNUSED(activate),
+ WXHWND hwndAct,
+ WXHWND hwndDeact)
+{
+ return false;
+}
+
+bool wxMDIChildFrame::HandleWindowPosChanging(void *pos)
+{
+ return false;
+}
+
+bool wxMDIChildFrame::HandleGetMinMaxInfo(void *mmInfo)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// MDI specific message translation/preprocessing
+// ---------------------------------------------------------------------------
+
+WXLRESULT wxMDIChildFrame::MSWDefWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return 0;
+}
+
+bool wxMDIChildFrame::MSWTranslateMessage(WXMSG* msg)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// misc
+// ---------------------------------------------------------------------------
+
+void wxMDIChildFrame::MSWDestroyWindow()
+{
+}
+
+// Change the client window's extended style so we don't get a client edge
+// style when a child is maximised (a double border looks silly.)
+bool wxMDIChildFrame::ResetWindowStyle(void *vrect)
+{
+ return false;
+}
+
+// ===========================================================================
+// wxMDIClientWindow: the window of predefined (by Windows) class which
+// contains the child frames
+// ===========================================================================
+
+bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style)
+{
+ return false;
+}
+
+// Explicitly call default scroll behaviour
+void wxMDIClientWindow::OnScroll(wxScrollEvent& event)
+{
+ event.Skip();
+}
+
+void wxMDIClientWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
+{
+}
+
+void wxMDIChildFrame::OnIdle(wxIdleEvent& event)
+{
+ event.Skip();
+}
+
+// ---------------------------------------------------------------------------
+// non member functions
+// ---------------------------------------------------------------------------
+
+static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow)
+{
+}
+
+static void InsertWindowMenu(wxWindow *win, WXHMENU menu, HMENU subMenu)
+{
+}
+
+static void RemoveWindowMenu(wxWindow *win, WXHMENU menu)
+{
+}
+
+static void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam,
+ WXWORD *activate, WXHWND *hwndAct, WXHWND *hwndDeact)
+{
+}
+
+#endif // wxUSE_MDI && !defined(__WXUNIVERSAL__)
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: menu.cpp
+// Purpose: wxMenu, wxMenuBar, wxMenuItem
+// Author: William Osborne
+// Modified by:
+// Created: 10/12/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "menu.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_MENUS
+
+#ifndef WX_PRECOMP
+ #include "wx/frame.h"
+ #include "wx/menu.h"
+ #include "wx/utils.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+#endif
+
+#if wxUSE_OWNER_DRAWN
+ #include "wx/ownerdrw.h"
+#endif
+
+// other standard headers
+#include <string.h>
+
+#ifdef __PALMOS__
+ #include <PalmOS.h>
+ #include <Menu.h>
+#endif
+
+// ----------------------------------------------------------------------------
+// global variables
+// ----------------------------------------------------------------------------
+
+extern wxMenu *wxCurrentPopupMenu;
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// the (popup) menu title has this special id
+static const int idMenuTitle = -3;
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+#include <wx/listimpl.cpp>
+
+WX_DEFINE_LIST( wxMenuInfoList ) ;
+
+#if wxUSE_EXTENDED_RTTI
+
+WX_DEFINE_FLAGS( wxMenuStyle )
+
+wxBEGIN_FLAGS( wxMenuStyle )
+ wxFLAGS_MEMBER(wxMENU_TEAROFF)
+wxEND_FLAGS( wxMenuStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxMenu, wxEvtHandler,"wx/menu.h")
+
+wxCOLLECTION_TYPE_INFO( wxMenuItem * , wxMenuItemList ) ;
+
+template<> void wxCollectionToVariantArray( wxMenuItemList const &theList, wxxVariantArray &value)
+{
+ wxListCollectionToVariantArray<wxMenuItemList::compatibility_iterator>( theList , value ) ;
+}
+
+wxBEGIN_PROPERTIES_TABLE(wxMenu)
+ wxEVENT_PROPERTY( Select , wxEVT_COMMAND_MENU_SELECTED , wxCommandEvent)
+ wxPROPERTY( Title, wxString , SetTitle, GetTitle, wxString(), 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxREADONLY_PROPERTY_FLAGS( MenuStyle , wxMenuStyle , long , GetStyle , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+ wxPROPERTY_COLLECTION( MenuItems , wxMenuItemList , wxMenuItem* , Append , GetMenuItems , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxMenu)
+wxEND_HANDLERS_TABLE()
+
+wxDIRECT_CONSTRUCTOR_2( wxMenu , wxString , Title , long , MenuStyle )
+
+WX_DEFINE_FLAGS( wxMenuBarStyle )
+
+wxBEGIN_FLAGS( wxMenuBarStyle )
+ wxFLAGS_MEMBER(wxMB_DOCKABLE)
+wxEND_FLAGS( wxMenuBarStyle )
+
+// the negative id would lead the window (its superclass !) to vetoe streaming out otherwise
+bool wxMenuBarStreamingCallback( const wxObject *WXUNUSED(object), wxWriter * , wxPersister * , wxxVariantArray & )
+{
+ return true ;
+}
+
+IMPLEMENT_DYNAMIC_CLASS_XTI_CALLBACK(wxMenuBar, wxWindow ,"wx/menu.h",wxMenuBarStreamingCallback)
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxMenuInfo, wxObject , "wx/menu.h" )
+
+wxBEGIN_PROPERTIES_TABLE(wxMenuInfo)
+ wxREADONLY_PROPERTY( Menu , wxMenu* , GetMenu , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxREADONLY_PROPERTY( Title , wxString , GetTitle , wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxMenuInfo)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_2( wxMenuInfo , wxMenu* , Menu , wxString , Title )
+
+wxCOLLECTION_TYPE_INFO( wxMenuInfo * , wxMenuInfoList ) ;
+
+template<> void wxCollectionToVariantArray( wxMenuInfoList const &theList, wxxVariantArray &value)
+{
+ wxListCollectionToVariantArray<wxMenuInfoList::compatibility_iterator>( theList , value ) ;
+}
+
+wxBEGIN_PROPERTIES_TABLE(wxMenuBar)
+ wxPROPERTY_COLLECTION( MenuInfos , wxMenuInfoList , wxMenuInfo* , Append , GetMenuInfos , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxMenuBar)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_DUMMY( wxMenuBar )
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler)
+IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxWindow)
+IMPLEMENT_DYNAMIC_CLASS(wxMenuInfo, wxObject)
+#endif
+
+const wxMenuInfoList& wxMenuBar::GetMenuInfos() const
+{
+ wxMenuInfoList* list = const_cast< wxMenuInfoList* >( &m_menuInfos ) ;
+ WX_CLEAR_LIST( wxMenuInfoList , *list ) ;
+ for( size_t i = 0 ; i < GetMenuCount() ; ++i )
+ {
+ wxMenuInfo* info = new wxMenuInfo() ;
+ info->Create( const_cast<wxMenuBar*>(this)->GetMenu(i) , GetLabelTop(i) ) ;
+ list->Append( info ) ;
+ }
+ return m_menuInfos ;
+}
+
+// ---------------------------------------------------------------------------
+// wxMenu construction, adding and removing menu items
+// ---------------------------------------------------------------------------
+
+// Construct a menu with optional title (then use append)
+void wxMenu::Init()
+{
+}
+
+// The wxWindow destructor will take care of deleting the submenus.
+wxMenu::~wxMenu()
+{
+}
+
+void wxMenu::Break()
+{
+}
+
+void wxMenu::Attach(wxMenuBarBase *menubar)
+{
+ wxMenuBase::Attach(menubar);
+}
+
+#if wxUSE_ACCEL
+
+int wxMenu::FindAccel(int id) const
+{
+ return wxNOT_FOUND;
+}
+
+void wxMenu::UpdateAccel(wxMenuItem *item)
+{
+}
+
+#endif // wxUSE_ACCEL
+
+// append a new item or submenu to the menu
+bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
+{
+ if ( IsAttached() && GetMenuBar()->IsAttached() )
+ {
+ // Regenerate the menu resource
+ GetMenuBar()->Refresh();
+ }
+
+ return TRUE;
+}
+
+void wxMenu::EndRadioGroup()
+{
+}
+
+wxMenuItem* wxMenu::DoAppend(wxMenuItem *item)
+{
+ wxCHECK_MSG( item, NULL, _T("NULL item in wxMenu::DoAppend") );
+
+ if(!wxMenuBase::DoAppend(item) || !DoInsertOrAppend(item))
+ {
+ return NULL;
+ }
+ else if(IsAttached() && GetMenuBar()->IsAttached())
+ {
+ // Regenerate the menu resource
+ GetMenuBar()->Refresh();
+ }
+
+ return item;
+}
+
+wxMenuItem* wxMenu::DoInsert(size_t pos, wxMenuItem *item)
+{
+ if (wxMenuBase::DoInsert(pos, item) && DoInsertOrAppend(item, pos))
+ return item;
+ else
+ return NULL;
+}
+
+wxMenuItem *wxMenu::DoRemove(wxMenuItem *item)
+{
+ // we need to find the items position in the child list
+ size_t pos;
+ wxMenuItemList::compatibility_iterator node = GetMenuItems().GetFirst();
+ for ( pos = 0; node; pos++ )
+ {
+ if ( node->GetData() == item )
+ break;
+
+ node = node->GetNext();
+ }
+
+ // DoRemove() (unlike Remove) can only be called for existing item!
+ wxCHECK_MSG( node, NULL, wxT("bug in wxMenu::Remove logic") );
+
+ // remove the item from the menu
+ wxMenuItem *ret=wxMenuBase::DoRemove(item);
+
+ if ( IsAttached() && GetMenuBar()->IsAttached() )
+ {
+ // Regenerate the menu resource
+ GetMenuBar()->Refresh();
+ }
+
+ return ret;
+}
+
+// ---------------------------------------------------------------------------
+// accelerator helpers
+// ---------------------------------------------------------------------------
+
+#if wxUSE_ACCEL
+
+// create the wxAcceleratorEntries for our accels and put them into provided
+// array - return the number of accels we have
+size_t wxMenu::CopyAccels(wxAcceleratorEntry *accels) const
+{
+ size_t count = GetAccelCount();
+ for ( size_t n = 0; n < count; n++ )
+ {
+ *accels++ = *m_accels[n];
+ }
+
+ return count;
+}
+
+#endif // wxUSE_ACCEL
+
+// ---------------------------------------------------------------------------
+// set wxMenu title
+// ---------------------------------------------------------------------------
+
+void wxMenu::SetTitle(const wxString& label)
+{
+ m_title = label;
+
+ if ( IsAttached() && GetMenuBar()->IsAttached() )
+ {
+ // Regenerate the menu resource
+ GetMenuBar()->Refresh();
+ }
+}
+
+// ---------------------------------------------------------------------------
+// event processing
+// ---------------------------------------------------------------------------
+
+bool wxMenu::PalmCommand(WXUINT WXUNUSED(param), WXWORD id)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// other
+// ---------------------------------------------------------------------------
+
+wxWindow *wxMenu::GetWindow() const
+{
+ return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// Menu Bar
+// ---------------------------------------------------------------------------
+
+void wxMenuBar::Init()
+{
+}
+
+wxMenuBar::wxMenuBar()
+{
+}
+
+wxMenuBar::wxMenuBar( long WXUNUSED(style) )
+{
+}
+
+wxMenuBar::wxMenuBar(int count, wxMenu *menus[], const wxString titles[])
+{
+}
+
+wxMenuBar::~wxMenuBar()
+{
+}
+
+// ---------------------------------------------------------------------------
+// wxMenuBar helpers
+// ---------------------------------------------------------------------------
+
+void wxMenuBar::Refresh()
+{
+ wxCHECK_RET( IsAttached(), wxT("can't refresh unattached menubar") );
+
+ // Regenerate the menu resource
+ LoadMenu();
+}
+
+WXHMENU wxMenuBar::Create()
+{
+ return NULL;
+}
+
+int wxMenuBar::PalmPositionForWxMenu(wxMenu *menu, int wxpos)
+{
+ return -1;
+}
+
+// ---------------------------------------------------------------------------
+// wxMenuBar functions to work with the top level submenus
+// ---------------------------------------------------------------------------
+
+void wxMenuBar::EnableTop(size_t pos, bool enable)
+{
+ // Palm OS does not have support for grayed or disabled items
+}
+
+void wxMenuBar::SetLabelTop(size_t pos, const wxString& label)
+{
+ wxCHECK_RET( pos < GetMenuCount(), wxT("invalid menu index") );
+
+ m_titles[pos]=wxStripMenuCodes(label);
+
+ if ( !IsAttached() )
+ {
+ return;
+ }
+
+ // Regenerate the menu resource
+ Refresh();
+}
+
+wxString wxMenuBar::GetLabelTop(size_t pos) const
+{
+ wxCHECK_MSG( pos < GetMenuCount(), wxEmptyString,
+ wxT("invalid menu index in wxMenuBar::GetLabelTop") );
+
+ return wxMenuItem::GetLabelFromText(m_titles[pos]);
+}
+
+// ---------------------------------------------------------------------------
+// wxMenuBar construction
+// ---------------------------------------------------------------------------
+
+wxMenu *wxMenuBar::Replace(size_t pos, wxMenu *menu, const wxString& title)
+{
+ wxMenu *menuOld = wxMenuBarBase::Replace(pos, menu, title);
+ if ( !menuOld )
+ return NULL;
+
+ m_titles[pos]=wxStripMenuCodes(title);
+
+ if ( IsAttached() )
+ {
+ // Regenerate the menu resource
+ Refresh();
+ }
+
+ return menuOld;
+}
+
+bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title)
+{
+ if ( !wxMenuBarBase::Insert(pos, menu, title) )
+ return FALSE;
+
+ m_titles.Insert(wxStripMenuCodes(title), pos);
+
+ if ( IsAttached() )
+ {
+ // Regenerate the menu resource
+ Refresh();
+ }
+
+ return TRUE;
+}
+
+bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
+{
+ if ( !wxMenuBarBase::Append(menu, title) )
+ return FALSE;
+
+ m_titles.Add(wxStripMenuCodes(title));
+
+ if(IsAttached())
+ {
+ // Regenerate the menu resource
+ Refresh();
+ }
+
+ return TRUE;
+}
+
+wxMenu *wxMenuBar::Remove(size_t pos)
+{
+ wxMenu *menu = wxMenuBarBase::Remove(pos);
+ if ( !menu )
+ return NULL;
+
+ m_titles.RemoveAt(pos);
+
+ if (IsAttached())
+ {
+ // Regenerate the menu resource
+ Refresh();
+ }
+
+ return menu;
+}
+
+#if wxUSE_ACCEL
+
+void wxMenuBar::RebuildAccelTable()
+{
+}
+
+#endif // wxUSE_ACCEL
+
+int wxMenuBar::ProcessCommand(int ItemID)
+{
+ if(!IsAttached())
+ return -1;
+
+ int MenuNum=(ItemID/1000)-1;
+ int ItemNum=(ItemID-(1000*(MenuNum+1)));
+
+ // Should never happen, but it doesn't hurt to check anyway.
+ if(MenuNum>GetMenuCount())
+ return -1;
+
+ // Get the menu
+ wxMenu *ActiveMenu=GetMenu(MenuNum);
+
+ // Make sure this is a valid item.
+ if(ItemNum>ActiveMenu->GetMenuItemCount())
+ return -1;
+
+ // Get the item
+ wxMenuItem *ActiveItem=ActiveMenu->FindItemByPosition(ItemNum);
+ int ActiveID=ActiveItem->GetId();
+
+ return ActiveID;
+}
+
+/* Palm OS does not have good dynamic menu support. About all you can do with
+ * the standard API calls is to add new items to an existing drop-down menu and
+ * hide/show items in a drop-down menu. It is impossible to add, hide, or
+ * change the label on a drop-down menu.
+ *
+ * The easiest and simplest way around this limitation is to modify the Palm OS
+ * MenuBarType structure directly. This gives limited ability to change the
+ * label on a drop-down menu. I have not been able to find a safe way to add,
+ * delete, or resize drop-down menus in OS 6.
+ *
+ * The following routine attempt to work around these limitations present in the
+ * Palm OS API to provide limited dynamic menu support. This solution is far
+ * from perfect, but the only other option is to wait for PalmSource to add full
+ * dynamic menu support, or to recreate the Palm OS menu system from scratch.
+ *
+ * This system is limited in that no more than 4 drop-down menus are allowed per
+ * menu bar, and the label for each drop-down menu is limited to 8 characters of
+ * text. However, this menu system should work for most applications.
+ *
+ * Basically the menu routines select one of four menu bars, depending on
+ * whether or not the requested menu bar has one, two, three, or four drop-down
+ * menus.
+ *
+ * These four "template" menu bars contain one, two, three, or four drop-down
+ * menus. Each menu has a dummy menu item attached to it to allow the Palm OS
+ * MenuAddItem function to add the real items.
+ *
+ * The labels on the drop-down menus are then replaced with the labels of the
+ * real menus.
+ *
+ * The menu is then attached to the active window and the MenuAddItem API
+ * function is called to add the items to each drop-down menu. Finally,
+ * MenuHideItem is called to remove the dummy items from each drop-down menu.
+ */
+void wxMenuBar::LoadMenu()
+{
+ int i=0;
+ int j=0;
+
+ // Handle to the currently running application database
+ DmOpenRef AppDB;
+
+ // Get app database reference - needed for some Palm OS Menu API calls.
+ SysGetModuleDatabase(SysGetRefNum(), NULL, &AppDB);
+
+ // Get the number of menus
+ int NumMenus=GetMenuCount();
+
+ // Set up the pointers and handles
+ char *PalmOSMenuBarPtr;
+ MemHandle PalmOSMenuBar;
+
+ // Load the menu template and set up the menu pointers
+ if(NumMenus==1)
+ {
+ PalmOSMenuBar=DmGetResource(AppDB,'MBAR',1000);
+ PalmOSMenuBarPtr=(char *)MemHandleLock(PalmOSMenuBar);
+
+ PalmOSMenuBarPtr+=74;
+ }
+ else if(NumMenus==2)
+ {
+ PalmOSMenuBar=DmGetResource(AppDB,'MBAR',2000);
+ PalmOSMenuBarPtr=(char *)MemHandleLock(PalmOSMenuBar);
+
+ PalmOSMenuBarPtr+=116;
+ }
+ else if(NumMenus==3)
+ {
+ PalmOSMenuBar=DmGetResource(AppDB,'MBAR',3000);
+ PalmOSMenuBarPtr=(char *)MemHandleLock(PalmOSMenuBar);
+
+ PalmOSMenuBarPtr+=158;
+ }
+ else
+ {
+ // We support a maximum of 4 menus, so make sure that do not create
+ // more than we can handle.
+ NumMenus=4;
+
+ PalmOSMenuBar=DmGetResource(AppDB,'MBAR',4000);
+ PalmOSMenuBarPtr=(char *)MemHandleLock(PalmOSMenuBar);
+
+ PalmOSMenuBarPtr+=200;
+ }
+
+ // Set the proper names for the drop-down triggers.
+ for(i=0;i<NumMenus;i++)
+ {
+ // Clear out the old label
+ char buffer[8]={' ',' ',' ',' ',' ',' ',' ',' '};
+ MemMove(PalmOSMenuBarPtr,buffer,8);
+
+ wxString MenuTitle=m_titles.Item(i);
+
+ // Make sure we don't copy more than 8 bytes for the label
+ int LengthToCopy=MenuTitle.length();
+ if(LengthToCopy>8)
+ LengthToCopy=8;
+
+ MemMove(PalmOSMenuBarPtr,MenuTitle,LengthToCopy);
+ PalmOSMenuBarPtr+=11;
+ }
+
+ // We are done with the menu pointer.
+ MemHandleUnlock(PalmOSMenuBar);
+ DmReleaseResource(PalmOSMenuBar);
+
+ // We must make the menu active before we can add items to the drop-down
+ // triggers.
+ FrmSetMenu(FrmGetActiveForm(),AppDB,NumMenus*1000);
+
+ /* Add the menu items to the drop-down triggers. This must be done after
+ * setting the triggers, because setting the names of drop-down triggers
+ * that have a variable number of items requires carefull calculation of
+ * the offsets in the MenuBarType structure. Setting the triggers first
+ * avoids this.
+ */
+ for(i=0;i<NumMenus;i++)
+ {
+ wxMenu *CurrentMenu=GetMenu(i);
+
+ for(j=0;j<CurrentMenu->GetMenuItemCount();j++)
+ {
+ wxMenuItem *CurrentItem=CurrentMenu->FindItemByPosition(j);
+ wxString ItemLabel=CurrentItem->GetLabel();
+
+ if(CurrentItem->IsSeparator()==true)
+ {
+ char Separator=MenuSeparatorChar;
+ if(j==0)
+ MenuAddItem(9000+i,((i*1000)+1000)+j,0x00,&Separator);
+ else
+ MenuAddItem(((i*1000)+1000)+j-1,((i*1000)+1000)+j,0x00,&Separator);
+ }
+ else
+ {
+ if(j==0)
+ MenuAddItem(9000+i,((i*1000)+1000)+j,0x00,ItemLabel);
+ else
+ MenuAddItem(((i*1000)+1000)+j-1,((i*1000)+1000)+j,0x00,ItemLabel);
+ }
+ }
+
+ // Hide the dummy menu item, since we don't need it anymore.
+ MenuHideItem(9000+i);
+ }
+}
+
+void wxMenuBar::Attach(wxFrame *frame)
+{
+ wxMenuBarBase::Attach(frame);
+
+ LoadMenu();
+}
+
+#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !defined(__POCKETPC__) && !defined(__SMARTPHONE__))
+bool wxMenuBar::AddAdornments(long style)
+{
+ return false;
+}
+#endif
+
+void wxMenuBar::Detach()
+{
+ wxMenuBarBase::Detach();
+}
+
+#endif // wxUSE_MENUS
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: menuitem.cpp
+// Purpose: wxMenuItem implementation
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "menuitem.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_MENUS
+
+#ifndef WX_PRECOMP
+ #include "wx/font.h"
+ #include "wx/bitmap.h"
+ #include "wx/settings.h"
+ #include "wx/font.h"
+ #include "wx/window.h"
+ #include "wx/accel.h"
+ #include "wx/menu.h"
+ #include "wx/string.h"
+#endif
+
+#include "wx/menuitem.h"
+#include "wx/log.h"
+
+#if wxUSE_ACCEL
+ #include "wx/accel.h"
+#endif // wxUSE_ACCEL
+
+// ---------------------------------------------------------------------------
+// macro
+// ---------------------------------------------------------------------------
+
+// conditional compilation
+#if wxUSE_OWNER_DRAWN
+ #define OWNER_DRAWN_ONLY( code ) if ( IsOwnerDrawn() ) code
+#else // !wxUSE_OWNER_DRAWN
+ #define OWNER_DRAWN_ONLY( code )
+#endif // wxUSE_OWNER_DRAWN/!wxUSE_OWNER_DRAWN
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// dynamic classes implementation
+// ----------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+
+bool wxMenuItemStreamingCallback( const wxObject *object, wxWriter * , wxPersister * , wxxVariantArray & )
+{
+ const wxMenuItem * mitem = dynamic_cast<const wxMenuItem*>(object) ;
+ if ( mitem->GetMenu() && !mitem->GetMenu()->GetTitle().IsEmpty() )
+ {
+ // we don't stream out the first two items for menus with a title, they will be reconstructed
+ if ( mitem->GetMenu()->FindItemByPosition(0) == mitem || mitem->GetMenu()->FindItemByPosition(1) == mitem )
+ return false ;
+ }
+ return true ;
+}
+
+wxBEGIN_ENUM( wxItemKind )
+ wxENUM_MEMBER( wxITEM_SEPARATOR )
+ wxENUM_MEMBER( wxITEM_NORMAL )
+ wxENUM_MEMBER( wxITEM_CHECK )
+ wxENUM_MEMBER( wxITEM_RADIO )
+wxEND_ENUM( wxItemKind )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI_CALLBACK(wxMenuItem, wxObject,"wx/menuitem.h",wxMenuItemStreamingCallback)
+
+wxBEGIN_PROPERTIES_TABLE(wxMenuItem)
+ wxPROPERTY( Parent,wxMenu*, SetMenu, GetMenu, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY( Id,int, SetId, GetId, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY( Text, wxString , SetText, GetText, wxString(), 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY( Help, wxString , SetHelp, GetHelp, wxString(), 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxREADONLY_PROPERTY( Kind, wxItemKind , GetKind , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY( SubMenu,wxMenu*, SetSubMenu, GetSubMenu, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY( Enabled , bool , Enable , IsEnabled , wxxVariant((bool)true) , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Checked , bool , Check , IsChecked , wxxVariant((bool)false) , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Checkable , bool , SetCheckable , IsCheckable , wxxVariant((bool)false) , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxMenuItem)
+wxEND_HANDLERS_TABLE()
+
+wxDIRECT_CONSTRUCTOR_6( wxMenuItem , wxMenu* , Parent , int , Id , wxString , Text , wxString , Help , wxItemKind , Kind , wxMenu* , SubMenu )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject)
+#endif
+
+// ----------------------------------------------------------------------------
+// wxMenuItem
+// ----------------------------------------------------------------------------
+
+// ctor & dtor
+// -----------
+
+wxMenuItem::wxMenuItem(wxMenu *pParentMenu,
+ int id,
+ const wxString& text,
+ const wxString& strHelp,
+ wxItemKind kind,
+ wxMenu *pSubMenu)
+ : wxMenuItemBase(pParentMenu, id, text, strHelp, kind, pSubMenu)
+#if wxUSE_OWNER_DRAWN
+ , wxOwnerDrawn(text, kind == wxITEM_CHECK, true)
+#endif // owner drawn
+{
+}
+
+wxMenuItem::wxMenuItem(wxMenu *parentMenu,
+ int id,
+ const wxString& text,
+ const wxString& help,
+ bool isCheckable,
+ wxMenu *subMenu)
+ : wxMenuItemBase(parentMenu, id, text, help,
+ isCheckable ? wxITEM_CHECK : wxITEM_NORMAL, subMenu)
+#if wxUSE_OWNER_DRAWN
+ , wxOwnerDrawn(text, isCheckable, true)
+#endif // owner drawn
+{
+}
+
+void wxMenuItem::Init()
+{
+}
+
+wxMenuItem::~wxMenuItem()
+{
+}
+
+// misc
+// ----
+
+// return the id for calling Win32 API functions
+int wxMenuItem::GetRealId() const
+{
+ return 0;
+}
+
+// get item state
+// --------------
+
+bool wxMenuItem::IsChecked() const
+{
+ return false;
+}
+
+/* static */
+wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
+{
+ return wxStripMenuCodes(text);
+}
+
+// radio group stuff
+// -----------------
+
+void wxMenuItem::SetAsRadioGroupStart()
+{
+}
+
+void wxMenuItem::SetRadioGroupStart(int start)
+{
+}
+
+void wxMenuItem::SetRadioGroupEnd(int end)
+{
+}
+
+// change item state
+// -----------------
+
+void wxMenuItem::Enable(bool enable)
+{
+}
+
+void wxMenuItem::Check(bool check)
+{
+}
+
+void wxMenuItem::SetText(const wxString& text)
+{
+}
+
+void wxMenuItem::SetCheckable(bool checkable)
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxMenuItemBase
+// ----------------------------------------------------------------------------
+
+wxMenuItem *wxMenuItemBase::New(wxMenu *parentMenu,
+ int id,
+ const wxString& name,
+ const wxString& help,
+ wxItemKind kind,
+ wxMenu *subMenu)
+{
+ return new wxMenuItem(parentMenu, id, name, help, kind, subMenu);
+}
+
+#endif // wxUSE_MENUS
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/metafile.cpp
+// Purpose: wxMetafileDC etc.
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "metafile.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/setup.h"
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/utils.h"
+ #include "wx/app.h"
+#endif
+
+#include "wx/metafile.h"
+
+#if wxUSE_METAFILE && !defined(wxMETAFILE_IS_ENH)
+
+#include "wx/clipbrd.h"
+#include "wx/palmos/private.h"
+
+#include <stdio.h>
+#include <string.h>
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxMetafile, wxObject)
+IMPLEMENT_ABSTRACT_CLASS(wxMetafileDC, wxDC)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxMetafileRefData
+// ----------------------------------------------------------------------------
+
+/*
+ * Metafiles
+ * Currently, the only purpose for making a metafile is to put
+ * it on the clipboard.
+ */
+
+wxMetafileRefData::wxMetafileRefData()
+{
+}
+
+wxMetafileRefData::~wxMetafileRefData()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxMetafile
+// ----------------------------------------------------------------------------
+
+wxMetafile::wxMetafile(const wxString& file)
+{
+}
+
+wxMetafile::~wxMetafile()
+{
+}
+
+bool wxMetafile::SetClipboard(int width, int height)
+{
+ return false;
+}
+
+bool wxMetafile::Play(wxDC *dc)
+{
+ return false;
+}
+
+void wxMetafile::SetHMETAFILE(WXHANDLE mf)
+{
+}
+
+void wxMetafile::SetWindowsMappingMode(int mm)
+{
+}
+
+// ----------------------------------------------------------------------------
+// Metafile device context
+// ----------------------------------------------------------------------------
+
+// Original constructor that does not takes origin and extent. If you use this,
+// *DO* give origin/extent arguments to wxMakeMetafilePlaceable.
+wxMetafileDC::wxMetafileDC(const wxString& file)
+{
+}
+
+// New constructor that takes origin and extent. If you use this, don't
+// give origin/extent arguments to wxMakeMetafilePlaceable.
+wxMetafileDC::wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg)
+{
+}
+
+wxMetafileDC::~wxMetafileDC()
+{
+}
+
+void wxMetafileDC::GetTextExtent(const wxString& string, long *x, long *y,
+ long *descent, long *externalLeading, wxFont *theFont, bool WXUNUSED(use16bit)) const
+{
+}
+
+wxMetafile *wxMetafileDC::Close()
+{
+ return NULL;
+}
+
+void wxMetafileDC::SetMapMode(int mode)
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxMakeMetafilePlaceable
+// ----------------------------------------------------------------------------
+#ifdef __WIN32__
+struct RECT32
+{
+ short left;
+ short top;
+ short right;
+ short bottom;
+};
+
+struct mfPLACEABLEHEADER {
+ DWORD key;
+ short hmf;
+ RECT32 bbox;
+ WORD inch;
+ DWORD reserved;
+ WORD checksum;
+};
+#else
+struct mfPLACEABLEHEADER {
+ DWORD key;
+ HANDLE hmf;
+ RECT bbox;
+ WORD inch;
+ DWORD reserved;
+ WORD checksum;
+};
+#endif
+
+/*
+ * Pass filename of existing non-placeable metafile, and bounding box.
+ * Adds a placeable metafile header, sets the mapping mode to anisotropic,
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
+ *
+ */
+
+bool wxMakeMetafilePlaceable(const wxString& filename, float scale)
+{
+ return false;
+}
+
+bool wxMakeMetafilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale, bool useOriginAndExtent)
+{
+ return false;
+}
+
+
+#if wxUSE_DRAG_AND_DROP
+
+// ----------------------------------------------------------------------------
+// wxMetafileDataObject
+// ----------------------------------------------------------------------------
+
+size_t wxMetafileDataObject::GetDataSize() const
+{
+ return 0;
+}
+
+bool wxMetafileDataObject::GetDataHere(void *buf) const
+{
+ return false;
+}
+
+bool wxMetafileDataObject::SetData(size_t WXUNUSED(len), const void *buf)
+{
+ return false;
+}
+
+#endif // wxUSE_DRAG_AND_DROP
+
+#endif // wxUSE_METAFILE
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/mimetype.cpp
+// Purpose: classes and functions to manage MIME types
+// Author: Vadim Zeitlin
+// Modified by:
+// Created: 23.09.98
+// RCS-ID: $Id$
+// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
+// Licence: wxWindows licence (part of wxExtra library)
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef __GNUG__
+#pragma implementation "mimetype.h"
+#endif
+
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+// This really doesn't apply to Palm OS
+#ifdef __PALMOS__
+
+#if wxUSE_MIMETYPE
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #if wxUSE_GUI
+ #include "wx/icon.h"
+ #include "wx/msgdlg.h"
+ #endif
+#endif //WX_PRECOMP
+
+#include "wx/log.h"
+#include "wx/file.h"
+#include "wx/iconloc.h"
+#include "wx/intl.h"
+#include "wx/dynarray.h"
+#include "wx/confbase.h"
+
+#ifdef __WXMSW__
+ #include "wx/palmos/registry.h"
+ #include "wx/palmos/private.h"
+#endif // OS
+
+#include "wx/palmos/mimetype.h"
+
+// other standard headers
+#include <ctype.h>
+
+// in case we're compiling in non-GUI mode
+class WXDLLEXPORT wxIcon;
+
+// These classes use Windows registry to retrieve the required information.
+//
+// Keys used (not all of them are documented, so it might actually stop working
+// in future versions of Windows...):
+// 1. "HKCR\MIME\Database\Content Type" contains subkeys for all known MIME
+// types, each key has a string value "Extension" which gives (dot preceded)
+// extension for the files of this MIME type.
+//
+// 2. "HKCR\.ext" contains
+// a) unnamed value containing the "filetype"
+// b) value "Content Type" containing the MIME type
+//
+// 3. "HKCR\filetype" contains
+// a) unnamed value containing the description
+// b) subkey "DefaultIcon" with single unnamed value giving the icon index in
+// an icon file
+// c) shell\open\command and shell\open\print subkeys containing the commands
+// to open/print the file (the positional parameters are introduced by %1,
+// %2, ... in these strings, we change them to %s ourselves)
+
+// although I don't know of any official documentation which mentions this
+// location, uses it, so it isn't likely to change
+static const wxChar *MIME_DATABASE_KEY = wxT("MIME\\Database\\Content Type\\");
+
+// this function replaces Microsoft %1 with Unix-like %s
+static bool CanonicalizeParams(wxString& command)
+{
+ // transform it from '%1' to '%s' style format string (now also test for %L
+ // as apparently MS started using it as well for the same purpose)
+
+ // NB: we don't make any attempt to verify that the string is valid, i.e.
+ // doesn't contain %2, or second %1 or .... But we do make sure that we
+ // return a string with _exactly_ one '%s'!
+ bool foundFilename = false;
+ size_t len = command.length();
+ for ( size_t n = 0; (n < len) && !foundFilename; n++ )
+ {
+ if ( command[n] == wxT('%') &&
+ (n + 1 < len) &&
+ (command[n + 1] == wxT('1') || command[n + 1] == wxT('L')) )
+ {
+ // replace it with '%s'
+ command[n + 1] = wxT('s');
+
+ foundFilename = true;
+ }
+ }
+
+ return foundFilename;
+}
+
+void wxFileTypeImpl::Init(const wxString& strFileType, const wxString& ext)
+{
+ // VZ: does it? (FIXME)
+ wxCHECK_RET( !ext.IsEmpty(), _T("needs an extension") );
+
+ if ( ext[0u] != wxT('.') ) {
+ m_ext = wxT('.');
+ }
+ m_ext << ext;
+
+ m_strFileType = strFileType;
+ if ( !strFileType ) {
+ m_strFileType = m_ext.AfterFirst('.') + _T("_auto_file");
+ }
+}
+
+wxString wxFileTypeImpl::GetVerbPath(const wxString& verb) const
+{
+ wxString path;
+ path << m_strFileType << _T("\\shell\\") << verb << _T("\\command");
+ return path;
+}
+
+size_t wxFileTypeImpl::GetAllCommands(wxArrayString *verbs,
+ wxArrayString *commands,
+ const wxFileType::MessageParameters& params) const
+{
+ wxCHECK_MSG( !m_ext.IsEmpty(), 0, _T("GetAllCommands() needs an extension") );
+
+ if ( m_strFileType.IsEmpty() )
+ {
+ // get it from the registry
+ wxFileTypeImpl *self = wxConstCast(this, wxFileTypeImpl);
+ wxRegKey rkey(wxRegKey::HKCR, m_ext);
+ if ( !rkey.Exists() || !rkey.QueryValue(wxEmptyString, self->m_strFileType) )
+ {
+ wxLogDebug(_T("Can't get the filetype for extension '%s'."),
+ m_ext.c_str());
+
+ return 0;
+ }
+ }
+
+ // enum all subkeys of HKCR\filetype\shell
+ size_t count = 0;
+ wxRegKey rkey(wxRegKey::HKCR, m_strFileType + _T("\\shell"));
+ long dummy;
+ wxString verb;
+ bool ok = rkey.GetFirstKey(verb, dummy);
+ while ( ok )
+ {
+ wxString command = wxFileType::ExpandCommand(GetCommand(verb), params);
+
+ // we want the open bverb to eb always the first
+
+ if ( verb.CmpNoCase(_T("open")) == 0 )
+ {
+ if ( verbs )
+ verbs->Insert(verb, 0);
+ if ( commands )
+ commands->Insert(command, 0);
+ }
+ else // anything else than "open"
+ {
+ if ( verbs )
+ verbs->Add(verb);
+ if ( commands )
+ commands->Add(command);
+ }
+
+ count++;
+
+ ok = rkey.GetNextKey(verb, dummy);
+ }
+
+ return count;
+}
+
+// ----------------------------------------------------------------------------
+// modify the registry database
+// ----------------------------------------------------------------------------
+
+bool wxFileTypeImpl::EnsureExtKeyExists()
+{
+ wxRegKey rkey(wxRegKey::HKCR, m_ext);
+ if ( !rkey.Exists() )
+ {
+ if ( !rkey.Create() || !rkey.SetValue(wxEmptyString, m_strFileType) )
+ {
+ wxLogError(_("Failed to create registry entry for '%s' files."),
+ m_ext.c_str());
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+// ----------------------------------------------------------------------------
+// get the command to use
+// ----------------------------------------------------------------------------
+
+wxString wxFileTypeImpl::GetCommand(const wxChar *verb) const
+{
+ // suppress possible error messages
+ wxLogNull nolog;
+ wxString strKey;
+
+ if ( wxRegKey(wxRegKey::HKCR, m_ext + _T("\\shell")).Exists() )
+ strKey = m_ext;
+ if ( wxRegKey(wxRegKey::HKCR, m_strFileType + _T("\\shell")).Exists() )
+ strKey = m_strFileType;
+
+ if ( !strKey )
+ {
+ // no info
+ return wxEmptyString;
+ }
+
+ strKey << wxT("\\shell\\") << verb;
+ wxRegKey key(wxRegKey::HKCR, strKey + _T("\\command"));
+ wxString command;
+ if ( key.Open(wxRegKey::Read) ) {
+ // it's the default value of the key
+ if ( key.QueryValue(wxEmptyString, command) ) {
+ bool foundFilename = CanonicalizeParams(command);
+
+#if wxUSE_IPC
+ // look whether we must issue some DDE requests to the application
+ // (and not just launch it)
+ strKey += _T("\\DDEExec");
+ wxRegKey keyDDE(wxRegKey::HKCR, strKey);
+ if ( keyDDE.Open(wxRegKey::Read) ) {
+ wxString ddeCommand, ddeServer, ddeTopic;
+ keyDDE.QueryValue(wxEmptyString, ddeCommand);
+ ddeCommand.Replace(_T("%1"), _T("%s"));
+
+ wxRegKey(wxRegKey::HKCR, strKey + _T("\\Application")).
+ QueryValue(wxEmptyString, ddeServer);
+ wxRegKey(wxRegKey::HKCR, strKey + _T("\\Topic")).
+ QueryValue(wxEmptyString, ddeTopic);
+
+ if (ddeTopic.IsEmpty())
+ ddeTopic = wxT("System");
+
+ // HACK: we use a special feature of wxExecute which exists
+ // just because we need it here: it will establish DDE
+ // conversation with the program it just launched
+ command.Prepend(_T("WX_DDE#"));
+ command << _T('#') << ddeServer
+ << _T('#') << ddeTopic
+ << _T('#') << ddeCommand;
+ }
+ else
+#endif // wxUSE_IPC
+ if ( !foundFilename )
+ {
+ // we didn't find any '%1' - the application doesn't know which
+ // file to open (note that we only do it if there is no DDEExec
+ // subkey)
+ //
+ // HACK: append the filename at the end, hope that it will do
+ command << wxT(" %s");
+ }
+ }
+ }
+ //else: no such file type or no value, will return empty string
+
+ return command;
+}
+
+bool
+wxFileTypeImpl::GetOpenCommand(wxString *openCmd,
+ const wxFileType::MessageParameters& params)
+ const
+{
+ wxString cmd = GetCommand(wxT("open"));
+
+ *openCmd = wxFileType::ExpandCommand(cmd, params);
+
+ return !openCmd->IsEmpty();
+}
+
+bool
+wxFileTypeImpl::GetPrintCommand(wxString *printCmd,
+ const wxFileType::MessageParameters& params)
+ const
+{
+ wxString cmd = GetCommand(wxT("print"));
+
+ *printCmd = wxFileType::ExpandCommand(cmd, params);
+
+ return !printCmd->IsEmpty();
+}
+
+// ----------------------------------------------------------------------------
+// getting other stuff
+// ----------------------------------------------------------------------------
+
+// TODO this function is half implemented
+bool wxFileTypeImpl::GetExtensions(wxArrayString& extensions)
+{
+ if ( m_ext.IsEmpty() ) {
+ // the only way to get the list of extensions from the file type is to
+ // scan through all extensions in the registry - too slow...
+ return FALSE;
+ }
+ else {
+ extensions.Empty();
+ extensions.Add(m_ext);
+
+ // it's a lie too, we don't return _all_ extensions...
+ return TRUE;
+ }
+}
+
+bool wxFileTypeImpl::GetMimeType(wxString *mimeType) const
+{
+ // suppress possible error messages
+ wxLogNull nolog;
+ wxRegKey key(wxRegKey::HKCR, m_ext);
+
+ return key.Open(wxRegKey::Read) &&
+ key.QueryValue(wxT("Content Type"), *mimeType);
+}
+
+bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const
+{
+ wxString s;
+
+ if ( !GetMimeType(&s) )
+ {
+ return FALSE;
+ }
+
+ mimeTypes.Clear();
+ mimeTypes.Add(s);
+ return TRUE;
+}
+
+
+bool wxFileTypeImpl::GetIcon(wxIconLocation *iconLoc) const
+{
+ wxString strIconKey;
+ strIconKey << m_strFileType << wxT("\\DefaultIcon");
+
+ // suppress possible error messages
+ wxLogNull nolog;
+ wxRegKey key(wxRegKey::HKCR, strIconKey);
+
+ if ( key.Open(wxRegKey::Read) ) {
+ wxString strIcon;
+ // it's the default value of the key
+ if ( key.QueryValue(wxEmptyString, strIcon) ) {
+ // the format is the following: <full path to file>, <icon index>
+ // NB: icon index may be negative as well as positive and the full
+ // path may contain the environment variables inside '%'
+ wxString strFullPath = strIcon.BeforeLast(wxT(',')),
+ strIndex = strIcon.AfterLast(wxT(','));
+
+ // index may be omitted, in which case BeforeLast(',') is empty and
+ // AfterLast(',') is the whole string
+ if ( strFullPath.IsEmpty() ) {
+ strFullPath = strIndex;
+ strIndex = wxT("0");
+ }
+
+ if ( iconLoc )
+ {
+ iconLoc->SetFileName(wxExpandEnvVars(strFullPath));
+
+ iconLoc->SetIndex(wxAtoi(strIndex));
+ }
+
+ return TRUE;
+ }
+ }
+
+ // no such file type or no value or incorrect icon entry
+ return FALSE;
+}
+
+bool wxFileTypeImpl::GetDescription(wxString *desc) const
+{
+ // suppress possible error messages
+ wxLogNull nolog;
+ wxRegKey key(wxRegKey::HKCR, m_strFileType);
+
+ if ( key.Open(wxRegKey::Read) ) {
+ // it's the default value of the key
+ if ( key.QueryValue(wxEmptyString, *desc) ) {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+// helper function
+wxFileType *
+wxMimeTypesManagerImpl::CreateFileType(const wxString& filetype, const wxString& ext)
+{
+ wxFileType *fileType = new wxFileType;
+ fileType->m_impl->Init(filetype, ext);
+ return fileType;
+}
+
+// extension -> file type
+wxFileType *
+wxMimeTypesManagerImpl::GetFileTypeFromExtension(const wxString& ext)
+{
+ // add the leading point if necessary
+ wxString str;
+ if ( ext[0u] != wxT('.') ) {
+ str = wxT('.');
+ }
+ str << ext;
+
+ // suppress possible error messages
+ wxLogNull nolog;
+
+ bool knownExtension = FALSE;
+
+ wxString strFileType;
+ wxRegKey key(wxRegKey::HKCR, str);
+ if ( key.Open(wxRegKey::Read) ) {
+ // it's the default value of the key
+ if ( key.QueryValue(wxEmptyString, strFileType) ) {
+ // create the new wxFileType object
+ return CreateFileType(strFileType, ext);
+ }
+ else {
+ // this extension doesn't have a filetype, but it's known to the
+ // system and may be has some other useful keys (open command or
+ // content-type), so still return a file type object for it
+ knownExtension = TRUE;
+ }
+ }
+
+ if ( !knownExtension )
+ {
+ // unknown extension
+ return NULL;
+ }
+
+ return CreateFileType(wxEmptyString, ext);
+}
+
+/*
+wxFileType *
+wxMimeTypesManagerImpl::GetOrAllocateFileTypeFromExtension(const wxString& ext)
+{
+ wxFileType *fileType = GetFileTypeFromExtension(ext);
+ if ( !fileType )
+ {
+ fileType = CreateFileType(wxEmptyString, ext);
+ }
+
+ return fileType;
+}
+*/
+
+// MIME type -> extension -> file type
+wxFileType *
+wxMimeTypesManagerImpl::GetFileTypeFromMimeType(const wxString& mimeType)
+{
+ wxString strKey = MIME_DATABASE_KEY;
+ strKey << mimeType;
+
+ // suppress possible error messages
+ wxLogNull nolog;
+
+ wxString ext;
+ wxRegKey key(wxRegKey::HKCR, strKey);
+ if ( key.Open(wxRegKey::Read) ) {
+ if ( key.QueryValue(wxT("Extension"), ext) ) {
+ return GetFileTypeFromExtension(ext);
+ }
+ }
+
+ // unknown MIME type
+ return NULL;
+}
+
+size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& mimetypes)
+{
+ // enumerate all keys under MIME_DATABASE_KEY
+ wxRegKey key(wxRegKey::HKCR, MIME_DATABASE_KEY);
+
+ wxString type;
+ long cookie;
+ bool cont = key.GetFirstKey(type, cookie);
+ while ( cont )
+ {
+ mimetypes.Add(type);
+
+ cont = key.GetNextKey(type, cookie);
+ }
+
+ return mimetypes.GetCount();
+}
+
+// ----------------------------------------------------------------------------
+// create a new association
+// ----------------------------------------------------------------------------
+
+wxFileType *wxMimeTypesManagerImpl::Associate(const wxFileTypeInfo& ftInfo)
+{
+ wxCHECK_MSG( !ftInfo.GetExtensions().IsEmpty(), NULL,
+ _T("Associate() needs extension") );
+
+ bool ok;
+ int iExtCount = 0 ;
+ wxString filetype;
+ wxString extWithDot;
+
+ wxString ext = ftInfo.GetExtensions()[iExtCount];
+
+ wxCHECK_MSG( !ext.empty(), NULL,
+ _T("Associate() needs non empty extension") );
+
+ if ( ext[0u] != _T('.') )
+ extWithDot = _T('.');
+ extWithDot += ext;
+
+ // start by setting the HKCR\\.ext entries
+ // default is filetype; content type is mimetype
+ const wxString& filetypeOrig = ftInfo.GetShortDesc();
+
+ wxRegKey key(wxRegKey::HKCR, extWithDot);
+ if ( !key.Exists() )
+ {
+ // create the mapping from the extension to the filetype
+ ok = key.Create();
+ if ( ok )
+ {
+
+ if ( filetypeOrig.empty() )
+ {
+ // make it up from the extension
+ filetype << extWithDot.c_str() + 1 << _T("_file");
+ }
+ else
+ {
+ // just use the provided one
+ filetype = filetypeOrig;
+ }
+
+ key.SetValue(wxEmptyString, filetype);
+ }
+ }
+ else
+ {
+ // key already exists, maybe we want to change it ??
+ if (!filetypeOrig.empty())
+ {
+ filetype = filetypeOrig;
+ key.SetValue(wxEmptyString, filetype);
+ }
+ else
+ {
+ key.QueryValue(wxEmptyString, filetype);
+ }
+ }
+ // now set a mimetypeif we have it, but ignore it if none
+ const wxString& mimetype = ftInfo.GetMimeType();
+ if ( !mimetype.empty() )
+ {
+ // set the MIME type
+ ok = key.SetValue(_T("Content Type"), mimetype);
+
+ if ( ok )
+ {
+ // create the MIME key
+ wxString strKey = MIME_DATABASE_KEY;
+ strKey << mimetype;
+ wxRegKey keyMIME(wxRegKey::HKCR, strKey);
+ ok = keyMIME.Create();
+
+ if ( ok )
+ {
+ // and provide a back link to the extension
+ keyMIME.SetValue(_T("Extension"), extWithDot);
+ }
+ }
+ }
+
+
+ // now make other extensions have the same filetype
+
+ for (iExtCount=1; iExtCount < ftInfo.GetExtensionsCount(); iExtCount++ )
+ {
+ ext = ftInfo.GetExtensions()[iExtCount];
+ if ( ext[0u] != _T('.') )
+ extWithDot = _T('.');
+ extWithDot += ext;
+
+ wxRegKey key(wxRegKey::HKCR, extWithDot);
+ if ( !key.Exists() ) key.Create();
+ key.SetValue(wxEmptyString, filetype);
+
+ // now set any mimetypes we may have, but ignore it if none
+ const wxString& mimetype = ftInfo.GetMimeType();
+ if ( !mimetype.empty() )
+ {
+ // set the MIME type
+ ok = key.SetValue(_T("Content Type"), mimetype);
+
+ if ( ok )
+ {
+ // create the MIME key
+ wxString strKey = MIME_DATABASE_KEY;
+ strKey << mimetype;
+ wxRegKey keyMIME(wxRegKey::HKCR, strKey);
+ ok = keyMIME.Create();
+
+ if ( ok )
+ {
+ // and provide a back link to the extension
+ keyMIME.SetValue(_T("Extension"), extWithDot);
+ }
+ }
+ }
+
+
+ } // end of for loop; all extensions now point to HKCR\.ext\Default
+
+ // create the filetype key itself (it will be empty for now, but
+ // SetCommand(), SetDefaultIcon() &c will use it later)
+ wxRegKey keyFT(wxRegKey::HKCR, filetype);
+ keyFT.Create();
+
+ wxFileType *ft = CreateFileType(filetype, extWithDot);
+
+ if (ft)
+ {
+ if (! ftInfo.GetOpenCommand ().IsEmpty() ) ft->SetCommand (ftInfo.GetOpenCommand (), wxT("open" ) );
+ if (! ftInfo.GetPrintCommand().IsEmpty() ) ft->SetCommand (ftInfo.GetPrintCommand(), wxT("print" ) );
+ // chris: I don't like the ->m_impl-> here FIX this ??
+ if (! ftInfo.GetDescription ().IsEmpty() ) ft->m_impl->SetDescription (ftInfo.GetDescription ()) ;
+ if (! ftInfo.GetIconFile().IsEmpty() ) ft->SetDefaultIcon (ftInfo.GetIconFile(), ftInfo.GetIconIndex() );
+
+ }
+ return ft;
+}
+
+bool wxFileTypeImpl::SetCommand(const wxString& cmd,
+ const wxString& verb,
+ bool WXUNUSED(overwriteprompt))
+{
+ wxCHECK_MSG( !m_ext.IsEmpty() && !verb.IsEmpty(), FALSE,
+ _T("SetCommand() needs an extension and a verb") );
+
+ if ( !EnsureExtKeyExists() )
+ return FALSE;
+
+ wxRegKey rkey(wxRegKey::HKCR, GetVerbPath(verb));
+#if 0
+ if ( rkey.Exists() && overwriteprompt )
+ {
+#if wxUSE_GUI
+ wxString old;
+ rkey.QueryValue(wxEmptyString, old);
+ if ( wxMessageBox
+ (
+ wxString::Format(
+ _("Do you want to overwrite the command used to %s "
+ "files with extension \"%s\" ?\nCurrent value is \n%s, "
+ "\nNew value is \n%s %1"), // bug here FIX need %1 ??
+ verb.c_str(),
+ m_ext.c_str(),
+ old.c_str(),
+ cmd.c_str()),
+ _("Confirm registry update"),
+ wxYES_NO | wxICON_QUESTION
+ ) != wxYES )
+#endif // wxUSE_GUI
+ {
+ // cancelled by user
+ return FALSE;
+ }
+ }
+#endif
+ // TODO:
+ // 1. translate '%s' to '%1' instead of always adding it
+ // 2. create DDEExec value if needed (undo GetCommand)
+ return rkey.Create() && rkey.SetValue(wxEmptyString, cmd + _T(" \"%1\"") );
+}
+
+/* // no longer used
+bool wxFileTypeImpl::SetMimeType(const wxString& mimeTypeOrig)
+{
+ wxCHECK_MSG( !m_ext.IsEmpty(), FALSE, _T("SetMimeType() needs extension") );
+
+ if ( !EnsureExtKeyExists() )
+ return FALSE;
+
+ // VZ: is this really useful? (FIXME)
+ wxString mimeType;
+ if ( !mimeTypeOrig )
+ {
+ // make up a default value for it
+ wxString cmd;
+ wxSplitPath(GetCommand(_T("open")), NULL, &cmd, NULL);
+ mimeType << _T("application/x-") << cmd;
+ }
+ else
+ {
+ mimeType = mimeTypeOrig;
+ }
+
+ wxRegKey rkey(wxRegKey::HKCR, m_ext);
+ return rkey.Create() && rkey.SetValue(_T("Content Type"), mimeType);
+}
+*/
+
+bool wxFileTypeImpl::SetDefaultIcon(const wxString& cmd, int index)
+{
+ wxCHECK_MSG( !m_ext.IsEmpty(), FALSE, _T("SetDefaultIcon() needs extension") );
+ wxCHECK_MSG( !m_strFileType.IsEmpty(), FALSE, _T("File key not found") );
+// the next line fails on a SMBshare, I think because it is case mangled
+// wxCHECK_MSG( !wxFileExists(cmd), FALSE, _T("Icon file not found.") );
+
+ if ( !EnsureExtKeyExists() )
+ return FALSE;
+
+ wxRegKey rkey(wxRegKey::HKCR, m_strFileType + _T("\\DefaultIcon"));
+
+ return rkey.Create() &&
+ rkey.SetValue(wxEmptyString,
+ wxString::Format(_T("%s,%d"), cmd.c_str(), index));
+}
+
+bool wxFileTypeImpl::SetDescription (const wxString& desc)
+{
+ wxCHECK_MSG( !m_strFileType.IsEmpty(), FALSE, _T("File key not found") );
+ wxCHECK_MSG( !desc.IsEmpty(), FALSE, _T("No file description supplied") );
+
+ if ( !EnsureExtKeyExists() )
+ return FALSE;
+
+ wxRegKey rkey(wxRegKey::HKCR, m_strFileType );
+
+ return rkey.Create() &&
+ rkey.SetValue(wxEmptyString, desc);
+}
+
+// ----------------------------------------------------------------------------
+// remove file association
+// ----------------------------------------------------------------------------
+
+bool wxFileTypeImpl::Unassociate()
+{
+ bool result = TRUE;
+ if ( !RemoveOpenCommand() )
+ result = FALSE;
+ if ( !RemoveDefaultIcon() )
+ result = FALSE;
+ if ( !RemoveMimeType() )
+ result = FALSE;
+ if ( !RemoveDescription() )
+ result = FALSE;
+
+/*
+ //this might hold other keys, eg some have CSLID keys
+ if ( result )
+ {
+ // delete the root key
+ wxRegKey key(wxRegKey::HKCR, m_ext);
+ if ( key.Exists() )
+ result = key.DeleteSelf();
+ }
+*/
+ return result;
+}
+
+bool wxFileTypeImpl::RemoveOpenCommand()
+{
+ return RemoveCommand(_T("open"));
+}
+
+bool wxFileTypeImpl::RemoveCommand(const wxString& verb)
+{
+ wxCHECK_MSG( !m_ext.IsEmpty() && !verb.IsEmpty(), FALSE,
+ _T("RemoveCommand() needs an extension and a verb") );
+
+ wxString sKey = m_strFileType;
+ wxRegKey rkey(wxRegKey::HKCR, GetVerbPath(verb));
+
+ // if the key already doesn't exist, it's a success
+ return !rkey.Exists() || rkey.DeleteSelf();
+}
+
+bool wxFileTypeImpl::RemoveMimeType()
+{
+ wxCHECK_MSG( !m_ext.IsEmpty(), FALSE, _T("RemoveMimeType() needs extension") );
+
+ wxRegKey rkey(wxRegKey::HKCR, m_ext);
+ return !rkey.Exists() || rkey.DeleteSelf();
+}
+
+bool wxFileTypeImpl::RemoveDefaultIcon()
+{
+ wxCHECK_MSG( !m_ext.IsEmpty(), FALSE,
+ _T("RemoveDefaultIcon() needs extension") );
+
+ wxRegKey rkey (wxRegKey::HKCR, m_strFileType + _T("\\DefaultIcon"));
+ return !rkey.Exists() || rkey.DeleteSelf();
+}
+
+bool wxFileTypeImpl::RemoveDescription()
+{
+ wxCHECK_MSG( !m_ext.IsEmpty(), FALSE,
+ _T("RemoveDescription() needs extension") );
+
+ wxRegKey rkey (wxRegKey::HKCR, m_strFileType );
+ return !rkey.Exists() || rkey.DeleteSelf();
+}
+
+#endif // wxUSE_MIMETYPE
+#endif // __PALMOS__
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: minifram.cpp
+// Purpose: wxMiniFrame
+// Author: Julian Smart
+// Modified by:
+// Created: 04/01/98
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "minifram.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#endif
+
+#include "wx/minifram.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame)
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: msgdlg.cpp
+// Purpose: wxMessageDialog
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "msgdlg.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+ #include "wx/defs.h"
+ #include "wx/utils.h"
+ #include "wx/dialog.h"
+ #include "wx/msgdlg.h"
+#endif
+
+IMPLEMENT_CLASS(wxMessageDialog, wxDialog)
+
+wxMessageDialog::wxMessageDialog(wxWindow *parent,
+ const wxString& message,
+ const wxString& caption,
+ long style,
+ const wxPoint& WXUNUSED(pos))
+{
+#ifdef __WXDEBUG__
+ // check for common programming errors
+ if ( (style & wxID_OK) == wxID_OK )
+ {
+ // programmer probably confused wxID_OK with wxOK. Correct one is wxOK.
+ wxFAIL_MSG( _T("wxMessageBox: Did you mean wxOK (and not wxID_OK)?") );
+ }
+#endif // __WXDEBUG__
+
+ m_caption = caption;
+ m_message = message;
+ m_dialogStyle = style;
+ m_parent = parent;
+}
+
+int wxMessageDialog::ShowModal()
+{
+ int AlertID=1000;
+ int Result=0;
+ int wxResult=wxID_OK;
+
+ // Handle to the currently running application database
+ DmOpenRef AppDB;
+ SysGetModuleDatabase(SysGetRefNum(), NULL, &AppDB);
+
+ // Translate wx styles into Palm OS styles
+ if (m_dialogStyle & wxYES_NO)
+ {
+ if (m_dialogStyle & wxCANCEL)
+ AlertID=1300; // Yes No Cancel
+ else
+ AlertID=1200; // Yes No
+ }
+ if (m_dialogStyle & wxOK)
+ {
+ if (m_dialogStyle & wxCANCEL)
+ AlertID=1100; // Ok Cancel
+ else
+ AlertID=1000; // Ok
+ }
+
+ // Add the icon styles
+ if (m_dialogStyle & wxICON_EXCLAMATION)
+ AlertID=AlertID+0; // Warning
+ else if (m_dialogStyle & wxICON_HAND)
+ AlertID=AlertID+1; // Error
+ else if (m_dialogStyle & wxICON_INFORMATION)
+ AlertID=AlertID+2; // Information
+ else if (m_dialogStyle & wxICON_QUESTION)
+ AlertID=AlertID+3; // Confirmation
+
+ // The Palm OS Dialog API does not support custom titles in a dialog box.
+ // So we have to set the title by manipulating the resource.
+
+ // Get the alert resource
+ char *AlertPtr;
+ MemHandle AlertHandle;
+ AlertHandle=DmGetResource(AppDB,'Talt',AlertID);
+
+ AlertPtr=(char *)MemHandleLock(AlertHandle);
+ AlertPtr+=8;
+
+ // Clear out any old title. This must be done with a static array of chars
+ // because using MemSet is not supported on resources and could result in
+ // crashes or unpredictable behaviour.
+ char ClearTitle[25]={' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
+ MemMove(AlertPtr,&ClearTitle,25);
+
+ // Get the title length and make sure it is not too long
+ int TitleLength=m_caption.length();
+ if(TitleLength>25)
+ TitleLength=25;
+
+ // Center the title in the window
+ int BufferLength=(25-TitleLength)/2;
+ AlertPtr+=BufferLength;
+
+ // Copy the title
+ MemMove(AlertPtr,m_caption.c_str(),TitleLength);
+
+ // Release the resource
+ MemHandleUnlock(AlertHandle);
+ DmReleaseResource(AlertHandle);
+
+ // Display the dialog
+ Result=FrmCustomAlert(AppDB,AlertID,m_message.c_str(),"","");
+
+ // Convert the Palm OS result to wxResult
+ if(AlertID<1100)
+ {
+ // Ok
+ wxResult=wxID_OK;
+ }
+ else if(AlertID<1200)
+ {
+ // Ok Cancel
+ if(Result==0)
+ wxResult=wxID_OK;
+ else
+ wxResult=wxID_CANCEL;
+ }
+ else if(AlertID<1300)
+ {
+ // Yes No
+ if(Result==0)
+ wxResult=wxID_YES;
+ else
+ wxResult=wxID_NO;
+ }
+ else
+ {
+ // Yes No Cancel
+ if(Result==0)
+ wxResult=wxID_YES;
+ else if(Result==1)
+ wxResult=wxID_NO;
+ else
+ wxResult=wxID_CANCEL;
+ }
+
+ return wxResult;
+}
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: msw/mslu.cpp
+// Purpose: Fixes for bugs in MSLU
+// Author: Vaclav Slavik
+// Modified by:
+// Created: 2002/02/17
+// RCS-ID: $Id$
+// Copyright: (c) 2002 Vaclav Slavik
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+// This may or may not apply to Palm OS in the future, but for right now Unicode
+// is not supported.
+#ifndef __PALMOS__
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#include <dir.h>
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/defs.h"
+#endif
+
+#if wxUSE_UNICODE_MSLU
+
+//------------------------------------------------------------------------
+//
+// NB: MSLU only covers Win32 API, it doesn't provide Unicode implementation of
+// libc functions. Unfortunately, some of MSVCRT wchar_t functions
+// (e.g. _wopen) don't work on Windows 9x, so we have to workaround it
+// by calling the char version. We still want to use wchar_t version on
+// NT/2000/XP, though, because they allow for Unicode file names.
+//
+// Moreover, there are bugs in unicows.dll, of course. We have to
+// workaround them, too.
+//
+//------------------------------------------------------------------------
+
+#include "wx/msw/private.h"
+#include "wx/msw/mslu.h"
+
+#include <stdio.h>
+#include <io.h>
+#include <sys/stat.h>
+
+#ifdef __VISUALC__
+ #include <direct.h>
+#endif
+
+// Undef redirection macros defined in wx/msw/mslu.h:
+#undef DrawStateW
+#undef GetOpenFileNameW
+#undef GetSaveFileNameW
+
+//------------------------------------------------------------------------
+// Wrongly implemented functions from unicows.dll
+//------------------------------------------------------------------------
+
+#if wxUSE_GUI
+
+WXDLLEXPORT int wxMSLU_DrawStateW(WXHDC dc, WXHBRUSH br, WXFARPROC outputFunc,
+ WXLPARAM lData, WXWPARAM wData,
+ int x, int y, int cx, int cy,
+ unsigned int flags)
+{
+ // VS: There's yet another bug in MSLU: DrawStateW behaves like if it was
+ // expecting char*, not wchar_t* input. We have to use DrawStateA
+ // explicitly.
+
+ if ( wxUsingUnicowsDll() )
+ {
+ return DrawStateA((HDC)dc, (HBRUSH)br, (DRAWSTATEPROC)outputFunc,
+ (LPARAM)(const char*)
+ wxConvLocal.cWX2MB((const wxChar*)lData),
+ wData, x, y, cx, cy, flags);
+ }
+ else
+ {
+ return DrawStateW((HDC)dc, (HBRUSH)br, (DRAWSTATEPROC)outputFunc,
+ lData, wData, x, y, cx, cy, flags);
+ }
+}
+
+static void wxFixOPENFILENAME(LPOPENFILENAME ofn)
+{
+#ifdef OFN_EXPLORER
+ // VS: there's a bug in unicows.dll - when multiple files are selected,
+ // of.nFileOffset doesn't point to the first filename but rather to
+ // the last component of directory name. This bug is known to MSLU
+ // developers, but they are not going to fix it: "this is a true
+ // limitation, that we have decided to live with" and "working
+ // harder on this case just did not seem worth the effort"...
+ //
+ // Our only option is to try to fix it ourselves:
+
+ if ( (ofn->Flags & OFN_ALLOWMULTISELECT) &&
+ ofn->lpstrFile[ofn->nFileOffset-1] != wxT('\0') )
+ {
+ if ( wxDirExists(ofn->lpstrFile) )
+ {
+ // 1st component is dir => multiple files selected
+ ofn->nFileOffset = wxStrlen(ofn->lpstrFile)+1;
+ }
+ }
+#endif
+}
+
+WXDLLEXPORT int wxMSLU_GetOpenFileNameW(void *ofn)
+{
+ int ret = GetOpenFileName((LPOPENFILENAME)ofn);
+ if ( wxUsingUnicowsDll() && ret != 0 )
+ wxFixOPENFILENAME((LPOPENFILENAME)ofn);
+ return ret;
+}
+
+WXDLLEXPORT int wxMSLU_GetSaveFileNameW(void *ofn)
+{
+ int ret = GetSaveFileName((LPOPENFILENAME)ofn);
+ if ( wxUsingUnicowsDll() && ret != 0 )
+ wxFixOPENFILENAME((LPOPENFILENAME)ofn);
+ return ret;
+}
+
+#endif // wxUSE_GUI
+
+//------------------------------------------------------------------------
+// Missing libc file manipulation functions in Win9x
+//------------------------------------------------------------------------
+
+#if wxUSE_BASE
+
+WXDLLEXPORT int wxMSLU__trename(const wxChar *oldname, const wxChar *newname)
+{
+ if ( wxUsingUnicowsDll() )
+ return rename(wxConvFile.cWX2MB(oldname), wxConvFile.cWX2MB(newname));
+ else
+ return _trename(oldname, newname);
+}
+
+WXDLLEXPORT int wxMSLU__tremove(const wxChar *name)
+{
+ if ( wxUsingUnicowsDll() )
+ return remove(wxConvFile.cWX2MB(name));
+ else
+ return _tremove(name);
+}
+
+#if defined( __VISUALC__ ) \
+ || ( defined(__MINGW32__) && wxCHECK_W32API_VERSION( 0, 5 ) ) \
+ || ( defined(__MWERKS__) && defined(__WXMSW__) ) \
+ || ( defined(__BORLANDC__) && (__BORLANDC__ > 0x460) )
+
+WXDLLEXPORT int wxMSLU__wopen(const wxChar *name, int flags, int mode)
+{
+ if ( wxUsingUnicowsDll() )
+#ifdef __BORLANDC__
+ return open(wxConvFile.cWX2MB(name), flags, mode);
+#else
+ return _open(wxConvFile.cWX2MB(name), flags, mode);
+#endif
+ else
+ return _wopen(name, flags, mode);
+}
+
+WXDLLEXPORT int wxMSLU__waccess(const wxChar *name, int mode)
+{
+ if ( wxUsingUnicowsDll() )
+ return _access(wxConvFile.cWX2MB(name), mode);
+ else
+ return _waccess(name, mode);
+}
+
+WXDLLEXPORT int wxMSLU__wmkdir(const wxChar *name)
+{
+ if ( wxUsingUnicowsDll() )
+ return _mkdir(wxConvFile.cWX2MB(name));
+ else
+ return _wmkdir(name);
+}
+
+WXDLLEXPORT int wxMSLU__wrmdir(const wxChar *name)
+{
+ if ( wxUsingUnicowsDll() )
+ return _rmdir(wxConvFile.cWX2MB(name));
+ else
+ return _wrmdir(name);
+}
+
+WXDLLEXPORT int wxMSLU__wstat(const wxChar *name, struct _stat *buffer)
+{
+ if ( wxUsingUnicowsDll() )
+ return _stat((const char*)wxConvFile.cWX2MB(name), buffer);
+ else
+ return _wstat(name, buffer);
+}
+
+#endif // compilers having wopen() &c
+
+#endif // wxUSE_BASE
+
+#endif // wxUSE_UNICODE_MSLU
+
+#endif // __PALMOS__
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: nativdlg.cpp
+// Purpose: Native dialog loading code (part of wxWindow)
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include <stdio.h>
+
+ #include "wx/wx.h"
+#endif
+
+#include "wx/spinbutt.h"
+
+// ---------------------------------------------------------------------------
+// global functions
+// ---------------------------------------------------------------------------
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+bool wxWindow::LoadNativeDialog(wxWindow* parent, wxWindowID& id)
+{
+ return false;
+}
+
+bool wxWindow::LoadNativeDialog(wxWindow* parent, const wxString& name)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// look for child by id
+// ---------------------------------------------------------------------------
+
+wxWindow* wxWindow::GetWindowChild1(wxWindowID id)
+{
+ return NULL;
+}
+
+wxWindow* wxWindow::GetWindowChild(wxWindowID id)
+{
+ return NULL;
+}
+
+// ---------------------------------------------------------------------------
+// create wxWin window from a native HWND
+// ---------------------------------------------------------------------------
+
+wxWindow* wxWindow::CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd)
+{
+ return NULL;
+}
+
+// Make sure the window style (etc.) reflects the HWND style (roughly)
+void wxWindow::AdoptAttributesFromHWND(void)
+{
+}
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/notebook.cpp
+// Purpose: implementation of wxNotebook
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "notebook.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_NOTEBOOK
+
+// wxWidgets
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+#endif // WX_PRECOMP
+
+#include "wx/log.h"
+#include "wx/imaglist.h"
+#include "wx/event.h"
+#include "wx/control.h"
+#include "wx/notebook.h"
+#include "wx/app.h"
+
+#include "wx/palmos/private.h"
+
+#include "wx/palmos/winundef.h"
+
+#if wxUSE_UXTHEME
+#include "wx/palmos/uxtheme.h"
+
+#include "wx/radiobut.h"
+#include "wx/radiobox.h"
+#include "wx/checkbox.h"
+#include "wx/bmpbuttn.h"
+#include "wx/statline.h"
+#include "wx/statbox.h"
+#include "wx/stattext.h"
+#include "wx/slider.h"
+#include "wx/scrolwin.h"
+#include "wx/panel.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+// check that the page index is valid
+#define IS_VALID_PAGE(nPage) ((nPage) < GetPageCount())
+
+// hide the ugly cast
+#define m_hwnd (HWND)GetHWND()
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// This is a work-around for missing defines in gcc-2.95 headers
+#ifndef TCS_RIGHT
+ #define TCS_RIGHT 0x0002
+#endif
+
+#ifndef TCS_VERTICAL
+ #define TCS_VERTICAL 0x0080
+#endif
+
+#ifndef TCS_BOTTOM
+ #define TCS_BOTTOM TCS_RIGHT
+#endif
+
+// ----------------------------------------------------------------------------
+// event table
+// ----------------------------------------------------------------------------
+
+#include <wx/listimpl.cpp>
+
+WX_DEFINE_LIST( wxNotebookPageInfoList ) ;
+
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING)
+
+BEGIN_EVENT_TABLE(wxNotebook, wxControl)
+ EVT_NOTEBOOK_PAGE_CHANGED(-1, wxNotebook::OnSelChange)
+
+ EVT_SIZE(wxNotebook::OnSize)
+
+ EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey)
+END_EVENT_TABLE()
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxNotebookStyle )
+
+wxBEGIN_FLAGS( wxNotebookStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxNB_FIXEDWIDTH)
+ wxFLAGS_MEMBER(wxNB_LEFT)
+ wxFLAGS_MEMBER(wxNB_RIGHT)
+ wxFLAGS_MEMBER(wxNB_BOTTOM)
+
+wxEND_FLAGS( wxNotebookStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebook, wxControl,"wx/notebook.h")
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebookPageInfo, wxObject , "wx/notebook.h" )
+
+wxCOLLECTION_TYPE_INFO( wxNotebookPageInfo * , wxNotebookPageInfoList ) ;
+
+template<> void wxCollectionToVariantArray( wxNotebookPageInfoList const &theList, wxxVariantArray &value)
+{
+ wxListCollectionToVariantArray<wxNotebookPageInfoList::compatibility_iterator>( theList , value ) ;
+}
+
+wxBEGIN_PROPERTIES_TABLE(wxNotebook)
+ wxEVENT_PROPERTY( PageChanging , wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING , wxNotebookEvent )
+ wxEVENT_PROPERTY( PageChanged , wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED , wxNotebookEvent )
+
+ wxPROPERTY_COLLECTION( PageInfos , wxNotebookPageInfoList , wxNotebookPageInfo* , AddPageInfo , GetPageInfos , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxNotebookStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxNotebook)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_5( wxNotebook , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size , long , WindowStyle)
+
+
+wxBEGIN_PROPERTIES_TABLE(wxNotebookPageInfo)
+ wxREADONLY_PROPERTY( Page , wxNotebookPage* , GetPage , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxREADONLY_PROPERTY( Text , wxString , GetText , wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxREADONLY_PROPERTY( Selected , bool , GetSelected , false, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxREADONLY_PROPERTY( ImageId , int , GetImageId , -1 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxNotebookPageInfo)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_4( wxNotebookPageInfo , wxNotebookPage* , Page , wxString , Text , bool , Selected , int , ImageId )
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxNotebookPageInfo, wxObject )
+#endif
+IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxNotebook construction
+// ----------------------------------------------------------------------------
+
+const wxNotebookPageInfoList& wxNotebook::GetPageInfos() const
+{
+ wxNotebookPageInfoList* list;
+
+ return m_pageInfos ;
+}
+
+// common part of all ctors
+void wxNotebook::Init()
+{
+}
+
+// default for dynamic class
+wxNotebook::wxNotebook()
+{
+}
+
+// the same arguments as for wxControl
+wxNotebook::wxNotebook(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+}
+
+// Create() function
+bool wxNotebook::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+WXDWORD wxNotebook::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// wxNotebook accessors
+// ----------------------------------------------------------------------------
+
+size_t wxNotebook::GetPageCount() const
+{
+ return 0;
+}
+
+int wxNotebook::GetRowCount() const
+{
+ return 0;
+}
+
+int wxNotebook::SetSelection(size_t nPage)
+{
+ return 0;
+}
+
+bool wxNotebook::SetPageText(size_t nPage, const wxString& strText)
+{
+ return false;
+}
+
+wxString wxNotebook::GetPageText(size_t nPage) const
+{
+ wxString str;
+
+ return str;
+}
+
+int wxNotebook::GetPageImage(size_t nPage) const
+{
+ return -1;
+}
+
+bool wxNotebook::SetPageImage(size_t nPage, int nImage)
+{
+ return false;
+}
+
+void wxNotebook::SetImageList(wxImageList* imageList)
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxNotebook size settings
+// ----------------------------------------------------------------------------
+
+void wxNotebook::SetPageSize(const wxSize& size)
+{
+}
+
+void wxNotebook::SetPadding(const wxSize& padding)
+{
+}
+
+void wxNotebook::SetTabSize(const wxSize& sz)
+{
+}
+
+wxSize wxNotebook::CalcSizeFromPage(const wxSize& sizePage) const
+{
+ return wxSize(0,0);
+}
+
+void wxNotebook::AdjustPageSize(wxNotebookPage *page)
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxNotebook operations
+// ----------------------------------------------------------------------------
+
+// remove one page from the notebook, without deleting
+wxNotebookPage *wxNotebook::DoRemovePage(size_t nPage)
+{
+ return NULL;
+}
+
+// remove all pages
+bool wxNotebook::DeleteAllPages()
+{
+ return true;
+}
+
+// same as AddPage() but does it at given position
+bool wxNotebook::InsertPage(size_t nPage,
+ wxNotebookPage *pPage,
+ const wxString& strText,
+ bool bSelect,
+ int imageId)
+{
+ return false;
+}
+
+int wxNotebook::HitTest(const wxPoint& pt, long *flags) const
+{
+ return 0;
+}
+
+
+// ----------------------------------------------------------------------------
+// wxNotebook callbacks
+// ----------------------------------------------------------------------------
+
+void wxNotebook::OnSize(wxSizeEvent& event)
+{
+}
+
+void wxNotebook::OnSelChange(wxNotebookEvent& event)
+{
+}
+
+bool wxNotebook::MSWTranslateMessage(WXMSG *wxmsg)
+{
+ return false;
+}
+
+void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event)
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxNotebook base class virtuals
+// ----------------------------------------------------------------------------
+
+#if wxUSE_CONSTRAINTS
+
+// override these 2 functions to do nothing: everything is done in OnSize
+
+void wxNotebook::SetConstraintSizes(bool WXUNUSED(recurse))
+{
+}
+
+bool wxNotebook::DoPhase(int WXUNUSED(nPhase))
+{
+ return true;
+}
+
+#endif // wxUSE_CONSTRAINTS
+
+// ----------------------------------------------------------------------------
+// wxNotebook Windows message handlers
+// ----------------------------------------------------------------------------
+
+bool wxNotebook::MSWOnScroll(int orientation, WXWORD nSBCode,
+ WXWORD pos, WXHWND control)
+{
+ return false;
+}
+
+bool wxNotebook::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result)
+{
+ return false;
+}
+
+// Windows only: attempts to get colour for UX theme page background
+wxColour wxNotebook::GetThemeBackgroundColour()
+{
+ return wxColour;
+}
+
+// Windows only: attempts to apply the UX theme page background to this page
+#if wxUSE_UXTHEME
+void wxNotebook::ApplyThemeBackground(wxWindow* window, const wxColour& colour)
+#else
+void wxNotebook::ApplyThemeBackground(wxWindow*, const wxColour&)
+#endif
+{
+}
+
+#if wxUSE_UXTHEME
+WXLRESULT wxNotebook::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return 0;
+}
+#endif // #if wxUSE_UXTHEME
+
+#endif // wxUSE_NOTEBOOK
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/ownerdrw.cpp
+// Purpose: implementation of wxOwnerDrawn class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/window.h"
+ #include "wx/font.h"
+ #include "wx/bitmap.h"
+ #include "wx/dcmemory.h"
+ #include "wx/menu.h"
+ #include "wx/utils.h"
+#endif
+
+#include "wx/settings.h"
+#include "wx/ownerdrw.h"
+#include "wx/menuitem.h"
+#include "wx/fontutil.h"
+#include "wx/module.h"
+
+#if wxUSE_OWNER_DRAWN
+
+class wxMSWSystemMenuFontModule : public wxModule
+{
+public:
+
+ virtual bool OnInit()
+ {
+ ms_systemMenuFont = new wxFont;
+
+#if defined(__WXMSW__) && defined(__WIN32__) && defined(SM_CXMENUCHECK)
+ NONCLIENTMETRICS nm;
+ nm.cbSize = sizeof(NONCLIENTMETRICS);
+ SystemParametersInfo(SPI_GETNONCLIENTMETRICS,0,&nm,0);
+
+ ms_systemMenuButtonWidth = nm.iMenuHeight;
+ ms_systemMenuHeight = nm.iMenuHeight;
+
+ // create menu font
+ wxNativeFontInfo info;
+ memcpy(&info.lf, &nm.lfMenuFont, sizeof(LOGFONT));
+ ms_systemMenuFont->Create(info);
+#endif
+
+ return true;
+ }
+
+ virtual void OnExit()
+ {
+ delete ms_systemMenuFont;
+ ms_systemMenuFont = NULL;
+ }
+
+ static wxFont* ms_systemMenuFont;
+ static int ms_systemMenuButtonWidth; // windows clean install default
+ static int ms_systemMenuHeight; // windows clean install default
+private:
+ DECLARE_DYNAMIC_CLASS(wxMSWSystemMenuFontModule)
+};
+
+// these static variables are by the wxMSWSystemMenuFontModule object
+// and reflect the system settings returned by the Win32 API's
+// SystemParametersInfo() call.
+
+wxFont* wxMSWSystemMenuFontModule::ms_systemMenuFont = NULL;
+int wxMSWSystemMenuFontModule::ms_systemMenuButtonWidth = 18; // windows clean install default
+int wxMSWSystemMenuFontModule::ms_systemMenuHeight = 18; // windows clean install default
+
+IMPLEMENT_DYNAMIC_CLASS(wxMSWSystemMenuFontModule, wxModule)
+
+// ============================================================================
+// implementation of wxOwnerDrawn class
+// ============================================================================
+
+// ctor
+// ----
+wxOwnerDrawn::wxOwnerDrawn(const wxString& str,
+ bool bCheckable, bool bMenuItem)
+ : m_strName(str)
+{
+}
+
+
+// these items will be set during the first invocation of the c'tor,
+// because the values will be determined by checking the system settings,
+// which is a chunk of code
+size_t wxOwnerDrawn::ms_nDefaultMarginWidth = 0;
+size_t wxOwnerDrawn::ms_nLastMarginWidth = 0;
+
+
+// drawing
+// -------
+
+// get size of the item
+// The item size includes the menu string, the accel string,
+// the bitmap and size for a submenu expansion arrow...
+bool wxOwnerDrawn::OnMeasureItem(size_t *pwidth, size_t *pheight)
+{
+ return false;
+}
+
+// draw the item
+bool wxOwnerDrawn::OnDrawItem(wxDC& dc,
+ const wxRect& rc,
+ wxODAction act,
+ wxODStatus st)
+{
+ return false;
+}
+
+
+#endif // wxUSE_OWNER_DRAWN
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palette.cpp
+// Purpose: wxPalette
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "palette.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_PALETTE
+
+#ifndef WX_PRECOMP
+ #include "wx/palette.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject)
+
+/*
+ * Palette
+ *
+ */
+
+wxPaletteRefData::wxPaletteRefData(void)
+{
+}
+
+wxPaletteRefData::~wxPaletteRefData(void)
+{
+}
+
+wxPalette::wxPalette(void)
+{
+}
+
+wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue)
+{
+}
+
+wxPalette::~wxPalette(void)
+{
+}
+
+bool wxPalette::FreeResource(bool WXUNUSED(force))
+{
+ return false;
+}
+
+bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue)
+{
+ return false;
+}
+
+int wxPalette::GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const
+{
+ return 0;
+}
+
+bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const
+{
+ return false;
+}
+
+void wxPalette::SetHPALETTE(WXHPALETTE pal)
+{
+}
+
+#endif // wxUSE_PALETTE
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/pen.cpp
+// Purpose: wxPen
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "pen.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include <stdio.h>
+#include "wx/setup.h"
+#include "wx/list.h"
+#include "wx/utils.h"
+#include "wx/app.h"
+#include "wx/pen.h"
+#endif
+
+static int wx2msPenStyle(int wx_style);
+
+IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject)
+
+wxPenRefData::wxPenRefData()
+{
+}
+
+wxPenRefData::wxPenRefData(const wxPenRefData& data)
+{
+}
+
+wxPenRefData::~wxPenRefData()
+{
+}
+
+// Pens
+
+wxPen::wxPen()
+{
+}
+
+wxPen::~wxPen()
+{
+}
+
+// Should implement Create
+wxPen::wxPen(const wxColour& col, int Width, int Style)
+{
+}
+
+wxPen::wxPen(const wxBitmap& stipple, int Width)
+{
+}
+
+bool wxPen::RealizeResource()
+{
+ return false;
+}
+
+WXHANDLE wxPen::GetResourceHandle() const
+{
+ return 0;
+}
+
+bool wxPen::FreeResource(bool WXUNUSED(force))
+{
+ return false;
+}
+
+bool wxPen::IsFree() const
+{
+ return false;
+}
+
+void wxPen::Unshare()
+{
+}
+
+void wxPen::SetColour(const wxColour& col)
+{
+}
+
+void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b)
+{
+}
+
+void wxPen::SetWidth(int Width)
+{
+}
+
+void wxPen::SetStyle(int Style)
+{
+}
+
+void wxPen::SetStipple(const wxBitmap& Stipple)
+{
+}
+
+void wxPen::SetDashes(int nb_dashes, const wxDash *Dash)
+{
+}
+
+void wxPen::SetJoin(int Join)
+{
+}
+
+void wxPen::SetCap(int Cap)
+{
+}
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/popupwin.cpp
+// Purpose: implements wxPopupWindow for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "popup.h"
+#endif
+
+// 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 //WX_PRECOMP
+
+#if wxUSE_POPUPWIN
+
+#include "wx/popupwin.h"
+
+#include "wx/palmos/private.h" // for GetDesktopWindow()
+
+IMPLEMENT_DYNAMIC_CLASS(wxPopupWindow, wxWindow)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+bool wxPopupWindow::Create(wxWindow *parent, int flags)
+{
+ return false;
+}
+
+void wxPopupWindow::DoGetPosition(int *x, int *y) const
+{
+}
+
+WXDWORD wxPopupWindow::MSWGetStyle(long flags, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+WXHWND wxPopupWindow::MSWGetParent() const
+{
+ return (WXHWND) 0;
+}
+
+bool wxPopupWindow::Show(bool show)
+{
+ return false;
+}
+
+#endif // #if wxUSE_POPUPWIN
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: printdlg.cpp
+// Purpose: wxPrintDialog, wxPageSetupDialog
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "printdlg.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+// Don't use the Windows print dialog if we're in wxUniv mode and using
+// the PostScript architecture
+#if wxUSE_PRINTING_ARCHITECTURE && (!defined(__WXUNIVERSAL__) || !wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW)
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+#endif
+
+#include "wx/printdlg.h"
+#include "wx/dcprint.h"
+
+#include "wx/palmos/private.h"
+
+// ---------------------------------------------------------------------------
+// wxWin macros
+// ---------------------------------------------------------------------------
+
+ IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog)
+ IMPLEMENT_CLASS(wxPageSetupDialog, wxDialog)
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// wxPrintDialog
+// ---------------------------------------------------------------------------
+
+wxPrintDialog::wxPrintDialog()
+{
+}
+
+wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintDialogData* data)
+{
+}
+
+wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintData* data)
+{
+}
+
+bool wxPrintDialog::Create(wxWindow *p, wxPrintDialogData* data)
+{
+ return false;
+}
+
+wxPrintDialog::~wxPrintDialog()
+{
+}
+
+int wxPrintDialog::ShowModal()
+{
+ return wxID_CANCEL;
+}
+
+wxDC *wxPrintDialog::GetPrintDC()
+{
+ return (wxDC*) NULL;
+}
+
+// ---------------------------------------------------------------------------
+// wxPageSetupDialog
+// ---------------------------------------------------------------------------
+
+wxPageSetupDialog::wxPageSetupDialog()
+{
+}
+
+wxPageSetupDialog::wxPageSetupDialog(wxWindow *p, wxPageSetupData *data)
+{
+}
+
+bool wxPageSetupDialog::Create(wxWindow *p, wxPageSetupData *data)
+{
+ return false;
+}
+
+wxPageSetupDialog::~wxPageSetupDialog()
+{
+}
+
+int wxPageSetupDialog::ShowModal()
+{
+ return wxID_CANCEL;
+}
+
+#endif
+ // wxUSE_PRINTING_ARCHITECTURE
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: printpalm.cpp
+// Purpose: wxPalmPrinter framework
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "printpalm.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include "wx/defs.h"
+
+// Don't use the Windows printer if we're in wxUniv mode and using
+// the PostScript architecture
+#if wxUSE_PRINTING_ARCHITECTURE && (!defined(__WXUNIVERSAL__) || !wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW)
+
+#ifndef WX_PRECOMP
+ #include "wx/window.h"
+ #include "wx/palmos/private.h"
+ #include "wx/utils.h"
+ #include "wx/dc.h"
+ #include "wx/app.h"
+ #include "wx/msgdlg.h"
+ #include "wx/intl.h"
+#endif
+
+#include "wx/palmos/printpalm.h"
+#include "wx/dcprint.h"
+#include "wx/printdlg.h"
+#include "wx/log.h"
+#include "wx/palmos/private.h"
+
+// ---------------------------------------------------------------------------
+// private functions
+// ---------------------------------------------------------------------------
+
+// ---------------------------------------------------------------------------
+// wxWin macros
+// ---------------------------------------------------------------------------
+
+ IMPLEMENT_DYNAMIC_CLASS(wxPalmPrinter, wxPrinterBase)
+ IMPLEMENT_CLASS(wxPalmPrintPreview, wxPrintPreviewBase)
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// Printer
+// ---------------------------------------------------------------------------
+
+wxPalmPrinter::wxPalmPrinter(wxPrintDialogData *data)
+ : wxPrinterBase(data)
+{
+}
+
+wxPalmPrinter::~wxPalmPrinter()
+{
+}
+
+bool wxPalmPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt)
+{
+ return false;
+}
+
+wxDC* wxPalmPrinter::PrintDialog(wxWindow *parent)
+{
+ wxDC* dc = (wxDC*) NULL;
+
+ return dc;
+}
+
+bool wxPalmPrinter::Setup(wxWindow *parent)
+{
+ return false;
+}
+
+/*
+* Print preview
+*/
+
+wxPalmPrintPreview::wxPalmPrintPreview(wxPrintout *printout,
+ wxPrintout *printoutForPrinting,
+ wxPrintDialogData *data)
+ : wxPrintPreviewBase(printout, printoutForPrinting, data)
+{
+}
+
+wxPalmPrintPreview::wxPalmPrintPreview(wxPrintout *printout,
+ wxPrintout *printoutForPrinting,
+ wxPrintData *data)
+ : wxPrintPreviewBase(printout, printoutForPrinting, data)
+{
+}
+
+wxPalmPrintPreview::~wxPalmPrintPreview()
+{
+}
+
+bool wxPalmPrintPreview::Print(bool interactive)
+{
+ return false;
+}
+
+void wxPalmPrintPreview::DetermineScaling()
+{
+}
+
+#endif
+ // wxUSE_PRINTING_ARCHITECTURE
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/radiobox.cpp
+// Purpose: wxRadioBox implementation
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "radiobox.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_RADIOBOX
+
+#ifndef WX_PRECOMP
+ #include "wx/bitmap.h"
+ #include "wx/brush.h"
+ #include "wx/radiobox.h"
+ #include "wx/settings.h"
+ #include "wx/log.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+#if wxUSE_TOOLTIPS
+ #include "wx/tooltip.h"
+#endif // wxUSE_TOOLTIPS
+
+// TODO: wxCONSTRUCTOR
+#if 0 // wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxRadioBoxStyle )
+
+wxBEGIN_FLAGS( wxRadioBoxStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxRA_SPECIFY_COLS)
+ wxFLAGS_MEMBER(wxRA_HORIZONTAL)
+ wxFLAGS_MEMBER(wxRA_SPECIFY_ROWS)
+ wxFLAGS_MEMBER(wxRA_VERTICAL)
+
+wxEND_FLAGS( wxRadioBoxStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxRadioBox, wxControl,"wx/radiobox.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxRadioBox)
+ wxEVENT_PROPERTY( Select , wxEVT_COMMAND_RADIOBOX_SELECTED , wxCommandEvent )
+ wxPROPERTY_FLAGS( WindowStyle , wxRadioBoxStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl)
+#endif
+
+/*
+ selection
+ content
+ label
+ dimension
+ item
+*/
+
+#define RADIOBTN_PARENT_IS_RADIOBOX 0
+
+// ---------------------------------------------------------------------------
+// private functions
+// ---------------------------------------------------------------------------
+
+// ---------------------------------------------------------------------------
+// global vars
+// ---------------------------------------------------------------------------
+
+// the pointer to standard radio button wnd proc
+static WXFARPROC s_wndprocRadioBtn = (WXFARPROC)NULL;
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// wxRadioBox
+// ---------------------------------------------------------------------------
+
+int wxRadioBox::GetCount() const
+{
+ return 0;
+}
+
+int wxRadioBox::GetColumnCount() const
+{
+ return 0;
+}
+
+int wxRadioBox::GetRowCount() const
+{
+ return 0;
+}
+
+// returns the number of rows
+int wxRadioBox::GetNumVer() const
+{
+ return 0;
+}
+
+// returns the number of columns
+int wxRadioBox::GetNumHor() const
+{
+ return 0;
+}
+
+bool wxRadioBox::MSWCommand(WXUINT cmd, WXWORD id)
+{
+ return FALSE;
+}
+
+// Radio box item
+wxRadioBox::wxRadioBox()
+{
+}
+
+bool wxRadioBox::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ int n,
+ const wxString choices[],
+ int majorDim,
+ long style,
+ const wxValidator& val,
+ const wxString& name)
+{
+ return false;
+}
+
+bool wxRadioBox::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ int majorDim,
+ long style,
+ const wxValidator& val,
+ const wxString& name)
+{
+ return false;
+}
+
+wxRadioBox::~wxRadioBox()
+{
+}
+
+void wxRadioBox::SetString(int item, const wxString& label)
+{
+}
+
+void wxRadioBox::SetSelection(int N)
+{
+}
+
+// Get single selection, for single choice list items
+int wxRadioBox::GetSelection() const
+{
+ return 0;
+}
+
+// Find string for position
+wxString wxRadioBox::GetString(int item) const
+{
+ wxString ret;
+
+ return ret;
+}
+
+// ----------------------------------------------------------------------------
+// size calculations
+// ----------------------------------------------------------------------------
+
+wxSize wxRadioBox::GetMaxButtonSize() const
+{
+ return wxSize(0,0);
+}
+
+wxSize wxRadioBox::GetTotalButtonSize(const wxSize& sizeBtn) const
+{
+ return wxSize(0,0);
+}
+
+wxSize wxRadioBox::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+// Restored old code.
+void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags)
+{
+}
+
+void wxRadioBox::GetSize(int *width, int *height) const
+{
+}
+
+void wxRadioBox::GetPosition(int *x, int *y) const
+{
+}
+
+void wxRadioBox::SetFocus()
+{
+}
+
+bool wxRadioBox::Show(bool show)
+{
+ return false;
+}
+
+// Enable a specific button
+void wxRadioBox::Enable(int item, bool enable)
+{
+}
+
+// Enable all controls
+bool wxRadioBox::Enable(bool enable)
+{
+ return false;
+}
+
+// Show a specific button
+void wxRadioBox::Show(int item, bool show)
+{
+}
+
+bool wxRadioBox::ContainsHWND(WXHWND hWnd) const
+{
+ return false;
+}
+
+void wxRadioBox::Command(wxCommandEvent & event)
+{
+}
+
+void wxRadioBox::SubclassRadioButton(WXHWND hWndBtn)
+{
+}
+
+void wxRadioBox::SendNotificationEvent()
+{
+}
+
+bool wxRadioBox::SetFont(const wxFont& font)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// our window proc
+// ----------------------------------------------------------------------------
+
+WXLRESULT wxRadioBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return 0;
+}
+
+WXHBRUSH wxRadioBox::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED(nCtlColor),
+#if wxUSE_CTL3D
+ WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam
+#else
+ WXUINT WXUNUSED(message),
+ WXWPARAM WXUNUSED(wParam),
+ WXLPARAM WXUNUSED(lParam)
+#endif
+ )
+{
+ return (WXHBRUSH)0;
+}
+
+#endif // wxUSE_RADIOBOX
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/radiobut.cpp
+// Purpose: wxRadioButton
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "radiobut.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_RADIOBTN
+
+#ifndef WX_PRECOMP
+ #include "wx/radiobut.h"
+ #include "wx/settings.h"
+ #include "wx/dcscreen.h"
+#endif
+
+#include "wx/palmos/private.h"
+
+// ============================================================================
+// wxRadioButton implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxRadioButton creation
+// ----------------------------------------------------------------------------
+
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxRadioButtonStyle )
+
+wxBEGIN_FLAGS( wxRadioButtonStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxRB_GROUP)
+
+wxEND_FLAGS( wxRadioButtonStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxRadioButton, wxControl,"wx/radiobut.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxRadioButton)
+ wxEVENT_PROPERTY( Click , wxEVT_COMMAND_RADIOBUTTON_SELECTED , wxCommandEvent )
+ wxPROPERTY( Font , wxFont , SetFont , GetFont , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Label,wxString, SetLabel, GetLabel, wxString(), 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY( Value ,bool, SetValue, GetValue, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY_FLAGS( WindowStyle , wxRadioButtonStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxRadioButton)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_6( wxRadioButton , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle )
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl)
+#endif
+
+
+void wxRadioButton::Init()
+{
+}
+
+bool wxRadioButton::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxRadioButton functions
+// ----------------------------------------------------------------------------
+
+void wxRadioButton::SetValue(bool value)
+{
+}
+
+bool wxRadioButton::GetValue() const
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxRadioButton event processing
+// ----------------------------------------------------------------------------
+
+void wxRadioButton::Command (wxCommandEvent& event)
+{
+}
+
+bool wxRadioButton::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxRadioButton geometry
+// ----------------------------------------------------------------------------
+
+wxSize wxRadioButton::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+#endif // wxUSE_RADIOBTN
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/regconf.cpp
+// Purpose:
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "regconf.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #include "wx/intl.h"
+#endif //WX_PRECOMP
+
+#include "wx/event.h"
+#include "wx/app.h"
+#include "wx/log.h"
+
+#if wxUSE_CONFIG
+
+#include "wx/config.h"
+
+#include "wx/palmos/registry.h"
+#include "wx/palmos/regconf.h"
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// we put our data in HKLM\SOFTWARE_KEY\appname
+#define SOFTWARE_KEY wxString(wxT("Software\\"))
+
+// ----------------------------------------------------------------------------
+// global functions
+// ----------------------------------------------------------------------------
+
+// get the value if the key is opened and it exists
+bool TryGetValue(const wxRegKey& key, const wxString& str, wxString& strVal)
+{
+ return false;
+}
+
+bool TryGetValue(const wxRegKey& key, const wxString& str, long *plVal)
+{
+ return false;
+}
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// ctor/dtor
+// ----------------------------------------------------------------------------
+
+// create the config object which stores its data under HKCU\vendor\app and, if
+// style & wxCONFIG_USE_GLOBAL_FILE, under HKLM\vendor\app
+wxRegConfig::wxRegConfig(const wxString& appName, const wxString& vendorName,
+ const wxString& strLocal, const wxString& strGlobal,
+ long style)
+ : wxConfigBase(appName, vendorName, strLocal, strGlobal, style)
+{
+}
+
+wxRegConfig::~wxRegConfig()
+{
+}
+
+// ----------------------------------------------------------------------------
+// path management
+// ----------------------------------------------------------------------------
+
+void wxRegConfig::SetPath(const wxString& strPath)
+{
+}
+
+// ----------------------------------------------------------------------------
+// enumeration (works only with current group)
+// ----------------------------------------------------------------------------
+
+#define LOCAL_MASK 0x8000
+#define IS_LOCAL_INDEX(l) (((l) & LOCAL_MASK) != 0)
+
+bool wxRegConfig::GetFirstGroup(wxString& str, long& lIndex) const
+{
+ return false;
+}
+
+bool wxRegConfig::GetNextGroup(wxString& str, long& lIndex) const
+{
+ return false;
+}
+
+bool wxRegConfig::GetFirstEntry(wxString& str, long& lIndex) const
+{
+ return false;
+}
+
+bool wxRegConfig::GetNextEntry(wxString& str, long& lIndex) const
+{
+ return false;
+}
+
+size_t wxRegConfig::GetNumberOfEntries(bool WXUNUSED(bRecursive)) const
+{
+ return 0;
+}
+
+size_t wxRegConfig::GetNumberOfGroups(bool WXUNUSED(bRecursive)) const
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// tests for existence
+// ----------------------------------------------------------------------------
+
+bool wxRegConfig::HasGroup(const wxString& key) const
+{
+ return false;
+}
+
+bool wxRegConfig::HasEntry(const wxString& key) const
+{
+ return false;
+}
+
+wxConfigBase::EntryType wxRegConfig::GetEntryType(const wxString& key) const
+{
+ return wxConfigBase::Type_Integer;
+}
+
+// ----------------------------------------------------------------------------
+// reading/writing
+// ----------------------------------------------------------------------------
+
+bool wxRegConfig::DoReadString(const wxString& key, wxString *pStr) const
+{
+ return FALSE;
+}
+
+// this exactly reproduces the string version above except for ExpandEnvVars(),
+// we really should avoid this code duplication somehow...
+
+bool wxRegConfig::DoReadLong(const wxString& key, long *plResult) const
+{
+ return FALSE;
+}
+
+bool wxRegConfig::DoWriteString(const wxString& key, const wxString& szValue)
+{
+ return false;
+}
+
+bool wxRegConfig::DoWriteLong(const wxString& key, long lValue)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// renaming
+// ----------------------------------------------------------------------------
+
+bool wxRegConfig::RenameEntry(const wxString& oldName, const wxString& newName)
+{
+ return false;
+}
+
+bool wxRegConfig::RenameGroup(const wxString& oldName, const wxString& newName)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// deleting
+// ----------------------------------------------------------------------------
+
+bool wxRegConfig::DeleteEntry(const wxString& value, bool bGroupIfEmptyAlso)
+{
+ return false;
+}
+
+bool wxRegConfig::DeleteGroup(const wxString& key)
+{
+ return false;
+}
+
+bool wxRegConfig::DeleteAll()
+{
+ return false;
+}
+
+#endif
+ // wxUSE_CONFIG
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/region.cpp
+// Purpose: wxRegion implementation
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "region.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#include "wx/region.h"
+#include "wx/gdicmn.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject)
+IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject)
+
+// ----------------------------------------------------------------------------
+// wxRegionRefData implementation
+// ----------------------------------------------------------------------------
+
+// ============================================================================
+// wxRegion implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// ctors and dtor
+// ----------------------------------------------------------------------------
+
+wxRegion::wxRegion()
+{
+}
+
+wxRegion::wxRegion(WXHRGN hRegion)
+{
+}
+
+wxRegion::wxRegion(wxCoord x, wxCoord y, wxCoord w, wxCoord h)
+{
+}
+
+wxRegion::wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight)
+{
+}
+
+wxRegion::wxRegion(const wxRect& rect)
+{
+}
+
+wxRegion::wxRegion(size_t n, const wxPoint *points, int fillStyle)
+{
+}
+
+wxRegion::~wxRegion()
+{
+}
+
+wxObjectRefData *wxRegion::CreateRefData() const
+{
+ return NULL;
+}
+
+wxObjectRefData *wxRegion::CloneRefData(const wxObjectRefData *data) const
+{
+ return NULL;
+}
+
+// ----------------------------------------------------------------------------
+// wxRegion operations
+// ----------------------------------------------------------------------------
+
+// Clear current region
+void wxRegion::Clear()
+{
+}
+
+bool wxRegion::Offset(wxCoord x, wxCoord y)
+{
+ return false;
+}
+
+// combine another region with this one
+bool wxRegion::Combine(const wxRegion& rgn, wxRegionOp op)
+{
+ return false;
+}
+
+// Combine rectangle (x, y, w, h) with this.
+bool wxRegion::Combine(wxCoord x, wxCoord y,
+ wxCoord width, wxCoord height,
+ wxRegionOp op)
+{
+ return false;
+}
+
+bool wxRegion::Combine(const wxRect& rect, wxRegionOp op)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxRegion bounding box
+// ----------------------------------------------------------------------------
+
+// Outer bounds of region
+void wxRegion::GetBox(wxCoord& x, wxCoord& y, wxCoord&w, wxCoord &h) const
+{
+}
+
+wxRect wxRegion::GetBox() const
+{
+ return wxRect(0, 0, 0, 0);
+}
+
+// Is region empty?
+bool wxRegion::Empty() const
+{
+ return true;
+}
+
+// ----------------------------------------------------------------------------
+// wxRegion hit testing
+// ----------------------------------------------------------------------------
+
+// Does the region contain the point (x,y)?
+wxRegionContain wxRegion::Contains(wxCoord x, wxCoord y) const
+{
+ return wxOutRegion;
+}
+
+// Does the region contain the point pt?
+wxRegionContain wxRegion::Contains(const wxPoint& pt) const
+{
+ return wxOutRegion;
+}
+
+// Does the region contain the rectangle (x, y, w, h)?
+wxRegionContain wxRegion::Contains(wxCoord x, wxCoord y,
+ wxCoord w, wxCoord h) const
+{
+ return wxOutRegion;
+}
+
+// Does the region contain the rectangle rect
+wxRegionContain wxRegion::Contains(const wxRect& rect) const
+{
+ return wxOutRegion;
+}
+
+// Get internal region handle
+WXHRGN wxRegion::GetHRGN() const
+{
+ return 0;
+}
+
+// ============================================================================
+// wxRegionIterator implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxRegionIterator ctors/dtor
+// ----------------------------------------------------------------------------
+
+void wxRegionIterator::Init()
+{
+}
+
+wxRegionIterator::~wxRegionIterator()
+{
+}
+
+// Initialize iterator for region
+wxRegionIterator::wxRegionIterator(const wxRegion& region)
+{
+}
+
+wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& ri)
+{
+ return *this;
+}
+
+// ----------------------------------------------------------------------------
+// wxRegionIterator operations
+// ----------------------------------------------------------------------------
+
+// Reset iterator for a new region.
+void wxRegionIterator::Reset(const wxRegion& region)
+{
+}
+
+wxRegionIterator& wxRegionIterator::operator++()
+{
+ return *this;
+}
+
+wxRegionIterator wxRegionIterator::operator ++ (int)
+{
+ return *this;
+}
+
+// ----------------------------------------------------------------------------
+// wxRegionIterator accessors
+// ----------------------------------------------------------------------------
+
+wxCoord wxRegionIterator::GetX() const
+{
+ return 0;
+}
+
+wxCoord wxRegionIterator::GetY() const
+{
+ return 0;
+}
+
+wxCoord wxRegionIterator::GetW() const
+{
+ return 0;
+}
+
+wxCoord wxRegionIterator::GetH() const
+{
+ return 0;
+}
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/registry.cpp
+// Purpose: implementation of registry classes and functions
+// Author: Vadim Zeitlin
+// Modified by:
+// Created: 03.04.98
+// RCS-ID: $Id$
+// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
+// Licence: wxWindows licence
+// TODO: - parsing of registry key names
+// - support of other (than REG_SZ/REG_DWORD) registry types
+// - add high level functions (RegisterOleServer, ...)
+///////////////////////////////////////////////////////////////////////////////
+
+// This really doesn't apply to the Palm OS platform. It would be better to
+// support the Palm OS preference database instead.
+#ifndef __PALMOS__
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "registry.h"
+#endif
+
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+// other wxWidgets headers
+#include "wx/string.h"
+#include "wx/intl.h"
+#include "wx/log.h"
+
+#include "wx/palmos/wrapwin.h"
+
+// other std headers
+#include <stdlib.h> // for _MAX_PATH
+
+#ifndef _MAX_PATH
+ #define _MAX_PATH 512
+#endif
+
+// our header
+#define HKEY_DEFINED // already defined in windows.h
+#include "wx/palmos/registry.h"
+
+// some registry functions don't like signed chars
+typedef unsigned char *RegString;
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// the registry name separator (perhaps one day MS will change it to '/' ;-)
+#define REG_SEPARATOR wxT('\\')
+
+// useful for Windows programmers: makes somewhat more clear all these zeroes
+// being passed to Windows APIs
+#define RESERVED (0)
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+// const_cast<> is not yet supported by all compilers
+#define CONST_CAST ((wxRegKey *)this)->
+
+// and neither is mutable which m_dwLastError should be
+#define m_dwLastError CONST_CAST m_dwLastError
+
+// ----------------------------------------------------------------------------
+// non member functions
+// ----------------------------------------------------------------------------
+
+// ============================================================================
+// implementation of wxRegKey class
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// static functions and variables
+// ----------------------------------------------------------------------------
+
+const size_t wxRegKey::nStdKeys = WXSIZEOF(aStdKeys);
+
+// @@ should take a `StdKey key', but as it's often going to be used in loops
+// it would require casts in user code.
+const wxChar *wxRegKey::GetStdKeyName(size_t key)
+{
+ // return empty string if key is invalid
+ wxCHECK_MSG( key < nStdKeys, wxEmptyString, wxT("invalid key in wxRegKey::GetStdKeyName") );
+
+ return aStdKeys[key].szName;
+}
+
+const wxChar *wxRegKey::GetStdKeyShortName(size_t key)
+{
+ // return empty string if key is invalid
+ wxCHECK( key < nStdKeys, wxEmptyString );
+
+ return aStdKeys[key].szShortName;
+}
+
+wxRegKey::StdKey wxRegKey::ExtractKeyName(wxString& strKey)
+{
+ wxString strRoot = strKey.BeforeFirst(REG_SEPARATOR);
+
+ HKEY hRootKey = 0;
+ size_t ui;
+ for ( ui = 0; ui < nStdKeys; ui++ ) {
+ if ( strRoot.CmpNoCase(aStdKeys[ui].szName) == 0 ||
+ strRoot.CmpNoCase(aStdKeys[ui].szShortName) == 0 ) {
+ hRootKey = aStdKeys[ui].hkey;
+ break;
+ }
+ }
+
+ if ( ui == nStdKeys ) {
+ wxFAIL_MSG(wxT("invalid key prefix in wxRegKey::ExtractKeyName."));
+
+ hRootKey = HKEY_CLASSES_ROOT;
+ }
+ else {
+ strKey = strKey.After(REG_SEPARATOR);
+ if ( !strKey.IsEmpty() && strKey.Last() == REG_SEPARATOR )
+ strKey.Truncate(strKey.Len() - 1);
+ }
+
+ return (wxRegKey::StdKey)(int)hRootKey;
+}
+
+wxRegKey::StdKey wxRegKey::GetStdKeyFromHkey(WXHKEY hkey)
+{
+ for ( size_t ui = 0; ui < nStdKeys; ui++ ) {
+ if ( (int) aStdKeys[ui].hkey == (int) hkey )
+ return (StdKey)ui;
+ }
+
+ wxFAIL_MSG(wxT("non root hkey passed to wxRegKey::GetStdKeyFromHkey."));
+
+ return HKCR;
+}
+
+// ----------------------------------------------------------------------------
+// ctors and dtor
+// ----------------------------------------------------------------------------
+
+wxRegKey::wxRegKey()
+{
+ m_hRootKey = (WXHKEY) aStdKeys[HKCR].hkey;
+
+ Init();
+}
+
+wxRegKey::wxRegKey(const wxString& strKey) : m_strKey(strKey)
+{
+ m_hRootKey = (WXHKEY) aStdKeys[ExtractKeyName(m_strKey)].hkey;
+
+ Init();
+}
+
+// parent is a predefined (and preopened) key
+wxRegKey::wxRegKey(StdKey keyParent, const wxString& strKey) : m_strKey(strKey)
+{
+ RemoveTrailingSeparator(m_strKey);
+ m_hRootKey = (WXHKEY) aStdKeys[keyParent].hkey;
+
+ Init();
+}
+
+// parent is a normal regkey
+wxRegKey::wxRegKey(const wxRegKey& keyParent, const wxString& strKey)
+ : m_strKey(keyParent.m_strKey)
+{
+ // combine our name with parent's to get the full name
+ if ( !m_strKey.IsEmpty() &&
+ (strKey.IsEmpty() || strKey[0] != REG_SEPARATOR) ) {
+ m_strKey += REG_SEPARATOR;
+ }
+
+ m_strKey += strKey;
+ RemoveTrailingSeparator(m_strKey);
+
+ m_hRootKey = keyParent.m_hRootKey;
+
+ Init();
+}
+
+// dtor closes the key releasing system resource
+wxRegKey::~wxRegKey()
+{
+ Close();
+}
+
+// ----------------------------------------------------------------------------
+// change the key name/hkey
+// ----------------------------------------------------------------------------
+
+// set the full key name
+void wxRegKey::SetName(const wxString& strKey)
+{
+ Close();
+
+ m_strKey = strKey;
+ m_hRootKey = (WXHKEY) aStdKeys[ExtractKeyName(m_strKey)].hkey;
+}
+
+// the name is relative to the parent key
+void wxRegKey::SetName(StdKey keyParent, const wxString& strKey)
+{
+ Close();
+
+ m_strKey = strKey;
+ RemoveTrailingSeparator(m_strKey);
+ m_hRootKey = (WXHKEY) aStdKeys[keyParent].hkey;
+}
+
+// the name is relative to the parent key
+void wxRegKey::SetName(const wxRegKey& keyParent, const wxString& strKey)
+{
+ Close();
+
+ // combine our name with parent's to get the full name
+
+ // NB: this method is called by wxRegConfig::SetPath() which is a performance
+ // critical function and so it preallocates space for our m_strKey to
+ // gain some speed - this is why we only use += here and not = which
+ // would just free the prealloc'd buffer and would have to realloc it the
+ // next line!
+ m_strKey.clear();
+ m_strKey += keyParent.m_strKey;
+ if ( !strKey.IsEmpty() && strKey[0] != REG_SEPARATOR )
+ m_strKey += REG_SEPARATOR;
+ m_strKey += strKey;
+
+ RemoveTrailingSeparator(m_strKey);
+
+ m_hRootKey = keyParent.m_hRootKey;
+}
+
+// hKey should be opened and will be closed in wxRegKey dtor
+void wxRegKey::SetHkey(WXHKEY hKey)
+{
+ Close();
+
+ m_hKey = hKey;
+}
+
+// ----------------------------------------------------------------------------
+// info about the key
+// ----------------------------------------------------------------------------
+
+// returns TRUE if the key exists
+bool wxRegKey::Exists() const
+{
+ // opened key has to exist, try to open it if not done yet
+ return IsOpened() ? TRUE : KeyExists(m_hRootKey, m_strKey);
+}
+
+// returns the full name of the key (prefix is abbreviated if bShortPrefix)
+wxString wxRegKey::GetName(bool bShortPrefix) const
+{
+ StdKey key = GetStdKeyFromHkey((WXHKEY) m_hRootKey);
+ wxString str = bShortPrefix ? aStdKeys[key].szShortName
+ : aStdKeys[key].szName;
+ if ( !m_strKey.IsEmpty() )
+ str << _T("\\") << m_strKey;
+
+ return str;
+}
+
+bool wxRegKey::GetKeyInfo(size_t *pnSubKeys,
+ size_t *pnMaxKeyLen,
+ size_t *pnValues,
+ size_t *pnMaxValueLen) const
+{
+ // old gcc headers incorrectly prototype RegQueryInfoKey()
+#if defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__)
+ #define REG_PARAM (size_t *)
+#else
+ #define REG_PARAM (LPDWORD)
+#endif
+
+ // it might be unexpected to some that this function doesn't open the key
+ wxASSERT_MSG( IsOpened(), _T("key should be opened in GetKeyInfo") );
+
+ m_dwLastError = ::RegQueryInfoKey
+ (
+ (HKEY) m_hKey,
+ NULL, // class name
+ NULL, // (ptr to) size of class name buffer
+ RESERVED,
+ REG_PARAM
+ pnSubKeys, // [out] number of subkeys
+ REG_PARAM
+ pnMaxKeyLen, // [out] max length of a subkey name
+ NULL, // longest subkey class name
+ REG_PARAM
+ pnValues, // [out] number of values
+ REG_PARAM
+ pnMaxValueLen, // [out] max length of a value name
+ NULL, // longest value data
+ NULL, // security descriptor
+ NULL // time of last modification
+ );
+
+#undef REG_PARAM
+
+ if ( m_dwLastError != ERROR_SUCCESS ) {
+ wxLogSysError(m_dwLastError, _("Can't get info about registry key '%s'"),
+ GetName().c_str());
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+// ----------------------------------------------------------------------------
+// operations
+// ----------------------------------------------------------------------------
+
+// opens key (it's not an error to call Open() on an already opened key)
+bool wxRegKey::Open(AccessMode mode)
+{
+ if ( IsOpened() )
+ return TRUE;
+
+ HKEY tmpKey;
+ m_dwLastError = ::RegOpenKeyEx
+ (
+ (HKEY) m_hRootKey,
+ m_strKey,
+ RESERVED,
+ mode == Read ? KEY_READ : KEY_ALL_ACCESS,
+ &tmpKey
+ );
+
+ if ( m_dwLastError != ERROR_SUCCESS )
+ {
+ wxLogSysError(m_dwLastError, _("Can't open registry key '%s'"),
+ GetName().c_str());
+ return FALSE;
+ }
+
+ m_hKey = (WXHKEY) tmpKey;
+ return TRUE;
+}
+
+// creates key, failing if it exists and !bOkIfExists
+bool wxRegKey::Create(bool bOkIfExists)
+{
+ // check for existence only if asked (i.e. order is important!)
+ if ( !bOkIfExists && Exists() )
+ return FALSE;
+
+ if ( IsOpened() )
+ return TRUE;
+
+ HKEY tmpKey;
+#ifdef __WXWINCE__
+ DWORD disposition;
+ m_dwLastError = RegCreateKeyEx((HKEY) m_hRootKey, m_strKey,
+ NULL, // reserved
+ NULL, // class string
+ 0,
+ 0,
+ NULL,
+ &tmpKey,
+ &disposition);
+#else
+ m_dwLastError = RegCreateKey((HKEY) m_hRootKey, m_strKey, &tmpKey);
+#endif
+ if ( m_dwLastError != ERROR_SUCCESS ) {
+ wxLogSysError(m_dwLastError, _("Can't create registry key '%s'"),
+ GetName().c_str());
+ return FALSE;
+ }
+ else
+ {
+ m_hKey = (WXHKEY) tmpKey;
+ return TRUE;
+ }
+}
+
+// close the key, it's not an error to call it when not opened
+bool wxRegKey::Close()
+{
+ if ( IsOpened() ) {
+ m_dwLastError = RegCloseKey((HKEY) m_hKey);
+ m_hKey = 0;
+
+ if ( m_dwLastError != ERROR_SUCCESS ) {
+ wxLogSysError(m_dwLastError, _("Can't close registry key '%s'"),
+ GetName().c_str());
+
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+bool wxRegKey::RenameValue(const wxChar *szValueOld, const wxChar *szValueNew)
+{
+ bool ok = TRUE;
+ if ( HasValue(szValueNew) ) {
+ wxLogError(_("Registry value '%s' already exists."), szValueNew);
+
+ ok = FALSE;
+ }
+
+ if ( !ok ||
+ !CopyValue(szValueOld, *this, szValueNew) ||
+ !DeleteValue(szValueOld) ) {
+ wxLogError(_("Failed to rename registry value '%s' to '%s'."),
+ szValueOld, szValueNew);
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool wxRegKey::CopyValue(const wxChar *szValue,
+ wxRegKey& keyDst,
+ const wxChar *szValueNew)
+{
+ if ( !szValueNew ) {
+ // by default, use the same name
+ szValueNew = szValue;
+ }
+
+ switch ( GetValueType(szValue) ) {
+ case Type_String:
+ {
+ wxString strVal;
+ return QueryValue(szValue, strVal) &&
+ keyDst.SetValue(szValueNew, strVal);
+ }
+
+ case Type_Dword:
+ /* case Type_Dword_little_endian: == Type_Dword */
+ {
+ long dwVal;
+ return QueryValue(szValue, &dwVal) &&
+ keyDst.SetValue(szValueNew, dwVal);
+ }
+
+ // these types are unsupported because I am not sure about how
+ // exactly they should be copied and because they shouldn't
+ // occur among the application keys (supposedly created with
+ // this class)
+#ifdef __WIN32__
+ case Type_None:
+ case Type_Expand_String:
+ case Type_Binary:
+ case Type_Dword_big_endian:
+ case Type_Link:
+ case Type_Multi_String:
+ case Type_Resource_list:
+ case Type_Full_resource_descriptor:
+ case Type_Resource_requirements_list:
+#endif // Win32
+ default:
+ wxLogError(_("Can't copy values of unsupported type %d."),
+ GetValueType(szValue));
+ return FALSE;
+ }
+}
+
+bool wxRegKey::Rename(const wxChar *szNewName)
+{
+ wxCHECK_MSG( !!m_strKey, FALSE, _T("registry hives can't be renamed") );
+
+ if ( !Exists() ) {
+ wxLogError(_("Registry key '%s' does not exist, cannot rename it."),
+ GetFullName(this));
+
+ return FALSE;
+ }
+
+ // do we stay in the same hive?
+ bool inSameHive = !wxStrchr(szNewName, REG_SEPARATOR);
+
+ // construct the full new name of the key
+ wxRegKey keyDst;
+
+ if ( inSameHive ) {
+ // rename the key to the new name under the same parent
+ wxString strKey = m_strKey.BeforeLast(REG_SEPARATOR);
+ if ( !!strKey ) {
+ // don't add '\\' in the start if strFullNewName is empty
+ strKey += REG_SEPARATOR;
+ }
+
+ strKey += szNewName;
+
+ keyDst.SetName(GetStdKeyFromHkey(m_hRootKey), strKey);
+ }
+ else {
+ // this is the full name already
+ keyDst.SetName(szNewName);
+ }
+
+ bool ok = keyDst.Create(FALSE /* fail if alredy exists */);
+ if ( !ok ) {
+ wxLogError(_("Registry key '%s' already exists."),
+ GetFullName(&keyDst));
+ }
+ else {
+ ok = Copy(keyDst) && DeleteSelf();
+ }
+
+ if ( !ok ) {
+ wxLogError(_("Failed to rename the registry key '%s' to '%s'."),
+ GetFullName(this), GetFullName(&keyDst));
+ }
+ else {
+ m_hRootKey = keyDst.m_hRootKey;
+ m_strKey = keyDst.m_strKey;
+ }
+
+ return ok;
+}
+
+bool wxRegKey::Copy(const wxChar *szNewName)
+{
+ // create the new key first
+ wxRegKey keyDst(szNewName);
+ bool ok = keyDst.Create(FALSE /* fail if alredy exists */);
+ if ( ok ) {
+ ok = Copy(keyDst);
+
+ // we created the dest key but copying to it failed - delete it
+ if ( !ok ) {
+ (void)keyDst.DeleteSelf();
+ }
+ }
+
+ return ok;
+}
+
+bool wxRegKey::Copy(wxRegKey& keyDst)
+{
+ bool ok = TRUE;
+
+ // copy all sub keys to the new location
+ wxString strKey;
+ long lIndex;
+ bool bCont = GetFirstKey(strKey, lIndex);
+ while ( ok && bCont ) {
+ wxRegKey key(*this, strKey);
+ wxString keyName;
+ keyName << GetFullName(&keyDst) << REG_SEPARATOR << strKey;
+ ok = key.Copy((const wxChar*) keyName);
+
+ if ( ok )
+ bCont = GetNextKey(strKey, lIndex);
+ }
+
+ // copy all values
+ wxString strVal;
+ bCont = GetFirstValue(strVal, lIndex);
+ while ( ok && bCont ) {
+ ok = CopyValue(strVal, keyDst);
+
+ if ( !ok ) {
+ wxLogSysError(m_dwLastError,
+ _("Failed to copy registry value '%s'"),
+ strVal.c_str());
+ }
+ else {
+ bCont = GetNextValue(strVal, lIndex);
+ }
+ }
+
+ if ( !ok ) {
+ wxLogError(_("Failed to copy the contents of registry key '%s' to '%s'."), GetFullName(this), GetFullName(&keyDst));
+ }
+
+ return ok;
+}
+
+// ----------------------------------------------------------------------------
+// delete keys/values
+// ----------------------------------------------------------------------------
+bool wxRegKey::DeleteSelf()
+{
+ {
+ wxLogNull nolog;
+ if ( !Open() ) {
+ // it already doesn't exist - ok!
+ return TRUE;
+ }
+ }
+
+ // prevent a buggy program from erasing one of the root registry keys or an
+ // immediate subkey (i.e. one which doesn't have '\\' inside) of any other
+ // key except HKCR (HKCR has some "deleteable" subkeys)
+ if ( m_strKey.IsEmpty() ||
+ ((m_hRootKey != (WXHKEY) aStdKeys[HKCR].hkey) &&
+ (m_strKey.Find(REG_SEPARATOR) == wxNOT_FOUND)) ) {
+ wxLogError(_("Registry key '%s' is needed for normal system operation,\ndeleting it will leave your system in unusable state:\noperation aborted."), GetFullName(this));
+
+ return FALSE;
+ }
+
+ // we can't delete keys while enumerating because it confuses GetNextKey, so
+ // we first save the key names and then delete them all
+ wxArrayString astrSubkeys;
+
+ wxString strKey;
+ long lIndex;
+ bool bCont = GetFirstKey(strKey, lIndex);
+ while ( bCont ) {
+ astrSubkeys.Add(strKey);
+
+ bCont = GetNextKey(strKey, lIndex);
+ }
+
+ size_t nKeyCount = astrSubkeys.Count();
+ for ( size_t nKey = 0; nKey < nKeyCount; nKey++ ) {
+ wxRegKey key(*this, astrSubkeys[nKey]);
+ if ( !key.DeleteSelf() )
+ return FALSE;
+ }
+
+ // now delete this key itself
+ Close();
+
+ m_dwLastError = RegDeleteKey((HKEY) m_hRootKey, m_strKey);
+ // deleting a key which doesn't exist is not considered an error
+ if ( m_dwLastError != ERROR_SUCCESS &&
+ m_dwLastError != ERROR_FILE_NOT_FOUND ) {
+ wxLogSysError(m_dwLastError, _("Can't delete key '%s'"),
+ GetName().c_str());
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool wxRegKey::DeleteKey(const wxChar *szKey)
+{
+ if ( !Open() )
+ return FALSE;
+
+ wxRegKey key(*this, szKey);
+ return key.DeleteSelf();
+}
+
+bool wxRegKey::DeleteValue(const wxChar *szValue)
+{
+ if ( !Open() )
+ return FALSE;
+
+ m_dwLastError = RegDeleteValue((HKEY) m_hKey, WXSTRINGCAST szValue);
+
+ // deleting a value which doesn't exist is not considered an error
+ if ( (m_dwLastError != ERROR_SUCCESS) &&
+ (m_dwLastError != ERROR_FILE_NOT_FOUND) ) {
+ wxLogSysError(m_dwLastError, _("Can't delete value '%s' from key '%s'"),
+ szValue, GetName().c_str());
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+// ----------------------------------------------------------------------------
+// access to values and subkeys
+// ----------------------------------------------------------------------------
+
+// return TRUE if value exists
+bool wxRegKey::HasValue(const wxChar *szValue) const
+{
+ // this function should be silent, so suppress possible messages from Open()
+ wxLogNull nolog;
+
+ if ( !CONST_CAST Open() )
+ return FALSE;
+
+ LONG dwRet = ::RegQueryValueEx((HKEY) m_hKey,
+ WXSTRINGCAST szValue,
+ RESERVED,
+ NULL, NULL, NULL);
+ return dwRet == ERROR_SUCCESS;
+}
+
+// returns TRUE if this key has any values
+bool wxRegKey::HasValues() const
+{
+ // suppress possible messages from GetFirstValue()
+ wxLogNull nolog;
+
+ // just call GetFirstValue with dummy parameters
+ wxString str;
+ long l;
+ return CONST_CAST GetFirstValue(str, l);
+}
+
+// returns TRUE if this key has any subkeys
+bool wxRegKey::HasSubkeys() const
+{
+ // suppress possible messages from GetFirstKey()
+ wxLogNull nolog;
+
+ // just call GetFirstKey with dummy parameters
+ wxString str;
+ long l;
+ return CONST_CAST GetFirstKey(str, l);
+}
+
+// returns TRUE if given subkey exists
+bool wxRegKey::HasSubKey(const wxChar *szKey) const
+{
+ // this function should be silent, so suppress possible messages from Open()
+ wxLogNull nolog;
+
+ if ( !CONST_CAST Open() )
+ return FALSE;
+
+ return KeyExists(m_hKey, szKey);
+}
+
+wxRegKey::ValueType wxRegKey::GetValueType(const wxChar *szValue) const
+{
+ if ( ! CONST_CAST Open() )
+ return Type_None;
+
+ DWORD dwType;
+ m_dwLastError = RegQueryValueEx((HKEY) m_hKey, WXSTRINGCAST szValue, RESERVED,
+ &dwType, NULL, NULL);
+ if ( m_dwLastError != ERROR_SUCCESS ) {
+ wxLogSysError(m_dwLastError, _("Can't read value of key '%s'"),
+ GetName().c_str());
+ return Type_None;
+ }
+
+ return (ValueType)dwType;
+}
+
+#ifdef __WIN32__
+bool wxRegKey::SetValue(const wxChar *szValue, long lValue)
+{
+ if ( CONST_CAST Open() ) {
+ m_dwLastError = RegSetValueEx((HKEY) m_hKey, szValue, (DWORD) RESERVED, REG_DWORD,
+ (RegString)&lValue, sizeof(lValue));
+ if ( m_dwLastError == ERROR_SUCCESS )
+ return TRUE;
+ }
+
+ wxLogSysError(m_dwLastError, _("Can't set value of '%s'"),
+ GetFullName(this, szValue));
+ return FALSE;
+}
+
+bool wxRegKey::QueryValue(const wxChar *szValue, long *plValue) const
+{
+ if ( CONST_CAST Open() ) {
+ DWORD dwType, dwSize = sizeof(DWORD);
+ RegString pBuf = (RegString)plValue;
+ m_dwLastError = RegQueryValueEx((HKEY) m_hKey, WXSTRINGCAST szValue, RESERVED,
+ &dwType, pBuf, &dwSize);
+ if ( m_dwLastError != ERROR_SUCCESS ) {
+ wxLogSysError(m_dwLastError, _("Can't read value of key '%s'"),
+ GetName().c_str());
+ return FALSE;
+ }
+ else {
+ // check that we read the value of right type
+ wxASSERT_MSG( IsNumericValue(szValue),
+ wxT("Type mismatch in wxRegKey::QueryValue().") );
+
+ return TRUE;
+ }
+ }
+ else
+ return FALSE;
+}
+
+#endif //Win32
+
+bool wxRegKey::QueryValue(const wxChar *szValue,
+ wxString& strValue,
+ bool raw) const
+{
+ if ( CONST_CAST Open() ) {
+
+ // first get the type and size of the data
+ DWORD dwType, dwSize;
+ m_dwLastError = RegQueryValueEx((HKEY) m_hKey, WXSTRINGCAST szValue, RESERVED,
+ &dwType, NULL, &dwSize);
+ if ( m_dwLastError == ERROR_SUCCESS ) {
+ if ( !dwSize ) {
+ // must treat this case specially as GetWriteBuf() doesn't like
+ // being called with 0 size
+ strValue.Empty();
+ }
+ else {
+ m_dwLastError = RegQueryValueEx((HKEY) m_hKey,
+ WXSTRINGCAST szValue,
+ RESERVED,
+ &dwType,
+ (RegString)(wxChar*)wxStringBuffer(strValue, dwSize),
+ &dwSize);
+
+ // expand the var expansions in the string unless disabled
+#ifndef __WXWINCE__
+ if ( (dwType == REG_EXPAND_SZ) && !raw )
+ {
+ DWORD dwExpSize = ::ExpandEnvironmentStrings(strValue, NULL, 0);
+ bool ok = dwExpSize != 0;
+ if ( ok )
+ {
+ wxString strExpValue;
+ ok = ::ExpandEnvironmentStrings
+ (
+ strValue,
+ wxStringBuffer(strExpValue, dwExpSize),
+ dwExpSize
+ ) != 0;
+ strValue = strExpValue;
+ }
+
+ if ( !ok )
+ {
+ wxLogLastError(_T("ExpandEnvironmentStrings"));
+ }
+ }
+#endif
+ // __WXWINCE__
+ }
+
+ if ( m_dwLastError == ERROR_SUCCESS ) {
+ // check that it was the right type
+ wxASSERT_MSG( !IsNumericValue(szValue),
+ wxT("Type mismatch in wxRegKey::QueryValue().") );
+
+ return TRUE;
+ }
+ }
+ }
+
+ wxLogSysError(m_dwLastError, _("Can't read value of '%s'"),
+ GetFullName(this, szValue));
+ return FALSE;
+}
+
+bool wxRegKey::SetValue(const wxChar *szValue, const wxString& strValue)
+{
+ if ( CONST_CAST Open() ) {
+ m_dwLastError = RegSetValueEx((HKEY) m_hKey, szValue, (DWORD) RESERVED, REG_SZ,
+ (RegString)strValue.c_str(),
+ (strValue.Len() + 1)*sizeof(wxChar));
+ if ( m_dwLastError == ERROR_SUCCESS )
+ return TRUE;
+ }
+
+ wxLogSysError(m_dwLastError, _("Can't set value of '%s'"),
+ GetFullName(this, szValue));
+ return FALSE;
+}
+
+wxString wxRegKey::QueryDefaultValue() const
+{
+ wxString str;
+ QueryValue(NULL, str);
+ return str;
+}
+
+// ----------------------------------------------------------------------------
+// enumeration
+// NB: all these functions require an index variable which allows to have
+// several concurrently running indexations on the same key
+// ----------------------------------------------------------------------------
+
+bool wxRegKey::GetFirstValue(wxString& strValueName, long& lIndex)
+{
+ if ( !Open() )
+ return FALSE;
+
+ lIndex = 0;
+ return GetNextValue(strValueName, lIndex);
+}
+
+bool wxRegKey::GetNextValue(wxString& strValueName, long& lIndex) const
+{
+ wxASSERT( IsOpened() );
+
+ // are we already at the end of enumeration?
+ if ( lIndex == -1 )
+ return FALSE;
+
+ wxChar szValueName[1024]; // @@ use RegQueryInfoKey...
+ DWORD dwValueLen = WXSIZEOF(szValueName);
+
+ m_dwLastError = RegEnumValue((HKEY) m_hKey, lIndex++,
+ szValueName, &dwValueLen,
+ RESERVED,
+ NULL, // [out] type
+ NULL, // [out] buffer for value
+ NULL); // [i/o] it's length
+
+ if ( m_dwLastError != ERROR_SUCCESS ) {
+ if ( m_dwLastError == ERROR_NO_MORE_ITEMS ) {
+ m_dwLastError = ERROR_SUCCESS;
+ lIndex = -1;
+ }
+ else {
+ wxLogSysError(m_dwLastError, _("Can't enumerate values of key '%s'"),
+ GetName().c_str());
+ }
+
+ return FALSE;
+ }
+
+ strValueName = szValueName;
+
+ return TRUE;
+}
+
+bool wxRegKey::GetFirstKey(wxString& strKeyName, long& lIndex)
+{
+ if ( !Open() )
+ return FALSE;
+
+ lIndex = 0;
+ return GetNextKey(strKeyName, lIndex);
+}
+
+bool wxRegKey::GetNextKey(wxString& strKeyName, long& lIndex) const
+{
+ wxASSERT( IsOpened() );
+
+ // are we already at the end of enumeration?
+ if ( lIndex == -1 )
+ return FALSE;
+
+ wxChar szKeyName[_MAX_PATH + 1];
+
+#ifdef __WXWINCE__
+ DWORD sizeName = WXSIZEOF(szKeyName);
+ m_dwLastError = RegEnumKeyEx((HKEY) m_hKey, lIndex++, szKeyName, & sizeName,
+ 0, NULL, NULL, NULL);
+#else
+ m_dwLastError = RegEnumKey((HKEY) m_hKey, lIndex++, szKeyName, WXSIZEOF(szKeyName));
+#endif
+
+ if ( m_dwLastError != ERROR_SUCCESS ) {
+ if ( m_dwLastError == ERROR_NO_MORE_ITEMS ) {
+ m_dwLastError = ERROR_SUCCESS;
+ lIndex = -1;
+ }
+ else {
+ wxLogSysError(m_dwLastError, _("Can't enumerate subkeys of key '%s'"),
+ GetName().c_str());
+ }
+
+ return FALSE;
+ }
+
+ strKeyName = szKeyName;
+ return TRUE;
+}
+
+// returns TRUE if the value contains a number (else it's some string)
+bool wxRegKey::IsNumericValue(const wxChar *szValue) const
+ {
+ ValueType type = GetValueType(szValue);
+ switch ( type ) {
+ case Type_Dword:
+ /* case Type_Dword_little_endian: == Type_Dword */
+ case Type_Dword_big_endian:
+ return TRUE;
+
+ default:
+ return FALSE;
+ }
+ }
+
+// ============================================================================
+// implementation of global private functions
+// ============================================================================
+
+bool KeyExists(WXHKEY hRootKey, const wxChar *szKey)
+{
+ // don't close this key itself for the case of empty szKey!
+ if ( wxIsEmpty(szKey) )
+ return TRUE;
+
+ HKEY hkeyDummy;
+ if ( ::RegOpenKeyEx
+ (
+ (HKEY)hRootKey,
+ szKey,
+ RESERVED,
+ KEY_READ, // we might not have enough rights for rw access
+ &hkeyDummy
+ ) == ERROR_SUCCESS )
+ {
+ ::RegCloseKey(hkeyDummy);
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+const wxChar *GetFullName(const wxRegKey *pKey, const wxChar *szValue)
+{
+ static wxString s_str;
+ s_str = pKey->GetName();
+ if ( !wxIsEmpty(szValue) )
+ s_str << wxT("\\") << szValue;
+
+ return s_str.c_str();
+}
+
+void RemoveTrailingSeparator(wxString& str)
+{
+ if ( !str.IsEmpty() && str.Last() == REG_SEPARATOR )
+ str.Truncate(str.Len() - 1);
+}
+
+#endif //Palm OS
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/renderer.cpp
+// Purpose: implementation of wxRendererNative for Palm OS
+// Author: Vadim Zeitlin
+// Modified by:
+// Created: 20.07.2003
+// RCS-ID: $Id$
+// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
+// License: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// Palm OS doesn't really have a theme engine, so this is not needed.
+#ifndef __PALMOS__
+
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #include "wx/window.h"
+ #include "wx/dc.h"
+#endif //WX_PRECOMP
+
+#include "wx/splitter.h"
+#include "wx/renderer.h"
+
+#include "wx/palmos/uxtheme.h"
+
+// ----------------------------------------------------------------------------
+// wxRendererMSW: wxRendererNative implementation for "old" Win32 systems
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxRendererMSW : public wxDelegateRendererNative
+{
+public:
+ wxRendererMSW() { }
+
+ static wxRendererNative& Get();
+
+private:
+ DECLARE_NO_COPY_CLASS(wxRendererMSW)
+};
+
+// ----------------------------------------------------------------------------
+// wxRendererXP: wxRendererNative implementation for Windows XP and later
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxRendererXP : public wxDelegateRendererNative
+{
+public:
+ wxRendererXP() : wxDelegateRendererNative(wxRendererMSW::Get()) { }
+
+ static wxRendererNative& Get();
+
+ virtual void DrawSplitterBorder(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags = 0);
+ virtual void DrawSplitterSash(wxWindow *win,
+ wxDC& dc,
+ const wxSize& size,
+ wxCoord position,
+ wxOrientation orient,
+ int flags = 0);
+ virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win);
+
+private:
+ DECLARE_NO_COPY_CLASS(wxRendererXP)
+};
+
+// ============================================================================
+// wxRendererNative and wxRendererMSW implementation
+// ============================================================================
+
+/* static */
+wxRendererNative& wxRendererNative::GetDefault()
+{
+ wxUxThemeEngine *themeEngine = wxUxThemeEngine::Get();
+ return themeEngine && themeEngine->IsAppThemed() ? wxRendererXP::Get()
+ : wxRendererMSW::Get();
+}
+
+/* static */
+wxRendererNative& wxRendererMSW::Get()
+{
+ static wxRendererMSW s_rendererMSW;
+
+ return s_rendererMSW;
+}
+
+// ============================================================================
+// wxRendererXP implementation
+// ============================================================================
+
+/* static */
+wxRendererNative& wxRendererXP::Get()
+{
+ static wxRendererXP s_rendererXP;
+
+ return s_rendererXP;
+}
+
+// ----------------------------------------------------------------------------
+// splitter drawing
+// ----------------------------------------------------------------------------
+
+// the width of the sash: this is the same as used by Explorer...
+static const wxCoord SASH_WIDTH = 4;
+
+wxSplitterRenderParams
+wxRendererXP::GetSplitterParams(const wxWindow * win)
+{
+ if (win->GetWindowStyle() & wxSP_NO_XP_THEME)
+ return m_rendererNative.GetSplitterParams(win);
+ else
+ return wxSplitterRenderParams(SASH_WIDTH, 0, false);
+}
+
+void
+wxRendererXP::DrawSplitterBorder(wxWindow * win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags)
+{
+ if (win->GetWindowStyle() & wxSP_NO_XP_THEME)
+ {
+ m_rendererNative.DrawSplitterBorder(win, dc, rect, flags);
+ }
+}
+
+void
+wxRendererXP::DrawSplitterSash(wxWindow *win,
+ wxDC& dc,
+ const wxSize& size,
+ wxCoord position,
+ wxOrientation orient,
+ int flags)
+{
+ if (win->GetWindowStyle() & wxSP_NO_XP_THEME)
+ {
+ m_rendererNative.DrawSplitterSash(
+ win, dc, size, position, orient, flags);
+ return;
+ }
+
+ // I don't know if it is correct to use the rebar background for the
+ // splitter but it least this works ok in the default theme
+ wxUxThemeHandle hTheme(win, L"REBAR");
+ if ( hTheme )
+ {
+ RECT rect;
+ if ( orient == wxVERTICAL )
+ {
+ rect.left = position;
+ rect.right = position + SASH_WIDTH;
+ rect.top = 0;
+ rect.bottom = size.y;
+ }
+ else // wxHORIZONTAL
+ {
+ rect.left = 0;
+ rect.right = size.x;
+ rect.top = position;
+ rect.bottom = position + SASH_WIDTH;
+ }
+
+ wxUxThemeEngine::Get()->DrawThemeBackground
+ (
+ (WXHTHEME)hTheme,
+ dc.GetHDC(),
+ 3 /* RP_BAND */,
+ 0 /* no state */ ,
+ &rect,
+ NULL
+ );
+ }
+}
+
+#endif
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/scrolbar.cpp
+// Purpose: wxScrollBar
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "scrolbar.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_SCROLLBAR
+
+#ifndef WX_PRECOMP
+ #include "wx/utils.h"
+#endif
+
+#include "wx/scrolbar.h"
+#include "wx/palmos/private.h"
+#include "wx/settings.h"
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxScrollBarStyle )
+
+wxBEGIN_FLAGS( wxScrollBarStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxSB_HORIZONTAL)
+ wxFLAGS_MEMBER(wxSB_VERTICAL)
+
+wxEND_FLAGS( wxScrollBarStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxScrollBar, wxControl,"wx/scrolbar.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxScrollBar)
+ wxEVENT_RANGE_PROPERTY( Scroll , wxEVT_SCROLL_TOP , wxEVT_SCROLL_ENDSCROLL , wxScrollEvent )
+
+ wxPROPERTY( ThumbPosition , int , SetThumbPosition, GetThumbPosition, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Range , int , SetRange, GetRange, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( ThumbSize , int , SetThumbSize, GetThumbSize, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( PageSize , int , SetPageSize, GetPageSize, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxScrollBarStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxScrollBar)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_5( wxScrollBar , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size , long , WindowStyle )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl)
+#endif
+
+// Scrollbar
+bool wxScrollBar::Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size, long style,
+ const wxValidator& wxVALIDATOR_PARAM(validator),
+ const wxString& name)
+{
+ return false;
+}
+
+wxScrollBar::~wxScrollBar(void)
+{
+}
+
+bool wxScrollBar::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam,
+ WXWORD pos, WXHWND WXUNUSED(control))
+{
+ return false;
+}
+
+void wxScrollBar::SetThumbPosition(int viewStart)
+{
+}
+
+int wxScrollBar::GetThumbPosition(void) const
+{
+}
+
+void wxScrollBar::SetScrollbar(int position, int thumbSize, int range, int pageSize,
+ bool refresh)
+{
+}
+
+
+WXHBRUSH wxScrollBar::OnCtlColor(WXHDC WXUNUSED(pDC), WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED(nCtlColor),
+ WXUINT WXUNUSED(message), WXWPARAM WXUNUSED(wParam), WXLPARAM WXUNUSED(lParam))
+{
+ return 0;
+}
+
+void wxScrollBar::Command(wxCommandEvent& event)
+{
+}
+
+wxSize wxScrollBar::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+#endif // wxUSE_SCROLLBAR
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/settings.cpp
+// Purpose: wxSystemSettingsNative implementation for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/utils.h"
+ #include "wx/gdicmn.h"
+#endif
+
+#include "wx/settings.h"
+
+#ifndef SPI_GETFLATMENU
+#define SPI_GETFLATMENU 0x1022
+#endif
+
+#include "wx/module.h"
+#include "wx/fontutil.h"
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// global data
+// ----------------------------------------------------------------------------
+
+// the font returned by GetFont(wxSYS_DEFAULT_GUI_FONT): it is created when
+// GetFont() is called for the first time and deleted by wxSystemSettingsModule
+static wxFont *gs_fontDefault = NULL;
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxSystemSettingsNative
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// colours
+// ----------------------------------------------------------------------------
+
+wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
+{
+ return wxNullColour;
+}
+
+// ----------------------------------------------------------------------------
+// fonts
+// ----------------------------------------------------------------------------
+
+wxFont wxCreateFontFromStockObject(int index)
+{
+ wxFont font;
+ return font;
+}
+
+wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
+{
+ wxFont font;
+ return font;
+}
+
+// ----------------------------------------------------------------------------
+// system metrics/features
+// ----------------------------------------------------------------------------
+
+// Get a system metric, e.g. scrollbar size
+int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
+{
+ return 0;
+}
+
+bool wxSystemSettingsNative::HasFeature(wxSystemFeature index)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// function from wx/msw/wrapcctl.h: there is really no other place for it...
+// ----------------------------------------------------------------------------
+
+#if wxUSE_LISTCTRL || wxUSE_TREECTRL
+
+extern wxFont wxGetCCDefaultFont()
+{
+ wxFont font;
+ return font;
+}
+
+#endif // wxUSE_LISTCTRL || wxUSE_TREECTRL
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: slider.cpp
+// Purpose: wxSlider
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "slider.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#if wxUSE_SLIDER
+
+#ifndef WX_PRECOMP
+#include "wx/utils.h"
+#include "wx/brush.h"
+#include "wx/slider.h"
+#endif
+
+#include "wx/palmos/slider.h"
+#include "wx/palmos/private.h"
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxSliderStyle )
+
+wxBEGIN_FLAGS( wxSliderStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxSL_HORIZONTAL)
+ wxFLAGS_MEMBER(wxSL_VERTICAL)
+ wxFLAGS_MEMBER(wxSL_AUTOTICKS)
+ wxFLAGS_MEMBER(wxSL_LABELS)
+ wxFLAGS_MEMBER(wxSL_LEFT)
+ wxFLAGS_MEMBER(wxSL_TOP)
+ wxFLAGS_MEMBER(wxSL_RIGHT)
+ wxFLAGS_MEMBER(wxSL_BOTTOM)
+ wxFLAGS_MEMBER(wxSL_BOTH)
+ wxFLAGS_MEMBER(wxSL_SELRANGE)
+
+wxEND_FLAGS( wxSliderStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxSlider, wxControl,"wx/scrolbar.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxSlider)
+ wxEVENT_RANGE_PROPERTY( Scroll , wxEVT_SCROLL_TOP , wxEVT_SCROLL_ENDSCROLL , wxScrollEvent )
+ wxEVENT_PROPERTY( Updated , wxEVT_COMMAND_SLIDER_UPDATED , wxCommandEvent )
+
+ wxPROPERTY( Value , int , SetValue, GetValue , 0, 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Minimum , int , SetMin, GetMin, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Maximum , int , SetMax, GetMax, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( PageSize , int , SetPageSize, GetLineSize, 1 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( LineSize , int , SetLineSize, GetLineSize, 1 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( ThumbLength , int , SetThumbLength, GetThumbLength, 1 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxSliderStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxSlider)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_8( wxSlider , wxWindow* , Parent , wxWindowID , Id , int , Value , int , Minimum , int , Maximum , wxPoint , Position , wxSize , Size , long , WindowStyle )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl)
+#endif
+
+// Slider
+wxSlider::wxSlider()
+{
+}
+
+bool wxSlider::Create(wxWindow *parent, wxWindowID id,
+ int value, int minValue, int maxValue,
+ const wxPoint& pos,
+ const wxSize& size, long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+bool wxSlider::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam,
+ WXWORD WXUNUSED(pos), WXHWND control)
+{
+ return false;
+}
+
+wxSlider::~wxSlider()
+{
+}
+
+int wxSlider::GetValue() const
+{
+ return 0;
+}
+
+void wxSlider::SetValue(int value)
+{
+}
+
+void wxSlider::DoGetSize(int *width, int *height) const
+{
+}
+
+void wxSlider::GetPosition(int *x, int *y) const
+{
+}
+
+void wxSlider::DoSetSize(int x, int y, int width, int height, int sizeFlags)
+{
+}
+
+
+wxSize wxSlider::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+
+void wxSlider::SetRange(int minValue, int maxValue)
+{
+}
+
+WXHBRUSH wxSlider::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
+ WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return 0;
+}
+
+void wxSlider::SetTickFreq(int n, int pos)
+{
+}
+
+void wxSlider::SetPageSize(int pageSize)
+{
+}
+
+int wxSlider::GetPageSize() const
+{
+ return 0;
+}
+
+void wxSlider::ClearSel()
+{
+}
+
+void wxSlider::ClearTicks()
+{
+}
+
+void wxSlider::SetLineSize(int lineSize)
+{
+}
+
+int wxSlider::GetLineSize() const
+{
+ return 0;
+}
+
+int wxSlider::GetSelEnd() const
+{
+ return 0;
+}
+
+int wxSlider::GetSelStart() const
+{
+ return 0;
+}
+
+void wxSlider::SetSelection(int minPos, int maxPos)
+{
+}
+
+void wxSlider::SetThumbLength(int len)
+{
+}
+
+int wxSlider::GetThumbLength() const
+{
+ return 0;
+}
+
+void wxSlider::SetTick(int tickPos)
+{
+}
+
+bool wxSlider::ContainsHWND(WXHWND hWnd) const
+{
+ return false;
+}
+
+void wxSlider::Command (wxCommandEvent & event)
+{
+}
+
+bool wxSlider::Show(bool show)
+{
+ return false;
+}
+
+#endif // wxUSE_SLIDER
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/snglinst.cpp
+// Purpose: implements wxSingleInstanceChecker class for Win32 using
+// named mutexes
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "snglinst.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_SNGLINST_CHECKER
+
+#ifndef WX_PRECOMP
+ #include "wx/string.h"
+ #include "wx/log.h"
+#endif //WX_PRECOMP
+
+#include "wx/snglinst.h"
+
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// wxSingleInstanceCheckerImpl: the real implementation class
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxSingleInstanceCheckerImpl
+{
+public:
+ wxSingleInstanceCheckerImpl()
+ {
+ }
+
+ bool Create(const wxString& name)
+ {
+ return false;
+ }
+
+ bool WasOpened() const
+ {
+ return false;
+ }
+
+ ~wxSingleInstanceCheckerImpl()
+ {
+ }
+
+private:
+ // the result of the CreateMutex() call
+ bool m_wasOpened;
+
+ // the mutex handle, may be NULL
+ HANDLE m_hMutex;
+
+ DECLARE_NO_COPY_CLASS(wxSingleInstanceCheckerImpl)
+};
+
+// ============================================================================
+// wxSingleInstanceChecker implementation
+// ============================================================================
+
+bool wxSingleInstanceChecker::Create(const wxString& name,
+ const wxString& WXUNUSED(path))
+{
+ return false;
+}
+
+bool wxSingleInstanceChecker::IsAnotherRunning() const
+{
+ return false;
+}
+
+wxSingleInstanceChecker::~wxSingleInstanceChecker()
+{
+}
+
+#endif // wxUSE_SNGLINST_CHECKER
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: sound.cpp
+// Purpose: wxSound
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "sound.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#if defined(__BORLANDC__)
+#pragma hdrstop
+#endif
+
+#if wxUSE_SOUND
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+#include "wx/file.h"
+#include "wx/sound.h"
+#include "wx/palmos/private.h"
+
+wxSound::wxSound()
+ : m_waveData(NULL), m_waveLength(0), m_isResource(false)
+{
+}
+
+wxSound::wxSound(const wxString& sFileName, bool isResource)
+ : m_waveData(NULL), m_waveLength(0), m_isResource(isResource)
+{
+}
+
+wxSound::wxSound(int size, const wxByte* data)
+ : m_waveData(NULL), m_waveLength(0), m_isResource(false)
+{
+}
+
+wxSound::~wxSound()
+{
+}
+
+bool wxSound::Create(const wxString& fileName, bool isResource)
+{
+ return false;
+}
+
+bool wxSound::Create(int size, const wxByte* data)
+{
+ return false;
+}
+
+bool wxSound::DoPlay(unsigned flags) const
+{
+ return false;
+}
+
+bool wxSound::Free()
+{
+ return false;
+}
+
+/*static*/ void wxSound::Stop()
+{
+}
+
+#endif // wxUSE_SOUND
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/spinbutt.cpp
+// Purpose: wxSpinButton
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "spinbutt.h"
+ #pragma implementation "spinbutbase.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/app.h"
+#endif
+
+#if wxUSE_SPINBTN
+
+#include "wx/spinbutt.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent)
+
+#if defined(__WIN95__)
+
+#include "wx/msw/private.h"
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxSpinButtonStyle )
+
+wxBEGIN_FLAGS( wxSpinButtonStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxSP_HORIZONTAL)
+ wxFLAGS_MEMBER(wxSP_VERTICAL)
+ wxFLAGS_MEMBER(wxSP_ARROW_KEYS)
+ wxFLAGS_MEMBER(wxSP_WRAP)
+
+wxEND_FLAGS( wxSpinButtonStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxSpinButton, wxControl,"wx/spinbut.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxSpinButton)
+ wxEVENT_RANGE_PROPERTY( Spin , wxEVT_SCROLL_TOP , wxEVT_SCROLL_ENDSCROLL , wxSpinEvent )
+
+ wxPROPERTY( Value , int , SetValue, GetValue, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Min , int , SetMin, GetMin, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Max , int , SetMax, GetMax, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxSpinButtonStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxSpinButton)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_5( wxSpinButton , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size , long , WindowStyle )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl)
+#endif
+
+
+
+// ----------------------------------------------------------------------------
+// wxSpinButton
+// ----------------------------------------------------------------------------
+
+bool wxSpinButton::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+wxSpinButton::~wxSpinButton()
+{
+}
+
+// ----------------------------------------------------------------------------
+// size calculation
+// ----------------------------------------------------------------------------
+
+wxSize wxSpinButton::DoGetBestSize() const
+{
+ return wxSize(0,0),
+}
+
+// ----------------------------------------------------------------------------
+// Attributes
+// ----------------------------------------------------------------------------
+
+int wxSpinButton::GetValue() const
+{
+ return 0;
+}
+
+void wxSpinButton::SetValue(int val)
+{
+}
+
+void wxSpinButton::SetRange(int minVal, int maxVal)
+{
+}
+
+bool wxSpinButton::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam,
+ WXWORD pos, WXHWND control)
+{
+ return false;
+}
+
+bool wxSpinButton::MSWOnNotify(int WXUNUSED(idCtrl), WXLPARAM lParam, WXLPARAM *result)
+{
+ return false;
+}
+
+bool wxSpinButton::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD WXUNUSED(id))
+{
+ return false;
+}
+
+#endif // __WIN95__
+
+#endif
+ // wxUSE_SPINCTN
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/spinctrl.cpp
+// Purpose: wxSpinCtrl class implementation for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "spinctrlbase.h"
+ #pragma implementation "spinctrl.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/wx.h"
+#endif
+
+#if wxUSE_SPINCTRL
+
+#if defined(__WIN95__)
+
+#include "wx/spinctrl.h"
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxSpinCtrlStyle )
+
+wxBEGIN_FLAGS( wxSpinCtrlStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxSP_HORIZONTAL)
+ wxFLAGS_MEMBER(wxSP_VERTICAL)
+ wxFLAGS_MEMBER(wxSP_ARROW_KEYS)
+ wxFLAGS_MEMBER(wxSP_WRAP)
+
+wxEND_FLAGS( wxSpinCtrlStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxSpinCtrl, wxControl,"wx/spinbut.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxSpinCtrl)
+ wxEVENT_RANGE_PROPERTY( Spin , wxEVT_SCROLL_TOP , wxEVT_SCROLL_ENDSCROLL , wxSpinEvent )
+ wxEVENT_PROPERTY( Updated , wxEVT_COMMAND_SPINCTRL_UPDATED , wxCommandEvent )
+ wxEVENT_PROPERTY( TextUpdated , wxEVT_COMMAND_TEXT_UPDATED , wxCommandEvent )
+ wxEVENT_PROPERTY( TextEnter , wxEVT_COMMAND_TEXT_ENTER , wxCommandEvent )
+
+ wxPROPERTY( ValueString , wxString , SetValue , GetValue , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) ;
+ wxPROPERTY( Value , int , SetValue, GetValue, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Min , int , SetMin, GetMin, 0, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY( Max , int , SetMax, GetMax, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxSpinCtrlStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+/*
+ TODO PROPERTIES
+ style wxSP_ARROW_KEYS
+*/
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxSpinCtrl)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_6( wxSpinCtrl , wxWindow* , Parent , wxWindowID , Id , wxString , ValueString , wxPoint , Position , wxSize , Size , long , WindowStyle )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxControl)
+#endif
+
+BEGIN_EVENT_TABLE(wxSpinCtrl, wxSpinButton)
+ EVT_CHAR(wxSpinCtrl::OnChar)
+
+ EVT_SET_FOCUS(wxSpinCtrl::OnSetFocus)
+
+ EVT_SPIN(-1, wxSpinCtrl::OnSpinChange)
+END_EVENT_TABLE()
+
+#define GetBuddyHwnd() (HWND)(m_hwndBuddy)
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// the margin between the up-down control and its buddy (can be arbitrary,
+// choose what you like - or may be decide during run-time depending on the
+// font size?)
+static const int MARGIN_BETWEEN = 1;
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+wxArraySpins wxSpinCtrl::ms_allSpins;
+
+/* static */
+wxSpinCtrl *wxSpinCtrl::GetSpinForTextCtrl(WXHWND hwndBuddy)
+{
+ return NULL;
+}
+
+// process a WM_COMMAND generated by the buddy text control
+bool wxSpinCtrl::ProcessTextCommand(WXWORD cmd, WXWORD WXUNUSED(id))
+{
+ return false;
+}
+
+void wxSpinCtrl::OnChar(wxKeyEvent& event)
+{
+}
+
+void wxSpinCtrl::OnSetFocus(wxFocusEvent& event)
+{
+}
+
+// ----------------------------------------------------------------------------
+// construction
+// ----------------------------------------------------------------------------
+
+bool wxSpinCtrl::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& value,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ int min, int max, int initial,
+ const wxString& name)
+{
+ return false;
+}
+
+wxSpinCtrl::~wxSpinCtrl()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxTextCtrl-like methods
+// ----------------------------------------------------------------------------
+
+void wxSpinCtrl::SetValue(const wxString& text)
+{
+}
+
+int wxSpinCtrl::GetValue() const
+{
+ return 0;
+}
+
+void wxSpinCtrl::SetSelection(long from, long to)
+{
+}
+
+// ----------------------------------------------------------------------------
+// forward some methods to subcontrols
+// ----------------------------------------------------------------------------
+
+bool wxSpinCtrl::SetFont(const wxFont& font)
+{
+ return false;
+}
+
+bool wxSpinCtrl::Show(bool show)
+{
+ return false;
+}
+
+bool wxSpinCtrl::Enable(bool enable)
+{
+ return false;
+}
+
+void wxSpinCtrl::SetFocus()
+{
+}
+
+// ----------------------------------------------------------------------------
+// event processing
+// ----------------------------------------------------------------------------
+
+void wxSpinCtrl::OnSpinChange(wxSpinEvent& eventSpin)
+{
+}
+
+// ----------------------------------------------------------------------------
+// size calculations
+// ----------------------------------------------------------------------------
+
+wxSize wxSpinCtrl::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+void wxSpinCtrl::DoMoveWindow(int x, int y, int width, int height)
+{
+}
+
+// get total size of the control
+void wxSpinCtrl::DoGetSize(int *x, int *y) const
+{
+}
+
+void wxSpinCtrl::DoGetPosition(int *x, int *y) const
+{
+}
+
+#endif // __WIN95__
+
+#endif
+ // wxUSE_SPINCTRL
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: statbmp.cpp
+// Purpose: wxStaticBitmap
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "statbmp.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_STATBMP
+
+#include "wx/window.h"
+#include "wx/palmos/private.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/icon.h"
+ #include "wx/statbmp.h"
+#endif
+
+// ---------------------------------------------------------------------------
+// macors
+// ---------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxStaticBitmapStyle )
+
+wxBEGIN_FLAGS( wxStaticBitmapStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+wxEND_FLAGS( wxStaticBitmapStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticBitmap, wxControl,"wx/statbmp.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxStaticBitmap)
+ wxPROPERTY_FLAGS( WindowStyle , wxStaticBitmapStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxStaticBitmap)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_5( wxStaticBitmap, wxWindow* , Parent , wxWindowID , Id , wxBitmap, Bitmap, wxPoint , Position , wxSize , Size )
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl)
+#endif
+
+/*
+ TODO PROPERTIES :
+ bitmap
+*/
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// wxStaticBitmap
+// ---------------------------------------------------------------------------
+
+static wxGDIImage* ConvertImage( const wxGDIImage& bitmap )
+{
+ return NULL;
+}
+
+bool wxStaticBitmap::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxGDIImage& bitmap,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+wxBorder wxStaticBitmap::GetDefaultBorder() const
+{
+ return wxBORDER_NONE;
+}
+
+WXDWORD wxStaticBitmap::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+bool wxStaticBitmap::ImageIsOk() const
+{
+ return false;
+}
+
+void wxStaticBitmap::Free()
+{
+}
+
+wxSize wxStaticBitmap::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+void wxStaticBitmap::SetImage( const wxGDIImage* image )
+{
+}
+
+void wxStaticBitmap::SetImageNoCopy( wxGDIImage* image)
+{
+}
+
+// We need this or the control can never be moved e.g. in Dialog Editor.
+WXLRESULT wxStaticBitmap::MSWWindowProc(WXUINT nMsg,
+ WXWPARAM wParam,
+ WXLPARAM lParam)
+{
+ return false;
+}
+
+#endif // wxUSE_STATBMP
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/statbox.cpp
+// Purpose: wxStaticBox
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "statbox.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_STATBOX
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+ #include "wx/dcclient.h"
+#endif
+
+#include "wx/statbox.h"
+
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxStaticBoxStyle )
+
+wxBEGIN_FLAGS( wxStaticBoxStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+wxEND_FLAGS( wxStaticBoxStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticBox, wxControl,"wx/statbox.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxStaticBox)
+ wxPROPERTY( Label,wxString, SetLabel, GetLabel, wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxStaticBoxStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+/*
+ TODO PROPERTIES :
+ label
+*/
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxStaticBox)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_6( wxStaticBox , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl)
+#endif
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxStaticBox
+// ----------------------------------------------------------------------------
+
+bool wxStaticBox::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+wxSize wxStaticBox::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+WXLRESULT wxStaticBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return 0;
+}
+
+#endif // wxUSE_STATBOX
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/statline.cpp
+// Purpose: wxStaticLine class
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "statline.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include "wx/statline.h"
+
+#if wxUSE_STATLINE
+
+#include "wx/palmos/private.h"
+#include "wx/log.h"
+
+#ifndef SS_SUNKEN
+ #define SS_SUNKEN 0x00001000L
+#endif
+
+#ifndef SS_NOTIFY
+ #define SS_NOTIFY 0x00000100L
+#endif
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxStaticLineStyle )
+
+wxBEGIN_FLAGS( wxStaticLineStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxLI_HORIZONTAL)
+ wxFLAGS_MEMBER(wxLI_VERTICAL)
+
+wxEND_FLAGS( wxStaticLineStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticLine, wxControl,"wx/statline.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxStaticLine)
+ wxPROPERTY_FLAGS( WindowStyle , wxStaticLineStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxStaticLine)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_5( wxStaticLine, wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size , long , WindowStyle)
+
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxStaticLine, wxControl)
+#endif
+
+/*
+ TODO PROPERTIES :
+ style (wxLI_HORIZONTAL)
+*/
+
+// ----------------------------------------------------------------------------
+// wxStaticLine
+// ----------------------------------------------------------------------------
+
+bool wxStaticLine::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& sizeOrig,
+ long style,
+ const wxString &name)
+{
+ return false;
+}
+
+WXDWORD wxStaticLine::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+#endif // wxUSE_STATLINE
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/stattext.cpp
+// Purpose: wxStaticText
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "stattext.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#if wxUSE_STATTEXT
+
+#ifndef WX_PRECOMP
+#include "wx/event.h"
+#include "wx/app.h"
+#include "wx/brush.h"
+#endif
+
+#include "wx/stattext.h"
+#include "wx/palmos/private.h"
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxStaticTextStyle )
+
+wxBEGIN_FLAGS( wxStaticTextStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxST_NO_AUTORESIZE)
+ wxFLAGS_MEMBER(wxALIGN_LEFT)
+ wxFLAGS_MEMBER(wxALIGN_RIGHT)
+ wxFLAGS_MEMBER(wxALIGN_CENTRE)
+
+wxEND_FLAGS( wxStaticTextStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticText, wxControl,"wx/stattext.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxStaticText)
+ wxPROPERTY( Label,wxString, SetLabel, GetLabel, wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxStaticTextStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxStaticText)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_6( wxStaticText , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl)
+#endif
+
+bool wxStaticText::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+wxBorder wxStaticText::GetDefaultBorder() const
+{
+ return wxBORDER_NONE;
+}
+
+WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+wxSize wxStaticText::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags)
+{
+}
+
+void wxStaticText::SetLabel(const wxString& label)
+{
+}
+
+
+bool wxStaticText::SetFont(const wxFont& font)
+{
+ return false;
+}
+
+#endif // wxUSE_STATTEXT
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/statusbr.cpp
+// Purpose: Implementation of wxStatusBar for PalmOS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "statusbr.h"
+#endif
+
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/setup.h"
+ #include "wx/frame.h"
+ #include "wx/settings.h"
+ #include "wx/dcclient.h"
+#endif
+
+#if wxUSE_STATUSBAR && wxUSE_NATIVE_STATUSBAR
+
+#include "wx/intl.h"
+#include "wx/log.h"
+#include "wx/statusbr.h"
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxStatusBarPalm class
+// ----------------------------------------------------------------------------
+
+wxStatusBarPalm::wxStatusBarPalm()
+{
+ SetParent(NULL);
+ m_hWnd = 0;
+ m_windowId = 0;
+}
+
+bool wxStatusBarPalm::Create(wxWindow *parent,
+ wxWindowID id,
+ long style,
+ const wxString& name)
+{
+ wxCHECK_MSG( parent, FALSE, wxT("status bar must have a parent") );
+
+ StatusTextBuffer = NULL;
+
+ SetName(name);
+ SetParent(parent);
+
+ parent->AddChild(this);
+
+ m_windowId = id == -1 ? NewControlId() : id;
+
+ SetFieldsCount(1);
+ SubclassWin(m_hWnd);
+
+ return TRUE;
+}
+
+wxStatusBarPalm::~wxStatusBarPalm()
+{
+ DeleteStatusBuffer();
+}
+
+void wxStatusBarPalm::SetFieldsCount(int nFields, const int *widths)
+{
+ // this is a Windows limitation
+ wxASSERT_MSG( (nFields > 0) && (nFields < 255), _T("too many fields") );
+
+ wxStatusBarBase::SetFieldsCount(nFields, widths);
+
+ SetFieldsWidth();
+}
+
+void wxStatusBarPalm::SetStatusWidths(int n, const int widths[])
+{
+ wxStatusBarBase::SetStatusWidths(n, widths);
+
+ SetFieldsWidth();
+}
+
+void wxStatusBarPalm::SetFieldsWidth()
+{
+ // clear the status bar
+ DeleteStatusBuffer();
+}
+
+void wxStatusBarPalm::SetStatusText(const wxString& strText, int nField)
+{
+ wxCHECK_RET( (nField >= 0) && (nField < m_nFields),
+ _T("invalid statusbar field index") );
+
+ SetStatusBufferText(strText,nField);
+ DrawStatusBar();
+}
+
+wxString wxStatusBarPalm::GetStatusText(int nField) const
+{
+ wxCHECK_MSG( (nField >= 0) && (nField < m_nFields), wxEmptyString,
+ _T("invalid statusbar field index") );
+
+ wxString text;
+ return text;
+}
+
+void wxStatusBarPalm::DrawStatusBar()
+{
+ int i=0;
+ int leftPos=0;
+ wxArrayInt widthsAbs;
+ wxString text;
+
+ RectangleType EraseRect;
+ EraseRect.topLeft.x=0;
+ EraseRect.topLeft.y=160-FntCharHeight()-1;
+ EraseRect.extent.x=159;
+ EraseRect.extent.y=159;
+ WinEraseRectangle(&EraseRect,0);
+
+ if(m_nFields>0)
+ widthsAbs=CalculateAbsWidths(160 - 2*(m_nFields - 1));
+
+ for(i=0;i<m_nFields;i++)
+ {
+ text=GetStatusBufferText(i);
+ WinDrawTruncChars(text,StrLen(text),leftPos,160-FntCharHeight(),widthsAbs[i]);
+ leftPos+=widthsAbs[i]+2;
+ }
+ WinDrawLine(0,160-FntCharHeight()-1,159,160-FntCharHeight()-1);
+}
+
+void wxStatusBarPalm::SetStatusBufferText(const wxString& text, int number)
+{
+ wxListString* st = GetOrCreateStatusBuffer(number);
+
+ wxString tmp1(text);
+ wxString* tmp = new wxString(tmp1);
+ st->Insert(tmp);
+}
+
+wxString wxStatusBarPalm::GetStatusBufferText(int number)
+{
+ wxListString *st = GetStatusBufferStack(number);
+ if(st==0)
+ return "";
+
+ wxListString::compatibility_iterator top = st->GetFirst();
+ return(*top->GetData());
+}
+
+wxListString *wxStatusBarPalm::GetOrCreateStatusBuffer(int i)
+{
+ if(!StatusTextBuffer)
+ {
+ StatusTextBuffer = new wxListString*[m_nFields];
+
+ size_t j;
+ for(j = 0; j < (size_t)m_nFields; ++j) StatusTextBuffer[j] = 0;
+ }
+
+ if(!StatusTextBuffer[i])
+ {
+ StatusTextBuffer[i] = new wxListString();
+ }
+ else
+ {
+ wxListString *st=StatusTextBuffer[i];
+ wxListString::compatibility_iterator top = st->GetFirst();
+ delete top->GetData();
+ st->Erase(top);
+ delete st;
+
+ StatusTextBuffer[i] = new wxListString();
+ }
+
+ return StatusTextBuffer[i];
+}
+
+wxListString *wxStatusBarPalm::GetStatusBufferStack(int i) const
+{
+ if(!StatusTextBuffer)
+ return 0;
+ return StatusTextBuffer[i];
+}
+
+void wxStatusBarPalm::DeleteStatusBuffer()
+{
+ int i=0;
+
+ if(!StatusTextBuffer)
+ {
+ return;
+ }
+
+ for(i=0;i<m_nFields;i++)
+ {
+ if(StatusTextBuffer[i])
+ {
+ wxListString *st=StatusTextBuffer[i];
+ wxListString::compatibility_iterator top = st->GetFirst();
+ delete top->GetData();
+ st->Erase(top);
+ delete st;
+ StatusTextBuffer[i]=0;
+ }
+ }
+ delete[] m_statusTextStacks;
+}
+
+int wxStatusBarPalm::GetBorderX() const
+{
+ return 0;
+}
+
+int wxStatusBarPalm::GetBorderY() const
+{
+ return 0;
+}
+
+void wxStatusBarPalm::SetMinHeight(int height)
+{
+}
+
+bool wxStatusBarPalm::GetFieldRect(int i, wxRect& rect) const
+{
+}
+
+void wxStatusBarPalm::DoMoveWindow(int x, int y, int width, int height)
+{
+}
+
+#endif // wxUSE_NATIVE_STATUSBAR
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: tabctrl.cpp
+// Purpose: wxTabCtrl
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "tabctrl.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+#if defined(__WIN95__)
+
+#include "wx/tabctrl.h"
+#include "wx/app.h"
+#include "wx/palmos/imaglist.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxTabCtrl, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxNotifyEvent)
+
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_TAB_SEL_CHANGED)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_TAB_SEL_CHANGING)
+
+BEGIN_EVENT_TABLE(wxTabCtrl, wxControl)
+ EVT_SYS_COLOUR_CHANGED(wxTabCtrl::OnSysColourChanged)
+END_EVENT_TABLE()
+
+wxTabCtrl::wxTabCtrl()
+{
+}
+
+bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size,
+ long style, const wxString& name)
+{
+ return false;
+}
+
+wxTabCtrl::~wxTabCtrl()
+{
+}
+
+bool wxTabCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
+{
+ return false;
+}
+
+// Responds to colour changes, and passes event on to children.
+void wxTabCtrl::OnSysColourChanged(wxSysColourChangedEvent& event)
+{
+}
+
+// Delete all items
+bool wxTabCtrl::DeleteAllItems()
+{
+ return false;
+}
+
+// Delete an item
+bool wxTabCtrl::DeleteItem(int item)
+{
+ return false;
+}
+
+// Get the selection
+int wxTabCtrl::GetSelection() const
+{
+ return 0;
+}
+
+// Get the tab with the current keyboard focus
+int wxTabCtrl::GetCurFocus() const
+{
+ return 0;
+}
+
+// Get the associated image list
+wxImageList* wxTabCtrl::GetImageList() const
+{
+ return NULL;
+}
+
+// Get the number of items
+int wxTabCtrl::GetItemCount() const
+{
+ return 0;
+}
+
+// Get the rect corresponding to the tab
+bool wxTabCtrl::GetItemRect(int item, wxRect& wxrect) const
+{
+ return false;
+}
+
+// Get the number of rows
+int wxTabCtrl::GetRowCount() const
+{
+ return 0;
+}
+
+// Get the item text
+wxString wxTabCtrl::GetItemText(int item) const
+{
+ wxString str(wxEmptyString);
+
+ return str;
+}
+
+// Get the item image
+int wxTabCtrl::GetItemImage(int item) const
+{
+ return -1;
+}
+
+// Get the item data
+void* wxTabCtrl::GetItemData(int item) const
+{
+ return 0;
+}
+
+// Hit test
+int wxTabCtrl::HitTest(const wxPoint& pt, long& flags)
+{
+ return 0;
+}
+
+// Insert an item
+bool wxTabCtrl::InsertItem(int item, const wxString& text, int imageId, void* data)
+{
+ return false;
+}
+
+// Set the selection
+int wxTabCtrl::SetSelection(int item)
+{
+ return 0;
+}
+
+// Set the image list
+void wxTabCtrl::SetImageList(wxImageList* imageList)
+{
+}
+
+// Set the text for an item
+bool wxTabCtrl::SetItemText(int item, const wxString& text)
+{
+ return false;
+}
+
+// Set the image for an item
+bool wxTabCtrl::SetItemImage(int item, int image)
+{
+ return false;
+}
+
+// Set the data for an item
+bool wxTabCtrl::SetItemData(int item, void* data)
+{
+ return false;
+}
+
+// Set the size for a fixed-width tab control
+void wxTabCtrl::SetItemSize(const wxSize& size)
+{
+}
+
+// Set the padding between tabs
+void wxTabCtrl::SetPadding(const wxSize& padding)
+{
+}
+
+
+#endif
+ // __WIN95__
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////
+// File: taskbar.cpp
+// Purpose: Implements wxTaskBarIcon class for manipulating icons on
+// the task bar.
+// Author: Julian Smart
+// Modified by: Vaclav Slavik
+// Created: 24/3/98
+// RCS-ID: $Id$
+// Copyright: (c)
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma implementation "taskbar.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/defs.h"
+#include "wx/window.h"
+#include "wx/frame.h"
+#include "wx/utils.h"
+#include "wx/menu.h"
+#endif
+
+#if defined(__WIN95__)
+
+#include <string.h>
+#include "wx/taskbar.h"
+
+#if WXWIN_COMPATIBILITY_2_4
+BEGIN_EVENT_TABLE(wxTaskBarIcon, wxTaskBarIconBase)
+ EVT_TASKBAR_MOVE (wxTaskBarIcon::_OnMouseMove)
+ EVT_TASKBAR_LEFT_DOWN (wxTaskBarIcon::_OnLButtonDown)
+ EVT_TASKBAR_LEFT_UP (wxTaskBarIcon::_OnLButtonUp)
+ EVT_TASKBAR_RIGHT_DOWN (wxTaskBarIcon::_OnRButtonDown)
+ EVT_TASKBAR_RIGHT_UP (wxTaskBarIcon::_OnRButtonUp)
+ EVT_TASKBAR_LEFT_DCLICK (wxTaskBarIcon::_OnLButtonDClick)
+ EVT_TASKBAR_RIGHT_DCLICK (wxTaskBarIcon::_OnRButtonDClick)
+END_EVENT_TABLE()
+#endif
+
+
+IMPLEMENT_DYNAMIC_CLASS(wxTaskBarIcon, wxEvtHandler)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxTaskBarIconWindow: helper window
+// ----------------------------------------------------------------------------
+
+// NB: this class serves two purposes:
+// 1. win32 needs a HWND associated with taskbar icon, this provides it
+// 2. we need wxTopLevelWindow so that the app doesn't exit when
+// last frame is closed but there still is a taskbar icon
+class wxTaskBarIconWindow : public wxFrame
+{
+public:
+ wxTaskBarIconWindow(wxTaskBarIcon *icon)
+ : wxFrame(NULL, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0),
+ m_icon(icon)
+ {
+ }
+
+ WXLRESULT MSWWindowProc(WXUINT msg,
+ WXWPARAM wParam, WXLPARAM lParam)
+ {
+ return 0;
+ }
+
+private:
+ wxTaskBarIcon *m_icon;
+};
+
+// ----------------------------------------------------------------------------
+// wxTaskBarIcon
+// ----------------------------------------------------------------------------
+
+wxTaskBarIcon::wxTaskBarIcon()
+{
+}
+
+wxTaskBarIcon::~wxTaskBarIcon()
+{
+}
+
+// Operations
+bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip)
+{
+ return false;
+}
+
+bool wxTaskBarIcon::RemoveIcon()
+{
+ return false;
+}
+
+bool wxTaskBarIcon::PopupMenu(wxMenu *menu)
+{
+ return false;
+}
+
+#if WXWIN_COMPATIBILITY_2_4
+// Overridables
+void wxTaskBarIcon::OnMouseMove(wxEvent& e) { e.Skip(); }
+void wxTaskBarIcon::OnLButtonDown(wxEvent& e) { e.Skip(); }
+void wxTaskBarIcon::OnLButtonUp(wxEvent& e) { e.Skip(); }
+void wxTaskBarIcon::OnRButtonDown(wxEvent& e) { e.Skip(); }
+void wxTaskBarIcon::OnRButtonUp(wxEvent& e) { e.Skip(); }
+void wxTaskBarIcon::OnLButtonDClick(wxEvent& e) { e.Skip(); }
+void wxTaskBarIcon::OnRButtonDClick(wxEvent& e) { e.Skip(); }
+
+void wxTaskBarIcon::_OnMouseMove(wxTaskBarIconEvent& e)
+ { OnMouseMove(e); }
+void wxTaskBarIcon::_OnLButtonDown(wxTaskBarIconEvent& e)
+ { OnLButtonDown(e); }
+void wxTaskBarIcon::_OnLButtonUp(wxTaskBarIconEvent& e)
+ { OnLButtonUp(e); }
+void wxTaskBarIcon::_OnRButtonDown(wxTaskBarIconEvent& e)
+ { OnRButtonDown(e); }
+void wxTaskBarIcon::_OnRButtonUp(wxTaskBarIconEvent& e)
+ { OnRButtonUp(e); }
+void wxTaskBarIcon::_OnLButtonDClick(wxTaskBarIconEvent& e)
+ { OnLButtonDClick(e); }
+void wxTaskBarIcon::_OnRButtonDClick(wxTaskBarIconEvent& e)
+ { OnRButtonDClick(e); }
+#endif
+
+void wxTaskBarIcon::RegisterWindowMessages()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxTaskBarIcon window proc
+// ----------------------------------------------------------------------------
+
+long wxTaskBarIcon::WindowProc(unsigned int msg,
+ unsigned int WXUNUSED(wParam),
+ long lParam)
+{
+ return 0;
+}
+
+#endif // __WIN95__
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/textctrl.cpp
+// Purpose: wxTextCtrl
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "textctrl.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_TEXTCTRL
+
+#ifndef WX_PRECOMP
+ #include "wx/textctrl.h"
+ #include "wx/settings.h"
+ #include "wx/brush.h"
+ #include "wx/utils.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+ #include "wx/app.h"
+ #include "wx/menu.h"
+#endif
+
+#include "wx/module.h"
+
+#if wxUSE_CLIPBOARD
+ #include "wx/clipbrd.h"
+#endif
+
+#include "wx/textfile.h"
+
+#include "wx/palmos/private.h"
+#include "wx/palmos/winundef.h"
+
+#include <string.h>
+
+#if wxUSE_RICHEDIT
+
+#include "wx/palmos/missing.h"
+
+#endif // wxUSE_RICHEDIT
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+#if wxUSE_RICHEDIT
+
+// this module initializes RichEdit DLL(s) if needed
+class wxRichEditModule : public wxModule
+{
+public:
+ virtual bool OnInit();
+ virtual void OnExit();
+
+ // load the richedit DLL of at least of required version
+ static bool Load(int version = 1);
+
+private:
+ // the handles to richedit 1.0 and 2.0 (or 3.0) DLLs
+ static HINSTANCE ms_hRichEdit[2];
+
+ DECLARE_DYNAMIC_CLASS(wxRichEditModule)
+};
+
+HINSTANCE wxRichEditModule::ms_hRichEdit[2] = { NULL, NULL };
+
+IMPLEMENT_DYNAMIC_CLASS(wxRichEditModule, wxModule)
+
+#endif // wxUSE_RICHEDIT
+
+// ----------------------------------------------------------------------------
+// event tables and other macros
+// ----------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxTextCtrlStyle )
+
+wxBEGIN_FLAGS( wxTextCtrlStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxTE_PROCESS_ENTER)
+ wxFLAGS_MEMBER(wxTE_PROCESS_TAB)
+ wxFLAGS_MEMBER(wxTE_MULTILINE)
+ wxFLAGS_MEMBER(wxTE_PASSWORD)
+ wxFLAGS_MEMBER(wxTE_READONLY)
+ wxFLAGS_MEMBER(wxHSCROLL)
+ wxFLAGS_MEMBER(wxTE_RICH)
+ wxFLAGS_MEMBER(wxTE_RICH2)
+ wxFLAGS_MEMBER(wxTE_AUTO_URL)
+ wxFLAGS_MEMBER(wxTE_NOHIDESEL)
+ wxFLAGS_MEMBER(wxTE_LEFT)
+ wxFLAGS_MEMBER(wxTE_CENTRE)
+ wxFLAGS_MEMBER(wxTE_RIGHT)
+ wxFLAGS_MEMBER(wxTE_DONTWRAP)
+ wxFLAGS_MEMBER(wxTE_LINEWRAP)
+ wxFLAGS_MEMBER(wxTE_WORDWRAP)
+
+wxEND_FLAGS( wxTextCtrlStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxTextCtrl, wxControl,"wx/textctrl.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxTextCtrl)
+ wxEVENT_PROPERTY( TextUpdated , wxEVT_COMMAND_TEXT_UPDATED , wxCommandEvent )
+ wxEVENT_PROPERTY( TextEnter , wxEVT_COMMAND_TEXT_ENTER , wxCommandEvent )
+
+ wxPROPERTY( Font , wxFont , SetFont , GetFont , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY( Value , wxString , SetValue, GetValue, wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY_FLAGS( WindowStyle , wxTextCtrlStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxTextCtrl)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_6( wxTextCtrl , wxWindow* , Parent , wxWindowID , Id , wxString , Value , wxPoint , Position , wxSize , Size , long , WindowStyle)
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl)
+#endif
+
+
+BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
+ EVT_CHAR(wxTextCtrl::OnChar)
+ EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
+
+#if wxUSE_RICHEDIT
+ EVT_RIGHT_UP(wxTextCtrl::OnRightClick)
+#endif
+
+ EVT_MENU(wxID_CUT, wxTextCtrl::OnCut)
+ EVT_MENU(wxID_COPY, wxTextCtrl::OnCopy)
+ EVT_MENU(wxID_PASTE, wxTextCtrl::OnPaste)
+ EVT_MENU(wxID_UNDO, wxTextCtrl::OnUndo)
+ EVT_MENU(wxID_REDO, wxTextCtrl::OnRedo)
+ EVT_MENU(wxID_CLEAR, wxTextCtrl::OnDelete)
+ EVT_MENU(wxID_SELECTALL, wxTextCtrl::OnSelectAll)
+
+ EVT_UPDATE_UI(wxID_CUT, wxTextCtrl::OnUpdateCut)
+ EVT_UPDATE_UI(wxID_COPY, wxTextCtrl::OnUpdateCopy)
+ EVT_UPDATE_UI(wxID_PASTE, wxTextCtrl::OnUpdatePaste)
+ EVT_UPDATE_UI(wxID_UNDO, wxTextCtrl::OnUpdateUndo)
+ EVT_UPDATE_UI(wxID_REDO, wxTextCtrl::OnUpdateRedo)
+ EVT_UPDATE_UI(wxID_CLEAR, wxTextCtrl::OnUpdateDelete)
+ EVT_UPDATE_UI(wxID_SELECTALL, wxTextCtrl::OnUpdateSelectAll)
+
+ EVT_SET_FOCUS(wxTextCtrl::OnSetFocus)
+END_EVENT_TABLE()
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// creation
+// ----------------------------------------------------------------------------
+
+void wxTextCtrl::Init()
+{
+}
+
+wxTextCtrl::~wxTextCtrl()
+{
+}
+
+bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
+ const wxString& value,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+// Make sure the window style (etc.) reflects the HWND style (roughly)
+void wxTextCtrl::AdoptAttributesFromHWND()
+{
+}
+
+WXDWORD wxTextCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+void wxTextCtrl::SetWindowStyleFlag(long style)
+{
+}
+
+// ----------------------------------------------------------------------------
+// set/get the controls text
+// ----------------------------------------------------------------------------
+
+wxString wxTextCtrl::GetValue() const
+{
+ wxString res;
+
+ return res;
+}
+
+wxString wxTextCtrl::GetRange(long from, long to) const
+{
+ wxString str;
+
+ return str;
+}
+
+void wxTextCtrl::SetValue(const wxString& value)
+{
+}
+
+#if wxUSE_RICHEDIT && (!wxUSE_UNICODE || wxUSE_UNICODE_MSLU)
+
+// TODO: using memcpy() would improve performance a lot for big amounts of text
+
+DWORD CALLBACK
+wxRichEditStreamIn(DWORD dwCookie, BYTE *buf, LONG cb, LONG *pcb)
+{
+ return 0;
+}
+
+// helper struct used to pass parameters from wxTextCtrl to wxRichEditStreamOut
+struct wxStreamOutData
+{
+ wchar_t *wpc;
+ size_t len;
+};
+
+DWORD CALLBACK
+wxRichEditStreamOut(DWORD_PTR dwCookie, BYTE *buf, LONG cb, LONG *pcb)
+{
+ return 0;
+}
+
+
+#if wxUSE_UNICODE_MSLU
+ #define UNUSED_IF_MSLU(param)
+#else
+ #define UNUSED_IF_MSLU(param) param
+#endif
+
+bool
+wxTextCtrl::StreamIn(const wxString& value,
+ wxFontEncoding UNUSED_IF_MSLU(encoding),
+ bool selectionOnly)
+{
+ return false;
+}
+
+#if !wxUSE_UNICODE_MSLU
+
+wxString
+wxTextCtrl::StreamOut(wxFontEncoding encoding, bool selectionOnly) const
+{
+ wxString out;
+
+ return out;
+}
+
+#endif // !wxUSE_UNICODE_MSLU
+
+#endif // wxUSE_RICHEDIT
+
+void wxTextCtrl::WriteText(const wxString& value)
+{
+}
+
+void wxTextCtrl::DoWriteText(const wxString& value, bool selectionOnly)
+{
+}
+
+void wxTextCtrl::AppendText(const wxString& text)
+{
+}
+
+void wxTextCtrl::Clear()
+{
+}
+
+#ifdef __WIN32__
+
+bool wxTextCtrl::EmulateKeyPress(const wxKeyEvent& event)
+{
+ return false;
+}
+
+#endif // __WIN32__
+
+// ----------------------------------------------------------------------------
+// Clipboard operations
+// ----------------------------------------------------------------------------
+
+void wxTextCtrl::Copy()
+{
+}
+
+void wxTextCtrl::Cut()
+{
+}
+
+void wxTextCtrl::Paste()
+{
+}
+
+bool wxTextCtrl::HasSelection() const
+{
+ return false;
+}
+
+bool wxTextCtrl::CanCopy() const
+{
+ return false;
+}
+
+bool wxTextCtrl::CanCut() const
+{
+ return false;
+}
+
+bool wxTextCtrl::CanPaste() const
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// Accessors
+// ----------------------------------------------------------------------------
+
+void wxTextCtrl::SetEditable(bool editable)
+{
+}
+
+void wxTextCtrl::SetInsertionPoint(long pos)
+{
+}
+
+void wxTextCtrl::SetInsertionPointEnd()
+{
+}
+
+long wxTextCtrl::GetInsertionPoint() const
+{
+ return 0;
+}
+
+long wxTextCtrl::GetLastPosition() const
+{
+ return 0;
+}
+
+// If the return values from and to are the same, there is no
+// selection.
+void wxTextCtrl::GetSelection(long* from, long* to) const
+{
+}
+
+bool wxTextCtrl::IsEditable() const
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// selection
+// ----------------------------------------------------------------------------
+
+void wxTextCtrl::SetSelection(long from, long to)
+{
+}
+
+void wxTextCtrl::DoSetSelection(long from, long to, bool scrollCaret)
+{
+}
+
+// ----------------------------------------------------------------------------
+// Working with files
+// ----------------------------------------------------------------------------
+
+bool wxTextCtrl::LoadFile(const wxString& file)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// Editing
+// ----------------------------------------------------------------------------
+
+void wxTextCtrl::Replace(long from, long to, const wxString& value)
+{
+}
+
+void wxTextCtrl::Remove(long from, long to)
+{
+}
+
+bool wxTextCtrl::IsModified() const
+{
+ return false;
+}
+
+void wxTextCtrl::MarkDirty()
+{
+}
+
+void wxTextCtrl::DiscardEdits()
+{
+}
+
+int wxTextCtrl::GetNumberOfLines() const
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// Positions <-> coords
+// ----------------------------------------------------------------------------
+
+long wxTextCtrl::XYToPosition(long x, long y) const
+{
+ return 0;
+}
+
+bool wxTextCtrl::PositionToXY(long pos, long *x, long *y) const
+{
+ return false;
+}
+
+wxTextCtrlHitTestResult
+wxTextCtrl::HitTest(const wxPoint& pt, wxTextCoord *col, wxTextCoord *row) const
+{
+ return wxTE_HT_UNKNOWN;
+}
+
+// ----------------------------------------------------------------------------
+//
+// ----------------------------------------------------------------------------
+
+void wxTextCtrl::ShowPosition(long pos)
+{
+}
+
+long wxTextCtrl::GetLengthOfLineContainingPos(long pos) const
+{
+ return 0;
+}
+
+int wxTextCtrl::GetLineLength(long lineNo) const
+{
+ return 0;
+}
+
+wxString wxTextCtrl::GetLineText(long lineNo) const
+{
+ wxString str;
+
+ return str;
+}
+
+void wxTextCtrl::SetMaxLength(unsigned long len)
+{
+}
+
+// ----------------------------------------------------------------------------
+// Undo/redo
+// ----------------------------------------------------------------------------
+
+void wxTextCtrl::Undo()
+{
+}
+
+void wxTextCtrl::Redo()
+{
+}
+
+bool wxTextCtrl::CanUndo() const
+{
+}
+
+bool wxTextCtrl::CanRedo() const
+{
+}
+
+// ----------------------------------------------------------------------------
+// caret handling (Windows only)
+// ----------------------------------------------------------------------------
+
+bool wxTextCtrl::ShowNativeCaret(bool show)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// implemenation details
+// ----------------------------------------------------------------------------
+
+void wxTextCtrl::Command(wxCommandEvent & event)
+{
+}
+
+void wxTextCtrl::OnDropFiles(wxDropFilesEvent& event)
+{
+}
+
+// ----------------------------------------------------------------------------
+// kbd input processing
+// ----------------------------------------------------------------------------
+
+bool wxTextCtrl::MSWShouldPreProcessMessage(WXMSG* pMsg)
+{
+ return false;
+}
+
+void wxTextCtrl::OnChar(wxKeyEvent& event)
+{
+}
+
+WXLRESULT wxTextCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// text control event processing
+// ----------------------------------------------------------------------------
+
+bool wxTextCtrl::SendUpdateEvent()
+{
+ return false;
+}
+
+bool wxTextCtrl::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
+{
+ return false;
+}
+
+WXHBRUSH wxTextCtrl::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED(nCtlColor),
+#if wxUSE_CTL3D
+ WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam
+#else
+ WXUINT WXUNUSED(message),
+ WXWPARAM WXUNUSED(wParam),
+ WXLPARAM WXUNUSED(lParam)
+#endif
+ )
+{
+ return (WXHBRUSH) 0;
+}
+
+bool wxTextCtrl::AdjustSpaceLimit()
+{
+ return false;
+}
+
+bool wxTextCtrl::AcceptsFocus() const
+{
+ return false;
+}
+
+wxSize wxTextCtrl::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+// ----------------------------------------------------------------------------
+// standard handlers for standard edit menu events
+// ----------------------------------------------------------------------------
+
+void wxTextCtrl::OnCut(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+void wxTextCtrl::OnCopy(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+void wxTextCtrl::OnPaste(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+void wxTextCtrl::OnUndo(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+void wxTextCtrl::OnRedo(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+void wxTextCtrl::OnDelete(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+void wxTextCtrl::OnSelectAll(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+void wxTextCtrl::OnUpdateCut(wxUpdateUIEvent& event)
+{
+}
+
+void wxTextCtrl::OnUpdateCopy(wxUpdateUIEvent& event)
+{
+}
+
+void wxTextCtrl::OnUpdatePaste(wxUpdateUIEvent& event)
+{
+}
+
+void wxTextCtrl::OnUpdateUndo(wxUpdateUIEvent& event)
+{
+}
+
+void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event)
+{
+}
+
+void wxTextCtrl::OnUpdateDelete(wxUpdateUIEvent& event)
+{
+}
+
+void wxTextCtrl::OnUpdateSelectAll(wxUpdateUIEvent& event)
+{
+}
+
+void wxTextCtrl::OnRightClick(wxMouseEvent& event)
+{
+}
+
+void wxTextCtrl::OnSetFocus(wxFocusEvent& WXUNUSED(event))
+{
+}
+
+// the rest of the file only deals with the rich edit controls
+#if wxUSE_RICHEDIT
+
+// ----------------------------------------------------------------------------
+// EN_LINK processing
+// ----------------------------------------------------------------------------
+
+bool wxTextCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// colour setting for the rich edit controls
+// ----------------------------------------------------------------------------
+
+bool wxTextCtrl::SetBackgroundColour(const wxColour& colour)
+{
+ return false;
+}
+
+bool wxTextCtrl::SetForegroundColour(const wxColour& colour)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// styling support for rich edit controls
+// ----------------------------------------------------------------------------
+
+#if wxUSE_RICHEDIT
+
+bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
+{
+ return false;
+}
+
+bool wxTextCtrl::SetDefaultStyle(const wxTextAttr& style)
+{
+ return false;
+}
+
+bool wxTextCtrl::GetStyle(long position, wxTextAttr& style)
+{
+ return false;
+}
+
+#endif
+
+// ----------------------------------------------------------------------------
+// wxRichEditModule
+// ----------------------------------------------------------------------------
+
+bool wxRichEditModule::OnInit()
+{
+ return false;
+}
+
+void wxRichEditModule::OnExit()
+{
+}
+
+/* static */
+bool wxRichEditModule::Load(int version)
+{
+ return false;
+}
+
+#endif // wxUSE_RICHEDIT
+
+#endif // wxUSE_TEXTCTRL
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/tglbtn.cpp
+// Purpose: Definition of the wxToggleButton class, which implements a
+// toggle button.
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declatations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include "wx/tglbtn.h"
+
+#if wxUSE_TOGGLEBTN
+
+#ifndef WX_PRECOMP
+ #include "wx/button.h"
+ #include "wx/brush.h"
+ #include "wx/dcscreen.h"
+ #include "wx/settings.h"
+
+ #include "wx/log.h"
+#endif // WX_PRECOMP
+
+#include "wx/palmos/private.h"
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxToggleButton, wxControl)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)
+
+#define BUTTON_HEIGHT_FROM_CHAR_HEIGHT(cy) (11*EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)/10)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxToggleButton
+// ----------------------------------------------------------------------------
+
+bool wxToggleButton::MSWCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id))
+{
+ wxCommandEvent event(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, m_windowId);
+ event.SetInt(GetValue());
+ event.SetEventObject(this);
+ ProcessCommand(event);
+ return TRUE;
+}
+
+// Single check box item
+bool wxToggleButton::Create(wxWindow *parent, wxWindowID id,
+ const wxString& label,
+ const wxPoint& pos,
+ const wxSize& size, long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+wxBorder wxToggleButton::GetDefaultBorder() const
+{
+ return wxBORDER_NONE;
+}
+
+WXDWORD wxToggleButton::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+void wxToggleButton::SetLabel(const wxString& label)
+{
+}
+
+wxSize wxToggleButton::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+void wxToggleButton::SetValue(bool val)
+{
+}
+
+#ifndef BST_CHECKED
+#define BST_CHECKED 0x0001
+#endif
+
+bool wxToggleButton::GetValue() const
+{
+ return false;
+}
+
+void wxToggleButton::Command(wxCommandEvent & event)
+{
+}
+
+#endif // wxUSE_TOGGLEBTN
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/thread.cpp
+// Purpose: wxThread Implementation
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "thread.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#if defined(__BORLANDC__)
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/intl.h"
+ #include "wx/app.h"
+#endif
+
+#if wxUSE_THREADS
+
+#include "wx/apptrait.h"
+
+#include "wx/palmos/private.h"
+#include "wx/palmos/missing.h"
+
+#include "wx/module.h"
+#include "wx/thread.h"
+
+// must have this symbol defined to get _beginthread/_endthread declarations
+#ifndef _MT
+ #define _MT
+#endif
+
+#if defined(__BORLANDC__)
+ #if !defined(__MT__)
+ // I can't set -tWM in the IDE (anyone?) so have to do this
+ #define __MT__
+ #endif
+
+ #if !defined(__MFC_COMPAT__)
+ // Needed to know about _beginthreadex etc..
+ #define __MFC_COMPAT__
+ #endif
+#endif // BC++
+
+// define wxUSE_BEGIN_THREAD if the compiler has _beginthreadex() function
+// which should be used instead of Win32 ::CreateThread() if possible
+#if defined(__VISUALC__) || \
+ (defined(__BORLANDC__) && (__BORLANDC__ >= 0x500)) || \
+ (defined(__GNUG__) && defined(__MSVCRT__)) || \
+ defined(__WATCOMC__) || defined(__MWERKS__)
+
+#ifndef __WXWINCE__
+ #undef wxUSE_BEGIN_THREAD
+ #define wxUSE_BEGIN_THREAD
+#endif
+
+#endif
+
+#ifdef wxUSE_BEGIN_THREAD
+ // the return type of the thread function entry point
+ typedef unsigned THREAD_RETVAL;
+
+ // the calling convention of the thread function entry point
+ #define THREAD_CALLCONV __stdcall
+#else
+ // the settings for CreateThread()
+ typedef DWORD THREAD_RETVAL;
+ #define THREAD_CALLCONV WINAPI
+#endif
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// the possible states of the thread ("=>" shows all possible transitions from
+// this state)
+enum wxThreadState
+{
+ STATE_NEW, // didn't start execution yet (=> RUNNING)
+ STATE_RUNNING, // thread is running (=> PAUSED, CANCELED)
+ STATE_PAUSED, // thread is temporarily suspended (=> RUNNING)
+ STATE_CANCELED, // thread should terminate a.s.a.p. (=> EXITED)
+ STATE_EXITED // thread is terminating
+};
+
+// ----------------------------------------------------------------------------
+// this module globals
+// ----------------------------------------------------------------------------
+
+// TLS index of the slot where we store the pointer to the current thread
+static DWORD gs_tlsThisThread = 0xFFFFFFFF;
+
+// id of the main thread - the one which can call GUI functions without first
+// calling wxMutexGuiEnter()
+static DWORD gs_idMainThread = 0;
+
+// if it's false, some secondary thread is holding the GUI lock
+static bool gs_bGuiOwnedByMainThread = true;
+
+// critical section which controls access to all GUI functions: any secondary
+// thread (i.e. except the main one) must enter this crit section before doing
+// any GUI calls
+static wxCriticalSection *gs_critsectGui = NULL;
+
+// critical section which protects gs_nWaitingForGui variable
+static wxCriticalSection *gs_critsectWaitingForGui = NULL;
+
+// critical section which serializes WinThreadStart() and WaitForTerminate()
+// (this is a potential bottleneck, we use a single crit sect for all threads
+// in the system, but normally time spent inside it should be quite short)
+static wxCriticalSection *gs_critsectThreadDelete = NULL;
+
+// number of threads waiting for GUI in wxMutexGuiEnter()
+static size_t gs_nWaitingForGui = 0;
+
+// are we waiting for a thread termination?
+static bool gs_waitingForThread = false;
+
+// ============================================================================
+// Windows implementation of thread and related classes
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxCriticalSection
+// ----------------------------------------------------------------------------
+
+wxCriticalSection::wxCriticalSection()
+{
+}
+
+wxCriticalSection::~wxCriticalSection()
+{
+}
+
+void wxCriticalSection::Enter()
+{
+}
+
+void wxCriticalSection::Leave()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxMutex
+// ----------------------------------------------------------------------------
+
+class wxMutexInternal
+{
+public:
+ wxMutexInternal(wxMutexType mutexType);
+ ~wxMutexInternal();
+
+ bool IsOk() const { return m_mutex != NULL; }
+
+ wxMutexError Lock() { return LockTimeout(INFINITE); }
+ wxMutexError TryLock() { return LockTimeout(0); }
+ wxMutexError Unlock();
+
+private:
+ wxMutexError LockTimeout(DWORD milliseconds);
+
+ HANDLE m_mutex;
+
+ DECLARE_NO_COPY_CLASS(wxMutexInternal)
+};
+
+// all mutexes are recursive under Win32 so we don't use mutexType
+wxMutexInternal::wxMutexInternal(wxMutexType WXUNUSED(mutexType))
+{
+}
+
+wxMutexInternal::~wxMutexInternal()
+{
+}
+
+wxMutexError wxMutexInternal::LockTimeout(DWORD milliseconds)
+{
+ return wxMUTEX_NO_ERROR;
+}
+
+wxMutexError wxMutexInternal::Unlock()
+{
+ return wxMUTEX_NO_ERROR;
+}
+
+// --------------------------------------------------------------------------
+// wxSemaphore
+// --------------------------------------------------------------------------
+
+// a trivial wrapper around Win32 semaphore
+class wxSemaphoreInternal
+{
+public:
+ wxSemaphoreInternal(int initialcount, int maxcount);
+ ~wxSemaphoreInternal();
+
+ bool IsOk() const { return m_semaphore != NULL; }
+
+ wxSemaError Wait() { return WaitTimeout(INFINITE); }
+
+ wxSemaError TryWait()
+ {
+ wxSemaError rc = WaitTimeout(0);
+ if ( rc == wxSEMA_TIMEOUT )
+ rc = wxSEMA_BUSY;
+
+ return rc;
+ }
+
+ wxSemaError WaitTimeout(unsigned long milliseconds);
+
+ wxSemaError Post();
+
+private:
+ HANDLE m_semaphore;
+
+ DECLARE_NO_COPY_CLASS(wxSemaphoreInternal)
+};
+
+wxSemaphoreInternal::wxSemaphoreInternal(int initialcount, int maxcount)
+{
+}
+
+wxSemaphoreInternal::~wxSemaphoreInternal()
+{
+}
+
+wxSemaError wxSemaphoreInternal::WaitTimeout(unsigned long milliseconds)
+{
+ return wxSEMA_NO_ERROR;
+}
+
+wxSemaError wxSemaphoreInternal::Post()
+{
+ return wxSEMA_NO_ERROR;
+}
+
+// ----------------------------------------------------------------------------
+// wxThread implementation
+// ----------------------------------------------------------------------------
+
+// wxThreadInternal class
+// ----------------------
+
+class wxThreadInternal
+{
+public:
+ wxThreadInternal(wxThread *thread)
+ {
+ m_thread = thread;
+ m_hThread = 0;
+ m_state = STATE_NEW;
+ m_priority = WXTHREAD_DEFAULT_PRIORITY;
+ m_nRef = 1;
+ }
+
+ ~wxThreadInternal()
+ {
+ Free();
+ }
+
+ void Free()
+ {
+ if ( m_hThread )
+ {
+ if ( !::CloseHandle(m_hThread) )
+ {
+ wxLogLastError(wxT("CloseHandle(thread)"));
+ }
+
+ m_hThread = 0;
+ }
+ }
+
+ // create a new (suspended) thread (for the given thread object)
+ bool Create(wxThread *thread, unsigned int stackSize);
+
+ // wait for the thread to terminate, either by itself, or by asking it
+ // (politely, this is not Kill()!) to do it
+ wxThreadError WaitForTerminate(wxCriticalSection& cs,
+ wxThread::ExitCode *pRc,
+ wxThread *threadToDelete = NULL);
+
+ // kill the thread unconditionally
+ wxThreadError Kill();
+
+ // suspend/resume/terminate
+ bool Suspend();
+ bool Resume();
+ void Cancel() { m_state = STATE_CANCELED; }
+
+ // thread state
+ void SetState(wxThreadState state) { m_state = state; }
+ wxThreadState GetState() const { return m_state; }
+
+ // thread priority
+ void SetPriority(unsigned int priority);
+ unsigned int GetPriority() const { return m_priority; }
+
+ // thread handle and id
+ HANDLE GetHandle() const { return m_hThread; }
+ DWORD GetId() const { return m_tid; }
+
+ // thread function
+ static THREAD_RETVAL THREAD_CALLCONV WinThreadStart(void *thread);
+
+ void KeepAlive()
+ {
+ if ( m_thread->IsDetached() )
+ ::InterlockedIncrement(&m_nRef);
+ }
+
+ void LetDie()
+ {
+ if ( m_thread->IsDetached() && !::InterlockedDecrement(&m_nRef) )
+ delete m_thread;
+ }
+
+private:
+ // the thread we're associated with
+ wxThread *m_thread;
+
+ HANDLE m_hThread; // handle of the thread
+ wxThreadState m_state; // state, see wxThreadState enum
+ unsigned int m_priority; // thread priority in "wx" units
+ DWORD m_tid; // thread id
+
+ // number of threads which need this thread to remain alive, when the count
+ // reaches 0 we kill the owning wxThread -- and die ourselves with it
+ LONG m_nRef;
+
+ DECLARE_NO_COPY_CLASS(wxThreadInternal)
+};
+
+// small class which keeps a thread alive during its lifetime
+class wxThreadKeepAlive
+{
+public:
+ wxThreadKeepAlive(wxThreadInternal& thrImpl) : m_thrImpl(thrImpl)
+ { m_thrImpl.KeepAlive(); }
+ ~wxThreadKeepAlive()
+ { m_thrImpl.LetDie(); }
+
+private:
+ wxThreadInternal& m_thrImpl;
+};
+
+
+THREAD_RETVAL THREAD_CALLCONV wxThreadInternal::WinThreadStart(void *param)
+{
+ THREAD_RETVAL rc;
+
+ return rc;
+}
+
+void wxThreadInternal::SetPriority(unsigned int priority)
+{
+}
+
+bool wxThreadInternal::Create(wxThread *thread, unsigned int stackSize)
+{
+ return false;
+}
+
+wxThreadError wxThreadInternal::Kill()
+{
+ return wxTHREAD_NO_ERROR;
+}
+
+wxThreadError
+wxThreadInternal::WaitForTerminate(wxCriticalSection& cs,
+ wxThread::ExitCode *pRc,
+ wxThread *threadToDelete)
+{
+ return wxTHREAD_NO_ERROR;
+}
+
+bool wxThreadInternal::Suspend()
+{
+ return true;
+}
+
+bool wxThreadInternal::Resume()
+{
+ return true;
+}
+
+// static functions
+// ----------------
+
+wxThread *wxThread::This()
+{
+ return NULL;
+}
+
+bool wxThread::IsMain()
+{
+ return true;
+}
+
+void wxThread::Yield()
+{
+}
+
+void wxThread::Sleep(unsigned long milliseconds)
+{
+}
+
+int wxThread::GetCPUCount()
+{
+ return 1;
+}
+
+unsigned long wxThread::GetCurrentId()
+{
+ return 0;
+}
+
+bool wxThread::SetConcurrency(size_t level)
+{
+ return true;
+}
+
+// ctor and dtor
+// -------------
+
+wxThread::wxThread(wxThreadKind kind)
+{
+}
+
+wxThread::~wxThread()
+{
+}
+
+// create/start thread
+// -------------------
+
+wxThreadError wxThread::Create(unsigned int stackSize)
+{
+ return wxTHREAD_NO_ERROR;
+}
+
+wxThreadError wxThread::Run()
+{
+ return wxTHREAD_RUNNING;
+}
+
+// suspend/resume thread
+// ---------------------
+
+wxThreadError wxThread::Pause()
+{
+ return wxTHREAD_NO_ERROR;
+}
+
+wxThreadError wxThread::Resume()
+{
+ return wxTHREAD_NO_ERROR;
+}
+
+// stopping thread
+// ---------------
+
+wxThread::ExitCode wxThread::Wait()
+{
+ return 0;
+}
+
+wxThreadError wxThread::Delete(ExitCode *pRc)
+{
+ return wxTHREAD_NO_ERROR;
+}
+
+wxThreadError wxThread::Kill()
+{
+ return wxTHREAD_NO_ERROR;
+}
+
+void wxThread::Exit(ExitCode status)
+{
+}
+
+// priority setting
+// ----------------
+
+void wxThread::SetPriority(unsigned int prio)
+{
+}
+
+unsigned int wxThread::GetPriority() const
+{
+ return 1;
+}
+
+unsigned long wxThread::GetId() const
+{
+ return 0;
+}
+
+bool wxThread::IsRunning() const
+{
+ return true;
+}
+
+bool wxThread::IsAlive() const
+{
+ return true;
+}
+
+bool wxThread::IsPaused() const
+{
+ return false;
+}
+
+bool wxThread::TestDestroy()
+{
+ return true;
+}
+
+// ----------------------------------------------------------------------------
+// Automatic initialization for thread module
+// ----------------------------------------------------------------------------
+
+class wxThreadModule : public wxModule
+{
+public:
+ virtual bool OnInit();
+ virtual void OnExit();
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxThreadModule)
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule)
+
+bool wxThreadModule::OnInit()
+{
+ return true;
+}
+
+void wxThreadModule::OnExit()
+{
+}
+
+// ----------------------------------------------------------------------------
+// under Windows, these functions are implemented using a critical section and
+// not a mutex, so the names are a bit confusing
+// ----------------------------------------------------------------------------
+
+void WXDLLIMPEXP_BASE wxMutexGuiEnter()
+{
+}
+
+void WXDLLIMPEXP_BASE wxMutexGuiLeave()
+{
+}
+
+void WXDLLIMPEXP_BASE wxMutexGuiLeaveOrEnter()
+{
+}
+
+bool WXDLLIMPEXP_BASE wxGuiOwnedByMainThread()
+{
+ return true;
+}
+
+// wake up the main thread if it's in ::GetMessage()
+void WXDLLIMPEXP_BASE wxWakeUpMainThread()
+{
+}
+
+bool WXDLLIMPEXP_BASE wxIsWaitingForThread()
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// include common implementation code
+// ----------------------------------------------------------------------------
+
+#include "wx/thrimpl.cpp"
+
+#endif // wxUSE_THREADS
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/timer.cpp
+// Purpose: wxTimer implementation
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "timer.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_TIMER
+
+#ifndef WX_PRECOMP
+ #include "wx/window.h"
+ #include "wx/list.h"
+ #include "wx/event.h"
+ #include "wx/app.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+#endif
+
+#include "wx/hashmap.h"
+
+#include "wx/timer.h"
+
+#include "wx/palmos/private.h"
+
+// from utils.cpp
+extern "C" WXDLLIMPEXP_BASE HWND
+wxCreateHiddenWindow(LPCTSTR *pclassname, LPCTSTR classname, WNDPROC wndproc);
+
+// ----------------------------------------------------------------------------
+// private globals
+// ----------------------------------------------------------------------------
+
+// define a hash containing all the timers: it is indexed by timer id and
+// contains the corresponding timer
+WX_DECLARE_HASH_MAP(unsigned long, wxTimer *, wxIntegerHash, wxIntegerEqual,
+ wxTimerMap);
+
+static wxTimerMap g_timerMap;
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+void WINAPI wxTimerProc(HWND hwnd, WORD, int idTimer, DWORD);
+
+// ----------------------------------------------------------------------------
+// macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxEvtHandler)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxTimer class
+// ----------------------------------------------------------------------------
+
+void wxTimer::Init()
+{
+}
+
+wxTimer::~wxTimer()
+{
+}
+
+bool wxTimer::Start(int milliseconds, bool oneShot)
+{
+ return false;
+}
+
+void wxTimer::Stop()
+{
+}
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+void wxProcessTimer(wxTimer& timer)
+{
+}
+
+void WINAPI wxTimerProc(HWND WXUNUSED(hwnd), WORD, int idTimer, DWORD)
+{
+}
+
+#endif // wxUSE_TIMER
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/toolbar.cpp
+// Purpose: wxToolBar
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "toolbar.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/frame.h"
+ #include "wx/log.h"
+ #include "wx/intl.h"
+ #include "wx/dynarray.h"
+ #include "wx/settings.h"
+ #include "wx/bitmap.h"
+ #include "wx/dcmemory.h"
+ #include "wx/control.h"
+#endif
+
+#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE
+
+#include "wx/toolbar.h"
+#include "wx/sysopt.h"
+
+#include "wx/palmos/private.h"
+
+#include "wx/palmos/wrapcctl.h"
+
+#include "wx/app.h" // for GetComCtl32Version
+
+// ----------------------------------------------------------------------------
+// conditional compilation
+// ----------------------------------------------------------------------------
+
+// wxWidgets previously always considered that toolbar buttons have light grey
+// (0xc0c0c0) background and so ignored any bitmap masks - however, this
+// doesn't work with XPMs which then appear to have black background. To make
+// this work, we must respect the bitmap masks - which we do now. This should
+// be ok in any case, but to restore 100% compatible with the old version
+// behaviour, you can set this to 0.
+#define USE_BITMAP_MASKS 1
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl)
+
+/*
+ TOOLBAR PROPERTIES
+ tool
+ bitmap
+ bitmap2
+ tooltip
+ longhelp
+ radio (bool)
+ toggle (bool)
+ separator
+ style ( wxNO_BORDER | wxTB_HORIZONTAL)
+ bitmapsize
+ margins
+ packing
+ separation
+
+ dontattachtoframe
+*/
+
+BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase)
+ EVT_MOUSE_EVENTS(wxToolBar::OnMouseEvent)
+ EVT_SYS_COLOUR_CHANGED(wxToolBar::OnSysColourChanged)
+END_EVENT_TABLE()
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+class wxToolBarTool : public wxToolBarToolBase
+{
+public:
+ wxToolBarTool(wxToolBar *tbar,
+ int id,
+ const wxString& label,
+ const wxBitmap& bmpNormal,
+ const wxBitmap& bmpDisabled,
+ wxItemKind kind,
+ wxObject *clientData,
+ const wxString& shortHelp,
+ const wxString& longHelp)
+ : wxToolBarToolBase(tbar, id, label, bmpNormal, bmpDisabled, kind,
+ clientData, shortHelp, longHelp)
+ {
+ }
+
+ wxToolBarTool(wxToolBar *tbar, wxControl *control)
+ : wxToolBarToolBase(tbar, control)
+ {
+ }
+
+ virtual void SetLabel(const wxString& label)
+ {
+ }
+
+ // set/get the number of separators which we use to cover the space used by
+ // a control in the toolbar
+ void SetSeparatorsCount(size_t count) { m_nSepCount = count; }
+ size_t GetSeparatorsCount() const { return m_nSepCount; }
+
+private:
+ size_t m_nSepCount;
+
+ DECLARE_NO_COPY_CLASS(wxToolBarTool)
+};
+
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxToolBarTool
+// ----------------------------------------------------------------------------
+
+wxToolBarToolBase *wxToolBar::CreateTool(int id,
+ const wxString& label,
+ const wxBitmap& bmpNormal,
+ const wxBitmap& bmpDisabled,
+ wxItemKind kind,
+ wxObject *clientData,
+ const wxString& shortHelp,
+ const wxString& longHelp)
+{
+ return new wxToolBarTool(this, id, label, bmpNormal, bmpDisabled, kind,
+ clientData, shortHelp, longHelp);
+}
+
+wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control)
+{
+ return new wxToolBarTool(this, control);
+}
+
+// ----------------------------------------------------------------------------
+// wxToolBar construction
+// ----------------------------------------------------------------------------
+
+void wxToolBar::Init()
+{
+}
+
+bool wxToolBar::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+void wxToolBar::Recreate()
+{
+}
+
+wxToolBar::~wxToolBar()
+{
+}
+
+wxSize wxToolBar::DoGetBestSize() const
+{
+ return wxSize(0,0);
+}
+
+// ----------------------------------------------------------------------------
+// adding/removing tools
+// ----------------------------------------------------------------------------
+
+bool wxToolBar::DoInsertTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool)
+{
+ return false;
+}
+
+bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool)
+{
+ return false;
+}
+
+bool wxToolBar::Realize()
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// toolbar geometry
+// ----------------------------------------------------------------------------
+
+void wxToolBar::SetToolBitmapSize(const wxSize& size)
+{
+}
+
+void wxToolBar::SetRows(int nRows)
+{
+}
+
+// The button size is bigger than the bitmap size
+wxSize wxToolBar::GetToolSize() const
+{
+ return wxSize(0,0);
+}
+
+static
+wxToolBarToolBase *GetItemSkippingDummySpacers(const wxToolBarToolsList& tools,
+ size_t index )
+{
+ return 0;
+}
+
+wxToolBarToolBase *wxToolBar::FindToolForPosition(wxCoord x, wxCoord y) const
+{
+ return NULL;
+}
+
+void wxToolBar::UpdateSize()
+{
+}
+
+// ----------------------------------------------------------------------------
+// toolbar styles
+// ---------------------------------------------------------------------------
+
+void wxToolBar::SetWindowStyleFlag(long style)
+{
+}
+
+// ----------------------------------------------------------------------------
+// tool state
+// ----------------------------------------------------------------------------
+
+void wxToolBar::DoEnableTool(wxToolBarToolBase *tool, bool enable)
+{
+}
+
+void wxToolBar::DoToggleTool(wxToolBarToolBase *tool, bool toggle)
+{
+}
+
+void wxToolBar::DoSetToggle(wxToolBarToolBase *WXUNUSED(tool), bool WXUNUSED(toggle))
+{
+}
+
+// ----------------------------------------------------------------------------
+// event handlers
+// ----------------------------------------------------------------------------
+
+// Responds to colour changes, and passes event on to children.
+void wxToolBar::OnSysColourChanged(wxSysColourChangedEvent& event)
+{
+}
+
+void wxToolBar::OnMouseEvent(wxMouseEvent& event)
+{
+}
+
+#endif // wxUSE_TOOLBAR
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/tooltip.cpp
+// Purpose: wxToolTip class implementation for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/wx.h"
+#endif
+
+#if wxUSE_TOOLTIPS
+
+#include "wx/tooltip.h"
+#include "wx/palmos/private.h"
+
+#include "wx/palmos/wrapcctl.h"
+
+// VZ: normally, the trick with subclassing the tooltip control and processing
+// TTM_WINDOWFROMPOINT should work but, somehow, it doesn't. I leave the
+// code here for now (but it's not compiled) in case we need it later.
+//
+// For now I use an ugly workaround and process TTN_NEEDTEXT directly in
+// radio button wnd proc - fixing TTM_WINDOWFROMPOINT code would be nice
+// because it would then work for all controls, not only radioboxes but for
+// now I don't understand what's wrong with it...
+#define wxUSE_TTM_WINDOWFROMPOINT 0
+
+// ----------------------------------------------------------------------------
+// global variables
+// ----------------------------------------------------------------------------
+
+// the tooltip parent window
+WXHWND wxToolTip::ms_hwndTT = (WXHWND)NULL;
+
+#if wxUSE_TTM_WINDOWFROMPOINT
+
+// the tooltip window proc
+static WNDPROC gs_wndprocToolTip = (WNDPROC)NULL;
+
+#endif // wxUSE_TTM_WINDOWFROMPOINT
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// send a message to the tooltip control
+inline LRESULT SendTooltipMessage(WXHWND hwnd,
+ UINT msg,
+ WPARAM wParam,
+ void *lParam)
+{
+ return 0;
+}
+
+// send a message to all existing tooltip controls
+static void SendTooltipMessageToAll(WXHWND hwnd,
+ UINT msg,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+}
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// static functions
+// ----------------------------------------------------------------------------
+
+void wxToolTip::Enable(bool flag)
+{
+}
+
+void wxToolTip::SetDelay(long milliseconds)
+{
+}
+
+// ---------------------------------------------------------------------------
+// implementation helpers
+// ---------------------------------------------------------------------------
+
+// create the tooltip ctrl for our parent frame if it doesn't exist yet
+WXHWND wxToolTip::GetToolTipCtrl()
+{
+ return (WXHWND) 0;
+}
+
+void wxToolTip::RelayEvent(WXMSG *msg)
+{
+}
+
+// ----------------------------------------------------------------------------
+// ctor & dtor
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_ABSTRACT_CLASS(wxToolTip, wxObject)
+
+wxToolTip::wxToolTip(const wxString &tip)
+ : m_text(tip)
+{
+}
+
+wxToolTip::~wxToolTip()
+{
+}
+
+// ----------------------------------------------------------------------------
+// others
+// ----------------------------------------------------------------------------
+
+void wxToolTip::Remove()
+{
+}
+
+void wxToolTip::Add(WXHWND hWnd)
+{
+}
+
+void wxToolTip::SetWindow(wxWindow *win)
+{
+}
+
+void wxToolTip::SetTip(const wxString& tip)
+{
+}
+
+#endif // wxUSE_TOOLTIPS
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/toplevel.cpp
+// Purpose: implements wxTopLevelWindow for Palm OS
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne <wbo@freeshell.org>
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "toplevel.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+ #include "wx/toplevel.h"
+ #include "wx/dialog.h"
+ #include "wx/string.h"
+ #include "wx/log.h"
+ #include "wx/intl.h"
+ #include "wx/frame.h"
+ #include "wx/containr.h" // wxSetFocusToChild()
+#endif //WX_PRECOMP
+
+#include "wx/module.h"
+
+#include "wx/display.h"
+
+#ifndef ICON_BIG
+ #define ICON_BIG 1
+#endif
+
+#ifndef ICON_SMALL
+ #define ICON_SMALL 0
+#endif
+
+
+// ----------------------------------------------------------------------------
+// globals
+// ----------------------------------------------------------------------------
+
+// the name of the default wxWidgets class
+extern const wxChar *wxCanvasClassName;
+
+// Pointer to the currently active frame for the form event handler.
+wxFrame* ActiveParentFrame;
+
+// ============================================================================
+// wxTopLevelWindowPalm implementation
+// ============================================================================
+
+BEGIN_EVENT_TABLE(wxTopLevelWindowPalm, wxTopLevelWindowBase)
+ EVT_ACTIVATE(wxTopLevelWindowPalm::OnActivate)
+END_EVENT_TABLE()
+
+// ----------------------------------------------------------------------------
+// wxTopLevelWindowPalm creation
+// ----------------------------------------------------------------------------
+
+void wxTopLevelWindowPalm::Init()
+{
+}
+
+WXDWORD wxTopLevelWindowPalm::PalmGetStyle(long style, WXDWORD *exflags) const
+{
+ return 0;
+}
+
+WXHWND wxTopLevelWindowPalm::PalmGetParent() const
+{
+ return NULL;
+}
+
+bool wxTopLevelWindowPalm::CreateDialog(const void *dlgTemplate,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size)
+{
+ return false;
+}
+
+bool wxTopLevelWindowPalm::CreateFrame(const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size)
+{
+ return false;
+}
+
+bool wxTopLevelWindowPalm::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ ActiveParentFrame=NULL;
+
+ wxTopLevelWindows.Append(this);
+
+ if ( parent )
+ parent->AddChild(this);
+
+ m_windowId = id == -1 ? NewControlId() : id;
+
+ FrameForm=FrmNewForm(m_windowId,title,0,0,160,160,false,0,NULL,0,NULL,0);
+ if(FrameForm==0)
+ return false;
+
+ FrmSetEventHandler(FrameForm,FrameFormHandleEvent);
+
+ return true;
+}
+
+bool wxTopLevelWindowPalm::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name,
+ wxFrame* PFrame)
+{
+ wxTopLevelWindows.Append(this);
+
+ if ( parent )
+ parent->AddChild(this);
+
+ m_windowId = id == -1 ? NewControlId() : id;
+
+ FrameForm=FrmNewForm(m_windowId,title,0,0,160,160,false,0,NULL,0,NULL,0);
+ if(FrameForm==0)
+ return false;
+
+ FrmSetEventHandler(FrameForm,FrameFormHandleEvent);
+
+ FrmSetActiveForm(FrameForm);
+
+ ActiveParentFrame=PFrame;
+
+ return true;
+}
+
+wxTopLevelWindowPalm::~wxTopLevelWindowPalm()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxTopLevelWindowPalm showing
+// ----------------------------------------------------------------------------
+
+void wxTopLevelWindowPalm::DoShowWindow(int nShowCmd)
+{
+}
+
+bool wxTopLevelWindowPalm::Show(bool show)
+{
+ FrmDrawForm(FrameForm);
+
+ wxPaintEvent event(m_windowId);
+ event.SetEventObject(this);
+ GetEventHandler()->ProcessEvent(event);
+
+ return true;
+}
+
+// ----------------------------------------------------------------------------
+// wxTopLevelWindowPalm maximize/minimize
+// ----------------------------------------------------------------------------
+
+void wxTopLevelWindowPalm::Maximize(bool maximize)
+{
+}
+
+bool wxTopLevelWindowPalm::IsMaximized() const
+{
+ return false;
+}
+
+void wxTopLevelWindowPalm::Iconize(bool iconize)
+{
+}
+
+bool wxTopLevelWindowPalm::IsIconized() const
+{
+ return false;
+}
+
+void wxTopLevelWindowPalm::Restore()
+{
+}
+
+// ----------------------------------------------------------------------------
+// wxTopLevelWindowPalm fullscreen
+// ----------------------------------------------------------------------------
+
+bool wxTopLevelWindowPalm::ShowFullScreen(bool show, long style)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxTopLevelWindowPalm misc
+// ----------------------------------------------------------------------------
+
+void wxTopLevelWindowPalm::SetIcon(const wxIcon& icon)
+{
+}
+
+void wxTopLevelWindowPalm::SetIcons(const wxIconBundle& icons)
+{
+}
+
+bool wxTopLevelWindowPalm::EnableCloseButton(bool enable)
+{
+ return false;
+}
+
+#ifndef __WXWINCE__
+
+bool wxTopLevelWindowPalm::SetShape(const wxRegion& region)
+{
+ return false;
+}
+
+#endif // !__WXWINCE__
+
+// ----------------------------------------------------------------------------
+// wxTopLevelWindow event handling
+// ----------------------------------------------------------------------------
+
+void wxTopLevelWindowPalm::OnActivate(wxActivateEvent& event)
+{
+}
+
+/* Palm OS Event handler for the window
+ *
+ * This function *must* be located outside of the wxTopLevelWindow class because
+ * the Palm OS API expects a standalone C function as a callback. You cannot
+ * pass a pointer to a member function of a C++ class as a callback because the
+ * prototypes don't match. (A member function has a hidden "this" pointer as
+ * its first parameter).
+ *
+ * This event handler uses a global pointer to the current wxFrame to process
+ * the events generated by the Palm OS form API. I know this is ugly, but right
+ * now I can't think of any other way to deal with this problem. If someone
+ * finds a better solution, please let me know. My email address is
+ * wbo@freeshell.org
+ */
+static Boolean FrameFormHandleEvent(EventType* pEvent)
+{
+ Boolean fHandled = false;
+ FormType* pForm;
+ WinHandle hWindow;
+ int ItemID=0;
+
+ switch (pEvent->eType) {
+ case ctlSelectEvent:
+ break;
+#if wxUSE_MENUS_NATIVE
+ case menuOpenEvent:
+ fHandled=ActiveParentFrame->HandleMenuOpen();
+ break;
+ case menuEvent:
+ ItemID=pEvent->data.menu.itemID;
+ fHandled=ActiveParentFrame->HandleMenuSelect(ItemID);
+ break;
+#endif
+ default:
+ break;
+ }
+
+ return fHandled;
+}
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/treectrl.cpp
+// Purpose: wxTreeCtrl
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "treectrl.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_TREECTRL
+
+#include "wx/palmos/private.h"
+
+// Set this to 1 to be _absolutely_ sure that repainting will work for all
+// comctl32.dll versions
+#define wxUSE_COMCTL32_SAFELY 0
+
+#include "wx/app.h"
+#include "wx/log.h"
+#include "wx/dynarray.h"
+#include "wx/imaglist.h"
+#include "wx/settings.h"
+#include "wx/msw/treectrl.h"
+#include "wx/msw/dragimag.h"
+
+#include "wx/palmos/wrapcctl.h"
+
+// macros to hide the cast ugliness
+// --------------------------------
+
+// ptr is the real item id, i.e. wxTreeItemId::m_pItem
+#define HITEM_PTR(ptr) (HTREEITEM)(ptr)
+
+// item here is a wxTreeItemId
+#define HITEM(item) HITEM_PTR((item).m_pItem)
+
+// the native control doesn't support multiple selections under MSW and we
+// have 2 ways to emulate them: either using TVS_CHECKBOXES style and let
+// checkboxes be the selection status (checked == selected) or by really
+// emulating everything, i.e. intercepting mouse and key events &c. The first
+// approach is much easier but doesn't work with comctl32.dll < 4.71 and also
+// looks quite ugly.
+#define wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE 0
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxTreeCtrlStyle )
+
+wxBEGIN_FLAGS( wxTreeCtrlStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxTR_EDIT_LABELS)
+ wxFLAGS_MEMBER(wxTR_NO_BUTTONS)
+ wxFLAGS_MEMBER(wxTR_HAS_BUTTONS)
+ wxFLAGS_MEMBER(wxTR_TWIST_BUTTONS)
+ wxFLAGS_MEMBER(wxTR_NO_LINES)
+ wxFLAGS_MEMBER(wxTR_FULL_ROW_HIGHLIGHT)
+ wxFLAGS_MEMBER(wxTR_LINES_AT_ROOT)
+ wxFLAGS_MEMBER(wxTR_HIDE_ROOT)
+ wxFLAGS_MEMBER(wxTR_ROW_LINES)
+ wxFLAGS_MEMBER(wxTR_HAS_VARIABLE_ROW_HEIGHT)
+ wxFLAGS_MEMBER(wxTR_SINGLE)
+ wxFLAGS_MEMBER(wxTR_MULTIPLE)
+ wxFLAGS_MEMBER(wxTR_EXTENDED)
+ wxFLAGS_MEMBER(wxTR_DEFAULT_STYLE)
+
+wxEND_FLAGS( wxTreeCtrlStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxTreeCtrl, wxControl,"wx/treectrl.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxTreeCtrl)
+ wxEVENT_PROPERTY( TextUpdated , wxEVT_COMMAND_TEXT_UPDATED , wxCommandEvent )
+ wxEVENT_RANGE_PROPERTY( TreeEvent , wxEVT_COMMAND_TREE_BEGIN_DRAG , wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK , wxTreeEvent )
+ wxPROPERTY_FLAGS( WindowStyle , wxTreeCtrlStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxTreeCtrl)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_5( wxTreeCtrl , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size , long , WindowStyle )
+#else
+IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl)
+#endif
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// indices in gs_expandEvents table below
+enum
+{
+ IDX_COLLAPSE,
+ IDX_EXPAND,
+ IDX_WHAT_MAX
+};
+
+enum
+{
+ IDX_DONE,
+ IDX_DOING,
+ IDX_HOW_MAX
+};
+
+// handy table for sending events - it has to be initialized during run-time
+// now so can't be const any more
+static /* const */ wxEventType gs_expandEvents[IDX_WHAT_MAX][IDX_HOW_MAX];
+
+/*
+ but logically it's a const table with the following entries:
+=
+{
+ { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, wxEVT_COMMAND_TREE_ITEM_COLLAPSING },
+ { wxEVT_COMMAND_TREE_ITEM_EXPANDED, wxEVT_COMMAND_TREE_ITEM_EXPANDING }
+};
+*/
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// construction and destruction
+// ----------------------------------------------------------------------------
+
+void wxTreeCtrl::Init()
+{
+}
+
+bool wxTreeCtrl::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ return false;
+}
+
+wxTreeCtrl::~wxTreeCtrl()
+{
+}
+
+// ----------------------------------------------------------------------------
+// accessors
+// ----------------------------------------------------------------------------
+
+/* static */ wxVisualAttributes
+wxTreeCtrl::GetClassDefaultAttributes(wxWindowVariant variant)
+{
+ wxVisualAttributes attrs;
+
+ return attrs;
+}
+
+
+// simple wrappers which add error checking in debug mode
+
+bool wxTreeCtrl::DoGetItem(wxTreeViewItem* tvItem) const
+{
+ return false;
+}
+
+void wxTreeCtrl::DoSetItem(wxTreeViewItem* tvItem)
+{
+}
+
+size_t wxTreeCtrl::GetCount() const
+{
+ return 0;
+}
+
+unsigned int wxTreeCtrl::GetIndent() const
+{
+ return 0;
+}
+
+void wxTreeCtrl::SetIndent(unsigned int indent)
+{
+}
+
+wxImageList *wxTreeCtrl::GetImageList() const
+{
+ return m_imageListNormal;
+}
+
+wxImageList *wxTreeCtrl::GetStateImageList() const
+{
+ return m_imageListState;
+}
+
+void wxTreeCtrl::SetAnyImageList(wxImageList *imageList, int which)
+{
+}
+
+void wxTreeCtrl::SetImageList(wxImageList *imageList)
+{
+}
+
+void wxTreeCtrl::SetStateImageList(wxImageList *imageList)
+{
+}
+
+void wxTreeCtrl::AssignImageList(wxImageList *imageList)
+{
+}
+
+void wxTreeCtrl::AssignStateImageList(wxImageList *imageList)
+{
+}
+
+size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item,
+ bool recursively) const
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// control colours
+// ----------------------------------------------------------------------------
+
+bool wxTreeCtrl::SetBackgroundColour(const wxColour &colour)
+{
+ return false;
+}
+
+bool wxTreeCtrl::SetForegroundColour(const wxColour &colour)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// Item access
+// ----------------------------------------------------------------------------
+
+wxString wxTreeCtrl::GetItemText(const wxTreeItemId& item) const
+{
+ return wxString;
+}
+
+void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text)
+{
+}
+
+int wxTreeCtrl::DoGetItemImageFromData(const wxTreeItemId& item,
+ wxTreeItemIcon which) const
+{
+ return -1;
+}
+
+void wxTreeCtrl::DoSetItemImageFromData(const wxTreeItemId& item,
+ int image,
+ wxTreeItemIcon which) const
+{
+}
+
+void wxTreeCtrl::DoSetItemImages(const wxTreeItemId& item,
+ int image,
+ int imageSel)
+{
+}
+
+int wxTreeCtrl::GetItemImage(const wxTreeItemId& item,
+ wxTreeItemIcon which) const
+{
+ return -1;
+}
+
+void wxTreeCtrl::SetItemImage(const wxTreeItemId& item, int image,
+ wxTreeItemIcon which)
+{
+}
+
+wxTreeItemData *wxTreeCtrl::GetItemData(const wxTreeItemId& item) const
+{
+ return NULL;
+}
+
+void wxTreeCtrl::SetItemData(const wxTreeItemId& item, wxTreeItemData *data)
+{
+}
+
+void wxTreeCtrl::SetIndirectItemData(const wxTreeItemId& item,
+ wxTreeItemIndirectData *data)
+{
+}
+
+bool wxTreeCtrl::HasIndirectData(const wxTreeItemId& item) const
+{
+ return false;
+}
+
+void wxTreeCtrl::SetItemHasChildren(const wxTreeItemId& item, bool has)
+{
+}
+
+void wxTreeCtrl::SetItemBold(const wxTreeItemId& item, bool bold)
+{
+}
+
+void wxTreeCtrl::SetItemDropHighlight(const wxTreeItemId& item, bool highlight)
+{
+}
+
+void wxTreeCtrl::RefreshItem(const wxTreeItemId& item)
+{
+}
+
+wxColour wxTreeCtrl::GetItemTextColour(const wxTreeItemId& item) const
+{
+ return wxNullColour;
+}
+
+wxColour wxTreeCtrl::GetItemBackgroundColour(const wxTreeItemId& item) const
+{
+ return wxNullColour;
+}
+
+wxFont wxTreeCtrl::GetItemFont(const wxTreeItemId& item) const
+{
+ return wxNullFont;
+}
+
+void wxTreeCtrl::SetItemTextColour(const wxTreeItemId& item,
+ const wxColour& col)
+{
+}
+
+void wxTreeCtrl::SetItemBackgroundColour(const wxTreeItemId& item,
+ const wxColour& col)
+{
+}
+
+void wxTreeCtrl::SetItemFont(const wxTreeItemId& item, const wxFont& font)
+{
+}
+
+// ----------------------------------------------------------------------------
+// Item status
+// ----------------------------------------------------------------------------
+
+bool wxTreeCtrl::IsVisible(const wxTreeItemId& item) const
+{
+ return false;
+}
+
+bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId& item) const
+{
+ return false;
+}
+
+bool wxTreeCtrl::IsExpanded(const wxTreeItemId& item) const
+{
+ return false;
+}
+
+bool wxTreeCtrl::IsSelected(const wxTreeItemId& item) const
+{
+ return false;
+}
+
+bool wxTreeCtrl::IsBold(const wxTreeItemId& item) const
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// navigation
+// ----------------------------------------------------------------------------
+
+wxTreeItemId wxTreeCtrl::GetRootItem() const
+{
+ // Root may be real (visible) or virtual (hidden).
+ if ( GET_VIRTUAL_ROOT() )
+ return TVI_ROOT;
+
+ return wxTreeItemId(TreeView_GetRoot(GetHwnd()));
+}
+
+wxTreeItemId wxTreeCtrl::GetSelection() const
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::GetItemParent(const wxTreeItemId& item) const
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::GetFirstChild(const wxTreeItemId& item,
+ wxTreeItemIdValue& cookie) const
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::GetNextChild(const wxTreeItemId& WXUNUSED(item),
+ wxTreeItemIdValue& cookie) const
+{
+ return 0;
+}
+
+#if WXWIN_COMPATIBILITY_2_4
+
+wxTreeItemId wxTreeCtrl::GetFirstChild(const wxTreeItemId& item,
+ long& cookie) const
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::GetNextChild(const wxTreeItemId& WXUNUSED(item),
+ long& cookie) const
+{
+ return 0;
+}
+
+#endif // WXWIN_COMPATIBILITY_2_4
+
+wxTreeItemId wxTreeCtrl::GetLastChild(const wxTreeItemId& item) const
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId& item) const
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId& item) const
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::GetPrevVisible(const wxTreeItemId& item) const
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// multiple selections emulation
+// ----------------------------------------------------------------------------
+
+bool wxTreeCtrl::IsItemChecked(const wxTreeItemId& item) const
+{
+ return false;
+}
+
+void wxTreeCtrl::SetItemCheck(const wxTreeItemId& item, bool check)
+{
+}
+
+size_t wxTreeCtrl::GetSelections(wxArrayTreeItemIds& selections) const
+{
+ return 0;
+}
+
+// ----------------------------------------------------------------------------
+// Usual operations
+// ----------------------------------------------------------------------------
+
+wxTreeItemId wxTreeCtrl::DoInsertItem(const wxTreeItemId& parent,
+ wxTreeItemId hInsertAfter,
+ const wxString& text,
+ int image, int selectedImage,
+ wxTreeItemData *data)
+{
+ return 0;
+}
+
+// for compatibility only
+#if WXWIN_COMPATIBILITY_2_4
+
+wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parent,
+ const wxString& text,
+ int image, int selImage,
+ long insertAfter)
+{
+ return 0;
+}
+
+#endif // WXWIN_COMPATIBILITY_2_4
+
+wxTreeItemId wxTreeCtrl::AddRoot(const wxString& text,
+ int image, int selectedImage,
+ wxTreeItemData *data)
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::PrependItem(const wxTreeItemId& parent,
+ const wxString& text,
+ int image, int selectedImage,
+ wxTreeItemData *data)
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parent,
+ const wxTreeItemId& idPrevious,
+ const wxString& text,
+ int image, int selectedImage,
+ wxTreeItemData *data)
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parent,
+ size_t index,
+ const wxString& text,
+ int image, int selectedImage,
+ wxTreeItemData *data)
+{
+ return 0;
+}
+
+wxTreeItemId wxTreeCtrl::AppendItem(const wxTreeItemId& parent,
+ const wxString& text,
+ int image, int selectedImage,
+ wxTreeItemData *data)
+{
+ return 0;
+}
+
+void wxTreeCtrl::Delete(const wxTreeItemId& item)
+{
+ return 0;
+}
+
+// delete all children (but don't delete the item itself)
+void wxTreeCtrl::DeleteChildren(const wxTreeItemId& item)
+{
+}
+
+void wxTreeCtrl::DeleteAllItems()
+{
+}
+
+void wxTreeCtrl::DoExpand(const wxTreeItemId& item, int flag)
+{
+}
+
+void wxTreeCtrl::Expand(const wxTreeItemId& item)
+{
+}
+
+void wxTreeCtrl::Collapse(const wxTreeItemId& item)
+{
+}
+
+void wxTreeCtrl::CollapseAndReset(const wxTreeItemId& item)
+{
+}
+
+void wxTreeCtrl::Toggle(const wxTreeItemId& item)
+{
+}
+
+#if WXWIN_COMPATIBILITY_2_4
+void wxTreeCtrl::ExpandItem(const wxTreeItemId& item, int action)
+{
+}
+#endif
+
+void wxTreeCtrl::Unselect()
+{
+}
+
+void wxTreeCtrl::UnselectAll()
+{
+}
+
+void wxTreeCtrl::SelectItem(const wxTreeItemId& item, bool select)
+{
+}
+
+void wxTreeCtrl::UnselectItem(const wxTreeItemId& item)
+{
+}
+
+void wxTreeCtrl::ToggleItemSelection(const wxTreeItemId& item)
+{
+}
+
+void wxTreeCtrl::EnsureVisible(const wxTreeItemId& item)
+{
+}
+
+void wxTreeCtrl::ScrollTo(const wxTreeItemId& item)
+{
+}
+
+wxTextCtrl *wxTreeCtrl::GetEditControl() const
+{
+ return NULL;
+}
+
+void wxTreeCtrl::DeleteTextCtrl()
+{
+}
+
+wxTextCtrl* wxTreeCtrl::EditLabel(const wxTreeItemId& item,
+ wxClassInfo* textControlClass)
+{
+ return NULL;
+}
+
+// End label editing, optionally cancelling the edit
+void wxTreeCtrl::EndEditLabel(const wxTreeItemId& WXUNUSED(item), bool discardChanges)
+{
+}
+
+wxTreeItemId wxTreeCtrl::HitTest(const wxPoint& point, int& flags)
+{
+ return 0;
+}
+
+bool wxTreeCtrl::GetBoundingRect(const wxTreeItemId& item,
+ wxRect& rect,
+ bool textOnly) const
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// sorting stuff
+// ----------------------------------------------------------------------------
+
+// this is just a tiny namespace which is friend to wxTreeCtrl and so can use
+// functions such as IsDataIndirect()
+class wxTreeSortHelper
+{
+public:
+ static int CALLBACK Compare(LPARAM data1, LPARAM data2, LPARAM tree);
+
+private:
+ static wxTreeItemId GetIdFromData(wxTreeCtrl *tree, LPARAM item)
+ {
+ wxTreeItemData *data = (wxTreeItemData *)item;
+ if ( tree->IsDataIndirect(data) )
+ {
+ data = ((wxTreeItemIndirectData *)data)->GetData();
+ }
+
+ return data->GetId();
+ }
+};
+
+int CALLBACK wxTreeSortHelper::Compare(LPARAM pItem1,
+ LPARAM pItem2,
+ LPARAM htree)
+{
+ wxCHECK_MSG( pItem1 && pItem2, 0,
+ wxT("sorting tree without data doesn't make sense") );
+
+ wxTreeCtrl *tree = (wxTreeCtrl *)htree;
+
+ return tree->OnCompareItems(GetIdFromData(tree, pItem1),
+ GetIdFromData(tree, pItem2));
+}
+
+int wxTreeCtrl::OnCompareItems(const wxTreeItemId& item1,
+ const wxTreeItemId& item2)
+{
+ return wxStrcmp(GetItemText(item1), GetItemText(item2));
+}
+
+void wxTreeCtrl::SortChildren(const wxTreeItemId& item)
+{
+ wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
+
+ // rely on the fact that TreeView_SortChildren does the same thing as our
+ // default behaviour, i.e. sorts items alphabetically and so call it
+ // directly if we're not in derived class (much more efficient!)
+ if ( GetClassInfo() == CLASSINFO(wxTreeCtrl) )
+ {
+ TreeView_SortChildren(GetHwnd(), HITEM(item), 0);
+ }
+ else
+ {
+ TV_SORTCB tvSort;
+ tvSort.hParent = HITEM(item);
+ tvSort.lpfnCompare = wxTreeSortHelper::Compare;
+ tvSort.lParam = (LPARAM)this;
+ TreeView_SortChildrenCB(GetHwnd(), &tvSort, 0 /* reserved */);
+ }
+}
+
+// ----------------------------------------------------------------------------
+// implementation
+// ----------------------------------------------------------------------------
+
+bool wxTreeCtrl::MSWCommand(WXUINT cmd, WXWORD id)
+{
+ return false;
+}
+
+WXLRESULT wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return 0;
+}
+
+// process WM_NOTIFY Windows message
+bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// State control.
+// ----------------------------------------------------------------------------
+
+// why do they define INDEXTOSTATEIMAGEMASK but not the inverse?
+#define STATEIMAGEMASKTOINDEX(state) (((state) & TVIS_STATEIMAGEMASK) >> 12)
+
+void wxTreeCtrl::SetState(const wxTreeItemId& node, int state)
+{
+}
+
+int wxTreeCtrl::GetState(const wxTreeItemId& node)
+{
+ return 0;
+}
+
+#endif // wxUSE_TREECTRL
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/utils.cpp
+// Purpose: Various utilities
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/utils.h"
+ #include "wx/app.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+#endif //WX_PRECOMP
+
+#include "wx/apptrait.h"
+#include "wx/dynload.h"
+
+#include "wx/confbase.h" // for wxExpandEnvVars()
+
+#include "wx/timer.h"
+
+// VZ: there is some code using NetXXX() functions to get the full user name:
+// I don't think it's a good idea because they don't work under Win95 and
+// seem to return the same as wxGetUserId() under NT. If you really want
+// to use them, just #define USE_NET_API
+#undef USE_NET_API
+
+#ifdef USE_NET_API
+ #include <lm.h>
+#endif // USE_NET_API
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// In the WIN.INI file
+static const wxChar WX_SECTION[] = wxT("wxWindows");
+static const wxChar eUSERNAME[] = wxT("UserName");
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// get host name and related
+// ----------------------------------------------------------------------------
+
+// Get hostname only (without domain name)
+bool wxGetHostName(wxChar *buf, int maxSize)
+{
+ return false;
+}
+
+// get full hostname (with domain name if possible)
+bool wxGetFullHostName(wxChar *buf, int maxSize)
+{
+ return false;
+}
+
+// Get user ID e.g. jacs
+bool wxGetUserId(wxChar *buf, int maxSize)
+{
+ return false;
+}
+
+// Get user name e.g. Julian Smart
+bool wxGetUserName(wxChar *buf, int maxSize)
+{
+ return false;
+}
+
+const wxChar* wxGetHomeDir(wxString *pstr)
+{
+ return NULL;
+}
+
+wxChar *wxGetUserHome(const wxString& WXUNUSED(user))
+{
+ return NULL;
+}
+
+bool wxDirExists(const wxString& dir)
+{
+ return false;
+}
+
+bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// env vars
+// ----------------------------------------------------------------------------
+
+bool wxGetEnv(const wxString& var, wxString *value)
+{
+ return false;
+}
+
+bool wxSetEnv(const wxString& var, const wxChar *value)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// process management
+// ----------------------------------------------------------------------------
+
+// structure used to pass parameters from wxKill() to wxEnumFindByPidProc()
+int wxKill(long pid, wxSignal sig, wxKillError *krc)
+{
+ return 0;
+}
+
+// Execute a program in an Interactive Shell
+bool wxShell(const wxString& command)
+{
+ return false;
+}
+
+// Shutdown or reboot the PC
+bool wxShutdown(wxShutdownFlags wFlags)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// misc
+// ----------------------------------------------------------------------------
+
+// Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX)
+long wxGetFreeMemory()
+{
+ return 0;
+}
+
+unsigned long wxGetProcessId()
+{
+ return 0;
+}
+
+// Emit a beeeeeep
+void wxBell()
+{
+}
+
+wxString wxGetOsDescription()
+{
+ wxString str;
+
+ return str;
+}
+
+wxToolkitInfo& wxAppTraits::GetToolkitInfo()
+{
+ static wxToolkitInfo info;
+ info.name = _T("wxBase");
+ return info;
+}
+
+// ----------------------------------------------------------------------------
+// sleep functions
+// ----------------------------------------------------------------------------
+
+void wxMilliSleep(unsigned long milliseconds)
+{
+}
+
+void wxMicroSleep(unsigned long microseconds)
+{
+}
+
+void wxSleep(int nSecs)
+{
+}
+
+// ----------------------------------------------------------------------------
+// font encoding <-> Win32 codepage conversion functions
+// ----------------------------------------------------------------------------
+
+extern WXDLLIMPEXP_BASE long wxEncodingToCharset(wxFontEncoding encoding)
+{
+ return 0;
+}
+
+// we have 2 versions of wxCharsetToCodepage(): the old one which directly
+// looks up the vlaues in the registry and the new one which is more
+// politically correct and has more chances to work on other Windows versions
+// as well but the old version is still needed for !wxUSE_FONTMAP case
+#if wxUSE_FONTMAP
+
+#include "wx/fontmap.h"
+
+extern WXDLLIMPEXP_BASE long wxEncodingToCodepage(wxFontEncoding encoding)
+{
+ return 0;
+}
+
+extern long wxCharsetToCodepage(const wxChar *name)
+{
+ return 0;
+}
+
+#else // !wxUSE_FONTMAP
+
+#include "wx/palmos/registry.h"
+
+// this should work if Internet Exploiter is installed
+extern long wxCharsetToCodepage(const wxChar *name)
+{
+ return 0;
+}
+
+#endif // wxUSE_FONTMAP/!wxUSE_FONTMAP
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: palmos/utilsexec.cpp
+// Purpose: wxExecute implementation for MSW
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/utils.h"
+ #include "wx/app.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+#endif
+
+#include "wx/stream.h"
+#include "wx/process.h"
+
+#include "wx/apptrait.h"
+
+#include "wx/module.h"
+
+#include <ctype.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if wxUSE_IPC
+ #include "wx/dde.h" // for WX_DDE hack in wxExecute
+#endif // wxUSE_IPC
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// this module globals
+// ----------------------------------------------------------------------------
+
+// we need to create a hidden window to receive the process termination
+// notifications and for this we need a (Win) class name for it which we will
+// register the first time it's needed
+static const wxChar *wxMSWEXEC_WNDCLASSNAME = wxT("_wxExecute_Internal_Class");
+static const wxChar *gs_classForHiddenWindow = NULL;
+
+// ----------------------------------------------------------------------------
+// private types
+// ----------------------------------------------------------------------------
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ============================================================================
+// wxExecute functions family
+// ============================================================================
+
+#if wxUSE_IPC
+
+// connect to the given server via DDE and ask it to execute the command
+static bool wxExecuteDDE(const wxString& ddeServer,
+ const wxString& ddeTopic,
+ const wxString& ddeCommand)
+{
+ return false;
+}
+
+#endif // wxUSE_IPC
+
+long wxExecute(const wxString& cmd, int flags, wxProcess *handler)
+{
+ return 0;
+}
+
+long wxExecute(wxChar **argv, int flags, wxProcess *handler)
+{
+ return 0;
+}
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: palmos/utilsgui.cpp
+// Purpose: Various utility functions only available in GUI
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/cursor.h"
+ #include "wx/window.h"
+ #include "wx/utils.h"
+#endif //WX_PRECOMP
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// functions to work with .INI files
+// ----------------------------------------------------------------------------
+
+// Reading and writing resources (eg WIN.INI, .Xdefaults)
+#if wxUSE_RESOURCES
+bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file)
+{
+ return false;
+}
+
+bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file)
+{
+ return false;
+}
+
+bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file)
+{
+ return false;
+}
+
+bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file)
+{
+ return false;
+}
+
+bool wxGetResource(const wxString& section, const wxString& entry, wxChar **value, const wxString& file)
+{
+ return false;
+}
+
+bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file)
+{
+ return false;
+}
+
+bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file)
+{
+ return false;
+}
+
+bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file)
+{
+ return false;
+}
+#endif // wxUSE_RESOURCES
+
+// ---------------------------------------------------------------------------
+// helper functions for showing a "busy" cursor
+// ---------------------------------------------------------------------------
+
+static int gs_wxBusyCursorCount = 0;
+
+// Set the cursor to the busy cursor for all windows
+void wxBeginBusyCursor(wxCursor *cursor)
+{
+}
+
+// Restore cursor to normal
+void wxEndBusyCursor()
+{
+}
+
+// true if we're between the above two calls
+bool wxIsBusy()
+{
+ return false;
+}
+
+// Check whether this window wants to process messages, e.g. Stop button
+// in long calculations.
+bool wxCheckForInterrupt(wxWindow *wnd)
+{
+ return false;
+}
+
+// MSW only: get user-defined resource from the .res file.
+// Returns NULL or newly-allocated memory, so use delete[] to clean up.
+
+wxChar *wxLoadUserResource(const wxString& resourceName, const wxString& resourceType)
+{
+ return NULL;
+}
+
+// ----------------------------------------------------------------------------
+// get display info
+// ----------------------------------------------------------------------------
+
+// See also the wxGetMousePosition in window.cpp
+// Deprecated: use wxPoint wxGetMousePosition() instead
+void wxGetMousePosition( int* x, int* y )
+{
+};
+
+// Return true if we have a colour display
+bool wxColourDisplay()
+{
+ return false;
+}
+
+// Returns depth of screen
+int wxDisplayDepth()
+{
+ return 0;
+}
+
+// Get size of display
+void wxDisplaySize(int *width, int *height)
+{
+}
+
+void wxDisplaySizeMM(int *width, int *height)
+{
+}
+
+void wxClientDisplayRect(int *x, int *y, int *width, int *height)
+{
+}
+
+// ---------------------------------------------------------------------------
+// window information functions
+// ---------------------------------------------------------------------------
+
+wxString WXDLLEXPORT wxGetWindowText(WXHWND hWnd)
+{
+ wxString str;
+
+ return str;
+}
+
+wxString WXDLLEXPORT wxGetWindowClass(WXHWND hWnd)
+{
+ wxString str;
+
+ return str;
+}
+
+WXWORD WXDLLEXPORT wxGetWindowId(WXHWND hWnd)
+{
+ return 0;
+}
+
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/volume.cpp
+// Purpose: wxFSVolume - encapsulates system volume information
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "fsvolume.h"
+#endif
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_FSVOLUME
+
+#ifndef WX_PRECOMP
+ #if wxUSE_GUI
+ #include "wx/icon.h"
+ #endif
+ #include "wx/intl.h"
+#endif // WX_PRECOMP
+
+#include "wx/dir.h"
+#include "wx/hashmap.h"
+#include "wx/dynlib.h"
+#include "wx/arrimpl.cpp"
+
+#include "wx/volume.h"
+
+#include "wx/palmos/missing.h"
+
+#if wxUSE_BASE
+
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Dynamic library function defs.
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+static wxDynamicLibrary s_mprLib;
+
+typedef DWORD (WINAPI* WNetOpenEnumPtr)(DWORD, DWORD, DWORD, LPNETRESOURCE, LPHANDLE);
+typedef DWORD (WINAPI* WNetEnumResourcePtr)(HANDLE, LPDWORD, LPVOID, LPDWORD);
+typedef DWORD (WINAPI* WNetCloseEnumPtr)(HANDLE);
+
+static WNetOpenEnumPtr s_pWNetOpenEnum;
+static WNetEnumResourcePtr s_pWNetEnumResource;
+static WNetCloseEnumPtr s_pWNetCloseEnum;
+
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Globals/Statics
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+static long s_cancelSearch = FALSE;
+
+struct FileInfo
+{
+ FileInfo(unsigned flag=0, wxFSVolumeKind type=wxFS_VOL_OTHER) :
+ m_flags(flag), m_type(type) {}
+
+ FileInfo(const FileInfo& other) { *this = other; }
+ FileInfo& operator=(const FileInfo& other)
+ {
+ m_flags = other.m_flags;
+ m_type = other.m_type;
+ return *this;
+ }
+
+ unsigned m_flags;
+ wxFSVolumeKind m_type;
+};
+WX_DECLARE_STRING_HASH_MAP(FileInfo, FileInfoMap);
+// Cygwin bug (?) destructor for global s_fileInfo is called twice...
+static FileInfoMap& GetFileInfoMap()
+{
+ static FileInfoMap s_fileInfo(25);
+
+ return s_fileInfo;
+}
+#define s_fileInfo (GetFileInfoMap())
+
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Local helper functions.
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//=============================================================================
+// Function: GetBasicFlags
+// Purpose: Set basic flags, primarily wxFS_VOL_REMOTE and wxFS_VOL_REMOVABLE.
+// Notes: - Local and mapped drives are mounted by definition. We have no
+// way to determine mounted status of network drives, so assume that
+// all drives are mounted, and let the caller decide otherwise.
+// - Other flags are 'best guess' from type of drive. The system will
+// not report the file attributes with any degree of accuracy.
+//=============================================================================
+static unsigned GetBasicFlags(const wxChar* filename)
+{
+ unsigned flags = wxFS_VOL_MOUNTED;
+
+ return flags;
+} // GetBasicFlags
+
+//=============================================================================
+// Function: FilteredAdd
+// Purpose: Add a file to the list if it meets the filter requirement.
+// Notes: - See GetBasicFlags for remarks about the Mounted flag.
+//=============================================================================
+static bool FilteredAdd(wxArrayString& list, const wxChar* filename,
+ unsigned flagsSet, unsigned flagsUnset)
+{
+ return false;
+} // FilteredAdd
+
+//=============================================================================
+// Function: BuildListFromNN
+// Purpose: Append or remove items from the list
+// Notes: - There is no way to find all disconnected NN items, or even to find
+// all items while determining which are connected and not. So this
+// function will find either all items or connected items.
+//=============================================================================
+static void BuildListFromNN(wxArrayString& list, NETRESOURCE* pResSrc,
+ unsigned flagsSet, unsigned flagsUnset)
+{
+} // BuildListFromNN
+
+//=============================================================================
+// Function: CompareFcn
+// Purpose: Used to sort the NN list alphabetically, case insensitive.
+//=============================================================================
+static int CompareFcn(wxString* first, wxString* second)
+{
+ return wxStricmp(first->c_str(), second->c_str());
+} // CompareFcn
+
+//=============================================================================
+// Function: BuildRemoteList
+// Purpose: Append Network Neighborhood items to the list.
+// Notes: - Mounted gets transalated into Connected. FilteredAdd is told
+// to ignore the Mounted flag since we need to handle it in a weird
+// way manually.
+// - The resulting list is sorted alphabetically.
+//=============================================================================
+static bool BuildRemoteList(wxArrayString& list, NETRESOURCE* pResSrc,
+ unsigned flagsSet, unsigned flagsUnset)
+{
+ return false;
+} // BuildRemoteList
+
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// wxFSVolume
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//=============================================================================
+// Function: GetVolumes
+// Purpose: Generate and return a list of all volumes (drives) available.
+// Notes:
+//=============================================================================
+wxArrayString wxFSVolumeBase::GetVolumes(int flagsSet, int flagsUnset)
+{
+ wxArrayString list;
+
+ return list;
+} // GetVolumes
+
+//=============================================================================
+// Function: CancelSearch
+// Purpose: Instruct an active search to stop.
+// Notes: - This will only sensibly be called by a thread other than the one
+// performing the search. This is the only thread-safe function
+// provided by the class.
+//=============================================================================
+void wxFSVolumeBase::CancelSearch()
+{
+} // CancelSearch
+
+//=============================================================================
+// Function: constructor
+// Purpose: default constructor
+//=============================================================================
+wxFSVolumeBase::wxFSVolumeBase()
+{
+} // wxVolume
+
+//=============================================================================
+// Function: constructor
+// Purpose: constructor that calls Create
+//=============================================================================
+wxFSVolumeBase::wxFSVolumeBase(const wxString& name)
+{
+} // wxVolume
+
+//=============================================================================
+// Function: Create
+// Purpose: Finds, logs in, etc. to the request volume.
+//=============================================================================
+bool wxFSVolumeBase::Create(const wxString& name)
+{
+ return false;
+} // Create
+
+//=============================================================================
+// Function: IsOk
+// Purpose: returns TRUE if the volume is legal.
+// Notes: For fixed disks, it must exist. For removable disks, it must also
+// be present. For Network Shares, it must also be logged in, etc.
+//=============================================================================
+bool wxFSVolumeBase::IsOk() const
+{
+ return false;
+} // IsOk
+
+//=============================================================================
+// Function: GetKind
+// Purpose: Return the type of the volume.
+//=============================================================================
+wxFSVolumeKind wxFSVolumeBase::GetKind() const
+{
+ return wxFS_VOL_OTHER;
+}
+
+//=============================================================================
+// Function: GetFlags
+// Purpose: Return the caches flags for this volume.
+// Notes: - Returns -1 if no flags were cached.
+//=============================================================================
+int wxFSVolumeBase::GetFlags() const
+{
+ return -1;
+} // GetFlags
+
+#endif // wxUSE_BASE
+
+// ============================================================================
+// wxFSVolume
+// ============================================================================
+
+#if wxUSE_GUI
+
+void wxFSVolume::InitIcons()
+{
+}
+
+//=============================================================================
+// Function: GetIcon
+// Purpose: return the requested icon.
+//=============================================================================
+
+wxIcon wxFSVolume::GetIcon(wxFSIconType type) const
+{
+ return m_icons[type];
+} // GetIcon
+
+#endif // wxUSE_GUI
+
+#endif // wxUSE_FSVOLUME
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/palmos/windows.cpp
+// Purpose: wxWindow
+// Author: William Osborne
+// Modified by:
+// Created: 10/13/04
+// RCS-ID: $Id:
+// Copyright: (c) William Osborne
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// declarations
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// headers
+// ---------------------------------------------------------------------------
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma implementation "window.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/window.h"
+ #include "wx/accel.h"
+ #include "wx/setup.h"
+ #include "wx/menu.h"
+ #include "wx/dc.h"
+ #include "wx/dcclient.h"
+ #include "wx/dcmemory.h"
+ #include "wx/utils.h"
+ #include "wx/app.h"
+ #include "wx/layout.h"
+ #include "wx/dialog.h"
+ #include "wx/frame.h"
+ #include "wx/listbox.h"
+ #include "wx/button.h"
+ #include "wx/msgdlg.h"
+ #include "wx/settings.h"
+ #include "wx/statbox.h"
+#endif
+
+#if wxUSE_OWNER_DRAWN && !defined(__WXUNIVERSAL__)
+ #include "wx/ownerdrw.h"
+#endif
+
+#include "wx/module.h"
+
+#if wxUSE_DRAG_AND_DROP
+ #include "wx/dnd.h"
+#endif
+
+#if wxUSE_ACCESSIBILITY
+ #include "wx/access.h"
+#endif
+
+#include "wx/menuitem.h"
+#include "wx/log.h"
+
+#if wxUSE_TOOLTIPS
+ #include "wx/tooltip.h"
+#endif
+
+#if wxUSE_CARET
+ #include "wx/caret.h"
+#endif // wxUSE_CARET
+
+#if wxUSE_SPINCTRL
+ #include "wx/spinctrl.h"
+#endif // wxUSE_SPINCTRL
+
+#include "wx/intl.h"
+#include "wx/log.h"
+
+#include "wx/textctrl.h"
+#include "wx/notebook.h"
+#include "wx/listctrl.h"
+
+#include <string.h>
+
+#include "wx/palmos/window.h"
+
+// ---------------------------------------------------------------------------
+// global variables
+// ---------------------------------------------------------------------------
+
+#if wxUSE_MENUS_NATIVE
+wxMenu *wxCurrentPopupMenu = NULL;
+#endif // wxUSE_MENUS_NATIVE
+
+#ifdef __WXWINCE__
+extern wxChar *wxCanvasClassName;
+#else
+extern const wxChar *wxCanvasClassName;
+#endif
+
+// true if we had already created the std colour map, used by
+// wxGetStdColourMap() and wxWindow::OnSysColourChanged() (FIXME-MT)
+static bool gs_hasStdCmap = false;
+
+// ---------------------------------------------------------------------------
+// private functions
+// ---------------------------------------------------------------------------
+
+// ---------------------------------------------------------------------------
+// event tables
+// ---------------------------------------------------------------------------
+
+// in wxUniv/Palm this class is abstract because it doesn't have DoPopupMenu()
+// method
+#ifdef __WXUNIVERSAL__
+ IMPLEMENT_ABSTRACT_CLASS(wxWindowPalm, wxWindowBase)
+#else // __WXPalm__
+#if wxUSE_EXTENDED_RTTI
+
+// windows that are created from a parent window during its Create method, eg. spin controls in a calendar controls
+// must never been streamed out separately otherwise chaos occurs. Right now easiest is to test for negative ids, as
+// windows with negative ids never can be recreated anyway
+
+bool wxWindowStreamingCallback( const wxObject *object, wxWriter * , wxPersister * , wxxVariantArray & )
+{
+ return false;
+}
+
+IMPLEMENT_DYNAMIC_CLASS_XTI_CALLBACK(wxWindow, wxWindowBase,"wx/window.h", wxWindowStreamingCallback)
+
+// make wxWindowList known before the property is used
+
+wxCOLLECTION_TYPE_INFO( wxWindow* , wxWindowList ) ;
+
+template<> void wxCollectionToVariantArray( wxWindowList const &theList, wxxVariantArray &value)
+{
+ wxListCollectionToVariantArray<wxWindowList::compatibility_iterator>( theList , value ) ;
+}
+
+WX_DEFINE_FLAGS( wxWindowStyle )
+
+wxBEGIN_FLAGS( wxWindowStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+wxEND_FLAGS( wxWindowStyle )
+
+wxBEGIN_PROPERTIES_TABLE(wxWindow)
+ wxEVENT_PROPERTY( Close , wxEVT_CLOSE_WINDOW , wxCloseEvent)
+ wxEVENT_PROPERTY( Create , wxEVT_CREATE , wxWindowCreateEvent )
+ wxEVENT_PROPERTY( Destroy , wxEVT_DESTROY , wxWindowDestroyEvent )
+ // Always constructor Properties first
+
+ wxREADONLY_PROPERTY( Parent,wxWindow*, GetParent, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Id,wxWindowID, SetId, GetId, wxID_ANY, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
+ wxPROPERTY( Position,wxPoint, SetPosition , GetPosition, wxDefaultPosition , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // pos
+ wxPROPERTY( Size,wxSize, SetSize, GetSize, wxDefaultSize , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // size
+ wxPROPERTY( WindowStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+
+ // Then all relations of the object graph
+
+ wxREADONLY_PROPERTY_COLLECTION( Children , wxWindowList , wxWindowBase* , GetWindowChildren , wxPROP_OBJECT_GRAPH /*flags*/ , wxT("Helpstring") , wxT("group"))
+
+ // and finally all other properties
+
+ wxPROPERTY( ExtraStyle , long , SetExtraStyle , GetExtraStyle , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // extstyle
+ wxPROPERTY( BackgroundColour , wxColour , SetBackgroundColour , GetBackgroundColour , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // bg
+ wxPROPERTY( ForegroundColour , wxColour , SetForegroundColour , GetForegroundColour , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // fg
+ wxPROPERTY( Enabled , bool , Enable , IsEnabled , wxxVariant((bool)true) , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Shown , bool , Show , IsShown , wxxVariant((bool)true) , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+#if 0
+ // possible property candidates (not in xrc) or not valid in all subclasses
+ wxPROPERTY( Title,wxString, SetTitle, GetTitle, wxT("") )
+ wxPROPERTY( Font , wxFont , SetFont , GetWindowFont , )
+ wxPROPERTY( Label,wxString, SetLabel, GetLabel, wxT("") )
+ // MaxHeight, Width , MinHeight , Width
+ // TODO switch label to control and title to toplevels
+
+ wxPROPERTY( ThemeEnabled , bool , SetThemeEnabled , GetThemeEnabled , )
+ //wxPROPERTY( Cursor , wxCursor , SetCursor , GetCursor , )
+ // wxPROPERTY( ToolTip , wxString , SetToolTip , GetToolTipText , )
+ wxPROPERTY( AutoLayout , bool , SetAutoLayout , GetAutoLayout , )
+
+
+
+#endif
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxWindow)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_DUMMY(wxWindow)
+
+#else
+ IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxWindowBase)
+#endif
+#endif // __WXUNIVERSAL__/__WXPalm__
+
+BEGIN_EVENT_TABLE(wxWindowPalm, wxWindowBase)
+ EVT_ERASE_BACKGROUND(wxWindowPalm::OnEraseBackground)
+ EVT_SYS_COLOUR_CHANGED(wxWindowPalm::OnSysColourChanged)
+ EVT_INIT_DIALOG(wxWindowPalm::OnInitDialog)
+END_EVENT_TABLE()
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// wxWindow utility functions
+// ---------------------------------------------------------------------------
+
+// Find an item given the MS Windows id
+wxWindow *wxWindowPalm::FindItem(long id) const
+{
+ return NULL;
+}
+
+// Find an item given the MS Windows handle
+wxWindow *wxWindowPalm::FindItemByHWND(WXHWND hWnd, bool controlOnly) const
+{
+ return NULL;
+}
+
+// Default command handler
+bool wxWindowPalm::PalmCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id))
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// constructors and such
+// ----------------------------------------------------------------------------
+
+void wxWindowPalm::Init()
+{
+}
+
+// Destructor
+wxWindowPalm::~wxWindowPalm()
+{
+}
+
+// real construction (Init() must have been called before!)
+bool wxWindowPalm::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ return false;
+}
+
+FormType *wxWindowPalm::GetFormPtr()
+{
+ return FrameForm;
+}
+void wxWindowPalm::SetFormPtr(FormType *FormPtr)
+{
+ FrameForm=FormPtr;
+}
+
+// ---------------------------------------------------------------------------
+// basic operations
+// ---------------------------------------------------------------------------
+
+void wxWindowPalm::SetFocus()
+{
+}
+
+void wxWindowPalm::SetFocusFromKbd()
+{
+}
+
+// Get the window with the focus
+wxWindow *wxWindowBase::DoFindFocus()
+{
+ return NULL;
+}
+
+bool wxWindowPalm::Enable(bool enable)
+{
+ return false;
+}
+
+bool wxWindowPalm::Show(bool show)
+{
+ return false;
+}
+
+// Raise the window to the top of the Z order
+void wxWindowPalm::Raise()
+{
+}
+
+// Lower the window to the bottom of the Z order
+void wxWindowPalm::Lower()
+{
+}
+
+void wxWindowPalm::SetTitle( const wxString& title)
+{
+}
+
+wxString wxWindowPalm::GetTitle() const
+{
+ return wxString("");
+}
+
+void wxWindowPalm::DoCaptureMouse()
+{
+}
+
+void wxWindowPalm::DoReleaseMouse()
+{
+}
+
+/* static */ wxWindow *wxWindowBase::GetCapture()
+{
+ return NULL;
+}
+
+bool wxWindowPalm::SetFont(const wxFont& font)
+{
+ return false;
+}
+bool wxWindowPalm::SetCursor(const wxCursor& cursor)
+{
+ return false;
+}
+
+void wxWindowPalm::WarpPointer (int x, int y)
+{
+}
+
+// ---------------------------------------------------------------------------
+// scrolling stuff
+// ---------------------------------------------------------------------------
+
+// convert wxHORIZONTAL/wxVERTICAL to SB_HORZ/SB_VERT
+static inline int wxDirToWinStyle(int orient)
+{
+ return 0;
+}
+
+int wxWindowPalm::GetScrollPos(int orient) const
+{
+ return 0;
+}
+
+// This now returns the whole range, not just the number
+// of positions that we can scroll.
+int wxWindowPalm::GetScrollRange(int orient) const
+{
+ return 0;
+}
+
+int wxWindowPalm::GetScrollThumb(int orient) const
+{
+ return 0;
+}
+
+void wxWindowPalm::SetScrollPos(int orient, int pos, bool refresh)
+{
+}
+
+// New function that will replace some of the above.
+void wxWindowPalm::SetScrollbar(int orient,
+ int pos,
+ int pageSize,
+ int range,
+ bool refresh)
+{
+}
+
+void wxWindowPalm::ScrollWindow(int dx, int dy, const wxRect *prect)
+{
+}
+
+bool wxWindowPalm::ScrollLines(int lines)
+{
+ return false;
+}
+
+bool wxWindowPalm::ScrollPages(int pages)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// subclassing
+// ---------------------------------------------------------------------------
+
+void wxWindowPalm::SubclassWin(WXHWND hWnd)
+{
+}
+
+void wxWindowPalm::UnsubclassWin()
+{
+}
+
+bool wxCheckWindowWndProc(WXHWND hWnd, WXFARPROC wndProc)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// Style handling
+// ----------------------------------------------------------------------------
+
+void wxWindowPalm::SetWindowStyleFlag(long flags)
+{
+}
+
+WXDWORD wxWindowPalm::PalmGetStyle(long flags, WXDWORD *exstyle) const
+{
+ return 0;
+}
+
+// Setup background and foreground colours correctly
+void wxWindowPalm::SetupColours()
+{
+}
+
+bool wxWindowPalm::IsMouseInWindow() const
+{
+ return false;
+}
+
+void wxWindowPalm::OnInternalIdle()
+{
+}
+
+// Set this window to be the child of 'parent'.
+bool wxWindowPalm::Reparent(wxWindowBase *parent)
+{
+ return false;
+}
+
+void wxWindowPalm::Freeze()
+{
+}
+
+void wxWindowPalm::Thaw()
+{
+}
+
+void wxWindowPalm::Refresh(bool eraseBack, const wxRect *rect)
+{
+}
+
+void wxWindowPalm::Update()
+{
+}
+
+// ---------------------------------------------------------------------------
+// drag and drop
+// ---------------------------------------------------------------------------
+
+
+#if wxUSE_DRAG_AND_DROP
+void wxWindowPalm::SetDropTarget(wxDropTarget *pDropTarget)
+{
+}
+#endif // wxUSE_DRAG_AND_DROP
+
+// old style file-manager drag&drop support: we retain the old-style
+// DragAcceptFiles in parallel with SetDropTarget.
+void wxWindowPalm::DragAcceptFiles(bool accept)
+{
+}
+
+// ----------------------------------------------------------------------------
+// tooltips
+// ----------------------------------------------------------------------------
+
+#if wxUSE_TOOLTIPS
+
+void wxWindowPalm::DoSetToolTip(wxToolTip *tooltip)
+{
+}
+
+#endif // wxUSE_TOOLTIPS
+
+// ---------------------------------------------------------------------------
+// moving and resizing
+// ---------------------------------------------------------------------------
+
+// Get total size
+void wxWindowPalm::DoGetSize(int *x, int *y) const
+{
+}
+
+// Get size *available for subwindows* i.e. excluding menu bar etc.
+void wxWindowPalm::DoGetClientSize(int *x, int *y) const
+{
+}
+
+void wxWindowPalm::DoGetPosition(int *x, int *y) const
+{
+}
+
+void wxWindowPalm::DoScreenToClient(int *x, int *y) const
+{
+}
+
+void wxWindowPalm::DoClientToScreen(int *x, int *y) const
+{
+}
+
+void wxWindowPalm::DoMoveWindow(int x, int y, int width, int height)
+{
+}
+
+// set the size of the window: if the dimensions are positive, just use them,
+// but if any of them is equal to -1, it means that we must find the value for
+// it ourselves (unless sizeFlags contains wxSIZE_ALLOW_MINUS_ONE flag, in
+// which case -1 is a valid value for x and y)
+//
+// If sizeFlags contains wxSIZE_AUTO_WIDTH/HEIGHT flags (default), we calculate
+// the width/height to best suit our contents, otherwise we reuse the current
+// width/height
+void wxWindowPalm::DoSetSize(int x, int y, int width, int height, int sizeFlags)
+{
+}
+
+void wxWindowPalm::DoSetClientSize(int width, int height)
+{
+}
+
+// For implementation purposes - sometimes decorations make the client area
+// smaller
+wxPoint wxWindowPalm::GetClientAreaOrigin() const
+{
+ return wxPoint(0, 0);
+}
+
+// ---------------------------------------------------------------------------
+// text metrics
+// ---------------------------------------------------------------------------
+
+int wxWindowPalm::GetCharHeight() const
+{
+ return 0;
+}
+
+int wxWindowPalm::GetCharWidth() const
+{
+ return 0;
+}
+
+void wxWindowPalm::GetTextExtent(const wxString& string,
+ int *x, int *y,
+ int *descent, int *externalLeading,
+ const wxFont *theFont) const
+{
+}
+
+// ---------------------------------------------------------------------------
+// popup menu
+// ---------------------------------------------------------------------------
+
+#if wxUSE_MENUS_NATIVE
+
+// yield for WM_COMMAND events only, i.e. process all WM_COMMANDs in the queue
+// immediately, without waiting for the next event loop iteration
+//
+// NB: this function should probably be made public later as it can almost
+// surely replace wxYield() elsewhere as well
+static void wxYieldForCommandsOnly()
+{
+}
+
+bool wxWindowPalm::DoPopupMenu(wxMenu *menu, int x, int y)
+{
+ return false;
+}
+
+#endif // wxUSE_MENUS_NATIVE
+
+// ===========================================================================
+// pre/post message processing
+// ===========================================================================
+
+WXLRESULT wxWindowPalm::PalmDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return false;
+}
+
+bool wxWindowPalm::PalmProcessMessage(WXMSG* pMsg)
+{
+ return false;
+}
+
+bool wxWindowPalm::PalmTranslateMessage(WXMSG* pMsg)
+{
+ return false;
+}
+
+bool wxWindowPalm::PalmShouldPreProcessMessage(WXMSG* WXUNUSED(pMsg))
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// Main wxWidgets window proc and the window proc for wxWindow
+// ---------------------------------------------------------------------------
+
+// Hook for new window just as it's being created, when the window isn't yet
+// associated with the handle
+
+// implementation of wxWindowCreationHook class: it just sets gs_winBeingCreated to the
+// window being created and insures that it's always unset back later
+wxWindowCreationHook::wxWindowCreationHook(wxWindowPalm *winBeingCreated)
+{
+}
+
+wxWindowCreationHook::~wxWindowCreationHook()
+{
+}
+
+WXLRESULT wxWindowPalm::PalmWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// wxWindow <-> HWND map
+// ----------------------------------------------------------------------------
+
+wxWinHashTable *wxWinHandleHash = NULL;
+
+wxWindow *wxFindWinFromHandle(WXHWND hWnd)
+{
+ return NULL;
+}
+
+void wxRemoveHandleAssociation(wxWindowPalm *win)
+{
+}
+
+// ----------------------------------------------------------------------------
+// various Palm speciic class dependent functions
+// ----------------------------------------------------------------------------
+
+// Default destroyer - override if you destroy it in some other way
+// (e.g. with MDI child windows)
+void wxWindowPalm::PalmDestroyWindow()
+{
+}
+
+bool wxWindowPalm::PalmGetCreateWindowCoords(const wxPoint& pos,
+ const wxSize& size,
+ int& x, int& y,
+ int& w, int& h) const
+{
+ return false;
+}
+
+WXHWND wxWindowPalm::PalmGetParent() const
+{
+ return NULL;
+}
+
+bool wxWindowPalm::PalmCreate(const wxChar *wclass,
+ const wxChar *title,
+ const wxPoint& pos,
+ const wxSize& size,
+ WXDWORD style,
+ WXDWORD extendedStyle)
+{
+ return false;
+}
+
+// ===========================================================================
+// Palm message handlers
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// WM_NOTIFY
+// ---------------------------------------------------------------------------
+
+#ifdef __WIN95__
+
+bool wxWindowPalm::HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
+{
+ return false;
+}
+
+#if wxUSE_TOOLTIPS
+
+bool wxWindowPalm::HandleTooltipNotify(WXUINT code,
+ WXLPARAM lParam,
+ const wxString& ttip)
+{
+ return false;
+}
+
+#endif // wxUSE_TOOLTIPS
+
+bool wxWindowPalm::PalmOnNotify(int WXUNUSED(idCtrl),
+ WXLPARAM lParam,
+ WXLPARAM* WXUNUSED(result))
+{
+ return false;
+}
+
+#endif // __WIN95__
+
+// ---------------------------------------------------------------------------
+// end session messages
+// ---------------------------------------------------------------------------
+
+bool wxWindowPalm::HandleQueryEndSession(long logOff, bool *mayEnd)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleEndSession(bool endSession, long logOff)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// window creation/destruction
+// ---------------------------------------------------------------------------
+
+bool wxWindowPalm::HandleCreate(WXLPCREATESTRUCT cs, bool *mayCreate)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleDestroy()
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// activation/focus
+// ---------------------------------------------------------------------------
+
+bool wxWindowPalm::HandleActivate(int state,
+ bool WXUNUSED(minimized),
+ WXHWND WXUNUSED(activate))
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleSetFocus(WXHWND hwnd)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleKillFocus(WXHWND hwnd)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// miscellaneous
+// ---------------------------------------------------------------------------
+
+bool wxWindowPalm::HandleShow(bool show, int WXUNUSED(status))
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleInitDialog(WXHWND WXUNUSED(hWndFocus))
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleDropFiles(WXWPARAM wParam)
+{
+ return false;
+}
+
+
+bool wxWindowPalm::HandleSetCursor(WXHWND WXUNUSED(hWnd),
+ short nHitTest,
+ int WXUNUSED(mouseMsg))
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// owner drawn stuff
+// ---------------------------------------------------------------------------
+
+#if (wxUSE_OWNER_DRAWN && wxUSE_MENUS_NATIVE) || \
+ (wxUSE_CONTROLS && !defined(__WXUNIVERSAL__))
+ #define WXUNUSED_UNLESS_ODRAWN(param) param
+#else
+ #define WXUNUSED_UNLESS_ODRAWN(param)
+#endif
+
+bool
+wxWindowPalm::PalmOnDrawItem(int WXUNUSED_UNLESS_ODRAWN(id),
+ WXDRAWITEMSTRUCT * WXUNUSED_UNLESS_ODRAWN(itemStruct))
+{
+ return false;
+}
+
+bool
+wxWindowPalm::PalmOnMeasureItem(int WXUNUSED_UNLESS_ODRAWN(id),
+ WXMEASUREITEMSTRUCT *
+ WXUNUSED_UNLESS_ODRAWN(itemStruct))
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// colours and palettes
+// ---------------------------------------------------------------------------
+
+bool wxWindowPalm::HandleSysColorChange()
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleDisplayChange()
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleCtlColor(WXHBRUSH *brush,
+ WXHDC pDC,
+ WXHWND pWnd,
+ WXUINT nCtlColor,
+ WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam)
+{
+ return false;
+}
+
+// Define for each class of dialog and control
+WXHBRUSH wxWindowPalm::OnCtlColor(WXHDC WXUNUSED(hDC),
+ WXHWND WXUNUSED(hWnd),
+ WXUINT WXUNUSED(nCtlColor),
+ WXUINT WXUNUSED(message),
+ WXWPARAM WXUNUSED(wParam),
+ WXLPARAM WXUNUSED(lParam))
+{
+ return (WXHBRUSH)0;
+}
+
+bool wxWindowPalm::HandlePaletteChanged(WXHWND hWndPalChange)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleCaptureChanged(WXHWND hWndGainedCapture)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleQueryNewPalette()
+{
+ return false;
+}
+
+// Responds to colour changes: passes event on to children.
+void wxWindowPalm::OnSysColourChanged(wxSysColourChangedEvent& WXUNUSED(event))
+{
+}
+
+// ---------------------------------------------------------------------------
+// painting
+// ---------------------------------------------------------------------------
+
+bool wxWindowPalm::HandlePaint()
+{
+ return false;
+}
+
+// Can be called from an application's OnPaint handler
+void wxWindowPalm::OnPaint(wxPaintEvent& event)
+{
+}
+
+bool wxWindowPalm::HandleEraseBkgnd(WXHDC hdc)
+{
+ return false;
+}
+
+void wxWindowPalm::OnEraseBackground(wxEraseEvent& event)
+{
+}
+
+// ---------------------------------------------------------------------------
+// moving and resizing
+// ---------------------------------------------------------------------------
+
+bool wxWindowPalm::HandleMinimize()
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleMaximize()
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleMove(int x, int y)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleMoving(wxRect& rect)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleSize(int WXUNUSED(w), int WXUNUSED(h),
+ WXUINT WXUNUSED(flag))
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleSizing(wxRect& rect)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleGetMinMaxInfo(void *mmInfo)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// command messages
+// ---------------------------------------------------------------------------
+
+bool wxWindowPalm::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// mouse events
+// ---------------------------------------------------------------------------
+
+void wxWindowPalm::InitMouseEvent(wxMouseEvent& event,
+ int x, int y,
+ WXUINT flags)
+{
+}
+
+// Windows doesn't send the mouse events to the static controls (which are
+// transparent in the sense that their WM_NCHITTEST handler returns
+// HTTRANSPARENT) at all but we want all controls to receive the mouse events
+// and so we manually check if we don't have a child window under mouse and if
+// we do, send the event to it instead of the window Windows had sent WM_XXX
+// to.
+//
+// Notice that this is not done for the mouse move events because this could
+// (would?) be too slow, but only for clicks which means that the static texts
+// still don't get move, enter nor leave events.
+static wxWindowPalm *FindWindowForMouseEvent(wxWindowPalm *win, int *x, int *y) //TW:REQ:Univ
+{
+ return NULL;
+}
+
+bool wxWindowPalm::HandleMouseEvent(WXUINT msg, int x, int y, WXUINT flags)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleMouseMove(int x, int y, WXUINT flags)
+{
+ return false;
+}
+
+
+bool wxWindowPalm::HandleMouseWheel(WXWPARAM wParam, WXLPARAM lParam)
+{
+ return false;
+}
+
+
+// ---------------------------------------------------------------------------
+// keyboard handling
+// ---------------------------------------------------------------------------
+
+// create the key event of the given type for the given key - used by
+// HandleChar and HandleKeyDown/Up
+wxKeyEvent wxWindowPalm::CreateKeyEvent(wxEventType evType,
+ int id,
+ WXLPARAM lParam,
+ WXWPARAM wParam) const
+{
+ wxKeyEvent event(evType);
+
+ return event;
+}
+
+// isASCII is true only when we're called from WM_CHAR handler and not from
+// WM_KEYDOWN one
+bool wxWindowPalm::HandleChar(WXWPARAM wParam, WXLPARAM lParam, bool isASCII)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleKeyDown(WXWPARAM wParam, WXLPARAM lParam)
+{
+ return false;
+}
+
+bool wxWindowPalm::HandleKeyUp(WXWPARAM wParam, WXLPARAM lParam)
+{
+ return false;
+}
+
+int wxWindowPalm::HandleMenuChar(int chAccel, WXLPARAM lParam)
+{
+ return 0;
+}
+
+// ---------------------------------------------------------------------------
+// joystick
+// ---------------------------------------------------------------------------
+
+bool wxWindowPalm::HandleJoystickEvent(WXUINT msg, int x, int y, WXUINT flags)
+{
+ return false;
+}
+
+// ---------------------------------------------------------------------------
+// scrolling
+// ---------------------------------------------------------------------------
+
+bool wxWindowPalm::PalmOnScroll(int orientation, WXWORD wParam,
+ WXWORD pos, WXHWND control)
+{
+ return false;
+}
+
+// ===========================================================================
+// global functions
+// ===========================================================================
+
+void wxGetCharSize(WXHWND wnd, int *x, int *y, const wxFont *the_font)
+{
+}
+
+// Returns 0 if was a normal ASCII value, not a special key. This indicates that
+// the key should be ignored by WM_KEYDOWN and processed by WM_CHAR instead.
+int wxCharCodePalmToWX(int keySym, WXLPARAM lParam)
+{
+ return 0;
+}
+
+int wxCharCodeWXToPalm(int id, bool *isVirtual)
+{
+ return 0;
+}
+
+bool wxGetKeyState(wxKeyCode key)
+{
+ return false;
+}
+
+wxWindow *wxGetActiveWindow()
+{
+ return NULL;
+}
+
+extern wxWindow *wxGetWindowFromHWND(WXHWND hWnd)
+{
+ return NULL;
+}
+
+#if !defined(__WXMICROWIN__) && !defined(__WXWINCE__)
+
+void wxSetKeyboardHook(bool doIt)
+{
+}
+
+#endif // !__WXMICROWIN__
+
+#ifdef __WXDEBUG__
+const char *wxGetMessageName(int message)
+{
+ return "";
+}
+#endif //__WXDEBUG__
+
+// Find the wxWindow at the current mouse position, returning the mouse
+// position.
+wxWindow* wxFindWindowAtPointer(wxPoint& pt)
+{
+ return NULL;
+}
+
+wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
+{
+ return NULL;
+}
+
+// Get the current mouse position.
+wxPoint wxGetMousePosition()
+{
+ return wxPoint(0, 0);
+}
+
+#if wxUSE_HOTKEY
+
+bool wxWindowPalm::RegisterHotKey(int hotkeyId, int modifiers, int keycode)
+{
+ return false;
+}
+
+bool wxWindowPalm::UnregisterHotKey(int hotkeyId)
+{
+ return false;
+}
+
+#if wxUSE_ACCEL
+
+bool wxWindowPalm::HandleHotKey(WXWPARAM wParam, WXLPARAM lParam)
+{
+ return false;
+}
+
+#endif // wxUSE_ACCEL
+
+#endif // wxUSE_HOTKEY
+
+