/[gnue]/gnue-pos/src/frontends/wx/Driver.py
ViewVC logotype

Diff of /gnue-pos/src/frontends/wx/Driver.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by jcater, Mon Jun 23 03:48:57 2003 UTC revision 1.6 by jcater, Mon Jun 30 23:59:03 2003 UTC
# Line 36  from gnue.forms.uidrivers.wx.GFwxApp imp Line 36  from gnue.forms.uidrivers.wx.GFwxApp imp
36    
37  dollarFormat = '$%.02f'  dollarFormat = '$%.02f'
38    
39    STATUS_USER = 2
40    STATUS_TICKET = 1
41    
42  from wxPython.wx import *  from wxPython.wx import *
43  from wxPython.gizmos import *  from wxPython.gizmos import *
44    
# Line 49  class Driver(BaseDriver): Line 52  class Driver(BaseDriver):
52                              ('sku',_('Code'), '%s', 0),                              ('sku',_('Code'), '%s', 0),
53                              ('quantity',_('Units'), '%s', 0),                              ('quantity',_('Units'), '%s', 0),
54                              ('description',_('Description'), '%s', 0),                              ('description',_('Description'), '%s', 0),
55                                ('base',_('Base Price'), dollarFormat, 1),
56                              ('each',_('Price/Unit'), dollarFormat, 1),                              ('each',_('Price/Unit'), dollarFormat, 1),
57                              ('extended',_('Extended'), dollarFormat, 1) )                              ('extended',_('Extended'), dollarFormat, 1),
58                                ('taxable','T', '%s', 0) )
59    
60      self.totalFieldMapping = {}      self.totalFieldMapping = {}
61    
62      self._buildUI()      self._buildUI()
63    
64      self.registerEventListeners( {      self.registerEventListeners( {
65          'Prompt': self._Prompt,
66        'BeginTicket': self._BeginTicket,        'BeginTicket': self._BeginTicket,
67        'EndTicket': self._EndTicket,        'EndTicket': self._EndTicket,
68        'AddTicketItem': self._AddTicketItem,        'AddTicketItem': self._AddTicketItem,
# Line 68  class Driver(BaseDriver): Line 74  class Driver(BaseDriver):
74      app = getWxApp()      app = getWxApp()
75      app.MainLoop()      app.MainLoop()
76    
77      def _Prompt(self, event):
78        self.inputLabel.SetLabel(event.label)
79        self.inputField.Clear()
80        self.inputField.SetFocus()
81        self.__event = event.response
82        try:
83          self.statusbar.SetStatusText (event.help)
84        except AttributeError:
85          pass
86    
87        try:
88          self.__endingEvents = event.endingEvents
89        except AttributeError:
90          self.__endingEvents = ()
91    
92    def _BeginTicket(self, event):    def _BeginTicket(self, event):
93      print "Beginning ticket # %s" % event.serial      print "Beginning ticket # %s" % event.serial
94        self.statusbar.SetStatusText("Ticket # %s" % event.serial, STATUS_TICKET)
95        self.receiptList.DeleteAllItems()
96    
97    def _EndTicket(self, event):    def _EndTicket(self, event):
98      print "Ending ticket"      print "Ending ticket"
99        self.statusbar.SetStatusText("No Current Ticket", STATUS_TICKET)
100    
101    def _AddTicketItem(self, event):    def _AddTicketItem(self, event):
102      # Insert a new row      # Insert a new row
# Line 104  class Driver(BaseDriver): Line 128  class Driver(BaseDriver):
128      frame.SetAutoLayout(1)      frame.SetAutoLayout(1)
129      EVT_SIZE(frame, self.__OnSize)      EVT_SIZE(frame, self.__OnSize)
130    
131      self.statusbar = frame.CreateStatusBar()      self.statusbar = frame.CreateStatusBar(3)
132      self.statusbar.SetStatusText ('Clerk: 100 (Jason)')      self.statusbar.SetStatusText ('Clerk: 100 (Jason)', STATUS_USER)
133    
134      topPanel = wxPanel(frame, -1)      topPanel = wxPanel(frame, -1)
135      topSizer = wxBoxSizer(wxHORIZONTAL)      topSizer = wxBoxSizer(wxHORIZONTAL)
# Line 183  class Driver(BaseDriver): Line 207  class Driver(BaseDriver):
207    
208      frameSizer.Layout()      frameSizer.Layout()
209  #    self.frame.ShowFullScreen(1)  #    self.frame.ShowFullScreen(1)
210      frame.SetSize((640,480))  # TODO: Maximize to screen?      frame.SetSize((640,480))  # TODO: Maximize to screen?
211      frame.Show(1)      frame.Show(1)
212    
213        EVT_KEY_DOWN(self.inputField, self.__keypress)
214    
215    def __OnSize(self, event):    def __OnSize(self, event):
216      self.frame.Layout()      self.frame.Layout()
# Line 197  class Driver(BaseDriver): Line 222  class Driver(BaseDriver):
222        else:        else:
223          w -= self.receiptList.GetColumnWidth(i)          w -= self.receiptList.GetColumnWidth(i)
224      self.receiptList.SetColumnWidth(pos, w)      self.receiptList.SetColumnWidth(pos, w)
225    
226      def __keypress(self, event):
227        key = event.GetKeyCode()
228    
229        if key in (WXK_RETURN,WXK_NUMPAD_ENTER):
230          self.dispatchEvent(self.__event, value=self.inputField.GetValue())
231        elif key == WXK_ESCAPE:
232          self.inputField.Clear()
233        elif _specialKeys.has_key(key) and _specialKeys[key] in self.__endingEvents:
234          self.dispatchEvent(self.__event, value=self.inputField.GetValue(), next=_specialKeys[key])
235        else:
236          event.Skip()
237    
238    
239    _specialKeys = {
240       '*': 'RequestQuantity',
241       '=': 'RequestTender',
242       '-': 'RequestCancelLastItem',
243       '+': 'RequestDuplicateLastItem',
244      }

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26