# This file was created automatically by SWIG.
# Don't modify this file, modify the SWIG interface instead.

import _core

#// Give a reference to the dictionary of this module to the C++ extension
#// code.
_core._wxPySetDictionary(vars())

#// A little trick to make 'wx' be a reference to this module so wx.Names can
#// be used here.
import sys as _sys
wx = _sys.modules[__name__]

NOT_FOUND = _core.NOT_FOUND
VSCROLL = _core.VSCROLL
HSCROLL = _core.HSCROLL
CAPTION = _core.CAPTION
DOUBLE_BORDER = _core.DOUBLE_BORDER
SUNKEN_BORDER = _core.SUNKEN_BORDER
RAISED_BORDER = _core.RAISED_BORDER
BORDER = _core.BORDER
SIMPLE_BORDER = _core.SIMPLE_BORDER
STATIC_BORDER = _core.STATIC_BORDER
TRANSPARENT_WINDOW = _core.TRANSPARENT_WINDOW
NO_BORDER = _core.NO_BORDER
USER_COLOURS = _core.USER_COLOURS
NO_3D = _core.NO_3D
TAB_TRAVERSAL = _core.TAB_TRAVERSAL
WANTS_CHARS = _core.WANTS_CHARS
POPUP_WINDOW = _core.POPUP_WINDOW
CENTER_FRAME = _core.CENTER_FRAME
CENTRE_ON_SCREEN = _core.CENTRE_ON_SCREEN
CENTER_ON_SCREEN = _core.CENTER_ON_SCREEN
STAY_ON_TOP = _core.STAY_ON_TOP
ICONIZE = _core.ICONIZE
MINIMIZE = _core.MINIMIZE
MAXIMIZE = _core.MAXIMIZE
CLOSE_BOX = _core.CLOSE_BOX
THICK_FRAME = _core.THICK_FRAME
SYSTEM_MENU = _core.SYSTEM_MENU
MINIMIZE_BOX = _core.MINIMIZE_BOX
MAXIMIZE_BOX = _core.MAXIMIZE_BOX
TINY_CAPTION_HORIZ = _core.TINY_CAPTION_HORIZ
TINY_CAPTION_VERT = _core.TINY_CAPTION_VERT
RESIZE_BOX = _core.RESIZE_BOX
RESIZE_BORDER = _core.RESIZE_BORDER
DIALOG_MODAL = _core.DIALOG_MODAL
DIALOG_MODELESS = _core.DIALOG_MODELESS
DIALOG_NO_PARENT = _core.DIALOG_NO_PARENT
DEFAULT_FRAME_STYLE = _core.DEFAULT_FRAME_STYLE
DEFAULT_DIALOG_STYLE = _core.DEFAULT_DIALOG_STYLE
FRAME_TOOL_WINDOW = _core.FRAME_TOOL_WINDOW
FRAME_FLOAT_ON_PARENT = _core.FRAME_FLOAT_ON_PARENT
FRAME_NO_WINDOW_MENU = _core.FRAME_NO_WINDOW_MENU
FRAME_NO_TASKBAR = _core.FRAME_NO_TASKBAR
FRAME_SHAPED = _core.FRAME_SHAPED
ED_CLIENT_MARGIN = _core.ED_CLIENT_MARGIN
ED_BUTTONS_BOTTOM = _core.ED_BUTTONS_BOTTOM
ED_BUTTONS_RIGHT = _core.ED_BUTTONS_RIGHT
ED_STATIC_LINE = _core.ED_STATIC_LINE
EXT_DIALOG_STYLE = _core.EXT_DIALOG_STYLE
CLIP_CHILDREN = _core.CLIP_CHILDREN
CLIP_SIBLINGS = _core.CLIP_SIBLINGS
RETAINED = _core.RETAINED
BACKINGSTORE = _core.BACKINGSTORE
COLOURED = _core.COLOURED
FIXED_LENGTH = _core.FIXED_LENGTH
LB_NEEDED_SB = _core.LB_NEEDED_SB
LB_ALWAYS_SB = _core.LB_ALWAYS_SB
LB_SORT = _core.LB_SORT
LB_SINGLE = _core.LB_SINGLE
LB_MULTIPLE = _core.LB_MULTIPLE
LB_EXTENDED = _core.LB_EXTENDED
LB_OWNERDRAW = _core.LB_OWNERDRAW
LB_HSCROLL = _core.LB_HSCROLL
PROCESS_ENTER = _core.PROCESS_ENTER
PASSWORD = _core.PASSWORD
CB_SIMPLE = _core.CB_SIMPLE
CB_DROPDOWN = _core.CB_DROPDOWN
CB_SORT = _core.CB_SORT
CB_READONLY = _core.CB_READONLY
RA_HORIZONTAL = _core.RA_HORIZONTAL
RA_VERTICAL = _core.RA_VERTICAL
RA_SPECIFY_ROWS = _core.RA_SPECIFY_ROWS
RA_SPECIFY_COLS = _core.RA_SPECIFY_COLS
RB_GROUP = _core.RB_GROUP
RB_SINGLE = _core.RB_SINGLE
SL_HORIZONTAL = _core.SL_HORIZONTAL
SL_VERTICAL = _core.SL_VERTICAL
SL_AUTOTICKS = _core.SL_AUTOTICKS
SL_LABELS = _core.SL_LABELS
SL_LEFT = _core.SL_LEFT
SL_TOP = _core.SL_TOP
SL_RIGHT = _core.SL_RIGHT
SL_BOTTOM = _core.SL_BOTTOM
SL_BOTH = _core.SL_BOTH
SL_SELRANGE = _core.SL_SELRANGE
SB_HORIZONTAL = _core.SB_HORIZONTAL
SB_VERTICAL = _core.SB_VERTICAL
ST_SIZEGRIP = _core.ST_SIZEGRIP
ST_NO_AUTORESIZE = _core.ST_NO_AUTORESIZE
FLOOD_SURFACE = _core.FLOOD_SURFACE
FLOOD_BORDER = _core.FLOOD_BORDER
ODDEVEN_RULE = _core.ODDEVEN_RULE
WINDING_RULE = _core.WINDING_RULE
TOOL_TOP = _core.TOOL_TOP
TOOL_BOTTOM = _core.TOOL_BOTTOM
TOOL_LEFT = _core.TOOL_LEFT
TOOL_RIGHT = _core.TOOL_RIGHT
OK = _core.OK
YES_NO = _core.YES_NO
CANCEL = _core.CANCEL
YES = _core.YES
NO = _core.NO
NO_DEFAULT = _core.NO_DEFAULT
YES_DEFAULT = _core.YES_DEFAULT
ICON_EXCLAMATION = _core.ICON_EXCLAMATION
ICON_HAND = _core.ICON_HAND
ICON_QUESTION = _core.ICON_QUESTION
ICON_INFORMATION = _core.ICON_INFORMATION
ICON_STOP = _core.ICON_STOP
ICON_ASTERISK = _core.ICON_ASTERISK
ICON_MASK = _core.ICON_MASK
ICON_WARNING = _core.ICON_WARNING
ICON_ERROR = _core.ICON_ERROR
FORWARD = _core.FORWARD
BACKWARD = _core.BACKWARD
RESET = _core.RESET
HELP = _core.HELP
MORE = _core.MORE
SETUP = _core.SETUP
SIZE_AUTO_WIDTH = _core.SIZE_AUTO_WIDTH
SIZE_AUTO_HEIGHT = _core.SIZE_AUTO_HEIGHT
SIZE_AUTO = _core.SIZE_AUTO
SIZE_USE_EXISTING = _core.SIZE_USE_EXISTING
SIZE_ALLOW_MINUS_ONE = _core.SIZE_ALLOW_MINUS_ONE
PORTRAIT = _core.PORTRAIT
LANDSCAPE = _core.LANDSCAPE
PRINT_QUALITY_HIGH = _core.PRINT_QUALITY_HIGH
PRINT_QUALITY_MEDIUM = _core.PRINT_QUALITY_MEDIUM
PRINT_QUALITY_LOW = _core.PRINT_QUALITY_LOW
PRINT_QUALITY_DRAFT = _core.PRINT_QUALITY_DRAFT
ID_ANY = _core.ID_ANY
ID_SEPARATOR = _core.ID_SEPARATOR
ID_LOWEST = _core.ID_LOWEST
ID_OPEN = _core.ID_OPEN
ID_CLOSE = _core.ID_CLOSE
ID_NEW = _core.ID_NEW
ID_SAVE = _core.ID_SAVE
ID_SAVEAS = _core.ID_SAVEAS
ID_REVERT = _core.ID_REVERT
ID_EXIT = _core.ID_EXIT
ID_UNDO = _core.ID_UNDO
ID_REDO = _core.ID_REDO
ID_HELP = _core.ID_HELP
ID_PRINT = _core.ID_PRINT
ID_PRINT_SETUP = _core.ID_PRINT_SETUP
ID_PREVIEW = _core.ID_PREVIEW
ID_ABOUT = _core.ID_ABOUT
ID_HELP_CONTENTS = _core.ID_HELP_CONTENTS
ID_HELP_COMMANDS = _core.ID_HELP_COMMANDS
ID_HELP_PROCEDURES = _core.ID_HELP_PROCEDURES
ID_HELP_CONTEXT = _core.ID_HELP_CONTEXT
ID_CLOSE_ALL = _core.ID_CLOSE_ALL
ID_PREFERENCES = _core.ID_PREFERENCES
ID_CUT = _core.ID_CUT
ID_COPY = _core.ID_COPY
ID_PASTE = _core.ID_PASTE
ID_CLEAR = _core.ID_CLEAR
ID_FIND = _core.ID_FIND
ID_DUPLICATE = _core.ID_DUPLICATE
ID_SELECTALL = _core.ID_SELECTALL
ID_DELETE = _core.ID_DELETE
ID_REPLACE = _core.ID_REPLACE
ID_REPLACE_ALL = _core.ID_REPLACE_ALL
ID_PROPERTIES = _core.ID_PROPERTIES
ID_VIEW_DETAILS = _core.ID_VIEW_DETAILS
ID_VIEW_LARGEICONS = _core.ID_VIEW_LARGEICONS
ID_VIEW_SMALLICONS = _core.ID_VIEW_SMALLICONS
ID_VIEW_LIST = _core.ID_VIEW_LIST
ID_VIEW_SORTDATE = _core.ID_VIEW_SORTDATE
ID_VIEW_SORTNAME = _core.ID_VIEW_SORTNAME
ID_VIEW_SORTSIZE = _core.ID_VIEW_SORTSIZE
ID_VIEW_SORTTYPE = _core.ID_VIEW_SORTTYPE
ID_FILE1 = _core.ID_FILE1
ID_FILE2 = _core.ID_FILE2
ID_FILE3 = _core.ID_FILE3
ID_FILE4 = _core.ID_FILE4
ID_FILE5 = _core.ID_FILE5
ID_FILE6 = _core.ID_FILE6
ID_FILE7 = _core.ID_FILE7
ID_FILE8 = _core.ID_FILE8
ID_FILE9 = _core.ID_FILE9
ID_OK = _core.ID_OK
ID_CANCEL = _core.ID_CANCEL
ID_APPLY = _core.ID_APPLY
ID_YES = _core.ID_YES
ID_NO = _core.ID_NO
ID_STATIC = _core.ID_STATIC
ID_FORWARD = _core.ID_FORWARD
ID_BACKWARD = _core.ID_BACKWARD
ID_DEFAULT = _core.ID_DEFAULT
ID_MORE = _core.ID_MORE
ID_SETUP = _core.ID_SETUP
ID_RESET = _core.ID_RESET
ID_CONTEXT_HELP = _core.ID_CONTEXT_HELP
ID_YESTOALL = _core.ID_YESTOALL
ID_NOTOALL = _core.ID_NOTOALL
ID_ABORT = _core.ID_ABORT
ID_RETRY = _core.ID_RETRY
ID_IGNORE = _core.ID_IGNORE
ID_HIGHEST = _core.ID_HIGHEST
OPEN = _core.OPEN
SAVE = _core.SAVE
HIDE_READONLY = _core.HIDE_READONLY
OVERWRITE_PROMPT = _core.OVERWRITE_PROMPT
FILE_MUST_EXIST = _core.FILE_MUST_EXIST
MULTIPLE = _core.MULTIPLE
CHANGE_DIR = _core.CHANGE_DIR
ACCEL_ALT = _core.ACCEL_ALT
ACCEL_CTRL = _core.ACCEL_CTRL
ACCEL_SHIFT = _core.ACCEL_SHIFT
ACCEL_NORMAL = _core.ACCEL_NORMAL
PD_AUTO_HIDE = _core.PD_AUTO_HIDE
PD_APP_MODAL = _core.PD_APP_MODAL
PD_CAN_ABORT = _core.PD_CAN_ABORT
PD_ELAPSED_TIME = _core.PD_ELAPSED_TIME
PD_ESTIMATED_TIME = _core.PD_ESTIMATED_TIME
PD_REMAINING_TIME = _core.PD_REMAINING_TIME
DD_NEW_DIR_BUTTON = _core.DD_NEW_DIR_BUTTON
DD_DEFAULT_STYLE = _core.DD_DEFAULT_STYLE
MENU_TEAROFF = _core.MENU_TEAROFF
MB_DOCKABLE = _core.MB_DOCKABLE
NO_FULL_REPAINT_ON_RESIZE = _core.NO_FULL_REPAINT_ON_RESIZE
LI_HORIZONTAL = _core.LI_HORIZONTAL
LI_VERTICAL = _core.LI_VERTICAL
WS_EX_VALIDATE_RECURSIVELY = _core.WS_EX_VALIDATE_RECURSIVELY
WS_EX_BLOCK_EVENTS = _core.WS_EX_BLOCK_EVENTS
WS_EX_TRANSIENT = _core.WS_EX_TRANSIENT
WS_EX_THEMED_BACKGROUND = _core.WS_EX_THEMED_BACKGROUND
WS_EX_PROCESS_IDLE = _core.WS_EX_PROCESS_IDLE
WS_EX_PROCESS_UI_UPDATES = _core.WS_EX_PROCESS_UI_UPDATES
MM_TEXT = _core.MM_TEXT
MM_LOMETRIC = _core.MM_LOMETRIC
MM_HIMETRIC = _core.MM_HIMETRIC
MM_LOENGLISH = _core.MM_LOENGLISH
MM_HIENGLISH = _core.MM_HIENGLISH
MM_TWIPS = _core.MM_TWIPS
MM_ISOTROPIC = _core.MM_ISOTROPIC
MM_ANISOTROPIC = _core.MM_ANISOTROPIC
MM_POINTS = _core.MM_POINTS
MM_METRIC = _core.MM_METRIC
CENTRE = _core.CENTRE
CENTER = _core.CENTER
HORIZONTAL = _core.HORIZONTAL
VERTICAL = _core.VERTICAL
BOTH = _core.BOTH
LEFT = _core.LEFT
RIGHT = _core.RIGHT
UP = _core.UP
DOWN = _core.DOWN
TOP = _core.TOP
BOTTOM = _core.BOTTOM
NORTH = _core.NORTH
SOUTH = _core.SOUTH
WEST = _core.WEST
EAST = _core.EAST
ALL = _core.ALL
ALIGN_NOT = _core.ALIGN_NOT
ALIGN_CENTER_HORIZONTAL = _core.ALIGN_CENTER_HORIZONTAL
ALIGN_CENTRE_HORIZONTAL = _core.ALIGN_CENTRE_HORIZONTAL
ALIGN_LEFT = _core.ALIGN_LEFT
ALIGN_TOP = _core.ALIGN_TOP
ALIGN_RIGHT = _core.ALIGN_RIGHT
ALIGN_BOTTOM = _core.ALIGN_BOTTOM
ALIGN_CENTER_VERTICAL = _core.ALIGN_CENTER_VERTICAL
ALIGN_CENTRE_VERTICAL = _core.ALIGN_CENTRE_VERTICAL
ALIGN_CENTER = _core.ALIGN_CENTER
ALIGN_CENTRE = _core.ALIGN_CENTRE
ALIGN_MASK = _core.ALIGN_MASK
STRETCH_NOT = _core.STRETCH_NOT
SHRINK = _core.SHRINK
GROW = _core.GROW
EXPAND = _core.EXPAND
SHAPED = _core.SHAPED
ADJUST_MINSIZE = _core.ADJUST_MINSIZE
TILE = _core.TILE
BORDER_DEFAULT = _core.BORDER_DEFAULT
BORDER_NONE = _core.BORDER_NONE
BORDER_STATIC = _core.BORDER_STATIC
BORDER_SIMPLE = _core.BORDER_SIMPLE
BORDER_RAISED = _core.BORDER_RAISED
BORDER_SUNKEN = _core.BORDER_SUNKEN
BORDER_DOUBLE = _core.BORDER_DOUBLE
BORDER_MASK = _core.BORDER_MASK
DEFAULT = _core.DEFAULT
DECORATIVE = _core.DECORATIVE
ROMAN = _core.ROMAN
SCRIPT = _core.SCRIPT
SWISS = _core.SWISS
MODERN = _core.MODERN
TELETYPE = _core.TELETYPE
VARIABLE = _core.VARIABLE
FIXED = _core.FIXED
NORMAL = _core.NORMAL
LIGHT = _core.LIGHT
BOLD = _core.BOLD
ITALIC = _core.ITALIC
SLANT = _core.SLANT
SOLID = _core.SOLID
DOT = _core.DOT
LONG_DASH = _core.LONG_DASH
SHORT_DASH = _core.SHORT_DASH
DOT_DASH = _core.DOT_DASH
USER_DASH = _core.USER_DASH
TRANSPARENT = _core.TRANSPARENT
STIPPLE = _core.STIPPLE
BDIAGONAL_HATCH = _core.BDIAGONAL_HATCH
CROSSDIAG_HATCH = _core.CROSSDIAG_HATCH
FDIAGONAL_HATCH = _core.FDIAGONAL_HATCH
CROSS_HATCH = _core.CROSS_HATCH
HORIZONTAL_HATCH = _core.HORIZONTAL_HATCH
VERTICAL_HATCH = _core.VERTICAL_HATCH
JOIN_BEVEL = _core.JOIN_BEVEL
JOIN_MITER = _core.JOIN_MITER
JOIN_ROUND = _core.JOIN_ROUND
CAP_ROUND = _core.CAP_ROUND
CAP_PROJECTING = _core.CAP_PROJECTING
CAP_BUTT = _core.CAP_BUTT
CLEAR = _core.CLEAR
XOR = _core.XOR
INVERT = _core.INVERT
OR_REVERSE = _core.OR_REVERSE
AND_REVERSE = _core.AND_REVERSE
COPY = _core.COPY
AND = _core.AND
AND_INVERT = _core.AND_INVERT
NO_OP = _core.NO_OP
NOR = _core.NOR
EQUIV = _core.EQUIV
SRC_INVERT = _core.SRC_INVERT
OR_INVERT = _core.OR_INVERT
NAND = _core.NAND
OR = _core.OR
SET = _core.SET
WXK_BACK = _core.WXK_BACK
WXK_TAB = _core.WXK_TAB
WXK_RETURN = _core.WXK_RETURN
WXK_ESCAPE = _core.WXK_ESCAPE
WXK_SPACE = _core.WXK_SPACE
WXK_DELETE = _core.WXK_DELETE
WXK_START = _core.WXK_START
WXK_LBUTTON = _core.WXK_LBUTTON
WXK_RBUTTON = _core.WXK_RBUTTON
WXK_CANCEL = _core.WXK_CANCEL
WXK_MBUTTON = _core.WXK_MBUTTON
WXK_CLEAR = _core.WXK_CLEAR
WXK_SHIFT = _core.WXK_SHIFT
WXK_ALT = _core.WXK_ALT
WXK_CONTROL = _core.WXK_CONTROL
WXK_MENU = _core.WXK_MENU
WXK_PAUSE = _core.WXK_PAUSE
WXK_CAPITAL = _core.WXK_CAPITAL
WXK_PRIOR = _core.WXK_PRIOR
WXK_NEXT = _core.WXK_NEXT
WXK_END = _core.WXK_END
WXK_HOME = _core.WXK_HOME
WXK_LEFT = _core.WXK_LEFT
WXK_UP = _core.WXK_UP
WXK_RIGHT = _core.WXK_RIGHT
WXK_DOWN = _core.WXK_DOWN
WXK_SELECT = _core.WXK_SELECT
WXK_PRINT = _core.WXK_PRINT
WXK_EXECUTE = _core.WXK_EXECUTE
WXK_SNAPSHOT = _core.WXK_SNAPSHOT
WXK_INSERT = _core.WXK_INSERT
WXK_HELP = _core.WXK_HELP
WXK_NUMPAD0 = _core.WXK_NUMPAD0
WXK_NUMPAD1 = _core.WXK_NUMPAD1
WXK_NUMPAD2 = _core.WXK_NUMPAD2
WXK_NUMPAD3 = _core.WXK_NUMPAD3
WXK_NUMPAD4 = _core.WXK_NUMPAD4
WXK_NUMPAD5 = _core.WXK_NUMPAD5
WXK_NUMPAD6 = _core.WXK_NUMPAD6
WXK_NUMPAD7 = _core.WXK_NUMPAD7
WXK_NUMPAD8 = _core.WXK_NUMPAD8
WXK_NUMPAD9 = _core.WXK_NUMPAD9
WXK_MULTIPLY = _core.WXK_MULTIPLY
WXK_ADD = _core.WXK_ADD
WXK_SEPARATOR = _core.WXK_SEPARATOR
WXK_SUBTRACT = _core.WXK_SUBTRACT
WXK_DECIMAL = _core.WXK_DECIMAL
WXK_DIVIDE = _core.WXK_DIVIDE
WXK_F1 = _core.WXK_F1
WXK_F2 = _core.WXK_F2
WXK_F3 = _core.WXK_F3
WXK_F4 = _core.WXK_F4
WXK_F5 = _core.WXK_F5
WXK_F6 = _core.WXK_F6
WXK_F7 = _core.WXK_F7
WXK_F8 = _core.WXK_F8
WXK_F9 = _core.WXK_F9
WXK_F10 = _core.WXK_F10
WXK_F11 = _core.WXK_F11
WXK_F12 = _core.WXK_F12
WXK_F13 = _core.WXK_F13
WXK_F14 = _core.WXK_F14
WXK_F15 = _core.WXK_F15
WXK_F16 = _core.WXK_F16
WXK_F17 = _core.WXK_F17
WXK_F18 = _core.WXK_F18
WXK_F19 = _core.WXK_F19
WXK_F20 = _core.WXK_F20
WXK_F21 = _core.WXK_F21
WXK_F22 = _core.WXK_F22
WXK_F23 = _core.WXK_F23
WXK_F24 = _core.WXK_F24
WXK_NUMLOCK = _core.WXK_NUMLOCK
WXK_SCROLL = _core.WXK_SCROLL
WXK_PAGEUP = _core.WXK_PAGEUP
WXK_PAGEDOWN = _core.WXK_PAGEDOWN
WXK_NUMPAD_SPACE = _core.WXK_NUMPAD_SPACE
WXK_NUMPAD_TAB = _core.WXK_NUMPAD_TAB
WXK_NUMPAD_ENTER = _core.WXK_NUMPAD_ENTER
WXK_NUMPAD_F1 = _core.WXK_NUMPAD_F1
WXK_NUMPAD_F2 = _core.WXK_NUMPAD_F2
WXK_NUMPAD_F3 = _core.WXK_NUMPAD_F3
WXK_NUMPAD_F4 = _core.WXK_NUMPAD_F4
WXK_NUMPAD_HOME = _core.WXK_NUMPAD_HOME
WXK_NUMPAD_LEFT = _core.WXK_NUMPAD_LEFT
WXK_NUMPAD_UP = _core.WXK_NUMPAD_UP
WXK_NUMPAD_RIGHT = _core.WXK_NUMPAD_RIGHT
WXK_NUMPAD_DOWN = _core.WXK_NUMPAD_DOWN
WXK_NUMPAD_PRIOR = _core.WXK_NUMPAD_PRIOR
WXK_NUMPAD_PAGEUP = _core.WXK_NUMPAD_PAGEUP
WXK_NUMPAD_NEXT = _core.WXK_NUMPAD_NEXT
WXK_NUMPAD_PAGEDOWN = _core.WXK_NUMPAD_PAGEDOWN
WXK_NUMPAD_END = _core.WXK_NUMPAD_END
WXK_NUMPAD_BEGIN = _core.WXK_NUMPAD_BEGIN
WXK_NUMPAD_INSERT = _core.WXK_NUMPAD_INSERT
WXK_NUMPAD_DELETE = _core.WXK_NUMPAD_DELETE
WXK_NUMPAD_EQUAL = _core.WXK_NUMPAD_EQUAL
WXK_NUMPAD_MULTIPLY = _core.WXK_NUMPAD_MULTIPLY
WXK_NUMPAD_ADD = _core.WXK_NUMPAD_ADD
WXK_NUMPAD_SEPARATOR = _core.WXK_NUMPAD_SEPARATOR
WXK_NUMPAD_SUBTRACT = _core.WXK_NUMPAD_SUBTRACT
WXK_NUMPAD_DECIMAL = _core.WXK_NUMPAD_DECIMAL
WXK_NUMPAD_DIVIDE = _core.WXK_NUMPAD_DIVIDE
WXK_WINDOWS_LEFT = _core.WXK_WINDOWS_LEFT
WXK_WINDOWS_RIGHT = _core.WXK_WINDOWS_RIGHT
WXK_WINDOWS_MENU = _core.WXK_WINDOWS_MENU
PAPER_NONE = _core.PAPER_NONE
PAPER_LETTER = _core.PAPER_LETTER
PAPER_LEGAL = _core.PAPER_LEGAL
PAPER_A4 = _core.PAPER_A4
PAPER_CSHEET = _core.PAPER_CSHEET
PAPER_DSHEET = _core.PAPER_DSHEET
PAPER_ESHEET = _core.PAPER_ESHEET
PAPER_LETTERSMALL = _core.PAPER_LETTERSMALL
PAPER_TABLOID = _core.PAPER_TABLOID
PAPER_LEDGER = _core.PAPER_LEDGER
PAPER_STATEMENT = _core.PAPER_STATEMENT
PAPER_EXECUTIVE = _core.PAPER_EXECUTIVE
PAPER_A3 = _core.PAPER_A3
PAPER_A4SMALL = _core.PAPER_A4SMALL
PAPER_A5 = _core.PAPER_A5
PAPER_B4 = _core.PAPER_B4
PAPER_B5 = _core.PAPER_B5
PAPER_FOLIO = _core.PAPER_FOLIO
PAPER_QUARTO = _core.PAPER_QUARTO
PAPER_10X14 = _core.PAPER_10X14
PAPER_11X17 = _core.PAPER_11X17
PAPER_NOTE = _core.PAPER_NOTE
PAPER_ENV_9 = _core.PAPER_ENV_9
PAPER_ENV_10 = _core.PAPER_ENV_10
PAPER_ENV_11 = _core.PAPER_ENV_11
PAPER_ENV_12 = _core.PAPER_ENV_12
PAPER_ENV_14 = _core.PAPER_ENV_14
PAPER_ENV_DL = _core.PAPER_ENV_DL
PAPER_ENV_C5 = _core.PAPER_ENV_C5
PAPER_ENV_C3 = _core.PAPER_ENV_C3
PAPER_ENV_C4 = _core.PAPER_ENV_C4
PAPER_ENV_C6 = _core.PAPER_ENV_C6
PAPER_ENV_C65 = _core.PAPER_ENV_C65
PAPER_ENV_B4 = _core.PAPER_ENV_B4
PAPER_ENV_B5 = _core.PAPER_ENV_B5
PAPER_ENV_B6 = _core.PAPER_ENV_B6
PAPER_ENV_ITALY = _core.PAPER_ENV_ITALY
PAPER_ENV_MONARCH = _core.PAPER_ENV_MONARCH
PAPER_ENV_PERSONAL = _core.PAPER_ENV_PERSONAL
PAPER_FANFOLD_US = _core.PAPER_FANFOLD_US
PAPER_FANFOLD_STD_GERMAN = _core.PAPER_FANFOLD_STD_GERMAN
PAPER_FANFOLD_LGL_GERMAN = _core.PAPER_FANFOLD_LGL_GERMAN
PAPER_ISO_B4 = _core.PAPER_ISO_B4
PAPER_JAPANESE_POSTCARD = _core.PAPER_JAPANESE_POSTCARD
PAPER_9X11 = _core.PAPER_9X11
PAPER_10X11 = _core.PAPER_10X11
PAPER_15X11 = _core.PAPER_15X11
PAPER_ENV_INVITE = _core.PAPER_ENV_INVITE
PAPER_LETTER_EXTRA = _core.PAPER_LETTER_EXTRA
PAPER_LEGAL_EXTRA = _core.PAPER_LEGAL_EXTRA
PAPER_TABLOID_EXTRA = _core.PAPER_TABLOID_EXTRA
PAPER_A4_EXTRA = _core.PAPER_A4_EXTRA
PAPER_LETTER_TRANSVERSE = _core.PAPER_LETTER_TRANSVERSE
PAPER_A4_TRANSVERSE = _core.PAPER_A4_TRANSVERSE
PAPER_LETTER_EXTRA_TRANSVERSE = _core.PAPER_LETTER_EXTRA_TRANSVERSE
PAPER_A_PLUS = _core.PAPER_A_PLUS
PAPER_B_PLUS = _core.PAPER_B_PLUS
PAPER_LETTER_PLUS = _core.PAPER_LETTER_PLUS
PAPER_A4_PLUS = _core.PAPER_A4_PLUS
PAPER_A5_TRANSVERSE = _core.PAPER_A5_TRANSVERSE
PAPER_B5_TRANSVERSE = _core.PAPER_B5_TRANSVERSE
PAPER_A3_EXTRA = _core.PAPER_A3_EXTRA
PAPER_A5_EXTRA = _core.PAPER_A5_EXTRA
PAPER_B5_EXTRA = _core.PAPER_B5_EXTRA
PAPER_A2 = _core.PAPER_A2
PAPER_A3_TRANSVERSE = _core.PAPER_A3_TRANSVERSE
PAPER_A3_EXTRA_TRANSVERSE = _core.PAPER_A3_EXTRA_TRANSVERSE
DUPLEX_SIMPLEX = _core.DUPLEX_SIMPLEX
DUPLEX_HORIZONTAL = _core.DUPLEX_HORIZONTAL
DUPLEX_VERTICAL = _core.DUPLEX_VERTICAL
ITEM_SEPARATOR = _core.ITEM_SEPARATOR
ITEM_NORMAL = _core.ITEM_NORMAL
ITEM_CHECK = _core.ITEM_CHECK
ITEM_RADIO = _core.ITEM_RADIO
ITEM_MAX = _core.ITEM_MAX
HT_NOWHERE = _core.HT_NOWHERE
HT_SCROLLBAR_FIRST = _core.HT_SCROLLBAR_FIRST
HT_SCROLLBAR_ARROW_LINE_1 = _core.HT_SCROLLBAR_ARROW_LINE_1
HT_SCROLLBAR_ARROW_LINE_2 = _core.HT_SCROLLBAR_ARROW_LINE_2
HT_SCROLLBAR_ARROW_PAGE_1 = _core.HT_SCROLLBAR_ARROW_PAGE_1
HT_SCROLLBAR_ARROW_PAGE_2 = _core.HT_SCROLLBAR_ARROW_PAGE_2
HT_SCROLLBAR_THUMB = _core.HT_SCROLLBAR_THUMB
HT_SCROLLBAR_BAR_1 = _core.HT_SCROLLBAR_BAR_1
HT_SCROLLBAR_BAR_2 = _core.HT_SCROLLBAR_BAR_2
HT_SCROLLBAR_LAST = _core.HT_SCROLLBAR_LAST
HT_WINDOW_OUTSIDE = _core.HT_WINDOW_OUTSIDE
HT_WINDOW_INSIDE = _core.HT_WINDOW_INSIDE
HT_WINDOW_VERT_SCROLLBAR = _core.HT_WINDOW_VERT_SCROLLBAR
HT_WINDOW_HORZ_SCROLLBAR = _core.HT_WINDOW_HORZ_SCROLLBAR
HT_WINDOW_CORNER = _core.HT_WINDOW_CORNER
HT_MAX = _core.HT_MAX
MOD_NONE = _core.MOD_NONE
MOD_ALT = _core.MOD_ALT
MOD_CONTROL = _core.MOD_CONTROL
MOD_SHIFT = _core.MOD_SHIFT
MOD_WIN = _core.MOD_WIN
UPDATE_UI_NONE = _core.UPDATE_UI_NONE
UPDATE_UI_RECURSE = _core.UPDATE_UI_RECURSE
UPDATE_UI_FROMIDLE = _core.UPDATE_UI_FROMIDLE
#---------------------------------------------------------------------------

class Object(object):
    def GetClassName(*args, **kwargs): return _core.Object_GetClassName(*args, **kwargs)
    def Destroy(*args, **kwargs): return _core.Object_Destroy(*args, **kwargs)
    def __init__(self): raise RuntimeError, "No constructor defined"
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxObject instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ObjectPtr(Object):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Object
_core.Object_swigregister(ObjectPtr)
_wxPySetDictionary = _core._wxPySetDictionary


#---------------------------------------------------------------------------

BITMAP_TYPE_INVALID = _core.BITMAP_TYPE_INVALID
BITMAP_TYPE_BMP = _core.BITMAP_TYPE_BMP
BITMAP_TYPE_BMP_RESOURCE = _core.BITMAP_TYPE_BMP_RESOURCE
BITMAP_TYPE_RESOURCE = _core.BITMAP_TYPE_RESOURCE
BITMAP_TYPE_ICO = _core.BITMAP_TYPE_ICO
BITMAP_TYPE_ICO_RESOURCE = _core.BITMAP_TYPE_ICO_RESOURCE
BITMAP_TYPE_CUR = _core.BITMAP_TYPE_CUR
BITMAP_TYPE_CUR_RESOURCE = _core.BITMAP_TYPE_CUR_RESOURCE
BITMAP_TYPE_XBM = _core.BITMAP_TYPE_XBM
BITMAP_TYPE_XBM_DATA = _core.BITMAP_TYPE_XBM_DATA
BITMAP_TYPE_XPM = _core.BITMAP_TYPE_XPM
BITMAP_TYPE_XPM_DATA = _core.BITMAP_TYPE_XPM_DATA
BITMAP_TYPE_TIF = _core.BITMAP_TYPE_TIF
BITMAP_TYPE_TIF_RESOURCE = _core.BITMAP_TYPE_TIF_RESOURCE
BITMAP_TYPE_GIF = _core.BITMAP_TYPE_GIF
BITMAP_TYPE_GIF_RESOURCE = _core.BITMAP_TYPE_GIF_RESOURCE
BITMAP_TYPE_PNG = _core.BITMAP_TYPE_PNG
BITMAP_TYPE_PNG_RESOURCE = _core.BITMAP_TYPE_PNG_RESOURCE
BITMAP_TYPE_JPEG = _core.BITMAP_TYPE_JPEG
BITMAP_TYPE_JPEG_RESOURCE = _core.BITMAP_TYPE_JPEG_RESOURCE
BITMAP_TYPE_PNM = _core.BITMAP_TYPE_PNM
BITMAP_TYPE_PNM_RESOURCE = _core.BITMAP_TYPE_PNM_RESOURCE
BITMAP_TYPE_PCX = _core.BITMAP_TYPE_PCX
BITMAP_TYPE_PCX_RESOURCE = _core.BITMAP_TYPE_PCX_RESOURCE
BITMAP_TYPE_PICT = _core.BITMAP_TYPE_PICT
BITMAP_TYPE_PICT_RESOURCE = _core.BITMAP_TYPE_PICT_RESOURCE
BITMAP_TYPE_ICON = _core.BITMAP_TYPE_ICON
BITMAP_TYPE_ICON_RESOURCE = _core.BITMAP_TYPE_ICON_RESOURCE
BITMAP_TYPE_ANI = _core.BITMAP_TYPE_ANI
BITMAP_TYPE_IFF = _core.BITMAP_TYPE_IFF
BITMAP_TYPE_MACCURSOR = _core.BITMAP_TYPE_MACCURSOR
BITMAP_TYPE_MACCURSOR_RESOURCE = _core.BITMAP_TYPE_MACCURSOR_RESOURCE
BITMAP_TYPE_ANY = _core.BITMAP_TYPE_ANY
CURSOR_NONE = _core.CURSOR_NONE
CURSOR_ARROW = _core.CURSOR_ARROW
CURSOR_RIGHT_ARROW = _core.CURSOR_RIGHT_ARROW
CURSOR_BULLSEYE = _core.CURSOR_BULLSEYE
CURSOR_CHAR = _core.CURSOR_CHAR
CURSOR_CROSS = _core.CURSOR_CROSS
CURSOR_HAND = _core.CURSOR_HAND
CURSOR_IBEAM = _core.CURSOR_IBEAM
CURSOR_LEFT_BUTTON = _core.CURSOR_LEFT_BUTTON
CURSOR_MAGNIFIER = _core.CURSOR_MAGNIFIER
CURSOR_MIDDLE_BUTTON = _core.CURSOR_MIDDLE_BUTTON
CURSOR_NO_ENTRY = _core.CURSOR_NO_ENTRY
CURSOR_PAINT_BRUSH = _core.CURSOR_PAINT_BRUSH
CURSOR_PENCIL = _core.CURSOR_PENCIL
CURSOR_POINT_LEFT = _core.CURSOR_POINT_LEFT
CURSOR_POINT_RIGHT = _core.CURSOR_POINT_RIGHT
CURSOR_QUESTION_ARROW = _core.CURSOR_QUESTION_ARROW
CURSOR_RIGHT_BUTTON = _core.CURSOR_RIGHT_BUTTON
CURSOR_SIZENESW = _core.CURSOR_SIZENESW
CURSOR_SIZENS = _core.CURSOR_SIZENS
CURSOR_SIZENWSE = _core.CURSOR_SIZENWSE
CURSOR_SIZEWE = _core.CURSOR_SIZEWE
CURSOR_SIZING = _core.CURSOR_SIZING
CURSOR_SPRAYCAN = _core.CURSOR_SPRAYCAN
CURSOR_WAIT = _core.CURSOR_WAIT
CURSOR_WATCH = _core.CURSOR_WATCH
CURSOR_BLANK = _core.CURSOR_BLANK
CURSOR_DEFAULT = _core.CURSOR_DEFAULT
CURSOR_COPY_ARROW = _core.CURSOR_COPY_ARROW
CURSOR_ARROWWAIT = _core.CURSOR_ARROWWAIT
CURSOR_MAX = _core.CURSOR_MAX
#---------------------------------------------------------------------------

class Size(object):
    width = property(_core.Size_width_get, _core.Size_width_set)
    height = property(_core.Size_height_get, _core.Size_height_set)
    def __init__(self, *args, **kwargs):
        newobj = _core.new_Size(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_Size):
        try:
            if self.thisown: destroy(self)
        except: pass
    def __eq__(*args, **kwargs): return _core.Size___eq__(*args, **kwargs)
    def __ne__(*args, **kwargs): return _core.Size___ne__(*args, **kwargs)
    def __add__(*args, **kwargs): return _core.Size___add__(*args, **kwargs)
    def __sub__(*args, **kwargs): return _core.Size___sub__(*args, **kwargs)
    def IncTo(*args, **kwargs): return _core.Size_IncTo(*args, **kwargs)
    def DecTo(*args, **kwargs): return _core.Size_DecTo(*args, **kwargs)
    def Set(*args, **kwargs): return _core.Size_Set(*args, **kwargs)
    def SetWidth(*args, **kwargs): return _core.Size_SetWidth(*args, **kwargs)
    def SetHeight(*args, **kwargs): return _core.Size_SetHeight(*args, **kwargs)
    def GetWidth(*args, **kwargs): return _core.Size_GetWidth(*args, **kwargs)
    def GetHeight(*args, **kwargs): return _core.Size_GetHeight(*args, **kwargs)
    def GetX(*args, **kwargs): return _core.Size_GetX(*args, **kwargs)
    def GetY(*args, **kwargs): return _core.Size_GetY(*args, **kwargs)
    def asTuple(*args, **kwargs): return _core.Size_asTuple(*args, **kwargs)
    def __str__(self):                   return str(self.asTuple())
    def __repr__(self):                  return 'wxSize'+str(self.asTuple())
    def __len__(self):                   return len(self.asTuple())
    def __getitem__(self, index):        return self.asTuple()[index]
    def __setitem__(self, index, val):
        if index == 0: self.width = val
        elif index == 1: self.height = val
        else: raise IndexError
    def __nonzero__(self):               return self.asTuple() != (0,0)
    def __getinitargs__(self):           return ()
    def __getstate__(self):              return self.asTuple()
    def __setstate__(self, state):       self.Set(*state)


class SizePtr(Size):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Size
_core.Size_swigregister(SizePtr)

#---------------------------------------------------------------------------

class RealPoint(object):
    x = property(_core.RealPoint_x_get, _core.RealPoint_x_set)
    y = property(_core.RealPoint_y_get, _core.RealPoint_y_set)
    def __init__(self, *args, **kwargs):
        newobj = _core.new_RealPoint(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_RealPoint):
        try:
            if self.thisown: destroy(self)
        except: pass
    def __add__(*args, **kwargs): return _core.RealPoint___add__(*args, **kwargs)
    def __sub__(*args, **kwargs): return _core.RealPoint___sub__(*args, **kwargs)
    def __eq__(*args, **kwargs): return _core.RealPoint___eq__(*args, **kwargs)
    def __ne__(*args, **kwargs): return _core.RealPoint___ne__(*args, **kwargs)
    def Set(*args, **kwargs): return _core.RealPoint_Set(*args, **kwargs)
    def asTuple(*args, **kwargs): return _core.RealPoint_asTuple(*args, **kwargs)
    def __str__(self):                   return str(self.asTuple())
    def __repr__(self):                  return 'wxRealPoint'+str(self.asTuple())
    def __len__(self):                   return len(self.asTuple())
    def __getitem__(self, index):        return self.asTuple()[index]
    def __setitem__(self, index, val):
        if index == 0: self.width = val
        elif index == 1: self.height = val
        else: raise IndexError
    def __nonzero__(self):               return self.asTuple() != (0.0, 0.0)
    def __getinitargs__(self):           return ()
    def __getstate__(self):              return self.asTuple()
    def __setstate__(self, state):       self.Set(*state)


class RealPointPtr(RealPoint):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = RealPoint
_core.RealPoint_swigregister(RealPointPtr)

#---------------------------------------------------------------------------

class Point(object):
    x = property(_core.Point_x_get, _core.Point_x_set)
    y = property(_core.Point_y_get, _core.Point_y_set)
    def __init__(self, *args, **kwargs):
        newobj = _core.new_Point(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_Point):
        try:
            if self.thisown: destroy(self)
        except: pass
    def __eq__(*args, **kwargs): return _core.Point___eq__(*args, **kwargs)
    def __ne__(*args, **kwargs): return _core.Point___ne__(*args, **kwargs)
    def __add__(*args, **kwargs): return _core.Point___add__(*args, **kwargs)
    def __sub__(*args, **kwargs): return _core.Point___sub__(*args, **kwargs)
    def __iadd__(*args, **kwargs): return _core.Point___iadd__(*args, **kwargs)
    def __isub__(*args, **kwargs): return _core.Point___isub__(*args, **kwargs)
    def Set(*args, **kwargs): return _core.Point_Set(*args, **kwargs)
    def asTuple(*args, **kwargs): return _core.Point_asTuple(*args, **kwargs)
    def __str__(self):                   return str(self.asTuple())
    def __repr__(self):                  return 'wxPoint'+str(self.asTuple())
    def __len__(self):                   return len(self.asTuple())
    def __getitem__(self, index):        return self.asTuple()[index]
    def __setitem__(self, index, val):
        if index == 0: self.x = val
        elif index == 1: self.y = val
        else: raise IndexError
    def __nonzero__(self):               return self.asTuple() != (0,0)
    def __getinitargs__(self):           return ()
    def __getstate__(self):              return self.asTuple()
    def __setstate__(self, state):       self.Set(*state)


class PointPtr(Point):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Point
_core.Point_swigregister(PointPtr)

#---------------------------------------------------------------------------

class Rect(object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_Rect(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_Rect):
        try:
            if self.thisown: destroy(self)
        except: pass
    def GetX(*args, **kwargs): return _core.Rect_GetX(*args, **kwargs)
    def SetX(*args, **kwargs): return _core.Rect_SetX(*args, **kwargs)
    def GetY(*args, **kwargs): return _core.Rect_GetY(*args, **kwargs)
    def SetY(*args, **kwargs): return _core.Rect_SetY(*args, **kwargs)
    def GetWidth(*args, **kwargs): return _core.Rect_GetWidth(*args, **kwargs)
    def SetWidth(*args, **kwargs): return _core.Rect_SetWidth(*args, **kwargs)
    def GetHeight(*args, **kwargs): return _core.Rect_GetHeight(*args, **kwargs)
    def SetHeight(*args, **kwargs): return _core.Rect_SetHeight(*args, **kwargs)
    def GetPosition(*args, **kwargs): return _core.Rect_GetPosition(*args, **kwargs)
    def SetPosition(*args, **kwargs): return _core.Rect_SetPosition(*args, **kwargs)
    def GetSize(*args, **kwargs): return _core.Rect_GetSize(*args, **kwargs)
    def SetSize(*args, **kwargs): return _core.Rect_SetSize(*args, **kwargs)
    def GetLeft(*args, **kwargs): return _core.Rect_GetLeft(*args, **kwargs)
    def GetTop(*args, **kwargs): return _core.Rect_GetTop(*args, **kwargs)
    def GetBottom(*args, **kwargs): return _core.Rect_GetBottom(*args, **kwargs)
    def GetRight(*args, **kwargs): return _core.Rect_GetRight(*args, **kwargs)
    def SetLeft(*args, **kwargs): return _core.Rect_SetLeft(*args, **kwargs)
    def SetRight(*args, **kwargs): return _core.Rect_SetRight(*args, **kwargs)
    def SetTop(*args, **kwargs): return _core.Rect_SetTop(*args, **kwargs)
    def SetBottom(*args, **kwargs): return _core.Rect_SetBottom(*args, **kwargs)
    def Inflate(*args, **kwargs): return _core.Rect_Inflate(*args, **kwargs)
    def Deflate(*args, **kwargs): return _core.Rect_Deflate(*args, **kwargs)
    def OffsetXY(*args, **kwargs): return _core.Rect_OffsetXY(*args, **kwargs)
    def Offset(*args, **kwargs): return _core.Rect_Offset(*args, **kwargs)
    def Intersect(*args, **kwargs): return _core.Rect_Intersect(*args, **kwargs)
    def __add__(*args, **kwargs): return _core.Rect___add__(*args, **kwargs)
    def __iadd__(*args, **kwargs): return _core.Rect___iadd__(*args, **kwargs)
    def __eq__(*args, **kwargs): return _core.Rect___eq__(*args, **kwargs)
    def __ne__(*args, **kwargs): return _core.Rect___ne__(*args, **kwargs)
    def InsideXY(*args, **kwargs): return _core.Rect_InsideXY(*args, **kwargs)
    def Inside(*args, **kwargs): return _core.Rect_Inside(*args, **kwargs)
    def Intersects(*args, **kwargs): return _core.Rect_Intersects(*args, **kwargs)
    x = property(_core.Rect_x_get, _core.Rect_x_set)
    y = property(_core.Rect_y_get, _core.Rect_y_set)
    width = property(_core.Rect_width_get, _core.Rect_width_set)
    height = property(_core.Rect_height_get, _core.Rect_height_set)
    def Set(*args, **kwargs): return _core.Rect_Set(*args, **kwargs)
    def asTuple(*args, **kwargs): return _core.Rect_asTuple(*args, **kwargs)
    def __str__(self):                   return str(self.asTuple())
    def __repr__(self):                  return 'wxRect'+str(self.asTuple())
    def __len__(self):                   return len(self.asTuple())
    def __getitem__(self, index):        return self.asTuple()[index]
    def __setitem__(self, index, val):
        if index == 0: self.x = val
        elif index == 1: self.y = val
        elif index == 2: self.width = val
        elif index == 3: self.height = val
        else: raise IndexError
    def __nonzero__(self):               return self.asTuple() != (0,0,0,0)
    def __getinitargs__(self):           return ()
    def __getstate__(self):              return self.asTuple()
    def __setstate__(self, state):       self.Set(*state)


class RectPtr(Rect):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Rect
_core.Rect_swigregister(RectPtr)

def RectPP(*args, **kwargs):
    val = _core.new_RectPP(*args, **kwargs)
    val.thisown = 1
    return val

def RectPS(*args, **kwargs):
    val = _core.new_RectPS(*args, **kwargs)
    val.thisown = 1
    return val


IntersectRect = _core.IntersectRect
#---------------------------------------------------------------------------

class Point2D(object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_Point2D(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetFloor(*args, **kwargs): return _core.Point2D_GetFloor(*args, **kwargs)
    def GetRounded(*args, **kwargs): return _core.Point2D_GetRounded(*args, **kwargs)
    def GetVectorLength(*args, **kwargs): return _core.Point2D_GetVectorLength(*args, **kwargs)
    def GetVectorAngle(*args, **kwargs): return _core.Point2D_GetVectorAngle(*args, **kwargs)
    def SetVectorLength(*args, **kwargs): return _core.Point2D_SetVectorLength(*args, **kwargs)
    def SetVectorAngle(*args, **kwargs): return _core.Point2D_SetVectorAngle(*args, **kwargs)
    def SetPolarCoordinates(self, angle, length):
        self.SetVectorLength(length)
        self.SetVectorAngle(angle)
    def Normalize(self):
        self.SetVectorLength(1.0)

    def GetDistance(*args, **kwargs): return _core.Point2D_GetDistance(*args, **kwargs)
    def GetDistanceSquare(*args, **kwargs): return _core.Point2D_GetDistanceSquare(*args, **kwargs)
    def GetDotProduct(*args, **kwargs): return _core.Point2D_GetDotProduct(*args, **kwargs)
    def GetCrossProduct(*args, **kwargs): return _core.Point2D_GetCrossProduct(*args, **kwargs)
    def __neg__(*args, **kwargs): return _core.Point2D___neg__(*args, **kwargs)
    def __iadd__(*args, **kwargs): return _core.Point2D___iadd__(*args, **kwargs)
    def __isub__(*args, **kwargs): return _core.Point2D___isub__(*args, **kwargs)
    def __imul__(*args, **kwargs): return _core.Point2D___imul__(*args, **kwargs)
    def __idiv__(*args, **kwargs): return _core.Point2D___idiv__(*args, **kwargs)
    def __eq__(*args, **kwargs): return _core.Point2D___eq__(*args, **kwargs)
    def __ne__(*args, **kwargs): return _core.Point2D___ne__(*args, **kwargs)
    m_x = property(_core.Point2D_m_x_get, _core.Point2D_m_x_set)
    m_y = property(_core.Point2D_m_y_get, _core.Point2D_m_y_set)
    x = property(_core.Point2D_x_get, _core.Point2D_x_set)
    y = property(_core.Point2D_y_get, _core.Point2D_y_set)
    def Set(*args, **kwargs): return _core.Point2D_Set(*args, **kwargs)
    def asTuple(*args, **kwargs): return _core.Point2D_asTuple(*args, **kwargs)
    def __str__(self):                   return str(self.asTuple())
    def __repr__(self):                  return 'wxPoint2D'+str(self.asTuple())
    def __len__(self):                   return len(self.asTuple())
    def __getitem__(self, index):        return self.asTuple()[index]
    def __setitem__(self, index, val):
        if index == 0: self.m_x = val
        elif index == 1: self.m_yt = val
        else: raise IndexError
    def __nonzero__(self):               return self.asTuple() != (0.0, 0.0)
    def __getinitargs__(self):           return ()
    def __getstate__(self):              return self.asTuple()
    def __setstate__(self, state):       self.Set(*state)



class Point2DPtr(Point2D):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Point2D
_core.Point2D_swigregister(Point2DPtr)

def Point2DCopy(*args, **kwargs):
    val = _core.new_Point2DCopy(*args, **kwargs)
    val.thisown = 1
    return val

def Point2DFromPoint(*args, **kwargs):
    val = _core.new_Point2DFromPoint(*args, **kwargs)
    val.thisown = 1
    return val

#---------------------------------------------------------------------------

FromStart = _core.FromStart
FromCurrent = _core.FromCurrent
FromEnd = _core.FromEnd
class InputStream(object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_InputStream(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def close(*args, **kwargs): return _core.InputStream_close(*args, **kwargs)
    def flush(*args, **kwargs): return _core.InputStream_flush(*args, **kwargs)
    def eof(*args, **kwargs): return _core.InputStream_eof(*args, **kwargs)
    def read(*args, **kwargs): return _core.InputStream_read(*args, **kwargs)
    def readline(*args, **kwargs): return _core.InputStream_readline(*args, **kwargs)
    def readlines(*args, **kwargs): return _core.InputStream_readlines(*args, **kwargs)
    def seek(*args, **kwargs): return _core.InputStream_seek(*args, **kwargs)
    def tell(*args, **kwargs): return _core.InputStream_tell(*args, **kwargs)
    def Peek(*args, **kwargs): return _core.InputStream_Peek(*args, **kwargs)
    def GetC(*args, **kwargs): return _core.InputStream_GetC(*args, **kwargs)
    def LastRead(*args, **kwargs): return _core.InputStream_LastRead(*args, **kwargs)
    def CanRead(*args, **kwargs): return _core.InputStream_CanRead(*args, **kwargs)
    def Eof(*args, **kwargs): return _core.InputStream_Eof(*args, **kwargs)
    def Ungetch(*args, **kwargs): return _core.InputStream_Ungetch(*args, **kwargs)
    def SeekI(*args, **kwargs): return _core.InputStream_SeekI(*args, **kwargs)
    def TellI(*args, **kwargs): return _core.InputStream_TellI(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPyInputStream instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class InputStreamPtr(InputStream):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = InputStream
_core.InputStream_swigregister(InputStreamPtr)
cvar = _core.cvar
DefaultPosition = cvar.DefaultPosition
DefaultSize = cvar.DefaultSize

class OutputStream(object):
    def write(*args, **kwargs): return _core.OutputStream_write(*args, **kwargs)
    def __init__(self): raise RuntimeError, "No constructor defined"
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxOutputStream instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class OutputStreamPtr(OutputStream):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = OutputStream
_core.OutputStream_swigregister(OutputStreamPtr)

#---------------------------------------------------------------------------

class FSFile(Object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_FSFile(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_FSFile):
        try:
            if self.thisown: destroy(self)
        except: pass
    def GetStream(*args, **kwargs): return _core.FSFile_GetStream(*args, **kwargs)
    def GetMimeType(*args, **kwargs): return _core.FSFile_GetMimeType(*args, **kwargs)
    def GetLocation(*args, **kwargs): return _core.FSFile_GetLocation(*args, **kwargs)
    def GetAnchor(*args, **kwargs): return _core.FSFile_GetAnchor(*args, **kwargs)
    def GetModificationTime(*args, **kwargs): return _core.FSFile_GetModificationTime(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxFSFile instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class FSFilePtr(FSFile):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = FSFile
_core.FSFile_swigregister(FSFilePtr)

class CPPFileSystemHandler(object):
    def __init__(self): raise RuntimeError, "No constructor defined"
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxFileSystemHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class CPPFileSystemHandlerPtr(CPPFileSystemHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = CPPFileSystemHandler
_core.CPPFileSystemHandler_swigregister(CPPFileSystemHandlerPtr)

class FileSystemHandler(CPPFileSystemHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_FileSystemHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setCallbackInfo(self, FileSystemHandler)
    def _setCallbackInfo(*args, **kwargs): return _core.FileSystemHandler__setCallbackInfo(*args, **kwargs)
    def CanOpen(*args, **kwargs): return _core.FileSystemHandler_CanOpen(*args, **kwargs)
    def OpenFile(*args, **kwargs): return _core.FileSystemHandler_OpenFile(*args, **kwargs)
    def FindFirst(*args, **kwargs): return _core.FileSystemHandler_FindFirst(*args, **kwargs)
    def FindNext(*args, **kwargs): return _core.FileSystemHandler_FindNext(*args, **kwargs)
    def GetProtocol(*args, **kwargs): return _core.FileSystemHandler_GetProtocol(*args, **kwargs)
    def GetLeftLocation(*args, **kwargs): return _core.FileSystemHandler_GetLeftLocation(*args, **kwargs)
    def GetAnchor(*args, **kwargs): return _core.FileSystemHandler_GetAnchor(*args, **kwargs)
    def GetRightLocation(*args, **kwargs): return _core.FileSystemHandler_GetRightLocation(*args, **kwargs)
    def GetMimeTypeFromExt(*args, **kwargs): return _core.FileSystemHandler_GetMimeTypeFromExt(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPyFileSystemHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class FileSystemHandlerPtr(FileSystemHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = FileSystemHandler
_core.FileSystemHandler_swigregister(FileSystemHandlerPtr)

class FileSystem(Object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_FileSystem(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_FileSystem):
        try:
            if self.thisown: destroy(self)
        except: pass
    def ChangePathTo(*args, **kwargs): return _core.FileSystem_ChangePathTo(*args, **kwargs)
    def GetPath(*args, **kwargs): return _core.FileSystem_GetPath(*args, **kwargs)
    def OpenFile(*args, **kwargs): return _core.FileSystem_OpenFile(*args, **kwargs)
    def FindFirst(*args, **kwargs): return _core.FileSystem_FindFirst(*args, **kwargs)
    def FindNext(*args, **kwargs): return _core.FileSystem_FindNext(*args, **kwargs)
    AddHandler = staticmethod(_core.FileSystem_AddHandler)
    CleanUpHandlers = staticmethod(_core.FileSystem_CleanUpHandlers)
    FileNameToURL = staticmethod(_core.FileSystem_FileNameToURL)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxFileSystem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class FileSystemPtr(FileSystem):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = FileSystem
_core.FileSystem_swigregister(FileSystemPtr)

FileSystem_AddHandler = _core.FileSystem_AddHandler

FileSystem_CleanUpHandlers = _core.FileSystem_CleanUpHandlers

FileSystem_FileNameToURL = _core.FileSystem_FileNameToURL


FileSystem_URLToFileName = _core.FileSystem_URLToFileName
class InternetFSHandler(CPPFileSystemHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_InternetFSHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def CanOpen(*args, **kwargs): return _core.InternetFSHandler_CanOpen(*args, **kwargs)
    def OpenFile(*args, **kwargs): return _core.InternetFSHandler_OpenFile(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxInternetFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class InternetFSHandlerPtr(InternetFSHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = InternetFSHandler
_core.InternetFSHandler_swigregister(InternetFSHandlerPtr)

class ZipFSHandler(CPPFileSystemHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_ZipFSHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def CanOpen(*args, **kwargs): return _core.ZipFSHandler_CanOpen(*args, **kwargs)
    def OpenFile(*args, **kwargs): return _core.ZipFSHandler_OpenFile(*args, **kwargs)
    def FindFirst(*args, **kwargs): return _core.ZipFSHandler_FindFirst(*args, **kwargs)
    def FindNext(*args, **kwargs): return _core.ZipFSHandler_FindNext(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxZipFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ZipFSHandlerPtr(ZipFSHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ZipFSHandler
_core.ZipFSHandler_swigregister(ZipFSHandlerPtr)


__wxMemoryFSHandler_AddFile_wxImage = _core.__wxMemoryFSHandler_AddFile_wxImage

__wxMemoryFSHandler_AddFile_wxBitmap = _core.__wxMemoryFSHandler_AddFile_wxBitmap

__wxMemoryFSHandler_AddFile_Data = _core.__wxMemoryFSHandler_AddFile_Data
def MemoryFSHandler_AddFile(filename, a, b=''):
    if isinstance(a, wx.Image):
        __wxMemoryFSHandler_AddFile_wxImage(filename, a, b)
    elif isinstance(a, wx.Bitmap):
        __wxMemoryFSHandler_AddFile_wxBitmap(filename, a, b)
    elif type(a) == str:
        __wxMemoryFSHandler_AddFile_Data(filename, a)
    else: raise TypeError, 'wx.Image, wx.Bitmap or string expected'

class MemoryFSHandler(CPPFileSystemHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_MemoryFSHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    RemoveFile = staticmethod(_core.MemoryFSHandler_RemoveFile)
    AddFile = staticmethod(MemoryFSHandler_AddFile) 
    def CanOpen(*args, **kwargs): return _core.MemoryFSHandler_CanOpen(*args, **kwargs)
    def OpenFile(*args, **kwargs): return _core.MemoryFSHandler_OpenFile(*args, **kwargs)
    def FindFirst(*args, **kwargs): return _core.MemoryFSHandler_FindFirst(*args, **kwargs)
    def FindNext(*args, **kwargs): return _core.MemoryFSHandler_FindNext(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxMemoryFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class MemoryFSHandlerPtr(MemoryFSHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = MemoryFSHandler
_core.MemoryFSHandler_swigregister(MemoryFSHandlerPtr)

MemoryFSHandler_RemoveFile = _core.MemoryFSHandler_RemoveFile

#---------------------------------------------------------------------------

class ImageHandler(Object):
    def GetName(*args, **kwargs): return _core.ImageHandler_GetName(*args, **kwargs)
    def GetExtension(*args, **kwargs): return _core.ImageHandler_GetExtension(*args, **kwargs)
    def GetType(*args, **kwargs): return _core.ImageHandler_GetType(*args, **kwargs)
    def GetMimeType(*args, **kwargs): return _core.ImageHandler_GetMimeType(*args, **kwargs)
    def CanRead(*args, **kwargs): return _core.ImageHandler_CanRead(*args, **kwargs)
    def SetName(*args, **kwargs): return _core.ImageHandler_SetName(*args, **kwargs)
    def SetExtension(*args, **kwargs): return _core.ImageHandler_SetExtension(*args, **kwargs)
    def SetType(*args, **kwargs): return _core.ImageHandler_SetType(*args, **kwargs)
    def SetMimeType(*args, **kwargs): return _core.ImageHandler_SetMimeType(*args, **kwargs)
    def __init__(self): raise RuntimeError, "No constructor defined"
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxImageHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ImageHandlerPtr(ImageHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ImageHandler
_core.ImageHandler_swigregister(ImageHandlerPtr)

class ImageHistogram(object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_ImageHistogram(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    MakeKey = staticmethod(_core.ImageHistogram_MakeKey)
    def FindFirstUnusedColour(*args, **kwargs): return _core.ImageHistogram_FindFirstUnusedColour(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxImageHistogram instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ImageHistogramPtr(ImageHistogram):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ImageHistogram
_core.ImageHistogram_swigregister(ImageHistogramPtr)

ImageHistogram_MakeKey = _core.ImageHistogram_MakeKey

class Image(Object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_Image(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_Image):
        try:
            if self.thisown: destroy(self)
        except: pass
    def Create(*args, **kwargs): return _core.Image_Create(*args, **kwargs)
    def Destroy(*args, **kwargs): return _core.Image_Destroy(*args, **kwargs)
    def Scale(*args, **kwargs): return _core.Image_Scale(*args, **kwargs)
    def ShrinkBy(*args, **kwargs): return _core.Image_ShrinkBy(*args, **kwargs)
    def Rescale(*args, **kwargs): return _core.Image_Rescale(*args, **kwargs)
    def SetRGB(*args, **kwargs): return _core.Image_SetRGB(*args, **kwargs)
    def GetRed(*args, **kwargs): return _core.Image_GetRed(*args, **kwargs)
    def GetGreen(*args, **kwargs): return _core.Image_GetGreen(*args, **kwargs)
    def GetBlue(*args, **kwargs): return _core.Image_GetBlue(*args, **kwargs)
    def SetAlpha(*args, **kwargs): return _core.Image_SetAlpha(*args, **kwargs)
    def GetAlpha(*args, **kwargs): return _core.Image_GetAlpha(*args, **kwargs)
    def HasAlpha(*args, **kwargs): return _core.Image_HasAlpha(*args, **kwargs)
    def FindFirstUnusedColour(*args, **kwargs): return _core.Image_FindFirstUnusedColour(*args, **kwargs)
    def SetMaskFromImage(*args, **kwargs): return _core.Image_SetMaskFromImage(*args, **kwargs)
    CanRead = staticmethod(_core.Image_CanRead)
    GetImageCount = staticmethod(_core.Image_GetImageCount)
    def LoadFile(*args, **kwargs): return _core.Image_LoadFile(*args, **kwargs)
    def LoadMimeFile(*args, **kwargs): return _core.Image_LoadMimeFile(*args, **kwargs)
    def SaveFile(*args, **kwargs): return _core.Image_SaveFile(*args, **kwargs)
    def SaveMimeFile(*args, **kwargs): return _core.Image_SaveMimeFile(*args, **kwargs)
    CanReadStream = staticmethod(_core.Image_CanReadStream)
    def LoadStream(*args, **kwargs): return _core.Image_LoadStream(*args, **kwargs)
    def LoadMimeStream(*args, **kwargs): return _core.Image_LoadMimeStream(*args, **kwargs)
    def Ok(*args, **kwargs): return _core.Image_Ok(*args, **kwargs)
    def GetWidth(*args, **kwargs): return _core.Image_GetWidth(*args, **kwargs)
    def GetHeight(*args, **kwargs): return _core.Image_GetHeight(*args, **kwargs)
    def GetSubImage(*args, **kwargs): return _core.Image_GetSubImage(*args, **kwargs)
    def Copy(*args, **kwargs): return _core.Image_Copy(*args, **kwargs)
    def Paste(*args, **kwargs): return _core.Image_Paste(*args, **kwargs)
    def GetData(*args, **kwargs): return _core.Image_GetData(*args, **kwargs)
    def SetData(*args, **kwargs): return _core.Image_SetData(*args, **kwargs)
    def GetDataBuffer(*args, **kwargs): return _core.Image_GetDataBuffer(*args, **kwargs)
    def SetDataBuffer(*args, **kwargs): return _core.Image_SetDataBuffer(*args, **kwargs)
    def GetAlphaData(*args, **kwargs): return _core.Image_GetAlphaData(*args, **kwargs)
    def SetAlphaData(*args, **kwargs): return _core.Image_SetAlphaData(*args, **kwargs)
    def GetAlphaBuffer(*args, **kwargs): return _core.Image_GetAlphaBuffer(*args, **kwargs)
    def SetAlphaBuffer(*args, **kwargs): return _core.Image_SetAlphaBuffer(*args, **kwargs)
    def SetMaskColour(*args, **kwargs): return _core.Image_SetMaskColour(*args, **kwargs)
    def GetMaskRed(*args, **kwargs): return _core.Image_GetMaskRed(*args, **kwargs)
    def GetMaskGreen(*args, **kwargs): return _core.Image_GetMaskGreen(*args, **kwargs)
    def GetMaskBlue(*args, **kwargs): return _core.Image_GetMaskBlue(*args, **kwargs)
    def SetMask(*args, **kwargs): return _core.Image_SetMask(*args, **kwargs)
    def HasMask(*args, **kwargs): return _core.Image_HasMask(*args, **kwargs)
    def Rotate(*args, **kwargs): return _core.Image_Rotate(*args, **kwargs)
    def Rotate90(*args, **kwargs): return _core.Image_Rotate90(*args, **kwargs)
    def Mirror(*args, **kwargs): return _core.Image_Mirror(*args, **kwargs)
    def Replace(*args, **kwargs): return _core.Image_Replace(*args, **kwargs)
    def ConvertToMono(*args, **kwargs): return _core.Image_ConvertToMono(*args, **kwargs)
    def SetOption(*args, **kwargs): return _core.Image_SetOption(*args, **kwargs)
    def SetOptionInt(*args, **kwargs): return _core.Image_SetOptionInt(*args, **kwargs)
    def GetOption(*args, **kwargs): return _core.Image_GetOption(*args, **kwargs)
    def GetOptionInt(*args, **kwargs): return _core.Image_GetOptionInt(*args, **kwargs)
    def HasOption(*args, **kwargs): return _core.Image_HasOption(*args, **kwargs)
    def CountColours(*args, **kwargs): return _core.Image_CountColours(*args, **kwargs)
    def ComputeHistogram(*args, **kwargs): return _core.Image_ComputeHistogram(*args, **kwargs)
    AddHandler = staticmethod(_core.Image_AddHandler)
    InsertHandler = staticmethod(_core.Image_InsertHandler)
    RemoveHandler = staticmethod(_core.Image_RemoveHandler)
    GetImageExtWildcard = staticmethod(_core.Image_GetImageExtWildcard)
    def ConvertToBitmap(*args, **kwargs): return _core.Image_ConvertToBitmap(*args, **kwargs)
    def ConvertToMonoBitmap(*args, **kwargs): return _core.Image_ConvertToMonoBitmap(*args, **kwargs)
    def __nonzero__(self): return self.Ok() 
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxImage instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ImagePtr(Image):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Image
_core.Image_swigregister(ImagePtr)

def ImageFromMime(*args, **kwargs):
    val = _core.new_ImageFromMime(*args, **kwargs)
    val.thisown = 1
    return val

def ImageFromStream(*args, **kwargs):
    val = _core.new_ImageFromStream(*args, **kwargs)
    val.thisown = 1
    return val

def ImageFromStreamMime(*args, **kwargs):
    val = _core.new_ImageFromStreamMime(*args, **kwargs)
    val.thisown = 1
    return val

def EmptyImage(*args, **kwargs):
    val = _core.new_EmptyImage(*args, **kwargs)
    val.thisown = 1
    return val

def ImageFromBitmap(*args, **kwargs):
    val = _core.new_ImageFromBitmap(*args, **kwargs)
    val.thisown = 1
    return val

def ImageFromData(*args, **kwargs):
    val = _core.new_ImageFromData(*args, **kwargs)
    val.thisown = 1
    return val

Image_CanRead = _core.Image_CanRead

Image_GetImageCount = _core.Image_GetImageCount

Image_CanReadStream = _core.Image_CanReadStream

Image_AddHandler = _core.Image_AddHandler

Image_InsertHandler = _core.Image_InsertHandler

Image_RemoveHandler = _core.Image_RemoveHandler

Image_GetImageExtWildcard = _core.Image_GetImageExtWildcard


InitAllImageHandlers = _core.InitAllImageHandlers
IMAGE_RESOLUTION_INCHES = _core.IMAGE_RESOLUTION_INCHES
IMAGE_RESOLUTION_CM = _core.IMAGE_RESOLUTION_CM
BMP_24BPP = _core.BMP_24BPP
BMP_8BPP = _core.BMP_8BPP
BMP_8BPP_GREY = _core.BMP_8BPP_GREY
BMP_8BPP_GRAY = _core.BMP_8BPP_GRAY
BMP_8BPP_RED = _core.BMP_8BPP_RED
BMP_8BPP_PALETTE = _core.BMP_8BPP_PALETTE
BMP_4BPP = _core.BMP_4BPP
BMP_1BPP = _core.BMP_1BPP
BMP_1BPP_BW = _core.BMP_1BPP_BW
class BMPHandler(ImageHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_BMPHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxBMPHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class BMPHandlerPtr(BMPHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = BMPHandler
_core.BMPHandler_swigregister(BMPHandlerPtr)
NullImage = cvar.NullImage
IMAGE_OPTION_BMP_FORMAT = cvar.IMAGE_OPTION_BMP_FORMAT
IMAGE_OPTION_CUR_HOTSPOT_X = cvar.IMAGE_OPTION_CUR_HOTSPOT_X
IMAGE_OPTION_CUR_HOTSPOT_Y = cvar.IMAGE_OPTION_CUR_HOTSPOT_Y
IMAGE_OPTION_RESOLUTION = cvar.IMAGE_OPTION_RESOLUTION
IMAGE_OPTION_RESOLUTIONUNIT = cvar.IMAGE_OPTION_RESOLUTIONUNIT

class ICOHandler(BMPHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_ICOHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxICOHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ICOHandlerPtr(ICOHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ICOHandler
_core.ICOHandler_swigregister(ICOHandlerPtr)

class CURHandler(ICOHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_CURHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxCURHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class CURHandlerPtr(CURHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = CURHandler
_core.CURHandler_swigregister(CURHandlerPtr)

class ANIHandler(CURHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_ANIHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxANIHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ANIHandlerPtr(ANIHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ANIHandler
_core.ANIHandler_swigregister(ANIHandlerPtr)

class PNGHandler(ImageHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PNGHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPNGHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PNGHandlerPtr(PNGHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PNGHandler
_core.PNGHandler_swigregister(PNGHandlerPtr)

class GIFHandler(ImageHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_GIFHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxGIFHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class GIFHandlerPtr(GIFHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = GIFHandler
_core.GIFHandler_swigregister(GIFHandlerPtr)

class PCXHandler(ImageHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PCXHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPCXHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PCXHandlerPtr(PCXHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PCXHandler
_core.PCXHandler_swigregister(PCXHandlerPtr)

class JPEGHandler(ImageHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_JPEGHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxJPEGHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class JPEGHandlerPtr(JPEGHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = JPEGHandler
_core.JPEGHandler_swigregister(JPEGHandlerPtr)

class PNMHandler(ImageHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PNMHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPNMHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PNMHandlerPtr(PNMHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PNMHandler
_core.PNMHandler_swigregister(PNMHandlerPtr)

class XPMHandler(ImageHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_XPMHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxXPMHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class XPMHandlerPtr(XPMHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = XPMHandler
_core.XPMHandler_swigregister(XPMHandlerPtr)

class TIFFHandler(ImageHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_TIFFHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxTIFFHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class TIFFHandlerPtr(TIFFHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = TIFFHandler
_core.TIFFHandler_swigregister(TIFFHandlerPtr)

#---------------------------------------------------------------------------

class EvtHandler(Object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_EvtHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetNextHandler(*args, **kwargs): return _core.EvtHandler_GetNextHandler(*args, **kwargs)
    def GetPreviousHandler(*args, **kwargs): return _core.EvtHandler_GetPreviousHandler(*args, **kwargs)
    def SetNextHandler(*args, **kwargs): return _core.EvtHandler_SetNextHandler(*args, **kwargs)
    def SetPreviousHandler(*args, **kwargs): return _core.EvtHandler_SetPreviousHandler(*args, **kwargs)
    def GetEvtHandlerEnabled(*args, **kwargs): return _core.EvtHandler_GetEvtHandlerEnabled(*args, **kwargs)
    def SetEvtHandlerEnabled(*args, **kwargs): return _core.EvtHandler_SetEvtHandlerEnabled(*args, **kwargs)
    def ProcessEvent(*args, **kwargs): return _core.EvtHandler_ProcessEvent(*args, **kwargs)
    def AddPendingEvent(*args, **kwargs): return _core.EvtHandler_AddPendingEvent(*args, **kwargs)
    def ProcessPendingEvents(*args, **kwargs): return _core.EvtHandler_ProcessPendingEvents(*args, **kwargs)
    def Connect(*args, **kwargs): return _core.EvtHandler_Connect(*args, **kwargs)
    def Disconnect(*args, **kwargs): return _core.EvtHandler_Disconnect(*args, **kwargs)
    def _setOORInfo(*args, **kwargs): return _core.EvtHandler__setOORInfo(*args, **kwargs)
    def Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
        """
        Bind an event to an event handler.

          event     One of the EVT_* objects that specifies the
                    type of event to bind,

          handler   A callable object to be invoked when the event
                    is delivered to self.  Pass None to disconnect an
                    event handler.

          source    Sometimes the event originates from a different window
                    than self, but you still want to catch it in self.  (For
                    example, a button event delivered to a frame.)  By
                    passing the source of the event, the event handling
                    system is able to differentiate between the same event
                    type from different controls.

          id,id2    Used for menu IDs or for event types that require a
                    range of IDs
        """
        if source is not None:
            id  = source.GetId()
        event.Bind(self, id, id2, handler)              


    def __repr__(self):
        return "<%s.%s; proxy of C++ wxEvtHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class EvtHandlerPtr(EvtHandler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = EvtHandler
_core.EvtHandler_swigregister(EvtHandlerPtr)

#---------------------------------------------------------------------------

class PyEventBinder(object):
    """
    Instances of this class are used to bind specific events to event
    handlers.
    """
    def __init__(self, evtType, expectedIDs=0):
        if expectedIDs not in [0, 1, 2]:
            raise ValueError, "Invalid number of expectedIDs"
        self.expectedIDs = expectedIDs

        if type(evtType) == list or type(evtType) == tuple:
            self.evtType = evtType
        else:
            self.evtType = [evtType]


    def Bind(self, target, id1, id2, function):
        """Bind this set of event types to target."""
        for et in self.evtType:
            target.Connect(id1, id2, et, function)

    
    def __call__(self, *args):
        """
        For backwards compatibility with the old EVT_* functions.
        Should be called with either (window, func), (window, ID,
        func) or (window, ID1, ID2, func) parameters depending on the
        type of the event.
        """
        assert len(args) == 2 + self.expectedIDs
        id1 = wx.ID_ANY
        id2 = wx.ID_ANY
        target = args[0]
        if self.expectedIDs == 0:
            func = args[1]
        elif self.expectedIDs == 1:
            id1 = args[1]
            func = args[2]
        elif self.expectedIDs == 2:
            id1 = args[1]
            id2 = args[2]
            func = args[3]
        else:
            raise ValueError, "Unexpected number of IDs"

        self.Bind(target, id1, id2, func)


# These two are square pegs that don't fit the PyEventBinder hole...
def EVT_COMMAND(win, id, cmd, func):
    win.Connect(id, -1, cmd, func)
def EVT_COMMAND_RANGE(win, id1, id2, cmd, func):
    win.Connect(id1, id2, cmd, func)

    
#---------------------------------------------------------------------------

#---------------------------------------------------------------------------

EVENT_PROPAGATE_NONE = _core.EVENT_PROPAGATE_NONE
EVENT_PROPAGATE_MAX = _core.EVENT_PROPAGATE_MAX

NewEventType = _core.NewEventType
wxEVT_NULL = _core.wxEVT_NULL
wxEVT_FIRST = _core.wxEVT_FIRST
wxEVT_USER_FIRST = _core.wxEVT_USER_FIRST
wxEVT_COMMAND_BUTTON_CLICKED = _core.wxEVT_COMMAND_BUTTON_CLICKED
wxEVT_COMMAND_CHECKBOX_CLICKED = _core.wxEVT_COMMAND_CHECKBOX_CLICKED
wxEVT_COMMAND_CHOICE_SELECTED = _core.wxEVT_COMMAND_CHOICE_SELECTED
wxEVT_COMMAND_LISTBOX_SELECTED = _core.wxEVT_COMMAND_LISTBOX_SELECTED
wxEVT_COMMAND_LISTBOX_DOUBLECLICKED = _core.wxEVT_COMMAND_LISTBOX_DOUBLECLICKED
wxEVT_COMMAND_CHECKLISTBOX_TOGGLED = _core.wxEVT_COMMAND_CHECKLISTBOX_TOGGLED
wxEVT_COMMAND_MENU_SELECTED = _core.wxEVT_COMMAND_MENU_SELECTED
wxEVT_COMMAND_TOOL_CLICKED = _core.wxEVT_COMMAND_TOOL_CLICKED
wxEVT_COMMAND_SLIDER_UPDATED = _core.wxEVT_COMMAND_SLIDER_UPDATED
wxEVT_COMMAND_RADIOBOX_SELECTED = _core.wxEVT_COMMAND_RADIOBOX_SELECTED
wxEVT_COMMAND_RADIOBUTTON_SELECTED = _core.wxEVT_COMMAND_RADIOBUTTON_SELECTED
wxEVT_COMMAND_SCROLLBAR_UPDATED = _core.wxEVT_COMMAND_SCROLLBAR_UPDATED
wxEVT_COMMAND_VLBOX_SELECTED = _core.wxEVT_COMMAND_VLBOX_SELECTED
wxEVT_COMMAND_COMBOBOX_SELECTED = _core.wxEVT_COMMAND_COMBOBOX_SELECTED
wxEVT_COMMAND_TOOL_RCLICKED = _core.wxEVT_COMMAND_TOOL_RCLICKED
wxEVT_COMMAND_TOOL_ENTER = _core.wxEVT_COMMAND_TOOL_ENTER
wxEVT_LEFT_DOWN = _core.wxEVT_LEFT_DOWN
wxEVT_LEFT_UP = _core.wxEVT_LEFT_UP
wxEVT_MIDDLE_DOWN = _core.wxEVT_MIDDLE_DOWN
wxEVT_MIDDLE_UP = _core.wxEVT_MIDDLE_UP
wxEVT_RIGHT_DOWN = _core.wxEVT_RIGHT_DOWN
wxEVT_RIGHT_UP = _core.wxEVT_RIGHT_UP
wxEVT_MOTION = _core.wxEVT_MOTION
wxEVT_ENTER_WINDOW = _core.wxEVT_ENTER_WINDOW
wxEVT_LEAVE_WINDOW = _core.wxEVT_LEAVE_WINDOW
wxEVT_LEFT_DCLICK = _core.wxEVT_LEFT_DCLICK
wxEVT_MIDDLE_DCLICK = _core.wxEVT_MIDDLE_DCLICK
wxEVT_RIGHT_DCLICK = _core.wxEVT_RIGHT_DCLICK
wxEVT_SET_FOCUS = _core.wxEVT_SET_FOCUS
wxEVT_KILL_FOCUS = _core.wxEVT_KILL_FOCUS
wxEVT_CHILD_FOCUS = _core.wxEVT_CHILD_FOCUS
wxEVT_MOUSEWHEEL = _core.wxEVT_MOUSEWHEEL
wxEVT_NC_LEFT_DOWN = _core.wxEVT_NC_LEFT_DOWN
wxEVT_NC_LEFT_UP = _core.wxEVT_NC_LEFT_UP
wxEVT_NC_MIDDLE_DOWN = _core.wxEVT_NC_MIDDLE_DOWN
wxEVT_NC_MIDDLE_UP = _core.wxEVT_NC_MIDDLE_UP
wxEVT_NC_RIGHT_DOWN = _core.wxEVT_NC_RIGHT_DOWN
wxEVT_NC_RIGHT_UP = _core.wxEVT_NC_RIGHT_UP
wxEVT_NC_MOTION = _core.wxEVT_NC_MOTION
wxEVT_NC_ENTER_WINDOW = _core.wxEVT_NC_ENTER_WINDOW
wxEVT_NC_LEAVE_WINDOW = _core.wxEVT_NC_LEAVE_WINDOW
wxEVT_NC_LEFT_DCLICK = _core.wxEVT_NC_LEFT_DCLICK
wxEVT_NC_MIDDLE_DCLICK = _core.wxEVT_NC_MIDDLE_DCLICK
wxEVT_NC_RIGHT_DCLICK = _core.wxEVT_NC_RIGHT_DCLICK
wxEVT_CHAR = _core.wxEVT_CHAR
wxEVT_CHAR_HOOK = _core.wxEVT_CHAR_HOOK
wxEVT_NAVIGATION_KEY = _core.wxEVT_NAVIGATION_KEY
wxEVT_KEY_DOWN = _core.wxEVT_KEY_DOWN
wxEVT_KEY_UP = _core.wxEVT_KEY_UP
wxEVT_HOTKEY = _core.wxEVT_HOTKEY
wxEVT_SET_CURSOR = _core.wxEVT_SET_CURSOR
wxEVT_SCROLL_TOP = _core.wxEVT_SCROLL_TOP
wxEVT_SCROLL_BOTTOM = _core.wxEVT_SCROLL_BOTTOM
wxEVT_SCROLL_LINEUP = _core.wxEVT_SCROLL_LINEUP
wxEVT_SCROLL_LINEDOWN = _core.wxEVT_SCROLL_LINEDOWN
wxEVT_SCROLL_PAGEUP = _core.wxEVT_SCROLL_PAGEUP
wxEVT_SCROLL_PAGEDOWN = _core.wxEVT_SCROLL_PAGEDOWN
wxEVT_SCROLL_THUMBTRACK = _core.wxEVT_SCROLL_THUMBTRACK
wxEVT_SCROLL_THUMBRELEASE = _core.wxEVT_SCROLL_THUMBRELEASE
wxEVT_SCROLL_ENDSCROLL = _core.wxEVT_SCROLL_ENDSCROLL
wxEVT_SCROLLWIN_TOP = _core.wxEVT_SCROLLWIN_TOP
wxEVT_SCROLLWIN_BOTTOM = _core.wxEVT_SCROLLWIN_BOTTOM
wxEVT_SCROLLWIN_LINEUP = _core.wxEVT_SCROLLWIN_LINEUP
wxEVT_SCROLLWIN_LINEDOWN = _core.wxEVT_SCROLLWIN_LINEDOWN
wxEVT_SCROLLWIN_PAGEUP = _core.wxEVT_SCROLLWIN_PAGEUP
wxEVT_SCROLLWIN_PAGEDOWN = _core.wxEVT_SCROLLWIN_PAGEDOWN
wxEVT_SCROLLWIN_THUMBTRACK = _core.wxEVT_SCROLLWIN_THUMBTRACK
wxEVT_SCROLLWIN_THUMBRELEASE = _core.wxEVT_SCROLLWIN_THUMBRELEASE
wxEVT_SIZE = _core.wxEVT_SIZE
wxEVT_MOVE = _core.wxEVT_MOVE
wxEVT_CLOSE_WINDOW = _core.wxEVT_CLOSE_WINDOW
wxEVT_END_SESSION = _core.wxEVT_END_SESSION
wxEVT_QUERY_END_SESSION = _core.wxEVT_QUERY_END_SESSION
wxEVT_ACTIVATE_APP = _core.wxEVT_ACTIVATE_APP
wxEVT_POWER = _core.wxEVT_POWER
wxEVT_ACTIVATE = _core.wxEVT_ACTIVATE
wxEVT_CREATE = _core.wxEVT_CREATE
wxEVT_DESTROY = _core.wxEVT_DESTROY
wxEVT_SHOW = _core.wxEVT_SHOW
wxEVT_ICONIZE = _core.wxEVT_ICONIZE
wxEVT_MAXIMIZE = _core.wxEVT_MAXIMIZE
wxEVT_MOUSE_CAPTURE_CHANGED = _core.wxEVT_MOUSE_CAPTURE_CHANGED
wxEVT_PAINT = _core.wxEVT_PAINT
wxEVT_ERASE_BACKGROUND = _core.wxEVT_ERASE_BACKGROUND
wxEVT_NC_PAINT = _core.wxEVT_NC_PAINT
wxEVT_PAINT_ICON = _core.wxEVT_PAINT_ICON
wxEVT_MENU_OPEN = _core.wxEVT_MENU_OPEN
wxEVT_MENU_CLOSE = _core.wxEVT_MENU_CLOSE
wxEVT_MENU_HIGHLIGHT = _core.wxEVT_MENU_HIGHLIGHT
wxEVT_CONTEXT_MENU = _core.wxEVT_CONTEXT_MENU
wxEVT_SYS_COLOUR_CHANGED = _core.wxEVT_SYS_COLOUR_CHANGED
wxEVT_DISPLAY_CHANGED = _core.wxEVT_DISPLAY_CHANGED
wxEVT_SETTING_CHANGED = _core.wxEVT_SETTING_CHANGED
wxEVT_QUERY_NEW_PALETTE = _core.wxEVT_QUERY_NEW_PALETTE
wxEVT_PALETTE_CHANGED = _core.wxEVT_PALETTE_CHANGED
wxEVT_DROP_FILES = _core.wxEVT_DROP_FILES
wxEVT_DRAW_ITEM = _core.wxEVT_DRAW_ITEM
wxEVT_MEASURE_ITEM = _core.wxEVT_MEASURE_ITEM
wxEVT_COMPARE_ITEM = _core.wxEVT_COMPARE_ITEM
wxEVT_INIT_DIALOG = _core.wxEVT_INIT_DIALOG
wxEVT_IDLE = _core.wxEVT_IDLE
wxEVT_UPDATE_UI = _core.wxEVT_UPDATE_UI
wxEVT_SIZING = _core.wxEVT_SIZING
wxEVT_MOVING = _core.wxEVT_MOVING
wxEVT_COMMAND_LEFT_CLICK = _core.wxEVT_COMMAND_LEFT_CLICK
wxEVT_COMMAND_LEFT_DCLICK = _core.wxEVT_COMMAND_LEFT_DCLICK
wxEVT_COMMAND_RIGHT_CLICK = _core.wxEVT_COMMAND_RIGHT_CLICK
wxEVT_COMMAND_RIGHT_DCLICK = _core.wxEVT_COMMAND_RIGHT_DCLICK
wxEVT_COMMAND_SET_FOCUS = _core.wxEVT_COMMAND_SET_FOCUS
wxEVT_COMMAND_KILL_FOCUS = _core.wxEVT_COMMAND_KILL_FOCUS
wxEVT_COMMAND_ENTER = _core.wxEVT_COMMAND_ENTER
#
# Create some event binders
EVT_SIZE = wx.PyEventBinder( wxEVT_SIZE )
EVT_SIZING = wx.PyEventBinder( wxEVT_SIZING )
EVT_MOVE = wx.PyEventBinder( wxEVT_MOVE )
EVT_MOVING = wx.PyEventBinder( wxEVT_MOVING )
EVT_CLOSE = wx.PyEventBinder( wxEVT_CLOSE_WINDOW )
EVT_END_SESSION = wx.PyEventBinder( wxEVT_END_SESSION )
EVT_QUERY_END_SESSION = wx.PyEventBinder( wxEVT_QUERY_END_SESSION )
EVT_PAINT = wx.PyEventBinder( wxEVT_PAINT )
EVT_NC_PAINT = wx.PyEventBinder( wxEVT_NC_PAINT )
EVT_ERASE_BACKGROUND = wx.PyEventBinder( wxEVT_ERASE_BACKGROUND )
EVT_CHAR = wx.PyEventBinder( wxEVT_CHAR )
EVT_KEY_DOWN = wx.PyEventBinder( wxEVT_KEY_DOWN )
EVT_KEY_UP = wx.PyEventBinder( wxEVT_KEY_UP )
EVT_HOTKEY = wx.PyEventBinder( wxEVT_HOTKEY, 1) 
EVT_CHAR_HOOK = wx.PyEventBinder( wxEVT_CHAR_HOOK )
EVT_MENU_OPEN = wx.PyEventBinder( wxEVT_MENU_OPEN )
EVT_MENU_CLOSE = wx.PyEventBinder( wxEVT_MENU_CLOSE )
EVT_MENU_HIGHLIGHT = wx.PyEventBinder( wxEVT_MENU_HIGHLIGHT, 1)
EVT_MENU_HIGHLIGHT_ALL = wx.PyEventBinder( wxEVT_MENU_HIGHLIGHT )
EVT_SET_FOCUS = wx.PyEventBinder( wxEVT_SET_FOCUS )
EVT_KILL_FOCUS = wx.PyEventBinder( wxEVT_KILL_FOCUS )
EVT_CHILD_FOCUS = wx.PyEventBinder( wxEVT_CHILD_FOCUS )
EVT_ACTIVATE = wx.PyEventBinder( wxEVT_ACTIVATE )
EVT_ACTIVATE_APP = wx.PyEventBinder( wxEVT_ACTIVATE_APP )
EVT_END_SESSION = wx.PyEventBinder( wxEVT_END_SESSION )
EVT_QUERY_END_SESSION = wx.PyEventBinder( wxEVT_QUERY_END_SESSION )
EVT_DROP_FILES = wx.PyEventBinder( wxEVT_DROP_FILES )
EVT_INIT_DIALOG = wx.PyEventBinder( wxEVT_INIT_DIALOG )
EVT_SYS_COLOUR_CHANGED = wx.PyEventBinder( wxEVT_SYS_COLOUR_CHANGED )
EVT_DISPLAY_CHANGED = wx.PyEventBinder( wxEVT_DISPLAY_CHANGED )
EVT_SHOW = wx.PyEventBinder( wxEVT_SHOW )
EVT_MAXIMIZE = wx.PyEventBinder( wxEVT_MAXIMIZE )
EVT_ICONIZE = wx.PyEventBinder( wxEVT_ICONIZE )
EVT_NAVIGATION_KEY = wx.PyEventBinder( wxEVT_NAVIGATION_KEY )
EVT_PALETTE_CHANGED = wx.PyEventBinder( wxEVT_PALETTE_CHANGED )
EVT_QUERY_NEW_PALETTE = wx.PyEventBinder( wxEVT_QUERY_NEW_PALETTE )
EVT_WINDOW_CREATE = wx.PyEventBinder( wxEVT_CREATE )
EVT_WINDOW_DESTROY = wx.PyEventBinder( wxEVT_DESTROY )
EVT_SET_CURSOR = wx.PyEventBinder( wxEVT_SET_CURSOR )
EVT_MOUSE_CAPTURE_CHANGED = wx.PyEventBinder( wxEVT_MOUSE_CAPTURE_CHANGED )

EVT_LEFT_DOWN = wx.PyEventBinder( wxEVT_LEFT_DOWN )
EVT_LEFT_UP = wx.PyEventBinder( wxEVT_LEFT_UP )
EVT_MIDDLE_DOWN = wx.PyEventBinder( wxEVT_MIDDLE_DOWN )
EVT_MIDDLE_UP = wx.PyEventBinder( wxEVT_MIDDLE_UP )
EVT_RIGHT_DOWN = wx.PyEventBinder( wxEVT_RIGHT_DOWN )
EVT_RIGHT_UP = wx.PyEventBinder( wxEVT_RIGHT_UP )
EVT_MOTION = wx.PyEventBinder( wxEVT_MOTION )
EVT_LEFT_DCLICK = wx.PyEventBinder( wxEVT_LEFT_DCLICK )
EVT_MIDDLE_DCLICK = wx.PyEventBinder( wxEVT_MIDDLE_DCLICK )
EVT_RIGHT_DCLICK = wx.PyEventBinder( wxEVT_RIGHT_DCLICK )
EVT_LEAVE_WINDOW = wx.PyEventBinder( wxEVT_LEAVE_WINDOW )
EVT_ENTER_WINDOW = wx.PyEventBinder( wxEVT_ENTER_WINDOW )
EVT_MOUSEWHEEL = wx.PyEventBinder( wxEVT_MOUSEWHEEL )

EVT_MOUSE_EVENTS = wx.PyEventBinder([ wxEVT_LEFT_DOWN,
                                     wxEVT_LEFT_UP,
                                     wxEVT_MIDDLE_DOWN,
                                     wxEVT_MIDDLE_UP,
                                     wxEVT_RIGHT_DOWN,
                                     wxEVT_RIGHT_UP,
                                     wxEVT_MOTION,
                                     wxEVT_LEFT_DCLICK,
                                     wxEVT_MIDDLE_DCLICK,
                                     wxEVT_RIGHT_DCLICK,
                                     wxEVT_ENTER_WINDOW,
                                     wxEVT_LEAVE_WINDOW,
                                     wxEVT_MOUSEWHEEL
                                     ])


# Scrolling from wxWindow (sent to wxScrolledWindow)
EVT_SCROLLWIN = wx.PyEventBinder([ wxEVT_SCROLLWIN_TOP, 
                                  wxEVT_SCROLLWIN_BOTTOM,
                                  wxEVT_SCROLLWIN_LINEUP,
                                  wxEVT_SCROLLWIN_LINEDOWN,
                                  wxEVT_SCROLLWIN_PAGEUP, 
                                  wxEVT_SCROLLWIN_PAGEDOWN,
                                  wxEVT_SCROLLWIN_THUMBTRACK,
                                  wxEVT_SCROLLWIN_THUMBRELEASE,
                                  ])

EVT_SCROLLWIN_TOP = wx.PyEventBinder( wxEVT_SCROLLWIN_TOP )
EVT_SCROLLWIN_BOTTOM = wx.PyEventBinder( wxEVT_SCROLLWIN_BOTTOM )
EVT_SCROLLWIN_LINEUP = wx.PyEventBinder( wxEVT_SCROLLWIN_LINEUP )
EVT_SCROLLWIN_LINEDOWN = wx.PyEventBinder( wxEVT_SCROLLWIN_LINEDOWN )
EVT_SCROLLWIN_PAGEUP = wx.PyEventBinder( wxEVT_SCROLLWIN_PAGEUP )
EVT_SCROLLWIN_PAGEDOWN = wx.PyEventBinder( wxEVT_SCROLLWIN_PAGEDOWN )
EVT_SCROLLWIN_THUMBTRACK = wx.PyEventBinder( wxEVT_SCROLLWIN_THUMBTRACK )
EVT_SCROLLWIN_THUMBRELEASE = wx.PyEventBinder( wxEVT_SCROLLWIN_THUMBRELEASE )

# Scrolling from wxSlider and wxScrollBar
EVT_SCROLL = wx.PyEventBinder([ wxEVT_SCROLL_TOP, 
                               wxEVT_SCROLL_BOTTOM, 
                               wxEVT_SCROLL_LINEUP, 
                               wxEVT_SCROLL_LINEDOWN, 
                               wxEVT_SCROLL_PAGEUP, 
                               wxEVT_SCROLL_PAGEDOWN, 
                               wxEVT_SCROLL_THUMBTRACK, 
                               wxEVT_SCROLL_THUMBRELEASE, 
                               wxEVT_SCROLL_ENDSCROLL,
                               ])

EVT_SCROLL_TOP = wx.PyEventBinder( wxEVT_SCROLL_TOP )
EVT_SCROLL_BOTTOM = wx.PyEventBinder( wxEVT_SCROLL_BOTTOM )
EVT_SCROLL_LINEUP = wx.PyEventBinder( wxEVT_SCROLL_LINEUP )
EVT_SCROLL_LINEDOWN = wx.PyEventBinder( wxEVT_SCROLL_LINEDOWN )
EVT_SCROLL_PAGEUP = wx.PyEventBinder( wxEVT_SCROLL_PAGEUP )
EVT_SCROLL_PAGEDOWN = wx.PyEventBinder( wxEVT_SCROLL_PAGEDOWN )
EVT_SCROLL_THUMBTRACK = wx.PyEventBinder( wxEVT_SCROLL_THUMBTRACK )
EVT_SCROLL_THUMBRELEASE = wx.PyEventBinder( wxEVT_SCROLL_THUMBRELEASE )
EVT_SCROLL_ENDSCROLL = wx.PyEventBinder( wxEVT_SCROLL_ENDSCROLL )

# Scrolling from wxSlider and wxScrollBar, with an id
EVT_COMMAND_SCROLL = wx.PyEventBinder([ wxEVT_SCROLL_TOP, 
                                       wxEVT_SCROLL_BOTTOM, 
                                       wxEVT_SCROLL_LINEUP, 
                                       wxEVT_SCROLL_LINEDOWN, 
                                       wxEVT_SCROLL_PAGEUP, 
                                       wxEVT_SCROLL_PAGEDOWN, 
                                       wxEVT_SCROLL_THUMBTRACK, 
                                       wxEVT_SCROLL_THUMBRELEASE,
                                       wxEVT_SCROLL_ENDSCROLL,
                                       ], 1)

EVT_COMMAND_SCROLL_TOP = wx.PyEventBinder( wxEVT_SCROLL_TOP, 1)
EVT_COMMAND_SCROLL_BOTTOM = wx.PyEventBinder( wxEVT_SCROLL_BOTTOM, 1)
EVT_COMMAND_SCROLL_LINEUP = wx.PyEventBinder( wxEVT_SCROLL_LINEUP, 1)
EVT_COMMAND_SCROLL_LINEDOWN = wx.PyEventBinder( wxEVT_SCROLL_LINEDOWN, 1)
EVT_COMMAND_SCROLL_PAGEUP = wx.PyEventBinder( wxEVT_SCROLL_PAGEUP, 1)
EVT_COMMAND_SCROLL_PAGEDOWN = wx.PyEventBinder( wxEVT_SCROLL_PAGEDOWN, 1)
EVT_COMMAND_SCROLL_THUMBTRACK = wx.PyEventBinder( wxEVT_SCROLL_THUMBTRACK, 1)
EVT_COMMAND_SCROLL_THUMBRELEASE = wx.PyEventBinder( wxEVT_SCROLL_THUMBRELEASE, 1)
EVT_COMMAND_SCROLL_ENDSCROLL = wx.PyEventBinder( wxEVT_SCROLL_ENDSCROLL, 1)

EVT_SPIN_UP   = wx.PyEventBinder( wxEVT_SCROLL_LINEUP, 1)
EVT_SPIN_DOWN = wx.PyEventBinder( wxEVT_SCROLL_LINEDOWN, 1)
EVT_SPIN      = wx.PyEventBinder( wxEVT_SCROLL_THUMBTRACK, 1)

EVT_BUTTON = wx.PyEventBinder( wxEVT_COMMAND_BUTTON_CLICKED, 1)
EVT_CHECKBOX = wx.PyEventBinder( wxEVT_COMMAND_CHECKBOX_CLICKED, 1)
EVT_CHOICE = wx.PyEventBinder( wxEVT_COMMAND_CHOICE_SELECTED, 1)
EVT_LISTBOX = wx.PyEventBinder( wxEVT_COMMAND_LISTBOX_SELECTED, 1)
EVT_LISTBOX_DCLICK = wx.PyEventBinder( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, 1)
EVT_MENU = wx.PyEventBinder( wxEVT_COMMAND_MENU_SELECTED, 1)
EVT_MENU_RANGE = wx.PyEventBinder( wxEVT_COMMAND_MENU_SELECTED, 2)
EVT_SLIDER = wx.PyEventBinder( wxEVT_COMMAND_SLIDER_UPDATED, 1)
EVT_RADIOBOX = wx.PyEventBinder( wxEVT_COMMAND_RADIOBOX_SELECTED, 1)
EVT_RADIOBUTTON = wx.PyEventBinder( wxEVT_COMMAND_RADIOBUTTON_SELECTED, 1)

EVT_SCROLLBAR = wx.PyEventBinder( wxEVT_COMMAND_SCROLLBAR_UPDATED, 1)
EVT_VLBOX = wx.PyEventBinder( wxEVT_COMMAND_VLBOX_SELECTED, 1)
EVT_COMBOBOX = wx.PyEventBinder( wxEVT_COMMAND_COMBOBOX_SELECTED, 1)
EVT_TOOL = wx.PyEventBinder( wxEVT_COMMAND_TOOL_CLICKED, 1)
EVT_TOOL_RANGE = wx.PyEventBinder( wxEVT_COMMAND_TOOL_CLICKED, 2)
EVT_TOOL_RCLICKED = wx.PyEventBinder( wxEVT_COMMAND_TOOL_RCLICKED, 1)
EVT_TOOL_RCLICKED_RANGE = wx.PyEventBinder( wxEVT_COMMAND_TOOL_RCLICKED, 2)
EVT_TOOL_ENTER = wx.PyEventBinder( wxEVT_COMMAND_TOOL_ENTER, 1)
EVT_CHECKLISTBOX = wx.PyEventBinder( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, 1)


EVT_COMMAND_LEFT_CLICK = wx.PyEventBinder( wxEVT_COMMAND_LEFT_CLICK, 1)
EVT_COMMAND_LEFT_DCLICK = wx.PyEventBinder( wxEVT_COMMAND_LEFT_DCLICK, 1)
EVT_COMMAND_RIGHT_CLICK = wx.PyEventBinder( wxEVT_COMMAND_RIGHT_CLICK, 1)
EVT_COMMAND_RIGHT_DCLICK = wx.PyEventBinder( wxEVT_COMMAND_RIGHT_DCLICK, 1)
EVT_COMMAND_SET_FOCUS = wx.PyEventBinder( wxEVT_COMMAND_SET_FOCUS, 1)
EVT_COMMAND_KILL_FOCUS = wx.PyEventBinder( wxEVT_COMMAND_KILL_FOCUS, 1)
EVT_COMMAND_ENTER = wx.PyEventBinder( wxEVT_COMMAND_ENTER, 1)

EVT_IDLE = wx.PyEventBinder( wxEVT_IDLE )

EVT_UPDATE_UI = wx.PyEventBinder( wxEVT_UPDATE_UI, 1)
EVT_UPDATE_UI_RANGE = wx.PyEventBinder( wxEVT_UPDATE_UI, 2)

EVT_CONTEXT_MENU = wx.PyEventBinder( wxEVT_CONTEXT_MENU )



#---------------------------------------------------------------------------

class Event(Object):
    def __del__(self, destroy=_core.delete_Event):
        try:
            if self.thisown: destroy(self)
        except: pass
    def SetEventType(*args, **kwargs): return _core.Event_SetEventType(*args, **kwargs)
    def GetEventType(*args, **kwargs): return _core.Event_GetEventType(*args, **kwargs)
    def GetEventObject(*args, **kwargs): return _core.Event_GetEventObject(*args, **kwargs)
    def SetEventObject(*args, **kwargs): return _core.Event_SetEventObject(*args, **kwargs)
    def GetTimestamp(*args, **kwargs): return _core.Event_GetTimestamp(*args, **kwargs)
    def SetTimestamp(*args, **kwargs): return _core.Event_SetTimestamp(*args, **kwargs)
    def GetId(*args, **kwargs): return _core.Event_GetId(*args, **kwargs)
    def SetId(*args, **kwargs): return _core.Event_SetId(*args, **kwargs)
    def IsCommandEvent(*args, **kwargs): return _core.Event_IsCommandEvent(*args, **kwargs)
    def Skip(*args, **kwargs): return _core.Event_Skip(*args, **kwargs)
    def GetSkipped(*args, **kwargs): return _core.Event_GetSkipped(*args, **kwargs)
    def ShouldPropagate(*args, **kwargs): return _core.Event_ShouldPropagate(*args, **kwargs)
    def StopPropagation(*args, **kwargs): return _core.Event_StopPropagation(*args, **kwargs)
    def ResumePropagation(*args, **kwargs): return _core.Event_ResumePropagation(*args, **kwargs)
    def Clone(*args, **kwargs): return _core.Event_Clone(*args, **kwargs)
    def __init__(self): raise RuntimeError, "No constructor defined"
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class EventPtr(Event):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Event
_core.Event_swigregister(EventPtr)

#---------------------------------------------------------------------------

class PropagationDisabler(object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PropagationDisabler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_PropagationDisabler):
        try:
            if self.thisown: destroy(self)
        except: pass
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPropagationDisabler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PropagationDisablerPtr(PropagationDisabler):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PropagationDisabler
_core.PropagationDisabler_swigregister(PropagationDisablerPtr)

class PropagateOnce(object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PropagateOnce(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_PropagateOnce):
        try:
            if self.thisown: destroy(self)
        except: pass
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPropagateOnce instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PropagateOncePtr(PropagateOnce):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PropagateOnce
_core.PropagateOnce_swigregister(PropagateOncePtr)

#---------------------------------------------------------------------------

class CommandEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_CommandEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetSelection(*args, **kwargs): return _core.CommandEvent_GetSelection(*args, **kwargs)
    def SetString(*args, **kwargs): return _core.CommandEvent_SetString(*args, **kwargs)
    def GetString(*args, **kwargs): return _core.CommandEvent_GetString(*args, **kwargs)
    def IsChecked(*args, **kwargs): return _core.CommandEvent_IsChecked(*args, **kwargs)
    def IsSelection(*args, **kwargs): return _core.CommandEvent_IsSelection(*args, **kwargs)
    def SetExtraLong(*args, **kwargs): return _core.CommandEvent_SetExtraLong(*args, **kwargs)
    def GetExtraLong(*args, **kwargs): return _core.CommandEvent_GetExtraLong(*args, **kwargs)
    def SetInt(*args, **kwargs): return _core.CommandEvent_SetInt(*args, **kwargs)
    def GetInt(*args, **kwargs): return _core.CommandEvent_GetInt(*args, **kwargs)
    def Clone(*args, **kwargs): return _core.CommandEvent_Clone(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxCommandEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class CommandEventPtr(CommandEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = CommandEvent
_core.CommandEvent_swigregister(CommandEventPtr)

#---------------------------------------------------------------------------

class NotifyEvent(CommandEvent):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_NotifyEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def Veto(*args, **kwargs): return _core.NotifyEvent_Veto(*args, **kwargs)
    def Allow(*args, **kwargs): return _core.NotifyEvent_Allow(*args, **kwargs)
    def IsAllowed(*args, **kwargs): return _core.NotifyEvent_IsAllowed(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxNotifyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class NotifyEventPtr(NotifyEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = NotifyEvent
_core.NotifyEvent_swigregister(NotifyEventPtr)

#---------------------------------------------------------------------------

class ScrollEvent(CommandEvent):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_ScrollEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetOrientation(*args, **kwargs): return _core.ScrollEvent_GetOrientation(*args, **kwargs)
    def GetPosition(*args, **kwargs): return _core.ScrollEvent_GetPosition(*args, **kwargs)
    def SetOrientation(*args, **kwargs): return _core.ScrollEvent_SetOrientation(*args, **kwargs)
    def SetPosition(*args, **kwargs): return _core.ScrollEvent_SetPosition(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxScrollEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ScrollEventPtr(ScrollEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ScrollEvent
_core.ScrollEvent_swigregister(ScrollEventPtr)

#---------------------------------------------------------------------------

class ScrollWinEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_ScrollWinEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetOrientation(*args, **kwargs): return _core.ScrollWinEvent_GetOrientation(*args, **kwargs)
    def GetPosition(*args, **kwargs): return _core.ScrollWinEvent_GetPosition(*args, **kwargs)
    def SetOrientation(*args, **kwargs): return _core.ScrollWinEvent_SetOrientation(*args, **kwargs)
    def SetPosition(*args, **kwargs): return _core.ScrollWinEvent_SetPosition(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxScrollWinEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ScrollWinEventPtr(ScrollWinEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ScrollWinEvent
_core.ScrollWinEvent_swigregister(ScrollWinEventPtr)

#---------------------------------------------------------------------------

MOUSE_BTN_ANY = _core.MOUSE_BTN_ANY
MOUSE_BTN_NONE = _core.MOUSE_BTN_NONE
MOUSE_BTN_LEFT = _core.MOUSE_BTN_LEFT
MOUSE_BTN_MIDDLE = _core.MOUSE_BTN_MIDDLE
MOUSE_BTN_RIGHT = _core.MOUSE_BTN_RIGHT
class MouseEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_MouseEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def IsButton(*args, **kwargs): return _core.MouseEvent_IsButton(*args, **kwargs)
    def ButtonDown(*args, **kwargs): return _core.MouseEvent_ButtonDown(*args, **kwargs)
    def ButtonDClick(*args, **kwargs): return _core.MouseEvent_ButtonDClick(*args, **kwargs)
    def ButtonUp(*args, **kwargs): return _core.MouseEvent_ButtonUp(*args, **kwargs)
    def Button(*args, **kwargs): return _core.MouseEvent_Button(*args, **kwargs)
    def ButtonIsDown(*args, **kwargs): return _core.MouseEvent_ButtonIsDown(*args, **kwargs)
    def GetButton(*args, **kwargs): return _core.MouseEvent_GetButton(*args, **kwargs)
    def ControlDown(*args, **kwargs): return _core.MouseEvent_ControlDown(*args, **kwargs)
    def MetaDown(*args, **kwargs): return _core.MouseEvent_MetaDown(*args, **kwargs)
    def AltDown(*args, **kwargs): return _core.MouseEvent_AltDown(*args, **kwargs)
    def ShiftDown(*args, **kwargs): return _core.MouseEvent_ShiftDown(*args, **kwargs)
    def LeftDown(*args, **kwargs): return _core.MouseEvent_LeftDown(*args, **kwargs)
    def MiddleDown(*args, **kwargs): return _core.MouseEvent_MiddleDown(*args, **kwargs)
    def RightDown(*args, **kwargs): return _core.MouseEvent_RightDown(*args, **kwargs)
    def LeftUp(*args, **kwargs): return _core.MouseEvent_LeftUp(*args, **kwargs)
    def MiddleUp(*args, **kwargs): return _core.MouseEvent_MiddleUp(*args, **kwargs)
    def RightUp(*args, **kwargs): return _core.MouseEvent_RightUp(*args, **kwargs)
    def LeftDClick(*args, **kwargs): return _core.MouseEvent_LeftDClick(*args, **kwargs)
    def MiddleDClick(*args, **kwargs): return _core.MouseEvent_MiddleDClick(*args, **kwargs)
    def RightDClick(*args, **kwargs): return _core.MouseEvent_RightDClick(*args, **kwargs)
    def LeftIsDown(*args, **kwargs): return _core.MouseEvent_LeftIsDown(*args, **kwargs)
    def MiddleIsDown(*args, **kwargs): return _core.MouseEvent_MiddleIsDown(*args, **kwargs)
    def RightIsDown(*args, **kwargs): return _core.MouseEvent_RightIsDown(*args, **kwargs)
    def Dragging(*args, **kwargs): return _core.MouseEvent_Dragging(*args, **kwargs)
    def Moving(*args, **kwargs): return _core.MouseEvent_Moving(*args, **kwargs)
    def Entering(*args, **kwargs): return _core.MouseEvent_Entering(*args, **kwargs)
    def Leaving(*args, **kwargs): return _core.MouseEvent_Leaving(*args, **kwargs)
    def GetPosition(*args, **kwargs): return _core.MouseEvent_GetPosition(*args, **kwargs)
    def GetPositionTuple(*args, **kwargs): return _core.MouseEvent_GetPositionTuple(*args, **kwargs)
    def GetLogicalPosition(*args, **kwargs): return _core.MouseEvent_GetLogicalPosition(*args, **kwargs)
    def GetX(*args, **kwargs): return _core.MouseEvent_GetX(*args, **kwargs)
    def GetY(*args, **kwargs): return _core.MouseEvent_GetY(*args, **kwargs)
    def GetWheelRotation(*args, **kwargs): return _core.MouseEvent_GetWheelRotation(*args, **kwargs)
    def GetWheelDelta(*args, **kwargs): return _core.MouseEvent_GetWheelDelta(*args, **kwargs)
    def GetLinesPerAction(*args, **kwargs): return _core.MouseEvent_GetLinesPerAction(*args, **kwargs)
    def IsPageScroll(*args, **kwargs): return _core.MouseEvent_IsPageScroll(*args, **kwargs)
    m_x = property(_core.MouseEvent_m_x_get, _core.MouseEvent_m_x_set)
    m_y = property(_core.MouseEvent_m_y_get, _core.MouseEvent_m_y_set)
    m_leftDown = property(_core.MouseEvent_m_leftDown_get, _core.MouseEvent_m_leftDown_set)
    m_middleDown = property(_core.MouseEvent_m_middleDown_get, _core.MouseEvent_m_middleDown_set)
    m_rightDown = property(_core.MouseEvent_m_rightDown_get, _core.MouseEvent_m_rightDown_set)
    m_controlDown = property(_core.MouseEvent_m_controlDown_get, _core.MouseEvent_m_controlDown_set)
    m_shiftDown = property(_core.MouseEvent_m_shiftDown_get, _core.MouseEvent_m_shiftDown_set)
    m_altDown = property(_core.MouseEvent_m_altDown_get, _core.MouseEvent_m_altDown_set)
    m_metaDown = property(_core.MouseEvent_m_metaDown_get, _core.MouseEvent_m_metaDown_set)
    m_wheelRotation = property(_core.MouseEvent_m_wheelRotation_get, _core.MouseEvent_m_wheelRotation_set)
    m_wheelDelta = property(_core.MouseEvent_m_wheelDelta_get, _core.MouseEvent_m_wheelDelta_set)
    m_linesPerAction = property(_core.MouseEvent_m_linesPerAction_get, _core.MouseEvent_m_linesPerAction_set)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxMouseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class MouseEventPtr(MouseEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = MouseEvent
_core.MouseEvent_swigregister(MouseEventPtr)

#---------------------------------------------------------------------------

class SetCursorEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_SetCursorEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetX(*args, **kwargs): return _core.SetCursorEvent_GetX(*args, **kwargs)
    def GetY(*args, **kwargs): return _core.SetCursorEvent_GetY(*args, **kwargs)
    def SetCursor(*args, **kwargs): return _core.SetCursorEvent_SetCursor(*args, **kwargs)
    def GetCursor(*args, **kwargs): return _core.SetCursorEvent_GetCursor(*args, **kwargs)
    def HasCursor(*args, **kwargs): return _core.SetCursorEvent_HasCursor(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxSetCursorEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class SetCursorEventPtr(SetCursorEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = SetCursorEvent
_core.SetCursorEvent_swigregister(SetCursorEventPtr)

#---------------------------------------------------------------------------

class KeyEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_KeyEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def ControlDown(*args, **kwargs): return _core.KeyEvent_ControlDown(*args, **kwargs)
    def MetaDown(*args, **kwargs): return _core.KeyEvent_MetaDown(*args, **kwargs)
    def AltDown(*args, **kwargs): return _core.KeyEvent_AltDown(*args, **kwargs)
    def ShiftDown(*args, **kwargs): return _core.KeyEvent_ShiftDown(*args, **kwargs)
    def HasModifiers(*args, **kwargs): return _core.KeyEvent_HasModifiers(*args, **kwargs)
    def GetKeyCode(*args, **kwargs): return _core.KeyEvent_GetKeyCode(*args, **kwargs)
    KeyCode = GetKeyCode 
    def GetUniChar(*args, **kwargs): return _core.KeyEvent_GetUniChar(*args, **kwargs)
    def GetRawKeyCode(*args, **kwargs): return _core.KeyEvent_GetRawKeyCode(*args, **kwargs)
    def GetRawKeyFlags(*args, **kwargs): return _core.KeyEvent_GetRawKeyFlags(*args, **kwargs)
    def GetPosition(*args, **kwargs): return _core.KeyEvent_GetPosition(*args, **kwargs)
    def GetPositionTuple(*args, **kwargs): return _core.KeyEvent_GetPositionTuple(*args, **kwargs)
    def GetX(*args, **kwargs): return _core.KeyEvent_GetX(*args, **kwargs)
    def GetY(*args, **kwargs): return _core.KeyEvent_GetY(*args, **kwargs)
    m_x = property(_core.KeyEvent_m_x_get, _core.KeyEvent_m_x_set)
    m_y = property(_core.KeyEvent_m_y_get, _core.KeyEvent_m_y_set)
    m_keyCode = property(_core.KeyEvent_m_keyCode_get, _core.KeyEvent_m_keyCode_set)
    m_controlDown = property(_core.KeyEvent_m_controlDown_get, _core.KeyEvent_m_controlDown_set)
    m_shiftDown = property(_core.KeyEvent_m_shiftDown_get, _core.KeyEvent_m_shiftDown_set)
    m_altDown = property(_core.KeyEvent_m_altDown_get, _core.KeyEvent_m_altDown_set)
    m_metaDown = property(_core.KeyEvent_m_metaDown_get, _core.KeyEvent_m_metaDown_set)
    m_scanCode = property(_core.KeyEvent_m_scanCode_get, _core.KeyEvent_m_scanCode_set)
    m_rawCode = property(_core.KeyEvent_m_rawCode_get, _core.KeyEvent_m_rawCode_set)
    m_rawFlags = property(_core.KeyEvent_m_rawFlags_get, _core.KeyEvent_m_rawFlags_set)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxKeyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class KeyEventPtr(KeyEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = KeyEvent
_core.KeyEvent_swigregister(KeyEventPtr)

#---------------------------------------------------------------------------

class SizeEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_SizeEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetSize(*args, **kwargs): return _core.SizeEvent_GetSize(*args, **kwargs)
    def GetRect(*args, **kwargs): return _core.SizeEvent_GetRect(*args, **kwargs)
    def SetRect(*args, **kwargs): return _core.SizeEvent_SetRect(*args, **kwargs)
    def SetSize(*args, **kwargs): return _core.SizeEvent_SetSize(*args, **kwargs)
    m_size = property(_core.SizeEvent_m_size_get, _core.SizeEvent_m_size_set)
    m_rect = property(_core.SizeEvent_m_rect_get, _core.SizeEvent_m_rect_set)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxSizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class SizeEventPtr(SizeEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = SizeEvent
_core.SizeEvent_swigregister(SizeEventPtr)

#---------------------------------------------------------------------------

class MoveEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_MoveEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetPosition(*args, **kwargs): return _core.MoveEvent_GetPosition(*args, **kwargs)
    def GetRect(*args, **kwargs): return _core.MoveEvent_GetRect(*args, **kwargs)
    def SetRect(*args, **kwargs): return _core.MoveEvent_SetRect(*args, **kwargs)
    def SetPosition(*args, **kwargs): return _core.MoveEvent_SetPosition(*args, **kwargs)
    m_pos = property(_core.MoveEvent_m_pos_get, _core.MoveEvent_m_pos_set)
    m_rect = property(_core.MoveEvent_m_rect_get, _core.MoveEvent_m_rect_set)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxMoveEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class MoveEventPtr(MoveEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = MoveEvent
_core.MoveEvent_swigregister(MoveEventPtr)

#---------------------------------------------------------------------------

class PaintEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PaintEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPaintEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PaintEventPtr(PaintEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PaintEvent
_core.PaintEvent_swigregister(PaintEventPtr)

class NcPaintEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_NcPaintEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxNcPaintEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class NcPaintEventPtr(NcPaintEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = NcPaintEvent
_core.NcPaintEvent_swigregister(NcPaintEventPtr)

#---------------------------------------------------------------------------

class EraseEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_EraseEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetDC(*args, **kwargs): return _core.EraseEvent_GetDC(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxEraseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class EraseEventPtr(EraseEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = EraseEvent
_core.EraseEvent_swigregister(EraseEventPtr)

#---------------------------------------------------------------------------

class FocusEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_FocusEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetWindow(*args, **kwargs): return _core.FocusEvent_GetWindow(*args, **kwargs)
    def SetWindow(*args, **kwargs): return _core.FocusEvent_SetWindow(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxFocusEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class FocusEventPtr(FocusEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = FocusEvent
_core.FocusEvent_swigregister(FocusEventPtr)

#---------------------------------------------------------------------------

class ChildFocusEvent(CommandEvent):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_ChildFocusEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetWindow(*args, **kwargs): return _core.ChildFocusEvent_GetWindow(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxChildFocusEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ChildFocusEventPtr(ChildFocusEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ChildFocusEvent
_core.ChildFocusEvent_swigregister(ChildFocusEventPtr)

#---------------------------------------------------------------------------

class ActivateEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_ActivateEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetActive(*args, **kwargs): return _core.ActivateEvent_GetActive(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxActivateEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ActivateEventPtr(ActivateEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ActivateEvent
_core.ActivateEvent_swigregister(ActivateEventPtr)

#---------------------------------------------------------------------------

class InitDialogEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_InitDialogEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxInitDialogEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class InitDialogEventPtr(InitDialogEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = InitDialogEvent
_core.InitDialogEvent_swigregister(InitDialogEventPtr)

#---------------------------------------------------------------------------

class MenuEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_MenuEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetMenuId(*args, **kwargs): return _core.MenuEvent_GetMenuId(*args, **kwargs)
    def IsPopup(*args, **kwargs): return _core.MenuEvent_IsPopup(*args, **kwargs)
    def GetMenu(*args, **kwargs): return _core.MenuEvent_GetMenu(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxMenuEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class MenuEventPtr(MenuEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = MenuEvent
_core.MenuEvent_swigregister(MenuEventPtr)

#---------------------------------------------------------------------------

class CloseEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_CloseEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def SetLoggingOff(*args, **kwargs): return _core.CloseEvent_SetLoggingOff(*args, **kwargs)
    def GetLoggingOff(*args, **kwargs): return _core.CloseEvent_GetLoggingOff(*args, **kwargs)
    def Veto(*args, **kwargs): return _core.CloseEvent_Veto(*args, **kwargs)
    def SetCanVeto(*args, **kwargs): return _core.CloseEvent_SetCanVeto(*args, **kwargs)
    def CanVeto(*args, **kwargs): return _core.CloseEvent_CanVeto(*args, **kwargs)
    def GetVeto(*args, **kwargs): return _core.CloseEvent_GetVeto(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxCloseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class CloseEventPtr(CloseEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = CloseEvent
_core.CloseEvent_swigregister(CloseEventPtr)

#---------------------------------------------------------------------------

class ShowEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_ShowEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def SetShow(*args, **kwargs): return _core.ShowEvent_SetShow(*args, **kwargs)
    def GetShow(*args, **kwargs): return _core.ShowEvent_GetShow(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxShowEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ShowEventPtr(ShowEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ShowEvent
_core.ShowEvent_swigregister(ShowEventPtr)

#---------------------------------------------------------------------------

class IconizeEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_IconizeEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def Iconized(*args, **kwargs): return _core.IconizeEvent_Iconized(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxIconizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class IconizeEventPtr(IconizeEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = IconizeEvent
_core.IconizeEvent_swigregister(IconizeEventPtr)

#---------------------------------------------------------------------------

class MaximizeEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_MaximizeEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxMaximizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class MaximizeEventPtr(MaximizeEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = MaximizeEvent
_core.MaximizeEvent_swigregister(MaximizeEventPtr)

#---------------------------------------------------------------------------

class DropFilesEvent(Event):
    def GetPosition(*args, **kwargs): return _core.DropFilesEvent_GetPosition(*args, **kwargs)
    def GetNumberOfFiles(*args, **kwargs): return _core.DropFilesEvent_GetNumberOfFiles(*args, **kwargs)
    def GetFiles(*args, **kwargs): return _core.DropFilesEvent_GetFiles(*args, **kwargs)
    def __init__(self): raise RuntimeError, "No constructor defined"
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxDropFilesEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class DropFilesEventPtr(DropFilesEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = DropFilesEvent
_core.DropFilesEvent_swigregister(DropFilesEventPtr)

#---------------------------------------------------------------------------

UPDATE_UI_PROCESS_ALL = _core.UPDATE_UI_PROCESS_ALL
UPDATE_UI_PROCESS_SPECIFIED = _core.UPDATE_UI_PROCESS_SPECIFIED
class UpdateUIEvent(CommandEvent):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_UpdateUIEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetChecked(*args, **kwargs): return _core.UpdateUIEvent_GetChecked(*args, **kwargs)
    def GetEnabled(*args, **kwargs): return _core.UpdateUIEvent_GetEnabled(*args, **kwargs)
    def GetText(*args, **kwargs): return _core.UpdateUIEvent_GetText(*args, **kwargs)
    def GetSetText(*args, **kwargs): return _core.UpdateUIEvent_GetSetText(*args, **kwargs)
    def GetSetChecked(*args, **kwargs): return _core.UpdateUIEvent_GetSetChecked(*args, **kwargs)
    def GetSetEnabled(*args, **kwargs): return _core.UpdateUIEvent_GetSetEnabled(*args, **kwargs)
    def Check(*args, **kwargs): return _core.UpdateUIEvent_Check(*args, **kwargs)
    def Enable(*args, **kwargs): return _core.UpdateUIEvent_Enable(*args, **kwargs)
    def SetText(*args, **kwargs): return _core.UpdateUIEvent_SetText(*args, **kwargs)
    SetUpdateInterval = staticmethod(_core.UpdateUIEvent_SetUpdateInterval)
    GetUpdateInterval = staticmethod(_core.UpdateUIEvent_GetUpdateInterval)
    CanUpdate = staticmethod(_core.UpdateUIEvent_CanUpdate)
    ResetUpdateTime = staticmethod(_core.UpdateUIEvent_ResetUpdateTime)
    SetMode = staticmethod(_core.UpdateUIEvent_SetMode)
    GetMode = staticmethod(_core.UpdateUIEvent_GetMode)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxUpdateUIEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class UpdateUIEventPtr(UpdateUIEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = UpdateUIEvent
_core.UpdateUIEvent_swigregister(UpdateUIEventPtr)

UpdateUIEvent_SetUpdateInterval = _core.UpdateUIEvent_SetUpdateInterval

UpdateUIEvent_GetUpdateInterval = _core.UpdateUIEvent_GetUpdateInterval

UpdateUIEvent_CanUpdate = _core.UpdateUIEvent_CanUpdate

UpdateUIEvent_ResetUpdateTime = _core.UpdateUIEvent_ResetUpdateTime

UpdateUIEvent_SetMode = _core.UpdateUIEvent_SetMode

UpdateUIEvent_GetMode = _core.UpdateUIEvent_GetMode

#---------------------------------------------------------------------------

class SysColourChangedEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_SysColourChangedEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxSysColourChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class SysColourChangedEventPtr(SysColourChangedEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = SysColourChangedEvent
_core.SysColourChangedEvent_swigregister(SysColourChangedEventPtr)

#---------------------------------------------------------------------------

class MouseCaptureChangedEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_MouseCaptureChangedEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetCapturedWindow(*args, **kwargs): return _core.MouseCaptureChangedEvent_GetCapturedWindow(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxMouseCaptureChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class MouseCaptureChangedEventPtr(MouseCaptureChangedEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = MouseCaptureChangedEvent
_core.MouseCaptureChangedEvent_swigregister(MouseCaptureChangedEventPtr)

#---------------------------------------------------------------------------

class DisplayChangedEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_DisplayChangedEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxDisplayChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class DisplayChangedEventPtr(DisplayChangedEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = DisplayChangedEvent
_core.DisplayChangedEvent_swigregister(DisplayChangedEventPtr)

#---------------------------------------------------------------------------

class PaletteChangedEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PaletteChangedEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def SetChangedWindow(*args, **kwargs): return _core.PaletteChangedEvent_SetChangedWindow(*args, **kwargs)
    def GetChangedWindow(*args, **kwargs): return _core.PaletteChangedEvent_GetChangedWindow(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPaletteChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PaletteChangedEventPtr(PaletteChangedEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PaletteChangedEvent
_core.PaletteChangedEvent_swigregister(PaletteChangedEventPtr)

#---------------------------------------------------------------------------

class QueryNewPaletteEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_QueryNewPaletteEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def SetPaletteRealized(*args, **kwargs): return _core.QueryNewPaletteEvent_SetPaletteRealized(*args, **kwargs)
    def GetPaletteRealized(*args, **kwargs): return _core.QueryNewPaletteEvent_GetPaletteRealized(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxQueryNewPaletteEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class QueryNewPaletteEventPtr(QueryNewPaletteEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = QueryNewPaletteEvent
_core.QueryNewPaletteEvent_swigregister(QueryNewPaletteEventPtr)

#---------------------------------------------------------------------------

class NavigationKeyEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_NavigationKeyEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetDirection(*args, **kwargs): return _core.NavigationKeyEvent_GetDirection(*args, **kwargs)
    def SetDirection(*args, **kwargs): return _core.NavigationKeyEvent_SetDirection(*args, **kwargs)
    def IsWindowChange(*args, **kwargs): return _core.NavigationKeyEvent_IsWindowChange(*args, **kwargs)
    def SetWindowChange(*args, **kwargs): return _core.NavigationKeyEvent_SetWindowChange(*args, **kwargs)
    def GetCurrentFocus(*args, **kwargs): return _core.NavigationKeyEvent_GetCurrentFocus(*args, **kwargs)
    def SetCurrentFocus(*args, **kwargs): return _core.NavigationKeyEvent_SetCurrentFocus(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxNavigationKeyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class NavigationKeyEventPtr(NavigationKeyEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = NavigationKeyEvent
_core.NavigationKeyEvent_swigregister(NavigationKeyEventPtr)

#---------------------------------------------------------------------------

class WindowCreateEvent(CommandEvent):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_WindowCreateEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetWindow(*args, **kwargs): return _core.WindowCreateEvent_GetWindow(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxWindowCreateEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class WindowCreateEventPtr(WindowCreateEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = WindowCreateEvent
_core.WindowCreateEvent_swigregister(WindowCreateEventPtr)

class WindowDestroyEvent(CommandEvent):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_WindowDestroyEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetWindow(*args, **kwargs): return _core.WindowDestroyEvent_GetWindow(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxWindowDestroyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class WindowDestroyEventPtr(WindowDestroyEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = WindowDestroyEvent
_core.WindowDestroyEvent_swigregister(WindowDestroyEventPtr)

#---------------------------------------------------------------------------

class ContextMenuEvent(CommandEvent):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_ContextMenuEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetPosition(*args, **kwargs): return _core.ContextMenuEvent_GetPosition(*args, **kwargs)
    def SetPosition(*args, **kwargs): return _core.ContextMenuEvent_SetPosition(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxContextMenuEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ContextMenuEventPtr(ContextMenuEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ContextMenuEvent
_core.ContextMenuEvent_swigregister(ContextMenuEventPtr)

#---------------------------------------------------------------------------

IDLE_PROCESS_ALL = _core.IDLE_PROCESS_ALL
IDLE_PROCESS_SPECIFIED = _core.IDLE_PROCESS_SPECIFIED
class IdleEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_IdleEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def RequestMore(*args, **kwargs): return _core.IdleEvent_RequestMore(*args, **kwargs)
    def MoreRequested(*args, **kwargs): return _core.IdleEvent_MoreRequested(*args, **kwargs)
    SetMode = staticmethod(_core.IdleEvent_SetMode)
    GetMode = staticmethod(_core.IdleEvent_GetMode)
    CanSend = staticmethod(_core.IdleEvent_CanSend)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxIdleEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class IdleEventPtr(IdleEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = IdleEvent
_core.IdleEvent_swigregister(IdleEventPtr)

IdleEvent_SetMode = _core.IdleEvent_SetMode

IdleEvent_GetMode = _core.IdleEvent_GetMode

IdleEvent_CanSend = _core.IdleEvent_CanSend

#---------------------------------------------------------------------------

class PyEvent(Event):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PyEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self.SetSelf(self)
    def __del__(self, destroy=_core.delete_PyEvent):
        try:
            if self.thisown: destroy(self)
        except: pass
    def SetSelf(*args, **kwargs): return _core.PyEvent_SetSelf(*args, **kwargs)
    def GetSelf(*args, **kwargs): return _core.PyEvent_GetSelf(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PyEventPtr(PyEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PyEvent
_core.PyEvent_swigregister(PyEventPtr)

class PyCommandEvent(CommandEvent):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PyCommandEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self.SetSelf(self)
    def __del__(self, destroy=_core.delete_PyCommandEvent):
        try:
            if self.thisown: destroy(self)
        except: pass
    def SetSelf(*args, **kwargs): return _core.PyCommandEvent_SetSelf(*args, **kwargs)
    def GetSelf(*args, **kwargs): return _core.PyCommandEvent_GetSelf(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPyCommandEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PyCommandEventPtr(PyCommandEvent):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PyCommandEvent
_core.PyCommandEvent_swigregister(PyCommandEventPtr)

#---------------------------------------------------------------------------

PYAPP_ASSERT_SUPPRESS = _core.PYAPP_ASSERT_SUPPRESS
PYAPP_ASSERT_EXCEPTION = _core.PYAPP_ASSERT_EXCEPTION
PYAPP_ASSERT_DIALOG = _core.PYAPP_ASSERT_DIALOG
PYAPP_ASSERT_LOG = _core.PYAPP_ASSERT_LOG
PRINT_WINDOWS = _core.PRINT_WINDOWS
PRINT_POSTSCRIPT = _core.PRINT_POSTSCRIPT
class PyApp(EvtHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PyApp(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setCallbackInfo(self, PyApp)
        self._setOORInfo(self)
    def __del__(self, destroy=_core.delete_PyApp):
        try:
            if self.thisown: destroy(self)
        except: pass
    def _setCallbackInfo(*args, **kwargs): return _core.PyApp__setCallbackInfo(*args, **kwargs)
    def GetAppName(*args, **kwargs): return _core.PyApp_GetAppName(*args, **kwargs)
    def SetAppName(*args, **kwargs): return _core.PyApp_SetAppName(*args, **kwargs)
    def GetClassName(*args, **kwargs): return _core.PyApp_GetClassName(*args, **kwargs)
    def SetClassName(*args, **kwargs): return _core.PyApp_SetClassName(*args, **kwargs)
    def GetVendorName(*args, **kwargs): return _core.PyApp_GetVendorName(*args, **kwargs)
    def SetVendorName(*args, **kwargs): return _core.PyApp_SetVendorName(*args, **kwargs)
    def GetTraits(*args, **kwargs): return _core.PyApp_GetTraits(*args, **kwargs)
    def ProcessPendingEvents(*args, **kwargs): return _core.PyApp_ProcessPendingEvents(*args, **kwargs)
    def Yield(*args, **kwargs): return _core.PyApp_Yield(*args, **kwargs)
    def WakeUpIdle(*args, **kwargs): return _core.PyApp_WakeUpIdle(*args, **kwargs)
    def MainLoop(*args, **kwargs): return _core.PyApp_MainLoop(*args, **kwargs)
    def Exit(*args, **kwargs): return _core.PyApp_Exit(*args, **kwargs)
    def ExitMainLoop(*args, **kwargs): return _core.PyApp_ExitMainLoop(*args, **kwargs)
    def Pending(*args, **kwargs): return _core.PyApp_Pending(*args, **kwargs)
    def Dispatch(*args, **kwargs): return _core.PyApp_Dispatch(*args, **kwargs)
    def ProcessIdle(*args, **kwargs): return _core.PyApp_ProcessIdle(*args, **kwargs)
    def SendIdleEvents(*args, **kwargs): return _core.PyApp_SendIdleEvents(*args, **kwargs)
    def OnIdle(*args, **kwargs): return _core.PyApp_OnIdle(*args, **kwargs)
    def IsActive(*args, **kwargs): return _core.PyApp_IsActive(*args, **kwargs)
    def SetTopWindow(*args, **kwargs): return _core.PyApp_SetTopWindow(*args, **kwargs)
    def GetTopWindow(*args, **kwargs): return _core.PyApp_GetTopWindow(*args, **kwargs)
    def SetExitOnFrameDelete(*args, **kwargs): return _core.PyApp_SetExitOnFrameDelete(*args, **kwargs)
    def GetExitOnFrameDelete(*args, **kwargs): return _core.PyApp_GetExitOnFrameDelete(*args, **kwargs)
    def SetUseBestVisual(*args, **kwargs): return _core.PyApp_SetUseBestVisual(*args, **kwargs)
    def GetUseBestVisual(*args, **kwargs): return _core.PyApp_GetUseBestVisual(*args, **kwargs)
    def SetPrintMode(*args, **kwargs): return _core.PyApp_SetPrintMode(*args, **kwargs)
    def GetPrintMode(*args, **kwargs): return _core.PyApp_GetPrintMode(*args, **kwargs)
    def GetAssertMode(*args, **kwargs): return _core.PyApp_GetAssertMode(*args, **kwargs)
    def SetAssertMode(*args, **kwargs): return _core.PyApp_SetAssertMode(*args, **kwargs)
    GetMacSupportPCMenuShortcuts = staticmethod(_core.PyApp_GetMacSupportPCMenuShortcuts)
    GetMacAboutMenuItemId = staticmethod(_core.PyApp_GetMacAboutMenuItemId)
    GetMacPreferencesMenuItemId = staticmethod(_core.PyApp_GetMacPreferencesMenuItemId)
    GetMacExitMenuItemId = staticmethod(_core.PyApp_GetMacExitMenuItemId)
    GetMacHelpMenuTitleName = staticmethod(_core.PyApp_GetMacHelpMenuTitleName)
    SetMacSupportPCMenuShortcuts = staticmethod(_core.PyApp_SetMacSupportPCMenuShortcuts)
    SetMacAboutMenuItemId = staticmethod(_core.PyApp_SetMacAboutMenuItemId)
    SetMacPreferencesMenuItemId = staticmethod(_core.PyApp_SetMacPreferencesMenuItemId)
    SetMacExitMenuItemId = staticmethod(_core.PyApp_SetMacExitMenuItemId)
    SetMacHelpMenuTitleName = staticmethod(_core.PyApp_SetMacHelpMenuTitleName)
    def _BootstrapApp(*args, **kwargs): return _core.PyApp__BootstrapApp(*args, **kwargs)
    GetComCtl32Version = staticmethod(_core.PyApp_GetComCtl32Version)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPyApp instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PyAppPtr(PyApp):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PyApp
_core.PyApp_swigregister(PyAppPtr)

PyApp_GetMacSupportPCMenuShortcuts = _core.PyApp_GetMacSupportPCMenuShortcuts

PyApp_GetMacAboutMenuItemId = _core.PyApp_GetMacAboutMenuItemId

PyApp_GetMacPreferencesMenuItemId = _core.PyApp_GetMacPreferencesMenuItemId

PyApp_GetMacExitMenuItemId = _core.PyApp_GetMacExitMenuItemId

PyApp_GetMacHelpMenuTitleName = _core.PyApp_GetMacHelpMenuTitleName

PyApp_SetMacSupportPCMenuShortcuts = _core.PyApp_SetMacSupportPCMenuShortcuts

PyApp_SetMacAboutMenuItemId = _core.PyApp_SetMacAboutMenuItemId

PyApp_SetMacPreferencesMenuItemId = _core.PyApp_SetMacPreferencesMenuItemId

PyApp_SetMacExitMenuItemId = _core.PyApp_SetMacExitMenuItemId

PyApp_SetMacHelpMenuTitleName = _core.PyApp_SetMacHelpMenuTitleName

PyApp_GetComCtl32Version = _core.PyApp_GetComCtl32Version

#---------------------------------------------------------------------------


Exit = _core.Exit

Yield = _core.Yield

YieldIfNeeded = _core.YieldIfNeeded

SafeYield = _core.SafeYield

WakeUpIdle = _core.WakeUpIdle

PostEvent = _core.PostEvent

App_CleanUp = _core.App_CleanUp

GetApp = _core.GetApp
#----------------------------------------------------------------------

class PyOnDemandOutputWindow:
    def __init__(self, title = "wxPython: stdout/stderr"):
        self.frame  = None
        self.title  = title
        self.parent = None

    def SetParent(self, parent):
        self.parent = parent

    def OnCloseWindow(self, event):
        if self.frame != None:
            self.frame.Destroy()
        self.frame = None
        self.text  = None

    # These methods provide the file-like output behaviour.
    def write(self, str):
        if not wx.Thread_IsMain():
            # Aquire the GUI mutex before making GUI calls.  Mutex is released
            # when locker is deleted at the end of this function.
            locker = wx.MutexGuiLocker()

        if not self.frame:
            self.frame = wx.Frame(self.parent, -1, self.title,
                                 style=wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE)
            self.text  = wxTextCtrl(self.frame, -1, "",
                                    style = wx.TE_MULTILINE | wx.TE_READONLY)
            self.frame.SetSize((450, 300))
            self.frame.Show(True)
            EVT_CLOSE(self.frame, self.OnCloseWindow)
        self.text.AppendText(str)

    def close(self):
        if self.frame != None:
            if not wx.Thread_IsMain():
                locker = wx.MutexGuiLocker()
            self.frame.Close()


#----------------------------------------------------------------------
# The main application class.  Derive from this and implement an OnInit
# method that creates a frame and then calls self.SetTopWindow(frame)

_defRedirect = (wx.Platform == '__WXMSW__' or wx.Platform == '__WXMAC__')

class App(wx.PyApp):
    outputWindowClass = PyOnDemandOutputWindow

    def __init__(self, redirect=_defRedirect, filename=None, useBestVisual=False):
        wx.PyApp.__init__(self)

        if wx.Platform == "__WXMAC__":
            try:
                import MacOS
                if not MacOS.WMAvailable():
                    print """\
This program needs access to the screen. Please run with 'pythonw',
not 'python', and only when you are logged in on the main display of
your Mac."""
                    _sys.exit(1)
            except:
                pass

        # This has to be done before OnInit
        self.SetUseBestVisual(useBestVisual)

        # Set the default handler for SIGINT.  This fixes a problem
        # where if Ctrl-C is pressed in the console that started this
        # app then it will not appear to do anything, (not even send
        # KeyboardInterrupt???)  but will later segfault on exit.  By
        # setting the default handler then the app will exit, as
        # expected (depending on platform.)
        try:
            import signal
            signal.signal(signal.SIGINT, signal.SIG_DFL)
        except:
            pass

        # Save and redirect the stdio to a window?
        self.stdioWin = None
        self.saveStdio = (_sys.stdout, _sys.stderr)
        if redirect:
            self.RedirectStdio(filename)

        # This finishes the initialization of wxWindows and then calls
        # the OnInit that should be present in the derived class
        self._BootstrapApp()


    def __del__(self):
        try:
            self.RestoreStdio()  # Just in case the MainLoop was overridden
        except:
            pass


    def SetTopWindow(self, frame):
        if self.stdioWin:
            self.stdioWin.SetParent(frame)
        wx.PyApp.SetTopWindow(self, frame)


    def MainLoop(self):
        wx.PyApp.MainLoop(self)
        self.RestoreStdio()


    def RedirectStdio(self, filename):
        if filename:
            _sys.stdout = _sys.stderr = open(filename, 'a')
        else:
            self.stdioWin = self.outputWindowClass()
            _sys.stdout = _sys.stderr = self.stdioWin


    def RestoreStdio(self):
        _sys.stdout, _sys.stderr = self.saveStdio



# change from wxPyApp_ to wxApp_
App_GetMacSupportPCMenuShortcuts = _core.PyApp_GetMacSupportPCMenuShortcuts
App_GetMacAboutMenuItemId        = _core.PyApp_GetMacAboutMenuItemId
App_GetMacPreferencesMenuItemId  = _core.PyApp_GetMacPreferencesMenuItemId
App_GetMacExitMenuItemId         = _core.PyApp_GetMacExitMenuItemId
App_GetMacHelpMenuTitleName      = _core.PyApp_GetMacHelpMenuTitleName
App_SetMacSupportPCMenuShortcuts = _core.PyApp_SetMacSupportPCMenuShortcuts
App_SetMacAboutMenuItemId        = _core.PyApp_SetMacAboutMenuItemId
App_SetMacPreferencesMenuItemId  = _core.PyApp_SetMacPreferencesMenuItemId
App_SetMacExitMenuItemId         = _core.PyApp_SetMacExitMenuItemId
App_SetMacHelpMenuTitleName      = _core.PyApp_SetMacHelpMenuTitleName
App_GetComCtl32Version           = _core.PyApp_GetComCtl32Version

#----------------------------------------------------------------------------

class PySimpleApp(wx.App):
    def __init__(self, redirect=False, filename=None):
        wx.App.__init__(self, redirect, filename)
    def OnInit(self):
        wx.InitAllImageHandlers()
        return True


class PyWidgetTester(wx.App):
    def __init__(self, size = (250, 100)):
        self.size = size
        wx.App.__init__(self, 0)

    def OnInit(self):
        self.frame = wxFrame(None, -1, "Widget Tester", pos=(0,0), size=self.size)
        self.SetTopWindow(self.frame)
        return True

    def SetWidget(self, widgetClass, *args):
        w = widgetClass(self.frame, *args)
        self.frame.Show(True)

#----------------------------------------------------------------------------
# DO NOT hold any other references to this object.  This is how we
# know when to cleanup system resources that wxWin is holding.  When
# the sys module is unloaded, the refcount on sys.__wxPythonCleanup
# goes to zero and it calls the wxApp_CleanUp function.

class __wxPyCleanup:
    def __init__(self):
        self.cleanup = _core.App_CleanUp
    def __del__(self):
        self.cleanup()

_sys.__wxPythonCleanup = __wxPyCleanup()

## # another possible solution, but it gets called too early...
## if sys.version[0] == '2':
##     import atexit
##     atexit.register(_core.wxApp_CleanUp)
## else:
##     sys.exitfunc = _core.wxApp_CleanUp


#----------------------------------------------------------------------------

#---------------------------------------------------------------------------

class Window(EvtHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_Window(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)
    def Create(*args, **kwargs): return _core.Window_Create(*args, **kwargs)
    def Close(*args, **kwargs): return _core.Window_Close(*args, **kwargs)
    def Destroy(*args, **kwargs): return _core.Window_Destroy(*args, **kwargs)
    def DestroyChildren(*args, **kwargs): return _core.Window_DestroyChildren(*args, **kwargs)
    def IsBeingDeleted(*args, **kwargs): return _core.Window_IsBeingDeleted(*args, **kwargs)
    def SetTitle(*args, **kwargs): return _core.Window_SetTitle(*args, **kwargs)
    def GetTitle(*args, **kwargs): return _core.Window_GetTitle(*args, **kwargs)
    def SetLabel(*args, **kwargs): return _core.Window_SetLabel(*args, **kwargs)
    def GetLabel(*args, **kwargs): return _core.Window_GetLabel(*args, **kwargs)
    def SetName(*args, **kwargs): return _core.Window_SetName(*args, **kwargs)
    def GetName(*args, **kwargs): return _core.Window_GetName(*args, **kwargs)
    def SetId(*args, **kwargs): return _core.Window_SetId(*args, **kwargs)
    def GetId(*args, **kwargs): return _core.Window_GetId(*args, **kwargs)
    NewControlId = staticmethod(_core.Window_NewControlId)
    NextControlId = staticmethod(_core.Window_NextControlId)
    PrevControlId = staticmethod(_core.Window_PrevControlId)
    def SetSize(*args, **kwargs): return _core.Window_SetSize(*args, **kwargs)
    def SetDimensions(*args, **kwargs): return _core.Window_SetDimensions(*args, **kwargs)
    def SetRect(*args, **kwargs): return _core.Window_SetRect(*args, **kwargs)
    def SetSizeWH(*args, **kwargs): return _core.Window_SetSizeWH(*args, **kwargs)
    def Move(*args, **kwargs): return _core.Window_Move(*args, **kwargs)
    SetPosition = Move 
    def MoveXY(*args, **kwargs): return _core.Window_MoveXY(*args, **kwargs)
    def Raise(*args, **kwargs): return _core.Window_Raise(*args, **kwargs)
    def Lower(*args, **kwargs): return _core.Window_Lower(*args, **kwargs)
    def SetClientSize(*args, **kwargs): return _core.Window_SetClientSize(*args, **kwargs)
    def SetClientSizeWH(*args, **kwargs): return _core.Window_SetClientSizeWH(*args, **kwargs)
    def SetClientRect(*args, **kwargs): return _core.Window_SetClientRect(*args, **kwargs)
    def GetPosition(*args, **kwargs): return _core.Window_GetPosition(*args, **kwargs)
    def GetPositionTuple(*args, **kwargs): return _core.Window_GetPositionTuple(*args, **kwargs)
    def GetSize(*args, **kwargs): return _core.Window_GetSize(*args, **kwargs)
    def GetSizeTuple(*args, **kwargs): return _core.Window_GetSizeTuple(*args, **kwargs)
    def GetRect(*args, **kwargs): return _core.Window_GetRect(*args, **kwargs)
    def GetClientSize(*args, **kwargs): return _core.Window_GetClientSize(*args, **kwargs)
    def GetClientSizeTuple(*args, **kwargs): return _core.Window_GetClientSizeTuple(*args, **kwargs)
    def GetClientAreaOrigin(*args, **kwargs): return _core.Window_GetClientAreaOrigin(*args, **kwargs)
    def GetClientRect(*args, **kwargs): return _core.Window_GetClientRect(*args, **kwargs)
    def GetBestSize(*args, **kwargs): return _core.Window_GetBestSize(*args, **kwargs)
    def GetBestSizeTuple(*args, **kwargs): return _core.Window_GetBestSizeTuple(*args, **kwargs)
    def GetAdjustedBestSize(*args, **kwargs): return _core.Window_GetAdjustedBestSize(*args, **kwargs)
    def Center(*args, **kwargs): return _core.Window_Center(*args, **kwargs)
    Centre = Center 
    def CenterOnScreen(*args, **kwargs): return _core.Window_CenterOnScreen(*args, **kwargs)
    CentreOnScreen = CenterOnScreen 
    def CenterOnParent(*args, **kwargs): return _core.Window_CenterOnParent(*args, **kwargs)
    CentreOnParent = CenterOnParent 
    def Fit(*args, **kwargs): return _core.Window_Fit(*args, **kwargs)
    def FitInside(*args, **kwargs): return _core.Window_FitInside(*args, **kwargs)
    def SetSizeHints(*args, **kwargs): return _core.Window_SetSizeHints(*args, **kwargs)
    def SetVirtualSizeHints(*args, **kwargs): return _core.Window_SetVirtualSizeHints(*args, **kwargs)
    def GetMinWidth(*args, **kwargs): return _core.Window_GetMinWidth(*args, **kwargs)
    def GetMinHeight(*args, **kwargs): return _core.Window_GetMinHeight(*args, **kwargs)
    def GetMaxWidth(*args, **kwargs): return _core.Window_GetMaxWidth(*args, **kwargs)
    def GetMaxHeight(*args, **kwargs): return _core.Window_GetMaxHeight(*args, **kwargs)
    def GetMaxSize(*args, **kwargs): return _core.Window_GetMaxSize(*args, **kwargs)
    def SetVirtualSize(*args, **kwargs): return _core.Window_SetVirtualSize(*args, **kwargs)
    def SetVirtualSizeWH(*args, **kwargs): return _core.Window_SetVirtualSizeWH(*args, **kwargs)
    def GetVirtualSize(*args, **kwargs): return _core.Window_GetVirtualSize(*args, **kwargs)
    def GetVirtualSizeTuple(*args, **kwargs): return _core.Window_GetVirtualSizeTuple(*args, **kwargs)
    def GetBestVirtualSize(*args, **kwargs): return _core.Window_GetBestVirtualSize(*args, **kwargs)
    def Show(*args, **kwargs): return _core.Window_Show(*args, **kwargs)
    def Hide(*args, **kwargs): return _core.Window_Hide(*args, **kwargs)
    def Enable(*args, **kwargs): return _core.Window_Enable(*args, **kwargs)
    def Disable(*args, **kwargs): return _core.Window_Disable(*args, **kwargs)
    def IsShown(*args, **kwargs): return _core.Window_IsShown(*args, **kwargs)
    def IsEnabled(*args, **kwargs): return _core.Window_IsEnabled(*args, **kwargs)
    def SetWindowStyleFlag(*args, **kwargs): return _core.Window_SetWindowStyleFlag(*args, **kwargs)
    def GetWindowStyleFlag(*args, **kwargs): return _core.Window_GetWindowStyleFlag(*args, **kwargs)
    def SetWindowStyle(*args, **kwargs): return _core.Window_SetWindowStyle(*args, **kwargs)
    def GetWindowStyle(*args, **kwargs): return _core.Window_GetWindowStyle(*args, **kwargs)
    def HasFlag(*args, **kwargs): return _core.Window_HasFlag(*args, **kwargs)
    def IsRetained(*args, **kwargs): return _core.Window_IsRetained(*args, **kwargs)
    def SetExtraStyle(*args, **kwargs): return _core.Window_SetExtraStyle(*args, **kwargs)
    def GetExtraStyle(*args, **kwargs): return _core.Window_GetExtraStyle(*args, **kwargs)
    def MakeModal(*args, **kwargs): return _core.Window_MakeModal(*args, **kwargs)
    def SetThemeEnabled(*args, **kwargs): return _core.Window_SetThemeEnabled(*args, **kwargs)
    def GetThemeEnabled(*args, **kwargs): return _core.Window_GetThemeEnabled(*args, **kwargs)
    def ShouldInheritColours(*args, **kwargs): return _core.Window_ShouldInheritColours(*args, **kwargs)
    def SetFocus(*args, **kwargs): return _core.Window_SetFocus(*args, **kwargs)
    def SetFocusFromKbd(*args, **kwargs): return _core.Window_SetFocusFromKbd(*args, **kwargs)
    FindFocus = staticmethod(_core.Window_FindFocus)
    def AcceptsFocus(*args, **kwargs): return _core.Window_AcceptsFocus(*args, **kwargs)
    def AcceptsFocusFromKeyboard(*args, **kwargs): return _core.Window_AcceptsFocusFromKeyboard(*args, **kwargs)
    def GetDefaultItem(*args, **kwargs): return _core.Window_GetDefaultItem(*args, **kwargs)
    def SetDefaultItem(*args, **kwargs): return _core.Window_SetDefaultItem(*args, **kwargs)
    def SetTmpDefaultItem(*args, **kwargs): return _core.Window_SetTmpDefaultItem(*args, **kwargs)
    def GetChildren(*args, **kwargs): return _core.Window_GetChildren(*args, **kwargs)
    def GetParent(*args, **kwargs): return _core.Window_GetParent(*args, **kwargs)
    def GetGrandParent(*args, **kwargs): return _core.Window_GetGrandParent(*args, **kwargs)
    def IsTopLevel(*args, **kwargs): return _core.Window_IsTopLevel(*args, **kwargs)
    def Reparent(*args, **kwargs): return _core.Window_Reparent(*args, **kwargs)
    def AddChild(*args, **kwargs): return _core.Window_AddChild(*args, **kwargs)
    def RemoveChild(*args, **kwargs): return _core.Window_RemoveChild(*args, **kwargs)
    def FindWindowById(*args, **kwargs): return _core.Window_FindWindowById(*args, **kwargs)
    def FindWindowByName(*args, **kwargs): return _core.Window_FindWindowByName(*args, **kwargs)
    def GetEventHandler(*args, **kwargs): return _core.Window_GetEventHandler(*args, **kwargs)
    def SetEventHandler(*args, **kwargs): return _core.Window_SetEventHandler(*args, **kwargs)
    def PushEventHandler(*args, **kwargs): return _core.Window_PushEventHandler(*args, **kwargs)
    def PopEventHandler(*args, **kwargs): return _core.Window_PopEventHandler(*args, **kwargs)
    def RemoveEventHandler(*args, **kwargs): return _core.Window_RemoveEventHandler(*args, **kwargs)
    def SetValidator(*args, **kwargs): return _core.Window_SetValidator(*args, **kwargs)
    def GetValidator(*args, **kwargs): return _core.Window_GetValidator(*args, **kwargs)
    def SetAcceleratorTable(*args, **kwargs): return _core.Window_SetAcceleratorTable(*args, **kwargs)
    def GetAcceleratorTable(*args, **kwargs): return _core.Window_GetAcceleratorTable(*args, **kwargs)
    def RegisterHotKey(*args, **kwargs): return _core.Window_RegisterHotKey(*args, **kwargs)
    def UnregisterHotKey(*args, **kwargs): return _core.Window_UnregisterHotKey(*args, **kwargs)
    def ConvertDialogPointToPixels(*args, **kwargs): return _core.Window_ConvertDialogPointToPixels(*args, **kwargs)
    def ConvertDialogSizeToPixels(*args, **kwargs): return _core.Window_ConvertDialogSizeToPixels(*args, **kwargs)
    def DLG_PNT(*args, **kwargs): return _core.Window_DLG_PNT(*args, **kwargs)
    def DLG_SZE(*args, **kwargs): return _core.Window_DLG_SZE(*args, **kwargs)
    def ConvertPixelPointToDialog(*args, **kwargs): return _core.Window_ConvertPixelPointToDialog(*args, **kwargs)
    def ConvertPixelSizeToDialog(*args, **kwargs): return _core.Window_ConvertPixelSizeToDialog(*args, **kwargs)
    def WarpPointer(*args, **kwargs): return _core.Window_WarpPointer(*args, **kwargs)
    def CaptureMouse(*args, **kwargs): return _core.Window_CaptureMouse(*args, **kwargs)
    def ReleaseMouse(*args, **kwargs): return _core.Window_ReleaseMouse(*args, **kwargs)
    GetCapture = staticmethod(_core.Window_GetCapture)
    def HasCapture(*args, **kwargs): return _core.Window_HasCapture(*args, **kwargs)
    def Refresh(*args, **kwargs): return _core.Window_Refresh(*args, **kwargs)
    def RefreshRect(*args, **kwargs): return _core.Window_RefreshRect(*args, **kwargs)
    def Update(*args, **kwargs): return _core.Window_Update(*args, **kwargs)
    def ClearBackground(*args, **kwargs): return _core.Window_ClearBackground(*args, **kwargs)
    def Freeze(*args, **kwargs): return _core.Window_Freeze(*args, **kwargs)
    def Thaw(*args, **kwargs): return _core.Window_Thaw(*args, **kwargs)
    def PrepareDC(*args, **kwargs): return _core.Window_PrepareDC(*args, **kwargs)
    def GetUpdateRegion(*args, **kwargs): return _core.Window_GetUpdateRegion(*args, **kwargs)
    def GetUpdateClientRect(*args, **kwargs): return _core.Window_GetUpdateClientRect(*args, **kwargs)
    def IsExposed(*args, **kwargs): return _core.Window_IsExposed(*args, **kwargs)
    def IsExposedPoint(*args, **kwargs): return _core.Window_IsExposedPoint(*args, **kwargs)
    def isExposedRect(*args, **kwargs): return _core.Window_isExposedRect(*args, **kwargs)
    def SetBackgroundColour(*args, **kwargs): return _core.Window_SetBackgroundColour(*args, **kwargs)
    def SetForegroundColour(*args, **kwargs): return _core.Window_SetForegroundColour(*args, **kwargs)
    def GetBackgroundColour(*args, **kwargs): return _core.Window_GetBackgroundColour(*args, **kwargs)
    def GetForegroundColour(*args, **kwargs): return _core.Window_GetForegroundColour(*args, **kwargs)
    def SetCursor(*args, **kwargs): return _core.Window_SetCursor(*args, **kwargs)
    def GetCursor(*args, **kwargs): return _core.Window_GetCursor(*args, **kwargs)
    def SetFont(*args, **kwargs): return _core.Window_SetFont(*args, **kwargs)
    def GetFont(*args, **kwargs): return _core.Window_GetFont(*args, **kwargs)
    def SetCaret(*args, **kwargs): return _core.Window_SetCaret(*args, **kwargs)
    def GetCaret(*args, **kwargs): return _core.Window_GetCaret(*args, **kwargs)
    def GetCharHeight(*args, **kwargs): return _core.Window_GetCharHeight(*args, **kwargs)
    def GetCharWidth(*args, **kwargs): return _core.Window_GetCharWidth(*args, **kwargs)
    def GetTextExtent(*args, **kwargs): return _core.Window_GetTextExtent(*args, **kwargs)
    def GetFullTextExtent(*args, **kwargs): return _core.Window_GetFullTextExtent(*args, **kwargs)
    def ClientToScreenXY(*args, **kwargs): return _core.Window_ClientToScreenXY(*args, **kwargs)
    def ScreenToClientXY(*args, **kwargs): return _core.Window_ScreenToClientXY(*args, **kwargs)
    def ClientToScreen(*args, **kwargs): return _core.Window_ClientToScreen(*args, **kwargs)
    def ScreenToClient(*args, **kwargs): return _core.Window_ScreenToClient(*args, **kwargs)
    def HitTestXY(*args, **kwargs): return _core.Window_HitTestXY(*args, **kwargs)
    def HitTest(*args, **kwargs): return _core.Window_HitTest(*args, **kwargs)
    def GetBorderFlags(*args, **kwargs): return _core.Window_GetBorderFlags(*args, **kwargs)
    def GetBorder(*args, **kwargs): return _core.Window_GetBorder(*args, **kwargs)
    def UpdateWindowUI(*args, **kwargs): return _core.Window_UpdateWindowUI(*args, **kwargs)
    def PopupMenuXY(*args, **kwargs): return _core.Window_PopupMenuXY(*args, **kwargs)
    def PopupMenu(*args, **kwargs): return _core.Window_PopupMenu(*args, **kwargs)
    def GetHandle(*args, **kwargs): return _core.Window_GetHandle(*args, **kwargs)
    def HasScrollbar(*args, **kwargs): return _core.Window_HasScrollbar(*args, **kwargs)
    def SetScrollbar(*args, **kwargs): return _core.Window_SetScrollbar(*args, **kwargs)
    def SetScrollPos(*args, **kwargs): return _core.Window_SetScrollPos(*args, **kwargs)
    def GetScrollPos(*args, **kwargs): return _core.Window_GetScrollPos(*args, **kwargs)
    def GetScrollThumb(*args, **kwargs): return _core.Window_GetScrollThumb(*args, **kwargs)
    def GetScrollRange(*args, **kwargs): return _core.Window_GetScrollRange(*args, **kwargs)
    def ScrollWindow(*args, **kwargs): return _core.Window_ScrollWindow(*args, **kwargs)
    def ScrollLines(*args, **kwargs): return _core.Window_ScrollLines(*args, **kwargs)
    def ScrollPages(*args, **kwargs): return _core.Window_ScrollPages(*args, **kwargs)
    def LineUp(*args, **kwargs): return _core.Window_LineUp(*args, **kwargs)
    def LineDown(*args, **kwargs): return _core.Window_LineDown(*args, **kwargs)
    def PageUp(*args, **kwargs): return _core.Window_PageUp(*args, **kwargs)
    def PageDown(*args, **kwargs): return _core.Window_PageDown(*args, **kwargs)
    def SetHelpText(*args, **kwargs): return _core.Window_SetHelpText(*args, **kwargs)
    def SetHelpTextForId(*args, **kwargs): return _core.Window_SetHelpTextForId(*args, **kwargs)
    def GetHelpText(*args, **kwargs): return _core.Window_GetHelpText(*args, **kwargs)
    def SetToolTipString(*args, **kwargs): return _core.Window_SetToolTipString(*args, **kwargs)
    def SetToolTip(*args, **kwargs): return _core.Window_SetToolTip(*args, **kwargs)
    def GetToolTip(*args, **kwargs): return _core.Window_GetToolTip(*args, **kwargs)
    def SetDropTarget(*args, **kwargs): 
        val = _core.Window_SetDropTarget(*args, **kwargs)
        args[1].thisown = 0
        return val
    def GetDropTarget(*args, **kwargs): return _core.Window_GetDropTarget(*args, **kwargs)
    def SetConstraints(*args, **kwargs): return _core.Window_SetConstraints(*args, **kwargs)
    def GetConstraints(*args, **kwargs): return _core.Window_GetConstraints(*args, **kwargs)
    def SetAutoLayout(*args, **kwargs): return _core.Window_SetAutoLayout(*args, **kwargs)
    def GetAutoLayout(*args, **kwargs): return _core.Window_GetAutoLayout(*args, **kwargs)
    def Layout(*args, **kwargs): return _core.Window_Layout(*args, **kwargs)
    def SetSizer(*args, **kwargs): return _core.Window_SetSizer(*args, **kwargs)
    def SetSizerAndFit(*args, **kwargs): return _core.Window_SetSizerAndFit(*args, **kwargs)
    def GetSizer(*args, **kwargs): return _core.Window_GetSizer(*args, **kwargs)
    def SetContainingSizer(*args, **kwargs): return _core.Window_SetContainingSizer(*args, **kwargs)
    def GetContainingSizer(*args, **kwargs): return _core.Window_GetContainingSizer(*args, **kwargs)
    def PostCreate(self, pre):
        """Phase 3 of the 2-phase create <wink!>
           Call this method after precreating the window with the 2-phase create method."""
        self.this = pre.this
        self.thisown = pre.thisown
        pre.thisown = 0
        if hasattr(self, '_setOORInfo'):
            self._setOORInfo(self)
        if hasattr(self, '_setCallbackInfo'):
            self._setCallbackInfo(self, self.__class__)

    def __repr__(self):
        return "<%s.%s; proxy of C++ wxWindow instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class WindowPtr(Window):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Window
_core.Window_swigregister(WindowPtr)

def PreWindow(*args, **kwargs):
    val = _core.new_PreWindow(*args, **kwargs)
    val.thisown = 1
    return val

Window_NewControlId = _core.Window_NewControlId

Window_NextControlId = _core.Window_NextControlId

Window_PrevControlId = _core.Window_PrevControlId

Window_FindFocus = _core.Window_FindFocus

Window_GetCapture = _core.Window_GetCapture

def DLG_PNT(win, point_or_x, y=None):
    if y is None:
        return win.ConvertDialogPointToPixels(point_or_x)
    else:
        return win.ConvertDialogPointToPixels(wxPoint(point_or_x, y))

def DLG_SZE(win, size_width, height=None):
    if height is None:
        return win.ConvertDialogSizeToPixels(size_width)
    else:
        return win.ConvertDialogSizeToPixels(wxSize(size_width, height))


FindWindowById = _core.FindWindowById

FindWindowByName = _core.FindWindowByName

FindWindowByLabel = _core.FindWindowByLabel

Window_FromHWND = _core.Window_FromHWND
#---------------------------------------------------------------------------

class Validator(EvtHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_Validator(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)
    def Clone(*args, **kwargs): return _core.Validator_Clone(*args, **kwargs)
    def Validate(*args, **kwargs): return _core.Validator_Validate(*args, **kwargs)
    def TransferToWindow(*args, **kwargs): return _core.Validator_TransferToWindow(*args, **kwargs)
    def TransferFromWindow(*args, **kwargs): return _core.Validator_TransferFromWindow(*args, **kwargs)
    def GetWindow(*args, **kwargs): return _core.Validator_GetWindow(*args, **kwargs)
    def SetWindow(*args, **kwargs): return _core.Validator_SetWindow(*args, **kwargs)
    IsSilent = staticmethod(_core.Validator_IsSilent)
    SetBellOnError = staticmethod(_core.Validator_SetBellOnError)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxValidator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ValidatorPtr(Validator):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Validator
_core.Validator_swigregister(ValidatorPtr)

Validator_IsSilent = _core.Validator_IsSilent

Validator_SetBellOnError = _core.Validator_SetBellOnError

class PyValidator(Validator):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PyValidator(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        
        self._setCallbackInfo(self, PyValidator, 1)
        self._setOORInfo(self)
    def _setCallbackInfo(*args, **kwargs): return _core.PyValidator__setCallbackInfo(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPyValidator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PyValidatorPtr(PyValidator):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PyValidator
_core.PyValidator_swigregister(PyValidatorPtr)

#---------------------------------------------------------------------------

class Menu(EvtHandler):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_Menu(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)
    def Append(*args, **kwargs): return _core.Menu_Append(*args, **kwargs)
    def AppendSeparator(*args, **kwargs): return _core.Menu_AppendSeparator(*args, **kwargs)
    def AppendCheckItem(*args, **kwargs): return _core.Menu_AppendCheckItem(*args, **kwargs)
    def AppendRadioItem(*args, **kwargs): return _core.Menu_AppendRadioItem(*args, **kwargs)
    def AppendMenu(*args, **kwargs): return _core.Menu_AppendMenu(*args, **kwargs)
    def AppendItem(*args, **kwargs): return _core.Menu_AppendItem(*args, **kwargs)
    def Break(*args, **kwargs): return _core.Menu_Break(*args, **kwargs)
    def InsertItem(*args, **kwargs): return _core.Menu_InsertItem(*args, **kwargs)
    def Insert(*args, **kwargs): return _core.Menu_Insert(*args, **kwargs)
    def InsertSeparator(*args, **kwargs): return _core.Menu_InsertSeparator(*args, **kwargs)
    def InsertCheckItem(*args, **kwargs): return _core.Menu_InsertCheckItem(*args, **kwargs)
    def InsertRadioItem(*args, **kwargs): return _core.Menu_InsertRadioItem(*args, **kwargs)
    def InsertMenu(*args, **kwargs): return _core.Menu_InsertMenu(*args, **kwargs)
    def PrependItem(*args, **kwargs): return _core.Menu_PrependItem(*args, **kwargs)
    def Prepend(*args, **kwargs): return _core.Menu_Prepend(*args, **kwargs)
    def PrependSeparator(*args, **kwargs): return _core.Menu_PrependSeparator(*args, **kwargs)
    def PrependCheckItem(*args, **kwargs): return _core.Menu_PrependCheckItem(*args, **kwargs)
    def PrependRadioItem(*args, **kwargs): return _core.Menu_PrependRadioItem(*args, **kwargs)
    def PrependMenu(*args, **kwargs): return _core.Menu_PrependMenu(*args, **kwargs)
    def Remove(*args, **kwargs): return _core.Menu_Remove(*args, **kwargs)
    def RemoveItem(*args, **kwargs): return _core.Menu_RemoveItem(*args, **kwargs)
    def Delete(*args, **kwargs): return _core.Menu_Delete(*args, **kwargs)
    def DeleteItem(*args, **kwargs): return _core.Menu_DeleteItem(*args, **kwargs)
    def Destroy(*args, **kwargs): return _core.Menu_Destroy(*args, **kwargs)
    def DestroyId(*args, **kwargs): return _core.Menu_DestroyId(*args, **kwargs)
    def DestroyItem(*args, **kwargs): return _core.Menu_DestroyItem(*args, **kwargs)
    def GetMenuItemCount(*args, **kwargs): return _core.Menu_GetMenuItemCount(*args, **kwargs)
    def GetMenuItems(*args, **kwargs): return _core.Menu_GetMenuItems(*args, **kwargs)
    def FindItem(*args, **kwargs): return _core.Menu_FindItem(*args, **kwargs)
    def FindItemById(*args, **kwargs): return _core.Menu_FindItemById(*args, **kwargs)
    def FindItemByPosition(*args, **kwargs): return _core.Menu_FindItemByPosition(*args, **kwargs)
    def Enable(*args, **kwargs): return _core.Menu_Enable(*args, **kwargs)
    def IsEnabled(*args, **kwargs): return _core.Menu_IsEnabled(*args, **kwargs)
    def Check(*args, **kwargs): return _core.Menu_Check(*args, **kwargs)
    def IsChecked(*args, **kwargs): return _core.Menu_IsChecked(*args, **kwargs)
    def SetLabel(*args, **kwargs): return _core.Menu_SetLabel(*args, **kwargs)
    def GetLabel(*args, **kwargs): return _core.Menu_GetLabel(*args, **kwargs)
    def SetHelpString(*args, **kwargs): return _core.Menu_SetHelpString(*args, **kwargs)
    def GetHelpString(*args, **kwargs): return _core.Menu_GetHelpString(*args, **kwargs)
    def SetTitle(*args, **kwargs): return _core.Menu_SetTitle(*args, **kwargs)
    def GetTitle(*args, **kwargs): return _core.Menu_GetTitle(*args, **kwargs)
    def SetEventHandler(*args, **kwargs): return _core.Menu_SetEventHandler(*args, **kwargs)
    def GetEventHandler(*args, **kwargs): return _core.Menu_GetEventHandler(*args, **kwargs)
    def SetInvokingWindow(*args, **kwargs): return _core.Menu_SetInvokingWindow(*args, **kwargs)
    def GetInvokingWindow(*args, **kwargs): return _core.Menu_GetInvokingWindow(*args, **kwargs)
    def GetStyle(*args, **kwargs): return _core.Menu_GetStyle(*args, **kwargs)
    def UpdateUI(*args, **kwargs): return _core.Menu_UpdateUI(*args, **kwargs)
    def GetMenuBar(*args, **kwargs): return _core.Menu_GetMenuBar(*args, **kwargs)
    def Attach(*args, **kwargs): return _core.Menu_Attach(*args, **kwargs)
    def Detach(*args, **kwargs): return _core.Menu_Detach(*args, **kwargs)
    def IsAttached(*args, **kwargs): return _core.Menu_IsAttached(*args, **kwargs)
    def SetParent(*args, **kwargs): return _core.Menu_SetParent(*args, **kwargs)
    def GetParent(*args, **kwargs): return _core.Menu_GetParent(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxMenu instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class MenuPtr(Menu):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Menu
_core.Menu_swigregister(MenuPtr)
DefaultValidator = cvar.DefaultValidator

#---------------------------------------------------------------------------

class MenuBar(Window):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_MenuBar(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)
    def Append(*args, **kwargs): return _core.MenuBar_Append(*args, **kwargs)
    def Insert(*args, **kwargs): return _core.MenuBar_Insert(*args, **kwargs)
    def GetMenuCount(*args, **kwargs): return _core.MenuBar_GetMenuCount(*args, **kwargs)
    def GetMenu(*args, **kwargs): return _core.MenuBar_GetMenu(*args, **kwargs)
    def Replace(*args, **kwargs): return _core.MenuBar_Replace(*args, **kwargs)
    def Remove(*args, **kwargs): return _core.MenuBar_Remove(*args, **kwargs)
    def EnableTop(*args, **kwargs): return _core.MenuBar_EnableTop(*args, **kwargs)
    def IsEnabledTop(*args, **kwargs): return _core.MenuBar_IsEnabledTop(*args, **kwargs)
    def SetLabelTop(*args, **kwargs): return _core.MenuBar_SetLabelTop(*args, **kwargs)
    def GetLabelTop(*args, **kwargs): return _core.MenuBar_GetLabelTop(*args, **kwargs)
    def FindMenuItem(*args, **kwargs): return _core.MenuBar_FindMenuItem(*args, **kwargs)
    def FindItemById(*args, **kwargs): return _core.MenuBar_FindItemById(*args, **kwargs)
    def FindMenu(*args, **kwargs): return _core.MenuBar_FindMenu(*args, **kwargs)
    def Enable(*args, **kwargs): return _core.MenuBar_Enable(*args, **kwargs)
    def Check(*args, **kwargs): return _core.MenuBar_Check(*args, **kwargs)
    def IsChecked(*args, **kwargs): return _core.MenuBar_IsChecked(*args, **kwargs)
    def IsEnabled(*args, **kwargs): return _core.MenuBar_IsEnabled(*args, **kwargs)
    def SetLabel(*args, **kwargs): return _core.MenuBar_SetLabel(*args, **kwargs)
    def GetLabel(*args, **kwargs): return _core.MenuBar_GetLabel(*args, **kwargs)
    def SetHelpString(*args, **kwargs): return _core.MenuBar_SetHelpString(*args, **kwargs)
    def GetHelpString(*args, **kwargs): return _core.MenuBar_GetHelpString(*args, **kwargs)
    def GetFrame(*args, **kwargs): return _core.MenuBar_GetFrame(*args, **kwargs)
    def IsAttached(*args, **kwargs): return _core.MenuBar_IsAttached(*args, **kwargs)
    def Attach(*args, **kwargs): return _core.MenuBar_Attach(*args, **kwargs)
    def Detach(*args, **kwargs): return _core.MenuBar_Detach(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxMenuBar instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class MenuBarPtr(MenuBar):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = MenuBar
_core.MenuBar_swigregister(MenuBarPtr)

#---------------------------------------------------------------------------

class MenuItem(Object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_MenuItem(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetMenu(*args, **kwargs): return _core.MenuItem_GetMenu(*args, **kwargs)
    def SetMenu(*args, **kwargs): return _core.MenuItem_SetMenu(*args, **kwargs)
    def SetId(*args, **kwargs): return _core.MenuItem_SetId(*args, **kwargs)
    def GetId(*args, **kwargs): return _core.MenuItem_GetId(*args, **kwargs)
    def IsSeparator(*args, **kwargs): return _core.MenuItem_IsSeparator(*args, **kwargs)
    def SetText(*args, **kwargs): return _core.MenuItem_SetText(*args, **kwargs)
    def GetLabel(*args, **kwargs): return _core.MenuItem_GetLabel(*args, **kwargs)
    def GetText(*args, **kwargs): return _core.MenuItem_GetText(*args, **kwargs)
    GetLabelFromText = staticmethod(_core.MenuItem_GetLabelFromText)
    def GetKind(*args, **kwargs): return _core.MenuItem_GetKind(*args, **kwargs)
    def SetCheckable(*args, **kwargs): return _core.MenuItem_SetCheckable(*args, **kwargs)
    def IsCheckable(*args, **kwargs): return _core.MenuItem_IsCheckable(*args, **kwargs)
    def IsSubMenu(*args, **kwargs): return _core.MenuItem_IsSubMenu(*args, **kwargs)
    def SetSubMenu(*args, **kwargs): return _core.MenuItem_SetSubMenu(*args, **kwargs)
    def GetSubMenu(*args, **kwargs): return _core.MenuItem_GetSubMenu(*args, **kwargs)
    def Enable(*args, **kwargs): return _core.MenuItem_Enable(*args, **kwargs)
    def IsEnabled(*args, **kwargs): return _core.MenuItem_IsEnabled(*args, **kwargs)
    def Check(*args, **kwargs): return _core.MenuItem_Check(*args, **kwargs)
    def IsChecked(*args, **kwargs): return _core.MenuItem_IsChecked(*args, **kwargs)
    def Toggle(*args, **kwargs): return _core.MenuItem_Toggle(*args, **kwargs)
    def SetHelp(*args, **kwargs): return _core.MenuItem_SetHelp(*args, **kwargs)
    def GetHelp(*args, **kwargs): return _core.MenuItem_GetHelp(*args, **kwargs)
    def GetAccel(*args, **kwargs): return _core.MenuItem_GetAccel(*args, **kwargs)
    def SetAccel(*args, **kwargs): return _core.MenuItem_SetAccel(*args, **kwargs)
    GetDefaultMarginWidth = staticmethod(_core.MenuItem_GetDefaultMarginWidth)
    def SetBitmap(*args, **kwargs): return _core.MenuItem_SetBitmap(*args, **kwargs)
    def GetBitmap(*args, **kwargs): return _core.MenuItem_GetBitmap(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxMenuItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class MenuItemPtr(MenuItem):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = MenuItem
_core.MenuItem_swigregister(MenuItemPtr)

MenuItem_GetLabelFromText = _core.MenuItem_GetLabelFromText

MenuItem_GetDefaultMarginWidth = _core.MenuItem_GetDefaultMarginWidth

#---------------------------------------------------------------------------

class Control(Window):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_Control(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)
    def Create(*args, **kwargs): return _core.Control_Create(*args, **kwargs)
    def Command(*args, **kwargs): return _core.Control_Command(*args, **kwargs)
    def GetLabel(*args, **kwargs): return _core.Control_GetLabel(*args, **kwargs)
    def SetLabel(*args, **kwargs): return _core.Control_SetLabel(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxControl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ControlPtr(Control):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Control
_core.Control_swigregister(ControlPtr)

def PreControl(*args, **kwargs):
    val = _core.new_PreControl(*args, **kwargs)
    val.thisown = 1
    return val

#---------------------------------------------------------------------------

class ItemContainer(object):
    def Append(*args, **kwargs): return _core.ItemContainer_Append(*args, **kwargs)
    def AppendItems(*args, **kwargs): return _core.ItemContainer_AppendItems(*args, **kwargs)
    def Insert(*args, **kwargs): return _core.ItemContainer_Insert(*args, **kwargs)
    def Clear(*args, **kwargs): return _core.ItemContainer_Clear(*args, **kwargs)
    def Delete(*args, **kwargs): return _core.ItemContainer_Delete(*args, **kwargs)
    def GetCount(*args, **kwargs): return _core.ItemContainer_GetCount(*args, **kwargs)
    def IsEmpty(*args, **kwargs): return _core.ItemContainer_IsEmpty(*args, **kwargs)
    def GetString(*args, **kwargs): return _core.ItemContainer_GetString(*args, **kwargs)
    def GetStrings(*args, **kwargs): return _core.ItemContainer_GetStrings(*args, **kwargs)
    def SetString(*args, **kwargs): return _core.ItemContainer_SetString(*args, **kwargs)
    def FindString(*args, **kwargs): return _core.ItemContainer_FindString(*args, **kwargs)
    def Select(*args, **kwargs): return _core.ItemContainer_Select(*args, **kwargs)
    def GetSelection(*args, **kwargs): return _core.ItemContainer_GetSelection(*args, **kwargs)
    def GetStringSelection(*args, **kwargs): return _core.ItemContainer_GetStringSelection(*args, **kwargs)
    def GetClientData(*args, **kwargs): return _core.ItemContainer_GetClientData(*args, **kwargs)
    def SetClientData(*args, **kwargs): return _core.ItemContainer_SetClientData(*args, **kwargs)
    def __init__(self): raise RuntimeError, "No constructor defined"
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxItemContainer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ItemContainerPtr(ItemContainer):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ItemContainer
_core.ItemContainer_swigregister(ItemContainerPtr)

#---------------------------------------------------------------------------

class ControlWithItems(Control,ItemContainer):
    def __init__(self): raise RuntimeError, "No constructor defined"
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxControlWithItems instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class ControlWithItemsPtr(ControlWithItems):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = ControlWithItems
_core.ControlWithItems_swigregister(ControlWithItemsPtr)

#---------------------------------------------------------------------------

class SizerItem(Object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_SizerItem(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def DeleteWindows(*args, **kwargs): return _core.SizerItem_DeleteWindows(*args, **kwargs)
    def DetachSizer(*args, **kwargs): return _core.SizerItem_DetachSizer(*args, **kwargs)
    def GetSize(*args, **kwargs): return _core.SizerItem_GetSize(*args, **kwargs)
    def CalcMin(*args, **kwargs): return _core.SizerItem_CalcMin(*args, **kwargs)
    def SetDimension(*args, **kwargs): return _core.SizerItem_SetDimension(*args, **kwargs)
    def GetMinSize(*args, **kwargs): return _core.SizerItem_GetMinSize(*args, **kwargs)
    def SetInitSize(*args, **kwargs): return _core.SizerItem_SetInitSize(*args, **kwargs)
    def SetRatioWH(*args, **kwargs): return _core.SizerItem_SetRatioWH(*args, **kwargs)
    def SetRatioSize(*args, **kwargs): return _core.SizerItem_SetRatioSize(*args, **kwargs)
    def SetRatio(*args, **kwargs): return _core.SizerItem_SetRatio(*args, **kwargs)
    def GetRatio(*args, **kwargs): return _core.SizerItem_GetRatio(*args, **kwargs)
    def IsWindow(*args, **kwargs): return _core.SizerItem_IsWindow(*args, **kwargs)
    def IsSizer(*args, **kwargs): return _core.SizerItem_IsSizer(*args, **kwargs)
    def IsSpacer(*args, **kwargs): return _core.SizerItem_IsSpacer(*args, **kwargs)
    def SetProportion(*args, **kwargs): return _core.SizerItem_SetProportion(*args, **kwargs)
    def GetProportion(*args, **kwargs): return _core.SizerItem_GetProportion(*args, **kwargs)
    def SetFlag(*args, **kwargs): return _core.SizerItem_SetFlag(*args, **kwargs)
    def GetFlag(*args, **kwargs): return _core.SizerItem_GetFlag(*args, **kwargs)
    def SetBorder(*args, **kwargs): return _core.SizerItem_SetBorder(*args, **kwargs)
    def GetBorder(*args, **kwargs): return _core.SizerItem_GetBorder(*args, **kwargs)
    def GetWindow(*args, **kwargs): return _core.SizerItem_GetWindow(*args, **kwargs)
    def SetWindow(*args, **kwargs): return _core.SizerItem_SetWindow(*args, **kwargs)
    def GetSizer(*args, **kwargs): return _core.SizerItem_GetSizer(*args, **kwargs)
    def SetSizer(*args, **kwargs): return _core.SizerItem_SetSizer(*args, **kwargs)
    def GetSpacer(*args, **kwargs): return _core.SizerItem_GetSpacer(*args, **kwargs)
    def SetSpacer(*args, **kwargs): return _core.SizerItem_SetSpacer(*args, **kwargs)
    def Show(*args, **kwargs): return _core.SizerItem_Show(*args, **kwargs)
    def IsShown(*args, **kwargs): return _core.SizerItem_IsShown(*args, **kwargs)
    def GetPosition(*args, **kwargs): return _core.SizerItem_GetPosition(*args, **kwargs)
    def GetUserData(*args, **kwargs): return _core.SizerItem_GetUserData(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxSizerItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class SizerItemPtr(SizerItem):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = SizerItem
_core.SizerItem_swigregister(SizerItemPtr)

def SizerItemSpacer(*args, **kwargs):
    val = _core.new_SizerItemSpacer(*args, **kwargs)
    val.thisown = 1
    return val

def SizerItemWindow(*args, **kwargs):
    val = _core.new_SizerItemWindow(*args, **kwargs)
    val.thisown = 1
    return val

def SizerItemSizer(*args, **kwargs):
    val = _core.new_SizerItemSizer(*args, **kwargs)
    val.thisown = 1
    return val

class Sizer(Object):
    def _setOORInfo(*args, **kwargs): return _core.Sizer__setOORInfo(*args, **kwargs)
    def Add(*args, **kwargs): return _core.Sizer_Add(*args, **kwargs)
    def Insert(*args, **kwargs): return _core.Sizer_Insert(*args, **kwargs)
    def Prepend(*args, **kwargs): return _core.Sizer_Prepend(*args, **kwargs)
    def Remove(*args, **kwargs): return _core.Sizer_Remove(*args, **kwargs)
    def _SetItemMinSize(*args, **kwargs): return _core.Sizer__SetItemMinSize(*args, **kwargs)
    def AddItem(*args, **kwargs): return _core.Sizer_AddItem(*args, **kwargs)
    def InsertItem(*args, **kwargs): return _core.Sizer_InsertItem(*args, **kwargs)
    def PrependItem(*args, **kwargs): return _core.Sizer_PrependItem(*args, **kwargs)
    def AddMany(self, widgets):
        for childinfo in widgets:
            if type(childinfo) != type(()):
                childinfo = (childinfo, )
            self.Add(*childinfo)


    AddWindow = AddSizer = AddSpacer = Add
    PrependWindow = PrependSizer = PrependSpacer = Prepend
    InsertWindow = InsertSizer = InsertSpacer = Insert
    RemoveWindow = RemoveSizer = RemovePos = Remove


    def SetItemMinSize(self, item, *args):
        if len(args) == 2:
            return self._SetItemMinSize(item, args)
        else:
            return self._SetItemMinSize(item, args[0])

    def SetDimension(*args, **kwargs): return _core.Sizer_SetDimension(*args, **kwargs)
    def SetMinSize(*args, **kwargs): return _core.Sizer_SetMinSize(*args, **kwargs)
    def GetSize(*args, **kwargs): return _core.Sizer_GetSize(*args, **kwargs)
    def GetPosition(*args, **kwargs): return _core.Sizer_GetPosition(*args, **kwargs)
    def GetMinSize(*args, **kwargs): return _core.Sizer_GetMinSize(*args, **kwargs)
    def GetSizeTuple(self):
        return self.GetSize().asTuple()
    def GetPositionTuple(self):
        return self.GetPosition().asTuple()
    def GetMinSizeTuple(self):
        return self.GetMinSize().asTuple()

    def RecalcSizes(*args, **kwargs): return _core.Sizer_RecalcSizes(*args, **kwargs)
    def CalcMin(*args, **kwargs): return _core.Sizer_CalcMin(*args, **kwargs)
    def Layout(*args, **kwargs): return _core.Sizer_Layout(*args, **kwargs)
    def Fit(*args, **kwargs): return _core.Sizer_Fit(*args, **kwargs)
    def FitInside(*args, **kwargs): return _core.Sizer_FitInside(*args, **kwargs)
    def SetSizeHints(*args, **kwargs): return _core.Sizer_SetSizeHints(*args, **kwargs)
    def SetVirtualSizeHints(*args, **kwargs): return _core.Sizer_SetVirtualSizeHints(*args, **kwargs)
    def Clear(*args, **kwargs): return _core.Sizer_Clear(*args, **kwargs)
    def DeleteWindows(*args, **kwargs): return _core.Sizer_DeleteWindows(*args, **kwargs)
    def GetChildren(*args, **kwargs): return _core.Sizer_GetChildren(*args, **kwargs)
    def Show(*args, **kwargs): return _core.Sizer_Show(*args, **kwargs)
    def Hide(*args, **kwargs): return _core.Sizer_Hide(*args, **kwargs)
    def IsShown(*args, **kwargs): return _core.Sizer_IsShown(*args, **kwargs)
    def ShowItems(*args, **kwargs): return _core.Sizer_ShowItems(*args, **kwargs)
    def __init__(self): raise RuntimeError, "No constructor defined"
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class SizerPtr(Sizer):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = Sizer
_core.Sizer_swigregister(SizerPtr)

class PySizer(Sizer):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_PySizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setCallbackInfo(self, PySizer);self._setOORInfo(self)
    def _setCallbackInfo(*args, **kwargs): return _core.PySizer__setCallbackInfo(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPySizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class PySizerPtr(PySizer):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = PySizer
_core.PySizer_swigregister(PySizerPtr)

#---------------------------------------------------------------------------

class BoxSizer(Sizer):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_BoxSizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)
    def GetOrientation(*args, **kwargs): return _core.BoxSizer_GetOrientation(*args, **kwargs)
    def SetOrientation(*args, **kwargs): return _core.BoxSizer_SetOrientation(*args, **kwargs)
    def RecalcSizes(*args, **kwargs): return _core.BoxSizer_RecalcSizes(*args, **kwargs)
    def CalcMin(*args, **kwargs): return _core.BoxSizer_CalcMin(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxBoxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class BoxSizerPtr(BoxSizer):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = BoxSizer
_core.BoxSizer_swigregister(BoxSizerPtr)

#---------------------------------------------------------------------------

class StaticBoxSizer(BoxSizer):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_StaticBoxSizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)
    def GetStaticBox(*args, **kwargs): return _core.StaticBoxSizer_GetStaticBox(*args, **kwargs)
    def RecalcSizes(*args, **kwargs): return _core.StaticBoxSizer_RecalcSizes(*args, **kwargs)
    def CalcMin(*args, **kwargs): return _core.StaticBoxSizer_CalcMin(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxStaticBoxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class StaticBoxSizerPtr(StaticBoxSizer):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = StaticBoxSizer
_core.StaticBoxSizer_swigregister(StaticBoxSizerPtr)

#---------------------------------------------------------------------------

class GridSizer(Sizer):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_GridSizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)
    def RecalcSizes(*args, **kwargs): return _core.GridSizer_RecalcSizes(*args, **kwargs)
    def CalcMin(*args, **kwargs): return _core.GridSizer_CalcMin(*args, **kwargs)
    def SetCols(*args, **kwargs): return _core.GridSizer_SetCols(*args, **kwargs)
    def SetRows(*args, **kwargs): return _core.GridSizer_SetRows(*args, **kwargs)
    def SetVGap(*args, **kwargs): return _core.GridSizer_SetVGap(*args, **kwargs)
    def SetHGap(*args, **kwargs): return _core.GridSizer_SetHGap(*args, **kwargs)
    def GetCols(*args, **kwargs): return _core.GridSizer_GetCols(*args, **kwargs)
    def GetRows(*args, **kwargs): return _core.GridSizer_GetRows(*args, **kwargs)
    def GetVGap(*args, **kwargs): return _core.GridSizer_GetVGap(*args, **kwargs)
    def GetHGap(*args, **kwargs): return _core.GridSizer_GetHGap(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxGridSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class GridSizerPtr(GridSizer):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = GridSizer
_core.GridSizer_swigregister(GridSizerPtr)

#---------------------------------------------------------------------------

FLEX_GROWMODE_NONE = _core.FLEX_GROWMODE_NONE
FLEX_GROWMODE_SPECIFIED = _core.FLEX_GROWMODE_SPECIFIED
FLEX_GROWMODE_ALL = _core.FLEX_GROWMODE_ALL
class FlexGridSizer(GridSizer):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_FlexGridSizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)
    def RecalcSizes(*args, **kwargs): return _core.FlexGridSizer_RecalcSizes(*args, **kwargs)
    def CalcMin(*args, **kwargs): return _core.FlexGridSizer_CalcMin(*args, **kwargs)
    def AddGrowableRow(*args, **kwargs): return _core.FlexGridSizer_AddGrowableRow(*args, **kwargs)
    def RemoveGrowableRow(*args, **kwargs): return _core.FlexGridSizer_RemoveGrowableRow(*args, **kwargs)
    def AddGrowableCol(*args, **kwargs): return _core.FlexGridSizer_AddGrowableCol(*args, **kwargs)
    def RemoveGrowableCol(*args, **kwargs): return _core.FlexGridSizer_RemoveGrowableCol(*args, **kwargs)
    def SetFlexibleDirection(*args, **kwargs): return _core.FlexGridSizer_SetFlexibleDirection(*args, **kwargs)
    def GetFlexibleDirection(*args, **kwargs): return _core.FlexGridSizer_GetFlexibleDirection(*args, **kwargs)
    def SetNonFlexibleGrowMode(*args, **kwargs): return _core.FlexGridSizer_SetNonFlexibleGrowMode(*args, **kwargs)
    def GetNonFlexibleGrowMode(*args, **kwargs): return _core.FlexGridSizer_GetNonFlexibleGrowMode(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxFlexGridSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class FlexGridSizerPtr(FlexGridSizer):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = FlexGridSizer
_core.FlexGridSizer_swigregister(FlexGridSizerPtr)

#---------------------------------------------------------------------------

class GBPosition(object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_GBPosition(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetRow(*args, **kwargs): return _core.GBPosition_GetRow(*args, **kwargs)
    def GetCol(*args, **kwargs): return _core.GBPosition_GetCol(*args, **kwargs)
    def SetRow(*args, **kwargs): return _core.GBPosition_SetRow(*args, **kwargs)
    def SetCol(*args, **kwargs): return _core.GBPosition_SetCol(*args, **kwargs)
    def __eq__(*args, **kwargs): return _core.GBPosition___eq__(*args, **kwargs)
    def __ne__(*args, **kwargs): return _core.GBPosition___ne__(*args, **kwargs)
    def asTuple(*args, **kwargs): return _core.GBPosition_asTuple(*args, **kwargs)
    def __str__(self):                   return str(self.asTuple())
    def __repr__(self):                  return 'wxGBPosition'+str(self.asTuple())
    def __len__(self):                   return len(self.asTuple())
    def __getitem__(self, index):        return self.asTuple()[index]
    def __setitem__(self, index, val):
        if index == 0: self.SetRow(val)
        elif index == 1: self.SetCol(val)
        else: raise IndexError
    def __nonzero__(self):               return self.asTuple() != (0,0)
    def __getinitargs__(self):           return ()
    def __getstate__(self):              return self.asTuple()
    def __setstate__(self, state):       self.Set(*state)

    row = property(GetRow, SetRow)
    col = property(GetCol, SetCol)


class GBPositionPtr(GBPosition):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = GBPosition
_core.GBPosition_swigregister(GBPositionPtr)

class GBSpan(object):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_GBSpan(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetRowspan(*args, **kwargs): return _core.GBSpan_GetRowspan(*args, **kwargs)
    def GetColspan(*args, **kwargs): return _core.GBSpan_GetColspan(*args, **kwargs)
    def SetRowspan(*args, **kwargs): return _core.GBSpan_SetRowspan(*args, **kwargs)
    def SetColspan(*args, **kwargs): return _core.GBSpan_SetColspan(*args, **kwargs)
    def __eq__(*args, **kwargs): return _core.GBSpan___eq__(*args, **kwargs)
    def __ne__(*args, **kwargs): return _core.GBSpan___ne__(*args, **kwargs)
    def asTuple(*args, **kwargs): return _core.GBSpan_asTuple(*args, **kwargs)
    def __str__(self):                   return str(self.asTuple())
    def __repr__(self):                  return 'wxGBSpan'+str(self.asTuple())
    def __len__(self):                   return len(self.asTuple())
    def __getitem__(self, index):        return self.asTuple()[index]
    def __setitem__(self, index, val):
        if index == 0: self.SetRowspan(val)
        elif index == 1: self.SetColspan(val)
        else: raise IndexError
    def __nonzero__(self):               return self.asTuple() != (0,0)
    def __getinitargs__(self):           return ()
    def __getstate__(self):              return self.asTuple()
    def __setstate__(self, state):       self.Set(*state)

    rowspan = property(GetRowspan, SetRowspan)
    colspan = property(GetColspan, SetColspan)


class GBSpanPtr(GBSpan):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = GBSpan
_core.GBSpan_swigregister(GBSpanPtr)

class GBSizerItem(SizerItem):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_GBSizerItem(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetPos(*args, **kwargs): return _core.GBSizerItem_GetPos(*args, **kwargs)
    def GetPosTuple(self): return self.GetPos().asTuple() 
    def GetSpan(*args, **kwargs): return _core.GBSizerItem_GetSpan(*args, **kwargs)
    def GetSpanTuple(self): return self.GetSpan().asTuple() 
    def SetPos(*args, **kwargs): return _core.GBSizerItem_SetPos(*args, **kwargs)
    def SetSpan(*args, **kwargs): return _core.GBSizerItem_SetSpan(*args, **kwargs)
    def Intersects(*args): return _core.GBSizerItem_Intersects(*args)
    def GetEndPos(*args, **kwargs): return _core.GBSizerItem_GetEndPos(*args, **kwargs)
    def GetGBSizer(*args, **kwargs): return _core.GBSizerItem_GetGBSizer(*args, **kwargs)
    def SetGBSizer(*args, **kwargs): return _core.GBSizerItem_SetGBSizer(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxGBSizerItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class GBSizerItemPtr(GBSizerItem):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = GBSizerItem
_core.GBSizerItem_swigregister(GBSizerItemPtr)
DefaultSpan = cvar.DefaultSpan

def GBSizerItemWindow(*args, **kwargs):
    val = _core.new_GBSizerItemWindow(*args, **kwargs)
    val.thisown = 1
    return val

def GBSizerItemSizer(*args, **kwargs):
    val = _core.new_GBSizerItemSizer(*args, **kwargs)
    val.thisown = 1
    return val

def GBSizerItemSpacer(*args, **kwargs):
    val = _core.new_GBSizerItemSpacer(*args, **kwargs)
    val.thisown = 1
    return val

class GridBagSizer(FlexGridSizer):
    def __init__(self, *args, **kwargs):
        newobj = _core.new_GridBagSizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def Add(*args, **kwargs): return _core.GridBagSizer_Add(*args, **kwargs)
    def AddItem(*args, **kwargs): return _core.GridBagSizer_AddItem(*args, **kwargs)
    def GetEmptyCellSize(*args, **kwargs): return _core.GridBagSizer_GetEmptyCellSize(*args, **kwargs)
    def SetEmptyCellSize(*args, **kwargs): return _core.GridBagSizer_SetEmptyCellSize(*args, **kwargs)
    def GetItemPosition(*args): return _core.GridBagSizer_GetItemPosition(*args)
    def SetItemPosition(*args): return _core.GridBagSizer_SetItemPosition(*args)
    def GetItemSpan(*args): return _core.GridBagSizer_GetItemSpan(*args)
    def SetItemSpan(*args): return _core.GridBagSizer_SetItemSpan(*args)
    def FindItem(*args): return _core.GridBagSizer_FindItem(*args)
    def FindItemAtPosition(*args, **kwargs): return _core.GridBagSizer_FindItemAtPosition(*args, **kwargs)
    def FindItemWithData(*args, **kwargs): return _core.GridBagSizer_FindItemWithData(*args, **kwargs)
    def RecalcSizes(*args, **kwargs): return _core.GridBagSizer_RecalcSizes(*args, **kwargs)
    def CalcMin(*args, **kwargs): return _core.GridBagSizer_CalcMin(*args, **kwargs)
    def CheckForIntersection(*args): return _core.GridBagSizer_CheckForIntersection(*args)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxGridBagSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class GridBagSizerPtr(GridBagSizer):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = GridBagSizer
_core.GridBagSizer_swigregister(GridBagSizerPtr)

#---------------------------------------------------------------------------

Left = _core.Left
Top = _core.Top
Right = _core.Right
Bottom = _core.Bottom
Width = _core.Width
Height = _core.Height
Centre = _core.Centre
Center = _core.Center
CentreX = _core.CentreX
CentreY = _core.CentreY
Unconstrained = _core.Unconstrained
AsIs = _core.AsIs
PercentOf = _core.PercentOf
Above = _core.Above
Below = _core.Below
LeftOf = _core.LeftOf
RightOf = _core.RightOf
SameAs = _core.SameAs
Absolute = _core.Absolute
class IndividualLayoutConstraint(Object):
    def Set(*args, **kwargs): return _core.IndividualLayoutConstraint_Set(*args, **kwargs)
    def LeftOf(*args, **kwargs): return _core.IndividualLayoutConstraint_LeftOf(*args, **kwargs)
    def RightOf(*args, **kwargs): return _core.IndividualLayoutConstraint_RightOf(*args, **kwargs)
    def Above(*args, **kwargs): return _core.IndividualLayoutConstraint_Above(*args, **kwargs)
    def Below(*args, **kwargs): return _core.IndividualLayoutConstraint_Below(*args, **kwargs)
    def SameAs(*args, **kwargs): return _core.IndividualLayoutConstraint_SameAs(*args, **kwargs)
    def PercentOf(*args, **kwargs): return _core.IndividualLayoutConstraint_PercentOf(*args, **kwargs)
    def Absolute(*args, **kwargs): return _core.IndividualLayoutConstraint_Absolute(*args, **kwargs)
    def Unconstrained(*args, **kwargs): return _core.IndividualLayoutConstraint_Unconstrained(*args, **kwargs)
    def AsIs(*args, **kwargs): return _core.IndividualLayoutConstraint_AsIs(*args, **kwargs)
    def GetOtherWindow(*args, **kwargs): return _core.IndividualLayoutConstraint_GetOtherWindow(*args, **kwargs)
    def GetMyEdge(*args, **kwargs): return _core.IndividualLayoutConstraint_GetMyEdge(*args, **kwargs)
    def SetEdge(*args, **kwargs): return _core.IndividualLayoutConstraint_SetEdge(*args, **kwargs)
    def SetValue(*args, **kwargs): return _core.IndividualLayoutConstraint_SetValue(*args, **kwargs)
    def GetMargin(*args, **kwargs): return _core.IndividualLayoutConstraint_GetMargin(*args, **kwargs)
    def SetMargin(*args, **kwargs): return _core.IndividualLayoutConstraint_SetMargin(*args, **kwargs)
    def GetValue(*args, **kwargs): return _core.IndividualLayoutConstraint_GetValue(*args, **kwargs)
    def GetPercent(*args, **kwargs): return _core.IndividualLayoutConstraint_GetPercent(*args, **kwargs)
    def GetOtherEdge(*args, **kwargs): return _core.IndividualLayoutConstraint_GetOtherEdge(*args, **kwargs)
    def GetDone(*args, **kwargs): return _core.IndividualLayoutConstraint_GetDone(*args, **kwargs)
    def SetDone(*args, **kwargs): return _core.IndividualLayoutConstraint_SetDone(*args, **kwargs)
    def GetRelationship(*args, **kwargs): return _core.IndividualLayoutConstraint_GetRelationship(*args, **kwargs)
    def SetRelationship(*args, **kwargs): return _core.IndividualLayoutConstraint_SetRelationship(*args, **kwargs)
    def ResetIfWin(*args, **kwargs): return _core.IndividualLayoutConstraint_ResetIfWin(*args, **kwargs)
    def SatisfyConstraint(*args, **kwargs): return _core.IndividualLayoutConstraint_SatisfyConstraint(*args, **kwargs)
    def GetEdge(*args, **kwargs): return _core.IndividualLayoutConstraint_GetEdge(*args, **kwargs)
    def __init__(self): raise RuntimeError, "No constructor defined"
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxIndividualLayoutConstraint instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class IndividualLayoutConstraintPtr(IndividualLayoutConstraint):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = IndividualLayoutConstraint
_core.IndividualLayoutConstraint_swigregister(IndividualLayoutConstraintPtr)

class LayoutConstraints(Object):
    left = property(_core.LayoutConstraints_left_get)
    top = property(_core.LayoutConstraints_top_get)
    right = property(_core.LayoutConstraints_right_get)
    bottom = property(_core.LayoutConstraints_bottom_get)
    width = property(_core.LayoutConstraints_width_get)
    height = property(_core.LayoutConstraints_height_get)
    centreX = property(_core.LayoutConstraints_centreX_get)
    centreY = property(_core.LayoutConstraints_centreY_get)
    def __init__(self, *args, **kwargs):
        newobj = _core.new_LayoutConstraints(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def SatisfyConstraints(*args, **kwargs): return _core.LayoutConstraints_SatisfyConstraints(*args, **kwargs)
    def AreSatisfied(*args, **kwargs): return _core.LayoutConstraints_AreSatisfied(*args, **kwargs)
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxLayoutConstraints instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)

class LayoutConstraintsPtr(LayoutConstraints):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = LayoutConstraints
_core.LayoutConstraints_swigregister(LayoutConstraintsPtr)

#----------------------------------------------------------------------------

# Use Python's bool constants if available, make aliases if not
try:
    True
except NameError:
    True = 1==1
    False = 1==0

# Backwards compaatibility
TRUE  = true  = True
FALSE = false = False


# workarounds for bad wxRTTI names
__wxPyPtrTypeMap['wxGauge95']    = 'wxGauge'
__wxPyPtrTypeMap['wxSlider95']   = 'wxSlider'
__wxPyPtrTypeMap['wxStatusBar95']   = 'wxStatusBar'


#----------------------------------------------------------------------------
# Load version numbers from __version__...  Ensure that major and minor
# versions are the same for both wxPython and wxWindows.

from __version__ import *
__version__ = VERSION_STRING

assert MAJOR_VERSION == _core.MAJOR_VERSION, "wxPython/wxWindows version mismatch"
assert MINOR_VERSION == _core.MINOR_VERSION, "wxPython/wxWindows version mismatch"
if RELEASE_VERSION != _core.RELEASE_VERSION:
    import warnings
    warnings.warn("wxPython/wxWindows release number mismatch")

#----------------------------------------------------------------------------

class PyDeadObjectError(AttributeError):
    pass


class _wxPyDeadObject(object):
    """
    Instances of wx objects that are OOR capable will have their __class__
    changed to this class when the C++ object is deleted.  This should help
    prevent crashes due to referencing a bogus C++ pointer.
    """
    reprStr = "wxPython wrapper for DELETED %s object! (The C++ object no longer exists.)"
    attrStr = "The C++ part of the %s object has been deleted, attribute access no longer allowed."

    def __repr__( self ):
        if not hasattr(self, "_name"):
            self._name = "[unknown]"
        return self.reprStr % self._name

    def __getattr__( self, *args ):
        if not hasattr(self, "_name"):
            self._name = "[unknown]"
        raise PyDeadObjectError( self.attrStr % self._name )

    def __nonzero__(self):
        return 0


#----------------------------------------------------------------------------
_wxPyCallAfterId = None

def CallAfter(callable, *args, **kw):
    """
    Call the specified function after the current and pending event
    handlers have been completed.  This is also good for making GUI
    method calls from non-GUI threads.
    """
    app = wx.GetApp()
    assert app, 'No wxApp created yet'

    global _wxPyCallAfterId
    if _wxPyCallAfterId is None:
        _wxPyCallAfterId = wx.NewEventType()
        app.Connect(-1, -1, _wxPyCallAfterId,
              lambda event: event.callable(*event.args, **event.kw) )
    evt = wx.PyEvent()
    evt.SetEventType(_wxPyCallAfterId)
    evt.callable = callable
    evt.args = args
    evt.kw = kw
    wx.PostEvent(app, evt)


#----------------------------------------------------------------------------


class FutureCall:
    """
    A convenience class for wxTimer, that calls the given callable
    object once after the given amount of milliseconds, passing any
    positional or keyword args.  The return value of the callable is
    availbale after it has been run with the GetResult method.

    If you don't need to get the return value or restart the timer
    then there is no need to hold a reference to this object.  It will
    hold a reference to itself while the timer is running (the timer
    has a reference to self.Notify) but the cycle will be broken when
    the timer completes, automatically cleaning up the wx.FutureCall
    object.
    """
    def __init__(self, millis, callable, *args, **kwargs):
        self.millis = millis
        self.callable = callable
        self.SetArgs(*args, **kwargs)
        self.runCount = 0
        self.hasRun = False
        self.result = None
        self.timer = None
        self.Start()

    def __del__(self):
        self.Stop()


    def Start(self, millis=None, *args, **kwargs):
        """
        (Re)start the timer
        """
        self.hasRun = False
        if millis is not None:
            self.millis = millis
        if args or kwargs:
            self.SetArgs(*args, **kwargs)
        self.Stop()
        self.timer = wx.PyTimer(self.Notify)
        self.timer.Start(self.millis, wx.TIMER_ONE_SHOT)
    Restart = Start


    def Stop(self):
        """
        Stop and destroy the timer.
        """
        if self.timer is not None:
            self.timer.Stop()
            self.timer = None


    def GetInterval(self):
        if self.timer is not None:
            return self.timer.GetInterval()
        else:
            return 0


    def IsRunning(self):
        return self.timer is not None and self.timer.IsRunning()


    def SetArgs(self, *args, **kwargs):
        """
        (Re)set the args passed to the callable object.  This is
        useful in conjunction with Restart if you want to schedule a
        new call to the same callable object but with different
        parameters.
        """
        self.args = args
        self.kwargs = kwargs


    def HasRun(self):
        return self.hasRun

    def GetResult(self):
        return self.result

    def Notify(self):
        """
        The timer has expired so call the callable.
        """
        if self.callable and getattr(self.callable, 'im_self', True):
            self.runCount += 1
            self.result = self.callable(*self.args, **self.kwargs)
        self.hasRun = True
        wx.CallAfter(self.Stop)


#----------------------------------------------------------------------------
#----------------------------------------------------------------------------

# Import other modules in this package that should show up in the
# "core" wx namespace
from gdi import *
from windows import *
from controls import *
from misc import *

#----------------------------------------------------------------------------
#----------------------------------------------------------------------------


