]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/FancyText.py
A way to make the DC classes in wxPython look like the ones in 2.5, so
[wxWidgets.git] / wxPython / demo / FancyText.py
index edda6ce1784d1ebbdc179839bc8b762c40022fa9..b7c954c276807a2b7cfec117c331e1cdcb4d9998 100644 (file)
@@ -1,6 +1,6 @@
-
-from wxPython.wx import *
-from wxPython.lib import fancytext
+  
+import  wx
+import  wx.lib.fancytext as fancytext
 
 #----------------------------------------------------------------------
 
@@ -11,19 +11,18 @@ test_str = ('<font style="italic" family="swiss" color="red" weight="bold" >'
 test_str2 = '<font family="swiss" color="dark green" size="40">big green text</font>'
 
 
-class TestPanel(wxPanel):
+class TestPanel(wx.Panel):
     def __init__(self, parent):
-        wxPanel.__init__(self, parent, -1)
-        EVT_PAINT(self, self.OnPaint)
-
+        wx.Panel.__init__(self, parent, -1)
+        self.Bind(wx.EVT_PAINT, self.OnPaint)
 
     def OnPaint(self, evt):
-        dc = wxPaintDC(self)
+        dc = wx.PaintDC(self)
 
-        sz = fancytext.getExtent(test_str, dc)
-        fancytext.renderToDC(test_str, dc, 20, 20)
+        w, h = fancytext.GetExtent(test_str, dc)
+        fancytext.RenderToDC(test_str, dc, 20, 20)
 
-        fancytext.renderToDC(test_str2, dc, 20, 20 + sz.height + 10)
+        fancytext.RenderToDC(test_str2, dc, 20, 20 + h + 10)
 
 
 #----------------------------------------------------------------------
@@ -36,6 +35,48 @@ def runTest(frame, nb, log):
 
 
 
-import string
-overview = string.replace(fancytext.__doc__, "<", "&lt;")
+overview = \
+"""
+<html>
+<body>
+<h1>FancyText -- <i>methods for rendering XML specified text</i></h1>
+
+<p>This module exports four main methods::
+<pre>
+    def GetExtent(str, dc=None, enclose=True)
+    def GetFullExtent(str, dc=None, enclose=True)
+    def RenderToBitmap(str, background=None, enclose=True)
+    def RenderToDC(str, dc, x, y, enclose=True)
+</pre>
+
+In all cases, 'str' is an XML string. Note that start and end tags
+are only required if *enclose* is set to False. In this case the 
+text should be wrapped in FancyText tags.
+
+<p>In addition, the module exports one class::
+<pre>
+    class StaticFancyText(self, window, id, text, background, ...)
+</pre>
+This class works similar to StaticText except it interprets its text 
+as FancyText.
+
+<p>The text can support<sup>superscripts</sup> and <sub>subscripts</sub>, text
+in different <font size="+3">sizes</font>, <font color="blue">colors</font>, 
+<i>styles</i>, <b>weights</b> and
+<font family="script">families</font>. It also supports a limited set of symbols,
+currently <times/>, <infinity/>, <angle/> as well as greek letters in both
+upper case (<Alpha/><Beta/>...<Omega/>) and lower case (<alpha/><beta/>...<omega/>).
+
+</font></font>
+The End
+</body>
+</html>
+"""
+
+
+
+if __name__ == '__main__':
+    import sys,os
+    import run
+    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])