# 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
FULL_REPAINT_ON_RESIZE = _core.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):
    """
    The base class for most wx objects, although in wxPython not
    much functionality is needed nor exposed.
    """
    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,)
    def GetClassName(*args, **kwargs):
        """
        GetClassName() -> String

        Returns the class name of the C++ object using wxRTTI.
        """
        return _core.Object_GetClassName(*args, **kwargs)

    def Destroy(*args, **kwargs):
        """
        Destroy()

        Deletes the C++ object this Python object is a proxy for.
        """
        return _core.Object_Destroy(*args, **kwargs)


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

_wxPyFixStockObjects = _core._wxPyFixStockObjects

cvar = _core.cvar
EmptyString = cvar.EmptyString

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

BITMAP_TYPE_INVALID = _core.BITMAP_TYPE_INVALID
BITMAP_TYPE_BMP = _core.BITMAP_TYPE_BMP
BITMAP_TYPE_ICO = _core.BITMAP_TYPE_ICO
BITMAP_TYPE_CUR = _core.BITMAP_TYPE_CUR
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_GIF = _core.BITMAP_TYPE_GIF
BITMAP_TYPE_PNG = _core.BITMAP_TYPE_PNG
BITMAP_TYPE_JPEG = _core.BITMAP_TYPE_JPEG
BITMAP_TYPE_PNM = _core.BITMAP_TYPE_PNM
BITMAP_TYPE_PCX = _core.BITMAP_TYPE_PCX
BITMAP_TYPE_PICT = _core.BITMAP_TYPE_PICT
BITMAP_TYPE_ICON = _core.BITMAP_TYPE_ICON
BITMAP_TYPE_ANI = _core.BITMAP_TYPE_ANI
BITMAP_TYPE_IFF = _core.BITMAP_TYPE_IFF
BITMAP_TYPE_MACCURSOR = _core.BITMAP_TYPE_MACCURSOR
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):
    """
    wx.Size is a useful data structure used to represent the size of something.
    It simply contians integer width and height proprtites.  In most places in
    wxPython where a wx.Size is expected a (width,height) tuple can be used
    instead.
    """
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxSize instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    width = property(_core.Size_width_get, _core.Size_width_set)
    height = property(_core.Size_height_get, _core.Size_height_set)
    x = width; y = height 
    def __init__(self, *args, **kwargs):
        """
        __init__(int w=0, int h=0) -> Size

        Creates a size object.
        """
        newobj = _core.new_Size(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_Size):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def __eq__(*args, **kwargs):
        """
        __eq__(Size sz) -> bool

        Test for equality of wx.Size objects.
        """
        return _core.Size___eq__(*args, **kwargs)

    def __ne__(*args, **kwargs):
        """
        __ne__(Size sz) -> bool

        Test for inequality.
        """
        return _core.Size___ne__(*args, **kwargs)

    def __add__(*args, **kwargs):
        """
        __add__(Size sz) -> Size

        Add sz's proprties to this and return the result.
        """
        return _core.Size___add__(*args, **kwargs)

    def __sub__(*args, **kwargs):
        """
        __sub__(Size sz) -> Size

        Subtract sz's properties from this and return the result.
        """
        return _core.Size___sub__(*args, **kwargs)

    def IncTo(*args, **kwargs):
        """
        IncTo(Size sz)

        Increments this object so that both of its dimensions are not less
        than the corresponding dimensions of the size.
        """
        return _core.Size_IncTo(*args, **kwargs)

    def DecTo(*args, **kwargs):
        """
        DecTo(Size sz)

        Decrements this object so that both of its dimensions are not greater
        than the corresponding dimensions of the size.
        """
        return _core.Size_DecTo(*args, **kwargs)

    def Set(*args, **kwargs):
        """
        Set(int w, int h)

        Set both width and height.
        """
        return _core.Size_Set(*args, **kwargs)

    def SetWidth(*args, **kwargs):
        """SetWidth(int w)"""
        return _core.Size_SetWidth(*args, **kwargs)

    def SetHeight(*args, **kwargs):
        """SetHeight(int h)"""
        return _core.Size_SetHeight(*args, **kwargs)

    def GetWidth(*args, **kwargs):
        """GetWidth() -> int"""
        return _core.Size_GetWidth(*args, **kwargs)

    def GetHeight(*args, **kwargs):
        """GetHeight() -> int"""
        return _core.Size_GetHeight(*args, **kwargs)

    def Get(*args, **kwargs):
        """
        Get() -> (width,height)

        Returns the width and height properties as a tuple.
        """
        return _core.Size_Get(*args, **kwargs)

    asTuple = Get
    def __str__(self):                   return str(self.Get())
    def __repr__(self):                  return 'wx.Size'+str(self.Get())
    def __len__(self):                   return len(self.Get())
    def __getitem__(self, index):        return self.Get()[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.Get() != (0,0)
    __safe_for_unpickling__ = True
    def __reduce__(self):                return (wx.Size, self.Get())


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):
    """
    A data structure for representing a point or position with floating point x
    and y properties.  In wxPython most places that expect a wx.RealPoint can also
    accept a (x,y) tuple.
    """
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxRealPoint instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    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):
        """
        __init__(double x=0.0, double y=0.0) -> RealPoint

        Create a wx.RealPoint object
        """
        newobj = _core.new_RealPoint(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_RealPoint):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def __eq__(*args, **kwargs):
        """
        __eq__(RealPoint pt) -> bool

        Test for equality of wx.RealPoint objects.
        """
        return _core.RealPoint___eq__(*args, **kwargs)

    def __ne__(*args, **kwargs):
        """
        __ne__(RealPoint pt) -> bool

        Test for inequality of wx.RealPoint objects.
        """
        return _core.RealPoint___ne__(*args, **kwargs)

    def __add__(*args, **kwargs):
        """
        __add__(RealPoint pt) -> RealPoint

        Add pt's proprties to this and return the result.
        """
        return _core.RealPoint___add__(*args, **kwargs)

    def __sub__(*args, **kwargs):
        """
        __sub__(RealPoint pt) -> RealPoint

        Subtract pt's proprties from this and return the result
        """
        return _core.RealPoint___sub__(*args, **kwargs)

    def Set(*args, **kwargs):
        """
        Set(double x, double y)

        Set both the x and y properties
        """
        return _core.RealPoint_Set(*args, **kwargs)

    def Get(*args, **kwargs):
        """
        Get() -> (x,y)

        Return the x and y properties as a tuple. 
        """
        return _core.RealPoint_Get(*args, **kwargs)

    asTuple = Get
    def __str__(self):                   return str(self.Get())
    def __repr__(self):                  return 'wx.RealPoint'+str(self.Get())
    def __len__(self):                   return len(self.Get())
    def __getitem__(self, index):        return self.Get()[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.Get() != (0.0, 0.0)
    __safe_for_unpickling__ = True
    def __reduce__(self):                return (wx.RealPoint, self.Get())


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):
    """
    A data structure for representing a point or position with integer x and y
    properties.  Most places in wxPython that expect a wx.Point can also accept a
    (x,y) tuple.
    """
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPoint instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    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):
        """
        __init__(int x=0, int y=0) -> Point

        Create a wx.Point object
        """
        newobj = _core.new_Point(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_Point):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def __eq__(*args, **kwargs):
        """
        __eq__(Point pt) -> bool

        Test for equality of wx.Point objects.
        """
        return _core.Point___eq__(*args, **kwargs)

    def __ne__(*args, **kwargs):
        """
        __ne__(Point pt) -> bool

        Test for inequality of wx.Point objects.
        """
        return _core.Point___ne__(*args, **kwargs)

    def __add__(*args, **kwargs):
        """
        __add__(Point pt) -> Point

        Add pt's proprties to this and return the result.
        """
        return _core.Point___add__(*args, **kwargs)

    def __sub__(*args, **kwargs):
        """
        __sub__(Point pt) -> Point

        Subtract pt's proprties from this and return the result
        """
        return _core.Point___sub__(*args, **kwargs)

    def __iadd__(*args, **kwargs):
        """
        __iadd__(Point pt) -> Point

        Add pt to this object.
        """
        return _core.Point___iadd__(*args, **kwargs)

    def __isub__(*args, **kwargs):
        """
        __isub__(Point pt) -> Point

        Subtract pt from this object.
        """
        return _core.Point___isub__(*args, **kwargs)

    def Set(*args, **kwargs):
        """
        Set(long x, long y)

        Set both the x and y properties
        """
        return _core.Point_Set(*args, **kwargs)

    def Get(*args, **kwargs):
        """
        Get() -> (x,y)

        Return the x and y properties as a tuple. 
        """
        return _core.Point_Get(*args, **kwargs)

    asTuple = Get
    def __str__(self):                   return str(self.Get())
    def __repr__(self):                  return 'wx.Point'+str(self.Get())
    def __len__(self):                   return len(self.Get())
    def __getitem__(self, index):        return self.Get()[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.Get() != (0,0)
    __safe_for_unpickling__ = True
    def __reduce__(self):                return (wx.Point, self.Get())


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):
    """
    A class for representing and manipulating rectangles.  It has x, y, width and
    height properties.  In wxPython most palces that expect a wx.Rect can also
    accept a (x,y,width,height) tuple.
    """
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxRect instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """
        __init__(int x=0, int y=0, int width=0, int height=0) -> Rect

        Create a new Rect object.
        """
        newobj = _core.new_Rect(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_Rect):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def GetX(*args, **kwargs):
        """GetX() -> int"""
        return _core.Rect_GetX(*args, **kwargs)

    def SetX(*args, **kwargs):
        """SetX(int x)"""
        return _core.Rect_SetX(*args, **kwargs)

    def GetY(*args, **kwargs):
        """GetY() -> int"""
        return _core.Rect_GetY(*args, **kwargs)

    def SetY(*args, **kwargs):
        """SetY(int y)"""
        return _core.Rect_SetY(*args, **kwargs)

    def GetWidth(*args, **kwargs):
        """GetWidth() -> int"""
        return _core.Rect_GetWidth(*args, **kwargs)

    def SetWidth(*args, **kwargs):
        """SetWidth(int w)"""
        return _core.Rect_SetWidth(*args, **kwargs)

    def GetHeight(*args, **kwargs):
        """GetHeight() -> int"""
        return _core.Rect_GetHeight(*args, **kwargs)

    def SetHeight(*args, **kwargs):
        """SetHeight(int h)"""
        return _core.Rect_SetHeight(*args, **kwargs)

    def GetPosition(*args, **kwargs):
        """GetPosition() -> Point"""
        return _core.Rect_GetPosition(*args, **kwargs)

    def SetPosition(*args, **kwargs):
        """SetPosition(Point p)"""
        return _core.Rect_SetPosition(*args, **kwargs)

    def GetSize(*args, **kwargs):
        """GetSize() -> Size"""
        return _core.Rect_GetSize(*args, **kwargs)

    def SetSize(*args, **kwargs):
        """SetSize(Size s)"""
        return _core.Rect_SetSize(*args, **kwargs)

    def GetTopLeft(*args, **kwargs):
        """GetTopLeft() -> Point"""
        return _core.Rect_GetTopLeft(*args, **kwargs)

    def SetTopLeft(*args, **kwargs):
        """SetTopLeft(Point p)"""
        return _core.Rect_SetTopLeft(*args, **kwargs)

    def GetBottomRight(*args, **kwargs):
        """GetBottomRight() -> Point"""
        return _core.Rect_GetBottomRight(*args, **kwargs)

    def SetBottomRight(*args, **kwargs):
        """SetBottomRight(Point p)"""
        return _core.Rect_SetBottomRight(*args, **kwargs)

    def GetLeft(*args, **kwargs):
        """GetLeft() -> int"""
        return _core.Rect_GetLeft(*args, **kwargs)

    def GetTop(*args, **kwargs):
        """GetTop() -> int"""
        return _core.Rect_GetTop(*args, **kwargs)

    def GetBottom(*args, **kwargs):
        """GetBottom() -> int"""
        return _core.Rect_GetBottom(*args, **kwargs)

    def GetRight(*args, **kwargs):
        """GetRight() -> int"""
        return _core.Rect_GetRight(*args, **kwargs)

    def SetLeft(*args, **kwargs):
        """SetLeft(int left)"""
        return _core.Rect_SetLeft(*args, **kwargs)

    def SetRight(*args, **kwargs):
        """SetRight(int right)"""
        return _core.Rect_SetRight(*args, **kwargs)

    def SetTop(*args, **kwargs):
        """SetTop(int top)"""
        return _core.Rect_SetTop(*args, **kwargs)

    def SetBottom(*args, **kwargs):
        """SetBottom(int bottom)"""
        return _core.Rect_SetBottom(*args, **kwargs)

    position = property(GetPosition, SetPosition)
    size = property(GetSize, SetSize)
    left = property(GetLeft, SetLeft)
    right = property(GetRight, SetRight)
    top = property(GetTop, SetTop)
    bottom = property(GetBottom, SetBottom)

    def Inflate(*args, **kwargs):
        """
        Inflate(int dx, int dy) -> Rect

        Increase the rectangle size by dx in x direction and dy in y direction. Both
        (or one of) parameters may be negative to decrease the rectangle size.
        """
        return _core.Rect_Inflate(*args, **kwargs)

    def Deflate(*args, **kwargs):
        """
        Deflate(int dx, int dy) -> Rect

        Decrease the rectangle size by dx in x direction and dy in y direction. Both
        (or one of) parameters may be negative to increase the rectngle size. This
        method is the opposite of Inflate.
        """
        return _core.Rect_Deflate(*args, **kwargs)

    def OffsetXY(*args, **kwargs):
        """
        OffsetXY(int dx, int dy)

        Moves the rectangle by the specified offset. If dx is positive, the rectangle
        is moved to the right, if dy is positive, it is moved to the bottom, otherwise
        it is moved to the left or top respectively.
        """
        return _core.Rect_OffsetXY(*args, **kwargs)

    def Offset(*args, **kwargs):
        """
        Offset(Point pt)

        Same as OffsetXY but uses dx,dy from Point
        """
        return _core.Rect_Offset(*args, **kwargs)

    def Intersect(*args, **kwargs):
        """
        Intersect(Rect rect) -> Rect

        Return the intersectsion of this rectangle and rect.
        """
        return _core.Rect_Intersect(*args, **kwargs)

    def __add__(*args, **kwargs):
        """
        __add__(Rect rect) -> Rect

        Add the properties of rect to this rectangle and return the result.
        """
        return _core.Rect___add__(*args, **kwargs)

    def __iadd__(*args, **kwargs):
        """
        __iadd__(Rect rect) -> Rect

        Add the properties of rect to this rectangle, updating this rectangle.
        """
        return _core.Rect___iadd__(*args, **kwargs)

    def __eq__(*args, **kwargs):
        """
        __eq__(Rect rect) -> bool

        Test for equality.
        """
        return _core.Rect___eq__(*args, **kwargs)

    def __ne__(*args, **kwargs):
        """
        __ne__(Rect rect) -> bool

        Test for inequality.
        """
        return _core.Rect___ne__(*args, **kwargs)

    def InsideXY(*args, **kwargs):
        """
        InsideXY(int x, int y) -> bool

        Return True if the point is (not strcitly) inside the rect.
        """
        return _core.Rect_InsideXY(*args, **kwargs)

    def Inside(*args, **kwargs):
        """
        Inside(Point pt) -> bool

        Return True if the point is (not strcitly) inside the rect.
        """
        return _core.Rect_Inside(*args, **kwargs)

    def Intersects(*args, **kwargs):
        """
        Intersects(Rect rect) -> bool

        Returns True if the rectangles have a non empty intersection.
        """
        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):
        """
        Set(int x=0, int y=0, int width=0, int height=0)

        Set all rectangle properties.
        """
        return _core.Rect_Set(*args, **kwargs)

    def Get(*args, **kwargs):
        """
        Get() -> (x,y,width,height)

        Return the rectangle properties as a tuple.
        """
        return _core.Rect_Get(*args, **kwargs)

    asTuple = Get
    def __str__(self):                   return str(self.Get())
    def __repr__(self):                  return 'wx.Rect'+str(self.Get())
    def __len__(self):                   return len(self.Get())
    def __getitem__(self, index):        return self.Get()[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.Get() != (0,0,0,0)
    __safe_for_unpickling__ = True
    def __reduce__(self):                return (wx.Rect, self.Get())


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):
    """
    RectPP(Point topLeft, Point bottomRight) -> Rect

    Create a new Rect object from Points representing two corners.
    """
    val = _core.new_RectPP(*args, **kwargs)
    val.thisown = 1
    return val

def RectPS(*args, **kwargs):
    """
    RectPS(Point pos, Size size) -> Rect

    Create a new Rect from a position and size.
    """
    val = _core.new_RectPS(*args, **kwargs)
    val.thisown = 1
    return val


def IntersectRect(*args, **kwargs):
    """
    IntersectRect(Rect r1, Rect r2) -> Rect

    Calculate and return the intersection of r1 and r2.
    """
    return _core.IntersectRect(*args, **kwargs)
#---------------------------------------------------------------------------

class Point2D(object):
    """wx.Point2Ds represent a point or a vector in a 2d coordinate system with floating point values."""
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPoint2D instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """
        __init__(double x=0.0, double y=0.0) -> Point2D

        Create a w.Point2D object.
        """
        newobj = _core.new_Point2D(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetFloor(*args, **kwargs):
        """
        GetFloor() -> (x,y)

        Convert to integer
        """
        return _core.Point2D_GetFloor(*args, **kwargs)

    def GetRounded(*args, **kwargs):
        """
        GetRounded() -> (x,y)

        Convert to integer
        """
        return _core.Point2D_GetRounded(*args, **kwargs)

    def GetVectorLength(*args, **kwargs):
        """GetVectorLength() -> double"""
        return _core.Point2D_GetVectorLength(*args, **kwargs)

    def GetVectorAngle(*args, **kwargs):
        """GetVectorAngle() -> double"""
        return _core.Point2D_GetVectorAngle(*args, **kwargs)

    def SetVectorLength(*args, **kwargs):
        """SetVectorLength(double length)"""
        return _core.Point2D_SetVectorLength(*args, **kwargs)

    def SetVectorAngle(*args, **kwargs):
        """SetVectorAngle(double degrees)"""
        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):
        """GetDistance(Point2D pt) -> double"""
        return _core.Point2D_GetDistance(*args, **kwargs)

    def GetDistanceSquare(*args, **kwargs):
        """GetDistanceSquare(Point2D pt) -> double"""
        return _core.Point2D_GetDistanceSquare(*args, **kwargs)

    def GetDotProduct(*args, **kwargs):
        """GetDotProduct(Point2D vec) -> double"""
        return _core.Point2D_GetDotProduct(*args, **kwargs)

    def GetCrossProduct(*args, **kwargs):
        """GetCrossProduct(Point2D vec) -> double"""
        return _core.Point2D_GetCrossProduct(*args, **kwargs)

    def __neg__(*args, **kwargs):
        """
        __neg__() -> Point2D

        the reflection of this point
        """
        return _core.Point2D___neg__(*args, **kwargs)

    def __iadd__(*args, **kwargs):
        """__iadd__(Point2D pt) -> Point2D"""
        return _core.Point2D___iadd__(*args, **kwargs)

    def __isub__(*args, **kwargs):
        """__isub__(Point2D pt) -> Point2D"""
        return _core.Point2D___isub__(*args, **kwargs)

    def __imul__(*args, **kwargs):
        """__imul__(Point2D pt) -> Point2D"""
        return _core.Point2D___imul__(*args, **kwargs)

    def __idiv__(*args, **kwargs):
        """__idiv__(Point2D pt) -> Point2D"""
        return _core.Point2D___idiv__(*args, **kwargs)

    def __eq__(*args, **kwargs):
        """
        __eq__(Point2D pt) -> bool

        Test for equality
        """
        return _core.Point2D___eq__(*args, **kwargs)

    def __ne__(*args, **kwargs):
        """
        __ne__(Point2D pt) -> bool

        Test for inequality
        """
        return _core.Point2D___ne__(*args, **kwargs)

    x = property(_core.Point2D_x_get, _core.Point2D_x_set)
    y = property(_core.Point2D_y_get, _core.Point2D_y_set)
    def Set(*args, **kwargs):
        """Set(double x=0, double y=0)"""
        return _core.Point2D_Set(*args, **kwargs)

    def Get(*args, **kwargs):
        """
        Get() -> (x,y)

        Return x and y properties as a tuple.
        """
        return _core.Point2D_Get(*args, **kwargs)

    asTuple = Get
    def __str__(self):                   return str(self.Get())
    def __repr__(self):                  return 'wx.Point2D'+str(self.Get())
    def __len__(self):                   return len(self.Get())
    def __getitem__(self, index):        return self.Get()[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.Get() != (0.0, 0.0)
    __safe_for_unpickling__ = True
    def __reduce__(self):                return (wx.Point2D, self.Get())


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):
    """
    Point2DCopy(Point2D pt) -> Point2D

    Create a w.Point2D object.
    """
    val = _core.new_Point2DCopy(*args, **kwargs)
    val.thisown = 1
    return val

def Point2DFromPoint(*args, **kwargs):
    """
    Point2DFromPoint(Point pt) -> Point2D

    Create a w.Point2D object.
    """
    val = _core.new_Point2DFromPoint(*args, **kwargs)
    val.thisown = 1
    return val

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

FromStart = _core.FromStart
FromCurrent = _core.FromCurrent
FromEnd = _core.FromEnd
class InputStream(object):
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPyInputStream instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(PyObject p) -> InputStream"""
        newobj = _core.new_InputStream(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def close(*args, **kwargs):
        """close()"""
        return _core.InputStream_close(*args, **kwargs)

    def flush(*args, **kwargs):
        """flush()"""
        return _core.InputStream_flush(*args, **kwargs)

    def eof(*args, **kwargs):
        """eof() -> bool"""
        return _core.InputStream_eof(*args, **kwargs)

    def read(*args, **kwargs):
        """read(int size=-1) -> PyObject"""
        return _core.InputStream_read(*args, **kwargs)

    def readline(*args, **kwargs):
        """readline(int size=-1) -> PyObject"""
        return _core.InputStream_readline(*args, **kwargs)

    def readlines(*args, **kwargs):
        """readlines(int sizehint=-1) -> PyObject"""
        return _core.InputStream_readlines(*args, **kwargs)

    def seek(*args, **kwargs):
        """seek(int offset, int whence=0)"""
        return _core.InputStream_seek(*args, **kwargs)

    def tell(*args, **kwargs):
        """tell() -> int"""
        return _core.InputStream_tell(*args, **kwargs)

    def Peek(*args, **kwargs):
        """Peek() -> char"""
        return _core.InputStream_Peek(*args, **kwargs)

    def GetC(*args, **kwargs):
        """GetC() -> char"""
        return _core.InputStream_GetC(*args, **kwargs)

    def LastRead(*args, **kwargs):
        """LastRead() -> size_t"""
        return _core.InputStream_LastRead(*args, **kwargs)

    def CanRead(*args, **kwargs):
        """CanRead() -> bool"""
        return _core.InputStream_CanRead(*args, **kwargs)

    def Eof(*args, **kwargs):
        """Eof() -> bool"""
        return _core.InputStream_Eof(*args, **kwargs)

    def Ungetch(*args, **kwargs):
        """Ungetch(char c) -> bool"""
        return _core.InputStream_Ungetch(*args, **kwargs)

    def SeekI(*args, **kwargs):
        """SeekI(long pos, int mode=FromStart) -> long"""
        return _core.InputStream_SeekI(*args, **kwargs)

    def TellI(*args, **kwargs):
        """TellI() -> long"""
        return _core.InputStream_TellI(*args, **kwargs)


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)
DefaultPosition = cvar.DefaultPosition
DefaultSize = cvar.DefaultSize

class OutputStream(object):
    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,)
    def write(*args, **kwargs):
        """write(PyObject obj)"""
        return _core.OutputStream_write(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxFSFile instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """
        __init__(InputStream stream, String loc, String mimetype, String anchor, 
            DateTime modif) -> FSFile
        """
        newobj = _core.new_FSFile(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_FSFile):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def GetStream(*args, **kwargs):
        """GetStream() -> InputStream"""
        return _core.FSFile_GetStream(*args, **kwargs)

    def GetMimeType(*args, **kwargs):
        """GetMimeType() -> String"""
        return _core.FSFile_GetMimeType(*args, **kwargs)

    def GetLocation(*args, **kwargs):
        """GetLocation() -> String"""
        return _core.FSFile_GetLocation(*args, **kwargs)

    def GetAnchor(*args, **kwargs):
        """GetAnchor() -> String"""
        return _core.FSFile_GetAnchor(*args, **kwargs)

    def GetModificationTime(*args, **kwargs):
        """GetModificationTime() -> DateTime"""
        return _core.FSFile_GetModificationTime(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxPyFileSystemHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> FileSystemHandler"""
        newobj = _core.new_FileSystemHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setCallbackInfo(self, FileSystemHandler)

    def _setCallbackInfo(*args, **kwargs):
        """_setCallbackInfo(PyObject self, PyObject _class)"""
        return _core.FileSystemHandler__setCallbackInfo(*args, **kwargs)

    def CanOpen(*args, **kwargs):
        """CanOpen(String location) -> bool"""
        return _core.FileSystemHandler_CanOpen(*args, **kwargs)

    def OpenFile(*args, **kwargs):
        """OpenFile(FileSystem fs, String location) -> FSFile"""
        return _core.FileSystemHandler_OpenFile(*args, **kwargs)

    def FindFirst(*args, **kwargs):
        """FindFirst(String spec, int flags=0) -> String"""
        return _core.FileSystemHandler_FindFirst(*args, **kwargs)

    def FindNext(*args, **kwargs):
        """FindNext() -> String"""
        return _core.FileSystemHandler_FindNext(*args, **kwargs)

    def GetProtocol(*args, **kwargs):
        """GetProtocol(String location) -> String"""
        return _core.FileSystemHandler_GetProtocol(*args, **kwargs)

    def GetLeftLocation(*args, **kwargs):
        """GetLeftLocation(String location) -> String"""
        return _core.FileSystemHandler_GetLeftLocation(*args, **kwargs)

    def GetAnchor(*args, **kwargs):
        """GetAnchor(String location) -> String"""
        return _core.FileSystemHandler_GetAnchor(*args, **kwargs)

    def GetRightLocation(*args, **kwargs):
        """GetRightLocation(String location) -> String"""
        return _core.FileSystemHandler_GetRightLocation(*args, **kwargs)

    def GetMimeTypeFromExt(*args, **kwargs):
        """GetMimeTypeFromExt(String location) -> String"""
        return _core.FileSystemHandler_GetMimeTypeFromExt(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxFileSystem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> FileSystem"""
        newobj = _core.new_FileSystem(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_FileSystem):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def ChangePathTo(*args, **kwargs):
        """ChangePathTo(String location, bool is_dir=False)"""
        return _core.FileSystem_ChangePathTo(*args, **kwargs)

    def GetPath(*args, **kwargs):
        """GetPath() -> String"""
        return _core.FileSystem_GetPath(*args, **kwargs)

    def OpenFile(*args, **kwargs):
        """OpenFile(String location) -> FSFile"""
        return _core.FileSystem_OpenFile(*args, **kwargs)

    def FindFirst(*args, **kwargs):
        """FindFirst(String spec, int flags=0) -> String"""
        return _core.FileSystem_FindFirst(*args, **kwargs)

    def FindNext(*args, **kwargs):
        """FindNext() -> String"""
        return _core.FileSystem_FindNext(*args, **kwargs)

    def AddHandler(*args, **kwargs):
        """AddHandler(CPPFileSystemHandler handler)"""
        return _core.FileSystem_AddHandler(*args, **kwargs)

    AddHandler = staticmethod(AddHandler)
    def CleanUpHandlers(*args, **kwargs):
        """CleanUpHandlers()"""
        return _core.FileSystem_CleanUpHandlers(*args, **kwargs)

    CleanUpHandlers = staticmethod(CleanUpHandlers)
    def FileNameToURL(*args, **kwargs):
        """FileNameToURL(String filename) -> String"""
        return _core.FileSystem_FileNameToURL(*args, **kwargs)

    FileNameToURL = staticmethod(FileNameToURL)

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)

def FileSystem_AddHandler(*args, **kwargs):
    """FileSystem_AddHandler(CPPFileSystemHandler handler)"""
    return _core.FileSystem_AddHandler(*args, **kwargs)

def FileSystem_CleanUpHandlers(*args, **kwargs):
    """FileSystem_CleanUpHandlers()"""
    return _core.FileSystem_CleanUpHandlers(*args, **kwargs)

def FileSystem_FileNameToURL(*args, **kwargs):
    """FileSystem_FileNameToURL(String filename) -> String"""
    return _core.FileSystem_FileNameToURL(*args, **kwargs)


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

    def OpenFile(*args, **kwargs):
        """OpenFile(FileSystem fs, String location) -> FSFile"""
        return _core.InternetFSHandler_OpenFile(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxZipFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> ZipFSHandler"""
        newobj = _core.new_ZipFSHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def CanOpen(*args, **kwargs):
        """CanOpen(String location) -> bool"""
        return _core.ZipFSHandler_CanOpen(*args, **kwargs)

    def OpenFile(*args, **kwargs):
        """OpenFile(FileSystem fs, String location) -> FSFile"""
        return _core.ZipFSHandler_OpenFile(*args, **kwargs)

    def FindFirst(*args, **kwargs):
        """FindFirst(String spec, int flags=0) -> String"""
        return _core.ZipFSHandler_FindFirst(*args, **kwargs)

    def FindNext(*args, **kwargs):
        """FindNext() -> String"""
        return _core.ZipFSHandler_FindNext(*args, **kwargs)


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)


def __wxMemoryFSHandler_AddFile_wxImage(*args, **kwargs):
    """__wxMemoryFSHandler_AddFile_wxImage(String filename, Image image, long type)"""
    return _core.__wxMemoryFSHandler_AddFile_wxImage(*args, **kwargs)

def __wxMemoryFSHandler_AddFile_wxBitmap(*args, **kwargs):
    """__wxMemoryFSHandler_AddFile_wxBitmap(String filename, Bitmap bitmap, long type)"""
    return _core.__wxMemoryFSHandler_AddFile_wxBitmap(*args, **kwargs)

def __wxMemoryFSHandler_AddFile_Data(*args, **kwargs):
    """__wxMemoryFSHandler_AddFile_Data(String filename, PyObject data)"""
    return _core.__wxMemoryFSHandler_AddFile_Data(*args, **kwargs)
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 __repr__(self):
        return "<%s.%s; proxy of C++ wxMemoryFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> MemoryFSHandler"""
        newobj = _core.new_MemoryFSHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def RemoveFile(*args, **kwargs):
        """RemoveFile(String filename)"""
        return _core.MemoryFSHandler_RemoveFile(*args, **kwargs)

    RemoveFile = staticmethod(RemoveFile)
    AddFile = staticmethod(MemoryFSHandler_AddFile) 
    def CanOpen(*args, **kwargs):
        """CanOpen(String location) -> bool"""
        return _core.MemoryFSHandler_CanOpen(*args, **kwargs)

    def OpenFile(*args, **kwargs):
        """OpenFile(FileSystem fs, String location) -> FSFile"""
        return _core.MemoryFSHandler_OpenFile(*args, **kwargs)

    def FindFirst(*args, **kwargs):
        """FindFirst(String spec, int flags=0) -> String"""
        return _core.MemoryFSHandler_FindFirst(*args, **kwargs)

    def FindNext(*args, **kwargs):
        """FindNext() -> String"""
        return _core.MemoryFSHandler_FindNext(*args, **kwargs)


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)

def MemoryFSHandler_RemoveFile(*args, **kwargs):
    """MemoryFSHandler_RemoveFile(String filename)"""
    return _core.MemoryFSHandler_RemoveFile(*args, **kwargs)

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

class ImageHandler(Object):
    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,)
    def GetName(*args, **kwargs):
        """GetName() -> String"""
        return _core.ImageHandler_GetName(*args, **kwargs)

    def GetExtension(*args, **kwargs):
        """GetExtension() -> String"""
        return _core.ImageHandler_GetExtension(*args, **kwargs)

    def GetType(*args, **kwargs):
        """GetType() -> long"""
        return _core.ImageHandler_GetType(*args, **kwargs)

    def GetMimeType(*args, **kwargs):
        """GetMimeType() -> String"""
        return _core.ImageHandler_GetMimeType(*args, **kwargs)

    def CanRead(*args, **kwargs):
        """CanRead(String name) -> bool"""
        return _core.ImageHandler_CanRead(*args, **kwargs)

    def SetName(*args, **kwargs):
        """SetName(String name)"""
        return _core.ImageHandler_SetName(*args, **kwargs)

    def SetExtension(*args, **kwargs):
        """SetExtension(String extension)"""
        return _core.ImageHandler_SetExtension(*args, **kwargs)

    def SetType(*args, **kwargs):
        """SetType(long type)"""
        return _core.ImageHandler_SetType(*args, **kwargs)

    def SetMimeType(*args, **kwargs):
        """SetMimeType(String mimetype)"""
        return _core.ImageHandler_SetMimeType(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxImageHistogram instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> ImageHistogram"""
        newobj = _core.new_ImageHistogram(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def MakeKey(*args, **kwargs):
        """
        MakeKey(unsigned char r, unsigned char g, unsigned char b) -> unsigned long

        Get the key in the histogram for the given RGB values
        """
        return _core.ImageHistogram_MakeKey(*args, **kwargs)

    MakeKey = staticmethod(MakeKey)
    def FindFirstUnusedColour(*args, **kwargs):
        """
        FindFirstUnusedColour(int startR=1, int startG=0, int startB=0) -> (success, r, g, b)

        Find first colour that is not used in the image and has higher RGB values than
        startR, startG, startB.  Returns a tuple consisting of a success flag and rgb
        values.
        """
        return _core.ImageHistogram_FindFirstUnusedColour(*args, **kwargs)


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)

def ImageHistogram_MakeKey(*args, **kwargs):
    """
    ImageHistogram_MakeKey(unsigned char r, unsigned char g, unsigned char b) -> unsigned long

    Get the key in the histogram for the given RGB values
    """
    return _core.ImageHistogram_MakeKey(*args, **kwargs)

class Image(Object):
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxImage instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(String name, long type=BITMAP_TYPE_ANY, int index=-1) -> Image"""
        newobj = _core.new_Image(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_Image):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def Create(*args, **kwargs):
        """Create(int width, int height)"""
        return _core.Image_Create(*args, **kwargs)

    def Destroy(*args, **kwargs):
        """
        Destroy()

        Deletes the C++ object this Python object is a proxy for.
        """
        return _core.Image_Destroy(*args, **kwargs)

    def Scale(*args, **kwargs):
        """Scale(int width, int height) -> Image"""
        return _core.Image_Scale(*args, **kwargs)

    def ShrinkBy(*args, **kwargs):
        """ShrinkBy(int xFactor, int yFactor) -> Image"""
        return _core.Image_ShrinkBy(*args, **kwargs)

    def Rescale(*args, **kwargs):
        """Rescale(int width, int height) -> Image"""
        return _core.Image_Rescale(*args, **kwargs)

    def SetRGB(*args, **kwargs):
        """SetRGB(int x, int y, unsigned char r, unsigned char g, unsigned char b)"""
        return _core.Image_SetRGB(*args, **kwargs)

    def GetRed(*args, **kwargs):
        """GetRed(int x, int y) -> unsigned char"""
        return _core.Image_GetRed(*args, **kwargs)

    def GetGreen(*args, **kwargs):
        """GetGreen(int x, int y) -> unsigned char"""
        return _core.Image_GetGreen(*args, **kwargs)

    def GetBlue(*args, **kwargs):
        """GetBlue(int x, int y) -> unsigned char"""
        return _core.Image_GetBlue(*args, **kwargs)

    def SetAlpha(*args, **kwargs):
        """SetAlpha(int x, int y, unsigned char alpha)"""
        return _core.Image_SetAlpha(*args, **kwargs)

    def GetAlpha(*args, **kwargs):
        """GetAlpha(int x, int y) -> unsigned char"""
        return _core.Image_GetAlpha(*args, **kwargs)

    def HasAlpha(*args, **kwargs):
        """HasAlpha() -> bool"""
        return _core.Image_HasAlpha(*args, **kwargs)

    def FindFirstUnusedColour(*args, **kwargs):
        """
        FindFirstUnusedColour(int startR=1, int startG=0, int startB=0) -> (success, r, g, b)

        Find first colour that is not used in the image and has higher RGB values than
        startR, startG, startB.  Returns a tuple consisting of a success flag and rgb
        values.
        """
        return _core.Image_FindFirstUnusedColour(*args, **kwargs)

    def SetMaskFromImage(*args, **kwargs):
        """SetMaskFromImage(Image mask, byte mr, byte mg, byte mb) -> bool"""
        return _core.Image_SetMaskFromImage(*args, **kwargs)

    def CanRead(*args, **kwargs):
        """CanRead(String name) -> bool"""
        return _core.Image_CanRead(*args, **kwargs)

    CanRead = staticmethod(CanRead)
    def GetImageCount(*args, **kwargs):
        """GetImageCount(String name, long type=BITMAP_TYPE_ANY) -> int"""
        return _core.Image_GetImageCount(*args, **kwargs)

    GetImageCount = staticmethod(GetImageCount)
    def LoadFile(*args, **kwargs):
        """LoadFile(String name, long type=BITMAP_TYPE_ANY, int index=-1) -> bool"""
        return _core.Image_LoadFile(*args, **kwargs)

    def LoadMimeFile(*args, **kwargs):
        """LoadMimeFile(String name, String mimetype, int index=-1) -> bool"""
        return _core.Image_LoadMimeFile(*args, **kwargs)

    def SaveFile(*args, **kwargs):
        """SaveFile(String name, int type) -> bool"""
        return _core.Image_SaveFile(*args, **kwargs)

    def SaveMimeFile(*args, **kwargs):
        """SaveMimeFile(String name, String mimetype) -> bool"""
        return _core.Image_SaveMimeFile(*args, **kwargs)

    def CanReadStream(*args, **kwargs):
        """CanReadStream(InputStream stream) -> bool"""
        return _core.Image_CanReadStream(*args, **kwargs)

    CanReadStream = staticmethod(CanReadStream)
    def LoadStream(*args, **kwargs):
        """LoadStream(InputStream stream, long type=BITMAP_TYPE_ANY, int index=-1) -> bool"""
        return _core.Image_LoadStream(*args, **kwargs)

    def LoadMimeStream(*args, **kwargs):
        """LoadMimeStream(InputStream stream, String mimetype, int index=-1) -> bool"""
        return _core.Image_LoadMimeStream(*args, **kwargs)

    def Ok(*args, **kwargs):
        """Ok() -> bool"""
        return _core.Image_Ok(*args, **kwargs)

    def GetWidth(*args, **kwargs):
        """GetWidth() -> int"""
        return _core.Image_GetWidth(*args, **kwargs)

    def GetHeight(*args, **kwargs):
        """GetHeight() -> int"""
        return _core.Image_GetHeight(*args, **kwargs)

    def GetSubImage(*args, **kwargs):
        """GetSubImage(Rect rect) -> Image"""
        return _core.Image_GetSubImage(*args, **kwargs)

    def Copy(*args, **kwargs):
        """Copy() -> Image"""
        return _core.Image_Copy(*args, **kwargs)

    def Paste(*args, **kwargs):
        """Paste(Image image, int x, int y)"""
        return _core.Image_Paste(*args, **kwargs)

    def GetData(*args, **kwargs):
        """GetData() -> PyObject"""
        return _core.Image_GetData(*args, **kwargs)

    def SetData(*args, **kwargs):
        """SetData(PyObject data)"""
        return _core.Image_SetData(*args, **kwargs)

    def GetDataBuffer(*args, **kwargs):
        """GetDataBuffer() -> PyObject"""
        return _core.Image_GetDataBuffer(*args, **kwargs)

    def SetDataBuffer(*args, **kwargs):
        """SetDataBuffer(PyObject data)"""
        return _core.Image_SetDataBuffer(*args, **kwargs)

    def GetAlphaData(*args, **kwargs):
        """GetAlphaData() -> PyObject"""
        return _core.Image_GetAlphaData(*args, **kwargs)

    def SetAlphaData(*args, **kwargs):
        """SetAlphaData(PyObject data)"""
        return _core.Image_SetAlphaData(*args, **kwargs)

    def GetAlphaBuffer(*args, **kwargs):
        """GetAlphaBuffer() -> PyObject"""
        return _core.Image_GetAlphaBuffer(*args, **kwargs)

    def SetAlphaBuffer(*args, **kwargs):
        """SetAlphaBuffer(PyObject data)"""
        return _core.Image_SetAlphaBuffer(*args, **kwargs)

    def SetMaskColour(*args, **kwargs):
        """SetMaskColour(unsigned char r, unsigned char g, unsigned char b)"""
        return _core.Image_SetMaskColour(*args, **kwargs)

    def GetMaskRed(*args, **kwargs):
        """GetMaskRed() -> unsigned char"""
        return _core.Image_GetMaskRed(*args, **kwargs)

    def GetMaskGreen(*args, **kwargs):
        """GetMaskGreen() -> unsigned char"""
        return _core.Image_GetMaskGreen(*args, **kwargs)

    def GetMaskBlue(*args, **kwargs):
        """GetMaskBlue() -> unsigned char"""
        return _core.Image_GetMaskBlue(*args, **kwargs)

    def SetMask(*args, **kwargs):
        """SetMask(bool mask=True)"""
        return _core.Image_SetMask(*args, **kwargs)

    def HasMask(*args, **kwargs):
        """HasMask() -> bool"""
        return _core.Image_HasMask(*args, **kwargs)

    def Rotate(*args, **kwargs):
        """
        Rotate(double angle, Point centre_of_rotation, bool interpolating=True, 
            Point offset_after_rotation=None) -> Image
        """
        return _core.Image_Rotate(*args, **kwargs)

    def Rotate90(*args, **kwargs):
        """Rotate90(bool clockwise=True) -> Image"""
        return _core.Image_Rotate90(*args, **kwargs)

    def Mirror(*args, **kwargs):
        """Mirror(bool horizontally=True) -> Image"""
        return _core.Image_Mirror(*args, **kwargs)

    def Replace(*args, **kwargs):
        """
        Replace(unsigned char r1, unsigned char g1, unsigned char b1, 
            unsigned char r2, unsigned char g2, unsigned char b2)
        """
        return _core.Image_Replace(*args, **kwargs)

    def ConvertToMono(*args, **kwargs):
        """ConvertToMono(unsigned char r, unsigned char g, unsigned char b) -> Image"""
        return _core.Image_ConvertToMono(*args, **kwargs)

    def SetOption(*args, **kwargs):
        """SetOption(String name, String value)"""
        return _core.Image_SetOption(*args, **kwargs)

    def SetOptionInt(*args, **kwargs):
        """SetOptionInt(String name, int value)"""
        return _core.Image_SetOptionInt(*args, **kwargs)

    def GetOption(*args, **kwargs):
        """GetOption(String name) -> String"""
        return _core.Image_GetOption(*args, **kwargs)

    def GetOptionInt(*args, **kwargs):
        """GetOptionInt(String name) -> int"""
        return _core.Image_GetOptionInt(*args, **kwargs)

    def HasOption(*args, **kwargs):
        """HasOption(String name) -> bool"""
        return _core.Image_HasOption(*args, **kwargs)

    def CountColours(*args, **kwargs):
        """CountColours(unsigned long stopafter=(unsigned long) -1) -> unsigned long"""
        return _core.Image_CountColours(*args, **kwargs)

    def ComputeHistogram(*args, **kwargs):
        """ComputeHistogram(ImageHistogram h) -> unsigned long"""
        return _core.Image_ComputeHistogram(*args, **kwargs)

    def AddHandler(*args, **kwargs):
        """AddHandler(ImageHandler handler)"""
        return _core.Image_AddHandler(*args, **kwargs)

    AddHandler = staticmethod(AddHandler)
    def InsertHandler(*args, **kwargs):
        """InsertHandler(ImageHandler handler)"""
        return _core.Image_InsertHandler(*args, **kwargs)

    InsertHandler = staticmethod(InsertHandler)
    def RemoveHandler(*args, **kwargs):
        """RemoveHandler(String name) -> bool"""
        return _core.Image_RemoveHandler(*args, **kwargs)

    RemoveHandler = staticmethod(RemoveHandler)
    def GetImageExtWildcard(*args, **kwargs):
        """GetImageExtWildcard() -> String"""
        return _core.Image_GetImageExtWildcard(*args, **kwargs)

    GetImageExtWildcard = staticmethod(GetImageExtWildcard)
    def ConvertToBitmap(*args, **kwargs):
        """ConvertToBitmap() -> Bitmap"""
        return _core.Image_ConvertToBitmap(*args, **kwargs)

    def ConvertToMonoBitmap(*args, **kwargs):
        """ConvertToMonoBitmap(unsigned char red, unsigned char green, unsigned char blue) -> Bitmap"""
        return _core.Image_ConvertToMonoBitmap(*args, **kwargs)

    def __nonzero__(self): return self.Ok() 

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):
    """ImageFromMime(String name, String mimetype, int index=-1) -> Image"""
    val = _core.new_ImageFromMime(*args, **kwargs)
    val.thisown = 1
    return val

def ImageFromStream(*args, **kwargs):
    """ImageFromStream(InputStream stream, long type=BITMAP_TYPE_ANY, int index=-1) -> Image"""
    val = _core.new_ImageFromStream(*args, **kwargs)
    val.thisown = 1
    return val

def ImageFromStreamMime(*args, **kwargs):
    """ImageFromStreamMime(InputStream stream, String mimetype, int index=-1) -> Image"""
    val = _core.new_ImageFromStreamMime(*args, **kwargs)
    val.thisown = 1
    return val

def EmptyImage(*args, **kwargs):
    """EmptyImage(int width=0, int height=0, bool clear=True) -> Image"""
    val = _core.new_EmptyImage(*args, **kwargs)
    val.thisown = 1
    return val

def ImageFromBitmap(*args, **kwargs):
    """ImageFromBitmap(Bitmap bitmap) -> Image"""
    val = _core.new_ImageFromBitmap(*args, **kwargs)
    val.thisown = 1
    return val

def ImageFromData(*args, **kwargs):
    """ImageFromData(int width, int height, unsigned char data) -> Image"""
    val = _core.new_ImageFromData(*args, **kwargs)
    val.thisown = 1
    return val

def Image_CanRead(*args, **kwargs):
    """Image_CanRead(String name) -> bool"""
    return _core.Image_CanRead(*args, **kwargs)

def Image_GetImageCount(*args, **kwargs):
    """Image_GetImageCount(String name, long type=BITMAP_TYPE_ANY) -> int"""
    return _core.Image_GetImageCount(*args, **kwargs)

def Image_CanReadStream(*args, **kwargs):
    """Image_CanReadStream(InputStream stream) -> bool"""
    return _core.Image_CanReadStream(*args, **kwargs)

def Image_AddHandler(*args, **kwargs):
    """Image_AddHandler(ImageHandler handler)"""
    return _core.Image_AddHandler(*args, **kwargs)

def Image_InsertHandler(*args, **kwargs):
    """Image_InsertHandler(ImageHandler handler)"""
    return _core.Image_InsertHandler(*args, **kwargs)

def Image_RemoveHandler(*args, **kwargs):
    """Image_RemoveHandler(String name) -> bool"""
    return _core.Image_RemoveHandler(*args, **kwargs)

def Image_GetImageExtWildcard(*args, **kwargs):
    """Image_GetImageExtWildcard() -> String"""
    return _core.Image_GetImageExtWildcard(*args, **kwargs)


def InitAllImageHandlers(*args, **kwargs):
    """InitAllImageHandlers()"""
    return _core.InitAllImageHandlers(*args, **kwargs)
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 __repr__(self):
        return "<%s.%s; proxy of C++ wxBMPHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> BMPHandler"""
        newobj = _core.new_BMPHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown

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

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

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

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

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

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

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

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

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

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

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 __repr__(self):
        return "<%s.%s; proxy of C++ wxEvtHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> EvtHandler"""
        newobj = _core.new_EvtHandler(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetNextHandler(*args, **kwargs):
        """GetNextHandler() -> EvtHandler"""
        return _core.EvtHandler_GetNextHandler(*args, **kwargs)

    def GetPreviousHandler(*args, **kwargs):
        """GetPreviousHandler() -> EvtHandler"""
        return _core.EvtHandler_GetPreviousHandler(*args, **kwargs)

    def SetNextHandler(*args, **kwargs):
        """SetNextHandler(EvtHandler handler)"""
        return _core.EvtHandler_SetNextHandler(*args, **kwargs)

    def SetPreviousHandler(*args, **kwargs):
        """SetPreviousHandler(EvtHandler handler)"""
        return _core.EvtHandler_SetPreviousHandler(*args, **kwargs)

    def GetEvtHandlerEnabled(*args, **kwargs):
        """GetEvtHandlerEnabled() -> bool"""
        return _core.EvtHandler_GetEvtHandlerEnabled(*args, **kwargs)

    def SetEvtHandlerEnabled(*args, **kwargs):
        """SetEvtHandlerEnabled(bool enabled)"""
        return _core.EvtHandler_SetEvtHandlerEnabled(*args, **kwargs)

    def ProcessEvent(*args, **kwargs):
        """ProcessEvent(Event event) -> bool"""
        return _core.EvtHandler_ProcessEvent(*args, **kwargs)

    def AddPendingEvent(*args, **kwargs):
        """AddPendingEvent(Event event)"""
        return _core.EvtHandler_AddPendingEvent(*args, **kwargs)

    def ProcessPendingEvents(*args, **kwargs):
        """ProcessPendingEvents()"""
        return _core.EvtHandler_ProcessPendingEvents(*args, **kwargs)

    def Connect(*args, **kwargs):
        """Connect(int id, int lastId, int eventType, PyObject func)"""
        return _core.EvtHandler_Connect(*args, **kwargs)

    def Disconnect(*args, **kwargs):
        """Disconnect(int id, int lastId=-1, wxEventType eventType=wxEVT_NULL) -> bool"""
        return _core.EvtHandler_Disconnect(*args, **kwargs)

    def _setOORInfo(*args, **kwargs):
        """_setOORInfo(PyObject _self)"""
        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)              



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

def NewEventType(*args, **kwargs):
    """NewEventType() -> wxEventType"""
    return _core.NewEventType(*args, **kwargs)
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_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 __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,)
    def __del__(self, destroy=_core.delete_Event):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def SetEventType(*args, **kwargs):
        """SetEventType(wxEventType typ)"""
        return _core.Event_SetEventType(*args, **kwargs)

    def GetEventType(*args, **kwargs):
        """GetEventType() -> wxEventType"""
        return _core.Event_GetEventType(*args, **kwargs)

    def GetEventObject(*args, **kwargs):
        """GetEventObject() -> Object"""
        return _core.Event_GetEventObject(*args, **kwargs)

    def SetEventObject(*args, **kwargs):
        """SetEventObject(Object obj)"""
        return _core.Event_SetEventObject(*args, **kwargs)

    def GetTimestamp(*args, **kwargs):
        """GetTimestamp() -> long"""
        return _core.Event_GetTimestamp(*args, **kwargs)

    def SetTimestamp(*args, **kwargs):
        """SetTimestamp(long ts=0)"""
        return _core.Event_SetTimestamp(*args, **kwargs)

    def GetId(*args, **kwargs):
        """GetId() -> int"""
        return _core.Event_GetId(*args, **kwargs)

    def SetId(*args, **kwargs):
        """SetId(int Id)"""
        return _core.Event_SetId(*args, **kwargs)

    def IsCommandEvent(*args, **kwargs):
        """IsCommandEvent() -> bool"""
        return _core.Event_IsCommandEvent(*args, **kwargs)

    def Skip(*args, **kwargs):
        """Skip(bool skip=True)"""
        return _core.Event_Skip(*args, **kwargs)

    def GetSkipped(*args, **kwargs):
        """GetSkipped() -> bool"""
        return _core.Event_GetSkipped(*args, **kwargs)

    def ShouldPropagate(*args, **kwargs):
        """ShouldPropagate() -> bool"""
        return _core.Event_ShouldPropagate(*args, **kwargs)

    def StopPropagation(*args, **kwargs):
        """StopPropagation() -> int"""
        return _core.Event_StopPropagation(*args, **kwargs)

    def ResumePropagation(*args, **kwargs):
        """ResumePropagation(int propagationLevel)"""
        return _core.Event_ResumePropagation(*args, **kwargs)

    def Clone(*args, **kwargs):
        """Clone() -> Event"""
        return _core.Event_Clone(*args, **kwargs)


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


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


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxCommandEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType commandType=wxEVT_NULL, int winid=0) -> CommandEvent"""
        newobj = _core.new_CommandEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetSelection(*args, **kwargs):
        """GetSelection() -> int"""
        return _core.CommandEvent_GetSelection(*args, **kwargs)

    def SetString(*args, **kwargs):
        """SetString(String s)"""
        return _core.CommandEvent_SetString(*args, **kwargs)

    def GetString(*args, **kwargs):
        """GetString() -> String"""
        return _core.CommandEvent_GetString(*args, **kwargs)

    def IsChecked(*args, **kwargs):
        """IsChecked() -> bool"""
        return _core.CommandEvent_IsChecked(*args, **kwargs)

    Checked = IsChecked 
    def IsSelection(*args, **kwargs):
        """IsSelection() -> bool"""
        return _core.CommandEvent_IsSelection(*args, **kwargs)

    def SetExtraLong(*args, **kwargs):
        """SetExtraLong(long extraLong)"""
        return _core.CommandEvent_SetExtraLong(*args, **kwargs)

    def GetExtraLong(*args, **kwargs):
        """GetExtraLong() -> long"""
        return _core.CommandEvent_GetExtraLong(*args, **kwargs)

    def SetInt(*args, **kwargs):
        """SetInt(int i)"""
        return _core.CommandEvent_SetInt(*args, **kwargs)

    def GetInt(*args, **kwargs):
        """GetInt() -> long"""
        return _core.CommandEvent_GetInt(*args, **kwargs)

    def Clone(*args, **kwargs):
        """Clone() -> Event"""
        return _core.CommandEvent_Clone(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxNotifyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType commandType=wxEVT_NULL, int winid=0) -> NotifyEvent"""
        newobj = _core.new_NotifyEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def Veto(*args, **kwargs):
        """Veto()"""
        return _core.NotifyEvent_Veto(*args, **kwargs)

    def Allow(*args, **kwargs):
        """Allow()"""
        return _core.NotifyEvent_Allow(*args, **kwargs)

    def IsAllowed(*args, **kwargs):
        """IsAllowed() -> bool"""
        return _core.NotifyEvent_IsAllowed(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxScrollEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """
        __init__(wxEventType commandType=wxEVT_NULL, int winid=0, int pos=0, 
            int orient=0) -> ScrollEvent
        """
        newobj = _core.new_ScrollEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetOrientation(*args, **kwargs):
        """GetOrientation() -> int"""
        return _core.ScrollEvent_GetOrientation(*args, **kwargs)

    def GetPosition(*args, **kwargs):
        """GetPosition() -> int"""
        return _core.ScrollEvent_GetPosition(*args, **kwargs)

    def SetOrientation(*args, **kwargs):
        """SetOrientation(int orient)"""
        return _core.ScrollEvent_SetOrientation(*args, **kwargs)

    def SetPosition(*args, **kwargs):
        """SetPosition(int pos)"""
        return _core.ScrollEvent_SetPosition(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxScrollWinEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType commandType=wxEVT_NULL, int pos=0, int orient=0) -> ScrollWinEvent"""
        newobj = _core.new_ScrollWinEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetOrientation(*args, **kwargs):
        """GetOrientation() -> int"""
        return _core.ScrollWinEvent_GetOrientation(*args, **kwargs)

    def GetPosition(*args, **kwargs):
        """GetPosition() -> int"""
        return _core.ScrollWinEvent_GetPosition(*args, **kwargs)

    def SetOrientation(*args, **kwargs):
        """SetOrientation(int orient)"""
        return _core.ScrollWinEvent_SetOrientation(*args, **kwargs)

    def SetPosition(*args, **kwargs):
        """SetPosition(int pos)"""
        return _core.ScrollWinEvent_SetPosition(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxMouseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType mouseType=wxEVT_NULL) -> MouseEvent"""
        newobj = _core.new_MouseEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def IsButton(*args, **kwargs):
        """IsButton() -> bool"""
        return _core.MouseEvent_IsButton(*args, **kwargs)

    def ButtonDown(*args, **kwargs):
        """ButtonDown(int but=MOUSE_BTN_ANY) -> bool"""
        return _core.MouseEvent_ButtonDown(*args, **kwargs)

    def ButtonDClick(*args, **kwargs):
        """ButtonDClick(int but=MOUSE_BTN_ANY) -> bool"""
        return _core.MouseEvent_ButtonDClick(*args, **kwargs)

    def ButtonUp(*args, **kwargs):
        """ButtonUp(int but=MOUSE_BTN_ANY) -> bool"""
        return _core.MouseEvent_ButtonUp(*args, **kwargs)

    def Button(*args, **kwargs):
        """Button(int but) -> bool"""
        return _core.MouseEvent_Button(*args, **kwargs)

    def ButtonIsDown(*args, **kwargs):
        """ButtonIsDown(int but) -> bool"""
        return _core.MouseEvent_ButtonIsDown(*args, **kwargs)

    def GetButton(*args, **kwargs):
        """GetButton() -> int"""
        return _core.MouseEvent_GetButton(*args, **kwargs)

    def ControlDown(*args, **kwargs):
        """ControlDown() -> bool"""
        return _core.MouseEvent_ControlDown(*args, **kwargs)

    def MetaDown(*args, **kwargs):
        """MetaDown() -> bool"""
        return _core.MouseEvent_MetaDown(*args, **kwargs)

    def AltDown(*args, **kwargs):
        """AltDown() -> bool"""
        return _core.MouseEvent_AltDown(*args, **kwargs)

    def ShiftDown(*args, **kwargs):
        """ShiftDown() -> bool"""
        return _core.MouseEvent_ShiftDown(*args, **kwargs)

    def LeftDown(*args, **kwargs):
        """LeftDown() -> bool"""
        return _core.MouseEvent_LeftDown(*args, **kwargs)

    def MiddleDown(*args, **kwargs):
        """MiddleDown() -> bool"""
        return _core.MouseEvent_MiddleDown(*args, **kwargs)

    def RightDown(*args, **kwargs):
        """RightDown() -> bool"""
        return _core.MouseEvent_RightDown(*args, **kwargs)

    def LeftUp(*args, **kwargs):
        """LeftUp() -> bool"""
        return _core.MouseEvent_LeftUp(*args, **kwargs)

    def MiddleUp(*args, **kwargs):
        """MiddleUp() -> bool"""
        return _core.MouseEvent_MiddleUp(*args, **kwargs)

    def RightUp(*args, **kwargs):
        """RightUp() -> bool"""
        return _core.MouseEvent_RightUp(*args, **kwargs)

    def LeftDClick(*args, **kwargs):
        """LeftDClick() -> bool"""
        return _core.MouseEvent_LeftDClick(*args, **kwargs)

    def MiddleDClick(*args, **kwargs):
        """MiddleDClick() -> bool"""
        return _core.MouseEvent_MiddleDClick(*args, **kwargs)

    def RightDClick(*args, **kwargs):
        """RightDClick() -> bool"""
        return _core.MouseEvent_RightDClick(*args, **kwargs)

    def LeftIsDown(*args, **kwargs):
        """LeftIsDown() -> bool"""
        return _core.MouseEvent_LeftIsDown(*args, **kwargs)

    def MiddleIsDown(*args, **kwargs):
        """MiddleIsDown() -> bool"""
        return _core.MouseEvent_MiddleIsDown(*args, **kwargs)

    def RightIsDown(*args, **kwargs):
        """RightIsDown() -> bool"""
        return _core.MouseEvent_RightIsDown(*args, **kwargs)

    def Dragging(*args, **kwargs):
        """Dragging() -> bool"""
        return _core.MouseEvent_Dragging(*args, **kwargs)

    def Moving(*args, **kwargs):
        """Moving() -> bool"""
        return _core.MouseEvent_Moving(*args, **kwargs)

    def Entering(*args, **kwargs):
        """Entering() -> bool"""
        return _core.MouseEvent_Entering(*args, **kwargs)

    def Leaving(*args, **kwargs):
        """Leaving() -> bool"""
        return _core.MouseEvent_Leaving(*args, **kwargs)

    def GetPosition(*args, **kwargs):
        """
        GetPosition() -> Point

        Returns the position of the mouse in window coordinates when the event happened.
        """
        return _core.MouseEvent_GetPosition(*args, **kwargs)

    def GetPositionTuple(*args, **kwargs):
        """
        GetPositionTuple() -> (x,y)

        Returns the position of the mouse in window coordinates when the event happened.
        """
        return _core.MouseEvent_GetPositionTuple(*args, **kwargs)

    def GetLogicalPosition(*args, **kwargs):
        """GetLogicalPosition(DC dc) -> Point"""
        return _core.MouseEvent_GetLogicalPosition(*args, **kwargs)

    def GetX(*args, **kwargs):
        """GetX() -> int"""
        return _core.MouseEvent_GetX(*args, **kwargs)

    def GetY(*args, **kwargs):
        """GetY() -> int"""
        return _core.MouseEvent_GetY(*args, **kwargs)

    def GetWheelRotation(*args, **kwargs):
        """GetWheelRotation() -> int"""
        return _core.MouseEvent_GetWheelRotation(*args, **kwargs)

    def GetWheelDelta(*args, **kwargs):
        """GetWheelDelta() -> int"""
        return _core.MouseEvent_GetWheelDelta(*args, **kwargs)

    def GetLinesPerAction(*args, **kwargs):
        """GetLinesPerAction() -> int"""
        return _core.MouseEvent_GetLinesPerAction(*args, **kwargs)

    def IsPageScroll(*args, **kwargs):
        """IsPageScroll() -> bool"""
        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)

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 __repr__(self):
        return "<%s.%s; proxy of C++ wxSetCursorEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int x=0, int y=0) -> SetCursorEvent"""
        newobj = _core.new_SetCursorEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetX(*args, **kwargs):
        """GetX() -> int"""
        return _core.SetCursorEvent_GetX(*args, **kwargs)

    def GetY(*args, **kwargs):
        """GetY() -> int"""
        return _core.SetCursorEvent_GetY(*args, **kwargs)

    def SetCursor(*args, **kwargs):
        """SetCursor(Cursor cursor)"""
        return _core.SetCursorEvent_SetCursor(*args, **kwargs)

    def GetCursor(*args, **kwargs):
        """GetCursor() -> Cursor"""
        return _core.SetCursorEvent_GetCursor(*args, **kwargs)

    def HasCursor(*args, **kwargs):
        """HasCursor() -> bool"""
        return _core.SetCursorEvent_HasCursor(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxKeyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType keyType=wxEVT_NULL) -> KeyEvent"""
        newobj = _core.new_KeyEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def ControlDown(*args, **kwargs):
        """ControlDown() -> bool"""
        return _core.KeyEvent_ControlDown(*args, **kwargs)

    def MetaDown(*args, **kwargs):
        """MetaDown() -> bool"""
        return _core.KeyEvent_MetaDown(*args, **kwargs)

    def AltDown(*args, **kwargs):
        """AltDown() -> bool"""
        return _core.KeyEvent_AltDown(*args, **kwargs)

    def ShiftDown(*args, **kwargs):
        """ShiftDown() -> bool"""
        return _core.KeyEvent_ShiftDown(*args, **kwargs)

    def HasModifiers(*args, **kwargs):
        """HasModifiers() -> bool"""
        return _core.KeyEvent_HasModifiers(*args, **kwargs)

    def GetKeyCode(*args, **kwargs):
        """GetKeyCode() -> int"""
        return _core.KeyEvent_GetKeyCode(*args, **kwargs)

    KeyCode = GetKeyCode 
    def GetUniChar(*args, **kwargs):
        """GetUniChar() -> int"""
        return _core.KeyEvent_GetUniChar(*args, **kwargs)

    def GetRawKeyCode(*args, **kwargs):
        """GetRawKeyCode() -> unsigned int"""
        return _core.KeyEvent_GetRawKeyCode(*args, **kwargs)

    def GetRawKeyFlags(*args, **kwargs):
        """GetRawKeyFlags() -> unsigned int"""
        return _core.KeyEvent_GetRawKeyFlags(*args, **kwargs)

    def GetPosition(*args, **kwargs):
        """
        GetPosition() -> Point

        Find the position of the event.
        """
        return _core.KeyEvent_GetPosition(*args, **kwargs)

    def GetPositionTuple(*args, **kwargs):
        """
        GetPositionTuple() -> (x,y)

        Find the position of the event.
        """
        return _core.KeyEvent_GetPositionTuple(*args, **kwargs)

    def GetX(*args, **kwargs):
        """GetX() -> int"""
        return _core.KeyEvent_GetX(*args, **kwargs)

    def GetY(*args, **kwargs):
        """GetY() -> int"""
        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)

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 __repr__(self):
        return "<%s.%s; proxy of C++ wxSizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(Size sz=DefaultSize, int winid=0) -> SizeEvent"""
        newobj = _core.new_SizeEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetSize(*args, **kwargs):
        """GetSize() -> Size"""
        return _core.SizeEvent_GetSize(*args, **kwargs)

    def GetRect(*args, **kwargs):
        """GetRect() -> Rect"""
        return _core.SizeEvent_GetRect(*args, **kwargs)

    def SetRect(*args, **kwargs):
        """SetRect(Rect rect)"""
        return _core.SizeEvent_SetRect(*args, **kwargs)

    def SetSize(*args, **kwargs):
        """SetSize(Size size)"""
        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)

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 __repr__(self):
        return "<%s.%s; proxy of C++ wxMoveEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(Point pos=DefaultPosition, int winid=0) -> MoveEvent"""
        newobj = _core.new_MoveEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetPosition(*args, **kwargs):
        """GetPosition() -> Point"""
        return _core.MoveEvent_GetPosition(*args, **kwargs)

    def GetRect(*args, **kwargs):
        """GetRect() -> Rect"""
        return _core.MoveEvent_GetRect(*args, **kwargs)

    def SetRect(*args, **kwargs):
        """SetRect(Rect rect)"""
        return _core.MoveEvent_SetRect(*args, **kwargs)

    def SetPosition(*args, **kwargs):
        """SetPosition(Point pos)"""
        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)

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 __repr__(self):
        return "<%s.%s; proxy of C++ wxPaintEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int Id=0) -> PaintEvent"""
        newobj = _core.new_PaintEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown

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 __repr__(self):
        return "<%s.%s; proxy of C++ wxNcPaintEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int winid=0) -> NcPaintEvent"""
        newobj = _core.new_NcPaintEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown

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 __repr__(self):
        return "<%s.%s; proxy of C++ wxEraseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int Id=0, DC dc=(wxDC *) NULL) -> EraseEvent"""
        newobj = _core.new_EraseEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetDC(*args, **kwargs):
        """GetDC() -> DC"""
        return _core.EraseEvent_GetDC(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxFocusEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType type=wxEVT_NULL, int winid=0) -> FocusEvent"""
        newobj = _core.new_FocusEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetWindow(*args, **kwargs):
        """GetWindow() -> Window"""
        return _core.FocusEvent_GetWindow(*args, **kwargs)

    def SetWindow(*args, **kwargs):
        """SetWindow(Window win)"""
        return _core.FocusEvent_SetWindow(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxChildFocusEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(Window win=None) -> ChildFocusEvent"""
        newobj = _core.new_ChildFocusEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetWindow(*args, **kwargs):
        """GetWindow() -> Window"""
        return _core.ChildFocusEvent_GetWindow(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxActivateEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType type=wxEVT_NULL, bool active=True, int Id=0) -> ActivateEvent"""
        newobj = _core.new_ActivateEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetActive(*args, **kwargs):
        """GetActive() -> bool"""
        return _core.ActivateEvent_GetActive(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxInitDialogEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int Id=0) -> InitDialogEvent"""
        newobj = _core.new_InitDialogEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown

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 __repr__(self):
        return "<%s.%s; proxy of C++ wxMenuEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType type=wxEVT_NULL, int winid=0, Menu menu=None) -> MenuEvent"""
        newobj = _core.new_MenuEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetMenuId(*args, **kwargs):
        """GetMenuId() -> int"""
        return _core.MenuEvent_GetMenuId(*args, **kwargs)

    def IsPopup(*args, **kwargs):
        """IsPopup() -> bool"""
        return _core.MenuEvent_IsPopup(*args, **kwargs)

    def GetMenu(*args, **kwargs):
        """GetMenu() -> Menu"""
        return _core.MenuEvent_GetMenu(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxCloseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType type=wxEVT_NULL, int winid=0) -> CloseEvent"""
        newobj = _core.new_CloseEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def SetLoggingOff(*args, **kwargs):
        """SetLoggingOff(bool logOff)"""
        return _core.CloseEvent_SetLoggingOff(*args, **kwargs)

    def GetLoggingOff(*args, **kwargs):
        """GetLoggingOff() -> bool"""
        return _core.CloseEvent_GetLoggingOff(*args, **kwargs)

    def Veto(*args, **kwargs):
        """Veto(bool veto=True)"""
        return _core.CloseEvent_Veto(*args, **kwargs)

    def SetCanVeto(*args, **kwargs):
        """SetCanVeto(bool canVeto)"""
        return _core.CloseEvent_SetCanVeto(*args, **kwargs)

    def CanVeto(*args, **kwargs):
        """CanVeto() -> bool"""
        return _core.CloseEvent_CanVeto(*args, **kwargs)

    def GetVeto(*args, **kwargs):
        """GetVeto() -> bool"""
        return _core.CloseEvent_GetVeto(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxShowEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int winid=0, bool show=False) -> ShowEvent"""
        newobj = _core.new_ShowEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def SetShow(*args, **kwargs):
        """SetShow(bool show)"""
        return _core.ShowEvent_SetShow(*args, **kwargs)

    def GetShow(*args, **kwargs):
        """GetShow() -> bool"""
        return _core.ShowEvent_GetShow(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxIconizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int id=0, bool iconized=True) -> IconizeEvent"""
        newobj = _core.new_IconizeEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def Iconized(*args, **kwargs):
        """Iconized() -> bool"""
        return _core.IconizeEvent_Iconized(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxMaximizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int id=0) -> MaximizeEvent"""
        newobj = _core.new_MaximizeEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown

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 __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,)
    def GetPosition(*args, **kwargs):
        """GetPosition() -> Point"""
        return _core.DropFilesEvent_GetPosition(*args, **kwargs)

    def GetNumberOfFiles(*args, **kwargs):
        """GetNumberOfFiles() -> int"""
        return _core.DropFilesEvent_GetNumberOfFiles(*args, **kwargs)

    def GetFiles(*args, **kwargs):
        """GetFiles() -> PyObject"""
        return _core.DropFilesEvent_GetFiles(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxUpdateUIEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int commandId=0) -> UpdateUIEvent"""
        newobj = _core.new_UpdateUIEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetChecked(*args, **kwargs):
        """GetChecked() -> bool"""
        return _core.UpdateUIEvent_GetChecked(*args, **kwargs)

    def GetEnabled(*args, **kwargs):
        """GetEnabled() -> bool"""
        return _core.UpdateUIEvent_GetEnabled(*args, **kwargs)

    def GetText(*args, **kwargs):
        """GetText() -> String"""
        return _core.UpdateUIEvent_GetText(*args, **kwargs)

    def GetSetText(*args, **kwargs):
        """GetSetText() -> bool"""
        return _core.UpdateUIEvent_GetSetText(*args, **kwargs)

    def GetSetChecked(*args, **kwargs):
        """GetSetChecked() -> bool"""
        return _core.UpdateUIEvent_GetSetChecked(*args, **kwargs)

    def GetSetEnabled(*args, **kwargs):
        """GetSetEnabled() -> bool"""
        return _core.UpdateUIEvent_GetSetEnabled(*args, **kwargs)

    def Check(*args, **kwargs):
        """Check(bool check)"""
        return _core.UpdateUIEvent_Check(*args, **kwargs)

    def Enable(*args, **kwargs):
        """Enable(bool enable)"""
        return _core.UpdateUIEvent_Enable(*args, **kwargs)

    def SetText(*args, **kwargs):
        """SetText(String text)"""
        return _core.UpdateUIEvent_SetText(*args, **kwargs)

    def SetUpdateInterval(*args, **kwargs):
        """SetUpdateInterval(long updateInterval)"""
        return _core.UpdateUIEvent_SetUpdateInterval(*args, **kwargs)

    SetUpdateInterval = staticmethod(SetUpdateInterval)
    def GetUpdateInterval(*args, **kwargs):
        """GetUpdateInterval() -> long"""
        return _core.UpdateUIEvent_GetUpdateInterval(*args, **kwargs)

    GetUpdateInterval = staticmethod(GetUpdateInterval)
    def CanUpdate(*args, **kwargs):
        """CanUpdate(Window win) -> bool"""
        return _core.UpdateUIEvent_CanUpdate(*args, **kwargs)

    CanUpdate = staticmethod(CanUpdate)
    def ResetUpdateTime(*args, **kwargs):
        """ResetUpdateTime()"""
        return _core.UpdateUIEvent_ResetUpdateTime(*args, **kwargs)

    ResetUpdateTime = staticmethod(ResetUpdateTime)
    def SetMode(*args, **kwargs):
        """SetMode(int mode)"""
        return _core.UpdateUIEvent_SetMode(*args, **kwargs)

    SetMode = staticmethod(SetMode)
    def GetMode(*args, **kwargs):
        """GetMode() -> int"""
        return _core.UpdateUIEvent_GetMode(*args, **kwargs)

    GetMode = staticmethod(GetMode)

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)

def UpdateUIEvent_SetUpdateInterval(*args, **kwargs):
    """UpdateUIEvent_SetUpdateInterval(long updateInterval)"""
    return _core.UpdateUIEvent_SetUpdateInterval(*args, **kwargs)

def UpdateUIEvent_GetUpdateInterval(*args, **kwargs):
    """UpdateUIEvent_GetUpdateInterval() -> long"""
    return _core.UpdateUIEvent_GetUpdateInterval(*args, **kwargs)

def UpdateUIEvent_CanUpdate(*args, **kwargs):
    """UpdateUIEvent_CanUpdate(Window win) -> bool"""
    return _core.UpdateUIEvent_CanUpdate(*args, **kwargs)

def UpdateUIEvent_ResetUpdateTime(*args, **kwargs):
    """UpdateUIEvent_ResetUpdateTime()"""
    return _core.UpdateUIEvent_ResetUpdateTime(*args, **kwargs)

def UpdateUIEvent_SetMode(*args, **kwargs):
    """UpdateUIEvent_SetMode(int mode)"""
    return _core.UpdateUIEvent_SetMode(*args, **kwargs)

def UpdateUIEvent_GetMode(*args, **kwargs):
    """UpdateUIEvent_GetMode() -> int"""
    return _core.UpdateUIEvent_GetMode(*args, **kwargs)

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

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

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 __repr__(self):
        return "<%s.%s; proxy of C++ wxMouseCaptureChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int winid=0, Window gainedCapture=None) -> MouseCaptureChangedEvent"""
        newobj = _core.new_MouseCaptureChangedEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetCapturedWindow(*args, **kwargs):
        """GetCapturedWindow() -> Window"""
        return _core.MouseCaptureChangedEvent_GetCapturedWindow(*args, **kwargs)


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

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 __repr__(self):
        return "<%s.%s; proxy of C++ wxPaletteChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int id=0) -> PaletteChangedEvent"""
        newobj = _core.new_PaletteChangedEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def SetChangedWindow(*args, **kwargs):
        """SetChangedWindow(Window win)"""
        return _core.PaletteChangedEvent_SetChangedWindow(*args, **kwargs)

    def GetChangedWindow(*args, **kwargs):
        """GetChangedWindow() -> Window"""
        return _core.PaletteChangedEvent_GetChangedWindow(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxQueryNewPaletteEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int winid=0) -> QueryNewPaletteEvent"""
        newobj = _core.new_QueryNewPaletteEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def SetPaletteRealized(*args, **kwargs):
        """SetPaletteRealized(bool realized)"""
        return _core.QueryNewPaletteEvent_SetPaletteRealized(*args, **kwargs)

    def GetPaletteRealized(*args, **kwargs):
        """GetPaletteRealized() -> bool"""
        return _core.QueryNewPaletteEvent_GetPaletteRealized(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxNavigationKeyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> NavigationKeyEvent"""
        newobj = _core.new_NavigationKeyEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetDirection(*args, **kwargs):
        """GetDirection() -> bool"""
        return _core.NavigationKeyEvent_GetDirection(*args, **kwargs)

    def SetDirection(*args, **kwargs):
        """SetDirection(bool bForward)"""
        return _core.NavigationKeyEvent_SetDirection(*args, **kwargs)

    def IsWindowChange(*args, **kwargs):
        """IsWindowChange() -> bool"""
        return _core.NavigationKeyEvent_IsWindowChange(*args, **kwargs)

    def SetWindowChange(*args, **kwargs):
        """SetWindowChange(bool bIs)"""
        return _core.NavigationKeyEvent_SetWindowChange(*args, **kwargs)

    def GetCurrentFocus(*args, **kwargs):
        """GetCurrentFocus() -> Window"""
        return _core.NavigationKeyEvent_GetCurrentFocus(*args, **kwargs)

    def SetCurrentFocus(*args, **kwargs):
        """SetCurrentFocus(Window win)"""
        return _core.NavigationKeyEvent_SetCurrentFocus(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxWindowCreateEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(Window win=None) -> WindowCreateEvent"""
        newobj = _core.new_WindowCreateEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetWindow(*args, **kwargs):
        """GetWindow() -> Window"""
        return _core.WindowCreateEvent_GetWindow(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxWindowDestroyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(Window win=None) -> WindowDestroyEvent"""
        newobj = _core.new_WindowDestroyEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetWindow(*args, **kwargs):
        """GetWindow() -> Window"""
        return _core.WindowDestroyEvent_GetWindow(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxContextMenuEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType type=wxEVT_NULL, int winid=0, Point pt=DefaultPosition) -> ContextMenuEvent"""
        newobj = _core.new_ContextMenuEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetPosition(*args, **kwargs):
        """GetPosition() -> Point"""
        return _core.ContextMenuEvent_GetPosition(*args, **kwargs)

    def SetPosition(*args, **kwargs):
        """SetPosition(Point pos)"""
        return _core.ContextMenuEvent_SetPosition(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxIdleEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> IdleEvent"""
        newobj = _core.new_IdleEvent(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def RequestMore(*args, **kwargs):
        """RequestMore(bool needMore=True)"""
        return _core.IdleEvent_RequestMore(*args, **kwargs)

    def MoreRequested(*args, **kwargs):
        """MoreRequested() -> bool"""
        return _core.IdleEvent_MoreRequested(*args, **kwargs)

    def SetMode(*args, **kwargs):
        """SetMode(int mode)"""
        return _core.IdleEvent_SetMode(*args, **kwargs)

    SetMode = staticmethod(SetMode)
    def GetMode(*args, **kwargs):
        """GetMode() -> int"""
        return _core.IdleEvent_GetMode(*args, **kwargs)

    GetMode = staticmethod(GetMode)
    def CanSend(*args, **kwargs):
        """CanSend(Window win) -> bool"""
        return _core.IdleEvent_CanSend(*args, **kwargs)

    CanSend = staticmethod(CanSend)

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)

def IdleEvent_SetMode(*args, **kwargs):
    """IdleEvent_SetMode(int mode)"""
    return _core.IdleEvent_SetMode(*args, **kwargs)

def IdleEvent_GetMode(*args, **kwargs):
    """IdleEvent_GetMode() -> int"""
    return _core.IdleEvent_GetMode(*args, **kwargs)

def IdleEvent_CanSend(*args, **kwargs):
    """IdleEvent_CanSend(Window win) -> bool"""
    return _core.IdleEvent_CanSend(*args, **kwargs)

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

class PyEvent(Event):
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int winid=0, wxEventType commandType=wxEVT_NULL) -> PyEvent"""
        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):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def SetSelf(*args, **kwargs):
        """SetSelf(PyObject self)"""
        return _core.PyEvent_SetSelf(*args, **kwargs)

    def GetSelf(*args, **kwargs):
        """GetSelf() -> PyObject"""
        return _core.PyEvent_GetSelf(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxPyCommandEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxEventType commandType=wxEVT_NULL, int id=0) -> PyCommandEvent"""
        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):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def SetSelf(*args, **kwargs):
        """SetSelf(PyObject self)"""
        return _core.PyCommandEvent_SetSelf(*args, **kwargs)

    def GetSelf(*args, **kwargs):
        """GetSelf() -> PyObject"""
        return _core.PyCommandEvent_GetSelf(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxPyApp instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """
        __init__() -> PyApp

        Create a new application object, starting the bootstrap process.
        """
        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):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def _setCallbackInfo(*args, **kwargs):
        """_setCallbackInfo(PyObject self, PyObject _class)"""
        return _core.PyApp__setCallbackInfo(*args, **kwargs)

    def GetAppName(*args, **kwargs):
        """
        GetAppName() -> String

        Get the application name.
        """
        return _core.PyApp_GetAppName(*args, **kwargs)

    def SetAppName(*args, **kwargs):
        """
        SetAppName(String name)

        Set the application name. This value may be used automatically
        by wx.Config and such.
        """
        return _core.PyApp_SetAppName(*args, **kwargs)

    def GetClassName(*args, **kwargs):
        """
        GetClassName() -> String

        Get the application's class name.
        """
        return _core.PyApp_GetClassName(*args, **kwargs)

    def SetClassName(*args, **kwargs):
        """
        SetClassName(String name)

        Set the application's class name. This value may be used for X-resources if
        applicable for the platform
        """
        return _core.PyApp_SetClassName(*args, **kwargs)

    def GetVendorName(*args, **kwargs):
        """
        GetVendorName() -> String

        Get the application's vendor name.
        """
        return _core.PyApp_GetVendorName(*args, **kwargs)

    def SetVendorName(*args, **kwargs):
        """
        SetVendorName(String name)

        Set the application's vendor name. This value may be used automatically
        by wx.Config and such.
        """
        return _core.PyApp_SetVendorName(*args, **kwargs)

    def GetTraits(*args, **kwargs):
        """
        GetTraits() -> wxAppTraits

        Create the app traits object to which we delegate for everything which either
        should be configurable by the user (then he can change the default behaviour
        simply by overriding CreateTraits() and returning his own traits object) or
        which is GUI/console dependent as then wx.AppTraits allows us to abstract the
        differences behind the common facade
        """
        return _core.PyApp_GetTraits(*args, **kwargs)

    def ProcessPendingEvents(*args, **kwargs):
        """
        ProcessPendingEvents()

        Process all events in the Pending Events list -- it is necessary to call this
        function to process posted events. This happens during each event loop
        iteration.
        """
        return _core.PyApp_ProcessPendingEvents(*args, **kwargs)

    def Yield(*args, **kwargs):
        """
        Yield(bool onlyIfNeeded=False) -> bool

        Process all currently pending events right now, instead of waiting until
        return to the event loop.  It is an error to call Yield() recursively unless
        the value of onlyIfNeeded is True.

        WARNING: This function is dangerous as it can lead to unexpected
                 reentrancies (i.e. when called from an event handler it
                 may result in calling the same event handler again), use
                 with _extreme_ care or, better, don't use at all!

        """
        return _core.PyApp_Yield(*args, **kwargs)

    def WakeUpIdle(*args, **kwargs):
        """
        WakeUpIdle()

        Make sure that idle events are sent again
        """
        return _core.PyApp_WakeUpIdle(*args, **kwargs)

    def MainLoop(*args, **kwargs):
        """
        MainLoop() -> int

        Execute the main GUI loop, the function returns when the loop ends.
        """
        return _core.PyApp_MainLoop(*args, **kwargs)

    def Exit(*args, **kwargs):
        """
        Exit()

        Exit the main loop thus terminating the application.
        """
        return _core.PyApp_Exit(*args, **kwargs)

    def ExitMainLoop(*args, **kwargs):
        """
        ExitMainLoop()

        Exit the main GUI loop during the next iteration (i.e. it does not
        stop the program immediately!)
        """
        return _core.PyApp_ExitMainLoop(*args, **kwargs)

    def Pending(*args, **kwargs):
        """
        Pending() -> bool

        Returns True if there are unprocessed events in the event queue.
        """
        return _core.PyApp_Pending(*args, **kwargs)

    def Dispatch(*args, **kwargs):
        """
        Dispatch() -> bool

        Process the first event in the event queue (blocks until an event
        appears if there are none currently)
        """
        return _core.PyApp_Dispatch(*args, **kwargs)

    def ProcessIdle(*args, **kwargs):
        """
        ProcessIdle() -> bool

        Called from the MainLoop when the application becomes idle and sends an
        IdleEvent to all interested parties.  Returns True is more idle events are
        needed, False if not.
        """
        return _core.PyApp_ProcessIdle(*args, **kwargs)

    def SendIdleEvents(*args, **kwargs):
        """
        SendIdleEvents(Window win, IdleEvent event) -> bool

        Send idle event to window and all subwindows.  Returns True if more idle time
        is requested.
        """
        return _core.PyApp_SendIdleEvents(*args, **kwargs)

    def IsActive(*args, **kwargs):
        """
        IsActive() -> bool

        Return True if our app has focus.
        """
        return _core.PyApp_IsActive(*args, **kwargs)

    def SetTopWindow(*args, **kwargs):
        """
        SetTopWindow(Window win)

        Set the "main" top level window
        """
        return _core.PyApp_SetTopWindow(*args, **kwargs)

    def GetTopWindow(*args, **kwargs):
        """
        GetTopWindow() -> Window

        Return the "main" top level window (if it hadn't been set previously with
        SetTopWindow(), will return just some top level window and, if there not any,
        will return None)
        """
        return _core.PyApp_GetTopWindow(*args, **kwargs)

    def SetExitOnFrameDelete(*args, **kwargs):
        """
        SetExitOnFrameDelete(bool flag)

        Control the exit behaviour: by default, the program will exit the main loop
        (and so, usually, terminate) when the last top-level program window is
        deleted.  Beware that if you disable this behaviour (with
        SetExitOnFrameDelete(False)), you'll have to call ExitMainLoop() explicitly
        from somewhere.

        """
        return _core.PyApp_SetExitOnFrameDelete(*args, **kwargs)

    def GetExitOnFrameDelete(*args, **kwargs):
        """
        GetExitOnFrameDelete() -> bool

        Get the current exit behaviour setting.
        """
        return _core.PyApp_GetExitOnFrameDelete(*args, **kwargs)

    def SetUseBestVisual(*args, **kwargs):
        """
        SetUseBestVisual(bool flag)

        Set whether the app should try to use the best available visual on systems
        where more than one is available, (Sun, SGI, XFree86 4, etc.)
        """
        return _core.PyApp_SetUseBestVisual(*args, **kwargs)

    def GetUseBestVisual(*args, **kwargs):
        """
        GetUseBestVisual() -> bool

        Get current UseBestVisual setting.
        """
        return _core.PyApp_GetUseBestVisual(*args, **kwargs)

    def SetPrintMode(*args, **kwargs):
        """SetPrintMode(int mode)"""
        return _core.PyApp_SetPrintMode(*args, **kwargs)

    def GetPrintMode(*args, **kwargs):
        """GetPrintMode() -> int"""
        return _core.PyApp_GetPrintMode(*args, **kwargs)

    def SetAssertMode(*args, **kwargs):
        """
        SetAssertMode(int mode)

        Set the OnAssert behaviour for debug and hybrid builds.  The following flags
        may be or'd together:

         wx.PYAPP_ASSERT_SUPPRESS         Don't do anything
         wx.PYAPP_ASSERT_EXCEPTION        Turn it into a Python exception if possible (default)
         wx.PYAPP_ASSERT_DIALOG           Display a message dialog
         wx.PYAPP_ASSERT_LOG              Write the assertion info to the wx.Log

        """
        return _core.PyApp_SetAssertMode(*args, **kwargs)

    def GetAssertMode(*args, **kwargs):
        """
        GetAssertMode() -> int

        Get the current OnAssert behaviour setting.
        """
        return _core.PyApp_GetAssertMode(*args, **kwargs)

    def GetMacSupportPCMenuShortcuts(*args, **kwargs):
        """GetMacSupportPCMenuShortcuts() -> bool"""
        return _core.PyApp_GetMacSupportPCMenuShortcuts(*args, **kwargs)

    GetMacSupportPCMenuShortcuts = staticmethod(GetMacSupportPCMenuShortcuts)
    def GetMacAboutMenuItemId(*args, **kwargs):
        """GetMacAboutMenuItemId() -> long"""
        return _core.PyApp_GetMacAboutMenuItemId(*args, **kwargs)

    GetMacAboutMenuItemId = staticmethod(GetMacAboutMenuItemId)
    def GetMacPreferencesMenuItemId(*args, **kwargs):
        """GetMacPreferencesMenuItemId() -> long"""
        return _core.PyApp_GetMacPreferencesMenuItemId(*args, **kwargs)

    GetMacPreferencesMenuItemId = staticmethod(GetMacPreferencesMenuItemId)
    def GetMacExitMenuItemId(*args, **kwargs):
        """GetMacExitMenuItemId() -> long"""
        return _core.PyApp_GetMacExitMenuItemId(*args, **kwargs)

    GetMacExitMenuItemId = staticmethod(GetMacExitMenuItemId)
    def GetMacHelpMenuTitleName(*args, **kwargs):
        """GetMacHelpMenuTitleName() -> String"""
        return _core.PyApp_GetMacHelpMenuTitleName(*args, **kwargs)

    GetMacHelpMenuTitleName = staticmethod(GetMacHelpMenuTitleName)
    def SetMacSupportPCMenuShortcuts(*args, **kwargs):
        """SetMacSupportPCMenuShortcuts(bool val)"""
        return _core.PyApp_SetMacSupportPCMenuShortcuts(*args, **kwargs)

    SetMacSupportPCMenuShortcuts = staticmethod(SetMacSupportPCMenuShortcuts)
    def SetMacAboutMenuItemId(*args, **kwargs):
        """SetMacAboutMenuItemId(long val)"""
        return _core.PyApp_SetMacAboutMenuItemId(*args, **kwargs)

    SetMacAboutMenuItemId = staticmethod(SetMacAboutMenuItemId)
    def SetMacPreferencesMenuItemId(*args, **kwargs):
        """SetMacPreferencesMenuItemId(long val)"""
        return _core.PyApp_SetMacPreferencesMenuItemId(*args, **kwargs)

    SetMacPreferencesMenuItemId = staticmethod(SetMacPreferencesMenuItemId)
    def SetMacExitMenuItemId(*args, **kwargs):
        """SetMacExitMenuItemId(long val)"""
        return _core.PyApp_SetMacExitMenuItemId(*args, **kwargs)

    SetMacExitMenuItemId = staticmethod(SetMacExitMenuItemId)
    def SetMacHelpMenuTitleName(*args, **kwargs):
        """SetMacHelpMenuTitleName(String val)"""
        return _core.PyApp_SetMacHelpMenuTitleName(*args, **kwargs)

    SetMacHelpMenuTitleName = staticmethod(SetMacHelpMenuTitleName)
    def _BootstrapApp(*args, **kwargs):
        """
        _BootstrapApp()

        For internal use only
        """
        return _core.PyApp__BootstrapApp(*args, **kwargs)

    def GetComCtl32Version(*args, **kwargs):
        """
        GetComCtl32Version() -> int

        Returns 400, 470, 471 for comctl32.dll 4.00, 4.70, 4.71 or 0 if it
        wasn't found at all.  Raises an exception on non-Windows platforms.
        """
        return _core.PyApp_GetComCtl32Version(*args, **kwargs)

    GetComCtl32Version = staticmethod(GetComCtl32Version)

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)

def PyApp_GetMacSupportPCMenuShortcuts(*args, **kwargs):
    """PyApp_GetMacSupportPCMenuShortcuts() -> bool"""
    return _core.PyApp_GetMacSupportPCMenuShortcuts(*args, **kwargs)

def PyApp_GetMacAboutMenuItemId(*args, **kwargs):
    """PyApp_GetMacAboutMenuItemId() -> long"""
    return _core.PyApp_GetMacAboutMenuItemId(*args, **kwargs)

def PyApp_GetMacPreferencesMenuItemId(*args, **kwargs):
    """PyApp_GetMacPreferencesMenuItemId() -> long"""
    return _core.PyApp_GetMacPreferencesMenuItemId(*args, **kwargs)

def PyApp_GetMacExitMenuItemId(*args, **kwargs):
    """PyApp_GetMacExitMenuItemId() -> long"""
    return _core.PyApp_GetMacExitMenuItemId(*args, **kwargs)

def PyApp_GetMacHelpMenuTitleName(*args, **kwargs):
    """PyApp_GetMacHelpMenuTitleName() -> String"""
    return _core.PyApp_GetMacHelpMenuTitleName(*args, **kwargs)

def PyApp_SetMacSupportPCMenuShortcuts(*args, **kwargs):
    """PyApp_SetMacSupportPCMenuShortcuts(bool val)"""
    return _core.PyApp_SetMacSupportPCMenuShortcuts(*args, **kwargs)

def PyApp_SetMacAboutMenuItemId(*args, **kwargs):
    """PyApp_SetMacAboutMenuItemId(long val)"""
    return _core.PyApp_SetMacAboutMenuItemId(*args, **kwargs)

def PyApp_SetMacPreferencesMenuItemId(*args, **kwargs):
    """PyApp_SetMacPreferencesMenuItemId(long val)"""
    return _core.PyApp_SetMacPreferencesMenuItemId(*args, **kwargs)

def PyApp_SetMacExitMenuItemId(*args, **kwargs):
    """PyApp_SetMacExitMenuItemId(long val)"""
    return _core.PyApp_SetMacExitMenuItemId(*args, **kwargs)

def PyApp_SetMacHelpMenuTitleName(*args, **kwargs):
    """PyApp_SetMacHelpMenuTitleName(String val)"""
    return _core.PyApp_SetMacHelpMenuTitleName(*args, **kwargs)

def PyApp_GetComCtl32Version(*args, **kwargs):
    """
    PyApp_GetComCtl32Version() -> int

    Returns 400, 470, 471 for comctl32.dll 4.00, 4.70, 4.71 or 0 if it
    wasn't found at all.  Raises an exception on non-Windows platforms.
    """
    return _core.PyApp_GetComCtl32Version(*args, **kwargs)

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


def Exit(*args, **kwargs):
    """
    Exit()

    Force an exit of the application.  Convenience for wx.GetApp().Exit()
    """
    return _core.Exit(*args, **kwargs)

def Yield(*args, **kwargs):
    """
    Yield() -> bool

    Yield to other apps/messages.  Convenience for wx.GetApp().Yield()
    """
    return _core.Yield(*args, **kwargs)

def YieldIfNeeded(*args, **kwargs):
    """
    YieldIfNeeded() -> bool

    Yield to other apps/messages.  Convenience for wx.GetApp().Yield(True)
    """
    return _core.YieldIfNeeded(*args, **kwargs)

def SafeYield(*args, **kwargs):
    """
    SafeYield(Window win=None, bool onlyIfNeeded=False) -> bool

    This function is similar to wx.Yield, except that it disables the user input
    to all program windows before calling wx.Yield and re-enables it again
    afterwards. If win is not None, this window will remain enabled, allowing the
    implementation of some limited user interaction.

    Returns the result of the call to wx.Yield.
    """
    return _core.SafeYield(*args, **kwargs)

def WakeUpIdle(*args, **kwargs):
    """
    WakeUpIdle()

    Cause the message queue to become empty again, so idle events will be sent.
    """
    return _core.WakeUpIdle(*args, **kwargs)

def PostEvent(*args, **kwargs):
    """
    PostEvent(EvtHandler dest, Event event)

    Send an event to a window or other wx.EvtHandler to be processed later.
    """
    return _core.PostEvent(*args, **kwargs)

def App_CleanUp(*args, **kwargs):
    """
    App_CleanUp()

    For internal use only, it is used to cleanup after wxWindows when Python shuts down.
    """
    return _core.App_CleanUp(*args, **kwargs)

def GetApp(*args, **kwargs):
    """
    GetApp() -> PyApp

    Return a reference to the current wx.App object.
    """
    return _core.GetApp(*args, **kwargs)
#----------------------------------------------------------------------

class PyOnDemandOutputWindow:
    """
    A class that can be used for redirecting Python's stdout and
    stderr streams.  It will do nothing until something is wrriten to
    the stream at which point it will create a Frame with a text area
    and write the text there.
    """
    def __init__(self, title = "wxPython: stdout/stderr"):
        self.frame  = None
        self.title  = title
        self.parent = None

    def SetParent(self, parent):
        """Set the window to be used as the popup Frame's parent."""
        self.parent = parent


    def CreateOutputWindow(self, st):
        self.frame = wx.Frame(self.parent, -1, self.title,
                              style=wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE)
        self.text  = wx.TextCtrl(self.frame, -1, "",
                                 style = wx.TE_MULTILINE | wx.TE_READONLY)
        self.text.AppendText(st)
        self.frame.SetSize((450, 300))
        self.frame.Show(True)
        EVT_CLOSE(self.frame, self.OnCloseWindow)
        

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


    # These methods provide the file-like output behaviour.
    def write(self, text):
        """
        Create the output window if needed and write the string to it.
        If not called in the context of the gui thread then uses
        CallAfter to do the work there.
        """        
        if self.frame is None:
            if not wx.Thread_IsMain():
                wx.CallAfter(self.CreateOutputWindow, text)
            else:
                self.CreateOutputWindow(text)
        else:
            if not wx.Thread_IsMain():
                wx.CallAfter(self.text.AppendText, text)
            else:
                self.text.AppendText(text)


    def close(self):
        if self.frame is not None:
            wx.CallAfter(self.frame.Close)



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

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

class App(wx.PyApp):
    """
    The main application class.  Derive from this and implement an OnInit
    method that creates a frame and then calls self.SetTopWindow(frame)
    """
    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):
        """Set the \"main\" top level window"""
        if self.stdioWin:
            self.stdioWin.SetParent(frame)
        wx.PyApp.SetTopWindow(self, frame)


    def MainLoop(self):
        """Execute the main GUI event loop"""
        wx.PyApp.MainLoop(self)
        self.RestoreStdio()


    def RedirectStdio(self, filename=None):
        """Redirect sys.stdout and sys.stderr to a file or a popup window."""
        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):
    """
    A simple application class.  You can just create one of these and
    then then make your top level windows later, and not have to worry
    about OnInit."""

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


# Is anybody using this one?
class PyWidgetTester(wx.App):
    def __init__(self, size = (250, 100)):
        self.size = size
        wx.App.__init__(self, 0)

    def OnInit(self):
        self.frame = wx.Frame(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 AcceleratorEntry(object):
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxAcceleratorEntry instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int flags=0, int keyCode=0, int cmd=0, MenuItem item=None) -> AcceleratorEntry"""
        newobj = _core.new_AcceleratorEntry(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_AcceleratorEntry):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def Set(*args, **kwargs):
        """Set(int flags, int keyCode, int cmd, MenuItem item=None)"""
        return _core.AcceleratorEntry_Set(*args, **kwargs)

    def SetMenuItem(*args, **kwargs):
        """SetMenuItem(MenuItem item)"""
        return _core.AcceleratorEntry_SetMenuItem(*args, **kwargs)

    def GetMenuItem(*args, **kwargs):
        """GetMenuItem() -> MenuItem"""
        return _core.AcceleratorEntry_GetMenuItem(*args, **kwargs)

    def GetFlags(*args, **kwargs):
        """GetFlags() -> int"""
        return _core.AcceleratorEntry_GetFlags(*args, **kwargs)

    def GetKeyCode(*args, **kwargs):
        """GetKeyCode() -> int"""
        return _core.AcceleratorEntry_GetKeyCode(*args, **kwargs)

    def GetCommand(*args, **kwargs):
        """GetCommand() -> int"""
        return _core.AcceleratorEntry_GetCommand(*args, **kwargs)


class AcceleratorEntryPtr(AcceleratorEntry):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = AcceleratorEntry
_core.AcceleratorEntry_swigregister(AcceleratorEntryPtr)

class AcceleratorTable(Object):
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxAcceleratorTable instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """
        __init__(entries) -> AcceleratorTable

        Construct an AcceleratorTable from a list of AcceleratorEntry items or
        3-tuples (flags, keyCode, cmdID)
        """
        newobj = _core.new_AcceleratorTable(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def __del__(self, destroy=_core.delete_AcceleratorTable):
        """__del__()"""
        try:
            if self.thisown: destroy(self)
        except: pass

    def Ok(*args, **kwargs):
        """Ok() -> bool"""
        return _core.AcceleratorTable_Ok(*args, **kwargs)


class AcceleratorTablePtr(AcceleratorTable):
    def __init__(self, this):
        self.this = this
        if not hasattr(self,"thisown"): self.thisown = 0
        self.__class__ = AcceleratorTable
_core.AcceleratorTable_swigregister(AcceleratorTablePtr)


def GetAccelFromString(*args, **kwargs):
    """GetAccelFromString(String label) -> AcceleratorEntry"""
    return _core.GetAccelFromString(*args, **kwargs)
#---------------------------------------------------------------------------

WINDOW_VARIANT_DEFAULT = _core.WINDOW_VARIANT_DEFAULT
WINDOW_VARIANT_NORMAL = _core.WINDOW_VARIANT_NORMAL
WINDOW_VARIANT_SMALL = _core.WINDOW_VARIANT_SMALL
WINDOW_VARIANT_MINI = _core.WINDOW_VARIANT_MINI
WINDOW_VARIANT_LARGE = _core.WINDOW_VARIANT_LARGE
class Window(EvtHandler):
    """
    wx.Window is the base class for all windows and represents any visible
    object on the screen. All controls, top level windows and so on are
    wx.Windows. Sizers and device contexts are not however, as they don't
    appear on screen themselves.

    """
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxWindow instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """
        __init__(Window parent, int id, Point pos=DefaultPosition, Size size=DefaultSize, 
            long style=0, String name=PanelNameStr) -> Window

        Construct and show a generic Window.
        """
        newobj = _core.new_Window(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)

    def Create(*args, **kwargs):
        """
        Create(Window parent, int id, Point pos=DefaultPosition, Size size=DefaultSize, 
            long style=0, String name=PanelNameStr) -> bool

        Create the GUI part of the Window for 2-phase creation mode.
        """
        return _core.Window_Create(*args, **kwargs)

    def Close(*args, **kwargs):
        """
        Close(bool force=False) -> bool

        This function simply generates a EVT_CLOSE event whose handler usually
        tries to close the window. It doesn't close the window itself,
        however.  If force is False (the default) then the window's close
        handler will be allowed to veto the destruction of the window.

        Usually Close is only used with the top level windows (wx.Frame and
        wx.Dialog classes) as the others are not supposed to have any special
        EVT_CLOSE logic.

        The close handler should check whether the window is being deleted
        forcibly, using wx.CloseEvent.GetForce, in which case it should
        destroy the window using wx.Window.Destroy.

        Note that calling Close does not guarantee that the window will be
        destroyed; but it provides a way to simulate a manual close of a
        window, which may or may not be implemented by destroying the
        window. The default EVT_CLOSE handler for wx.Dialog does not
        necessarily delete the dialog, since it will simply simulate an
        wxID_CANCEL event which is handled by the appropriate button event
        handler and may do anything at all.

        To guarantee that the window will be destroyed, call wx.Window.Destroy
        instead.
        """
        return _core.Window_Close(*args, **kwargs)

    def Destroy(*args, **kwargs):
        """
        Destroy() -> bool

        Destroys the window safely.  Frames and dialogs are not destroyed
        immediately when this function is called -- they are added to a list
        of windows to be deleted on idle time, when all the window's events
        have been processed. This prevents problems with events being sent to
        non-existent windows.

        Returns True if the window has either been successfully deleted, or it
        has been added to the list of windows pending real deletion.
        """
        return _core.Window_Destroy(*args, **kwargs)

    def DestroyChildren(*args, **kwargs):
        """
        DestroyChildren() -> bool

        Destroys all children of a window. Called automatically by the destructor.
        """
        return _core.Window_DestroyChildren(*args, **kwargs)

    def IsBeingDeleted(*args, **kwargs):
        """
        IsBeingDeleted() -> bool

        Is the window in the process of being deleted?
        """
        return _core.Window_IsBeingDeleted(*args, **kwargs)

    def SetTitle(*args, **kwargs):
        """
        SetTitle(String title)

        Sets the window's title. Applicable only to frames and dialogs.
        """
        return _core.Window_SetTitle(*args, **kwargs)

    def GetTitle(*args, **kwargs):
        """
        GetTitle() -> String

        Gets the window's title. Applicable only to frames and dialogs.
        """
        return _core.Window_GetTitle(*args, **kwargs)

    def SetLabel(*args, **kwargs):
        """
        SetLabel(String label)

        Set the text which the window shows in its label if applicable.
        """
        return _core.Window_SetLabel(*args, **kwargs)

    def GetLabel(*args, **kwargs):
        """
        GetLabel() -> String

        Generic way of getting a label from any window, for
        identification purposes.  The interpretation of this function
        differs from class to class. For frames and dialogs, the value
        returned is the title. For buttons or static text controls, it is
        the button text. This function can be useful for meta-programs
        (such as testing tools or special-needs access programs) which
        need to identify windows by name.
        """
        return _core.Window_GetLabel(*args, **kwargs)

    def SetName(*args, **kwargs):
        """
        SetName(String name)

        Sets the window's name.  The window name is used for ressource
        setting in X, it is not the same as the window title/label
        """
        return _core.Window_SetName(*args, **kwargs)

    def GetName(*args, **kwargs):
        """
        GetName() -> String

        Returns the window's name.  This name is not guaranteed to be
        unique; it is up to the programmer to supply an appropriate name
        in the window constructor or via wx.Window.SetName.
        """
        return _core.Window_GetName(*args, **kwargs)

    def SetWindowVariant(*args, **kwargs):
        """
        SetWindowVariant(int variant)

        Sets the variant of the window/font size to use for this window,
        if the platform supports variants, (for example, wxMac.)
        """
        return _core.Window_SetWindowVariant(*args, **kwargs)

    def GetWindowVariant(*args, **kwargs):
        """GetWindowVariant() -> int"""
        return _core.Window_GetWindowVariant(*args, **kwargs)

    def SetId(*args, **kwargs):
        """
        SetId(int winid)

        Sets the identifier of the window.  Each window has an integer
        identifier. If the application has not provided one, an identifier
        will be generated. Normally, the identifier should be provided on
        creation and should not be modified subsequently.
        """
        return _core.Window_SetId(*args, **kwargs)

    def GetId(*args, **kwargs):
        """
        GetId() -> int

        Returns the identifier of the window.  Each window has an integer
        identifier. If the application has not provided one (or the default Id
        -1 is used) then an unique identifier with a negative value will be
        generated.
        """
        return _core.Window_GetId(*args, **kwargs)

    def NewControlId(*args, **kwargs):
        """
        NewControlId() -> int

        Generate a control id for the controls which were not given one.
        """
        return _core.Window_NewControlId(*args, **kwargs)

    NewControlId = staticmethod(NewControlId)
    def NextControlId(*args, **kwargs):
        """
        NextControlId(int winid) -> int

        Get the id of the control following the one with the given
        (autogenerated) id
        """
        return _core.Window_NextControlId(*args, **kwargs)

    NextControlId = staticmethod(NextControlId)
    def PrevControlId(*args, **kwargs):
        """
        PrevControlId(int winid) -> int

        Get the id of the control preceding the one with the given
        (autogenerated) id
        """
        return _core.Window_PrevControlId(*args, **kwargs)

    PrevControlId = staticmethod(PrevControlId)
    def SetSize(*args, **kwargs):
        """
        SetSize(Size size)

        Sets the size of the window in pixels.
        """
        return _core.Window_SetSize(*args, **kwargs)

    def SetDimensions(*args, **kwargs):
        """
        SetDimensions(int x, int y, int width, int height, int sizeFlags=SIZE_AUTO)

        Sets the position and size of the window in pixels.  The sizeFlags
        parameter indicates the interpretation of the other params if they are
        -1.  wx.SIZE_AUTO*: a -1 indicates that a class-specific default
        shoudl be used.  wx.SIZE_USE_EXISTING: existing dimensions should be
        used if -1 values are supplied.  wxSIZE_ALLOW_MINUS_ONE: allow
        dimensions of -1 and less to be interpreted as real dimensions, not
        default values.
        """
        return _core.Window_SetDimensions(*args, **kwargs)

    def SetRect(*args, **kwargs):
        """
        SetRect(Rect rect, int sizeFlags=SIZE_AUTO)

        Sets the position and size of the window in pixels using a wx.Rect.
        """
        return _core.Window_SetRect(*args, **kwargs)

    def SetSizeWH(*args, **kwargs):
        """
        SetSizeWH(int width, int height)

        Sets the size of the window in pixels.
        """
        return _core.Window_SetSizeWH(*args, **kwargs)

    def Move(*args, **kwargs):
        """
        Move(Point pt, int flags=SIZE_USE_EXISTING)

        Moves the window to the given position.
        """
        return _core.Window_Move(*args, **kwargs)

    SetPosition = Move 
    def MoveXY(*args, **kwargs):
        """
        MoveXY(int x, int y, int flags=SIZE_USE_EXISTING)

        Moves the window to the given position.
        """
        return _core.Window_MoveXY(*args, **kwargs)

    def Raise(*args, **kwargs):
        """
        Raise()

        Raises the window to the top of the window hierarchy if it is a
        managed window (dialog or frame).
        """
        return _core.Window_Raise(*args, **kwargs)

    def Lower(*args, **kwargs):
        """
        Lower()

        Lowers the window to the bottom of the window hierarchy if it is a
        managed window (dialog or frame).
        """
        return _core.Window_Lower(*args, **kwargs)

    def SetClientSize(*args, **kwargs):
        """
        SetClientSize(Size size)

        This sets the size of the window client area in pixels. Using this
        function to size a window tends to be more device-independent than
        wx.Window.SetSize, since the application need not worry about what
        dimensions the border or title bar have when trying to fit the window
        around panel items, for example.
        """
        return _core.Window_SetClientSize(*args, **kwargs)

    def SetClientSizeWH(*args, **kwargs):
        """
        SetClientSizeWH(int width, int height)

        This sets the size of the window client area in pixels. Using this
        function to size a window tends to be more device-independent than
        wx.Window.SetSize, since the application need not worry about what
        dimensions the border or title bar have when trying to fit the window
        around panel items, for example.
        """
        return _core.Window_SetClientSizeWH(*args, **kwargs)

    def SetClientRect(*args, **kwargs):
        """
        SetClientRect(Rect rect)

        This sets the size of the window client area in pixels. Using this
        function to size a window tends to be more device-independent than
        wx.Window.SetSize, since the application need not worry about what
        dimensions the border or title bar have when trying to fit the window
        around panel items, for example.
        """
        return _core.Window_SetClientRect(*args, **kwargs)

    def GetPosition(*args, **kwargs):
        """
        GetPosition() -> Point

        Get the window's position.
        """
        return _core.Window_GetPosition(*args, **kwargs)

    def GetPositionTuple(*args, **kwargs):
        """
        GetPositionTuple() -> (x,y)

        Get the window's position.
        """
        return _core.Window_GetPositionTuple(*args, **kwargs)

    def GetSize(*args, **kwargs):
        """
        GetSize() -> Size

        Get the window size.
        """
        return _core.Window_GetSize(*args, **kwargs)

    def GetSizeTuple(*args, **kwargs):
        """
        GetSizeTuple() -> (width, height)

        Get the window size.
        """
        return _core.Window_GetSizeTuple(*args, **kwargs)

    def GetRect(*args, **kwargs):
        """
        GetRect() -> Rect

        Returns the size and position of the window as a wx.Rect object.
        """
        return _core.Window_GetRect(*args, **kwargs)

    def GetClientSize(*args, **kwargs):
        """
        GetClientSize() -> Size

        This gets the size of the window's 'client area' in pixels. The client
        area is the area which may be drawn on by the programmer, excluding
        title bar, border, scrollbars, etc.
        """
        return _core.Window_GetClientSize(*args, **kwargs)

    def GetClientSizeTuple(*args, **kwargs):
        """
        GetClientSizeTuple() -> (width, height)

        This gets the size of the window's 'client area' in pixels. The client
        area is the area which may be drawn on by the programmer, excluding
        title bar, border, scrollbars, etc.
        """
        return _core.Window_GetClientSizeTuple(*args, **kwargs)

    def GetClientAreaOrigin(*args, **kwargs):
        """
        GetClientAreaOrigin() -> Point

        Get the origin of the client area of the window relative to the
        window's top left corner (the client area may be shifted because of
        the borders, scrollbars, other decorations...)
        """
        return _core.Window_GetClientAreaOrigin(*args, **kwargs)

    def GetClientRect(*args, **kwargs):
        """
        GetClientRect() -> Rect

        Get the client area position and size as a wx.Rect object.
        """
        return _core.Window_GetClientRect(*args, **kwargs)

    def GetBestSize(*args, **kwargs):
        """
        GetBestSize() -> Size

        This functions returns the best acceptable minimal size for the
        window, if applicable. For example, for a static text control, it will be
        the minimal size such that the control label is not truncated. For
        windows containing subwindows (suzh aswx.Panel), the size returned
        by this function will be the same as the size the window would have
        had after calling Fit.
        """
        return _core.Window_GetBestSize(*args, **kwargs)

    def GetBestSizeTuple(*args, **kwargs):
        """
        GetBestSizeTuple() -> (width, height)

        This functions returns the best acceptable minimal size for the
        window, if applicable. For example, for a static text control, it will be
        the minimal size such that the control label is not truncated. For
        windows containing subwindows (suzh aswx.Panel), the size returned
        by this function will be the same as the size the window would have
        had after calling Fit.
        """
        return _core.Window_GetBestSizeTuple(*args, **kwargs)

    def GetAdjustedBestSize(*args, **kwargs):
        """
        GetAdjustedBestSize() -> Size

        This method is similar to GetBestSize, except in one
        thing. GetBestSize should return the minimum untruncated size of the
        window, while this method will return the largest of BestSize and any
        user specified minimum size. ie. it is the minimum size the window
        should currently be drawn at, not the minimal size it can possibly
        tolerate.
        """
        return _core.Window_GetAdjustedBestSize(*args, **kwargs)

    def Center(*args, **kwargs):
        """
        Center(int direction=BOTH)

        Centers the window.  The parameter specifies the direction for
        cetering, and may be wx.HORIZONTAL, wx.VERTICAL or wx.BOTH. It may
        also include wx.CENTER_ON_SCREEN flag if you want to center the window
        on the entire screen and not on its parent window.  If it is a
        top-level window and has no parent then it will always be centered
        relative to the screen.
        """
        return _core.Window_Center(*args, **kwargs)

    Centre = Center 
    def CenterOnScreen(*args, **kwargs):
        """
        CenterOnScreen(int dir=BOTH)

        Center on screen (only works for top level windows)
        """
        return _core.Window_CenterOnScreen(*args, **kwargs)

    CentreOnScreen = CenterOnScreen 
    def CenterOnParent(*args, **kwargs):
        """
        CenterOnParent(int dir=BOTH)

        Center with respect to the the parent window
        """
        return _core.Window_CenterOnParent(*args, **kwargs)

    CentreOnParent = CenterOnParent 
    def Fit(*args, **kwargs):
        """
        Fit()

        Sizes the window so that it fits around its subwindows. This function
        won't do anything if there are no subwindows and will only really work
        correctly if sizers are used for the subwindows layout. Also, if the
        window has exactly one subwindow it is better (faster and the result
        is more precise as Fit adds some margin to account for fuzziness of
        its calculations) to call window.SetClientSize(child.GetSize())
        instead of calling Fit.
        """
        return _core.Window_Fit(*args, **kwargs)

    def FitInside(*args, **kwargs):
        """
        FitInside()

        Similar to Fit, but sizes the interior (virtual) size of a
        window. Mainly useful with scrolled windows to reset scrollbars after
        sizing changes that do not trigger a size event, and/or scrolled
        windows without an interior sizer. This function similarly won't do
        anything if there are no subwindows.
        """
        return _core.Window_FitInside(*args, **kwargs)

    def SetSizeHints(*args, **kwargs):
        """
        SetSizeHints(int minW, int minH, int maxW=-1, int maxH=-1, int incW=-1, 
            int incH=-1)

        Allows specification of minimum and maximum window sizes, and window
        size increments. If a pair of values is not set (or set to -1), the
        default values will be used.  If this function is called, the user
        will not be able to size the window outside the given bounds. The
        resizing increments are only significant under Motif or Xt.
        """
        return _core.Window_SetSizeHints(*args, **kwargs)

    def SetVirtualSizeHints(*args, **kwargs):
        """
        SetVirtualSizeHints(int minW, int minH, int maxW=-1, int maxH=-1)

        Allows specification of minimum and maximum virtual window sizes. If a
        pair of values is not set (or set to -1), the default values will be
        used.  If this function is called, the user will not be able to size
        the virtual area of the window outside the given bounds.
        """
        return _core.Window_SetVirtualSizeHints(*args, **kwargs)

    def GetMinWidth(*args, **kwargs):
        """GetMinWidth() -> int"""
        return _core.Window_GetMinWidth(*args, **kwargs)

    def GetMinHeight(*args, **kwargs):
        """GetMinHeight() -> int"""
        return _core.Window_GetMinHeight(*args, **kwargs)

    def GetMaxWidth(*args, **kwargs):
        """GetMaxWidth() -> int"""
        return _core.Window_GetMaxWidth(*args, **kwargs)

    def GetMaxHeight(*args, **kwargs):
        """GetMaxHeight() -> int"""
        return _core.Window_GetMaxHeight(*args, **kwargs)

    def GetMaxSize(*args, **kwargs):
        """GetMaxSize() -> Size"""
        return _core.Window_GetMaxSize(*args, **kwargs)

    def SetVirtualSize(*args, **kwargs):
        """
        SetVirtualSize(Size size)

        Set the the virtual size of a window in pixels.  For most windows this
        is just the client area of the window, but for some like scrolled
        windows it is more or less independent of the screen window size.
        """
        return _core.Window_SetVirtualSize(*args, **kwargs)

    def SetVirtualSizeWH(*args, **kwargs):
        """
        SetVirtualSizeWH(int w, int h)

        Set the the virtual size of a window in pixels.  For most windows this
        is just the client area of the window, but for some like scrolled
        windows it is more or less independent of the screen window size.
        """
        return _core.Window_SetVirtualSizeWH(*args, **kwargs)

    def GetVirtualSize(*args, **kwargs):
        """
        GetVirtualSize() -> Size

        Get the the virtual size of the window in pixels.  For most windows
        this is just the client area of the window, but for some like scrolled
        windows it is more or less independent of the screen window size.
        """
        return _core.Window_GetVirtualSize(*args, **kwargs)

    def GetVirtualSizeTuple(*args, **kwargs):
        """
        GetVirtualSizeTuple() -> (width, height)

        Get the the virtual size of the window in pixels.  For most windows
        this is just the client area of the window, but for some like scrolled
        windows it is more or less independent of the screen window size.
        """
        return _core.Window_GetVirtualSizeTuple(*args, **kwargs)

    def GetBestVirtualSize(*args, **kwargs):
        """
        GetBestVirtualSize() -> Size

        Return the largest of ClientSize and BestSize (as determined by a
        sizer, interior children, or other means)
        """
        return _core.Window_GetBestVirtualSize(*args, **kwargs)

    def Show(*args, **kwargs):
        """
        Show(bool show=True) -> bool

        Shows or hides the window. You may need to call Raise for a top level
        window if you want to bring it to top, although this is not needed if
        Show is called immediately after the frame creation.  Returns True if
        the window has been shown or hidden or False if nothing was done
        because it already was in the requested state.
        """
        return _core.Window_Show(*args, **kwargs)

    def Hide(*args, **kwargs):
        """
        Hide() -> bool

        Equivalent to calling Show(False).
        """
        return _core.Window_Hide(*args, **kwargs)

    def Enable(*args, **kwargs):
        """
        Enable(bool enable=True) -> bool

        Enable or disable the window for user input. Note that when a parent
        window is disabled, all of its children are disabled as well and they
        are reenabled again when the parent is.  Returns true if the window
        has been enabled or disabled, false if nothing was done, i.e. if the
        window had already been in the specified state.
        """
        return _core.Window_Enable(*args, **kwargs)

    def Disable(*args, **kwargs):
        """
        Disable() -> bool

        Disables the window, same as Enable(false).
        """
        return _core.Window_Disable(*args, **kwargs)

    def IsShown(*args, **kwargs):
        """
        IsShown() -> bool

        Returns true if the window is shown, false if it has been hidden.
        """
        return _core.Window_IsShown(*args, **kwargs)

    def IsEnabled(*args, **kwargs):
        """
        IsEnabled() -> bool

        Returns true if the window is enabled for input, false otherwise.
        """
        return _core.Window_IsEnabled(*args, **kwargs)

    def SetWindowStyleFlag(*args, **kwargs):
        """
        SetWindowStyleFlag(long style)

        Sets the style of the window. Please note that some styles cannot be
        changed after the window creation and that Refresh() might be called
        after changing the others for the change to take place immediately.
        """
        return _core.Window_SetWindowStyleFlag(*args, **kwargs)

    def GetWindowStyleFlag(*args, **kwargs):
        """
        GetWindowStyleFlag() -> long

        Gets the window style that was passed to the constructor or Create
        method.
        """
        return _core.Window_GetWindowStyleFlag(*args, **kwargs)

    SetWindowStyle = SetWindowStyleFlag; GetWindowStyle = GetWindowStyleFlag 
    def HasFlag(*args, **kwargs):
        """
        HasFlag(int flag) -> bool

        Test if the given style is set for this window.
        """
        return _core.Window_HasFlag(*args, **kwargs)

    def IsRetained(*args, **kwargs):
        """
        IsRetained() -> bool

        Returns true if the window is retained, false otherwise.  Retained
        windows are only available on X platforms.
        """
        return _core.Window_IsRetained(*args, **kwargs)

    def SetExtraStyle(*args, **kwargs):
        """
        SetExtraStyle(long exStyle)

        Sets the extra style bits for the window.  Extra styles are the less
        often used style bits which can't be set with the constructor or with
        SetWindowStyleFlag()
        """
        return _core.Window_SetExtraStyle(*args, **kwargs)

    def GetExtraStyle(*args, **kwargs):
        """
        GetExtraStyle() -> long

        Returns the extra style bits for the window.
        """
        return _core.Window_GetExtraStyle(*args, **kwargs)

    def MakeModal(*args, **kwargs):
        """
        MakeModal(bool modal=True)

        Disables all other windows in the application so that the user can
        only interact with this window.  Passing False will reverse this
        effect.
        """
        return _core.Window_MakeModal(*args, **kwargs)

    def SetThemeEnabled(*args, **kwargs):
        """
        SetThemeEnabled(bool enableTheme)

        This function tells a window if it should use the system's "theme"
         code to draw the windows' background instead if its own background
         drawing code. This will only have an effect on platforms that support
         the notion of themes in user defined windows. One such platform is
         GTK+ where windows can have (very colourful) backgrounds defined by a
         user's selected theme.

        Dialogs, notebook pages and the status bar have this flag set to true
        by default so that the default look and feel is simulated best.
        """
        return _core.Window_SetThemeEnabled(*args, **kwargs)

    def GetThemeEnabled(*args, **kwargs):
        """
        GetThemeEnabled() -> bool

        Return the themeEnabled flag.
        """
        return _core.Window_GetThemeEnabled(*args, **kwargs)

    def SetFocus(*args, **kwargs):
        """
        SetFocus()

        Set's the focus to this window, allowing it to receive keyboard input.
        """
        return _core.Window_SetFocus(*args, **kwargs)

    def SetFocusFromKbd(*args, **kwargs):
        """
        SetFocusFromKbd()

        Set focus to this window as the result of a keyboard action.  Normally
        only called internally.
        """
        return _core.Window_SetFocusFromKbd(*args, **kwargs)

    def FindFocus(*args, **kwargs):
        """
        FindFocus() -> Window

        Returns the window or control that currently has the keyboard focus,
        or None.
        """
        return _core.Window_FindFocus(*args, **kwargs)

    FindFocus = staticmethod(FindFocus)
    def AcceptsFocus(*args, **kwargs):
        """
        AcceptsFocus() -> bool

        Can this window have focus?
        """
        return _core.Window_AcceptsFocus(*args, **kwargs)

    def AcceptsFocusFromKeyboard(*args, **kwargs):
        """
        AcceptsFocusFromKeyboard() -> bool

        Can this window be given focus by keyboard navigation? if not, the
        only way to give it focus (provided it accepts it at all) is to click
        it.
        """
        return _core.Window_AcceptsFocusFromKeyboard(*args, **kwargs)

    def GetDefaultItem(*args, **kwargs):
        """
        GetDefaultItem() -> Window

        Get the default child of this parent, i.e. the one which is activated
        by pressing <Enter> such as the OK button on a wx.Dialog.
        """
        return _core.Window_GetDefaultItem(*args, **kwargs)

    def SetDefaultItem(*args, **kwargs):
        """
        SetDefaultItem(Window child) -> Window

        Set this child as default, return the old default.
        """
        return _core.Window_SetDefaultItem(*args, **kwargs)

    def SetTmpDefaultItem(*args, **kwargs):
        """
        SetTmpDefaultItem(Window win)

        Set this child as temporary default
        """
        return _core.Window_SetTmpDefaultItem(*args, **kwargs)

    def GetChildren(*args, **kwargs):
        """
        GetChildren() -> PyObject

        Returns a list of the window's children.  NOTE: Currently this is a
        copy of the child window list maintained by the window, so the return
        value of this function is only valid as long as the window's children
        do not change.
        """
        return _core.Window_GetChildren(*args, **kwargs)

    def GetParent(*args, **kwargs):
        """
        GetParent() -> Window

        Returns the parent window of this window, or None if there isn't one.
        """
        return _core.Window_GetParent(*args, **kwargs)

    def GetGrandParent(*args, **kwargs):
        """
        GetGrandParent() -> Window

        Returns the parent of the parent of this window, or None if there isn't one.
        """
        return _core.Window_GetGrandParent(*args, **kwargs)

    def IsTopLevel(*args, **kwargs):
        """
        IsTopLevel() -> bool

        Returns true if the given window is a top-level one. Currently all
        frames and dialogs are always considered to be top-level windows (even
        if they have a parent window).
        """
        return _core.Window_IsTopLevel(*args, **kwargs)

    def Reparent(*args, **kwargs):
        """
        Reparent(Window newParent) -> bool

        Reparents the window, i.e the window will be removed from its current
        parent window (e.g. a non-standard toolbar in a wxFrame) and then
        re-inserted into another. Available on Windows and GTK.  Returns True
        if the parent was changed, False otherwise (error or newParent ==
        oldParent)
        """
        return _core.Window_Reparent(*args, **kwargs)

    def AddChild(*args, **kwargs):
        """
        AddChild(Window child)

        Adds a child window. This is called automatically by window creation
        functions so should not be required by the application programmer.
        """
        return _core.Window_AddChild(*args, **kwargs)

    def RemoveChild(*args, **kwargs):
        """
        RemoveChild(Window child)

        Removes a child window. This is called automatically by window
        deletion functions so should not be required by the application
        programmer.
        """
        return _core.Window_RemoveChild(*args, **kwargs)

    def FindWindowById(*args, **kwargs):
        """
        FindWindowById(long winid) -> Window

        Find a chld of this window by window ID
        """
        return _core.Window_FindWindowById(*args, **kwargs)

    def FindWindowByName(*args, **kwargs):
        """
        FindWindowByName(String name) -> Window

        Find a child of this window by name
        """
        return _core.Window_FindWindowByName(*args, **kwargs)

    def GetEventHandler(*args, **kwargs):
        """
        GetEventHandler() -> EvtHandler

        Returns the event handler for this window. By default, the window is
        its own event handler.
        """
        return _core.Window_GetEventHandler(*args, **kwargs)

    def SetEventHandler(*args, **kwargs):
        """
        SetEventHandler(EvtHandler handler)

        Sets the event handler for this window.  An event handler is an object
        that is capable of processing the events sent to a window. By default,
        the window is its own event handler, but an application may wish to
        substitute another, for example to allow central implementation of
        event-handling for a variety of different window classes.

        It is usually better to use wx.Window.PushEventHandler since this sets
        up a chain of event handlers, where an event not handled by one event
        handler is handed to the next one in the chain.
        """
        return _core.Window_SetEventHandler(*args, **kwargs)

    def PushEventHandler(*args, **kwargs):
        """
        PushEventHandler(EvtHandler handler)

        Pushes this event handler onto the event handler stack for the window.
        An event handler is an object that is capable of processing the events
        sent to a window. By default, the window is its own event handler, but
        an application may wish to substitute another, for example to allow
        central implementation of event-handling for a variety of different
        window classes.

        wx.Window.PushEventHandler allows an application to set up a chain of
        event handlers, where an event not handled by one event handler is
        handed to the next one in the chain. Use wx.Window.PopEventHandler to
        remove the event handler.
        """
        return _core.Window_PushEventHandler(*args, **kwargs)

    def PopEventHandler(*args, **kwargs):
        """
        PopEventHandler(bool deleteHandler=False) -> EvtHandler

        Removes and returns the top-most event handler on the event handler
        stack.  If deleteHandler is True then the wx.EvtHandler object will be
        destroyed after it is popped.
        """
        return _core.Window_PopEventHandler(*args, **kwargs)

    def RemoveEventHandler(*args, **kwargs):
        """
        RemoveEventHandler(EvtHandler handler) -> bool

        Find the given handler in the event handler chain and remove (but
        not delete) it from the event handler chain, return True if it was
        found and False otherwise (this also results in an assert failure so
        this function should only be called when the handler is supposed to
        be there.)
        """
        return _core.Window_RemoveEventHandler(*args, **kwargs)

    def SetValidator(*args, **kwargs):
        """
        SetValidator(Validator validator)

        Deletes the current validator (if any) and sets the window validator,
        having called wx.Validator.Clone to create a new validator of this
        type.
        """
        return _core.Window_SetValidator(*args, **kwargs)

    def GetValidator(*args, **kwargs):
        """
        GetValidator() -> Validator

        Returns a pointer to the current validator for the window, or None if
        there is none.
        """
        return _core.Window_GetValidator(*args, **kwargs)

    def SetAcceleratorTable(*args, **kwargs):
        """
        SetAcceleratorTable(AcceleratorTable accel)

        Sets the accelerator table for this window.
        """
        return _core.Window_SetAcceleratorTable(*args, **kwargs)

    def GetAcceleratorTable(*args, **kwargs):
        """
        GetAcceleratorTable() -> AcceleratorTable

        Gets the accelerator table for this window.
        """
        return _core.Window_GetAcceleratorTable(*args, **kwargs)

    def RegisterHotKey(*args, **kwargs):
        """
        RegisterHotKey(int hotkeyId, int modifiers, int keycode) -> bool

        Registers a system wide hotkey. Every time the user presses the hotkey
        registered here, this window will receive a hotkey event. It will
        receive the event even if the application is in the background and
        does not have the input focus because the user is working with some
        other application.  To bind an event handler function to this hotkey
        use EVT_HOTKEY with an id equal to hotkeyId.  Returns True if the
        hotkey was registered successfully.
        """
        return _core.Window_RegisterHotKey(*args, **kwargs)

    def UnregisterHotKey(*args, **kwargs):
        """
        UnregisterHotKey(int hotkeyId) -> bool

        Unregisters a system wide hotkey.
        """
        return _core.Window_UnregisterHotKey(*args, **kwargs)

    def ConvertDialogPointToPixels(*args, **kwargs):
        """
        ConvertDialogPointToPixels(Point pt) -> Point

        Converts a point or size from dialog units to pixels.  Dialog units
        are used for maintaining a dialog's proportions even if the font
        changes. For the x dimension, the dialog units are multiplied by the
        average character width and then divided by 4. For the y dimension,
        the dialog units are multiplied by the average character height and
        then divided by 8.
        """
        return _core.Window_ConvertDialogPointToPixels(*args, **kwargs)

    def ConvertDialogSizeToPixels(*args, **kwargs):
        """
        ConvertDialogSizeToPixels(Size sz) -> Size

        Converts a point or size from dialog units to pixels.  Dialog units
        are used for maintaining a dialog's proportions even if the font
        changes. For the x dimension, the dialog units are multiplied by the
        average character width and then divided by 4. For the y dimension,
        the dialog units are multiplied by the average character height and
        then divided by 8.
        """
        return _core.Window_ConvertDialogSizeToPixels(*args, **kwargs)

    def DLG_PNT(*args, **kwargs):
        """
        DLG_PNT(Point pt) -> Point

        Converts a point or size from dialog units to pixels.  Dialog units
        are used for maintaining a dialog's proportions even if the font
        changes. For the x dimension, the dialog units are multiplied by the
        average character width and then divided by 4. For the y dimension,
        the dialog units are multiplied by the average character height and
        then divided by 8.
        """
        return _core.Window_DLG_PNT(*args, **kwargs)

    def DLG_SZE(*args, **kwargs):
        """
        DLG_SZE(Size sz) -> Size

        Converts a point or size from dialog units to pixels.  Dialog units
        are used for maintaining a dialog's proportions even if the font
        changes. For the x dimension, the dialog units are multiplied by the
        average character width and then divided by 4. For the y dimension,
        the dialog units are multiplied by the average character height and
        then divided by 8.
        """
        return _core.Window_DLG_SZE(*args, **kwargs)

    def ConvertPixelPointToDialog(*args, **kwargs):
        """ConvertPixelPointToDialog(Point pt) -> Point"""
        return _core.Window_ConvertPixelPointToDialog(*args, **kwargs)

    def ConvertPixelSizeToDialog(*args, **kwargs):
        """ConvertPixelSizeToDialog(Size sz) -> Size"""
        return _core.Window_ConvertPixelSizeToDialog(*args, **kwargs)

    def WarpPointer(*args, **kwargs):
        """
        WarpPointer(int x, int y)

        Moves the pointer to the given position on the window.

        NOTE: This function is not supported under Mac because Apple Human
        Interface Guidelines forbid moving the mouse cursor programmatically.
        """
        return _core.Window_WarpPointer(*args, **kwargs)

    def CaptureMouse(*args, **kwargs):
        """
        CaptureMouse()

        Directs all mouse input to this window. Call wx.Window.ReleaseMouse to
        release the capture.

        Note that wxWindows maintains the stack of windows having captured the
        mouse and when the mouse is released the capture returns to the window
        which had had captured it previously and it is only really released if
        there were no previous window. In particular, this means that you must
        release the mouse as many times as you capture it.
        """
        return _core.Window_CaptureMouse(*args, **kwargs)

    def ReleaseMouse(*args, **kwargs):
        """
        ReleaseMouse()

        Releases mouse input captured with wx.Window.CaptureMouse.
        """
        return _core.Window_ReleaseMouse(*args, **kwargs)

    def GetCapture(*args, **kwargs):
        """
        GetCapture() -> Window

        Returns the window which currently captures the mouse or None
        """
        return _core.Window_GetCapture(*args, **kwargs)

    GetCapture = staticmethod(GetCapture)
    def HasCapture(*args, **kwargs):
        """
        HasCapture() -> bool

        Returns true if this window has the current mouse capture.
        """
        return _core.Window_HasCapture(*args, **kwargs)

    def Refresh(*args, **kwargs):
        """
        Refresh(bool eraseBackground=True, Rect rect=None)

        Mark the specified rectangle (or the whole window) as "dirty" so it
        will be repainted.  Causes an EVT_PAINT event to be generated and sent
        to the window.
        """
        return _core.Window_Refresh(*args, **kwargs)

    def RefreshRect(*args, **kwargs):
        """
        RefreshRect(Rect rect)

        Redraws the contents of the given rectangle: the area inside it will
        be repainted.  This is the same as Refresh but has a nicer syntax.
        """
        return _core.Window_RefreshRect(*args, **kwargs)

    def Update(*args, **kwargs):
        """
        Update()

        Calling this method immediately repaints the invalidated area of the
        window instead of waiting for the EVT_PAINT event to happen, (normally
        this would usually only happen when the flow of control returns to the
        event loop.)  Notice that this function doesn't refresh the window and
        does nothing if the window has been already repainted.  Use Refresh
        first if you want to immediately redraw the window (or some portion of
        it) unconditionally.
        """
        return _core.Window_Update(*args, **kwargs)

    def ClearBackground(*args, **kwargs):
        """
        ClearBackground()

        Clears the window by filling it with the current background
        colour. Does not cause an erase background event to be generated.
        """
        return _core.Window_ClearBackground(*args, **kwargs)

    def Freeze(*args, **kwargs):
        """
        Freeze()

        Freezes the window or, in other words, prevents any updates from taking place
        on screen, the window is not redrawn at all. Thaw must be called to reenable
        window redrawing.  Calls to Freeze/Thaw may be nested, with the actual Thaw
        being delayed until all the nesting has been undone.

        This method is useful for visual appearance optimization (for example,
        it is a good idea to use it before inserting large amount of text into
        a wxTextCtrl under wxGTK) but is not implemented on all platforms nor
        for all controls so it is mostly just a hint to wxWindows and not a
        mandatory directive.
        """
        return _core.Window_Freeze(*args, **kwargs)

    def Thaw(*args, **kwargs):
        """
        Thaw()

        Reenables window updating after a previous call to Freeze.  Calls to
        Freeze/Thaw may be nested, so Thaw must be called the same number of times
        that Freeze was before the window will be updated.
        """
        return _core.Window_Thaw(*args, **kwargs)

    def PrepareDC(*args, **kwargs):
        """
        PrepareDC(DC dc)

        Call this function to prepare the device context for drawing a
        scrolled image. It sets the device origin according to the current
        scroll position.
        """
        return _core.Window_PrepareDC(*args, **kwargs)

    def GetUpdateRegion(*args, **kwargs):
        """
        GetUpdateRegion() -> Region

        Returns the region specifying which parts of the window have been
        damaged. Should only be called within an EVT_PAINT handler.
        """
        return _core.Window_GetUpdateRegion(*args, **kwargs)

    def GetUpdateClientRect(*args, **kwargs):
        """
        GetUpdateClientRect() -> Rect

        Get the update rectangle region bounding box in client coords.
        """
        return _core.Window_GetUpdateClientRect(*args, **kwargs)

    def IsExposed(*args, **kwargs):
        """
        IsExposed(int x, int y, int w=1, int h=1) -> bool

        Returns true if the given point or rectangle area has been exposed
        since the last repaint. Call this in an paint event handler to
        optimize redrawing by only redrawing those areas, which have been
        exposed.
        """
        return _core.Window_IsExposed(*args, **kwargs)

    def IsExposedPoint(*args, **kwargs):
        """
        IsExposedPoint(Point pt) -> bool

        Returns true if the given point or rectangle area has been exposed
        since the last repaint. Call this in an paint event handler to
        optimize redrawing by only redrawing those areas, which have been
        exposed.
        """
        return _core.Window_IsExposedPoint(*args, **kwargs)

    def IsExposedRect(*args, **kwargs):
        """
        IsExposedRect(Rect rect) -> bool

        Returns true if the given point or rectangle area has been exposed
        since the last repaint. Call this in an paint event handler to
        optimize redrawing by only redrawing those areas, which have been
        exposed.
        """
        return _core.Window_IsExposedRect(*args, **kwargs)

    def SetBackgroundColour(*args, **kwargs):
        """
        SetBackgroundColour(Colour colour) -> bool

        Sets the background colour of the window.  Returns True if the colour
        was changed.  The background colour is usually painted by the default
        EVT_ERASE_BACKGROUND event handler function under Windows and
        automatically under GTK.

        Note that setting the background colour does not cause an immediate
        refresh, so you may wish to call ClearBackground or Refresh after
        calling this function.

        Use this function with care under GTK+ as the new appearance of the
        window might not look equally well when used with themes, i.e GTK+'s
        ability to change its look as the user wishes with run-time loadable
        modules.
        """
        return _core.Window_SetBackgroundColour(*args, **kwargs)

    def SetForegroundColour(*args, **kwargs):
        """
        SetForegroundColour(Colour colour) -> bool

        Sets the foreground colour of the window.  Returns True is the colour
        was changed.  The interpretation of foreground colour is dependent on
        the window class; it may be the text colour or other colour, or it may
        not be used at all.
        """
        return _core.Window_SetForegroundColour(*args, **kwargs)

    def GetBackgroundColour(*args, **kwargs):
        """
        GetBackgroundColour() -> Colour

        Returns the background colour of the window.
        """
        return _core.Window_GetBackgroundColour(*args, **kwargs)

    def GetForegroundColour(*args, **kwargs):
        """
        GetForegroundColour() -> Colour

        Returns the foreground colour of the window.  The interpretation of
        foreground colour is dependent on the window class; it may be the text
        colour or other colour, or it may not be used at all.
        """
        return _core.Window_GetForegroundColour(*args, **kwargs)

    def SetCursor(*args, **kwargs):
        """
        SetCursor(Cursor cursor) -> bool

        Sets the window's cursor. Notice that the window cursor also sets it
        for the children of the window implicitly.

        The cursor may be wx.NullCursor in which case the window cursor will
        be reset back to default.
        """
        return _core.Window_SetCursor(*args, **kwargs)

    def GetCursor(*args, **kwargs):
        """
        GetCursor() -> Cursor

        Return the cursor associated with this window.
        """
        return _core.Window_GetCursor(*args, **kwargs)

    def SetFont(*args, **kwargs):
        """
        SetFont(Font font) -> bool

        Sets the font for this window.
        """
        return _core.Window_SetFont(*args, **kwargs)

    def GetFont(*args, **kwargs):
        """
        GetFont() -> Font

        Returns the default font used for this window.
        """
        return _core.Window_GetFont(*args, **kwargs)

    def SetCaret(*args, **kwargs):
        """
        SetCaret(Caret caret)

        Sets the caret associated with the window.
        """
        return _core.Window_SetCaret(*args, **kwargs)

    def GetCaret(*args, **kwargs):
        """
        GetCaret() -> Caret

        Returns the caret associated with the window.
        """
        return _core.Window_GetCaret(*args, **kwargs)

    def GetCharHeight(*args, **kwargs):
        """
        GetCharHeight() -> int

        Get the (average) character size for the current font.
        """
        return _core.Window_GetCharHeight(*args, **kwargs)

    def GetCharWidth(*args, **kwargs):
        """
        GetCharWidth() -> int

        Get the (average) character size for the current font.
        """
        return _core.Window_GetCharWidth(*args, **kwargs)

    def GetTextExtent(*args, **kwargs):
        """
        GetTextExtent(String string) -> (width, height)

        Get the width and height of the text using the current font.
        """
        return _core.Window_GetTextExtent(*args, **kwargs)

    def GetFullTextExtent(*args, **kwargs):
        """
        GetFullTextExtent(String string, Font font=None) ->
           (width, height, descent, externalLeading)

        Get the width, height, decent and leading of the text using the
        current or specified font.
        """
        return _core.Window_GetFullTextExtent(*args, **kwargs)

    def ClientToScreenXY(*args, **kwargs):
        """
        ClientToScreenXY(int x, int y) -> (x,y)

        Converts to screen coordinates from coordinates relative to this window.
        """
        return _core.Window_ClientToScreenXY(*args, **kwargs)

    def ScreenToClientXY(*args, **kwargs):
        """
        ScreenToClientXY(int x, int y) -> (x,y)

        Converts from screen to client window coordinates.
        """
        return _core.Window_ScreenToClientXY(*args, **kwargs)

    def ClientToScreen(*args, **kwargs):
        """
        ClientToScreen(Point pt) -> Point

        Converts to screen coordinates from coordinates relative to this window.
        """
        return _core.Window_ClientToScreen(*args, **kwargs)

    def ScreenToClient(*args, **kwargs):
        """
        ScreenToClient(Point pt) -> Point

        Converts from screen to client window coordinates.
        """
        return _core.Window_ScreenToClient(*args, **kwargs)

    def HitTestXY(*args, **kwargs):
        """
        HitTestXY(int x, int y) -> int

        Test where the given (in client coords) point lies
        """
        return _core.Window_HitTestXY(*args, **kwargs)

    def HitTest(*args, **kwargs):
        """
        HitTest(Point pt) -> int

        Test where the given (in client coords) point lies
        """
        return _core.Window_HitTest(*args, **kwargs)

    def GetBorder(*args):
        """
        GetBorder(long flags) -> int
        GetBorder() -> int

        Get border for the flags of this window
        """
        return _core.Window_GetBorder(*args)

    def UpdateWindowUI(*args, **kwargs):
        """
        UpdateWindowUI(long flags=UPDATE_UI_NONE)

        This function sends EVT_UPDATE_UI events to the window. The particular
        implementation depends on the window; for example a wx.ToolBar will
        send an update UI event for each toolbar button, and a wx.Frame will
        send an update UI event for each menubar menu item. You can call this
        function from your application to ensure that your UI is up-to-date at
        a particular point in time (as far as your EVT_UPDATE_UI handlers are
        concerned). This may be necessary if you have called
        wx.UpdateUIEvent.SetMode or wx.UpdateUIEvent.SetUpdateInterval to
        limit the overhead that wxWindows incurs by sending update UI events
        in idle time.

        The flags should be a bitlist of one or more of the following values:

            wx.UPDATE_UI_NONE          No particular value
            wx.UPDATE_UI_RECURSE       Call the function for descendants
            wx.UPDATE_UI_FROMIDLE      Invoked from OnIdle

        If you are calling this function from an OnIdle function, make sure
        you pass the wx.UPDATE_UI_FROMIDLE flag, since this tells the window to
        only update the UI elements that need to be updated in idle time. Some
        windows update their elements only when necessary, for example when a
        menu is about to be shown. The following is an example of how to call
        UpdateWindowUI from an idle function.

            def OnIdle(self, evt):
                if wx.UpdateUIEvent.CanUpdate(self):
                    self.UpdateWindowUI(wx.UPDATE_UI_FROMIDLE);

        """
        return _core.Window_UpdateWindowUI(*args, **kwargs)

    def PopupMenuXY(*args, **kwargs):
        """
        PopupMenuXY(Menu menu, int x, int y) -> bool

        Pops up the given menu at the specified coordinates, relative to this
        window, and returns control when the user has dismissed the menu. If a
        menu item is selected, the corresponding menu event is generated and
        will be processed as usual.
        """
        return _core.Window_PopupMenuXY(*args, **kwargs)

    def PopupMenu(*args, **kwargs):
        """
        PopupMenu(Menu menu, Point pos) -> bool

        Pops up the given menu at the specified coordinates, relative to this
        window, and returns control when the user has dismissed the menu. If a
        menu item is selected, the corresponding menu event is generated and
        will be processed as usual.
        """
        return _core.Window_PopupMenu(*args, **kwargs)

    def GetHandle(*args, **kwargs):
        """
        GetHandle() -> long

        Returns the platform-specific handle (as a long integer) of the
        physical window.  Currently on wxMac it returns the handle of the
        toplevel parent of the window.
        """
        return _core.Window_GetHandle(*args, **kwargs)

    def HasScrollbar(*args, **kwargs):
        """
        HasScrollbar(int orient) -> bool

        Does the window have the scrollbar for this orientation?
        """
        return _core.Window_HasScrollbar(*args, **kwargs)

    def SetScrollbar(*args, **kwargs):
        """
        SetScrollbar(int orientation, int pos, int thumbvisible, int range, 
            bool refresh=True)

        Sets the scrollbar properties of a built-in scrollbar.

            orientation: Determines the scrollbar whose page size is to be
                         set. May be wx.HORIZONTAL or wx.VERTICAL.

            position:    The position of the scrollbar in scroll units.

            thumbSize:   The size of the thumb, or visible portion of the
                         scrollbar, in scroll units.

            range:       The maximum position of the scrollbar.

            refresh:     True to redraw the scrollbar, false otherwise.
        """
        return _core.Window_SetScrollbar(*args, **kwargs)

    def SetScrollPos(*args, **kwargs):
        """
        SetScrollPos(int orientation, int pos, bool refresh=True)

        Sets the position of one of the built-in scrollbars.
        """
        return _core.Window_SetScrollPos(*args, **kwargs)

    def GetScrollPos(*args, **kwargs):
        """
        GetScrollPos(int orientation) -> int

        Returns the built-in scrollbar position.
        """
        return _core.Window_GetScrollPos(*args, **kwargs)

    def GetScrollThumb(*args, **kwargs):
        """
        GetScrollThumb(int orientation) -> int

        Returns the built-in scrollbar thumb size.
        """
        return _core.Window_GetScrollThumb(*args, **kwargs)

    def GetScrollRange(*args, **kwargs):
        """
        GetScrollRange(int orientation) -> int

        Returns the built-in scrollbar range.
        """
        return _core.Window_GetScrollRange(*args, **kwargs)

    def ScrollWindow(*args, **kwargs):
        """
        ScrollWindow(int dx, int dy, Rect rect=None)

        Physically scrolls the pixels in the window and move child windows
        accordingly.  Use this function to optimise your scrolling
        implementations, to minimise the area that must be redrawn. Note that
        it is rarely required to call this function from a user program.

            dx:   Amount to scroll horizontally.

            dy:   Amount to scroll vertically.

            rect: Rectangle to invalidate. If this is None, the whole window
                  is invalidated. If you pass a rectangle corresponding to the
                  area of the window exposed by the scroll, your painting
                  handler can optimize painting by checking for the
                  invalidated region.
        """
        return _core.Window_ScrollWindow(*args, **kwargs)

    def ScrollLines(*args, **kwargs):
        """
        ScrollLines(int lines) -> bool

        If the platform and window class supports it, scrolls the window by
        the given number of lines down, if lines is positive, or up if lines
        is negative.  Returns True if the window was scrolled, False if it was
        already on top/bottom and nothing was done.
        """
        return _core.Window_ScrollLines(*args, **kwargs)

    def ScrollPages(*args, **kwargs):
        """
        ScrollPages(int pages) -> bool

        If the platform and window class supports it,  scrolls the window by
        the given number of pages down, if pages is positive, or up if pages
        is negative.  Returns True if the window was scrolled, False if it was
        already on top/bottom and nothing was done.
        """
        return _core.Window_ScrollPages(*args, **kwargs)

    def LineUp(*args, **kwargs):
        """
        LineUp() -> bool

        This is just a wrapper for ScrollLines(-1).
        """
        return _core.Window_LineUp(*args, **kwargs)

    def LineDown(*args, **kwargs):
        """
        LineDown() -> bool

        This is just a wrapper for ScrollLines(1).
        """
        return _core.Window_LineDown(*args, **kwargs)

    def PageUp(*args, **kwargs):
        """
        PageUp() -> bool

        This is just a wrapper for ScrollPages(-1).
        """
        return _core.Window_PageUp(*args, **kwargs)

    def PageDown(*args, **kwargs):
        """
        PageDown() -> bool

        This is just a wrapper for ScrollPages(1).
        """
        return _core.Window_PageDown(*args, **kwargs)

    def SetHelpText(*args, **kwargs):
        """
        SetHelpText(String text)

        Sets the help text to be used as context-sensitive help for this
        window.  Note that the text is actually stored by the current
        wxHelpProvider implementation, and not in the window object itself.
        """
        return _core.Window_SetHelpText(*args, **kwargs)

    def SetHelpTextForId(*args, **kwargs):
        """
        SetHelpTextForId(String text)

        Associate this help text with all windows with the same id as this
        one.
        """
        return _core.Window_SetHelpTextForId(*args, **kwargs)

    def GetHelpText(*args, **kwargs):
        """
        GetHelpText() -> String

        Gets the help text to be used as context-sensitive help for this
        window.  Note that the text is actually stored by the current
        wxHelpProvider implementation, and not in the window object itself.
        """
        return _core.Window_GetHelpText(*args, **kwargs)

    def SetToolTipString(*args, **kwargs):
        """
        SetToolTipString(String tip)

        Attach a tooltip to the window.
        """
        return _core.Window_SetToolTipString(*args, **kwargs)

    def SetToolTip(*args, **kwargs):
        """
        SetToolTip(ToolTip tip)

        Attach a tooltip to the window.
        """
        return _core.Window_SetToolTip(*args, **kwargs)

    def GetToolTip(*args, **kwargs):
        """
        GetToolTip() -> ToolTip

        get the associated tooltip or None if none
        """
        return _core.Window_GetToolTip(*args, **kwargs)

    def SetDropTarget(*args, **kwargs):
        """
        SetDropTarget(DropTarget dropTarget)

        Associates a drop target with this window.  If the window already has
        a drop target, it is deleted.
        """
        return _core.Window_SetDropTarget(*args, **kwargs)

    def GetDropTarget(*args, **kwargs):
        """
        GetDropTarget() -> DropTarget

        Returns the associated drop target, which may be None.
        """
        return _core.Window_GetDropTarget(*args, **kwargs)

    def SetConstraints(*args, **kwargs):
        """
        SetConstraints(LayoutConstraints constraints)

        Sets the window to have the given layout constraints. If an existing
        layout constraints object is already owned by the window, it will be
        deleted.  Pass None to disassociate and delete the window's current
        constraints.

        You must call SetAutoLayout to tell a window to use the constraints
        automatically in its default EVT_SIZE handler; otherwise, you must
        handle EVT_SIZE yourself and call Layout() explicitly. When setting
        both a wx.LayoutConstraints and a wx.Sizer, only the sizer will have
        effect.
        """
        return _core.Window_SetConstraints(*args, **kwargs)

    def GetConstraints(*args, **kwargs):
        """
        GetConstraints() -> LayoutConstraints

        Returns a pointer to the window's layout constraints, or None if there
        are none.
        """
        return _core.Window_GetConstraints(*args, **kwargs)

    def SetAutoLayout(*args, **kwargs):
        """
        SetAutoLayout(bool autoLayout)

        Determines whether the Layout function will be called automatically
        when the window is resized.  It is called implicitly by SetSizer but
        if you use SetConstraints you should call it manually or otherwise the
        window layout won't be correctly updated when its size changes.
        """
        return _core.Window_SetAutoLayout(*args, **kwargs)

    def GetAutoLayout(*args, **kwargs):
        """
        GetAutoLayout() -> bool

        Returns the current autoLayout setting
        """
        return _core.Window_GetAutoLayout(*args, **kwargs)

    def Layout(*args, **kwargs):
        """
        Layout() -> bool

        Invokes the constraint-based layout algorithm or the sizer-based
        algorithm for this window.  See SetAutoLayout: when auto layout is on,
        this function gets called automatically by the default EVT_SIZE
        handler when the window is resized.
        """
        return _core.Window_Layout(*args, **kwargs)

    def SetSizer(*args, **kwargs):
        """
        SetSizer(Sizer sizer, bool deleteOld=True)

        Sets the window to have the given layout sizer. The window will then
        own the object, and will take care of its deletion. If an existing
        layout sizer object is already owned by the window, it will be deleted
        if the deleteOld parameter is true. Note that this function will also
        call SetAutoLayout implicitly with a True parameter if the sizer is
        non-NoneL and False otherwise.
        """
        return _core.Window_SetSizer(*args, **kwargs)

    def SetSizerAndFit(*args, **kwargs):
        """
        SetSizerAndFit(Sizer sizer, bool deleteOld=True)

        The same as SetSizer, except it also sets the size hints for the
        window based on the sizer's minimum size.
        """
        return _core.Window_SetSizerAndFit(*args, **kwargs)

    def GetSizer(*args, **kwargs):
        """
        GetSizer() -> Sizer

        Return the sizer associated with the window by a previous call to
        SetSizer or None if there isn't one.
        """
        return _core.Window_GetSizer(*args, **kwargs)

    def SetContainingSizer(*args, **kwargs):
        """
        SetContainingSizer(Sizer sizer)

        This normally does not need to be called by application code. It is
        called internally when a window is added to a sizer, and is used so
        the window can remove itself from the sizer when it is destroyed.
        """
        return _core.Window_SetContainingSizer(*args, **kwargs)

    def GetContainingSizer(*args, **kwargs):
        """
        GetContainingSizer() -> Sizer

        Return the sizer that this window is a member of, if any, otherwise None.
        """
        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__)


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)
NullAcceleratorTable = cvar.NullAcceleratorTable
PanelNameStr = cvar.PanelNameStr

def PreWindow(*args, **kwargs):
    """
    PreWindow() -> Window

    Precreate a Window for 2-phase creation.
    """
    val = _core.new_PreWindow(*args, **kwargs)
    val.thisown = 1
    return val

def Window_NewControlId(*args, **kwargs):
    """
    Window_NewControlId() -> int

    Generate a control id for the controls which were not given one.
    """
    return _core.Window_NewControlId(*args, **kwargs)

def Window_NextControlId(*args, **kwargs):
    """
    Window_NextControlId(int winid) -> int

    Get the id of the control following the one with the given
    (autogenerated) id
    """
    return _core.Window_NextControlId(*args, **kwargs)

def Window_PrevControlId(*args, **kwargs):
    """
    Window_PrevControlId(int winid) -> int

    Get the id of the control preceding the one with the given
    (autogenerated) id
    """
    return _core.Window_PrevControlId(*args, **kwargs)

def Window_FindFocus(*args, **kwargs):
    """
    Window_FindFocus() -> Window

    Returns the window or control that currently has the keyboard focus,
    or None.
    """
    return _core.Window_FindFocus(*args, **kwargs)

def Window_GetCapture(*args, **kwargs):
    """
    Window_GetCapture() -> Window

    Returns the window which currently captures the mouse or None
    """
    return _core.Window_GetCapture(*args, **kwargs)

def DLG_PNT(win, point_or_x, y=None):
    """
    Convenience function for converting a Point or (x,y) in
    dialog units to pixel units.
    """
    if y is None:
        return win.ConvertDialogPointToPixels(point_or_x)
    else:
        return win.ConvertDialogPointToPixels(wx.Point(point_or_x, y))

def DLG_SZE(win, size_width, height=None):
    """
    Convenience function for converting a Size or (w,h) in
    dialog units to pixel units.
    """
    if height is None:
        return win.ConvertDialogSizeToPixels(size_width)
    else:
        return win.ConvertDialogSizeToPixels(wx.Size(size_width, height))


def FindWindowById(*args, **kwargs):
    """
    FindWindowById(long id, Window parent=None) -> Window

    Find the first window in the application with the given id. If parent
    is None, the search will start from all top-level frames and dialog
    boxes; if non-None, the search will be limited to the given window
    hierarchy. The search is recursive in both cases.
    """
    return _core.FindWindowById(*args, **kwargs)

def FindWindowByName(*args, **kwargs):
    """
    FindWindowByName(String name, Window parent=None) -> Window

    Find a window by its name (as given in a window constructor or Create
    function call). If parent is None, the search will start from all
    top-level frames and dialog boxes; if non-None, the search will be
    limited to the given window hierarchy. The search is recursive in both
    cases.

    If no window with such name is found, wx.FindWindowByLabel is called.
    """
    return _core.FindWindowByName(*args, **kwargs)

def FindWindowByLabel(*args, **kwargs):
    """
    FindWindowByLabel(String label, Window parent=None) -> Window

    Find a window by its label. Depending on the type of window, the label
    may be a window title or panel item label. If parent is None, the
    search will start from all top-level frames and dialog boxes; if
    non-None, the search will be limited to the given window
    hierarchy. The search is recursive in both cases.
    """
    return _core.FindWindowByLabel(*args, **kwargs)

def Window_FromHWND(*args, **kwargs):
    """Window_FromHWND(Window parent, unsigned long _hWnd) -> Window"""
    return _core.Window_FromHWND(*args, **kwargs)
#---------------------------------------------------------------------------

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

    def Clone(*args, **kwargs):
        """Clone() -> Validator"""
        return _core.Validator_Clone(*args, **kwargs)

    def Validate(*args, **kwargs):
        """Validate(Window parent) -> bool"""
        return _core.Validator_Validate(*args, **kwargs)

    def TransferToWindow(*args, **kwargs):
        """TransferToWindow() -> bool"""
        return _core.Validator_TransferToWindow(*args, **kwargs)

    def TransferFromWindow(*args, **kwargs):
        """TransferFromWindow() -> bool"""
        return _core.Validator_TransferFromWindow(*args, **kwargs)

    def GetWindow(*args, **kwargs):
        """GetWindow() -> Window"""
        return _core.Validator_GetWindow(*args, **kwargs)

    def SetWindow(*args, **kwargs):
        """SetWindow(Window window)"""
        return _core.Validator_SetWindow(*args, **kwargs)

    def IsSilent(*args, **kwargs):
        """IsSilent() -> bool"""
        return _core.Validator_IsSilent(*args, **kwargs)

    IsSilent = staticmethod(IsSilent)
    def SetBellOnError(*args, **kwargs):
        """SetBellOnError(int doIt=True)"""
        return _core.Validator_SetBellOnError(*args, **kwargs)

    SetBellOnError = staticmethod(SetBellOnError)

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)

def Validator_IsSilent(*args, **kwargs):
    """Validator_IsSilent() -> bool"""
    return _core.Validator_IsSilent(*args, **kwargs)

def Validator_SetBellOnError(*args, **kwargs):
    """Validator_SetBellOnError(int doIt=True)"""
    return _core.Validator_SetBellOnError(*args, **kwargs)

class PyValidator(Validator):
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxPyValidator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> PyValidator"""
        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):
        """_setCallbackInfo(PyObject self, PyObject _class, int incref=True)"""
        return _core.PyValidator__setCallbackInfo(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxMenu instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(String title=EmptyString, long style=0) -> Menu"""
        newobj = _core.new_Menu(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)

    def Append(*args, **kwargs):
        """Append(int id, String text, String help=EmptyString, int kind=ITEM_NORMAL) -> MenuItem"""
        return _core.Menu_Append(*args, **kwargs)

    def AppendSeparator(*args, **kwargs):
        """AppendSeparator() -> MenuItem"""
        return _core.Menu_AppendSeparator(*args, **kwargs)

    def AppendCheckItem(*args, **kwargs):
        """AppendCheckItem(int id, String text, String help=EmptyString) -> MenuItem"""
        return _core.Menu_AppendCheckItem(*args, **kwargs)

    def AppendRadioItem(*args, **kwargs):
        """AppendRadioItem(int id, String text, String help=EmptyString) -> MenuItem"""
        return _core.Menu_AppendRadioItem(*args, **kwargs)

    def AppendMenu(*args, **kwargs):
        """AppendMenu(int id, String text, Menu submenu, String help=EmptyString) -> MenuItem"""
        return _core.Menu_AppendMenu(*args, **kwargs)

    def AppendItem(*args, **kwargs):
        """AppendItem(MenuItem item) -> MenuItem"""
        return _core.Menu_AppendItem(*args, **kwargs)

    def Break(*args, **kwargs):
        """Break()"""
        return _core.Menu_Break(*args, **kwargs)

    def InsertItem(*args, **kwargs):
        """InsertItem(size_t pos, MenuItem item) -> MenuItem"""
        return _core.Menu_InsertItem(*args, **kwargs)

    def Insert(*args, **kwargs):
        """
        Insert(size_t pos, int id, String text, String help=EmptyString, 
            int kind=ITEM_NORMAL) -> MenuItem
        """
        return _core.Menu_Insert(*args, **kwargs)

    def InsertSeparator(*args, **kwargs):
        """InsertSeparator(size_t pos) -> MenuItem"""
        return _core.Menu_InsertSeparator(*args, **kwargs)

    def InsertCheckItem(*args, **kwargs):
        """InsertCheckItem(size_t pos, int id, String text, String help=EmptyString) -> MenuItem"""
        return _core.Menu_InsertCheckItem(*args, **kwargs)

    def InsertRadioItem(*args, **kwargs):
        """InsertRadioItem(size_t pos, int id, String text, String help=EmptyString) -> MenuItem"""
        return _core.Menu_InsertRadioItem(*args, **kwargs)

    def InsertMenu(*args, **kwargs):
        """InsertMenu(size_t pos, int id, String text, Menu submenu, String help=EmptyString) -> MenuItem"""
        return _core.Menu_InsertMenu(*args, **kwargs)

    def PrependItem(*args, **kwargs):
        """PrependItem(MenuItem item) -> MenuItem"""
        return _core.Menu_PrependItem(*args, **kwargs)

    def Prepend(*args, **kwargs):
        """Prepend(int id, String text, String help=EmptyString, int kind=ITEM_NORMAL) -> MenuItem"""
        return _core.Menu_Prepend(*args, **kwargs)

    def PrependSeparator(*args, **kwargs):
        """PrependSeparator() -> MenuItem"""
        return _core.Menu_PrependSeparator(*args, **kwargs)

    def PrependCheckItem(*args, **kwargs):
        """PrependCheckItem(int id, String text, String help=EmptyString) -> MenuItem"""
        return _core.Menu_PrependCheckItem(*args, **kwargs)

    def PrependRadioItem(*args, **kwargs):
        """PrependRadioItem(int id, String text, String help=EmptyString) -> MenuItem"""
        return _core.Menu_PrependRadioItem(*args, **kwargs)

    def PrependMenu(*args, **kwargs):
        """PrependMenu(int id, String text, Menu submenu, String help=EmptyString) -> MenuItem"""
        return _core.Menu_PrependMenu(*args, **kwargs)

    def Remove(*args, **kwargs):
        """Remove(int id) -> MenuItem"""
        return _core.Menu_Remove(*args, **kwargs)

    def RemoveItem(*args, **kwargs):
        """RemoveItem(MenuItem item) -> MenuItem"""
        return _core.Menu_RemoveItem(*args, **kwargs)

    def Delete(*args, **kwargs):
        """Delete(int id) -> bool"""
        return _core.Menu_Delete(*args, **kwargs)

    def DeleteItem(*args, **kwargs):
        """DeleteItem(MenuItem item) -> bool"""
        return _core.Menu_DeleteItem(*args, **kwargs)

    def Destroy(*args, **kwargs):
        """
        Destroy()

        Deletes the C++ object this Python object is a proxy for.
        """
        return _core.Menu_Destroy(*args, **kwargs)

    def DestroyId(*args, **kwargs):
        """
        DestroyId(int id) -> bool

        Deletes the C++ object this Python object is a proxy for.
        """
        return _core.Menu_DestroyId(*args, **kwargs)

    def DestroyItem(*args, **kwargs):
        """
        DestroyItem(MenuItem item) -> bool

        Deletes the C++ object this Python object is a proxy for.
        """
        return _core.Menu_DestroyItem(*args, **kwargs)

    def GetMenuItemCount(*args, **kwargs):
        """GetMenuItemCount() -> size_t"""
        return _core.Menu_GetMenuItemCount(*args, **kwargs)

    def GetMenuItems(*args, **kwargs):
        """GetMenuItems() -> PyObject"""
        return _core.Menu_GetMenuItems(*args, **kwargs)

    def FindItem(*args, **kwargs):
        """FindItem(String item) -> int"""
        return _core.Menu_FindItem(*args, **kwargs)

    def FindItemById(*args, **kwargs):
        """FindItemById(int id) -> MenuItem"""
        return _core.Menu_FindItemById(*args, **kwargs)

    def FindItemByPosition(*args, **kwargs):
        """FindItemByPosition(size_t position) -> MenuItem"""
        return _core.Menu_FindItemByPosition(*args, **kwargs)

    def Enable(*args, **kwargs):
        """Enable(int id, bool enable)"""
        return _core.Menu_Enable(*args, **kwargs)

    def IsEnabled(*args, **kwargs):
        """IsEnabled(int id) -> bool"""
        return _core.Menu_IsEnabled(*args, **kwargs)

    def Check(*args, **kwargs):
        """Check(int id, bool check)"""
        return _core.Menu_Check(*args, **kwargs)

    def IsChecked(*args, **kwargs):
        """IsChecked(int id) -> bool"""
        return _core.Menu_IsChecked(*args, **kwargs)

    def SetLabel(*args, **kwargs):
        """SetLabel(int id, String label)"""
        return _core.Menu_SetLabel(*args, **kwargs)

    def GetLabel(*args, **kwargs):
        """GetLabel(int id) -> String"""
        return _core.Menu_GetLabel(*args, **kwargs)

    def SetHelpString(*args, **kwargs):
        """SetHelpString(int id, String helpString)"""
        return _core.Menu_SetHelpString(*args, **kwargs)

    def GetHelpString(*args, **kwargs):
        """GetHelpString(int id) -> String"""
        return _core.Menu_GetHelpString(*args, **kwargs)

    def SetTitle(*args, **kwargs):
        """SetTitle(String title)"""
        return _core.Menu_SetTitle(*args, **kwargs)

    def GetTitle(*args, **kwargs):
        """GetTitle() -> String"""
        return _core.Menu_GetTitle(*args, **kwargs)

    def SetEventHandler(*args, **kwargs):
        """SetEventHandler(EvtHandler handler)"""
        return _core.Menu_SetEventHandler(*args, **kwargs)

    def GetEventHandler(*args, **kwargs):
        """GetEventHandler() -> EvtHandler"""
        return _core.Menu_GetEventHandler(*args, **kwargs)

    def SetInvokingWindow(*args, **kwargs):
        """SetInvokingWindow(Window win)"""
        return _core.Menu_SetInvokingWindow(*args, **kwargs)

    def GetInvokingWindow(*args, **kwargs):
        """GetInvokingWindow() -> Window"""
        return _core.Menu_GetInvokingWindow(*args, **kwargs)

    def GetStyle(*args, **kwargs):
        """GetStyle() -> long"""
        return _core.Menu_GetStyle(*args, **kwargs)

    def UpdateUI(*args, **kwargs):
        """UpdateUI(EvtHandler source=None)"""
        return _core.Menu_UpdateUI(*args, **kwargs)

    def GetMenuBar(*args, **kwargs):
        """GetMenuBar() -> MenuBar"""
        return _core.Menu_GetMenuBar(*args, **kwargs)

    def Attach(*args, **kwargs):
        """Attach(wxMenuBarBase menubar)"""
        return _core.Menu_Attach(*args, **kwargs)

    def Detach(*args, **kwargs):
        """Detach()"""
        return _core.Menu_Detach(*args, **kwargs)

    def IsAttached(*args, **kwargs):
        """IsAttached() -> bool"""
        return _core.Menu_IsAttached(*args, **kwargs)

    def SetParent(*args, **kwargs):
        """SetParent(Menu parent)"""
        return _core.Menu_SetParent(*args, **kwargs)

    def GetParent(*args, **kwargs):
        """GetParent() -> Menu"""
        return _core.Menu_GetParent(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxMenuBar instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(long style=0) -> MenuBar"""
        newobj = _core.new_MenuBar(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)

    def Append(*args, **kwargs):
        """Append(Menu menu, String title) -> bool"""
        return _core.MenuBar_Append(*args, **kwargs)

    def Insert(*args, **kwargs):
        """Insert(size_t pos, Menu menu, String title) -> bool"""
        return _core.MenuBar_Insert(*args, **kwargs)

    def GetMenuCount(*args, **kwargs):
        """GetMenuCount() -> size_t"""
        return _core.MenuBar_GetMenuCount(*args, **kwargs)

    def GetMenu(*args, **kwargs):
        """GetMenu(size_t pos) -> Menu"""
        return _core.MenuBar_GetMenu(*args, **kwargs)

    def Replace(*args, **kwargs):
        """Replace(size_t pos, Menu menu, String title) -> Menu"""
        return _core.MenuBar_Replace(*args, **kwargs)

    def Remove(*args, **kwargs):
        """Remove(size_t pos) -> Menu"""
        return _core.MenuBar_Remove(*args, **kwargs)

    def EnableTop(*args, **kwargs):
        """EnableTop(size_t pos, bool enable)"""
        return _core.MenuBar_EnableTop(*args, **kwargs)

    def IsEnabledTop(*args, **kwargs):
        """IsEnabledTop(size_t pos) -> bool"""
        return _core.MenuBar_IsEnabledTop(*args, **kwargs)

    def SetLabelTop(*args, **kwargs):
        """SetLabelTop(size_t pos, String label)"""
        return _core.MenuBar_SetLabelTop(*args, **kwargs)

    def GetLabelTop(*args, **kwargs):
        """GetLabelTop(size_t pos) -> String"""
        return _core.MenuBar_GetLabelTop(*args, **kwargs)

    def FindMenuItem(*args, **kwargs):
        """FindMenuItem(String menu, String item) -> int"""
        return _core.MenuBar_FindMenuItem(*args, **kwargs)

    def FindItemById(*args, **kwargs):
        """FindItemById(int id) -> MenuItem"""
        return _core.MenuBar_FindItemById(*args, **kwargs)

    def FindMenu(*args, **kwargs):
        """FindMenu(String title) -> int"""
        return _core.MenuBar_FindMenu(*args, **kwargs)

    def Enable(*args, **kwargs):
        """Enable(int id, bool enable)"""
        return _core.MenuBar_Enable(*args, **kwargs)

    def Check(*args, **kwargs):
        """Check(int id, bool check)"""
        return _core.MenuBar_Check(*args, **kwargs)

    def IsChecked(*args, **kwargs):
        """IsChecked(int id) -> bool"""
        return _core.MenuBar_IsChecked(*args, **kwargs)

    def IsEnabled(*args, **kwargs):
        """IsEnabled(int id) -> bool"""
        return _core.MenuBar_IsEnabled(*args, **kwargs)

    def SetLabel(*args, **kwargs):
        """SetLabel(int id, String label)"""
        return _core.MenuBar_SetLabel(*args, **kwargs)

    def GetLabel(*args, **kwargs):
        """GetLabel(int id) -> String"""
        return _core.MenuBar_GetLabel(*args, **kwargs)

    def SetHelpString(*args, **kwargs):
        """SetHelpString(int id, String helpString)"""
        return _core.MenuBar_SetHelpString(*args, **kwargs)

    def GetHelpString(*args, **kwargs):
        """GetHelpString(int id) -> String"""
        return _core.MenuBar_GetHelpString(*args, **kwargs)

    def GetFrame(*args, **kwargs):
        """GetFrame() -> wxFrame"""
        return _core.MenuBar_GetFrame(*args, **kwargs)

    def IsAttached(*args, **kwargs):
        """IsAttached() -> bool"""
        return _core.MenuBar_IsAttached(*args, **kwargs)

    def Attach(*args, **kwargs):
        """Attach(wxFrame frame)"""
        return _core.MenuBar_Attach(*args, **kwargs)

    def Detach(*args, **kwargs):
        """Detach()"""
        return _core.MenuBar_Detach(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxMenuItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """
        __init__(Menu parentMenu=None, int id=ID_SEPARATOR, String text=EmptyString, 
            String help=EmptyString, int kind=ITEM_NORMAL, 
            Menu subMenu=None) -> MenuItem
        """
        newobj = _core.new_MenuItem(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetMenu(*args, **kwargs):
        """GetMenu() -> Menu"""
        return _core.MenuItem_GetMenu(*args, **kwargs)

    def SetMenu(*args, **kwargs):
        """SetMenu(Menu menu)"""
        return _core.MenuItem_SetMenu(*args, **kwargs)

    def SetId(*args, **kwargs):
        """SetId(int id)"""
        return _core.MenuItem_SetId(*args, **kwargs)

    def GetId(*args, **kwargs):
        """GetId() -> int"""
        return _core.MenuItem_GetId(*args, **kwargs)

    def IsSeparator(*args, **kwargs):
        """IsSeparator() -> bool"""
        return _core.MenuItem_IsSeparator(*args, **kwargs)

    def SetText(*args, **kwargs):
        """SetText(String str)"""
        return _core.MenuItem_SetText(*args, **kwargs)

    def GetLabel(*args, **kwargs):
        """GetLabel() -> String"""
        return _core.MenuItem_GetLabel(*args, **kwargs)

    def GetText(*args, **kwargs):
        """GetText() -> String"""
        return _core.MenuItem_GetText(*args, **kwargs)

    def GetLabelFromText(*args, **kwargs):
        """GetLabelFromText(String text) -> String"""
        return _core.MenuItem_GetLabelFromText(*args, **kwargs)

    GetLabelFromText = staticmethod(GetLabelFromText)
    def GetKind(*args, **kwargs):
        """GetKind() -> int"""
        return _core.MenuItem_GetKind(*args, **kwargs)

    def SetCheckable(*args, **kwargs):
        """SetCheckable(bool checkable)"""
        return _core.MenuItem_SetCheckable(*args, **kwargs)

    def IsCheckable(*args, **kwargs):
        """IsCheckable() -> bool"""
        return _core.MenuItem_IsCheckable(*args, **kwargs)

    def IsSubMenu(*args, **kwargs):
        """IsSubMenu() -> bool"""
        return _core.MenuItem_IsSubMenu(*args, **kwargs)

    def SetSubMenu(*args, **kwargs):
        """SetSubMenu(Menu menu)"""
        return _core.MenuItem_SetSubMenu(*args, **kwargs)

    def GetSubMenu(*args, **kwargs):
        """GetSubMenu() -> Menu"""
        return _core.MenuItem_GetSubMenu(*args, **kwargs)

    def Enable(*args, **kwargs):
        """Enable(bool enable=True)"""
        return _core.MenuItem_Enable(*args, **kwargs)

    def IsEnabled(*args, **kwargs):
        """IsEnabled() -> bool"""
        return _core.MenuItem_IsEnabled(*args, **kwargs)

    def Check(*args, **kwargs):
        """Check(bool check=True)"""
        return _core.MenuItem_Check(*args, **kwargs)

    def IsChecked(*args, **kwargs):
        """IsChecked() -> bool"""
        return _core.MenuItem_IsChecked(*args, **kwargs)

    def Toggle(*args, **kwargs):
        """Toggle()"""
        return _core.MenuItem_Toggle(*args, **kwargs)

    def SetHelp(*args, **kwargs):
        """SetHelp(String str)"""
        return _core.MenuItem_SetHelp(*args, **kwargs)

    def GetHelp(*args, **kwargs):
        """GetHelp() -> String"""
        return _core.MenuItem_GetHelp(*args, **kwargs)

    def GetAccel(*args, **kwargs):
        """GetAccel() -> AcceleratorEntry"""
        return _core.MenuItem_GetAccel(*args, **kwargs)

    def SetAccel(*args, **kwargs):
        """SetAccel(AcceleratorEntry accel)"""
        return _core.MenuItem_SetAccel(*args, **kwargs)

    def GetDefaultMarginWidth(*args, **kwargs):
        """GetDefaultMarginWidth() -> int"""
        return _core.MenuItem_GetDefaultMarginWidth(*args, **kwargs)

    GetDefaultMarginWidth = staticmethod(GetDefaultMarginWidth)
    def SetBitmap(*args, **kwargs):
        """SetBitmap(Bitmap bitmap)"""
        return _core.MenuItem_SetBitmap(*args, **kwargs)

    def GetBitmap(*args, **kwargs):
        """GetBitmap() -> Bitmap"""
        return _core.MenuItem_GetBitmap(*args, **kwargs)


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)

def MenuItem_GetLabelFromText(*args, **kwargs):
    """MenuItem_GetLabelFromText(String text) -> String"""
    return _core.MenuItem_GetLabelFromText(*args, **kwargs)

def MenuItem_GetDefaultMarginWidth(*args, **kwargs):
    """MenuItem_GetDefaultMarginWidth() -> int"""
    return _core.MenuItem_GetDefaultMarginWidth(*args, **kwargs)

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

class Control(Window):
    """
    This is the base class for a control or 'widget'.

    A control is generally a small window which processes user input and/or
    displays one or more item of data.
    """
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxControl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """
        __init__(Window parent, int id, Point pos=DefaultPosition, Size size=DefaultSize, 
            long style=0, Validator validator=DefaultValidator, 
            String name=ControlNameStr) -> Control

        Create a Control.  Normally you should only call this from a
        subclass' __init__ as a plain old wx.Control is not very useful.
        """
        newobj = _core.new_Control(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)

    def Create(*args, **kwargs):
        """
        Create(Window parent, int id, Point pos=DefaultPosition, Size size=DefaultSize, 
            long style=0, Validator validator=DefaultValidator, 
            String name=ControlNameStr) -> bool

        Do the 2nd phase and create the GUI control.
        """
        return _core.Control_Create(*args, **kwargs)

    def Command(*args, **kwargs):
        """
        Command(CommandEvent event)

        Simulates the effect of the user issuing a command to the
        item. See wxCommandEvent.
        """
        return _core.Control_Command(*args, **kwargs)

    def GetLabel(*args, **kwargs):
        """
        GetLabel() -> String

        Return a control's text.
        """
        return _core.Control_GetLabel(*args, **kwargs)

    def SetLabel(*args, **kwargs):
        """
        SetLabel(String label)

        Sets the item's text.
        """
        return _core.Control_SetLabel(*args, **kwargs)


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)
ControlNameStr = cvar.ControlNameStr

def PreControl(*args, **kwargs):
    """
    PreControl() -> Control

    Precreate a Control control for 2-phase creation
    """
    val = _core.new_PreControl(*args, **kwargs)
    val.thisown = 1
    return val

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

class ItemContainer(object):
    """
    wx.ItemContainer defines an interface which is implemented by all
    controls which have string subitems, each of which may be
    selected, such as wx.ListBox, wx.CheckListBox, wx.Choice and
    wx.ComboBox (which implements an extended interface deriving from
    this one)

    It defines the methods for accessing the control's items and
    although each of the derived classes implements them differently,
    they still all conform to the same interface.

    The items in a wx.ItemContainer have (non empty) string labels
    and, optionally, client data associated with them.

    """
    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,)
    def Append(*args, **kwargs):
        """
        Append(String item, PyObject clientData=None) -> int

        Adds the item to the control, associating the given data with the
        item if not None.  The return value is the index of the newly
        added item which may be different from the last one if the
        control is sorted (e.g. has wx.LB_SORT or wx.CB_SORT style).
        """
        return _core.ItemContainer_Append(*args, **kwargs)

    def AppendItems(*args, **kwargs):
        """
        AppendItems(wxArrayString strings)

        Apend several items at once to the control.  Notice that calling
        this method may be much faster than appending the items one by
        one if you need to add a lot of items.
        """
        return _core.ItemContainer_AppendItems(*args, **kwargs)

    def Insert(*args, **kwargs):
        """
        Insert(String item, int pos, PyObject clientData=None) -> int

        Insert an item into the control before the item at the pos index,
        optionally associating some data object with the item.
        """
        return _core.ItemContainer_Insert(*args, **kwargs)

    def Clear(*args, **kwargs):
        """
        Clear()

        Removes all items from the control.
        """
        return _core.ItemContainer_Clear(*args, **kwargs)

    def Delete(*args, **kwargs):
        """
        Delete(int n)

        Deletes the item at the zero-based index 'n' from the control.
        Note that it is an error (signalled by a PyAssertionError
        exception if enabled) to remove an item with the index negative
        or greater or equal than the number of items in the control.
        """
        return _core.ItemContainer_Delete(*args, **kwargs)

    def GetCount(*args, **kwargs):
        """
        GetCount() -> int

        Returns the number of items in the control.
        """
        return _core.ItemContainer_GetCount(*args, **kwargs)

    def IsEmpty(*args, **kwargs):
        """
        IsEmpty() -> bool

        Returns True if the control is empty or False if it has some items.
        """
        return _core.ItemContainer_IsEmpty(*args, **kwargs)

    def GetString(*args, **kwargs):
        """
        GetString(int n) -> String

        Returns the label of the item with the given index.
        """
        return _core.ItemContainer_GetString(*args, **kwargs)

    def GetStrings(*args, **kwargs):
        """GetStrings() -> wxArrayString"""
        return _core.ItemContainer_GetStrings(*args, **kwargs)

    def SetString(*args, **kwargs):
        """
        SetString(int n, String s)

        Sets the label for the given item.
        """
        return _core.ItemContainer_SetString(*args, **kwargs)

    def FindString(*args, **kwargs):
        """
        FindString(String s) -> int

        Finds an item whose label matches the given string.  Returns the
        zero-based position of the item, or wx.NOT_FOUND if the string
        was not found.
        """
        return _core.ItemContainer_FindString(*args, **kwargs)

    def Select(*args, **kwargs):
        """
        Select(int n)

        Sets the item at index 'n' to be the selected item.
        """
        return _core.ItemContainer_Select(*args, **kwargs)

    SetSelection = Select 
    def GetSelection(*args, **kwargs):
        """
        GetSelection() -> int

        Returns the index of the selected item or wx.NOT_FOUND if no item is selected.
        """
        return _core.ItemContainer_GetSelection(*args, **kwargs)

    def GetStringSelection(*args, **kwargs):
        """
        GetStringSelection() -> String

        Returns the label of the selected item or an empty string if no item is selected.
        """
        return _core.ItemContainer_GetStringSelection(*args, **kwargs)

    def GetClientData(*args, **kwargs):
        """
        GetClientData(int n) -> PyObject

        Returns the client data associated with the given item, (if any.)
        """
        return _core.ItemContainer_GetClientData(*args, **kwargs)

    def SetClientData(*args, **kwargs):
        """
        SetClientData(int n, PyObject clientData)

        Associate the given client data with the item at position n.
        """
        return _core.ItemContainer_SetClientData(*args, **kwargs)


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):
    """
    wx.ControlWithItems combines the wx.ItemContainer class with the
    wx.Control class, and is used for the base class of various
    controls that have items.
    """
    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 __repr__(self):
        return "<%s.%s; proxy of C++ wxSizerItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> SizerItem"""
        newobj = _core.new_SizerItem(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def DeleteWindows(*args, **kwargs):
        """DeleteWindows()"""
        return _core.SizerItem_DeleteWindows(*args, **kwargs)

    def DetachSizer(*args, **kwargs):
        """DetachSizer()"""
        return _core.SizerItem_DetachSizer(*args, **kwargs)

    def GetSize(*args, **kwargs):
        """GetSize() -> Size"""
        return _core.SizerItem_GetSize(*args, **kwargs)

    def CalcMin(*args, **kwargs):
        """CalcMin() -> Size"""
        return _core.SizerItem_CalcMin(*args, **kwargs)

    def SetDimension(*args, **kwargs):
        """SetDimension(Point pos, Size size)"""
        return _core.SizerItem_SetDimension(*args, **kwargs)

    def GetMinSize(*args, **kwargs):
        """GetMinSize() -> Size"""
        return _core.SizerItem_GetMinSize(*args, **kwargs)

    def SetInitSize(*args, **kwargs):
        """SetInitSize(int x, int y)"""
        return _core.SizerItem_SetInitSize(*args, **kwargs)

    def SetRatioWH(*args, **kwargs):
        """SetRatioWH(int width, int height)"""
        return _core.SizerItem_SetRatioWH(*args, **kwargs)

    def SetRatioSize(*args, **kwargs):
        """SetRatioSize(Size size)"""
        return _core.SizerItem_SetRatioSize(*args, **kwargs)

    def SetRatio(*args, **kwargs):
        """SetRatio(float ratio)"""
        return _core.SizerItem_SetRatio(*args, **kwargs)

    def GetRatio(*args, **kwargs):
        """GetRatio() -> float"""
        return _core.SizerItem_GetRatio(*args, **kwargs)

    def IsWindow(*args, **kwargs):
        """IsWindow() -> bool"""
        return _core.SizerItem_IsWindow(*args, **kwargs)

    def IsSizer(*args, **kwargs):
        """IsSizer() -> bool"""
        return _core.SizerItem_IsSizer(*args, **kwargs)

    def IsSpacer(*args, **kwargs):
        """IsSpacer() -> bool"""
        return _core.SizerItem_IsSpacer(*args, **kwargs)

    def SetProportion(*args, **kwargs):
        """SetProportion(int proportion)"""
        return _core.SizerItem_SetProportion(*args, **kwargs)

    def GetProportion(*args, **kwargs):
        """GetProportion() -> int"""
        return _core.SizerItem_GetProportion(*args, **kwargs)

    SetOption = SetProportion
    GetOption = GetProportion
    def SetFlag(*args, **kwargs):
        """SetFlag(int flag)"""
        return _core.SizerItem_SetFlag(*args, **kwargs)

    def GetFlag(*args, **kwargs):
        """GetFlag() -> int"""
        return _core.SizerItem_GetFlag(*args, **kwargs)

    def SetBorder(*args, **kwargs):
        """SetBorder(int border)"""
        return _core.SizerItem_SetBorder(*args, **kwargs)

    def GetBorder(*args, **kwargs):
        """GetBorder() -> int"""
        return _core.SizerItem_GetBorder(*args, **kwargs)

    def GetWindow(*args, **kwargs):
        """GetWindow() -> Window"""
        return _core.SizerItem_GetWindow(*args, **kwargs)

    def SetWindow(*args, **kwargs):
        """SetWindow(Window window)"""
        return _core.SizerItem_SetWindow(*args, **kwargs)

    def GetSizer(*args, **kwargs):
        """GetSizer() -> Sizer"""
        return _core.SizerItem_GetSizer(*args, **kwargs)

    def SetSizer(*args, **kwargs):
        """SetSizer(Sizer sizer)"""
        return _core.SizerItem_SetSizer(*args, **kwargs)

    def GetSpacer(*args, **kwargs):
        """GetSpacer() -> Size"""
        return _core.SizerItem_GetSpacer(*args, **kwargs)

    def SetSpacer(*args, **kwargs):
        """SetSpacer(Size size)"""
        return _core.SizerItem_SetSpacer(*args, **kwargs)

    def Show(*args, **kwargs):
        """Show(bool show)"""
        return _core.SizerItem_Show(*args, **kwargs)

    def IsShown(*args, **kwargs):
        """IsShown() -> bool"""
        return _core.SizerItem_IsShown(*args, **kwargs)

    def GetPosition(*args, **kwargs):
        """GetPosition() -> Point"""
        return _core.SizerItem_GetPosition(*args, **kwargs)

    def GetUserData(*args, **kwargs):
        """GetUserData() -> PyObject"""
        return _core.SizerItem_GetUserData(*args, **kwargs)


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):
    """
    SizerItemSpacer(int width, int height, int proportion, int flag, int border, 
        Object userData) -> SizerItem
    """
    val = _core.new_SizerItemSpacer(*args, **kwargs)
    val.thisown = 1
    return val

def SizerItemWindow(*args, **kwargs):
    """
    SizerItemWindow(Window window, int proportion, int flag, int border, 
        Object userData) -> SizerItem
    """
    val = _core.new_SizerItemWindow(*args, **kwargs)
    val.thisown = 1
    return val

def SizerItemSizer(*args, **kwargs):
    """
    SizerItemSizer(Sizer sizer, int proportion, int flag, int border, 
        Object userData) -> SizerItem
    """
    val = _core.new_SizerItemSizer(*args, **kwargs)
    val.thisown = 1
    return val

class Sizer(Object):
    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,)
    def _setOORInfo(*args, **kwargs):
        """_setOORInfo(PyObject _self)"""
        return _core.Sizer__setOORInfo(*args, **kwargs)

    def Add(*args, **kwargs):
        """
        Add(PyObject item, int proportion=0, int flag=0, int border=0, 
            PyObject userData=None)
        """
        return _core.Sizer_Add(*args, **kwargs)

    def Insert(*args, **kwargs):
        """
        Insert(int before, PyObject item, int proportion=0, int flag=0, 
            int border=0, PyObject userData=None)
        """
        return _core.Sizer_Insert(*args, **kwargs)

    def Prepend(*args, **kwargs):
        """
        Prepend(PyObject item, int proportion=0, int flag=0, int border=0, 
            PyObject userData=None)
        """
        return _core.Sizer_Prepend(*args, **kwargs)

    def Remove(*args, **kwargs):
        """Remove(PyObject item) -> bool"""
        return _core.Sizer_Remove(*args, **kwargs)

    def _SetItemMinSize(*args, **kwargs):
        """_SetItemMinSize(PyObject item, Size size)"""
        return _core.Sizer__SetItemMinSize(*args, **kwargs)

    def AddItem(*args, **kwargs):
        """AddItem(SizerItem item)"""
        return _core.Sizer_AddItem(*args, **kwargs)

    def InsertItem(*args, **kwargs):
        """InsertItem(size_t index, SizerItem item)"""
        return _core.Sizer_InsertItem(*args, **kwargs)

    def PrependItem(*args, **kwargs):
        """PrependItem(SizerItem item)"""
        return _core.Sizer_PrependItem(*args, **kwargs)

    def AddMany(self, widgets):
        for childinfo in widgets:
            if type(childinfo) != type(()) or (len(childinfo) == 2 and type(childinfo[0]) == type(1)):
                childinfo = (childinfo, )
            self.Add(*childinfo)

    # for backwards compatibility only, please do not use in new code
    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):
        """SetDimension(int x, int y, int width, int height)"""
        return _core.Sizer_SetDimension(*args, **kwargs)

    def SetMinSize(*args, **kwargs):
        """SetMinSize(Size size)"""
        return _core.Sizer_SetMinSize(*args, **kwargs)

    def GetSize(*args, **kwargs):
        """GetSize() -> Size"""
        return _core.Sizer_GetSize(*args, **kwargs)

    def GetPosition(*args, **kwargs):
        """GetPosition() -> Point"""
        return _core.Sizer_GetPosition(*args, **kwargs)

    def GetMinSize(*args, **kwargs):
        """GetMinSize() -> Size"""
        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):
        """RecalcSizes()"""
        return _core.Sizer_RecalcSizes(*args, **kwargs)

    def CalcMin(*args, **kwargs):
        """CalcMin() -> Size"""
        return _core.Sizer_CalcMin(*args, **kwargs)

    def Layout(*args, **kwargs):
        """Layout()"""
        return _core.Sizer_Layout(*args, **kwargs)

    def Fit(*args, **kwargs):
        """Fit(Window window) -> Size"""
        return _core.Sizer_Fit(*args, **kwargs)

    def FitInside(*args, **kwargs):
        """FitInside(Window window)"""
        return _core.Sizer_FitInside(*args, **kwargs)

    def SetSizeHints(*args, **kwargs):
        """SetSizeHints(Window window)"""
        return _core.Sizer_SetSizeHints(*args, **kwargs)

    def SetVirtualSizeHints(*args, **kwargs):
        """SetVirtualSizeHints(Window window)"""
        return _core.Sizer_SetVirtualSizeHints(*args, **kwargs)

    def Clear(*args, **kwargs):
        """Clear(bool delete_windows=False)"""
        return _core.Sizer_Clear(*args, **kwargs)

    def DeleteWindows(*args, **kwargs):
        """DeleteWindows()"""
        return _core.Sizer_DeleteWindows(*args, **kwargs)

    def GetChildren(*args, **kwargs):
        """GetChildren() -> PyObject"""
        return _core.Sizer_GetChildren(*args, **kwargs)

    def Show(*args, **kwargs):
        """Show(PyObject item, bool show=True)"""
        return _core.Sizer_Show(*args, **kwargs)

    def Hide(*args, **kwargs):
        """Hide(PyObject item)"""
        return _core.Sizer_Hide(*args, **kwargs)

    def IsShown(*args, **kwargs):
        """IsShown(PyObject item) -> bool"""
        return _core.Sizer_IsShown(*args, **kwargs)

    def ShowItems(*args, **kwargs):
        """ShowItems(bool show)"""
        return _core.Sizer_ShowItems(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxPySizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> PySizer"""
        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):
        """_setCallbackInfo(PyObject self, PyObject _class)"""
        return _core.PySizer__setCallbackInfo(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxBoxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int orient=HORIZONTAL) -> BoxSizer"""
        newobj = _core.new_BoxSizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)

    def GetOrientation(*args, **kwargs):
        """GetOrientation() -> int"""
        return _core.BoxSizer_GetOrientation(*args, **kwargs)

    def SetOrientation(*args, **kwargs):
        """SetOrientation(int orient)"""
        return _core.BoxSizer_SetOrientation(*args, **kwargs)

    def RecalcSizes(*args, **kwargs):
        """RecalcSizes()"""
        return _core.BoxSizer_RecalcSizes(*args, **kwargs)

    def CalcMin(*args, **kwargs):
        """CalcMin() -> Size"""
        return _core.BoxSizer_CalcMin(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxStaticBoxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(wxStaticBox box, int orient=HORIZONTAL) -> StaticBoxSizer"""
        newobj = _core.new_StaticBoxSizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)

    def GetStaticBox(*args, **kwargs):
        """GetStaticBox() -> wxStaticBox"""
        return _core.StaticBoxSizer_GetStaticBox(*args, **kwargs)

    def RecalcSizes(*args, **kwargs):
        """RecalcSizes()"""
        return _core.StaticBoxSizer_RecalcSizes(*args, **kwargs)

    def CalcMin(*args, **kwargs):
        """CalcMin() -> Size"""
        return _core.StaticBoxSizer_CalcMin(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxGridSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int rows=1, int cols=0, int vgap=0, int hgap=0) -> GridSizer"""
        newobj = _core.new_GridSizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)

    def RecalcSizes(*args, **kwargs):
        """RecalcSizes()"""
        return _core.GridSizer_RecalcSizes(*args, **kwargs)

    def CalcMin(*args, **kwargs):
        """CalcMin() -> Size"""
        return _core.GridSizer_CalcMin(*args, **kwargs)

    def SetCols(*args, **kwargs):
        """SetCols(int cols)"""
        return _core.GridSizer_SetCols(*args, **kwargs)

    def SetRows(*args, **kwargs):
        """SetRows(int rows)"""
        return _core.GridSizer_SetRows(*args, **kwargs)

    def SetVGap(*args, **kwargs):
        """SetVGap(int gap)"""
        return _core.GridSizer_SetVGap(*args, **kwargs)

    def SetHGap(*args, **kwargs):
        """SetHGap(int gap)"""
        return _core.GridSizer_SetHGap(*args, **kwargs)

    def GetCols(*args, **kwargs):
        """GetCols() -> int"""
        return _core.GridSizer_GetCols(*args, **kwargs)

    def GetRows(*args, **kwargs):
        """GetRows() -> int"""
        return _core.GridSizer_GetRows(*args, **kwargs)

    def GetVGap(*args, **kwargs):
        """GetVGap() -> int"""
        return _core.GridSizer_GetVGap(*args, **kwargs)

    def GetHGap(*args, **kwargs):
        """GetHGap() -> int"""
        return _core.GridSizer_GetHGap(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxFlexGridSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int rows=1, int cols=0, int vgap=0, int hgap=0) -> FlexGridSizer"""
        newobj = _core.new_FlexGridSizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
        self._setOORInfo(self)

    def RecalcSizes(*args, **kwargs):
        """RecalcSizes()"""
        return _core.FlexGridSizer_RecalcSizes(*args, **kwargs)

    def CalcMin(*args, **kwargs):
        """CalcMin() -> Size"""
        return _core.FlexGridSizer_CalcMin(*args, **kwargs)

    def AddGrowableRow(*args, **kwargs):
        """AddGrowableRow(size_t idx, int proportion=0)"""
        return _core.FlexGridSizer_AddGrowableRow(*args, **kwargs)

    def RemoveGrowableRow(*args, **kwargs):
        """RemoveGrowableRow(size_t idx)"""
        return _core.FlexGridSizer_RemoveGrowableRow(*args, **kwargs)

    def AddGrowableCol(*args, **kwargs):
        """AddGrowableCol(size_t idx, int proportion=0)"""
        return _core.FlexGridSizer_AddGrowableCol(*args, **kwargs)

    def RemoveGrowableCol(*args, **kwargs):
        """RemoveGrowableCol(size_t idx)"""
        return _core.FlexGridSizer_RemoveGrowableCol(*args, **kwargs)

    def SetFlexibleDirection(*args, **kwargs):
        """SetFlexibleDirection(int direction)"""
        return _core.FlexGridSizer_SetFlexibleDirection(*args, **kwargs)

    def GetFlexibleDirection(*args, **kwargs):
        """GetFlexibleDirection() -> int"""
        return _core.FlexGridSizer_GetFlexibleDirection(*args, **kwargs)

    def SetNonFlexibleGrowMode(*args, **kwargs):
        """SetNonFlexibleGrowMode(int mode)"""
        return _core.FlexGridSizer_SetNonFlexibleGrowMode(*args, **kwargs)

    def GetNonFlexibleGrowMode(*args, **kwargs):
        """GetNonFlexibleGrowMode() -> int"""
        return _core.FlexGridSizer_GetNonFlexibleGrowMode(*args, **kwargs)

    def GetRowHeights(*args, **kwargs):
        """GetRowHeights() -> wxArrayInt"""
        return _core.FlexGridSizer_GetRowHeights(*args, **kwargs)

    def GetColWidths(*args, **kwargs):
        """GetColWidths() -> wxArrayInt"""
        return _core.FlexGridSizer_GetColWidths(*args, **kwargs)


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 __repr__(self):
        return "<%s.%s; proxy of C++ wxGBPosition instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int row=0, int col=0) -> GBPosition"""
        newobj = _core.new_GBPosition(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetRow(*args, **kwargs):
        """GetRow() -> int"""
        return _core.GBPosition_GetRow(*args, **kwargs)

    def GetCol(*args, **kwargs):
        """GetCol() -> int"""
        return _core.GBPosition_GetCol(*args, **kwargs)

    def SetRow(*args, **kwargs):
        """SetRow(int row)"""
        return _core.GBPosition_SetRow(*args, **kwargs)

    def SetCol(*args, **kwargs):
        """SetCol(int col)"""
        return _core.GBPosition_SetCol(*args, **kwargs)

    def __eq__(*args, **kwargs):
        """__eq__(GBPosition other) -> bool"""
        return _core.GBPosition___eq__(*args, **kwargs)

    def __ne__(*args, **kwargs):
        """__ne__(GBPosition other) -> bool"""
        return _core.GBPosition___ne__(*args, **kwargs)

    def Set(*args, **kwargs):
        """Set(int row=0, int col=0)"""
        return _core.GBPosition_Set(*args, **kwargs)

    def Get(*args, **kwargs):
        """Get() -> PyObject"""
        return _core.GBPosition_Get(*args, **kwargs)

    asTuple = Get
    def __str__(self):                   return str(self.Get())
    def __repr__(self):                  return 'wx.GBPosition'+str(self.Get())
    def __len__(self):                   return len(self.Get())
    def __getitem__(self, index):        return self.Get()[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.Get() != (0,0)
    __safe_for_unpickling__ = True
    def __reduce__(self):                return (wx.GBPosition, self.Get())

    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 __repr__(self):
        return "<%s.%s; proxy of C++ wxGBSpan instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int rowspan=1, int colspan=1) -> GBSpan"""
        newobj = _core.new_GBSpan(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetRowspan(*args, **kwargs):
        """GetRowspan() -> int"""
        return _core.GBSpan_GetRowspan(*args, **kwargs)

    def GetColspan(*args, **kwargs):
        """GetColspan() -> int"""
        return _core.GBSpan_GetColspan(*args, **kwargs)

    def SetRowspan(*args, **kwargs):
        """SetRowspan(int rowspan)"""
        return _core.GBSpan_SetRowspan(*args, **kwargs)

    def SetColspan(*args, **kwargs):
        """SetColspan(int colspan)"""
        return _core.GBSpan_SetColspan(*args, **kwargs)

    def __eq__(*args, **kwargs):
        """__eq__(GBSpan other) -> bool"""
        return _core.GBSpan___eq__(*args, **kwargs)

    def __ne__(*args, **kwargs):
        """__ne__(GBSpan other) -> bool"""
        return _core.GBSpan___ne__(*args, **kwargs)

    def Set(*args, **kwargs):
        """Set(int rowspan=1, int colspan=1)"""
        return _core.GBSpan_Set(*args, **kwargs)

    def Get(*args, **kwargs):
        """Get() -> PyObject"""
        return _core.GBSpan_Get(*args, **kwargs)

    asTuple = Get
    def __str__(self):                   return str(self.Get())
    def __repr__(self):                  return 'wx.GBSpan'+str(self.Get())
    def __len__(self):                   return len(self.Get())
    def __getitem__(self, index):        return self.Get()[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.Get() != (0,0)
    __safe_for_unpickling__ = True
    def __reduce__(self):                return (wx.GBSpan, self.Get())

    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 __repr__(self):
        return "<%s.%s; proxy of C++ wxGBSizerItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__() -> GBSizerItem"""
        newobj = _core.new_GBSizerItem(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def GetPos(*args, **kwargs):
        """GetPos() -> GBPosition"""
        return _core.GBSizerItem_GetPos(*args, **kwargs)

    def GetPosTuple(self): return self.GetPos().Get() 
    def GetSpan(*args, **kwargs):
        """GetSpan() -> GBSpan"""
        return _core.GBSizerItem_GetSpan(*args, **kwargs)

    def GetSpanTuple(self): return self.GetSpan().Get() 
    def SetPos(*args, **kwargs):
        """SetPos(GBPosition pos) -> bool"""
        return _core.GBSizerItem_SetPos(*args, **kwargs)

    def SetSpan(*args, **kwargs):
        """SetSpan(GBSpan span) -> bool"""
        return _core.GBSizerItem_SetSpan(*args, **kwargs)

    def Intersects(*args):
        """
        Intersects(GBSizerItem other) -> bool
        Intersects(GBPosition pos, GBSpan span) -> bool
        """
        return _core.GBSizerItem_Intersects(*args)

    def GetEndPos(*args, **kwargs):
        """GetEndPos(int row, int col)"""
        return _core.GBSizerItem_GetEndPos(*args, **kwargs)

    def GetGBSizer(*args, **kwargs):
        """GetGBSizer() -> GridBagSizer"""
        return _core.GBSizerItem_GetGBSizer(*args, **kwargs)

    def SetGBSizer(*args, **kwargs):
        """SetGBSizer(GridBagSizer sizer)"""
        return _core.GBSizerItem_SetGBSizer(*args, **kwargs)


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):
    """
    GBSizerItemWindow(Window window, GBPosition pos, GBSpan span, int flag, 
        int border, Object userData) -> GBSizerItem
    """
    val = _core.new_GBSizerItemWindow(*args, **kwargs)
    val.thisown = 1
    return val

def GBSizerItemSizer(*args, **kwargs):
    """
    GBSizerItemSizer(Sizer sizer, GBPosition pos, GBSpan span, int flag, 
        int border, Object userData) -> GBSizerItem
    """
    val = _core.new_GBSizerItemSizer(*args, **kwargs)
    val.thisown = 1
    return val

def GBSizerItemSpacer(*args, **kwargs):
    """
    GBSizerItemSpacer(int width, int height, GBPosition pos, GBSpan span, 
        int flag, int border, Object userData) -> GBSizerItem
    """
    val = _core.new_GBSizerItemSpacer(*args, **kwargs)
    val.thisown = 1
    return val

class GridBagSizer(FlexGridSizer):
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxGridBagSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    def __init__(self, *args, **kwargs):
        """__init__(int vgap=0, int hgap=0) -> GridBagSizer"""
        newobj = _core.new_GridBagSizer(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def Add(*args, **kwargs):
        """
        Add(PyObject item, GBPosition pos, GBSpan span=DefaultSpan, 
            int flag=0, int border=0, PyObject userData=None) -> bool
        """
        return _core.GridBagSizer_Add(*args, **kwargs)

    def AddItem(*args, **kwargs):
        """AddItem(GBSizerItem item) -> bool"""
        return _core.GridBagSizer_AddItem(*args, **kwargs)

    def GetEmptyCellSize(*args, **kwargs):
        """GetEmptyCellSize() -> Size"""
        return _core.GridBagSizer_GetEmptyCellSize(*args, **kwargs)

    def SetEmptyCellSize(*args, **kwargs):
        """SetEmptyCellSize(Size sz)"""
        return _core.GridBagSizer_SetEmptyCellSize(*args, **kwargs)

    def GetItemPosition(*args):
        """
        GetItemPosition(Window window) -> GBPosition
        GetItemPosition(Sizer sizer) -> GBPosition
        GetItemPosition(size_t index) -> GBPosition
        """
        return _core.GridBagSizer_GetItemPosition(*args)

    def SetItemPosition(*args):
        """
        SetItemPosition(Window window, GBPosition pos) -> bool
        SetItemPosition(Sizer sizer, GBPosition pos) -> bool
        SetItemPosition(size_t index, GBPosition pos) -> bool
        """
        return _core.GridBagSizer_SetItemPosition(*args)

    def GetItemSpan(*args):
        """
        GetItemSpan(Window window) -> GBSpan
        GetItemSpan(Sizer sizer) -> GBSpan
        GetItemSpan(size_t index) -> GBSpan
        """
        return _core.GridBagSizer_GetItemSpan(*args)

    def SetItemSpan(*args):
        """
        SetItemSpan(Window window, GBSpan span) -> bool
        SetItemSpan(Sizer sizer, GBSpan span) -> bool
        SetItemSpan(size_t index, GBSpan span) -> bool
        """
        return _core.GridBagSizer_SetItemSpan(*args)

    def FindItem(*args):
        """
        FindItem(Window window) -> GBSizerItem
        FindItem(Sizer sizer) -> GBSizerItem
        """
        return _core.GridBagSizer_FindItem(*args)

    def FindItemAtPosition(*args, **kwargs):
        """FindItemAtPosition(GBPosition pos) -> GBSizerItem"""
        return _core.GridBagSizer_FindItemAtPosition(*args, **kwargs)

    def FindItemAtPoint(*args, **kwargs):
        """FindItemAtPoint(Point pt) -> GBSizerItem"""
        return _core.GridBagSizer_FindItemAtPoint(*args, **kwargs)

    def FindItemWithData(*args, **kwargs):
        """FindItemWithData(Object userData) -> GBSizerItem"""
        return _core.GridBagSizer_FindItemWithData(*args, **kwargs)

    def RecalcSizes(*args, **kwargs):
        """RecalcSizes()"""
        return _core.GridBagSizer_RecalcSizes(*args, **kwargs)

    def CalcMin(*args, **kwargs):
        """CalcMin() -> Size"""
        return _core.GridBagSizer_CalcMin(*args, **kwargs)

    def CheckForIntersection(*args):
        """
        CheckForIntersection(GBSizerItem item, GBSizerItem excludeItem=None) -> bool
        CheckForIntersection(GBPosition pos, GBSpan span, GBSizerItem excludeItem=None) -> bool
        """
        return _core.GridBagSizer_CheckForIntersection(*args)


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):
    """
    Objects of this class are stored in the wx.LayoutConstraint class as one of
    eight possible constraints that a window can be involved in.  You will never
    need to create an instance of wx.IndividualLayoutConstraint, rather you should
    use create a wx.LayoutContstraints instance and use the individual contstraints
    that it contains.

    Constraints are initially set to have the relationship wx.Unconstrained, which
    means that their values should be calculated by looking at known constraints.

    The Edge specifies the type of edge or dimension of a window.

     Edges

        wx.Left 	The left edge.
        wx.Top 	The top edge.
        wx.Right 	The right edge.
        wx.Bottom 	The bottom edge.
        wx.CentreX 	The x-coordinate of the centre of the window.
        wx.CentreY 	The y-coordinate of the centre of the window. 


    The Relationship specifies the relationship that this edge or dimension has
    with another specified edge or dimension. Normally, the user doesn't use these
    directly because functions such as Below and RightOf are a convenience for
    using the more general Set function.

     Relationships

        wx.Unconstrained 	The edge or dimension is unconstrained
                            (the default for edges.)
        wx.AsIs 	        The edge or dimension is to be taken from the current
                            window position or size (the default for dimensions.)
        wx.Above 	        The edge should be above another edge.
        wx.Below 	        The edge should be below another edge.
        wx.LeftOf 	        The edge should be to the left of another edge.
        wx.RightOf 	        The edge should be to the right of another edge.
        wx.SameAs 	        The edge or dimension should be the same as another edge
                            or dimension.
        wx.PercentOf 	The edge or dimension should be a percentage of another
                            edge or dimension.
        wx.Absolute 	The edge or dimension should be a given absolute value.


    """
    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,)
    def Set(*args, **kwargs):
        """Set(int rel, Window otherW, int otherE, int val=0, int marg=wxLAYOUT_DEFAULT_MARGIN)"""
        return _core.IndividualLayoutConstraint_Set(*args, **kwargs)

    def LeftOf(*args, **kwargs):
        """
        LeftOf(Window sibling, int marg=0)

        Sibling relationship
        """
        return _core.IndividualLayoutConstraint_LeftOf(*args, **kwargs)

    def RightOf(*args, **kwargs):
        """
        RightOf(Window sibling, int marg=0)

        Sibling relationship
        """
        return _core.IndividualLayoutConstraint_RightOf(*args, **kwargs)

    def Above(*args, **kwargs):
        """
        Above(Window sibling, int marg=0)

        Sibling relationship
        """
        return _core.IndividualLayoutConstraint_Above(*args, **kwargs)

    def Below(*args, **kwargs):
        """
        Below(Window sibling, int marg=0)

        Sibling relationship
        """
        return _core.IndividualLayoutConstraint_Below(*args, **kwargs)

    def SameAs(*args, **kwargs):
        """
        SameAs(Window otherW, int edge, int marg=0)

        'Same edge' alignment
        """
        return _core.IndividualLayoutConstraint_SameAs(*args, **kwargs)

    def PercentOf(*args, **kwargs):
        """
        PercentOf(Window otherW, int wh, int per)

        The edge is a percentage of the other window's edge
        """
        return _core.IndividualLayoutConstraint_PercentOf(*args, **kwargs)

    def Absolute(*args, **kwargs):
        """
        Absolute(int val)

        Edge has absolute value
        """
        return _core.IndividualLayoutConstraint_Absolute(*args, **kwargs)

    def Unconstrained(*args, **kwargs):
        """
        Unconstrained()

        Dimension is unconstrained
        """
        return _core.IndividualLayoutConstraint_Unconstrained(*args, **kwargs)

    def AsIs(*args, **kwargs):
        """
        AsIs()

        Dimension is 'as is' (use current size settings)
        """
        return _core.IndividualLayoutConstraint_AsIs(*args, **kwargs)

    def GetOtherWindow(*args, **kwargs):
        """GetOtherWindow() -> Window"""
        return _core.IndividualLayoutConstraint_GetOtherWindow(*args, **kwargs)

    def GetMyEdge(*args, **kwargs):
        """GetMyEdge() -> int"""
        return _core.IndividualLayoutConstraint_GetMyEdge(*args, **kwargs)

    def SetEdge(*args, **kwargs):
        """SetEdge(int which)"""
        return _core.IndividualLayoutConstraint_SetEdge(*args, **kwargs)

    def SetValue(*args, **kwargs):
        """SetValue(int v)"""
        return _core.IndividualLayoutConstraint_SetValue(*args, **kwargs)

    def GetMargin(*args, **kwargs):
        """GetMargin() -> int"""
        return _core.IndividualLayoutConstraint_GetMargin(*args, **kwargs)

    def SetMargin(*args, **kwargs):
        """SetMargin(int m)"""
        return _core.IndividualLayoutConstraint_SetMargin(*args, **kwargs)

    def GetValue(*args, **kwargs):
        """GetValue() -> int"""
        return _core.IndividualLayoutConstraint_GetValue(*args, **kwargs)

    def GetPercent(*args, **kwargs):
        """GetPercent() -> int"""
        return _core.IndividualLayoutConstraint_GetPercent(*args, **kwargs)

    def GetOtherEdge(*args, **kwargs):
        """GetOtherEdge() -> int"""
        return _core.IndividualLayoutConstraint_GetOtherEdge(*args, **kwargs)

    def GetDone(*args, **kwargs):
        """GetDone() -> bool"""
        return _core.IndividualLayoutConstraint_GetDone(*args, **kwargs)

    def SetDone(*args, **kwargs):
        """SetDone(bool d)"""
        return _core.IndividualLayoutConstraint_SetDone(*args, **kwargs)

    def GetRelationship(*args, **kwargs):
        """GetRelationship() -> int"""
        return _core.IndividualLayoutConstraint_GetRelationship(*args, **kwargs)

    def SetRelationship(*args, **kwargs):
        """SetRelationship(int r)"""
        return _core.IndividualLayoutConstraint_SetRelationship(*args, **kwargs)

    def ResetIfWin(*args, **kwargs):
        """
        ResetIfWin(Window otherW) -> bool

        Reset constraint if it mentions otherWin
        """
        return _core.IndividualLayoutConstraint_ResetIfWin(*args, **kwargs)

    def SatisfyConstraint(*args, **kwargs):
        """
        SatisfyConstraint(LayoutConstraints constraints, Window win) -> bool

        Try to satisfy constraint
        """
        return _core.IndividualLayoutConstraint_SatisfyConstraint(*args, **kwargs)

    def GetEdge(*args, **kwargs):
        """
        GetEdge(int which, Window thisWin, Window other) -> int

        Get the value of this edge or dimension, or if this
        is not determinable, -1.
        """
        return _core.IndividualLayoutConstraint_GetEdge(*args, **kwargs)


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):
    """
    Note: constraints are now deprecated and you should use sizers instead.

    Objects of this class can be associated with a window to define its layout
    constraints, with respect to siblings or its parent.

    The class consists of the following eight constraints of class
    wx.IndividualLayoutConstraint, some or all of which should be accessed
    directly to set the appropriate constraints.

        * left: represents the left hand edge of the window
        * right: represents the right hand edge of the window
        * top: represents the top edge of the window
        * bottom: represents the bottom edge of the window
        * width: represents the width of the window
        * height: represents the height of the window
        * centreX: represents the horizontal centre point of the window
        * centreY: represents the vertical centre point of the window 

    Most constraints are initially set to have the relationship wxUnconstrained,
    which means that their values should be calculated by looking at known
    constraints. The exceptions are width and height, which are set to wxAsIs to
    ensure that if the user does not specify a constraint, the existing width and
    height will be used, to be compatible with panel items which often have take a
    default size. If the constraint is wxAsIs, the dimension will not be changed.

    """
    def __repr__(self):
        return "<%s.%s; proxy of C++ wxLayoutConstraints instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
    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):
        """__init__() -> LayoutConstraints"""
        newobj = _core.new_LayoutConstraints(*args, **kwargs)
        self.this = newobj.this
        self.thisown = 1
        del newobj.thisown
    def SatisfyConstraints(*args, **kwargs):
        """SatisfyConstraints(Window win) -> (areSatisfied, noChanges)"""
        return _core.LayoutConstraints_SatisfyConstraints(*args, **kwargs)

    def AreSatisfied(*args, **kwargs):
        """AreSatisfied() -> bool"""
        return _core.LayoutConstraints_AreSatisfied(*args, **kwargs)


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 some if not
try:
    True
except NameError:
    __builtins__.True = 1==1
    __builtins__.False = 1==0
    def bool(value): return not not value
    __builtins__.bool = bool



# 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



class PyUnbornObjectError(AttributeError):
    pass

class _wxPyUnbornObject(object):
    """
    Some stock objects are created when the wx.core module is
    imported, but their C++ instance is not created until the wx.App
    object is created and initialized.  These object instances will
    temporarily have their __class__ changed to this class so an
    exception will be raised if they are used before the C++ instance
    is ready.
    """

    reprStr = "wxPython wrapper for UNBORN object! (The C++ object is not initialized yet.)"
    attrStr = "The C++ part of this object has not been initialized, attribute access not 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 PyUnbornObjectError(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 wx.Timer, 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.running = False
        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)
        self.running = True
    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.running = False
            self.result = self.callable(*self.args, **self.kwargs)
        self.hasRun = True
        if not self.running:
            # if it wasn't restarted, then cleanup
            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 *


# Fixup the stock objects since they can't be used yet.  (They will be
# restored in wx.PyApp.OnInit.)
_core._wxPyFixStockObjects()

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


