Changeset 102
- Timestamp:
- 04/11/08 16:20:49 (6 months ago)
- Files:
-
- sucrose/trunk/python/keypad_tk.py (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
sucrose/trunk/python/keypad_tk.py
r101 r102 12 12 13 13 class TkinterUI(user_interface.UserInterface): 14 def update(self, caller, tray): 15 for i in self.views: 16 if i != caller and hasattr(i, update): 17 i.update(tray) 18 19 14 20 def make_switch_view(self, view): 15 21 return lambda: self.switch_view(view) … … 18 24 def make_view(self, view_name, view): 19 25 setattr(self,view_name, view) 20 self.views.add_command(label=view_name, command=self.make_switch_view(view)) 26 self.menu.add_command(label=view_name, command=self.make_switch_view(view)) 27 self.views.append(view) 21 28 self.view_names.append(view_name) 22 29 self.current_view = view … … 35 42 self.view_names = [] 36 43 37 self.views = Tkinter.Menu(self.window, font=("helvetica",24)) 44 self.views = [] 45 46 self.menu = Tkinter.Menu(self.window, font=("helvetica",24)) 38 47 39 48 self.current_view = None 40 self.make_view('Keypad', Keypad(sucrose, auth, exit=self.destroy))41 self.make_view('Nutrition', Nutrition(sucrose, auth, exit=self.destroy))42 self.make_view('Statistics', Statistics(sucrose, auth, exit=self.destroy))43 44 45 self.window.config(menu=self. views)49 self.make_view('Keypad', Keypad(sucrose, auth, self, exit=self.destroy)) 50 self.make_view('Nutrition', Nutrition(sucrose, auth, self, exit=self.destroy)) 51 self.make_view('Statistics', Statistics(sucrose, auth, self, exit=self.destroy)) 52 53 54 self.window.config(menu=self.menu) 46 55 47 56 self.current_view.pack() … … 49 58 # Kill yourself after 15 seconds 50 59 self.window.after(15000,self.destroy) 51 self. views.add_command(label="Quit", command=self.destroy)60 self.menu.add_command(label="Quit", command=self.destroy) 52 61 53 62 self.window.mainloop() … … 70 79 71 80 class Statistics(Tkinter.Frame): 72 def __init__(self, sucrose, auth, exit=None, location=None, master=None, cnf={}, **kw):81 def __init__(self, sucrose, auth, parent, exit=None, location=None, master=None, cnf={}, **kw): 73 82 Tkinter.Frame.__init__(self,master=None,cnf={},**kw) 74 83 75 84 self.auth = auth 85 self.parent = parent 76 86 self.sucrose = sucrose 77 87 self.distruct = exit … … 86 96 87 97 class Nutrition(Tkinter.Frame): 98 def update(self, tray): 99 self.item = self.sucrose.item_from_tray(tray) 100 self.row = 0 101 self.make_item("Caffeine", self.item.caffeine) 102 self.make_item("Calories", self.item.calories) 103 self.make_item("Sugar", self.item.sugar) 104 self.make_item("Carbohydrates", self.item.carbohydrates) 105 self.make_item("Fiber", self.item.fiber) 106 self.make_item("Sodium", self.item.sodium) 107 self.make_item("Fat", self.item.fat) 108 self.make_item("Saturated Fat", self.item.saturated_fat) 109 self.make_item("Protein", self.item.protein) 110 self.make_item("Cholesterol", self.item.cholesterol) 111 112 88 113 def make_item(self, name, value): 89 114 self.row = self.row + 1 … … 93 118 .grid(row=2*self.row, column=1, sticky=Tkinter.N+Tkinter.S+Tkinter.E+Tkinter.W) 94 119 95 def __init__(self, sucrose, auth, exit=None, location=None, master=None, cnf={}, **kw): 120 121 def __init__(self, sucrose, auth, parent, exit=None, location=None, master=None, cnf={}, **kw): 96 122 Tkinter.Frame.__init__(self,master=None,cnf={},**kw) 97 123 98 124 self.auth = auth 125 self.parent = parent 99 126 self.sucrose = sucrose 100 127 self.distruct = exit 101 128 self.location = location 129 self.item = None 130 102 131 self.row = 0 103 self.item = None104 105 132 self.make_item("Caffeine", 0) 106 133 self.make_item("Calories", 0) … … 114 141 self.make_item("Cholesterol", 0) 115 142 116 def make_table(self):117 # { BEGIN details GUI118 self.make_item("Caffeine", self.item.caffeine)119 self.make_item("Calories", self.item.calories)120 self.make_item("Sugar", self.item.sugar)121 self.make_item("Carbohydrates", self.item.carbohydrates)122 self.make_item("Fiber", self.item.fiber)123 self.make_item("Sodium", self.item.sodium)124 self.make_item("Fat", self.item.fat)125 self.make_item("Saturated Fat", self.item.saturated_fat)126 self.make_item("Protein", self.item.protein)127 self.make_item("Cholesterol", self.item.cholesterol)128 # } END details GUI129 143 130 144 131 145 132 146 class Keypad(Tkinter.Frame): 147 def update(self, tray): 148 self.item_location=tray.machine_tray_id 149 self.tray = tray 150 self.item = self.sucrose.item_from_tray(self.tray) 151 152 self.location.config(text=self.item_location) 153 self.name.config(text=self.item.name) 154 155 self.auth.authenticate_purchase(self.item_location) 156 157 self.vend.config(state=Tkinter.NORMAL) 158 159 133 160 def make_button_callback(self,number): 134 161 return lambda: self.button_callback(number) … … 147 174 148 175 self.vend.config(state=Tkinter.NORMAL) 176 177 parent.update(self, tray) 149 178 # If it's not a valid purchase, don't allow the user to press the vend button 150 179 except: … … 170 199 171 200 172 def __init__(self, sucrose, auth, exit=None, location=None, master=None, cnf={}, **kw):201 def __init__(self, sucrose, auth, parent, exit=None, location=None, master=None, cnf={}, **kw): 173 202 Tkinter.Frame.__init__(self,master=None,cnf={},**kw) 174 203 175 204 self.auth = auth 205 self.parent = parent 176 206 self.sucrose = sucrose 177 207 self.distruct = exit
