33 |
from gnue.pointofsale.frontends.Base.Driver import Driver as BaseDriver |
from gnue.pointofsale.frontends.Base.Driver import Driver as BaseDriver |
34 |
from gnue.forms.uidrivers.wx import UIdriver as FormsDriver |
from gnue.forms.uidrivers.wx import UIdriver as FormsDriver |
35 |
from gnue.forms.uidrivers.wx.GFwxApp import getWxApp |
from gnue.forms.uidrivers.wx.GFwxApp import getWxApp |
36 |
|
|
37 |
from wxPython.wx import * |
from wxPython.wx import * |
38 |
|
from wxPython.gizmos import * |
39 |
|
|
40 |
class Driver(BaseDriver): |
class Driver(BaseDriver): |
41 |
def init(self): |
def init(self): |
|
app = getWxApp() |
|
|
self.frame = frame = wxFrame(None, -1, "GNUe Point-of-Sale", style=wxDEFAULT_FRAME_STYLE & (wxRESIZE_BORDER | wxRESIZE_BOX | wxMAXIMIZE_BOX)) |
|
|
# self.frame.ShowFullScreen(1) |
|
|
self.frame.Show(1) |
|
42 |
self.totalFields = ( ('subtotal','Subtotal'), |
self.totalFields = ( ('subtotal','Subtotal'), |
43 |
('mstax','MS Sales Tax (7%)'), |
('mstax','MS Sales Tax (7%)'), |
44 |
('total','Total') ) |
('total','Total') ) |
45 |
|
|
46 |
|
self.totalFieldMapping = {} |
47 |
|
|
48 |
|
self._buildUI() |
49 |
|
|
50 |
self.registerEventListeners( { |
self.registerEventListeners( { |
51 |
'BeginTicket': self._BeginTicket, |
'BeginTicket': self._BeginTicket, |
52 |
'EndTicket': self._EndTicket, |
'EndTicket': self._EndTicket, |
72 |
pass |
pass |
73 |
|
|
74 |
def _UpdateTotal(self, event): |
def _UpdateTotal(self, event): |
75 |
print "%s=%s" % (event.field, event.amount) |
self.totalFieldMapping[event.field].SetValue(str(event.amount)) |
76 |
|
|
77 |
|
def _buildUI(self): |
78 |
|
app = getWxApp() |
79 |
|
self.frame = frame = wxFrame(None, -1, "GNUe Point-of-Sale", style=wxDEFAULT_FRAME_STYLE & (wxRESIZE_BORDER | wxRESIZE_BOX | wxMAXIMIZE_BOX)) |
80 |
|
frameSizer = wxBoxSizer(wxVERTICAL) |
81 |
|
frame.SetSizer(frameSizer) |
82 |
|
frame.SetAutoLayout(1) |
83 |
|
|
84 |
|
topPanel = wxPanel(frame, -1) |
85 |
|
topSizer = wxBoxSizer(wxHORIZONTAL) |
86 |
|
topPanel.SetSizer(topSizer) |
87 |
|
topPanel.SetAutoLayout(1) |
88 |
|
|
89 |
|
bottomPanel = wxPanel(frame, -1) |
90 |
|
bottomSizer = wxBoxSizer(wxHORIZONTAL) |
91 |
|
bottomPanel.SetSizer(bottomSizer) |
92 |
|
bottomPanel.SetAutoLayout(1) |
93 |
|
|
94 |
|
self.receiptList = receiptList = wxListCtrl(frame, -1) |
95 |
|
|
96 |
|
|
97 |
|
totalPanel = wxPanel(frame, -1) |
98 |
|
totalSizer = wxFlexGridSizer(len(self.totalFields), 2, 2, 2) |
99 |
|
totalPanel.SetSizer(totalSizer) |
100 |
|
totalPanel.SetAutoLayout(1) |
101 |
|
|
102 |
|
bottomSizer.Add(totalPanel, 1) |
103 |
|
|
104 |
|
frameSizer.Add(topPanel, 0, wxEXPAND) |
105 |
|
frameSizer.Add(receiptList, 0, wxEXPAND) |
106 |
|
frameSizer.Add(bottomPanel, 0, wxEXPAND) |
107 |
|
|
108 |
|
for name, descr in self.totalFields: |
109 |
|
totalSizer.Add(wxStaticText(totalPanel, -1, descr)) |
110 |
|
field = wxTextCtrl(totalPanel,-1, style=wxALIGN_RIGHT|wxSUNKEN_BORDER) |
111 |
|
totalSizer.Add(field) |
112 |
|
self.totalFieldMapping[name] = field |
113 |
|
|
114 |
|
|
115 |
|
totalPanel.Layout() |
116 |
|
totalPanel.Fit() |
117 |
|
topPanel.Layout() |
118 |
|
bottomPanel.Layout() |
119 |
|
|
120 |
|
frame.Layout() |
121 |
|
# self.frame.ShowFullScreen(1) |
122 |
|
frame.Show(1) |
123 |
|
|
124 |
|
|