/[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.10 by jcater, Thu Jul 3 15:53:45 2003 UTC revision 1.11 by jcater, Fri Jul 4 05:37:40 2003 UTC
# Line 48  BASE_COLOR = wxNamedColour("ivory") Line 48  BASE_COLOR = wxNamedColour("ivory")
48  LOGIN_COLOR = wxColour(255,220,220)  LOGIN_COLOR = wxColour(255,220,220)
49  LOGIN_EVENTS = ('LoginEntered','PasswordEntered')  LOGIN_EVENTS = ('LoginEntered','PasswordEntered')
50  SPECIAL_COLOR = wxColour(220,255,220)  SPECIAL_COLOR = wxColour(220,255,220)
51  SPECIAL_EVENTS = ('TaxExemptionEntered',)  SPECIAL_EVENTS = ('TaxExemptionEntered','CancelItemEntered', 'QuantityEntered')
52    
53    
54  class Driver(BaseDriver):  class Driver(BaseDriver):
# Line 58  class Driver(BaseDriver): Line 58  class Driver(BaseDriver):
58                            ('total',_('Total')),                            ('total',_('Total')),
59                            ('balance',_('Balance')) )                            ('balance',_('Balance')) )
60    
61      self.receiptColumns = ( ('department',_('Dept'), '%s', 0),      self.receiptColumns = ( ('lineitem',_('#'), '%s', 1, 1),
62                              ('sku',_('Code'), '%s', 0),                              ('department',_('Dept'), '%s', 0, 0),
63                              ('quantity',_('Units'), '%s', 0),                              ('sku',_('Code'), '%s', 0, 0),
64                              ('description',_('Description'), '%s', 0),                              ('quantity',_('Units'), '%s', 0, 0),
65                              ('base',_('Base Price'), dollarFormat, 1),                              ('description',_('Description'), '%s', 0, 0),
66                              ('each',_('Price/Unit'), dollarFormat, 1),                              ('base',_('Base Price'), dollarFormat, 1, 0),
67                              ('extended',_('Extended'), dollarFormat, 1),                              ('each',_('Price/Unit'), dollarFormat, 1, 0),
68                              ('taxable','T', '%s', 0) )                              ('extended',_('Extended'), dollarFormat, 1, 0),
69                                ('taxable',_('Tax?'), 'bool', 0, 1) )
70    
71      self.totalFieldMapping = {}      self.totalFieldMapping = {}
72    
# Line 73  class Driver(BaseDriver): Line 74  class Driver(BaseDriver):
74    
75      self.registerEventListeners( {      self.registerEventListeners( {
76        'Prompt': self._Prompt,        'Prompt': self._Prompt,
77          'EmployeeLogin': self._EmployeeLogin,
78        'BeginTicket': self._BeginTicket,        'BeginTicket': self._BeginTicket,
79        'EndTicket': self._EndTicket,        'EndTicket': self._EndTicket,
80        'AddTicketItem': self._AddTicketItem,        'AddTicketItem': self._AddTicketItem,
# Line 102  class Driver(BaseDriver): Line 104  class Driver(BaseDriver):
104        self.inputField.SetBackgroundColour(BASE_COLOR)        self.inputField.SetBackgroundColour(BASE_COLOR)
105    
106      try:      try:
107        default = event.default        default = str(event.default)
108      except:      except:
109        default = ""        default = ""
110    
# Line 130  class Driver(BaseDriver): Line 132  class Driver(BaseDriver):
132    
133      # And set each column      # And set each column
134      j = 0      j = 0
135      for field, foo, format, bar in self.receiptColumns:      for field, foo, format, bar, none in self.receiptColumns:
136        try:        try:
137          self.receiptList.SetStringItem(i, j, format % event.__dict__[field])          v = event.__dict__[field]
138            if format == 'bool':
139              format = '%s'
140              v = v and 'Yes' or 'No'
141            self.receiptList.SetStringItem(i, j, format % v)
142        except KeyError:        except KeyError:
143          pass          pass
144        j += 1        j += 1
# Line 154  class Driver(BaseDriver): Line 160  class Driver(BaseDriver):
160      EVT_SIZE(frame, self.__OnSize)      EVT_SIZE(frame, self.__OnSize)
161    
162      self.statusbar = frame.CreateStatusBar(3)      self.statusbar = frame.CreateStatusBar(3)
163      self.statusbar.SetStatusText ('Clerk: 100 (Jason)', STATUS_USER)      self.statusbar.SetStatusText ('Not Logged In', STATUS_USER)
164    
165      topPanel = wxPanel(frame, -1)      topPanel = wxPanel(frame, -1)
166      topSizer = wxBoxSizer(wxHORIZONTAL)      topSizer = wxBoxSizer(wxHORIZONTAL)
# Line 171  class Driver(BaseDriver): Line 177  class Driver(BaseDriver):
177    
178      # Add the columns for our receipt list      # Add the columns for our receipt list
179      i = 0      i = 0
180      for field, description, format, rightJustify in self.receiptColumns:      for field, description, format, rightJustify, small in self.receiptColumns:
181        self.receiptList.InsertColumn(i, description,        self.receiptList.InsertColumn(i, description,
182            format = wxLIST_FORMAT_RIGHT and rightJustify or wxLIST_FORMAT_LEFT)            format = wxLIST_FORMAT_RIGHT and rightJustify or wxLIST_FORMAT_LEFT)
183          if small:
184            self.receiptList.SetColumnWidth(i, self.receiptList.GetColumnWidth(i)/2)
185    
186        i += 1        i += 1
187    
188      totalPanel2 = wxPanel(bottomPanel, -1, style=wxRAISED_BORDER)      totalPanel2 = wxPanel(bottomPanel, -1, style=wxRAISED_BORDER)
# Line 234  class Driver(BaseDriver): Line 243  class Driver(BaseDriver):
243      self.__intext = 1      self.__intext = 1
244      EVT_CHAR(self.inputField, self.__ontext)      EVT_CHAR(self.inputField, self.__ontext)
245    
246    
247      def _EmployeeLogin(self, event):
248        self.statusbar.SetStatusText ('Clerk: %s (%s)' % (event.name, event.login), STATUS_USER)
249    
250    
251    def __OnSize(self, event):    def __OnSize(self, event):
252      self.frame.Layout()      self.frame.Layout()
253      w = self.receiptList.GetClientSizeTuple()[0]      w = self.receiptList.GetClientSizeTuple()[0]
# Line 257  class Driver(BaseDriver): Line 271  class Driver(BaseDriver):
271        self.inputField.Clear()        self.inputField.Clear()
272      elif _specialKeys.has_key(key) and _specialKeys[key] in self.__endingEvents:      elif _specialKeys.has_key(key) and _specialKeys[key] in self.__endingEvents:
273        self.dispatchEvent(self.__event, value=self.inputField.GetValue(), next=_specialKeys[key])        self.dispatchEvent(self.__event, value=self.inputField.GetValue(), next=_specialKeys[key])
274        elif self.__event == 'CancelItemEntered' and key in (WXK_UP, WXK_DOWN):
275          c = self.receiptList.GetItemCount()
276          for r in range(c):
277            if self.receiptList.GetItemState(r,wxLIST_STATE_SELECTED):
278              break
279    
280          st = ""
281          self.receiptList.SetItemState(r,0,wxLIST_STATE_SELECTED|wxLIST_STATE_FOCUSED)
282          if key == WXK_UP:
283            if r > 0:
284              st = "%d" % (r)
285            else:
286              st = "1"
287          elif key == WXK_DOWN:
288            if r < c - 1:
289              st = "%d" % (r + 2)
290            else:
291              st = "%d" % (c)
292          if len(st):
293            self.inputField.SetValue(st)
294            self.inputField.SetSelection(0, len(st))
295            self.receiptList.SetItemState(int(st)-1,wxLIST_STATE_SELECTED|wxLIST_STATE_FOCUSED,wxLIST_STATE_SELECTED|wxLIST_STATE_FOCUSED)
296    
297      else:      else:
298        event.Skip()        event.Skip()
299    
300    def __ontext(self, event):    def __ontext(self, event):
301      if event.GetKeyCode() != 32:      key = event.GetKeyCode()
302        if key != 32:
303        wxCallAfter(self.__fixtext)        wxCallAfter(self.__fixtext)
304      event.Skip()      event.Skip()
305    
306    
307    def __fixtext(self):    def __fixtext(self):
308      ip = self.inputField.GetInsertionPoint()      ip = self.inputField.GetInsertionPoint()
309      self.inputField.SetValue(string.capwords(self.inputField.GetValue()))      self.inputField.SetValue(string.capwords(self.inputField.GetValue()))
# Line 272  class Driver(BaseDriver): Line 311  class Driver(BaseDriver):
311    
312    
313  _specialKeys = {  _specialKeys = {
314       WXK_F12: 'RequestTaxExemption',
315    
316     WXK_MULTIPLY: 'RequestQuantity',     WXK_MULTIPLY: 'RequestQuantity',
317     WXK_DIVIDE: 'RequestTender',     WXK_DIVIDE: 'RequestCancelItem',
318     WXK_SUBTRACT: 'RequestCancelLastItem',     WXK_SUBTRACT: 'RequestCancelLastItem',
319     WXK_ADD: 'RequestDuplicateLastItem',     WXK_ADD: 'RequestDuplicateLastItem',
320     WXK_F12: 'RequestTaxExemption',  
321       # Grrrrr.... WX's keymaps above don't seem to be right
322       391: 'RequestQuantity',
323       396: 'RequestCancelItem',
324       394: 'RequestCancelLastItem',
325       392: 'RequestDuplicateLastItem',
326    
327    
328    }    }
329    

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

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