Home | Trees | Indices | Help |
|
---|
|
1 # The Vision Egg: DropinGUI 2 # 3 # Copyright (C) 2004 Imran S. Ali, Lachlan Dowd, Andrew Straw 4 # Copyright (C) 2004 California Institute of Technology 5 # 6 # Authors: Imran S. Ali, Lachlan Dowd, Andrew Straw 7 # URL: <http://www.visionegg.org/> 8 # 9 # Distributed under the terms of the GNU Lesser General Public License 10 # (LGPL). See LICENSE.TXT that came with this file. 11 # 12 # $Id$ 13 14 import VisionEgg, string 15 import sys, os 16 import Tkinter 17 import tkMessageBox 18 import VisionEgg.PyroApps.VarTypes as VarTypes 19 import VisionEgg.PyroApps.EPhysGUIUtils as client_utils 20 23 2729 title = "Vision Egg Script" 30128 129 if __name__=='__main__': 130 frame = DropinControlFrame() 131 frame.pack(expand=1,fill=Tkinter.BOTH) 132 frame.winfo_toplevel().title("%s"%(os.path.basename(os.path.splitext(sys.argv[0])[0]),)) 133 frame.mainloop() 13432 client_utils.StimulusControlFrame.__init__(self, 33 master, 34 suppress_go_buttons, 35 DropinControlFrame.title, 36 DropinMetaParameters, 37 **kw) 38 39 param_frame = self.param_frame # shorthand for self.param_frame created in base class 40 param_frame.columnconfigure(0,weight=1) 41 param_frame.columnconfigure(1,weight=1) 42 self.vars_list = [] 43 self.error_names = []44 47 50 5153 54 self.meta_params.vars_list = [] 55 self.error_names = [] 56 57 if self.vars_list is None: 58 return 0 59 60 for var in self.vars_list: 61 if len(var) == 3: 62 var_type = var[0] 63 var_name = var[1] 64 var_val_holder = var[2] 65 var_val = var_val_holder.get() 66 try: 67 if var_val == "compound": 68 pass 69 else: 70 if VarTypes.getType(var_type) == "float": 71 var_typed_val = float(var_val) 72 elif VarTypes.getType(var_type) == "integer": 73 var_typed_val = int(float(var_val)) 74 elif VarTypes.getType(var_type) == "string": 75 var_typed_val = var_val 76 else: 77 raise ValueError() 78 self.meta_params.vars_list.append([var_name, var_typed_val]) 79 except ValueError: 80 self.error_names.append(var_name) 81 82 83 84 if len(self.error_names) == 0: 85 self.meta_controller.set_parameters( self.meta_params ) 86 return 1 87 else: 88 all_error_names = "Invalid value(s) for the following variable(s):\n" 89 for error_name in self.error_names: 90 all_error_names = all_error_names + error_name + "\n" 91 tkMessageBox.showerror("Invalid value(s)", all_error_names) 92 return 093 97 98 # Creates the variable Entry and Label widgets:100 self.vars_list = vars_list 101 param_frame = self.param_frame # shorthand for self.param_frame created in base class 102 if demoscript_filename is None: 103 label = "No demo file loaded" 104 else: 105 label = demoscript_filename 106 Tkinter.Label(param_frame, 107 text=label, 108 font=("Helvetica",8,"bold")).grid(row=0,columnspan=2) 109 row_num = 1 110 111 if self.vars_list is None: 112 return 113 for var in self.vars_list: 114 var_label = Tkinter.Label(param_frame,text=var[1]).grid(row=row_num,column=0) 115 # Create a Tkinter string variable holder: 116 var_val_holder = Tkinter.StringVar() 117 # Set to its value: 118 var_val_holder.set(var[2]) 119 # Create (indirectly) Entry widgets: 120 # Render variables which were "not found" as non-modifiable for user: 121 if var[2] == "not found": 122 self.make_callback_entry(textvariable=var_val_holder, state="disabled").grid(row=row_num,column=1) 123 del var[2] 124 else: 125 self.make_callback_entry(textvariable=var_val_holder).grid(row=row_num,column=1) 126 var[2] = var_val_holder 127 row_num = row_num + 1
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0beta1 on Sat Jun 7 09:06:48 2008 | http://epydoc.sourceforge.net |