def _wx_two_step_creation_on_classic(cls):
cls_init = cls.__init__<EOL>cls_create = cls.Create<EOL>@functools.wraps(cls_init)<EOL>def __init__(self, *args, **kwargs):<EOL><INDENT>if args or kwargs:<EOL><INDENT>cls_init(self, *args, **kwargs)<EOL><DEDENT>else: <EOL><INDENT>new_self = getattr(wx, "<STR_LIT>" + cls.__name__)()<EOL>for pair in vars(new_self).items():<EOL><INDENT>setattr(self, *pair)<EOL><DEDENT><DEDENT><DEDENT>if sys.platform == "<STR_LIT:win32>":<EOL><INDENT>@functools.wraps(cls_create)<EOL>def create(self, *args, **kwargs):<EOL><INDENT>self.SetEvtHandlerEnabled(False)<EOL>result = cls_create(self, *args, **kwargs)<EOL>self.SetEvtHandlerEnabled(True)<EOL>if result:<EOL><INDENT>self.PostCreate(self)<EOL>wx.PostEvent(self, wx.WindowCreateEvent(self))<EOL><DEDENT>return result<EOL><DEDENT><DEDENT>else:<EOL><INDENT>@functools.wraps(cls_create)<EOL>def create(self, *args, **kwargs):<EOL><INDENT>result = cls_create(self, *args, **kwargs)<EOL>if result:<EOL><INDENT>self.PostCreate(self)<EOL><DEDENT>return result<EOL><DEDENT><DEDENT>cls.__init__ = __init__<EOL>cls.Create = create<EOL>
Patch the wxPython Classic class to behave like a wxPython
Phoenix class on a 2-step creation process.

On wxPython Phoenix, the first step is the parameterless
``__init__``, and the second step is the ``Create`` method with
the construction parameters, e.g.::

    class CustomFrame(wx.Frame):
        def __init__(self, parent):
            super(CustomFrame, self).__init__() # 1st step
            # [...]
            self.Create(parent) # 2nd step
            # [...]

On wxPython Classic, the same would be written as::

    class CustomFrame(wx.Frame):
        def __init__(self, parent):
            pre = wx.PreFrame() # 1st step
            # [... using "pre" instead of "self" ...]
            pre.Create(parent) # 2nd step
            self.PostCreate(pre) # "3rd step"
            # [...]