Added a new "wx" package that will dynamically import from the

wxPython package and rename wxFooBar --> FooBar.  That means that
people imports without "import *" and can use names like wx.Frame
instead of wx.wxFrame.  This is phase 1 of a full transition to the
new namespace.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19975 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2003-04-04 17:51:27 +00:00
parent d38b3b9620
commit 915f4a09b5
78 changed files with 2147 additions and 0 deletions

41
wxPython/wx/__init__.py Normal file
View File

@@ -0,0 +1,41 @@
"""wx package
Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
import types
d_new = globals()
d_old = wx.__dict__
for old, obj in d_old.iteritems():
if type(obj) is types.ModuleType or old.startswith('_'):
# Skip modules and private names.
continue
new = old
if old.startswith('EVT_'):
# Leave name unmodified; add to the new wx namespace.
d_new[new] = obj
elif old.startswith('wxEVT_'):
# Leave name unmodified; add to the new wx namespace.
d_new[new] = obj
else:
if old.startswith('wx'):
# Remove the 'wx' prefix.
new = old[2:]
# Add to the new wx package namespace.
d_new[new] = obj
del d_new
del d_old
del new
del obj
del old
del types
del wx

15
wxPython/wx/calendar.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import calendar
prefix.rename(d_new=globals(), d_old=calendar.__dict__)
del calendar
del prefix
del wx

208
wxPython/wx/default.css Normal file
View File

@@ -0,0 +1,208 @@
/*
:Author: David Goodger
:Contact: goodger@users.sourceforge.net
:date: $Date$
:version: $Revision$
:copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
*/
.first {
margin-top: 0 }
.last {
margin-bottom: 0 }
a.toc-backref {
text-decoration: none ;
color: black }
dd {
margin-bottom: 0.5em }
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.attention, div.caution, div.danger, div.error, div.hint,
div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title {
color: red ;
font-weight: bold ;
font-family: sans-serif }
div.hint p.admonition-title, div.important p.admonition-title,
div.note p.admonition-title, div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em }
div.footer, div.header {
font-size: smaller }
div.sidebar {
margin-left: 1em ;
border: medium outset ;
padding: 0em 1em ;
background-color: #ffffee ;
width: 40% ;
float: right }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr {
width: 75% }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font-family: serif ;
font-size: 100% }
pre.line-block {
font-family: serif ;
font-size: 100% }
pre.literal-block, pre.doctest-block {
margin-left: 2em ;
margin-right: 2em ;
background-color: #eeeeee }
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.option-argument {
font-style: italic }
span.pre {
white-space: pre }
span.problematic {
color: red }
table {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.citation {
border-left: solid thin gray ;
padding-left: 0.5ex }
table.docinfo {
margin: 2em 4em }
table.footnote {
border-left: solid thin black ;
padding-left: 0.5ex }
td, th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
th.docinfo-name, th.field-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap }
h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
font-size: 100% }
tt {
background-color: #eeeeee }
ul.auto-toc {
list-style-type: none }

View File

@@ -0,0 +1 @@
# Python package.

View File

@@ -0,0 +1 @@
# Python package.

View File

@@ -0,0 +1,27 @@
#!/usr/bin/env python
"""Basic application class."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from frame import Frame
class App(wx.App):
"""Application class."""
def OnInit(self):
self.frame = Frame()
self.frame.Show()
self.SetTopWindow(self.frame)
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,33 @@
#!/usr/bin/env python
"""Basic frame class, with App for testing."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
class Frame(wx.Frame):
"""Frame class."""
def __init__(self, parent=None, id=-1, title='Title',
pos=wx.DefaultPosition, size=(400, 200)):
"""Create a Frame instance."""
wx.Frame.__init__(self, parent, id, title, pos, size)
class App(wx.App):
"""Application class."""
def OnInit(self):
self.frame = Frame()
self.frame.Show()
self.SetTopWindow(self.frame)
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,208 @@
/*
:Author: David Goodger
:Contact: goodger@users.sourceforge.net
:date: $Date$
:version: $Revision$
:copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
*/
.first {
margin-top: 0 }
.last {
margin-bottom: 0 }
a.toc-backref {
text-decoration: none ;
color: black }
dd {
margin-bottom: 0.5em }
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.attention, div.caution, div.danger, div.error, div.hint,
div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title {
color: red ;
font-weight: bold ;
font-family: sans-serif }
div.hint p.admonition-title, div.important p.admonition-title,
div.note p.admonition-title, div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em }
div.footer, div.header {
font-size: smaller }
div.sidebar {
margin-left: 1em ;
border: medium outset ;
padding: 0em 1em ;
background-color: #ffffee ;
width: 40% ;
float: right }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr {
width: 75% }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font-family: serif ;
font-size: 100% }
pre.line-block {
font-family: serif ;
font-size: 100% }
pre.literal-block, pre.doctest-block {
margin-left: 2em ;
margin-right: 2em ;
background-color: #eeeeee }
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.option-argument {
font-style: italic }
span.pre {
white-space: pre }
span.problematic {
color: red }
table {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.citation {
border-left: solid thin gray ;
padding-left: 0.5ex }
table.docinfo {
margin: 2em 4em }
table.footnote {
border-left: solid thin black ;
padding-left: 0.5ex }
td, th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
th.docinfo-name, th.field-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap }
h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
font-size: 100% }
tt {
background-color: #eeeeee }
ul.auto-toc {
list-style-type: none }

View File

@@ -0,0 +1,207 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.2.8: http://docutils.sourceforge.net/" />
<title>Example Programs Using wxPython</title>
<meta name="author" content="Patrick K. O'Brien" />
<meta name="date" content="2003-03-21" />
<link rel="stylesheet" href="default.css" type="text/css" />
</head>
<body>
<div class="document" id="example-programs-using-wxpython">
<h1 class="title">Example Programs Using wxPython</h1>
<h2 class="subtitle" id="a-survival-guide-for-the-post-wx-prefixed-world">A survival guide for the post-wx-prefixed world.</h2>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Patrick K. O'Brien</td></tr>
<tr><th class="docinfo-name">Contact:</th>
<td><a class="first last reference" href="mailto:pobrien&#64;orbtech.com">pobrien&#64;orbtech.com</a></td></tr>
<tr><th class="docinfo-name">Date:</th>
<td>2003-03-21</td></tr>
<tr><th class="docinfo-name">Revision:</th>
<td>1.1</td></tr>
</tbody>
</table>
<div class="contents topic" id="contents">
<p class="topic-title"><a name="contents">Contents</a></p>
<ul class="simple">
<li><a class="reference" href="#introduction" id="id1" name="id1">Introduction</a></li>
<li><a class="reference" href="#basic" id="id2" name="id2">Basic</a></li>
<li><a class="reference" href="#hello" id="id3" name="id3">Hello</a></li>
</ul>
</div>
<div class="section" id="introduction">
<h1><a class="toc-backref" href="#id1" name="introduction">Introduction</a></h1>
<p>If something hits you on the head, don't run around screaming that the
sky is falling. Instead, take a close look and see if it wasn't a
&quot;wx&quot; prefix that hit you. Apparently, they're dropping off wxPython
class names like flies dropping dead in the scorching heat of a
summer's day.</p>
<p>Yes, the world is changing, and even our little wxPython world must
change with it. Then again, I'm not fond of pesky summertime flies,
and I'm not too upset that the &quot;wx&quot; prefixes are going to bite the
dust. I think it's for the best. But, being the kind, considerate
person that I am, I decided to write this guide to make the wx
namespace transition easier for everyone, even Chicken Little.</p>
<div class="sidebar">
<p class="sidebar-title">Say what?</p>
<p>If you have no idea what I mean by the &quot;wx namespace transition,&quot;
consider yourself lucky. You can simply use these examples to
learn wxPython in its current state. All you need to know is that
previous wxPython code used a slightly different syntax that some
folks (including me) considered ugly. So we changed it. And
that's when the sky starting falling...</p>
</div>
<p>Rather than simply <strong>tell</strong> you that everything will be okay, I
decided to <strong>show</strong> you that everything will be okay. To do that,
I've created a bunch of example programs using the new wx package. I
hope you like them.</p>
</div>
<div class="section" id="basic">
<h1><a class="toc-backref" href="#id2" name="basic">Basic</a></h1>
<p>It doesn't get much simpler than this. Every wxPython program needs
an application and a frame. To encourage good coding habits, I've
split them into separate modules. They don't do much, but they're a
good starting point.</p>
<p>I include a simple App class in the frame module because the PyCrust
&quot;wrapper&quot; utility (<tt class="literal"><span class="pre">wrap.py</span></tt>) only works with modules that contain
an application class. So including a simple one in each of your frame
modules allows you to use the PyCrust runtime wrapper and debug your
frames independent of your full application.</p>
<p>Here is the module (<tt class="literal"><span class="pre">frame.py</span></tt>) that defines the frame class:</p>
<pre class="literal-block">
#!/usr/bin/env python
&quot;&quot;&quot;Basic frame class, with App for testing.&quot;&quot;&quot;
__author__ = &quot;Patrick K. O'Brien &lt;pobrien&#64;orbtech.com&gt;&quot;
__cvsid__ = &quot;$Id$&quot;
__revision__ = &quot;$Revision$&quot;[11:-2]
import wx
class Frame(wx.Frame):
&quot;&quot;&quot;Frame class.&quot;&quot;&quot;
def __init__(self, parent=None, id=-1, title='Title',
pos=wx.DefaultPosition, size=(400, 200)):
&quot;&quot;&quot;Create a Frame instance.&quot;&quot;&quot;
wx.Frame.__init__(self, parent, id, title, pos, size)
class App(wx.App):
&quot;&quot;&quot;Application class.&quot;&quot;&quot;
def OnInit(self):
self.frame = Frame()
self.frame.Show()
self.SetTopWindow(self.frame)
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()
</pre>
<p>And here is the module (<tt class="literal"><span class="pre">app.py</span></tt>) that defines the application class
and imports the frame from <tt class="literal"><span class="pre">frame.py</span></tt>:</p>
<pre class="literal-block">
#!/usr/bin/env python
&quot;&quot;&quot;Basic application class.&quot;&quot;&quot;
__author__ = &quot;Patrick K. O'Brien &lt;pobrien&#64;orbtech.com&gt;&quot;
__cvsid__ = &quot;$Id$&quot;
__revision__ = &quot;$Revision$&quot;[11:-2]
import wx
from frame import Frame
class App(wx.App):
&quot;&quot;&quot;Application class.&quot;&quot;&quot;
def OnInit(self):
self.frame = Frame()
self.frame.Show()
self.SetTopWindow(self.frame)
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()
</pre>
</div>
<div class="section" id="hello">
<h1><a class="toc-backref" href="#id3" name="hello">Hello</a></h1>
<p>This program displays an image file (<tt class="literal"><span class="pre">wxPython.jpg</span></tt>) inside a frame
sized to match the graphic.</p>
<div class="figure">
<p><img alt="screenshots/hello-win98.png" scale="100" src="screenshots/hello-win98.png" /></p>
<p class="caption">Running <tt class="literal"><span class="pre">hello.py</span></tt> on Windows.</p>
</div>
<div class="figure">
<p><img alt="screenshots/hello-linux.png" scale="100" src="screenshots/hello-linux.png" /></p>
<p class="caption">Running <tt class="literal"><span class="pre">hello.py</span></tt> on Linux.</p>
</div>
<div class="figure">
<p><img alt="screenshots/hello-mac.png" scale="100" src="screenshots/hello-mac.png" /></p>
<p class="caption">Running <tt class="literal"><span class="pre">hello.py</span></tt> on Mac OS X.</p>
</div>
<p>Here is the source code for <tt class="literal"><span class="pre">hello.py</span></tt>:</p>
<pre class="literal-block">
#!/usr/bin/env python
&quot;&quot;&quot;Hello, wxPython! program.&quot;&quot;&quot;
__author__ = &quot;Patrick K. O'Brien &lt;pobrien&#64;orbtech.com&gt;&quot;
__cvsid__ = &quot;$Id$&quot;
__revision__ = &quot;$Revision$&quot;[11:-2]
import wx
class Frame(wx.Frame):
&quot;&quot;&quot;Frame class that displays an image.&quot;&quot;&quot;
def __init__(self, image, parent=None, id=-1,
pos=wx.DefaultPosition, title='Hello, wxPython!'):
&quot;&quot;&quot;Create a Frame instance and display image.&quot;&quot;&quot;
temp = image.ConvertToBitmap()
size = temp.GetWidth(), temp.GetHeight()
wx.Frame.__init__(self, parent, id, title, pos, size)
self.bmp = wx.StaticBitmap(parent=self, id=-1, bitmap=temp)
class App(wx.App):
&quot;&quot;&quot;Application class.&quot;&quot;&quot;
def OnInit(self):
wx.InitAllImageHandlers()
image = wx.Image('wxPython.jpg', wx.BITMAP_TYPE_JPEG)
self.frame = Frame(image)
self.frame.Show()
self.SetTopWindow(self.frame)
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()
</pre>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,99 @@
=================================
Example Programs Using wxPython
=================================
--------------------------------------------------
A survival guide for the post-wx-prefixed world.
--------------------------------------------------
:Author: Patrick K. O'Brien
:Contact: pobrien@orbtech.com
:Date: $Date$
:Revision: $Revision$
.. contents::
Introduction
============
If something hits you on the head, don't run around screaming that the
sky is falling. Instead, take a close look and see if it wasn't a
"wx" prefix that hit you. Apparently, they're dropping off wxPython
class names like flies dropping dead in the scorching heat of a
summer's day.
Yes, the world is changing, and even our little wxPython world must
change with it. Then again, I'm not fond of pesky summertime flies,
and I'm not too upset that the "wx" prefixes are going to bite the
dust. I think it's for the best. But, being the kind, considerate
person that I am, I decided to write this guide to make the wx
namespace transition easier for everyone, even Chicken Little.
.. sidebar:: Say what?
If you have no idea what I mean by the "wx namespace transition,"
consider yourself lucky. You can simply use these examples to
learn wxPython in its current state. All you need to know is that
previous wxPython code used a slightly different syntax that some
folks (including me) considered ugly. So we changed it. And
that's when the sky starting falling...
Rather than simply **tell** you that everything will be okay, I
decided to **show** you that everything will be okay. To do that,
I've created a bunch of example programs using the new wx package. I
hope you like them.
Basic
=====
It doesn't get much simpler than this. Every wxPython program needs
an application and a frame. To encourage good coding habits, I've
split them into separate modules. They don't do much, but they're a
good starting point.
I include a simple App class in the frame module because the PyCrust
"wrapper" utility (``wrap.py``) only works with modules that contain
an application class. So including a simple one in each of your frame
modules allows you to use the PyCrust runtime wrapper and debug your
frames independent of your full application.
Here is the module (``frame.py``) that defines the frame class:
.. include:: basic/frame.py
:literal:
And here is the module (``app.py``) that defines the application class
and imports the frame from ``frame.py``:
.. include:: basic/app.py
:literal:
Hello
=====
This program displays an image file (``wxPython.jpg``) inside a frame
sized to match the graphic.
.. figure:: screenshots/hello-win98.png
:scale: 100
Running ``hello.py`` on Windows.
.. figure:: screenshots/hello-linux.png
:scale: 100
Running ``hello.py`` on Linux.
.. figure:: screenshots/hello-mac.png
:scale: 100
Running ``hello.py`` on Mac OS X.
Here is the source code for ``hello.py``:
.. include:: hello/hello.py
:literal:

View File

@@ -0,0 +1 @@
# Python package.

View File

@@ -0,0 +1,38 @@
#!/usr/bin/env python
"""Hello, wxPython! program."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
class Frame(wx.Frame):
"""Frame class that displays an image."""
def __init__(self, image, parent=None, id=-1,
pos=wx.DefaultPosition, title='Hello, wxPython!'):
"""Create a Frame instance and display image."""
temp = image.ConvertToBitmap()
size = temp.GetWidth(), temp.GetHeight()
wx.Frame.__init__(self, parent, id, title, pos, size)
self.bmp = wx.StaticBitmap(parent=self, id=-1, bitmap=temp)
class App(wx.App):
"""Application class."""
def OnInit(self):
wx.InitAllImageHandlers()
image = wx.Image('wxPython.jpg', wx.BITMAP_TYPE_JPEG)
self.frame = Frame(image)
self.frame.Show()
self.SetTopWindow(self.frame)
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

15
wxPython/wx/gizmos.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import gizmos
prefix.rename(d_new=globals(), d_old=gizmos.__dict__)
del gizmos
del prefix
del wx

15
wxPython/wx/glcanvas.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import glcanvas
prefix.rename(d_new=globals(), d_old=glcanvas.__dict__)
del glcanvas
del prefix
del wx

15
wxPython/wx/grid.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import grid
prefix.rename(d_new=globals(), d_old=grid.__dict__)
del grid
del prefix
del wx

15
wxPython/wx/help.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import help
prefix.rename(d_new=globals(), d_old=help.__dict__)
del help
del prefix
del wx

15
wxPython/wx/html.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import html
prefix.rename(d_new=globals(), d_old=html.__dict__)
del html
del prefix
del wx

15
wxPython/wx/htmlhelp.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import htmlhelp
prefix.rename(d_new=globals(), d_old=htmlhelp.__dict__)
del htmlhelp
del prefix
del wx

15
wxPython/wx/iewin.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import iewin
prefix.rename(d_new=globals(), d_old=iewin.__dict__)
del iewin
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import ClickableHtmlWindow
prefix.rename(d_new=globals(), d_old=ClickableHtmlWindow.__dict__)
del ClickableHtmlWindow
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import ErrorDialogs
prefix.rename(d_new=globals(), d_old=ErrorDialogs.__dict__)
del ErrorDialogs
del prefix
del wx

View File

@@ -0,0 +1 @@
# Python package.

View File

@@ -0,0 +1 @@
# Python package.

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import activexwrapper
prefix.rename(d_new=globals(), d_old=activexwrapper.__dict__)
del activexwrapper
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import anchors
prefix.rename(d_new=globals(), d_old=anchors.__dict__)
del anchors
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import buttons
prefix.rename(d_new=globals(), d_old=buttons.__dict__)
del buttons
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import calendar
prefix.rename(d_new=globals(), d_old=calendar.__dict__)
del calendar
del prefix
del wx

View File

@@ -0,0 +1 @@
# Python package.

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.colourchooser import canvas
prefix.rename(d_new=globals(), d_old=canvas.__dict__)
del canvas
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.colourchooser import intl
prefix.rename(d_new=globals(), d_old=intl.__dict__)
del intl
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.colourchooser import pycolourbox
prefix.rename(d_new=globals(), d_old=pycolourbox.__dict__)
del pycolourbox
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.colourchooser import pycolourchooser
prefix.rename(d_new=globals(), d_old=pycolourchooser.__dict__)
del pycolourchooser
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.colourchooser import pycolourslider
prefix.rename(d_new=globals(), d_old=pycolourslider.__dict__)
del pycolourslider
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.colourchooser import pypalette
prefix.rename(d_new=globals(), d_old=pypalette.__dict__)
del pypalette
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import colourdb
prefix.rename(d_new=globals(), d_old=colourdb.__dict__)
del colourdb
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import colourselect
prefix.rename(d_new=globals(), d_old=colourselect.__dict__)
del colourselect
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import dialogs
prefix.rename(d_new=globals(), d_old=dialogs.__dict__)
del dialogs
del prefix
del wx

View File

@@ -0,0 +1 @@
# Python package.

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.editor import editor
prefix.rename(d_new=globals(), d_old=editor.__dict__)
del editor
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.editor import images
prefix.rename(d_new=globals(), d_old=images.__dict__)
del images
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.editor import selection
prefix.rename(d_new=globals(), d_old=selection.__dict__)
del selection
del prefix
del wx

15
wxPython/wx/lib/evtmgr.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import evtmgr
prefix.rename(d_new=globals(), d_old=evtmgr.__dict__)
del evtmgr
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import fancytext
prefix.rename(d_new=globals(), d_old=fancytext.__dict__)
del fancytext
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import filebrowsebutton
prefix.rename(d_new=globals(), d_old=filebrowsebutton.__dict__)
del filebrowsebutton
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import gridmovers
prefix.rename(d_new=globals(), d_old=gridmovers.__dict__)
del gridmovers
del prefix
del wx

15
wxPython/wx/lib/grids.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import grids
prefix.rename(d_new=globals(), d_old=grids.__dict__)
del grids
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import imagebrowser
prefix.rename(d_new=globals(), d_old=imagebrowser.__dict__)
del imagebrowser
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import imageutils
prefix.rename(d_new=globals(), d_old=imageutils.__dict__)
del imageutils
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import infoframe
prefix.rename(d_new=globals(), d_old=infoframe.__dict__)
del infoframe
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import intctrl
prefix.rename(d_new=globals(), d_old=intctrl.__dict__)
del intctrl
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import layoutf
prefix.rename(d_new=globals(), d_old=layoutf.__dict__)
del layoutf
del prefix
del wx

View File

@@ -0,0 +1 @@
# Python package.

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.mixins import grid
prefix.rename(d_new=globals(), d_old=grid.__dict__)
del grid
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.mixins import imagelist
prefix.rename(d_new=globals(), d_old=imagelist.__dict__)
del imagelist
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.mixins import listctrl
prefix.rename(d_new=globals(), d_old=listctrl.__dict__)
del listctrl
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib.mixins import rubberband
prefix.rename(d_new=globals(), d_old=rubberband.__dict__)
del rubberband
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import multisash
prefix.rename(d_new=globals(), d_old=multisash.__dict__)
del multisash
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import popupctl
prefix.rename(d_new=globals(), d_old=popupctl.__dict__)
del popupctl
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import printout
prefix.rename(d_new=globals(), d_old=printout.__dict__)
del printout
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import rcsizer
prefix.rename(d_new=globals(), d_old=rcsizer.__dict__)
del rcsizer
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import rightalign
prefix.rename(d_new=globals(), d_old=rightalign.__dict__)
del rightalign
del prefix
del wx

15
wxPython/wx/lib/sheet.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import sheet
prefix.rename(d_new=globals(), d_old=sheet.__dict__)
del sheet
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import stattext
prefix.rename(d_new=globals(), d_old=stattext.__dict__)
del stattext
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import throbber
prefix.rename(d_new=globals(), d_old=throbber.__dict__)
del throbber
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import timectrl
prefix.rename(d_new=globals(), d_old=timectrl.__dict__)
del timectrl
del prefix
del wx

View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import wxPlotCanvas
prefix.rename(d_new=globals(), d_old=wxPlotCanvas.__dict__)
del wxPlotCanvas
del prefix
del wx

15
wxPython/wx/lib/wxpTag.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython.lib import wxpTag
prefix.rename(d_new=globals(), d_old=wxpTag.__dict__)
del wxpTag
del prefix
del wx

15
wxPython/wx/ogl.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import ogl
prefix.rename(d_new=globals(), d_old=ogl.__dict__)
del ogl
del prefix
del wx

28
wxPython/wx/prefix.py Normal file
View File

@@ -0,0 +1,28 @@
"""Renaming utility.
Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import types
def rename(d_new, d_old):
for old, obj in d_old.iteritems():
if type(obj) is types.ModuleType or old.startswith('_'):
# Skip modules and private names.
continue
## mod = d_old['__name__']
## if hasattr(obj, '__module__') and not obj.__module__.startswith(mod):
## # Skip objects imported from other modules, except those
## # related to the current module, such as stc_.
## continue
new = old
if old.startswith('EVT_') or old.startswith('wxEVT_'):
# Leave these names unmodified.
pass
elif old.startswith('wx'):
new = old[2:]
if new:
d_new[new] = d_old[old]

15
wxPython/wx/stc.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import stc
prefix.rename(d_new=globals(), d_old=stc.__dict__)
del stc
del prefix
del wx

15
wxPython/wx/wizard.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import wizard
prefix.rename(d_new=globals(), d_old=wizard.__dict__)
del wizard
del prefix
del wx

285
wxPython/wx/wx.html Normal file
View File

@@ -0,0 +1,285 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.2.8: http://docutils.sourceforge.net/" />
<title>The wxPython wx Package</title>
<meta name="author" content="Patrick K. O'Brien" />
<meta name="date" content="2003-03-21" />
<link rel="stylesheet" href="default.css" type="text/css" />
</head>
<body>
<div class="document" id="the-wxpython-wx-package">
<h1 class="title">The wxPython wx Package</h1>
<h2 class="subtitle" id="how-to-survive-the-new-wx-namespace-changes">How to survive the new wx namespace changes.</h2>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Patrick K. O'Brien</td></tr>
<tr><th class="docinfo-name">Contact:</th>
<td><a class="first last reference" href="mailto:pobrien&#64;orbtech.com">pobrien&#64;orbtech.com</a></td></tr>
<tr><th class="docinfo-name">Date:</th>
<td>2003-03-21</td></tr>
<tr><th class="docinfo-name">Revision:</th>
<td>1.1</td></tr>
</tbody>
</table>
<div class="contents topic" id="contents">
<p class="topic-title"><a name="contents">Contents</a></p>
<ul class="simple">
<li><a class="reference" href="#introduction" id="id1" name="id1">Introduction</a></li>
<li><a class="reference" href="#why-change-anything" id="id2" name="id2">Why change anything?</a></li>
<li><a class="reference" href="#what-does-the-new-wx-package-do" id="id3" name="id3">What does the new wx package do?</a></li>
<li><a class="reference" href="#will-any-of-this-effect-my-existing-code" id="id4" name="id4">Will any of this effect my existing code?</a></li>
<li><a class="reference" href="#how-does-the-new-wx-package-work" id="id5" name="id5">How does the new wx package work?</a></li>
<li><a class="reference" href="#what-about-all-the-other-modules-like-grid-html-and-stc" id="id6" name="id6">What about all the other modules, like grid, html, and stc?</a></li>
<li><a class="reference" href="#how-do-i-use-it" id="id7" name="id7">How do I use it?</a></li>
</ul>
</div>
<div class="section" id="introduction">
<h1><a class="toc-backref" href="#id1" name="introduction">Introduction</a></h1>
<p>Big things sometimes come in small packages. This is certainly true
of the new wx package, which is being introduced as a transition to
allow the &quot;wx&quot; prefix to be dropped from the names of all wxPython
classes, functions, and constants.</p>
</div>
<div class="section" id="why-change-anything">
<h1><a class="toc-backref" href="#id2" name="why-change-anything">Why change anything?</a></h1>
<p>This change is being made for a couple of reasons. The first reason
is to discourage the use of <tt class="literal"><span class="pre">import</span> <span class="pre">*</span></tt>, which is a dangerous
technique that can create name conflicts and bloated namespaces.</p>
<p>The second reason is to remove what some perceive to be a &quot;wart.&quot; For
example, the following code is rather ugly in that the &quot;wx&quot; prefix on
the wxFrame class name is no longer useful when you're using the wx
module prefix:</p>
<pre class="literal-block">
from wxPython import wx
class Frame(wx.wxFrame)
</pre>
<p>The new wx package allows you to write code like this, instead:</p>
<pre class="literal-block">
import wx
class Frame(wx.Frame)
</pre>
<p>The third reason is that the wxWindows project intends to do the same
thing (implement a new wx namespace and drop the &quot;wx&quot; prefix) and we
want wxPython to lead the way.</p>
</div>
<div class="section" id="what-does-the-new-wx-package-do">
<h1><a class="toc-backref" href="#id3" name="what-does-the-new-wx-package-do">What does the new wx package do?</a></h1>
<p>As a way of getting to this new syntax as quickly as possible, the
code in this new wx package was created. What it does is alter the
existing wx namespace dynamically. By making the changes on-the-fly
at runtime, we can try out the new syntax before any permanent changes
are made to the underlying class library. The downside of making
these changes at runtime is that there is a slight delay when you
<tt class="literal"><span class="pre">import</span> <span class="pre">wx</span></tt>; the upside is that you can start using the new syntax
now.</p>
</div>
<div class="section" id="will-any-of-this-effect-my-existing-code">
<h1><a class="toc-backref" href="#id4" name="will-any-of-this-effect-my-existing-code">Will any of this effect my existing code?</a></h1>
<p>No. Your existing code will continue to work and be supported for
some time. It will be up to you to decide when to switch to the new
syntax. But all new documentation and code examples will use the new
syntax. So don't wait too long. You wouldn't want anyone calling you
old-fashioned, would you?</p>
</div>
<div class="section" id="how-does-the-new-wx-package-work">
<h1><a class="toc-backref" href="#id5" name="how-does-the-new-wx-package-work">How does the new wx package work?</a></h1>
<p>It's pretty simple, and pretty clever. The wx directory contains an
<tt class="literal"><span class="pre">__init__.py</span></tt> file, making it a Python package. (In contrast, the
old wxPython.wx module is a module, not a package.) When you <tt class="literal"><span class="pre">import</span>
<span class="pre">wx</span></tt> the code in the <tt class="literal"><span class="pre">__init__.py</span></tt> file is executed, and that's
where all the magic takes place. Let's take a look at the code inside
the <tt class="literal"><span class="pre">__init__.py</span></tt> file:</p>
<pre class="literal-block">
&quot;&quot;&quot;wx package
Provides a way to drop the wx prefix from wxPython objects.&quot;&quot;&quot;
__author__ = &quot;Patrick K. O'Brien &lt;pobrien&#64;orbtech.com&gt;&quot;
__cvsid__ = &quot;$Id$&quot;
__revision__ = &quot;$Revision$&quot;[11:-2]
from wxPython import wx
import types
d_new = globals()
d_old = wx.__dict__
for old, obj in d_old.iteritems():
if type(obj) is types.ModuleType or old.startswith('_'):
# Skip modules and private names.
continue
new = old
if old.startswith('EVT_'):
# Leave name unmodified; add to the new wx namespace.
d_new[new] = obj
elif old.startswith('wxEVT_'):
# Leave name unmodified; add to the new wx namespace.
d_new[new] = obj
else:
if old.startswith('wx'):
# Remove the 'wx' prefix.
new = old[2:]
# Add to the new wx package namespace.
d_new[new] = obj
del d_new
del d_old
del new
del obj
del old
del types
del wx
</pre>
<p>Namespaces in Python are implemented as dictionaries. The dictionary
used to create the wx package's namespace is accessible using the
<tt class="literal"><span class="pre">globals()</span></tt> function. The dictionary used to create the old
wxPython.wx module's namespace is <tt class="literal"><span class="pre">wx.__dict__</span></tt>. Once we have these
two dictionaries, it's a simple matter of iterating through one,
changing the names, adding the renamed object to the other dictionary,
and cleaning up a few local variables and imported modules. Voila!</p>
</div>
<div class="section" id="what-about-all-the-other-modules-like-grid-html-and-stc">
<h1><a class="toc-backref" href="#id6" name="what-about-all-the-other-modules-like-grid-html-and-stc">What about all the other modules, like grid, html, and stc?</a></h1>
<p>There's more to wxPython than just the wx namespace. And we've got
those extra modules covered as well. For each of those modules (as
well as the lib package) we've got matching modules in the new wx
package. Let's take a look at a few of them.</p>
<p>Here is <tt class="literal"><span class="pre">html.py</span></tt>:</p>
<pre class="literal-block">
&quot;&quot;&quot;Provides a way to drop the wx prefix from wxPython objects.&quot;&quot;&quot;
__author__ = &quot;Patrick K. O'Brien &lt;pobrien&#64;orbtech.com&gt;&quot;
__cvsid__ = &quot;$Id$&quot;
__revision__ = &quot;$Revision$&quot;[11:-2]
import wx
from wx import prefix
from wxPython import html
prefix.rename(d_new=globals(), d_old=html.__dict__)
del html
del prefix
del wx
</pre>
<p>And here is <tt class="literal"><span class="pre">lib/dialogs.py</span></tt>:</p>
<pre class="literal-block">
&quot;&quot;&quot;Provides a way to drop the wx prefix from wxPython objects.&quot;&quot;&quot;
__author__ = &quot;Patrick K. O'Brien &lt;pobrien&#64;orbtech.com&gt;&quot;
__cvsid__ = &quot;$Id$&quot;
__revision__ = &quot;$Revision$&quot;[11:-2]
import wx
from wx import prefix
from wxPython.lib import dialogs
prefix.rename(d_new=globals(), d_old=dialogs.__dict__)
del dialogs
del prefix
del wx
</pre>
<p>As you can see, they both rely on the <tt class="literal"><span class="pre">prefix.rename()</span></tt> function
defined in <tt class="literal"><span class="pre">prefix.py</span></tt>:</p>
<pre class="literal-block">
&quot;&quot;&quot;Renaming utility.
Provides a way to drop the wx prefix from wxPython objects.&quot;&quot;&quot;
__author__ = &quot;Patrick K. O'Brien &lt;pobrien&#64;orbtech.com&gt;&quot;
__cvsid__ = &quot;$Id$&quot;
__revision__ = &quot;$Revision$&quot;[11:-2]
import types
def rename(d_new, d_old):
for old, obj in d_old.iteritems():
if type(obj) is types.ModuleType or old.startswith('_'):
# Skip modules and private names.
continue
## mod = d_old['__name__']
## if hasattr(obj, '__module__') and not obj.__module__.startswith(mod):
## # Skip objects imported from other modules, except those
## # related to the current module, such as stc_.
## continue
new = old
if old.startswith('EVT_') or old.startswith('wxEVT_'):
# Leave these names unmodified.
pass
elif old.startswith('wx'):
new = old[2:]
if new:
d_new[new] = d_old[old]
</pre>
<p>Again, the technique is very similar to the one used by the wx
package.</p>
</div>
<div class="section" id="how-do-i-use-it">
<h1><a class="toc-backref" href="#id7" name="how-do-i-use-it">How do I use it?</a></h1>
<p>The wx package is created when you install wxPython. So you can start
using it now. Examples are included in the wx/examples directory,
which includes an examples.txt documentation file. Here is the source
code for <tt class="literal"><span class="pre">hello.py</span></tt>, a simple program that displays a wxPython
graphic inside a frame:</p>
<pre class="literal-block">
#!/usr/bin/env python
&quot;&quot;&quot;Hello, wxPython! program.&quot;&quot;&quot;
__author__ = &quot;Patrick K. O'Brien &lt;pobrien&#64;orbtech.com&gt;&quot;
__cvsid__ = &quot;$Id$&quot;
__revision__ = &quot;$Revision$&quot;[11:-2]
import wx
class Frame(wx.Frame):
&quot;&quot;&quot;Frame class that displays an image.&quot;&quot;&quot;
def __init__(self, image, parent=None, id=-1,
pos=wx.DefaultPosition, title='Hello, wxPython!'):
&quot;&quot;&quot;Create a Frame instance and display image.&quot;&quot;&quot;
temp = image.ConvertToBitmap()
size = temp.GetWidth(), temp.GetHeight()
wx.Frame.__init__(self, parent, id, title, pos, size)
self.bmp = wx.StaticBitmap(parent=self, id=-1, bitmap=temp)
class App(wx.App):
&quot;&quot;&quot;Application class.&quot;&quot;&quot;
def OnInit(self):
wx.InitAllImageHandlers()
image = wx.Image('wxPython.jpg', wx.BITMAP_TYPE_JPEG)
self.frame = Frame(image)
self.frame.Show()
self.SetTopWindow(self.frame)
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()
</pre>
<p>Good luck. I hope you like the new wx package as much as I do.</p>
<p>Pat</p>
</div>
</div>
</body>
</html>

140
wxPython/wx/wx.txt Normal file
View File

@@ -0,0 +1,140 @@
=========================
The wxPython wx Package
=========================
----------------------------------------------
How to survive the new wx namespace changes.
----------------------------------------------
:Author: Patrick K. O'Brien
:Contact: pobrien@orbtech.com
:Date: $Date$
:Revision: $Revision$
.. contents::
Introduction
============
Big things sometimes come in small packages. This is certainly true
of the new wx package, which is being introduced as a transition to
allow the "wx" prefix to be dropped from the names of all wxPython
classes, functions, and constants.
Why change anything?
====================
This change is being made for a couple of reasons. The first reason
is to discourage the use of ``import *``, which is a dangerous
technique that can create name conflicts and bloated namespaces.
The second reason is to remove what some perceive to be a "wart." For
example, the following code is rather ugly in that the "wx" prefix on
the wxFrame class name is no longer useful when you're using the wx
module prefix::
from wxPython import wx
class Frame(wx.wxFrame)
The new wx package allows you to write code like this, instead::
import wx
class Frame(wx.Frame)
The third reason is that the wxWindows project intends to do the same
thing (implement a new wx namespace and drop the "wx" prefix) and we
want wxPython to lead the way.
What does the new wx package do?
================================
As a way of getting to this new syntax as quickly as possible, the
code in this new wx package was created. What it does is alter the
existing wx namespace dynamically. By making the changes on-the-fly
at runtime, we can try out the new syntax before any permanent changes
are made to the underlying class library. The downside of making
these changes at runtime is that there is a slight delay when you
``import wx``; the upside is that you can start using the new syntax
now.
Will any of this effect my existing code?
=========================================
No. Your existing code will continue to work and be supported for
some time. It will be up to you to decide when to switch to the new
syntax. But all new documentation and code examples will use the new
syntax. So don't wait too long. You wouldn't want anyone calling you
old-fashioned, would you?
How does the new wx package work?
=================================
It's pretty simple, and pretty clever. The wx directory contains an
``__init__.py`` file, making it a Python package. (In contrast, the
old wxPython.wx module is a module, not a package.) When you ``import
wx`` the code in the ``__init__.py`` file is executed, and that's
where all the magic takes place. Let's take a look at the code inside
the ``__init__.py`` file:
.. include:: __init__.py
:literal:
Namespaces in Python are implemented as dictionaries. The dictionary
used to create the wx package's namespace is accessible using the
``globals()`` function. The dictionary used to create the old
wxPython.wx module's namespace is ``wx.__dict__``. Once we have these
two dictionaries, it's a simple matter of iterating through one,
changing the names, adding the renamed object to the other dictionary,
and cleaning up a few local variables and imported modules. Voila!
What about all the other modules, like grid, html, and stc?
===========================================================
There's more to wxPython than just the wx namespace. And we've got
those extra modules covered as well. For each of those modules (as
well as the lib package) we've got matching modules in the new wx
package. Let's take a look at a few of them.
Here is ``html.py``:
.. include:: html.py
:literal:
And here is ``lib/dialogs.py``:
.. include:: lib/dialogs.py
:literal:
As you can see, they both rely on the ``prefix.rename()`` function
defined in ``prefix.py``:
.. include:: prefix.py
:literal:
Again, the technique is very similar to the one used by the wx
package.
How do I use it?
================
The wx package is created when you install wxPython. So you can start
using it now. Examples are included in the wx/examples directory,
which includes an examples.txt documentation file. Here is the source
code for ``hello.py``, a simple program that displays a wxPython
graphic inside a frame:
.. include:: examples/hello/hello.py
:literal:
Good luck. I hope you like the new wx package as much as I do.
Pat

15
wxPython/wx/xrc.py Normal file
View File

@@ -0,0 +1,15 @@
"""Provides a way to drop the wx prefix from wxPython objects."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import wx
from wx import prefix
from wxPython import xrc
prefix.rename(d_new=globals(), d_old=xrc.__dict__)
del xrc
del prefix
del wx