Home | History | Annotate | Download | only in samples
      1 # -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
      2 #
      3 # $Id$
      4 #
      5 # Tix Demonstration Program
      6 #
      7 # This sample program is structured in such a way so that it can be
      8 # executed from the Tix demo program "tixwidgets.py": it must have a
      9 # procedure called "RunSample". It should also have the "if" statment
     10 # at the end of this file so that it can be run as a standalone
     11 # program.
     12 
     13 # This file demonstrates the use of the tixOptionMenu widget -- you can
     14 # use it for the user to choose from a fixed set of options
     15 #
     16 import Tix
     17 
     18 options = {'text':'Plain Text', 'post':'PostScript', 'html':'HTML',
     19            'tex':'LaTeX', 'rtf':'Rich Text Format'}
     20 
     21 def RunSample(w):
     22     global demo_opt_from, demo_opt_to
     23 
     24     demo_opt_from = Tix.StringVar()
     25     demo_opt_to = Tix.StringVar()
     26 
     27     top = Tix.Frame(w, bd=1, relief=Tix.RAISED)
     28 
     29     from_file = Tix.OptionMenu(top, label="From File Format : ",
     30                                variable=demo_opt_from,
     31                                options = 'label.width  19 label.anchor e menubutton.width 15')
     32 
     33     to_file = Tix.OptionMenu(top, label="To File Format : ",
     34                              variable=demo_opt_to,
     35                              options='label.width  19 label.anchor e menubutton.width 15')
     36 
     37     # Add the available options to the two OptionMenu widgets
     38     #
     39     # [Hint] You have to add the options first before you set the
     40     #        global variables "demo_opt_from" and "demo_opt_to". Otherwise
     41     #        the OptionMenu widget will complain about "unknown options"!
     42     #
     43     for opt in options.keys():
     44         from_file.add_command(opt, label=options[opt])
     45         to_file.add_command(opt, label=options[opt])
     46 
     47     demo_opt_from.set('html')
     48     demo_opt_to.set('post')
     49 
     50     from_file.pack(side=Tix.TOP, anchor=Tix.W, pady=3, padx=6)
     51     to_file.pack(side=Tix.TOP, anchor=Tix.W, pady=3, padx=6)
     52 
     53     box = Tix.ButtonBox(w, orientation=Tix.HORIZONTAL)
     54     box.add('ok', text='Ok', underline=0, width=6,
     55             command=lambda w=w: ok_command(w))
     56     box.add('cancel', text='Cancel', underline=0, width=6,
     57             command=lambda w=w: w.destroy())
     58     box.pack(side=Tix.BOTTOM, fill=Tix.X)
     59     top.pack(side=Tix.TOP, fill=Tix.BOTH, expand=1)
     60 
     61 def ok_command(w):
     62     # tixDemo:Status "Convert file from %s to %s" % ( demo_opt_from.get(), demo_opt_to.get())
     63     w.destroy()
     64 
     65 if __name__ == '__main__':
     66     root = Tix.Tk()
     67     RunSample(root)
     68     root.mainloop()
     69