]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/ContextHelp.py
Don't use AA fonts to avoide measurment problem on wxMac
[wxWidgets.git] / wxPython / demo / ContextHelp.py
index d66719655c45f94aed690cb96b398b8c05b581a9..526a884c83394871833c3c3b9a097dcd927ea1ae 100644 (file)
 
-from wxPython.wx import *
-from wxPython.help import *
+import  wx
 
 #----------------------------------------------------------------------
 # We first have to set an application-wide help provider.  Normally you
 # would do this in your app's OnInit or in other startup code...
 
-provider = wxSimpleHelpProvider()
-wxHelpProvider_Set(provider)
+provider = wx.SimpleHelpProvider()
+wx.HelpProvider_Set(provider)
 
-
-class TestPanel(wxPanel):
+# This panel is chock full of controls about which we can demonstrate the 
+# help system.
+class TestPanel(wx.Panel):
     def __init__(self, parent, log):
-        wxPanel.__init__(self, parent, -1)
+        wx.Panel.__init__(self, parent, -1)
         self.log = log
 
-        self.SetHelpText("This is a wxPanel.")
-        sizer = wxBoxSizer(wxVERTICAL)
+        # This help text, set for the panel itself, will be used if context
+        # sensitive help cannot be found for any particular control.
+        self.SetHelpText("This is a wx.Panel.")
+        
+        sizer = wx.BoxSizer(wx.VERTICAL)
+
+        # Init the context help button.
+        # And even include help text about the help button :-)
+        cBtn = wx.ContextHelpButton(self)
+        cBtn.SetHelpText("wx.ContextHelpButton")
+
+        cBtnText = wx.StaticText(self, -1, 
+            "This is a wx.ContextHelpButton.  Clicking it puts the\n"
+            "app into context sensitive help mode."
+            )
 
-        cBtn = wxContextHelpButton(self)
-        cBtn.SetHelpText("wxContextHelpButton")
-        cBtnText = wxStaticText(self, -1, "This is a wxContextHelpButton.  Clicking it puts the\n"
-                                          "app into context sensitive help mode.")
+        # Yes, even static text can have help text associated with it :-)
         cBtnText.SetHelpText("Some helpful text...")
 
-        s = wxBoxSizer(wxHORIZONTAL)
-        s.Add(cBtn, 0, wxALL, 5)
-        s.Add(cBtnText, 0, wxALL, 5)
-        sizer.Add(20,20)
+        s = wx.BoxSizer(wx.HORIZONTAL)
+        s.Add(cBtn, 0, wx.ALL, 5)
+        s.Add(cBtnText, 0, wx.ALL, 5)
+        sizer.Add((20,20))
         sizer.Add(s)
 
-        text = wxTextCtrl(self, -1, "Each sub-window can have its own help message",
-                          size=(240, 60), style = wxTE_MULTILINE)
+        # A text control with help text.
+        text = wx.TextCtrl(self, -1, "Each sub-window can have its own help message",
+                          size=(240, 60), style=wx.TE_MULTILINE)
         text.SetHelpText("This is my very own help message.  This is a really long long long long long long long long long long long long long long long long long long long long message!")
-        sizer.Add(20,20)
+        sizer.Add((20,20))
         sizer.Add(text)
 
-        text = wxTextCtrl(self, -1, "You can also intercept the help event if you like.  Watch the log window when you click here...",
-                          size=(240, 60), style = wxTE_MULTILINE)
+        # Same thing, but this time to demonstrate how the help event can be 
+        # intercepted.
+        text = wx.TextCtrl(self, -1, "You can also intercept the help event if you like.  Watch the log window when you click here...",
+                          size=(240, 60), style = wx.TE_MULTILINE)
         text.SetHelpText("Yet another context help message.")
-        sizer.Add(20,20)
+        sizer.Add((20,20))
         sizer.Add(text)
-        EVT_HELP(text, text.GetId(), self.OnCtxHelp)
+        self.Bind(wx.EVT_HELP, self.OnCtxHelp, text)
 
-        text = wxTextCtrl(self, -1, "This one displays the tip itself...",
-                          size=(240, 60), style = wxTE_MULTILINE)
-        sizer.Add(20,20)
+        text = wx.TextCtrl(self, -1, "This one displays the tip itself...",
+                           size=(240, 60), style = wx.TE_MULTILINE)
+        sizer.Add((20,20))
         sizer.Add(text)
-        EVT_HELP(text, text.GetId(), self.OnCtxHelp2)
+        self.Bind(wx.EVT_HELP, self.OnCtxHelp2, text)
 
 
-        border = wxBoxSizer(wxVERTICAL)
-        border.Add(sizer, 0, wxALL, 25)
+        border = wx.BoxSizer(wx.VERTICAL)
+        border.Add(sizer, 0, wx.ALL, 25)
 
-        self.SetAutoLayout(true)
+        self.SetAutoLayout(True)
         self.SetSizer(border)
         self.Layout()
 
 
+    # On the second text control above, we intercept the help event. This is where
+    # we process it. Anything could happen here. In this case we're just printing
+    # some stuff about it, then passing it on, at which point we see the help tip.
     def OnCtxHelp(self, evt):
         self.log.write("OnCtxHelp: %s" % evt)
         evt.Skip()
 
-
+    # On the third text control above, we intercept the help event. 
+    # Here, we print a note about it, generate our own tip window, and, 
+    # unlike last time, we don't pass it on to the underlying provider.
     def OnCtxHelp2(self, evt):
-         self.log.write("OnCtxHelp: %s" % evt)
-         tip = wxTipWindow(self, "This is a wxTipWindow")
+         self.log.write("OnCtxHelp: %s\n" % evt)
+         tip = wx.TipWindow(self, "This is a wx.TipWindow")
 
 
 #----------------------------------------------------------------------
 
 def runTest(frame, nb, log):
-    win = TestPanel(nb, log)
-    return win
+    if wx.Platform == "__WXMAC__":
+        dlg = wx.MessageDialog(
+                frame, 'The ContextHelp sample does not currently work well on this platform.',
+                'Sorry', wx.OK | wx.ICON_INFORMATION
+                )
+        dlg.ShowModal()
+        dlg.Destroy()
+        
+    else:
+        win = TestPanel(nb, log)
+        return win
 
 
 #----------------------------------------------------------------------
 
 
-
-
 overview = """
-This demo shows how to encorporate Context Sensitive
-help into your applicaiton using the wxSimpleHelpProvider class.
+This demo shows how to incorporate Context Sensitive
+help into your application using the wx.SimpleHelpProvider class.
 
 """
 
-
-
 #----------------------------------------------------------------------
 
+if __name__ == '__main__':
+    import sys,os
+    import run
+    run.main(['', os.path.basename(sys.argv[0])])
+