commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue-pos/src POSClient.py frontends/wx/Driver.py


From: Jason Cater
Subject: gnue-pos/src POSClient.py frontends/wx/Driver.py
Date: Thu, 19 Jun 2003 16:48:11 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue-pos
Branch:         
Changes by:     Jason Cater <address@hidden>    03/06/19 16:48:11

Modified files:
        src            : POSClient.py 
        src/frontends/wx: Driver.py 

Log message:
        UI work

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-pos/src/POSClient.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-pos/src/frontends/wx/Driver.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: gnue-pos/src/POSClient.py
diff -c gnue-pos/src/POSClient.py:1.6 gnue-pos/src/POSClient.py:1.7
*** gnue-pos/src/POSClient.py:1.6       Wed Jun 18 02:50:52 2003
--- gnue-pos/src/POSClient.py   Thu Jun 19 16:48:11 2003
***************
*** 108,118 ****
      # Testing stuff....
      #
      self.dispatchEvent('BeginTicket', serial=100000)
!     self.dispatchEvent('AddTicketItem', sku=123344, description='Used Book', 
department=20,
!                                   quantity=1, each=10.00, extended=10.00)
!     self.dispatchEvent('UpdateTotal', field="subtotal", amount=123.22)
!     self.dispatchEvent('UpdateTotal', field="mstax", amount=10.00)
!     self.dispatchEvent('UpdateTotal', field="total", amount=133.22)
      self.dispatchEvent('EndTicket')
  
      self.frontend.run()
--- 108,122 ----
      # Testing stuff....
      #
      self.dispatchEvent('BeginTicket', serial=100000)
!     self.dispatchEvent('AddTicketItem', sku=123355, description='A Tale of 
Two Cities (Dickens, Charles) USED', department=20,
!                                   quantity=1, each=5.95, extended=5.95)
!     self.dispatchEvent('AddTicketItem', sku=123356, description='Harry Potter 
and the Order of the Phoenix (Rowling, J.K.)', department=20,
!                                   quantity=2, each=29.99, extended=59.98)
!     self.dispatchEvent('AddTicketItem',  description='Gift Certificate', 
department=999,
!                                   quantity=1, each=30.00, extended=30.00)
!     self.dispatchEvent('UpdateTotal', field="subtotal", amount=95.93)
!     self.dispatchEvent('UpdateTotal', field="mstax", amount=6.72)
!     self.dispatchEvent('UpdateTotal', field="total", amount=102.65)
      self.dispatchEvent('EndTicket')
  
      self.frontend.run()
Index: gnue-pos/src/frontends/wx/Driver.py
diff -c gnue-pos/src/frontends/wx/Driver.py:1.3 
gnue-pos/src/frontends/wx/Driver.py:1.4
*** gnue-pos/src/frontends/wx/Driver.py:1.3     Wed Jun 18 14:18:14 2003
--- gnue-pos/src/frontends/wx/Driver.py Thu Jun 19 16:48:11 2003
***************
*** 34,47 ****
  from gnue.forms.uidrivers.wx import UIdriver as FormsDriver
  from gnue.forms.uidrivers.wx.GFwxApp import getWxApp
  
  from wxPython.wx import *
  from wxPython.gizmos import *
  
  class Driver(BaseDriver):
    def init(self):
!     self.totalFields = (  ('subtotal','Subtotal'),
                            ('mstax','MS Sales Tax (7%)'),
!                           ('total','Total') )
  
      self.totalFieldMapping = {}
  
--- 34,56 ----
  from gnue.forms.uidrivers.wx import UIdriver as FormsDriver
  from gnue.forms.uidrivers.wx.GFwxApp import getWxApp
  
+ dollarFormat = '$%.02f'
+ 
  from wxPython.wx import *
  from wxPython.gizmos import *
  
  class Driver(BaseDriver):
    def init(self):
!     self.totalFields = (  ('subtotal',_('Subtotal')),
                            ('mstax','MS Sales Tax (7%)'),
!                           ('total',_('Total')) )
! 
!     self.receiptColumns = ( ('department',_('Dept'), '%s', 0),
!                             ('sku',_('Code'), '%s', 0),
!                             ('quantity',_('Units'), '%s', 0),
!                             ('description',_('Description'), '%s', 0),
!                             ('each',_('Price/Unit'), dollarFormat, 1),
!                             ('extended',_('Extended'), dollarFormat, 1) )
  
      self.totalFieldMapping = {}
  
***************
*** 66,78 ****
      print "Ending ticket"
  
    def _AddTicketItem(self, event):
!     pass
  
    def _CancelTicketItem(self, event):
      pass
  
    def _UpdateTotal(self, event):
!     self.totalFieldMapping[event.field].SetValue(str(event.amount))
  
    def _buildUI(self):
      app = getWxApp()
--- 75,100 ----
      print "Ending ticket"
  
    def _AddTicketItem(self, event):
!     # Insert a new row
!     i = self.receiptList.GetItemCount()
!     self.receiptList.InsertStringItem(i,"")
! 
!     # And set each column
!     j = 0
!     for field, foo, format, bar in self.receiptColumns:
!       try:
!         self.receiptList.SetStringItem(i, j, format % event.__dict__[field])
!       except KeyError:
!         pass
!       j += 1
! 
!     self.receiptList.SetItemState(i, 
wxLIST_STATE_SELECTED|wxLIST_STATE_FOCUSED,  
wxLIST_STATE_SELECTED|wxLIST_STATE_FOCUSED)
  
    def _CancelTicketItem(self, event):
      pass
  
    def _UpdateTotal(self, event):
!     self.totalFieldMapping[event.field].SetValue(dollarFormat % event.amount)
  
    def _buildUI(self):
      app = getWxApp()
***************
*** 80,85 ****
--- 102,111 ----
      frameSizer = wxBoxSizer(wxVERTICAL)
      frame.SetSizer(frameSizer)
      frame.SetAutoLayout(1)
+     EVT_SIZE(frame, self.__OnSize)
+ 
+     self.statusbar = frame.CreateStatusBar()
+     self.statusbar.SetStatusText ('Clerk: 100 (Jason)')
  
      topPanel = wxPanel(frame, -1)
      topSizer = wxBoxSizer(wxHORIZONTAL)
***************
*** 91,124 ****
      bottomPanel.SetSizer(bottomSizer)
      bottomPanel.SetAutoLayout(1)
  
!     self.receiptList = receiptList = wxListCtrl(frame, -1)
  
  
!     totalPanel = wxPanel(frame, -1)
      totalSizer = wxFlexGridSizer(len(self.totalFields), 2, 2, 2)
      totalPanel.SetSizer(totalSizer)
      totalPanel.SetAutoLayout(1)
  
!     bottomSizer.Add(totalPanel, 1)
  
      frameSizer.Add(topPanel, 0, wxEXPAND)
!     frameSizer.Add(receiptList, 0, wxEXPAND)
      frameSizer.Add(bottomPanel, 0, wxEXPAND)
  
-     for name, descr in self.totalFields:
-       totalSizer.Add(wxStaticText(totalPanel, -1, descr))
-       field = wxTextCtrl(totalPanel,-1, style=wxALIGN_RIGHT|wxSUNKEN_BORDER)
-       totalSizer.Add(field)
-       self.totalFieldMapping[name] = field
- 
  
!     totalPanel.Layout()
      totalPanel.Fit()
!     topPanel.Layout()
!     bottomPanel.Layout()
  
!     frame.Layout()
  #    self.frame.ShowFullScreen(1)
      frame.Show(1)
  
  
--- 117,198 ----
      bottomPanel.SetSizer(bottomSizer)
      bottomPanel.SetAutoLayout(1)
  
!     self.receiptList = receiptList = wxListCtrl(frame, -1,
!               style=wxLC_REPORT|wxLC_HRULES|wxLC_VRULES|wxLC_SINGLE_SEL)
  
+     # Add the columns for our receipt list
+     i = 0
+     for field, description, format, rightJustify in self.receiptColumns:
+       self.receiptList.InsertColumn(i, description,
+           format = wxLIST_FORMAT_RIGHT and rightJustify or wxLIST_FORMAT_LEFT)
+       i += 1
+ 
+     totalPanel2 = wxPanel(bottomPanel, -1, style=wxRAISED_BORDER)
+     totalSizer2 = wxBoxSizer(wxVERTICAL)
+     totalPanel2.SetSizer(totalSizer2)
+     totalPanel2.SetAutoLayout(1)
  
!     totalPanel = wxPanel(totalPanel2, -1)
      totalSizer = wxFlexGridSizer(len(self.totalFields), 2, 2, 2)
      totalPanel.SetSizer(totalSizer)
      totalPanel.SetAutoLayout(1)
  
!     for name, descr in self.totalFields:
!       totalSizer.Add(wxStaticText(totalPanel, -1, descr + ': '), 0, 
wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT, 2)
!       field = wxTextCtrl(totalPanel,-1, style=wxTE_RIGHT|wxTE_READONLY)
!       totalSizer.Add(field, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT, 2)
!       self.totalFieldMapping[name] = field
! 
!     bigFont = self.totalFieldMapping['total'].GetFont()
!     bigFont.SetWeight(wxBOLD)
!     bigFont.SetPointSize(bigFont.GetPointSize()*1.25)
!     self.totalFieldMapping['total'].SetFont(bigFont)
! 
!     entryPanel = wxPanel(bottomPanel, -1)
!     entrySizer = wxBoxSizer(wxVERTICAL)
!     entryPanel.SetSizer(entrySizer)
!     entryPanel.SetAutoLayout(1)
!     self.inputLabel = wxStaticText(entryPanel, -1, "Enter Product Code:")
!     self.inputField = wxTextCtrl(entryPanel, -1)
!     self.inputLabel.SetFont(bigFont)
!     self.inputField.SetFont(bigFont)
!     entrySizer.Add(self.inputLabel, 0, wxEXPAND|wxALIGN_LEFT)
!     entrySizer.Add(self.inputField, 0, wxEXPAND|wxALIGN_LEFT)
! 
! 
!     entryPanel.Fit()
!     totalPanel.Fit()
!     totalSizer2.Add(totalPanel, 1, wxALL|wxEXPAND, 10)
!     totalPanel2.Fit()
! 
! #    bottomSizer.Add(wxPanel(bottomPanel,-1), 1, wxEXPAND)
!     bottomSizer.Add(entryPanel, 1, wxALIGN_CENTER|wxALL, 30)
! #    bottomSizer.Add(wxPanel(bottomPanel,-1), 1, wxEXPAND)
!     bottomSizer.Add(totalPanel2, 0, 
wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 20)
!     bottomPanel.Fit()
  
      frameSizer.Add(topPanel, 0, wxEXPAND)
!     frameSizer.Add(receiptList, 3, wxEXPAND)
      frameSizer.Add(bottomPanel, 0, wxEXPAND)
  
  
!     totalSizer.Layout()
      totalPanel.Fit()
!     topSizer.Layout()
!     bottomSizer.Layout()
  
!     frameSizer.Layout()
  #    self.frame.ShowFullScreen(1)
      frame.Show(1)
  
  
+   def __OnSize(self, event):
+     self.frame.Layout()
+     w = self.receiptList.GetClientSizeTuple()[0]
+     pos = 0
+     for i in range(len(self.receiptColumns)):
+       if self.receiptColumns[i][0] == 'description':
+         pos = i
+       else:
+         w -= self.receiptList.GetColumnWidth(i)
+     self.receiptList.SetColumnWidth(pos, w)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]