]>
git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/ContextHelp.py 
   4  #----------------------------------------------------------------------    5  # We first have to set an application-wide help provider.  Normally you    6  # would do this in your app's OnInit or in other startup code...    8  provider 
=  wx
. SimpleHelpProvider ()    9  wx
. HelpProvider_Set ( provider
)   11  # This panel is chock full of controls about which we can demonstrate the    13  class  TestPanel ( wx
. Panel
):   14      def  __init__ ( self
,  parent
,  log
):   15          wx
. Panel
.__ init
__ ( self
,  parent
, - 1 )   18          # This help text, set for the panel itself, will be used if context   19          # sensitive help cannot be found for any particular control.   20          self
. SetHelpText ( "This is a wx.Panel." )   22          sizer 
=  wx
. BoxSizer ( wx
. VERTICAL
)   24          # Init the context help button.   25          # And even include help text about the help button :-)   26          cBtn 
=  wx
. ContextHelpButton ( self
)   27          cBtn
. SetHelpText ( "wx.ContextHelpButton" )   29          cBtnText 
=  wx
. StaticText ( self
, - 1 ,    30              "This is a wx.ContextHelpButton.  Clicking it puts the \n "   31              "app into context sensitive help mode."   34          # Yes, even static text can have help text associated with it :-)   35          cBtnText
. SetHelpText ( "Some helpful text..." )   37          s 
=  wx
. BoxSizer ( wx
. HORIZONTAL
)   38          s
. Add ( cBtn
,  0 ,  wx
. ALL
,  5 )   39          s
. Add ( cBtnText
,  0 ,  wx
. ALL
,  5 )   43          # A text control with help text.   44          text 
=  wx
. TextCtrl ( self
, - 1 ,  "Each sub-window can have its own help message" ,   45                            size
=( 240 ,  60 ),  style
= wx
. TE_MULTILINE
)   46          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!" )   50          # Same thing, but this time to demonstrate how the help event can be    52          text 
=  wx
. TextCtrl ( self
, - 1 ,  "You can also intercept the help event if you like.  Watch the log window when you click here..." ,   53                            size
=( 240 ,  60 ),  style 
=  wx
. TE_MULTILINE
)   54          text
. SetHelpText ( "Yet another context help message." )   57          self
. Bind ( wx
. EVT_HELP
,  self
. OnCtxHelp
,  text
)   59          text 
=  wx
. TextCtrl ( self
, - 1 ,  "This one displays the tip itself..." ,   60                             size
=( 240 ,  60 ),  style 
=  wx
. TE_MULTILINE
)   63          self
. Bind ( wx
. EVT_HELP
,  self
. OnCtxHelp2
,  text
)   66          border 
=  wx
. BoxSizer ( wx
. VERTICAL
)   67          border
. Add ( sizer
,  0 ,  wx
. ALL
,  25 )   69          self
. SetAutoLayout ( True )   74      # On the second text control above, we intercept the help event. This is where   75      # we process it. Anything could happen here. In this case we're just printing   76      # some stuff about it, then passing it on, at which point we see the help tip.   77      def  OnCtxHelp ( self
,  evt
):   78          self
. log
. write ( "OnCtxHelp:  %s "  %  evt
)   81      # On the third text control above, we intercept the help event.    82      # Here, we print a note about it, generate our own tip window, and,    83      # unlike last time, we don't pass it on to the underlying provider.   84      def  OnCtxHelp2 ( self
,  evt
):   85           self
. log
. write ( "OnCtxHelp:  %s \n "  %  evt
)   86           tip 
=  wx
. TipWindow ( self
,  "This is a wx.TipWindow" )   89  #----------------------------------------------------------------------   91  def  runTest ( frame
,  nb
,  log
):   92      win 
=  TestPanel ( nb
,  log
)   96  #----------------------------------------------------------------------  100  This demo shows how to incorporate Context Sensitive  101  help into your application using the wx.SimpleHelpProvider class.  105  #----------------------------------------------------------------------  107  if  __name__ 
==  '__main__' :  110      run
. main ([ '' ,  os
. path
. basename ( sys
. argv
[ 0 ])])