X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2c8a649d7ad84e3c96a0add884791f156e6aefb2..8dba8632c5bcd64724e2e9e2d40e295555a0cb86:/wxPython/src/gtk/wx.py diff --git a/wxPython/src/gtk/wx.py b/wxPython/src/gtk/wx.py index 8f91e29748..65cb308f90 100644 --- a/wxPython/src/gtk/wx.py +++ b/wxPython/src/gtk/wx.py @@ -15,6 +15,8 @@ from events import * from streams import * +from utils import * + from mdi import * from frames import * @@ -38,8 +40,6 @@ from printfw import * from sizers import * from filesys import * - -from utils import * class wxPyAppPtr(wxEvtHandlerPtr): def __init__(self,this): self.this = this @@ -173,6 +173,7 @@ wxUSER_COLOURS = wxc.wxUSER_COLOURS wxNO_3D = wxc.wxNO_3D wxTAB_TRAVERSAL = wxc.wxTAB_TRAVERSAL wxWANTS_CHARS = wxc.wxWANTS_CHARS +wxPOPUP_WINDOW = wxc.wxPOPUP_WINDOW wxHORIZONTAL = wxc.wxHORIZONTAL wxVERTICAL = wxc.wxVERTICAL wxBOTH = wxc.wxBOTH @@ -200,7 +201,6 @@ wxFRAME_TOOL_WINDOW = wxc.wxFRAME_TOOL_WINDOW wxFRAME_FLOAT_ON_PARENT = wxc.wxFRAME_FLOAT_ON_PARENT wxFRAME_NO_WINDOW_MENU = wxc.wxFRAME_NO_WINDOW_MENU wxFRAME_NO_TASKBAR = wxc.wxFRAME_NO_TASKBAR -wxFRAME_EX_CONTEXTHELP = wxc.wxFRAME_EX_CONTEXTHELP wxED_CLIENT_MARGIN = wxc.wxED_CLIENT_MARGIN wxED_BUTTONS_BOTTOM = wxc.wxED_BUTTONS_BOTTOM wxED_BUTTONS_RIGHT = wxc.wxED_BUTTONS_RIGHT @@ -239,14 +239,19 @@ wxLB_OWNERDRAW = wxc.wxLB_OWNERDRAW wxLB_HSCROLL = wxc.wxLB_HSCROLL wxPROCESS_ENTER = wxc.wxPROCESS_ENTER wxPASSWORD = wxc.wxPASSWORD -wxTE_PROCESS_ENTER = wxc.wxTE_PROCESS_ENTER -wxTE_PROCESS_TAB = wxc.wxTE_PROCESS_TAB -wxTE_PASSWORD = wxc.wxTE_PASSWORD wxTE_READONLY = wxc.wxTE_READONLY -wxTE_RICH = wxc.wxTE_RICH wxTE_MULTILINE = wxc.wxTE_MULTILINE -wxTE_AUTO_SCROLL = wxc.wxTE_AUTO_SCROLL +wxTE_PROCESS_TAB = wxc.wxTE_PROCESS_TAB +wxTE_RICH = wxc.wxTE_RICH wxTE_NO_VSCROLL = wxc.wxTE_NO_VSCROLL +wxTE_AUTO_SCROLL = wxc.wxTE_AUTO_SCROLL +wxTE_PROCESS_ENTER = wxc.wxTE_PROCESS_ENTER +wxTE_PASSWORD = wxc.wxTE_PASSWORD +wxTE_AUTO_URL = wxc.wxTE_AUTO_URL +wxTE_NOHIDESEL = wxc.wxTE_NOHIDESEL +wxTE_DONTWRAP = wxc.wxTE_DONTWRAP +wxTE_LINEWRAP = wxc.wxTE_LINEWRAP +wxTE_WORDWRAP = wxc.wxTE_WORDWRAP wxCB_SIMPLE = wxc.wxCB_SIMPLE wxCB_DROPDOWN = wxc.wxCB_DROPDOWN wxCB_SORT = wxc.wxCB_SORT @@ -276,12 +281,6 @@ wxST_SIZEGRIP = wxc.wxST_SIZEGRIP wxST_NO_AUTORESIZE = wxc.wxST_NO_AUTORESIZE wxBU_AUTODRAW = wxc.wxBU_AUTODRAW wxBU_NOAUTODRAW = wxc.wxBU_NOAUTODRAW -wxTR_HAS_BUTTONS = wxc.wxTR_HAS_BUTTONS -wxTR_EDIT_LABELS = wxc.wxTR_EDIT_LABELS -wxTR_LINES_AT_ROOT = wxc.wxTR_LINES_AT_ROOT -wxTR_MULTIPLE = wxc.wxTR_MULTIPLE -wxTR_SINGLE = wxc.wxTR_SINGLE -wxTR_HAS_VARIABLE_ROW_HEIGHT = wxc.wxTR_HAS_VARIABLE_ROW_HEIGHT wxSP_VERTICAL = wxc.wxSP_VERTICAL wxSP_HORIZONTAL = wxc.wxSP_HORIZONTAL wxSP_ARROW_KEYS = wxc.wxSP_ARROW_KEYS @@ -434,6 +433,26 @@ wxJOY_BUTTON3 = wxc.wxJOY_BUTTON3 wxJOY_BUTTON4 = wxc.wxJOY_BUTTON4 wxJOY_BUTTON_ANY = wxc.wxJOY_BUTTON_ANY wxWS_EX_VALIDATE_RECURSIVELY = wxc.wxWS_EX_VALIDATE_RECURSIVELY +wxWS_EX_BLOCK_EVENTS = wxc.wxWS_EX_BLOCK_EVENTS +wxWS_EX_TRANSIENT = wxc.wxWS_EX_TRANSIENT +wxMM_TEXT = wxc.wxMM_TEXT +wxMM_LOMETRIC = wxc.wxMM_LOMETRIC +wxMM_HIMETRIC = wxc.wxMM_HIMETRIC +wxMM_LOENGLISH = wxc.wxMM_LOENGLISH +wxMM_HIENGLISH = wxc.wxMM_HIENGLISH +wxMM_TWIPS = wxc.wxMM_TWIPS +wxMM_ISOTROPIC = wxc.wxMM_ISOTROPIC +wxMM_ANISOTROPIC = wxc.wxMM_ANISOTROPIC +wxMM_POINTS = wxc.wxMM_POINTS +wxMM_METRIC = wxc.wxMM_METRIC +wxBORDER_DEFAULT = wxc.wxBORDER_DEFAULT +wxBORDER_NONE = wxc.wxBORDER_NONE +wxBORDER_STATIC = wxc.wxBORDER_STATIC +wxBORDER_SIMPLE = wxc.wxBORDER_SIMPLE +wxBORDER_RAISED = wxc.wxBORDER_RAISED +wxBORDER_SUNKEN = wxc.wxBORDER_SUNKEN +wxBORDER_DOUBLE = wxc.wxBORDER_DOUBLE +wxBORDER_MASK = wxc.wxBORDER_MASK wxDEFAULT = wxc.wxDEFAULT wxDECORATIVE = wxc.wxDECORATIVE wxROMAN = wxc.wxROMAN @@ -497,6 +516,7 @@ WXK_CANCEL = wxc.WXK_CANCEL WXK_MBUTTON = wxc.WXK_MBUTTON WXK_CLEAR = wxc.WXK_CLEAR WXK_SHIFT = wxc.WXK_SHIFT +WXK_ALT = wxc.WXK_ALT WXK_CONTROL = wxc.WXK_CONTROL WXK_MENU = wxc.WXK_MENU WXK_PAUSE = wxc.WXK_PAUSE @@ -559,6 +579,33 @@ WXK_NUMLOCK = wxc.WXK_NUMLOCK WXK_SCROLL = wxc.WXK_SCROLL WXK_PAGEUP = wxc.WXK_PAGEUP WXK_PAGEDOWN = wxc.WXK_PAGEDOWN +WXK_NUMPAD_SPACE = wxc.WXK_NUMPAD_SPACE +WXK_NUMPAD_TAB = wxc.WXK_NUMPAD_TAB +WXK_NUMPAD_ENTER = wxc.WXK_NUMPAD_ENTER +WXK_NUMPAD_F1 = wxc.WXK_NUMPAD_F1 +WXK_NUMPAD_F2 = wxc.WXK_NUMPAD_F2 +WXK_NUMPAD_F3 = wxc.WXK_NUMPAD_F3 +WXK_NUMPAD_F4 = wxc.WXK_NUMPAD_F4 +WXK_NUMPAD_HOME = wxc.WXK_NUMPAD_HOME +WXK_NUMPAD_LEFT = wxc.WXK_NUMPAD_LEFT +WXK_NUMPAD_UP = wxc.WXK_NUMPAD_UP +WXK_NUMPAD_RIGHT = wxc.WXK_NUMPAD_RIGHT +WXK_NUMPAD_DOWN = wxc.WXK_NUMPAD_DOWN +WXK_NUMPAD_PRIOR = wxc.WXK_NUMPAD_PRIOR +WXK_NUMPAD_PAGEUP = wxc.WXK_NUMPAD_PAGEUP +WXK_NUMPAD_NEXT = wxc.WXK_NUMPAD_NEXT +WXK_NUMPAD_PAGEDOWN = wxc.WXK_NUMPAD_PAGEDOWN +WXK_NUMPAD_END = wxc.WXK_NUMPAD_END +WXK_NUMPAD_BEGIN = wxc.WXK_NUMPAD_BEGIN +WXK_NUMPAD_INSERT = wxc.WXK_NUMPAD_INSERT +WXK_NUMPAD_DELETE = wxc.WXK_NUMPAD_DELETE +WXK_NUMPAD_EQUAL = wxc.WXK_NUMPAD_EQUAL +WXK_NUMPAD_MULTIPLY = wxc.WXK_NUMPAD_MULTIPLY +WXK_NUMPAD_ADD = wxc.WXK_NUMPAD_ADD +WXK_NUMPAD_SEPARATOR = wxc.WXK_NUMPAD_SEPARATOR +WXK_NUMPAD_SUBTRACT = wxc.WXK_NUMPAD_SUBTRACT +WXK_NUMPAD_DECIMAL = wxc.WXK_NUMPAD_DECIMAL +WXK_NUMPAD_DIVIDE = wxc.WXK_NUMPAD_DIVIDE wxBITMAP_TYPE_INVALID = wxc.wxBITMAP_TYPE_INVALID wxBITMAP_TYPE_BMP = wxc.wxBITMAP_TYPE_BMP wxBITMAP_TYPE_BMP_RESOURCE = wxc.wxBITMAP_TYPE_BMP_RESOURCE @@ -705,6 +752,8 @@ wxEVT_COMMAND_CHECKLISTBOX_TOGGLED = wxc.wxEVT_COMMAND_CHECKLISTBOX_TOGGLED wxEVT_COMMAND_SPINCTRL_UPDATED = wxc.wxEVT_COMMAND_SPINCTRL_UPDATED wxEVT_COMMAND_TEXT_UPDATED = wxc.wxEVT_COMMAND_TEXT_UPDATED wxEVT_COMMAND_TEXT_ENTER = wxc.wxEVT_COMMAND_TEXT_ENTER +wxEVT_COMMAND_TEXT_URL = wxc.wxEVT_COMMAND_TEXT_URL +wxEVT_COMMAND_TEXT_MAXLEN = wxc.wxEVT_COMMAND_TEXT_MAXLEN wxEVT_COMMAND_MENU_SELECTED = wxc.wxEVT_COMMAND_MENU_SELECTED wxEVT_COMMAND_SLIDER_UPDATED = wxc.wxEVT_COMMAND_SLIDER_UPDATED wxEVT_COMMAND_RADIOBOX_SELECTED = wxc.wxEVT_COMMAND_RADIOBOX_SELECTED @@ -717,6 +766,7 @@ wxEVT_COMMAND_TOOL_RCLICKED = wxc.wxEVT_COMMAND_TOOL_RCLICKED wxEVT_COMMAND_TOOL_ENTER = wxc.wxEVT_COMMAND_TOOL_ENTER wxEVT_SET_FOCUS = wxc.wxEVT_SET_FOCUS wxEVT_KILL_FOCUS = wxc.wxEVT_KILL_FOCUS +wxEVT_CHILD_FOCUS = wxc.wxEVT_CHILD_FOCUS wxEVT_MOUSEWHEEL = wxc.wxEVT_MOUSEWHEEL wxEVT_LEFT_DOWN = wxc.wxEVT_LEFT_DOWN wxEVT_LEFT_UP = wxc.wxEVT_LEFT_UP @@ -784,7 +834,6 @@ wxEVT_MENU_CHAR = wxc.wxEVT_MENU_CHAR wxEVT_MENU_INIT = wxc.wxEVT_MENU_INIT wxEVT_MENU_HIGHLIGHT = wxc.wxEVT_MENU_HIGHLIGHT wxEVT_POPUP_MENU_INIT = wxc.wxEVT_POPUP_MENU_INIT -wxEVT_CONTEXT_MENU = wxc.wxEVT_CONTEXT_MENU wxEVT_SYS_COLOUR_CHANGED = wxc.wxEVT_SYS_COLOUR_CHANGED wxEVT_SETTING_CHANGED = wxc.wxEVT_SETTING_CHANGED wxEVT_QUERY_NEW_PALETTE = wxc.wxEVT_QUERY_NEW_PALETTE @@ -798,8 +847,6 @@ wxEVT_DRAW_ITEM = wxc.wxEVT_DRAW_ITEM wxEVT_MEASURE_ITEM = wxc.wxEVT_MEASURE_ITEM wxEVT_COMPARE_ITEM = wxc.wxEVT_COMPARE_ITEM wxEVT_INIT_DIALOG = wxc.wxEVT_INIT_DIALOG -wxEVT_HELP = wxc.wxEVT_HELP -wxEVT_DETAILED_HELP = wxc.wxEVT_DETAILED_HELP wxEVT_IDLE = wxc.wxEVT_IDLE wxEVT_UPDATE_UI = wxc.wxEVT_UPDATE_UI wxEVT_COMMAND_LEFT_CLICK = wxc.wxEVT_COMMAND_LEFT_CLICK @@ -827,7 +874,6 @@ wxDefaultSize = wxSizePtr(wxc.cvar.wxDefaultSize) # Author: Robin Dunn # # Created: 6/30/97 -# RCS-ID: $Id$ # Copyright: (c) 1998 by Total Control Software # Licence: wxWindows license #---------------------------------------------------------------------------- @@ -896,6 +942,9 @@ def EVT_SET_FOCUS(win, func): def EVT_KILL_FOCUS(win, func): win.Connect(-1, -1, wxEVT_KILL_FOCUS, func) +def EVT_CHILD_FOCUS(win, func): + win.Connect(-1, -1, wxEVT_CHILD_FOCUS, func) + def EVT_ACTIVATE(win, func): win.Connect(-1, -1, wxEVT_ACTIVATE, func) @@ -1183,6 +1232,12 @@ def EVT_TEXT(win, id, func): def EVT_TEXT_ENTER(win, id, func): win.Connect(id, -1, wxEVT_COMMAND_TEXT_ENTER, func) +def EVT_TEXT_URL(win, id, func): + win.Connect(id, -1, wxEVT_COMMAND_TEXT_URL, func) + +def EVT_TEXT_MAXLEN(win, id, func): + win.Connect(id, -1, wxEVT_COMMAND_TEXT_MAXLEN, func) + def EVT_MENU(win, id, func): win.Connect(id, -1, wxEVT_COMMAND_MENU_SELECTED, func) @@ -1259,62 +1314,6 @@ def EVT_NOTEBOOK_PAGE_CHANGING(win, id, func): win.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, func) -# wxTreeCtrl events -def EVT_TREE_BEGIN_DRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_DRAG, func) - -def EVT_TREE_BEGIN_RDRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_RDRAG, func) - -def EVT_TREE_END_DRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_END_DRAG, func) - -def EVT_TREE_BEGIN_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, func) - -def EVT_TREE_END_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_END_LABEL_EDIT, func) - -def EVT_TREE_GET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_GET_INFO, func) - -def EVT_TREE_SET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SET_INFO, func) - -def EVT_TREE_ITEM_EXPANDED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDED, func) - -def EVT_TREE_ITEM_EXPANDING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDING, func) - -def EVT_TREE_ITEM_COLLAPSED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSED, func) - -def EVT_TREE_ITEM_COLLAPSING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSING, func) - -def EVT_TREE_SEL_CHANGED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGED, func) - -def EVT_TREE_SEL_CHANGING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGING, func) - -def EVT_TREE_KEY_DOWN(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_KEY_DOWN, func) - -def EVT_TREE_DELETE_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_DELETE_ITEM, func) - -def EVT_TREE_ITEM_ACTIVATED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_ACTIVATED, func) - -def EVT_TREE_ITEM_RIGHT_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, func) - -def EVT_TREE_ITEM_MIDDLE_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, func) - - # wxSpinButton def EVT_SPIN_UP(win, id, func): win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) @@ -1326,8 +1325,6 @@ def EVT_SPIN(win, id, func): win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK,func) - - # wxTaskBarIcon def EVT_TASKBAR_MOVE(win, func): win.Connect(-1, -1, wxEVT_TASKBAR_MOVE, func) @@ -1365,58 +1362,6 @@ def EVT_CALCULATE_LAYOUT(win, func): win.Connect(-1, -1, wxEVT_EVT_CALCULATE_LAYOUT, func) -# wxListCtrl -def EVT_LIST_BEGIN_DRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_DRAG, func) - -def EVT_LIST_BEGIN_RDRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_RDRAG, func) - -def EVT_LIST_BEGIN_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, func) - -def EVT_LIST_END_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_END_LABEL_EDIT, func) - -def EVT_LIST_DELETE_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_DELETE_ITEM, func) - -def EVT_LIST_DELETE_ALL_ITEMS(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, func) - -def EVT_LIST_GET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_GET_INFO, func) - -def EVT_LIST_SET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_SET_INFO, func) - -def EVT_LIST_ITEM_SELECTED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_SELECTED, func) - -def EVT_LIST_ITEM_DESELECTED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_DESELECTED, func) - -def EVT_LIST_KEY_DOWN(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_KEY_DOWN, func) - -def EVT_LIST_INSERT_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_INSERT_ITEM, func) - -def EVT_LIST_COL_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_CLICK, func) - -def EVT_LIST_ITEM_RIGHT_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, func) - -def EVT_LIST_ITEM_MIDDLE_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK, func) - -def EVT_LIST_ITEM_ACTIVATED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_ACTIVATED, func) - - - - #wxSplitterWindow def EVT_SPLITTER_SASH_POS_CHANGING(win, id, func): win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, func) @@ -1464,6 +1409,24 @@ def EVT_TOGGLEBUTTON(win, id, func): win.Connect(id, -1, wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, func) + +# Help events +def EVT_HELP(win, id, func): + win.Connect(id, -1, wxEVT_HELP, func) + +def EVT_HELP_RANGE(win, id, id2, func): + win.Connect(id, id2, wxEVT_HELP, func) + +def EVT_DETAILED_HELP(win, id, func): + win.Connect(id, -1, wxEVT_DETAILED_HELP, func) + +def EVT_DETAILED_HELP_RANGE(win, id, id2, func): + win.Connect(id, id2, wxEVT_DETAILED_HELP, func) + +def EVT_CONTEXT_MENU(win, func): + win.Connect(-1, -1, wxEVT_CONTEXT_MENU, func) + + #---------------------------------------------------------------------- class wxTimer(wxPyTimer): @@ -1486,13 +1449,37 @@ NULL = None # For backwards compatibility only. You should really be wxColor = wxColour wxNamedColor = wxNamedColour - +wxPen = wxPyPen # backwards compatibility wxNoRefBitmap = wxBitmap wxPyDefaultPosition = wxDefaultPosition wxPyDefaultSize = wxDefaultSize + +#---------------------------------------------------------------------- +# wxGTK sets the locale when initialized. Doing this at the Python +# level should set it up to match what GTK is doing at the C level. +try: + import locale + locale.setlocale(locale.LC_ALL, "") +except: + pass + + + +#---------------------------------------------------------------------- +# wxWindows version numbers. wxPython version is in __version__. + +wxMAJOR_VERSION = wxc.wxMAJOR_VERSION +wxMINOR_VERSION = wxc.wxMINOR_VERSION +wxRELEASE_NUMBER = wxc.wxRELEASE_NUMBER +wxVERSION_STRING = wxc.wxVERSION_STRING +wxVERSION_NUMBER = wxc.wxVERSION_NUMBER + +wxVERSION = (wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) + + #---------------------------------------------------------------------- # This helper function will take a wxPython object and convert it to # another wxPython object type. This will not be able to create objects @@ -1520,7 +1507,8 @@ def wxPyTypeCast(obj, typeStr): theClass = globals()[typeStr+"Ptr"] typeStr = __wxPyPtrTypeMap.get(typeStr, typeStr) if hasattr(obj, "this"): - if obj.__class__ is theClass: # if already the right type then just return it + # if already the right type then just return it + if isinstance(obj, theClass) or obj.__class__ is theClass: return obj newPtr = ptrcast(obj.this, typeStr+"_p") else: